X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/ba5c4a5dd8748d16592ba1d77aa23447c1d6a6ff..8d5ea13e4ebdda303739921ede230ac4f7ec7d7d:/sbr/error.c?ds=sidebyside diff --git a/sbr/error.c b/sbr/error.c index 65055ecd..96c89f58 100644 --- a/sbr/error.c +++ b/sbr/error.c @@ -1,6 +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 @@ -14,7 +12,7 @@ /* inform calls advertise() with no what and no tail. - * Thus the simple "invo_name: fmt\n" results. */ + * Thus the simple "[invo_name: ]fmt\n" results. */ void inform(char *fmt, ...) { va_list ap; @@ -26,7 +24,8 @@ void inform(char *fmt, ...) /* advise calls advertise() with no tail to print fmt, and perhaps what, - * to stderr. */ + * to stderr. + * Thus "[invo_name: ]fmt[[ what]: errno]\n" results. */ void advise (const char *what, const char *fmt, ...) { @@ -38,13 +37,15 @@ advise (const char *what, const char *fmt, ...) } -/* adios calls advertise() with no tail to print fmt, and perhaps what, - * to stderr, and "ends" the program with an error exit status. The - * route to exit is via the done function pointer and may not be +/* adios is the same as advise(), but then "ends" the program. + * It calls advertise() with no tail to print fmt, and perhaps what, to + * stderr, and exits the program with an error status. + * Thus "[invo_name: ]fmt[[ what]: errno]\n" results. + * The route to exit is via the done function pointer and may not be * 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; @@ -58,7 +59,8 @@ adios (const char *what, const char *fmt, ...) /* admonish calls advertise() with a tail indicating the program - * continues. */ + * continues. + * Thus "[invo_name: ]fmt[[ what]: errno], continuing...\n" results. */ void admonish (char *what, char *fmt, ...) { @@ -81,7 +83,7 @@ void advertise (const char *what, char *tail, const char *fmt, va_list ap) { int eindex = errno; - char buffer[NMH_BUFSIZ], errbuf[NMH_BUFSIZ], *err; + char buffer[NMH_BUFSIZ], *err; struct iovec iob[10], *iov; size_t niov; @@ -109,11 +111,6 @@ advertise (const char *what, char *tail, const char *fmt, va_list ap) } ADD_LITERAL(": "); err = strerror(eindex); - if (!err) { - /* this shouldn't happen, but we'll test for it just in case */ - snprintf(errbuf, sizeof(errbuf), "Error %d", eindex); - err = errbuf; - } ADD_VAR(err); } if (tail && *tail) {