diff options
author | Arch Librarian <arch@canonical.com> | 2004-09-20 16:52:19 +0000 |
---|---|---|
committer | Arch Librarian <arch@canonical.com> | 2004-09-20 16:52:19 +0000 |
commit | 54db103455f0601d4c81e0bb368e602f2e77115c (patch) | |
tree | f114390fd4c266fc6744f6b11bc6344e61e3a972 /apt-pkg | |
parent | 9e0349cc4674d0f90434e415e157a21f1ff9589b (diff) |
fixed casting bug
Author: jgg
Date: 1998-12-22 07:58:49 GMT
fixed casting bug
Diffstat (limited to 'apt-pkg')
-rw-r--r-- | apt-pkg/acquire-method.h | 3 | ||||
-rw-r--r-- | apt-pkg/depcache.cc | 47 |
2 files changed, 38 insertions, 12 deletions
diff --git a/apt-pkg/acquire-method.h b/apt-pkg/acquire-method.h index cefb60468..014cfb7f1 100644 --- a/apt-pkg/acquire-method.h +++ b/apt-pkg/acquire-method.h @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: acquire-method.h,v 1.7 1998/12/05 04:19:02 jgg Exp $ +// $Id: acquire-method.h,v 1.8 1998/12/22 07:58:49 jgg Exp $ /* ###################################################################### Acquire Method - Method helper class + functions @@ -56,6 +56,7 @@ class pkgAcqMethod // Outgoing messages void Fail(bool Transient = false); + inline void Fail(const char *Why, bool Transient = false) {Fail(Why,Transient);}; void Fail(string Why, bool Transient = false); void URIStart(FetchResult &Res); void URIDone(FetchResult &Res,FetchResult *Alt = 0); diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index cd3597ef7..19f30b2c1 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: depcache.cc,v 1.12 1998/12/14 08:07:29 jgg Exp $ +// $Id: depcache.cc,v 1.13 1998/12/22 07:58:50 jgg Exp $ /* ###################################################################### Dependency Cache - Caches Dependency information. @@ -12,6 +12,7 @@ #pragma implementation "apt-pkg/depcache.h" #endif #include <apt-pkg/depcache.h> +#include <apt-pkg/configuration.h> #include <apt-pkg/version.h> #include <apt-pkg/error.h> @@ -104,18 +105,40 @@ pkgDepCache::VerIterator pkgDepCache::GetCandidateVer(PkgIterator Pkg) // Try to use an explicit target if (Pkg->TargetVer == 0) { - /* Not source/not automatic versions cannot be a candidate version - unless they are already installed */ - for (VerIterator I = Pkg.VersionList(); I.end() == false; I++) + string DistHack = _config->Find("to"); + + /* If disthack is set then we look for a dist by that name to install + from */ + if (DistHack.empty() == false) { - if (Pkg.CurrentVer() == I) - return I; - for (VerFileIterator J = I.FileList(); J.end() == false; J++) - if ((J.File()->Flags & Flag::NotSource) == 0 && - (J.File()->Flags & Flag::NotAutomatic) == 0) - return I; - } + for (VerIterator I = Pkg.VersionList(); I.end() == false; I++) + { + for (VerFileIterator J = I.FileList(); J.end() == false; J++) + if ((J.File()->Flags & Flag::NotSource) == 0 && + (J.File()->Flags & Flag::NotAutomatic) == 0 && + J.File().Archive() == DistHack) + return I; + } + // Hmm, target is current if there is no alternative. + if (Pkg->CurrentVer != 0) + return Pkg.CurrentVer(); + } + else + { + /* 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 && + (J.File()->Flags & Flag::NotAutomatic) == 0) + return I; + } + } + return VerIterator(*this,0); } else @@ -288,6 +311,8 @@ void pkgDepCache::AddStates(const PkgIterator &Pkg,int Add) { if (State.Mode == ModeDelete) iDelCount += Add; + if (State.Mode == ModeInstall) + iInstCount += Add; return; } |