summaryrefslogtreecommitdiffstats
path: root/generic/tclStubInit.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tclStubInit.c')
-rw-r--r--generic/tclStubInit.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c
index 66ad753..6614764 100644
--- a/generic/tclStubInit.c
+++ b/generic/tclStubInit.c
@@ -258,8 +258,8 @@ Tcl_WinTCharToUtf(
int len,
Tcl_DString *dsPtr)
{
- char *p, *r;
- int size;
+ char *p;
+ int size, i = 0;
if (len > 0) {
len /= 2;
@@ -267,18 +267,18 @@ Tcl_WinTCharToUtf(
size = WideCharToMultiByte(CP_UTF8, 0, string, len, 0, 0, NULL, NULL);
Tcl_DStringInit(dsPtr);
Tcl_DStringSetLength(dsPtr, size+8); /* Add some spare, in case of NULL-bytes */
- r = p = (char *)Tcl_DStringValue(dsPtr);
+ p = (char *)Tcl_DStringValue(dsPtr);
WideCharToMultiByte(CP_UTF8, 0, string, len, p, size, NULL, NULL);
if (len == -1) --size; /* account for 0-byte at string end */
- while (r < p+size) {
- if (!*r) {
+ while (i < size) {
+ if (!p[i]) {
/* Output contains '\0'-byte, but Tcl expect two-bytes: C0 80 */
- memmove(r+2, r+1, p-r+size-1);
- memcpy(r++, "\xC0\x80", 2);
+ memmove(p+i+2, p+i+1, size-i-1);
+ memcpy(p + i++, "\xC0\x80", 2);
Tcl_DStringSetLength(dsPtr, ++size + 1);
- r = p = (char *)Tcl_DStringValue(dsPtr);
+ p = (char *)Tcl_DStringValue(dsPtr);
}
- ++r;
+ ++i;
}
Tcl_DStringSetLength(dsPtr, size);
p[size] = 0;