commit:     2615b1a350ac54af4bb0f31e8eb13fed9979b564
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Mon May  6 18:04:00 2019 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Mon May  6 18:04:00 2019 +0000
URL:        https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=2615b1a3

qcheck: use atom_format to unify atom representation

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

 qcheck.c | 43 ++++++++++++++++---------------------------
 1 file changed, 16 insertions(+), 27 deletions(-)

diff --git a/qcheck.c b/qcheck.c
index 377a187..68cdb30 100644
--- a/qcheck.c
+++ b/qcheck.c
@@ -69,14 +69,13 @@ qcheck_process_contents(vdb_pkg_ctx *pkg_ctx, struct 
qcheck_opt_state *state)
 {
        int fd_contents;
        FILE *fp_contents, *fp_contents_update;
-       const char *catname = pkg_ctx->cat_ctx->name;
-       const char *pkgname = pkg_ctx->name;
        size_t num_files, num_files_ok, num_files_unknown, num_files_ignored;
        char *buffer, *line;
        size_t linelen;
        struct stat st, cst;
        int cp_argc, cpm_argc;
        char **cp_argv, **cpm_argv;
+       depend_atom *atom;
 
        fp_contents_update = NULL;
 
@@ -94,15 +93,16 @@ qcheck_process_contents(vdb_pkg_ctx *pkg_ctx, struct 
qcheck_opt_state *state)
        }
 
        /* Open contents_update, if needed */
+       atom = vdb_get_atom(pkg_ctx, false);
        num_files = num_files_ok = num_files_unknown = num_files_ignored = 0;
-       qcprintf("%sing %s%s/%s%s ...\n",
+       qcprintf("%sing %s ...\n",
                (state->qc_update ? "Updat" : "Check"),
-               GREEN, catname, pkgname, NORM);
+               atom_format("%[CATEGORY]%[PF]", atom, 0));
        if (state->qc_update) {
                fp_contents_update = vdb_pkg_fopenat_rw(pkg_ctx, "CONTENTS~");
                if (fp_contents_update == NULL) {
                        fclose(fp_contents);
-                       warnp("unable to fopen(%s/%s, w)", pkgname, 
"CONTENTS~");
+                       warnp("unable to fopen(%s/%s, w)", atom->P, 
"CONTENTS~");
                        return EXIT_FAILURE;
                }
        }
@@ -165,13 +165,14 @@ qcheck_process_contents(vdb_pkg_ctx *pkg_ctx, struct 
qcheck_opt_state *state)
                                        break;
                        if (i == cpm_argc) {
                                /* Not explicitly masked, so it's protected */
-                               for (i = 1; i < cp_argc; ++i)
+                               for (i = 1; i < cp_argc; ++i) {
                                        if (strncmp(cp_argv[i], entry->name,
                                                                
strlen(cp_argv[i])) == 0)
                                        {
                                                num_files_ok++;
                                                continue;
                                        }
+                               }
                        }
                }
 
@@ -329,18 +330,9 @@ qcheck_process_contents(vdb_pkg_ctx *pkg_ctx, struct 
qcheck_opt_state *state)
        }
        if (state->bad_only && num_files_ok != num_files) {
                if (verbose)
-                       printf("%s/%s\n", catname, pkgname);
+                       printf("%s\n", atom_format("%[CATEGORY]%[PF]", atom, 
0));
                else {
-                       depend_atom *atom = NULL;
-                       char *buf;
-                       xasprintf(&buf, "%s/%s", catname, pkgname);
-                       if ((atom = atom_explode(buf)) != NULL) {
-                               printf("%s/%s\n", catname, atom->PN);
-                               atom_implode(atom);
-                       } else  {
-                               printf("%s/%s\n", catname, pkgname);
-                       }
-                       free(buf);
+                       printf("%s\n", atom_format("%[CATEGORY]%[PN]", atom, 
0));
                }
        }
        qcprintf("  %2$s*%1$s %3$s%4$zu%1$s out of %3$s%5$zu%1$s file%6$s are 
good",
@@ -366,27 +358,24 @@ static int
 qcheck_cb(vdb_pkg_ctx *pkg_ctx, void *priv)
 {
        struct qcheck_opt_state *state = priv;
-       const char *catname = pkg_ctx->cat_ctx->name;
-       const char *pkgname = pkg_ctx->name;
        bool showit = false;
 
        /* see if this cat/pkg is requested */
        if (array_cnt(state->atoms)) {
-               char *buf;
                size_t i;
-               depend_atom *qatom, *atom;
+               depend_atom *qatom;
+               depend_atom *atom;
 
-               xasprintf(&buf, "%s/%s", catname, pkgname);
-               qatom = atom_explode(buf);
-               array_for_each(state->atoms, i, atom)
+               qatom = vdb_get_atom(pkg_ctx, false);
+               array_for_each(state->atoms, i, atom) {
                        if (atom_compare(atom, qatom) == EQUAL) {
                                showit = true;
                                break;
                        }
-               atom_implode(qatom);
-               free(buf);
-       } else
+               }
+       } else {
                showit = true;
+       }
 
        return showit ? qcheck_process_contents(pkg_ctx, priv) : 0;
 }

Reply via email to