From: Jim Meyering Date: Tue, 13 Jun 1995 04:46:12 +0000 (+0000) Subject: (xfclose): Don't try to flush stdin, only stdout. X-Git-Tag: textutils-1_12_1~114 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1aa5954b420948565a5e5bf1167255aead1c0f47;p=thirdparty%2Fcoreutils.git (xfclose): Don't try to flush stdin, only stdout. Otherwise, at least Ultrix-4.3's fflush would return EOF. Reported by Jim Blandy (jimb@cyclic.com). --- diff --git a/src/sort.c b/src/sort.c index da7e0034b6..a216e6bbaf 100644 --- a/src/sort.c +++ b/src/sort.c @@ -266,26 +266,29 @@ static void xfclose (fp) FILE *fp; { - if (fflush (fp) != 0) + if (fp == stdin) { - error (0, errno, "flushing file"); - cleanup (); - exit (2); + /* Allow reading stdin from tty more than once. */ + if (feof (fp)) + clearerr (fp); } - - if (fp != stdin && fp != stdout) + else if (fp == stdout) { - if (fclose (fp) != 0) + if (fflush (fp) != 0) { - error (0, errno, "error closing file"); + error (0, errno, "flushing file"); cleanup (); exit (2); } } else { - /* Allow reading stdin from tty more than once. */ - clearerr (fp); + if (fclose (fp) != 0) + { + error (0, errno, "error closing file"); + cleanup (); + exit (2); + } } }