]> git.saurik.com Git - apt.git/blobdiff - cmdline/apt-cache.cc
cmdline/makefile: ajust comment
[apt.git] / cmdline / apt-cache.cc
index 6813d297865ac4f4323491e19b46cf5949ede678..232bb93ec670eafd23b432248c1c631af00f8a71 100644 (file)
@@ -121,9 +121,7 @@ bool ShowUnMet(pkgCache::VerIterator const &V, bool const &Important)
                  continue;
 
            // Skip conflicts and replaces
-           if (End->Type == pkgCache::Dep::DpkgBreaks ||
-               End->Type == pkgCache::Dep::Replaces ||
-               End->Type == pkgCache::Dep::Conflicts)
+           if (End.IsNegative() == true)
               continue;
 
            // Verify the or group
@@ -588,7 +586,7 @@ bool ShowDepends(CommandLine &CmdL, bool const RevDepends)
    CacheSetHelperVirtuals helper(false);
    APT::VersionSet verset = APT::VersionSet::FromCommandLine(CacheFile, CmdL.FileList + 1, APT::VersionSet::CANDIDATE, helper);
    if (verset.empty() == true && helper.virtualPkgs.empty() == true)
-      return false;
+      return _error->Error(_("No packages found"));
    std::vector<bool> Shown(Cache->Head().PackageCount);
 
    bool const Recurse = _config->FindB("APT::Cache::RecurseDepends", false);
@@ -848,10 +846,7 @@ bool XVcg(CommandLine &CmdL)
               {
                  /* If a conflicts does not meet anything in the database
                     then show the relation but do not recurse */
-                 if (Hit == false && 
-                     (D->Type == pkgCache::Dep::Conflicts ||
-                      D->Type == pkgCache::Dep::DpkgBreaks ||
-                      D->Type == pkgCache::Dep::Obsoletes))
+                 if (Hit == false && D.IsNegative() == true)
                  {
                     if (Show[D.TargetPkg()->ID] == None && 
                         Show[D.TargetPkg()->ID] != ToShow)
@@ -1060,9 +1055,7 @@ bool Dotty(CommandLine &CmdL)
               {
                  /* If a conflicts does not meet anything in the database
                     then show the relation but do not recurse */
-                 if (Hit == false && 
-                     (D->Type == pkgCache::Dep::Conflicts ||
-                      D->Type == pkgCache::Dep::Obsoletes))
+                 if (Hit == false && D.IsNegative() == true)
                  {
                     if (Show[D.TargetPkg()->ID] == None && 
                         Show[D.TargetPkg()->ID] != ToShow)
@@ -1082,6 +1075,7 @@ bool Dotty(CommandLine &CmdL)
               {
                  case pkgCache::Dep::Conflicts:
                  case pkgCache::Dep::Obsoletes:
+                 case pkgCache::Dep::DpkgBreaks:
                  printf("[color=springgreen];\n");
                  break;
                  
@@ -1115,59 +1109,10 @@ bool Dotty(CommandLine &CmdL)
    }
    
    printf("}\n");
+   delete[] Show;
+   delete[] Flags;
+   delete[] ShapeMap;
    return true;
-}
-                                                                       /*}}}*/
-// DoAdd - Perform an adding operation                                 /*{{{*/
-// ---------------------------------------------------------------------
-/* */
-bool DoAdd(CommandLine &CmdL)
-{
-   return _error->Error("Unimplemented");
-#if 0   
-   // Make sure there is at least one argument
-   if (CmdL.FileSize() <= 1)
-      return _error->Error("You must give at least one file name");
-   
-   // Open the cache
-   FileFd CacheF(_config->FindFile("Dir::Cache::pkgcache"),FileFd::WriteAny);
-   if (_error->PendingError() == true)
-      return false;
-   
-   DynamicMMap Map(CacheF,MMap::Public);
-   if (_error->PendingError() == true)
-      return false;
-
-   OpTextProgress Progress(*_config);
-   pkgCacheGenerator Gen(Map,Progress);
-   if (_error->PendingError() == true)
-      return false;
-
-   unsigned long Length = CmdL.FileSize() - 1;
-   for (const char **I = CmdL.FileList + 1; *I != 0; I++)
-   {
-      Progress.OverallProgress(I - CmdL.FileList,Length,1,"Generating cache");
-      Progress.SubProgress(Length);
-
-      // Do the merge
-      FileFd TagF(*I,FileFd::ReadOnly);
-      debListParser Parser(TagF);
-      if (_error->PendingError() == true)
-        return _error->Error("Problem opening %s",*I);
-      
-      if (Gen.SelectFile(*I,"") == false)
-        return _error->Error("Problem with SelectFile");
-        
-      if (Gen.MergeList(Parser) == false)
-        return _error->Error("Problem with MergeList");
-   }
-
-   Progress.Done();
-   GCache = &Gen.GetCache();
-   Stats(CmdL);
-   
-   return true;
-#endif   
 }
                                                                        /*}}}*/
 // DisplayRecord - Displays the complete record for the package                /*{{{*/
@@ -1321,7 +1266,7 @@ bool Search(CommandLine &CmdL)
         continue;
       pkgCache::VerIterator V = Plcy->GetCandidateVer(P);
       if (V.end() == false)
-        DFList[G->ID].Df = V.DescriptionList().FileList();
+        DFList[G->ID].Df = V.TranslatedDescription().FileList();
 
       if (DFList[G->ID].NameMatch == false)
         continue;
@@ -1334,7 +1279,7 @@ bool Search(CommandLine &CmdL)
            continue;
 
         unsigned long id = Prv.OwnerPkg().Group()->ID;
-        DFList[id].Df = V.DescriptionList().FileList();
+        DFList[id].Df = V.TranslatedDescription().FileList();
         DFList[id].NameMatch = true;
       }
    }
@@ -1383,9 +1328,8 @@ bool Search(CommandLine &CmdL)
        return _error->Error("Write to stdout failed");
    return true;
 }
