[Rpm-maint] [PATCH] Cleanup: Move similar repeating code in rpmcliArgIter to rpmcliArgIterHelper.
Rakesh Pandit
rakesh.pandit at gmail.com
Fri Mar 13 03:04:46 UTC 2009
Just that I had been looking at usage of rpmgi in query.c did some cleanup.
Attached.
Patch: http://rakesh.fedorapeople.org/rpm/0003--Cleanup-Move-similar-repeating-code-in-rpmcliArgI.patch
--
rakesh
>From 23ef956a28fe60c8702ec24693527c64d425a599 Mon Sep 17 00:00:00 2001
From: Rakesh Pandit <rakesh at fedoraproject.org>
Date: Fri, 13 Mar 2009 08:26:52 +0530
Subject: [PATCH] - Cleanup: Move similar repeating code in
rpmcliArgIter to rpmcliArgIterHelper.
---
lib/query.c | 61 +++++++++++++++++-----------------------------------------
1 files changed, 18 insertions(+), 43 deletions(-)
diff --git a/lib/query.c b/lib/query.c
index abe0e53..d9daafd 100644
--- a/lib/query.c
+++ b/lib/query.c
@@ -567,15 +567,13 @@ int rpmQueryVerify(QVA_t qva, rpmts ts, const char * arg)
return res;
}
-int rpmcliArgIter(rpmts ts, QVA_t qva, ARGV_const_t argv)
+static int rpmcliArgInit(rpmts ts, QVA_t qva, rpmTag tag,
ARGV_const_t argv, rpmgiFlags gFlgs)
{
- rpmRC rpmrc = RPMRC_NOTFOUND;
- int ec = 0;
+ rpmRC rpmrc = RPMRC_NOTFOUND;
+ int ec = 0;
- switch (qva->qva_source) {
- case RPMQV_ALL:
- qva->qva_gi = rpmgiNew(ts, RPMDBI_PACKAGES, NULL, 0);
- qva->qva_rc = rpmgiSetArgs(qva->qva_gi, argv, ftsOpts, RPMGI_NONE);
+ qva->qva_gi = rpmgiNew(ts, tag, NULL, 0);
+ qva->qva_rc = rpmgiSetArgs(qva->qva_gi, argv, ftsOpts, gFlgs);
if (qva->qva_gi != NULL && (rpmgiGetFlags(qva->qva_gi) &
RPMGI_TSADD)) /* Load the ts with headers. */
while ((rpmrc = rpmgiNext(qva->qva_gi)) == RPMRC_OK)
@@ -586,50 +584,27 @@ int rpmcliArgIter(rpmts ts, QVA_t qva, ARGV_const_t argv)
/* FIX: argv can be NULL, cast to pass argv array */
ec = rpmQueryVerify(qva, ts, (const char *) argv);
rpmtsEmpty(ts);
+ return ec;
+}
+
+int rpmcliArgIter(rpmts ts, QVA_t qva, ARGV_const_t argv)
+{
+ int ec = 0;
+
+ switch (qva->qva_source) {
+ case RPMQV_ALL:
+ ec = rpmcliArgInit(ts, qva, RPMDBI_PACKAGES, argv, RPMGI_NONE);
break;
case RPMQV_RPM:
- qva->qva_gi = rpmgiNew(ts, RPMDBI_ARGLIST, NULL, 0);
- qva->qva_rc = rpmgiSetArgs(qva->qva_gi, argv, ftsOpts, giFlags);
-
- if (qva->qva_gi != NULL && (rpmgiGetFlags(qva->qva_gi) &
RPMGI_TSADD)) /* Load the ts with headers. */
- while ((rpmrc = rpmgiNext(qva->qva_gi)) == RPMRC_OK)
- {};
- if (rpmrc != RPMRC_NOTFOUND)
- return 1; /* XXX should be no. of failures. */
-
- /* FIX: argv can be NULL, cast to pass argv array */
- ec = rpmQueryVerify(qva, ts, NULL);
- rpmtsEmpty(ts);
+ ec = rpmcliArgInit(ts, qva, RPMDBI_ARGLIST, argv, giFlags);
break;
case RPMQV_HDLIST:
- qva->qva_gi = rpmgiNew(ts, RPMDBI_HDLIST, NULL, 0);
- qva->qva_rc = rpmgiSetArgs(qva->qva_gi, argv, ftsOpts, giFlags);
-
- if (qva->qva_gi != NULL && (rpmgiGetFlags(qva->qva_gi) &
RPMGI_TSADD)) /* Load the ts with headers. */
- while ((rpmrc = rpmgiNext(qva->qva_gi)) == RPMRC_OK)
- {};
- if (rpmrc != RPMRC_NOTFOUND)
- return 1; /* XXX should be no. of failures. */
-
- /* FIX: argv can be NULL, cast to pass argv array */
- ec = rpmQueryVerify(qva, ts, NULL);
- rpmtsEmpty(ts);
+ ec = rpmcliArgInit(ts, qva, RPMDBI_HDLIST, argv, giFlags);
break;
case RPMQV_FTSWALK:
if (ftsOpts == 0)
ftsOpts = (RPMGI_COMFOLLOW | RPMGI_LOGICAL | RPMGI_NOSTAT);
- qva->qva_gi = rpmgiNew(ts, RPMDBI_FTSWALK, NULL, 0);
- qva->qva_rc = rpmgiSetArgs(qva->qva_gi, argv, ftsOpts, giFlags);
-
- if (qva->qva_gi != NULL && (rpmgiGetFlags(qva->qva_gi) &
RPMGI_TSADD)) /* Load the ts with headers. */
- while ((rpmrc = rpmgiNext(qva->qva_gi)) == RPMRC_OK)
- {};
- if (rpmrc != RPMRC_NOTFOUND)
- return 1; /* XXX should be no. of failures. */
-
- /* FIX: argv can be NULL, cast to pass argv array */
- ec = rpmQueryVerify(qva, ts, NULL);
- rpmtsEmpty(ts);
+ ec = rpmcliArgInit(ts, qva, RPMDBI_FTSWALK, argv, giFlags);
break;
default:
qva->qva_gi = rpmgiNew(ts, RPMDBI_ARGLIST, NULL, 0);
--
1.6.0.6
More information about the Rpm-maint
mailing list