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 /cmdline | |
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.
Diffstat (limited to 'cmdline')
-rw-r--r-- | cmdline/apt-cache.cc | 10 |
1 files changed, 3 insertions, 7 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; } /*}}}*/ |