mirror of
https://github.com/neovim/neovim.git
synced 2025-09-16 08:18:17 +00:00
tui: job-control: use saved termios for pty jobs
On startup, if running in a terminal, save the termios properties. Use the saved termios for `:terminal` and `jobstart()` pty jobs. This won't affect nvim spawned outside of a terminal. questions: - This affects `:terminal` and `jobstart({'pty'✌️true})`. Should we be more conservative for `jobstart({'pty'✌️true})` (e.g. pass NULL to forkpty() and let the OS defaults prevail)? - Note: `iutf8` would not be set in that case.
This commit is contained in:

committed by
Björn Linse

parent
a97cdff14d
commit
9acd7bfe25
@@ -73,6 +73,9 @@
|
||||
#include "nvim/api/private/helpers.h"
|
||||
#include "nvim/api/private/handle.h"
|
||||
#include "nvim/api/private/dispatch.h"
|
||||
#ifndef WIN32
|
||||
# include "nvim/os/pty_process_unix.h"
|
||||
#endif
|
||||
|
||||
/* Maximum number of commands from + or -c arguments. */
|
||||
#define MAX_ARG_CMDS 10
|
||||
@@ -1247,6 +1250,14 @@ static void check_and_set_isatty(mparm_T *paramp)
|
||||
stdout_isatty
|
||||
= paramp->output_isatty = os_isatty(fileno(stdout));
|
||||
paramp->err_isatty = os_isatty(fileno(stderr));
|
||||
int tty_fd = paramp->input_isatty
|
||||
? OS_STDIN_FILENO
|
||||
: (paramp->output_isatty
|
||||
? OS_STDOUT_FILENO
|
||||
: (paramp->err_isatty ? OS_STDERR_FILENO : -1));
|
||||
#ifndef WIN32
|
||||
pty_process_save_termios(tty_fd);
|
||||
#endif
|
||||
TIME_MSG("window checked");
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user