rpm 5.2.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

Data Structures | Defines | Typedefs | Enumerations | Functions | Variables
rpmdb/hdrfmt.c File Reference
HEADER.
`#include "system.h"`
`#include "rpmio_internal.h"`
`#include <rpmbc.h>`
`#include <rpmcb.h>`
`#include <rpmmacro.h>`
`#include <rpmuuid.h>`
`#include <argv.h>`
`#include <ugid.h>`
`#include <rpmtag.h>`
`#include <rpmevr.h>`
`#include <rpmns.h>`
`#include <rpmdb.h>`
`#include <rpmtypes.h>`
`#include "misc.h"`
`#include <rpmfi.h>`
`#include "legacy.h"`
`#include "debug.h"`
Include dependency graph for hdrfmt.c:

Go to the source code of this file.

## Data Structures

struct | key_s
struct | sprintfTag_s
struct | sprintfToken_s
struct | headerSprintfArgs_s

## Defines

#define | _MIRE_INTERNAL
#define | _RPMTAG_INTERNAL
#define | _RPMEVR_INTERNAL
#define | PARSER_BEGIN 0
#define | PARSER_IN_ARRAY 1
#define | PARSER_IN_EXPR 2
#define | isSEP(_c) ((_c) == ':' || (_c) == '|')

## Typedefs

typedef struct key_s | KEY
typedef struct sprintfTag_s * | sprintfTag
typedef struct sprintfToken_s * | sprintfToken
typedef struct headerSprintfArgs_s * | headerSprintfArgs

## Enumerations

enum

keyStat_e {
STAT_KEYS_NONE = 0, STAT_KEYS_DEV = (1U << 0), STAT_KEYS_INO = (1U << 1), STAT_KEYS_MODE = (1U << 2),
STAT_KEYS_NLINK = (1U << 3), STAT_KEYS_UID = (1U << 4), STAT_KEYS_GID = (1U << 5), STAT_KEYS_RDEV = (1U << 6),
STAT_KEYS_SIZE = (1U << 7), STAT_KEYS_BLKSIZE = (1U << 8), STAT_KEYS_BLOCKS = (1U << 9), STAT_KEYS_ATIME = (1U << 10),
STAT_KEYS_CTIME = (1U << 11), STAT_KEYS_MTIME = (1U << 12), STAT_KEYS_SLINK = (1U << 14), STAT_KEYS_DIGEST = (1U << 15),
STAT_KEYS_UNAME = (1U << 17), STAT_KEYS_GNAME = (1U << 18)
}

| Bit field enum for stat(2) keys. More...
enum | keyUuids_e { UUID_KEYS_NONE = (0U << 0), UUID_KEYS_V1 = (1U << 0), UUID_KEYS_V3 = (3U << 0), UUID_KEYS_V4 = (4U << 0), UUID_KEYS_V5 = (5U << 0) }
| Bit field enum for stat(2) keys. More...

## Functions

