The Android Open Source Project | cfb3b27 | 2009-03-03 19:29:20 -0800 | [diff] [blame] | 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 |