Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20887
Modified Files:
Tag: desiredata
desire.tk
Log Message:
fixed selecting from history in class History
Index: desire.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v
retrieving revision 1.1.2.600.2.282
retrieving revision 1.1.2.600.2.283
diff -C2 -d -r1.1.2.600.2.282 -r1.1.2.600.2.283
*** desire.tk 4 Aug 2007 18:48:47 -0000 1.1.2.600.2.282
--- desire.tk 4 Aug 2007 20:12:31 -0000 1.1.2.600.2.283
***************
*** 457,484 ****
def History init {size} {
set @size $size
! set @hist {}
set @histi -1
- set @hist_on 0
- set @tmp_text {}
}
- def History hist_on= {val} {set @hist_on $val}
def History histi= {val} {set @histi $val}
def History prepend {stuff} {
! set @hist [linsert $@hist 0 $stuff]
if {[llength $@hist] >= $@size} {set @hist [lrange $@hist 0 [expr $@size-1]]}
- puts "hist::: $@hist"
}
! def History traverse {incr tmp_text} {
! puts "hist_on :::::::: $@hist_on"
! if {![llength $@hist]} {return}
! set find [lsearch $@hist $@tmp_text]
! #what if the tmp_text is well formed??
! if {$find >= 0 && !$@hist_on} {set @hist [lreplace $@hist $find $find]; puts "REMOVE::: $@tmp_text"}
! set @tmp_text $tmp_text
! if {$tmp_text != "" && !$@hist_on} {lappend @hist $tmp_text; set @hist_on 1; puts "ADD::: $@tmp_text"}
! puts "history:::: $@hist"
set @histi [expr $@histi + $incr]
set mod [expr ([llength $@hist]<[expr $@size+1]) ?[llength $@hist]:[expr $@size+1]]
--- 457,475 ----
def History init {size} {
set @size $size
! set @hist {{}}
set @histi -1
}
def History histi= {val} {set @histi $val}
+ def History histi {} {return $@histi}
+
+ def History set_hist {idx stuff} {set @hist [lreplace $@hist $idx $idx $stuff]}
def History prepend {stuff} {
! set @hist [linsert $@hist 1 $stuff]
if {[llength $@hist] >= $@size} {set @hist [lrange $@hist 0 [expr $@size-1]]}
}
! def History traverse {incr} {
set @histi [expr $@histi + $incr]
set mod [expr ([llength $@hist]<[expr $@size+1]) ?[llength $@hist]:[expr $@size+1]]
***************
*** 2290,2296 ****
set @edit 1
set @tab_repeats 0
! set @tmp_text {}
! obj_hist hist_on= 0
! obj_hist histi= -1
# stores which line is the longest if multiple line
set @longline 1
--- 2281,2285 ----
set @edit 1
set @tab_repeats 0
! obj_hist histi= 0
# stores which line is the longest if multiple line
set @longline 1
***************
*** 2362,2366 ****
set t $c.${self}text
if {[[$self class] <= AtomBox]} {if {$@clear} {$t delete 1.0 1.end; set @clear 0}}
- if {[regexp {^[a-zA-Z0-9]$} $key k]} {set @tmp_text [$t get 1.0 1.end]$key}
switch -- $key {
Tab {
--- 2351,2354 ----
***************
*** 2382,2387 ****
set c [$self cwidget]
set t $c.${self}text
$t delete 1.0 1.end
! set text [obj_hist traverse $incr $@tmp_text]
$t insert 1.0 $text
$t configure -width [string length $text]
--- 2370,2376 ----
set c [$self cwidget]
set t $c.${self}text
+ if {![obj_hist histi]} {obj_hist set_hist 0 [$t get 1.0 1.end]}
$t delete 1.0 1.end
! set text [obj_hist traverse $incr]
$t insert 1.0 $text
$t configure -width [string length $text]
***************
*** 3332,3339 ****
bind $f.entry <Control-g> "$self unpack_prompt"
bind $f.entry <Return> "$self eval"
! bind $f.entry <Up> "$self up"
! bind $f.entry <Down> "$self down"
! bind $f.entry <Control-p> "$self up"
! bind $f.entry <Control-n> "$self down"
bind $f.entry <Tab> "$self completion +"
switch $::tcl_platform(os) {
--- 3321,3328 ----
bind $f.entry <Control-g> "$self unpack_prompt"
bind $f.entry <Return> "$self eval"
! bind $f.entry <Up> "$self scroll_history +1"
! bind $f.entry <Down> "$self scroll_history -1"
! bind $f.entry <Control-p> "$self scroll_history +1"
! bind $f.entry <Control-n> "$self scroll_history -1"
bind $f.entry <Tab> "$self completion +"
switch $::tcl_platform(os) {
***************
*** 3368,3372 ****
if {[winfo exists $f.completion]} {
set l [string range $@comp 0 [expr [string first ":" $@comp 0]-1]]
- $@history prepend $l
$self replace $l
destroy $f.completion
--- 3357,3360 ----
***************
*** 6296,6301 ****
def Listener init {serf name command} {
set @history [History new 20]
- set @hist {}
- set @histi 0
set @command $command
set @expanded 0
--- 6284,6287 ----
***************
*** 6308,6313 ****
pack [entry $serf.entry -width 40 -font $::look(View:font)] -side left -fill x -expand yes
pack $serf -fill x -expand no
! bind $serf.entry <Up> "$self up"
! bind $serf.entry <Down> "$self down"
bind $serf.entry <Return> "$self eval"
}
--- 6294,6299 ----
pack [entry $serf.entry -width 40 -font $::look(View:font)] -side left -fill x -expand yes
pack $serf -fill x -expand no
! bind $serf.entry <Up> "$self scroll_history +1"
! bind $serf.entry <Down> "$self scroll_history -1"
bind $serf.entry <Return> "$self eval"
}
***************
*** 6347,6352 ****
}
! def Listener up {} {$self replace [$@history traverse +1 [$self get_command]]}
! def Listener down {} {$self replace [$@history traverse -1 [$self get_command]]}
def Listener append {v} {
--- 6333,6341 ----
}
! def Listener scroll_history {incr} {
! if {![$@history histi]} {$@history set_hist 0 [$self get_command]}
! $self replace [$@history traverse $incr]
!
! }
def Listener append {v} {
***************
*** 6367,6371 ****
def Listener eval {} {
set e $(a)serf.entry
! $@history hist_on= 0; $@history histi= -1
set l [$self get_command]
$self append $l
--- 6356,6360 ----
def Listener eval {} {
set e $(a)serf.entry
! $@history histi= 0
set l [$self get_command]
$self append $l