7 #if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC
10 # define VA_START(args, lastarg) va_start(args, lastarg)
13 # define VA_START(args, lastarg) va_start(args)
16 # define va_alist a1, a2, a3, a4, a5, a6, a7, a8
17 # define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8;
20 #if STDC_HEADERS || _LIBC
28 # define program_name program_invocation_name
30 /* The calling program should define program_name and set it to the
31 name of the executing program. */
32 extern char *program_name;
37 /* Like error, but always exit with EXIT_FAILURE. */
40 #if defined VA_START && __STDC__
41 fatal (int errnum, const char *message, ...)
43 fatal (errnum, message, va_alist)
53 if (error_print_progname)
54 (*error_print_progname) ();
58 fprintf (stderr, "%s: ", program_name);
62 VA_START (args, message);
63 error (EXIT_FAILURE, errnum, message, args);
66 error (EXIT_FAILURE, errnum, message, a1, a2, a3, a4, a5, a6, a7, a8);