]> git.deb.at Git - deb/packages.git/blobdiff - lib/Packages/Dispatcher.pm
Packages::Dispatcher: Work around breakage in etch's CGI.pm
[deb/packages.git] / lib / Packages / Dispatcher.pm
index e5c35d4bbb258813d4720dae716d1185e7c67a53..86be87cbca0b7001235d7429f86013d3c306f22b 100755 (executable)
@@ -103,6 +103,7 @@ sub do_dispatch {
           " http_lang=$http_lang", 1 ) if DEBUG;
     bindtextdomain ( 'pdo', $LOCALES );
     bindtextdomain ( 'templates', $LOCALES );
+    bindtextdomain ( 'langs', $LOCALES );
     textdomain( 'pdo' );
 
     # backwards compatibility stuff
@@ -138,7 +139,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;
@@ -146,11 +147,11 @@ sub do_dispatch {
        push @components, 'index' if @components && $path =~ m,/$,;
 
        my %LANGUAGES = map { $_ => 1 } @all_langs;
-       if (@components > 0 and $LANGUAGES{$components[0]}
+       if (@components > 1 and $LANGUAGES{$components[0]}
            and !$input->param('lang')) {
            $input->param( 'lang', shift(@components) );
        }
-       if (@components > 0 and $components[0] eq 'source') {
+       if (@components > 1 and $components[0] eq 'source') {
            shift @components;
            $input->param( 'source', 1 );
        }