diff options
author | Karel Zak <kzak@redhat.com> | 2024-04-15 11:59:01 +0200 |
---|---|---|
committer | Karel Zak <kzak@redhat.com> | 2024-04-15 12:53:51 +0200 |
commit | 506ad7fb88a3230f1dfbf99a2e9bc971a8201235 (patch) | |
tree | 2627a24b99ec89b78bb4cdb473761e85ad0ffe34 | |
parent | 1c48fbaf2af691f9484dd988afd62044fa797f42 (diff) | |
download | util-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.y | 16 |
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; |