From 51b35a2d4305a2f302be62a370c4b00b2a215279 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Sat, 5 May 2018 21:37:17 +0300 Subject: Add support for --patch option --- bpkg/package.cxx | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'bpkg/package.cxx') diff --git a/bpkg/package.cxx b/bpkg/package.cxx index 4880623..ccaf6ba 100644 --- a/bpkg/package.cxx +++ b/bpkg/package.cxx @@ -194,11 +194,9 @@ namespace bpkg { for (const shared_ptr r: rps) { - shared_ptr ar (filter (r, ap, prereq)); - - if (ar != nullptr) + if (shared_ptr rf = filter (r, ap, prereq)) { - aps.emplace_back (move (ap), move (ar)); + aps.emplace_back (move (ap), move (rf)); break; } } @@ -207,6 +205,26 @@ namespace bpkg return aps; } + pair, shared_ptr> + filter_one (const vector>& rps, + odb::result&& apr, + bool prereq) + { + using result = pair, + shared_ptr>; + + for (shared_ptr ap: pointer_result (apr)) + { + for (const shared_ptr r: rps) + { + if (shared_ptr rf = filter (r, ap, prereq)) + return result (move (ap), move (rf)); + } + } + + return result (); + } + void check_any_available (const dir_path& c, transaction& t, -- cgit v1.1