use URI::Escape;
use HTML::Entities;
use DB_File;
-use Benchmark;
+use Benchmark ':hireswallclock';
use Deb::Versions;
-use Packages::Config qw( $DBDIR $ROOT $SEARCH_CGI $SEARCH_PAGE
- @SUITES @SECTIONS @ARCHIVES @ARCHITECTURES );
+use Packages::Config qw( $DBDIR $ROOT @SUITES @SECTIONS @ARCHIVES @ARCHITECTURES );
use Packages::CGI;
use Packages::DB;
use Packages::Search qw( :all );
my $what_to_do = 'show';
my $source = 0;
if (my $path = $input->path_info() || $input->param('PATH_INFO')) {
- my @components = grep { $_ } map { lc $_ } split /\/+/, $path;
+ my @components = grep { $_ } map { lc $_ } split /\//, $path;
- debug( "components[0]=$components[0]", 2 );
- if ($components[0] eq 'search') {
- shift @components;
- $what_to_do = 'search';
- }
- if ($components[0] eq 'source') {
+ debug( "components[0]=$components[0]", 2 ) if @components>0;
+ if (@components > 0 and $components[0] eq 'source') {
shift @components;
$input->param( 'source', 1 );
}
- if (@components == 0) {
- # we just hope we get the information through our parameters...
+ if (@components > 0 and $components[0] eq 'search') {
+ shift @components;
+ $what_to_do = 'search';
+ # Done
+ fatal_error( "search doesn't take any more path elements" )
+ if @components > 0;
+ } elsif (@components == 0) {
+ fatal_error( "We're supposed to display the homepage here, instead of
+ getting dispatch.pl" );
} elsif (@components == 1) {
$what_to_do = 'search';
} else {
match => '^([\w-]+)$',
array => ',', var => \@archives,
replace => { all => \@ARCHIVES,
- default => [qw(us security non-US)]} },
+ default => [qw(us security non-US)]} },
exact => { default => 0, match => '^(\w+)$', },
source => { default => 0, match => '^(\d+)$', },
searchon => { default => 'names', match => '^(\w+)$', },
subsection => { default => 'default', match => '^([\w-]+)$',
array => ',', var => \@subsections,
replace => { default => [] } },
- arch => { default => 'any', match => '^(\w+)$',
+ arch => { default => 'any', match => '^([\w-]+)$',
array => ',', var => \@archs, replace =>
{ any => \@ARCHITECTURES } },
);