CacheSetHelperVirtuals helper(true, GlobalError::NOTICE);
APT::CacheSetHelper::VerSelector const select = _config->FindB("APT::Cache::AllVersions", true) ?
APT::CacheSetHelper::ALL : APT::CacheSetHelper::CANDIDATE;
+ if (select == APT::CacheSetHelper::CANDIDATE && CacheFile.GetDepCache() == nullptr)
+ return false;
APT::VersionList const verset = APT::VersionList::FromCommandLine(CacheFile, CmdL.FileList + 1, select, helper);
int const ShowVersion = _config->FindI("APT::Cache::Show::Version", 1);
for (APT::VersionList::const_iterator Ver = verset.begin(); Ver != verset.end(); ++Ver)
return true;
}
/*}}}*/
-// XXX: move to hashes.h: HashString::FromString() ? /*{{{*/
-std::string Sha1FromString(std::string input)
+static std::string Sha1FromString(std::string const &input) /*{{{*/
{
+ // XXX: move to hashes.h: HashString::FromString() ?
SHA1Summation sha1;
sha1.Add(input.c_str(), input.length());
return sha1.Result().Value();
bool Policy(CommandLine &CmdL)
{
pkgCacheFile CacheFile;
- pkgCache *Cache = CacheFile.GetPkgCache();
- pkgPolicy *Plcy = CacheFile.GetPolicy();
- pkgSourceList *SrcList = CacheFile.GetSourceList();
- if (unlikely(Cache == NULL || Plcy == NULL || SrcList == NULL))
+ pkgSourceList const * const SrcList = CacheFile.GetSourceList();
+ if (unlikely(SrcList == nullptr))
+ return false;
+ pkgCache * const Cache = CacheFile.GetPkgCache();
+ if (unlikely(Cache == nullptr))
+ return false;
+ pkgPolicy * const Plcy = CacheFile.GetPolicy();
+ if (unlikely(Plcy == nullptr))
return false;
-
- bool OldPolicy = _config->FindI("APT::Policy", 1) < 1;
// Print out all of the package files
if (CmdL.FileList[1] == 0)
pkgCache::PkgIterator I = Cache->PkgBegin();
for (;I.end() != true; ++I)
{
- // Old code for debugging
- if (OldPolicy)
- {
- if (Plcy->GetPriority(I) == 0)
- continue;
-
- // Print the package name and the version we are forcing to
- std::cout << " " << I.FullName(true) << " -> ";
-
- pkgCache::VerIterator V = Plcy->GetMatch(I);
- if (V.end() == true)
- std::cout << _("(not found)") << std::endl;
- else
- std::cout << V.VerStr() << std::endl;
-
- continue;
- }
- // New code
for (pkgCache::VerIterator V = I.VersionList(); !V.end(); ++V) {
auto Prio = Plcy->GetPriority(V, false);
if (Prio == 0)
else
std::cout << V.VerStr() << std::endl;
- // Pinned version
- if (OldPolicy && Plcy->GetPriority(Pkg) != 0)
- {
- std::cout << _(" Package pin: ");
- V = Plcy->GetMatch(Pkg);
- if (V.end() == true)
- std::cout << _("(not found)") << std::endl;
- else
- std::cout << V.VerStr() << std::endl;
- }
-
// Show the priority tables
std::cout << _(" Version table:") << std::endl;
for (V = Pkg.VersionList(); V.end() == false; ++V)
std::cout << " *** " << V.VerStr();
else
std::cout << " " << V.VerStr();
- if (_config->FindI("APT::Policy", 1) < 1)
- std::cout << " " << Plcy->GetPriority(Pkg) << std::endl;
- else
- std::cout << " " << Plcy->GetPriority(V) << std::endl;
+
+ std::cout << " " << Plcy->GetPriority(V) << std::endl;
for (pkgCache::VerFileIterator VF = V.FileList(); VF.end() == false; ++VF)
{
// Locate the associated index files so we can derive a description