diff options
author | Denys Vlasenko | 2009-08-12 19:47:44 +0200 |
---|---|---|
committer | Denys Vlasenko | 2009-08-12 19:47:44 +0200 |
commit | cbfe6ad4c6c6a218a3dd89623911183aca91b061 (patch) | |
tree | 10e0cbe1c2c7b87e828784c64628a84e2cfa795a /shell/hush.c | |
parent | 19679784c03089c585c609335389f034172a11ff (diff) | |
download | busybox-cbfe6ad4c6c6a218a3dd89623911183aca91b061.zip busybox-cbfe6ad4c6c6a218a3dd89623911183aca91b061.tar.gz |
hush: fix \<newline> handling on NOMMU
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/hush.c')
-rw-r--r-- | shell/hush.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/shell/hush.c b/shell/hush.c index f49630a..08e7f50 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -6038,6 +6038,8 @@ static struct pipe *parse_stream(char **pstring, dest.o_assignment = NOT_ASSIGNMENT; } + /* Note: nommu_addchr(&ctx.as_string, ch) is already done */ + switch (ch) { case '#': if (dest.length == 0) { @@ -6061,12 +6063,17 @@ static struct pipe *parse_stream(char **pstring, ch = i_getch(input); if (ch != '\n') { o_addchr(&dest, '\\'); - nommu_addchr(&ctx.as_string, '\\'); + /*nommu_addchr(&ctx.as_string, '\\'); - already done */ o_addchr(&dest, ch); nommu_addchr(&ctx.as_string, ch); /* Example: echo Hello \2>file * we need to know that word 2 is quoted */ dest.o_quoted = 1; + } else { +#if !BB_MMU + /* It's "\<newline>". Remove trailing '\' from ctx.as_string */ + ctx.as_string.data[--ctx.as_string.length] = '\0'; +#endif } break; case '$': |