don't double-count seeks in FileFd::Skip for bzip/xz
[ntk/apt.git] / apt-pkg / clean.cc
index 9c167ea..0ee3b76 100644 (file)
 #include <apt-pkg/configuration.h>
 #include <apt-pkg/aptconfiguration.h>
 #include <apt-pkg/fileutl.h>
+#include <apt-pkg/pkgcache.h>
+#include <apt-pkg/cacheiterators.h>
 
+#include <string>
+#include <string.h>
 #include <dirent.h>
 #include <sys/stat.h>
 #include <unistd.h>
@@ -81,12 +85,13 @@ bool pkgArchiveCleaner::Go(std::string Dir,pkgCache &Cache)
       if (*I != '.')
         continue;
       std::string const Arch = DeQuoteString(std::string(Start,I-Start));
-      
+
+      // ignore packages of unconfigured architectures
       if (APT::Configuration::checkArchitecture(Arch) == false)
         continue;
       
       // Lookup the package
-      pkgCache::PkgIterator P = Cache.FindPkg(Pkg);
+      pkgCache::PkgIterator P = Cache.FindPkg(Pkg, Arch);
       if (P.end() != true)
       {
         pkgCache::VerIterator V = P.VersionList();
@@ -104,7 +109,7 @@ bool pkgArchiveCleaner::Go(std::string Dir,pkgCache &Cache)
               break;
            }
            
-           // See if this verison matches the file
+           // See if this version matches the file
            if (IsFetchable == true && Ver == V.VerStr())
               break;
         }