summaryrefslogtreecommitdiffstats
path: root/generic/tclUtil.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tclUtil.c')
-rw-r--r--generic/tclUtil.c13
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);