From: Lasse Collin Date: Sun, 4 May 2008 19:29:27 +0000 (+0300) Subject: Don't print an error message on broken pipe unless --verbose X-Git-Tag: upstream/5.1.3~747 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=944b62b93239b27b338d117f2668c0e95849659b;p=platform%2Fupstream%2Fxz.git Don't print an error message on broken pipe unless --verbose is used. --- diff --git a/src/lzma/io.c b/src/lzma/io.c index a7683fc..b972099 100644 --- a/src/lzma/io.c +++ b/src/lzma/io.c @@ -651,7 +651,20 @@ io_write(const file_pair *pair, const uint8_t *buf, size_t size) continue; } - errmsg(V_ERROR, _("%s: Write error: %s"), + // Handle broken pipe specially. gzip and bzip2 + // don't print anything on SIGPIPE. In addition, + // gzip --quiet uses exit status 2 (warning) on + // broken pipe instead of whatever raise(SIGPIPE) + // would make it return. It is there to hide "Broken + // pipe" message on some old shells (probably old + // GNU bash). + // + // We don't do anything special with --quiet, which + // is what bzip2 does too. However, we print a + // message if --verbose was used (or should that + // only be with double --verbose i.e. debugging?). + errmsg(errno == EPIPE ? V_VERBOSE : V_ERROR, + _("%s: Write error: %s"), pair->dest_name, strerror(errno)); return -1; }