From 1aa5954b420948565a5e5bf1167255aead1c0f47 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Tue, 13 Jun 1995 04:46:12 +0000 Subject: [PATCH] (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). --- src/sort.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) 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); + } } } -- 2.47.3