X-Git-Url: https://git.deb.at/w?a=blobdiff_plain;f=lib%2FPackages%2FSearch.pm;h=694528434f5b99083ba028c3c18c27ee0e32fcdb;hb=2c68295edf18a88ff0e5437c6f7f9a67438fd65a;hp=a7a76d072bc69a9038a5d95db4eb6c9741455ba6;hpb=87124f967c3da82618899b3d2c114981b12ffb7f;p=deb%2Fpackages.git diff --git a/lib/Packages/Search.pm b/lib/Packages/Search.pm index a7a76d0..6945284 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 ] ); @@ -361,19 +361,26 @@ sub read_entry { read_entry_all( $hash, $key, $results, \@non_results, $opts ); } sub read_entry_simple { - my ($hash, $key, $suite) = @_; + my ($hash, $key, $archives, $suite) = @_; my $result = $hash->{$key} || ''; + my @data_fuzzy; foreach (split /\000/o, $result) { my @data = split ( /\s/o, $_, 8 ); debug( "Considering entry ".join( ':', @data), 2); if ($data[1] eq $suite) { - debug( "Using entry ".join( ':', @data), 2); - return \@data; - } + if ($archives->{$data[0]}) { + debug( "Using entry ".join( ':', @data), 2); + return \@data; + } elsif ($data[0] eq 'us') { + debug( "Fuzzy entry ".join( ':', @data), 2); + @data_fuzzy = @data; + } + } } + 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 ); @@ -383,9 +390,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;