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