summaryrefslogtreecommitdiff
path: root/lib/rpmps.c
diff options
context:
space:
mode:
authorPanu Matilainen <pmatilai@redhat.com>2007-10-18 16:09:05 +0300
committerPanu Matilainen <pmatilai@redhat.com>2007-10-18 16:09:05 +0300
commit7f9678705457cb5c884fd1bc901ead9558a3a6eb (patch)
treea3ab70e338edfdc484e92fef47f79fdf824643e5 /lib/rpmps.c
parentb882a428bde280957844faebfc7bb90b0a847753 (diff)
downloadrpm-7f9678705457cb5c884fd1bc901ead9558a3a6eb.tar.gz
Use iterators for rpmpsPrint()
Diffstat (limited to 'lib/rpmps.c')
-rw-r--r--lib/rpmps.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/rpmps.c b/lib/rpmps.c
index d536c17d9..0908324d0 100644
--- a/lib/rpmps.c
+++ b/lib/rpmps.c
@@ -320,6 +320,7 @@ static int sameProblem(const rpmProblem ap, const rpmProblem bp)
void rpmpsPrint(FILE *fp, rpmps ps)
{
const char * msg;
+ rpmpsi psi = NULL;
int i;
if (ps == NULL || ps->probs == NULL || ps->numProblems <= 0)
@@ -328,20 +329,21 @@ void rpmpsPrint(FILE *fp, rpmps ps)
if (fp == NULL)
fp = stderr;
- for (i = 0; i < ps->numProblems; i++) {
- rpmProblem p;
+ psi = rpmpsInitIterator(ps);
+ while ((i = rpmpsNextIterator(psi)) >= 0) {
int j;
-
- p = ps->probs + i;
+ rpmProblem p = rpmpsProblem(psi);
if (p->ignoreProblem)
continue;
+ rpmpsi psif = rpmpsInitIterator(ps);
/* Filter already displayed problems. */
- for (j = 0; j < i; j++) {
- if (!sameProblem(p, ps->probs + j))
+ while ((j = rpmpsNextIterator(psif)) < i) {
+ if (!sameProblem(p, rpmpsProblem(psif)))
break;
}
+ rpmpsFreeIterator(psif);
if (j < i)
continue;
@@ -350,4 +352,5 @@ void rpmpsPrint(FILE *fp, rpmps ps)
msg = _free(msg);
}
+ psi = rpmpsFreeIterator(psi);
}