From 338b9ec9d27a63172d899b020d77c00abc84590c Mon Sep 17 00:00:00 2001 From: dgp Date: Mon, 24 Sep 2018 16:15:25 +0000 Subject: Silence debugging message in test suite. --- tests/httpTest.tcl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/httpTest.tcl b/tests/httpTest.tcl index 9cd7a5d..326b361 100644 --- a/tests/httpTest.tcl +++ b/tests/httpTest.tcl @@ -25,7 +25,7 @@ package require http namespace eval ::http { variable TestStartTimeInMs [clock milliseconds] - catch {puts stdout "Start time (zero ms) is $TestStartTimeInMs"} +# catch {puts stdout "Start time (zero ms) is $TestStartTimeInMs"} } namespace eval ::httpTest { -- cgit v0.12 From ac61d77a4196e4243153563d9cae24f2f20550bc Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 24 Sep 2018 23:24:00 +0000 Subject: More fixes in Tcl_WinTChar2Utf: Don't restart loop when output contains null-byte. --- generic/tclStubInit.c | 18 +++++++++--------- win/tclWin32Dll.c | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 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; diff --git a/win/tclWin32Dll.c b/win/tclWin32Dll.c index 13a3dec..60edbab 100644 --- a/win/tclWin32Dll.c +++ b/win/tclWin32Dll.c @@ -506,8 +506,8 @@ Tcl_WinTCharToUtf( Tcl_DString *dsPtr) /* Uninitialized or free DString in which the * converted string is stored. */ { - char *p, *r; - int size; + char *p; + int size, i = 0; if (len > 0) { len /= 2; @@ -515,18 +515,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; -- cgit v0.12