summaryrefslogtreecommitdiffstats
path: root/win/tclWinPipe.c
Commit message (Collapse)AuthorAgeFilesLines
* [Bug 3508771] load tclreg.dll in cygwin tclshjan.nijtmans2012-04-241-1/+1
|\ | | | | | | Implement TclWinGetSockOpt, TclWinGetServByName and TclWinCPUID for Cygwin
| * [Bug 3508771] load tclreg.dll in cygwin tclshjan.nijtmans2012-04-241-1/+1
| |\ | | | | | | | | | Implement TclWinGetSockOpt, TclWinGetServByName and TclWinCPUID for Cygwin
| | * merge trunkjan.nijtmans2012-04-241-1/+1
| | |\ | | |/ | |/|
| | * tclpGetPid signature change (stub entry only, not for macro),jan.nijtmans2012-04-061-1/+1
| | | | | | | | | | | | for win64 compatibility with future cygwin64 correctly use win32 as default when cross-compiling under cygwin
* | | make some more internal tables constjan.nijtmans2012-04-231-1/+1
|\ \ \ | |/ /
| * | make some more internal tables constjan.nijtmans2012-04-231-1/+1
| |/ | | | | On cygwin, install dll's in /usr/bin, not in /usr/lib
* | [Bug 3388350] mingw64 compiler warningsjan.nijtmans2011-08-151-15/+0
|\ \ | |/
| * [Bug 3388350] mingw64 compiler warningsjan.nijtmans2011-08-151-25/+0
| |
* | [Bug 3388350] mingw64 compiler warningsjan.nijtmans2011-08-091-9/+0
| |
* | Now that we're no longer using SCM based on RCS, the RCS Keyword lines causedgp2011-03-021-2/+0
|\ \ | |/ | | more harm than good. Purged them.
| * Now that we're no longer using SCM based on RCS, the RCS Keyword lines causedgp2011-03-011-2/+0
| | | | | | more harm than good. Purged them.
| * * win/tclWinPipe.c (Tcl_WaitPid): Backport of fix made to the headandreas_kupries2006-03-141-5/+21
| | | | | | | | | | | | | | | | | | | | by David Gravereaux in 2004. See ChangeLog entry 2004-01-19. [Bug 1381436]. Fixed a thread-safety problem with the process list. The delayed cut operation after the wait was going stale by being outside the list lock. It now cuts within the lock and does a locked splice for when it needs to instead. [Bug 859820]
| * Finalization of the pipes are now solely done in TclpFinalizePipes andvasiljevic2006-03-101-34/+11
| | | | | | | | | | | | not over the thread-exit handler, because the order of actions the Tcl generic core will impose may result in cores/hangs if the thread exit handler tearis down pipes too early (see Bug # 1437595).
| * * win/tclWinPipe.c: Applied patch #1267871 by Matt Newman whichpatthoyts2005-11-041-12/+8
| | | | | | | | | | * win/tclWinPort.h: provides extended error code support. * tests/exec.test: Wrote some tests for this feature.
| * Backport of fix for [Bug 1245953]dkf2005-07-281-2/+2
| |
| * bug 1225044Kevin B Kenny2005-06-221-21/+41
| |
| * bug 1225727Kevin B Kenny2005-06-221-7/+4
| |
| * bugs 1194458 and 1225044Kevin B Kenny2005-06-211-32/+17
| |
| * * win/tclWinPipe.c: The pipe channel driver now respectsdavygrvy2005-04-191-17/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the -blocking option when closing. The windows pipe driver now has the same behavior as the UNIX side. This change is to avoid a hung shell when exiting due to open pipes that refuse to close in a graceful manner. * doc/open.n: Added a note about -blocking 0 and lack of exit status as it had never been documented. [Bug 947693] ***POTENTIAL INCOMPATIBILITY*** Scripts that use async pipes on windows, must (like the UNIX side) set -blocking to 1 before calling [close] to receive the exit status. * tests/winPipe.test (winpipe-6.1/2): added 'fconfigure $f -blocking 1' so the exit status can be acquired.
| * TIP#218 IMPLEMENTATIONandreas_kupries2005-01-271-4/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclDecls.h: Regenerated from tcl.decls. * generic/tclStubInit.c: * doc/CrtChannel.3: Documentation of extended API, * generic/tcl.decls: extended testsuite, and * generic/tcl.h: implementation. Removal of old * generic/tclIO.c: driver-specific TclpCut/Splice * generic/tclInt.h: functions. Replaced with generic * tests/io.test: thread-action calls through the * unix/tclUnixChan.c: new hooks. Update of all builtin * unix/tclUnixPipe.c: channel drivers to version 4. * unix/tclUnixSock.c: Windows drivers extended to * win/tclWinChan.c: manage thread state in a thread * win/tclWinConsole.c: action handler. * win/tclWinPipe.c: * win/tclWinSerial.c: * win/tclWinSock.c: * mac/tclMacChan.c:
| * (TclpCreateProcess): When under NT, with no console, and executing adavygrvy2004-05-101-2/+2
| | | | | | | | | | DOS application, the path priming does not need an ending space as BuildCommandLine() will do this for us.
| * (BuildCommandLine): Append a space when the path got primed.davygrvy2004-05-101-4/+6
| |
| * backport of BuildCommandLine changes to mirror msvcrt's parse_cmdline() ↵davygrvy2004-02-251-16/+10
| | | | | | | | rules of quoting
| * * win/tclWinPipe.c (BuildCommandLine): Applied the patch comingandreas_kupries2003-10-211-3/+6
| | | | | | | | | | with [Bug 805605] to the code, fixing the incorrect use of ispace noted by Ronald Dauster <ronaldd@users.sourceforge.net>.
| * * win/tclWinPipe.c: fixed a bug in BuildCommandLine.mdejong2003-10-041-2/+3
| | | | | | | | | | | | This bug built a command line with a missing space between tclpipe.dll and the following arguments. It caused error in Windows 98 when exec command.com (e.g. dir) [Bug 789040]
| * The windows port of expect can call TclWinAddProcess before anydavygrvy2003-09-281-1/+4
| | | | | | | | | | of the other pipe functions. Added a missing PipeInit() call to make sure the initialization happens.
| * * win/Makefile.in: Don't define TCL_DBGXmdejong2003-07-161-7/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | symbol for every compile. Instead, define TCL_PIPE_DLL only when compiling tclWinPipe.c. This will break other build systems, so they will need to remove the TCL_DBGX define and replace it with a define for TCL_PIPE_DLL. * win/makefile.vc: Ditto. * win/tclWinPipe.c (TclpCreateProcess): Remove PREFIX_IDENT and DEBUG_IDENT from top of file. Use TCL_PIPE_DLL passed in from build env instead of trying to construct the dll name from already defined symbols. This approach is more flexible and better in the long run.
| * * generic/tcl.h: Removed TCL_PREFIX_IDENT and TCL_DEBUG_IDENTdgp2003-03-121-3/+6
| | | | | | | | | | * win/tclWinPipe.c: from tcl.h -- they are not part of Tcl's public interface. Put them in win/tclWinPipe.c where they are used.
* | Various CYGWIN-related fixesnijtmans2010-01-311-7/+5
| | | | | | | | | | | | | | | | | | backported from HEAD. Still configure script not modified, so CYGWIN build is still disabled. Reason: although the build succeeds with those changes, many tests still fail.
* | various "const" additions, in line with TIP #27nijtmans2007-02-201-17/+17
| |
* | * win/tclWinPipe.c (TclpCreateProcess): change panics to Tclhobbs2006-03-291-31/+38
| | | | | | | | errors and do proper refcounting of noe objPtr. [bug 1194429]
* | * doc/CrtChannel.3: Added TCL_CHANNEL_VERSION_5, made itandreas_kupries2006-03-271-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tcl.h: the version where the "truncateProc" * generic/tclIO.c: is defined at, and moved all channel * generic/tclIOGT.c: drivers of Tcl to v5. * generic/tclIORChan.c: * unix/tclUnixChan.c: * unix/tclUnixPipe.c: * win/tclWinChan.c: * win/tclWinConsole.c: * win/tclWinPipe.c: * win/tclWinSerial.c: * win/tclWinSock.c:
* | Finalization of the sockets/pipesvasiljevic2006-03-101-33/+10
| | | | | | | | | | | | | | | | is now solely done in TclpFinalizeSockets() and TclpFinalizePipes() and not over the thread-exit handler, because the order of actions the Tcl generic core will impose may result in cores/hangs if the thread exit handler tears down corresponding subsystem(s) too early.
* | * win/tclWinPort.h: Applied patch #1267871 by Matt Newman forpatthoyts2005-11-041-9/+9
| | | | | | | | | | | | * win/tclWinPipe.c: extended error code support on Windows. * tests/exec.test: Tests for extended error codes. * generic/tclPipe.c: Permit long codes (platform macros permitting).
* | ANSIfydkf2005-11-041-28/+30
| |
* | * generic/tclPipe.c (TclCreatePipeline): Arrange for POSIX systems todkf2005-07-281-2/+2
| | | | | | | | | | | | | | | | * unix/tclUnixPipe.c (TclpOpenFile): use the O_APPEND flag for * tests/exec.test (exec-19.1): files opened in a pipeline like ">>this". Note that Windows cannot support such access; there is no equivalent flag on the handle that can be set at the kernel-call level. The test is unix-specific in every way. [Bug 1245953]
* | Getting more systematic about styledkf2005-07-241-647/+642
| |
* | bug 1225044Kevin B Kenny2005-06-221-2/+7
| |
* | bug 1225727Kevin B Kenny2005-06-221-7/+4
| |
* | Merged kennykb-numerics-branch back to the head; TIPs 132 and 232Kevin B Kenny2005-05-101-1/+1
| |
* | TIP#218 IMPLEMENTATIONandreas_kupries2005-01-271-4/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclDecls.h: Regenerated from tcl.decls. * generic/tclStubInit.c: * doc/CrtChannel.3: Documentation of extended API, * generic/tcl.decls: extended testsuite, and * generic/tcl.h: implementation. Removal of old * generic/tclIO.c: driver-specific TclpCut/Splice * generic/tclInt.h: functions. Replaced with generic * tests/io.test: thread-action calls through the * unix/tclUnixChan.c: new hooks. Update of all builtin * unix/tclUnixPipe.c: channel drivers to version 4. * unix/tclUnixSock.c: Windows drivers extended to * win/tclWinChan.c: manage thread state in a thread * win/tclWinConsole.c: action handler. * win/tclWinPipe.c: * win/tclWinSerial.c: * win/tclWinSock.c:
* | * generic/tclUtil.c: Updated Tcl_GetNameOfExecutable() todgp2004-12-011-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclEncoding.c: make use of a ProcessGlobalValue for * generic/tclEvent.c: storing the executable name. Added internal routines Tcl(Get|Set)ObjNameOfExecutable() to access that storage in Tcl_Obj, rather than string format. * unix/tclUnixFile.c: Rewrote TclpFindExecutable() to use * win/tclWinFile.c: TclSetObjNameOfExecutable to store the executable name it computes. * generic/tclInt.h: Added internal stub entries for * generic/tclInt.decls: TclpFindExecutable and Tcl(Get|Set)ObjNameOfExecutable. * generic/tclIntDecls.h: make genstubs * generic/tclStubInit.c: * generic/tclCmdIL.c: Retrieve executable name in Tcl_Obj form * win/tclWinPipe.c: instead of string form. * unix/tclUnixTest.c: Update [testfindexecutable] command to use new internal interfaces.
* | Patch 976520 reworks several of the details involved withdgp2004-11-301-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | startup/initialization of the Tcl library, focused on the activities of Tcl_FindExecutable(). * generic/tclIO.c: Removed bogus claim in comment that encoding "iso8859-1" is "built-in" to Tcl. * generic/tclInt.h: Created a new struct ProcessGlobalValue, * generic/tclUtil.c: routines Tcl(Get|Set)ProcessGlobalValue, and function type TclInitProcessGlobalValueProc. Together, these take care of the housekeeping for "values" (things that can be held in a Tcl_Obj) that are global across a whole process. That is, they are shared among multiple threads, and epoch and mutex protection must govern the validity of cached copies maintained in each thread. * generic/tclNotify.c: Modified TclInitNotifier() to tolerate being called multiple times in the same thread. * generic/tclEvent.c: Dropped the unused argv0 argument to TclInitSubsystems(). Removed machinery to unsure only one TclInitNotifier() call per thread, now that that is safe. Converted Tcl(Get|Set)LibraryPath to use a ProcessGlobalValue, and moved them to tclEncoding.c. * generic/tclBasic.c: Updated caller. * generic/tclInt.h: TclpFindExecutable now returns void. * unix/tclUnixFile.c: * win/tclWinFile.c: * win/tclWinPipe.c: * generic/tclEncoding.c: Built new encoding search initialization on a foundation of ProcessGlobalValues, exposing new routines Tcl(Get|Set)EncodingSearchPath. A cache of a map from encoding name to directory pathname keeps track of where encodings are available for loading. Tcl_FindExecutable greatly simplified into just three function calls. The "library path" is now misnamed, as its only remaining purpose is as a foundation for the default encoding search path. * generic/tclInterp.c: Inlined the initScript that is evaluated by Tcl_Init(). Added verification after initScript evaluation that Tcl can find its installed *.enc files, and that it has initialized [encoding system] in agreement with what the environment expects. [tclInit] no longer driven by the value of $::tcl_libPath; it largely constructs its own search path now, rather than attempt to share one with the encoding system. * unix/tclUnixInit.c: TclpSetInitialEncodings factored so that a new * win/tclWinInit.c: routine TclpGetEncodingNameFromEnvironment can reveal that Tcl thinks the [encoding system] should be, even when an incomplete encoding search path, or a missing *.enc file won't allow that initialization to succeed. TclpInitLibraryPath reworked as an initializer of a ProcessGlobalValue. * unix/tclUnixTest.c: Update implementations of [testfindexecutable], [testgetdefenc], and [testsetdefenc]. * tests/unixInit.test: Corrected tests to operate properly even when a value of TCL_LIBRARY is required to find encodings. * generic/tclInt.decls: New internal stubs: TclGetEncodingSearchPath, TclSetEncodingSearchPath, TclpGetEncodingNameFromEnvironment. These are candidates for public exposure by future TIPs. * generic/tclIntDecls.h: make genstubs * generic/tclStubInit.c: * generic/tclTest.c: Updated [testencoding] to use * tests/encoding.test: Tcl(Get|Set)EncodingSearchPath. Updated tests.
* | * win/tclWinPipe.c: The pipe channel driver now respects the -blocking optiondavygrvy2004-11-091-47/+72
| | | | | | | | | | | | | | | | | | | | when closing is the same way the UNIX side works. This is avoid a hung shell when exiting due to open pipes that refuse to close in a graceful manner. ***POTENTIAL INCOMPATIBILITY*** Scripts that use async pipes on windows, must (like the UNIX side) set -blocking to 1 before calling [close] to receive the exit status. [Bug 947693]
* | * generic/tclBasic.c:dgp2004-10-061-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclBinary.c: * generic/tclCmdAH.c: * generic/tclCmdIL.c: * generic/tclCmdMZ.c: * generic/tclCompExpr.c: * generic/tclDictObj.c: * generic/tclEncoding.c: * generic/tclExecute.c: * generic/tclFCmd.c: * generic/tclHistory.c: * generic/tclIndexObj.c: * generic/tclInterp.c: * generic/tclIO.c: * generic/tclIOCmd.c: * generic/tclNamesp.c: * generic/tclObj.c: * generic/tclPkg.c: * generic/tclResult.c: * generic/tclScan.c: * generic/tclTimer.c: * generic/tclTrace.c: * generic/tclUtil.c: * generic/tclVar.c: * unix/tclUnixFCmd.c: * unix/tclUnixPipe.c: * win/tclWinDde.c: * win/tclWinFCmd.c: * win/tclWinPipe.c: It is a poor practice to directly set or append to the value of the objResult of an interp, because that value might be shared, and in that circumstance a Tcl_Panic() will be the result. Searched for example of this practice and replaced with safer alternatives, often using the Tcl_AppendResult() routine that dkf just rehabilitated. * library/dde/pkgIndex.tcl: Bump to dde 1.3.1
* | More formatting fixes...dkf2004-10-061-20/+18
| |
* | * win/tclWinPipe.c:davygrvy2004-05-301-44/+56
| | | | | | | | | | | | | | | | | | * win/tclWinPort.h: Reworked the win implementation of Tcl_WaitPid to support exitcodes in the 'signed short' range. Even though this range is non-portable, it is valid on windows. Detection of exception codes are now more accurate. Previously, an application that exited with ExitProcess((DWORD)-1); was improperly reported as exiting with SIGABRT.
* | (BuildCommandLine): Use the existence of contents in the linePtr ratherdavygrvy2004-05-101-2/+2
| | | | | | | | than the scratch DString post the append, as this more clear.
* | (TclpCreateProcess): When under NT, with no console, and executing adavygrvy2004-05-101-2/+2
| | | | | | | | | | DOS application, the path priming does not need an ending space as BuildCommandLine() will do this for us.
* | (BuildCommandLine): Moved non-obvious appending logic to outside the loopdavygrvy2004-05-101-6/+7
| | | | | | | | and added commentary for its purpose.