Add new alpm_pkg_get_origin() method, use it in the front end now that the enum constants are publicly available. Signed-off-by: Dan McGee <dan@archlinux.org> --- README | 2 +- lib/libalpm/alpm.h | 5 +++++ lib/libalpm/package.c | 7 +++++++ src/pacman/package.c | 7 +++---- src/pacman/package.h | 2 +- src/pacman/query.c | 4 ++-- src/pacman/sync.c | 4 ++-- 7 files changed, 21 insertions(+), 10 deletions(-) diff --git a/README b/README index fbd40d2..c14fd3c 100644 --- a/README +++ b/README @@ -429,7 +429,7 @@ API CHANGES BETWEEN 3.5 AND 4.0 alpm_option_get_default_siglevel(), alpm_option_set_default_siglevel(), alpm_option_get_gpgdir(), alpm_option_set_gpgdir(), alpm_db_get_siglevel(), alpm_sigresult_cleanup(), alpm_db_check_pgp_signature(), alpm_pkg_check_pgp_signature(), - alpm_pkg_get_sha256sum(), alpm_pkg_get_base64_sig() + alpm_pkg_get_origin(), alpm_pkg_get_sha256sum(), alpm_pkg_get_base64_sig() - list functions: alpm_list_to_array(), alpm_list_previous() - structs: diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h index 2f62565..42e6038 100644 --- a/lib/libalpm/alpm.h +++ b/lib/libalpm/alpm.h @@ -598,6 +598,11 @@ const char *alpm_pkg_get_name(alpm_pkg_t *pkg); */ const char *alpm_pkg_get_version(alpm_pkg_t *pkg); +/** Returns the origin of the package. + * @return a #alpm_pkgfrom_t constant, -1 on error + */ +alpm_pkgfrom_t alpm_pkg_get_origin(alpm_pkg_t *pkg); + /** Returns the package description. * @param pkg a pointer to package * @return a reference to an internal string diff --git a/lib/libalpm/package.c b/lib/libalpm/package.c index 3d73a43..487b56d 100644 --- a/lib/libalpm/package.c +++ b/lib/libalpm/package.c @@ -185,6 +185,13 @@ const char SYMEXPORT *alpm_pkg_get_version(alpm_pkg_t *pkg) return pkg->version; } +alpm_pkgfrom_t SYMEXPORT alpm_pkg_get_origin(alpm_pkg_t *pkg) +{ + ASSERT(pkg != NULL, return -1); + pkg->handle->pm_errno = 0; + return pkg->origin; +} + const char SYMEXPORT *alpm_pkg_get_desc(alpm_pkg_t *pkg) { ASSERT(pkg != NULL, return NULL); diff --git a/src/pacman/package.c b/src/pacman/package.c index f7065d5..5654944 100644 --- a/src/pacman/package.c +++ b/src/pacman/package.c @@ -61,7 +61,7 @@ static void deplist_display(const char *title, * @param from the type of package we are dealing with * @param extra should we show extra information */ -void dump_pkg_full(alpm_pkg_t *pkg, alpm_pkgfrom_t from, int extra) +void dump_pkg_full(alpm_pkg_t *pkg, int extra) { const char *reason; time_t bdate, idate; @@ -69,10 +69,9 @@ void dump_pkg_full(alpm_pkg_t *pkg, alpm_pkgfrom_t from, int extra) const char *label; double size; alpm_list_t *requiredby = NULL; + alpm_pkgfrom_t from; - if(pkg == NULL) { - return; - } + from = alpm_pkg_get_origin(pkg); /* set variables here, do all output below */ bdate = alpm_pkg_get_builddate(pkg); diff --git a/src/pacman/package.h b/src/pacman/package.h index 4bbc2ba..890b4fe 100644 --- a/src/pacman/package.h +++ b/src/pacman/package.h @@ -22,7 +22,7 @@ #include <alpm.h> -void dump_pkg_full(alpm_pkg_t *pkg, alpm_pkgfrom_t from, int extra); +void dump_pkg_full(alpm_pkg_t *pkg, int extra); void dump_pkg_backups(alpm_pkg_t *pkg); void dump_pkg_files(alpm_pkg_t *pkg, int quiet); diff --git a/src/pacman/query.c b/src/pacman/query.c index ec98c99..5f2b37e 100644 --- a/src/pacman/query.c +++ b/src/pacman/query.c @@ -460,9 +460,9 @@ static int display(alpm_pkg_t *pkg) if(config->op_q_info) { if(config->op_q_isfile) { - dump_pkg_full(pkg, PKG_FROM_FILE, 0); + dump_pkg_full(pkg, 0); } else { - dump_pkg_full(pkg, PKG_FROM_LOCALDB, config->op_q_info > 1); + dump_pkg_full(pkg, config->op_q_info > 1); } } if(config->op_q_list) { diff --git a/src/pacman/sync.c b/src/pacman/sync.c index a7fe5be..e97da37 100644 --- a/src/pacman/sync.c +++ b/src/pacman/sync.c @@ -469,7 +469,7 @@ static int sync_info(alpm_list_t *syncs, alpm_list_t *targets) alpm_pkg_t *pkg = alpm_list_getdata(k); if(strcmp(alpm_pkg_get_name(pkg), pkgstr) == 0) { - dump_pkg_full(pkg, PKG_FROM_SYNCDB, config->op_s_info > 1); + dump_pkg_full(pkg, config->op_s_info > 1); foundpkg = 1; break; } @@ -494,7 +494,7 @@ static int sync_info(alpm_list_t *syncs, alpm_list_t *targets) for(j = alpm_db_get_pkgcache(db); j; j = alpm_list_next(j)) { alpm_pkg_t *pkg = alpm_list_getdata(j); - dump_pkg_full(pkg, PKG_FROM_SYNCDB, config->op_s_info > 1); + dump_pkg_full(pkg, config->op_s_info > 1); } } } -- 1.7.6