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 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