Thanks, I fixed that in a slightly different way, something more portable to ancient shells.
zless: decompress stdin too, if less 429 or later * zless.in: Use LESSOPEN |- feature of less 429 or later. Problem reported by Jeroen Roovers via Mike Frysinger in <http://lists.gnu.org/archive/html/bug-gzip/2011-12/msg00006.html>. diff --git a/zless.in b/zless.in index 4152017..93546de 100644 --- a/zless.in +++ b/zless.in @@ -53,5 +53,15 @@ if test "${LESSMETACHARS+set}" != set; then export LESSMETACHARS fi -LESSOPEN="|gzip -cdfq -- %s"; export LESSOPEN +less_version=`less -V` || exit +case $less_version in +'less 429 +'* | 'less '4[3-9][0-9]* | 'less '[5-9][0-9][0-9]* | 'less '[1-9][0-9][0-9][0-9]*) + use_input_pipe_on_stdin='-';; +*) use_input_pipe_on_stdin='';; +esac + +LESSOPEN="|${use_input_pipe_on_stdin}gzip -cdfq -- %s" +export LESSOPEN + exec less "$@"