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