diff options
author | Chantry Xavier <shiningxc@gmail.com> | 2008-05-10 18:47:42 +0200 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2008-05-13 15:49:02 -0500 |
commit | f43805d875ad5c672afbbfff48bded2087204773 (patch) | |
tree | 6cfc9e8ea40230aa1ec3349361f6f1f1fad63f37 /lib/libalpm/db.c | |
parent | 8248b4bfb1abe175d73e20106a18172da5296836 (diff) | |
download | 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 'lib/libalpm/db.c')
-rw-r--r-- | lib/libalpm/db.c | 67 |
1 files changed, 4 insertions, 63 deletions
diff --git a/lib/libalpm/db.c b/lib/libalpm/db.c index 139e304e..df16c3c9 100644 --- a/lib/libalpm/db.c +++ b/lib/libalpm/db.c @@ -266,23 +266,6 @@ alpm_list_t SYMEXPORT *alpm_db_getpkgcache(pmdb_t *db) return(_alpm_db_get_pkgcache(db)); } -/** Get the list of packages that a package provides - * @param db pointer to the package database to get the package from - * @param name name of the package - * @return the list of packages on success, NULL on error - */ -alpm_list_t SYMEXPORT *alpm_db_whatprovides(pmdb_t *db, const char *name) -{ - ALPM_LOG_FUNC; - - /* Sanity checks */ - ASSERT(handle != NULL, return(NULL)); - ASSERT(db != NULL, return(NULL)); - ASSERT(name != NULL && strlen(name) != 0, return(NULL)); - - return(_alpm_db_whatprovides(db, name)); -} - /** Get a group entry from a package database * @param db pointer to the package database to get the group from * @param name of the group @@ -364,10 +347,11 @@ void _alpm_db_free(pmdb_t *db) return; } -int _alpm_db_cmp(const void *db1, const void *db2) +int _alpm_db_cmp(const void *d1, const void *d2) { - ALPM_LOG_FUNC; - return(strcmp(((pmdb_t *)db1)->treename, ((pmdb_t *)db2)->treename)); + pmdb_t *db1 = (pmdb_t *)db1; + pmdb_t *db2 = (pmdb_t *)db2; + return(strcmp(db1->treename, db2->treename)); } alpm_list_t *_alpm_db_search(pmdb_t *db, const alpm_list_t *needles) @@ -533,47 +517,4 @@ pmdb_t *_alpm_db_register_sync(const char *treename) return(db); } -/* helper function for alpm_list_find and _alpm_db_whatprovides - * - * @return "provision.name" == needle (as string) - */ -int _alpm_prov_cmp(const void *provision, const void *needle) -{ - char *tmpptr; - char *provname = strdup(provision); - int retval = 0; - tmpptr = strchr(provname, '='); - - if(tmpptr != NULL) { /* provision-version */ - *tmpptr='\0'; - } - retval = strcmp(provname, needle); - free(provname); - return(retval); -} - -/* return a alpm_list_t of packages in "db" that provide "package" - */ -alpm_list_t *_alpm_db_whatprovides(pmdb_t *db, const char *package) -{ - alpm_list_t *pkgs = NULL; - alpm_list_t *lp; - - ALPM_LOG_FUNC; - - if(db == NULL || package == NULL || strlen(package) == 0) { - return(NULL); - } - - for(lp = _alpm_db_get_pkgcache(db); lp; lp = lp->next) { - pmpkg_t *info = lp->data; - - if(alpm_list_find(alpm_pkg_get_provides(info), (const void *)package, _alpm_prov_cmp)) { - pkgs = alpm_list_add(pkgs, info); - } - } - - return(pkgs); -} - /* vim: set ts=2 sw=2 noet: */ |