aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2010-02-05 16:25:56 +0000
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2010-02-05 16:25:56 +0000
commit9c0d06e0d4012eca97da985d0d7b60f00495dc4e (patch)
treedc5333527ca52658c58032f8f3fe5b6489819355
parent09b9f56a873618a7e7293a84363befeca431ed4a (diff)
downloadpaludis-9c0d06e0d4012eca97da985d0d7b60f00495dc4e.tar.gz
paludis-9c0d06e0d4012eca97da985d0d7b60f00495dc4e.tar.xz
Mark successes for uninstalls
-rw-r--r--src/clients/cave/cmd_execute_resolution.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/clients/cave/cmd_execute_resolution.cc b/src/clients/cave/cmd_execute_resolution.cc
index a6cc98a..85f913a 100644
--- a/src/clients/cave/cmd_execute_resolution.cc
+++ b/src/clients/cave/cmd_execute_resolution.cc
@@ -561,6 +561,14 @@ namespace
else
{
std::tr1::shared_ptr<JobSucceededState> succeeded_state(new JobSucceededState(state->job()));
+
+ /* uninstalls don't mark success themselves, to avoid confusing
+ * things when called as part of an install. maybe we should
+ * mark success individually rather than all together if we're
+ * uninstalling multiple things. */
+ std::for_each(output_managers.begin(), output_managers.end(),
+ std::tr1::bind(&OutputManager::succeeded, std::tr1::placeholders::_1));
+
std::for_each(output_managers.begin(), output_managers.end(),
std::tr1::bind(&JobSucceededState::add_output_manager, succeeded_state, std::tr1::placeholders::_1));
state = succeeded_state;