]> git.saurik.com Git - apt.git/blobdiff - cmdline/apt-cache.cc
dpkgpm: Convert users of localtime() to localtime_r()
[apt.git] / cmdline / apt-cache.cc
index f7abb823d6d671befb1847f56b4580af4ccc0f29..2db25135070f6a36d393c2fde92f850aaec05d27 100644 (file)
@@ -312,13 +312,14 @@ static void ShowHashTableStats(std::string Type,
 /* */
 static bool Stats(CommandLine &CmdL)
 {
-   pkgCacheFile CacheFile;
-   pkgCache *Cache = CacheFile.GetPkgCache();
-
    if (CmdL.FileSize() > 1) {
       _error->Error(_("apt-cache stats does not take any arguments"));
       return false;
    }
+
+   pkgCacheFile CacheFile;
+   pkgCache *Cache = CacheFile.GetPkgCache();
+
    if (unlikely(Cache == NULL))
       return false;
 
@@ -724,7 +725,6 @@ static bool ShowDepends(CommandLine &CmdL, bool const RevDepends)
               continue;
 
            pkgCache::PkgIterator Trg = RevDepends ? D.ParentPkg() : D.TargetPkg();
-           bool const showNoArch = RevDepends || (D->CompareOp & pkgCache::Dep::ArchSpecific) != pkgCache::Dep::ArchSpecific;
 
            if((Installed && Trg->CurrentVer != 0) || !Installed)
              {
@@ -738,9 +738,9 @@ static bool ShowDepends(CommandLine &CmdL, bool const RevDepends)
                if (ShowDepType == true)
                  cout << D.DepType() << ": ";
                if (Trg->VersionList == 0)
-                 cout << "<" << Trg.FullName(showNoArch) << ">";
+                 cout << "<" << Trg.FullName(true) << ">";
                else
-                 cout << Trg.FullName(showNoArch);
+                 cout << Trg.FullName(true);
                if (ShowVersion == true && D->Version != 0)
                   cout << " (" << pkgCache::CompTypeDeb(D->CompareOp) << ' ' << D.TargetVer() << ')';
                cout << std::endl;
@@ -1607,6 +1607,10 @@ static bool ShowSrcPackage(CommandLine &CmdL)
       pkgSrcRecords::Parser *Parse;
       unsigned found_this = 0;
       while ((Parse = SrcRecs.Find(*I,false)) != 0) {
+         // SrcRecs.Find() will find both binary and source names
+         if (_config->FindB("APT::Cache::Only-Source", false) == true)
+            if (Parse->Package() != *I)
+               continue;
         cout << Parse->AsStr() << endl;;
         found++;
         found_this++;