summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2005-06-30 10:47:22 +0000
committerMichael Vogt <michael.vogt@ubuntu.com>2005-06-30 10:47:22 +0000
commit899d08fea9e10d617afaa42f51f4abda76fc508f (patch)
treeae27d6454ad3da20145658266b5fa01b8d4229ac
parent22dcc318d978813b3c4d1ae1a1f41933d0e1d69b (diff)
* some WS fixes
-rw-r--r--apt-pkg/algorithms.cc6
-rw-r--r--apt-pkg/algorithms.h9
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