summaryrefslogtreecommitdiffstats
path: root/library/tm.tcl
diff options
context:
space:
mode:
authorkjnash <k.j.nash@usa.net>2020-07-13 12:37:16 (GMT)
committerkjnash <k.j.nash@usa.net>2020-07-13 12:37:16 (GMT)
commit12ba446acbcd70856603aeeffb90fc425be58e02 (patch)
treec9776e5fb627570ee04c73c44e844bd5a5e53e7d /library/tm.tcl
parentf0a97b5c716346e60173644010e1d201bea8e690 (diff)
downloadtcl-12ba446acbcd70856603aeeffb90fc425be58e02.zip
tcl-12ba446acbcd70856603aeeffb90fc425be58e02.tar.gz
tcl-12ba446acbcd70856603aeeffb90fc425be58e02.tar.bz2
Bugfix in library/tm.tcl - in a safe interp ::tcl::tm::UnknownHandler should always use the freshest "package ifneeded"; pass test safe-9.23
Diffstat (limited to 'library/tm.tcl')
-rw-r--r--library/tm.tcl6
1 files changed, 5 insertions, 1 deletions
diff --git a/library/tm.tcl b/library/tm.tcl
index 1802bb9..3861532 100644
--- a/library/tm.tcl
+++ b/library/tm.tcl
@@ -238,12 +238,16 @@ proc ::tcl::tm::UnknownHandler {original name args} {
continue
}
- if {[package ifneeded $pkgname $pkgversion] ne {}} {
+ if { ([package ifneeded $pkgname $pkgversion] ne {})
+ && (![interp issafe])
+ } {
# There's already a provide script registered for
# this version of this package. Since all units of
# code claiming to be the same version of the same
# package ought to be identical, just stick with
# the one we already have.
+ # This does not apply to Safe Base interpreters because
+ # the token-to-directory mapping may have changed.
continue
}