OSDN Git Service

Please enter the commit message for your changes. Lines starting
[eos/hostdependX86LINUX64.git] / util / X86LINUX64 / man / man3 / Tcl_GetChannelNamesEx.3
index e541e82..1725d80 100644 (file)
@@ -4,75 +4,81 @@
 '\" See the file "license.terms" for information on usage and redistribution
 '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
 '\"
-'\" RCS: @(#) $Id: OpenFileChnl.3,v 1.20.2.2 2003/10/07 15:25:46 dgp Exp $
-'\" The definitions below are for supplemental macros used in Tcl/Tk
-'\" manual entries.
-'\"
-'\" .AP type name in/out ?indent?
-'\"    Start paragraph describing an argument to a library procedure.
-'\"    type is type of argument (int, etc.), in/out is either "in", "out",
-'\"    or "in/out" to describe whether procedure reads or modifies arg,
-'\"    and indent is equivalent to second arg of .IP (shouldn't ever be
-'\"    needed;  use .AS below instead)
-'\"
-'\" .AS ?type? ?name?
-'\"    Give maximum sizes of arguments for setting tab stops.  Type and
-'\"    name are examples of largest possible arguments that will be passed
-'\"    to .AP later.  If args are omitted, default tab stops are used.
-'\"
-'\" .BS
-'\"    Start box enclosure.  From here until next .BE, everything will be
-'\"    enclosed in one large box.
-'\"
-'\" .BE
-'\"    End of box enclosure.
-'\"
-'\" .CS
-'\"    Begin code excerpt.
-'\"
-'\" .CE
-'\"    End code excerpt.
-'\"
-'\" .VS ?version? ?br?
-'\"    Begin vertical sidebar, for use in marking newly-changed parts
-'\"    of man pages.  The first argument is ignored and used for recording
-'\"    the version when the .VS was added, so that the sidebars can be
-'\"    found and removed when they reach a certain age.  If another argument
-'\"    is present, then a line break is forced before starting the sidebar.
-'\"
-'\" .VE
-'\"    End of vertical sidebar.
-'\"
-'\" .DS
-'\"    Begin an indented unfilled display.
-'\"
-'\" .DE
-'\"    End of indented unfilled display.
-'\"
-'\" .SO
-'\"    Start of list of standard options for a Tk widget.  The
-'\"    options follow on successive lines, in four columns separated
-'\"    by tabs.
-'\"
-'\" .SE
-'\"    End of list of standard options for a Tk widget.
-'\"
-'\" .OP cmdName dbName dbClass
-'\"    Start of description of a specific option.  cmdName gives the
-'\"    option's name as specified in the class command, dbName gives
-'\"    the option's name in the option database, and dbClass gives
-'\"    the option's class in the option database.
-'\"
-'\" .UL arg1 arg2
-'\"    Print arg1 underlined, then print arg2 normally.
-'\"
-'\" RCS: @(#) $Id: man.macros,v 1.4 2000/08/25 06:18:32 ericm Exp $
-'\"
-'\"    # Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
+.TH Tcl_OpenFileChannel 3 8.3 Tcl "Tcl Library Procedures"
+.\" The -*- nroff -*- definitions below are for supplemental macros used
+.\" in Tcl/Tk manual entries.
+.\"
+.\" .AP type name in/out ?indent?
+.\"    Start paragraph describing an argument to a library procedure.
+.\"    type is type of argument (int, etc.), in/out is either "in", "out",
+.\"    or "in/out" to describe whether procedure reads or modifies arg,
+.\"    and indent is equivalent to second arg of .IP (shouldn't ever be
+.\"    needed;  use .AS below instead)
+.\"
+.\" .AS ?type? ?name?
+.\"    Give maximum sizes of arguments for setting tab stops.  Type and
+.\"    name are examples of largest possible arguments that will be passed
+.\"    to .AP later.  If args are omitted, default tab stops are used.
+.\"
+.\" .BS
+.\"    Start box enclosure.  From here until next .BE, everything will be
+.\"    enclosed in one large box.
+.\"
+.\" .BE
+.\"    End of box enclosure.
+.\"
+.\" .CS
+.\"    Begin code excerpt.
+.\"
+.\" .CE
+.\"    End code excerpt.
+.\"
+.\" .VS ?version? ?br?
+.\"    Begin vertical sidebar, for use in marking newly-changed parts
+.\"    of man pages.  The first argument is ignored and used for recording
+.\"    the version when the .VS was added, so that the sidebars can be
+.\"    found and removed when they reach a certain age.  If another argument
+.\"    is present, then a line break is forced before starting the sidebar.
+.\"
+.\" .VE
+.\"    End of vertical sidebar.
+.\"
+.\" .DS
+.\"    Begin an indented unfilled display.
+.\"
+.\" .DE
+.\"    End of indented unfilled display.
+.\"
+.\" .SO ?manpage?
+.\"    Start of list of standard options for a Tk widget. The manpage
+.\"    argument defines where to look up the standard options; if
+.\"    omitted, defaults to "options". The options follow on successive
+.\"    lines, in three columns separated by tabs.
+.\"
+.\" .SE
+.\"    End of list of standard options for a Tk widget.
+.\"
+.\" .OP cmdName dbName dbClass
+.\"    Start of description of a specific option.  cmdName gives the
+.\"    option's name as specified in the class command, dbName gives
+.\"    the option's name in the option database, and dbClass gives
+.\"    the option's class in the option database.
+.\"
+.\" .UL arg1 arg2
+.\"    Print arg1 underlined, then print arg2 normally.
+.\"
+.\" .QW arg1 ?arg2?
+.\"    Print arg1 in quotes, then arg2 normally (for trailing punctuation).
+.\"
+.\" .PQ arg1 ?arg2?
+.\"    Print an open parenthesis, arg1 in quotes, then arg2 normally
+.\"    (for trailing punctuation) and then a closing parenthesis.
+.\"
+.\"    # Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
 .if t .wh -1.3i ^B
 .nr ^l \n(.l
 .ad b
-'\"    # Start an argument description
+.\"    # Start an argument description
 .de AP
 .ie !"\\$4"" .TP \\$4
 .el \{\
@@ -81,7 +87,7 @@
 .\}
 .ta \\n()Au \\n()Bu
 .ie !"\\$3"" \{\
-\&\\$1 \\fI\\$2\\fP    (\\$3)
+\&\\$1 \\fI\\$2\\fP (\\$3)
 .\".b
 .\}
 .el \{\
 .\}
 .\}
 ..
