]> git.saurik.com Git - apt.git/blobdiff - apt-private/private-show.cc
The entire concept of PendingError() is flawed :/.
[apt.git] / apt-private / private-show.cc
index 792c455a8285ecee38ed00fd2328e3e0822c4131..27338a08c8ef40de50800da6629f1ef95f703962 100644 (file)
@@ -24,6 +24,7 @@
 #include <apt-private/private-show.h>
 
 #include <stdio.h>
+#include <unistd.h>
 #include <ostream>
 #include <string>
 
@@ -258,6 +259,8 @@ bool ShowPackage(CommandLine &CmdL)                                 /*{{{*/
    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)
@@ -356,13 +359,15 @@ bool ShowSrcPackage(CommandLine &CmdL)                                    /*{{{*/
 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)
@@ -394,24 +399,6 @@ bool Policy(CommandLine &CmdL)
       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)
@@ -456,17 +443,6 @@ bool Policy(CommandLine &CmdL)
       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)
@@ -475,10 +451,8 @@ bool Policy(CommandLine &CmdL)
            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