diff options
author | Arch Librarian <arch@canonical.com> | 2004-09-20 16:59:11 +0000 |
---|---|---|
committer | Arch Librarian <arch@canonical.com> | 2004-09-20 16:59:11 +0000 |
commit | cd14eaf27b6d7434e73ecf1c04fbc55be6e88c1f (patch) | |
tree | 7d5dda5763d883ba072c91a26c944aadebd48fb4 | |
parent | 358688a829b213f6a58392dd87b6fef12946e72f (diff) |
Make sure or group mode is always left
Author: jgg
Date: 2002-04-25 05:45:18 GMT
Make sure or group mode is always left
Fix a few missed Changed flags
-rw-r--r-- | apt-pkg/algorithms.cc | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index c28317b72..0cc4388af 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: algorithms.cc,v 1.39 2002/04/02 05:55:24 jgg Exp $ +// $Id: algorithms.cc,v 1.40 2002/04/25 05:45:18 jgg Exp $ /* ###################################################################### Algorithms - A set of misc algorithms @@ -800,6 +800,7 @@ bool pkgProblemResolver::Resolve(bool BrokenFix) if (Debug == true) clog << " Or group remove for " << I.Name() << endl; Cache.MarkDelete(I); + Change = true; } } if (OldEnd == LEnd && OrOp == OrKeep) @@ -807,6 +808,7 @@ bool pkgProblemResolver::Resolve(bool BrokenFix) if (Debug == true) clog << " Or group keep for " << I.Name() << endl; Cache.MarkKeep(I); + Change = true; } } @@ -817,21 +819,24 @@ bool pkgProblemResolver::Resolve(bool BrokenFix) D.GlobOr(Start,End); if (Start.end() == true) break; - + // We only worry about critical deps. if (End.IsCritical() != true) continue; - + InOr = Start != End; OldEnd = LEnd; - } + } else Start++; - + // Dep is ok if ((Cache[End] & pkgDepCache::DepGInstall) == pkgDepCache::DepGInstall) + { + InOr = false; continue; - + } + if (Debug == true) clog << "Package " << I.Name() << " has broken dep on " << Start.TargetPkg().Name() << endl; |