apt-cache search searchs provide names too now. Closes:...
authorArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:58:31 +0000 (16:58 +0000)
committerArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:58:31 +0000 (16:58 +0000)
Author: jgg
Date: 2001-07-02 00:10:32 GMT
apt-cache search searchs provide names too now. Closes: #98695

cmdline/apt-cache.cc

index a11594f..3f7811c 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: apt-cache.cc,v 1.51 2001/06/10 02:03:33 jgg Exp $
+// $Id: apt-cache.cc,v 1.52 2001/07/02 00:10:32 jgg Exp $
 /* ######################################################################
    
    apt-cache - Manages the cache files
@@ -945,18 +945,34 @@ bool Search(CommandLine &CmdL)
         else
            VFList[P->ID].NameMatch = false;
       }
-      
+        
       // Doing names only, drop any that dont match..
       if (NamesOnly == true && VFList[P->ID].NameMatch == false)
         continue;
         
       // Find the proper version to use. 
       pkgCache::VerIterator V = Plcy.GetCandidateVer(P);
-      if (V.end() == true)
+      if (V.end() == false)
+        VFList[P->ID].Vf = V.FileList();
+   }
+      
+   // Include all the packages that provide matching names too
+   for (pkgCache::PkgIterator P = Cache.PkgBegin(); P.end() == false; P++)
+   {
+      if (VFList[P->ID].NameMatch == false)
         continue;
-      VFList[P->ID].Vf = V.FileList();
+
+      for (pkgCache::PrvIterator Prv = P.ProvidesList() ; Prv.end() == false; Prv++)
+      {
+        pkgCache::VerIterator V = Plcy.GetCandidateVer(Prv.OwnerPkg());
+        if (V.end() == false)
+        {
+           VFList[Prv.OwnerPkg()->ID].Vf = V.FileList();
+           VFList[Prv.OwnerPkg()->ID].NameMatch = true;
+        }
+      }
    }
-   
+
    LocalitySort(&VFList->Vf,Cache.HeaderP->PackageCount,sizeof(*VFList));
 
    // Iterate over all the version records and check them