static char * | intFormat (HE_t he, const char **av, const char *fmt)
| Convert tag data representation.
static char * | octFormat (HE_t he, const char **av)
| Return octal formatted data.
static char * | hexFormat (HE_t he, const char **av)
| Return hex formatted data.
static char * | decFormat (HE_t he, const char **av)
| Return decimal formatted data.
static char * | realDateFormat (HE_t he, const char **av, const char *strftimeFormat)
| Return strftime formatted data.
static char * | dateFormat (HE_t he, const char **av)
| Return date formatted data.
static char * | dayFormat (HE_t he, const char **av)
| Return day formatted data.
static char * | shescapeFormat (HE_t he, const char **av)
| Return shell escape formatted data.
static char * | rpmPermsString (int mode)
static char * | triggertypeFormat (HE_t he, const char **av)
| Identify type of trigger.
static char * | permsFormat (HE_t he, const char **av)
| Format file permissions for display.
static char * | fflagsFormat (HE_t he, const char **av)
| Format file flags for display.
static char * | armorFormat (HE_t he, const char **av)
| Wrap a pubkey in ascii armor for display.
static char * | base64Format (HE_t he, const char **av)
| 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 * | strdup_locale_convert (const char *buffer, const char *tocode)
static char * | cdataFormat (HE_t he, const char **av)
| Encode string for use in XML CDATA.
static char * | iconvFormat (HE_t he, const char **av)
| Convert string encoding.
static char * | xmlFormat (HE_t he, const char **av)
| 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, const char **av)
| Wrap tag data in simple header yaml markup.
static char * | pgpsigFormat (HE_t he, const char **av)
| Display signature fingerprint and time.
static char * | depflagsFormat (HE_t he, const char **av)
| Format dependency flags for display.
static char * | deptypeFormat (HE_t he, const char **av)
| Format dependency type for display.
static int | instprefixTag (Header h, HE_t he)
| Retrieve install prefixes.
static int | tv2uuidv1 (Header h, HE_t he, struct timeval *tv)
| Convert unix timeval to UUIDv1.
static int | tag2uuidv1 (Header h, HE_t he)
| Retrieve time and convert to UUIDv1.
static int | installtime_uuidTag (Header h, HE_t he)
| Retrieve install time and convert to UUIDv1.
static int | buildtime_uuidTag (Header h, HE_t he)
| Retrieve build time and convert to UUIDv1.
static int | origintime_uuidTag (Header h, HE_t he)
| Retrieve origin time and convert to UUIDv1.
static int | installtid_uuidTag (Header h, HE_t he)
| Retrieve install tid and convert to UUIDv1.
static int | removetid_uuidTag (Header h, HE_t he)
| Retrieve remove tid and convert to UUIDv1.
static int | origintid_uuidTag (Header h, HE_t he)
| Retrieve origin tid and convert to UUIDv1.
static int | str2uuid (HE_t he, const char **av, rpmuint32_t version, char *val)
| Convert tag string to UUID.
static int | tag2uuidv5 (Header h, HE_t he)
| Retrieve tag and convert to UUIDv5.
static int | pkguuidTag (Header h, HE_t he)
| Retrieve pkgid and convert to UUIDv5.
static int | sourcepkguuidTag (Header h, HE_t he)
| Retrieve sourcepkgid and convert to UUIDv5.
static int | hdruuidTag (Header h, HE_t he)
| Retrieve hdrid and convert to UUIDv5.
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 int | headerstartoffTag (Header h, HE_t he)
| Retrieve starting byte offset of header.
static int | headerendoffTag (Header h, HE_t he)
| Retrieve ending byte offset of header.
static int | pkgoriginTag (Header h, HE_t he)
| Retrieve package origin from header.
static int | pkgbaseurlTag (Header h, HE_t he)
| Retrieve package baseurl from header.
static int | pkgdigestTag (Header h, HE_t he)
| Retrieve package digest from header.
static int | pkgmtimeTag (Header h, HE_t he)
| Retrieve *.rpm package st->st_mtime from header.
static int | pkgsizeTag (Header h, HE_t he)
| Retrieve *.rpm package st->st_size 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, rpmTag tag)
| Retrieve file paths.
static int | filenamesTag (Header h, HE_t he)
static int | filepathsTag (Header h, HE_t he)
static int | origpathsTag (Header h, HE_t he)
static int | debevrfmtTag (Header h, HE_t he, HE_t Nhe, HE_t EVRhe, HE_t Fhe)
| Return Debian formatted dependencies as string array.
static int | debevrTag (Header h, HE_t he, rpmTag tagN, rpmTag tagEVR, rpmTag tagF)
| Retrieve and return Debian formatted dependecies for --deb:control.
static int | debconflictsTag (Header h, HE_t he)
| Retrieve Depends: and Conflicts: for --deb:control.
static int | debdependsTag (Header h, HE_t he)
static int | debobsoletesTag (Header h, HE_t he)
static int | debprovidesTag (Header h, HE_t he)
static int | debmd5sumsTag (Header h, HE_t he)
| Retrieve digest/path pairs for --deb:md5sums.
static int | filestatTag (Header h, HE_t he)
static int | wnlookupTag (Header h, rpmTag tagNVRA, ARGV_t *avp, ARGI_t *hitp, HE_t PNhe, HE_t PEVRhe, HE_t PFhe)
static int | whatneedsTag (Header h, HE_t he)
static int | nwlookupTag (Header h, rpmTag tagNVRA, ARGV_t *avp, ARGI_t *hitp, HE_t RNhe, HE_t REVRhe, HE_t RFhe)
static int | needswhatTag (Header h, HE_t he)
static int | PRCOSkip (rpmTag tag, rpmTagData N, rpmTagData EVR, rpmTagData F, rpmuint32_t i)
static int | PRCOxmlTag (Header h, HE_t he, rpmTag EVRtag, rpmTag Ftag)
static int | PxmlTag (Header h, HE_t he)
static int | RxmlTag (Header h, HE_t he)
static int | CxmlTag (Header h, HE_t he)
static int | OxmlTag (Header h, HE_t he)
static size_t | sqlstrlen (const char *s)
| Return length of string represented with single quotes doubled.
static char * | sqlstrcpy (char *t, const char *s)
| Copy source string to target, doubling single quotes.
static char * | sqlescapeFormat (HE_t he, const char **av)
| Encode string for use in SQL statements.
static int | PRCOsqlTag (Header h, HE_t he, rpmTag EVRtag, rpmTag Ftag)
static int | PsqlTag (Header h, HE_t he)
static int | RsqlTag (Header h, HE_t he)
static int | CsqlTag (Header h, HE_t he)
static int | OsqlTag (Header h, HE_t he)
static int | PRCOyamlTag (Header h, HE_t he, rpmTag EVRtag, rpmTag Ftag)
static int | PyamlTag (Header h, HE_t he)
static int | RyamlTag (Header h, HE_t he)
static int | CyamlTag (Header h, HE_t he)
static int | OyamlTag (Header h, HE_t he)
static int | FDGSkip (rpmTagData DN, rpmTagData BN, rpmTagData DI, rpmuint32_t i)
static int | FDGxmlTag (Header h, HE_t he, int lvl)
static int | F1xmlTag (Header h, HE_t he)
static int | F2xmlTag (Header h, HE_t he)
static int | FDGsqlTag (Header h, HE_t he, int lvl)
static int | F1sqlTag (Header h, HE_t he)
static int | F2sqlTag (Header h, HE_t he)
static int | FDGyamlTag (Header h, HE_t he, int lvl)
static int | F1yamlTag (Header h, HE_t he)
static int | F2yamlTag (Header h, HE_t he)
static char * | bncdataFormat (HE_t he, const char **av)
| Encode the basename of a string for use in XML CDATA.
static int | keyCmp (const void *a, const void *b)
static rpmuint32_t | keyValue (KEY *keys, size_t nkeys, const char *name)
static char * | digestFormat (HE_t he, const char **av)
| Return digest of tag data.
static char * | statFormat (HE_t he, const char **av)
| Return file info.
static char * | uuidFormat (HE_t he, const char **av)
| Reformat tag string as a UUID.
static char * | rpnFormat (HE_t he, const char **av)
| Return arithmetic expressions of input.
static char * | strsubFormat (HE_t he, const char **av)
| Replace string values.
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, rpmuint32_t val, rpmuint32_t *typep)
| Return tag name from value.
static rpmuint32_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, size_t element)
| Format a single item's value.
static char * | singleSprintf (headerSprintfArgs hsa, sprintfToken token, size_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 | _hdrqf_debug
static struct headerSprintfExtension_s | _headerDefaultFormats []
headerSprintfExtension | headerDefaultFormats = &_headerDefaultFormats[0]
| Supported default header tag output formats.
static const char | uuid_ns [] = "ns:URL"
static const char | uuid_auth [] = "%{?_uuid_auth}%{!?_uuid_auth:http://rpm5.org}"
static const char | uuid_path [] = "%{?_uuid_path}%{!?_uuid_path:/package}"
static rpmuint32_t | uuid_version = 5
static const char * | language = "LANGUAGE"
static const char * | _macro_i18ndomains = "%{?_i18ndomains}"
static KEY | keyDigests []
static size_t | nkeyDigests = sizeof(keyDigests) / sizeof(keyDigests[0])
static KEY | keyStat []
static size_t | nkeyStat = sizeof(keyStat) / sizeof(keyStat[0])
static KEY | keyUuids []
static size_t | nkeyUuids = sizeof(keyUuids) / sizeof(keyUuids[0])
static struct headerSprintfExtension_s | _headerCompoundFormats []
headerSprintfExtension | headerCompoundFormats = &_headerCompoundFormats[0]
| Supported default header extension/tag output formats.

## Detailed Description

Definition in file hdrfmt.c.

## Define Documentation

#define _MIRE_INTERNAL

Definition at line 38 of file hdrfmt.c.

#define _RPMEVR_INTERNAL

Definition at line 49 of file hdrfmt.c.

#define _RPMTAG_INTERNAL

Definition at line 47 of file hdrfmt.c.

#define isSEP | ( |  | _c | ) | ((_c) == ':' || (_c) == '|')

Referenced by parseFormat().

#define PARSER_BEGIN 0

Definition at line 4920 of file hdrfmt.c.

Referenced by headerSprintf().

#define PARSER_IN_ARRAY 1

Definition at line 4921 of file hdrfmt.c.

Referenced by parseFormat().

#define PARSER_IN_EXPR 2

Definition at line 4922 of file hdrfmt.c.

Referenced by parseExpression(), and parseFormat().

## Typedef Documentation

typedef struct key_s KEY

## Enumeration Type Documentation

enum keyStat_e

Bit field enum for stat(2) keys.

Enumerator:

  STAT_KEYS_NONE |
  STAT_KEYS_DEV | st_dev
  STAT_KEYS_INO | st_ino
  STAT_KEYS_MODE | st_mode
  STAT_KEYS_NLINK | st_nlink
  STAT_KEYS_UID | st_uid
  STAT_KEYS_GID | st_gid
  STAT_KEYS_RDEV | st_rdev
  STAT_KEYS_SIZE | st_size
  STAT_KEYS_BLKSIZE | st_blksize
  STAT_KEYS_BLOCKS | st_blocks
  STAT_KEYS_ATIME | st_atime
  STAT_KEYS_CTIME | st_ctime
  STAT_KEYS_MTIME | st_mtime
  STAT_KEYS_SLINK | symlink
  STAT_KEYS_DIGEST | digest
  STAT_KEYS_UNAME | user name
  STAT_KEYS_GNAME | group name

Definition at line 4076 of file hdrfmt.c.

enum keyUuids_e

Bit field enum for stat(2) keys.

Enumerator:

  UUID_KEYS_NONE |
  UUID_KEYS_V1 |
  UUID_KEYS_V3 |
  UUID_KEYS_V4 |
  UUID_KEYS_V5 |

Definition at line 4153 of file hdrfmt.c.

## Function Documentation

static int _fnTag | ( | Header | h,
|  | HE_t | he,
|  | rpmTag | tag
| ) |  | `[static]`

Retrieve file paths.

Parameters:

  h | header

Return values:

  *he | tag container

Parameters:

  tag | RPMTAG_BASENAMES or RPMTAG_ORIGBASENAMES

Returns:
  0 on success

Definition at line 2388 of file hdrfmt.c.

References rpmDataType_u::argv, _HE_s::c, _HE_s::freeData, _HE_s::p, RPM_STRING_ARRAY_TYPE, rpmfiBuildFNames(), and _HE_s::t.

Referenced by filenamesTag(), filepathsTag(), filestatTag(), and origpathsTag().

static char* armorFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Wrap a pubkey in ascii armor for display.

Todo:
  Permit selectable display formats (i.e. binary).

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 475 of file hdrfmt.c.

References _, _free(), _HE_s::c, _HE_s::ix, _HE_s::p, PGPARMOR_PUBKEY, PGPARMOR_SIGNATURE, 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,
|  | const char ** | av
| ) |  | `[static]`

Encode binary data in base64 for display.

Todo:
  Permit selectable display formats (i.e. binary).

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 526 of file hdrfmt.c.

References _, _free(), _HE_s::c, _HE_s::ix, _HE_s::p, rpmDataType_u::ptr, RPM_BIN_TYPE, RPM_STRING_TYPE, RPM_UINT64_TYPE, stpcpy(), rpmDataType_u::str, _HE_s::t, rpmDataType_u::ui64p, xcalloc(), and xstrdup().

Referenced by xmlFormat(), and yamlFormat().

static char* bncdataFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Encode the basename of a string for use in XML CDATA.

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 4002 of file hdrfmt.c.

