RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/ CHANGES rpm/rpmio/ macro.c

From: Jeff Johnson <jbj@rpm5.org>
Date: Fri 28 Dec 2007 - 02:20:13 CET
Message-Id: <20071228012013.C02A934845C@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:   28-Dec-2007 02:20:13
  Branch: HEAD                             Handle: 2007122801201300

  Modified files:
    rpm                     CHANGES
    rpm/rpmio               macro.c

  Log:
    - jbj: fixup %{@foo:, } per rse comments.

  Summary:
    Revision    Changes     Path
    1.2026      +1  -0      rpm/CHANGES
    2.163       +19 -5      rpm/rpmio/macro.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.2025 -r1.2026 CHANGES
  --- rpm/CHANGES	27 Dec 2007 20:12:26 -0000	1.2025
  +++ rpm/CHANGES	28 Dec 2007 01:20:13 -0000	1.2026
  @@ -1,4 +1,5 @@
   5.0b3 -> 5.0b4:
  +    - jbj: fixup %{@foo:, } per rse comments.
       - jbj: convert %{@foo:|} to "foo|bar|quux" tuple. %@foo assumes CSV comma.
       - rse: implement "rpm --undefine <macro>" as the counterpart to "rpm --define '<macro> <value>'"
       - afb: added %__objext,%__libext,%__shlibext,%__exeext for file extensions.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/macro.c
  ============================================================================
  $ cvs diff -u -r2.162 -r2.163 macro.c
  --- rpm/rpmio/macro.c	27 Dec 2007 20:12:26 -0000	2.162
  +++ rpm/rpmio/macro.c	28 Dec 2007 01:20:13 -0000	2.163
  @@ -1304,6 +1304,20 @@
       }
   }
   
  +static int expandFIFO(MacroBuf mb, MacroEntry me, const char *g, size_t gn)
  +	/*@*/
  +{
  +    int rc = 0;
  +
  +    if (me->prev == NULL)
  +	return rc;
  +
  +    expandFIFO(mb, me->prev, g, gn);
  +    if (me->prev->prev)
  +	rc = expandT(mb, g, gn);
  +    return expandT(mb, me->body, strlen(me->body));
  +}
  +
   /**
    * The main macro recursion loop.
    * @todo Dynamically reallocate target buffer.
  @@ -1673,11 +1687,11 @@
   
   	/* XXX Special processing to create a tuple from stack'd values. */
   	if (stackarray) {
  -		c = ((g && g < ge) ? *g : ',');
  -		do {
  -			if (me != *mep)	SAVECHAR(mb, c);
  -			rc = expandT(mb, me->body, strlen(me->body));
  -		} while ((me = me->prev) != NULL);
  +		if (!(g && g < ge)) {
  +			g = ",";
  +			gn = strlen(g);
  +		}
  +		rc = expandFIFO(mb, me, g, gn);
   		s = se;
   		continue;
   	}
  @@ .
Received on Fri Dec 28 02:20:13 2007
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.