X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Debbugs%2FCGI%2FPkgreport.pm;h=523dbbb90a6a909d9043a4e949836dc9c35624b6;hb=814004e0edefc141b8cc28db0d54cf2a6fad4486;hp=696a9e015c382c29555f772b7db61454e32ed5a9;hpb=772f6a911585f940363fe0b591b951443406fc66;p=debbugs.git diff --git a/Debbugs/CGI/Pkgreport.pm b/Debbugs/CGI/Pkgreport.pm index 696a9e0..523dbbb 100644 --- a/Debbugs/CGI/Pkgreport.pm +++ b/Debbugs/CGI/Pkgreport.pm @@ -471,20 +471,22 @@ sub parse_order_statement_into_boolean { $statement =~ s/\+/&&/g; # replace all , with || $statement =~ s/,/||/g; - $statement =~ s{(?[^\&\|\=]+)=(?[^\&\|\=]+)} - { + $statement =~ s{([^\&\|\=]+) # field + = + ([^\&\|\=]+) # value + }{ my $ok = 0; - if ($+{field} eq 'tag') { - $ok = 1 if defined $tags->{$+{value}}; + if ($1 eq 'tag') { + $ok = 1 if defined $tags->{$2}; } else { - $ok = 1 if defined $status->{$+{field}} and - $status->{$+{field}} eq $+{value}; + $ok = 1 if defined $status->{$1} and + $status->{$1} eq $2; } $ok; }exg; # check that the parsed statement is just valid boolean statements if ($statement =~ /^([01\(\)\&\|]+)$/) { - return eval "$statement"; + return eval "$1"; } else { # this is an invalid boolean statement return 0;