diff options
| author | griffin <briang42@easystreet.net> | 2023-03-25 00:29:59 (GMT) |
|---|---|---|
| committer | griffin <briang42@easystreet.net> | 2023-03-25 00:29:59 (GMT) |
| commit | 879e7b7112b429b14e6c6bb70873c4fe41d59e1c (patch) | |
| tree | 8afefec0015395ec4eceda2146ca978b63782cb3 /generic/tclUtil.c | |
| parent | ef7bbf24e8812d54b66b071036a2ff875ccb98d6 (diff) | |
| parent | b0a23df7d6a04013d6ee706f7c7a7f12b6d5b3ef (diff) | |
| download | tcl-879e7b7112b429b14e6c6bb70873c4fe41d59e1c.zip tcl-879e7b7112b429b14e6c6bb70873c4fe41d59e1c.tar.gz tcl-879e7b7112b429b14e6c6bb70873c4fe41d59e1c.tar.bz2 | |
Merge trunk
Diffstat (limited to 'generic/tclUtil.c')
| -rw-r--r-- | generic/tclUtil.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/generic/tclUtil.c b/generic/tclUtil.c index 38e562d..9248571 100644 --- a/generic/tclUtil.c +++ b/generic/tclUtil.c @@ -1150,13 +1150,13 @@ TclScanElement( */ requireEscape = 1; - length -= (length > 0); + length -= (length+1 > 1); p++; break; } if ((p[1] == '{') || (p[1] == '}') || (p[1] == '\\')) { extra++; /* Escape sequences all one byte longer. */ - length -= (length > 0); + length -= (length+1 > 1); p++; } forbidNone = 1; @@ -4033,10 +4033,11 @@ TclGetProcessGlobalValue( Tcl_MutexLock(&pgvPtr->mutex); epoch = ++pgvPtr->epoch; - Tcl_UtfToExternalDStringEx(pgvPtr->encoding, pgvPtr->value, - pgvPtr->numBytes, TCL_ENCODING_NOCOMPLAIN, &native); - Tcl_ExternalToUtfDStringEx(current, Tcl_DStringValue(&native), - Tcl_DStringLength(&native), TCL_ENCODING_NOCOMPLAIN, &newValue); + Tcl_UtfToExternalDStringEx(NULL, pgvPtr->encoding, pgvPtr->value, + pgvPtr->numBytes, TCL_ENCODING_PROFILE_TCL8, &native, NULL); + Tcl_ExternalToUtfDStringEx(NULL, current, Tcl_DStringValue(&native), + Tcl_DStringLength(&native), TCL_ENCODING_PROFILE_TCL8, + &newValue, NULL); Tcl_DStringFree(&native); Tcl_Free(pgvPtr->value); pgvPtr->value = (char *)Tcl_Alloc(Tcl_DStringLength(&newValue) + 1); |
