Convert CONFIG_SYS_MONITOR_LEN to Kconfig
[platform/kernel/u-boot.git] / cmd / echo.c
index 3dc3a63..fda844e 100644 (file)
@@ -1,56 +1,43 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright 2000-2009
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
 #include <command.h>
 
-static int do_echo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+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"
 );