
Change echo to puts charachters together where it knows about them together. This improves netconsole performance by greatly reducing the number of packets that are sent.
Signed-off-by: Joe Hershberger joe.hershberger@ni.com --- common/cmd_echo.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/common/cmd_echo.c b/common/cmd_echo.c index 43a6da5..e04738f 100644 --- a/common/cmd_echo.c +++ b/common/cmd_echo.c @@ -28,19 +28,23 @@ int do_echo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { int i; int putnl = 1; + char *nls; /* new-line suppression */
for (i = 1; i < argc; i++) { - char *p = argv[i], c; + char *p = argv[i];
if (i > 1) putc(' '); - while ((c = *p++) != '\0') { - if (c == '\' && *p == 'c') { - putnl = 0; - p++; - } else { - putc(c); - } + + nls = strstr(p, "\c"); + if (nls) { + putnl = 0; + *nls = '\0'; + puts(p); + puts(nls + 2); + *nls = '\'; + } else { + puts(p); } }