aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2024-02-09 23:21:01 +0200
committerLasse Collin <lasse.collin@tukaani.org>2024-02-09 23:21:01 +0200
commit9860d418d296eb3c721e5384fb367c0499b579c8 (patch)
tree45dd978698cda092cb6965b03724174efd079acc
parentxzless: Use --show-preproc-errors with "less" 632 and newer. (diff)
downloadxz-9860d418d296eb3c721e5384fb367c0499b579c8.tar.xz
xzless: Use ||- in LESSOPEN with with "less" 451 and newer.
-rw-r--r--src/scripts/xzless.in9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/scripts/xzless.in b/src/scripts/xzless.in
index 93a415d7..53650ef1 100644
--- a/src/scripts/xzless.in
+++ b/src/scripts/xzless.in
@@ -48,7 +48,14 @@ if test "${LESSMETACHARS+set}" != set; then
fi
VER=$(less -V | { read _ ver _ && echo ${ver%%.*}; })
-if test "$VER" -ge 429; then
+if test "$VER" -ge 451; then
+ # less 451 or later: If the compressed file is valid but has
+ # zero bytes of uncompressed data, using two vertical bars ||- makes
+ # "less" check the exit status of xz and if it is zero then display
+ # an empty file. With a single vertical bar |- and no output from xz,
+ # "less" would attempt to display the raw input file instead.
+ LESSOPEN="||-$xz -cdfqQ -- %s"
+elif test "$VER" -ge 429; then
# less 429 or later: LESSOPEN pipe will be used on
# standard input if $LESSOPEN begins with |-.
LESSOPEN="|-$xz -cdfqQ -- %s"