From b2c5310d4da56237571bb8ea8d24b030c941030f Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Thu, 5 Jul 2007 18:02:14 +0200 Subject: svn_rev_653 restructure tree, add reginfo command --- commands/cat.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 commands/cat.c (limited to 'commands/cat.c') diff --git a/commands/cat.c b/commands/cat.c new file mode 100644 index 0000000000..72baae2e5e --- /dev/null +++ b/commands/cat.c @@ -0,0 +1,64 @@ +#include +#include +#include +#include +#include +#include +#include + +static int do_cat(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +{ + int ret; + int fd, i; + char *buf; + int err = 0; + int args = 1; + + if (argc < 2) { + perror("cat"); + return 1; + } + + buf = xmalloc(1024); + + while (args < argc) { + fd = open(argv[args], 0); + if (fd < 0) { + printf("could not open %s: %s\n", argv[args], errno_str()); + goto out; + } + + while((ret = read(fd, buf, 1024)) > 0) { + for(i = 0; i < ret; i++) { + if (isprint(buf[i]) || buf[i] == '\n' || buf[i] == '\t') + putc(buf[i]); + else + putc('.'); + } + if(ctrlc()) { + err = 1; + close(fd); + goto out; + } + } + close(fd); + args++; + } + +out: + free(buf); + + return err; +} + +static __maybe_unused char cmd_cat_help[] = +"Usage: cat [FILES]\n" +"Concatenate files on stdout. Currently only printable characters\n" +"and \\n and \\t are printed, but this should be optional\n"; + +U_BOOT_CMD_START(cat) + .maxargs = CONFIG_MAXARGS, + .cmd = do_cat, + .usage = "concatenate file(s)", + U_BOOT_CMD_HELP(cmd_cat_help) +U_BOOT_CMD_END -- cgit v1.2.3