mirror of
https://git.tukaani.org/xz.git
synced 2024-04-04 12:36:23 +02:00
1d314b81aa
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.
58 lines
1.8 KiB
Text
58 lines
1.8 KiB
Text
#!@POSIX_SHELL@
|
|
|
|
# Copyright (C) 1998, 2002, 2006, 2007 Free Software Foundation
|
|
|
|
# The original version for gzip was written by Paul Eggert.
|
|
# Modified for XZ Utils by Andrew Dudman and Lasse Collin.
|
|
|
|
# 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
|
|
# (at your option) any later version.
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
|
|
#SET_PATH - This line is a placeholder to ease patching this script.
|
|
|
|
# Instead of unsetting XZ_OPT, just make sure that xz will use file format
|
|
# autodetection. This way memory usage limit and thread limit can be
|
|
# specified via XZ_OPT.
|
|
xz='@xz@ --format=auto'
|
|
|
|
version='xzless (@PACKAGE_NAME@) @VERSION@'
|
|
|
|
usage="Usage: ${0##*/} [OPTION]... [FILE]...
|
|
Like 'less', but operate on the uncompressed contents of xz compressed FILEs.
|
|
|
|
Options are the same as for 'less'.
|
|
|
|
Report bugs to <@PACKAGE_BUGREPORT@>."
|
|
|
|
case $1 in
|
|
--help) echo "$usage" || exit 2; exit;;
|
|
--version) echo "$version" || exit 2; exit;;
|
|
esac
|
|
|
|
if test "${LESSMETACHARS+set}" != set; then
|
|
# Work around a bug in less 394 and earlier;
|
|
# it mishandles the metacharacters '$%=~'.
|
|
space=' '
|
|
tab=' '
|
|
nl='
|
|
'
|
|
LESSMETACHARS="$space$tab$nl'"';*?"()<>[|&^`#\$%=~'
|
|
fi
|
|
|
|
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 "$@"
|