[pacman-dev] [PATCH] Make alpm_pkg_find public
Allan McRae
allan at archlinux.org
Sun Aug 12 07:11:58 EDT 2012
This function is particularly useful, so make it public.
Signed-off-by: Allan McRae <allan at archlinux.org>
---
lib/libalpm/add.c | 2 +-
lib/libalpm/alpm.h | 7 +++++++
lib/libalpm/deps.c | 12 ++++++------
lib/libalpm/package.c | 2 +-
lib/libalpm/package.h | 1 -
lib/libalpm/remove.c | 10 +++++-----
lib/libalpm/sync.c | 20 ++++++++++----------
7 files changed, 30 insertions(+), 24 deletions(-)
diff --git a/lib/libalpm/add.c b/lib/libalpm/add.c
index edddc31..ecdccff 100644
--- a/lib/libalpm/add.c
+++ b/lib/libalpm/add.c
@@ -67,7 +67,7 @@ int SYMEXPORT alpm_add_pkg(alpm_handle_t *handle, alpm_pkg_t *pkg)
_alpm_log(handle, ALPM_LOG_DEBUG, "adding package '%s'\n", pkgname);
- if(_alpm_pkg_find(trans->add, pkgname)) {
+ if(alpm_pkg_find(trans->add, pkgname)) {
RET_ERR(handle, ALPM_ERR_TRANS_DUP_TARGET, -1);
}
diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h
index 5b4eb6d..e3808d3 100644
--- a/lib/libalpm/alpm.h
+++ b/lib/libalpm/alpm.h
@@ -698,6 +698,13 @@ alpm_list_t *alpm_db_search(alpm_db_t *db, const alpm_list_t *needles);
int alpm_pkg_load(alpm_handle_t *handle, const char *filename, int full,
alpm_siglevel_t level, alpm_pkg_t **pkg);
+/** Find a package in a list by name.
+ * @param haystack a list of alpm_pkg_t
+ * @param needle the package name
+ * @return a pointer to the package if found or NULL
+ */
+alpm_pkg_t *alpm_pkg_find(alpm_list_t *haystack, const char *needle);
+
/** Free a package.
* @param pkg package pointer to free
* @return 0 on success, -1 on error (pm_errno is set accordingly)
diff --git a/lib/libalpm/deps.c b/lib/libalpm/deps.c
index 2a06bb0..27656bc 100644
--- a/lib/libalpm/deps.c
+++ b/lib/libalpm/deps.c
@@ -281,7 +281,7 @@ alpm_list_t SYMEXPORT *alpm_checkdeps(alpm_handle_t *handle,
for(i = pkglist; i; i = i->next) {
alpm_pkg_t *pkg = i->data;
- if(_alpm_pkg_find(rem, pkg->name) || _alpm_pkg_find(upgrade, pkg->name)) {
+ if(alpm_pkg_find(rem, pkg->name) || alpm_pkg_find(upgrade, pkg->name)) {
modified = alpm_list_add(modified, pkg);
} else {
dblist = alpm_list_add(dblist, pkg);
@@ -495,7 +495,7 @@ static int can_remove_package(alpm_db_t *db, alpm_pkg_t *pkg,
{
alpm_list_t *i;
- if(_alpm_pkg_find(targets, pkg->name)) {
+ if(alpm_pkg_find(targets, pkg->name)) {
return 0;
}
@@ -517,7 +517,7 @@ static int can_remove_package(alpm_db_t *db, alpm_pkg_t *pkg,
/* see if other packages need it */
for(i = _alpm_db_get_pkgcache(db); i; i = i->next) {
alpm_pkg_t *lpkg = i->data;
- if(_alpm_dep_edge(lpkg, pkg) && !_alpm_pkg_find(targets, lpkg->name)) {
+ if(_alpm_dep_edge(lpkg, pkg) && !alpm_pkg_find(targets, lpkg->name)) {
return 0;
}
}
@@ -591,7 +591,7 @@ static alpm_pkg_t *resolvedep(alpm_handle_t *handle, alpm_depend_t *dep,
for(i = dbs; i; i = i->next) {
alpm_pkg_t *pkg = _alpm_db_get_pkgfromcache(i->data, dep->name);
if(pkg && _alpm_depcmp_literal(pkg, dep)
- && !_alpm_pkg_find(excluding, pkg->name)) {
+ && !alpm_pkg_find(excluding, pkg->name)) {
if(_alpm_pkg_should_ignore(handle, pkg)) {
int install = 0;
if(prompt) {
@@ -616,7 +616,7 @@ static alpm_pkg_t *resolvedep(alpm_handle_t *handle, alpm_depend_t *dep,
/* with hash != hash, we can even skip the strcmp() as we know they can't
* possibly be the same string */
if(pkg->name_hash != dep->name_hash && _alpm_depcmp(pkg, dep)
- && !_alpm_pkg_find(excluding, pkg->name)) {
+ && !alpm_pkg_find(excluding, pkg->name)) {
if(_alpm_pkg_should_ignore(handle, pkg)) {
int install = 0;
if(prompt) {
@@ -730,7 +730,7 @@ int _alpm_resolvedeps(alpm_handle_t *handle, alpm_list_t *localpkgs,
alpm_list_t *deps = NULL;
alpm_list_t *packages_copy;
- if(_alpm_pkg_find(*packages, pkg->name) != NULL) {
+ if(alpm_pkg_find(*packages, pkg->name) != NULL) {
return 0;
}
diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c
index f3e0b7f..853771f 100644
--- a/lib/libalpm/package.c
+++ b/lib/libalpm/package.c
@@ -685,7 +685,7 @@ int _alpm_pkg_cmp(const void *p1, const void *p2)
/* Test for existence of a package in a alpm_list_t*
* of alpm_pkg_t*
*/
-alpm_pkg_t *_alpm_pkg_find(alpm_list_t *haystack, const char *needle)
+alpm_pkg_t SYMEXPORT *alpm_pkg_find(alpm_list_t *haystack, const char *needle)
{
alpm_list_t *lp;
unsigned long needle_hash;
diff --git a/lib/libalpm/package.h b/lib/libalpm/package.h
index 313fe9d..a915bc3 100644
--- a/lib/libalpm/package.h
+++ b/lib/libalpm/package.h
@@ -140,7 +140,6 @@ alpm_pkg_t *_alpm_pkg_load_internal(alpm_handle_t *handle,
int _alpm_pkg_cmp(const void *p1, const void *p2);
int _alpm_pkg_compare_versions(alpm_pkg_t *local_pkg, alpm_pkg_t *pkg);
-alpm_pkg_t *_alpm_pkg_find(alpm_list_t *haystack, const char *needle);
int _alpm_pkg_should_ignore(alpm_handle_t *handle, alpm_pkg_t *pkg);
#endif /* _ALPM_PACKAGE_H */
diff --git a/lib/libalpm/remove.c b/lib/libalpm/remove.c
index 80c847e..d1020a6 100644
--- a/lib/libalpm/remove.c
+++ b/lib/libalpm/remove.c
@@ -68,7 +68,7 @@ int SYMEXPORT alpm_remove_pkg(alpm_handle_t *handle, alpm_pkg_t *pkg)
pkgname = pkg->name;
- if(_alpm_pkg_find(trans->remove, pkgname)) {
+ if(alpm_pkg_find(trans->remove, pkgname)) {
RET_ERR(handle, ALPM_ERR_TRANS_DUP_TARGET, -1);
}
@@ -100,7 +100,7 @@ static int remove_prepare_cascade(alpm_handle_t *handle, alpm_list_t *lp)
alpm_pkg_t *info = _alpm_db_get_pkgfromcache(handle->db_local, miss->target);
if(info) {
alpm_pkg_t *copy;
- if(!_alpm_pkg_find(trans->remove, info->name)) {
+ if(!alpm_pkg_find(trans->remove, info->name)) {
_alpm_log(handle, ALPM_LOG_DEBUG, "pulling %s in target list\n",
info->name);
if(_alpm_pkg_dup(info, ©) == -1) {
@@ -137,7 +137,7 @@ static void remove_prepare_keep_needed(alpm_handle_t *handle, alpm_list_t *lp)
for(i = lp; i; i = i->next) {
alpm_depmissing_t *miss = i->data;
void *vpkg;
- alpm_pkg_t *pkg = _alpm_pkg_find(trans->remove, miss->causingpkg);
+ alpm_pkg_t *pkg = alpm_pkg_find(trans->remove, miss->causingpkg);
if(pkg == NULL) {
continue;
}
@@ -171,11 +171,11 @@ static void remove_notify_needed_optdepends(alpm_handle_t *handle, alpm_list_t *
alpm_pkg_t *pkg = i->data;
alpm_list_t *optdeps = alpm_pkg_get_optdepends(pkg);
- if(optdeps && !_alpm_pkg_find(lp, pkg->name)) {
+ if(optdeps && !alpm_pkg_find(lp, pkg->name)) {
alpm_list_t *j;
for(j = optdeps; j; j = alpm_list_next(j)) {
alpm_depend_t *optdep = j->data;
- if(_alpm_pkg_find(lp, optdep->name)) {
+ if(alpm_pkg_find(lp, optdep->name)) {
EVENT(handle, ALPM_EVENT_OPTDEP_REQUIRED, pkg, optdep);
}
}
diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c
index ca6b507..841e5d6 100644
--- a/lib/libalpm/sync.c
+++ b/lib/libalpm/sync.c
@@ -159,7 +159,7 @@ static alpm_list_t *check_replacers(alpm_handle_t *handle, alpm_pkg_t *lpkg,
/* If spkg is already in the target list, we append lpkg to spkg's
* removes list */
- tpkg = _alpm_pkg_find(handle->trans->add, spkg->name);
+ tpkg = alpm_pkg_find(handle->trans->add, spkg->name);
if(tpkg) {
/* sanity check, multiple repos can contain spkg->name */
if(tpkg->origin_data.db != sdb) {
@@ -204,7 +204,7 @@ int SYMEXPORT alpm_sync_sysupgrade(alpm_handle_t *handle, int enable_downgrade)
for(i = _alpm_db_get_pkgcache(handle->db_local); i; i = i->next) {
alpm_pkg_t *lpkg = i->data;
- if(_alpm_pkg_find(trans->add, lpkg->name)) {
+ if(alpm_pkg_find(trans->add, lpkg->name)) {
_alpm_log(handle, ALPM_LOG_DEBUG, "%s is already in the target list -- skipping\n", lpkg->name);
continue;
}
@@ -257,7 +257,7 @@ alpm_list_t SYMEXPORT *alpm_find_group_pkgs(alpm_list_t *dbs,
for(j = grp->packages; j; j = j->next) {
alpm_pkg_t *pkg = j->data;
- if(_alpm_pkg_find(ignorelist, pkg->name)) {
+ if(alpm_pkg_find(ignorelist, pkg->name)) {
continue;
}
if(_alpm_pkg_should_ignore(db->handle, pkg)) {
@@ -268,7 +268,7 @@ alpm_list_t SYMEXPORT *alpm_find_group_pkgs(alpm_list_t *dbs,
if(!install)
continue;
}
- if(!_alpm_pkg_find(pkgs, pkg->name)) {
+ if(!alpm_pkg_find(pkgs, pkg->name)) {
pkgs = alpm_list_add(pkgs, pkg);
}
}
@@ -448,7 +448,7 @@ int _alpm_sync_prepare(alpm_handle_t *handle, alpm_list_t **data)
/* Set DEPEND reason for pulled packages */
for(i = resolved; i; i = i->next) {
alpm_pkg_t *pkg = i->data;
- if(!_alpm_pkg_find(trans->add, pkg->name)) {
+ if(!alpm_pkg_find(trans->add, pkg->name)) {
pkg->reason = ALPM_PKG_REASON_DEPEND;
}
}
@@ -482,8 +482,8 @@ int _alpm_sync_prepare(alpm_handle_t *handle, alpm_list_t **data)
alpm_pkg_t *rsync, *sync, *sync1, *sync2;
/* have we already removed one of the conflicting targets? */
- sync1 = _alpm_pkg_find(trans->add, conflict->package1);
- sync2 = _alpm_pkg_find(trans->add, conflict->package2);
+ sync1 = alpm_pkg_find(trans->add, conflict->package1);
+ sync2 = alpm_pkg_find(trans->add, conflict->package2);
if(!sync1 || !sync2) {
continue;
}
@@ -545,7 +545,7 @@ int _alpm_sync_prepare(alpm_handle_t *handle, alpm_list_t **data)
int found = 0;
for(j = trans->add; j && !found; j = j->next) {
alpm_pkg_t *spkg = j->data;
- if(_alpm_pkg_find(spkg->removes, conflict->package2)) {
+ if(alpm_pkg_find(spkg->removes, conflict->package2)) {
found = 1;
}
}
@@ -556,7 +556,7 @@ int _alpm_sync_prepare(alpm_handle_t *handle, alpm_list_t **data)
_alpm_log(handle, ALPM_LOG_DEBUG, "package '%s' conflicts with '%s'\n",
conflict->package1, conflict->package2);
- alpm_pkg_t *sync = _alpm_pkg_find(trans->add, conflict->package1);
+ alpm_pkg_t *sync = alpm_pkg_find(trans->add, conflict->package1);
alpm_pkg_t *local = _alpm_db_get_pkgfromcache(handle->db_local, conflict->package2);
int doremove = 0;
QUESTION(handle, ALPM_QUESTION_CONFLICT_PKG, conflict->package1,
@@ -590,7 +590,7 @@ int _alpm_sync_prepare(alpm_handle_t *handle, alpm_list_t **data)
alpm_pkg_t *spkg = i->data;
for(j = spkg->removes; j; j = j->next) {
alpm_pkg_t *rpkg = j->data;
- if(!_alpm_pkg_find(trans->remove, rpkg->name)) {
+ if(!alpm_pkg_find(trans->remove, rpkg->name)) {
alpm_pkg_t *copy;
_alpm_log(handle, ALPM_LOG_DEBUG, "adding '%s' to remove list\n", rpkg->name);
if(_alpm_pkg_dup(rpkg, ©) == -1) {
--
1.7.11.4
More information about the pacman-dev
mailing list