@@ -18,12 +18,14 @@ # Implementation ## Filesystem Data namespace eval ::vfs::kitdll::data {} set ::vfs::kitdll::data(joe) "Test\n" +set ::vfs::kitdll::data(bob) "joe" set {::vfs::kitdll::metadata()} [list type directory ino 0 mode 0555 nlink 2 uid 0 gid 0 size 0 atime 0 mtime 0 ctime 0] set ::vfs::kitdll::metadata(joe) [list type file ino 1 mode 0444 nlink 1 uid 0 gid 0 size 5 atime 0 mtime 0 ctime 0] +set ::vfs::kitdll::metadata(bob) [list type link ino 4 mode 0444 nlink 1 uid 0 gid 0 size 5 atime 0 mtime 0 ctime 0] set ::vfs::kitdll::metadata(sub) [list type directory ino 2 mode 0555 nlink 1 uid 0 gid 0 size 0 atime 0 mtime 0 ctime 0] set ::vfs::kitdll::metadata(sub/sub2) [list type directory ino 3 mode 0555 nlink 1 uid 0 gid 0 size 0 atime 0 mtime 0 ctime 0] proc ::vfs::kitdll::data::getData {hashkey file {start 0} {end "end"}} { if {![info exists ::vfs::kitdll::data($file)]} { @@ -115,11 +117,11 @@ if {![info exists test]} { set children [list] } - set children [list $root] + set children [list $relative] } else { set children [::vfs::kitdll::data::getChildren $hashkey $relative] } foreach child $children { @@ -135,10 +137,13 @@ if {[string index $actualpath end] == "/"} { set child "${actualpath}${child}" } else { set child "${actualpath}/${child}" } + if {[string index $child end] == ""} { + set child [string range $child 0 end-1] + } if {![info exists metadata(type)]} { continue } @@ -148,10 +153,13 @@ set filetype [expr {$filetype | 0x04}] } "file" { set filetype [expr {$filetype | 0x10}] } + "link" { + set filetype [expr {$filetype | 0x20}] + } default { continue } }