summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorPanu Matilainen <pmatilai@redhat.com>2007-06-11 13:22:25 +0300
committerPanu Matilainen <pmatilai@redhat.com>2007-06-11 13:22:25 +0300
commit05ef6555f5f563ae55689e0d06a27c337b5eb8ce (patch)
tree04f831d5357d073d27f03f41027e30d195d7a0f7 /lib
parentdae15112df43f66055832f0c081c5d53c2bf222b (diff)
downloadrpm-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.c14
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;