diff options
Diffstat (limited to 'git-gui/lib/browser.tcl')
| -rw-r--r-- | git-gui/lib/browser.tcl | 22 |
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 |