-'\"    # define tabbing values for .AP
+.\"    # define tabbing values for .AP
 .de AS
 .nr )A 10n
 .if !"\\$1"" .nr )A \\w'\\$1'u+3n
 .nr )C \\n()Bu+\\w'(in/out)'u+2n
 ..
 .AS Tcl_Interp Tcl_CreateInterp in/out
-'\"    # BS - start boxed text
-'\"    # ^y = starting y location
-'\"    # ^b = 1
+.\"    # BS - start boxed text
+.\"    # ^y = starting y location
+.\"    # ^b = 1
 .de BS
 .br
 .mk ^y
 .if n \l'\\n(.lu\(ul'
 .if n .fi
 ..
-'\"    # BE - end boxed text (draw box now)
+.\"    # BE - end boxed text (draw box now)
 .de BE
 .nf
 .ti 0
 .br
 .nr ^b 0
 ..
-'\"    # VS - start vertical sidebar
-'\"    # ^Y = starting y location
-'\"    # ^v = 1 (for troff;  for nroff this doesn't matter)
+.\"    # VS - start vertical sidebar
+.\"    # ^Y = starting y location
+.\"    # ^v = 1 (for troff;  for nroff this doesn't matter)
 .de VS
 .if !"\\$2"" .br
 .mk ^Y
 .ie n 'mc \s12\(br\s0
 .el .nr ^v 1u
 ..
-'\"    # VE - end of vertical sidebar
+.\"    # VE - end of vertical sidebar
 .de VE
 .ie n 'mc
 .el \{\
 .\}
 .nr ^v 0
 ..
-'\"    # Special macro to handle page bottom:  finish off current
-'\"    # box/sidebar if in box/sidebar mode, then invoked standard
-'\"    # page bottom macro.
+.\"    # Special macro to handle page bottom:  finish off current
+.\"    # box/sidebar if in box/sidebar mode, then invoked standard
+.\"    # page bottom macro.
 .de ^B
 .ev 2
 'ti 0
 .mk ^Y
 .\}
 ..
-'\"    # DS - begin display
+.\"    # DS - begin display
 .de DS
 .RS
 .nf
 .sp
 ..
-'\"    # DE - end display
+.\"    # DE - end display
 .de DE
 .fi
 .RE
 .sp
 ..
-'\"    # SO - start of list of standard options
+.\"    # SO - start of list of standard options
 .de SO
+'ie '\\$1'' .ds So \\fBoptions\\fR
+'el .ds So \\fB\\$1\\fR
 .SH "STANDARD OPTIONS"
 .LP
 .nf
 .ta 5.5c 11c
 .ft B
 ..
-'\"    # SE - end of list of standard options
+.\"    # SE - end of list of standard options
 .de SE
 .fi
 .ft R
 .LP
