diff options
Diffstat (limited to 'shell/hush.c')
-rw-r--r-- | shell/hush.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/shell/hush.c b/shell/hush.c index c55d86f5d..01fd33486 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -2010,7 +2010,10 @@ int parse_stream(o_string *dest, struct p_context *ctx, } else { if (m==2) { /* unquoted IFS */ done_word(dest, ctx); - if (ch=='\n') done_pipe(ctx,PIPE_SEQ); + /* If we aren't performing a substitution, treat a newline as a + * command separator. */ + if (end_trigger != '\0' && ch=='\n') + done_pipe(ctx,PIPE_SEQ); } if (ch == end_trigger && !dest->quote && ctx->w==RES_NONE) { debug_printf("leaving parse_stream\n"); |