X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=cgi%2Fsearch.cgi;h=be152cb274bb2ae605ab45e013f8ffe1b263d151;hb=95f9fb400fc78d18257221e5671f25878de3178f;hp=cf89c5b5e891124b62a258ebd55a6bb646585caa;hpb=d06e5583e1ce75497cf3bb651a63cac0c17624f8;p=debbugs.git
diff --git a/cgi/search.cgi b/cgi/search.cgi
index cf89c5b..be152cb 100755
--- a/cgi/search.cgi
+++ b/cgi/search.cgi
@@ -11,27 +11,55 @@ BEGIN{
}
}
+# if we're running out of git, we want to use the git base directory as the
+# first INC directory. If you're not running out of git, don't do that.
+use File::Basename qw(dirname);
+use Cwd qw(abs_path);
+our $debbugs_dir;
+BEGIN {
+ $debbugs_dir =
+ abs_path(dirname(abs_path(__FILE__)) . '/../');
+ # clear the taint; we'll assume that the absolute path to __FILE__ is the
+ # right path if there's a .git directory there
+ ($debbugs_dir) = $debbugs_dir =~ /([[:print:]]+)/;
+ if (defined $debbugs_dir and
+ -d $debbugs_dir . '/.git/') {
+ } else {
+ undef $debbugs_dir;
+ }
+ # if the first directory in @INC is not an absolute directory, assume that
+ # someone has overridden us via -I.
+ if ($INC[0] !~ /^\//) {
+ }
+}
+use if defined $debbugs_dir, lib => $debbugs_dir;
+
use CGI::Simple;
-use CGI::Alert 'don@donarmstrong.com';
+# use CGI::Alert 'nobody@example.com';
use Search::Estraier;
use Debbugs::Config qw(:config);
use Debbugs::Estraier;
-use Debbugs::CGI qw(htmlize_packagelinks html_escape);
+use Debbugs::CGI qw(htmlize_packagelinks html_escape cgi_parameters);
use HTML::Entities qw(encode_entities);
my $q = new CGI::Simple;
#my %var_defaults = (attr => 1,);
-my %cgi_var = cgi_parameters($q);
+my %cgi_var = cgi_parameters(query => $q,
+ single => [qw(phrase max_results order_field order_operator),
+ qw(skip prev next),
+ ],
+ default => {phrase => '',
+ max_results => 10,
+ skip => 0,
+ },
+ );
-$cgi_var{phrase} = '' if not defined $cgi_var{phrase};
-$cgi_var{max_results} = 10 if not defined $cgi_var{max_results};
$cgi_var{attribute} = parse_attribute(\%cgi_var) || [];
-$cgi_var{skip} = 0 if not defined $cgi_var{skip};
my @results;
@@ -88,6 +116,7 @@ print <
\n);
+ print qq(
\n);
$attr_num++;
}
-print qq(
);
+print qq(
);
# order
@@ -233,11 +262,11 @@ print qq(
Max results:
\n); -print qq(\n); +print qq(\n); @@ -263,9 +292,9 @@ if (defined $nres) { my $showseverity; $showseverity = "Severity: $attr{severity};\n"; print <