summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChantry Xavier <shiningxc@gmail.com>2008-05-10 18:47:42 +0200
committerDan McGee <dan@archlinux.org>2008-05-13 22:49:02 +0200
commitf43805d875ad5c672afbbfff48bded2087204773 (patch)
tree6cfc9e8ea40230aa1ec3349361f6f1f1fad63f37 /src
parent8248b4bfb1abe175d73e20106a18172da5296836 (diff)
downloadpacman-f43805d875ad5c672afbbfff48bded2087204773.tar.gz
pacman-f43805d875ad5c672afbbfff48bded2087204773.tar.xz
Cleanup usages of alpm_list_find and alpm_list_remove.
* remove obsolete and unused *_cmp helper functions like deppkg_cmp and _alpm_grp_cmp * new alpm_list_remove_str function, used 6 times in handle.c * remove _alpm_prov_cmp / _alpm_db_whatprovides and replace them by a more general alpm_find_pkg_satisfiers with a cleaner implementation. before: alpm_db_whatprovides(db, targ) after: alpm_find_pkg_satisfiers(alpm_db_getpkgcache(db), targ) * remove satisfycmp and replace alpm_list_find + satisfycmp usage by _alpm_find_dep_satisfiers. before : alpm_list_find(_alpm_db_get_pkgcache(db), dep, satisfycmp) after : _alpm_find_dep_satisfiers(_alpm_db_get_pkgcache(db), dep) * remove _alpm_pkgname_pkg_cmp, which was used with alpm_list_remove, and use _alpm_pkg_find + alpm_list_remove with _alpm_pkg_cmp instead. This commit actually get rids of all complicated and asymmetric _cmp functions. I first thought these functions were worth it, be caused it allowed us to reuse list_find and list_remove. But this was at the detriment of the clarity and also the ease of use of these functions, dangerous because of their asymmetricity. Signed-off-by: Chantry Xavier <shiningxc@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'src')
-rw-r--r--src/pacman/sync.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/pacman/sync.c b/src/pacman/sync.c
index c3c01c92..78235c54 100644
--- a/src/pacman/sync.c
+++ b/src/pacman/sync.c
@@ -641,7 +641,9 @@ static int sync_trans(alpm_list_t *targets)
alpm_list_t *prov = NULL;
for(j = sync_dbs; j; j = alpm_list_next(j)) {
pmdb_t *db = alpm_list_getdata(j);
- prov = alpm_list_join(prov, alpm_db_whatprovides(db, targ));
+ alpm_list_t *dblist = alpm_db_getpkgcache(db);
+ alpm_list_t *satisfiers = alpm_find_pkg_satisfiers(dblist, targ);
+ prov = alpm_list_join(prov, satisfiers);
}
if(prov != NULL) {
if(alpm_list_count(prov) == 1) {