From 506ad7fb88a3230f1dfbf99a2e9bc971a8201235 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Mon, 15 Apr 2024 11:59:01 +0200 Subject: [PATCH] libsmartcols: (filter) use variable argument lists for yyerror() Signed-off-by: Karel Zak --- libsmartcols/src/filter-parser.y | 16 +++++++++++----- 1 file 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; -- 2.47.2