From a187fa4562dc2f43f10134092056c2a9a6862d59 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Wed, 20 May 2015 13:10:32 +0200 Subject: Match providers when showing optdep install status Use alpm_find_satisfier() instead of alpm_db_get_pkg() when retrieving the install status of a package to make sure we spot providers as well. Fixes FS#36412 Signed-off-by: Lukas Fleischer Signed-off-by: Allan McRae --- src/pacman/package.c | 3 ++- src/pacman/util.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/pacman/package.c b/src/pacman/package.c index 33184bd5..2fd0a9c3 100644 --- a/src/pacman/package.c +++ b/src/pacman/package.c @@ -57,11 +57,12 @@ static void deplist_display(const char *title, static void optdeplist_display(alpm_pkg_t *pkg, unsigned short cols) { alpm_list_t *i, *text = NULL; + alpm_db_t *localdb = alpm_get_localdb(config->handle); for(i = alpm_pkg_get_optdepends(pkg); i; i = alpm_list_next(i)) { alpm_depend_t *optdep = i->data; char *depstring = alpm_dep_compute_string(optdep); if(alpm_pkg_get_origin(pkg) == ALPM_PKG_FROM_LOCALDB) { - if(alpm_db_get_pkg(alpm_get_localdb(config->handle), optdep->name)) { + if(alpm_find_satisfier(alpm_db_get_pkgcache(localdb), optdep->name)) { const char *installed = _(" [installed]"); depstring = realloc(depstring, strlen(depstring) + strlen(installed) + 1); strcpy(depstring + strlen(depstring), installed); diff --git a/src/pacman/util.c b/src/pacman/util.c index 7c6a8c0d..9fdc39a5 100644 --- a/src/pacman/util.c +++ b/src/pacman/util.c @@ -1204,9 +1204,10 @@ static int depend_cmp(const void *d1, const void *d2) static char *make_optstring(alpm_depend_t *optdep) { + alpm_db_t *localdb = alpm_get_localdb(config->handle); char *optstring = alpm_dep_compute_string(optdep); char *status = NULL; - if(alpm_db_get_pkg(alpm_get_localdb(config->handle), optdep->name)) { + if(alpm_find_satisfier(alpm_db_get_pkgcache(localdb), optdep->name)) { status = _(" [installed]"); } else if(alpm_pkg_find(alpm_trans_get_add(config->handle), optdep->name)) { status = _(" [pending]"); -- cgit v1.2.3-70-g09d2