diff options
author | Julian Andres Klode <julian.klode@canonical.com> | 2020-10-26 14:39:44 +0100 |
---|---|---|
committer | Julian Andres Klode <julian.klode@canonical.com> | 2020-10-26 14:39:44 +0100 |
commit | 681f74a8bd5beaad5b821a5c4eb3c0bc1c471669 (patch) | |
tree | 3b1f841b2285abc38dbbdfb1a25f79727e8cf459 | |
parent | 9cc002939afc0d2283fd2f5e7d6e7434af5d10ff (diff) |
pkgnames: Do not exclude virtual packages with --all-names
We accidentally excluded virtual packages by excluding every
group that had a package, but where the package had no versions.
Rewrite the code so the lookup consistently uses VersionList()
instead of FirstVersion and FindPkg("any") - those are all the
same, and this is easier to read.
-rw-r--r-- | cmdline/apt-cache.cc | 10 | ||||
-rwxr-xr-x | test/integration/test-ubuntu-bug-1876495-pkgnames-virtual | 3 |
2 files changed, 5 insertions, 8 deletions
diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc index b40ff6efa..ffe650970 100644 --- a/cmdline/apt-cache.cc +++ b/cmdline/apt-cache.cc @@ -986,9 +986,7 @@ static bool ShowPkgNames(CommandLine &CmdL) { for (;I.end() != true; ++I) { - if (All == false && I->FirstPackage == 0) - continue; - if (I.FindPkg("any")->VersionList == 0) + if (All == false && (I.PackageList().end() || I.PackageList()->VersionList == 0)) continue; if (strncmp(I.Name(),CmdL.FileList[1],strlen(CmdL.FileList[1])) == 0) cout << I.Name() << endl; @@ -1000,13 +998,11 @@ static bool ShowPkgNames(CommandLine &CmdL) // Show all pkgs for (;I.end() != true; ++I) { - if (All == false && I->FirstPackage == 0) - continue; - if (I.FindPkg("any")->VersionList == 0) + if (All == false && (I.PackageList().end() || I.PackageList()->VersionList == 0)) continue; cout << I.Name() << endl; } - + return true; } /*}}}*/ diff --git a/test/integration/test-ubuntu-bug-1876495-pkgnames-virtual b/test/integration/test-ubuntu-bug-1876495-pkgnames-virtual index 77d68e085..00a767479 100755 --- a/test/integration/test-ubuntu-bug-1876495-pkgnames-virtual +++ b/test/integration/test-ubuntu-bug-1876495-pkgnames-virtual @@ -20,4 +20,5 @@ dpkg" aptcache pkgnames testsuccessequal "source-package coolstuff -dpkg" aptcache pkgnames --all-names +dpkg +virtual-package" aptcache pkgnames --all-names |