* library/tclprocvfs.tcl (vfs::ns::matchindirectory): Handle the
authorJeff Hobbs <hobbs@users.sourceforge.net>
Wed, 3 Dec 2008 08:07:59 +0000 (08:07 +0000)
committerJeff Hobbs <hobbs@users.sourceforge.net>
Wed, 3 Dec 2008 08:07:59 +0000 (08:07 +0000)
single item dir/file, and don't add a slash for single proc.

ChangeLog
library/tclprocvfs.tcl

index 9805820354c8983a162066f0dec0f30193b4e123..c1f917ba67b587ce0838c5fe6c2166566b41eb15 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-12-03  Jeff Hobbs  <jeffh@ActiveState.com>
+
+       * library/tclprocvfs.tcl (vfs::ns::matchindirectory): Handle the
+       single item dir/file, and don't add a slash for single proc.
+
 2008-12-02  Jeff Hobbs  <jeffh@ActiveState.com>
 
        * tests/vfs.test (vfs-2.3,2.4,4.1): add tests for mount command
index 85b792c846d1f30213aa66813c543b5ca03bcfa9..4287eeb6e93b093a9f727f453c5ab01a339e0251 100644 (file)
@@ -115,14 +115,13 @@ proc vfs::ns::matchindirectory {ns path actualpath pattern type} {
 
     set ns ::[string trim $ns :]
     set nspath ${ns}::${path}
+    set slash 1
     if {[::vfs::matchDirectories $type]} {
        # add matching directories to $res
        if {[string length $pattern]} {
            eval [linsert [namespace children $nspath $pattern] 0 lappend res]
-       } else {
-           if {[namespace exists $nspath]} {
-               eval [linsert $nspath 0 lappend res]
-           }
+       } elseif {[namespace exists $nspath]} {
+           lappend res $nspath
        }
     }
 
@@ -130,14 +129,15 @@ proc vfs::ns::matchindirectory {ns path actualpath pattern type} {
        # add matching files to $res
        if {[string length $pattern]} {
            eval [linsert [info procs ${nspath}::$pattern] 0 lappend res]
-       } else {
-           eval [linsert [info procs $ns] 0 lappend res]
+       } elseif {[llength [info procs $nspath]]} {
+           lappend res $nspath
+           set slash 0
        }
     }
 
     # There is a disconnect between 8.4 and 8.5 with the / handling
     # Make sure actualpath gets just one trailing /
-    if {![string match */ $actualpath]} { append actualpath / }
+    if {$slash && ![string match */ $actualpath]} { append actualpath / }
 
     set realres [list]
     foreach r $res {