From: Jim Meyering Date: Fri, 19 Oct 2007 20:30:06 +0000 (+0200) Subject: * lib/xprintf.c: Don't bother testing specific errno values. Just test ferror. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=90374d639f7c4cbbacaabca9cedec88f8b5bce3d;p=pspp * lib/xprintf.c: Don't bother testing specific errno values. Just test ferror. --- diff --git a/ChangeLog b/ChangeLog index d837fc11c9..eefe985448 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ 2007-10-19 Jim Meyering * lib/xprintf.c (xprintf, xfprintf): Test err < 0, not just "err". + Don't bother testing specific errno values. Just test ferror. New module: xprintf * modules/xprintf, lib/xprintf.c, lib/xprintf.h: New files. diff --git a/lib/xprintf.c b/lib/xprintf.c index 908fc4f11e..2134e26141 100644 --- a/lib/xprintf.c +++ b/lib/xprintf.c @@ -29,29 +29,29 @@ /* written by Jim Meyering */ -/* Just like printf, but call error if it fails for any reason - for which printf does not set the stream error indicator. */ +/* Just like printf, but call error if it fails without setting + the error indicator. */ int xprintf (char const *restrict format, ...) { va_list args; va_start (args, format); int err = vprintf (format, args); - if (err < 0 && (errno == EILSEQ || errno == EINVAL || errno == ENOMEM)) + if (err < 0 && ! ferror (stdout)) error (exit_failure, errno, gettext ("write error")); return err; } -/* Just like fprintf, but call error if it fails for any reason - for which printf does not set the stream error indicator. */ +/* Just like fprintf, but call error if it fails without setting + the error indicator. */ int xfprintf (FILE *restrict stream, char const *restrict format, ...) { va_list args; va_start (args, format); int err = vfprintf (stream, format, args); - if (err < 0 && (errno == EILSEQ || errno == EINVAL || errno == ENOMEM)) + if (err < 0 && ! ferror (stream)) error (exit_failure, errno, gettext ("write error")); return err;