home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / rescue / usr / bin / zmore < prev    next >
Text File  |  2006-11-29  |  2KB  |  86 lines

  1. #!/bin/sh
  2.  
  3. # Copyright (C) 2001, 2002 Free Software Foundation
  4. # Copyright (C) 1992, 1993 Jean-loup Gailly
  5.  
  6. # This program is free software; you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation; either version 2, or (at your option)
  9. # any later version.
  10.  
  11. # This program is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. # GNU General Public License for more details.
  15.  
  16. # You should have received a copy of the GNU General Public License
  17. # along with this program; if not, write to the Free Software
  18. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  19. # 02111-1307, USA.
  20.  
  21. PATH="/usr/bin:$PATH"; export PATH
  22. if test "`echo -n a`" = "-n a"; then
  23.   # looks like a SysV system:
  24.   n1=''; n2='\c'
  25. else
  26.   n1='-n'; n2=''
  27. fi
  28. oldtty=`stty -g 2>/dev/null`
  29. if stty -cbreak 2>/dev/null; then
  30.   cb='cbreak'; ncb='-cbreak'
  31. else
  32.   # 'stty min 1' resets eof to ^a on both SunOS and SysV!
  33.   cb='min 1 -icanon'; ncb='icanon eof ^d'
  34. fi
  35. if test $? -eq 0 && test -n "$oldtty"; then
  36.    trap 'stty $oldtty 2>/dev/null; exit' 0 2 3 5 10 13 15
  37. else
  38.    trap 'stty $ncb echo 2>/dev/null; exit' 0 2 3 5 10 13 15
  39. fi
  40.  
  41. opt=""
  42. pager ()
  43. {
  44.     ${PAGER-more} $opt
  45.     cat > /dev/null
  46. }
  47.  
  48. if test $# = 0; then
  49.     if test -t 0; then
  50.     echo usage: ${ZMORE_PROGRAM_NAME-zmore} files...
  51.     else
  52.     gzip -cdfq | pager
  53.     fi
  54. else
  55.     while test -z "${1%%[-+]*}" -a -n "$1" ; do
  56.     opt=${opt:+"$1" }${opt:-"$1"}
  57.     shift
  58.     done
  59.     FIRST=1
  60.     for FILE
  61.     do
  62.     < "$FILE" || continue
  63.     if test $FIRST -eq 0; then
  64.         echo $n1 "--More--(Next file: $FILE)$n2"
  65.         stty $cb -echo 2>/dev/null
  66.         ANS=`dd bs=1 count=1 2>/dev/null` 
  67.         stty $ncb echo 2>/dev/null
  68.         echo " "
  69.         case "$ANS" in
  70.         [eq]) exit;;
  71.         esac
  72.     fi
  73.     if test "$ANS" != 's'; then
  74.         echo "------> $FILE <------"
  75.         case "`file -b -L "$FILE" 2>/dev/null`" in
  76.             gzip*compressed*data*)    gzip  -cdfq "$FILE" ;;
  77.             bzip2*compressed*data*)    bzip2 -cdf9 "$FILE" ;;
  78.             *)            cat        "$FILE" ;;
  79.         esac | pager
  80.     fi
  81.     if test -t 1; then
  82.         FIRST=0
  83.     fi
  84.     done
  85. fi
  86.