From b2694cb09fefbce3de045cb20db90eda56abfb8d Mon Sep 17 00:00:00 2001 From: stwo Date: Tue, 2 Nov 2010 21:57:19 +0000 Subject: Improved handling of non-standard module path lists, empty path lists in particular. --- ChangeLog | 5 +++++ library/safe.tcl | 8 ++++---- tests/safe.test | 4 ++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1e585e6..8306091 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-11-01 Stuart Cassoff + + * library/safe.tcl: Improved handling of non-standard module + * tests/safe.test: path lists, empty path lists in particular. + 2010-11-01 Kevin B. Kenny * library/tzdata/Asia/Hong_Kong: diff --git a/library/safe.tcl b/library/safe.tcl index 6a2cdbe..57c3619 100644 --- a/library/safe.tcl +++ b/library/safe.tcl @@ -12,7 +12,7 @@ # See the file "license.terms" for information on usage and redistribution of # this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: safe.tcl,v 1.16.4.8 2010/09/02 18:30:29 andreas_kupries Exp $ +# RCS: @(#) $Id: safe.tcl,v 1.16.4.9 2010/11/02 21:57:19 stwo Exp $ # # The implementation is based on namespaces. These naming conventions are @@ -492,9 +492,9 @@ proc ::safe::InterpInit { # Sync the paths used to search for Tcl modules. This can be done only # now, after tm.tcl was loaded. namespace upvar ::safe S$slave state - ::interp eval $slave [list \ - ::tcl::tm::add {*}$state(tm_path_slave)] - + if {[llength $state(tm_path_slave)] > 0} { + ::interp eval $slave [list ::tcl::tm::add {*}$state(tm_path_slave)] + } return $slave } diff --git a/tests/safe.test b/tests/safe.test index aedc7de..7bfc4c4 100644 --- a/tests/safe.test +++ b/tests/safe.test @@ -10,7 +10,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: safe.test,v 1.22.4.7 2009/12/30 22:20:57 dkf Exp $ +# RCS: @(#) $Id: safe.test,v 1.22.4.8 2010/11/02 21:57:19 stwo Exp $ package require Tcl 8.5 @@ -197,7 +197,7 @@ test safe-7.2 {tests specific path and interpFind/AddToAccessPath} -body { [catch {interp eval $i {package require http 1}} msg] $msg \ [safe::interpConfigure $i]\ [safe::interpDelete $i] -} -match glob -result "{\$p(:0:)} {\$p(:*:)} 1 {can't find package http 1} {-accessPath {[list $tcl_library * /dummy/unixlike/test/path]} -statics 0 -nested 1 -deleteHook {}} {}" +} -match glob -result "{\$p(:0:)} {\$p(:*:)} 1 {can't find package http 1} {-accessPath {[list $tcl_library */dummy/unixlike/test/path]} -statics 0 -nested 1 -deleteHook {}} {}" # test source control on file name -- cgit v0.12