References _, _free(), _HE_s::p, RPM_STRING_TYPE, rpmDataType_u::str, strdup_locale_convert(), _HE_s::t, xcalloc(), xmlstrcpy(), xmlstrlen(), and xstrdup().

static int buildtime_uuidTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve build time and convert to UUIDv1.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 1419 of file hdrfmt.c.

References RPMTAG_BUILDTIME, _HE_s::tag, and tag2uuidv1().

static char* cdataFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Encode string for use in XML CDATA.

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 729 of file hdrfmt.c.

References _, _free(), _HE_s::ix, _HE_s::p, RPM_STRING_TYPE, rpmDataType_u::str, strdup_locale_convert(), _HE_s::t, xcalloc(), xmlstrcpy(), xmlstrlen(), and xstrdup().

static int changelognameTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 2001 of file hdrfmt.c.

References localeTag(), RPMTAG_CHANGELOGNAME, and _HE_s::tag.

static int changelogtextTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 2009 of file hdrfmt.c.

References localeTag(), RPMTAG_CHANGELOGTEXT, and _HE_s::tag.

static int CsqlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 3385 of file hdrfmt.c.

References PRCOsqlTag(), RPMTAG_CONFLICTFLAGS, RPMTAG_CONFLICTNAME, RPMTAG_CONFLICTVERSION, and _HE_s::tag.

static int CxmlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 3160 of file hdrfmt.c.

References PRCOxmlTag(), RPMTAG_CONFLICTFLAGS, RPMTAG_CONFLICTNAME, RPMTAG_CONFLICTVERSION, and _HE_s::tag.

static int CyamlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 3512 of file hdrfmt.c.

References PRCOyamlTag(), RPMTAG_CONFLICTFLAGS, RPMTAG_CONFLICTNAME, RPMTAG_CONFLICTVERSION, and _HE_s::tag.

static char* dateFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Return date formatted data.

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 228 of file hdrfmt.c.

References _, and realDateFormat().

static char* dayFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Return day formatted data.

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 240 of file hdrfmt.c.

References _, and realDateFormat().

static int dbinstanceTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve db instance from header.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 2037 of file hdrfmt.c.

References _HE_s::c, _HE_s::freeData, headerGetInstance(), _HE_s::p, RPM_UINT32_TYPE, RPMTAG_DBINSTANCE, _HE_s::t, _HE_s::tag, rpmDataType_u::ui32p, and xmalloc().

static int debconflictsTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve Depends: and Conflicts: for --deb:control.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 2527 of file hdrfmt.c.

References debevrTag(), RPMTAG_CONFLICTFLAGS, RPMTAG_CONFLICTNAME, RPMTAG_CONFLICTVERSION, _HE_s::tag, and tagValue().

static int debdependsTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 2536 of file hdrfmt.c.

References debevrTag(), RPMTAG_REQUIREFLAGS, RPMTAG_REQUIRENAME, RPMTAG_REQUIREVERSION, _HE_s::tag, and tagValue().

static int debevrfmtTag | ( | Header | h,
|  | HE_t | he,
|  | HE_t | Nhe,
|  | HE_t | EVRhe,
|  | HE_t | Fhe
| ) |  | `[static]`

Return Debian formatted dependencies as string array.

Parameters:

  h | header

Return values:

  *he | tag container

Parameters:

  Nhe | dependency name container
  EVRhe | dependency epoch:version-release container
  Fhe | dependency flags container

Returns:
  0 on success

Definition at line 2431 of file hdrfmt.c.

References _free(), rpmDataType_u::argv, _HE_s::c, _HE_s::freeData, _HE_s::ix, _HE_s::p, RPM_STRING_ARRAY_TYPE, rpmExpand(), RPMSENSE_EQUAL, RPMSENSE_GREATER, RPMSENSE_LESS, stpcpy(), _HE_s::t, rpmDataType_u::ui32p, and xmalloc().

Referenced by debevrTag().

static int debevrTag | ( | Header | h,
|  | HE_t | he,
|  | rpmTag | tagN,
|  | rpmTag | tagEVR,
|  | rpmTag | tagF
| ) |  | `[static]`

Retrieve and return Debian formatted dependecies for --deb:control.

Parameters:

  h | header

Return values:

  *he | tag container

Parameters:

  tagN | dependency tag name
  tagEVR | dependency tag epoch:version-release
  tagF | dependency tag flags

Returns:
  0 on success

Definition at line 2490 of file hdrfmt.c.

References _free(), alloca(), _HE_s::c, debevrfmtTag(), headerGet(), _HE_s::p, rpmDataType_u::ptr, and _HE_s::tag.

Referenced by debconflictsTag(), debdependsTag(), debobsoletesTag(), and debprovidesTag().

static int debmd5sumsTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve digest/path pairs for --deb:md5sums.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 2569 of file hdrfmt.c.

References _free(), alloca(), rpmDataType_u::argv, _HE_s::c, _HE_s::freeData, headerGet(), _HE_s::ix, _HE_s::p, rpmDataType_u::ptr, RPM_STRING_ARRAY_TYPE, rpmExpand(), RPMTAG_FILEDIGESTS, RPMTAG_FILEPATHS, stpcpy(), _HE_s::t, _HE_s::tag, tagValue(), and xmalloc().

static int debobsoletesTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 2545 of file hdrfmt.c.

References debevrTag(), RPMTAG_OBSOLETEFLAGS, RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, _HE_s::tag, and tagValue().

static int debprovidesTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 2554 of file hdrfmt.c.

References debevrTag(), RPMTAG_PROVIDEFLAGS, RPMTAG_PROVIDENAME, RPMTAG_PROVIDEVERSION, _HE_s::tag, and tagValue().

static char* decFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Return decimal formatted data.

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 183 of file hdrfmt.c.

References intFormat().

static char* depflagsFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Format dependency flags for display.

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 1214 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().

static char* deptypeFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Format dependency type for display.

Todo:
  There's more sense bits, and the bits are attributes, not exclusive.

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 1266 of file hdrfmt.c.

References _, alloca(), _HE_s::ix, _HE_s::p, RPM_UINT64_TYPE, stpcpy(), _HE_s::t, rpmDataType_u::ui64p, and xstrdup().

static int descriptionTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve description text.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 1993 of file hdrfmt.c.

References i18nTag(), RPMTAG_DESCRIPTION, and _HE_s::tag.

static char* digestFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Return digest of tag data.

Parameters:

  he | tag container
  av | parameter list (NULL uses md5)

Returns:
  formatted string

Definition at line 4215 of file hdrfmt.c.

References _, _HE_s::c, _HE_s::ix, keyValue(), _HE_s::p, PGPHASHALGO_SHA1, rpmDataType_u::ptr, RPM_BIN_TYPE, RPM_STRING_TYPE, RPM_UINT64_TYPE, rpmDigestFinal(), rpmDigestInit(), rpmDigestUpdate(), rpmDataType_u::str, _HE_s::t, rpmDataType_u::ui64p, and xstrdup().

static char escapedChar | ( | const char | ch | ) | `[static]`

Definition at line 5022 of file hdrfmt.c.

References _hdrqf_debug.

Referenced by parseFormat().

static int F1sqlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 3835 of file hdrfmt.c.

References FDGsqlTag(), RPMTAG_BASENAMES, and _HE_s::tag.

static int F1xmlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 3680 of file hdrfmt.c.

References FDGxmlTag(), RPMTAG_BASENAMES, and _HE_s::tag.

static int F1yamlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 3980 of file hdrfmt.c.

References FDGyamlTag(), RPMTAG_BASENAMES, and _HE_s::tag.

static int F2sqlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 3843 of file hdrfmt.c.

References FDGsqlTag(), RPMTAG_BASENAMES, and _HE_s::tag.

static int F2xmlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 3688 of file hdrfmt.c.

References FDGxmlTag(), RPMTAG_BASENAMES, and _HE_s::tag.

static int F2yamlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 3988 of file hdrfmt.c.

References FDGyamlTag(), RPMTAG_BASENAMES, and _HE_s::tag.

static int FDGSkip | ( | rpmTagData | DN,
|  | rpmTagData | BN,
|  | rpmTagData | DI,
|  | rpmuint32_t | i
| ) |  | `[static]`

Definition at line 3528 of file hdrfmt.c.

References rpmDataType_u::argv, and rpmDataType_u::ui32p.

