diff options
author | Pierre Neidhardt <ambrevar@gmail.com> | 2014-02-09 19:41:40 +0100 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2014-03-03 02:25:55 +0100 |
commit | fe961e65904dac06762b78350c340631a36eacf1 (patch) | |
tree | 88f83fa6b4d737a8dc8870b9cda26ec088e7c692 /contrib | |
parent | 08cddb4b4b84147da52dfffc4e416f76a6c5c430 (diff) | |
download | pacman-fe961e65904dac06762b78350c340631a36eacf1.tar.gz pacman-fe961e65904dac06762b78350c340631a36eacf1.tar.xz |
pacsearch: indexing by 'name version' instead of 'name'
In the old pacsearch, packages were identified uniquely by pkgfields[1], which
contained pkgname+pkgver. Since commit 4d13558 pkgver is stored in pkgfields[2],
and packages have been identified with pkgfields[1] only. Because of that
packages with a different version would appear once only.
This fixes the regression by identifying packages with both pkgfields[1] and
pkgfields[2].
Signed-off-by: Pierre Neidhardt <ambrevar@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/pacsearch.in | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/contrib/pacsearch.in b/contrib/pacsearch.in index 71e0107f..d3d461f9 100644 --- a/contrib/pacsearch.in +++ b/contrib/pacsearch.in @@ -124,7 +124,7 @@ foreach $_ (@syncpkgs) { # add a last field that indicates original order push (@pkgfields, $cnt++); # add each sync pkg by name/ver to a hash table for quick lookup - $allpkgs{$pkgfields[1]} = [ @pkgfields ]; + $allpkgs{$pkgfields[1] . $pkgfields[2]} = [ @pkgfields ]; } my $queryout = `pacman -Qs '@ARGV'`; @@ -141,14 +141,14 @@ foreach $_ (@querypkgs) { # skip any non-matching line next if not defined $pkgfields[1]; # check if the package was listed in the sync out - if (not exists $allpkgs{$pkgfields[1]}) { + if (not exists $allpkgs{$pkgfields[1] . $pkgfields[2]}) { # since 'group' is optional, we should fill it in if necessary $pkgfields[3] = "" if not defined $pkgfields[3]; $pkgfields[4] = "[$LC_INSTALLED]"; # add a last field that indicates original order (after sync) push (@pkgfields, $cnt++); # add our local-only package to the hash - $allpkgs{$pkgfields[1]} = [ @pkgfields ]; + $allpkgs{$pkgfields[1] . $pkgfields[2]} = [ @pkgfields ]; } } |