diff options
Diffstat (limited to 'btreplay/btreplay.c')
-rw-r--r-- | btreplay/btreplay.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/btreplay/btreplay.c b/btreplay/btreplay.c index 48181a4..89881cb 100644 --- a/btreplay/btreplay.c +++ b/btreplay/btreplay.c @@ -37,6 +37,7 @@ static char build_date[] = __DATE__ " at "__TIME__; #include <sys/time.h> #include <sys/types.h> #include <dirent.h> +#include <stdarg.h> #if !defined(_GNU_SOURCE) # define _GNU_SOURCE @@ -207,13 +208,21 @@ static char usage_str[]; */ #define ERR_ARGS 1 #define ERR_SYSCALL 2 -#define fatal(errstring, exitval, arg...) \ - do { \ - if (errstring) perror(errstring); \ - fprintf(stderr, ##arg); \ - exit(exitval); \ - /*NOTREACHED*/ \ - } while (0) +static inline void fatal(const char *errstring, const int exitval, + const char *fmt, ...) +{ + va_list ap; + + if (errstring) + perror(errstring); + + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + + exit(exitval); + /*NOTREACHED*/ +} static inline long long unsigned du64_to_sec(__u64 du64) { |