From fd59a6a784454262d89cfe039fe4b0d00235b273 Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Wed, 28 Nov 2007 16:26:38 +0000 Subject: ensure "urpmq --fuzzy" displays each packages alone on its line. this regression was introduced in commit r231535: there is no reason search_packages should return multiple pkgs with same fullname when using {provides}, and should not otherwise a "better" fix could be done in urpmq. nb: "urpmq -d basesystem" still use "|" for choices, but "urpmq --sources -d basesystem" doesn't, so it's quite broken... --- urpm/select.pm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/urpm/select.pm b/urpm/select.pm index b10a8192..10dba29b 100644 --- a/urpm/select.pm +++ b/urpm/select.pm @@ -80,8 +80,12 @@ sub search_packages { my ($name2ids, $result) = _search_packages($urpm, $names, %options) or return; foreach my $v (@$names) { - $packages->{$name2ids->{$v}} = 1; - foreach (split /\|/, $name2ids->{$v}) { + my @ids = split /\|/, $name2ids->{$v}; + + #- in case we have a substring match, we want individual selection (for urpmq --fuzzy) + $packages->{$_} = 1 foreach $result eq 'substring' ? @ids : $name2ids->{$v}; + + foreach (@ids) { my $pkg = $urpm->{depslist}[$_] or next; $urpm->{debug} and $urpm->{debug}("search_packages: found " . $pkg->fullname . " matching $v"); $pkg->set_flag_skip(0); #- reset skip flag as manually selected. -- cgit v1.2.1