]> git.deb.at Git - deb/packages.git/blobdiff - lib/Packages/Dispatcher.pm
Merge commit 'origin/master' into debian-master
[deb/packages.git] / lib / Packages / Dispatcher.pm
index 3dcab38719d42f772282f87e748a57658ad93777..440b15971b5b60a3a6915e6aa6e2ea02cc72c43f 100755 (executable)
@@ -65,6 +65,13 @@ sub do_dispatch {
     delete $ENV{'LC_ALL'};
     delete $ENV{'LC_MESSAGES'};
 
+    my %SUITES_ALIAS = ( oldstable => 'sarge',
+                        stable => 'etch',
+                        testing => 'lenny',
+                        unstable => 'sid',
+                        '3.1' => 'sarge',
+                        '4.0' => 'etch' );
+
     # Read in all the variables set by the form
     my $input;
     if ($ARGV[0] && ($ARGV[0] eq 'php')) {
@@ -131,7 +138,7 @@ sub do_dispatch {
 
     my $what_to_do = 'show';
     my $source = 0;
-    if (my $path = $input->path_info() || $input->param('PATH_INFO')) {
+    if (my $path = $ENV{'PATH_INFO'} || $input->param('PATH_INFO')) {
        my @components = grep { $_ } map { lc $_ } split /\/+/, $path;
 
        debug( "PATH_INFO=$path components=@components", 3) if DEBUG;
@@ -168,10 +175,6 @@ sub do_dispatch {
            }
 
            my %SUITES = map { $_ => 1 } @SUITES;
-           my %SUITES_ALIAS = ( sarge => 'oldstable',
-                                etch => 'stable',
-                                lenny => 'testing',
-                                sid => 'unstable', );
            my %SECTIONS = map { $_ => 1 } @SECTIONS;
            my %ARCHIVES = map { $_ => 1 } @ARCHIVES;
            my %ARCHITECTURES = map { $_ => 1 } (@ARCHITECTURES, 'all', 'any');
@@ -202,8 +205,6 @@ sub do_dispatch {
                    set_param_once( $input, \%params_set, 'archive', $_);
                } elsif (!$need_pkg && $sections_descs{$_}) {
                    set_param_once( $input, \%params_set, 'subsection', $_);
-               } elsif (!$need_pkg && ($_ eq 'non-us')) { # non-US hack
-                   set_param_once( $input, \%params_set, 'subsection', 'non-US');
                } elsif (!$need_pkg && ($_ eq 'source')) {
                    set_param_once( $input, \%params_set, 'source', 1);
                } elsif ($ARCHITECTURES{$_}) {
@@ -223,8 +224,9 @@ sub do_dispatch {
        } # else if (@components == 1)
 
        if (@components) {
-           $input->param( 'keywords', $components[0] );
-           $input->param( 'package', $components[0] );
+           my $c = uri_unescape($components[0]);
+           $input->param( 'keywords', $c );
+           $input->param( 'package', $c );
        }
     }
 
@@ -240,7 +242,8 @@ sub do_dispatch {
                       suite => { default => 'default', match => '^([\w-]+)$',
                                  array => ',', var => \@suites,
                                  replace => { all => \@SUITES,
-                                              default => \@SUITES } },
+                                              default => \@SUITES,
+                                              %SUITES_ALIAS } },
                       archive => { default => ($what_to_do eq 'search') ?
                                        'all' : 'default',
                                        match => '^([\w-]+)$',
@@ -266,7 +269,7 @@ sub do_dispatch {
                                 array => ',', var => \@archs, replace =>
                                 { any => \@ARCHITECTURES } },
                       format => { default => 'html', match => '^([\w.]+)$',  },
-                  mode => { default => undef, match => '^(\w+)$',  },
+                  mode => { default => '', match => '^(\w+)$',  },
                   sort_by => { default => 'file', match => '^(\w+)$', },
                   );
     my %opts;