[Rpm-maint] [PATCH] Cleanup: Move similar repeating code in rpmcliArgIter to rpmcliArgIterHelper.
Rakesh Pandit
rakesh.pandit at gmail.com
Fri Mar 13 03:13:28 UTC 2009
2009/3/13 Rakesh Pandit <rakesh.pandit at gmail.com>:
> Just that I had been looking at usage of rpmgi in query.c did some cleanup.
>
Sorry posted the old one ... latest one:
Patch: http://rakesh.fedorapeople.org/rpm/0003--Cleanup-Move-similar-patterns-in-rpmcliArgIter-to.patch
>From 41ceaac05e8e7ea4e5dfd4b9377d27c3ace75113 Mon Sep 17 00:00:00 2001
From: Rakesh Pandit <rakesh at fedoraproject.org>
Date: Fri, 13 Mar 2009 00:15:37 +0530
Subject: [PATCH] - Cleanup: Move similar patterns in rpmcliArgIter to
rpmcliArgIterHelper.
---
lib/query.c | 63 +++++++++++++++++-----------------------------------------
1 files changed, 19 insertions(+), 44 deletions(-)
diff --git a/lib/query.c b/lib/query.c
index abe0e53..f663d5a 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 rpmcliArgIterHelper(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)
@@ -584,52 +582,29 @@ int rpmcliArgIter(rpmts ts, QVA_t qva, ARGV_const_t argv)
return 1; /* XXX should be no. of failures. */
/* FIX: argv can be NULL, cast to pass argv array */
- ec = rpmQueryVerify(qva, ts, (const char *) argv);
+ ec = rpmQueryVerify(qva, ts, (tag == RPMDBI_PACKAGES)? (const char
*) argv : NULL);
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 = rpmcliArgIterHelper(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 = rpmcliArgIterHelper(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 = rpmcliArgIterHelper(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 = rpmcliArgIterHelper(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