-2008-10-20 Steve Huntley <stephen.huntley@alum.mit.edu>
+2010-01-30 Steve Huntley <stephen.huntley@alum.mit.edu>
+
+ * templatevfs.tcl: workaround for bug in how virtual volumes
+ are mounted. Version bumped to 1.5.4. See:
+http://sf.net/tracker/?func=detail&aid=2886914&group_id=10894&atid=110894
+
+2009-10-20 Steve Huntley <stephen.huntley@alum.mit.edu>
* tclIndex: Corrected version number.
* pkgIndex.tcl.in: Edited to replace function of deleted
pkgIndex.tcl in template subdir.
-2008-10-15 Steve Huntley <stephen.huntley@alum.mit.edu>
+2009-10-15 Steve Huntley <stephen.huntley@alum.mit.edu>
vfs::template package update ver. 1.5.3:
Written by Stephen Huntley (stephen.huntley@alum.mit.edu)
License: Tcl license
-Version 1.5.3
+Version 1.5.4
The template virtual filesystem is designed as a prototype on which to build new virtual
filesystems. Only a few simple, abstract procedures have to be overridden to produce a new
vfs::posixError load
unset vfs::posix(load)
-package provide vfs::template 1.5.3
+package provide vfs::template 1.5.4
namespace eval ::vfs::template {
set [namespace current]::cache($to) $cache
# register location with Tclvfs package:
- eval ::vfs::filesystem mount $volume \$to \[list [namespace current]::handler \$path\]
+ set div {}
+ if {$volume ne {}} {
+ if {[string index $to end] ne "/"} {
+ set div /
+ }
+ }
+ eval ::vfs::filesystem mount $volume \$to$div \[list [namespace current]::handler \$path\]
::vfs::RegisterMount $to [list [namespace current]::unmount]
# ensure close callback background error appears at script execution level:
# undo Tclvfs API hooks:
proc unmount {to} {
- set to [::file normalize $to]
+ if {[lsearch [::vfs::filesystem info] $to] < 0} {
+ set to [::file normalize $to]
+ }
set path [lindex [::vfs::filesystem info $to] end]
# call custom unmount procedure:
catch {rename ::exit ::vfs::template::exit}
-proc ::exit {} {
+proc ::exit {args} {
foreach vfs [::vfs::filesystem info] {
- if [catch {$::vfs::_unmountCmd($vfs) $vfs} result] {
+ if [catch {$::vfs::_unmountCmd([file normalize $vfs]) $vfs} result] {
puts "$vfs: $result"
}
}
- ::vfs::template::exit
+ ::vfs::template::exit [lindex $args 0]
}
if {[lsearch -exact $::auto_path [file join $dir template]] == -1} {
lappend ::auto_path [file join $dir template]
}
-package ifneeded vfs::template 1.5.3 \
+package ifneeded vfs::template 1.5.4 \
[list source [file join $dir template templatevfs.tcl]]
#
# Helpers