gitk: collect construction of blameargs into a single conditional

The command line to invoke 'git blame' for a single line is constructed
using several if-conditionals, each with the same condition
{$from_index new {}}. Merge all of them into a single conditional.
This requires to duplicate significant parts of the command, but it
helps the next change, where we will have to deal with a nested list
structure.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
This commit is contained in:
Johannes Sixt
2025-03-23 22:34:11 +01:00
committed by Taylor Blau
parent 2aeb4484a0
commit 79a3ef5314

14
gitk
View File

@@ -3967,17 +3967,15 @@ proc show_line_source {} {
}
set line [lindex $h 1]
}
set blameargs {}
set blamefile [file join $cdup $flist_menu_file]
if {$from_index ne {}} {
lappend blameargs | git cat-file blob $from_index
}
lappend blameargs | git blame -p -L$line,+1
if {$from_index ne {}} {
lappend blameargs --contents -
set blameargs [list \
| git cat-file blob $from_index \
| git blame -p -L$line,+1 --contents - -- $blamefile]
} else {
lappend blameargs $id
set blameargs [list \
| git blame -p -L$line,+1 $id -- $blamefile]
}
lappend blameargs -- [file join $cdup $flist_menu_file]
if {[catch {
set f [open $blameargs r]
} err]} {