19a9ea25fSXin LI#!/bin/sh - 29a9ea25fSXin LI# 3*060ea80eSXin LI# $NetBSD: zmore,v 1.5 2013/12/06 13:33:15 pettai Exp $ 4*060ea80eSXin LI# 5*060ea80eSXin LI# $OpenBSD: zmore,v 1.6 2008/08/20 09:22:02 mpf Exp $ 69a9ea25fSXin LI# 79a9ea25fSXin LI#- 89a9ea25fSXin LI# Copyright (c) 2003 Todd C. Miller <Todd.Miller@courtesan.com> 99a9ea25fSXin LI# 109a9ea25fSXin LI# Permission to use, copy, modify, and distribute this software for any 119a9ea25fSXin LI# purpose with or without fee is hereby granted, provided that the above 129a9ea25fSXin LI# copyright notice and this permission notice appear in all copies. 139a9ea25fSXin LI# 149a9ea25fSXin LI# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 159a9ea25fSXin LI# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 169a9ea25fSXin LI# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 179a9ea25fSXin LI# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 189a9ea25fSXin LI# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 199a9ea25fSXin LI# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 209a9ea25fSXin LI# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 219a9ea25fSXin LI# 229a9ea25fSXin LI# Sponsored in part by the Defense Advanced Research Projects 239a9ea25fSXin LI# Agency (DARPA) and Air Force Research Laboratory, Air Force 249a9ea25fSXin LI# Materiel Command, USAF, under agreement number F39502-99-1-0512. 259a9ea25fSXin LI# 269a9ea25fSXin LI# $FreeBSD$ 279a9ea25fSXin LI 289a9ea25fSXin LI# Pull out any command line flags so we can pass them to more/less 299a9ea25fSXin LIflags= 309a9ea25fSXin LIwhile test $# -ne 0; do 319a9ea25fSXin LI case "$1" in 329a9ea25fSXin LI --) 339a9ea25fSXin LI shift 349a9ea25fSXin LI break 359a9ea25fSXin LI ;; 369a9ea25fSXin LI -*) 379a9ea25fSXin LI flags="$flags $1" 389a9ea25fSXin LI shift 399a9ea25fSXin LI ;; 409a9ea25fSXin LI *) 419a9ea25fSXin LI break 429a9ea25fSXin LI ;; 439a9ea25fSXin LI esac 449a9ea25fSXin LIdone 459a9ea25fSXin LI 46*060ea80eSXin LIif [ `basename $0` = "zless" ] ; then 47*060ea80eSXin LI pager=${PAGER-less} 48*060ea80eSXin LIelse 49*060ea80eSXin LI pager=${PAGER-more} 50*060ea80eSXin LIfi 51*060ea80eSXin LI 529a9ea25fSXin LI# No files means read from stdin 539a9ea25fSXin LIif [ $# -eq 0 ]; then 54*060ea80eSXin LI gzip -cdfq 2>&1 | $pager $flags 559a9ea25fSXin LI exit 0 569a9ea25fSXin LIfi 579a9ea25fSXin LI 589a9ea25fSXin LIoterm=`stty -g 2>/dev/null` 599a9ea25fSXin LIwhile test $# -ne 0; do 60*060ea80eSXin LI gzip -cdfq "$1" 2>&1 | $pager $flags 619a9ea25fSXin LI prev="$1" 629a9ea25fSXin LI shift 639a9ea25fSXin LI if tty -s && test -n "$oterm" -a $# -gt 0; then 649a9ea25fSXin LI #echo -n "--More--(Next file: $1)" 659a9ea25fSXin LI echo -n "$prev (END) - Next: $1 " 669a9ea25fSXin LI trap "stty $oterm 2>/dev/null" 0 1 2 3 13 15 679a9ea25fSXin LI stty cbreak -echo 2>/dev/null 689a9ea25fSXin LI REPLY=`dd bs=1 count=1 2>/dev/null` 699a9ea25fSXin LI stty $oterm 2>/dev/null 709a9ea25fSXin LI trap - 0 1 2 3 13 15 719a9ea25fSXin LI echo 729a9ea25fSXin LI case "$REPLY" in 739a9ea25fSXin LI s) 749a9ea25fSXin LI shift 759a9ea25fSXin LI ;; 769a9ea25fSXin LI e|q) 779a9ea25fSXin LI break 789a9ea25fSXin LI ;; 799a9ea25fSXin LI esac 809a9ea25fSXin LI fi 819a9ea25fSXin LIdone 829a9ea25fSXin LIexit 0 83