summaryrefslogtreecommitdiffstats
path: root/generic/tclIOGT.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2020-01-31 14:58:07 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2020-01-31 14:58:07 (GMT)
commitbfad7e731e065f729b1b29430eadc5599fed2221 (patch)
treee70de8a0b599ae989b87e4991c3da262f6ea1d33 /generic/tclIOGT.c
parentff4989d1928248d02e222c2590088c0a5dbb6f46 (diff)
downloadtcl-bfad7e731e065f729b1b29430eadc5599fed2221.zip
tcl-bfad7e731e065f729b1b29430eadc5599fed2221.tar.gz
tcl-bfad7e731e065f729b1b29430eadc5599fed2221.tar.bz2
Make Tcl_ChannelCloseProc() deprecated too. Implement close2Proc and wideSeekProc for all internal channel types.
Diffstat (limited to 'generic/tclIOGT.c')
-rw-r--r--generic/tclIOGT.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/generic/tclIOGT.c b/generic/tclIOGT.c
index 4195256..c983434 100644
--- a/generic/tclIOGT.c
+++ b/generic/tclIOGT.c
@@ -22,7 +22,7 @@
static int TransformBlockModeProc(ClientData instanceData,
int mode);
static int TransformCloseProc(ClientData instanceData,
- Tcl_Interp *interp);
+ Tcl_Interp *interp, int flags);
static int TransformInputProc(ClientData instanceData, char *buf,
int toRead, int *errorCodePtr);
static int TransformOutputProc(ClientData instanceData,
@@ -121,7 +121,7 @@ static inline void ResultAdd(ResultBuffer *r, unsigned char *buf,
static const Tcl_ChannelType transformChannelType = {
"transform", /* Type name. */
TCL_CHANNEL_VERSION_5, /* v5 channel */
- TransformCloseProc, /* Close proc. */
+ TCL_CLOSE2PROC, /* Close proc. */
TransformInputProc, /* Input proc. */
TransformOutputProc, /* Output proc. */
#ifndef TCL_NO_DEPRECATED
@@ -133,7 +133,7 @@ static const Tcl_ChannelType transformChannelType = {
TransformGetOptionProc, /* Get option proc. */
TransformWatchProc, /* Initialize notifier. */
TransformGetFileHandleProc, /* Get OS handles out of channel. */
- NULL, /* close2proc */
+ TransformCloseProc, /* close2proc */
TransformBlockModeProc, /* Set blocking/nonblocking mode.*/
NULL, /* Flush proc. */
TransformNotifyProc, /* Handling of events bubbling up. */
@@ -539,10 +539,15 @@ TransformBlockModeProc(
static int
TransformCloseProc(
ClientData instanceData,
- Tcl_Interp *interp)
+ Tcl_Interp *interp,
+ int flags)
{
TransformChannelData *dataPtr = instanceData;
+ if ((flags & (TCL_CLOSE_READ | TCL_CLOSE_WRITE)) != 0) {
+ return EINVAL;
+ }
+
/*
* Important: In this procedure 'dataPtr->self' already points to the
* underlying channel.