diff options
-rw-r--r-- | Bugzilla/Search/Quicksearch.pm | 18 | ||||
-rw-r--r-- | Bugzilla/Util.pm | 2 |
2 files changed, 7 insertions, 13 deletions
diff --git a/Bugzilla/Search/Quicksearch.pm b/Bugzilla/Search/Quicksearch.pm index a9111fe0c..4145ff7c4 100644 --- a/Bugzilla/Search/Quicksearch.pm +++ b/Bugzilla/Search/Quicksearch.pm @@ -410,28 +410,22 @@ sub splitString { my @parts; my $i = 0; - # Escape backslashes - $string =~ s/\\/\\\//g; - # Now split on quote sign; be tolerant about unclosed quotes @quoteparts = split(/"/, $string); - foreach (@quoteparts) { - # After every odd quote, escape whitespace - s/(\s)/\\$1/g if $i++ % 2; + foreach my $part (@quoteparts) { + # After every odd quote, quote special chars + $part = url_quote($part) if $i++ % 2; } # Join again $string = join('"', @quoteparts); # Now split on unescaped whitespace - @parts = split(/(?<!\\)\s+/, $string); + @parts = split(/\s+/, $string); foreach (@parts) { - # Restore whitespace - s/\\(\s)/$1/g; - # Restore backslashes - s/\\\//\\/g; # Remove quotes s/"//g; } + return @parts; } @@ -502,7 +496,7 @@ sub makeChart { my $cgi = Bugzilla->cgi; $cgi->param("field$expr", $field); $cgi->param("type$expr", $type); - $cgi->param("value$expr", $value); + $cgi->param("value$expr", url_decode($value)); } 1; diff --git a/Bugzilla/Util.pm b/Bugzilla/Util.pm index 4a87ff042..e97bb11d0 100644 --- a/Bugzilla/Util.pm +++ b/Bugzilla/Util.pm @@ -34,7 +34,7 @@ use base qw(Exporter); @Bugzilla::Util::EXPORT = qw(is_tainted trick_taint detaint_natural detaint_signed html_quote url_quote value_quote xml_quote - css_class_quote html_light_quote + css_class_quote html_light_quote url_decode i_am_cgi get_netaddr correct_urlbase lsearch diff_arrays diff_strings |