X-Git-Url: https://git.deb.at/?p=deb%2Fpackages.git;a=blobdiff_plain;f=lib%2FPackages%2FDispatcher.pm;h=86be87cbca0b7001235d7429f86013d3c306f22b;hp=3ae8004ee7a577c15ce9750652acb37b0b68de6e;hb=e21fe28a63572c2760cac1526a5cbc365df94a0c;hpb=b8b780f25f2cb15def44c3579776c6df15cd6e90 diff --git a/lib/Packages/Dispatcher.pm b/lib/Packages/Dispatcher.pm index 3ae8004..86be87c 100755 --- a/lib/Packages/Dispatcher.pm +++ b/lib/Packages/Dispatcher.pm @@ -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;