summaryrefslogtreecommitdiffstats
path: root/generic/tclZlib.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/tclZlib.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/tclZlib.c')
-rw-r--r--generic/tclZlib.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/generic/tclZlib.c b/generic/tclZlib.c
index 49f1c39..44451e2 100644
--- a/generic/tclZlib.c
+++ b/generic/tclZlib.c
@@ -160,7 +160,7 @@ typedef struct {
static Tcl_CmdDeleteProc ZlibStreamCmdDelete;
static Tcl_DriverBlockModeProc ZlibTransformBlockMode;
-static Tcl_DriverCloseProc ZlibTransformClose;
+static Tcl_DriverClose2Proc ZlibTransformClose;
static Tcl_DriverGetHandleProc ZlibTransformGetHandle;
static Tcl_DriverGetOptionProc ZlibTransformGetOption;
static Tcl_DriverHandlerProc ZlibTransformEventHandler;
@@ -205,7 +205,7 @@ static void ZlibTransformTimerRun(void *clientData);
static const Tcl_ChannelType zlibChannelType = {
"zlib",
TCL_CHANNEL_VERSION_5,
- ZlibTransformClose,
+ TCL_CLOSE2PROC,
ZlibTransformInput,
ZlibTransformOutput,
NULL, /* seekProc */
@@ -213,7 +213,7 @@ static const Tcl_ChannelType zlibChannelType = {
ZlibTransformGetOption,
ZlibTransformWatch,
ZlibTransformGetHandle,
- NULL, /* close2Proc */
+ ZlibTransformClose, /* close2Proc */
ZlibTransformBlockMode,
NULL, /* flushProc */
ZlibTransformEventHandler,
@@ -2895,11 +2895,16 @@ ZlibStreamHeaderCmd(
static int
ZlibTransformClose(
void *instanceData,
- Tcl_Interp *interp)
+ Tcl_Interp *interp,
+ int flags)
{
ZlibChannelData *cd = instanceData;
int e, written, result = TCL_OK;
+ if ((flags & (TCL_CLOSE_READ | TCL_CLOSE_WRITE)) != 0) {
+ return EINVAL;
+ }
+
/*
* Delete the support timer.
*/