|
|
@@ -713,11 +713,32 @@ public:
|
|
|
}
|
|
|
|
|
|
virtual pkgCache::VerIterator canNotFindNewestVer(pkgCacheFile &Cache, pkgCache::PkgIterator const &Pkg) {
|
|
|
- APT::VersionSet const verset = tryVirtualPackage(Cache, Pkg, APT::VersionSet::NEWEST);
|
|
|
- if (verset.empty() == false)
|
|
|
- return *(verset.begin());
|
|
|
- if (ShowError == true)
|
|
|
- ioprintf(out, _("Virtual packages like '%s' can't be removed\n"), Pkg.FullName(true).c_str());
|
|
|
+ if (Pkg->ProvidesList != 0)
|
|
|
+ {
|
|
|
+ APT::VersionSet const verset = tryVirtualPackage(Cache, Pkg, APT::VersionSet::NEWEST);
|
|
|
+ if (verset.empty() == false)
|
|
|
+ return *(verset.begin());
|
|
|
+ if (ShowError == true)
|
|
|
+ ioprintf(out, _("Virtual packages like '%s' can't be removed\n"), Pkg.FullName(true).c_str());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ pkgCache::GrpIterator Grp = Pkg.Group();
|
|
|
+ pkgCache::PkgIterator P = Grp.PackageList();
|
|
|
+ for (; P.end() != true; P = Grp.NextPkg(P))
|
|
|
+ {
|
|
|
+ if (P == Pkg)
|
|
|
+ continue;
|
|
|
+ if (P->CurrentVer != 0) {
|
|
|
+ // TRANSLATORS: Note, this is not an interactive question
|
|
|
+ ioprintf(c1out,_("Package '%s' is not installed, so not removed. Did you mean '%s'?\n"),
|
|
|
+ Pkg.FullName(true).c_str(), P.FullName(true).c_str());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (P.end() == true)
|
|
|
+ ioprintf(c1out,_("Package '%s' is not installed, so not removed\n"),Pkg.FullName(true).c_str());
|
|
|
+ }
|
|
|
return pkgCache::VerIterator(Cache, 0);
|
|
|
}
|
|
|
|