summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2005-06-27 18:19:06 (GMT)
committerdgp <dgp@users.sourceforge.net>2005-06-27 18:19:06 (GMT)
commit4902e44b93795162d58668f2a51ed99f94cb894a (patch)
tree9e29c2947f4e9be107cca8551d585a8811355189
parent8cd33b52416f2fe2176bf5a616770ee521dbff99 (diff)
downloadtcl-4902e44b93795162d58668f2a51ed99f94cb894a.zip
tcl-4902e44b93795162d58668f2a51ed99f94cb894a.tar.gz
tcl-4902e44b93795162d58668f2a51ed99f94cb894a.tar.bz2
* 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.
-rw-r--r--ChangeLog13
-rw-r--r--changes5
-rw-r--r--library/auto.tcl40
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 <kennykb@acm.org>
+2005-06-24 Don Porter <dgp@users.sourceforge.net>
*** 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 <kennykb@acm.org>
+
+
* 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.