From 3bf20a6116ae3e1a5a3a6907bee7e881b17efb2f Mon Sep 17 00:00:00 2001 From: Peter Kjellerstedt Date: Mon, 15 May 2017 11:23:26 +0200 Subject: [PATCH 13/13] Add a new option --alldeps to rpmdeps This will send the output from rpmfcPrint() to stdout. This is an alternative to using the --rpmfcdebug option, which will send the same output to stderr. The two options have totally different use cases though. While --alldeps is used when the output from rpmfcPrint() is what is wanted, --rpmfcdebug can be used together with the other output options, e.g., --requires, without affecting their output. Upstream-Status: Submitted [https://github.com/rpm-software-management/rpm/pull/220] Signed-off-by: Peter Kjellerstedt --- build/rpmfc.c | 27 ++++++++++++++------------- build/rpmfc.h | 1 - tools/rpmdeps.c | 44 +++++++++++++++++++++++++------------------- 3 files changed, 39 insertions(+), 33 deletions(-) diff --git a/build/rpmfc.c b/build/rpmfc.c index c8e2f876a..44f1cdc9a 100644 --- a/build/rpmfc.c +++ b/build/rpmfc.c @@ -732,7 +732,6 @@ static rpm_color_t rpmfcColor(const char * fmstr) void rpmfcPrint(const char * msg, rpmfc fc, FILE * fp) { - rpm_color_t fcolor; int ndx; int dx; int fx; @@ -744,21 +743,23 @@ void rpmfcPrint(const char * msg, rpmfc fc, FILE * fp) if (fc) for (fx = 0; fx < fc->nfiles; fx++) { - rpmsid cx = fc->fcdictx[fx] + 1; /* id's are one off */ - fcolor = fc->fcolor[fx]; - ARGV_t fattrs = fc->fattrs[fx]; - fprintf(fp, "%3d %s", fx, fc->fn[fx]); - if (fcolor != RPMFC_BLACK) + if (_rpmfc_debug) { + rpmsid cx = fc->fcdictx[fx] + 1; /* id's are one off */ + rpm_color_t fcolor = fc->fcolor[fx]; + ARGV_t fattrs = fc->fattrs[fx]; + + if (fcolor != RPMFC_BLACK) fprintf(fp, "\t0x%x", fc->fcolor[fx]); - else + else fprintf(fp, "\t%s", rpmstrPoolStr(fc->cdict, cx)); - if (fattrs) { - char *attrs = argvJoin(fattrs, ","); - fprintf(fp, " [%s]", attrs); - free(attrs); - } else { - fprintf(fp, " [none]"); + if (fattrs) { + char *attrs = argvJoin(fattrs, ","); + fprintf(fp, " [%s]", attrs); + free(attrs); + } else { + fprintf(fp, " [none]"); + } } fprintf(fp, "\n"); diff --git a/build/rpmfc.h b/build/rpmfc.h index dae8ea5b1..3d87b31cf 100644 --- a/build/rpmfc.h +++ b/build/rpmfc.h @@ -45,7 +45,6 @@ typedef const struct rpmfcTokens_s * rpmfcToken; /** \ingroup rpmfc * Print results of file classification. - * @todo Remove debugging routine. * @param msg message prefix (NULL for none) * @param fc file classifier * @param fp output file handle (NULL for stderr) diff --git a/tools/rpmdeps.c b/tools/rpmdeps.c index a414b6343..f260a38c4 100644 --- a/tools/rpmdeps.c +++ b/tools/rpmdeps.c @@ -23,6 +23,8 @@ static int print_conflicts; static int print_obsoletes; +static int print_alldeps; + static void rpmdsPrint(const char * msg, rpmds ds, FILE * fp) { if (fp == NULL) fp = stderr; @@ -57,6 +59,8 @@ static struct poptOption optionsTable[] = { NULL, NULL }, { "obsoletes", '\0', POPT_ARG_VAL, &print_obsoletes, -1, NULL, NULL }, + { "alldeps", '\0', POPT_ARG_VAL, &print_alldeps, -1, + NULL, NULL }, POPT_AUTOALIAS POPT_AUTOHELP @@ -100,25 +104,27 @@ main(int argc, char *argv[]) if (rpmfcClassify(fc, av, NULL) || rpmfcApply(fc)) goto exit; - if (_rpmfc_debug) - rpmfcPrint(buf, fc, NULL); - - if (print_provides) - rpmdsPrint(NULL, rpmfcProvides(fc), stdout); - if (print_requires) - rpmdsPrint(NULL, rpmfcRequires(fc), stdout); - if (print_recommends) - rpmdsPrint(NULL, rpmfcRecommends(fc), stdout); - if (print_suggests) - rpmdsPrint(NULL, rpmfcSuggests(fc), stdout); - if (print_supplements) - rpmdsPrint(NULL, rpmfcSupplements(fc), stdout); - if (print_enhances) - rpmdsPrint(NULL, rpmfcEnhances(fc), stdout); - if (print_conflicts) - rpmdsPrint(NULL, rpmfcConflicts(fc), stdout); - if (print_obsoletes) - rpmdsPrint(NULL, rpmfcObsoletes(fc), stdout); + if (print_alldeps || _rpmfc_debug) + rpmfcPrint(NULL, fc, print_alldeps ? stdout : NULL); + + if (!print_alldeps) { + if (print_provides) + rpmdsPrint(NULL, rpmfcProvides(fc), stdout); + if (print_requires) + rpmdsPrint(NULL, rpmfcRequires(fc), stdout); + if (print_recommends) + rpmdsPrint(NULL, rpmfcRecommends(fc), stdout); + if (print_suggests) + rpmdsPrint(NULL, rpmfcSuggests(fc), stdout); + if (print_supplements) + rpmdsPrint(NULL, rpmfcSupplements(fc), stdout); + if (print_enhances) + rpmdsPrint(NULL, rpmfcEnhances(fc), stdout); + if (print_conflicts) + rpmdsPrint(NULL, rpmfcConflicts(fc), stdout); + if (print_obsoletes) + rpmdsPrint(NULL, rpmfcObsoletes(fc), stdout); + } ec = 0; -- 2.12.0