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

Add a parameter ConsiderFiles to GetPriority(VerIterator)

This allows us to exclude files from being considered for the
priority, so it will return only specific-version matches.
Julian Andres Klode лет назад: 11
Родитель
Сommit
10b39ae62d
2 измененных файлов с 4 добавлено и 3 удалено
  1. 3 2
      apt-pkg/policy.cc
  2. 1 1
      apt-pkg/policy.h

+ 3 - 2
apt-pkg/policy.cc

@@ -368,11 +368,12 @@ APT_PURE signed short pkgPolicy::GetPriority(pkgCache::PkgIterator const &Pkg)
       return Pins[Pkg->ID].Priority;
    return 0;
 }
-APT_PURE signed short pkgPolicy::GetPriority(pkgCache::VerIterator const &Ver)
+APT_PURE signed short pkgPolicy::GetPriority(pkgCache::VerIterator const &Ver, bool considerFiles)
 {
    if (VerPins[Ver->ID].Type != pkgVersionMatch::None)
       return VerPins[Ver->ID].Priority;
-
+   if (!considerFiles)
+      return 0;
 
    int priority = std::numeric_limits<int>::min();
    for (pkgCache::VerFileIterator file = Ver.FileList(); file.end() == false; file++)

+ 1 - 1
apt-pkg/policy.h

@@ -80,7 +80,7 @@ class pkgPolicy : public pkgDepCache::Policy
    // Things for the cache interface.
    virtual pkgCache::VerIterator GetCandidateVer(pkgCache::PkgIterator const &Pkg) APT_OVERRIDE;
    virtual signed short GetPriority(pkgCache::PkgIterator const &Pkg) APT_OVERRIDE;
-   virtual signed short GetPriority(pkgCache::VerIterator const &Pkg);
+   virtual signed short GetPriority(pkgCache::VerIterator const &Pkg, bool ConsiderFiles = true);
    virtual signed short GetPriority(pkgCache::PkgFileIterator const &File) APT_OVERRIDE;
 
    bool InitDefaults();