commit:     2e8bca1ee3fd0a3cf9c489a1b661245d20f808af
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Thu Jan  2 12:49:34 2020 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Thu Jan  2 12:49:34 2020 +0000
URL:        https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=2e8bca1e

qcheck: pass package atoms down to tree_foreach_pkg

Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 qcheck.c | 39 ++++++++++-----------------------------
 1 file changed, 10 insertions(+), 29 deletions(-)

diff --git a/qcheck.c b/qcheck.c
index 66a4ee7..e8db1b8 100644
--- a/qcheck.c
+++ b/qcheck.c
@@ -70,8 +70,9 @@ struct qcheck_opt_state {
 };
 
 static int
-qcheck_process_contents(tree_pkg_ctx *pkg_ctx, struct qcheck_opt_state *state)
+qcheck_cb(tree_pkg_ctx *pkg_ctx, void *priv)
 {
+       struct qcheck_opt_state *state = priv;
        FILE *fp_contents, *fp_contents_update;
        size_t num_files, num_files_ok, num_files_unknown, num_files_ignored;
        char *buffer, *line;
@@ -334,7 +335,7 @@ qcheck_process_contents(tree_pkg_ctx *pkg_ctx, struct 
qcheck_opt_state *state)
                printf("%s\n", atom_format(state->fmt, atom));
        qcprintf("  %2$s*%1$s %3$s%4$zu%1$s out of %3$s%5$zu%1$s file%6$s are 
good",
                NORM, BOLD, BLUE, num_files_ok, num_files,
-               (num_files > 1 ? "s" : ""));
+               (num_files != 1 ? "s" : ""));
        if (num_files_unknown)
                qcprintf(" (Unable to digest %2$s%3$zu%1$s file%4$s)",
                        NORM, BLUE, num_files_unknown,
@@ -351,32 +352,6 @@ qcheck_process_contents(tree_pkg_ctx *pkg_ctx, struct 
qcheck_opt_state *state)
                return EXIT_SUCCESS;
 }
 
-static int
-qcheck_cb(tree_pkg_ctx *pkg_ctx, void *priv)
-{
-       struct qcheck_opt_state *state = priv;
-       bool showit = false;
-
-       /* see if this cat/pkg is requested */
-       if (array_cnt(state->atoms)) {
-               size_t i;
-               depend_atom *qatom;
-               depend_atom *atom;
-
-               qatom = tree_get_atom(pkg_ctx, false);
-               array_for_each(state->atoms, i, atom) {
-                       if (atom_compare(qatom, atom) == EQUAL) {
-                               showit = true;
-                               break;
-                       }
-               }
-       } else {
-               showit = true;
-       }
-
-       return showit ? qcheck_process_contents(pkg_ctx, priv) : 0;
-}
-
 int qcheck_main(int argc, char **argv)
 {
        size_t i;
@@ -434,7 +409,13 @@ int qcheck_main(int argc, char **argv)
        vdb = tree_open_vdb(portroot, portvdb);
        ret = -1;
        if (vdb != NULL) {
-               ret = tree_foreach_pkg_sorted(vdb, qcheck_cb, &state, NULL);
+               if (array_cnt(atoms) != 0) {
+                       array_for_each(atoms, i, atom) {
+                               ret |= tree_foreach_pkg_sorted(vdb, qcheck_cb, 
&state, atom);
+                       }
+               } else {
+                       ret = tree_foreach_pkg_sorted(vdb, qcheck_cb, &state, 
NULL);
+               }
                tree_close(vdb);
        }
        if (array_cnt(regex_arr) > 0) {

Reply via email to