From 899d08fea9e10d617afaa42f51f4abda76fc508f Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 30 Jun 2005 10:47:22 +0000 Subject: * some WS fixes --- apt-pkg/algorithms.cc | 6 ++++-- apt-pkg/algorithms.h | 9 +++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index 8e55649ca..8626d33dc 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -1386,18 +1386,20 @@ bool pkgMarkUsed(pkgDepCache &Cache, InRootSetFunc func) } - // do the mark part + // do the mark part, this is the core bit of the algorithm for(pkgCache::PkgIterator p=Cache.PkgBegin(); !p.end(); ++p) { if( (func != NULL ? (*func)(p) : false) || - pkgMarkAlwaysInclude(p, neverAutoRemoveRegexp) || + pkgMarkAlwaysInclude(p, neverAutoRemoveRegexp) || !(Cache[p].Flags & pkgCache::Flag::Auto) || (p->Flags & pkgCache::Flag::Essential)) { + // the package is installed (and set to keep) if(Cache[p].Keep() && !p.CurrentVer().end()) pkgMarkPackage(Cache, p, p.CurrentVer(), follow_recommends, follow_suggests); + // the package is to be installed else if(Cache[p].Install()) pkgMarkPackage(Cache, p, Cache[p].InstVerIter(Cache), follow_recommends, follow_suggests); diff --git a/apt-pkg/algorithms.h b/apt-pkg/algorithms.h index 82d7b7aad..02b40e15f 100644 --- a/apt-pkg/algorithms.h +++ b/apt-pkg/algorithms.h @@ -135,12 +135,13 @@ void pkgPrioSortList(pkgCache &Cache,pkgCache::Version **List); // callback function that can be used by the client to bring in -// certain own packages into the root set +// certain own packages into the root set (if the client returns +// True the package will be considered as part of the root set) typedef bool (*InRootSetFunc)(pkgCache::PkgIterator); -// Mark all reachable packages with pkgDepCache::StateCache.Marked -// the root-set are all essential packages+everything that was installed -// manually +// Mark all reachable packages with "pkgDepCache::StateCache.Marked=1" +// the root-set are all essential packages+everything that was not +// installed automatically // // If InRootSetFunc is set, it will be called for each PkgIterator. This // is usefull for clients that have there own idea about the root-set -- cgit v1.2.3