From 3ffd5d81a43210c8da56da5c5b3637d3f8bc63c7 Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Wed, 13 Jan 2010 19:10:25 +0200 Subject: Don't read compressed data from a terminal or write it to a terminal even if --force is specified. It just seems more reasonable this way. The new behavior matches bzip2. The old one matched gzip. --- src/xz/main.c | 20 +++++++++----------- src/xz/util.c | 8 ++++---- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/xz/main.c b/src/xz/main.c index b197ca43..7445e98a 100644 --- a/src/xz/main.c +++ b/src/xz/main.c @@ -168,8 +168,8 @@ main(int argc, char **argv) message_set_files(args.arg_count); // Refuse to write compressed data to standard output if it is - // a terminal and --force wasn't used. - if (opt_mode == MODE_COMPRESS && !opt_force) { + // a terminal. + if (opt_mode == MODE_COMPRESS) { if (opt_stdout || (args.arg_count == 1 && strcmp(args.arg_names[0], "-") == 0)) { if (is_tty_stdout()) { @@ -188,16 +188,14 @@ main(int argc, char **argv) // were given, parse_args() gave us a fake "-" filename. for (size_t i = 0; i < args.arg_count && !user_abort; ++i) { if (strcmp("-", args.arg_names[i]) == 0) { - // Processing from stdin to stdout. Unless --force - // was used, check that we aren't writing compressed - // data to a terminal or reading it from terminal. - if (!opt_force) { - if (opt_mode == MODE_COMPRESS) { - if (is_tty_stdout()) - continue; - } else if (is_tty_stdin()) { + // Processing from stdin to stdout. Check that we + // aren't writing compressed data to a terminal or + // reading it from a terminal. + if (opt_mode == MODE_COMPRESS) { + if (is_tty_stdout()) continue; - } + } else if (is_tty_stdin()) { + continue; } // It doesn't make sense to compress data from stdin diff --git a/src/xz/util.c b/src/xz/util.c index 9f6bdddd..c0ac5384 100644 --- a/src/xz/util.c +++ b/src/xz/util.c @@ -223,8 +223,8 @@ is_tty_stdin(void) const bool ret = isatty(STDIN_FILENO); if (ret) - message_error(_("Compressed data not read from a terminal " - "unless `--force' is used.")); + message_error(_("Compressed data cannot be read from " + "a terminal")); return ret; } @@ -236,8 +236,8 @@ is_tty_stdout(void) const bool ret = isatty(STDOUT_FILENO); if (ret) - message_error(_("Compressed data not written to a terminal " - "unless `--force' is used.")); + message_error(_("Compressed data cannot be written to " + "a terminal")); return ret; } -- cgit v1.2.3