X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/6c42153ad9362cc676ea66563bf400d7511b3b68..d98ae2c6142ed5071a8fa5a4238b43a722effa82:/sbr/error.c?ds=inline diff --git a/sbr/error.c b/sbr/error.c index 299e3a62..0b6d7777 100644 --- a/sbr/error.c +++ b/sbr/error.c @@ -2,8 +2,6 @@ /* * error.c -- main error handling routines * - * $Id$ - * * 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. @@ -11,12 +9,8 @@ #include -#ifdef HAVE_WRITEV -# include -# include -#endif - -#include +#include +#include /* @@ -64,25 +58,16 @@ admonish (char *what, char *fmt, ...) /* * main routine for printing error messages. - * - * Use writev() if available, for slightly better performance. - * Why? Well, there are a couple of reasons. Primarily, it - * gives a smoother output... More importantly though, it's a - * sexy syscall()... */ void advertise (char *what, char *tail, char *fmt, va_list ap) { int eindex = errno; - -#ifdef HAVE_WRITEV char buffer[BUFSIZ], err[BUFSIZ]; struct iovec iob[20], *iov; -#endif fflush (stdout); -#ifdef HAVE_WRITEV fflush (stderr); iov = iob; @@ -121,24 +106,7 @@ advertise (char *what, char *tail, char *fmt, va_list ap) } iov->iov_len = strlen (iov->iov_base = "\n"); iov++; - writev (fileno (stderr), iob, iov - iob); -#else - if (invo_name && *invo_name) - fprintf (stderr, "%s: ", invo_name); - vfprintf (stderr, fmt, ap); - - if (what) { - char *s; - - if (*what) - fprintf (stderr, " %s: ", what); - if ((s = strerror(eindex))) - fprintf (stderr, "%s", s); - else - fprintf (stderr, "Error %d", eindex); + if (writev (fileno (stderr), iob, iov - iob) < 0) { + advise ("stderr", "writev"); } - if (tail) - fprintf (stderr, ", %s", tail); - fputc ('\n', stderr); -#endif }