diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2024-03-18 08:46:29 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2024-03-18 08:46:29 (GMT) |
| commit | 64fd595e31d8a2a215ca65321c649100a279882d (patch) | |
| tree | 8be62b99d84bf1e58d80977d5ea639784fd46367 /generic/tclBasic.c | |
| parent | 41f3a744b019cb440293a8f3216eaf48631fe0ca (diff) | |
| download | tcl-64fd595e31d8a2a215ca65321c649100a279882d.zip tcl-64fd595e31d8a2a215ca65321c649100a279882d.tar.gz tcl-64fd595e31d8a2a215ca65321c649100a279882d.tar.bz2 | |
For now, revert TIP #689 implementation, until it's accepted.
Diffstat (limited to 'generic/tclBasic.c')
| -rw-r--r-- | generic/tclBasic.c | 51 |
1 files changed, 4 insertions, 47 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c index 32472ad..02607a4 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -5183,54 +5183,11 @@ TEOV_NotFound( * namespace (TIP 181). */ Namespace *savedNsPtr = NULL; - Tcl_Size qualLen; - const char *qualName = TclGetStringFromObj(objv[0], &qualLen); - currNsPtr = varFramePtr->nsPtr; - if ((currNsPtr == NULL) || (currNsPtr->unknownHandlerPtr == NULL) || - (qualLen > 2 && memchr(qualName, ':', qualLen)) /* fast check for NS:: */ - ) { - /* - * first try to find namespace unknown handler of the namespace - * of executed command if available: - */ - Namespace *altNsPtr, *dummyNsPtr; - const char *simpleName; - - (void) TclGetNamespaceForQualName(interp, qualName, currNsPtr, - TCL_FIND_IF_NOT_SIMPLE, &currNsPtr, &altNsPtr, - &dummyNsPtr, &simpleName); - if (!simpleName) { - goto globNS; - } - if (!currNsPtr || (currNsPtr == iPtr->globalNsPtr)) { - if (!altNsPtr || (altNsPtr == iPtr->globalNsPtr)) { - goto globNS; - } - currNsPtr = altNsPtr; - } - while (currNsPtr->unknownHandlerPtr == NULL || - (currNsPtr->flags & (NS_DYING | NS_DEAD)) - ) { - /* traverse to alive parent namespace containing handler */ - if (!(currNsPtr = currNsPtr->parentPtr) || - (currNsPtr == iPtr->globalNsPtr) - ) { - /* continue from alternate NS if available */ - if (!altNsPtr || (altNsPtr == iPtr->globalNsPtr)) { - goto globNS; - } - currNsPtr = altNsPtr; - altNsPtr = NULL; - continue; - globNS: - /* fallback to the global unknown */ - currNsPtr = iPtr->globalNsPtr; - if (currNsPtr == NULL) { - Tcl_Panic("TEOV_NotFound: NULL global namespace pointer"); - } - break; - } + if ((currNsPtr == NULL) || (currNsPtr->unknownHandlerPtr == NULL)) { + currNsPtr = iPtr->globalNsPtr; + if (currNsPtr == NULL) { + Tcl_Panic("TEOV_NotFound: NULL global namespace pointer"); } } |
