diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2018-10-08 18:34:09 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2018-10-08 18:34:09 (GMT) |
| commit | ee49fa81d90d8396e545d07c2f5a40a48130a9dc (patch) | |
| tree | c319f2a6adec30276f52ed3c16da22e1f5498a75 /win | |
| parent | 3826a26f8a75540c7f3ff0b45f76498e85486dc9 (diff) | |
| parent | cc4dae5c0f418d304a44bb10c87c624b478b6441 (diff) | |
| download | tcl-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 'win')
| -rw-r--r-- | win/Makefile.in | 1 | ||||
| -rw-r--r-- | win/makefile.vc | 16 | ||||
| -rw-r--r-- | win/tclWin32Dll.c | 10 | ||||
| -rw-r--r-- | win/tclWinFCmd.c | 3 |
4 files changed, 11 insertions, 19 deletions
diff --git a/win/Makefile.in b/win/Makefile.in index f36c38b..e2acb1b 100644 --- a/win/Makefile.in +++ b/win/Makefile.in @@ -495,7 +495,6 @@ $(TCLSH): $(TCLSH_OBJS) @LIBRARIES@ $(TCL_STUB_LIB_FILE) tclsh.$(RES) $(CC) $(CFLAGS) $(TCLSH_OBJS) $(TCL_LIB_FILE) $(TCL_STUB_LIB_FILE) $(LIBS) \ tclsh.$(RES) $(CC_EXENAME) $(LDFLAGS_CONSOLE) @VC_MANIFEST_EMBED_EXE@ - cat ${TOOL_DIR}/empty.zip >> ${TCLSH} cat32.$(OBJEXT): cat.c $(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME) diff --git a/win/makefile.vc b/win/makefile.vc index 77d56b8..2554893 100644 --- a/win/makefile.vc +++ b/win/makefile.vc @@ -123,7 +123,6 @@ TCLDDELIBNAME = $(PROJECT)dde$(DDEVERSION)$(SUFX:t=).$(EXT) TCLDDELIB = $(OUT_DIR)\$(TCLDDELIBNAME)
TCLTEST = $(OUT_DIR)\$(PROJECT)test.exe
-CAT32 = $(OUT_DIR)\cat32.exe
TCLSHOBJS = \
$(TMP_DIR)\tclAppInit.obj \
@@ -384,20 +383,20 @@ release: setup $(TCLSH) $(TCLSTUBLIB) dlls pkgs core: setup $(TCLLIB) $(TCLSTUBLIB)
shell: setup $(TCLSH)
dlls: setup $(TCLREGLIB) $(TCLDDELIB)
-all: setup $(TCLSH) $(TCLSTUBLIB) dlls $(CAT32) pkgs
-tcltest: setup $(TCLTEST) dlls $(CAT32)
+all: setup $(TCLSH) $(TCLSTUBLIB) dlls pkgs
+tcltest: setup $(TCLTEST) dlls
install: install-binaries install-libraries install-docs install-pkgs
setup: default-setup
test: test-core test-pkgs
-test-core: setup $(TCLTEST) dlls $(CAT32)
+test-core: setup $(TCLTEST) dlls
set TCL_LIBRARY=$(ROOT:\=/)/library
$(DEBUGGER) $(TCLTEST) "$(ROOT:\=/)/tests/all.tcl" $(TESTFLAGS) -loadfile <<
package ifneeded dde 1.4.0 [list load "$(TCLDDELIB:\=/)" dde]
package ifneeded registry 1.3.2 [list load "$(TCLREGLIB:\=/)" registry]
<<
-runtest: setup $(TCLTEST) dlls $(CAT32)
+runtest: setup $(TCLTEST) dlls
set TCL_LIBRARY=$(ROOT:\=/)/library
$(DEBUGGER) $(TCLTEST) $(SCRIPT)
@@ -419,11 +418,11 @@ $(TCLLIB): $(TCLOBJS) $**
<<
$(_VC_MANIFEST_EMBED_DLL)
+
$(TCLIMPLIB): $(TCLLIB)
!endif # $(STATIC_BUILD)
-
$(TCLSTUBLIB): $(TCLSTUBOBJS)
$(LIBCMD) -nodefaultlib $(TCLSTUBOBJS)
@@ -485,11 +484,6 @@ clean-pkgs: popd \
)
-$(CAT32): $(WINDIR)\cat.c
- $(cc32) $(cflags) $(crt) -D_CRT_NONSTDC_NO_DEPRECATE -DCONSOLE -Fo$(TMP_DIR)\ $?
- $(CONEXECMD) -stack:16384 $(TMP_DIR)\cat.obj
- $(_VC_MANIFEST_EMBED_EXE)
-
#---------------------------------------------------------------------
# Regenerate the stubs files. [Development use only]
#---------------------------------------------------------------------
diff --git a/win/tclWin32Dll.c b/win/tclWin32Dll.c index 04d27dd..dca6875 100644 --- a/win/tclWin32Dll.c +++ b/win/tclWin32Dll.c @@ -473,7 +473,7 @@ Tcl_WinUtfToTChar( { Tcl_DStringInit(dsPtr); if (!string) { - return (TCHAR *)Tcl_DStringValue(dsPtr); + return NULL; } return Tcl_UtfToUniCharDString(string, len, dsPtr); } @@ -488,12 +488,12 @@ Tcl_WinTCharToUtf( { Tcl_DStringInit(dsPtr); if (!string) { - return Tcl_DStringValue(dsPtr); + return NULL; } - if (len > 0) { - len /= 2; - } else if (len < 0) { + if (len < 0) { len = wcslen(string); + } else { + len /= 2; } return Tcl_UniCharToUtfDString(string, len, dsPtr); } diff --git a/win/tclWinFCmd.c b/win/tclWinFCmd.c index a69dbe5..c3ced34 100644 --- a/win/tclWinFCmd.c +++ b/win/tclWinFCmd.c @@ -337,7 +337,7 @@ DoRenameFile( * character is either end-of-string or a directory separator */ - if ((strncmp(src, dst, (size_t) Tcl_DStringLength(&srcString))==0) + if ((strncmp(src, dst, Tcl_DStringLength(&srcString))==0) && (dst[Tcl_DStringLength(&srcString)] == '\\' || dst[Tcl_DStringLength(&srcString)] == '/' || dst[Tcl_DStringLength(&srcString)] == '\0')) { @@ -1649,7 +1649,6 @@ ConvertFileNameFormat( * likely to lead to infinite loops. */ - Tcl_DStringInit(&ds); tempString = TclGetString(tempPath); nativeName = Tcl_WinUtfToTChar(tempString, tempPath->length, &ds); Tcl_DecrRefCount(tempPath); |
