diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2019-02-11 11:02:48 +0100 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2019-02-11 11:02:48 +0100 |
commit | 1b746c0ea970f1f299808d7f2715b41944e18096 (patch) | |
tree | 58ca3b1fc91b82a04dd00ab208b00fab254732a5 /src | |
parent | ee21fe3d2a9231dcabc5b64564c867c2a3f6c37c (diff) | |
download | rneovim-1b746c0ea970f1f299808d7f2715b41944e18096.tar.gz rneovim-1b746c0ea970f1f299808d7f2715b41944e18096.tar.bz2 rneovim-1b746c0ea970f1f299808d7f2715b41944e18096.zip |
TUI: sniff nsterm (Terminal.app) from $TERM_PROGRAM
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/tui/tui.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c index 92bdd31730..dfb8990b46 100644 --- a/src/nvim/tui/tui.c +++ b/src/nvim/tui/tui.c @@ -238,6 +238,8 @@ static void terminfo_start(UI *ui) const char *vte_version_env = os_getenv("VTE_VERSION"); long vtev = vte_version_env ? strtol(vte_version_env, NULL, 10) : 0; bool iterm_env = termprg && strstr(termprg, "iTerm.app"); + bool nsterm = (termprg && strstr(termprg, "Apple_Terminal")) + || terminfo_is_term_family(term, "nsterm"); bool konsole = terminfo_is_term_family(term, "konsole") || os_getenv("KONSOLE_PROFILE_NAME") || os_getenv("KONSOLE_DBUS_SESSION"); @@ -245,8 +247,8 @@ static void terminfo_start(UI *ui) long konsolev = konsolev_env ? strtol(konsolev_env, NULL, 10) : (konsole ? 1 : 0); - patch_terminfo_bugs(data, term, colorterm, vtev, konsolev, iterm_env); - augment_terminfo(data, term, colorterm, vtev, konsolev, iterm_env); + patch_terminfo_bugs(data, term, colorterm, vtev, konsolev, iterm_env, nsterm); + augment_terminfo(data, term, colorterm, vtev, konsolev, iterm_env, nsterm); data->can_change_scroll_region = !!unibi_get_str(data->ut, unibi_change_scroll_region); data->can_set_lr_margin = @@ -1487,14 +1489,13 @@ static int unibi_find_ext_bool(unibi_term *ut, const char *name) /// and several terminal emulators falsely announce incorrect terminal types. static void patch_terminfo_bugs(TUIData *data, const char *term, const char *colorterm, long vte_version, - long konsolev, bool iterm_env) + long konsolev, bool iterm_env, bool nsterm) { unibi_term *ut = data->ut; const char *xterm_version = os_getenv("XTERM_VERSION"); #if 0 // We don't need to identify this specifically, for now. bool roxterm = !!os_getenv("ROXTERM_ID"); #endif - bool nsterm = terminfo_is_term_family(term, "nsterm"); bool xterm = terminfo_is_term_family(term, "xterm") // Treat Terminal.app as generic xterm-like, for now. || nsterm; @@ -1777,10 +1778,9 @@ static void patch_terminfo_bugs(TUIData *data, const char *term, /// capabilities. static void augment_terminfo(TUIData *data, const char *term, const char *colorterm, long vte_version, - long konsolev, bool iterm_env) + long konsolev, bool iterm_env, bool nsterm) { unibi_term *ut = data->ut; - bool nsterm = terminfo_is_term_family(term, "nsterm"); bool xterm = terminfo_is_term_family(term, "xterm") // Treat Terminal.app as generic xterm-like, for now. || nsterm; |