Referenced by FDGsqlTag(), FDGxmlTag(), and FDGyamlTag().

static int FDGsqlTag | ( | Header | h,
|  | HE_t | he,
|  | int | lvl
| ) |  | `[static]`

Definition at line 3696 of file hdrfmt.c.

References _free(), rpmDataType_u::argv, _HE_s::c, FDGSkip(), _HE_s::freeData, headerGet(), headerGetInstance(), _HE_s::p, rpmDataType_u::ptr, RPM_STRING_ARRAY_TYPE, RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, RPMTAG_FILEFLAGS, RPMTAG_FILEMODES, snprintf(), stpcpy(), _HE_s::t, _HE_s::tag, rpmDataType_u::ui16p, rpmDataType_u::ui32p, and xmalloc().

Referenced by F1sqlTag(), and F2sqlTag().

static int FDGxmlTag | ( | Header | h,
|  | HE_t | he,
|  | int | lvl
| ) |  | `[static]`

Definition at line 3544 of file hdrfmt.c.

References _free(), rpmDataType_u::argv, _HE_s::c, FDGSkip(), _HE_s::freeData, headerGet(), _HE_s::p, rpmDataType_u::ptr, RPM_STRING_ARRAY_TYPE, RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, RPMTAG_FILEFLAGS, RPMTAG_FILEMODES, stpcpy(), _HE_s::t, _HE_s::tag, rpmDataType_u::ui16p, rpmDataType_u::ui32p, xmalloc(), xmlstrcpy(), and xmlstrlen().

Referenced by F1xmlTag(), and F2xmlTag().

static int FDGyamlTag | ( | Header | h,
|  | HE_t | he,
|  | int | lvl
| ) |  | `[static]`

Definition at line 3851 of file hdrfmt.c.

References _free(), rpmDataType_u::argv, _HE_s::c, FDGSkip(), _HE_s::freeData, headerGet(), indent, _HE_s::p, rpmDataType_u::ptr, RPM_STRING_ARRAY_TYPE, RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, RPMTAG_FILEFLAGS, RPMTAG_FILEMODES, stpcpy(), _HE_s::t, _HE_s::tag, rpmDataType_u::ui16p, rpmDataType_u::ui32p, xmalloc(), yamlstrcpy(), and yamlstrlen().

Referenced by F1yamlTag(), and F2yamlTag().

static char* fflagsFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Format file flags for display.

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 433 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().

static int filenamesTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 2398 of file hdrfmt.c.

References _fnTag(), RPMTAG_BASENAMES, _HE_s::tag, and tagValue().

static int filepathsTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 2406 of file hdrfmt.c.

References _fnTag(), RPMTAG_BASENAMES, RPMTAG_FILEPATHS, and _HE_s::tag.

static int filestatTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 2623 of file hdrfmt.c.

References _fnTag(), _free(), _HE_s::c, rpmDataType_u::ptr, RPMTAG_BASENAMES, RPMTAG_FILEPATHS, and _HE_s::tag.

static int findTag | ( | headerSprintfArgs | hsa,
|  | sprintfToken | token,
|  | const char * | name
| ) |  | `[static]`

Search extensions and tags for a name.

Parameters:

  hsa | headerSprintf args
  token | parsed fields
  name | name to find

Returns:
  0 on success, 1 on not found

Definition at line 5286 of file hdrfmt.c.

References alloca(), argvCount(), sprintfTag_s::av, sprintfToken_s::cond, sprintfTag_s::ext, sprintfTag_s::extNum, headerSprintfArgs_s::exts, sprintfTag_s::fmtfuncs, myTagValue(), name, stpcpy(), sprintfToken_s::tag, sprintfTag_s::tagno, headerSprintfArgs_s::tags, tagValue(), sprintfToken_s::type, sprintfToken_s::u, xcalloc(), and xstrcasecmp().

Referenced by parseExpression(), and parseFormat().

static char* formatValue | ( | headerSprintfArgs | hsa,
|  | sprintfTag | tag,
|  | size_t | element
| ) |  | `[static]`

Format a single item's value.

Parameters:

  hsa | headerSprintf args
  tag | tag
  element | element index

Returns:
  end of formatted string (NULL on error)

Definition at line 5827 of file hdrfmt.c.

References _free(), _hdrqf_debug, alloca(), rpmDataType_u::argv, argvFree(), argvSplit(), sprintfTag_s::arrayCount, sprintfTag_s::av, _HE_s::avail, _HE_s::c, headerSprintfArgs_s::ec, sprintfTag_s::ext, sprintfTag_s::extNum, sprintfTag_s::fmtfuncs, 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, sprintfTag_s::params, rpmDataType_u::ptr, RPM_ARRAY_RETURN_TYPE, RPM_BIN_TYPE, RPM_I18NSTRING_TYPE, RPM_MASK_RETURN_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, RPM_UINT16_TYPE, RPM_UINT32_TYPE, RPM_UINT64_TYPE, RPM_UINT8_TYPE, rpmExpand(), rpmheClean(), snprintf(), stpcpy(), rpmDataType_u::str, _HE_s::t, _HE_s::tag, sprintfTag_s::tagno, tagType(), 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.

Parameters:

  format | sprintf format array
  num | number of elements

Returns:
  NULL always

Definition at line 5064 of file hdrfmt.c.

References _free(), argvFree(), sprintfToken_s::array, sprintfTag_s::av, sprintfToken_s::cond, sprintfTag_s::fmtfuncs, sprintfTag_s::he, sprintfTag_s::params, rpmheClean(), sprintfToken_s::tag, sprintfTag_s::tagno, 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.

Parameters:

  hsa | headerSprintf args
  fn | function

Return values:

  he | tag container
  ec | extension cache

Returns:
  1 on success, 0 on failure

Definition at line 5801 of file hdrfmt.c.

References _HE_s::avail, _HE_s::freeData, headerSprintfArgs_s::h, and rpmheClean().

Referenced by formatValue(), and singleSprintf().

static int groupTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve group text.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 2023 of file hdrfmt.c.

References i18nTag(), RPMTAG_GROUP, and _HE_s::tag.

static int hdruuidTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve hdrid and convert to UUIDv5.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 1618 of file hdrfmt.c.

References RPMTAG_HDRID, _HE_s::tag, and tag2uuidv5().

static int headerendoffTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve ending byte offset of header.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 2073 of file hdrfmt.c.

References _HE_s::c, _HE_s::freeData, headerGetEndOff(), _HE_s::p, RPM_UINT64_TYPE, RPMTAG_HEADERENDOFF, _HE_s::t, _HE_s::tag, rpmDataType_u::ui64p, and xmalloc().

static int headerstartoffTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve starting byte offset of header.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 2055 of file hdrfmt.c.

References _HE_s::c, _HE_s::freeData, headerGetStartOff(), _HE_s::p, RPM_UINT64_TYPE, RPMTAG_HEADERSTARTOFF, _HE_s::t, _HE_s::tag, rpmDataType_u::ui64p, and xmalloc().

static char* hexFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Return hex formatted data.

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 171 of file hdrfmt.c.

References intFormat().

static char* hGetNVRA | ( | Header | h | ) | `[static]`

