summaryrefslogtreecommitdiffstats
path: root/generic/tclExecute.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2020-05-04 12:31:51 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2020-05-04 12:31:51 (GMT)
commit7759441602f14b3772186ea0d87f61ffdafc8404 (patch)
treec8aac29d738caa3756201b63f7a4b9a81f27ad47 /generic/tclExecute.c
parent66197cab8b6c43b474a6dceae32fc95f4eed37b9 (diff)
downloadtcl-7759441602f14b3772186ea0d87f61ffdafc8404.zip
tcl-7759441602f14b3772186ea0d87f61ffdafc8404.tar.gz
tcl-7759441602f14b3772186ea0d87f61ffdafc8404.tar.bz2
New internal function TclGetUCS4() only available when TCL_UTF_MAX=4. This fixes all "knownBug" testcases related to tip389.
Diffstat (limited to 'generic/tclExecute.c')
-rw-r--r--generic/tclExecute.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index f38e752..eeb69de 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -5571,16 +5571,10 @@ TEBCresume(
objResultPtr = Tcl_NewStringObj((const char *)
valuePtr->bytes+index, 1);
} else {
- char buf[4] = "";
- Tcl_UniChar ch = Tcl_GetUniChar(valuePtr, index);
+ char buf[8] = "";
+ int ch = TclGetUCS4(valuePtr, index);
- /*
- * This could be: Tcl_NewUnicodeObj((const Tcl_UniChar *)&ch, 1)
- * but creating the object as a string seems to be faster in
- * practical use.
- */
-
- length = Tcl_UniCharToUtf(ch, buf);
+ length = TclUCS4ToUtf(ch, buf);
objResultPtr = Tcl_NewStringObj(buf, length);
}