There seems to be no point to search for several origins at once. Probably is is not even fully working (because there is one blameinst), but blamestuff for some reason is an array. Also, it is not cleaned after blame is completed. Signed-off-by: Max Kirillov <max@xxxxxxxxxx> --- gitk | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gitk b/gitk index 41e5071..8ef6aa8 100755 --- a/gitk +++ b/gitk @@ -3824,17 +3824,18 @@ proc show_line_source {} { nowbusy blaming [mc "Searching"] fconfigure $f -blocking 0 set i [reg_instance $f] - set blamestuff($i) {} + set blamestuff {} set blameinst $i filerun $f [list read_line_source $f $i] } proc stopblaming {} { - global blameinst + global blameinst blamestuff if {[info exists blameinst]} { stop_instance $blameinst unset blameinst + unset blamestuff notbusy blaming } } @@ -3843,7 +3844,7 @@ proc read_line_source {fd inst} { global blamestuff curview commfd blameinst nullid nullid2 while {[gets $fd line] >= 0} { - lappend blamestuff($inst) $line + lappend blamestuff $line } if {![eof $fd]} { return 1 @@ -3854,17 +3855,18 @@ proc read_line_source {fd inst} { fconfigure $fd -blocking 1 if {[catch {close $fd} err]} { error_popup [mc "Error running git blame: %s" $err] + unset blamestuff return 0 } set fname {} - set line [split [lindex $blamestuff($inst) 0] " "] + set line [split [lindex $blamestuff 0] " "] set id [lindex $line 0] set lnum [lindex $line 1] if {[string length $id] == 40 && [string is xdigit $id] && [string is digit -strict $lnum]} { # look for "filename" line - foreach l $blamestuff($inst) { + foreach l $blamestuff { if {[string match "filename *" $l]} { set fname [string range $l 9 end] break @@ -3887,6 +3889,7 @@ proc read_line_source {fd inst} { } else { puts "oops couldn't parse git blame output" } + unset blamestuff return 0 } -- 2.0.0.526.g5318336 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html