aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarel Zak <kzak@redhat.com>2024-04-15 11:59:01 +0200
committerKarel Zak <kzak@redhat.com>2024-04-15 12:53:51 +0200
commit506ad7fb88a3230f1dfbf99a2e9bc971a8201235 (patch)
tree2627a24b99ec89b78bb4cdb473761e85ad0ffe34
parent1c48fbaf2af691f9484dd988afd62044fa797f42 (diff)
downloadutil-linux-506ad7fb88a3230f1dfbf99a2e9bc971a8201235.tar.gz
libsmartcols: (filter) use variable argument lists for yyerror()
Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r--libsmartcols/src/filter-parser.y16
1 files changed, 11 insertions, 5 deletions
diff --git a/libsmartcols/src/filter-parser.y b/libsmartcols/src/filter-parser.y
index ce245f3674..9104c5e062 100644
--- a/libsmartcols/src/filter-parser.y
+++ b/libsmartcols/src/filter-parser.y
@@ -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;