use Deb::Versions;
use Packages::Config qw( $DBDIR $ROOT $TEMPLATEDIR $CACHEDIR
@SUITES @SECTIONS @ARCHIVES @ARCHITECTURES @PRIORITIES
use Deb::Versions;
use Packages::Config qw( $DBDIR $ROOT $TEMPLATEDIR $CACHEDIR
@SUITES @SECTIONS @ARCHIVES @ARCHITECTURES @PRIORITIES
my $acc = I18N::AcceptLanguage->new();
my %all_langs = map { $_ => 1 } (@LANGUAGES, @DDTP_LANGUAGES);
my $acc = I18N::AcceptLanguage->new();
my %all_langs = map { $_ => 1 } (@LANGUAGES, @DDTP_LANGUAGES);
my ($cgi, $params_set, $key, $val) = @_;
debug("set_param_once key=$key val=$val",4) if DEBUG;
if ($params_set->{$key}++) {
my ($cgi, $params_set, $key, $val) = @_;
debug("set_param_once key=$key val=$val",4) if DEBUG;
if ($params_set->{$key}++) {
replace => { all => \@ARCHIVES,
default => \@ARCHIVES} },
exact => { default => 0, match => '^(\w+)$', },
replace => { all => \@ARCHIVES,
default => \@ARCHIVES} },
exact => { default => 0, match => '^(\w+)$', },
- lang => { default => $http_lang, match => '^(\w+)$', },
+ lang => { default => $http_lang, match => '^([\w-]+)$', },
source => { default => 0, match => '^(\d+)$', },
debug => { default => 0, match => '^(\d+)$', },
searchon => { default => 'names', match => '^(\w+)$', },
source => { default => 0, match => '^(\d+)$', },
debug => { default => 0, match => '^(\d+)$', },
searchon => { default => 'names', match => '^(\w+)$', },
#FIXME: ugly hack
unless (($what_to_do eq 'allpackages' and $opts{format} =~ /^(html|txt\.gz)/)
|| -e "$TEMPLATEDIR/$opts{format}/${what_to_do}.tmpl") {
#FIXME: ugly hack
unless (($what_to_do eq 'allpackages' and $opts{format} =~ /^(html|txt\.gz)/)
|| -e "$TEMPLATEDIR/$opts{format}/${what_to_do}.tmpl") {