diff --git a/ffprobe.c b/ffprobe.c index ad125ce465..27482240de 100644 --- a/ffprobe.c +++ b/ffprobe.c @@ -132,7 +132,7 @@ struct writer { const char *header, *footer; void (*print_header)(const char *); void (*print_footer)(const char *); - void (*print_fmt_f)(const char *, const char *, va_list ap); + void (*print_fmt_f)(const char *, const char *, ...); void (*print_int_f)(const char *, int); void (*show_tags)(struct writer *w, AVDictionary *dict); }; @@ -145,10 +145,13 @@ static void default_print_header(const char *section) printf("[%s]\n", section); } -static void default_print_fmt(const char *key, const char *fmt, va_list ap) +static void default_print_fmt(const char *key, const char *fmt, ...) { + va_list ap; + va_start(ap, fmt); printf("%s=", key); vprintf(fmt, ap); + va_end(ap); } static void default_print_int(const char *key, int value) @@ -164,19 +167,11 @@ static void default_print_footer(const char *section) /* Print helpers */ -static void print_vfmt0(struct writer *w, const char *key, const char *fmt, ...) -{ - va_list ap; - va_start(ap, fmt); - w->print_fmt_f(key, fmt, ap); - va_end(ap); -} - -#define print_fmt0(k, f, a...) print_vfmt0(w, k, f, ##a) +#define print_fmt0(k, f, a...) w->print_fmt_f(k, f, ##a) #define print_fmt( k, f, a...) do { \ if (w->item_sep) \ printf("%s", w->item_sep); \ - print_vfmt0(w, k, f, ##a); \ + w->print_fmt_f(k, f, ##a); \ } while (0) #define print_int0(k, v) w->print_int_f(k, v)