Explorar o código

policy: Return highest file pin if version pin == 0 in GetPriority()

This makes sure that we display a useful value instead of 0 for
versions that are pinned due to package files.
Julian Andres Klode %!s(int64=11) %!d(string=hai) anos
pai
achega
5f9386e543
Modificáronse 1 ficheiros con 10 adicións e 1 borrados
  1. 10 1
      apt-pkg/policy.cc

+ 10 - 1
apt-pkg/policy.cc

@@ -336,7 +336,16 @@ APT_PURE signed short pkgPolicy::GetPriority(pkgCache::VerIterator const &Ver)
 {
 {
    if (VerPins[Ver->ID].Type != pkgVersionMatch::None)
    if (VerPins[Ver->ID].Type != pkgVersionMatch::None)
       return VerPins[Ver->ID].Priority;
       return VerPins[Ver->ID].Priority;
-   return 0;
+
+
+   int priority = INT_MIN;
+   for (pkgCache::VerFileIterator file = Ver.FileList(); file.end() == false; file++)
+   {
+	 if (GetPriority(file.File()) > priority)
+	    priority = GetPriority(file.File());
+   }
+
+   return priority == INT_MIN ? 0 : priority;
 }
 }
 APT_PURE signed short pkgPolicy::GetPriority(pkgCache::PkgFileIterator const &File)
 APT_PURE signed short pkgPolicy::GetPriority(pkgCache::PkgFileIterator const &File)
 {
 {