-
-
-/* show automatically installed packages (sorted) */
+                                                                       /*}}}*/
+/* ShowAuto - show automatically installed packages (sorted)           {{{*/
 bool ShowAuto(CommandLine &CmdL)
 {
    pkgCacheFile CacheFile;
@@ -1406,6 +1350,7 @@ bool ShowAuto(CommandLine &CmdL)
     for (vector<string>::iterator I = packages.begin(); I != packages.end(); I++)
             cout << *I << "\n";
 
+   _error->Notice(_("This command is deprecated. Please use 'apt-mark showauto' instead."));
    return true;
 }
                                                                        /*}}}*/
@@ -1571,7 +1516,6 @@ bool Policy(CommandLine &CmdL)
       return true;
    }
 
-   string const myArch = _config->Find("APT::Architecture");
    char const * const msgInstalled = _("  Installed: ");
    char const * const msgCandidate = _("  Candidate: ");
    short const InstalledLessCandidate =
@@ -1584,14 +1528,8 @@ bool Policy(CommandLine &CmdL)
    // Print out detailed information for each package
    APT::CacheSetHelper helper(true, GlobalError::NOTICE);
    APT::PackageSet pkgset = APT::PackageSet::FromCommandLine(CacheFile, CmdL.FileList + 1, helper);
-   for (APT::PackageSet::const_iterator I = pkgset.begin(); I != pkgset.end(); ++I)
+   for (APT::PackageSet::const_iterator Pkg = pkgset.begin(); Pkg != pkgset.end(); ++Pkg)
    {
-      pkgCache::PkgIterator Pkg = I.Group().FindPkg("any");
-
-      for (; Pkg.end() != true; Pkg = I.Group().NextPkg(Pkg)) {
-      if (strcmp(Pkg.Arch(),"all") == 0)
-        continue;
-
       cout << Pkg.FullName(true) << ":" << endl;
 
       // Installed version
@@ -1640,7 +1578,6 @@ bool Policy(CommandLine &CmdL)
                   Indx->Describe(true).c_str());
         }
       }
-      }
    }
    
    return true;
@@ -1664,10 +1601,11 @@ bool Madison(CommandLine &CmdL)
       _error->Discard();
 
    APT::CacheSetHelper helper(true, GlobalError::NOTICE);
