diff options
Diffstat (limited to 'src/clients/cave/resolve_common.cc')
-rw-r--r-- | src/clients/cave/resolve_common.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/clients/cave/resolve_common.cc b/src/clients/cave/resolve_common.cc index 3ddbddb33..00e4c1ce1 100644 --- a/src/clients/cave/resolve_common.cc +++ b/src/clients/cave/resolve_common.cc @@ -964,10 +964,16 @@ paludis::cave::resolve_common( i_end(resolution_options.a_favour.end_args()) ; i != i_end ; ++i) prefer_or_avoid_helper.add_prefer_name(disambiguate_if_necessary(env.get(), *i)); - for (args::StringSetArg::ConstIterator i(resolution_options.a_avoid.begin_args()), - i_end(resolution_options.a_avoid.end_args()) ; + for (args::StringSetArg::ConstIterator i(resolution_options.a_favour_matching.begin_args()), + i_end(resolution_options.a_favour_matching.end_args()) ; i != i_end ; ++i) - prefer_or_avoid_helper.add_avoid_name(disambiguate_if_necessary(env.get(), *i)); + prefer_or_avoid_helper.add_prefer_matching((*env)[selection::AllVersionsUnsorted(generator::Matches( + parse_spec_with_nice_error(*i, env.get(), { }, filter::All()), make_null_shared_ptr(), { }))]); + for (args::StringSetArg::ConstIterator i(resolution_options.a_avoid_matching.begin_args()), + i_end(resolution_options.a_avoid_matching.end_args()) ; + i != i_end ; ++i) + prefer_or_avoid_helper.add_avoid_matching((*env)[selection::AllVersionsUnsorted(generator::Matches( + parse_spec_with_nice_error(*i, env.get(), { }, filter::All()), make_null_shared_ptr(), { }))]); RemoveIfDependentHelper remove_if_dependent_helper(env.get()); for (args::StringSetArg::ConstIterator i(resolution_options.a_remove_if_dependent.begin_args()), |