From 81400277fe84e58e0ba9ad3ac57ad5637fe08b0f Mon Sep 17 00:00:00 2001 From: dgp Date: Wed, 4 Nov 2009 04:47:59 +0000 Subject: 2009-11-03 Andreas Kupries * 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. --- ChangeLog | 34 +++++++++++++++++++++------------- changes | 8 +++++--- library/safe.tcl | 24 ++++++++++++++++++++++-- 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 - - * 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 - - * tests/tcltest.test: Backport permissions fix for Win7. - 2009-11-03 Don Porter *** 8.5.8 TAGGED FOR RELEASE *** @@ -28,6 +15,27 @@ * changes: Update for 8.5.8 release. +2009-11-03 Andreas Kupries + + * 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 + + * 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 + + * tests/tcltest.test: Backport permissions fix for Win7. + 2009-10-31 Donal K. Fellows * 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 -- cgit v0.12