From: Karel Zak Date: Mon, 15 Apr 2024 09:59:01 +0000 (+0200) Subject: libsmartcols: (filter) use variable argument lists for yyerror() X-Git-Tag: v2.42-start~409 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=506ad7fb88a3230f1dfbf99a2e9bc971a8201235;p=thirdparty%2Futil-linux.git libsmartcols: (filter) use variable argument lists for yyerror() Signed-off-by: Karel Zak --- diff --git a/libsmartcols/src/filter-parser.y b/libsmartcols/src/filter-parser.y index ce245f367..9104c5e06 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;