diff --git a/build/spec.c b/build/spec.c index 19b6bb6..54a7027 100644 --- a/build/spec.c +++ b/build/spec.c @@ -398,8 +398,7 @@ const char * rpmSpecGetSection(rpmSpec spec, int section) int rpmspecQuery(rpmts ts, QVA_t qva, const char * arg) { rpmSpec spec = NULL; - int res = 1; - int xx; + int rc = RPMRC_FAIL; if (qva->qva_showPackage == NULL) goto exit; @@ -411,15 +410,15 @@ int rpmspecQuery(rpmts ts, QVA_t qva, const char * arg) goto exit; } - res = 0; if (qva->qva_source == RPMQV_SPECRPMS) { - for (Package pkg = spec->packages; pkg != NULL; pkg = pkg->next) - xx = qva->qva_showPackage(qva, ts, pkg->header); + for (Package pkg = spec->packages; pkg != NULL; pkg = pkg->next) { + if ((rc = qva->qva_showPackage(qva, ts, pkg->header)) != RPMRC_OK) break; + } } else { - xx = qva->qva_showPackage(qva, ts, spec->sourceHeader); + rc = qva->qva_showPackage(qva, ts, spec->sourceHeader); } exit: spec = rpmSpecFree(spec); - return res; + return rc; } diff --git a/lib/query.c b/lib/query.c index 308fe65..d0c74c9 100644 --- a/lib/query.c +++ b/lib/query.c @@ -102,7 +102,7 @@ int showQueryPackage(QVA_t qva, rpmts ts, Header h) { rpmfi fi = NULL; rpmfiFlags fiflags = (RPMFI_NOHEADER | RPMFI_FLAGS_QUERY); - int rc = 0; /* XXX FIXME: need real return code */ + int rc = RPMRC_FAIL; if (qva->qva_queryFormat != NULL) { const char *errstr; @@ -232,7 +232,7 @@ int showQueryPackage(QVA_t qva, rpmts ts, Header h) free(buf); } - rc = 0; + rc = RPMRC_OK; exit: fi = rpmfiFree(fi); @@ -268,35 +268,37 @@ void rpmDisplayQueryTags(FILE * fp) static int rpmgiShowMatches(QVA_t qva, rpmts ts, rpmgi gi) { - int ec = 0; + int rc = RPMRC_FAIL; Header h; while ((h = rpmgiNext(gi)) != NULL) { - int rc; - rpmdbCheckSignals(); - if ((rc = qva->qva_showPackage(qva, ts, h)) != 0) - ec = rc; + if ((rc = qva->qva_showPackage(qva, ts, h)) != RPMRC_OK) { + goto exit; + } headerFree(h); } - return ec + rpmgiNumErrors(gi); + if (!rpmgiNumErrors(gi)) rc = RPMRC_OK; +exit: + return rc; } static int rpmcliShowMatches(QVA_t qva, rpmts ts, rpmdbMatchIterator mi) { Header h; - int ec = 0; + int rc = RPMRC_FAIL; if (mi == NULL) return 1; while ((h = rpmdbNextIterator(mi)) != NULL) { - int rc; rpmdbCheckSignals(); - if ((rc = qva->qva_showPackage(qva, ts, h)) != 0) - ec = rc; + if ((rc = qva->qva_showPackage(qva, ts, h)) != RPMRC_OK) + goto exit; } - return ec; + rc = RPMRC_OK; +exit: + return rc; } static rpmdbMatchIterator initQueryIterator(QVA_t qva, rpmts ts, const char * arg)