From: Jonathan Nieder Date: Sun, 9 Aug 2009 18:22:12 +0000 (-0500) Subject: xzless: Support compressed standard input X-Git-Tag: upstream/5.1.3~471 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1d314b81aa5b0c4530638ffabd4e0edb52e5362c;p=platform%2Fupstream%2Fxz.git xzless: Support compressed standard input It can be somewhat confusing that less < some_file.txt works fine, whereas xzless < some_file.txt.xz does not. Since version 429, ‘less’ allows a filter specified in the LESSOPEN environment variable to preprocess its input even if it comes from standard input, if $LESSOPEN begins with ‘|-’. So set $LESSOPEN to take advantage of this feature. Check less’s version at runtime so xzless can continue to work with older versions. --- diff --git a/src/scripts/xzless.in b/src/scripts/xzless.in index 6639943..a3da697 100644 --- a/src/scripts/xzless.in +++ b/src/scripts/xzless.in @@ -46,7 +46,13 @@ if test "${LESSMETACHARS+set}" != set; then LESSMETACHARS="$space$tab$nl'"';*?"()<>[|&^`#\$%=~' fi -LESSOPEN="|$xz -cdfq -- %s" +if test "$(less -V | { read ver && echo ${ver#less }; })" -ge 429; then + # less 429 or later: LESSOPEN pipe will be used on + # standard input if $LESSOPEN begins with |-. + LESSOPEN="|-$xz -cdfq -- %s" +else + LESSOPEN="|$xz -cdfq -- %s" +fi export LESSMETACHARS LESSOPEN exec less "$@"