RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 02-Aug-2007 19:30:13 Branch: HEAD Handle: 2007080218301200 Modified files: rpm CHANGES rpm/rpmdb hdrinline.h header.c header.h Log: - add headerGetExtension(), mapped to gud old stuff for now. Summary: Revision Changes Path 1.1547 +1 -0 rpm/CHANGES 1.11 +21 -0 rpm/rpmdb/hdrinline.h 1.56 +22 -0 rpm/rpmdb/header.c 1.18 +18 -0 rpm/rpmdb/header.h ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/CHANGES ============================================================================ $ cvs diff -u -r1.1546 -r1.1547 CHANGES --- rpm/CHANGES 2 Aug 2007 17:15:41 -0000 1.1546 +++ rpm/CHANGES 2 Aug 2007 17:30:12 -0000 1.1547 @@ -1,4 +1,5 @@ 4.5 -> 5.0: + - jbj: add headerGetExtension(), mapped to gud old stuff for now. - jbj: skeletal configgery for standalone index tables. - jbj: another header-extension-less hack-a-round. - jbj: hack up a NVRA retrival w/o extensions, sigh. @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/hdrinline.h ============================================================================ $ cvs diff -u -r1.10 -r1.11 hdrinline.h --- rpm/rpmdb/hdrinline.h 30 Jul 2007 17:34:37 -0000 1.10 +++ rpm/rpmdb/hdrinline.h 2 Aug 2007 17:30:12 -0000 1.11 @@ -249,6 +249,27 @@ return (h2hv(h)->hdrfreetag) (h, data, type); } +/* + * Retrieve extension or tag value. + * + * @param h header + * @param tag tag + * @retval *type tag value data type (or NULL) + * @retval *p tag value(s) (or NULL) + * @retval *c number of values (or NULL) + * @return 1 on success, 0 on failure + */ +/[EMAIL PROTECTED]@*/ static inline +int headerGetExtension(Header h, int_32 tag, + /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ hTYP_t type, + /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ void * p, + /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ hCNT_t c) + /[EMAIL PROTECTED] *type, *p, *c @*/ +{ + if (h == NULL) return 0; + return (h2hv(h)->hdrext) (h, tag, type, p, c); +} + /** \ingroup header * Retrieve tag value. * Will never return RPM_I18NSTRING_TYPE! RPM_STRING_TYPE elements with @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/header.c ============================================================================ $ cvs diff -u -r1.55 -r1.56 header.c --- rpm/rpmdb/header.c 30 Jul 2007 20:24:35 -0000 1.55 +++ rpm/rpmdb/header.c 2 Aug 2007 17:30:12 -0000 1.56 @@ -1827,6 +1827,27 @@ } /** \ingroup header + * Retrieve extension or tag value. + * + * @param h header + * @param tag tag + * @retval *type tag value data type (or NULL) + * @retval *p tag value(s) (or NULL) + * @retval *c number of values (or NULL) + * @return 1 on success, 0 on failure + */ +static +int headerGetExtension(Header h, int_32 tag, + /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ hTYP_t type, + /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ void * p, + /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ hCNT_t c) + /[EMAIL PROTECTED] *type, *p, *c @*/ + /[EMAIL PROTECTED] maxSet(type) >= 0 /\ maxSet(p) >= 0 /\ maxSet(c) >= 0 @*/ +{ + return intGetEntry(h, tag, type, (hPTR_t *)p, c, 1); +} + +/** \ingroup header * Retrieve tag value. * Will never return RPM_I18NSTRING_TYPE! RPM_STRING_TYPE elements with * RPM_I18NSTRING_TYPE equivalent entries are translated (if HEADER_I18NTABLE @@ -4003,6 +4024,7 @@ headerWrite, headerIsEntry, headerFreeTag, + headerGetExtension, headerGetEntry, headerGetEntryMinMemory, headerAddEntry, @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/header.h ============================================================================ $ cvs diff -u -r1.17 -r1.18 header.h --- rpm/rpmdb/header.h 30 Jul 2007 17:34:37 -0000 1.17 +++ rpm/rpmdb/header.h 2 Aug 2007 17:30:12 -0000 1.18 @@ -486,6 +486,23 @@ /[EMAIL PROTECTED] data @*/; /** \ingroup header + * Retrieve extension or tag value. + * + * @param h header + * @param tag tag + * @retval *type tag value data type (or NULL) + * @retval *p tag value(s) (or NULL) + * @retval *c number of values (or NULL) + * @return 1 on success, 0 on failure + */ +typedef +int (*HDRext) (Header h, int_32 tag, + /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ hTYP_t type, + /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ void * p, + /[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/ hCNT_t c) + /[EMAIL PROTECTED] *type, *p, *c @*/; + +/** \ingroup header * Retrieve tag value. * Will never return RPM_I18NSTRING_TYPE! RPM_STRING_TYPE elements with * RPM_I18NSTRING_TYPE equivalent entries are translated (if HEADER_I18NTABLE @@ -749,6 +766,7 @@ HDRwrite hdrwrite; HDRisentry hdrisentry; HDRfreetag hdrfreetag; + HDRext hdrext; HDRget hdrget; HDRgetmin hdrgetmin; HDRadd hdradd; @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org