summaryrefslogtreecommitdiff
path: root/apt-pkg
diff options
context:
space:
mode:
Diffstat (limited to 'apt-pkg')
-rw-r--r--apt-pkg/orderlist.cc10
1 files changed, 5 insertions, 5 deletions
diff --git a/apt-pkg/orderlist.cc b/apt-pkg/orderlist.cc
index 0d529c122..bfe91507e 100644
--- a/apt-pkg/orderlist.cc
+++ b/apt-pkg/orderlist.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: orderlist.cc,v 1.8 1999/07/20 05:53:33 jgg Exp $
+// $Id: orderlist.cc,v 1.9 1999/11/04 06:05:02 jgg Exp $
/* ######################################################################
Order List - Represents and Manipulates an ordered list of packages.
@@ -422,14 +422,14 @@ bool pkgOrderList::VisitRProvides(DepFunc F,VerIterator Ver)
// ---------------------------------------------------------------------
/* This routine calls visit on all providing packages. */
bool pkgOrderList::VisitProvides(DepIterator D,bool Critical)
-{
+{
Version **List = D.AllTargets();
for (Version **I = List; *I != 0; I++)
{
VerIterator Ver(Cache,*I);
PkgIterator Pkg = Ver.ParentPkg();
-
- if (Cache[Pkg].Keep() == true)
+
+ if (Cache[Pkg].Keep() == true && Pkg.State() == PkgIterator::NeedsNothing)
continue;
if (D->Type != pkgCache::Dep::Conflicts && Cache[Pkg].InstallVer != *I)
@@ -441,7 +441,7 @@ bool pkgOrderList::VisitProvides(DepIterator D,bool Critical)
// Skip over missing files
if (Critical == false && IsMissing(D.ParentPkg()) == true)
continue;
-
+
if (VisitNode(Pkg) == false)
{
delete [] List;