summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Shawn O. Pearce <spearce@spearce.org>2008-09-04 21:53:06 -0700
committerLibravatar Shawn O. Pearce <spearce@spearce.org>2008-09-04 21:53:06 -0700
commit95b6a2db25c6c3321be33ac17b6b2e54c407652d (patch)
tree0fa5fd758089f21623f36acdb8f1217baccc7cff
parentgit-gui: Show special diffs for complex conflict cases. (diff)
parentgit-gui: Fix diff parsing for lines starting with "--" or "++" (diff)
downloadtgif-95b6a2db25c6c3321be33ac17b6b2e54c407652d.tar.xz
Merge branch 'maint'
* maint: git-gui: Fix diff parsing for lines starting with "--" or "++"
-rw-r--r--lib/diff.tcl18
1 files changed, 11 insertions, 7 deletions
diff --git a/lib/diff.tcl b/lib/diff.tcl
index e2ed262fb3..a30c80a935 100644
--- a/lib/diff.tcl
+++ b/lib/diff.tcl
@@ -276,6 +276,7 @@ proc start_show_diff {scroll_pos {add_opts {}}} {
return
}
+ set ::current_diff_inheader 1
fconfigure $fd \
-blocking 0 \
-encoding binary \
@@ -292,18 +293,21 @@ proc read_diff {fd scroll_pos} {
while {[gets $fd line] >= 0} {
# -- Cleanup uninteresting diff header lines.
#
- if { [string match {diff --git *} $line]
- || [string match {diff --cc *} $line]
- || [string match {diff --combined *} $line]
- || [string match {--- *} $line]
- || [string match {+++ *} $line]} {
- append current_diff_header $line "\n"
- continue
+ if {$::current_diff_inheader} {
+ if { [string match {diff --git *} $line]
+ || [string match {diff --cc *} $line]
+ || [string match {diff --combined *} $line]
+ || [string match {--- *} $line]
+ || [string match {+++ *} $line]} {
+ append current_diff_header $line "\n"
+ continue
+ }
}
if {[string match {index *} $line]} continue
if {$line eq {deleted file mode 120000}} {
set line "deleted symlink"
}
+ set ::current_diff_inheader 0
# -- Automatically detect if this is a 3 way diff.
#