diff --git a/src/core/exec-invoke.c b/src/core/exec-invoke.c index 627b96d435..5ba0a47148 100644 --- a/src/core/exec-invoke.c +++ b/src/core/exec-invoke.c @@ -393,7 +393,10 @@ static int setup_input( /* Try to make this the controlling tty, if it is a tty, and reset it */ if (isatty(STDIN_FILENO)) { (void) ioctl(STDIN_FILENO, TIOCSCTTY, context->std_input == EXEC_INPUT_TTY_FORCE); - (void) reset_terminal_fd(STDIN_FILENO, true); + + if (context->tty_reset) + (void) reset_terminal_fd(STDIN_FILENO, /* switch_to_text= */ true); + (void) exec_context_apply_tty_size(context, STDIN_FILENO, /* tty_path= */ NULL); }