diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2005-06-30 08:02:37 +0000 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2005-06-30 08:02:37 +0000 |
commit | 2ac6ce927cda2847baf8e71a74e595e6b82c6d98 (patch) | |
tree | e26518dd191c405070a2c8d8d7a0dbb056ef0cf2 /apt-pkg/algorithms.cc | |
parent | bc80031f74e4acfca5b8ca7188b12ee885a713bd (diff) |
* added a callback to pkgMarkUsed() so that frontend can extend the root-set of the auto-remover easily
Diffstat (limited to 'apt-pkg/algorithms.cc')
-rw-r--r-- | apt-pkg/algorithms.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index c679e76f6..11f5b5671 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -1329,7 +1329,7 @@ void pkgMarkPackage(pkgDepCache &Cache, } -bool pkgMarkUsed(pkgDepCache &Cache) +bool pkgMarkUsed(pkgDepCache &Cache, InRootSetFunc func) { bool follow_recommends; bool follow_suggests; @@ -1343,14 +1343,16 @@ bool pkgMarkUsed(pkgDepCache &Cache) // init vars follow_recommends=_config->FindB("APT::AutoRemove::RecommendsImportant",false); - follow_suggests=_config->FindB("APT::AutoRemove::SuggestsImportend", false); + follow_suggests=_config->FindB("APT::AutoRemove::SuggestsImportant", false); // do the mark part for(pkgCache::PkgIterator p=Cache.PkgBegin(); !p.end(); ++p) { - if(!(Cache[p].Flags & pkgCache::Flag::Auto) || - (p->Flags & pkgCache::Flag::Essential)) + if( (func != NULL ? (*func)(p) : false) || + !(Cache[p].Flags & pkgCache::Flag::Auto) || + (p->Flags & pkgCache::Flag::Essential)) + { if(Cache[p].Keep() && !p.CurrentVer().end()) pkgMarkPackage(Cache, p, p.CurrentVer(), |