aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2006-04-15 23:44:59 +0000
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2006-04-15 23:44:59 +0000
commitb1ee21df5734924cefee340ab39c4e52490a4758 (patch)
tree9e428856945032d18ab9ea9c0e97b5d374ba8957
parente075ee710000cd5c0e2c7ea930d18d59eb155f85 (diff)
downloadpaludis-b1ee21df5734924cefee340ab39c4e52490a4758.tar.gz
paludis-b1ee21df5734924cefee340ab39c4e52490a4758.tar.xz
Pass along EXPANDed vars that're in use.conf but not IUSE or profile
-rw-r--r--paludis/portage_repository.cc16
1 files changed, 11 insertions, 5 deletions
diff --git a/paludis/portage_repository.cc b/paludis/portage_repository.cc
index 2abf377..6f0f950 100644
--- a/paludis/portage_repository.cc
+++ b/paludis/portage_repository.cc
@@ -1220,17 +1220,23 @@ PortageRepository::do_install(const QualifiedPackageName & q, const VersionSpec
for (UseFlagSet::const_iterator x(_imp->expand_list.begin()),
x_end(_imp->expand_list.end()) ; x != x_end ; ++x)
{
+ std::string lower_x;
+ std::transform(x->data().begin(), x->data().end(), std::back_inserter(lower_x),
+ &::tolower);
+
static Tokeniser<delim_kind::AnyOfTag, delim_mode::DelimiterTag> tokeniser(" \t\n");
std::list<std::string> uses;
tokeniser.tokenise(_imp->profile_env[stringify(*x)], std::back_inserter(uses));
+
for (std::list<std::string>::const_iterator u(uses.begin()), u_end(uses.end()) ;
u != u_end ; ++u)
- {
- std::string lower_x;
- std::transform(x->data().begin(), x->data().end(), std::back_inserter(lower_x),
- &::tolower);
use += lower_x + "_" + *u + " ";
- }
+
+ UseFlagNameCollection::Pointer u(_imp->env->query_enabled_use_matching(
+ lower_x + "_", &e));
+ for (UseFlagNameCollection::Iterator uu(u->begin()), uu_end(u->end()) ;
+ uu != uu_end ; ++uu)
+ use += stringify(*uu) + " ";
}
MakeEnvCommand cmd(make_env_command(