From: Frédéric Buclin Date: Wed, 16 Apr 2014 20:03:04 +0000 (+0200) Subject: Bug 997281: New QuickSearch operators can short-circuit each other depending on which... X-Git-Tag: bugzilla-4.5.3~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=23bad39c2d516b7834b4fa95de054bf1ed769e8e;p=thirdparty%2Fbugzilla.git Bug 997281: New QuickSearch operators can short-circuit each other depending on which ones are tested first r/a=justdave --- diff --git a/Bugzilla/Search/Quicksearch.pm b/Bugzilla/Search/Quicksearch.pm index 1a88234889..98e8a64827 100644 --- a/Bugzilla/Search/Quicksearch.pm +++ b/Bugzilla/Search/Quicksearch.pm @@ -402,7 +402,11 @@ sub _handle_field_names { # Generic field1,field2,field3:value1,value2 notation. # We have to correctly ignore commas and colons in quotes. - foreach my $symbol (keys %{ OPERATOR_SYMBOLS() }) { + # Longer operators must be tested first as we don't want single character + # operators such as <, > and = to be tested before <=, >= and !=. + my @operators = sort { length($b) <=> length($a) } keys %{ OPERATOR_SYMBOLS() }; + + foreach my $symbol (@operators) { my @field_values = _parse_line($symbol, 1, $or_operand); next unless scalar @field_values == 2; my @fields = _parse_line(',', 1, $field_values[0]);