diff options
author | 2011-03-15 17:06:51 +0000 | |
---|---|---|
committer | 2011-03-15 17:06:51 +0000 | |
commit | 81a164c94912d9f650ff352110ee47839de8edea (patch) | |
tree | b621ef1d8679029302af0d34e0ef527e3e86da0e /src/clients/cave/resolve_common.cc | |
parent | 96f7b4bd29618d66f346fc18e38c3c53ecfe6210 (diff) | |
download | paludis-81a164c94912d9f650ff352110ee47839de8edea.tar.gz paludis-81a164c94912d9f650ff352110ee47839de8edea.tar.xz |
Common blocker splitting up code
Diffstat (limited to 'src/clients/cave/resolve_common.cc')
-rw-r--r-- | src/clients/cave/resolve_common.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/clients/cave/resolve_common.cc b/src/clients/cave/resolve_common.cc index df6193dd4..98d193ce5 100644 --- a/src/clients/cave/resolve_common.cc +++ b/src/clients/cave/resolve_common.cc @@ -106,6 +106,7 @@ #include <paludis/filter.hh> #include <paludis/generator.hh> #include <paludis/selection.hh> +#include <paludis/elike_blocker.hh> #include <algorithm> #include <iostream> @@ -147,19 +148,20 @@ namespace std::string p_suggesion(p->first); try { + auto b(split_elike_blocker(p->first)); - if ('!' == p->first.at(0)) + if (ebk_no_block != std::get<0>(b)) { - p_suggesion.erase(0, 1); + p_suggesion = std::get<2>(b); seen_packages = true; - PackageDepSpec s(parse_spec_with_nice_error(p->first.substr(1), env.get(), { }, filter::All())); + PackageDepSpec s(parse_spec_with_nice_error(std::get<2>(b), env.get(), { }, filter::All())); BlockDepSpec bs(make_uninstall_blocker(s)); result->push_back(stringify(bs)); resolver->add_target(bs, p->second); } else { - PackageDepSpec s(parse_spec_with_nice_error(p->first, env.get(), { updso_throw_if_set }, filter::All())); + PackageDepSpec s(parse_spec_with_nice_error(std::get<2>(b), env.get(), { updso_throw_if_set }, filter::All())); result->push_back(stringify(s)); resolver->add_target(s, p->second); seen_packages = true; |