// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: algorithms.cc,v 1.34 2001/04/06 05:40:03 jgg Exp $
+// $Id: algorithms.cc,v 1.36 2001/05/27 03:46:10 jgg Exp $
/* ######################################################################
Algorithms - A set of misc algorithms
{
for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++)
{
+ if (I->VersionList == 0)
+ continue;
+
// Only choice for a ReInstReq package is to reinstall
if (I->InstState == pkgCache::State::ReInstReq ||
I->InstState == pkgCache::State::HoldReInstReq)
{
- if (I.CurrentVer().Downloadable() == true)
+ if (I->CurrentVer != 0 && I.CurrentVer().Downloadable() == true)
Cache.MarkKeep(I);
else
{
re-unpacked (probably) */
case pkgCache::State::UnPacked:
case pkgCache::State::HalfConfigured:
- if (I.CurrentVer().Downloadable() == true ||
+ if ((I->CurrentVer != 0 && I.CurrentVer().Downloadable() == true) ||
I.State() != pkgCache::PkgIterator::NeedsUnpack)
Cache.MarkKeep(I);
else