From e5ba545f16e989ac51c38556e727c8c81988c04e Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Fri, 9 Feb 2024 23:21:01 +0200 Subject: [PATCH] xzless: Use ||- in LESSOPEN with with "less" 451 and newer. (cherry picked from commit 9860d418d296eb3c721e5384fb367c0499b579c8) --- src/scripts/xzless.in | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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"