From: Bert Wesarg Date: Thu, 9 Dec 2010 20:47:58 +0000 (+0100) Subject: git-gui: handle special content lines only in the diff header section X-Git-Tag: gitgui-0.14.0~13 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=d1c7f8aa666dfc96743782cba452112c7678e9eb;p=git.git git-gui: handle special content lines only in the diff header section These two also stop the diff header. Signed-off-by: Bert Wesarg Signed-off-by: Pat Thoyts --- diff --git a/lib/diff.tcl b/lib/diff.tcl index 91ed7c638..4eaf7e7aa 100644 --- a/lib/diff.tcl +++ b/lib/diff.tcl @@ -400,7 +400,14 @@ proc read_diff {fd conflict_size cont_info} { if {[string match {@@@ *} $line]} {set is_3way_diff 1} if {$::current_diff_inheader} { - append current_diff_header $line "\n" + + # -- These two lines stop a diff header and shouldn't be in there + if { [string match {Binary files * and * differ} $line] + || [regexp {^\* Unmerged path } $line]} { + set ::current_diff_inheader 0 + } else { + append current_diff_header $line "\n" + } # -- Cleanup uninteresting diff header lines. # @@ -418,16 +425,12 @@ proc read_diff {fd conflict_size cont_info} { regsub {^(deleted|new) file mode 120000} $line {\1 symlink} line } - - if {[string match {new file *} $line] || [regexp {^(old|new) mode *} $line] || [string match {deleted file *} $line] || [string match {deleted symlink} $line] || [string match {new symlink} $line] - || [string match {Binary files * and * differ} $line] - || $line eq {\ No newline at end of file} - || [regexp {^\* Unmerged path } $line]} { + || $line eq {\ No newline at end of file}} { } elseif {$is_3way_diff} { set op [string range $line 0 1] switch -- $op {