Posted to tcl by aspect at Mon Jun 17 22:24:47 GMT 2013view raw
- #!/usr/bin/tclsh
- #
- set i [interp create -safe]
- foreach cmd [$i eval {info commands}] {
- puts "Hiding $cmd"
- $i hide $cmd
- }
- $i alias unknown metatcl $i
- proc metatcl {i cmd args} {
- puts "Invoked in child: $cmd $args"
- if {$cmd in {"set" "incr" "for" "while" "foreach"}} {
- return [$i invokehidden $cmd {*}$args]
- } else {
- return [$cmd {*}$args]
- }
- }
- $i eval {
- set x 0
- while {$x<10} {
- incr x
- puts $x
- }
- }