aboutsummaryrefslogtreecommitdiff
path: root/nshelper.tcl
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2014-10-10 18:45:34 +1000
committerSteve Bennett <steveb@workware.net.au>2014-10-10 19:07:19 +1000
commit97e38369e9957929ab86d1536018c97f921ec9ad (patch)
tree0093175237b6d8bd832590e55b7d19d4dae14df0 /nshelper.tcl
parent20e9c4c1decdadcec69e43bd7c14f51996baf94c (diff)
downloadjimtcl-97e38369e9957929ab86d1536018c97f921ec9ad.zip
jimtcl-97e38369e9957929ab86d1536018c97f921ec9ad.tar.gz
jimtcl-97e38369e9957929ab86d1536018c97f921ec9ad.tar.bz2
namespace: restore namespace import support
Commit 8e28d066 "fixed" infinite namespace import recursion by simply disabling support for import. This commit restores support by detecting self-import. Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'nshelper.tcl')
-rw-r--r--nshelper.tcl3
1 files changed, 3 insertions, 0 deletions
diff --git a/nshelper.tcl b/nshelper.tcl
index 33acb51..d0cb35a 100644
--- a/nshelper.tcl
+++ b/nshelper.tcl
@@ -63,6 +63,9 @@ proc {namespace import} {args} {
foreach pattern $args {
foreach cmd [info commands [namespace canon $current $pattern]] {
+ if {[namespace qualifiers $cmd] eq $current} {
+ return -code error "import pattern \"$pattern\" tries to import from namespace \"$current\" into itself"
+ }
alias ${current}::[namespace tail $cmd] $cmd
}
}