summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlib/gentagtbl.sh10
-rw-r--r--lib/header.h1
-rw-r--r--lib/rpmtag.h7
3 files changed, 15 insertions, 3 deletions
diff --git a/lib/gentagtbl.sh b/lib/gentagtbl.sh
index 04ad2fe5e..3f6f7b5f8 100755
--- a/lib/gentagtbl.sh
+++ b/lib/gentagtbl.sh
@@ -12,6 +12,7 @@ EOF
${AWK} '/[\t ](RPMTAG_[A-Z0-9]*)[ \t]+([0-9]*)/ && !/internal/ {
tt = "NULL"
ta = "ANY"
+ ext = "0"
if ($5 == "c") {
tt = "CHAR"
ta = "SCALAR"
@@ -60,6 +61,9 @@ ${AWK} '/[\t ](RPMTAG_[A-Z0-9]*)[ \t]+([0-9]*)/ && !/internal/ {
tt = "BIN"
ta = "SCALAR"
}
+ if ($6 == "extension") {
+ ext = "1"
+ }
if ($2 == "=") {
tnarg = $1
} else {
@@ -68,14 +72,14 @@ ${AWK} '/[\t ](RPMTAG_[A-Z0-9]*)[ \t]+([0-9]*)/ && !/internal/ {
tn = substr(tnarg, index(tnarg, "_") + 1)
sn = (substr(tn, 1, 1) tolower(substr(tn, 2)))
if ($2 == "=") {
- printf(" { \"%s\", \"%s\", %s RPM_%s_TYPE + RPM_%s_RETURN_TYPE },\n", tnarg, sn, $3, tt, ta)
+ printf(" { \"%s\", \"%s\", %s RPM_%s_TYPE + RPM_%s_RETURN_TYPE, %d },\n", tnarg, sn, $3, tt, ta, ext)
} else {
- printf(" { \"%s\", \"%s\", %s, RPM_%s_TYPE + RPM_%s_RETURN_TYPE },\n", tnarg, sn, $3, tt, ta)
+ printf(" { \"%s\", \"%s\", %s, RPM_%s_TYPE + RPM_%s_RETURN_TYPE, %d },\n", tnarg, sn, $3, tt, ta, ext)
}
}' < $1 | sort
cat << EOF
- { NULL, NULL, 0, 0 }
+ { NULL, NULL, 0, 0, 0 }
};
const struct headerTagTableEntry_s * const rpmTagTable = rpmTagTbl;
diff --git a/lib/header.h b/lib/header.h
index 0c6321831..fab831155 100644
--- a/lib/header.h
+++ b/lib/header.h
@@ -30,6 +30,7 @@ struct headerTagTableEntry_s {
const char * shortname; /*!< "Human readable" short name. */
rpmTag val; /*!< Tag numeric value. */
rpmTagType type; /*!< Tag type. */
+ int extension; /*!< Extension or "real" tag */
};
/**
diff --git a/lib/rpmtag.h b/lib/rpmtag.h
index 9432dec73..2da6b4950 100644
--- a/lib/rpmtag.h
+++ b/lib/rpmtag.h
@@ -265,6 +265,13 @@ typedef enum rpmTag_e {
RPMTAG_REQUIREATTRSX = 1192, /* i[] (unimplemented) */
RPMTAG_BUILDPROVIDES = 1193, /* internal */
RPMTAG_BUILDOBSOLETES = 1194, /* internal */
+ RPMTAG_FILENAMES = 5000, /* s[] extension */
+ RPMTAG_FILEPROVIDE = 5001, /* s[] extension */
+ RPMTAG_FILEREQUIRE = 5002, /* s[] extension */
+ RPMTAG_FSNAMES = 5003, /* s[] extension */
+ RPMTAG_FSSIZES = 5004, /* i[] extension */
+ RPMTAG_TRIGGERCONDS = 5005, /* s[] extension */
+ RPMTAG_TRIGGERTYPE = 5006, /* s[] extension */
RPMTAG_FIRSTFREE_TAG /*!< internal */
} rpmTag;