5 /* FIXME: define EXIT_FAILURE */
9 #if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC
12 # define VA_START(args, lastarg) va_start(args, lastarg)
15 # define VA_START(args, lastarg) va_start(args)
18 # define va_alist a1, a2, a3, a4, a5, a6, a7, a8
19 # define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8;
22 #if STDC_HEADERS || _LIBC
30 # define program_name program_invocation_name
32 /* The calling program should define program_name and set it to the
33 name of the executing program. */
34 extern char *program_name;
39 /* Like error, but always exit with EXIT_FAILURE. */
42 #if defined VA_START && __STDC__
43 fatal (int errnum, const char *message, ...)
45 fatal (errnum, message, va_alist)
55 if (error_print_progname)
56 (*error_print_progname) ();
60 fprintf (stderr, "%s: ", program_name);
64 VA_START (args, message);
65 error (EXIT_FAILURE, errnum, message, args);
68 error (EXIT_FAILURE, errnum, message, a1, a2, a3, a4, a5, a6, a7, a8);