diff options
Diffstat (limited to 'execute_cmd.c')
-rw-r--r-- | execute_cmd.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/execute_cmd.c b/execute_cmd.c index ee0ea8c4..41d3cf88 100644 --- a/execute_cmd.c +++ b/execute_cmd.c @@ -1654,7 +1654,8 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close) subshell sets an exit trap, so we set CMD_NO_FORK for simple commands and set CMD_TRY_OPTIMIZING for simple commands on the right side of an and-or or `;' list to test for optimizing forks when they are executed. */ - if (user_subshell && command->type == cm_subshell) + if (user_subshell && command->type == cm_subshell && + (command->flags & (CMD_TIME_PIPELINE|CMD_INVERT_RETURN)) == 0) optimize_subshell_command (command->value.Subshell->command); /* Do redirections, then dispose of them before recursive call. */ |