git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] gitk: use single blamestuff for all show_line_source{} calls

From
Max Kirillov <max@max630.net>
Date
Feb 3, 2014, 20:53 UTC
Message-ID
<20140203205352.GA5136@wheezy.local>

There seems to be no point to search for several origins at once. I doubt it is 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@max630.net>
---
 gitk | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/gitk b/gitk
index 90764e8..dfac4fd 100755
--- a/gitk
+++ b/gitk
@@ -3815,17 +3815,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
     }
 }
@@ -3834,7 +3835,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
@@ -3845,17 +3846,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
@@ -3878,6 +3880,7 @@ proc read_line_source {fd inst} {
     } else {
 	puts "oops couldn't parse git blame output"
     }
+    unset blamestuff
     return 0
 }
 
-- 
1.8.5.2.421.g4cdf8d0
Next: Max Kirillov
Message 1 of 8 in “gitk: use single blamestuff for all show_line_source{} calls”
  1. gitk: use single blamestuff for all show_line_source{} callsMax Kirillov, Feb 3, 2014
  2. 0/3 gitk: show latest change to regionMax Kirillov, Feb 3, 2014
  3. 1/3 gitk: refactor: separate generic hunk parsing out of find_hunk_blamespecs{}Max Kirillov, Feb 3, 2014
  4. Eric SunshineFeb 3, 2014
  5. Max KirillovJun 24, 2014
  6. 2/3 gitk: refactor: separate io from logic in the searching origin of lineMax Kirillov, Feb 3, 2014
  7. 3/3 gitk: pick selection for region blameMax Kirillov, Feb 3, 2014
  8. 3/3 gitk: show latest change to regionMax Kirillov, Feb 3, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.