RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/ CHANGES rpm/rpmio/ Makefile.am mire.c

From: Jeff Johnson <jbj@rpm5.org>
Date: Sat 02 Feb 2008 - 02:33:20 CET
Message-Id: <20080202013320.2D169348494@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:   02-Feb-2008 02:33:20
  Branch: HEAD                             Handle: 2008020201331900

  Modified files:
    rpm                     CHANGES
    rpm/rpmio               Makefile.am mire.c

  Log:
    - jbj: mire.c: add STANDALONE test exerciser.

  Summary:
    Revision    Changes     Path
    1.2124      +1  -0      rpm/CHANGES
    1.120       +23 -16     rpm/rpmio/Makefile.am
    1.9         +86 -13     rpm/rpmio/mire.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.2123 -r1.2124 CHANGES
  --- rpm/CHANGES	1 Feb 2008 19:45:52 -0000	1.2123
  +++ rpm/CHANGES	2 Feb 2008 01:33:19 -0000	1.2124
  @@ -1,4 +1,5 @@
   5.0.0 -> 5.1a1:
  +    - jbj: mire.c: add STANDALONE test exerciser.
       - jbj: use struct timeval timestamp for INSTALL{TID,TIME} and ORIGIN{TID,TIME}.
   	Note: TID.usec field is always 0 atm.
       - rse: add new RPM macro "%{uuid:[<version>[, <ns>, <data>]]}" for generating UUIDs of version 1, 3, 4 or 5
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/Makefile.am
  ============================================================================
  $ cvs diff -u -r1.119 -r1.120 Makefile.am
  --- rpm/rpmio/Makefile.am	1 Feb 2008 13:48:47 -0000	1.119
  +++ rpm/rpmio/Makefile.am	2 Feb 2008 01:33:19 -0000	1.120
  @@ -6,7 +6,7 @@
   
   EXTRA_DIST = gengpg.sh tdir.c tfts.c tget.c thkp.c tput.c tglob.c tinv.c tkey.c trpmio.c lookup3.c tpw.c librpmio.vers
   
  -EXTRA_PROGRAMS = tdir tfts tget thkp tmacro tput tglob tinv tkey tmagic trpmio tsw dumpasn1 lookup3 tpw
  +EXTRA_PROGRAMS = tdir tfts tget tglob thkp tinv tkey tmacro tmagic tmire tput tpw trpmio tsw dumpasn1 lookup3
   
   AM_CPPFLAGS = \
   	-I$(srcdir) \
  @@ -104,9 +104,24 @@
   tget_SOURCES = tget.c
   tget_LDADD = $(RPM_LDADD)
   
  +tglob_SOURCES = tglob.c
  +tglob_LDADD = $(RPM_LDADD)
  +
   thkp_SOURCES = thkp.c
   thkp_LDADD = $(RPM_LDADD)
   
  +tinv_SOURCES = tinv.c
  +tinv_LDADD = $(RPM_LDADD)
  +
  +tkey_SOURCES = gengpg.h tkey.c rpmgc.c rpmnss.c rpmssl.c
  +tkey_CFLAGS  = $(CFLAGS)
  +tkey_LDADD = $(RPM_LDADD) -lgcrypt
  +gengpg.h:
  +	-sh ./gengpg.sh > gengpg.h
  +
  +tmire_SOURCES = tmire.c
  +tmire_LDADD = $(RPM_LDADD)
  +
   tmacro_SOURCES =
   tmacro_LDADD = tmacro.o $(RPM_LDADD)
   tmacro.o:  macro.c
  @@ -115,28 +130,20 @@
   tmagic_SOURCES = tmagic.c
   tmagic_LDADD = $(RPM_LDADD)
   
  +tmire_SOURCES =
  +tmire_LDADD = tmire.o $(RPM_LDADD)
  +tmire.o:  mire.c
  +	$(COMPILE) -DSTANDALONE -o $@ -c $<
  +
   tput_SOURCES = tput.c
   tput_LDADD = $(RPM_LDADD)
   
  -tglob_SOURCES = tglob.c
  -tglob_LDADD = $(RPM_LDADD)
  -
  -tinv_SOURCES = tinv.c
  -tinv_LDADD = $(RPM_LDADD)
  -
  -tkey_SOURCES = gengpg.h tkey.c rpmgc.c rpmnss.c rpmssl.c
  -tkey_CFLAGS  = $(CFLAGS)
  -tkey_LDADD = $(RPM_LDADD) -lgcrypt
  -
  -gengpg.h:
  -	-sh ./gengpg.sh > gengpg.h
  +tpw_SOURCES = tpw.c
  +tpw_LDFLAGS = $(RPM_LDADD)
   
   trpmio_SOURCES = trpmio.c
   trpmio_LDADD = $(RPM_LDADD)
   
  -tpw_SOURCES = tpw.c
  -tpw_LDFLAGS = $(RPM_LDADD)
  -
   tsw_SOURCES = tsw.c
   tsw_LDFLAGS = $(RPM_LDADD)
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/mire.c
  ============================================================================
  $ cvs diff -u -r1.8 -r1.9 mire.c
  --- rpm/rpmio/mire.c	19 Nov 2007 17:07:48 -0000	1.8
  +++ rpm/rpmio/mire.c	2 Feb 2008 01:33:19 -0000	1.9
  @@ -3,6 +3,7 @@
    */
   #include "system.h"
   
  +#include <rpmio.h>	/* XXX _free */
   #include <rpmlog.h>
   #define	_MIRE_INTERNAL
   #include <mire.h>
  @@ -14,18 +15,6 @@
   /*@unchecked@*/
   int _mire_debug = 0;
   
  -/**
  - * Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.
  - * @param p		memory to free
  - * @retval		NULL always
  - */
  -/*@unused@*/ static inline /*@null@*/ void *
  -_free(/*@only@*/ /*@null@*/ const void * p) /*@modifies p@*/
  -{
  -    if (p != NULL)	free((void *)p);
  -    return NULL;
  -}
  -
   int mireClean(miRE mire)
   {
       if (mire == NULL) return 0;
  @@ -40,17 +29,22 @@
   	mire->preg = _free(mire->preg);
   	/*@=voidabstract =usereleased @*/
       }
  -    memset(mire, 0, sizeof(*mire));	/* XXX trash and burn */
  +    mire->fnflags = 0;
  +    mire->cflags = 0;
  +    mire->eflags = 0;
  +    mire->notmatch = 0;
       return 0;
   }
   
   miRE XmireUnlink(miRE mire, const char * msg, const char * fn, unsigned ln)
   {
       if (mire == NULL) return NULL;
  +
   /*@-modfilesys@*/
   if (_mire_debug && msg != NULL)
   fprintf(stderr, "--> mire %p -- %d %s at %s:%u\n", mire, mire->nrefs, msg, fn, ln);
   /*@=modfilesys@*/
  +
       mire->nrefs--;
       return NULL;
   }
  @@ -174,3 +168,82 @@
   /*@=modfilesys@*/
       return rc;
   }
  +
  +/* =============================================================== */
  +
  +#if defined(STANDALONE)
  +
  +#include <rpmcb.h>
  +#include <argv.h>
  +#include <popt.h>
  +
  +static int _debug = 0;
  +
  +static struct poptOption optionsTable[] = {
  + { "debug", 'd', POPT_ARG_VAL,	&_debug, -1,		NULL, NULL },
  +  POPT_AUTOHELP
  +  POPT_TABLEEND
  +};
  +
  +int
  +main(int argc, char *argv[])
  +{
  +    poptContext optCon = poptGetContext(argv[0], argc, argv, optionsTable, 0);
  +    miRE mire = NULL;
  +    ARGV_t av = NULL;
  +    int ac = 0;
  +    int rc;
  +    int xx;
  +    int i;
  +
  +    while ((rc = poptGetNextOpt(optCon)) > 0) {
  +        const char * optArg = poptGetOptArg(optCon);
  +        optArg = _free(optArg);
  +	switch (rc) {
  +	case 'v':
  +	    rpmIncreaseVerbosity();
  +	    /*@switchbreak@*/ break;
  +	default:
  +	    poptPrintUsage(optCon, stderr, 0);
  +	    goto exit;
  +            /*@switchbreak@*/ break;
  +	}
  +    }
  +
  +    if (_debug) {
  +	rpmIncreaseVerbosity();
  +	rpmIncreaseVerbosity();
  +_mire_debug = 1;
  +    }
  +
  +    av = poptGetArgs(optCon);
  +    ac = argvCount(av);
  +    if (ac != 1) {
  +	poptPrintUsage(optCon, stderr, 0);
  +	goto exit;
  +    }
  +
  +    mire = mireNew(RPMMIRE_REGEX, 0);
  +    if ((xx = mireRegcomp(mire, argv[1])) != 0)
  +	goto exit;
  +    
  +    xx = argvFgets(&av, NULL);
  +    ac = argvCount(av);
  +
  +    for (i = 0; i < ac; i++) {
  +	xx = mireRegexec(mire, av[i]);
  +	if (xx == 0)
  +	    fprintf(stdout, "%s\n", av[i]);
  +    }
  +
  +exit:
  +    mire = mireFree(mire);
  +
  +    av = argvFree(av);
  +
  +    optCon = poptFreeContext(optCon);
  +
  +    return 0;
  +}
  +
  +#endif	/* STANDALONE */
  @@ .
Received on Sat Feb 2 02:33:20 2008
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.