From df61816c7588bd00f5d6bfdb99f7539eec8bd62b Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Mon, 12 Oct 2009 11:02:56 +0300 Subject: [PATCH] Add RPMTAG_VERBOSE extension - hack to permit different query formatting based on rpm's verbosity level --- lib/rpmtag.h | 1 + lib/tagexts.c | 15 +++++++++++++++ tests/rpmgeneral.at | 1 + 3 files changed, 17 insertions(+) diff --git a/lib/rpmtag.h b/lib/rpmtag.h index c2b6146..58be8cf 100644 --- a/lib/rpmtag.h +++ b/lib/rpmtag.h @@ -290,6 +290,7 @@ typedef enum rpmTag_e { RPMTAG_NEVR = 5015, /* s extension */ RPMTAG_NEVRA = 5016, /* s extension */ RPMTAG_HEADERCOLOR = 5017, /* i extension */ + RPMTAG_VERBOSE = 5018, /* i extension */ RPMTAG_FIRSTFREE_TAG /*!< internal */ } rpmTag; diff --git a/lib/tagexts.c b/lib/tagexts.c index 4588365..eac9aca 100644 --- a/lib/tagexts.c +++ b/lib/tagexts.c @@ -9,6 +9,7 @@ #include /* XXX for %_i18ndomains */ #include #include +#include #include "debug.h" @@ -730,6 +731,19 @@ static int nevraTag(Header h, rpmtd td, headerGetFlags hgflags) return getNEVRA(h, td, NEVRA_NAME|NEVRA_EPOCH|NEVRA_VERSION|NEVRA_RELEASE|NEVRA_ARCH); } +static int verboseTag(Header h, rpmtd td, headerGetFlags hgflags) +{ + if (rpmIsVerbose()) { + td->type = RPM_INT32_TYPE; + td->count = 1; + td->data = &(td->count); + td->flags = RPMTD_NONE; + return 1; + } else { + return 0; + } +} + void *rpmHeaderTagFunc(rpmTag tag) { const struct headerTagFunc_s * ext; @@ -769,6 +783,7 @@ static const struct headerTagFunc_s rpmHeaderTagExtensions[] = { { RPMTAG_NVRA, nvraTag }, { RPMTAG_NEVRA, nevraTag }, { RPMTAG_HEADERCOLOR, headercolorTag }, + { RPMTAG_VERBOSE, verboseTag }, { 0, NULL } }; diff --git a/tests/rpmgeneral.at b/tests/rpmgeneral.at index 18b7324..de5c3f5 100644 --- a/tests/rpmgeneral.at +++ b/tests/rpmgeneral.at @@ -230,6 +230,7 @@ TRIGGERVERSION URL V VENDOR +VERBOSE VERIFYSCRIPT VERIFYSCRIPTPROG VERSION -- 2.7.4