pkgCacheFile &Cache, const char * cmdline,
std::list<Modifier> const &mods, CacheSetHelper &helper) {
std::string str = cmdline;
+ unsigned short fallback = modID;
bool modifierPresent = false;
for (std::list<Modifier>::const_iterator mod = mods.begin();
mod != mods.end(); ++mod) {
helper.showErrors(errors);
if (Pkg.end() == false) {
pci->insert(Pkg);
+ modID = fallback;
return true;
}
}
modifierPresent = true;
break;
}
-
if (modifierPresent == true) {
bool const errors = helper.showErrors(false);
bool const found = VersionContainerInterface::FromString(vci, Cache, cmdline, select, helper, true);
helper.showErrors(errors);
- if (found == true)
+ if (found == true) {
+ modID = fallback;
return true;
+ }
}
return FromString(vci, Cache, str, select, helper);
}
ordering code does not get into a endless loop when it flip-flops
between two states
+ [ David Kalnischkies ]
+ * apt-pkg/cacheset.cc:
+ - actually return to the fallback modifier if we have detected we
+ should for packagenames which look like modifiers (Closes: #669591)
+
-- Malcolm Scott <launchpad@malc.org.uk> Thu, 19 Apr 2012 19:52:56 +0100
apt (0.8.16~exp12ubuntu9) precise-proposed; urgency=low
Inst g++ (4:4.4.5-1 localhost [i386])
Conf g++ (4:4.4.5-1 localhost [i386])' aptget install g++ -s
+testequal "Reading package lists...
+Building dependency tree...
+Package 'g++' is not installed, so not removed
+0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded." aptget remove g++ -s
+
testequal 'Reading package lists...
Building dependency tree...
The following NEW packages will be installed: