aboutsummaryrefslogtreecommitdiff
path: root/shell/hush.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-05-17 09:49:47 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2010-05-17 09:49:47 +0200
commit3227d3f982e809fd02b37d6274f1c7da0a307cea (patch)
tree91a012dc7a9fdf3016f2258e05d4588e2cb89bf1 /shell/hush.c
parent0f01b00d742f92061cbbd9e95d1cd0368c4d2a4c (diff)
downloadbusybox-w32-3227d3f982e809fd02b37d6274f1c7da0a307cea.tar.gz
busybox-w32-3227d3f982e809fd02b37d6274f1c7da0a307cea.tar.bz2
busybox-w32-3227d3f982e809fd02b37d6274f1c7da0a307cea.zip
hush: fix hush-bugs/parse_err.tests
function old new delta parse_stream 2325 2339 +14 builtin_umask 121 123 +2 builtin_type 116 114 -2 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/hush.c')
-rw-r--r--shell/hush.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/shell/hush.c b/shell/hush.c
index 07cacbfc9..1bc0c611d 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -6232,10 +6232,15 @@ static struct pipe *parse_stream(char **pstring,
6232 is_special = "{}<>;&|()#'" /* special outside of "str" */ 6232 is_special = "{}<>;&|()#'" /* special outside of "str" */
6233 "\\$\"" IF_HUSH_TICK("`"); /* always special */ 6233 "\\$\"" IF_HUSH_TICK("`"); /* always special */
6234 /* Are { and } special here? */ 6234 /* Are { and } special here? */
6235 if (ctx.command->argv /* word [word]{... */ 6235 if (ctx.command->argv /* word [word]{... - non-special */
6236 || dest.length /* word{... */ 6236 || dest.length /* word{... - non-special */
6237 || dest.o_quoted /* ""{... */ 6237 || dest.o_quoted /* ""{... - non-special */
6238 || (next != ';' && next != ')' && !strchr(G.ifs, next)) /* {word */ 6238 || (next != ';' /* }; - special */
6239 && next != ')' /* }) - special */
6240 && next != '&' /* }& and }&& ... - special */
6241 && next != '|' /* }|| ... - special */
6242 && !strchr(G.ifs, next) /* {word - non-special */
6243 )
6239 ) { 6244 ) {
6240 /* They are not special, skip "{}" */ 6245 /* They are not special, skip "{}" */
6241 is_special += 2; 6246 is_special += 2;