]> diplodocus.org Git - nmh/blobdiff - sbr/error.c
seq_list.c: Move interface to own file.
[nmh] / sbr / error.c
index 92afbe52a81a6e44c4b054d9d9a86a6ceca699cb..fc5c6afa1c609693b6a0ffdeddc9978547759159 100644 (file)
@@ -1,20 +1,21 @@
-/*
- * 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
  * complete copyright information.
  */
 
  *
  * This code is Copyright (c) 2002, by the authors of nmh.  See the
  * COPYRIGHT file in the root directory of the nmh distribution for
  * complete copyright information.
  */
 
-#include <h/mh.h>
+#include "h/mh.h"
+#include "error.h"
 
 #include <sys/types.h>
 #include <sys/uio.h>
 
 #include <sys/types.h>
 #include <sys/uio.h>
-
+#include "h/done.h"
 
 /* inform calls advertise() with no what and no tail.
  * Thus the simple "[invo_name: ]fmt\n" results. */
 
 /* inform calls advertise() with no what and no tail.
  * Thus the simple "[invo_name: ]fmt\n" results. */
-void inform(char *fmt, ...)
+void
+inform(char *fmt, ...)
 {
     va_list ap;
 
 {
     va_list ap;
 
@@ -46,7 +47,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. */
  * 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;
 adios (const char *what, const char *fmt, ...)
 {
     va_list ap;
@@ -59,6 +60,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. */
 /* admonish calls advertise() with a tail indicating the program
  * continues.
  * Thus "[invo_name: ]fmt[[ what]: errno], continuing...\n" results. */