Merge branch 'maint'

* maint:
  git-gui: Fix diff parsing for lines starting with "--" or "++"
This commit is contained in:
Shawn O. Pearce 2008-09-04 21:53:06 -07:00
commit 95b6a2db25

View File

@ -276,6 +276,7 @@ proc start_show_diff {scroll_pos {add_opts {}}} {
return return
} }
set ::current_diff_inheader 1
fconfigure $fd \ fconfigure $fd \
-blocking 0 \ -blocking 0 \
-encoding binary \ -encoding binary \
@ -292,18 +293,21 @@ proc read_diff {fd scroll_pos} {
while {[gets $fd line] >= 0} { while {[gets $fd line] >= 0} {
# -- Cleanup uninteresting diff header lines. # -- Cleanup uninteresting diff header lines.
# #
if { [string match {diff --git *} $line] if {$::current_diff_inheader} {
|| [string match {diff --cc *} $line] if { [string match {diff --git *} $line]
|| [string match {diff --combined *} $line] || [string match {diff --cc *} $line]
|| [string match {--- *} $line] || [string match {diff --combined *} $line]
|| [string match {+++ *} $line]} { || [string match {--- *} $line]
append current_diff_header $line "\n" || [string match {+++ *} $line]} {
continue append current_diff_header $line "\n"
continue
}
} }
if {[string match {index *} $line]} continue if {[string match {index *} $line]} continue
if {$line eq {deleted file mode 120000}} { if {$line eq {deleted file mode 120000}} {
set line "deleted symlink" set line "deleted symlink"
} }
set ::current_diff_inheader 0
# -- Automatically detect if this is a 3 way diff. # -- Automatically detect if this is a 3 way diff.
# #