summaryrefslogtreecommitdiffstats
path: root/userprefs.cgi
diff options
context:
space:
mode:
Diffstat (limited to 'userprefs.cgi')
-rwxr-xr-xuserprefs.cgi18
1 files changed, 12 insertions, 6 deletions
diff --git a/userprefs.cgi b/userprefs.cgi
index f8de9915d..323c87d53 100755
--- a/userprefs.cgi
+++ b/userprefs.cgi
@@ -27,6 +27,7 @@ use lib qw(.);
use Bugzilla;
use Bugzilla::Constants;
+use Bugzilla::Search;
require "CGI.pl";
@@ -304,13 +305,18 @@ sub DoSavedSearches() {
my @queries = @{Bugzilla->user->queries};
my @newqueries;
foreach my $q (@queries) {
- if ($q->{'query'} !~ /query_format=(advanced|specific)/) {
- if ($q->{'query'} =~ /query_format=&/) {
- $q->{'query'} =~ s/query_format=&/query_format=advanced&/;
- }
- else {
- $q->{'query'} .= '&query_format=advanced';
+ if ($q->{'query'} =~ /query_format=([^&]*)/) {
+ my $format = $1;
+ if (!IsValidQueryType($format)) {
+ if ($format eq "") {
+ $q->{'query'} =~ s/query_format=/query_format=advanced/;
+ }
+ else {
+ $q->{'query'} .= '&query_format=advanced';
+ }
}
+ } else {
+ $q->{'query'} .= '&query_format=advanced';
}
push @newqueries, $q;
}