hush: fix \
No binary (build failed)
—
(log yok)
| @@ -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 '$': | |
| @@ -0,0 +1,7 @@ | |
| + | Ok |
| + | Ok |
| + | Ok |
| + | Ok |
| + | Ok |
| + | Ok |
| + | Done |
| @@ -0,0 +1,12 @@ | |
| + | (echo \ |
| + | Ok) |
| + | ( (echo \ |
| + | Ok) ) |
| + | ( ( (echo \ |
| + | Ok) ) ) |
| + | |
| + | (echo \Ok) |
| + | ( (echo \Ok) ) |
| + | ( ( (echo \Ok) ) ) |
| + | |
| + | echo Done |
| @@ -38,16 +38,16 @@ do_test() | |
| tret=0 | |
| cd "$1" || { echo "cannot cd $1!"; exit 1; } | |
| for x in run-*; do | |
| - | test -f "$x" || continue |
| - | case "$x" in |
| - | "$0"|run-minimal|run-gprof) ;; |
| - | *.orig|*~) ;; |
| - | #*) echo $x ; sh $x ;; |
| - | *) |
| - | sh "$x" >"../$1-$x.fail" 2>&1 && \ |
| - | { echo "$1/$x: ok"; rm "../$1-$x.fail"; } || echo "$1/$x: fail"; |
| - | ;; |
| - | esac |
| + | test -f "$x" || continue |
| + | case "$x" in |
| + | "$0"|run-minimal|run-gprof) ;; |
| + | *.orig|*~) ;; |
| + | #*) echo $x ; sh $x ;; |
| + | *) |
| + | sh "$x" >"../$1-$x.fail" 2>&1 && \ |
| + | { echo "$1/$x: ok"; rm "../$1-$x.fail"; } || echo "$1/$x: fail"; |
| + | ;; |
| + | esac |
| done | |
| # Many bash run-XXX scripts just do this, | |
| # no point in duplication it all over the place | |