X-Git-Url: https://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2FID3FS%2FFuse.pm;h=058b86887315b137732e052d275f4818d334340e;hb=8cacffa81cfa08e7ee991be3c6815376b0005150;hp=62dd3a8aa494368173f3ebd29c915353867c519b;hpb=fb36f92d827b5e57b2d3238e41bf53f98d6b52b1;p=id3fs.git diff --git a/lib/ID3FS/Fuse.pm b/lib/ID3FS/Fuse.pm index 62dd3a8..058b868 100644 --- a/lib/ID3FS/Fuse.pm +++ b/lib/ID3FS/Fuse.pm @@ -97,7 +97,7 @@ sub getdir return(-ENOTDIR()) unless($path->isdir()); my @dents=(); my($dirs, $files)=$path->dirents(); - push(@dents, $self->filter($filename, @$dirs)); + push(@dents, $path->filter(@$dirs)); push(@dents, @$files); if(@dents) { @@ -106,44 +106,6 @@ sub getdir return(0); } -sub filter -{ - my($self, $base, @dirs)=@_; - my @outdirs=(); - for my $dir (@dirs) - { - print "hascontents: $base / $dir\n"; - my $path=ID3FS::Path->new($self->{db}, "$base/$dir"); - next unless($path->isvalid()); - my($subdirs,$subfiles)=$path->dirents(); - print "SUBDENTS: ", join(", ", @$subdirs, @$subfiles), "\n"; - next unless(@$subdirs || @$subfiles); - if(!@$subfiles || scalar(@$subdirs) < 3) - { - my $subdirents=0; - for my $subdir (@$subdirs) - { - if(grep { $_ eq $subdir; } qw(AND OR NOT)) - { - my $subsubpath=ID3FS::Path->new($self->{db}, "$base/$dir/$subdir"); - if($path->isvalid()) - { - my($subsubdirs,$subsubfiles)=$subsubpath->dirents(); - $subdirents++ if(@$subsubdirs || @$subsubfiles); - } - } - else - { - $subdirents++; - } - } - next unless($subdirents); - } - push(@outdirs, $dir); - } - return(@outdirs) -} - # unused stubs sub mknod { print "FUSE: mknod\n"; return -EROFS(); } sub mkdir { print "FUSE: mkdir\n"; return -EROFS(); }