#include "system.h"
#include "rpmio_internal.h"
#include <rpmbc.h>
#include <rpmcb.h>
#include <rpmmacro.h>
#include <rpmtag.h>
#include <rpmlib.h>
#include <rpmfi.h>
#include <rpmevr.h>
#include "legacy.h"
#include "argv.h"
#include "misc.h"
#include "debug.h"
Go to the source code of this file.
Data Structures | |
struct | sprintfTag_s |
struct | sprintfToken_s |
struct | headerSprintfArgs_s |
Defines | |
#define | _RPMTAG_INTERNAL |
#define | _RPMEVR_INTERNAL |
#define | PARSER_BEGIN 0 |
#define | PARSER_IN_ARRAY 1 |
#define | PARSER_IN_EXPR 2 |
Typedefs | |
typedef struct sprintfTag_s * | sprintfTag |
typedef struct sprintfToken_s * | sprintfToken |
typedef struct headerSprintfArgs_s * | headerSprintfArgs |
Functions | |
static char * | intFormat (HE_t he, const char *fmt) |
Convert tag data representation. | |
static char * | octFormat (HE_t he) |
Return octal formatted data. | |
static char * | hexFormat (HE_t he) |
Return hex formatted data. | |
static char * | decFormat (HE_t he) |
Return decimal formatted data. | |
static char * | realDateFormat (HE_t he, const char *strftimeFormat) |
Return strftime formatted data. | |
static char * | dateFormat (HE_t he) |
Return date formatted data. | |
static char * | dayFormat (HE_t he) |
Return day formatted data. | |
static char * | shescapeFormat (HE_t he) |
Return shell escape formatted data. | |
static char * | rpmPermsString (int mode) |
static char * | triggertypeFormat (HE_t he) |
Identify type of trigger. | |
static char * | permsFormat (HE_t he) |
Format file permissions for display. | |
static char * | fflagsFormat (HE_t he) |
Format file flags for display. | |
static char * | armorFormat (HE_t he) |
Wrap a pubkey in ascii armor for display. | |
static char * | base64Format (HE_t he) |
Encode binary data in base64 for display. | |
static size_t | xmlstrlen (const char *s) |
Return length of string represented with xml characters substituted. | |
static char * | xmlstrcpy (char *t, const char *s) |
Copy source string to target, substituting for xml characters. | |
static char * | xmlFormat (HE_t he) |
Wrap tag data in simple header xml markup. | |
static size_t | yamlstrlen (const char *s, int lvl) |
Return length of string represented with yaml indentation. | |
static char * | yamlstrcpy (char *t, const char *s, int lvl) |
Copy source string to target, indenting for yaml. | |
static char * | yamlFormat (HE_t he) |
Wrap tag data in simple header yaml markup. | |
static char * | pgpsigFormat (HE_t he) |
Display signature fingerprint and time. | |
static char * | depflagsFormat (HE_t he) |
Format dependency flags for display. | |
static int | instprefixTag (Header h, HE_t he) |
Retrieve install prefixes. | |
static int | triggercondsTag (Header h, HE_t he) |
Retrieve trigger info. | |
static int | triggertypeTag (Header h, HE_t he) |
Retrieve trigger type info. | |
static int | i18nTag (Header h, HE_t he) |
Retrieve i18n text. | |
static int | localeTag (Header h, HE_t he) |
Retrieve text and convert to locale. | |
static int | summaryTag (Header h, HE_t he) |
Retrieve summary text. | |
static int | descriptionTag (Header h, HE_t he) |
Retrieve description text. | |
static int | changelognameTag (Header h, HE_t he) |
static int | changelogtextTag (Header h, HE_t he) |
static int | groupTag (Header h, HE_t he) |
Retrieve group text. | |
static int | dbinstanceTag (Header h, HE_t he) |
Retrieve db instance from header. | |
static char * | hGetNVRA (Header h) |
Return (malloc'd) header name-version-release.arch string. | |
static int | nvraTag (Header h, HE_t he) |
Retrieve N-V-R.A compound string from header. | |
static void | rpmfiBuildFNames (Header h, rpmTag tagN, const char ***fnp, rpmTagCount *fcp) |
Retrieve file names from header. | |
static int | _fnTag (Header h, HE_t he) |
Retrieve file paths. | |
static int | filepathsTag (Header h, HE_t he) |
static int | origpathsTag (Header h, HE_t he) |
void | rpmDisplayQueryTags (FILE *fp, headerTagTableEntry _rpmTagTable, headerSprintfExtension _rpmHeaderFormats) |
Display list of tags that can be used in --queryformat. | |
static char | escapedChar (const char ch) |
static HE_t | rpmheClean (HE_t he) |
Clean a tag container, free'ing attached malloc's. | |
static sprintfToken | freeFormat (sprintfToken format, size_t num) |
Destroy headerSprintf format array. | |
static headerSprintfArgs | hsaInit (headerSprintfArgs hsa) |
Initialize an hsa iteration. | |
static sprintfToken | hsaNext (headerSprintfArgs hsa) |
Return next hsa iteration item. | |
static headerSprintfArgs | hsaFini (headerSprintfArgs hsa) |
Finish an hsa iteration. | |
static char * | hsaReserve (headerSprintfArgs hsa, size_t need) |
Reserve sufficient buffer space for next output value. | |
static const char * | myTagName (headerTagTableEntry tbl, uint32_t val, uint32_t *typep) |
Return tag name from value. | |
static uint32_t | myTagValue (headerTagTableEntry tbl, const char *name) |
Return tag value from name. | |
static int | findTag (headerSprintfArgs hsa, sprintfToken token, const char *name) |
Search extensions and tags for a name. | |
static int | parseExpression (headerSprintfArgs hsa, sprintfToken token, char *str, char **endPtr) |
Parse a headerSprintf expression. | |
static int | parseFormat (headerSprintfArgs hsa, char *str, sprintfToken *formatPtr, size_t *numTokensPtr, char **endPtr, int state) |
Parse a headerSprintf term. | |
static int | getExtension (headerSprintfArgs hsa, headerTagTagFunction fn, HE_t he, HE_t ec) |
Call a header extension only once, saving results. | |
static char * | formatValue (headerSprintfArgs hsa, sprintfTag tag, uint32_t element) |
Format a single item's value. | |
static char * | singleSprintf (headerSprintfArgs hsa, sprintfToken token, uint32_t element) |
Format a single headerSprintf item. | |
static HE_t | rpmecNew (const headerSprintfExtension exts, int *necp) |
Create an extension cache. | |
static HE_t | rpmecFree (const headerSprintfExtension exts, HE_t ec) |
Destroy an extension cache. | |
char * | headerSprintf (Header h, const char *fmt, headerTagTableEntry tags, headerSprintfExtension exts, errmsg_t *errmsg) |
Return formatted output string from header tags. | |
Variables | |
int | _hdr_debug |
static struct headerSprintfExtension_s | _headerDefaultFormats [] |
headerSprintfExtension | headerDefaultFormats = &_headerDefaultFormats[0] |
Supported default header tag output formats. | |
static const char * | language = "LANGUAGE" |
static const char * | _macro_i18ndomains = "%{?_i18ndomains}" |
static struct headerSprintfExtension_s | _headerCompoundFormats [] |
headerSprintfExtension | headerCompoundFormats = &_headerCompoundFormats[0] |
Supported default header extension/tag output formats. |
#define PARSER_BEGIN 0 |
Definition at line 1785 of file hdrfmt.c.
Referenced by headerSprintf().
#define PARSER_IN_ARRAY 1 |
Definition at line 1786 of file hdrfmt.c.
Referenced by parseFormat().
#define PARSER_IN_EXPR 2 |
Definition at line 1787 of file hdrfmt.c.
Referenced by parseExpression(), and parseFormat().
Retrieve file paths.
h | header |
*he | tag container |
Definition at line 1639 of file hdrfmt.c.
References rpmDataType_u::argv, _HE_s::c, _HE_s::freeData, _HE_s::p, RPM_STRING_ARRAY_TYPE, rpmfiBuildFNames(), _HE_s::t, and _HE_s::tag.
Referenced by filepathsTag(), and origpathsTag().
static char* armorFormat | ( | HE_t | he | ) | [static] |
Wrap a pubkey in ascii armor for display.
he | tag container |
Definition at line 420 of file hdrfmt.c.
References _, _free(), _HE_s::c, _HE_s::ix, _HE_s::p, pgpArmorWrap(), RPM_BIN_TYPE, RPM_I18NSTRING_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, RPM_UINT16_TYPE, RPM_UINT32_TYPE, RPM_UINT64_TYPE, RPM_UINT8_TYPE, rpmDataType_u::str, _HE_s::t, rpmDataType_u::ui8p, and xstrdup().
static char* base64Format | ( | HE_t | he | ) | [static] |
Encode binary data in base64 for display.
he | tag container |
Definition at line 470 of file hdrfmt.c.
References _, _free(), _HE_s::c, _HE_s::ix, _HE_s::p, rpmDataType_u::ptr, RPM_BIN_TYPE, stpcpy(), _HE_s::t, xcalloc(), and xstrdup().
Referenced by xmlFormat(), and yamlFormat().
Definition at line 1412 of file hdrfmt.c.
References localeTag(), and _HE_s::tag.
Definition at line 1419 of file hdrfmt.c.
References localeTag(), and _HE_s::tag.
static char* dateFormat | ( | HE_t | he | ) | [static] |
Return date formatted data.
he | tag container |
Definition at line 181 of file hdrfmt.c.
References _, and realDateFormat().
static char* dayFormat | ( | HE_t | he | ) | [static] |
Return day formatted data.
he | tag container |
Definition at line 192 of file hdrfmt.c.
References _, and realDateFormat().
Retrieve db instance from header.
h | header |
*he | tag container |
Definition at line 1447 of file hdrfmt.c.
References _HE_s::c, _HE_s::freeData, headerGetInstance(), _HE_s::p, RPM_UINT32_TYPE, _HE_s::t, _HE_s::tag, rpmDataType_u::ui32p, and xmalloc().
static char* decFormat | ( | HE_t | he | ) | [static] |
Return decimal formatted data.
he | tag container |
Definition at line 139 of file hdrfmt.c.
References intFormat().
static char* depflagsFormat | ( | HE_t | he | ) | [static] |
Format dependency flags for display.
he | tag container |
Definition at line 971 of file hdrfmt.c.
References _, alloca(), _HE_s::ix, _HE_s::p, RPM_UINT64_TYPE, RPMSENSE_EQUAL, RPMSENSE_GREATER, RPMSENSE_LESS, RPMSENSE_SENSEMASK, stpcpy(), _HE_s::t, rpmDataType_u::ui64p, and xstrdup().
Referenced by triggercondsTag().
Retrieve description text.
h | header |
*he | tag container |
Definition at line 1404 of file hdrfmt.c.
References i18nTag(), and _HE_s::tag.
static char escapedChar | ( | const char | ch | ) | [static] |
static char* fflagsFormat | ( | HE_t | he | ) | [static] |
Format file flags for display.
he | tag container |
Definition at line 380 of file hdrfmt.c.
References _, _HE_s::ix, _HE_s::p, RPM_UINT64_TYPE, RPMFILE_CONFIG, RPMFILE_DOC, RPMFILE_GHOST, RPMFILE_LICENSE, RPMFILE_MISSINGOK, RPMFILE_NOREPLACE, RPMFILE_README, RPMFILE_SPECFILE, _HE_s::t, rpmDataType_u::ui64p, and xstrdup().
Definition at line 1648 of file hdrfmt.c.
References _fnTag(), and _HE_s::tag.
static int findTag | ( | headerSprintfArgs | hsa, | |
sprintfToken | token, | |||
const char * | name | |||
) | [static] |
Search extensions and tags for a name.
hsa | headerSprintf args | |
token | parsed fields | |
name | name to find |
Definition at line 2132 of file hdrfmt.c.
References alloca(), sprintfToken_s::cond, sprintfTag_s::ext, sprintfTag_s::extNum, headerSprintfArgs_s::exts, sprintfTag_s::fmt, myTagValue(), stpcpy(), sprintfToken_s::tag, sprintfTag_s::tagno, headerSprintfArgs_s::tags, sprintfTag_s::type, sprintfToken_s::type, sprintfToken_s::u, and xstrcasecmp().
Referenced by parseExpression(), and parseFormat().
static char* formatValue | ( | headerSprintfArgs | hsa, | |
sprintfTag | tag, | |||
uint32_t | element | |||
) | [static] |
Format a single item's value.
hsa | headerSprintf args | |
tag | tag | |
element | element index |
Definition at line 2632 of file hdrfmt.c.
References _free(), alloca(), rpmDataType_u::argv, sprintfTag_s::arrayCount, _HE_s::avail, _HE_s::c, headerSprintfArgs_s::ec, sprintfTag_s::ext, sprintfTag_s::extNum, sprintfTag_s::fmt, sprintfTag_s::format, _HE_s::freeData, getExtension(), headerSprintfArgs_s::h, sprintfTag_s::he, headerGet(), hsaReserve(), intFormat(), _HE_s::ix, _HE_s::p, sprintfTag_s::pad, rpmDataType_u::ptr, RPM_BIN_TYPE, RPM_I18NSTRING_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, RPM_UINT16_TYPE, RPM_UINT32_TYPE, RPM_UINT64_TYPE, RPM_UINT8_TYPE, rpmheClean(), snprintf(), stpcpy(), rpmDataType_u::str, _HE_s::t, _HE_s::tag, sprintfTag_s::tagno, rpmDataType_u::ui16p, rpmDataType_u::ui32p, rpmDataType_u::ui64p, rpmDataType_u::ui8p, headerSprintfArgs_s::val, headerSprintfArgs_s::vallen, xmalloc(), and xstrdup().
Referenced by singleSprintf().
static sprintfToken freeFormat | ( | sprintfToken | format, | |
size_t | num | |||
) | [static] |
Destroy headerSprintf format array.
format | sprintf format array | |
num | number of elements |
Definition at line 1925 of file hdrfmt.c.
References _free(), sprintfToken_s::array, sprintfToken_s::cond, sprintfTag_s::he, rpmheClean(), sprintfToken_s::tag, and sprintfToken_s::u.
Referenced by headerSprintf(), parseExpression(), and parseFormat().
static int getExtension | ( | headerSprintfArgs | hsa, | |
headerTagTagFunction | fn, | |||
HE_t | he, | |||
HE_t | ec | |||
) | [static] |
Call a header extension only once, saving results.
hsa | headerSprintf args | |
fn | function |
he | tag container | |
ec | extension cache |
Definition at line 2606 of file hdrfmt.c.
References _HE_s::avail, _HE_s::freeData, headerSprintfArgs_s::h, and rpmheClean().
Referenced by formatValue(), and singleSprintf().
Retrieve group text.
h | header |
*he | tag container |
Definition at line 1432 of file hdrfmt.c.
References i18nTag(), and _HE_s::tag.
static char* hexFormat | ( | HE_t | he | ) | [static] |
Return hex formatted data.
he | tag container |
Definition at line 128 of file hdrfmt.c.
References intFormat().
static char* hGetNVRA | ( | Header | h | ) | [static] |
static headerSprintfArgs hsaFini | ( | headerSprintfArgs | hsa | ) | [static] |
Finish an hsa iteration.
hsa | headerSprintf args |
Definition at line 2029 of file hdrfmt.c.
References headerFini(), headerSprintfArgs_s::hi, and headerSprintfArgs_s::i.
Referenced by headerSprintf().
static headerSprintfArgs hsaInit | ( | headerSprintfArgs | hsa | ) | [static] |
Initialize an hsa iteration.
hsa | headerSprintf args |
Definition at line 1966 of file hdrfmt.c.
References sprintfToken_s::array, headerSprintfArgs_s::format, headerSprintfArgs_s::h, headerInit(), headerSprintfArgs_s::hi, headerSprintfArgs_s::i, sprintfToken_s::tag, sprintfTag_s::tagno, sprintfToken_s::type, and sprintfToken_s::u.
Referenced by headerSprintf().
static sprintfToken hsaNext | ( | headerSprintfArgs | hsa | ) | [static] |
Return next hsa iteration item.
hsa | headerSprintf args |
Definition at line 1992 of file hdrfmt.c.
References sprintfToken_s::array, _HE_s::avail, headerSprintfArgs_s::format, sprintfTag_s::he, headerNext(), headerSprintfArgs_s::hi, headerSprintfArgs_s::i, headerSprintfArgs_s::numTokens, rpmheClean(), _HE_s::tag, sprintfToken_s::tag, sprintfTag_s::tagno, sprintfToken_s::type, and sprintfToken_s::u.
Referenced by headerSprintf().
static char* hsaReserve | ( | headerSprintfArgs | hsa, | |
size_t | need | |||
) | [static] |
Reserve sufficient buffer space for next output value.
hsa | headerSprintf args | |
need | no. of bytes to reserve |
Definition at line 2048 of file hdrfmt.c.
References headerSprintfArgs_s::alloced, headerSprintfArgs_s::val, headerSprintfArgs_s::vallen, and xrealloc().
Referenced by formatValue(), headerSprintf(), and singleSprintf().
Retrieve i18n text.
h | header |
*he | tag container |
Definition at line 1241 of file hdrfmt.c.
References _free(), alloca(), _HE_s::c, dgettext, _HE_s::freeData, getenv(), headerGet(), HEADERGET_NOEXTENSION, _HE_s::p, rpmDataType_u::ptr, RPM_STRING_TYPE, rpmExpand(), setenv(), rpmDataType_u::str, _HE_s::t, _HE_s::tag, tagName(), unsetenv(), xstrdup(), and xstrtolocale().
Referenced by descriptionTag(), groupTag(), and summaryTag().
Retrieve install prefixes.
h | header |
*he | tag container |
Definition at line 1021 of file hdrfmt.c.
References _free(), rpmDataType_u::argv, _HE_s::c, _HE_s::freeData, headerGet(), _HE_s::p, rpmDataType_u::ptr, RPM_STRING_TYPE, rpmDataType_u::str, _HE_s::t, _HE_s::tag, and xstrdup().
static char* intFormat | ( | HE_t | he, | |
const char * | fmt | |||
) | [static] |
Convert tag data representation.
he | tag container | |
fmt | output radix (NULL or "" assumes d) |
Definition at line 42 of file hdrfmt.c.
References _, alloca(), rpmDataType_u::argv, _HE_s::c, _HE_s::ix, _HE_s::p, RPM_BIN_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, RPM_UINT16_TYPE, RPM_UINT32_TYPE, RPM_UINT64_TYPE, RPM_UINT8_TYPE, rpmDataType_u::str, _HE_s::t, rpmDataType_u::ui16p, rpmDataType_u::ui32p, rpmDataType_u::ui64p, rpmDataType_u::ui8p, and xstrdup().
Referenced by decFormat(), formatValue(), hexFormat(), and octFormat().
Retrieve text and convert to locale.
Definition at line 1336 of file hdrfmt.c.
References _free(), rpmDataType_u::argv, _HE_s::c, _HE_s::freeData, headerGet(), HEADERGET_NOEXTENSION, _HE_s::p, rpmDataType_u::ptr, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, stpcpy(), rpmDataType_u::str, _HE_s::t, xmalloc(), xstrdup(), and xstrtolocale().
Referenced by changelognameTag(), and changelogtextTag().
static const char* myTagName | ( | headerTagTableEntry | tbl, | |
uint32_t | val, | |||
uint32_t * | typep | |||
) | [static] |
Return tag name from value.
tbl | tag table | |
val | tag value to find |
*typep | tag type (or NULL) |
Definition at line 2068 of file hdrfmt.c.
References rpmTagTable, tagName(), tagType(), and xtolower().
Referenced by singleSprintf().
static uint32_t myTagValue | ( | headerTagTableEntry | tbl, | |
const char * | name | |||
) | [static] |
Return tag value from name.
tbl | tag table | |
name | tag name to find |
Definition at line 2107 of file hdrfmt.c.
References rpmTagTable, tagValue(), and xstrcasecmp().
Referenced by findTag().
Retrieve N-V-R.A compound string from header.
h | header |
*he | tag container |
Definition at line 1521 of file hdrfmt.c.
References _HE_s::c, _HE_s::freeData, hGetNVRA(), _HE_s::p, RPM_STRING_TYPE, rpmDataType_u::str, and _HE_s::t.
static char* octFormat | ( | HE_t | he | ) | [static] |
Return octal formatted data.
he | tag container |
Definition at line 117 of file hdrfmt.c.
References intFormat().
Definition at line 1655 of file hdrfmt.c.
References _fnTag(), and _HE_s::tag.
static int parseExpression | ( | headerSprintfArgs | hsa, | |
sprintfToken | token, | |||
char * | str, | |||
char ** | endPtr | |||
) | [static] |
Parse a headerSprintf expression.
hsa | headerSprintf args | |
token | ||
str |
*endPtr |
Definition at line 2495 of file hdrfmt.c.
References _, _hdr_debug, sprintfToken_s::cond, headerSprintfArgs_s::errmsg, findTag(), freeFormat(), parseFormat(), PARSER_IN_EXPR, sprintfToken_s::type, and sprintfToken_s::u.
Referenced by parseFormat().
static int parseFormat | ( | headerSprintfArgs | hsa, | |
char * | str, | |||
sprintfToken * | formatPtr, | |||
size_t * | numTokensPtr, | |||
char ** | endPtr, | |||
int | state | |||
) | [static] |
Parse a headerSprintf term.
hsa | headerSprintf args | |
str |
*formatPtr | ||
*numTokensPtr | ||
*endPtr |
state |
Definition at line 2217 of file hdrfmt.c.
References _, _hdr_debug, sprintfToken_s::array, sprintfTag_s::arrayCount, headerSprintfArgs_s::errmsg, escapedChar(), findTag(), sprintfTag_s::format, freeFormat(), sprintfTag_s::justOne, next, sprintfTag_s::pad, parseExpression(), PARSER_IN_ARRAY, PARSER_IN_EXPR, sprintfToken_s::string, sprintfToken_s::tag, sprintfTag_s::type, sprintfToken_s::type, sprintfToken_s::u, xcalloc(), and xisdigit().
Referenced by headerSprintf(), and parseExpression().
static char* permsFormat | ( | HE_t | he | ) | [static] |
Format file permissions for display.
he | tag container |
Definition at line 359 of file hdrfmt.c.
References _, _HE_s::ix, _HE_s::p, RPM_UINT64_TYPE, rpmPermsString(), _HE_s::t, rpmDataType_u::ui64p, and xstrdup().
static char* pgpsigFormat | ( | HE_t | he | ) | [static] |
Display signature fingerprint and time.
he | tag container |
Definition at line 866 of file hdrfmt.c.
References _, _HE_s::ix, _HE_s::p, pgpDigFree(), pgpDigNew(), pgpGetSignature(), pgpGrab(), PGPHASHALGO_MD5, PGPHASHALGO_SHA1, pgpHexStr(), pgpLen(), pgpPrtPkts(), PGPPUBKEYALGO_DSA, PGPPUBKEYALGO_RSA, PGPTAG_SIGNATURE, RPM_BIN_TYPE, snprintf(), stpcpy(), _HE_s::t, rpmDataType_u::ui8p, xrealloc(), and xstrdup().
static char* realDateFormat | ( | HE_t | he, | |
const char * | strftimeFormat | |||
) | [static] |
Return strftime formatted data.
he | tag container | |
strftimeFormat | strftime(3) format |
Definition at line 151 of file hdrfmt.c.
References _, _HE_s::p, RPM_UINT64_TYPE, _HE_s::t, rpmDataType_u::ui64p, and xstrdup().
Referenced by dateFormat(), and dayFormat().
void rpmDisplayQueryTags | ( | FILE * | fp, | |
headerTagTableEntry | _rpmTagTable, | |||
headerSprintfExtension | _rpmHeaderFormats | |||
) |
Display list of tags that can be used in --queryformat.
fp | file handle to use for display (NULL uses stdout) | |
_rpmTagTable | rpm tag table (NULL uses rpmTagTable) | |
_rpmHeaderFormats | rpm tag extensions & formats (NULL uses headerCompoundFormats) |
Definition at line 1718 of file hdrfmt.c.
References RPM_ARRAY_RETURN_TYPE, RPM_ASN1_RETURN_TYPE, RPM_MAPPING_RETURN_TYPE, RPM_MASK_TYPE, RPM_MAX_TYPE, RPM_OPAQUE_RETURN_TYPE, RPM_OPENPGP_RETURN_TYPE, RPM_PROBE_RETURN_TYPE, RPM_TREE_RETURN_TYPE, RPM_X509_RETURN_TYPE, rpmIsVerbose, rpmTagTable, tagValue(), and ttype.
Referenced by rpmcliAllArgCallback().
static HE_t rpmecFree | ( | const headerSprintfExtension | exts, | |
HE_t | ec | |||
) | [static] |
Destroy an extension cache.
exts | headerSprintf extensions | |
ec | extension cache |
Definition at line 3027 of file hdrfmt.c.
References _free(), and rpmheClean().
Referenced by headerSprintf().
static HE_t rpmecNew | ( | const headerSprintfExtension | exts, | |
int * | necp | |||
) | [static] |
Create an extension cache.
exts | headerSprintf extensions |
*necp | no. of elements (or NULL) |
Definition at line 3001 of file hdrfmt.c.
References xcalloc().
Referenced by headerSprintf().
static void rpmfiBuildFNames | ( | Header | h, | |
rpmTag | tagN, | |||
const char *** | fnp, | |||
rpmTagCount * | fcp | |||
) | [static] |
Retrieve file names from header.
The representation of file names in package headers changed in rpm-4.0. Originally, file names were stored as an array of absolute paths. In rpm-4.0, file names are stored as separate arrays of dirname's and basename's, * with a dirname index to associate the correct dirname with each basname.
This function is used to retrieve file names independent of how the file names are represented in the package header.
h | header | |
tagN | RPMTAG_BASENAMES | PMTAG_ORIGBASENAMES |
*fnp | array of file names | |
*fcp | number of files |
Definition at line 1552 of file hdrfmt.c.
References _free(), alloca(), rpmDataType_u::argv, _HE_s::c, headerGet(), _HE_s::p, rpmDataType_u::ptr, stpcpy(), _HE_s::tag, rpmDataType_u::ui32p, urlPath(), and xmalloc().
Referenced by _fnTag().
Clean a tag container, free'ing attached malloc's.
he | tag container |
Definition at line 1907 of file hdrfmt.c.
References _free(), _HE_s::freeData, _HE_s::p, and rpmDataType_u::ptr.
Referenced by formatValue(), freeFormat(), getExtension(), hsaNext(), rpmecFree(), and singleSprintf().
static char* rpmPermsString | ( | int | mode | ) | [static] |
static char* shescapeFormat | ( | HE_t | he | ) | [static] |
Return shell escape formatted data.
he | tag container |
Definition at line 203 of file hdrfmt.c.
References _, _HE_s::p, RPM_STRING_TYPE, RPM_UINT32_TYPE, RPM_UINT64_TYPE, snprintf(), rpmDataType_u::str, _HE_s::t, rpmDataType_u::ui32p, rpmDataType_u::ui64p, xmalloc(), and xstrdup().
static char* singleSprintf | ( | headerSprintfArgs | hsa, | |
sprintfToken | token, | |||
uint32_t | element | |||
) | [static] |
Format a single headerSprintf item.
hsa | headerSprintf args | |
token | item to format | |
element | element index |
Definition at line 2776 of file hdrfmt.c.
References _, sprintfToken_s::array, sprintfTag_s::arrayCount, _HE_s::avail, _HE_s::c, sprintfToken_s::cond, headerSprintfArgs_s::ec, headerSprintfArgs_s::errmsg, sprintfTag_s::ext, sprintfTag_s::extNum, formatValue(), getExtension(), headerSprintfArgs_s::h, sprintfTag_s::he, headerGet(), headerIsEntry(), hsaReserve(), sprintfTag_s::justOne, myTagName(), RPM_ARRAY_RETURN_TYPE, RPM_BIN_TYPE, RPM_MASK_RETURN_TYPE, RPM_SCALAR_RETURN_TYPE, RPM_STRING_TYPE, rpmheClean(), snprintf(), stpcpy(), sprintfToken_s::string, _HE_s::t, _HE_s::tag, sprintfToken_s::tag, sprintfTag_s::tagno, headerSprintfArgs_s::tags, sprintfTag_s::type, sprintfToken_s::type, sprintfToken_s::u, headerSprintfArgs_s::val, and headerSprintfArgs_s::vallen.
Referenced by headerSprintf().
Retrieve summary text.
h | header |
*he | tag container |
Definition at line 1390 of file hdrfmt.c.
References i18nTag(), and _HE_s::tag.
Retrieve trigger info.
h | header |
*he | tag container |
Definition at line 1047 of file hdrfmt.c.
References _free(), alloca(), rpmDataType_u::argv, _HE_s::c, depflagsFormat(), _HE_s::freeData, headerGet(), _HE_s::p, rpmDataType_u::ptr, RPM_STRING_ARRAY_TYPE, RPM_UINT32_TYPE, RPMSENSE_SENSEMASK, _HE_s::t, _HE_s::tag, rpmDataType_u::ui32p, xmalloc(), xrealloc(), and xstrdup().
static char* triggertypeFormat | ( | HE_t | he | ) | [static] |
Identify type of trigger.
he | tag container |
Definition at line 330 of file hdrfmt.c.
References _, _HE_s::ix, _HE_s::p, RPM_UINT64_TYPE, _HE_s::t, rpmDataType_u::ui64p, and xstrdup().
Retrieve trigger type info.
h | header |
*he | tag container |
Definition at line 1154 of file hdrfmt.c.
References _free(), alloca(), rpmDataType_u::argv, _HE_s::c, _HE_s::freeData, headerGet(), _HE_s::p, rpmDataType_u::ptr, RPM_STRING_ARRAY_TYPE, _HE_s::t, _HE_s::tag, rpmDataType_u::ui32p, xmalloc(), and xstrdup().
static char* xmlFormat | ( | HE_t | he | ) | [static] |
Wrap tag data in simple header xml markup.
he | tag container |
Definition at line 569 of file hdrfmt.c.
References _, _free(), alloca(), rpmDataType_u::argv, base64Format(), _HE_s::ix, _HE_s::p, RPM_BIN_TYPE, RPM_I18NSTRING_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, RPM_UINT16_TYPE, RPM_UINT32_TYPE, RPM_UINT64_TYPE, RPM_UINT8_TYPE, snprintf(), stpcpy(), rpmDataType_u::str, _HE_s::t, rpmDataType_u::ui16p, rpmDataType_u::ui32p, rpmDataType_u::ui64p, rpmDataType_u::ui8p, xmlstrcpy(), xmlstrlen(), xstrdup(), and xstrtolocale().
static char* xmlstrcpy | ( | char * | t, | |
const char * | s | |||
) | [static] |
Copy source string to target, substituting for xml characters.
t | target xml string | |
s | source string |
Definition at line 546 of file hdrfmt.c.
References stpcpy().
Referenced by xmlFormat().
static size_t xmlstrlen | ( | const char * | s | ) | [static] |
Return length of string represented with xml characters substituted.
s | string |
Definition at line 522 of file hdrfmt.c.
Referenced by xmlFormat().
static char* yamlFormat | ( | HE_t | he | ) | [static] |
Wrap tag data in simple header yaml markup.
he | tag container |
Definition at line 726 of file hdrfmt.c.
References _, _free(), alloca(), rpmDataType_u::argv, base64Format(), _HE_s::ix, _HE_s::p, RPM_BIN_TYPE, RPM_I18NSTRING_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, RPM_UINT16_TYPE, RPM_UINT32_TYPE, RPM_UINT64_TYPE, RPM_UINT8_TYPE, snprintf(), stpcpy(), rpmDataType_u::str, _HE_s::t, rpmDataType_u::ui16p, rpmDataType_u::ui32p, rpmDataType_u::ui64p, rpmDataType_u::ui8p, xstrdup(), xstrtolocale(), yamlstrcpy(), and yamlstrlen().
static char* yamlstrcpy | ( | char * | t, | |
const char * | s, | |||
int | lvl | |||
) | [static] |
Copy source string to target, indenting for yaml.
t | target yaml string | |
s | source string | |
lvl | indentation level |
Definition at line 697 of file hdrfmt.c.
References indent.
Referenced by yamlFormat().
static size_t yamlstrlen | ( | const char * | s, | |
int | lvl | |||
) | [static] |
Return length of string represented with yaml indentation.
s | string | |
lvl | indentation level |
Definition at line 670 of file hdrfmt.c.
References indent.
Referenced by yamlFormat().
int _hdr_debug |
struct headerSprintfExtension_s _headerCompoundFormats[] [static] |
struct headerSprintfExtension_s _headerDefaultFormats[] [static] |
{ { HEADER_EXT_FORMAT, "octal", { .fmtFunction = octFormat } }, { HEADER_EXT_FORMAT, "oct", { .fmtFunction = octFormat } }, { HEADER_EXT_FORMAT, "hex", { .fmtFunction = hexFormat } }, { HEADER_EXT_FORMAT, "decimal", { .fmtFunction = decFormat } }, { HEADER_EXT_FORMAT, "dec", { .fmtFunction = decFormat } }, { HEADER_EXT_FORMAT, "date", { .fmtFunction = dateFormat } }, { HEADER_EXT_FORMAT, "day", { .fmtFunction = dayFormat } }, { HEADER_EXT_FORMAT, "shescape", { .fmtFunction = shescapeFormat } }, { HEADER_EXT_LAST, NULL, { NULL } } }
const char* _macro_i18ndomains = "%{?_i18ndomains}" [static] |