summaryrefslogtreecommitdiffstats
path: root/generic/tclIO.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tclIO.c')
-rw-r--r--generic/tclIO.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/generic/tclIO.c b/generic/tclIO.c
index 6da1345..da06171 100644
--- a/generic/tclIO.c
+++ b/generic/tclIO.c
@@ -7588,7 +7588,7 @@ Tcl_Eof(
ChannelState *statePtr = ((Channel *) chan)->state;
/* State of real channel structure. */
- if (GotFlag(statePtr, CHANNEL_NONBLOCKING)
+ if (GotFlag(statePtr, CHANNEL_NONBLOCKING|CHANNEL_FCOPY)
&& GotFlag(statePtr, CHANNEL_ENCODING_ERROR)) {
return 0;
}
@@ -9803,6 +9803,7 @@ CopyData(
* the bottom of the stack.
*/
+ SetFlag(inStatePtr, CHANNEL_FCOPY);
inBinary = (inStatePtr->encoding == NULL);
outBinary = (outStatePtr->encoding == NULL);
sameEncoding = inStatePtr->encoding == outStatePtr->encoding
@@ -9918,6 +9919,7 @@ CopyData(
TclDecrRefCount(bufObj);
bufObj = NULL;
}
+ ResetFlag(inStatePtr, CHANNEL_FCOPY);
return TCL_OK;
}
}
@@ -10009,6 +10011,7 @@ CopyData(
TclDecrRefCount(bufObj);
bufObj = NULL;
}
+ ResetFlag(inStatePtr, CHANNEL_FCOPY);
return TCL_OK;
}
@@ -10031,6 +10034,7 @@ CopyData(
TclDecrRefCount(bufObj);
bufObj = NULL;
}
+ ResetFlag(inStatePtr, CHANNEL_FCOPY);
return TCL_OK;
}
} /* while */
@@ -10083,6 +10087,7 @@ CopyData(
}
}
}
+ ResetFlag(inStatePtr, CHANNEL_FCOPY);
return result;
}