this bug no longer exists in this version
[debian/gzip] / zless.in
index dae346f82e9fc55d9d3fbc033da127d2afdd55b0..92209f27e60c7f293a912339057dd8ec800bc5c2 100644 (file)
--- a/zless.in
+++ b/zless.in
@@ -1,10 +1,10 @@
 #!/bin/sh
 
-# Copyright (C) 1998, 2002, 2006 Free Software Foundation
+# Copyright (C) 1998, 2002, 2006, 2007 Free Software Foundation
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 
 # This program is distributed in the hope that it will be useful,
 # with this program; if not, write to the Free Software Foundation, Inc.,
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
-PATH="BINDIR:$PATH"; export PATH
+bindir=@bindir@
+case $1 in
+--__bindir) bindir=${2?}; shift; shift;;
+esac
+PATH=$bindir:$PATH; export PATH
 
 version="zless (gzip) @VERSION@
-Copyright (C) 2006 Free Software Foundation, Inc.
+Copyright (C) 2007, 2011-2013 Free Software Foundation, Inc.
 This is free software.  You may redistribute copies of it under the terms of
 the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
 There is NO WARRANTY, to the extent permitted by law.
 
 Written by Paul Eggert."
 
-usage="Usage: zless [OPTION]... [FILE]...
+usage="Usage: $0 [OPTION]... [FILE]...
 Like 'less', but operate on the uncompressed contents of any compressed FILEs.
 
 Options are the same as for 'less'.
@@ -38,5 +42,26 @@ case $1 in
 --version) exec echo "$version";;
 esac
 
-LESSOPEN="|gzip -cdfq -- %s"; export LESSOPEN
+if test "${LESSMETACHARS+set}" != set; then
+  # Work around a bug in less 394 and earlier;
+  # it mishandles the metacharacters '$%=~'.
+  space=' '
+  tab='        '
+  newline='
+'
+  LESSMETACHARS="$space$tab$newline'"';*?"()<>[|&^`#\$%=~'
+  export LESSMETACHARS
+fi
+
+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 "$@"