From 4902e44b93795162d58668f2a51ed99f94cb894a Mon Sep 17 00:00:00 2001 From: dgp Date: Mon, 27 Jun 2005 18:19:06 +0000 Subject: * library/auto.tcl: Reverted to Revision 1.12.2.3 (Tcl 8.4.9). Restores the (buggy) behavior of [auto_reset] that fails to clear away auto-loaded commands from non-global namespaces. Fixing this bug exposed an unknown number of buggy files out there (including at least portions of the Tk script library) that cannot tolerate double [source]-ing. The burden of fixing these exposed bugs will not be forced on package/extension/application authors until Tcl 8.5. --- ChangeLog | 13 ++++++++++++- changes | 5 ++++- library/auto.tcl | 40 ++++++++++++++++------------------------ 3 files changed, 32 insertions(+), 26 deletions(-) diff --git a/ChangeLog b/ChangeLog index 94e561d..1d805ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,18 @@ -2005-06-24 Kevin Kenny +2005-06-24 Don Porter *** 8.4.11 TAGGED FOR RELEASE *** + * library/auto.tcl: Reverted to Revision 1.12.2.3 (Tcl 8.4.9). + Restores the (buggy) behavior of [auto_reset] that fails to clear + away auto-loaded commands from non-global namespaces. Fixing this + bug exposed an unknown number of buggy files out there (including at + least portions of the Tk script library) that cannot tolerate double + [source]-ing. The burden of fixing these exposed bugs will not be + forced on package/extension/application authors until Tcl 8.5. + +2005-06-24 Kevin Kenny + + * generic/tclEvent.c (Tcl_Finalize): * generic/tclInt.h: * generic/tclPreserve.c (TclFinalizePreserve): Changed the diff --git a/changes b/changes index 4e0c048..7adc31e 100644 --- a/changes +++ b/changes @@ -1,6 +1,6 @@ Recent user-visible changes to Tcl: -RCS: @(#) $Id: changes,v 1.79.2.25 2005/06/23 20:25:24 dgp Exp $ +RCS: @(#) $Id: changes,v 1.79.2.26 2005/06/27 18:20:16 dgp Exp $ 1. No more [command1] [command2] construct for grouping multiple commands on a single command line. @@ -6225,4 +6225,7 @@ Documentation improvements [1075433,1085127,1117017,1124160,1149605,etc.] 2005-06-23 (bug fix)[1225957] Windows/gcc: crashes in assembler code (kenny) +2005-06-27 (revert)[1101670] [auto_reset] disabled in non-global namespace. +Restores Tcl 8.4.9 behavior (porter) + --- Released 8.4.11, June 28, 2005 --- See ChangeLog for details --- diff --git a/library/auto.tcl b/library/auto.tcl index d251fd0..b02b77f 100644 --- a/library/auto.tcl +++ b/library/auto.tcl @@ -3,7 +3,7 @@ # utility procs formerly in init.tcl dealing with auto execution # of commands and can be auto loaded themselves. # -# RCS: @(#) $Id: auto.tcl,v 1.12.2.7 2005/06/24 23:13:10 dgp Exp $ +# RCS: @(#) $Id: auto.tcl,v 1.12.2.8 2005/06/27 18:20:26 dgp Exp $ # # Copyright (c) 1991-1993 The Regents of the University of California. # Copyright (c) 1994-1998 Sun Microsystems, Inc. @@ -16,27 +16,26 @@ # # Destroy all cached information for auto-loading and auto-execution, # so that the information gets recomputed the next time it's needed. -# Also delete any procedures that are listed in the auto-load index, -# except some of those defined in the Tcl script library. +# Also delete any procedures that are listed in the auto-load index +# except those defined in this file. # # Arguments: # None. proc auto_reset {} { - if {[array exists ::auto_index]} { - foreach cmdName [array names ::auto_index] { - if {[string match auto_* $cmdName]} {continue} - set fqcn [namespace which $cmdName] - if {$fqcn eq ""} {continue} - if {[catch {info args $fqcn}]} {continue} - if {[lsearch -exact { - ::unknown ::pkg_mkIndex ::tclPkgSetup ::tcl_findLibrary - ::pkg_compareExtension ::tclPkgUnknown ::tcl::MacOSXPkgUnknown - ::tcl::MacPkgUnknown} $fqcn] != -1} {continue} - rename $fqcn {} - } + global auto_execs auto_index auto_oldpath + foreach p [info procs] { + if {[info exists auto_index($p)] && ![string match auto_* $p] + && ([lsearch -exact {unknown pkg_mkIndex tclPkgSetup + tcl_findLibrary pkg_compareExtension + tclPkgUnknown tcl::MacOSXPkgUnknown + tcl::MacPkgUnknown} $p] < 0)} { + rename $p {} + } } - unset -nocomplain ::auto_execs ::auto_index ::auto_oldpath + catch {unset auto_execs} + catch {unset auto_index} + catch {unset auto_oldpath} } # tcl_findLibrary -- @@ -309,10 +308,7 @@ namespace eval auto_mkindex_parser { variable scriptFile "" ;# name of file being processed variable contextStack "" ;# stack of namespace scopes variable imports "" ;# keeps track of all imported cmds - variable initCommands ;# list of commands that create aliases - if {![info exists initCommands]} { - set initCommands [list] - } + variable initCommands "" ;# list of commands that create aliases proc init {} { variable parser @@ -536,10 +532,6 @@ proc auto_mkindex_parser::fullname {name} { return $name } -if {[llength $::auto_mkindex_parser::initCommands]} { - return -} - # Register all of the procedures for the auto_mkindex parser that # will build the "tclIndex" file. -- cgit v0.12