-
-/*
- * 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
/* 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;
/* 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, ...)
{
}
-/* 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;
/* 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, ...)
{
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;
}
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) {