diff --git a/src/file.h b/src/file.h index dc49fe1e..f9181e94 100644 --- a/src/file.h +++ b/src/file.h @@ -122,10 +122,12 @@ public: // FIXME - these won't work when using the `--stdout' option virtual void seek(off_t off, int whence) { + assert(!opt->to_stdout); super::seek(off,whence); } virtual void rewrite(const void *buf, int len) { + assert(!opt->to_stdout); write(buf, len); bytes_written -= len; // restore } diff --git a/src/main.cpp b/src/main.cpp index 5fbd2e74..e7a12594 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -229,6 +229,11 @@ void check_options(int i, int argc) opt->backup = 1; check_not_both(opt->to_stdout, opt->output_name != NULL, "--stdout", "-o"); + if (opt->to_stdout && opt->cmd == CMD_COMPRESS) + { + fprintf(stderr,"%s: cannot use `--stdout' when compressing\n", argv0); + e_usage(); + } if (opt->to_stdout || opt->output_name) { if (i + 1 != argc)