diff options
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 } } |