From a3cdcd275c5bcb63bf459b1fa031513ae8662ffa Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Thu, 1 Sep 2016 15:29:00 +0300 Subject: Make ?sys: to change preference to system --- bpkg/package | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'bpkg/package') diff --git a/bpkg/package b/bpkg/package index f70a198..6f1d955 100644 --- a/bpkg/package +++ b/bpkg/package @@ -384,6 +384,31 @@ namespace bpkg return system_version_ ? &*system_version_ : nullptr; } + // As above but also return an indication if the version information is + // authoritative. + // + pair + system_version_authoritative () const + { + const system_package* sp (system_repository.find (id.name)); + + if (!system_version_) + { + if (sp != nullptr) + { + // Only cache if it is authoritative. + // + if (sp->authoritative) + system_version_ = sp->version; + else + return make_pair (&sp->version, false); + } + } + + return make_pair (system_version_ ? &*system_version_ : nullptr, + sp != nullptr ? sp->authoritative : false); + } + // Database mapping. // #pragma db member(id) id column("") -- cgit v1.1