7 #include <rpm/rpmtypes.h>
8 #include <rpm/header.h>
9 #include <rpm/rpmstring.h>
13 static int NEVRA(Header h, const char **np,
14 uint32_t **ep, const char **vp, const char **rp,
17 if (np) *np = headerGetString(h, RPMTAG_NAME);
18 if (vp) *vp = headerGetString(h, RPMTAG_VERSION);
19 if (rp) *rp = headerGetString(h, RPMTAG_RELEASE);
20 if (ap) *ap = headerGetString(h, RPMTAG_ARCH);
23 headerGet(h, RPMTAG_EPOCH, &td, HEADERGET_DEFAULT);
24 *ep = rpmtdGetUint32(&td);
29 int headerNVR(Header h, const char **np, const char **vp, const char **rp)
31 return NEVRA(h, np, NULL, vp, rp, NULL);
34 int headerNEVRA(Header h, const char **np,
35 uint32_t **ep, const char **vp, const char **rp,
38 return NEVRA(h, np, ep, vp, rp, ap);
41 static char *getNEVRA(Header h, rpmTag tag, const char **np)
43 if (np) *np = headerGetString(h, RPMTAG_NAME);
44 return headerGetAsString(h, tag);
47 char * headerGetNEVR(Header h, const char ** np)
49 return getNEVRA(h, RPMTAG_NEVR, np);
52 char * headerGetNEVRA(Header h, const char ** np)
54 return getNEVRA(h, RPMTAG_NEVRA, np);
57 char * headerGetEVR(Header h, const char ** np)
59 return getNEVRA(h, RPMTAG_EVR, np);
62 rpm_color_t headerGetColor(Header h)
64 return headerGetNumber(h, RPMTAG_HEADERCOLOR);
67 int headerIsSource(Header h)
69 return (!headerIsEntry(h, RPMTAG_SOURCERPM));