summaryrefslogtreecommitdiffstats
path: root/generic/tclIO.c
Commit message (Collapse)AuthorAgeFilesLines
* Use TclListObjLength/TclListObjGetElements in stead of ↵jan.nijtmans2022-02-101-1/+1
| | | | Tcl_ListObjLength/Tcl_ListObjGetElements everywhere. This is slightly more efficient if the refered list already has the correct type
* IntRep -> InternalRep. Internal changes only.jan.nijtmans2021-10-191-9/+9
|
* Fix [24b9181478]: Fix unsafe buffer lifetimejan.nijtmans2021-05-031-1/+2
|\
| * Fix [24b9181478]: Fix unsafe buffer lifetimejan.nijtmans2021-05-031-1/+2
| |
* | Fix warning: /home/jboss/workspace/tcl8.7/generic/tclIO.c:9997:27: warning: ↵jan.nijtmans2020-10-231-2/+2
| | | | | | | | | | | | writing 1 byte into a region of size 0 [-Wstringop-overflow=] 9997 | RemovePoint(nextPtr)[0] = '\r'; | ^
* | Fix [e87000d8425ab86a]: crash for "fconfigure stdout" in Win32.jan.nijtmans2020-08-121-1/+1
| | | | | | Even though the crash cannot happen in Tcl 8.6, the function Tcl_BadChannelOption() was to blame, so better fix that in 8.6 too.
* | Eliminate many unnecessary type-casts, mostly (size_t) when value is already ↵jan.nijtmans2020-08-111-3/+3
| | | | | | | | size_t or int
* | fixes [f583715154] - tclUnixSock.c: introduced ThreadActionProc considering ↵sebres2020-03-311-0/+26
| | | | | | | | a transfer of async-connecting channel between threads; cherry-picked some prevention against invalid thread owner addressed in [815e246806]
* | Move setting of interpreter error-message from tclUnixSock.c to tclIO.c, ↵jan.nijtmans2020-03-051-19/+14
| | | | | | | | | | since the same should be done for all channel types. (Thanks, Don, for noticing this!) Also, ENOTCONN for a half-close should not be fatal, just a EINVAL, when doing it as part of a full close. See: [65c9cd1534]
* | Implement WideSeekProc() for all channels which have a SeekProc(). Implement ↵jan.nijtmans2020-03-041-382/+464
| | | | | | | | | | Close2Proc() for all channels, as minimal wrapper around CloseProc(). Backported (with comments) and adapted from core-8-branch.
* | Merge 8.5jan.nijtmans2020-02-241-1/+1
|\ \ | |/
* | Simplify the use of HaveVersion() in Channel handling. Nothing functional, ↵jan.nijtmans2020-01-301-69/+31
| | | | | | | | only code clean-up.
* | Change LSTATUS to LONG, since older SDK's don't know it. core.tcl.tk -> ↵jan.nijtmans2019-10-051-1/+1
|\ \ | |/ | | | | core.tcl-lang.org and http -> https
* | merge core-8-5-branch (fixes [1873ea0ee4f01b26]: wrong initialization of ↵sebres2018-03-051-9/+13
|\ \ | |/ | | | | std-channels ...)
| * fixes [1873ea0ee4f01b26]: wrong initialization of std-channels, if no ↵sebres2018-03-051-9/+13
| | | | | | | | std-handles available at all (e. g. non-console application, like "tk")
* | Fix [b58e6897034fc5292c9d36ba8099d9a835c98172|b58e689703]: Return value of ↵jan.nijtmans2017-10-231-1/+1
| | | | | | | | 'Tcl_Flush'
* | In comments and documentation, distinguish between __int64 (a Microsoft ↵jan.nijtmans2017-03-291-1/+1
| | | | | | | | 64-bit integer type) and int64_t (C99 equivalent)
* | compatability -> compatibilityjan.nijtmans2016-12-011-1/+1
|\ \ | |/
| * compatability -> compatibilityjan.nijtmans2016-12-011-1/+1
| |
* | [104f2885bb] Rework the "chan" Tcl_ObjType to properly validate cached ↵dgp2016-07-181-86/+73
|\ \ | |/ | | | | channel name lookups.
| * [104f2885bb] Rework the "chan" Tcl_ObjType to properly validate cacheddgp2016-07-181-85/+76
| | | | | | channel name lookups.
* | [261a8a79f0] Integer overflow leads to segfault.dgp2015-11-101-1/+1
|\ \ | |/
| * [261a8a79f0] Integer overflow leads to segfault.dgp2015-11-101-1/+1
| |
| * Backout of failed attempt to fix [32ae34e63a] got checked into wrong branch.dgp2015-10-231-43/+4
| |
* | Backout failed attempt to fix [32ae34e63a].dgp2015-09-251-43/+4
|\ \ | |/
* | [e0a7b3e5f8] Add missing UpdateInterest call in DoRead().dgp2015-09-231-3/+10
|\ \ | |/
| * merge 8.5dgp2015-09-231-4/+43
| |\
| * | Add the critical missing UpdateInterest() call at the exit of DoRead().dgp2015-08-101-3/+10
| | | | | | | | | | | | | | | | | | (Compare with same approach in DoReadChars()). This involves removing some other calls that are now replaced by the new one. Also marked several UpdateInterest() calls throughout tclIO.c with comments raising the suspicion that they serve no function.
* | | [32ae34e63a] Prevent segfaults and data corruption when CopyData() is called ↵dgp2015-09-231-4/+43
|\ \ \ | | |/ | |/| | | | | | | recursively. Mark new test io-53.20 as "knownBug". It demos some unknown flaw in MoveBytes().
| * | Protect CopyState buffer from conflicting uses when CopyData() is calleddgp2015-09-231-0/+7
| | | | | | | | | recursively. Also, have ReflectWatch() always give driver a chance to act.
| * | CopyData() now tolerates recursion enough so that io-53.18 does not segfault.dgp2015-09-231-21/+9
| | |
| * | WIPdgp2015-09-231-3/+47
| |/
* | [b1534b438b] Prevent read outside buffer boundaries.dgp2015-07-151-1/+12
|\ \ | |/
| * [b1534b438b] Prevent read outside buffer boundaries.dgp2015-07-151-1/+12
| |
* | Revert some refcount changes on I/O structs.dgp2015-07-021-2/+2
| | | | | | | | | | | | | | These are refcounts on structs, not Tcl_Obj's. Their scheme doesn't suffer the same difficulties and histories as Tcl_Obj's, and they need not copy every detail, appropriate or not, from Tcl_Obj refcount management. The "significant value" -- as dkf puts it -- for the struct refcounting scheme is 0 not 1.
* | Another round of refCount consistancy improvements.jan.nijtmans2015-07-021-29/+28
| |
* | [894da183c8] Test and fix for regression in flushing blocked channels.dgp2015-04-291-1/+4
|\ \ | |/
| * [894da183c8] Test and fix for regression in flushing blocked channels.dgp2015-04-291-1/+4
| |\
| | * [894da183c8] Fix and test for bug at the point it was introduced.dgp2015-04-291-0/+3
| | |
* | | [879a0747be] Repair handling of incomplete multi-byte chars at the ends of ↵dgp2015-04-241-6/+53
|\ \ \ | |/ / | | | | | | input buffers. Also properly reset input encoding flags when cycling through a fleeting EOF condition.
| * | [879a0747be] Repair handling of incomplete multi-byte chars at the endsdgp2015-04-241-7/+54
| | | | | | | | | | | | of input buffers. Also properly reset input encoding flags when cycling through a fleeting EOF condition.
| * | Backport of channel mem leak fix that got missed before.dgp2015-02-051-3/+15
| | |
* | | per ticket [e08c2c407b053bbfaab] (and stray code related to ↵bch2015-02-191-3/+0
| | | | | | | | | | | | [84f208762f172e]) adj code to passing test suite
* | | Even clearer failure messages.dkf2015-02-111-16/+17
| | |
* | | inputProc and outputProc tests run conditionally on TCL_READABLE, ↵bch2015-02-081-2/+2
| | | | | | | | | | | | TCL_WRITABLE mask
* | | switch raw assert() to Tcl_Panic() per discussion w/ dkfbch2015-02-071-7/+17
| | |
* | | merge [trunk]bch2015-02-071-2/+2
|\ \ \
| * | | Fix [08872796bc]dgp2015-01-291-2/+2
| | | |
* | | | truncateProc *can* be NULLbch2015-01-211-1/+0
| | | |
* | | | assert() on missing definitions for Tcl_ChannelCreate() required struct ↵bch2015-01-201-0/+9
|/ / / | | | | | | | | | Tcl_ChannelType{} fields.