-See the \\fBoptions\\fR manual entry for details on the standard options.
+See the \\*(So manual entry for details on the standard options.
 ..
-'\"    # OP - start of full description for a single option
+.\"    # OP - start of full description for a single option
 .de OP
 .LP
 .nf
@@ -227,25 +235,47 @@ Database Class:   \\fB\\$3\\fR
 .fi
 .IP
 ..
-'\"    # CS - begin code excerpt
+.\"    # CS - begin code excerpt
 .de CS
 .RS
 .nf
 .ta .25i .5i .75i 1i
 ..
-'\"    # CE - end code excerpt
+.\"    # CE - end code excerpt
 .de CE
 .fi
 .RE
 ..
+.\"    # UL - underline word
 .de UL
 \\$1\l'|0\(ul'\\$2
 ..
-.TH Tcl_OpenFileChannel 3 8.3 Tcl "Tcl Library Procedures"
+.\"    # QW - apply quotation marks to word
+.de QW
+.ie '\\*(lq'"' ``\\$1''\\$2
+.\"" fix emacs highlighting
+.el \\*(lq\\$1\\*(rq\\$2
+..
+.\"    # PQ - apply parens and quotation marks to word
+.de PQ
+.ie '\\*(lq'"' (``\\$1''\\$2)\\$3
+.\"" fix emacs highlighting
+.el (\\*(lq\\$1\\*(rq\\$2)\\$3
+..
+.\"    # QR - quoted range
+.de QR
+.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3
+.\"" fix emacs highlighting
+.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3
+..
+.\"    # MT - "empty" string
+.de MT
+.QW ""
+..
 .BS
 '\" Note:  do not modify the .SH NAME line immediately below!
 .SH NAME
-Tcl_OpenFileChannel, Tcl_OpenCommandChannel, Tcl_MakeFileChannel, Tcl_GetChannel, Tcl_GetChannelNames, Tcl_GetChannelNamesEx, Tcl_RegisterChannel, Tcl_UnregisterChannel, Tcl_DetachChannel, Tcl_IsStandardChannel, Tcl_Close, Tcl_ReadChars, Tcl_Read, Tcl_GetsObj, Tcl_Gets, Tcl_WriteObj, Tcl_WriteChars, Tcl_Write, Tcl_Flush, Tcl_Seek, Tcl_Tell, Tcl_GetChannelOption, Tcl_SetChannelOption, Tcl_Eof, Tcl_InputBlocked, Tcl_InputBuffered, Tcl_OutputBuffered, Tcl_Ungets, Tcl_ReadRaw, Tcl_WriteRaw \- buffered I/O facilities using channels
+Tcl_OpenFileChannel, Tcl_OpenCommandChannel, Tcl_MakeFileChannel, Tcl_GetChannel, Tcl_GetChannelNames, Tcl_GetChannelNamesEx, Tcl_RegisterChannel, Tcl_UnregisterChannel, Tcl_DetachChannel, Tcl_IsStandardChannel, Tcl_Close, Tcl_ReadChars, Tcl_Read, Tcl_GetsObj, Tcl_Gets, Tcl_WriteObj, Tcl_WriteChars, Tcl_Write, Tcl_Flush, Tcl_Seek, Tcl_Tell, Tcl_TruncateChannel, Tcl_GetChannelOption, Tcl_SetChannelOption, Tcl_Eof, Tcl_InputBlocked, Tcl_InputBuffered, Tcl_OutputBuffered, Tcl_Ungets, Tcl_ReadRaw, Tcl_WriteRaw \- buffered I/O facilities using channels
 .SH SYNOPSIS
 .nf
 \fB#include <tcl.h>\fR
@@ -261,14 +291,12 @@ Tcl_Channel
 .sp
 Tcl_Channel
 \fBTcl_GetChannel\fR(\fIinterp, channelName, modePtr\fR)
-.VS 8.3
 .sp
 int
 \fBTcl_GetChannelNames\fR(\fIinterp\fR)
 .sp
 int
 \fBTcl_GetChannelNamesEx\fR(\fIinterp, pattern\fR)
-.VE
 .sp
 void
 \fBTcl_RegisterChannel\fR(\fIinterp, channel\fR)
@@ -285,7 +313,6 @@ int
 int
 \fBTcl_Close\fR(\fIinterp, channel\fR)
 .sp
-.VS 8.1
 int
 \fBTcl_ReadChars\fR(\fIchannel, readObjPtr, charsToRead, appendFlag\fR)
 .sp
@@ -309,15 +336,12 @@ int
 .sp
 int
 \fBTcl_Write\fR(\fIchannel, byteBuf, bytesToWrite\fR)
-.VE
-.VS 8.3.2
 .sp
 int
 \fBTcl_ReadRaw\fR(\fIchannel, readBuf, bytesToRead\fR)
 .sp
 int
 \fBTcl_WriteRaw\fR(\fIchannel, byteBuf, bytesToWrite\fR)
-.VE
 .sp
 int
 \fBTcl_Eof\fR(\fIchannel\fR)
@@ -330,19 +354,18 @@ int
 .sp
 int
 \fBTcl_InputBuffered\fR(\fIchannel\fR)
-.VS 8.4
 .sp
 int
 \fBTcl_OutputBuffered\fR(\fIchannel\fR)
-.VE
 .sp
-.VS 8.4
 Tcl_WideInt
 \fBTcl_Seek\fR(\fIchannel, offset, seekMode\fR)
 .sp
 Tcl_WideInt
 \fBTcl_Tell\fR(\fIchannel\fR)
-.VE 8.4
+.sp
+int
+\fBTcl_TruncateChannel\fR(\fIchannel, length\fR)
 .sp
 int
 \fBTcl_GetChannelOption\fR(\fIinterp, channel, optionName, optionValue\fR)
@@ -351,12 +374,12 @@ int
 \fBTcl_SetChannelOption\fR(\fIinterp, channel, optionName, newValue\fR)
 .sp
 .SH ARGUMENTS
-.AS Tcl_ChannelType newClientProcPtr in
+.AS Tcl_DString *channelName in/out
 .AP Tcl_Interp *interp in
 Used for error reporting and to look up a channel registered in it.
-.AP "CONST char" *fileName in
+.AP "const char" *fileName in
 The name of a local or network file.
-.AP "CONST char" *mode in
+.AP "const char" *mode in
 Specifies how the file is to be accessed.  May have any of the values
 allowed for the \fImode\fR argument to the Tcl \fBopen\fR command.  
 .AP int permissions in
@@ -364,7 +387,7 @@ POSIX-style permission flags such as 0644.  If a new file is created, these
 permissions will be set on the created file.
 .AP int argc in
 The number of elements in \fIargv\fR.
-.AP "CONST char" **argv in
+.AP "const char" **argv in
 Arguments for constructing a command pipeline.  These values have the same
 meaning as the non-switch arguments to the Tcl \fBexec\fR command.
 .AP int flags in
@@ -383,63 +406,57 @@ file descriptor, for Windows it is a HANDLE.
 .AP int readOrWrite in
 OR-ed combination of \fBTCL_READABLE\fR and \fBTCL_WRITABLE\fR to indicate
 what operations are valid on \fIhandle\fR.
-.AP "CONST char" *channelName in
+.AP "const char" *channelName in
 The name of the channel. 
 .AP int *modePtr out
 Points at an integer variable that will receive an OR-ed combination of
 \fBTCL_READABLE\fR and \fBTCL_WRITABLE\fR denoting whether the channel is
 open for reading and writing.
-.VS 8.3
-.AP "CONST char" *pattern in
+.AP "const char" *pattern in
 The pattern to match on, passed to Tcl_StringMatch, or NULL.
-.VE
 .AP Tcl_Channel channel in
 A Tcl channel for input or output.  Must have been the return value
 from a procedure such as \fBTcl_OpenFileChannel\fR.
-.VS 8.1 br
 .AP Tcl_Obj *readObjPtr in/out
-A pointer to a Tcl Object in which to store the characters read from the
+A pointer to a Tcl value in which to store the characters read from the
 channel.
 .AP int charsToRead in
 The number of characters to read from the channel.  If the channel's encoding 
 is \fBbinary\fR, this is equivalent to the number of bytes to read from the 
 channel.
 .AP int appendFlag in
-If non-zero, data read from the channel will be appended to the object.
-Otherwise, the data will replace the existing contents of the object.
+If non-zero, data read from the channel will be appended to the value.
+Otherwise, the data will replace the existing contents of the value.
 .AP char *readBuf out
 A buffer in which to store the bytes read from the channel.
 .AP int bytesToRead in
 The number of bytes to read from the channel.  The buffer \fIreadBuf\fR must
 be large enough to hold this many bytes.
 .AP Tcl_Obj *lineObjPtr in/out
-A pointer to a Tcl object in which to store the line read from the
+A pointer to a Tcl value in which to store the line read from the
 channel.  The line read will be appended to the current value of the
-object
+value
 .AP Tcl_DString *lineRead in/out
 A pointer to a Tcl dynamic string in which to store the line read from the
 channel.  Must have been initialized by the caller.  The line read will be
 appended to any data already in the dynamic string.
-.VS 8.3
-.AP "CONST char" *input in
+.AP "const char" *input in
 The input to add to a channel buffer.
 .AP int inputLen in
 Length of the input
 .AP int addAtEnd in
 Flag indicating whether the input should be added to the end or
 beginning of the channel buffer.
-.VE
 .AP Tcl_Obj *writeObjPtr in
-A pointer to a Tcl Object whose contents will be output to the channel.
-.AP "CONST char" *charBuf in
+A pointer to a Tcl value whose contents will be output to the channel.
+.AP "const char" *charBuf in
 A buffer containing the characters to output to the channel.
-.AP "CONST char" *byteBuf in
+.AP "const char" *byteBuf in
 A buffer containing the bytes to output to the channel.
 .AP int bytesToWrite in
 The number of bytes to consume from \fIcharBuf\fR or \fIbyteBuf\fR and
 output to the channel.
-.VE
-.AP int offset in
+.AP Tcl_WideInt offset in
 How far to move the access point in the channel at which the next input or
 output operation will be applied, measured in bytes from the position
 given by \fIseekMode\fR.  May be either positive or negative.
@@ -447,16 +464,17 @@ given by \fIseekMode\fR.  May be either positive or negative.
 Relative to which point to seek; used with \fIoffset\fR to calculate the new
 access point for the channel. Legal values are \fBSEEK_SET\fR,
 \fBSEEK_CUR\fR, and \fBSEEK_END\fR.
-.AP "CONST char" *optionName in
+.AP Tcl_WideInt length in
+The (non-negative) length to truncate the channel the channel to.
+.AP "const char" *optionName in
 The name of an option applicable to this channel, such as \fB\-blocking\fR.
 May have any of the values accepted by the \fBfconfigure\fR command.
 .AP Tcl_DString *optionValue in
 Where to store the value of an option or a list of all options and their
 values. Must have been initialized by the caller.
-.AP "CONST char" *newValue in
+.AP "const char" *newValue in
 New value for the option given by \fIoptionName\fR.
 .BE
-
 .SH DESCRIPTION
 .PP
 The Tcl channel mechanism provides a device-independent and
@@ -464,7 +482,7 @@ platform-independent mechanism for performing buffered input
 and output operations on a variety of file, socket, and device
 types.
 The channel mechanism is extensible to new channel types, by
-providing a low level channel driver for the new type; the channel driver
+providing a low-level channel driver for the new type; the channel driver
 interface is described in the manual entry for \fBTcl_CreateChannel\fR. The
 channel mechanism provides a buffering scheme modeled after
 Unix's standard I/O, and it also allows for nonblocking I/O on
@@ -474,7 +492,6 @@ The procedures described in this manual entry comprise the C APIs of the
 generic layer of the channel architecture. For a description of the channel
 driver architecture and how to implement channel drivers for new types of
 channels, see the manual entry for \fBTcl_CreateChannel\fR.
-
 .SH TCL_OPENFILECHANNEL
 .PP
 \fBTcl_OpenFileChannel\fR opens a file specified by \fIfileName\fR and
@@ -488,17 +505,14 @@ returns NULL and records a POSIX error code that can be
 retrieved with \fBTcl_GetErrno\fR.
 In addition, if \fIinterp\fR is non-NULL, \fBTcl_OpenFileChannel\fR
 leaves an error message in \fIinterp\fR's result after any error.  
-As of Tcl 8.4, the object-based API \fBTcl_FSOpenFileChannel\fR should 
+As of Tcl 8.4, the value-based API \fBTcl_FSOpenFileChannel\fR should 
 be used in preference to \fBTcl_OpenFileChannel\fR wherever possible.
 .PP
-
-.PP
 The newly created channel is not registered in the supplied interpreter; to
 register it, use \fBTcl_RegisterChannel\fR, described below.
-If one of the standard channels, \fBstdinstdout\fR or \fBstderr\fR was
+If one of the standard channels, \fBstdin\fR, \fBstdout\fR or \fBstderr\fR was
 previously closed, the act of creating the new channel also assigns it as a
 replacement for the standard channel.
-
 .SH TCL_OPENCOMMANDCHANNEL
 .PP
 \fBTcl_OpenCommandChannel\fR provides a C-level interface to the
@@ -533,20 +547,18 @@ the interpreter's result if \fIinterp\fR is not NULL.
 .PP
 The newly created channel is not registered in the supplied interpreter; to
 register it, use \fBTcl_RegisterChannel\fR, described below.
-If one of the standard channels, \fBstdinstdout\fR or \fBstderr\fR was
+If one of the standard channels, \fBstdin\fR, \fBstdout\fR or \fBstderr\fR was
 previously closed, the act of creating the new channel also assigns it as a
 replacement for the standard channel.
-
 .SH TCL_MAKEFILECHANNEL
 .PP
 \fBTcl_MakeFileChannel\fR makes a \fBTcl_Channel\fR from an existing,
 platform-specific, file handle.
 The newly created channel is not registered in the supplied interpreter; to
 register it, use \fBTcl_RegisterChannel\fR, described below.
-If one of the standard channels, \fBstdinstdout\fR or \fBstderr\fR was
+If one of the standard channels, \fBstdin\fR, \fBstdout\fR or \fBstderr\fR was
 previously closed, the act of creating the new channel also assigns it as a
 replacement for the standard channel.
-
 .SH TCL_GETCHANNEL
 .PP
 \fBTcl_GetChannel\fR returns a channel given the \fIchannelName\fR used to
@@ -559,12 +571,11 @@ open for reading and writing.
 .PP
 \fBTcl_GetChannelNames\fR and \fBTcl_GetChannelNamesEx\fR write the
 names of the registered channels to the interpreter's result as a
-list object.  \fBTcl_GetChannelNamesEx\fR will filter these names
+list value.  \fBTcl_GetChannelNamesEx\fR will filter these names
 according to the \fIpattern\fR.  If \fIpattern\fR is NULL, then it
 will not do any filtering.  The return value is \fBTCL_OK\fR if no
 errors occurred writing to the result, otherwise it is \fBTCL_ERROR\fR,
 and the error message is left in the interpreter's result.
-
 .SH TCL_REGISTERCHANNEL
 .PP
 \fBTcl_RegisterChannel\fR adds a channel to the set of channels accessible
@@ -585,11 +596,10 @@ reference to a channel that is also registered in a Tcl interpreter.
 .PP
 This procedure interacts with the code managing the standard
 channels. If no standard channels were initialized before the first
-call to \fBTcl_RegisterChannel\fR they will get initialized by that
+call to \fBTcl_RegisterChannel\fR, they will get initialized by that
 call. See \fBTcl_StandardChannels\fR for a general treatise about
-standard channels and the behaviour of the Tcl library with regard to
+standard channels and the behavior of the Tcl library with regard to
 them.
-
 .SH TCL_UNREGISTERCHANNEL
 .PP
 \fBTcl_UnregisterChannel\fR removes a channel from the set of channels
@@ -604,31 +614,28 @@ that it no longer holds a reference to that channel. If this is the last
 reference to the channel, it will now be closed.  \fBTcl_UnregisterChannel\fR
 is very similar to \fBTcl_DetachChannel\fR except that it will also
 close the channel if no further references to it exist.
-
 .SH TCL_DETACHCHANNEL
 .PP
 \fBTcl_DetachChannel\fR removes a channel from the set of channels
 accessible in \fIinterp\fR. After this call, Tcl programs will no longer be
 able to use the channel's name to refer to the channel in that interpreter.
 Beyond that, this command has no further effect.  It cannot be used on
-the standard channels (stdout, stderr, stdin), and will return
-TCL_ERROR if passed one of those channels.
+the standard channels (\fBstdout\fR, \fBstderr\fR, \fBstdin\fR), and will return
+\fBTCL_ERROR\fR if passed one of those channels.
 .PP
 Code not associated with a Tcl interpreter can call
 \fBTcl_DetachChannel\fR with \fIinterp\fR as NULL, to indicate to Tcl
 that it no longer holds a reference to that channel. If this is the last
 reference to the channel, unlike \fBTcl_UnregisterChannel\fR, 
 it will not be closed.
-
 .SH TCL_ISSTANDARDCHANNEL
 .PP
 \fBTcl_IsStandardChannel\fR tests whether a channel is one of the
-three standard channels, stdin, stdout or stderr.  If so, it returns
-1, otherwise 0.
+three standard channels, \fBstdin\fR, \fBstdout\fR or \fBstderr\fR.
+If so, it returns 1, otherwise 0.
 .PP
 No attempt is made to check whether the given channel or the standard 
 channels are initialized or otherwise valid.
-
 .SH TCL_CLOSE
 .PP
 \fBTcl_Close\fR destroys the channel \fIchannel\fR, which must denote a
@@ -658,8 +665,6 @@ been given as the \fBchan\fR argument in a call to
 \fBTcl_UnregisterChannel\fR, which will internally call \fBTcl_Close\fR
 when all calls to \fBTcl_RegisterChannel\fR have been matched by
 corresponding calls to \fBTcl_UnregisterChannel\fR.
-
-.VS 8.1 br
 .SH "TCL_READCHARS AND TCL_READ"
 .PP
 \fBTcl_ReadChars\fR consumes bytes from \fIchannel\fR, converting the bytes
@@ -670,6 +675,10 @@ that were stored in \fIreadObjPtr\fR.  If an error occurs while reading, the
 return value is \-1 and \fBTcl_ReadChars\fR records a POSIX error code that
 can be retrieved with \fBTcl_GetErrno\fR.
 .PP
+Setting \fIcharsToRead\fR to \fB\-1\fR will cause the command to read
+all characters currently available (non-blocking) or everything until
+eof (blocking mode).
+.PP
 The return value may be smaller than the value to read, indicating that less
 data than requested was available.  This is called a \fIshort read\fR.  In
 blocking mode, this can only happen on an end-of-file.  In nonblocking mode,
@@ -692,14 +701,14 @@ platform-specific modes are described in the manual entry for the Tcl
 As a performance optimization, when reading from a channel with the encoding
 \fBbinary\fR, the bytes are not converted to UTF-8 as they are read.
 Instead, they are stored in \fIreadObjPtr\fR's internal representation as a
-byte-array object.  The string representation of this object will only be
+byte-array value.  The string representation of this value will only be
 constructed if it is needed (e.g., because of a call to
 \fBTcl_GetStringFromObj\fR).  In this way, byte-oriented data can be read
 from a channel, manipulated by calling \fBTcl_GetByteArrayFromObj\fR and
 related functions, and then written to a channel without the expense of ever
 converting to or from UTF-8.
 .PP
-\fBTcl_Read\fR is similar to \fBTcl_ReadChars\fR, except that it doesn't do
+\fBTcl_Read\fR is similar to \fBTcl_ReadChars\fR, except that it does not do
 encoding conversions, regardless of the channel's encoding.  It is deprecated
 and exists for backwards compatibility with non-internationalized Tcl
 extensions.  It consumes bytes from \fIchannel\fR and stores them in
@@ -716,7 +725,6 @@ stack the supplied channel is part of, \fBTcl_ReadRaw\fR does
 not. Thus this function is \fBonly\fR usable for transformational
 channel drivers, i.e. drivers used in the middle of a stack of
 channels, to move data from the channel below into the transformation.
-
 .SH "TCL_GETSOBJ AND TCL_GETS"
 .PP
 \fBTcl_GetsObj\fR consumes bytes from \fIchannel\fR, converting the bytes to
@@ -742,8 +750,7 @@ of input unavailability.
 .PP
 \fBTcl_Gets\fR is the same as \fBTcl_GetsObj\fR except the resulting
 characters are appended to the dynamic string given by
-\fIlineRead\fR rather than a Tcl object.
-
+\fIlineRead\fR rather than a Tcl value.
 .SH "TCL_UNGETS"
 .PP
 \fBTcl_Ungets\fR is used to add data to the input queue of a channel,
@@ -751,10 +758,11 @@ at either the head or tail of the queue.  The pointer \fIinput\fR points
 to the data that is to be added.  The length of the input to add is given
 by \fIinputLen\fR.  A non-zero value of \fIaddAtEnd\fR indicates that the
 data is to be added at the end of queue; otherwise it will be added at the
-head of the queue.  If \fIchannel\fR has a "sticky" EOF set, no data will be
+head of the queue.  If \fIchannel\fR has a
+.QW sticky
+EOF set, no data will be
 added to the input queue.  \fBTcl_Ungets\fR returns \fIinputLen\fR or
--1 if an error occurs.
-
+\-1 if an error occurs.
 .SH "TCL_WRITECHARS, TCL_WRITEOBJ, AND TCL_WRITE"
 .PP
 \fBTcl_WriteChars\fR accepts \fIbytesToWrite\fR bytes of character data at
@@ -781,19 +789,19 @@ end-of-line sequences according to the \fB\-translation\fR option for the
 channel.  This is done even if the channel has no encoding.
 .PP
 \fBTcl_WriteObj\fR is similar to \fBTcl_WriteChars\fR except it
-accepts a Tcl object whose contents will be output to the channel.  The
+accepts a Tcl value whose contents will be output to the channel.  The
 UTF-8 characters in \fIwriteObjPtr\fR's string representation are converted
 to the channel's encoding and queued for output to \fIchannel\fR.  
 As a performance optimization, when writing to a channel with the encoding
 \fBbinary\fR, UTF-8 characters are not converted as they are written.
 Instead, the bytes in \fIwriteObjPtr\fR's internal representation as a
-byte-array object are written to the channel.  The byte-array representation
-of the object will be constructed if it is needed.  In this way,
+byte-array value are written to the channel.  The byte-array representation
+of the value will be constructed if it is needed.  In this way,
 byte-oriented data can be read from a channel, manipulated by calling
 \fBTcl_GetByteArrayFromObj\fR and related functions, and then written to a
 channel without the expense of ever converting to or from UTF-8.
 .PP
-\fBTcl_Write\fR is similar to \fBTcl_WriteChars\fR except that it doesn't do
+\fBTcl_Write\fR is similar to \fBTcl_WriteChars\fR except that it does not do
 encoding conversions, regardless of the channel's encoding.  It is
 deprecated and exists for backwards compatibility with non-internationalized
 Tcl extensions.  It accepts \fIbytesToWrite\fR bytes of data at
@@ -809,8 +817,6 @@ not. Thus this function is \fBonly\fR usable for transformational
 channel drivers, i.e. drivers used in the middle of a stack of
 channels, to move data from the transformation into the channel below
 it.
-.VE
-
 .SH TCL_FLUSH
 .PP
 \fBTcl_Flush\fR causes all of the buffered output data for \fIchannel\fR
@@ -824,7 +830,6 @@ eventually, as fast as the channel is able to absorb it.
 The return value is normally \fBTCL_OK\fR.
 If an error occurs, \fBTcl_Flush\fR returns \fBTCL_ERROR\fR and
 records a POSIX error code that can be retrieved with \fBTcl_GetErrno\fR.
-
 .SH TCL_SEEK
 .PP
 \fBTcl_Seek\fR moves the access point in \fIchannel\fR where subsequent
@@ -835,12 +840,15 @@ buffered input is discarded, prior to the seek operation.
 If an error occurs, \fBTcl_Seek\fR returns \-1 and records a POSIX error
 code that can be retrieved with \fBTcl_GetErrno\fR.
 After an error, the access point may or may not have been moved.
-
 .SH TCL_TELL
 .PP
 \fBTcl_Tell\fR returns the current access point for a channel. The returned
 value is \-1 if the channel does not support seeking.
-
+.SH TCL_TRUNCATECHANNEL
+.PP
+\fBTcl_TruncateChannel\fR truncates the file underlying \fIchannel\fR
+to a given \fIlength\fR of bytes. It returns \fBTCL_OK\fR if the
+operation succeeded, and \fBTCL_ERROR\fR otherwise.
 .SH TCL_GETCHANNELOPTION
 .PP
 \fBTcl_GetChannelOption\fR retrieves, in \fIoptionValue\fR, the value of one of
@@ -862,7 +870,6 @@ for the Tcl \fBsocket\fR command.
 The procedure normally returns \fBTCL_OK\fR. If an error occurs, it returns
 \fBTCL_ERROR\fR and calls \fBTcl_SetErrno\fR to store an appropriate POSIX
 error code.
-
 .SH TCL_SETCHANNELOPTION
 .PP
 \fBTcl_SetChannelOption\fR sets a new value \fInewValue\fR
@@ -870,32 +877,26 @@ for an option \fIoptionName\fR on \fIchannel\fR.
 The procedure normally returns \fBTCL_OK\fR.  If an error occurs,
 it returns \fBTCL_ERROR\fR;  in addition, if \fIinterp\fR is non-NULL,
 \fBTcl_SetChannelOption\fR leaves an error message in the interpreter's result.
-
 .SH TCL_EOF
 .PP
 \fBTcl_Eof\fR returns a nonzero value if \fIchannel\fR encountered
 an end of file during the last input operation.
-
 .SH TCL_INPUTBLOCKED
 .PP
 \fBTcl_InputBlocked\fR returns a nonzero value if \fIchannel\fR is in
 nonblocking mode and the last input operation returned less data than
 requested because there was insufficient data available.
 The call always returns zero if the channel is in blocking mode.
-
 .SH TCL_INPUTBUFFERED
 .PP
 \fBTcl_InputBuffered\fR returns the number of bytes of input currently
 buffered in the internal buffers for a channel. If the channel is not open
 for reading, this function always returns zero.
-
 .SH TCL_OUTPUTBUFFERED
-.VS 8.4
+.PP
 \fBTcl_OutputBuffered\fR returns the number of bytes of output
 currently buffered in the internal buffers for a channel. If the
 channel is not open for writing, this function always returns zero.
-.VE
-
 .SH "PLATFORM ISSUES"
 .PP
 The handles returned from \fBTcl_GetChannelHandle\fR depend on the
@@ -905,12 +906,9 @@ call.  On Windows platforms, the handle is a file \fBHANDLE\fR when
 the channel was created with \fBTcl_OpenFileChannel\fR,
 \fBTcl_OpenCommandChannel\fR, or \fBTcl_MakeFileChannel\fR.  Other
 channel types may return a different type of handle on Windows
-platforms.  On the Macintosh platform, the handle is a file reference
-number as returned from \fBHOpenDF\fR.
-
+platforms.
 .SH "SEE ALSO"
 DString(3), fconfigure(n), filename(n), fopen(3), Tcl_CreateChannel(3)
-
 .SH KEYWORDS
 access point, blocking, buffered I/O, channel, channel driver, end of file,
 flush, input, nonblocking, output, read, seek, write