Return (malloc'd) header name-version-release.arch string.

Parameters:

  h | header

Returns:
  name-version-release.arch string

Definition at line 2207 of file hdrfmt.c.

References _free(), headerNEVRA(), stpcpy(), and xmalloc().

Referenced by nvraTag().

static headerSprintfArgs hsaFini | ( | headerSprintfArgs | hsa | ) | `[static]`

Finish an hsa iteration.

Parameters:

  hsa | headerSprintf args

Returns:
  headerSprintf args

Definition at line 5182 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.

Parameters:

  hsa | headerSprintf args

Returns:
  headerSprintf args

Definition at line 5117 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.

Parameters:

  hsa | headerSprintf args

Returns:
  next sprintfToken (or NULL)

Definition at line 5144 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.

Parameters:

  hsa | headerSprintf args
  need | no. of bytes to reserve

Returns:
  pointer to reserved space

Definition at line 5202 of file hdrfmt.c.

References headerSprintfArgs_s::alloced, headerSprintfArgs_s::val, headerSprintfArgs_s::vallen, and xrealloc().

Referenced by formatValue(), headerSprintf(), and singleSprintf().

static int i18nTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve i18n text.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 1818 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(), RPMTAG_NAME, setenv(), snprintf(), rpmDataType_u::str, _HE_s::t, _HE_s::tag, tagName(), unsetenv(), xstrdup(), and xstrtolocale().

Referenced by descriptionTag(), groupTag(), and summaryTag().

static char* iconvFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Convert string encoding.

Parameters:

  he | tag container
  av | parameter list (NULL assumes UTF-8)

Returns:
  formatted string

Definition at line 765 of file hdrfmt.c.

References _, _HE_s::ix, _HE_s::p, RPM_STRING_TYPE, rpmDataType_u::str, strdup_locale_convert(), _HE_s::t, and xstrdup().

static int installtid_uuidTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve install tid and convert to UUIDv1.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 1447 of file hdrfmt.c.

References RPMTAG_INSTALLTID, _HE_s::tag, and tag2uuidv1().

static int installtime_uuidTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve install time and convert to UUIDv1.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 1405 of file hdrfmt.c.

References RPMTAG_INSTALLTIME, _HE_s::tag, and tag2uuidv1().

static int instprefixTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve install prefixes.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 1314 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, RPMTAG_INSTALLPREFIX, RPMTAG_INSTPREFIXES, rpmDataType_u::str, _HE_s::t, _HE_s::tag, and xstrdup().

static char* intFormat | ( | HE_t | he,
|  | const char ** | av,
|  | const char * | fmt
| ) |  | `[static]`

Convert tag data representation.

Parameters:

  he | tag container
  av | parameter list (or NULL)
  fmt | output radix (NULL or "" assumes d)

Returns:
  formatted string

Definition at line 82 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(), octFormat(), and rpnFormat().

static int keyCmp | ( | const void * | a,
|  | const void * | b
| ) |  | `[static]`

Definition at line 4186 of file hdrfmt.c.

Referenced by keyValue().

static rpmuint32_t keyValue | ( | KEY * | keys,
|  | size_t | nkeys,
|  | const char * | name
| ) |  | `[static]`

Definition at line 4195 of file hdrfmt.c.

References keyCmp(), name, key_s::name, and key_s::value.

Referenced by digestFormat(), statFormat(), and uuidFormat().

static int localeTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve text and convert to locale.

Definition at line 1924 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,
|  | rpmuint32_t | val,
|  | rpmuint32_t * | typep
| ) |  | `[static]`

Return tag name from value.

Parameters:

  tbl | tag table
  val | tag value to find

Return values:

  *typep | tag type (or NULL)

Returns:
  tag name, NULL on not found

Definition at line 5222 of file hdrfmt.c.

References name, rpmTagTable, tagName(), tagType(), and xtolower().

Referenced by singleSprintf().

static rpmuint32_t myTagValue | ( | headerTagTableEntry | tbl,
|  | const char * | name
| ) |  | `[static]`

Return tag value from name.

Parameters:

  tbl | tag table
  name | tag name to find

Returns:
  tag value, 0 on not found

Definition at line 5261 of file hdrfmt.c.

References rpmTagTable, tagValue(), and xstrcasecmp().

Referenced by findTag().

static int needswhatTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 2931 of file hdrfmt.c.

References _free(), alloca(), argiFree(), rpmDataType_u::argv, argvAdd(), argvCount(), argvFree(), _HE_s::c, headerGet(), _HE_s::ix, nwlookupTag(), _HE_s::p, rpmDataType_u::ptr, RPM_STRING_ARRAY_TYPE, RPMTAG_NVRA, RPMTAG_REQUIREFLAGS, RPMTAG_REQUIRENAME, RPMTAG_REQUIREVERSION, stpcpy(), rpmDataType_u::str, _HE_s::t, _HE_s::tag, and xmalloc().

static int nvraTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve N-V-R.A compound string from header.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 2259 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 int nwlookupTag | ( | Header | h,
|  | rpmTag | tagNVRA,
|  | ARGV_t * | avp,
|  | ARGI_t * | hitp,
|  | HE_t | RNhe,
|  | HE_t | REVRhe,
|  | HE_t | RFhe
| ) |  | `[static]`

Definition at line 2833 of file hdrfmt.c.

References _free(), alloca(), argiAdd(), argiCount(), argiData(), rpmDataType_u::argv, argvAdd(), argvSearch(), argvSort(), _HE_s::c, headerGet(), headerGetRpmdb(), _HE_s::ix, _HE_s::p, rpmDataType_u::ptr, rpmEVRfree(), rpmEVRnew(), rpmEVRoverlap(), rpmEVRparse(), rpmmiFree(), rpmmiInit(), rpmmiInstance(), rpmmiNext(), rpmmiPrune(), RPMSENSE_SENSEMASK, RPMTAG_BASENAMES, RPMTAG_NVRA, RPMTAG_PROVIDEFLAGS, RPMTAG_PROVIDENAME, RPMTAG_PROVIDEVERSION, rpmDataType_u::str, _HE_s::tag, and rpmDataType_u::ui32p.

Referenced by needswhatTag().

static char* octFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Return octal formatted data.

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 159 of file hdrfmt.c.

References intFormat().

static int origintid_uuidTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve origin tid and convert to UUIDv1.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 1475 of file hdrfmt.c.

References RPMTAG_ORIGINTID, _HE_s::tag, and tag2uuidv1().

static int origintime_uuidTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve origin time and convert to UUIDv1.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 1433 of file hdrfmt.c.

References RPMTAG_ORIGINTIME, _HE_s::tag, and tag2uuidv1().

static int origpathsTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 2414 of file hdrfmt.c.

References _fnTag(), RPMTAG_ORIGBASENAMES, RPMTAG_ORIGPATHS, and _HE_s::tag.

static int OsqlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 3393 of file hdrfmt.c.

References PRCOsqlTag(), RPMTAG_OBSOLETEFLAGS, RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, and _HE_s::tag.

static int OxmlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 3168 of file hdrfmt.c.

References PRCOxmlTag(), RPMTAG_OBSOLETEFLAGS, RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, and _HE_s::tag.

static int OyamlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 3520 of file hdrfmt.c.

References PRCOyamlTag(), RPMTAG_OBSOLETEFLAGS, RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, and _HE_s::tag.

static int parseExpression | ( | headerSprintfArgs | hsa,
|  | sprintfToken | token,
|  | char * | str,
|  | char ** | endPtr
| ) |  | `[static]`

Parse a headerSprintf expression.

Parameters:

  hsa | headerSprintf args
  token |
  str |

Return values:

  *endPtr |

Returns:
  0 on success

Definition at line 5690 of file hdrfmt.c.

References _, _hdrqf_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.

Parameters:

  hsa | headerSprintf args
  str |

Return values:

  *formatPtr |
  *numTokensPtr |
  *endPtr |

Parameters:

  state |

Returns:
  0 on success

Definition at line 5381 of file hdrfmt.c.

References _, _hdrqf_debug, argvAdd(), sprintfToken_s::array, sprintfTag_s::arrayCount, sprintfTag_s::av, headerSprintfArgs_s::errmsg, escapedChar(), findTag(), sprintfTag_s::format, freeFormat(), isSEP, sprintfTag_s::justOne, sprintfTag_s::pad, sprintfTag_s::params, parseExpression(), PARSER_IN_ARRAY, PARSER_IN_EXPR, sprintfToken_s::string, sprintfToken_s::tag, sprintfToken_s::type, sprintfToken_s::u, xcalloc(), and xisdigit().

Referenced by headerSprintf(), and parseExpression().

static char* permsFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Format file permissions for display.

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 410 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,
|  | const char ** | av
| ) |  | `[static]`

Display signature fingerprint and time.

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 1107 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 int pkgbaseurlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve package baseurl from header.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 2117 of file hdrfmt.c.

References _HE_s::c, _HE_s::freeData, headerGet(), HEADERGET_NOEXTENSION, headerGetBaseURL(), _HE_s::p, RPM_STRING_TYPE, RPMTAG_PACKAGEBASEURL, rpmDataType_u::str, _HE_s::t, _HE_s::tag, and xstrdup().

static int pkgdigestTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve package digest from header.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 2143 of file hdrfmt.c.

References _HE_s::c, _HE_s::freeData, headerGetDigest(), _HE_s::p, RPM_STRING_TYPE, RPMTAG_PACKAGEDIGEST, rpmDataType_u::str, _HE_s::t, _HE_s::tag, and xstrdup().

