From: Jim Meyering Date: Tue, 22 Jan 2002 17:50:41 +0000 (+0000) Subject: (save_stdin): Report proper errno value after X-Git-Tag: TEXTUTILS-2_0_20~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d283021a71673ff1a13c2954aa2cf781391d99fd;p=thirdparty%2Fcoreutils.git (save_stdin): Report proper errno value after fwrite failures. Do not bother to rewind the temp file, as it'll be read backwards anyway. --- diff --git a/src/tac.c b/src/tac.c index de85794516..6e75aa357a 100644 --- a/src/tac.c +++ b/src/tac.c @@ -1,5 +1,5 @@ /* tac - concatenate and print files in reverse - Copyright (C) 1988-1991, 1995-2001 Free Software Foundation, Inc. + Copyright (C) 1988-1991, 1995-2002 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -453,15 +453,13 @@ save_stdin (FILE **g_tmp, char **g_tempfile) if (bytes_read < 0) error (EXIT_FAILURE, errno, _("stdin: read error")); - /* Don't bother checking for failure inside the loop -- check after. */ - fwrite (G_buffer, 1, bytes_read, tmp); + if (fwrite (G_buffer, 1, bytes_read, tmp) != bytes_read) + break; } if (ferror (tmp) || fflush (tmp) == EOF) error (EXIT_FAILURE, errno, "%s", tempfile); - rewind (tmp); - SET_BINARY (fileno (tmp)); *g_tmp = tmp; *g_tempfile = tempfile;