-sub multipageheader {
- my ( $input, $no_results, $opts ) = @_;
-
- my ($start, $end);
- if ($opts->{number} =~ /^all$/i) {
- $start = 1;
- $end = $no_results;
- $opts->{number} = $no_results;
- $opts->{number_all}++;
- } else {
- $start = Packages::Search::start( $opts );
- $end = Packages::Search::end( $opts );
- if ($end > $no_results) { $end = $no_results; }
+#FIXME: make configurable
+my %fallback_suites = (
+ 'oldstable-backports' => 'oldstable',
+ 'oldstable-volatile' => 'oldstable',
+ 'stable-backports' => 'stable',
+ 'stable-volatile' => 'stable',
+ experimental => 'unstable' );
+
+sub read_entry_simple {
+ my ($hash, $key, $archives, $suite) = @_;
+ # FIXME: drop $archives
+
+ my ($virt, $result) = split /\000/o, $hash->{$key} || "-\01-\0", 2;
+ my %virt = split /\01/o, $virt;
+ debug( "read_entry_simple: key=$key, archives=".
+ join(" ",(keys %$archives)).", suite=$suite", 1) if DEBUG;
+ debug( "read_entry_simple: virt=".join(" ",(%virt)), 2) if DEBUG;
+ # FIXME: not all of the 2^4=16 combinations of empty(results),
+ # empty(virt{suite}), empty(fb_result), empty(virt{fb_suite}) are dealt
+ # with correctly, but it's adequate enough for now
+ return [ $virt{$suite} ] unless defined $result;
+ foreach (split /\000/o, $result) {
+ my @data = split ( /\s/o, $_, 8 );
+ debug( "use entry: @data", 2 ) if DEBUG && $data[1] eq $suite;
+ return [ $virt{$suite}, @data ] if $data[1] eq $suite;