static int pkgmtimeTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve *.rpm package st->st_mtime from header.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 2167 of file hdrfmt.c.

References _HE_s::c, _HE_s::freeData, headerGetStatbuf(), _HE_s::p, RPM_UINT64_TYPE, RPMTAG_PACKAGETIME, _HE_s::t, _HE_s::tag, rpmDataType_u::ui64p, and xmalloc().

static int pkgoriginTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve package origin from header.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 2091 of file hdrfmt.c.

References _HE_s::c, _HE_s::freeData, headerGet(), HEADERGET_NOEXTENSION, headerGetOrigin(), _HE_s::p, RPM_STRING_TYPE, RPMTAG_PACKAGEORIGIN, rpmDataType_u::str, _HE_s::t, _HE_s::tag, and xstrdup().

static int pkgsizeTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve *.rpm package st->st_size from header.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 2188 of file hdrfmt.c.

References _HE_s::c, _HE_s::freeData, headerGetStatbuf(), _HE_s::p, RPM_UINT64_TYPE, RPMTAG_PACKAGESIZE, _HE_s::t, _HE_s::tag, rpmDataType_u::ui64p, and xmalloc().

static int pkguuidTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve pkgid and convert to UUIDv5.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 1590 of file hdrfmt.c.

References RPMTAG_PKGID, _HE_s::tag, and tag2uuidv5().

static int PRCOSkip | ( | rpmTag | tag,
|  | rpmTagData | N,
|  | rpmTagData | EVR,
|  | rpmTagData | F,
|  | rpmuint32_t | i
| ) |  | `[static]`

Definition at line 3006 of file hdrfmt.c.

References rpmDataType_u::argv, RPMTAG_REQUIRENAME, and rpmDataType_u::ui32p.

Referenced by PRCOsqlTag(), PRCOxmlTag(), and PRCOyamlTag().

static int PRCOsqlTag | ( | Header | h,
|  | HE_t | he,
|  | rpmTag | EVRtag,
|  | rpmTag | Ftag
| ) |  | `[static]`

Definition at line 3256 of file hdrfmt.c.

References _free(), rpmDataType_u::argv, _HE_s::c, _HE_s::freeData, headerGet(), headerGetInstance(), _HE_s::p, PRCOSkip(), rpmDataType_u::ptr, RPM_STRING_ARRAY_TYPE, RPMTAG_REQUIRENAME, snprintf(), stpcpy(), _HE_s::t, _HE_s::tag, rpmDataType_u::ui32p, and xmalloc().

Referenced by CsqlTag(), OsqlTag(), PsqlTag(), and RsqlTag().

static int PRCOxmlTag | ( | Header | h,
|  | HE_t | he,
|  | rpmTag | EVRtag,
|  | rpmTag | Ftag
| ) |  | `[static]`

Definition at line 3022 of file hdrfmt.c.

References _free(), rpmDataType_u::argv, _HE_s::c, _HE_s::freeData, headerGet(), _HE_s::p, PRCOSkip(), rpmDataType_u::ptr, RPM_STRING_ARRAY_TYPE, RPMTAG_REQUIRENAME, stpcpy(), _HE_s::t, _HE_s::tag, rpmDataType_u::ui32p, xmalloc(), xmlstrcpy(), and xmlstrlen().

Referenced by CxmlTag(), OxmlTag(), PxmlTag(), and RxmlTag().

static int PRCOyamlTag | ( | Header | h,
|  | HE_t | he,
|  | rpmTag | EVRtag,
|  | rpmTag | Ftag
| ) |  | `[static]`

Definition at line 3401 of file hdrfmt.c.

References _free(), rpmDataType_u::argv, _HE_s::c, _HE_s::freeData, headerGet(), indent, _HE_s::p, PRCOSkip(), rpmDataType_u::ptr, RPM_STRING_ARRAY_TYPE, stpcpy(), _HE_s::t, _HE_s::tag, rpmDataType_u::ui32p, xmalloc(), yamlstrcpy(), and yamlstrlen().

Referenced by CyamlTag(), OyamlTag(), PyamlTag(), and RyamlTag().

static int PsqlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 3369 of file hdrfmt.c.

References PRCOsqlTag(), RPMTAG_PROVIDEFLAGS, RPMTAG_PROVIDENAME, RPMTAG_PROVIDEVERSION, and _HE_s::tag.

static int PxmlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 3144 of file hdrfmt.c.

References PRCOxmlTag(), RPMTAG_PROVIDEFLAGS, RPMTAG_PROVIDENAME, RPMTAG_PROVIDEVERSION, and _HE_s::tag.

static int PyamlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 3496 of file hdrfmt.c.

References PRCOyamlTag(), RPMTAG_PROVIDEFLAGS, RPMTAG_PROVIDENAME, RPMTAG_PROVIDEVERSION, and _HE_s::tag.

static char* realDateFormat | ( | HE_t | he,
|  | const char ** | av,
|  | const char * | strftimeFormat
| ) |  | `[static]`

Return strftime formatted data.

Parameters:

  he | tag container
  av | parameter list (or NULL)
  strftimeFormat | strftime(3) format

Returns:
  formatted string

Definition at line 196 of file hdrfmt.c.

References _, _HE_s::p, RPM_UINT64_TYPE, _HE_s::t, rpmDataType_u::ui64p, and xstrdup().

Referenced by dateFormat(), and dayFormat().

static int removetid_uuidTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve remove tid and convert to UUIDv1.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 1461 of file hdrfmt.c.

References RPMTAG_REMOVETID, _HE_s::tag, and tag2uuidv1().

void rpmDisplayQueryTags | ( | FILE * | fp,
|  | headerTagTableEntry | _rpmTagTable,
|  | headerSprintfExtension | _rpmHeaderFormats
| ) |  |

Display list of tags that can be used in --queryformat.

Parameters:

  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 4853 of file hdrfmt.c.

References _rpmHeaderFormats, headerCompoundFormats, 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, and tagValue().

Referenced by rpmcliAllArgCallback().

static HE_t rpmecFree | ( | const headerSprintfExtension | exts,
|  | HE_t | ec
| ) |  | `[static]`

Destroy an extension cache.

Parameters:

  exts | headerSprintf extensions
  ec | extension cache

Returns:
  NULL always

Definition at line 6245 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.

Parameters:

  exts | headerSprintf extensions

Return values:

  *necp | no. of elements (or NULL)

Returns:
  new extension cache

Definition at line 6219 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 basename.

This function is used to retrieve file names independent of how the file names are represented in the package header.

Parameters:

  h | header
  tagN | RPMTAG_BASENAMES | PMTAG_ORIGBASENAMES

Return values:

  *fnp | array of file names
  *fcp | number of files

Definition at line 2287 of file hdrfmt.c.

References _free(), alloca(), rpmDataType_u::argv, _HE_s::c, headerGet(), headerIsEntry(), _HE_s::p, rpmDataType_u::ptr, RPMTAG_ARCH, RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, RPMTAG_OLDFILENAMES, RPMTAG_ORIGBASENAMES, RPMTAG_ORIGDIRINDEXES, RPMTAG_ORIGDIRNAMES, RPMTAG_SOURCERPM, stpcpy(), _HE_s::tag, rpmDataType_u::ui32p, urlPath(), xcalloc(), and xmalloc().

Referenced by _fnTag().

static HE_t rpmheClean | ( | HE_t | he | ) | `[static]`

Clean a tag container, free'ing attached malloc's.

Parameters:

  he | tag container

