08/09/17 02:39:50
>>331
>>334
見つかるまでさかのぼるupvarを書いてみました。
upvarが上位の変数名とローカル変数名を並べて書くのに対し、
上位の変数名だけ並べて書いて同じ名前でリンクするようにしてます。
proc upvar2 {args} {
set leveldepth [info level]
foreach varname $args {
for {set varlevel 2} {$varlevel <= $leveldepth} {incr varlevel} {
if {[uplevel $varlevel info exists $varname]} {
incr varlevel -1
uplevel 1 upvar $varlevel $varname $varname
break
}
}
}
}