summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bootstrap.conf8
-rw-r--r--src/base64.c5
-rw-r--r--src/cat.c9
-rw-r--r--src/cksum.c5
-rw-r--r--src/head.c8
-rw-r--r--src/md5sum.c4
-rw-r--r--src/od.c5
-rw-r--r--src/split.c5
-rw-r--r--src/sum.c8
-rw-r--r--src/tac.c8
-rw-r--r--src/tail.c8
-rw-r--r--src/tee.c9
-rw-r--r--src/tr.c9
-rw-r--r--src/wc.c5
14 files changed, 38 insertions, 58 deletions
diff --git a/bootstrap.conf b/bootstrap.conf
index acec6f08c..a1e352353 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -35,8 +35,8 @@ gnulib_modules="
assert
autobuild
backupfile
- base64
base32
+ base64
buffer-lcm
c-strcase
c-strtod
@@ -217,10 +217,10 @@ gnulib_modules="
sigaction
smack
ssize_t
- statat
stat-macros
stat-size
stat-time
+ statat
stdbool
stdlib-safer
stpcpy
@@ -269,7 +269,7 @@ gnulib_modules="
winsz-termios
write-any-file
xalloc
- xfreopen
+ xdectoint
xfts
xgetcwd
xgetgroups
@@ -279,7 +279,7 @@ gnulib_modules="
xprintf
xprintf-posix
xreadlink
- xdectoint
+ xsetmode
xstrtod
xstrtoimax
xstrtol
diff --git a/src/base64.c b/src/base64.c
index 5deaec5b6..d5d75dcc3 100644
--- a/src/base64.c
+++ b/src/base64.c
@@ -31,7 +31,7 @@
#include "quote.h"
#include "xstrtol.h"
#include "xdectoint.h"
-#include "xfreopen.h"
+#include "xsetmode.h"
#define AUTHORS proper_name ("Simon Josefsson")
@@ -320,8 +320,7 @@ main (int argc, char **argv)
if (STREQ (infile, "-"))
{
- if (O_BINARY)
- xfreopen (NULL, "rb", stdin);
+ xsetmode (STDIN_FILENO, O_BINARY);
input_fh = stdin;
}
else
diff --git a/src/cat.c b/src/cat.c
index 001408576..fba721f28 100644
--- a/src/cat.c
+++ b/src/cat.c
@@ -39,7 +39,7 @@
#include "fadvise.h"
#include "full-write.h"
#include "safe-read.h"
-#include "xfreopen.h"
+#include "xsetmode.h"
/* The official name of this program (e.g., no 'g' prefix). */
#define PROGRAM_NAME "cat"
@@ -645,8 +645,7 @@ main (int argc, char **argv)
if (! (number || show_ends || squeeze_blank))
{
file_open_mode |= O_BINARY;
- if (O_BINARY && ! isatty (STDOUT_FILENO))
- xfreopen (NULL, "wb", stdout);
+ xsetmode (STDOUT_FILENO, O_BINARY);
}
/* Check if any of the input files are the same as the output file. */
@@ -665,8 +664,8 @@ main (int argc, char **argv)
{
have_read_stdin = true;
input_desc = STDIN_FILENO;
- if ((file_open_mode & O_BINARY) && ! isatty (STDIN_FILENO))
- xfreopen (NULL, "rb", stdin);
+ if (file_open_mode & O_BINARY)
+ xsetmode (STDIN_FILENO, O_BINARY);
}
else
{
diff --git a/src/cksum.c b/src/cksum.c
index 0785e727d..65702a317 100644
--- a/src/cksum.c
+++ b/src/cksum.c
@@ -44,7 +44,7 @@
#include <stdint.h>
#include "system.h"
#include "fadvise.h"
-#include "xfreopen.h"
+#include "xsetmode.h"
#ifdef CRCTAB
@@ -194,8 +194,7 @@ cksum (const char *file, bool print_name)
{
fp = stdin;
have_read_stdin = true;
- if (O_BINARY && ! isatty (STDIN_FILENO))
- xfreopen (NULL, "rb", stdin);
+ xsetmode (STDIN_FILENO, O_BINARY);
}
else
{
diff --git a/src/head.c b/src/head.c
index 7639ab974..49c942fea 100644
--- a/src/head.c
+++ b/src/head.c
@@ -37,8 +37,8 @@
#include "quote.h"
#include "safe-read.h"
#include "stat-size.h"
-#include "xfreopen.h"
#include "xdectoint.h"
+#include "xsetmode.h"
/* The official name of this program (e.g., no 'g' prefix). */
#define PROGRAM_NAME "head"
@@ -878,8 +878,7 @@ head_file (const char *filename, uintmax_t n_units, bool count_lines,
have_read_stdin = true;
fd = STDIN_FILENO;
filename = _("standard input");
- if (O_BINARY && ! isatty (STDIN_FILENO))
- xfreopen (NULL, "rb", stdin);
+ xsetmode (STDIN_FILENO, O_BINARY);
}
else
{
@@ -1083,8 +1082,7 @@ main (int argc, char **argv)
? (char const *const *) &argv[optind]
: default_file_list);
- if (O_BINARY && ! isatty (STDOUT_FILENO))
- xfreopen (NULL, "wb", stdout);
+ xsetmode (STDOUT_FILENO, O_BINARY);
for (i = 0; file_list[i]; ++i)
ok &= head_file (file_list[i], n_units, count_lines, elide_from_end);
diff --git a/src/md5sum.c b/src/md5sum.c
index ffcf74302..19dac0861 100644
--- a/src/md5sum.c
+++ b/src/md5sum.c
@@ -46,7 +46,7 @@
#include "error.h"
#include "fadvise.h"
#include "stdio--.h"
-#include "xfreopen.h"
+#include "xsetmode.h"
/* The official name of this program (e.g., no 'g' prefix). */
#if HASH_ALGO_MD5
@@ -598,7 +598,7 @@ digest_file (const char *filename, int *binary, unsigned char *bin_result,
if (*binary < 0)
*binary = ! isatty (STDIN_FILENO);
if (*binary)
- xfreopen (NULL, "rb", stdin);
+ xsetmode (STDIN_FILENO, O_BINARY);
}
}
else
diff --git a/src/od.c b/src/od.c
index 04736bf8f..0da85dae5 100644
--- a/src/od.c
+++ b/src/od.c
@@ -29,8 +29,8 @@
#include "ftoastr.h"
#include "quote.h"
#include "stat-size.h"
-#include "xfreopen.h"
#include "xprintf.h"
+#include "xsetmode.h"
#include "xstrtol.h"
/* The official name of this program (e.g., no 'g' prefix). */
@@ -914,8 +914,7 @@ open_next_file (void)
input_filename = _("standard input");
in_stream = stdin;
have_read_stdin = true;
- if (O_BINARY && ! isatty (STDIN_FILENO))
- xfreopen (NULL, "rb", stdin);
+ xsetmode (STDIN_FILENO, O_BINARY);
}
else
{
diff --git a/src/split.c b/src/split.c
index 316387b1a..8bed1d38a 100644
--- a/src/split.c
+++ b/src/split.c
@@ -38,8 +38,8 @@
#include "quote.h"
#include "safe-read.h"
#include "sig2str.h"
-#include "xfreopen.h"
#include "xdectoint.h"
+#include "xsetmode.h"
#include "xstrtol.h"
/* The official name of this program (e.g., no 'g' prefix). */
@@ -1553,8 +1553,7 @@ main (int argc, char **argv)
quoteaf (infile));
/* Binary I/O is safer when byte counts are used. */
- if (O_BINARY && ! isatty (STDIN_FILENO))
- xfreopen (NULL, "rb", stdin);
+ xsetmode (STDIN_FILENO, O_BINARY);
/* Get the optimal block size of input device and make a buffer. */
diff --git a/src/sum.c b/src/sum.c
index 91af738dd..7a13abe01 100644
--- a/src/sum.c
+++ b/src/sum.c
@@ -29,7 +29,7 @@
#include "fadvise.h"
#include "human.h"
#include "safe-read.h"
-#include "xfreopen.h"
+#include "xsetmode.h"
/* The official name of this program (e.g., no 'g' prefix). */
#define PROGRAM_NAME "sum"
@@ -98,8 +98,7 @@ bsd_sum_file (const char *file, int print_name)
{
fp = stdin;
have_read_stdin = true;
- if (O_BINARY && ! isatty (STDIN_FILENO))
- xfreopen (NULL, "rb", stdin);
+ xsetmode (STDIN_FILENO, O_BINARY);
}
else
{
@@ -168,8 +167,7 @@ sysv_sum_file (const char *file, int print_name)
{
fd = STDIN_FILENO;
have_read_stdin = true;
- if (O_BINARY && ! isatty (STDIN_FILENO))
- xfreopen (NULL, "rb", stdin);
+ xsetmode (STDIN_FILENO, O_BINARY);
}
else
{
diff --git a/src/tac.c b/src/tac.c
index 5c1b3e8a2..41c4f998a 100644
--- a/src/tac.c
+++ b/src/tac.c
@@ -48,7 +48,7 @@ tac -r -s '.\|
#include "filenamecat.h"
#include "safe-read.h"
#include "stdlib--.h"
-#include "xfreopen.h"
+#include "xsetmode.h"
/* The official name of this program (e.g., no 'g' prefix). */
#define PROGRAM_NAME "tac"
@@ -572,8 +572,7 @@ tac_file (const char *filename)
have_read_stdin = true;
fd = STDIN_FILENO;
filename = _("standard input");
- if (O_BINARY && ! isatty (STDIN_FILENO))
- xfreopen (NULL, "rb", stdin);
+ xsetmode (STDIN_FILENO, O_BINARY);
}
else
{
@@ -688,8 +687,7 @@ main (int argc, char **argv)
? (char const *const *) &argv[optind]
: default_file_list);
- if (O_BINARY && ! isatty (STDOUT_FILENO))
- xfreopen (NULL, "wb", stdout);
+ xsetmode (STDOUT_FILENO, O_BINARY);
{
size_t i;
diff --git a/src/tail.c b/src/tail.c
index b24757f3d..dbd210458 100644
--- a/src/tail.c
+++ b/src/tail.c
@@ -43,9 +43,9 @@
#include "safe-read.h"
#include "stat-size.h"
#include "stat-time.h"
-#include "xfreopen.h"
#include "xnanosleep.h"
#include "xdectoint.h"
+#include "xsetmode.h"
#include "xstrtol.h"
#include "xstrtod.h"
@@ -1894,8 +1894,7 @@ tail_file (struct File_spec *f, uintmax_t n_units)
{
have_read_stdin = true;
fd = STDIN_FILENO;
- if (O_BINARY && ! isatty (STDIN_FILENO))
- xfreopen (NULL, "rb", stdin);
+ xsetmode (STDIN_FILENO, O_BINARY);
}
else
fd = open (f->name, O_RDONLY | O_BINARY);
@@ -2324,8 +2323,7 @@ main (int argc, char **argv)
|| (header_mode == multiple_files && n_files > 1))
print_headers = true;
- if (O_BINARY && ! isatty (STDOUT_FILENO))
- xfreopen (NULL, "wb", stdout);
+ xsetmode (STDOUT_FILENO, O_BINARY);
for (i = 0; i < n_files; i++)
ok &= tail_file (&F[i], n_units);
diff --git a/src/tee.c b/src/tee.c
index 74477cb7e..5f04bfc86 100644
--- a/src/tee.c
+++ b/src/tee.c
@@ -27,7 +27,7 @@
#include "error.h"
#include "fadvise.h"
#include "stdio--.h"
-#include "xfreopen.h"
+#include "xsetmode.h"
/* The official name of this program (e.g., no 'g' prefix). */
#define PROGRAM_NAME "tee"
@@ -194,11 +194,8 @@ tee_files (int nfiles, char **files)
? (append ? "ab" : "wb")
: (append ? "a" : "w"));
- if (O_BINARY && ! isatty (STDIN_FILENO))
- xfreopen (NULL, "rb", stdin);
- if (O_BINARY && ! isatty (STDOUT_FILENO))
- xfreopen (NULL, "wb", stdout);
-
+ xsetmode (STDIN_FILENO, O_BINARY);
+ xsetmode (STDOUT_FILENO, O_BINARY);
fadvise (stdin, FADVISE_SEQUENTIAL);
/* Set up FILES[0 .. NFILES] and DESCRIPTORS[0 .. NFILES].
diff --git a/src/tr.c b/src/tr.c
index bb86a8939..724297c9b 100644
--- a/src/tr.c
+++ b/src/tr.c
@@ -29,7 +29,7 @@
#include "fadvise.h"
#include "quote.h"
#include "safe-read.h"
-#include "xfreopen.h"
+#include "xsetmode.h"
#include "xstrtol.h"
/* The official name of this program (e.g., no 'g' prefix). */
@@ -1786,11 +1786,8 @@ main (int argc, char **argv)
/* Use binary I/O, since 'tr' is sometimes used to transliterate
non-printable characters, or characters which are stripped away
by text-mode reads (like CR and ^Z). */
- if (O_BINARY && ! isatty (STDIN_FILENO))
- xfreopen (NULL, "rb", stdin);
- if (O_BINARY && ! isatty (STDOUT_FILENO))
- xfreopen (NULL, "wb", stdout);
-
+ xsetmode (STDIN_FILENO, O_BINARY);
+ xsetmode (STDOUT_FILENO, O_BINARY);
fadvise (stdin, FADVISE_SEQUENTIAL);
if (squeeze_repeats && non_option_args == 1)
diff --git a/src/wc.c b/src/wc.c
index 40fce685d..a587b2ca4 100644
--- a/src/wc.c
+++ b/src/wc.c
@@ -36,7 +36,7 @@
#include "readtokens0.h"
#include "safe-read.h"
#include "stat-size.h"
-#include "xfreopen.h"
+#include "xsetmode.h"
#if !defined iswspace && !HAVE_ISWSPACE
# define iswspace(wc) \
@@ -556,8 +556,7 @@ wc_file (char const *file, struct fstatus *fstatus)
if (! file || STREQ (file, "-"))
{
have_read_stdin = true;
- if (O_BINARY && ! isatty (STDIN_FILENO))
- xfreopen (NULL, "rb", stdin);
+ xsetmode (STDIN_FILENO, O_BINARY);
return wc (STDIN_FILENO, file, fstatus, -1);
}
else