From 5f9386e54360c403772e2a876d48d31dde9d5097 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Mon, 10 Aug 2015 12:18:28 +0200 Subject: 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. --- apt-pkg/policy.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'apt-pkg/policy.cc') diff --git a/apt-pkg/policy.cc b/apt-pkg/policy.cc index 370819e0b..2d1f2a5d4 100644 --- a/apt-pkg/policy.cc +++ b/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) 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) { -- cgit v1.2.3