(vwarnx, vwarn): Fix major brainos.
authorroland <roland>
Mon, 18 Dec 1995 18:40:24 +0000 (18:40 +0000)
committerroland <roland>
Mon, 18 Dec 1995 18:40:24 +0000 (18:40 +0000)
misc/err.c

index 82719a8..3ad7bf3 100644 (file)
@@ -20,6 +20,8 @@ Cambridge, MA 02139, USA.  */
 #include <stdarg.h>
 #include <err.h>
 #include <stdlib.h>
+#include <errno.h>
+#include <string.h>
 #include <stdio.h>
 
 extern char *__progname;
@@ -33,18 +35,28 @@ extern char *__progname;
 }
 
 void
-vwarn (const char *format, __gnuc_va_list ap)
+vwarnx (const char *format, __gnuc_va_list ap)
 {
-  fprintf (stderr, format, ap);
+  if (__progname)
+    fprintf (stderr, "%s: ", __progname);
+  if (format)
+    vfprintf (stderr, format, ap);
+  putc ('\n', stderr);
 }
 
 void
-vwarnx (const char *format, __gnuc_va_list ap)
+vwarn (const char *format, __gnuc_va_list ap)
 {
+  int error = errno;
+
   if (__progname)
     fprintf (stderr, "%s: ", __progname);
-  fprintf (stderr, format, ap);
-  putc ('\n', stderr);
+  if (format)
+    {
+      vfprintf (stderr, format, ap);
+      fputs (": ", stderr);
+    }
+  fprintf (stderr, "%s\n", strerror (error));
 }