Просмотр исходного кода

apt-cache search searchs provide names too now. Closes:...
Author: jgg
Date: 2001-07-02 00:10:32 GMT
apt-cache search searchs provide names too now. Closes: #98695

Arch Librarian лет назад: 22
Родитель
Сommit
c29652b05e
1 измененных файлов с 21 добавлено и 5 удалено
  1. 21 5
      cmdline/apt-cache.cc

+ 21 - 5
cmdline/apt-cache.cc

@@ -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