summaryrefslogtreecommitdiffstats
path: root/generic/tclIO.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tclIO.c')
-rw-r--r--generic/tclIO.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/generic/tclIO.c b/generic/tclIO.c
index caf0e3a..cd925b5 100644
--- a/generic/tclIO.c
+++ b/generic/tclIO.c
@@ -7628,6 +7628,34 @@ CheckChannelErrors(
/*
*----------------------------------------------------------------------
*
+ * TclChanIsBinary --
+ *
+ * Returns 1 if the channel is a binary channel, 0 otherwise.
+ *
+ * Results:
+ * 1 or 0, always.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+TclChanIsBinary(
+ Tcl_Channel chan) /* Does this channel have EOF? */
+{
+ ChannelState *statePtr = ((Channel *) chan)->state;
+ /* State of real channel structure. */
+
+ return ((!statePtr->encoding || (statePtr->encoding == GetBinaryEncoding())) && !statePtr->inEofChar
+ && (!GotFlag(statePtr, TCL_READABLE) || (statePtr->inputTranslation == TCL_TRANSLATE_LF))
+ && (!GotFlag(statePtr, TCL_WRITABLE) || (statePtr->outputTranslation == TCL_TRANSLATE_LF)));
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
* Tcl_Eof --
*
* Returns 1 if the channel is at EOF, 0 otherwise.