summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2023-03-08 11:12:04 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2023-03-08 11:12:04 (GMT)
commitfa28b1f243cc546f139050545122af9cc297d0b7 (patch)
tree180bb811cc9c9bdc93b4e23a2835be3d329cee2d
parent9aea48988c29a181e815be248de624c7bf29d5bc (diff)
parent3203978c65afb3d5f284741440e6276f13d01e63 (diff)
downloadtcl-fa28b1f243cc546f139050545122af9cc297d0b7.zip
tcl-fa28b1f243cc546f139050545122af9cc297d0b7.tar.gz
tcl-fa28b1f243cc546f139050545122af9cc297d0b7.tar.bz2
Merge 8.7
-rw-r--r--generic/tclTestObj.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/generic/tclTestObj.c b/generic/tclTestObj.c
index 3bf6989..6f919eb 100644
--- a/generic/tclTestObj.c
+++ b/generic/tclTestObj.c
@@ -1261,7 +1261,7 @@ TeststringobjCmd(
static const char *const options[] = {
"append", "appendstrings", "get", "get2", "length", "length2",
"set", "set2", "setlength", "maxchars", "range", "appendself",
- "appendself2", NULL
+ "appendself2", "newunicode", NULL
};
if (objc < 3) {
@@ -1497,6 +1497,23 @@ TeststringobjCmd(
Tcl_AppendUnicodeToObj(varPtr[varIndex], unicode + length, size - length);
Tcl_SetObjResult(interp, varPtr[varIndex]);
break;
+ case 13: /* newunicode*/
+ unicode = (Tcl_UniChar *)Tcl_Alloc((objc - 3) * sizeof(Tcl_UniChar));
+ for (i = 0; i < (objc - 3); ++i) {
+ int val;
+ if (Tcl_GetIntFromObj(interp, objv[i + 3], &val) != TCL_OK) {
+ break;
+ }
+ unicode[i] = (Tcl_UniChar)val;
+ }
+ if (i < (objc-3)) {
+ Tcl_Free(unicode);
+ return TCL_ERROR;
+ }
+ SetVarToObj(varPtr, varIndex, Tcl_NewUnicodeObj(unicode, objc - 3));
+ Tcl_SetObjResult(interp, varPtr[varIndex]);
+ Tcl_Free(unicode);
+ break;
}
return TCL_OK;