On Wed, Nov 14, 2007 at 01:18:28PM +0100, Nagy Gabor wrote:
Subject: [PATCH] alpm_list_add == alpm_list_add_last I: recursedeps clean-up It's time to _define_ that alpm_list_add(list, foo) adds 'foo' to the end of 'list' and returns with 'list', because: 1. list is a list, not a set 2. sortbydeps _needs_ an alpm_list_add _definition_ to work properly
As a first step, I used this definition in recursedeps
There are several other places where this assumption is made, so I guess it's alright.. The last one I saw is in the groups handling of the -S operation, in src/pacman/sync.c , lines 500-520. So shouldn't it be commented in alpm_list.c itself?
diff --git a/lib/libalpm/deps.c b/lib/libalpm/deps.c index cefffe5..5040fbf 100644 --- a/lib/libalpm/deps.c +++ b/lib/libalpm/deps.c @@ -596,12 +596,13 @@ static int can_remove_package(pmdb_t *db, pmpkg_t *pkg, alpm_list_t *targets, * @brief Adds unneeded dependencies to an existing list of packages. * By unneeded, we mean dependencies that are only required by packages in the * target list, so they can be safely removed. + * If the input list was topo sorted, the output list will be topo sorted too * * @param db package database to do dependency tracing in * @param *targs pointer to a list of packages * @param include_explicit if 0, explicitly installed packages are not included */
And if it isn't topo sorted, then what happens? Shouldn't the comment rather be something like : The targets list must be topo sorted, and will stay topo sorted.