]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libsmartcols: (filter) use variable argument lists for yyerror()
authorKarel Zak <kzak@redhat.com>
Mon, 15 Apr 2024 09:59:01 +0000 (11:59 +0200)
committerKarel Zak <kzak@redhat.com>
Mon, 15 Apr 2024 10:53:51 +0000 (12:53 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
libsmartcols/src/filter-parser.y

index ce245f3674c0edde8199b0c39cc75fbb5f456c78..9104c5e0620476816d68a3622071bbab7bfe74da 100644 (file)
@@ -12,7 +12,7 @@
 #include "filter-parser.h"
 #include "filter-scanner.h"
 
-void yyerror(yyscan_t *locp, struct libscols_filter *fltr, char const *msg);
+void yyerror(yyscan_t *locp, struct libscols_filter *fltr, char const *fmt, ...);
 
 %}
 
@@ -119,15 +119,21 @@ param:
 
 void yyerror (yyscan_t *locp __attribute__((__unused__)),
              struct libscols_filter *fltr,
-             char const *msg)
+             char const *fmt, ...)
 {
-       if (msg && fltr) {
+       if (fmt && fltr) {
                char *p;
+               va_list ap;
 
-               if (fltr->errmsg)
+               if (fltr->errmsg) {
                        free(fltr->errmsg);
+                       fltr->errmsg = NULL;
+               }
+
+               va_start(ap, fmt);
+               vasprintf(&fltr->errmsg, fmt, ap);
+               va_end(ap);
 
-               fltr->errmsg = strdup(msg);
                if (!fltr->errmsg)
                        return;