summaryrefslogtreecommitdiffstats
path: root/lib/libalpm/db.c
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 /lib/libalpm/db.c
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 'lib/libalpm/db.c')
-rw-r--r--lib/libalpm/db.c67
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: */