[PD-cvs] pd/src desire.tk,1.1.2.600.2.297,1.1.2.600.2.298

Mathieu Bouchard matju at users.sourceforge.net
Tue Aug 7 03:17:39 CEST 2007


Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24531

Modified Files:
      Tag: desiredata
	desire.tk 
Log Message:
class_new Hash


Index: desire.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.tk,v
retrieving revision 1.1.2.600.2.297
retrieving revision 1.1.2.600.2.298
diff -C2 -d -r1.1.2.600.2.297 -r1.1.2.600.2.298
*** desire.tk	6 Aug 2007 22:42:48 -0000	1.1.2.600.2.297
--- desire.tk	7 Aug 2007 01:17:35 -0000	1.1.2.600.2.298
***************
*** 290,300 ****
  
  #-----------------------------------------------------------------------------------#
! # object class just to make a variable watchable...?
! # should also have a look at "man 3tcl trace" too.
  
! class_new Variable {Observable Thing}
! def Variable init   {{value ""}} {super; $self value= $value}
! def Variable value= {value} {set @value $value; $self changed}
! def Variable value {} {return $@value}
  
  #-----------------------------------------------------------------------------------#
--- 290,313 ----
  
  #-----------------------------------------------------------------------------------#
! # This is not a real Hash, just the same interface as a Ruby/Python/Perl Hash... or quite like Tcl arrays themselves
! class_new Hash {Thing}
  
! def Hash init {args} {foreach {k v} $args {$self set $k $v}}
! def Hash set {k v} {set ::hash($self:$k) $v}
! def Hash get {k}   {set ::hash($self:$k)}
! def Hash size {} {llength [$self keys]}
! def Hash unset {k} {unset ::hash($self:$k)}
! def Hash list {} {set r {}; foreach k [$self keys] {lappend r $k [$self get $k]}; return $r}
! def Hash keys {} {
! 	set r {}
! 	set n [string length $self:]
! 	foreach k [array names ::hash $self:*] {lappend r [string range $k $n end]}
! 	return $r
! }
! 
! # set h [Hash new foo bar 1 2 3 4]
! # $h set hello world
! # puts keys=[$h keys]
! # puts list=[$h list]
  
  #-----------------------------------------------------------------------------------#





More information about the Pd-cvs mailing list