summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2020-04-28 20:46:29 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2020-04-28 20:46:29 (GMT)
commit0e5cda3a47b40f4480c828b607cf21c0d22826b3 (patch)
tree357487639a56edeff69fa0e42acc36a091a9cb61 /generic
parent731ea18a69ed151c266cffc33812409d537dfc4e (diff)
parentf57801a3b05da369c26d5f21a5907d066b5f4f63 (diff)
downloadtcl-0e5cda3a47b40f4480c828b607cf21c0d22826b3.zip
tcl-0e5cda3a47b40f4480c828b607cf21c0d22826b3.tar.gz
tcl-0e5cda3a47b40f4480c828b607cf21c0d22826b3.tar.bz2
Merge 8.7
Diffstat (limited to 'generic')
-rw-r--r--generic/tclTest.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/generic/tclTest.c b/generic/tclTest.c
index 065abec..1597e04 100644
--- a/generic/tclTest.c
+++ b/generic/tclTest.c
@@ -6841,13 +6841,13 @@ TestUtfNextCmd(
}
}
- if (numBytes > (int)sizeof(buffer)-2) {
- Tcl_AppendResult(interp, "\"testutfnext\" can only handle 30 bytes", NULL);
+ if (numBytes > (int)sizeof(buffer)-3) {
+ Tcl_AppendResult(interp, "\"testutfnext\" can only handle 29 bytes", NULL);
return TCL_ERROR;
}
memcpy(buffer + 1, bytes, numBytes);
- buffer[0] = buffer[numBytes + 1] = '\x00';
+ buffer[0] = buffer[numBytes + 1] = buffer[numBytes + 2] = '\x00';
first = result = TclUtfNext(buffer + 1);
while ((buffer[0] = *p++) != '\0') {
@@ -6858,6 +6858,15 @@ TestUtfNextCmd(
return TCL_ERROR;
}
}
+ p = tobetested;
+ while ((buffer[numBytes + 1] = *p++) != '\0') {
+ /* Run Tcl_UtfNext with many more possible bytes at src[end], all should give the same result */
+ result = TclUtfNext(buffer + 1);
+ if (first != result) {
+ Tcl_AppendResult(interp, "Tcl_UtfNext is not supposed to read src[end]", NULL);
+ return TCL_ERROR;
+ }
+ }
Tcl_SetObjResult(interp, Tcl_NewIntObj(first - buffer - 1));