}
else
{
- @dents=(qw(AND ALLTRACKS), # FIXME: NOT and OR
+ @dents=(qw(AND OR ALLTRACKS),
$self->{db}->artists(@{$self->{elements}}));
}
}
elsif($state==$STATE_BOOLEAN)
{
- @dents=$self->{db}->tags(@{$self->{elements}});
+ @dents=("NOT", $self->{db}->tags(@{$self->{elements}}));
}
elsif($state==$STATE_ROOT)
{
- @dents=("ALL", $self->{db}->tags(@{$self->{elements}}));
+ @dents=(qw(ALL NOT), $self->{db}->tags(@{$self->{elements}}));
}
elsif($state==$STATE_ALBUMS)
{
{
$self->state($STATE_TAG);
}
+ elsif($name eq "NOT")
+ {
+ $self->state($STATE_BOOLEAN);
+ }
else
{
$tag=ID3FS::PathElement::Tag->new($self->{db}, $name);
$self->state($STATE_BOOLEAN);
# push(@{$self->{elements}}, ID3FS::PathElement::Boolean->new($name));
}
- elsif($name eq "NOT")
- {
- $self->state($STATE_TAG);
-# push(@{$self->{elements}}, ID3FS::PathElement::Boolean->new($name));
- }
else
{
my $artist=ID3FS::PathElement::Artist->new($self->{db}, $name);
elsif($state==$STATE_BOOLEAN)
{
# print "SM: BOOLEAN: $name\n";
- my $tag=ID3FS::PathElement::Tag->new($self->{db}, $name);
- if($tag)
+ if($name eq "NOT")
{
- push(@{$self->{elements}}, $tag);
- $self->state($STATE_TAG);
- }
+ $self->state($STATE_BOOLEAN);
+ }
else
{
- $self->state($STATE_INVALID);
+ my $tag=ID3FS::PathElement::Tag->new($self->{db}, $name);
+ if($tag)
+ {
+ push(@{$self->{elements}}, $tag);
+ $self->state($STATE_TAG);
+ }
+ else
+ {
+ $self->state($STATE_INVALID);
+ }
}
}
elsif($state==$STATE_ALBUMS)