summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbuglist.cgi6
-rwxr-xr-xquery.cgi64
2 files changed, 44 insertions, 26 deletions
diff --git a/buglist.cgi b/buglist.cgi
index 53026b7d6..dbc056e29 100755
--- a/buglist.cgi
+++ b/buglist.cgi
@@ -421,8 +421,12 @@ foreach my $f ("short_desc", "long_desc", "bug_file_loc",
$s = SqlQuote($s);
if ($::FORM{$f . "_type"} eq "regexp") {
$query .= "and $f regexp $s\n";
- } else {
+ } elsif ($::FORM{$f . "_type"} eq "notregexp") {
+ $query .= "and $f not regexp $s\n";
+ } elsif ($::FORM{$f . "_type"} eq "casesubstring") {
$query .= "and instr($f, $s)\n";
+ } else {
+ $query .= "and instr(lower($f), lower($s))\n";
}
}
}
diff --git a/query.cgi b/query.cgi
index 144449ae8..54362fabd 100755
--- a/query.cgi
+++ b/query.cgi
@@ -68,7 +68,10 @@ foreach my $name ("bug_status", "resolution", "assigned_to", "rep_platform",
"emailassigned_to1", "emailcc1", "emailqa_contact1",
"email2", "emailtype2", "emailreporter2",
"emailassigned_to2", "emailcc2", "emailqa_contact2",
- "changedin") {
+ "changedin", "short_desc", "short_desc_type",
+ "long_desc", "long_desc_type", "bug_file_loc",
+ "bug_file_loc_type", "status_whiteboard",
+ "status_whiteboard_type") {
$default{$name} = "";
$type{$name} = 0;
}
@@ -472,38 +475,49 @@ if (Param("usetargetmilestone")) {
</td>";
}
+
+sub StringSearch {
+ my ($desc, $name) = (@_);
+ my $type = $name . "_type";
+ my $def = value_quote($default{$name});
+ print qq{<tr>
+<td align=right>$desc:</td>
+<td><input name=$name size=30 value="$def"></td>
+<td><SELECT NAME=$type>
+};
+ if ($default{$type} eq "") {
+ $default{$type} = "substring";
+ }
+ foreach my $i (["substring", "case-insensitive substring"],
+ ["casesubstring", "case-sensitive substring"],
+ ["regexp", "regular expression"],
+ ["notregexp", "not ( regular expression )"]) {
+ my ($n, $d) = (@$i);
+ my $sel = "";
+ if ($default{$type} eq $n) {
+ $sel = " SELECTED";
+ }
+ print qq{<OPTION VALUE="$n"$sel>$d\n};
+ }
+ print "</SELECT></TD>
+</tr>
+";
+}
+
print "
</tr>
</table>
<table border=0>
<tr>
-<td align=right>Summary:</td>
-<td><input name=short_desc size=30></td>
-<td><input type=radio name=short_desc_type value=substr checked>Substring</td>
-<td><input type=radio name=short_desc_type value=regexp>Regexp</td>
-</tr>
-<tr>
-<td align=right>Description:</td>
-<td><input name=long_desc size=30></td>
-<td><input type=radio name=long_desc_type value=substr checked>Substring</td>
-<td><input type=radio name=long_desc_type value=regexp>Regexp</td>
-</tr>
-<tr>
-<td align=right>URL:</td>
-<td><input name=bug_file_loc size=30></td>
-<td><input type=radio name=bug_file_loc_type value=substr checked>Substring</td>
-<td><input type=radio name=bug_file_loc_type value=regexp>Regexp</td>
-</tr>";
+";
+
+StringSearch("Summary", "short_desc");
+StringSearch("Description", "long_desc");
+StringSearch("URL", "bug_file_loc");
if (Param("usestatuswhiteboard")) {
- print "
-<tr>
-<td align=right>Status whiteboard:</td>
-<td><input name=status_whiteboard size=30></td>
-<td><input type=radio name=status_whiteboard_type value=substr checked>Substring</td>
-<td><input type=radio name=status_whiteboard_type value=regexp>Regexp</td>
-</tr>";
+ StringSearch("Status whiteboard", "status_whiteboard");
}
print "