RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: jbj@rpm5.org
Module: rpm Date: 26-Nov-2007 07:52:53
Branch: HEAD Handle: 2007112606525200
Modified files:
rpm CHANGES
rpm/rpmdb hdrfmt.c header.c rpmtag.h
Log:
- add HEADERGET_NOEXTENSION disabler, kill off headerGetEntry.
Summary:
Revision Changes Path
1.1892 +1 -0 rpm/CHANGES
1.46 +2 -4 rpm/rpmdb/hdrfmt.c
1.138 +3 -23 rpm/rpmdb/header.c
1.17 +3 -22 rpm/rpmdb/rpmtag.h
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.1891 -r1.1892 CHANGES
--- rpm/CHANGES 26 Nov 2007 06:15:34 -0000 1.1891
+++ rpm/CHANGES 26 Nov 2007 06:52:52 -0000 1.1892
@@ -1,4 +1,5 @@
5.0a2 -> 5.0a3:
+ - jbj: add HEADERGET_NOEXTENSION disabler, kill off headerGetEntry.
- jbj: 1 down, 2 to go, to get rid of headerGetEntry.
- jbj: limit headerGetEntry usage to -lrpmdb only.
- jbj: Eliminate header.h and hdrinline.h.
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/hdrfmt.c
============================================================================
$ cvs diff -u -r1.45 -r1.46 hdrfmt.c
--- rpm/rpmdb/hdrfmt.c 26 Nov 2007 06:15:34 -0000 1.45
+++ rpm/rpmdb/hdrfmt.c 26 Nov 2007 06:52:52 -0000 1.46
@@ -1310,10 +1310,9 @@
if (!rc)
return rc;
- rc = headerGetEntry(h, he->tag, &he->t, &he->p, &he->c);
+ rc = headerGet(h, he, HEADERGET_NOEXTENSION);
if (rc) {
rc = 0;
- he->p.str = xstrdup(he->p.str);
he->p.str = xstrtolocale(he->p.str);
he->freeData = 1;
/*@-nullstate@*/
@@ -1337,7 +1336,7 @@
{
int rc;
- rc = headerGetEntry(h, he->tag, &he->t, &he->p, &he->c);
+ rc = headerGet(h, he, HEADERGET_NOEXTENSION);
if (!rc || he->p.str == NULL || he->c == 0) {
he->t = RPM_STRING_TYPE;
he->freeData = 0;
@@ -1349,7 +1348,6 @@
he->freeData = 0;
break;
case RPM_STRING_TYPE:
- he->p.str = xstrdup(he->p.str);
he->p.str = xstrtolocale(he->p.str);
he->freeData = 1;
break;
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/header.c
============================================================================
$ cvs diff -u -r1.137 -r1.138 header.c
--- rpm/rpmdb/header.c 26 Nov 2007 05:16:52 -0000 1.137
+++ rpm/rpmdb/header.c 26 Nov 2007 06:52:52 -0000 1.138
@@ -1493,27 +1493,6 @@
return ((rc == 1) ? 1 : 0);
}
-int headerGetEntry(Header h, rpmTag tag, rpmTagType * type,
- rpmTagData * p, rpmTagCount * c)
-{
- HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
- void * sw;
- int rc;
-
- if ((sw = headerGetStats(h, 19)) != NULL) /* RPMTS_OP_HDRGET */
- (void) rpmswEnter(sw, 0);
- he->tag = tag;
- rc = intGetEntry(h, he, 0);
- if (sw != NULL) (void) rpmswExit(sw, 0);
- if (type)
- *type = he->t;
- if (p)
- (*p).ptr = he->p.ptr;
- if (c)
- *c = he->c;
- return rc;
-}
-
/**
*/
static void copyData(rpmTagType type, rpmTagData * dest, rpmTagData * src,
@@ -2038,12 +2017,12 @@
}
}
-int headerGet(Header h, HE_t he, /*@unused@*/ unsigned int flags)
+int headerGet(Header h, HE_t he, unsigned int flags)
{
void * sw;
const char * name;
headerSprintfExtension exts = headerCompoundFormats;
- headerSprintfExtension ext;
+ headerSprintfExtension ext = NULL;
int extNum;
int rc;
@@ -2060,6 +2039,7 @@
(void) rpmswEnter(sw, 0);
/* Search extensions for specific tag override. */
+ if (!(flags & HEADERGET_NOEXTENSION))
for (ext = exts, extNum = 0; ext != NULL && ext->type != HEADER_EXT_LAST;
ext = (ext->type == HEADER_EXT_MORE ? *ext->u.more : ext+1), extNum++)
{
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmdb/rpmtag.h
============================================================================
$ cvs diff -u -r1.16 -r1.17 rpmtag.h
--- rpm/rpmdb/rpmtag.h 26 Nov 2007 05:16:52 -0000 1.16
+++ rpm/rpmdb/rpmtag.h 26 Nov 2007 06:52:52 -0000 1.17
@@ -657,12 +657,13 @@
*
* @param h header
* @param he tag container
- * @param flags (unused)
+ * @param flags tag retrieval flags
* @return 1 on success, 0 on failure
*/
-int headerGet(Header h, HE_t he, /*@unused@*/ unsigned int flags)
+int headerGet(Header h, HE_t he, unsigned int flags)
/*@globals headerCompoundFormats @*/
/*@modifies he @*/;
+#define HEADERGET_NOEXTENSION (1 << 0) /*!< Extension search disabler. */
/** \ingroup header
* Add or append tag container to header.
@@ -822,26 +823,6 @@
/*@*/;
/** \ingroup header
- * Retrieve tag value.
- * @todo Eliminate.
- * Will never return RPM_I18NSTRING_TYPE! RPM_STRING_TYPE elements with
- * RPM_I18NSTRING_TYPE equivalent entries are translated (if HEADER_I18NTABLE
- * entry is present).
- *
- * @param h header
- * @param tag tag
- * @retval *type tag value data type (or NULL)
- * @retval *p pointer to tag value(s) (or NULL)
- * @retval *c number of values (or NULL)
- * @return 1 on success, 0 on failure
- */
-int headerGetEntry(Header h, rpmTag tag,
- /*@null@*/ /*@out@*/ rpmTagType * type,
- /*@null@*/ /*@out@*/ rpmTagData * p,
- /*@null@*/ /*@out@*/ rpmTagCount * c)
- /*@modifies *type, *p, *c @*/;
-
-/** \ingroup header
* Add locale specific tag to header.
* A NULL lang is interpreted as the C locale. Here are the rules:
* \verbatim
@@ .
Received on Mon Nov 26 07:52:53 2007