X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=lib%2FPackages%2FSearch.pm;h=887bc43d9252605f31f08c998b38f05b365b50c7;hb=47c93cb066364b11f0b216589ddc68671435b060;hp=ba3b68c94ea11e6f58b0a85cdbe7d056d63f4c64;hpb=ae7fe4440b28ab29c329da886a063c3e74f034cf;p=deb%2Fpackages.git diff --git a/lib/Packages/Search.pm b/lib/Packages/Search.pm index ba3b68c..887bc43 100644 --- a/lib/Packages/Search.pm +++ b/lib/Packages/Search.pm @@ -43,7 +43,7 @@ package Packages::Search; use strict; use warnings; -use CGI qw( -oldstyle_urls ); +use CGI; use POSIX; use HTML::Entities; use DB_File; @@ -365,7 +365,7 @@ sub read_entry_simple { my $result = $hash->{$key} || ''; debug( "read_entry_simple: key=$key, archives=". join(" ",(keys %$archives)).", suite=$suite", 1); - my @data_fuzzy; + my (@data_fuzzy, @data_virtual, @data_fuzzy_virtual); foreach (split /\000/o, $result) { my @data = split ( /\s/o, $_, 8 ); debug( "Considering entry ".join( ':', @data), 2); @@ -376,14 +376,20 @@ sub read_entry_simple { return \@data; } elsif ($archives->{$data[0]}) { debug( "Virtual entry ".join( ':', @data), 2); + @data_virtual = @data; + } elsif (($data[0] eq 'us') + && ($data[2] ne 'virtual')) { + debug( "Fuzzy entry ".join( ':', @data), 2); @data_fuzzy = @data; } elsif ($data[0] eq 'us') { - debug( "Fuzzy entry ".join( ':', @data), 2); - @data_fuzzy = @data unless @data_fuzzy; + debug( "Virtual fuzzy entry ".join( ':', @data), 2); + @data_fuzzy_virtual = @data; } } } - return \@data_fuzzy; + return \@data_virtual if @data_virtual; + return \@data_fuzzy if @data_fuzzy; + return \@data_fuzzy_virtual; } sub read_src_entry_all { my ($hash, $key, $results, $non_results, $opts) = @_;