aboutsummaryrefslogtreecommitdiff
path: root/src/clients/cave/resolve_common.cc
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2011-04-18 20:10:45 +0100
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2011-04-18 20:10:45 +0100
commitbb06c0f5ac5e7fe01e5ab0a957bc310179eb5bab (patch)
treec929cf1b4e92d8d0ec0b63045dd260700f170ed9 /src/clients/cave/resolve_common.cc
parent537036d40b9142858d2cf863a5d143498e927640 (diff)
downloadpaludis-bb06c0f5ac5e7fe01e5ab0a957bc310179eb5bab.tar.gz
paludis-bb06c0f5ac5e7fe01e5ab0a957bc310179eb5bab.tar.xz
Don't hold versions, keys, choices in a sequence
Diffstat (limited to 'src/clients/cave/resolve_common.cc')
-rw-r--r--src/clients/cave/resolve_common.cc19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/clients/cave/resolve_common.cc b/src/clients/cave/resolve_common.cc
index fde788486..e9356af87 100644
--- a/src/clients/cave/resolve_common.cc
+++ b/src/clients/cave/resolve_common.cc
@@ -106,6 +106,7 @@
#include <paludis/generator.hh>
#include <paludis/selection.hh>
#include <paludis/elike_blocker.hh>
+#include <paludis/package_dep_spec_properties.hh>
#include <algorithm>
#include <iostream>
@@ -1124,7 +1125,23 @@ paludis::cave::resolve_common(
if ('!' != t->at(0) && std::string::npos != t->find('/'))
{
PackageDepSpec ts(parse_spec_with_nice_error(*t, env.get(), { }, filter::All()));
- if (ts.all_version_requirements() && ! ts.all_version_requirements()->empty())
+
+ if (package_dep_spec_has_properties(ts, make_named_values<PackageDepSpecProperties>(
+ n::has_any_slot_requirement() = indeterminate,
+ n::has_category_name_part() = indeterminate,
+ n::has_choice_requirements() = indeterminate,
+ n::has_exact_slot_requirement() = indeterminate,
+ n::has_from_repository() = indeterminate,
+ n::has_in_repository() = indeterminate,
+ n::has_installable_to_path() = indeterminate,
+ n::has_installable_to_repository() = indeterminate,
+ n::has_installed_at_path() = indeterminate,
+ n::has_key_requirements() = indeterminate,
+ n::has_package() = indeterminate,
+ n::has_package_name_part() = indeterminate,
+ n::has_tag() = indeterminate,
+ n::has_version_requirements() = true
+ )))
{
confirm_helper.add_permit_downgrade_spec(ts);
confirm_helper.add_permit_old_version_spec(ts);