hi,
this is probably already known BUT the "-level" option in "return" does NOT cover the nested loop
the read the following code:
./level-bug.tcl
--------------------------------------
#!/bin/env tclsh
set lvl [lindex $argv 0]
while true {
while true {
puts [info frame $lvl]
return -level $lvl -code break
puts 0
break
}
puts 1
break
}
puts 2
------------------------------------
./level-bug.tcl 0
type source line 7 file /home/dev1usr/test/level-bug.tcl cmd {info frame $lvl} level 0
1
2
./level-bug.tcl 1
type source line 5 file /home/dev1usr/test/level-bug.tcl cmd {while true {
while true {
puts [info frame $lvl]
return -level $lvl -code break
puts 0
break
}
puts 1
break
}} level 0
invoked "break" outside of a loop
while executing
"while true {
while true {
puts [info frame $lvl]
return -level $lvl -code break
puts 0
break
}
puts 1
..."
(file "./level-bug.tcl" line 5)
obvious the while count NOT as level/frame
mfg
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)