fixed filter
[id3fs.git] / lib / ID3FS / Fuse.pm
index 62dd3a8..058b868 100644 (file)
@@ -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();      }