From b3947aab31c9a43b308bd414dfa1ece3fae1d3c9 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Sat, 05 Jul 2014 12:49:32 -0400 Subject: pkg_hash_fetch_installed_by_name_vec: New function --- diff --git a/libopkg/pkg_hash.c b/libopkg/pkg_hash.c index 4618869..ac4c422 100644 --- a/libopkg/pkg_hash.c +++ b/libopkg/pkg_hash.c @@ -574,6 +574,30 @@ pkg_hash_fetch_installed_by_name_dest(const char *pkg_name, pkg_dest_t *dest) return NULL; } +pkg_vec_t * +pkg_hash_fetch_installed_by_name_vec(const char *pkg_name) +{ + pkg_vec_t *vec, *ret; + int i; + int found = 0; + + if (!(vec = pkg_vec_fetch_by_name(pkg_name))) { + return NULL; + } + + ret = pkg_vec_alloc(); + + for (i = 0; i < vec->len; i++) { + if (vec->pkgs[i]->state_status == SS_INSTALLED + || vec->pkgs[i]->state_status == SS_UNPACKED) { + pkg_vec_insert(ret, vec->pkgs[i]); + found = 1; + } + } + + return found ? ret : NULL; +} + pkg_t * pkg_hash_fetch_installed_by_name(const char *pkg_name) { diff --git a/libopkg/pkg_hash.h b/libopkg/pkg_hash.h index ed010ef..2f24eb3 100644 --- a/libopkg/pkg_hash.h +++ b/libopkg/pkg_hash.h @@ -48,6 +48,7 @@ pkg_t *pkg_hash_fetch_best_installation_candidate(abstract_pkg_t *apkg, int (*constraint_fcn)(pkg_t *pkg, void *data), void *cdata, int quiet); pkg_t *pkg_hash_fetch_best_installation_candidate_by_name(const char *name); pkg_t *pkg_hash_fetch_installed_by_name(const char *pkg_name); +pkg_vec_t *pkg_hash_fetch_installed_by_name_vec(const char *pkg_name); pkg_t *pkg_hash_fetch_installed_by_name_dest(const char *pkg_name, pkg_dest_t *dest); -- cgit v0.9.1