]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/depcache.cc
Retry support
[apt.git] / apt-pkg / depcache.cc
index 7f9ded7208630a1b037bab93ee88d1e87db1cfb9..81127efb9a88b57f1d394989368007f654af7c37 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: depcache.cc,v 1.10 1998/12/08 01:34:07 jgg Exp $
+// $Id: depcache.cc,v 1.14 1998/12/22 08:01:04 jgg Exp $
 /* ######################################################################
 
    Dependency Cache - Caches Dependency information.
@@ -104,14 +104,15 @@ pkgDepCache::VerIterator pkgDepCache::GetCandidateVer(PkgIterator Pkg)
    // Try to use an explicit target
    if (Pkg->TargetVer == 0)
    {
-      /* Not source versions cannot be a candidate version unless they
-         are already installed */
+      /* Not source/not automatic versions cannot be a candidate version 
+         unless they are already installed */
       for (VerIterator I = Pkg.VersionList(); I.end() == false; I++)
       {
         if (Pkg.CurrentVer() == I)
            return I;
         for (VerFileIterator J = I.FileList(); J.end() == false; J++)
-           if ((J.File()->Flags & Flag::NotSource) == 0)
+           if ((J.File()->Flags & Flag::NotSource) == 0 &&
+               (J.File()->Flags & Flag::NotAutomatic) == 0)
                return I;
       }
         
@@ -588,7 +589,10 @@ void pkgDepCache::MarkDelete(PkgIterator const &Pkg)
    RemoveSizes(Pkg);
    RemoveStates(Pkg);
    
-   P.Mode = ModeDelete;
+   if (Pkg->CurrentVer == 0)
+      P.Mode = ModeKeep;
+   else
+      P.Mode = ModeDelete;
    P.InstallVer = 0;
    P.Flags &= Flag::Auto;