diff options
author | ericm <ericm> | 2000-01-29 00:12:46 (GMT) |
---|---|---|
committer | ericm <ericm> | 2000-01-29 00:12:46 (GMT) |
commit | bfc121a8bd79c18c8d1b7760be65a4db3ad18bfd (patch) | |
tree | ee6d1327507899d558998df83d6f9523690a6c56 /library/init.tcl | |
parent | c6f3f1f2051c0e0663480e2fb858e9436d3adcc4 (diff) | |
download | tcl-bfc121a8bd79c18c8d1b7760be65a4db3ad18bfd.zip tcl-bfc121a8bd79c18c8d1b7760be65a4db3ad18bfd.tar.gz tcl-bfc121a8bd79c18c8d1b7760be65a4db3ad18bfd.tar.bz2 |
* tests/pkg/magicchar2.tcl:
* tests/autoMkindex.test: Test for auto loader fix (bug #2480).
* library/init.tcl: auto_load was using [info commands $name] to
determine if a given command was available; if the command name
had * or [] it, this would fail because info commands uses
glob-style matching. This is fixed. (Bug #2480).
Diffstat (limited to 'library/init.tcl')
-rw-r--r-- | library/init.tcl | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/library/init.tcl b/library/init.tcl index 1797d50..c5fff21 100644 --- a/library/init.tcl +++ b/library/init.tcl @@ -3,7 +3,7 @@ # Default system startup file for Tcl-based applications. Defines # "unknown" procedure and auto-load facilities. # -# RCS: @(#) $Id: init.tcl,v 1.36 2000/01/24 02:30:08 hobbs Exp $ +# RCS: @(#) $Id: init.tcl,v 1.37 2000/01/29 00:12:46 ericm Exp $ # # Copyright (c) 1991-1993 The Regents of the University of California. # Copyright (c) 1994-1996 Sun Microsystems, Inc. @@ -305,11 +305,17 @@ proc auto_load {cmd {namespace {}}} { if {![auto_load_index]} { return 0 } - foreach name $nameList { if {[info exists auto_index($name)]} { uplevel #0 $auto_index($name) - if {[string compare [info commands $name] ""]} { + # There's a couple of ways to look for a command of a given + # name. One is to use + # info commands $name + # Unfortunately, if the name has glob-magic chars in it like * + # or [], it may not match. Since we really want an exact match, + # a better route is to use + # lsearch -exact [info commands] $name + if {[lsearch -exact [info commands] $name] != -1 } { return 1 } } |