Demo script:
% namespace eval demo {
proc namespace args {puts $args}
::namespace code {namespace inscope foo}
}
namespace inscope foo
[::namespace code] tries to detect and simplify cases where
it would produce nested [::namespace inscope] calls. In the
case where a namespace has its own custom "namespace"
command, though, this is not correct.
There is also a more fundamental design flaw
that the functioning of [namespace code] appears to
rely on an assumption that the [::namespace] command
is never [rename]d.
Since there's no way I can think of to deal with the
possibility of the renaming of commands between the
time [namespace code] quotes a script, and the time
the quoted script is eval's by a callback operation, that
weakness may just have to be accepted. The bug demo
submitted ought to be fixable though.
Note, this analysis also implies that
tests namespace-22.2 and namespace-22.3
are incorrect.
Fix is in checkin
http://core.tcl.tk/tcl/info/ac4c249ecf
Please review, and if acceptable, either merge
to core branch, or give me the ok to do so.
Looks OK to me
committed.