|
@@ -5497,6 +5497,15 @@ static struct pipe *parse_stream(char **pstring,
|
|
|
}
|
|
|
o_free_and_set_NULL(&ctx.word);
|
|
|
done_pipe(&ctx, PIPE_SEQ);
|
|
|
+
|
|
|
+ /* Do we sit inside of any if's, loops or case's? */
|
|
|
+ if (HAS_KEYWORDS
|
|
|
+ IF_HAS_KEYWORDS(&& (ctx.ctx_res_w != RES_NONE || ctx.old_flag != 0))
|
|
|
+ ) {
|
|
|
+ syntax_error_unterm_str("compound statement");
|
|
|
+ goto parse_error_exitcode1;
|
|
|
+ }
|
|
|
+
|
|
|
pi = ctx.list_head;
|
|
|
/* If we got nothing... */
|
|
|
/* (this makes bare "&" cmd a no-op.
|
|
@@ -5519,7 +5528,7 @@ static struct pipe *parse_stream(char **pstring,
|
|
|
// *heredoc_cnt_ptr = heredoc_cnt;
|
|
|
debug_leave();
|
|
|
debug_printf_heredoc("parse_stream return heredoc_cnt:%d\n", heredoc_cnt);
|
|
|
- debug_printf_parse("parse_stream return %p\n", pi);
|
|
|
+ debug_printf_parse("parse_stream return %p: EOF\n", pi);
|
|
|
return pi;
|
|
|
}
|
|
|
|