diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2020-01-31 14:58:07 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2020-01-31 14:58:07 (GMT) |
commit | bfad7e731e065f729b1b29430eadc5599fed2221 (patch) | |
tree | e70de8a0b599ae989b87e4991c3da262f6ea1d33 /generic/tclIOGT.c | |
parent | ff4989d1928248d02e222c2590088c0a5dbb6f46 (diff) | |
download | tcl-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.c | 13 |
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. |