summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2006-09-13 11:52:19 +0200
committerMichael Vogt <michael.vogt@ubuntu.com>2006-09-13 11:52:19 +0200
commit3d0de656b6263d51c288d82ef2b352e53023382c (patch)
treef1fe7c8dc27a40a4c31aa7ea968837e457364ddf
parentc97fd4ec4a34eb15eb8985890a47e768f4b94f0d (diff)
* cmdline/apt-get.cc:
- changed the behaviour of --no-remove and --auto-remove, if --no-remove is given, then that will turn off --auto-remove implicitely
-rw-r--r--cmdline/apt-get.cc18
1 files changed, 11 insertions, 7 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc
index 411b16e90..4af23641b 100644
--- a/cmdline/apt-get.cc
+++ b/cmdline/apt-get.cc
@@ -1393,15 +1393,20 @@ bool DoUpdate(CommandLine &CmdL)
bool DoAutomaticRemove(CacheFile &Cache)
{
bool Debug = _config->FindI("Debug::pkgAutoRemove",false);
+ bool doAutoRemove = _config->FindB("APT::Get::AutomaticRemove");
pkgDepCache::ActionGroup group(*Cache);
+
if(Debug)
std::cout << "DoAutomaticRemove()" << std::endl;
- if (_config->FindB("APT::Get::AutomaticRemove") &&
- _config->FindB("APT::Get::Remove",true) == false)
- return _error->Error(_("We are not supposed to delete stuff, can't "
- "start AutoRemover"));
+ if (_config->FindB("APT::Get::Remove",true) == false &&
+ doAutoRemove == true)
+ {
+ c1out << _("We are not supposed to delete stuff, can't start "
+ "AutoRemover") << std::endl;
+ doAutoRemove = false;
+ }
string autoremovelist, autoremoveversions;
// look over the cache to see what can be removed
@@ -1415,7 +1420,7 @@ bool DoAutomaticRemove(CacheFile &Cache)
autoremovelist += string(Pkg.Name()) + " ";
autoremoveversions += string(Cache[Pkg].CandVersion) + " ";
- if (_config->FindB("APT::Get::AutomaticRemove"))
+ if (doAutoRemove)
{
if(Pkg.CurrentVer() != 0 &&
Pkg->CurrentState != pkgCache::State::ConfigFiles)
@@ -1426,8 +1431,7 @@ bool DoAutomaticRemove(CacheFile &Cache)
}
}
ShowList(c1out, _("The following packages where automatically installed and are no longer required:"), autoremovelist, autoremoveversions);
- if (!_config->FindB("APT::Get::AutomaticRemove") &&
- autoremovelist.size() > 0)
+ if (!doAutoRemove && autoremovelist.size() > 0)
c1out << _("Use 'apt-get autoremove' to remove them.") << std::endl;
// Now see if we destroyed anything