X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/0a032eea07f6d77ac6ea4d5a39c9491c34358058..872ef4dde72a88ceb1358849a462f791135b842d:/sbr/error.c diff --git a/sbr/error.c b/sbr/error.c index 92afbe52..5a5808c2 100644 --- a/sbr/error.c +++ b/sbr/error.c @@ -1,5 +1,4 @@ -/* - * error.c -- main error handling routines +/* error.c -- main error handling routines * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for @@ -46,7 +45,7 @@ advise (const char *what, const char *fmt, ...) * straightforward, e.g. longjmp(3), but it must not return to adios(). * If it does then it's a bug and adios() will abort(3) as callers do * not expect execution to continue. */ -void +void NORETURN adios (const char *what, const char *fmt, ...) { va_list ap; @@ -59,6 +58,21 @@ adios (const char *what, const char *fmt, ...) } +/* die is the same as adios(), but without the what as that's commonly + * NULL. */ +void NORETURN +die(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + advertise(NULL, NULL, fmt, ap); + va_end(ap); + done(1); + abort(); +} + + /* admonish calls advertise() with a tail indicating the program * continues. * Thus "[invo_name: ]fmt[[ what]: errno], continuing...\n" results. */