From 5e641ebc8094bafba9b515eea6e4df375039c0de Mon Sep 17 00:00:00 2001 From: dgp Date: Tue, 6 Jun 2006 20:07:35 +0000 Subject: * doc/GetStdChan.3: Added recommendation that each call to Tcl_SetStdChannel() be accompanied by a call to Tcl_RegisterChannel(). --- ChangeLog | 5 +++++ doc/GetStdChan.3 | 12 +++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index db9eb45..a97ec70 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-06-06 Don Porter + + * doc/GetStdChan.3: Added recommendation that each call to + Tcl_SetStdChannel() be accompanied by a call to Tcl_RegisterChannel(). + 2006-05-31 Jeff Hobbs * generic/tclNamesp.c (NamespaceInscopeCmd): revert [Bug 1400572] diff --git a/doc/GetStdChan.3 b/doc/GetStdChan.3 index 09c65d9..031f0db 100644 --- a/doc/GetStdChan.3 +++ b/doc/GetStdChan.3 @@ -4,7 +4,7 @@ '\" See the file "license.terms" for information on usage and redistribution '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. '\" -'\" RCS: @(#) $Id: GetStdChan.3,v 1.4 2001/12/10 15:50:46 dgp Exp $ +'\" RCS: @(#) $Id: GetStdChan.3,v 1.4.4.1 2006/06/06 20:07:36 dgp Exp $ '\" .so man.macros .TH Tcl_GetStdChannel 3 7.5 Tcl "Tcl Library Procedures" @@ -53,6 +53,16 @@ by calling \fBTcl_SetStdChannel\fR with a new channel or NULL in the \fBTcl_Close\fR, then the corresponding standard channel will automatically be set to NULL. .PP +If a non-NULL value for \fIchannel\fR is passed to \fBTcl_SetStdChannel\fR, +then that same value should be passed to \fBTcl_RegisterChannel\fR, like so: +.CS +Tcl_RegisterChannel(NULL, channel); +.CE +This is a workaround for a misfeature in \fBTcl_SetStdChannel\fR that it +fails to do some reference counting housekeeping. This misfeature cannot +be corrected without contradicting the assumptions of some existing +code that calls \fBTcl_SetStdChannel\fR. +.PP If \fBTcl_GetStdChannel\fR is called before \fBTcl_SetStdChannel\fR, Tcl will construct a new channel to wrap the appropriate platform-specific standard file handle. If \fBTcl_SetStdChannel\fR is called before -- cgit v0.12