]> git.deb.at Git - deb/packages.git/blobdiff - lib/Packages/Search.pm
Fix contents search my moving it to lib, like the rest. Still a bit rough.
[deb/packages.git] / lib / Packages / Search.pm
index c0555e2bb302b0dfdd241e742c9370ccae205cb4..ba3b68c94ea11e6f58b0a85cdbe7d056d63f4c64 100644 (file)
@@ -134,9 +134,10 @@ sub parse_params {
        my @p_value_no_replace = @p_value;
 
        if ($params{$param}{replace} && @p_value) {
-           @p_value = ();
            foreach my $pattern (keys %{$params{$param}{replace}}) {
-               foreach (@p_value_no_replace) {
+               my @p_value_tmp = @p_value;
+               @p_value = ();
+               foreach (@p_value_tmp) {
                    if ($_ eq $pattern) {
                        my $replacement = $params{$param}{replace}{$_};
                        if (ref $replacement) {
@@ -369,12 +370,16 @@ sub read_entry_simple {
        my @data = split ( /\s/o, $_, 8 );
        debug( "Considering entry ".join( ':', @data), 2);
        if ($data[1] eq $suite) {
-           if ($archives->{$data[0]}) {
+           if ($archives->{$data[0]}
+               && ($data[2] ne 'virtual')) {
                debug( "Using entry ".join( ':', @data), 2);
                return \@data;
+           } elsif ($archives->{$data[0]}) {
+               debug( "Virtual entry ".join( ':', @data), 2);
+               @data_fuzzy = @data;
            } elsif ($data[0] eq 'us') {
                debug( "Fuzzy entry ".join( ':', @data), 2);
-               @data_fuzzy = @data;
+               @data_fuzzy = @data unless @data_fuzzy;
            }
        } 
     }