From ae84df99c43dec309647d5ae72f07d011e74b3c7 Mon Sep 17 00:00:00 2001 From: "Jordan K. Hubbard" Date: Mon, 1 Feb 1999 06:08:21 +0000 Subject: Whoops! Forgot to include Mr. Sobray's more command in the last set of commits. Submitted by: Daniel C. Sobral --- sys/boot/common/commands.c | 47 ++++++++++++++++++++++++++++++++++++++++++++- sys/boot/common/help.common | 11 ++++++++++- 2 files changed, 56 insertions(+), 2 deletions(-) diff --git a/sys/boot/common/commands.c b/sys/boot/common/commands.c index fe0eb54d7707..00b93d8760a4 100644 --- a/sys/boot/common/commands.c +++ b/sys/boot/common/commands.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: commands.c,v 1.8 1999/01/09 02:34:48 msmith Exp $ + * $Id: commands.c,v 1.9 1999/01/11 06:41:31 msmith Exp $ */ #include @@ -35,6 +35,7 @@ char *command_errmsg; char command_errbuf[256]; /* XXX should have procedural interface for setting, size limit? */ +static int page_file(char *filename); /* * Help is read from a formatted text file. @@ -383,6 +384,50 @@ command_read(int argc, char *argv[]) return(CMD_OK); } +/* + * File pager + */ +COMMAND_SET(more, "more", "show contents of a file", command_more); + +static int +command_more(int argc, char *argv[]) +{ + int i; + int res; + char line[80]; + + res=0; + pager_open(); + for (i = 1; (i < argc) && (res == 0); i++) { + sprintf(line, "*** FILE %s BEGIN ***\n", argv[i]); + pager_output(line); + res = page_file(argv[i]); + if (!res) { + sprintf(line, "*** FILE %s END ***\n", argv[i]); + pager_output(line); + } + } + pager_close(); + + if (res == 0) + return CMD_OK; + else + return CMD_ERROR; +} + +static int +page_file(char *filename) +{ + int result; + + result = pager_file(filename); + + if (result == -1) + sprintf(command_errbuf, "error showing %s", filename); + + return result; +} + /* * List all disk-like devices */ diff --git a/sys/boot/common/help.common b/sys/boot/common/help.common index ec8af4ea630c..511f323429e1 100644 --- a/sys/boot/common/help.common +++ b/sys/boot/common/help.common @@ -84,6 +84,15 @@ List loaded modules. If [-v] is specified, print more details. +################################################################################ +# Tmore DPage files + + more [ ...] + + Show contents of text files. When displaying the contents of more, + than one file, if the user elects to quit displaying a file, the + remaining files will not be shown. + ################################################################################ # Tpnpscan DScan for PnP devices @@ -241,7 +250,7 @@ ################################################################################ # Tinclude DRead commands from a script file - include + include [ ...] The entire contents of are read into memory before executing commands, so it is safe to source a file from removable media. -- cgit v1.3