| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
the EventScriptRecord (esPtr) fully before handing it to
Tcl_CreateChannelHandler for registration. Otherwise a reflected
channel calling 'chan postevent' (== Tcl_NotifyChannel) in its
'watchProc' will cause the function 'TclChannelEventScriptInvoker'
to be run on an uninitialized structure.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
patch fixing the inconsistent buffered I/O. Tcl's I/O now flushes
buffered output before reading, discards buffered input before
writing, etc.
|
| | |
| | |
| | |
| | |
| | |
| | | |
minor *** POTENTIAL INCOMPATIBILITY *** because
Tcl_CreateChannel() and its derivatives, now
sometimes ignore their "chanName" argument.
|
| | |
| | |
| | |
| | |
| | |
| | | |
* 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 forward port from the 8.5 branch.
|
| | |
| | |
| | |
| | |
| | | |
from the first of two FlushChannel()s. Uneasy to test; might need
specific channel drivers. Four-hands with aku.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
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>.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
to permit reads to continue up to the string limits of Tcl values.
Before revisions, large read attempts could panic when as little as
half the limiting value length was reached. [Patch 2107634]
Thanks to Sean Morrison and Bob Parker for their roles in the fix.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclExecute.c: that they set the typePtr field to
* generic/tclIO.c: NULL so that the Tcl_Obj is not left
* generic/tclIndexObj.c: in an inconsistent state.
* generic/tclInt.h: [Bug 2857044]
* generic/tclListObj.c:
* generic/tclNamesp.c:
* generic/tclOOCall.c:
* generic/tclObj.c:
* generic/tclPathObj.c:
* generic/tclProc.c:
* generic/tclRegexp.c:
* generic/tclStringObj.c:
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclFCmd.c: null dereference flagged by clang static
* generic/tclProc.c: analyzer.
* generic/tclTimer.c:
* generic/tclUtf.c:
* generic/tclExecute.c: silence false positives from clang static
* generic/tclIO.c: analyzer about potential null dereference.
* generic/tclScan.c:
* generic/tclCompExpr.c:
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* generic/tclPipe.c (FileForRedirect): getHandleProc == NULL, this
is allowed. Provide a nice error message in the bypass
area. Updated caller to check the bypass for a mesage. This fixes
the bug [Bug 2826248] reported by Andy Sonnenburg
<andy22286@users.sourceforge.net>
|
| | |
| | |
| | |
| | |
| | | |
- some internal const decorations
- spacing
|
| | |
| | |
| | |
| | | |
etc.)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Rewrite the half-close to properly flush the channel, like is done
for a full close, going through FlushChannel, and using the flag
BG_FLUSH_SCHEDULED (async flush during close). New functions
CloseWrite, CloseChannelPart, new flag CHANNEL_CLOSEDWRITE.
* tests/chanio.test (chanio-28.[67]): Reactivated these
tests. Replaced tclsh -> [interpreter] to get correct executable
for the pipe process, and added after cancel to kill the fail
timers when we are done. Removed the explicits calls to [flush],
now that [close] handles this correctly.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* tests/io.test: internal representation of the tclChannelType to
contain not only the ChannelState pointer, but also a reference to
the interpreter it was made in. Invalidate and recompute the
internal representation when it is used in a different interpreter
(Like cmdName intrep's). Added testcase. [Bug 2407783].
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* doc/BackgdErr.3: Converted internal routine
* doc/interp.n: TclBackgroundException() into public routine
* generic/tcl.decls: Tcl_BackgroundException().
* generic/tclEvent.c:
* generic/tclInt.decls:
* generic/tclDecls.h: make genstubs
* generic/tclIntDecls.h:
* generic/tclStubInit.c:
* generic/tclIO.c: Update callers.
* generic/tclIOCmd.c:
* generic/tclInterp.c:
* generic/tclTimer.c:
*** POTENTIAL INCOMPATIBILITY only for extensions using the converted
internal routine ***
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
Ferrieux's first patch for [Bug 2270477] with a gentler version,
also supplied by him.
|
| | |
| | |
| | |
| | |
| | | |
examples how it should have been done.
purpose: contribute in the TIP #340 discussion.
|
| | |
| | |
| | |
| | |
| | | |
Ferrieux's patch for [Bug 2270477] to prevent infinite looping
during finalization of channels not bound to interpreters.
|
| | | |
|
| | |
| | |
| | |
| | | |
eliminate an 'array index out of bounds' warning on HP-UX'
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
const tables. No functional
or API change.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* doc/CrtChannel.3: of Tcl_CreateChannel and Tcl_StackChannel
* generic/tcl.decls and the return value of Tcl_GetChannelType
* generic/tcl.h
* generic/tclIO.h
* generic/tclIO.c
* ChangeLog
* generic/tclDecls.h: regenerated
This change complies with TIP #27.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
* tests/chanio.test: to fix the [Bug 1969953]. Buffersize outside
of the supported range are now clipped to nearest boundary instead
of ignored.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* io.test (io-53.8a): Ferrieux <ferrieux@users.sourceforge.net>,
* chanio.test (chan-io-53.8a): 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/chanio.test:
* 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.
|
| | |
| | |
| | |
| | |
| | |
| | | |
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: prevent fcopy from calling -command synchronously
* tests/chanio.test: the first time. Thanks to Alexandre Ferrieux
<ferrieux@users.sourceforge.net> for report and patch.
|
|/ /
| |
| |
| |
| |
| |
| | |
[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.
|
| |
| |
| |
| | |
[Bug 1869405] (Ficicchia)
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
* generic/tclIO.c (SetChannelFromAny): internal rep only after
validating channel rep. [Bug 1847044]
|
| |
| |
| |
| |
| |
| |
| | |
* generic/tclIO.c: overhead in lookup by Tcl_GetChannel. New
* generic/tclIOCmd.c: TclGetChannelFromObj for internal use.
* generic/tclIO.c (WriteBytes, WriteChars): add opt check to avoid
EOL translation when not linebuffered or using lf. [Bug 1845092]
|
| |
| |
| |
| | |
message in latest changes.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
* doc/fconfigure.n: values to single byte characters by documenting
* generic/tclIO.c: it and making it fail loudly. Thanks to
* tests/chan.test: Stuart Cassoff for contributing the fix.
[Bug 800753]
|
| | |
|
| |
| |
| |
| | |
objTypes.
|
| | |
|
| | |
|
| |
| |
| |
| | |
for [gets].
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* generic/tclEvent.c: that for the first time permits non-TCL_ERROR
exceptions to trigger [interp bgerror] handling. Closes a gap in
TIP 221. When falling back to [bgerror] (which is designed only
to handle TCL_ERROR), convert exceptions into errors complaining
about the exception.
* generic/tclInterp.c: Convert Tcl_BackgroundError() callers to call
* generic/tclIO.c: TclBackgroundException().
* generic/tclIOCmd.c:
* generic/tclTimer.c:
* generic/tclIntDecls.h: make genstubs
* generic/tclStubInit.c:
|