-   APT::PackageSet pkgset = APT::PackageSet::FromCommandLine(CacheFile, CmdL.FileList + 1, helper);
-   for (APT::PackageSet::const_iterator Pkg = pkgset.begin(); Pkg != pkgset.end(); ++Pkg)
+   for (const char **I = CmdL.FileList + 1; *I != 0; I++)
    {
-      if (Pkg.end() == false)
+      _error->PushToStack();
+      APT::PackageSet pkgset = APT::PackageSet::FromString(CacheFile, *I, helper);
+      for (APT::PackageSet::const_iterator Pkg = pkgset.begin(); Pkg != pkgset.end(); ++Pkg)
       {
          for (pkgCache::VerIterator V = Pkg.VersionList(); V.end() == false; V++)
          {
@@ -1698,16 +1636,21 @@ bool Madison(CommandLine &CmdL)
          }
       }
 
-      
       SrcRecs.Restart();
       pkgSrcRecords::Parser *SrcParser;
-      while ((SrcParser = SrcRecs.Find(Pkg.Name(),false)) != 0)
+      bool foundSomething = false;
+      while ((SrcParser = SrcRecs.Find(*I, false)) != 0)
       {
+         foundSomething = true;
          // Maybe support Release info here too eventually
          cout << setw(10) << SrcParser->Package() << " | "
               << setw(10) << SrcParser->Version() << " | "
               << SrcParser->Index().Describe(true) << endl;
       }
+      if (foundSomething == true)
+        _error->RevertToStack();
+      else
+        _error->MergeWithStack();
    }
 
    return true;
@@ -1737,15 +1680,13 @@ bool ShowHelp(CommandLine &Cmd)
 
    cout << 
     _("Usage: apt-cache [options] command\n"
-      "       apt-cache [options] add file1 [file2 ...]\n"
       "       apt-cache [options] showpkg pkg1 [pkg2 ...]\n"
       "       apt-cache [options] showsrc pkg1 [pkg2 ...]\n"
       "\n"
-      "apt-cache is a low-level tool used to manipulate APT's binary\n"
-      "cache files, and query information from them\n"
+      "apt-cache is a low-level tool used to query information\n"
+      "from APT's binary cache files\n"
       "\n"
       "Commands:\n"
-      "   add - Add a package file to the source cache\n"
       "   gencaches - Build both the package and source cache\n"
       "   showpkg - Show some general information for a single package\n"
       "   showsrc - Show source records\n"
@@ -1755,7 +1696,6 @@ bool ShowHelp(CommandLine &Cmd)
       "   unmet - Show unmet dependencies\n"
       "   search - Search the package list for a regex pattern\n"
       "   show - Show a readable record for the package\n"
-      "   showauto - Display a list of automatically installed packages\n"
       "   depends - Show raw dependency information for a package\n"
       "   rdepends - Show reverse dependency information for a package\n"
       "   pkgnames - List the names of all packages in the system\n"
@@ -1775,15 +1715,6 @@ bool ShowHelp(CommandLine &Cmd)
    return true;
 }
                                                                        /*}}}*/
-// CacheInitialize - Initialize things for apt-cache                   /*{{{*/
-// ---------------------------------------------------------------------
-/* */
-void CacheInitialize()
-{
-   _config->Set("quiet",0);
-   _config->Set("help",false);
-}
-                                                                       /*}}}*/
 int main(int argc,const char *argv[])                                  /*{{{*/
 {
    CommandLine::Args Args[] = {
@@ -1814,7 +1745,6 @@ int main(int argc,const char *argv[])                                     /*{{{*/
       {0,"enhances","APT::Cache::ShowEnhances",0},
       {0,0,0,0}};
    CommandLine::Dispatch CmdsA[] = {{"help",&ShowHelp},
-                                    {"add",&DoAdd},
                                     {"gencaches",&GenCaches},
                                     {"showsrc",&ShowSrcPackage},
                                     {0,0}};
@@ -1835,8 +1765,6 @@ int main(int argc,const char *argv[])                                     /*{{{*/
                                     {"madison",&Madison},
                                     {0,0}};
 
-   CacheInitialize();
-
    // Set up gettext support
    setlocale(LC_ALL,"");
    textdomain(PACKAGE);