]> git.deb.at Git - deb/packages.git/blobdiff - cgi-bin/dispatcher.pl
Fix a few warnings, be more strict in what we accept
[deb/packages.git] / cgi-bin / dispatcher.pl
index f03c55970aee3ebc5cd4d6e3702d30a3dc026fad..8d6fc162ded5e72438819e81767a06f4acb47a33 100755 (executable)
@@ -59,19 +59,22 @@ $Packages::CGI::debug = $debug;
 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 {