Add RPMTAG_VERBOSE extension
authorPanu Matilainen <pmatilai@redhat.com>
Mon, 12 Oct 2009 08:02:56 +0000 (11:02 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Mon, 12 Oct 2009 08:02:56 +0000 (11:02 +0300)
- hack to permit different query formatting based on rpm's verbosity level

lib/rpmtag.h
lib/tagexts.c
tests/rpmgeneral.at

index c2b6146..58be8cf 100644 (file)
@@ -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;
index 4588365..eac9aca 100644 (file)
@@ -9,6 +9,7 @@
 #include <rpm/rpmmacro.h>      /* XXX for %_i18ndomains */
 #include <rpm/rpmfi.h>
 #include <rpm/rpmstring.h>
+#include <rpm/rpmlog.h>
 
 #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 }
 };
 
index 18b7324..de5c3f5 100644 (file)
@@ -230,6 +230,7 @@ TRIGGERVERSION
 URL
 V
 VENDOR
+VERBOSE
 VERIFYSCRIPT
 VERIFYSCRIPTPROG
 VERSION