summaryrefslogtreecommitdiffstats
path: root/generic/tclIO.c
Commit message (Collapse)AuthorAgeFilesLines
* Added a refcounting mechanism to ChannelBuffers. Other edits todgp2014-04-211-8/+42
| | | stop segfaults in tests iocmd-21.2[12].
* Fix test failure socket-2.9: "1 {not owner}" instead of "1 {couldn't open ↵oehhar2014-04-011-9/+8
| | | | socket address already in use}" by only setting returned error message if not jet set.
* Set return message in close if a flush error is reported (which may be an ↵oehhar2014-04-011-2/+13
| | | | error from a background flush). Ticket [97069ea11a]
* Minimal patch to fix iocmd-23.11. Might not be the best fix, but is *a* fix.dgp2014-03-271-3/+20
|
* Simplify macro typecasting.dgp2014-01-311-6/+3
|
* The "channel" Tcl_ObjType is caching only. It never needs an UpdateString ↵dgp2014-01-311-46/+6
| | | | | routine. It's also static to the tclIO.c file.
* Do not call updateStringProc directly. We have TclGetString() for that.dgp2014-01-311-10/+1
|
* Refactor to eliminate the DoWriteChars() layer.dgp2014-01-301-64/+22
|
* Eliminate DoWrite(). It duplicates WriteBytes().dgp2014-01-301-163/+2
|
* Trial: Implement DoWrite() as WriteBytes().dgp2014-01-301-0/+4
|
* Simplification and cleanup enabled by last commit.dgp2014-01-301-301/+7
|
* Refactor WriteChars() and WriteBytes() into simple wrappers of a commondgp2014-01-301-13/+35
| | | routine Write().
* The outputStage field is now unused, so never allocate it.dgp2014-01-281-29/+0
|
* tidy things updgp2014-01-281-194/+17
|
* Working code with no staging buffer use.dgp2014-01-281-31/+97
|
* WIPdgp2014-01-281-0/+69
|
* Eliminate the copy to a staging buffer when that serves no functional purpose.dgp2014-01-241-10/+12
|
* Fix C99 comment-ism breaking the native AIX compiler. HPUX likely as well.andreask2013-05-291-2/+2
|
* Backport 8.6's fix [checkin 5af0d249de] to [Bug 2901998]: Inconsistent ↵ferrieux2013-05-011-8/+92
| | | | buffered I/O. Tcl's I/O now flushes buffered output before reading, discards buffered input before writing, etc.
* structs *ChannelHandler* GetsState CopyState used only locally.dgp2013-02-261-0/+102
|\ | | | | Remove from tclIO.h.
| * structs ChannelHandler ChannelHandlerEvent GetsState CopyState used locally.dgp2013-02-261-0/+78
| | | | | | Remove from tclIO.h.
| * struct NextChannelHandler used only locally. Remove from tclIO.h.dgp2013-02-261-0/+24
| |
* | Repair linked list management in Tcl_DeleteCloseHandler().dgp2013-02-251-0/+14
|\ \ | |/ | | CloseCallback struct used only locally. Remove from tclIO.h.
| * Repair linked list management in Tcl_DeleteCloseHandler(). dgp2013-02-251-0/+14
| | | | | | CloseCallback struct is used only locally. Remove from tclIO.h.
* | Use twoPtrValue.ptr1 in stead of otherValuePtr everywhere. This is exactly ↵jan.nijtmans2013-01-311-2/+2
| | | | | | | | the same field, but it allows twoPtrValue.ptr2 to be used for other purposes.
* | When checking for std channels being closed, compare the channel state,dgp2012-10-031-5/+9
|\ \ | |/ | | not the channel itself so that stacked channels do not cause trouble.
| * When checking for std channels being closed, compare the channel state,dgp2012-10-031-20/+24
| | | | | | not the channel itself so that stacked channels do not cause trouble.
| * Preserve the chanPtr so that script evaluation cannot invalidate it whendgp2012-07-241-0/+2
| | | | | | we plan to use it again.
* | Preserve the chanPtr so that script evaluation cannot invalidate it whendgp2012-07-241-0/+2
| | | | | | we plan to use it again.
* | 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
* | Make sure SetFooFromAny routines react reasonably when passed a NULL interp.dgp2011-04-211-0/+3
|\ \ | |/
* | 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.
| * * generic/tclIO.c (CopyData): [Bug 2895565]. Dropped bogosityandreas_kupries2009-11-121-5/+12
| | | | | | | | | | | | * tests/io.test: which used the number of _written_ bytes or character to update the counters for the read bytes/characters. New test io-53.11. This is a backward port from the 8.5 branch.
| * * generic/tclIO.c (FlushChannel): Skip OutputProc for low-levelandreas_kupries2009-10-231-2/+6
| | | | | | | | | | | | 0-length writes. When closing pipes which have already been closed not skipping leads to spurious SIG_PIPE signals. Reported by Mikhail Teterin <mi+thun@aldan.algebra.com>.
| * * generic/tclIO.c (TclFinalizeIOSubsystem): Revised latest commit todgp2008-12-011-3/+3
| | | | | | | | something that doesn't crash the test suite.
| * * generic/tclIO.c (TclFinalizeIOSubsystem): Applied backport ofandreas_kupries2008-11-251-2/+2
| | | | | | | | | | | | Alexandre Ferrieux's patch for [Bug 2270477] to prevent infinite looping during finalization of channels not bound to interpreters.
| * * generic/tclIO.c: Backport of fix for [Bug 2333466].andreas_kupries2008-11-231-2/+4
| |
| * * win/tclWinChan.c (FileWideSeekProc): Accepted a patch byandreas_kupries2008-05-231-8/+8
| | | | | | | | | | | | | | | | | | | | | | Alexandre Ferrieux <ferrieux@users.sourceforge.net> to fix the [Bug 1965787]. 'tell' now works for locations > 2 GB as well instead of going negative. * generic/tclIO.c (Tcl_SetChannelBufferSize): Accepted a patch by * tests/io.test: Alexandre Ferrieux <ferrieux@users.sourceforge.net> to fix the [Bug 1969953]. Buffersize outside of the supported range are now clipped to nearest boundary instead of ignored.
| * * generic/tclIO.c (CopyData): Applied another patch by Alexandreandreas_kupries2008-04-151-6/+9
| | | | | | | | | | | | | | * io.test (io-53.8a): Ferrieux <ferrieux@users.sourceforge.net>, to shift EOF handling to the async part of the command if a callback is specified, should the channel be at EOF already when fcopy is called. Testcase by myself.
| * * tests/io.test (io-53.10): Testcase for bi-directionaly fcopy.andreas_kupries2008-04-071-27/+39
| | | | | | | | | | | | | | * generic/tclIO.c: Additional changes to data structures for fcopy * generic/tclIO.h: and channels to perform proper cleanup in case of a channel having two background copy operations running as is now possible.
| * * generic/tclIO.c (BUSY_STATE, CheckChannelErrors,andreas_kupries2008-04-071-4/+8
| | | | | | | | | | | | | | | | | | | | | | TclCopyChannel): New macro, and the places using it. This change allows for bi-directional fcopy on channels. Thanks to Alexandre Ferrieux <ferrieux@users.sourceforge.net> for the patch. * tests/io.test (io-53.9): Made test cleanup robust against the possibility of slow process shutdown on Windows. Backported from Kevin Kenny's change to the same test on the 8.5 and head branches.
| * * generic/tclIO.c (CopyData): Applied patch [Bug 1932639] toandreas_kupries2008-04-031-13/+23
| | | | | | | | | | | | * tests/io.test: prevent fcopy from calling -command synchronously the first time. Thanks to Alexandre Ferrieux <ferrieux@users.sourceforge.net> for report and patch.
| * * generic/tclIO.c (CopyData): Applied patch for the fcopy problemandreas_kupries2008-04-021-2/+2
| | | | | | | | | | | | | | [Bug 780533], with many thanks to Alexandre Ferrieux <ferrieux@users.sourceforge.net> for tracking it down and providing a solution. Still have to convert his test script into a proper test case.
| * * generic/tclIO.c: Backport memleak fix in TclFinalizeIOSubsystem.dgp2007-05-241-74/+79
| |
| * * generic/tclIO.c (Tcl_StackChannel): Fixed [SF Tcl Bug 1564642],andreas_kupries2006-09-251-2/+2
| | | | | | | | | | aka coverity #51. Extended loop condition, added checking for NULL to prevent seg.fault.
| * * generic/tclIO.c (Tcl_CreateChannel): allow Tcl std channelhobbs2006-07-101-3/+8
| | | | | | | | inheritance to be #defined out (default remains in).
| * * generic/tclIO.c (ReadChars): Added check and panic andandreas_kupries2006-04-051-2/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commentary to a piece of code which relies on BUFFER_PADDING to create enough space at the beginning of each buffer forthe insertion of partial multi-byte data at the beginning of a buffer. To explain why this code is ok, and as precaution if someone twiddled the BUFFER_PADDING into uselessness. * generic/tclIO.c (ReadChars): [SF Tcl Bug 1462248]. Added code temporarily suppress the use of TCL_ENCODING_END set when eof was reached while the buffer we are converting is not truly the last buffer in the queue. together with the Utf bug below it was possible to completely bollox the buffer data structures, eventually crashing Tcl. * generic/tclEncoding.c (UtfToUtfProc): Fixed problem where the function accessed memory beyond the end of the input buffer. When TCL_ENCODING_END is set and the last bytes of the buffer start a multi-byte sequence. This bug contributed to [SF Tcl Bug 1462248].
| * Invokes TclpFinalizeSockets() as part of the TclFinalizeIOSubsystem() call.vasiljevic2006-03-101-3/+16
| |