X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2FID3FS%2FPath.pm;h=629c02adc94fdf8857cec1a7e7df123967669a83;hb=c8571ddb3cc1f9bce16c91838de17f27242d2f32;hp=7e6c71d717e4dc4665f57d63c20cf104ddbc95a6;hpb=9ae98c5aa5a031e834dbc2a4dbd7e009a88b3394;p=id3fs.git diff --git a/lib/ID3FS/Path.pm b/lib/ID3FS/Path.pm index 7e6c71d..629c02a 100644 --- a/lib/ID3FS/Path.pm +++ b/lib/ID3FS/Path.pm @@ -20,9 +20,8 @@ use strict; use warnings; use ID3FS::Path::Node; -our ($STATE_INVALID, $STATE_ROOT, $STATE_TAG, $STATE_TAGVAL, - $STATE_BOOLEAN, $STATE_ALBUMS, $STATE_TRACKLIST, - $STATE_FILE, $STATE_ALL)=(0..8); +our ($STATE_INVALID, $STATE_ROOT, $STATE_TAG, $STATE_BOOLEAN, + $STATE_ALBUMS, $STATE_TRACKLIST, $STATE_FILE, $STATE_ALL)=(0..7); # operator precedence our %priorities=( "OR" => 0, "AND" => 1, "NOT" => 2 ); @@ -98,11 +97,10 @@ sub dirents { @dents=($self->filter($PATH_ALLTRACKS, $PATH_NOARTIST), $self->artists()); } - elsif($state==$STATE_TAG || $state==$STATE_TAGVAL) + elsif($state==$STATE_TAG) { my $tail=$self->tail(); - if($state==$STATE_TAG && $self->is($TYPE_TAG, $tail) && - $self->{db}->tag_has_values($tail->id())) + if($self->is($TYPE_TAG, $tail) && $self->{db}->tag_has_values($tail->id())) { @dents=$self->tags(); } @@ -196,18 +194,16 @@ sub parse } } } - elsif($state==$STATE_TAG || $state==$STATE_TAGVAL) + elsif($state==$STATE_TAG) { my $tag=$self->tail(); # print "SM: TAG/TAGVAL($state): $name\n"; - if($state==$STATE_TAG && $self->is($TYPE_TAG, $tag) && - $self->{db}->tag_has_values($tag->id())) + if($self->is($TYPE_TAG, $tag) && $self->{db}->tag_has_values($tag->id())) { # print "Parsing: parent: $tag->id()\n"; my $tagval=ID3FS::Path::Node->new($self->{db}, $TYPE_TAG, $name, $tag->id()); if(defined($tagval)) { - $self->state($STATE_TAGVAL); # stay in tag state push(@{$self->{elements}}, $tagval); } @@ -699,6 +695,8 @@ sub tags_subselect } my ($sqlclause, @joins)=(undef, ()); ($sqlclause, @joins) = $tree->to_sql($hasvals) if($tree); +# use Data::Dumper; +# print Dumper $tree if($tree); # print "SQL(" . scalar(@joins) ."): $sqlclause\n"; my $sql="\tSELECT fxt1.files_id FROM tags t1"; my @crosses=();