diff options
Diffstat (limited to 'shell')
-rw-r--r-- | shell/hush.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/shell/hush.c b/shell/hush.c index a771e9cd9..24b9e6efe 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -4140,7 +4140,16 @@ static struct pipe *parse_stream(char **pstring, if (IS_NULL_CMD(ctx.command) && dest.length == 0 && !dest.has_quoted_part ) { - continue; + /* This newline can be ignored. But... + * without the below check, interactive shell + * will ignore even lines with bare <newline>, + * and show the continuation prompt: + * ps1_prompt$ <enter> + * ps2> _ <=== wrong prompt, should be ps1 + */ + struct pipe *pi = ctx.list_head; + if (pi->num_cmds != 0) + continue; } /* Treat newline as a command separator. */ done_pipe(&ctx, PIPE_SEQ); |