diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2023-03-08 11:12:04 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2023-03-08 11:12:04 (GMT) |
| commit | fa28b1f243cc546f139050545122af9cc297d0b7 (patch) | |
| tree | 180bb811cc9c9bdc93b4e23a2835be3d329cee2d | |
| parent | 9aea48988c29a181e815be248de624c7bf29d5bc (diff) | |
| parent | 3203978c65afb3d5f284741440e6276f13d01e63 (diff) | |
| download | tcl-fa28b1f243cc546f139050545122af9cc297d0b7.zip tcl-fa28b1f243cc546f139050545122af9cc297d0b7.tar.gz tcl-fa28b1f243cc546f139050545122af9cc297d0b7.tar.bz2 | |
Merge 8.7
| -rw-r--r-- | generic/tclTestObj.c | 19 |
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; |
