hush: two NOMMU fixes for bugs 877 and 883

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2010-01-12 13:45:45 +01:00
parent f2c8aa6676
commit b70cef71eb
3 changed files with 22 additions and 3 deletions

View File

@ -4406,9 +4406,15 @@ static void debug_print_tree(struct pipe *pi, int lvl)
lvl*2, "", prn,
command->assignment_cnt);
if (command->group) {
fprintf(stderr, " group %s: (argv=%p)\n",
fprintf(stderr, " group %s: (argv=%p)%s%s\n",
CMDTYPE[command->cmd_type],
argv);
argv
#if !BB_MMU
, " group_as_string:", command->group_as_string
#else
, "", ""
#endif
);
debug_print_tree(command->group, lvl+1);
prn++;
continue;
@ -5986,7 +5992,7 @@ static int handle_dollar(o_string *as_string,
# if !BB_MMU
if (as_string) {
o_addstr(as_string, dest->data + pos);
o_addchr(as_string, '`');
o_addchr(as_string, ')');
}
# endif
o_addchr(dest, SPECIAL_VAR_SYMBOL);
@ -6535,6 +6541,9 @@ static struct pipe *parse_stream(char **pstring,
* with redirect_opt_num(), but bash doesn't do it.
* "echo foo 2| cat" yields "foo 2". */
done_command(&ctx);
#if !BB_MMU
o_reset_to_empty_unquoted(&ctx.as_string);
#endif
}
goto new_cmd;
case '(':

View File

@ -0,0 +1,5 @@
Ok
Ok
Ok
Ok
Done

View File

@ -0,0 +1,5 @@
echo Not shown | if true; then echo $(echo Ok); fi
echo Not shown | if true; then echo `echo Ok`; fi
echo Not shown | ( if true; then echo $(echo Ok); fi )
echo Not shown | ( if true; then echo `echo Ok`; fi )
echo Done