2 * \file lib/header_internal.c
7 #include <rpm/rpmtypes.h>
8 #include "lib/header_internal.h"
12 uint64_t htonll( uint64_t n ) {
13 uint32_t *i = (uint32_t*)&n;
21 * Backwards compatibility wrappers for legacy interfaces.
22 * Remove these some day...
24 #define _RPM_4_4_COMPAT
25 #include <rpm/rpmlegacy.h>
27 /* dumb macro to avoid 50 copies of this code while converting... */
38 int headerRemoveEntry(Header h, rpmTag tag)
40 return headerDel(h, tag);
43 static void *_headerFreeData(rpm_data_t data, rpmTagType type)
46 if (type == RPM_FORCEFREE_TYPE ||
47 type == RPM_STRING_ARRAY_TYPE ||
48 type == RPM_I18NSTRING_TYPE ||
55 void * headerFreeData(rpm_data_t data, rpmTagType type)
57 return _headerFreeData(data, type);
60 void * headerFreeTag(Header h, rpm_data_t data, rpmTagType type)
62 return _headerFreeData(data, type);
65 static int headerGetWrap(Header h, rpmTag tag,
74 rc = headerGet(h, tag, &td, flags);
79 int headerGetEntry(Header h, rpmTag tag,
84 return headerGetWrap(h, tag, type, p, c, HEADERGET_DEFAULT);
87 int headerGetEntryMinMemory(Header h, rpmTag tag,
92 return headerGetWrap(h, tag, type, (rpm_data_t) p, c, HEADERGET_MINMEM);
95 int headerGetRawEntry(Header h, rpmTag tag, rpmTagType * type, rpm_data_t * p,
99 return headerIsEntry(h, tag);
101 return headerGetWrap(h, tag, type, p, c, HEADERGET_RAW);
104 int headerNextIterator(HeaderIterator hi,
113 rc = headerNext(hi, &td);
120 int headerModifyEntry(Header h, rpmTag tag, rpmTagType type,
121 rpm_constdata_t p, rpm_count_t c)
123 struct rpmtd_s td = {
129 return headerMod(h, &td);
132 static int headerPutWrap(Header h, rpmTag tag, rpmTagType type,
133 rpm_constdata_t p, rpm_count_t c, headerPutFlags flags)
135 struct rpmtd_s td = {
141 return headerPut(h, &td, flags);
144 int headerAddOrAppendEntry(Header h, rpmTag tag, rpmTagType type,
145 rpm_constdata_t p, rpm_count_t c)
147 return headerPutWrap(h, tag, type, p, c, HEADERPUT_APPEND);
150 int headerAppendEntry(Header h, rpmTag tag, rpmTagType type,
151 rpm_constdata_t p, rpm_count_t c)
153 return headerPutWrap(h, tag, type, p, c, HEADERPUT_APPEND);
156 int headerAddEntry(Header h, rpmTag tag, rpmTagType type,
157 rpm_constdata_t p, rpm_count_t c)
159 return headerPutWrap(h, tag, type, p, c, HEADERPUT_DEFAULT);
161 #undef _RPM_4_4_COMPAT