summaryrefslogtreecommitdiffstats
path: root/generic/tclParse.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2017-06-22 13:26:31 (GMT)
committerdgp <dgp@users.sourceforge.net>2017-06-22 13:26:31 (GMT)
commita0af7d5841f6a8fbf03f748e9e1a5827a29d6a6a (patch)
tree0399533a04774cd225f1e61c826c6b04e0981618 /generic/tclParse.c
parent9a0f3fc06f63ce3a77d1257877bc079fa5d33d99 (diff)
parentf57dacd4955b9dd474cfd9d4e4d55cac22990f6c (diff)
downloadtcl-unwanted.zip
tcl-unwanted.tar.gz
tcl-unwanted.tar.bz2
merge trunkunwanted
Diffstat (limited to 'generic/tclParse.c')
-rw-r--r--generic/tclParse.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/generic/tclParse.c b/generic/tclParse.c
index 3a04df4..5d640dc 100644
--- a/generic/tclParse.c
+++ b/generic/tclParse.c
@@ -963,13 +963,13 @@ TclParseBackslash(
*/
if (Tcl_UtfCharComplete(p, numBytes - 1)) {
- count = Tcl_UtfToUniChar(p, &unichar) + 1; /* +1 for '\' */
+ count = TclUtfToUniChar(p, &unichar) + 1; /* +1 for '\' */
} else {
char utfBytes[TCL_UTF_MAX];
memcpy(utfBytes, p, (size_t) (numBytes - 1));
utfBytes[numBytes - 1] = '\0';
- count = Tcl_UtfToUniChar(utfBytes, &unichar) + 1;
+ count = TclUtfToUniChar(utfBytes, &unichar) + 1;
}
result = unichar;
break;
@@ -1169,6 +1169,8 @@ ParseTokens(
numBytes--;
nestedPtr = TclStackAlloc(parsePtr->interp, sizeof(Tcl_Parse));
while (1) {
+ const char *curEnd;
+
if (Tcl_ParseCommand(parsePtr->interp, src, numBytes, 1,
nestedPtr) != TCL_OK) {
parsePtr->errorType = nestedPtr->errorType;
@@ -1177,8 +1179,9 @@ ParseTokens(
TclStackFree(parsePtr->interp, nestedPtr);
return TCL_ERROR;
}
+ curEnd = src + numBytes;
src = nestedPtr->commandStart + nestedPtr->commandSize;
- numBytes = parsePtr->end - src;
+ numBytes = curEnd - src;
Tcl_FreeParse(nestedPtr);
/*