Add --undefine cli switch for undefining macros (related to RhBug:876308)
authorPanu Matilainen <pmatilai@redhat.com>
Fri, 16 Nov 2012 11:21:15 +0000 (13:21 +0200)
committerPanu Matilainen <pmatilai@redhat.com>
Fri, 16 Nov 2012 11:23:00 +0000 (13:23 +0200)
doc/rpm.8
lib/poptALL.c

index 13dbb48..ee72665 100644 (file)
--- a/doc/rpm.8
+++ b/doc/rpm.8
@@ -170,6 +170,9 @@ will be run after a chroot(2) to
 \fB-D, --define='\fIMACRO EXPR\fB'\fR
 Defines \fIMACRO\fR with value \fIEXPR\fR.
 .TP
+\fB--undefine='\fIMACRO\fB'\fR
+Undefines \fIMACRO\fR.
+.TP
 \fB-E, --eval='\fIEXPR\fB'\fR
 Prints macro expansion of \fIEXPR\fR.
 .SS "INSTALL AND UPGRADE OPTIONS"
index d2db871..541e8c4 100644 (file)
@@ -19,6 +19,7 @@ const char *__progname;
 #define POPT_QUERYTAGS         -997
 #define POPT_PREDEFINE         -996
 #define POPT_DBPATH            -995
+#define POPT_UNDEFINE          -994
 
 static int _debug = 0;
 
@@ -107,6 +108,12 @@ static void rpmcliAllArgCallback( poptContext con,
        free(s);
        break;
     }
+    case POPT_UNDEFINE:
+       rpmcliConfigured();
+       if (*arg == '%')
+           arg++;
+       delMacro(NULL, arg);
+       break;
     case 'E':
        rpmcliConfigured();
        {   char *val = rpmExpand(arg, NULL);
@@ -159,6 +166,9 @@ struct poptOption rpmcliAllPoptTable[] = {
  { "define", 'D', POPT_ARG_STRING, 0, 'D',
        N_("define MACRO with value EXPR"),
        N_("'MACRO EXPR'") },
+ { "undefine", '\0', POPT_ARG_STRING, 0, POPT_UNDEFINE,
+       N_("undefine MACRO"),
+       N_("MACRO") },
  { "eval", 'E', POPT_ARG_STRING, 0, 'E',
        N_("print macro expansion of EXPR"),
        N_("'EXPR'") },