X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=lib%2FPackages%2FSearch.pm;h=b616f6f213de0b23392632af6b1be19ae4158810;hb=dc9512b1309f4c8c6bd1171b543183e8ac8b2115;hp=b545dbc5fa544c77bb07a59e1a247903c29e3fa6;hpb=5ca21f1ba07a6b559395bec8d6bc1e528eb238d1;p=deb%2Fpackages.git diff --git a/lib/Packages/Search.pm b/lib/Packages/Search.pm index b545dbc..b616f6f 100644 --- a/lib/Packages/Search.pm +++ b/lib/Packages/Search.pm @@ -57,7 +57,7 @@ our @ISA = qw( Exporter ); our @EXPORT_OK = qw( nextlink prevlink indexline resperpagelink read_entry read_entry_all read_entry_simple - read_src_entry find_binaries + read_src_entry read_src_entry_all find_binaries do_names_search do_fulltext_search printindexline multipageheader ); our %EXPORT_TAGS = ( all => [ @EXPORT_OK ] ); @@ -346,8 +346,9 @@ sub read_entry_all { my @data = split ( /\s/o, $_, 8 ); debug( "Considering entry ".join( ':', @data), 2); if ($opts->{h_archives}{$data[0]} && $opts->{h_suites}{$data[1]} - && ($opts->{h_archs}{$data[2]} || $data[2] eq 'all') - && $opts->{h_sections}{$data[3]}) { + && ($opts->{h_archs}{$data[2]} || $data[2] eq 'all' + || $data[2] eq 'virtual') + && ($opts->{h_sections}{$data[3]} || $data[3] eq '-')) { debug( "Using entry ".join( ':', @data), 2); push @$results, [ $key, @data ]; } else { @@ -379,8 +380,8 @@ sub read_entry_simple { } return \@data_fuzzy; } -sub read_src_entry { - my ($hash, $key, $results, $opts) = @_; +sub read_src_entry_all { + my ($hash, $key, $results, $non_results, $opts) = @_; my $result = $hash->{$key} || ''; foreach (split /\000/o, $result) { my @data = split ( /\s/o, $_, 6 ); @@ -390,9 +391,16 @@ sub read_src_entry { && $opts->{h_sections}{$data[2]}) { debug( "Using entry ".join( ':', @data), 2); push @$results, [ $key, @data ]; + } else { + push @$non_results, [ $key, @data ]; } } } +sub read_src_entry { + my ($hash, $key, $results, $opts) = @_; + my @non_results; + read_src_entry_all( $hash, $key, $results, \@non_results, $opts ); +} sub do_names_search { my ($keyword, $packages, $postfixes, $read_entry, $opts) = @_; my @results; @@ -482,9 +490,11 @@ sub find_binaries { foreach (split /\000/o, $bins) { my @data = split /\s/, $_, 5; + debug( "find_binaries: considering @data", 3 ); if (($data[0] eq $archive) && ($data[1] eq $suite)) { $bins{$data[2]}++; + debug( "find_binaries: using @data", 3 ); } }