diff options
| author | Jordan K. Hubbard <jkh@FreeBSD.org> | 1999-02-01 06:08:21 +0000 |
|---|---|---|
| committer | Jordan K. Hubbard <jkh@FreeBSD.org> | 1999-02-01 06:08:21 +0000 |
| commit | ae84df99c43dec309647d5ae72f07d011e74b3c7 (patch) | |
| tree | 8a14048d534ed7d6f7ce1c429f0dda7acb0a1e28 /sys | |
| parent | 5b3c6cedf52c624b606f776cb8eba6f9a3f1b2be (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/boot/common/commands.c | 47 | ||||
| -rw-r--r-- | 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 <stand.h> @@ -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. @@ -384,6 +385,50 @@ command_read(int argc, char *argv[]) } /* + * 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 */ COMMAND_SET(lsdev, "lsdev", "list all devices", command_lsdev); 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 @@ -85,6 +85,15 @@ List loaded modules. If [-v] is specified, print more details. ################################################################################ +# Tmore DPage files + + more <filename> [<filename> ...] + + 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 pnpscan [-v] @@ -241,7 +250,7 @@ ################################################################################ # Tinclude DRead commands from a script file - include <filename> + include <filename> [<filename> ...] The entire contents of <filename> are read into memory before executing commands, so it is safe to source a file from removable media. |
