summaryrefslogtreecommitdiff
path: root/Utilities/cmbzip2/bzmore
blob: 21b1de61c5efc0a218a374bd369399057aac4720 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/bin/sh

# Bzmore wrapped for bzip2, 
# adapted from zmore by Philippe Troin <phil@fifi.org> for Debian GNU/Linux.

PATH="/usr/bin:$PATH"; export PATH

prog=`echo $0 | sed 's|.*/||'`
case "$prog" in
    *less)  more=less   ;;
    *)  more=more       ;;
esac

if test "`echo -n a`" = "-n a"; then
  # looks like a SysV system:
  n1=''; n2='\c'
else
  n1='-n'; n2=''
fi
oldtty=`stty -g 2>/dev/null`
if stty -cbreak 2>/dev/null; then
  cb='cbreak'; ncb='-cbreak'
else
  # 'stty min 1' resets eof to ^a on both SunOS and SysV!
  cb='min 1 -icanon'; ncb='icanon eof ^d'
fi
if test $? -eq 0 -a -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
    echo usage: $prog files...
    else
    bzip2 -cdfq | eval $more
    fi
else
    FIRST=1
    for FILE
    do
    if test $FIRST -eq 0; then
        echo $n1 "--More--(Next file: $FILE)$n2"
        stty $cb -echo 2>/dev/null
        ANS=`dd bs=1 count=1 2>/dev/null` 
        stty $ncb echo 2>/dev/null
        echo " "
        if test "$ANS" = 'e' -o "$ANS" = 'q'; then
            exit
        fi
    fi
    if test "$ANS" != 's'; then
        echo "------> $FILE <------"
        bzip2 -cdfq "$FILE" | eval $more
    fi
    if test -t; then
        FIRST=0
    fi
    done
fi