|
#!/bin/sh |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xz='xz --format=auto' |
|
|
|
version='xzmore (XZ Utils) 5.4.6' |
|
|
|
usage="Usage: ${0##*/} [OPTION]... [FILE]... |
|
Like 'more', but operate on the uncompressed contents of xz compressed FILEs. |
|
|
|
Report bugs to <xz@tukaani.org>." |
|
|
|
case $1 in |
|
--help) printf '%s\n' "$usage" || exit 2; exit;; |
|
--version) printf '%s\n' "$version" || exit 2; exit;; |
|
esac |
|
|
|
oldtty=`stty -g 2>/dev/null` |
|
if stty -cbreak 2>/dev/null; then |
|
cb='cbreak'; ncb='-cbreak' |
|
else |
|
|
|
cb='min 1 -icanon'; ncb='icanon eof ^d' |
|
fi |
|
if test $? -eq 0 && test -n "$oldtty"; then |
|
trap 'stty $oldtty 2>/dev/null; exit' 0 2 3 5 10 13 15 |
|
else |
|
trap 'stty $ncb echo 2>/dev/null; exit' 0 2 3 5 10 13 15 |
|
fi |
|
|
|
if test $# = 0; then |
|
if test -t 0; then |
|
printf '%s\n' "$usage"; exit 1 |
|
else |
|
$xz -cdfqQ | eval "${PAGER:-more}" |
|
fi |
|
else |
|
FIRST=1 |
|
for FILE; do |
|
< "$FILE" || continue |
|
if test $FIRST -eq 0; then |
|
printf "%s--More--(Next file: %s)" "" "$FILE" |
|
stty $cb -echo 2>/dev/null |
|
ANS=`dd bs=1 count=1 2>/dev/null` |
|
stty $ncb echo 2>/dev/null |
|
echo " " |
|
case "$ANS" in |
|
[eq]) exit;; |
|
esac |
|
fi |
|
if test "$ANS" != 's'; then |
|
printf '%s\n' "------> $FILE <------" |
|
$xz -cdfqQ -- "$FILE" | eval "${PAGER:-more}" |
|
fi |
|
if test -t 1; then |
|
FIRST=0 |
|
fi |
|
done |
|
fi |
|
|