summaryrefslogtreecommitdiffstats
path: root/win
Commit message (Collapse)AuthorAgeFilesLines
* * win/configure:mdejong2003-02-112-52/+54
| | | | | | | | | | | | * win/configure.in: Generate error when attempting to build under Cygwin. The Cygwin port of Tcl/Tk does not build and people are filing bug reports under the mistaken impression that someone is actually maintaining the Cygwin port. A post to comp.lang.tcl asking someone to volunteer as an area maintainer has generated no results. Closing bugs 680840, 630199, and 634772 and marking as "Won't fix".
* further fs cleanupvincentdarley2003-02-101-4/+9
|
* filesystem speed up round 2vincentdarley2003-02-101-105/+84
|
* first speedups to Win filesystemvincentdarley2003-02-072-151/+185
|
* finalization and test fixesvincentdarley2003-02-044-17/+42
|
* * generic/tcl.h: Add TCL_PREFIX_IDENT andmdejong2003-01-282-5/+37
| | | | | | | | | | | | | | | | | TCL_DEBUG_IDENT, used only by TclpCreateProcess. * unix/Makefile.in: Define TCL_DBGX. * win/Makefile.in: Define TCL_DBGX. * win/tclWinPipe.c (TclpCreateProcess): Check that the Tcl pipe dll actually exists in the Tcl bin directory and panic if it is not found. Incorporate TCL_DBGX into the Tcl pipe dll name. This fixes a really mysterious error that would show up when exec'ing a 16 bit application under Win95 or Win98 when Tcl was compiled with symbols. The error seemed to indicate that the executable could not be found, but it was actually the Tcl pipe dll that could not be found.
* * win/README: Update msys+mingw URL to release 6.mdejong2003-01-271-4/+4
| | | | This version bundles gcc 3.
* * win/configure: Regen.mdejong2003-01-273-37/+105
| | | | | | | | * win/configure.in: Add test that checks to see if the compiler can cast to a union type. * win/tclWinTime.c: Squelch compiler warning about union initializer by casting to union type when compiling with gcc.
* * generic/tclIO.c (Tcl_CutChannel, Tcl_SpliceChannel):mdejong2003-01-261-10/+93
| | | | | | | | | | | | | | | | Invoke TclpCutFileChannel and TclpSpliceFileChannel. * generic/tclInt.h: Declare TclpCutFileChannel and TclpSpliceFileChannel. * unix/tclUnixChan.c (FileCloseProc, TclpOpenFileChannel, Tcl_MakeFileChannel, TclpCutFileChannel, TclpSpliceFileChannel): Implement thread load data cut and splice for file channels. This avoids an invalid memory ref when compiled with -DDEPRECATED. * win/tclWinChan.c (FileCloseProc, TclpCutFileChannel, TclpSpliceFileChannel): Implement thread load data cut and splice for file channels. This avoids an invalid memory ref that was showing up in the thread extension.
* * win/tclWin32Dll.c (TclpCheckStackSpace, squelch_warnings):mdejong2003-01-253-125/+194
| | | | | | | | | | | | | | * win/tclWinChan.c (Tcl_MakeFileChannel, squelch_warnings): * win/tclWinFCmd.c (DoRenameFile, DoCopyFile, squelch_warnings): Re-implement inline ASM SEH handlers for gcc. The esp and ebp registers are now saved on the stack instead of in global variables so that the code is thread safe. Add additional checks when TCL_MEM_DEBUG is defined to be sure the values were recovered from the stack properly. Remove squelch_warnings functions and add a dummy call in the handler methods to squelch compiler warnings.
* * win/configure:mdejong2003-01-253-42/+60
| | | | | | | | | | | | | | | * win/configure.in: Define HAVE_ALLOCA_GCC_INLINE when we detect that no alloca function is found in malloc.h and we are compiling with GCC. Remove HAVE_NO_ALLOC_DECL define. * win/tclWin32Dll.c (TclpCheckStackSpace): Don't define alloca as a cdecl function. Doing this caused a tricky runtime bug because the _alloca function expects the size argument to be passed in a register and not on the stack. To fix this problem, we use inline ASM when compiling with gcc to invoke _alloca with the size argument loaded into a register.
* * win/tclWinDde.c (Dde_Init): clarified use of tsdPtr.hobbs2003-01-251-12/+5
| | | | (DdeServerProc): better refcount handling of returnPackagePtr.
* * win/configure: Regen.mdejong2003-01-243-33/+114
| | | | | | | | | | | * win/configure.in: * win/tclWin32Dll.c (TclpCheckStackSpace): Rework the SEH exception handler logic to avoid using the stack since alloca will modify the stack. This was causing a nasty bug that would set the exception handler to 0 because it tried to pop the previous exception handler off the top of the stack.
* * win/configure: Regen.mdejong2003-01-212-16/+26
| | | | | | | | | * win/tcl.m4 (SC_CONFIG_CFLAGS): Set SHLIB_SUFFIX so that TCL_SHLIB_SUFFIX will be set to a useful value in the generated tclConfig.sh. Set SHLIB_LD_LIBS to "" or '${LIBS}' based on the --enable-shared flag. This matches the UNIX implementation.
* * win/tclWinDde.c (DdeServerProc): Deallocatemdejong2003-01-181-1/+3
| | | | | the Tcl_Obj returned by ExecuteRemoteObject if it was not saved in a connection object.
* * win/tclWinSerial.c (SerialOutputProc): add casts forhobbs2003-01-161-4/+4
| | | | bytesWritten to allow strict compilation (no warnings).
* * tests/winDde.test:hobbs2003-01-161-3/+9
| | | | | | * win/tclWinDde.c (Tcl_DdeObjCmd): Prevent crash when empty service name is passed to 'dde eval' and goto errorNoResult in request and poke error cases to free up any allocated data.
* * win/tclWin32Dll.c (squelch_warnings): Squelchmdejong2003-01-169-66/+121
| | | | | | | | | | | | | | | | | | | | | | compiler warnings from SEH ASM code. * win/tclWinChan.c (squelch_warnings): Squelch compiler warnings from SEH ASM code. * win/tclWinDde.c: Add casts to avoid compiler warnings. Pass pointer to DWORD instead of int to avoid compiler warnings. * win/tclWinFCmd.c (squelch_warnings): Add casts and fixup decls to avoid compiler warnings. Squelch compiler warnings from SEH ASM code. * win/tclWinFile.c: Add casts and fixup decls to avoid compiler warnings. Remove unused variable. * win/tclWinNotify.c: Declare as DWORD instead of int to avoid compiler warning. * win/tclWinReg.c: Add casts to avoid compiler warning. Fix assignment in if expression bug. * win/tclWinSerial.c: Add casts to avoid compiler warnings. Remove unused variable. * win/tclWinSock.c: Add casts and fixup decls to avoid compiler warnings.
* Fix mingw build problems and compiler warnings.mdejong2003-01-142-5/+13
| | | | | | | | | | | | | | | | * generic/tcl.h: Add if defined(__MINGW32__) check to code that sets the TCL_WIDE_INT_TYPE and TCL_LL_MODIFIER. * generic/tclClock.c (FormatClock): Don't define savedTimeZone and savedTZEnv if we are not going to use them. * generic/tclEnv.c: Add cast to avoid warning. * win/tclWinChan.c: Use DWORD instead of int to avoid compiler warning. * win/tclWinThrd.c: Only define allocLock, allocLockPtr, and dataKey when TCL_THREADS is defined. This avoid a compiler warning about unused variables.
* * win/README: Update msys + mingw URL, themdejong2003-01-131-2/+2
| | | | | | new release includes the released 1.0.8 version of msys which includes a number of bug fixes.
* * win/configure: Regen.mdejong2003-01-132-4/+4
| | | | | | | * win/tcl.m4 (SC_CONFIG_CFLAGS): Pull in addition of shell32.lib to LIBS_GUI that was added to the Tk tcl.m4 but never made it back into the Tcl version.
* * generic/tcl.h: Skip Tcl's define of CHAR,mdejong2003-01-133-28/+101
| | | | | | | | | | | | | | SHORT, and LONG when HAVE_WINNT_IGNORE_VOID is defined. This avoids a bunch of compiler warnings when building with Cygwin or Mingw. * win/configure: Regen. * win/configure.in: Define HAVE_WINNT_IGNORE_VOID when we detect a winnt.h that still defines CHAR, SHORT, and LONG when VOID has already been defined. * win/tcl.m4 (SC_LOAD_TCLCONFIG): Subst the TCL_DEFS loaded from tclConfig.sh so that Tcl defines can make it into the Tk Makefile.
* * win/configure: Regen.mdejong2003-01-133-27/+153
| | | | | | | | | * win/configure.in: Check for typedefs like LPFN_ACCEPT in winsock2.h and define HAVE_NO_LPFN_DECLS if not found. * win/tclWinSock.c: Define LPFN_* typedefs if HAVE_NO_LPFN_DECLS is defined. This fixes the build under Mingw and Cygwin, it was broken by the changes made on 2002-11-26.
* WinTcl crash on exit fixvincentdarley2003-01-103-10/+10
|
* non-ascii chars in file mtime fixvincentdarley2003-01-093-3/+42
|
* * win/makefile.vc:davygrvy2003-01-052-30/+43
| | | | | | | | | | | | | | | | * win/rules.vc: Fixed INSTALLDIR macro problem that blanked itself by accident causing the install target to put the tree at the root of the drive built on. Whoops.. Renamed the 'linkexten' option to be 'staticpkg'. Added 'thrdalloc' to allow the switching _on_ of the thread allocator. Under testing, I found it not to be benificial under windows for the purpose of the application I was using it for. It was more important for this app that resources for tcl threads be returned to the system rather than saved/moved to the global recycler. Be extra clean or extra fast for the default threaded build? Let's move to clean and allow it to be switched on for users who find it benificial for their use of threads.
* * win/makefile.vc: some uses of xcopy swapped to the @$(CPY) macrodavygrvy2002-12-181-6/+6
|
* * generic/tclPipe.c (TclCleanupChildren):davygrvy2002-12-172-7/+165
| | | | | | | | | | | | | | * tests/winPipe.c: * win/tclWinPipe.c (Tcl_WaitPid): * win/tclWinTest.c: Gave Tcl_WaitPid the ability to return a Win32 exception code translated into a posix style SIG*. This allows [close] to report "CHILDKILLED" without the meaning getting lost in a truncated exit code. In TclCleanupChildren(), TclpGetPid() had to get moved to before Tcl_WaitPid() as the the handle is removed from the list taking away the ability to get the process id after the wait is done. This shouldn't effect the unix implimentaion unless waitpid is called with a pid of zero, meaning "any". I don't think it is..
* * unix/configure.in: Updated configure of CVS snapshots to reflectdgp2002-12-132-3/+3
| | | | | | | * win/configure.in: the 8.4.1.1 patchlevel. * unix/configure: autoconf * win/configure autoconf
* * win/tclWinThrd.c (TclpMasterUnlock):hobbs2002-12-101-36/+23
| | | | | * generic/tclThread.c (TclFinalizeThreadData): TclpMasterUnlock must exist and be called unconditional of TCL_THREADS. [Bug #651139]
* * win/tclWinSock.c (SocketThreadExitHandler, InitSockets): Checkdavygrvy2002-12-081-15/+17
| | | | | | | | that the tsdPtr is valid before dereferencing as we call it from the exit handler, too [Bug 650353]. Another WSAStartup() loaded version comparison byte swap issue fixed. Although 0x0101 byte swapped is still 0x0101, properly claiming which is major/minor is more correct.
* * generic/tclStubInit.c: regenhobbs2002-12-062-2/+55
| | | | | | | | | | | | * generic/tclIntPlatDecls.h: regen * generic/tclInt.decls: added TclWinResetInterface * win/tclWin32Dll.c (TclWinResetInterfaces): * win/tclWinInit.c (TclpSetInitialEncodings, WinEncodingsCleanup): add exit handler that resets the encoding information to a state where we can reuse Tcl. Following these changes, it is possible to reuse Tcl (following Tcl_FindExecutable or Tcl_CreateInterp) following a Tcl_Finalize.
* * win/tclWinPipe.c: reverted back to -r1.27 due to numerous testdavygrvy2002-12-051-67/+7
| | | | failures that need to be resolved first.
* * win/tclWinPipe.c (Tcl_WaitPid): When a process exits with andavygrvy2002-12-041-5/+52
| | | | | | | | | | | | | exception, pass this notice on to the caller with a SIG* code rather than truncating the exit code and missing the meaning. This allows TclCleanupChildren() to report "CHILDKILLED". This has a different behavior than unix in that closing the read pipe to a process sends the SIGPIPE signal which is returned as a SIGPIPE exit status. On windows, we send the process a CTRL_BREAK_EVENT and get back a CONTROL_C_EXIT which is documented to mean a SIGINT which seems wrong as a system, but is the correct exit status.
* * win/tclWinPipe.c (PipeClose2Proc): Changed CTRL_C_EVENTdavygrvy2002-12-041-2/+2
| | | | to CTRL_BREAK_EVENT as it can't be ignored by the child.
* * win/tclAppInit.c (sigHandler): Protect from trying to close adavygrvy2002-12-042-6/+23
| | | | | | | | | | | | | | | | | | NULL handle. * win/tclWinPipe.c (PipeClose2Proc, TclpCreateProcess): Send a real Win32 signal (CTRL_C_EVENT) when the read channel is brought down to alert the child to close on its side. Start the process with CREATE_NEW_PROCESS_GROUP to allow the ability to send these signals. The following test case now brings down the child without the use of an external [kill] command. % set p [open "|[info name]" w+] file8d5380 % pid $p 2876 % close $p <- now doesn't block in Tcl_WaitPid() %
* * win/tclWinChan.c (Tcl_MakeFileChannel): return ofdavygrvy2002-11-271-2/+2
| | | | DuplicateHandle() incorrectly used [Bug 618852].
* * win/tclWinSock.c: WSAStartup() loaded version comparisondavygrvy2002-11-271-7/+25
| | | | error which resulted in 2.0 looking less than 1.1.
* * win/tclWinSock.c: Removed shutdown() from the functiondavygrvy2002-11-271-12/+7
| | | | | table as it wasn't referenced anywhere and cleaned-up some casting that that wasn't needed.
* * win/tclWinPort.h: Don't turn off winsock prototypes!davygrvy2002-11-271-6/+2
| | | | | TclX didn't like it. Even though the core doesn't use the prototypes, do offer them.
* Missed a couple left-overs from my TcpAccept hack. Now fixed. Sorry for thedavygrvy2002-11-271-33/+16
| | | | confusion.
* adjusted some commentary to be more accurate.davygrvy2002-11-271-5/+6
|
* Incorrect local edit of this file was previously committed that included adavygrvy2002-11-271-108/+61
| | | | TcpAccept() hack that has no business being in the core.
* * win/tclWinPort.h:davygrvy2002-11-272-403/+589
| | | | | | | | | | | | | | | | | | * win/tclWinSock.c: This patch does two things: 1) Cleans-up the winsock typedefs by using the typedefs provided by winsock2.h. This has no effect on how winsock is initialized; just makes the source code easier to read. [Patch 561305] 2) Revamps how the socket message handler thread is brough up and down to allows for cleaner exits without the use of TerminateThread(). TerminateThread is evil. No attempt has been made to resolve [Bug 593810] which may need a new channel driver version for adding a registering function whithin the transfered thread to init the handler thread. IOW, initialization of the TSD structure was getting bypassed through the thread extension's [thread::transfer] command.
* added a missing comment line to show that use of TerminateThread is evil.davygrvy2002-11-261-1/+3
|
* * win/tclWinConsole.c:davygrvy2002-11-266-128/+297
| | | | | | | | | | | | | | | | * win/tclWinPipe.c: * win/tclWinSerial.c: * win/tclWinSock.c: * win/tclWinThrd.c: * win/tclWinTime.c: General cleanup of all worker threads used by the channel drivers. Eliminates the normal case where the worker thread is terminated ('cept the winsock one). Instead, use kernel events to signal a clean exit. Only when the worker thread is blocked on an I/O call is the thread terminated. Essentially, this makes all other channel worker threads behave like the PipeReaderThread() function for it's cleaner exit behavior. This appears to fix [Bug 597924] but needs 3rd party confirmation to close the issue.
* * win/README: Update msys build env URL. Thismdejong2002-11-261-2/+2
| | | | release #4 build both tcl and tk without problems.
* * win/tclWinThrd.c (Tcl_CreateThread/TclpThreadExit): Fixeddavygrvy2002-11-191-3/+3
| | | | | | | improper compiler macros that missed the VC++ compiler. This resulted in VC++ builds using CreateThread()/ExitThread() in place of the proper _beginthreadex()/_endthreadex(). This was a large error and am surprised I missed seeing it earlier.
* * generic/tclEvent.c (TclInExit, TclInThreadExit):mdejong2002-11-074-16/+16
| | | | | | | | | | | | | | | Split out functionality of TclInExit to make it clear which one should be called in each situation. * generic/tclInt.decls: Declare TclInThreadExit. * generic/tclIntDecls.h: Regen. * generic/tclStubInit.c: Regen. * mac/tclMacChan.c (StdIOClose): * unix/tclUnixChan.c (FileCloseProc): * win/tclWinChan.c (FileCloseProc): * win/tclWinConsole.c (ConsoleCloseProc): * win/tclWinPipe.c (TclpCloseFile): * win/tclWinSerial.c (SerialCloseProc): Invoke the new TclInThreadExit method instead of TclInExit.
* * unix/configure: Regen.mdejong2002-11-062-39/+59
| | | | | | | | | * unix/tcl.m4 (SC_CONFIG_CFLAGS): Generate a fatal configure error if no ar program can be found on the path. [Bug #582039] * win/configure: Regen. * win/configure.in: Check that AR, RANLIB, and RC are found on the path when building with gcc.