Files | ||||
| file | formats.c | |||
| file | package.c | |||
| file | rpmlib.h | |||
| In Memoriam: Steve Taylor <staylor@redhat.com> was here, now he's not. | ||||
| file | hdrinline.h | |||
| file | header.c | |||
| file | header.h | |||
| An rpm header carries all information about a package. | ||||
| file | header_internal.c | |||
| file | header_internal.h | |||
Data Structures | ||||
| struct | headerToken_s | |||
| The Header data structure. More... | ||||
Typedefs | ||||
| typedef enum rpmTag_e | rpmTag | |||
| typedef const char * | errmsg_t | |||
| typedef int_32 * | hTAG_t | |||
| typedef headerToken_s * | Header | |||
| typedef headerIterator_s * | HeaderIterator | |||
| typedef headerTagTableEntry_s * | headerTagTableEntry | |||
| Associate tag names with numeric values. | ||||
| typedef char *(*) | headerTagFormatFunction (int_32 type, const void *data, char *formatPrefix, int padding, int element) | |||
| HEADER_EXT_TAG format function prototype. | ||||
| typedef int(*) | headerTagTagFunction (Header h, hTYP_t type, hPTR_t *data, hCNT_t count, int *freeData) | |||
| HEADER_EXT_FORMAT format function prototype. | ||||
| typedef headerSprintfExtension_s * | headerSprintfExtension | |||
| Define header tag output formats. | ||||
| typedef enum rpmTagType_e | rpmTagType | |||
| The basic types of data in tags from headers. | ||||
| typedef enum rpmSubTagType_e | rpmSubTagType | |||
| New rpm data types under consideration/development. | ||||
| typedef enum rpmTagReturnType_e | rpmTagReturnType | |||
| Identify how to return the header data type. | ||||
| typedef Header(*) | HDRnew (void) | |||
| Create new (empty) header instance. | ||||
| typedef Header(*) | HDRfree (Header h) | |||
| Dereference a header instance. | ||||
| typedef Header(*) | HDRlink (Header h) | |||
| Reference a header instance. | ||||
| typedef Header(*) | HDRunlink (Header h) | |||
| Dereference a header instance. | ||||
| typedef void(*) | HDRsort (Header h) | |||
| Sort tags in header. | ||||
| typedef void(*) | HDRunsort (Header h) | |||
| Restore tags in header to original ordering. | ||||
| typedef unsigned int(*) | HDRsizeof (Header h, enum hMagic magicp) | |||
| Return size of on-disk header representation in bytes. | ||||
| typedef void *(*) | HDRunload (Header h) | |||
| Convert header to on-disk representation. | ||||
| typedef Header(*) | HDRreload (Header h, int tag) | |||
| Convert header to on-disk representation, and then reload. | ||||
| typedef Header(*) | HDRcopy (Header h) | |||
| Duplicate a header. | ||||
| typedef Header(*) | HDRload (void *uh) | |||
| Convert header to in-memory representation. | ||||
| typedef Header(*) | HDRcopyload (const void *uh) | |||
| Make a copy and convert header to in-memory representation. | ||||
| typedef Header(*) | HDRread (FD_t fd, enum hMagic magicp) | |||
| Read (and load) header from file handle. | ||||
| typedef int(*) | HDRwrite (FD_t fd, Header h, enum hMagic magicp) | |||
| Write (with unload) header to file handle. | ||||
| typedef int(*) | HDRisentry (Header h, int_32 tag) | |||
| Check if tag is in header. | ||||
| typedef void *(*) | HDRfreetag (Header h, const void *data, rpmTagType type) | |||
| Free data allocated when retrieved from header. | ||||
| typedef int(*) | HDRget (Header h, int_32 tag, hTYP_t type, void **p, hCNT_t c) | |||
| Retrieve tag value. | ||||
| typedef int(*) | HDRgetmin (Header h, int_32 tag, hTYP_t type, hPTR_t *p, hCNT_t c) | |||
| Retrieve tag value using header internal array. | ||||
| typedef int(*) | HDRadd (Header h, int_32 tag, int_32 type, const void *p, int_32 c) | |||
| Add tag to header. | ||||
| typedef int(*) | HDRappend (Header h, int_32 tag, int_32 type, const void *p, int_32 c) | |||
| Append element to tag array in header. | ||||
| typedef int(*) | HDRaddorappend (Header h, int_32 tag, int_32 type, const void *p, int_32 c) | |||
| Add or append element to tag array in header. | ||||
| typedef int(*) | HDRaddi18n (Header h, int_32 tag, const char *string, const char *lang) | |||
| Add locale specific tag to header. | ||||
| typedef int(*) | HDRmodify (Header h, int_32 tag, int_32 type, const void *p, int_32 c) | |||
| Modify tag in header. | ||||
| typedef int(*) | HDRremove (Header h, int_32 tag) | |||
| Delete tag in header. | ||||
| typedef char *(*) | HDRsprintf (Header h, const char *fmt, const struct headerTagTableEntry_s *tags, const struct headerSprintfExtension_s *extensions, errmsg_t *errmsg) | |||
| Return formatted output string from header tags. | ||||
| typedef void(*) | HDRcopytags (Header headerFrom, Header headerTo, hTAG_t tagstocopy) | |||
| Duplicate tag values from one header into another. | ||||
| typedef HeaderIterator(*) | HDRfreeiter (HeaderIterator hi) | |||
| Destroy header tag iterator. | ||||
| typedef HeaderIterator(*) | HDRinititer (Header h) | |||
| Create header tag iterator. | ||||
| typedef int(*) | HDRnextiter (HeaderIterator hi, hTAG_t tag, hTYP_t type, hPTR_t *p, hCNT_t c) | |||
| Return next tag from header. | ||||
| typedef const char *(*) | HDRgetorigin (Header h) | |||
| Return header origin (e.g path or URL). | ||||
| typedef int(*) | HDRsetorigin (Header h, const char *origin) | |||
| Store header origin (e.g path or URL). | ||||
| typedef int(*) | HDRgetinstance (Header h) | |||
| Return header instance (if from rpmdb). | ||||
| typedef int(*) | HDRsetinstance (Header h, int instance) | |||
| Store header instance (e.g path or URL). | ||||
| typedef HV_s * | HV_t | |||
| Header method vectors. | ||||
| typedef entryInfo_s * | entryInfo | |||
| Description of tag data. | ||||
| typedef indexEntry_s * | indexEntry | |||
| A single tag from a Header. | ||||
| typedef sprintfTag_s * | sprintfTag | |||
| typedef rpmec_s * | rpmec | |||
| Extension cache. | ||||
| typedef sprintfToken_s * | sprintfToken | |||
Enumerations | ||||
| enum | rpmTag_e { RPMTAG_HEADERIMAGE = HEADER_IMAGE, RPMTAG_HEADERSIGNATURES = HEADER_SIGNATURES, RPMTAG_HEADERIMMUTABLE = HEADER_IMMUTABLE, RPMTAG_HEADERREGIONS = HEADER_REGIONS, RPMTAG_HEADERI18NTABLE = HEADER_I18NTABLE, RPMTAG_SIG_BASE = HEADER_SIGBASE, RPMTAG_SIGSIZE = RPMTAG_SIG_BASE+1, RPMTAG_SIGLEMD5_1 = RPMTAG_SIG_BASE+2, RPMTAG_SIGPGP = RPMTAG_SIG_BASE+3, RPMTAG_SIGLEMD5_2 = RPMTAG_SIG_BASE+4, RPMTAG_SIGMD5 = RPMTAG_SIG_BASE+5, RPMTAG_SIGGPG = RPMTAG_SIG_BASE+6, RPMTAG_SIGPGP5 = RPMTAG_SIG_BASE+7, RPMTAG_BADSHA1_1 = RPMTAG_SIG_BASE+8, RPMTAG_BADSHA1_2 = RPMTAG_SIG_BASE+9, RPMTAG_PUBKEYS = RPMTAG_SIG_BASE+10, RPMTAG_DSAHEADER = RPMTAG_SIG_BASE+11, RPMTAG_RSAHEADER = RPMTAG_SIG_BASE+12, RPMTAG_SHA1HEADER = RPMTAG_SIG_BASE+13, RPMTAG_NAME = 1000, RPMTAG_VERSION = 1001, RPMTAG_RELEASE = 1002, RPMTAG_EPOCH = 1003, RPMTAG_SUMMARY = 1004, RPMTAG_DESCRIPTION = 1005, RPMTAG_BUILDTIME = 1006, RPMTAG_BUILDHOST = 1007, RPMTAG_INSTALLTIME = 1008, RPMTAG_SIZE = 1009, RPMTAG_DISTRIBUTION = 1010, RPMTAG_VENDOR = 1011, RPMTAG_GIF = 1012, RPMTAG_XPM = 1013, RPMTAG_LICENSE = 1014, RPMTAG_PACKAGER = 1015, RPMTAG_GROUP = 1016, RPMTAG_CHANGELOG = 1017, RPMTAG_SOURCE = 1018, RPMTAG_PATCH = 1019, RPMTAG_URL = 1020, RPMTAG_OS = 1021, RPMTAG_ARCH = 1022, RPMTAG_PREIN = 1023, RPMTAG_POSTIN = 1024, RPMTAG_PREUN = 1025, RPMTAG_POSTUN = 1026, RPMTAG_OLDFILENAMES = 1027, RPMTAG_FILESIZES = 1028, RPMTAG_FILESTATES = 1029, RPMTAG_FILEMODES = 1030, RPMTAG_FILEUIDS = 1031, RPMTAG_FILEGIDS = 1032, RPMTAG_FILERDEVS = 1033, RPMTAG_FILEMTIMES = 1034, RPMTAG_FILEDIGESTS = 1035, RPMTAG_FILELINKTOS = 1036, RPMTAG_FILEFLAGS = 1037, RPMTAG_ROOT = 1038, RPMTAG_FILEUSERNAME = 1039, RPMTAG_FILEGROUPNAME = 1040, RPMTAG_EXCLUDE = 1041, RPMTAG_EXCLUSIVE = 1042, RPMTAG_ICON = 1043, RPMTAG_SOURCERPM = 1044, RPMTAG_FILEVERIFYFLAGS = 1045, RPMTAG_ARCHIVESIZE = 1046, RPMTAG_PROVIDENAME = 1047, RPMTAG_REQUIREFLAGS = 1048, RPMTAG_REQUIRENAME = 1049, RPMTAG_REQUIREVERSION = 1050, RPMTAG_NOSOURCE = 1051, RPMTAG_NOPATCH = 1052, RPMTAG_CONFLICTFLAGS = 1053, RPMTAG_CONFLICTNAME = 1054, RPMTAG_CONFLICTVERSION = 1055, RPMTAG_DEFAULTPREFIX = 1056, RPMTAG_BUILDROOT = 1057, RPMTAG_INSTALLPREFIX = 1058, RPMTAG_EXCLUDEARCH = 1059, RPMTAG_EXCLUDEOS = 1060, RPMTAG_EXCLUSIVEARCH = 1061, RPMTAG_EXCLUSIVEOS = 1062, RPMTAG_AUTOREQPROV = 1063, RPMTAG_RPMVERSION = 1064, RPMTAG_TRIGGERSCRIPTS = 1065, RPMTAG_TRIGGERNAME = 1066, RPMTAG_TRIGGERVERSION = 1067, RPMTAG_TRIGGERFLAGS = 1068, RPMTAG_TRIGGERINDEX = 1069, RPMTAG_VERIFYSCRIPT = 1079, RPMTAG_CHANGELOGTIME = 1080, RPMTAG_CHANGELOGNAME = 1081, RPMTAG_CHANGELOGTEXT = 1082, RPMTAG_BROKENMD5 = 1083, RPMTAG_PREREQ = 1084, RPMTAG_PREINPROG = 1085, RPMTAG_POSTINPROG = 1086, RPMTAG_PREUNPROG = 1087, RPMTAG_POSTUNPROG = 1088, RPMTAG_BUILDARCHS = 1089, RPMTAG_OBSOLETENAME = 1090, RPMTAG_VERIFYSCRIPTPROG = 1091, RPMTAG_TRIGGERSCRIPTPROG = 1092, RPMTAG_DOCDIR = 1093, RPMTAG_COOKIE = 1094, RPMTAG_FILEDEVICES = 1095, RPMTAG_FILEINODES = 1096, RPMTAG_FILELANGS = 1097, RPMTAG_PREFIXES = 1098, RPMTAG_INSTPREFIXES = 1099, RPMTAG_TRIGGERIN = 1100, RPMTAG_TRIGGERUN = 1101, RPMTAG_TRIGGERPOSTUN = 1102, RPMTAG_AUTOREQ = 1103, RPMTAG_AUTOPROV = 1104, RPMTAG_CAPABILITY = 1105, RPMTAG_SOURCEPACKAGE = 1106, RPMTAG_OLDORIGFILENAMES = 1107, RPMTAG_BUILDPREREQ = 1108, RPMTAG_BUILDREQUIRES = 1109, RPMTAG_BUILDCONFLICTS = 1110, RPMTAG_BUILDMACROS = 1111, RPMTAG_PROVIDEFLAGS = 1112, RPMTAG_PROVIDEVERSION = 1113, RPMTAG_OBSOLETEFLAGS = 1114, RPMTAG_OBSOLETEVERSION = 1115, RPMTAG_DIRINDEXES = 1116, RPMTAG_BASENAMES = 1117, RPMTAG_DIRNAMES = 1118, RPMTAG_ORIGDIRINDEXES = 1119, RPMTAG_ORIGBASENAMES = 1120, RPMTAG_ORIGDIRNAMES = 1121, RPMTAG_OPTFLAGS = 1122, RPMTAG_DISTURL = 1123, RPMTAG_PAYLOADFORMAT = 1124, RPMTAG_PAYLOADCOMPRESSOR = 1125, RPMTAG_PAYLOADFLAGS = 1126, RPMTAG_INSTALLCOLOR = 1127, RPMTAG_INSTALLTID = 1128, RPMTAG_REMOVETID = 1129, RPMTAG_SHA1RHN = 1130, RPMTAG_RHNPLATFORM = 1131, RPMTAG_PLATFORM = 1132, RPMTAG_PATCHESNAME = 1133, RPMTAG_PATCHESFLAGS = 1134, RPMTAG_PATCHESVERSION = 1135, RPMTAG_CACHECTIME = 1136, RPMTAG_CACHEPKGPATH = 1137, RPMTAG_CACHEPKGSIZE = 1138, RPMTAG_CACHEPKGMTIME = 1139, RPMTAG_FILECOLORS = 1140, RPMTAG_FILECLASS = 1141, RPMTAG_CLASSDICT = 1142, RPMTAG_FILEDEPENDSX = 1143, RPMTAG_FILEDEPENDSN = 1144, RPMTAG_DEPENDSDICT = 1145, RPMTAG_SOURCEPKGID = 1146, RPMTAG_FILECONTEXTS = 1147, RPMTAG_FSCONTEXTS = 1148, RPMTAG_RECONTEXTS = 1149, RPMTAG_POLICIES = 1150, RPMTAG_PRETRANS = 1151, RPMTAG_POSTTRANS = 1152, RPMTAG_PRETRANSPROG = 1153, RPMTAG_POSTTRANSPROG = 1154, RPMTAG_DISTTAG = 1155, RPMTAG_SUGGESTSNAME = 1156, RPMTAG_SUGGESTSVERSION = 1157, RPMTAG_SUGGESTSFLAGS = 1158, RPMTAG_ENHANCESNAME = 1159, RPMTAG_ENHANCESVERSION = 1160, RPMTAG_ENHANCESFLAGS = 1161, RPMTAG_PRIORITY = 1162, RPMTAG_CVSID = 1163, RPMTAG_BLINKPKGID = 1164, RPMTAG_BLINKHDRID = 1165, RPMTAG_BLINKNEVRA = 1166, RPMTAG_FLINKPKGID = 1167, RPMTAG_FLINKHDRID = 1168, RPMTAG_FLINKNEVRA = 1169, RPMTAG_PACKAGEORIGIN = 1170, RPMTAG_TRIGGERPREIN = 1171, RPMTAG_BUILDSUGGESTS = 1172, RPMTAG_BUILDENHANCES = 1173, RPMTAG_SCRIPTSTATES = 1174, RPMTAG_SCRIPTMETRICS = 1175, RPMTAG_BUILDCPUCLOCK = 1176, RPMTAG_FILEDIGESTALGOS = 1177, RPMTAG_VARIANTS = 1178, RPMTAG_XMAJOR = 1179, RPMTAG_XMINOR = 1180, RPMTAG_REPOTAG = 1181, RPMTAG_KEYWORDS = 1182, RPMTAG_BUILDPLATFORMS = 1183, RPMTAG_PACKAGECOLOR = 1184, RPMTAG_PACKAGEPREFCOLOR = 1185, RPMTAG_XATTRSDICT = 1186, RPMTAG_FILEXATTRSX = 1187, RPMTAG_DEPATTRSDICT = 1188, RPMTAG_CONFLICTATTRSX = 1189, RPMTAG_OBSOLETEATTRSX = 1190, RPMTAG_PROVIDEATTRSX = 1191, RPMTAG_REQUIREATTRSX = 1192, RPMTAG_BUILDPROVIDES = 1193, RPMTAG_BUILDOBSOLETES = 1194, RPMTAG_FIRSTFREE_TAG } | |||
| enum | headerSprintfExtensionType { HEADER_EXT_LAST = 0, HEADER_EXT_FORMAT, HEADER_EXT_MORE, HEADER_EXT_TAG } | |||
| enum | hMagic { HEADER_MAGIC_NO = 0, HEADER_MAGIC_YES = 1 } | |||
| Include calculation for 8 bytes of (magic, 0)? More... | ||||
| enum | rpmTagType_e { RPM_NULL_TYPE = 0, RPM_CHAR_TYPE = 1, RPM_INT8_TYPE = 2, RPM_INT16_TYPE = 3, RPM_INT32_TYPE = 4, RPM_INT64_TYPE = 5, RPM_STRING_TYPE = 6, RPM_BIN_TYPE = 7, RPM_STRING_ARRAY_TYPE = 8, RPM_I18NSTRING_TYPE = 9, RPM_ASN1_TYPE = 10, RPM_OPENPGP_TYPE = 11, RPM_MASK_TYPE = 0x0000ffff } | |||
| The basic types of data in tags from headers. More... | ||||
| enum | rpmSubTagType_e { RPM_REGION_TYPE = -10, RPM_BIN_ARRAY_TYPE = -11, RPM_XREF_TYPE = -12 } | |||
| New rpm data types under consideration/development. More... | ||||
| enum | rpmTagReturnType_e { RPM_ANY_RETURN_TYPE = 0, RPM_SCALAR_RETURN_TYPE = 0x00010000, RPM_ARRAY_RETURN_TYPE = 0x00020000, RPM_MAPPING_RETURN_TYPE = 0x00040000, RPM_MASK_RETURN_TYPE = 0xffff0000 } | |||
| Identify how to return the header data type. More... | ||||
Functions | ||||
| void | headerMergeLegacySigs (Header h, const Header sigh) | |||
| Translate and merge legacy signature tags into header. | ||||
| Header | headerRegenSigHeader (const Header h, int noArchiveSize) | |||
| Regenerate signature header. | ||||
| static HV_t | h2hv (Header h) | |||
| static Header | headerNew (void) | |||
| Create new (empty) header instance. | ||||
| static Header | headerFree (Header h) | |||
| Dereference a header instance. | ||||
| static Header | headerLink (Header h) | |||
| Reference a header instance. | ||||
| static Header | headerUnlink (Header h) | |||
| Dereference a header instance. | ||||
| static void | headerSort (Header h) | |||
| Sort tags in header. | ||||
| static void | headerUnsort (Header h) | |||
| Restore tags in header to original ordering. | ||||
| static unsigned int | headerSizeof (Header h, enum hMagic magicp) | |||
| Return size of on-disk header representation in bytes. | ||||
| static void * | headerUnload (Header h) | |||
| Convert header to on-disk representation. | ||||
| static Header | headerReload (Header h, int tag) | |||
| Convert header to on-disk representation, and then reload. | ||||
| static Header | headerCopy (Header h) | |||
| Duplicate a header. | ||||
| static Header | headerLoad (void *uh) | |||
| Convert header to in-memory representation. | ||||
| static Header | headerCopyLoad (const void *uh) | |||
| Make a copy and convert header to in-memory representation. | ||||
| static Header | headerRead (FD_t fd, enum hMagic magicp) | |||
| Read (and load) header from file handle. | ||||
| static int | headerWrite (FD_t fd, Header h, enum hMagic magicp) | |||
| Write (with unload) header to file handle. | ||||
| static int | headerIsEntry (Header h, int_32 tag) | |||
| Check if tag is in header. | ||||
| static void * | headerFreeTag (Header h, const void *data, rpmTagType type) | |||
| Free data allocated when retrieved from header. | ||||
| static int | headerGetEntry (Header h, int_32 tag, hTYP_t type, void **p, hCNT_t c) | |||
| Retrieve tag value. | ||||
| static int | headerGetEntryMinMemory (Header h, int_32 tag, hTYP_t type, hPTR_t *p, hCNT_t c) | |||
| Retrieve tag value using header internal array. | ||||
| static int | headerAddEntry (Header h, int_32 tag, int_32 type, const void *p, int_32 c) | |||
| Add tag to header. | ||||
| static int | headerAppendEntry (Header h, int_32 tag, int_32 type, const void *p, int_32 c) | |||
| Append element to tag array in header. | ||||
| static int | headerAddOrAppendEntry (Header h, int_32 tag, int_32 type, const void *p, int_32 c) | |||
| Add or append element to tag array in header. | ||||
| static int | headerAddI18NString (Header h, int_32 tag, const char *string, const char *lang) | |||
| Add locale specific tag to header. | ||||
| static int | headerModifyEntry (Header h, int_32 tag, int_32 type, const void *p, int_32 c) | |||
| Modify tag in header. | ||||
| static int | headerRemoveEntry (Header h, int_32 tag) | |||
| Delete tag in header. | ||||
| static char * | headerSprintf (Header h, const char *fmt, const struct headerTagTableEntry_s *tbltags, const struct headerSprintfExtension_s *extensions, errmsg_t *errmsg) | |||
| Return formatted output string from header tags. | ||||
| static void | headerCopyTags (Header headerFrom, Header headerTo, hTAG_t tagstocopy) | |||
| Duplicate tag values from one header into another. | ||||
| static HeaderIterator | headerFreeIterator (HeaderIterator hi) | |||
| Destroy header tag iterator. | ||||
| static HeaderIterator | headerInitIterator (Header h) | |||
| Create header tag iterator. | ||||
| static int | headerNextIterator (HeaderIterator hi, hTAG_t tag, hTYP_t type, hPTR_t *p, hCNT_t c) | |||
| Return next tag from header. | ||||
| static const char * | headerGetOrigin (Header h) | |||
| Return header origin (e.g path or URL). | ||||
| static int | headerSetOrigin (Header h, const char *origin) | |||
| Store header origin (e.g path or URL). | ||||
| static int | headerGetInstance (Header h) | |||
| Return header instance (if from rpmdb). | ||||
| static int | headerSetInstance (Header h, int instance) | |||
| Store header instance (e.g path or URL). | ||||
| static int | regionSwab (indexEntry entry, int il, int dl, entryInfo pe, unsigned char *dataStart, const unsigned char *dataEnd, int regionid) | |||
| Swap int_32 and int_16 arrays within header region. | ||||
| static void * | doHeaderUnload (Header h, int *lengthPtr) | |||
| ||||
| static int | copyEntry (const indexEntry entry, hTYP_t type, hPTR_t *p, hCNT_t c, int minMem) | |||
| Retrieve data from header entry. | ||||
| static void * | headerFreeData (const void *data, rpmTagType type) | |||
| Free data allocated when retrieved from header. | ||||
| int | headerNVR (Header h, const char **np, const char **vp, const char **rp) | |||
| Return name, version, release strings from header. | ||||
| int | headerNEVRA (Header h, const char **np, const char **ep, const char **vp, const char **rp, const char **ap) | |||
| Return name, epoch, version, release, arch strings from header. | ||||
| char ** | headerGetLangs (Header h) | |||
| Return array of locales found in header. | ||||
| int | headerGetRawEntry (Header h, int_32 tag, hTYP_t type, hPTR_t *p, hCNT_t c) | |||
| Retrieve tag value with type match. | ||||
| static int | headerUsageCount (Header h) | |||
| Return header reference count. | ||||
| void | headerDump (Header h, FILE *f, int flags, const struct headerTagTableEntry_s *tags) | |||
| Dump a header in human readable format (for debugging). | ||||
Variables | ||||
| HV_s * | hdrVec | |||
| Header methods for rpm headers. | ||||
| static unsigned char | header_magic [8] | |||
| static int | typeAlign [16] | |||
| Alignment needed for header data types. | ||||
| static int | typeSizes [16] | |||
| Size of header data types. | ||||
| static size_t | headerMaxbytes = (32*1024*1024) | |||
| Maximum no. | ||||
| headerSprintfExtension_s | headerDefaultFormats [] | |||
| Supported default header tag output formats. | ||||
| typedef struct entryInfo_s* entryInfo |
Add tag to header.
Duplicate tags are okay, but only defined for iteration (with the exceptions noted below). While you are allowed to add i18n string arrays through this function, you probably don't mean to. See headerAddI18NString() instead.
| h | header | |
| tag | tag | |
| type | tag value data type | |
| p | pointer to tag value(s) | |
| c | number of values |
| typedef int(*) HDRaddi18n(Header h, int_32 tag, const char *string, const char *lang) |
Add locale specific tag to header.
A NULL lang is interpreted as the C locale. Here are the rules:
* - If the tag isn't in the header, it's added with the passed string * as new value. * - If the tag occurs multiple times in entry, which tag is affected * by the operation is undefined. * - If the tag is in the header w/ this language, the entry is * *replaced* (like headerModifyEntry()). *
| h | header | |
| tag | tag | |
| string | tag value | |
| lang | locale |
| typedef int(*) HDRaddorappend(Header h, int_32 tag, int_32 type, const void *p, int_32 c) |
Append element to tag array in header.
Appends item p to entry w/ tag and type as passed. Won't work on RPM_STRING_TYPE. Any pointers into header memory returned from headerGetEntryMinMemory() for this entry are invalid after this call has been made!
| h | header | |
| tag | tag | |
| type | tag value data type | |
| p | pointer to tag value(s) | |
| c | number of values |
| typedef Header(*) HDRcopyload(const void *uh) |
| typedef void(*) HDRcopytags(Header headerFrom, Header headerTo, hTAG_t tagstocopy) |
| typedef HeaderIterator(*) HDRfreeiter(HeaderIterator hi) |
| typedef void*(*) HDRfreetag(Header h,const void *data, rpmTagType type) |
Retrieve tag value.
Will never return RPM_I18NSTRING_TYPE! RPM_STRING_TYPE elements with RPM_I18NSTRING_TYPE equivalent entries are translated (if HEADER_I18NTABLE entry is present).
| h | header | |
| tag | tag |
| type | address of tag value data type (or NULL) | |
| p | address of pointer to tag value(s) (or NULL) | |
| c | address of number of values (or NULL) |
| typedef int(*) HDRgetinstance(Header h) |
Retrieve tag value using header internal array.
Get an entry using as little extra RAM as possible to return the tag value. This is only an issue for RPM_STRING_ARRAY_TYPE.
| h | header | |
| tag | tag |
| type | address of tag value data type (or NULL) | |
| p | address of pointer to tag value(s) (or NULL) | |
| c | address of number of values (or NULL) |
| typedef const char*(*) HDRgetorigin(Header h) |
| typedef HeaderIterator(*) HDRinititer(Header h) |
| typedef int(*) HDRisentry(Header h, int_32 tag) |
| typedef int(*) HDRnextiter(HeaderIterator hi,hTAG_t tag,hTYP_t type,hPTR_t *p,hCNT_t c) |
| typedef int(*) HDRsetinstance(Header h, int instance) |
Store header instance (e.g path or URL).
| h | header |