X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/cd14eaf27b6d7434e73ecf1c04fbc55be6e88c1f..5e775e59b59b64b9864702b9d410c8e3706e223f:/apt-pkg/algorithms.cc diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index 0cc4388af..fec16e095 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.40 2002/04/25 05:45:18 jgg Exp $ +// $Id: algorithms.cc,v 1.42 2002/11/09 23:10:32 doogie Exp $ /* ###################################################################### Algorithms - A set of misc algorithms @@ -49,17 +49,22 @@ pkgSimulate::pkgSimulate(pkgDepCache *Cache) : pkgPackageManager(Cache), /*}}}*/ // Simulate::Describe - Describe a package /*{{{*/ // --------------------------------------------------------------------- -/* */ +/* Parameter Now == true gives both current and available varsion, + Parameter Now == false gives only the available package version */ void pkgSimulate::Describe(PkgIterator Pkg,ostream &out,bool Now) { VerIterator Ver(Sim); + + out << Pkg.Name(); + if (Now == true) + { Ver = Pkg.CurrentVer(); - else - Ver = Sim[Pkg].CandidateVerIter(Sim); + if (Ver.end() == false) + out << " [" << Ver.VerStr() << ']'; + } - out << Pkg.Name(); - + Ver = Sim[Pkg].CandidateVerIter(Sim); if (Ver.end() == true) return; @@ -76,7 +81,7 @@ bool pkgSimulate::Install(PkgIterator iPkg,string /*File*/) Flags[Pkg->ID] = 1; cout << "Inst "; - Describe(Pkg,cout,false); + Describe(Pkg,cout,true); Sim.MarkInstall(Pkg,false); // Look for broken conflicts+predepends. @@ -558,6 +563,8 @@ bool pkgProblemResolver::DoUpgrade(pkgCache::PkgIterator Pkg) { if ((Flags[Pkg->ID] & Upgradable) == 0 || Cache[Pkg].Upgradable() == false) return false; + if ((Flags[Pkg->ID] & Protected) == Protected) + return false; Flags[Pkg->ID] &= ~Upgradable;