]> git.saurik.com Git - apt.git/blobdiff - apt-private/private-list.cc
Merge remote-tracking branch 'upstream/debian/sid' into debian/sid
[apt.git] / apt-private / private-list.cc
index 7664ca1348cd369f91833e83c5a1de8e81e9ded3..b69002103e3d44d8e3a6b33315fb6a48dc3f3874 100644 (file)
@@ -99,14 +99,13 @@ static void ListAllVersions(pkgCacheFile &CacheFile, pkgRecords &records,/*{{{*/
                                                                        /*}}}*/
 // list - list package based on criteria                               /*{{{*/
 // ---------------------------------------------------------------------
-bool List(CommandLine &Cmd)
+bool DoList(CommandLine &Cmd)
 {
    pkgCacheFile CacheFile;
    pkgCache *Cache = CacheFile.GetPkgCache();
-   pkgRecords records(CacheFile);
-
    if (unlikely(Cache == NULL))
       return false;
+   pkgRecords records(CacheFile);
 
    const char **patterns;
    const char *all_pattern[] = { "*", NULL};
@@ -131,10 +130,11 @@ bool List(CommandLine &Cmd)
                             Cache->Head().PackageCount,
                             _("Listing"));
    GetLocalitySortedVersionSet(CacheFile, bag, matcher, progress);
+   bool ShowAllVersions = _config->FindB("APT::Cmd::All-Versions", false);
    for (LocalitySortedVersionSet::iterator V = bag.begin(); V != bag.end(); ++V)
    {
       std::stringstream outs;
-      if(_config->FindB("APT::Cmd::All-Versions", false) == true)
+      if(ShowAllVersions == true)
       {
          ListAllVersions(CacheFile, records, V.ParentPkg(), outs, includeSummary);
          output_map.insert(std::make_pair<std::string, std::string>(
@@ -152,6 +152,18 @@ bool List(CommandLine &Cmd)
       std::cout << (*K).second << std::endl;
 
 
+   // be nice and tell the user if there is more to see
+   if (bag.size() == 1 && ShowAllVersions == false)
+   {
+      // start with -1 as we already displayed one version
+      int versions = -1;
+      pkgCache::VerIterator Ver = *bag.begin();
+      for ( ; Ver.end() == false; Ver++)
+         versions++;
+      if (versions > 0)
+         _error->Notice(P_("There is %i additional version. Please use the '-a' switch to see it", "There are %i additional versions. Please use the '-a' switch to see them.", versions), versions);
+   }
+
    return true;
 }