diff options
author | Panu Matilainen <pmatilai@redhat.com> | 2007-10-18 16:09:05 +0300 |
---|---|---|
committer | Panu Matilainen <pmatilai@redhat.com> | 2007-10-18 16:09:05 +0300 |
commit | 7f9678705457cb5c884fd1bc901ead9558a3a6eb (patch) | |
tree | a3ab70e338edfdc484e92fef47f79fdf824643e5 /lib/rpmps.c | |
parent | b882a428bde280957844faebfc7bb90b0a847753 (diff) | |
download | rpm-7f9678705457cb5c884fd1bc901ead9558a3a6eb.tar.gz |
Use iterators for rpmpsPrint()
Diffstat (limited to 'lib/rpmps.c')
-rw-r--r-- | lib/rpmps.c | 15 |
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); } |