aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Bugzilla/Search/Quicksearch.pm18
-rw-r--r--Bugzilla/Util.pm2
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