diff options
author | Panu Matilainen <Panu Matilainen pmatilai@redhat.com> | 2011-07-13 14:03:32 +0300 |
---|---|---|
committer | Panu Matilainen <Panu Matilainen pmatilai@redhat.com> | 2011-07-15 12:26:35 +0300 |
commit | 4e6dc92f90cd57af0d64f9bd49e6a8cb990a3895 (patch) | |
tree | 4e1bb9d3b27daf00dcecf6018f3e82214c4f5b76 | |
parent | 7775eadb597f9c7e57c69d22ff739a01886c8eb4 (diff) | |
download | rpm-4e6dc92f90cd57af0d64f9bd49e6a8cb990a3895.tar.gz |
Only increment number of query/verify sources when we encounter new types
- This makes it legal to specify the same query/verify source more
than once. Not that it makes a whole lot of sense to do so, but
complaining "only one type of query/verify permitted at a time" seems
silly as well if you're just (accidentally) specifying the same
source twice. Besides, this makes the code a bit cleaner.
- Kinda related to RhBug:691930.
(cherry picked from commit f627135e9f55f4e65dc581145e98607cd044b381)
-rw-r--r-- | lib/poptQV.c | 36 |
1 files changed, 15 insertions, 21 deletions
diff --git a/lib/poptQV.c b/lib/poptQV.c index e2944761c..1cb5517b9 100644 --- a/lib/poptQV.c +++ b/lib/poptQV.c @@ -29,6 +29,7 @@ static void rpmQVSourceArgCallback( poptContext con, const void * data) { QVA_t qva = &rpmQVKArgs; + rpmQVSources sources = qva->qva_source;; switch (opt->val) { case 'q': /* from --query, -q */ @@ -38,28 +39,21 @@ static void rpmQVSourceArgCallback( poptContext con, qva->qva_mode = opt->val; } break; - case 'a': qva->qva_source |= RPMQV_ALL; qva->qva_sourceCount++; break; - case 'f': qva->qva_source |= RPMQV_PATH; qva->qva_sourceCount++; break; - case 'g': qva->qva_source |= RPMQV_GROUP; qva->qva_sourceCount++; break; - case 'p': qva->qva_source |= RPMQV_RPM; qva->qva_sourceCount++; break; - case POPT_WHATPROVIDES: qva->qva_source |= RPMQV_WHATPROVIDES; - qva->qva_sourceCount++; break; - case POPT_WHATREQUIRES: qva->qva_source |= RPMQV_WHATREQUIRES; - qva->qva_sourceCount++; break; - case POPT_TRIGGEREDBY: qva->qva_source |= RPMQV_TRIGGEREDBY; - qva->qva_sourceCount++; break; - case POPT_QUERYBYPKGID: qva->qva_source |= RPMQV_PKGID; - qva->qva_sourceCount++; break; - case POPT_QUERYBYHDRID: qva->qva_source |= RPMQV_HDRID; - qva->qva_sourceCount++; break; - case POPT_QUERYBYTID: qva->qva_source |= RPMQV_TID; - qva->qva_sourceCount++; break; - - case POPT_QUERYBYNUMBER: - qva->qva_source |= RPMQV_DBOFFSET; - qva->qva_sourceCount++; - break; + case 'a': qva->qva_source |= RPMQV_ALL; break; + case 'f': qva->qva_source |= RPMQV_PATH; break; + case 'g': qva->qva_source |= RPMQV_GROUP; break; + case 'p': qva->qva_source |= RPMQV_RPM; break; + case POPT_WHATPROVIDES: qva->qva_source |= RPMQV_WHATPROVIDES; break; + case POPT_WHATREQUIRES: qva->qva_source |= RPMQV_WHATREQUIRES; break; + case POPT_TRIGGEREDBY: qva->qva_source |= RPMQV_TRIGGEREDBY; break; + case POPT_QUERYBYPKGID: qva->qva_source |= RPMQV_PKGID; break; + case POPT_QUERYBYHDRID: qva->qva_source |= RPMQV_HDRID; break; + case POPT_QUERYBYTID: qva->qva_source |= RPMQV_TID; break; + case POPT_QUERYBYNUMBER: qva->qva_source |= RPMQV_DBOFFSET; break; } + + if (sources != qva->qva_source) + qva->qva_sourceCount++; } /** |