summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2009-11-04 04:47:59 (GMT)
committerdgp <dgp@users.sourceforge.net>2009-11-04 04:47:59 (GMT)
commit81400277fe84e58e0ba9ad3ac57ad5637fe08b0f (patch)
tree2d160d70a4167ff7f09c4238debf4666c7e86faf
parent782b735b4162b2776d90523e82bbc7ee0245a554 (diff)
downloadtcl-81400277fe84e58e0ba9ad3ac57ad5637fe08b0f.zip
tcl-81400277fe84e58e0ba9ad3ac57ad5637fe08b0f.tar.gz
tcl-81400277fe84e58e0ba9ad3ac57ad5637fe08b0f.tar.bz2
2009-11-03 Andreas Kupries <andreask@activestate.com>
* library/safe.tcl (::safe::InterpSetConfig): [Bug 2854929]. Added code to recursively find deeper paths which may contain modules. Required to handle modules with names like 'platform::shell', which translate into 'platform/shell-X.tm', i.e arbitrarily deep subdirectories.
-rw-r--r--ChangeLog34
-rw-r--r--changes8
-rw-r--r--library/safe.tcl24
3 files changed, 48 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog
index 160161b..69d4c47 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,16 +1,3 @@
-2009-11-03 Kevin B. Kenny <kennykb@acm.org>
-
- * library/tzdata/Asia/Novokuznetsk: New tzdata locale for
- Kemerovo oblast', which now keeps Novosibirsk time and not
- Kranoyarsk time.
- * library/tzdata/Asia/Damascus: Syrian DST changes.
- * library/tzdata/Asia/Hong_Kong: Hong Kong historic DST corrections.
- Olson tzdata2009q.
-
-2009-11-03 Pat Thoyts <patthoyts@users.sourceforge.net>
-
- * tests/tcltest.test: Backport permissions fix for Win7.
-
2009-11-03 Don Porter <dgp@users.sourceforge.net>
*** 8.5.8 TAGGED FOR RELEASE ***
@@ -28,6 +15,27 @@
* changes: Update for 8.5.8 release.
+2009-11-03 Andreas Kupries <andreask@activestate.com>
+
+ * library/safe.tcl (::safe::InterpSetConfig): [Bug 2854929]. Added
+ code to recursively find deeper paths which may contain modules.
+ Required to handle modules with names like 'platform::shell',
+ which translate into 'platform/shell-X.tm', i.e arbitrarily deep
+ subdirectories.
+
+2009-11-03 Kevin B. Kenny <kennykb@acm.org>
+
+ * library/tzdata/Asia/Novokuznetsk: New tzdata locale for
+ Kemerovo oblast', which now keeps Novosibirsk time and not
+ Kranoyarsk time.
+ * library/tzdata/Asia/Damascus: Syrian DST changes.
+ * library/tzdata/Asia/Hong_Kong: Hong Kong historic DST corrections.
+ Olson tzdata2009q.
+
+2009-11-03 Pat Thoyts <patthoyts@users.sourceforge.net>
+
+ * tests/tcltest.test: Backport permissions fix for Win7.
+
2009-10-31 Donal K. Fellows <dkf@users.sf.net>
* generic/tclBasic.c (ExprRoundFunc): [Bug 2889593]: Correctly report
diff --git a/changes b/changes
index 380ef2f..1cfef48 100644
--- a/changes
+++ b/changes
@@ -1,6 +1,6 @@
Recent user-visible changes to Tcl:
-RCS: @(#) $Id: changes,v 1.136.2.19 2009/11/03 19:16:06 dgp Exp $
+RCS: @(#) $Id: changes,v 1.136.2.20 2009/11/04 04:47:59 dgp Exp $
1. No more [command1] [command2] construct for grouping multiple
commands on a single command line.
@@ -7394,9 +7394,11 @@ among multiple interps (kupries)
2009-10-24 Broken DST applied EU rules to US zones (lehenbauer,kenny)
-2009-10-27 tzdata updated to Olson's tzdata2009p (kenny)
-
2009-10-29 (bug fix)[2800740] halved bignum memory on 64-bit systems (porter)
*** POTENTIAL INCOMPATIBILITY ***
+2009-11-03 tzdata updated to Olson's tzdata2009q (kenny)
+
+2009-11-03 (bug fix)[2854929] TM search path support in Safe Base (kupries)
+
--- Released 8.5.8, November xx, 2009 --- See ChangeLog for details ---
diff --git a/library/safe.tcl b/library/safe.tcl
index 501a552..8faa720 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.1 2008/06/25 16:42:05 andreas_kupries Exp $
+# RCS: @(#) $Id: safe.tcl,v 1.16.4.2 2009/11/04 04:47:59 dgp Exp $
#
# The implementation is based on namespaces. These naming conventions
@@ -373,13 +373,33 @@ namespace eval ::safe {
# Modules. We safe the virtual form separately as well, as
# syncing it with the slave has to be defered until the
# necessary commands are present for setup.
- foreach dir [::tcl::tm::list] {
+
+ set morepaths [::tcl::tm::list]
+ while {[llength $morepaths]} {
+ set addpaths $morepaths
+ set morepaths {}
+
+ foreach dir $addpaths {
lappend access_path $dir
Set [PathToken $i $slave] $dir
lappend slave_auto_path "\$[PathToken $i]"
lappend slave_tm_path "\$[PathToken $i]"
incr i
+
+ # [Bug 2854929]
+ # Recursively find deeper paths which may contain
+ # modules. Required to handle modules with names like
+ # 'platform::shell', which translate into
+ # 'platform/shell-X.tm', i.e arbitrarily deep
+ # subdirectories. The catch prevents complaints when
+ # no paths are added. Do nothing gracefully is 8.6+.
+
+ catch {
+ lappend morepaths {*}[glob -nocomplain -directory $dir -type d *]
}
+ }
+ }
+
Set [TmPathListName $slave] $slave_tm_path
Set $nname $i
Set [PathListName $slave] $access_path