aboutsummaryrefslogtreecommitdiff
path: root/src/scripts/xzdiff.in
diff options
context:
space:
mode:
authorJonathan Nieder <jrnieder@gmail.com>2009-08-09 13:41:20 -0500
committerLasse Collin <lasse.collin@tukaani.org>2009-08-09 22:55:19 +0300
commite71903fc6101f1c039d702e335b08aad1e1b4100 (patch)
treeb24eaa4ab7f1f999e880acb9b09cdf3fd16043d3 /src/scripts/xzdiff.in
parentxzless: Support compressed standard input (diff)
downloadxz-e71903fc6101f1c039d702e335b08aad1e1b4100.tar.xz
“xzdiff a.xz b.xz” always fails
Attempts to compare two compressed files result in no output and exit status 2. Instead of going to standard output, ‘diff’ output is being captured in the xz_status variable along with the exit status from the decompression commands. Later, when this variable is examined for nonzero status codes, numerals from dates in the ‘diff’ output make it appear as though decompression failed. So let the ‘diff’ output leak to standard output with another file descriptor. (This trick is used in all similar contexts elsewhere in xzdiff and in the analogous context in gzip’s zdiff script.)
Diffstat (limited to '')
-rw-r--r--src/scripts/xzdiff.in2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/scripts/xzdiff.in b/src/scripts/xzdiff.in
index fc1e0575..2d6e5da4 100644
--- a/src/scripts/xzdiff.in
+++ b/src/scripts/xzdiff.in
@@ -118,7 +118,7 @@ elif test $# -eq 2; then
exec 4>&1
($xz1 -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- |
( ($xz2 -cdfq -- "$2" 4>&-; echo $? >&4) 3>&- 5<&- </dev/null |
- eval "$cmp" /dev/fd/5 -) 5<&0
+ eval "$cmp" /dev/fd/5 - >&3) 5<&0
)
case $xz_status in
*[1-9]*) xz_status=1;;