From 160c69b655ce2e47fbedcc87fcb4949c2bc04dce Mon Sep 17 00:00:00 2001 From: bfredl Date: Tue, 10 Jan 2023 14:03:15 +0100 Subject: fix(ui): re-organize tty fd handling and fix issues - Use the correct fd to replace stdin on windows (CONIN) - Don't start the TUI if there are no tty fd (not a regression, but makes sense regardless) - De-mythologize "global input fd". it is just STDIN. --- src/nvim/ui_client.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/nvim/ui_client.c') diff --git a/src/nvim/ui_client.c b/src/nvim/ui_client.c index ff82fd3239..47c255fc80 100644 --- a/src/nvim/ui_client.c +++ b/src/nvim/ui_client.c @@ -48,9 +48,16 @@ uint64_t ui_client_start_server(int argc, char **argv) on_err, CALLBACK_NONE, false, true, true, false, kChannelStdinPipe, NULL, 0, 0, NULL, &exit_status); + + // If stdin is not a pty, it is forwarded to the client. + // Replace stdin in the TUI process with the tty fd. if (ui_client_forward_stdin) { close(0); - dup(2); +#ifdef MSWIN + os_open_conin_fd(); +#else + dup(stderr_isatty ? STDERR_FILENO : STDOUT_FILENO); +#endif } return channel->id; -- cgit