diff options
author | Panu Matilainen <pmatilai@redhat.com> | 2007-06-11 13:22:25 +0300 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2007-06-11 13:22:25 +0300 |
commit | 05ef6555f5f563ae55689e0d06a27c337b5eb8ce (patch) | |
tree | 04f831d5357d073d27f03f41027e30d195d7a0f7 /lib | |
parent | dae15112df43f66055832f0c081c5d53c2bf222b (diff) | |
download | rpm-05ef6555f5f563ae55689e0d06a27c337b5eb8ce.tar.gz rpm-05ef6555f5f563ae55689e0d06a27c337b5eb8ce.tar.bz2 rpm-05ef6555f5f563ae55689e0d06a27c337b5eb8ce.zip |
Fix query output when querying for non-installed <name>.<arch> (rhbz#124016)
Diffstat (limited to 'lib')
-rw-r--r-- | lib/query.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/query.c b/lib/query.c index 27dec1059..b55b57b0e 100644 --- a/lib/query.c +++ b/lib/query.c @@ -663,15 +663,23 @@ int rpmQueryVerify(QVA_t qva, rpmts ts, const char * arg) } break; case RPMQV_PACKAGE: - /* XXX HACK to get rpmdbFindByLabel out of the API */ + { + int matches = 0; qva->qva_mi = rpmtsInitIterator(ts, RPMDBI_LABEL, arg, 0); - if (qva->qva_mi == NULL) { + while (rpmdbNextIterator(qva->qva_mi) != NULL) { + matches++; + } + if (! matches) { rpmError(RPMERR_QUERYINFO, _("package %s is not installed\n"), arg); res = 1; - } else + } else { + qva->qva_mi = rpmtsInitIterator(ts, RPMDBI_LABEL, arg, 0); res = rpmcliShowMatches(qva, ts); + } break; } + + } /*@=branchstate@*/ return res; |