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 [email protected]