aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorРоман Донченко <dpb@corrigendum.ru>2019-12-15 21:25:50 +0300
committerPaul Mackerras <paulus@ozlabs.org>2020-04-13 15:11:18 +1000
commita99bc27aec74071aa1e9ecaa12c642e88e377165 (patch)
treed4489e6d118b61bc8ffa9fad8ca68066816953e9
parent2faa6cdc5e4d1d5fd27512994f002fc2640b1949 (diff)
downloadgit-a99bc27aec74071aa1e9ecaa12c642e88e377165.tar.gz
gitk: fix the context menu not appearing in the presence of submodule diffs
Currently, submodule diffs can cause the diff context menu to fail to appear because of a couple bugs in parseblobdiffline: * it appends the submodule name to ctext_file_lines instead of a line number, which breaks the binary search in find_ctext_fileinfo; * it can desynchronize ctext_file_names and ctext_file_lines by appending to the former but not the latter, which also breaks find_ctext_fileinfo. Fix both of these. Note: a side effect of this patch is that the context menu also starts appearing when you right-click on submodule diffs (and not just regular diffs). The menu is non-functional in this case, though, since you can't run blame on submodules. Signed-off-by: Роман Донченко <dpb@corrigendum.ru> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
-rwxr-xr-xgitk6
1 files changed, 3 insertions, 3 deletions
diff --git a/gitk b/gitk
index 88c986884f..ca6c8068f0 100755
--- a/gitk
+++ b/gitk
@@ -8231,10 +8231,10 @@ proc parseblobdiffline {ids line} {
if {$currdiffsubmod != $fname} {
$ctext insert end "\n"; # Add newline after commit message
}
- set curdiffstart [$ctext index "end - 1c"]
- lappend ctext_file_names ""
if {$currdiffsubmod != $fname} {
- lappend ctext_file_lines $fname
+ set curdiffstart [$ctext index "end - 1c"]
+ lappend ctext_file_names ""
+ lappend ctext_file_lines [lindex [split $curdiffstart "."] 0]
makediffhdr $fname $ids
set currdiffsubmod $fname
$ctext insert end "\n$line\n" filesep