1 /*
2 * Copyright 2000-2009
3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4 *
5 * SPDX-License-Identifier: GPL-2.0+
6 */
7
8 #include <common.h>
9 #include <command.h>
10
do_echo(cmd_tbl_t * cmdtp,int flag,int argc,char * const argv[])11 static int do_echo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
12 {
13 int i;
14 int putnl = 1;
15
16 for (i = 1; i < argc; i++) {
17 char *p = argv[i];
18 char *nls; /* new-line suppression */
19
20 if (i > 1)
21 putc(' ');
22
23 nls = strstr(p, "\\c");
24 if (nls) {
25 char *prenls = p;
26
27 putnl = 0;
28 /*
29 * be paranoid and guess that someone might
30 * say \c more than once
31 */
32 while (nls) {
33 *nls = '\0';
34 puts(prenls);
35 *nls = '\\';
36 prenls = nls + 2;
37 nls = strstr(prenls, "\\c");
38 }
39 puts(prenls);
40 } else {
41 puts(p);
42 }
43 }
44
45 if (putnl)
46 putc('\n');
47
48 return 0;
49 }
50
51 U_BOOT_CMD(
52 echo, CONFIG_SYS_MAXARGS, 1, do_echo,
53 "echo args to console",
54 "[args..]\n"
55 " - echo args to console; \\c suppresses newline"
56 );
57