]> git.saurik.com Git - apt.git/commitdiff
Make sure or group mode is always left
authorArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:59:11 +0000 (16:59 +0000)
committerArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:59:11 +0000 (16:59 +0000)
Author: jgg
Date: 2002-04-25 05:45:18 GMT
Make sure or group mode is always left
Fix a few missed Changed flags

apt-pkg/algorithms.cc

index c28317b720d63f0e5339f1adec1fe0b7fef48c2a..0cc4388af130b54f6f1c74d2e3638ae25f86d107 100644 (file)
@@ -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;