diff options
Diffstat (limited to 'generic/tclStringObj.c')
| -rw-r--r-- | generic/tclStringObj.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c index 72e4a3d..46bd1c1 100644 --- a/generic/tclStringObj.c +++ b/generic/tclStringObj.c @@ -2002,9 +2002,9 @@ Tcl_AppendFormatToObj( } length = Tcl_UniCharToUtf(code, buf); #if TCL_UTF_MAX > 3 - if (!length) { + if ((code >= 0xD800) && (length < 3)) { /* Special case for handling high surrogates. */ - length = Tcl_UniCharToUtf(-1, buf); + length += Tcl_UniCharToUtf(-1, buf + length); } #endif segment = Tcl_NewStringObj(buf, length); @@ -3176,7 +3176,7 @@ ExtendStringRepWithUnicode( copyBytes: dst = objPtr->bytes + origLength; for (i = 0; i < numChars; i++) { - dst += Tcl_UniCharToUtf((int) unicode[i], dst); + dst += Tcl_UniCharToUtf(unicode[i], dst); } *dst = '\0'; objPtr->length = dst - objPtr->bytes; |
