diff options
-rw-r--r-- | generic/tclCompCmdsSZ.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/generic/tclCompCmdsSZ.c b/generic/tclCompCmdsSZ.c index 382d2d1..5d3ffd3 100644 --- a/generic/tclCompCmdsSZ.c +++ b/generic/tclCompCmdsSZ.c @@ -3575,16 +3575,16 @@ TclCompileUnsetCmd( } return TCL_ERROR; } - if (i == 1) { + if (varCount == 0) { const char *bytes; int len; bytes = Tcl_GetStringFromObj(leadingWord, &len); - if (len == 11 && !strncmp("-nocomplain", bytes, 11)) { + if (i == 1 && len == 11 && !strncmp("-nocomplain", bytes, 11)) { flags = 0; - haveFlags = 1; - } else if (len == 2 && !strncmp("--", bytes, 2)) { - haveFlags = 1; + haveFlags++; + } else if (i == (2 - flags) && len == 2 && !strncmp("--", bytes, 2)) { + haveFlags++; } else { varCount++; } @@ -3599,7 +3599,7 @@ TclCompileUnsetCmd( */ varTokenPtr = TokenAfter(parsePtr->tokenPtr); - if (haveFlags) { + for (i=0; i<haveFlags;i++) { varTokenPtr = TokenAfter(varTokenPtr); } for (i=1+haveFlags ; i<parsePtr->numWords ; i++) { |