Since 5c838d2 (gitk: Use the --submodule option for displaying diffs
when available, 2009-10-28) gitk erroneously matches " >" and " <"
at the beginning of a line in the submodule code even if we're in the
diff text section and the lines should be treated as context.
Fix by (ab)using the $diffinhdr variable also in the 'Submodule...'
case, and move the " >"/" <" specific code inside the $diffinhdr
test. The existing code will set $diffinhdr to 0 when it hits a
"+++", so that it is always 0 when we can hit a context line.
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
---
Sure.
gitk | 18 ++++++++++--------
1 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/gitk b/gitk
index 1b0e09a..6513ef8 100755
--- a/gitk
+++ b/gitk
@@ -7706,14 +7706,8 @@ proc getblobdiffline {bdf ids} {
} else {
$ctext insert end "$line\n" filesep
}
- } elseif {![string compare -length 3 " >" $line]} {
- set $currdiffsubmod ""
- set line [encoding convertfrom $diffencoding $line]
- $ctext insert end "$line\n" dresult
- } elseif {![string compare -length 3 " <" $line]} {
- set $currdiffsubmod ""
- set line [encoding convertfrom $diffencoding $line]
- $ctext insert end "$line\n" d0
+ # pretend we're in a file header to correctly parse " [><]"
+ set diffinhdr 1
} elseif {$diffinhdr} {
if {![string compare -length 12 "rename from " $line]} {
set fname [string range $line [expr 6 + [string first " from " $line] ] end]
@@ -7732,6 +7726,14 @@ proc getblobdiffline {bdf ids} {
set fname [lindex $fname 0]
}
makediffhdr $fname $ids
+ } elseif {![string compare -length 3 " >" $line]} {
+ set line [encoding convertfrom $diffencoding $line]
+ $ctext insert end "$line\n" dresult
+ continue
+ } elseif {![string compare -length 3 " <" $line]} {
+ set line [encoding convertfrom $diffencoding $line]
+ $ctext insert end "$line\n" d0
+ continue
} elseif {[string compare -length 3 $line "---"] == 0} {
# do nothing
continue
--
1.7.1.rc1.284.g4b2e3
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html