// Stats - Dump some nice statistics /*{{{*/
// ---------------------------------------------------------------------
/* */
-static bool Stats(CommandLine &)
+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;
+ }
if (unlikely(Cache == NULL))
return false;
struct ExDescFile
{
pkgCache::DescFile *Df;
+ pkgCache::VerIterator V;
map_id_t ID;
};
if (D.end() == true)
continue;
DFList[G->ID].Df = D.FileList();
+ DFList[G->ID].V = V;
DFList[G->ID].ID = G->ID;
}
if (D.end() == true)
continue;
DFList[id].Df = D.FileList();
+ DFList[id].V = V;
DFList[id].ID = id;
size_t const PrvPatternOffset = id * NumPatterns;
for (unsigned I = 0; I < NumPatterns; ++I)
- PatternMatch[PrvPatternOffset + I] = PatternMatch[PatternOffset + I];
+ PatternMatch[PrvPatternOffset + I] |= PatternMatch[PatternOffset + I];
}
}
if (matchedAll == true)
{
if (ShowFull == true)
- {
- const char *Start;
- const char *End;
- P.GetRec(Start,End);
- fwrite(Start,End-Start,1,stdout);
- putc('\n',stdout);
- }
+ DisplayRecord(CacheFile, J->V);
else
printf("%s - %s\n",P.Name().c_str(),P.ShortDesc().c_str());
}
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++;