RPM Community Forums

Mailing List Message of <rpm-cvs>

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

From: Jeff Johnson <jbj@rpm5.org>
Date: Mon 04 Feb 2008 - 22:18:33 CET
Message-Id: <20080204211833.4C3CE348458@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:   04-Feb-2008 22:18:33
  Branch: rpm-5_0                          Handle: 2008020421183200

  Modified files:           (Branch: rpm-5_0)
    rpm                     CHANGES
    rpm/rpmio               macro.c

  Log:
    - jbj: backport %{shrink:...} and %{getenv:...} builtin macros.

  Summary:
    Revision    Changes     Path
    1.2054.2.37 +1  -0      rpm/CHANGES
    2.171.2.4   +27 -1      rpm/rpmio/macro.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.2054.2.36 -r1.2054.2.37 CHANGES
  --- rpm/CHANGES	4 Feb 2008 16:08:02 -0000	1.2054.2.36
  +++ rpm/CHANGES	4 Feb 2008 21:18:32 -0000	1.2054.2.37
  @@ -1,4 +1,5 @@
   5.0.1 -> 5.0.2:
  +    - jbj: backport %{shrink:...} and %{getenv:...} builtin macros.
       - jbj: updated sv.po (Translation Project).
       - jbj: fix: permit #%patchN comments by forcing single line expansion.
       - jbj: document newer macro builtins (%{@foo:...}, %{uuid:...}, and %{lua:...} todo).
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/macro.c
  ============================================================================
  $ cvs diff -u -r2.171.2.3 -r2.171.2.4 macro.c
  --- rpm/rpmio/macro.c	1 Feb 2008 07:58:40 -0000	2.171.2.3
  +++ rpm/rpmio/macro.c	4 Feb 2008 21:18:32 -0000	2.171.2.4
  @@ -1240,6 +1240,30 @@
                   b = buf;
               }
           }
  +    } else if (STREQ("getenv", f, fn)) {
  +        char *cp;
  +        if ((cp = getenv(buf)) != NULL)
  +            b = cp;
  +    } else if (STREQ("shrink", f, fn)) {
  +        /* shrink body by removing all leading and trailing whitespaces and
  +           reducing intermediate whitespaces to a single space character */
  +        int i, j, k, was_space = 0;
  +        for (i = 0, j = 0, k = strlen(buf); i < k; ) {
  +            if (xisspace((int)(buf[i]))) {
  +                was_space = 1;
  +                i++;
  +                continue;
  +            }
  +            else if (was_space) {
  +                was_space = 0;
  +                if (j > 0) /* remove leading blanks at all */
  +                    buf[j++] = ' ';
  +                /* fallthrough */
  +            }
  +            buf[j++] = buf[i++];
  +        }
  +        buf[j] = '\0';
  +        b = buf;
       } else if (STREQ("suffix", f, fn)) {
   	if ((b = strrchr(buf, '.')) != NULL)
   	    b++;
  @@ -1589,7 +1613,7 @@
   		char *scriptbuf = (char *)xmalloc((lse-ls)+1);
   		const char *printbuf;
   
  -		/* Reset the stateful output buffer bfore recursing down. */
  +		/* Reset the stateful output buffer before recursing down. */
   		lua->storeprint = 1;
   		lua->printbuf = NULL;
   		lua->printbufsize = 0;
  @@ -1634,6 +1658,8 @@
   	if (STREQ("basename", f, fn) ||
   	    STREQ("dirname", f, fn) ||
   	    STREQ("realpath", f, fn) ||
  +	    STREQ("getenv", f, fn) ||
  +	    STREQ("shrink", f, fn) ||
   	    STREQ("suffix", f, fn) ||
   	    STREQ("expand", f, fn) ||
   	    STREQ("verbose", f, fn) ||
  @@ .
Received on Mon Feb 4 22:18:33 2008
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.