N_("do not glob arguments"), NULL},
{ "nomanifest", '\0', POPT_BIT_SET, &giFlags, RPMGI_NOMANIFEST,
N_("do not process non-package files as manifests"), NULL},
- { "noheader", '\0', POPT_BIT_SET|POPT_ARGFLAG_DOC_HIDDEN, &giFlags, RPMGI_NOHEADER,
- N_("do not read headers"), NULL},
-
POPT_TABLEEND
};
ec = rpmcliArgIterHelper(ts, qva, RPMDBI_ARGLIST, argv, giFlags);
break;
default:
- qva->qva_gi = rpmgiNew(ts, RPMDBI_ARGLIST, NULL, 0);
- rpmgiSetArgs(qva->qva_gi, argv,
- (giFlags | (RPMGI_NOGLOB|RPMGI_NOHEADER)));
- while (rpmgiNext(qva->qva_gi) == RPMRC_OK) {
- ec += rpmQueryVerify(qva, ts, rpmgiHdrPath(qva->qva_gi));
- }
- qva->qva_gi = rpmgiFree(qva->qva_gi);
+ for (ARGV_const_t arg = argv; arg && *arg; arg++)
+ ec += rpmQueryVerify(qva, ts, *arg);
break;
}
int active; /*!< Iterator is active? */
int i; /*!< Element index. */
int errors;
- char * hdrPath; /*!< Path to current iterator header. */
Header h; /*!< Current iterator header. */
rpmdbMatchIterator mi;
if (gi->argv != NULL && gi->argv[gi->i] != NULL)
do {
- char * fn; /* XXX gi->hdrPath? */
-
- fn = gi->argv[gi->i];
- if (!(gi->flags & RPMGI_NOHEADER)) {
- h = rpmgiReadHeader(gi, fn);
- if (h != NULL)
- rpmrc = RPMRC_OK;
- } else
+ char * fn = gi->argv[gi->i];
+ h = rpmgiReadHeader(gi, fn);
+ if (h != NULL)
rpmrc = RPMRC_OK;
if (rpmrc == RPMRC_OK || gi->flags & RPMGI_NOMANIFEST)
if (gi == NULL)
return NULL;
- gi->hdrPath = _free(gi->hdrPath);
gi->h = headerFree(gi->h);
gi->argv = argvFree(gi->argv);
gi->active = 0;
gi->i = -1;
gi->errors = 0;
- gi->hdrPath = NULL;
gi->h = NULL;
gi->mi = NULL;
rpmRC rpmgiNext(rpmgi gi)
{
- char hnum[32];
rpmRC rpmrc = RPMRC_NOTFOUND;
if (gi == NULL)
/* Free header from previous iteration. */
gi->h = headerFree(gi->h);
- gi->hdrPath = _free(gi->hdrPath);
- hnum[0] = '\0';
if (++gi->i >= 0)
switch (gi->tag) {
if (gi->mi != NULL) { /* XXX unnecessary */
Header h = rpmdbNextIterator(gi->mi);
if (h != NULL) {
- if (!(gi->flags & RPMGI_NOHEADER))
- gi->h = headerLink(h);
- sprintf(hnum, "%u", rpmdbGetIteratorOffset(gi->mi));
- gi->hdrPath = rpmExpand("rpmdb h# ", hnum, NULL);
+ gi->h = headerLink(h);
rpmrc = RPMRC_OK;
/* XXX header reference held by iterator, so no headerFree */
} else
if (rpmrc != RPMRC_OK) /* XXX check this */
goto enditer;
- gi->hdrPath = xstrdup(gi->argv[gi->i]);
break;
}
enditer:
gi->mi = rpmdbFreeIterator(gi->mi);
gi->h = headerFree(gi->h);
- gi->hdrPath = _free(gi->hdrPath);
gi->i = -1;
gi->active = 0;
return rpmrc;
}
-const char * rpmgiHdrPath(rpmgi gi)
-{
- return (gi != NULL ? gi->hdrPath : NULL);
-}
-
Header rpmgiHeader(rpmgi gi)
{
return (gi != NULL ? gi->h : NULL);
RPMGI_NONE = 0,
RPMGI_NOGLOB = (1 << 2),
RPMGI_NOMANIFEST = (1 << 3),
- RPMGI_NOHEADER = (1 << 4)
} rpmgiFlags;
extern rpmgiFlags giFlags;
rpmRC rpmgiNext(rpmgi gi);
/** \ingroup rpmgi
- * Return current header path.
- * @param gi generalized iterator
- * @returns header path
- */
-const char * rpmgiHdrPath(rpmgi gi);
-
-/** \ingroup rpmgi
* Return current iteration header.
* @param gi generalized iterator
* @returns header