* Noteworthy changes in release ?.? (????-??-??) [?]
+** Bug fixes
+
+ zmore now acts more like 'more', and is more portable to POSIXish hosts.
+
* Noteworthy changes in release 1.5 (2012-06-17) [stable]
.PP
.IP \fIi\^\fPz
same as typing a space except that \fIi\fP, if present, becomes the new
-window size. Note that the window size reverts back to the default at the
-end of the current file.
+window size.
.PP
.IP \fIi\^\fPs
skip \fIi\fP lines and print a screenful of lines
skip \fIi\fP screenfuls and print a screenful of lines
.PP
.IP "q or Q"
-quit reading the current file; go on to the next (if any)
-.PP
-.IP "e or q"
-When the prompt --More--(Next file:
-.IR file )
-is printed, this command causes zmore to exit.
-.PP
-.IP s
-When the prompt --More--(Next file:
-.IR file )
-is printed, this command causes zmore to skip the next file and continue.
+Quit.
.PP
.IP =
Display the current line number.
.PP
.IP \fIi\fP/expr
search for the \fIi\^\fP-th occurrence of the regular expression \fIexpr.\fP
-If the pattern is not found,
-.I zmore
-goes on to the next file (if any).
-Otherwise, a screenful is displayed, starting two lines before the place
-where the expression was found.
The user's erase and kill characters may be used to edit the regular
expression.
Erasing back past the first column cancels the search command.
previous shell command. The sequence "\\!" is replaced by "!".
.PP
.IP ":q or :Q"
-quit reading the current file; go on to the next (if any)
+Quit
(same as q or Q).
.PP
.IP .
.I zmore
acts just like
.I zcat,
-except that a header is printed before each file.
+except that a header is printed before each file
+if there is more than one file.
.SH FILES
.TP
/etc/termcap
Report bugs to <bug-gzip@gnu.org>."
-if test "`echo -n a`" = "-n a"; then
- # looks like a SysV system:
- n1=''; n2='\c'
-else
- n1='-n'; n2=''
-fi
-oldtty=`stty -g 2>/dev/null`
-if stty -cbreak 2>/dev/null; then
- cb='cbreak'; ncb='-cbreak'
-else
- # 'stty min 1' resets eof to ^a on both SunOS and SysV!
- cb='min 1 -icanon'; ncb='icanon eof ^d'
-fi
-if test $? -eq 0 && test -n "$oldtty"; then
- trap 'stty $oldtty 2>/dev/null; exit' 0 2 3 5 10 13 15
-else
- trap 'stty $ncb echo 2>/dev/null; exit' 0 2 3 5 10 13 15
-fi
+case $1 in
+ --h*) exec printf '%s\n' "$usage";;
+ --v*) exec printf '%s\n' "$version";;
+ --) shift;;
+ -?*) printf >&2 '%s\n' "$0: $1: unknown option; try '$0 --help' for help"
+ exit 1;;
+esac
if test $# = 0; then
if test -t 0; then
- echo >&2 "$0: invalid number of operands; try \`$0 --help' for help"
- else
- gzip -cdfq | eval ${PAGER-more}
+ printf >&2 '%s\n' "$0: missing operands; try '$0 --help' for help"
+ exit 1
fi
-else
- FIRST=1
- for FILE
- do
- case $FILE in
- --h*) exec echo "$usage";;
- --v*) exec echo "$version";;
- esac
-
- < "$FILE" || continue
- if test $FIRST -eq 0; then
- echo $n1 "--More--(Next file: $FILE)$n2"
- stty $cb -echo 2>/dev/null
- ANS=`dd bs=1 count=1 2>/dev/null`
- stty $ncb echo 2>/dev/null
- echo " "
- case "$ANS" in
- [eq]) exit;;
- esac
- fi
- if test "$ANS" != 's'; then
- echo "------> $FILE <------"
- gzip -cdfq -- "$FILE" | eval ${PAGER-more}
- fi
- if test -t 1; then
- FIRST=0
- fi
- done
+ set -- -
fi
+
+for FILE
+do
+ test $# -lt 2 ||
+ printf '::::::::::::::\n%s\n::::::::::::::\n' "$FILE" || break
+ gzip -cdfq -- "$FILE"
+done 2>&1 | eval ${PAGER-more}