Message ID | 1345236918-19775-1-git-send-email-joe.hershberger@ni.com |
---|---|
State | Superseded |
Delegated to: | Tom Rini |
Headers | show |
On Friday 17 August 2012 16:55:18 Joe Hershberger wrote: > --- a/common/cmd_echo.c > +++ b/common/cmd_echo.c > > - 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); > } > } what if someone uses \c multiple times ? -mike
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); } }
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(-)