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 279a9ea25fSXin LI# Pull out any command line flags so we can pass them to more/less 289a9ea25fSXin LIflags= 299a9ea25fSXin LIwhile test $# -ne 0; do 309a9ea25fSXin LI case "$1" in 319a9ea25fSXin LI --) 329a9ea25fSXin LI shift 339a9ea25fSXin LI break 349a9ea25fSXin LI ;; 359a9ea25fSXin LI -*) 369a9ea25fSXin LI flags="$flags $1" 379a9ea25fSXin LI shift 389a9ea25fSXin LI ;; 399a9ea25fSXin LI *) 409a9ea25fSXin LI break 419a9ea25fSXin LI ;; 429a9ea25fSXin LI esac 439a9ea25fSXin LIdone 449a9ea25fSXin LI 45*060ea80eSXin LIif [ `basename $0` = "zless" ] ; then 46*060ea80eSXin LI pager=${PAGER-less} 47*060ea80eSXin LIelse 48*060ea80eSXin LI pager=${PAGER-more} 49*060ea80eSXin LIfi 50*060ea80eSXin LI 519a9ea25fSXin LI# No files means read from stdin 529a9ea25fSXin LIif [ $# -eq 0 ]; then 53*060ea80eSXin LI gzip -cdfq 2>&1 | $pager $flags 549a9ea25fSXin LI exit 0 559a9ea25fSXin LIfi 569a9ea25fSXin LI 579a9ea25fSXin LIoterm=`stty -g 2>/dev/null` 589a9ea25fSXin LIwhile test $# -ne 0; do 59*060ea80eSXin LI gzip -cdfq "$1" 2>&1 | $pager $flags 609a9ea25fSXin LI prev="$1" 619a9ea25fSXin LI shift 629a9ea25fSXin LI if tty -s && test -n "$oterm" -a $# -gt 0; then 639a9ea25fSXin LI #echo -n "--More--(Next file: $1)" 649a9ea25fSXin LI echo -n "$prev (END) - Next: $1 " 659a9ea25fSXin LI trap "stty $oterm 2>/dev/null" 0 1 2 3 13 15 669a9ea25fSXin LI stty cbreak -echo 2>/dev/null 679a9ea25fSXin LI REPLY=`dd bs=1 count=1 2>/dev/null` 689a9ea25fSXin LI stty $oterm 2>/dev/null 699a9ea25fSXin LI trap - 0 1 2 3 13 15 709a9ea25fSXin LI echo 719a9ea25fSXin LI case "$REPLY" in 729a9ea25fSXin LI s) 739a9ea25fSXin LI shift 749a9ea25fSXin LI ;; 759a9ea25fSXin LI e|q) 769a9ea25fSXin LI break 779a9ea25fSXin LI ;; 789a9ea25fSXin LI esac 799a9ea25fSXin LI fi 809a9ea25fSXin LIdone 819a9ea25fSXin LIexit 0 82