summaryrefslogtreecommitdiffstats
path: root/library/init.tcl
diff options
context:
space:
mode:
authorericm <ericm>2000-01-29 00:12:46 (GMT)
committerericm <ericm>2000-01-29 00:12:46 (GMT)
commitbfc121a8bd79c18c8d1b7760be65a4db3ad18bfd (patch)
treeee6d1327507899d558998df83d6f9523690a6c56 /library/init.tcl
parentc6f3f1f2051c0e0663480e2fb858e9436d3adcc4 (diff)
downloadtcl-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.tcl12
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
}
}