diff options
Diffstat (limited to 'src/nvim/os/pty_process_unix.c')
-rw-r--r-- | src/nvim/os/pty_process_unix.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/nvim/os/pty_process_unix.c b/src/nvim/os/pty_process_unix.c index f0bc13783c..4d7d9a45df 100644 --- a/src/nvim/os/pty_process_unix.c +++ b/src/nvim/os/pty_process_unix.c @@ -160,8 +160,21 @@ static void init_child(PtyProcess *ptyproc) os_unsetenv("COLUMNS"); os_unsetenv("LINES"); os_unsetenv("TERMCAP"); - os_unsetenv("COLORTERM"); os_unsetenv("COLORFGBG"); + // setting COLORTERM to "truecolor" if termguicolors is set and 256 + // otherwise, but only if it was set in the parent terminal at all + if (os_env_exists("COLORTERM")) { + const char *colorterm = os_getenv("COLORTERM"); + if (colorterm != NULL) { + if (p_tgc) { + os_setenv("COLORTERM", "truecolor", 1); + } else { + os_setenv("COLORTERM", "256", 1); + } + } else { + os_unsetenv("COLORTERM"); + } + } signal(SIGCHLD, SIG_DFL); signal(SIGHUP, SIG_DFL); |