diff options
author | ericm <ericm> | 2000-01-27 19:48:29 (GMT) |
---|---|---|
committer | ericm <ericm> | 2000-01-27 19:48:29 (GMT) |
commit | d8c3ee2177ba3302b1caf7fe451592c210d68212 (patch) | |
tree | 24c3203693a2642f3a3c42276897974f14712b60 /library | |
parent | b51a945c65f5f8555db941619e83775ad306b65b (diff) | |
download | tcl-d8c3ee2177ba3302b1caf7fe451592c210d68212.zip tcl-d8c3ee2177ba3302b1caf7fe451592c210d68212.tar.gz tcl-d8c3ee2177ba3302b1caf7fe451592c210d68212.tar.bz2 |
* tests/pkg/samename.tcl: test file for bug #1983
* tests/pkgMkIndex.test:
* library/package.tcl:
Fixed bug #1983, dealing with pkg_mkIndex incorrectly handling
situations with two procs by the same name but in different
namespaces (ie, foo::baz and bar::baz).
Diffstat (limited to 'library')
-rw-r--r-- | library/package.tcl | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/library/package.tcl b/library/package.tcl index 6bf7ff1..f0f9f44 100644 --- a/library/package.tcl +++ b/library/package.tcl @@ -3,7 +3,7 @@ # utility procs formerly in init.tcl which can be loaded on demand # for package management. # -# RCS: @(#) $Id: package.tcl,v 1.7 2000/01/27 19:20:05 ericm Exp $ +# RCS: @(#) $Id: package.tcl,v 1.8 2000/01/27 19:48:29 ericm Exp $ # # Copyright (c) 1991-1993 The Regents of the University of California. # Copyright (c) 1994-1998 Sun Microsystems, Inc. @@ -285,31 +285,31 @@ proc pkg_mkIndex {args} { if {! [info exists ::tcl::namespaces($::tcl::x)]} { namespace import -force ${::tcl::x}::* } - } - - # Figure out what commands appeared - - foreach ::tcl::x [info commands] { - set ::tcl::newCmds($::tcl::x) 1 - } - foreach ::tcl::x $::tcl::origCmds { - catch {unset ::tcl::newCmds($::tcl::x)} - } - foreach ::tcl::x [array names ::tcl::newCmds] { - # reverse engineer which namespace a command comes from - - set ::tcl::abs [namespace origin $::tcl::x] - - # special case so that global names have no leading - # ::, this is required by the unknown command - - set ::tcl::abs [auto_qualify $::tcl::abs ::] - - if {[string compare $::tcl::x $::tcl::abs]} { - # Name changed during qualification - set ::tcl::newCmds($::tcl::abs) 1 - unset ::tcl::newCmds($::tcl::x) + # Figure out what commands appeared + + foreach ::tcl::x [info commands] { + set ::tcl::newCmds($::tcl::x) 1 + } + foreach ::tcl::x $::tcl::origCmds { + catch {unset ::tcl::newCmds($::tcl::x)} + } + foreach ::tcl::x [array names ::tcl::newCmds] { + # determine which namespace a command comes from + + set ::tcl::abs [namespace origin $::tcl::x] + + # special case so that global names have no leading + # ::, this is required by the unknown command + + set ::tcl::abs [auto_qualify $::tcl::abs ::] + + if {[string compare $::tcl::x $::tcl::abs]} { + # Name changed during qualification + + set ::tcl::newCmds($::tcl::abs) 1 + unset ::tcl::newCmds($::tcl::x) + } } } } |