[PD-cvs] pd/src desire.tk,1.1.2.600.2.282,1.1.2.600.2.283

chunlee chunlee at users.sourceforge.net
Sat Aug 4 22:12:35 CEST 2007


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 $@serf.entry
! 	$@history hist_on= 0; $@history histi= -1
  	set l [$self get_command]
  	$self append $l
--- 6356,6360 ----
  def Listener eval {} {
  	set e $@serf.entry
! 	$@history histi= 0
  	set l [$self get_command]
  	$self append $l





More information about the Pd-cvs mailing list