my @dents=();
my $state=$self->state();
print "DIRENTS: STATE: $state\n";
- if($state==$STATE_TAG)
+ if($state==$STATE_TAG || $state==$STATE_TAGVAL)
{
my $tag=$self->{elements}->[$#{$self->{elements}}];
- if(defined($tag) && (ref($tag) eq "ID3FS::PathElement::Tag") &&
+ if($state==$STATE_TAG &&
+ defined($tag) &&
+ ref($tag) eq "ID3FS::PathElement::Tag" &&
$self->{db}->tag_has_values($tag->{id}))
{
print "DIRENTS: TAG: TAGVALUES\n";
}
else
{
- print "DIRENTS: TAG: ARTISTS\n";
+ print "DIRENTS: TAG/TAGVAL($state): ARTISTS\n";
@dents=(qw(AND ALLTRACKS), # FIXME: NOT and OR
$self->{db}->artists(@{$self->{elements}}));
}
}
}
}
- elsif($state==$STATE_TAG)
+ elsif($state==$STATE_TAG || $state==$STATE_TAGVAL)
{
- print "SM: TAG: $name\n";
+ print "SM: TAG/TAGVAL($state): $name\n";
my $tag=$self->{elements}->[$#{$self->{elements}}];
- if(defined($tag) &&
+ if($state==$STATE_TAG &&
+ defined($tag) &&
ref($tag) eq "ID3FS::PathElement::Tag" &&
$self->{db}->tag_has_values($tag->{id}))
{
my $tagval=ID3FS::PathElement::Tagval->new($name);
if(defined($tagval))
{
- $self->state($STATE_BOOLEAN);
+ $self->state($STATE_TAGVAL);
+ # stay in tag state
push(@{$self->{elements}}, $tagval);
}
else
}
}
}
- elsif($state==$STATE_TAGVAL)
- {
- print "SM: TAGVAL: $name\n";
- }
elsif($state==$STATE_BOOLEAN)
{
print "SM: BOOLEAN: $name\n";