summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Nicholson <dbn.lists@gmail.com>2008-05-29 09:08:40 -0700
committerDan Nicholson <dbn.lists@gmail.com>2008-05-29 09:08:40 -0700
commitf0640937d2b29aec1d8b35102fbd1155b37f264c (patch)
treead40fd35e91f84e1fc7c4d51ecab4a1119bd64bb
parentd9aaecb095a169d619c71ea337bed892ca8449dc (diff)
Actually remove the requested services
Fixed a bug where the removal process didn't actually include the requested service in the set to be removed.
-rw-r--r--lib/rdep.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/rdep.c b/lib/rdep.c
index 2d328df..6ef6ce0 100644
--- a/lib/rdep.c
+++ b/lib/rdep.c
@@ -138,15 +138,23 @@ initd_list_t *initd_remove_recurse_deps(initd_list_t *pool,
goto err;
}
+ /* Append the rmlist to the all list. Since they are marked for
+ * removal, they won't be reinstalled. */
+ for (ip = rmlist->first; ip; ip = ip->next) {
+ /* Don't duplicate */
+ if (!initd_list_exists_name(all, ip->name))
+ initd_list_add(all, ip);
+ }
+
/* If we got here, we're successful */
goto out;
err:
initd_list_free(all);
all = NULL;
+ initd_list_free(rmlist);
out:
initd_list_free(chain);
dep_free(all_active);
- initd_list_free(rmlist);
return all;
}