Mercurial > hg > octave-lyh > gnulib-hg
changeset 9366:dbb64cb4aed9
* lib/xprintf.c: Don't bother testing specific errno values. Just test ferror.
author | Jim Meyering <meyering@redhat.com> |
---|---|
date | Fri, 19 Oct 2007 22:30:06 +0200 |
parents | 73ad59013feb |
children | 930efddef3ad |
files | ChangeLog lib/xprintf.c |
diffstat | 2 files changed, 7 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ 2007-10-19 Jim Meyering <meyering@redhat.com> * 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.
--- 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;