]> 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 3ae8004ee7a577c15ce9750652acb37b0b68de6e..86be87cbca0b7001235d7429f86013d3c306f22b 100755 (executable)
@@ -25,11 +25,9 @@ use warnings;
 use CGI;
 use POSIX;
 use File::Basename;
-use URI;
-use URI::Escape;
-use HTML::Entities;
 use Template;
 use DB_File;
+use URI::Escape;
 use Benchmark ':hireswallclock';
 use I18N::AcceptLanguage;
 use Locale::gettext;
@@ -105,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
@@ -140,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;
@@ -148,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 );
        }
@@ -332,20 +331,6 @@ sub do_dispatch {
     $page_content{opts} = \%opts;
     $page_content{params} = \%params;
 
-    $page_content{make_search_url} = sub { return &Packages::CGI::make_search_url(@_) };
-    $page_content{make_url} = sub { return &Packages::CGI::make_url(@_) };
-    $page_content{extract_host} = sub { my $uri = URI->new($_[0]);
-                                       my $host = $uri->host;
-                                       $host .= ':'.$uri->port if $uri->port != $uri->default_port;
-                                       return $host;
-                                   };
-    $page_content{g} = sub { return &Packages::I18N::Locale::tt_gettext(@_) };
-    # needed to work around the limitations of the the FILTER syntax
-    $page_content{html_encode} = sub { return HTML::Entities::encode_entities(@_,'<>&"') };
-    $page_content{uri_escape} = sub { return URI::Escape::uri_escape(@_) };
-    $page_content{quotemeta} = sub { return quotemeta($_[0]) };
-    $page_content{string2id} = sub { return &Packages::CGI::string2id(@_) };
-
     unless (@Packages::CGI::fatal_errors) {
        print $input->header(-charset => $charset, -type => get_mime($opts{format}) );
        #use Data::Dumper;