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>
This commit is contained in:
parent
2faa6cdc5e
commit
a99bc27aec
6
gitk
6
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
|
||||
|
Loading…
Reference in New Issue
Block a user