Fix query output when querying for non-installed <name>.<arch> (rhbz#124016)
authorPanu Matilainen <pmatilai@redhat.com>
Mon, 11 Jun 2007 10:22:25 +0000 (13:22 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Mon, 11 Jun 2007 10:22:25 +0000 (13:22 +0300)
lib/query.c

index 27dec10..b55b57b 100644 (file)
@@ -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;