tidy filtering code, ensure NOARTIST/NOALBUM/TRACKS are all filtered
authorIan Beckwith <ianb@erislabs.net>
Tue, 19 Oct 2010 04:56:03 +0000 (05:56 +0100)
committerIan Beckwith <ianb@erislabs.net>
Tue, 19 Oct 2010 04:56:03 +0000 (05:56 +0100)
lib/ID3FS/Path.pm

index 4cf5fc2..89c2e9d 100644 (file)
@@ -79,7 +79,7 @@ sub dirents
 #    print "DIRENTS: FILE: $self->{path}\n";
     if($state==$STATE_ALL)
     {
-       @dents=($PATH_ALLTRACKS, $PATH_NOARTIST, $self->artists());
+       @dents=($self->filter($PATH_ALLTRACKS, $PATH_NOARTIST), $self->artists());
     }
     elsif($state==$STATE_TAG || $state==$STATE_TAGVAL)
     {
@@ -94,10 +94,7 @@ sub dirents
            {
                @dents=qw(AND OR);
            }
-           push(@dents, ($ENABLE_FILTER ?
-                         $self->filter($PATH_ALLTRACKS, $PATH_NOARTIST) :
-                         ($PATH_ALLTRACKS, $PATH_NOARTIST)));
-           push(@dents, $self->artists());
+           push(@dents, $self->filter($PATH_ALLTRACKS, $PATH_NOARTIST), $self->artists());
        }
     }
     elsif($state==$STATE_BOOLEAN)
@@ -116,7 +113,7 @@ sub dirents
     }
     elsif($state==$STATE_ALBUMS)
     {
-       @dents=($self->filter($PATH_ALLTRACKS, $PATH_NOALBUM), $self->albums());
+       @dents=$self->filter($PATH_ALLTRACKS, $PATH_NOALBUM, $self->albums());
     }
     elsif($state==$STATE_TRACKLIST)
     {
@@ -795,6 +792,7 @@ sub constraints_tag_list
 sub filter
 {
     my($self, @dirs)=@_;
+    return(@dirs) unless($ENABLE_FILTER);
     my $base=$self->{path};
     my @outdirs=();
     for my $dir (@dirs)