mirror of
https://github.com/moparisthebest/pacman
synced 2024-12-22 15:58:50 -05:00
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 <lfleischer@archlinux.org> Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
parent
4b0bc2cf97
commit
a187fa4562
@ -57,11 +57,12 @@ static void deplist_display(const char *title,
|
|||||||
static void optdeplist_display(alpm_pkg_t *pkg, unsigned short cols)
|
static void optdeplist_display(alpm_pkg_t *pkg, unsigned short cols)
|
||||||
{
|
{
|
||||||
alpm_list_t *i, *text = NULL;
|
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)) {
|
for(i = alpm_pkg_get_optdepends(pkg); i; i = alpm_list_next(i)) {
|
||||||
alpm_depend_t *optdep = i->data;
|
alpm_depend_t *optdep = i->data;
|
||||||
char *depstring = alpm_dep_compute_string(optdep);
|
char *depstring = alpm_dep_compute_string(optdep);
|
||||||
if(alpm_pkg_get_origin(pkg) == ALPM_PKG_FROM_LOCALDB) {
|
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]");
|
const char *installed = _(" [installed]");
|
||||||
depstring = realloc(depstring, strlen(depstring) + strlen(installed) + 1);
|
depstring = realloc(depstring, strlen(depstring) + strlen(installed) + 1);
|
||||||
strcpy(depstring + strlen(depstring), installed);
|
strcpy(depstring + strlen(depstring), installed);
|
||||||
|
@ -1204,9 +1204,10 @@ static int depend_cmp(const void *d1, const void *d2)
|
|||||||
|
|
||||||
static char *make_optstring(alpm_depend_t *optdep)
|
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 *optstring = alpm_dep_compute_string(optdep);
|
||||||
char *status = NULL;
|
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]");
|
status = _(" [installed]");
|
||||||
} else if(alpm_pkg_find(alpm_trans_get_add(config->handle), optdep->name)) {
|
} else if(alpm_pkg_find(alpm_trans_get_add(config->handle), optdep->name)) {
|
||||||
status = _(" [pending]");
|
status = _(" [pending]");
|
||||||
|
Loading…
Reference in New Issue
Block a user