aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBert Wesarg <bert.wesarg@googlemail.com>2010-12-09 21:47:58 +0100
committerPat Thoyts <patthoyts@users.sourceforge.net>2011-01-28 09:01:17 +0000
commitd1c7f8aa666dfc96743782cba452112c7678e9eb (patch)
treef91da82e3e83ee64dcefebdafa91e63a1a72c8ad
parent6459d7c046e5ab618ffde2d5a04dc83b5f97a600 (diff)
downloadgit-d1c7f8aa666dfc96743782cba452112c7678e9eb.tar.gz
git-d1c7f8aa666dfc96743782cba452112c7678e9eb.tar.xz
git-gui: handle special content lines only in the diff header section
These two also stop the diff header. Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com> Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
-rw-r--r--lib/diff.tcl15
1 files changed, 9 insertions, 6 deletions
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 {