From 5538a8f05d419a3daff75d9dd5fa460fae5dad75 Mon Sep 17 00:00:00 2001 From: andreas_kupries Date: Wed, 5 Oct 2005 20:36:16 +0000 Subject: * doc/CrtChannel.3: Fixed [SF Tcl Bug 1104682], by application of David Welton's patch for it, and added a note about wideSeekProc. --- ChangeLog | 4 ++++ doc/CrtChannel.3 | 20 +++++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index ddfdf80..35f1924 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2005-10-05 Andreas Kupries + * doc/CrtChannel.3: Fixed [SF Tcl Bug 1104682], by application of + David Welton's patch for it, and added a note about + wideSeekProc. + * generic/tclIORChan.c (RcClose): Removed unreachable panic/return statements. This fixes the remainder of [SF Tcl Bug 1286256]. diff --git a/doc/CrtChannel.3 b/doc/CrtChannel.3 index f4751b5..f4ff280 100644 --- a/doc/CrtChannel.3 +++ b/doc/CrtChannel.3 @@ -5,7 +5,7 @@ '\" See the file "license.terms" for information on usage and redistribution '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. '\" -'\" RCS: @(#) $Id: CrtChannel.3,v 1.31 2005/06/07 20:37:40 dkf Exp $ +'\" RCS: @(#) $Id: CrtChannel.3,v 1.32 2005/10/05 20:36:16 andreas_kupries Exp $ .so man.macros .TH Tcl_CreateChannel 3 8.4 Tcl "Tcl Library Procedures" .BS @@ -334,20 +334,22 @@ typedef struct Tcl_ChannelType { Tcl_DriverFlushProc *\fIflushProc\fR; Tcl_DriverHandlerProc *\fIhandlerProc\fR; Tcl_DriverWideSeekProc *\fIwideSeekProc\fR; -.VS 8.5 Tcl_DriverThreadActionProc *\fIthreadActionProc\fR; +.VS 8.5 Tcl_DriverTruncateProc *\fItruncateProc\fR; .VE 8.5 } Tcl_ChannelType; .CE .PP -The driver must provide implementations for all functions except -\fIblockModeProc\fR, \fIseekProc\fR, \fIsetOptionProc\fR, -\fIgetOptionProc\fR, and \fIclose2Proc\fR, which may be specified as -NULL. Other functions that can not be implemented for this type of -device should return \fBEINVAL\fR when invoked to indicate that they -are not implemented, except in the case of \fIflushProc\fR and -\fIhandlerProc\fR, which should specified as NULL if not otherwise defined. +It is not necessary to provide implementations for all channel +operations. Those which are not necessary may be set to NULL in the +struct: \fIblockModeProc\fR, \fIseekProc\fR, \fIsetOptionProc\fR, +\fIgetOptionProc\fR, and \fIclose2Proc\fR, in addition to +\fIflushProc\fR, \fIhandlerProc\fR, \fIthreadActionProc\fR, and +\fItruncateProc\fR. Other functions that cannot be implemented in a +meaningful way should return \fBEINVAL\fR when called, to indicate +that the operations they represent are not available. Also note that +\fIwideSeekProc\fR can be NULL if \fIseekProc\fR is. .PP The user should only use the above structure for \fBTcl_ChannelType\fR instantiation. When referencing fields in a \fBTcl_ChannelType\fR -- cgit v0.12