xref: /aosp_15_r20/external/bzip2/bzmore (revision 0ac9a9daea5cce2e775d5da949508593e2ee9206)
1*0ac9a9daSXin Li#!/bin/sh
2*0ac9a9daSXin Li
3*0ac9a9daSXin Li# Bzmore wrapped for bzip2,
4*0ac9a9daSXin Li# adapted from zmore by Philippe Troin <[email protected]> for Debian GNU/Linux.
5*0ac9a9daSXin Li
6*0ac9a9daSXin LiPATH="/usr/bin:$PATH"; export PATH
7*0ac9a9daSXin Li
8*0ac9a9daSXin Liprog=`echo $0 | sed 's|.*/||'`
9*0ac9a9daSXin Licase "$prog" in
10*0ac9a9daSXin Li	*less)	more=less	;;
11*0ac9a9daSXin Li	*)	more=more       ;;
12*0ac9a9daSXin Liesac
13*0ac9a9daSXin Li
14*0ac9a9daSXin Liif test "`echo -n a`" = "-n a"; then
15*0ac9a9daSXin Li  # looks like a SysV system:
16*0ac9a9daSXin Li  n1=''; n2='\c'
17*0ac9a9daSXin Lielse
18*0ac9a9daSXin Li  n1='-n'; n2=''
19*0ac9a9daSXin Lifi
20*0ac9a9daSXin Lioldtty=`stty -g 2>/dev/null`
21*0ac9a9daSXin Liif stty -cbreak 2>/dev/null; then
22*0ac9a9daSXin Li  cb='cbreak'; ncb='-cbreak'
23*0ac9a9daSXin Lielse
24*0ac9a9daSXin Li  # 'stty min 1' resets eof to ^a on both SunOS and SysV!
25*0ac9a9daSXin Li  cb='min 1 -icanon'; ncb='icanon eof ^d'
26*0ac9a9daSXin Lifi
27*0ac9a9daSXin Liif test $? -eq 0 -a -n "$oldtty"; then
28*0ac9a9daSXin Li   trap 'stty $oldtty 2>/dev/null; exit' 0 2 3 5 10 13 15
29*0ac9a9daSXin Lielse
30*0ac9a9daSXin Li   trap 'stty $ncb echo 2>/dev/null; exit' 0 2 3 5 10 13 15
31*0ac9a9daSXin Lifi
32*0ac9a9daSXin Li
33*0ac9a9daSXin Liif test $# = 0; then
34*0ac9a9daSXin Li    if test -t 0; then
35*0ac9a9daSXin Li	echo usage: $prog files...
36*0ac9a9daSXin Li    else
37*0ac9a9daSXin Li	bzip2 -cdfq | eval $more
38*0ac9a9daSXin Li    fi
39*0ac9a9daSXin Lielse
40*0ac9a9daSXin Li    FIRST=1
41*0ac9a9daSXin Li    for FILE
42*0ac9a9daSXin Li    do
43*0ac9a9daSXin Li	if test $FIRST -eq 0; then
44*0ac9a9daSXin Li		echo $n1 "--More--(Next file: $FILE)$n2"
45*0ac9a9daSXin Li		stty $cb -echo 2>/dev/null
46*0ac9a9daSXin Li		ANS=`dd bs=1 count=1 2>/dev/null`
47*0ac9a9daSXin Li		stty $ncb echo 2>/dev/null
48*0ac9a9daSXin Li		echo " "
49*0ac9a9daSXin Li		if test "$ANS" = 'e' -o "$ANS" = 'q'; then
50*0ac9a9daSXin Li			exit
51*0ac9a9daSXin Li		fi
52*0ac9a9daSXin Li	fi
53*0ac9a9daSXin Li	if test "$ANS" != 's'; then
54*0ac9a9daSXin Li		echo "------> $FILE <------"
55*0ac9a9daSXin Li		bzip2 -cdfq "$FILE" | eval $more
56*0ac9a9daSXin Li	fi
57*0ac9a9daSXin Li	if test -t; then
58*0ac9a9daSXin Li		FIRST=0
59*0ac9a9daSXin Li	fi
60*0ac9a9daSXin Li    done
61*0ac9a9daSXin Lifi
62