From: "Vladimir D. Seleznev" <vseleznv@altlinux.org> To: devel@lists.altlinux.org Cc: vseleznv@altlinux.org Subject: [devel] [PATCH] Verbose QueryTags prints whether tag is an extension Date: Sat, 11 Apr 2020 02:19:17 +0300 Message-ID: <20200410231917.1482336-1-vseleznv@altlinux.org> (raw) Verbose QueryTags prints four field: tagname, tagvalue, tagtype and whether it is an extension. To make it possible QueryTags uses new function rpmTagIsExtension() that return 0 if tag is real, 1 if tag is an extension or 2 if tag is not found. * lib/query.c(rpmDisplayQueryTags): Print whether tag is an extension. * lib/rpmtag.h(rpmTagIsExtension): New definition. * lib/tagname.c(rpmTagIsExtension): New function. --- lib/query.c | 5 +++++ lib/rpmtag.h | 7 +++++++ lib/tagname.c | 14 ++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/lib/query.c b/lib/query.c index 60d3a0269..5f0216bdc 100644 --- a/lib/query.c +++ b/lib/query.c @@ -253,9 +253,14 @@ void rpmDisplayQueryTags(FILE * fp) if (rpmIsVerbose()) { rpmTagVal tag = rpmTagGetValue(sname); rpmTagType type = rpmTagGetTagType(tag); + int ext = rpmTagIsExtension(tag); fprintf(fp, "%-20s %6d", sname, tag); if (type > RPM_NULL_TYPE && type <= RPM_MAX_TYPE) fprintf(fp, " %s", tagTypeNames[type]); + else if (ext) + fprintf(fp, " -"); + if (ext) + fprintf(fp, " ext"); } else { fprintf(fp, "%s", sname); } diff --git a/lib/rpmtag.h b/lib/rpmtag.h index f74b451dc..8e860f927 100644 --- a/lib/rpmtag.h +++ b/lib/rpmtag.h @@ -519,6 +519,13 @@ rpmTagType rpmTagGetTagType(rpmTagVal tag); */ rpmTagReturnType rpmTagGetReturnType(rpmTagVal tag); +/** \ingroup rpmtag + * Return 0 if tag is real, 1 if tag is an extension, 2 on not found + * @param tag tag value + * @return 0 if tag is real, 1 if tag is an extension, 2 on not found + */ +int rpmTagIsExtension(rpmTagVal tag); + /** \ingroup rpmtag * Return tag data class from value. * @param tag tag value diff --git a/lib/tagname.c b/lib/tagname.c index 532437740..791b38ade 100644 --- a/lib/tagname.c +++ b/lib/tagname.c @@ -197,6 +197,20 @@ rpmTagReturnType rpmTagGetReturnType(rpmTagVal tag) return (rpmTagGetType(tag) & RPM_MASK_RETURN_TYPE); } +int rpmTagIsExtension(rpmTagVal tag) +{ + const struct headerTagTableEntry_s *t; + + pthread_once(&tagsLoaded, loadTags); + + t = entryByTag(tag); + + if (t) + return t->extension; + else + return 2; +} + rpmTagClass rpmTagTypeGetClass(rpmTagType type) { rpmTagClass tclass; -- 2.25.2
next reply other threads:[~2020-04-10 23:19 UTC|newest] Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-04-10 23:19 Vladimir D. Seleznev [this message] 2020-04-11 10:46 ` Andrey Savchenko 2020-04-12 3:02 ` Vladimir D. Seleznev 2020-04-13 18:04 ` Dmitry V. Levin 2020-04-13 18:20 ` Vladimir D. Seleznev 2020-04-13 18:42 ` Dmitry V. Levin 2020-04-14 16:21 ` Vladimir D. Seleznev
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200410231917.1482336-1-vseleznv@altlinux.org \ --to=vseleznv@altlinux.org \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git