summaryrefslogtreecommitdiffstats
path: root/sys/boot/common
diff options
context:
space:
mode:
authorjkh <jkh@FreeBSD.org>1999-02-01 06:08:21 +0000
committerjkh <jkh@FreeBSD.org>1999-02-01 06:08:21 +0000
commitd02485ce0ba6462c7c8ec2094955ac533cd73daa (patch)
tree14ed723cbe769fe220e55ec628ee14146de7b4d0 /sys/boot/common
parent81596f0f40afeff4a9e4d4f5c4deef52145afce2 (diff)
downloadFreeBSD-src-d02485ce0ba6462c7c8ec2094955ac533cd73daa.zip
FreeBSD-src-d02485ce0ba6462c7c8ec2094955ac533cd73daa.tar.gz
Whoops! Forgot to include Mr. Sobray's more command in the last set
of commits. Submitted by: Daniel C. Sobral <dcs@newsguy.com>
Diffstat (limited to 'sys/boot/common')
-rw-r--r--sys/boot/common/commands.c47
-rw-r--r--sys/boot/common/help.common11
2 files changed, 56 insertions, 2 deletions
diff --git a/sys/boot/common/commands.c b/sys/boot/common/commands.c
index fe0eb54..00b93d8 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 ec8af4e..511f323 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.
OpenPOWER on IntegriCloud