Quick 'n dirty macro evaluation.
authorjbj <devnull@localhost>
Fri, 2 Jul 1999 20:56:04 +0000 (20:56 +0000)
committerjbj <devnull@localhost>
Fri, 2 Jul 1999 20:56:04 +0000 (20:56 +0000)
CVS patchset: 3120
CVS date: 1999/07/02 20:56:04

lib/Makefile.am
lib/macro.c
rpmio/macro.c

index b2b3272..5d23649 100644 (file)
@@ -47,3 +47,6 @@ lclint:
 tmacro: macro.c
        $(CC) $(CFLAGS) ${DEFS} -DDEBUG_MACROS ${INCLUDES} -o $@ $<
 
+rpmeval: macro.c
+       $(CC) $(CFLAGS) ${DEFS} -DDEBUG_MACROS -DEVAL_MACROS ${INCLUDES} -o $@ $<
+
index ff2f40d..4206f60 100644 (file)
@@ -1396,7 +1396,50 @@ rpmGetPath(const char *path, ...)
 
 /* =============================================================== */
 
-#ifdef DEBUG_MACROS
+#if defined(DEBUG_MACROS)
+
+#if defined(EVAL_MACROS)
+
+char *macrofiles = "/usr/lib/rpm/macros:/etc/rpm/macros";
+
+int
+main(int argc, char *argv[])
+{
+       int c;
+       int errflg = 0;
+       extern char *optarg;
+       extern int optind;
+
+       while ((c = getopt(argc, argv, "f:")) != EOF ) {
+           switch (c) {
+           case 'f':
+               macrofiles = optarg;
+               break;
+           case '?':
+           default:
+               errflg++;
+               break;
+           }
+       }
+       if (errflg || optind >= argc) {
+           fprintf(stderr, "Usage: %s [-f macropath ] macro ...\n", argv[0]);
+           exit(1);
+       }
+
+       initMacros(NULL, macrofiles);
+       for ( ; optind < argc; optind++) {
+           const char *val;
+
+           val = rpmGetPath(argv[optind], NULL);
+           if (val) {
+               fprintf(stdout, "%s:\t%s\n", argv[optind], val);
+               xfree(val);
+           }
+       }
+       return 0;
+}
+
+#else  /* !EVAL_MACROS */
 
 char *macrofiles = "../macros:./testmacros";
 char *testfile = "./test";
@@ -1430,4 +1473,5 @@ main(int argc, char *argv[])
 
        return 0;
 }
+#endif /* EVAL_MACROS */
 #endif /* DEBUG_MACROS */
index ff2f40d..4206f60 100644 (file)
@@ -1396,7 +1396,50 @@ rpmGetPath(const char *path, ...)
 
 /* =============================================================== */
 
-#ifdef DEBUG_MACROS
+#if defined(DEBUG_MACROS)
+
+#if defined(EVAL_MACROS)
+
+char *macrofiles = "/usr/lib/rpm/macros:/etc/rpm/macros";
+
+int
+main(int argc, char *argv[])
+{
+       int c;
+       int errflg = 0;
+       extern char *optarg;
+       extern int optind;
+
+       while ((c = getopt(argc, argv, "f:")) != EOF ) {
+           switch (c) {
+           case 'f':
+               macrofiles = optarg;
+               break;
+           case '?':
+           default:
+               errflg++;
+               break;
+           }
+       }
+       if (errflg || optind >= argc) {
+           fprintf(stderr, "Usage: %s [-f macropath ] macro ...\n", argv[0]);
+           exit(1);
+       }
+
+       initMacros(NULL, macrofiles);
+       for ( ; optind < argc; optind++) {
+           const char *val;
+
+           val = rpmGetPath(argv[optind], NULL);
+           if (val) {
+               fprintf(stdout, "%s:\t%s\n", argv[optind], val);
+               xfree(val);
+           }
+       }
+       return 0;
+}
+
+#else  /* !EVAL_MACROS */
 
 char *macrofiles = "../macros:./testmacros";
 char *testfile = "./test";
@@ -1430,4 +1473,5 @@ main(int argc, char *argv[])
 
        return 0;
 }
+#endif /* EVAL_MACROS */
 #endif /* DEBUG_MACROS */