From f72038bd7c5eb0773a1d74adbc61da14990dffee Mon Sep 17 00:00:00 2001 From: Alan Carvalho de Assis Date: Fri, 26 Jun 2026 12:41:02 -0300 Subject: [PATCH] nsh/echo: Fix echo previous behavior, single write with '\n' This commit fixes the previous behavior where an echo with a single string and its default new line is send as single write(). This issue came from: https://github.com/apache/nuttx-apps/pull/1559 Signed-off-by: Alan C. Assis --- nshlib/nsh_envcmds.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/nshlib/nsh_envcmds.c b/nshlib/nsh_envcmds.c index 442d6b2ba8c..52be0e96cd2 100644 --- a/nshlib/nsh_envcmds.c +++ b/nshlib/nsh_envcmds.c @@ -390,19 +390,18 @@ int cmd_echo(FAR struct nsh_vtbl_s *vtbl, int argc, FAR char **argv) str_escape(argv[0]); } - nsh_output(vtbl, "%s", argv[0]); - - --argc; - ++argv; - if (argc > 0) + if (argc > 1) { - nsh_output(vtbl, " "); + nsh_output(vtbl, "%s ", argv[0]); + } + else + { + nsh_output(vtbl, newline ? "%s\n" : "%s", argv[0]); + break; } - } - if (newline) - { - nsh_output(vtbl, "\n"); + --argc; + ++argv; } return OK;