aboutsummaryrefslogtreecommitdiffstats
path: root/git-gui/lib/browser.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'git-gui/lib/browser.tcl')
-rw-r--r--git-gui/lib/browser.tcl22
1 files changed, 9 insertions, 13 deletions
diff --git a/git-gui/lib/browser.tcl b/git-gui/lib/browser.tcl
index e612247c9e..3d6341bcc5 100644
--- a/git-gui/lib/browser.tcl
+++ b/git-gui/lib/browser.tcl
@@ -11,8 +11,6 @@ field browser_status {Starting...}
field browser_stack {}
field browser_busy 1
-field ls_buf {}; # Buffered record output from ls-tree
-
constructor new {commit} {
global cursor_ptr M1B
make_toplevel top w
@@ -162,7 +160,7 @@ method _click {was_double_click pos} {
}
method _ls {tree_id {name {}}} {
- set ls_buf {}
+ set browser_buffer {}
set browser_files {}
set browser_busy 1
@@ -187,19 +185,17 @@ method _ls {tree_id {name {}}} {
}
method _read {fd} {
- append ls_buf [read $fd]
- set pck [split $ls_buf "\0"]
- set ls_buf [lindex $pck end]
+ append browser_buffer [read $fd]
+ set pck [split $browser_buffer "\0"]
+ set browser_buffer [lindex $pck end]
set n [llength $browser_files]
$w conf -state normal
foreach p [lrange $pck 0 end-1] {
- set tab [string first "\t" $p]
- if {$tab == -1} continue
-
- set info [split [string range $p 0 [expr {$tab - 1}]] { }]
- set path [string range $p [expr {$tab + 1}] end]
- set type [lindex $info 1]
+ set info [split $p "\t"]
+ set path [lindex $info 1]
+ set info [split [lindex $info 0] { }]
+ set type [lindex $info 1]
set object [lindex $info 2]
switch -- $type {
@@ -229,7 +225,7 @@ method _read {fd} {
close $fd
set browser_status Ready.
set browser_busy 0
- set ls_buf {}
+ unset browser_buffer
if {$n > 0} {
$w tag add in_sel 1.0 2.0
focus -force $w