Attachment "1436096.patch" to
ticket [1436096fff]
added by
dgp
2007-11-28 23:46:04.
Index: generic/tclNamesp.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclNamesp.c,v
retrieving revision 1.158
diff -u -r1.158 tclNamesp.c
--- generic/tclNamesp.c 21 Nov 2007 14:30:34 -0000 1.158
+++ generic/tclNamesp.c 28 Nov 2007 16:45:10 -0000
@@ -5407,11 +5407,33 @@
return TCL_ERROR;
}
if (mapDict != NULL) {
- int size;
+ int size, done;
+ Tcl_DictSearch search;
+ Tcl_Obj *valuePtr;
if (Tcl_DictObjSize(interp, mapDict, &size) != TCL_OK) {
return TCL_ERROR;
}
+
+ for (Tcl_DictObjFirst(NULL, mapDict, &search, NULL, &valuePtr, &done);
+ !done; Tcl_DictObjNext(&search, NULL, &valuePtr, &done)) {
+ Tcl_Obj *cmdPtr;
+ const char *bytes;
+
+ if (Tcl_ListObjIndex(interp, valuePtr, 0, &cmdPtr) != TCL_OK) {
+ Tcl_DictObjDone(&search);
+ return TCL_ERROR;
+ }
+ bytes = TclGetString(cmdPtr);
+ if (bytes[0] != ':' || bytes[1] != ':') {
+ Tcl_AppendResult(interp,
+ "ensemble target is not a fully-qualified command",
+ NULL);
+ Tcl_DictObjDone(&search);
+ return TCL_ERROR;
+ }
+ }
+
if (size < 1) {
mapDict = NULL;
}