diff options
author | Shawn O. Pearce <spearce@spearce.org> | 2007-07-10 01:19:13 (GMT) |
---|---|---|
committer | Shawn O. Pearce <spearce@spearce.org> | 2007-07-10 01:19:13 (GMT) |
commit | 0a84b3d94ff8c29a5d3b738d4f08d1344305b619 (patch) | |
tree | 60723fb7c6a4e0d79ebc74ba923eae592393de71 /lib | |
parent | 7eafa2f1578e605e1e68d8ccba9d600cc6b89173 (diff) | |
parent | e87fb0f1b4a4b458394a65d664145a9a8001e821 (diff) | |
download | git-0a84b3d94ff8c29a5d3b738d4f08d1344305b619.zip git-0a84b3d94ff8c29a5d3b738d4f08d1344305b619.tar.gz git-0a84b3d94ff8c29a5d3b738d4f08d1344305b619.tar.bz2 |
Merge branch 'maint'
* maint:
git-gui: Don't linewrap within console windows
git-gui: Correct ls-tree buffering problem in browser
Diffstat (limited to 'lib')
-rw-r--r-- | lib/browser.tcl | 22 | ||||
-rw-r--r-- | lib/console.tcl | 4 |
2 files changed, 17 insertions, 9 deletions
diff --git a/lib/browser.tcl b/lib/browser.tcl index 4d33052..911e5af 100644 --- a/lib/browser.tcl +++ b/lib/browser.tcl @@ -11,6 +11,8 @@ 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 @@ -160,7 +162,7 @@ method _click {was_double_click pos} { } method _ls {tree_id {name {}}} { - set browser_buffer {} + set ls_buf {} set browser_files {} set browser_busy 1 @@ -184,17 +186,19 @@ method _ls {tree_id {name {}}} { } method _read {fd} { - append browser_buffer [read $fd] - set pck [split $browser_buffer "\0"] - set browser_buffer [lindex $pck end] + append ls_buf [read $fd] + set pck [split $ls_buf "\0"] + set ls_buf [lindex $pck end] set n [llength $browser_files] $w conf -state normal foreach p [lrange $pck 0 end-1] { - set info [split $p "\t"] - set path [lindex $info 1] - set info [split [lindex $info 0] { }] - set type [lindex $info 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 object [lindex $info 2] switch -- $type { @@ -224,7 +228,7 @@ method _read {fd} { close $fd set browser_status Ready. set browser_busy 0 - unset browser_buffer + set ls_buf {} if {$n > 0} { $w tag add in_sel 1.0 2.0 focus -force $w diff --git a/lib/console.tcl b/lib/console.tcl index 03d0354..6f718fb 100644 --- a/lib/console.tcl +++ b/lib/console.tcl @@ -47,16 +47,20 @@ method _init {} { -background white -borderwidth 1 \ -relief sunken \ -width 80 -height 10 \ + -wrap none \ -font font_diff \ -state disabled \ + -xscrollcommand [list $w.m.sbx set] \ -yscrollcommand [list $w.m.sby set] label $w.m.s -text {Working... please wait...} \ -anchor w \ -justify left \ -font font_uibold + scrollbar $w.m.sbx -command [list $w.m.t xview] -orient h scrollbar $w.m.sby -command [list $w.m.t yview] pack $w.m.l1 -side top -fill x pack $w.m.s -side bottom -fill x + pack $w.m.sbx -side bottom -fill x pack $w.m.sby -side right -fill y pack $w.m.t -side left -fill both -expand 1 pack $w.m -side top -fill both -expand 1 -padx 5 -pady 10 |