summaryrefslogtreecommitdiffstats
path: root/generic/tclInt.h
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2016-07-09 13:26:46 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2016-07-09 13:26:46 (GMT)
commit11dc688b81fc6d55eb42fd23e063a5310569d71d (patch)
treef238002964c201b4b41854ef92cd6c96f870eeb6 /generic/tclInt.h
parent673b7ecc2109080c1d8ab85bede83600d5dfff1e (diff)
parent38f4a53699309fdec415cf81e5c2ba6137ff8cf4 (diff)
downloadtcl-11dc688b81fc6d55eb42fd23e063a5310569d71d.zip
tcl-11dc688b81fc6d55eb42fd23e063a5310569d71d.tar.gz
tcl-11dc688b81fc6d55eb42fd23e063a5310569d71d.tar.bz2
[1493a43044] Make [namespace upvar] ignore variable resolvers; the previous situation was completely unintuitive.
Diffstat (limited to 'generic/tclInt.h')
-rw-r--r--generic/tclInt.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/generic/tclInt.h b/generic/tclInt.h
index a6cc627..4f7ea6e 100644
--- a/generic/tclInt.h
+++ b/generic/tclInt.h
@@ -170,6 +170,21 @@ typedef struct Tcl_ResolverInfo {
} Tcl_ResolverInfo;
/*
+ * This flag bit should not interfere with TCL_GLOBAL_ONLY,
+ * TCL_NAMESPACE_ONLY, or TCL_LEAVE_ERR_MSG; it signals that the variable
+ * lookup is performed for upvar (or similar) purposes, with slightly
+ * different rules:
+ * - Bug #696893 - variable is either proc-local or in the current
+ * namespace; never follow the second (global) resolution path
+ * - Bug #631741 - do not use special namespace or interp resolvers
+ *
+ * It should also not collide with the (deprecated) TCL_PARSE_PART1 flag
+ * (Bug #835020)
+ */
+
+#define TCL_AVOID_RESOLVERS 0x40000
+
+/*
*----------------------------------------------------------------
* Data structures related to namespaces.
*----------------------------------------------------------------