From ed0dda33d553bfd17338d4bd9ccd6a8bd61489bd Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 11 Jul 2005 18:25:23 +0000 Subject: [PATCH] (bsd_sum_file, sysv_sym_file): Avoid setmode; use POSIX-specified routines instead. --- src/sum.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/sum.c b/src/sum.c index 65170aa4c9..92e4126881 100644 --- a/src/sum.c +++ b/src/sum.c @@ -97,18 +97,18 @@ bsd_sum_file (const char *file, int print_name) { fp = stdin; have_read_stdin = true; + if (O_BINARY && ! isatty (STDIN_FILENO)) + freopen (NULL, "rb", stdin); } else { - fp = fopen (file, "r"); + fp = fopen (file, (O_BINARY ? "rb" : "r")); if (fp == NULL) { error (0, errno, "%s", file); return false; } } - /* Need binary I/O, or else byte counts and checksums are incorrect. */ - SET_BINARY (fileno(fp)); while ((ch = getc (fp)) != EOF) { @@ -165,18 +165,18 @@ sysv_sum_file (const char *file, int print_name) { fd = STDIN_FILENO; have_read_stdin = true; + if (O_BINARY && ! isatty (STDIN_FILENO)) + freopen (NULL, "rb", stdin); } else { - fd = open (file, O_RDONLY); + fd = open (file, O_RDONLY | O_BINARY); if (fd == -1) { error (0, errno, "%s", file); return false; } } - /* Need binary I/O, or else byte counts and checksums are incorrect. */ - SET_BINARY (fd); while (1) { -- 2.47.3