HCoop
/
ntk
/
apt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Purge support
[ntk/apt.git]
/
apt-pkg
/
depcache.cc
diff --git
a/apt-pkg/depcache.cc
b/apt-pkg/depcache.cc
index
36abcdd
..
dc03ef6
100644
(file)
--- a/
apt-pkg/depcache.cc
+++ b/
apt-pkg/depcache.cc
@@
-1,6
+1,6
@@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: depcache.cc,v 1.1
8 1999/04/28 22:48:45
jgg Exp $
+// $Id: depcache.cc,v 1.1
9 1999/07/10 04:58:42
jgg Exp $
/* ######################################################################
Dependency Cache - Caches Dependency information.
/* ######################################################################
Dependency Cache - Caches Dependency information.
@@
-264,6
+264,10
@@
void pkgDepCache::AddStates(const PkgIterator &Pkg,int Add)
// Not installed
if (Pkg->CurrentVer == 0)
{
// Not installed
if (Pkg->CurrentVer == 0)
{
+ if (State.Mode == ModeDelete &&
+ (State.iFlags | Purge) == Purge && Pkg.Purge() == false)
+ iDelCount += Add;
+
if (State.Mode == ModeInstall)
iInstCount += Add;
return;
if (State.Mode == ModeInstall)
iInstCount += Add;
return;
@@
-562,7
+566,7
@@
void pkgDepCache::MarkKeep(PkgIterator const &Pkg,bool Soft)
// DepCache::MarkDelete - Put the package in the delete state /*{{{*/
// ---------------------------------------------------------------------
/* */
// DepCache::MarkDelete - Put the package in the delete state /*{{{*/
// ---------------------------------------------------------------------
/* */
-void pkgDepCache::MarkDelete(PkgIterator const &Pkg)
+void pkgDepCache::MarkDelete(PkgIterator const &Pkg
, bool rPurge
)
{
// Simplifies other routines.
if (Pkg.end() == true)
{
// Simplifies other routines.
if (Pkg.end() == true)
@@
-570,10
+574,14
@@
void pkgDepCache::MarkDelete(PkgIterator const &Pkg)
// Check that it is not already marked for delete
StateCache &P = PkgState[Pkg->ID];
// Check that it is not already marked for delete
StateCache &P = PkgState[Pkg->ID];
- P.iFlags &= ~AutoKept;
- if (P.Mode == ModeDelete || P.InstallVer == 0)
+ P.iFlags &= ~(AutoKept | Purge);
+ if (rPurge == true)
+ P.iFlags |= Purge;
+
+ if ((P.Mode == ModeDelete || P.InstallVer == 0) &&
+ (Pkg.Purge() == true || rPurge == false))
return;
return;
-
+
// We dont even try to delete virtual packages..
if (Pkg->VersionList == 0)
return;
// We dont even try to delete virtual packages..
if (Pkg->VersionList == 0)
return;
@@
-581,7
+589,7
@@
void pkgDepCache::MarkDelete(PkgIterator const &Pkg)
RemoveSizes(Pkg);
RemoveStates(Pkg);
RemoveSizes(Pkg);
RemoveStates(Pkg);
- if (Pkg->CurrentVer == 0)
+ if (Pkg->CurrentVer == 0
&& (Pkg.Purge() == true || rPurge == false)
)
P.Mode = ModeKeep;
else
P.Mode = ModeDelete;
P.Mode = ModeKeep;
else
P.Mode = ModeDelete;