summaryrefslogtreecommitdiffstats
path: root/generic/tclNamesp.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2004-09-10 18:22:09 (GMT)
committerdgp <dgp@users.sourceforge.net>2004-09-10 18:22:09 (GMT)
commite670a163e03da4535c4a90ad9471f702c37a43ec (patch)
treee6ae0a7a7c69f1282a6d6065636be290c225da10 /generic/tclNamesp.c
parentb94a66126401085879ed9e146d694bda9416a37d (diff)
downloadtcl-e670a163e03da4535c4a90ad9471f702c37a43ec.zip
tcl-e670a163e03da4535c4a90ad9471f702c37a43ec.tar.gz
tcl-e670a163e03da4535c4a90ad9471f702c37a43ec.tar.bz2
* generic/tclNamespace.c (TclGetNamespaceForQualName): Resolved
longstanding inconsistency in the treatment of the TCL_NAMESPACE_ONLY flag revealed by testing the 2004-09-09 commits against Itcl. TCL_NAMESPACE_ONLY now acts as specified in the pre-function comment, forcing resolution in the passed in context namespace. It has been incorrectly forcing resolution in the interp's current namespace.
Diffstat (limited to 'generic/tclNamesp.c')
-rw-r--r--generic/tclNamesp.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c
index 27aff8d..7e238d0 100644
--- a/generic/tclNamesp.c
+++ b/generic/tclNamesp.c
@@ -19,7 +19,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclNamesp.c,v 1.31.2.3 2004/09/09 17:12:13 dgp Exp $
+ * RCS: @(#) $Id: tclNamesp.c,v 1.31.2.4 2004/09/10 18:22:09 dgp Exp $
*/
#include "tclInt.h"
@@ -1658,8 +1658,7 @@ TclGetNamespaceForQualName(interp, qualName, cxtNsPtr, flags,
Namespace *cxtNsPtr; /* The namespace in which to start the
* search for qualName's namespace. If NULL
* start from the current namespace.
- * Ignored if TCL_GLOBAL_ONLY or
- * TCL_NAMESPACE_ONLY are set. */
+ * Ignored if TCL_GLOBAL_ONLY is set. */
int flags; /* Flags controlling the search: an OR'd
* combination of TCL_GLOBAL_ONLY,
* TCL_NAMESPACE_ONLY,
@@ -1702,17 +1701,14 @@ TclGetNamespaceForQualName(interp, qualName, cxtNsPtr, flags,
/*
* Determine the context namespace nsPtr in which to start the primary
- * search. If TCL_NAMESPACE_ONLY or FIND_ONLY_NS was specified, search
- * from the current namespace. If the qualName name starts with a "::"
- * or TCL_GLOBAL_ONLY was specified, search from the global
- * namespace. Otherwise, use the given namespace given in cxtNsPtr, or
- * if that is NULL, use the current namespace context. Note that we
- * always treat two or more adjacent ":"s as a namespace separator.
+ * search. If the qualName name starts with a "::" or TCL_GLOBAL_ONLY
+ * was specified, search from the global namespace. Otherwise, use the
+ * namespace given in cxtNsPtr, or if that is NULL, use the current
+ * namespace context. Note that we always treat two or more
+ * adjacent ":"s as a namespace separator.
*/
- if (flags & (TCL_NAMESPACE_ONLY | FIND_ONLY_NS)) {
- nsPtr = (Namespace *) Tcl_GetCurrentNamespace(interp);
- } else if (flags & TCL_GLOBAL_ONLY) {
+ if (flags & TCL_GLOBAL_ONLY) {
nsPtr = globalNsPtr;
} else if (nsPtr == NULL) {
if (iPtr->varFramePtr != NULL) {