summaryrefslogtreecommitdiffstats
path: root/generic/tclExecute.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2020-05-25 07:48:15 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2020-05-25 07:48:15 (GMT)
commit2d7e36f00618d7f309c3970366b10fb888b83eea (patch)
tree6e0638346f0e1254b9f22ded8cf528551d2f5927 /generic/tclExecute.c
parent2b1daf9bb29fdba966f86c054d96d564b7539684 (diff)
downloadtcl-2d7e36f00618d7f309c3970366b10fb888b83eea.zip
tcl-2d7e36f00618d7f309c3970366b10fb888b83eea.tar.gz
tcl-2d7e36f00618d7f309c3970366b10fb888b83eea.tar.bz2
Fix "string is wordchar" in compiled case handling characters > U+FFFF. Adapt testcase exposing the problem.
Diffstat (limited to 'generic/tclExecute.c')
-rw-r--r--generic/tclExecute.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index 5708772..cc366e7 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -5543,9 +5543,11 @@ TEBCresume(
ustring1 = Tcl_GetUnicodeFromObj(valuePtr, &length);
match = 1;
if (length > 0) {
+ int ch;
end = ustring1 + length;
- for (p=ustring1 ; p<end ; p++) {
- if (!tclStringClassTable[opnd].comparator(*p)) {
+ for (p=ustring1 ; p<end ; ) {
+ p += TclUniCharToUCS4(p, &ch);
+ if (!tclStringClassTable[opnd].comparator(ch)) {
match = 0;
break;
}