Definition at line 5046 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]`

Definition at line 325 of file hdrfmt.c.

References S_ISLNK, S_ISSOCK, and xstrdup().

static char* rpnFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Return arithmetic expressions of input.

Parameters:

  he | tag container
  av | parameter list (NULL uses sha1)

Returns:
  formatted string

Definition at line 4495 of file hdrfmt.c.

References _, alloca(), argvCount(), _HE_s::c, intFormat(), _HE_s::p, RPM_STRING_TYPE, RPM_UINT64_TYPE, rpmDataType_u::str, _HE_s::t, _HE_s::tag, rpmDataType_u::ui64p, xisdigit(), and xstrdup().

static int RsqlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 3377 of file hdrfmt.c.

References PRCOsqlTag(), RPMTAG_REQUIREFLAGS, RPMTAG_REQUIRENAME, RPMTAG_REQUIREVERSION, and _HE_s::tag.

static int RxmlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 3152 of file hdrfmt.c.

References PRCOxmlTag(), RPMTAG_REQUIREFLAGS, RPMTAG_REQUIRENAME, RPMTAG_REQUIREVERSION, and _HE_s::tag.

static int RyamlTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 3504 of file hdrfmt.c.

References PRCOyamlTag(), RPMTAG_REQUIREFLAGS, RPMTAG_REQUIRENAME, RPMTAG_REQUIREVERSION, and _HE_s::tag.

static char* shescapeFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Return shell escape formatted data.

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 252 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,
|  | size_t | element
| ) |  | `[static]`

Format a single headerSprintf item.

Parameters:

  hsa | headerSprintf args
  token | item to format
  element | element index

Returns:
  end of formatted string (NULL on error)

Definition at line 6011 of file hdrfmt.c.

References _, sprintfToken_s::array, sprintfTag_s::arrayCount, sprintfTag_s::av, _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(), stpcpy(), sprintfToken_s::string, _HE_s::t, _HE_s::tag, sprintfToken_s::tag, sprintfTag_s::tagno, headerSprintfArgs_s::tags, sprintfToken_s::type, sprintfToken_s::u, headerSprintfArgs_s::val, and headerSprintfArgs_s::vallen.

Referenced by headerSprintf().

static int sourcepkguuidTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve sourcepkgid and convert to UUIDv5.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 1604 of file hdrfmt.c.

References RPMTAG_SOURCEPKGID, _HE_s::tag, and tag2uuidv5().

static char* sqlescapeFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Encode string for use in SQL statements.

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 3224 of file hdrfmt.c.

References _, _free(), _HE_s::ix, _HE_s::p, RPM_STRING_TYPE, sqlstrcpy(), sqlstrlen(), rpmDataType_u::str, strdup_locale_convert(), _HE_s::t, xcalloc(), and xstrdup().

static char* sqlstrcpy | ( | char * | t,
|  | const char * | s
| ) |  | `[static]`

Copy source string to target, doubling single quotes.

Parameters:

  t | target sql string
  s | source string

Returns:
  target sql string

Definition at line 3202 of file hdrfmt.c.

Referenced by sqlescapeFormat().

static size_t sqlstrlen | ( | const char * | s | ) | `[static]`

Return length of string represented with single quotes doubled.

Parameters:

  s | string

Returns:
  length of sql string

Definition at line 3181 of file hdrfmt.c.

Referenced by sqlescapeFormat().

static char* statFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Return file info.

Parameters:

  he | tag container
  av | parameter list (NULL uses sha1)

Returns:
  formatted string

Definition at line 4257 of file hdrfmt.c.

References _, _free(), _HE_s::c, errno, Fclose(), fdFiniDigest(), fdInitDigest(), Ferror(), Fopen(), Fread(), Fstrerror(), gidToGname(), _HE_s::ix, keyValue(), Lstat(), _HE_s::p, PGPHASHALGO_SHA1, rpmDataType_u::ptr, Readlink(), RPM_BIN_TYPE, RPM_STRING_TYPE, rpmExpand(), RPMTAG_PACKAGESTAT, S_ISLNK, snprintf(), STAT_KEYS_ATIME, STAT_KEYS_BLKSIZE, STAT_KEYS_BLOCKS, STAT_KEYS_CTIME, STAT_KEYS_DEV, STAT_KEYS_DIGEST, STAT_KEYS_GID, STAT_KEYS_GNAME, STAT_KEYS_INO, STAT_KEYS_MODE, STAT_KEYS_MTIME, STAT_KEYS_NLINK, STAT_KEYS_NONE, STAT_KEYS_RDEV, STAT_KEYS_SIZE, STAT_KEYS_SLINK, STAT_KEYS_UID, STAT_KEYS_UNAME, stpcpy(), rpmDataType_u::str, _HE_s::t, _HE_s::tag, uidToUname(), and xstrdup().

static int str2uuid | ( | HE_t | he,
|  | const char ** | av,
|  | rpmuint32_t | version,
|  | char * | val
| ) |  | `[static]`

Convert tag string to UUID.

Parameters:

  he | tag container
  av | parameter list (or NULL) version UUID version

Return values:

  val | UUID string

Returns:
  0 on success

Definition at line 1500 of file hdrfmt.c.

References _free(), _HE_s::c, _HE_s::freeData, _HE_s::p, rpmDataType_u::ptr, RPM_BIN_TYPE, RPM_STRING_TYPE, rpmGetPath(), rpmuuidMake(), rpmDataType_u::str, _HE_s::t, _HE_s::tag, tagName(), rpmDataType_u::ui8p, uuid_ns, uuid_version, and xcalloc().

Referenced by tag2uuidv5(), and uuidFormat().

static char* strdup_locale_convert | ( | const char * | buffer,
|  | const char * | tocode
| ) |  | `[static]`

Definition at line 635 of file hdrfmt.c.

References errno, and xstrdup().

Referenced by bncdataFormat(), cdataFormat(), iconvFormat(), and sqlescapeFormat().

static char* strsubFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Replace string values.

Parameters:

  he | tag container
  av | parameter list (NULL is an error)

Returns:
  formatted string

Definition at line 4593 of file hdrfmt.c.

References _, _free(), argvCount(), mireAppend(), mireFreeAll(), mireRegexec(), mireSetEOptions(), _HE_s::p, RPM_STRING_TYPE, rpmExpand(), RPMMIRE_REGEX, stpcpy(), stpncpy(), rpmDataType_u::str, _HE_s::t, xmalloc(), and xstrdup().

static int summaryTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve summary text.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 1979 of file hdrfmt.c.

References i18nTag(), RPMTAG_SUMMARY, and _HE_s::tag.

static int tag2uuidv1 | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve time and convert to UUIDv1.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 1385 of file hdrfmt.c.

References _free(), _HE_s::c, headerGet(), _HE_s::p, rpmDataType_u::ptr, tv2uuidv1(), and rpmDataType_u::ui32p.

Referenced by buildtime_uuidTag(), installtid_uuidTag(), installtime_uuidTag(), origintid_uuidTag(), origintime_uuidTag(), and removetid_uuidTag().

static int tag2uuidv5 | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve tag and convert to UUIDv5.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 1550 of file hdrfmt.c.

References _free(), _HE_s::c, _HE_s::freeData, headerGet(), _HE_s::p, rpmDataType_u::ptr, RPM_BIN_TYPE, RPM_STRING_TYPE, str2uuid(), _HE_s::t, rpmDataType_u::ui8p, and xmalloc().

Referenced by hdruuidTag(), pkguuidTag(), and sourcepkguuidTag().

static int triggercondsTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve trigger info.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 1632 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_UINT64_TYPE, RPMSENSE_SENSEMASK, RPMTAG_TRIGGERFLAGS, RPMTAG_TRIGGERINDEX, RPMTAG_TRIGGERNAME, RPMTAG_TRIGGERSCRIPTS, RPMTAG_TRIGGERVERSION, _HE_s::t, _HE_s::tag, rpmDataType_u::ui32p, rpmDataType_u::ui64p, xmalloc(), xrealloc(), and xstrdup().

static char* triggertypeFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Identify type of trigger.

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 379 of file hdrfmt.c.

References _, _HE_s::ix, _HE_s::p, RPM_UINT64_TYPE, _HE_s::t, rpmDataType_u::ui64p, and xstrdup().

static int triggertypeTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Retrieve trigger type info.

Parameters:

  h | header

Return values:

  *he | tag container

Returns:
  0 on success

Definition at line 1730 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, RPMTAG_TRIGGERFLAGS, RPMTAG_TRIGGERINDEX, RPMTAG_TRIGGERSCRIPTS, _HE_s::t, _HE_s::tag, rpmDataType_u::ui32p, xmalloc(), and xstrdup().

static int tv2uuidv1 | ( | Header | h,
|  | HE_t | he,
|  | struct timeval * | tv
| ) |  | `[static]`

Convert unix timeval to UUIDv1.

Parameters:

  h | header

Return values:

  *he | tag container

Parameters:

  tv | unix timeval

Returns:
  0 on success

Definition at line 1342 of file hdrfmt.c.

References _free(), _HE_s::c, _HE_s::freeData, _HE_s::p, rpmDataType_u::ptr, RPM_BIN_TYPE, rpmuuidMake(), _HE_s::t, rpmDataType_u::ui8p, and xcalloc().

Referenced by tag2uuidv1().

static char* uuidFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Reformat tag string as a UUID.

Parameters:

  he | tag container
  av | parameter list (NULL uses UUIDv5)

Returns:
  formatted string

Definition at line 4431 of file hdrfmt.c.

References _, _free(), alloca(), _HE_s::c, _HE_s::ix, keyValue(), _HE_s::p, rpmDataType_u::ptr, RPM_STRING_TYPE, rpmDataType_u::str, str2uuid(), _HE_s::t, _HE_s::tag, UUID_KEYS_V1, UUID_KEYS_V3, UUID_KEYS_V4, UUID_KEYS_V5, xmalloc(), and xstrdup().

static int whatneedsTag | ( | Header | h,
|  | HE_t | he
| ) |  | `[static]`

Definition at line 2754 of file hdrfmt.c.

References _free(), alloca(), argiFree(), rpmDataType_u::argv, argvAdd(), argvCount(), argvFree(), _HE_s::c, headerGet(), _HE_s::ix, _HE_s::p, rpmDataType_u::ptr, RPM_STRING_ARRAY_TYPE, RPMTAG_FILEPATHS, RPMTAG_NVRA, RPMTAG_PROVIDEFLAGS, RPMTAG_PROVIDENAME, RPMTAG_PROVIDEVERSION, stpcpy(), rpmDataType_u::str, _HE_s::t, _HE_s::tag, wnlookupTag(), and xmalloc().

static int wnlookupTag | ( | Header | h,
|  | rpmTag | tagNVRA,
|  | ARGV_t * | avp,
|  | ARGI_t * | hitp,
|  | HE_t | PNhe,
|  | HE_t | PEVRhe,
|  | HE_t | PFhe
| ) |  | `[static]`

Definition at line 2657 of file hdrfmt.c.

References _free(), alloca(), argiAdd(), argiCount(), argiData(), rpmDataType_u::argv, argvAdd(), argvSearch(), argvSort(), _HE_s::c, headerGet(), headerGetRpmdb(), _HE_s::ix, _HE_s::p, rpmDataType_u::ptr, rpmEVRfree(), rpmEVRnew(), rpmEVRoverlap(), rpmEVRparse(), rpmmiFree(), rpmmiInit(), rpmmiInstance(), rpmmiNext(), rpmmiPrune(), RPMSENSE_SENSEMASK, RPMTAG_NVRA, RPMTAG_REQUIREFLAGS, RPMTAG_REQUIRENAME, RPMTAG_REQUIREVERSION, rpmDataType_u::str, _HE_s::tag, rpmDataType_u::ui32p, and xstrdup().

Referenced by whatneedsTag().

static char* xmlFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Wrap tag data in simple header xml markup.

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 786 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.

Parameters:

  t | target xml string
  s | source string

Returns:
  target xml string

Definition at line 616 of file hdrfmt.c.

References stpcpy().

Referenced by bncdataFormat(), cdataFormat(), FDGxmlTag(), PRCOxmlTag(), and xmlFormat().

static size_t xmlstrlen | ( | const char * | s | ) | `[static]`

Return length of string represented with xml characters substituted.

Parameters:

  s | string

Returns:
  length of xml string

Definition at line 593 of file hdrfmt.c.

Referenced by bncdataFormat(), cdataFormat(), FDGxmlTag(), PRCOxmlTag(), and xmlFormat().

static char* yamlFormat | ( | HE_t | he,
|  | const char ** | av
| ) |  | `[static]`

Wrap tag data in simple header yaml markup.

Parameters:

  he | tag container
  av | parameter list (or NULL)

Returns:
  formatted string

Definition at line 944 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, xmalloc(), xstrdup(), xstrtolocale(), yamlstrcpy(), and yamlstrlen().

static char* yamlstrcpy | ( | char * | t,
|  | const char * | s,
|  | int | lvl
| ) |  | `[static]`

Copy source string to target, indenting for yaml.

Parameters:

  t | target yaml string
  s | source string
  lvl | indentation level

Returns:
  target yaml string

Definition at line 914 of file hdrfmt.c.

References indent.

Referenced by FDGyamlTag(), PRCOyamlTag(), and yamlFormat().

static size_t yamlstrlen | ( | const char * | s,
|  | int | lvl
| ) |  | `[static]`

Return length of string represented with yaml indentation.

Parameters:

  s | string
  lvl | indentation level

Returns:
  length of yaml string

Definition at line 887 of file hdrfmt.c.

References indent.

Referenced by FDGyamlTag(), PRCOyamlTag(), and yamlFormat().

## Variable Documentation

int _hdrqf_debug

Definition at line 64 of file hdrfmt.c.

Referenced by escapedChar(), formatValue(), headerSprintf(), parseExpression(), and parseFormat().

struct headerSprintfExtension_s _headerCompoundFormats[]`[static]`

Definition at line 4693 of file hdrfmt.c.

struct headerSprintfExtension_s _headerDefaultFormats[]`[static]`

Initial value:

     {
        { 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 } }
    }

Definition at line 302 of file hdrfmt.c.

const char* _macro_i18ndomains = "%{?_i18ndomains}"`[static]`

Definition at line 1810 of file hdrfmt.c.

KEY keyDigests[]`[static]`

Initial value:

     {
        { "adler32",        PGPHASHALGO_ADLER32 },
        { "crc32",          PGPHASHALGO_CRC32 },
        { "crc64",          PGPHASHALGO_CRC64 },
        { "haval160",       PGPHASHALGO_HAVAL_5_160 },
        { "jlu32",          PGPHASHALGO_JLU32 },
        { "md2",            PGPHASHALGO_MD2 },
        { "md4",            PGPHASHALGO_MD4 },
        { "md5",            PGPHASHALGO_MD5 },
        { "rmd128",         PGPHASHALGO_RIPEMD128 },
        { "rmd160",         PGPHASHALGO_RIPEMD160 },
        { "rmd256",         PGPHASHALGO_RIPEMD256 },
        { "rmd320",         PGPHASHALGO_RIPEMD320 },
        { "salsa10",        PGPHASHALGO_SALSA10 },
        { "salsa20",        PGPHASHALGO_SALSA20 },
        { "sha1",           PGPHASHALGO_SHA1 },
        { "sha224",         PGPHASHALGO_SHA224 },
        { "sha256",         PGPHASHALGO_SHA256 },
        { "sha384",         PGPHASHALGO_SHA384 },
        { "sha512",         PGPHASHALGO_SHA512 },
        { "tiger192",       PGPHASHALGO_TIGER192 },
    }

Definition at line 4048 of file hdrfmt.c.

KEY keyStat[]`[static]`

Definition at line 4104 of file hdrfmt.c.

KEY keyUuids[]`[static]`

Initial value:

     {

        { "v1",             UUID_KEYS_V1 },
        { "v3",             UUID_KEYS_V3 },
        { "v4",             UUID_KEYS_V4 },
        { "v5",             UUID_KEYS_V5 },
    }

Definition at line 4168 of file hdrfmt.c.

const char* language = "LANGUAGE"`[static]`

Definition at line 1807 of file hdrfmt.c.

size_t nkeyDigests = sizeof(keyDigests) / sizeof(keyDigests[0])`[static]`

Definition at line 4071 of file hdrfmt.c.

size_t nkeyStat = sizeof(keyStat) / sizeof(keyStat[0])`[static]`

Definition at line 4148 of file hdrfmt.c.

size_t nkeyUuids = sizeof(keyUuids) / sizeof(keyUuids[0])`[static]`

Definition at line 4181 of file hdrfmt.c.

const char uuid_auth[] = "%{?_uuid_auth}%{!?_uuid_auth:http://rpm5.org}"`[static]`

Definition at line 1486 of file hdrfmt.c.

const char uuid_ns[] = "ns:URL"`[static]`

Definition at line 1484 of file hdrfmt.c.

Referenced by doFoo(), rpmuuidMake(), and str2uuid().

const char uuid_path[] = "%{?_uuid_path}%{!?_uuid_path:/package}"`[static]`

Definition at line 1488 of file hdrfmt.c.

rpmuint32_t uuid_version = 5`[static]`

Definition at line 1490 of file hdrfmt.c.

Referenced by doFoo(), and str2uuid().