}
elsif($state==$STATE_BOOLEAN)
{
- @dents=("NOT", $self->{db}->tags(@{$self->{elements}}));
+ my $parent=$self->{elements}->[$#{$self->{elements}}];
+ unless(defined($parent) &&
+ ref($parent) eq "ID3FS::PathElement::Boolean" &&
+ $parent->{name} eq "NOT")
+ {
+ push(@dents, "NOT");
+ }
+ push(@dents, $self->{db}->tags(@{$self->{elements}}));
}
elsif($state==$STATE_ROOT)
{
elsif($state==$STATE_BOOLEAN)
{
# print "SM: BOOLEAN: $name\n";
- if($name eq "NOT")
+ my $parent=$self->{elements}->[$#{$self->{elements}}];
+ my $allownot=1;
+ if(defined($parent) &&
+ ref($parent) eq "ID3FS::PathElement::Boolean" &&
+ $parent->{name} eq "NOT")
+ {
+ $allownot=0;
+ }
+ if($allownot && $name eq "NOT")
{
$self->state($STATE_BOOLEAN);
+ push(@{$self->{elements}}, ID3FS::PathElement::Boolean->new($name));
}
else
{