Documentation
From my personal library, The Internet

man page:

       Tcl_StackChannel,  Tcl_UnstackChannel,  Tcl_GetStackedChannel, Tcl_Get-
       TopChannel - stack an I/O channel on top of another, and undo it


SYNOPSIS

       #include <tcl.h>

       Tcl_Channel
       Tcl_StackChannel(interp, typePtr, clientData, mask, channel)

       int
       Tcl_UnstackChannel(interp, channel)

       Tcl_Channel
       Tcl_GetStackedChannel(channel)

       Tcl_Channel
       Tcl_GetTopChannel(channel)



ARGUMENTS

       Tcl_Interp        *interp        (in)      Interpreter    for     error
                                                  reporting.

       Tcl_ChannelType   *typePtr       (in)      The  new  channel I/O proce-
                                                  dures to use for channel.

       ClientData        clientData     (in)      Arbitrary one-word value  to
                                                  pass  to  channel I/O proce-
                                                  dures.

       int               mask           (in)      Conditions under which chan-
                                                  nel will be used: OR-ed com-
                                                  bination  of   TCL_READABLE,
                                                  TCL_WRITABLE  and TCL_EXCEP-
                                                  TION.  This can be a  subset
                                                  of  the operations currently
                                                  allowed on channel.

       Tcl_Channel       channel        (in)      An existing Tcl channel such
                                                  as  returned  by Tcl_Create-
                                                  Channel.
_________________________________________________________________



DESCRIPTION

       These functions are for use by extensions that add processing layers to
       Tcl I/O channels.  Examples include compression and encryption modules.
       These functions transparently stack and unstack a new channel on top of
       an existing one.  Any number of channels can be stacked together.

       The  implementation  of  the Tcl channel code was rewritten in 8.3.2 to
       correct some problems with the previous implementation with  regard  to
       stacking the channel, NULL is returned instead.

       The mask parameter specifies the operations that are allowed on the new
       channel.  These can be a subset of the operations allowed on the origi-
       nal  channel.   For  example, a read-write channel may become read-only
       after the Tcl_StackChannel call.

       Closing a channel closes the channels stacked below it.  The  close  of
       stacked  channels  is executed in a way that allows buffered data to be
       properly flushed.

       Tcl_UnstackChannel reverses the process.  The old channel is associated
       with   the   channel   name,   and   the  processing  module  added  by
       Tcl_StackChannel is destroyed.   If  there  is  no  old  channel,  then
       Tcl_UnstackChannel  is  equivalent  to  Tcl_Close.   If an error occurs
       unstacking the channel, TCL_ERROR  is  returned,  otherwise  TCL_OK  is
       returned.

       Tcl_GetTopChannel  returns the top channel in the stack of channels the
       supplied channel is part of.

       Tcl_GetStackedChannel returns the channel  in  the  stack  of  channels
       which is just below the supplied channel.



SEE ALSO

       Notifier(3), Tcl_CreateChannel(3), Tcl_OpenFileChannel(3), vwait(n).



KEYWORDS

       channel, compression



Tcl                                   8.3                  Tcl_StackChannel(3)

Man(1) output converted with man2html