Index: ChangeLog =================================================================== diff -u -r018ced50b0b8139c67310d99f9541e933b7a1f2d -rb872864b1f6375c55cf561c9e25335951f1386cf --- ChangeLog (.../ChangeLog) (revision 018ced50b0b8139c67310d99f9541e933b7a1f2d) +++ ChangeLog (.../ChangeLog) (revision b872864b1f6375c55cf561c9e25335951f1386cf) @@ -1,3 +1,7 @@ +2008-01-04: + - preserving var traces when copying objects + (Many thanks to Florian Murr for reporting the bug) + 2008-01-02: - fixed evaluation context in guard expressions ([self callingproc] returned "" in cases, where the callingproc Index: generic/predefined.h =================================================================== diff -u -rc72f9f638677608fab1502cd696c8f2d6b2952f9 -rb872864b1f6375c55cf561c9e25335951f1386cf --- generic/predefined.h (.../predefined.h) (revision c72f9f638677608fab1502cd696c8f2d6b2952f9) +++ generic/predefined.h (.../predefined.h) (revision b872864b1f6375c55cf561c9e25335951f1386cf) @@ -1,5 +1,5 @@ static char cmd[] = -"# $Id: predefined.h,v 1.17 2007/09/05 19:09:22 neumann Exp $\n" +"# $Id: predefined.xotcl,v 1.16 2007/09/05 19:09:22 neumann Exp $\n" "foreach cmd [info command ::xotcl::Object::instcmd::*] {\n" "::xotcl::alias ::xotcl::Object [namespace tail $cmd] $cmd}\n" "foreach cmd {array append eval incr lappend trace subst unset} {\n" @@ -336,7 +336,6 @@ "if {$cmds ne \"\"} {\n" "foreach cmd $cmds {\n" "foreach {op def} $cmd break\n" -"$origin trace remove variable $var $op $def\n" "if {[lindex $def 0] eq $origin} {\n" "set def [concat $dest [lrange $def 1 end]]}\n" "$dest trace add variable $var $op $def}}}}\n" Index: generic/predefined.xotcl =================================================================== diff -u -rc72f9f638677608fab1502cd696c8f2d6b2952f9 -rb872864b1f6375c55cf561c9e25335951f1386cf --- generic/predefined.xotcl (.../predefined.xotcl) (revision c72f9f638677608fab1502cd696c8f2d6b2952f9) +++ generic/predefined.xotcl (.../predefined.xotcl) (revision b872864b1f6375c55cf561c9e25335951f1386cf) @@ -564,7 +564,7 @@ if {$cmds ne ""} { foreach cmd $cmds { foreach {op def} $cmd break - $origin trace remove variable $var $op $def + #$origin trace remove variable $var $op $def if {[lindex $def 0] eq $origin} { set def [concat $dest [lrange $def 1 end]] }