diff options
author | Tom Rini <trini@konsulko.com> | 2021-01-25 09:02:06 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2021-01-25 09:02:06 -0500 |
commit | 7f10b8eed450fcac6296ef53432d3b30c407cc39 (patch) | |
tree | d0d4cf17cc9200a360d733c487287dcf73da67a7 /cmd/echo.c | |
parent | aee5bcce35009c50555d9917e2ca4b9422210fbb (diff) | |
parent | 5b6dac01e636aa8b799a68c115d9fd86e4bbbf09 (diff) |
Merge tag 'doc-2021-04-rc1-2' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi
Pull request for documentation tag doc-2021-04-rc1 (2)
* Man-pages for sbi, exit, for, echo, loady, true, false, conitrace
* Adjust suppression of newline in echo command.
* Provide unit test for echo command.
Diffstat (limited to 'cmd/echo.c')
-rw-r--r-- | cmd/echo.c | 49 |
1 files changed, 18 insertions, 31 deletions
diff --git a/cmd/echo.c b/cmd/echo.c index d02a4cfd586..fda844ee9d3 100644 --- a/cmd/echo.c +++ b/cmd/echo.c @@ -10,47 +10,34 @@ static int do_echo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { - int i; - int putnl = 1; - - for (i = 1; i < argc; i++) { - char *p = argv[i]; - char *nls; /* new-line suppression */ + int i = 1; + bool space = false; + bool newline = true; + + if (argc > 1) { + if (!strcmp(argv[1], "-n")) { + newline = false; + ++i; + } + } - if (i > 1) + for (; i < argc; ++i) { + if (space) { putc(' '); - - nls = strstr(p, "\\c"); - if (nls) { - char *prenls = p; - - putnl = 0; - /* - * be paranoid and guess that someone might - * say \c more than once - */ - while (nls) { - *nls = '\0'; - puts(prenls); - *nls = '\\'; - prenls = nls + 2; - nls = strstr(prenls, "\\c"); - } - puts(prenls); - } else { - puts(p); } + puts(argv[i]); + space = true; } - if (putnl) + if (newline) putc('\n'); return 0; } U_BOOT_CMD( - echo, CONFIG_SYS_MAXARGS, 1, do_echo, + echo, CONFIG_SYS_MAXARGS, 1, do_echo, "echo args to console", - "[args..]\n" - " - echo args to console; \\c suppresses newline" + "[-n] [args..]\n" + " - echo args to console; -n suppresses newline" ); |