Sort and avoid duplicates in -Sii output

Signed-off-by: Allan McRae <allan@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Allan McRae 2010-03-24 15:59:04 +10:00 committed by Dan McGee
parent 526806e7ac
commit 98ee520907

View file

@ -565,7 +565,9 @@ static void find_requiredby(pmpkg_t *pkg, pmdb_t *db, alpm_list_t **reqs)
pmpkg_t *cachepkg = i->data; pmpkg_t *cachepkg = i->data;
if(_alpm_dep_edge(cachepkg, pkg)) { if(_alpm_dep_edge(cachepkg, pkg)) {
const char *cachepkgname = cachepkg->name; const char *cachepkgname = cachepkg->name;
*reqs = alpm_list_add(*reqs, strdup(cachepkgname)); if(alpm_list_find_str(*reqs, cachepkgname) == 0) {
*reqs = alpm_list_add(*reqs, strdup(cachepkgname));
}
} }
} }
} }
@ -595,6 +597,7 @@ alpm_list_t SYMEXPORT *alpm_pkg_compute_requiredby(pmpkg_t *pkg)
for(i = handle->dbs_sync; i; i = i->next) { for(i = handle->dbs_sync; i; i = i->next) {
db = i->data; db = i->data;
find_requiredby(pkg, db, &reqs); find_requiredby(pkg, db, &reqs);
reqs = alpm_list_msort(reqs, alpm_list_count(reqs), _alpm_str_cmp);
} }
} }
} }