RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/ CHANGES rpm/rpmdb/ hdrfmt.c header.c rpmtag.h

From: Jeff Johnson <jbj@rpm5.org>
Date: Mon 26 Nov 2007 - 07:52:53 CET
Message-Id: <20071126065253.2165C34847C@rpm5.org>
  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
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.