| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
|
|
|
| |
problem with recent commit. [Bug 633204]
|
| |
|
| |
|
|
|
|
| |
for greater clarity of code.
|
|
|
|
|
|
|
| |
* tests/compile.test: Corrects failure of bytecompiled
[catch {return}] to have result TCL_RETURN (not TCL_OK) [Bug 633204].
This patch is a workaround for 8.4.X. A new opcode INST_RETURN is a
better long term solution for 8.5 and later.
|
| |
|
|
|
|
| |
Reported by Joe Mistachkin <joe@mistachkin.com>.
|
|
|
|
|
| |
(Tcl_ThreadAlert): Check that the stub functions are non-NULL
before calling them. They could be set to NULL by Tcl_SetNotifier.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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..
|
|
|
|
|
|
|
| |
* win/configure.in: the 8.4.1.1 patchlevel.
* unix/configure: autoconf
* win/configure autoconf
|
|
|
|
|
| |
propagate negative return codes up the call stack. [Bug 647307]
* tests/proc.test (proc-6.1): Test for Bug 647307
|
|
|
|
|
| |
string "0x" (recognize leading "0" as an integer). [Bug 648441].
* tests/parseExpr.test (parseExpr-19.1): Test for Bug 648441.
|
|
|
|
|
| |
* generic/tclThread.c (TclFinalizeThreadData): TclpMasterUnlock
must exist and be called unconditional of TCL_THREADS. [Bug #651139]
|
|
|
|
|
|
|
|
| |
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/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.
|
|
|
|
| |
failures that need to be resolved first.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
tclStubsPtr to allow for repeated load/unload of the Tcl dll by
hosting apps. [Bug 615304]
|
|
|
|
|
|
| |
to CTRL_BREAK_EVENT as it can't be ignored by the child and
proved to work on [open "|netstat 1" w+] where CTRL_C_EVENT
didn't.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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()
%
|
|
|
|
| |
DuplicateHandle() incorrectly used [Bug 618852].
|
|
|
|
| |
error which resulted in 2.0 looking less than 1.1.
|
|
|
|
|
| |
table as it wasn't referenced anywhere and cleaned-up some
casting that that wasn't needed.
|
|
|
|
|
| |
TclX didn't like it. Even though the core doesn't use the
prototypes, do offer them.
|
|
|
|
| |
prevent possible FMR error in bad alias cases.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
release #4 build both tcl and tk without problems.
|
|
|
|
| |
* library/opt/optparse.tcl: string compare
|
|
|
|
|
| |
* generic/tclInterp.c (TclPreventAliasLoop): prevent seg fault
when creating an alias command over the interp name. [Bug #641195]
|
|
|
|
|
|
|
|
|
|
| |
after the "end-" prefix.
* generic/get.test:
* generic/string.test:
* generic/tclObj.c (SetIntFromAny, SetWideIntFromAny):
* generic/tclGet.c (TclGetLong, Tcl_GetInt): simplify sign
handling before calling strtoul(l). [Bug #634856]
|
| |
|
|
|
|
|
|
|
| |
* generic/tclCompCmds.c (TclCompileRegexpCmd): add left and right
anchoring (^ and $) recognition and check starting or ending .* to
extend the number of REs that can be compiled to string match or
string equal.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
that substitutions always take place from left to right. [Bug
#635644]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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/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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
STATIC_BUILD and TCL_USE_STATIC_PACKAGES macros are set.
* win/makefile.vc:
* win/rules.vc: linkexten option now sets the TCL_USE_STATIC_PACKAGES
macro which also adds the registry and dde object files to the link
of the shell. [Patch 479697] Also factored some additional macros
that will be helpful for extension authors. Version grepping of tcl.h
will need to be added to complete this.
* win/buildall.vc.bat: Added more descriptive commentary.
|
|
|
|
|
| |
* win/tclWinReg.c: Changed the Tcl_PkgProvide() line to declare
the registry extension at version 1.1 from 1.0.
|
|
|
|
| |
avoid possible scope trouble.
|
| |
|
| |
|