summaryrefslogtreecommitdiffstats
path: root/generic/tclScan.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2019-03-02 16:04:59 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2019-03-02 16:04:59 (GMT)
commitbfaca509637e46e0ffd48c20a60b78c617c7bf44 (patch)
tree4a8907259172a0e3fb26c1592c5f5a9c9169d90c /generic/tclScan.c
parentcc3041cee0463eae2d11f0125f3921b66f67497a (diff)
downloadtcl-bfaca509637e46e0ffd48c20a60b78c617c7bf44.zip
tcl-bfaca509637e46e0ffd48c20a60b78c617c7bf44.tar.gz
tcl-bfaca509637e46e0ffd48c20a60b78c617c7bf44.tar.bz2
Backport [bd94500678e837d7] from 8.7, preventing endless loops in UTF-8 conversions when handling surrogates. Only effective when compiling with -DTCL_UTF_MAX=4|6 (default: 3). Meant for benefit of Androwish.
Diffstat (limited to 'generic/tclScan.c')
-rw-r--r--generic/tclScan.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/generic/tclScan.c b/generic/tclScan.c
index 3dae3b3..ade5f33 100644
--- a/generic/tclScan.c
+++ b/generic/tclScan.c
@@ -260,7 +260,7 @@ ValidateFormat(
Tcl_UniChar ch = 0;
int objIndex, xpgSize, nspace = numVars;
int *nassign = TclStackAlloc(interp, nspace * sizeof(int));
- char buf[TCL_UTF_MAX+1];
+ char buf[TCL_UTF_MAX+1] = "";
Tcl_Obj *errorMsg; /* Place to build an error messages. Note that
* these are messy operations because we do
* not want to use the formatting engine;
@@ -889,7 +889,7 @@ Tcl_ScanObjCmd(
i = (int)sch;
#if TCL_UTF_MAX == 4
if (!offset) {
- offset = Tcl_UtfToUniChar(string, &sch);
+ offset = TclUtfToUniChar(string, &sch);
i = (((i<<10) & 0x0FFC00) + 0x10000) + (sch & 0x3FF);
}
#endif