zless: decompress stdin too, if less 429 or later
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 22 Dec 2011 00:11:43 +0000 (16:11 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 22 Dec 2011 00:12:24 +0000 (16:12 -0800)
* 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>.

zless.in

index 4152017f2a8c62ba6669cec0227868d05b82d6e5..93546de843c1dbc7f4416ce501c312693dd3e0c9 100644 (file)
--- 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 "$@"