9os

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit c7564c9bdf15397e0cf80f15902700194c9d4f0e
parent f01e55c92973ecdc19da58b7f79e9243d74c27b4
Author: Roberto E. Vargas Caballero <roberto.vargas@midokura.com>
Date:   Fri, 11 Nov 2022 17:33:54 +0100

dlang: Add PREFIX2 to dlang output

This makes easier to differentiate between output from the kernel
and output generated at the debug language.

Diffstat:
Msrc/os9/dlang.c | 41++++++++++++++++++++++++++---------------
1 file changed, 26 insertions(+), 15 deletions(-)

diff --git a/src/os9/dlang.c b/src/os9/dlang.c @@ -10,6 +10,7 @@ #include <string.h> #define PREFIX "> " +#define PREFIX2 "# " #define NR_ARGC_MAX 5 struct args { @@ -76,7 +77,7 @@ do_help(const struct cmd *cmd, struct args *args) { for (cmd = cmds; cmd->name; cmd++) { char *s = cmd->helpmsg; - kprint("%s\n", s); + kprint(PREFIX2 "%s\n", s); } return 0; } @@ -84,15 +85,25 @@ do_help(const struct cmd *cmd, struct args *args) static int do_cat(const struct cmd *cmd, struct args *args) { - int n; + int n, ch; Chan *c; - char buf[100]; + char buf[100], *bp; if ((c = devopen(args->argv[1], O_READ)) == NULL) goto err; - while ((n = devread(c, buf, sizeof(buf))) > 0) - devwrite(console, buf, n); + ch = -1; + kprint(PREFIX2); + while ((n = devread(c, buf, sizeof(buf))) > 0) { + for (bp = buf; bp < &buf[n]; bp++) { + if (ch == '\n') + kprint(PREFIX2); + ch = *bp; + kprint("%c", ch); + } + } + if (ch != '\n') + kprint("\n"); if (devclose(c) < 0 || n < 0) goto err; @@ -118,7 +129,7 @@ do_ls(const struct cmd *cmd, struct args *args) while ((n = devread(c, buf, DIRLEN)) > 0) { if (p9todir(&dentry, buf, n) < 0) goto err; - kprint("%s\n", dentry.name); + kprint(PREFIX2 "%s\n", dentry.name); } devclose(c); @@ -172,12 +183,12 @@ do_stat(const struct cmd *cmd, struct args *args) if (dirstat(args->argv[1], &dir) < 0) goto err; - kprint("name: %s\n" - "length: %ld\n" - "mode: %x\n" - "type: %d\n" - "dev: %d\n" - "qid: %x,%lx,%llx\n", + kprint(PREFIX2 "name: %s\n" + PREFIX2 "length: %ld\n" + PREFIX2 "mode: %x\n" + PREFIX2 "type: %d\n" + PREFIX2 "dev: %d\n" + PREFIX2 "qid: %x,%lx,%llx\n", dir.name, dir.length, dir.mode, @@ -218,17 +229,17 @@ do_x(const struct cmd *cmd, struct args *args) case 'x': u16 = addr; while (n-- > 0) - kprint("%x\n", (int) *u16++); + kprint(PREFIX2 "%x\n", (int) *u16++); return 0; case 'X': u32 = addr; while (n-- > 0) - kprint("%lx\n", (long) *u32++); + kprint(PREFIX2 "%lx\n", (long) *u32++); return 0; case 'Y': u64 = addr; while (n-- > 0) - kprint("%x\n", (long long) *u64++); + kprint(PREFIX2 "%x\n", (long long) *u64++); return 0; default: goto badfmt;