* lib/xprintf.c (xprintf, xfprintf): Test err < 0, not just "err".
[pspp] / lib / xprintf.c
index a01eff8cdd79b781a091f41d628e11be916e1b48..908fc4f11e8122305705aa87434c3d8c14b9318b 100644 (file)
@@ -37,7 +37,7 @@ xprintf (char const *restrict format, ...)
   va_list args;
   va_start (args, format);
   int err = vprintf (format, args);
-  if (err && (errno == EILSEQ || errno == EINVAL || errno == ENOMEM))
+  if (err < 0 && (errno == EILSEQ || errno == EINVAL || errno == ENOMEM))
     error (exit_failure, errno, gettext ("write error"));
 
   return err;
@@ -51,7 +51,7 @@ xfprintf (FILE *restrict stream, char const *restrict format, ...)
   va_list args;
   va_start (args, format);
   int err = vfprintf (stream, format, args);
-  if (err && (errno == EILSEQ || errno == EINVAL || errno == ENOMEM))
+  if (err < 0 && (errno == EILSEQ || errno == EINVAL || errno == ENOMEM))
     error (exit_failure, errno, gettext ("write error"));
 
   return err;