summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--generic/tclBasic.c2
-rw-r--r--tests/namespace.test4
2 files changed, 3 insertions, 3 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index 93c3b43..ffd69c4 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -4732,7 +4732,7 @@ TEOV_NotFound(
currNsPtr = varFramePtr->nsPtr;
if ((currNsPtr == NULL) || (currNsPtr->unknownHandlerPtr == NULL) ||
- (qualLen > 2 && (*qualName == ':') && (*(qualName+1) == ':'))
+ (qualLen > 2 && memchr(qualName, ':', qualLen)) /* fast check for NS:: */
) {
/*
* first try to find namespace unknown handler of the namespace
diff --git a/tests/namespace.test b/tests/namespace.test
index 74cd6a9..c8c1992 100644
--- a/tests/namespace.test
+++ b/tests/namespace.test
@@ -3052,10 +3052,10 @@ test namespace-52.13 {unknown: invocation outside of NS doesn't evade namespace
proc _unknown args {list ::foo:bar:_unknown [uplevel {namespace current}] $args}
namespace unknown [namespace current]::_unknown
}
- list [namespace inscope ::foo::bar {xxx}] [namespace inscope ::foo {bar::xxx}] [::foo::bar::xxx]
+ list [namespace inscope ::foo::bar {xxx}] [namespace inscope ::foo {bar::xxx}] [::foo::bar::xxx] [namespace inscope :: {foo::bar::xxx}]
} -cleanup {
namespace delete ::foo
-} -result {{::foo:bar:_unknown ::foo::bar xxx} {::foo:bar:_unknown ::foo bar::xxx} {::foo:bar:_unknown :: ::foo::bar::xxx}}
+} -result {{::foo:bar:_unknown ::foo::bar xxx} {::foo:bar:_unknown ::foo bar::xxx} {::foo:bar:_unknown :: ::foo::bar::xxx} {::foo:bar:_unknown :: foo::bar::xxx}}
# TIP 314 - ensembles with parameters
test namespace-53.1 {ensembles: parameters} {