diff options
-rwxr-xr-x | lib/gentagtbl.sh | 10 | ||||
-rw-r--r-- | lib/header.h | 1 | ||||
-rw-r--r-- | lib/rpmtag.h | 7 |
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; |