]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/pkgcache.cc
merged from the mvo branch
[apt.git] / apt-pkg / pkgcache.cc
index 7014aee228bc2089033745d84e7404e16cfdb024..c6326abf12fb2d98b67d4e73a3b5433668e2c52d 100644 (file)
@@ -317,22 +317,22 @@ pkgCache::PkgIterator pkgCache::GrpIterator::FindPkg(string Arch) const {
        if (unlikely(IsGood() == false || S->FirstPackage == 0))
                return PkgIterator(*Owner, 0);
 
+       /* If we accept any package we simply return the "first"
+          package in this group (the last one added). */
+       if (Arch == "any")
+               return PkgIterator(*Owner, Owner->PkgP + S->FirstPackage);
+
        static string const myArch = _config->Find("APT::Architecture");
        /* Most of the time the package for our native architecture is
           the one we add at first to the cache, but this would be the
           last one we check, so we do it now. */
-       if (Arch == "native" || Arch == myArch) {
+       if (Arch == "native" || Arch == myArch || Arch == "all") {
                Arch = myArch;
                pkgCache::Package *Pkg = Owner->PkgP + S->LastPackage;
                if (stringcasecmp(Arch, Owner->StrP + Pkg->Arch) == 0)
                        return PkgIterator(*Owner, Pkg);
        }
 
-       /* If we accept any package we simply return the "first"
-          package in this group (the last one added). */
-       if (Arch == "any")
-               return PkgIterator(*Owner, Owner->PkgP + S->FirstPackage);
-
        /* Iterate over the list to find the matching arch
           unfortunately this list includes "package noise"
           (= different packages with same calculated hash),