Blob Blame History Raw
--- ./rpmio/macro.c.orig
+++ ./rpmio/macro.c
@@ -1141,7 +1141,10 @@ static size_t doExpand(MacroBuf mb, rpmMacroEntry me, ARGV_t argv)
 
 static size_t doVerbose(MacroBuf mb, rpmMacroEntry me, ARGV_t argv)
 {
-    mbAppend(mb, rpmIsVerbose() ? '1' : '0');
+    if (argv[1] != NULL)
+	mbAppendStr(mb, rpmIsVerbose() ? argv[1] : "");
+    else
+	mbAppend(mb, rpmIsVerbose() ? '1' : '0');
     return 0;
 }
 
@@ -1282,7 +1285,7 @@ static struct builtins_s {
     { "uncompress",	doUncompress,	1,	ME_FUNC },
     { "undefine",	doUndefine,	1,	ME_FUNC },
     { "url2path",	doFoo,		1,	ME_FUNC },
-    { "verbose",	doVerbose,	0,	ME_FUNC },
+    { "verbose",	doVerbose,	-1,	ME_FUNC },
     { "warn",		doOutput,	1,	ME_FUNC },
     { NULL,		NULL,		0 }
 };
@@ -1347,7 +1350,7 @@ doExpandThisMacro(MacroBuf mb, rpmMacroEntry me, ARGV_t args, size_t *parsed)
 	int nargs = argvCount(args) - 1;
 	int needarg = (me->nargs != 0);
 	int havearg = (nargs > 0);
-	if (needarg != havearg) {
+	if (((me->flags & ME_PARSE) || me->nargs >= 0) && needarg != havearg) {
 	    mbErr(mb, 1, "%%%s: %s\n", me->name, needarg ?
 		    _("argument expected") : _("unexpected argument"));
 	    goto exit;