summaryrefslogtreecommitdiffstats
path: root/generic/tclStubInit.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2018-10-08 18:34:09 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2018-10-08 18:34:09 (GMT)
commitee49fa81d90d8396e545d07c2f5a40a48130a9dc (patch)
treec319f2a6adec30276f52ed3c16da22e1f5498a75 /generic/tclStubInit.c
parent3826a26f8a75540c7f3ff0b45f76498e85486dc9 (diff)
parentcc4dae5c0f418d304a44bb10c87c624b478b6441 (diff)
downloadtcl-ee49fa81d90d8396e545d07c2f5a40a48130a9dc.zip
tcl-ee49fa81d90d8396e545d07c2f5a40a48130a9dc.tar.gz
tcl-ee49fa81d90d8396e545d07c2f5a40a48130a9dc.tar.bz2
Merge 8.6
Also fix startup problems on win32, when the encoding path contains invalid UTF-8 (reported by François Vogel) Various other code cleanup, e.g. remove empty.zip file, as this didn't work quite as expected.
Diffstat (limited to 'generic/tclStubInit.c')
-rw-r--r--generic/tclStubInit.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c
index 2e2aa60..9a134f9 100644
--- a/generic/tclStubInit.c
+++ b/generic/tclStubInit.c
@@ -230,6 +230,9 @@ Tcl_WinUtfToTChar(
Tcl_DString *dsPtr)
{
Tcl_DStringInit(dsPtr);
+ if (!string) {
+ return NULL;
+ }
return (char *)Tcl_UtfToUniCharDString(string, len, dsPtr);
}
@@ -239,12 +242,15 @@ Tcl_WinTCharToUtf(
int len,
Tcl_DString *dsPtr)
{
- if (len > 0) {
- len /= 2;
- } else if (len == -1) {
+ Tcl_DStringInit(dsPtr);
+ if (!string) {
+ return NULL;
+ }
+ if (len < 0) {
len = wcslen((wchar_t *)string);
+ } else {
+ len /= 2;
}
- Tcl_DStringInit(dsPtr);
return Tcl_UniCharToUtfDString((Tcl_UniChar *)string, len, dsPtr);
}