mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
TUI: sniff nsterm (Terminal.app) from $TERM_PROGRAM
This commit is contained in:
parent
ee21fe3d2a
commit
1b746c0ea9
@ -238,6 +238,8 @@ static void terminfo_start(UI *ui)
|
|||||||
const char *vte_version_env = os_getenv("VTE_VERSION");
|
const char *vte_version_env = os_getenv("VTE_VERSION");
|
||||||
long vtev = vte_version_env ? strtol(vte_version_env, NULL, 10) : 0;
|
long vtev = vte_version_env ? strtol(vte_version_env, NULL, 10) : 0;
|
||||||
bool iterm_env = termprg && strstr(termprg, "iTerm.app");
|
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")
|
bool konsole = terminfo_is_term_family(term, "konsole")
|
||||||
|| os_getenv("KONSOLE_PROFILE_NAME")
|
|| os_getenv("KONSOLE_PROFILE_NAME")
|
||||||
|| os_getenv("KONSOLE_DBUS_SESSION");
|
|| os_getenv("KONSOLE_DBUS_SESSION");
|
||||||
@ -245,8 +247,8 @@ static void terminfo_start(UI *ui)
|
|||||||
long konsolev = konsolev_env ? strtol(konsolev_env, NULL, 10)
|
long konsolev = konsolev_env ? strtol(konsolev_env, NULL, 10)
|
||||||
: (konsole ? 1 : 0);
|
: (konsole ? 1 : 0);
|
||||||
|
|
||||||
patch_terminfo_bugs(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);
|
augment_terminfo(data, term, colorterm, vtev, konsolev, iterm_env, nsterm);
|
||||||
data->can_change_scroll_region =
|
data->can_change_scroll_region =
|
||||||
!!unibi_get_str(data->ut, unibi_change_scroll_region);
|
!!unibi_get_str(data->ut, unibi_change_scroll_region);
|
||||||
data->can_set_lr_margin =
|
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.
|
/// and several terminal emulators falsely announce incorrect terminal types.
|
||||||
static void patch_terminfo_bugs(TUIData *data, const char *term,
|
static void patch_terminfo_bugs(TUIData *data, const char *term,
|
||||||
const char *colorterm, long vte_version,
|
const char *colorterm, long vte_version,
|
||||||
long konsolev, bool iterm_env)
|
long konsolev, bool iterm_env, bool nsterm)
|
||||||
{
|
{
|
||||||
unibi_term *ut = data->ut;
|
unibi_term *ut = data->ut;
|
||||||
const char *xterm_version = os_getenv("XTERM_VERSION");
|
const char *xterm_version = os_getenv("XTERM_VERSION");
|
||||||
#if 0 // We don't need to identify this specifically, for now.
|
#if 0 // We don't need to identify this specifically, for now.
|
||||||
bool roxterm = !!os_getenv("ROXTERM_ID");
|
bool roxterm = !!os_getenv("ROXTERM_ID");
|
||||||
#endif
|
#endif
|
||||||
bool nsterm = terminfo_is_term_family(term, "nsterm");
|
|
||||||
bool xterm = terminfo_is_term_family(term, "xterm")
|
bool xterm = terminfo_is_term_family(term, "xterm")
|
||||||
// Treat Terminal.app as generic xterm-like, for now.
|
// Treat Terminal.app as generic xterm-like, for now.
|
||||||
|| nsterm;
|
|| nsterm;
|
||||||
@ -1777,10 +1778,9 @@ static void patch_terminfo_bugs(TUIData *data, const char *term,
|
|||||||
/// capabilities.
|
/// capabilities.
|
||||||
static void augment_terminfo(TUIData *data, const char *term,
|
static void augment_terminfo(TUIData *data, const char *term,
|
||||||
const char *colorterm, long vte_version,
|
const char *colorterm, long vte_version,
|
||||||
long konsolev, bool iterm_env)
|
long konsolev, bool iterm_env, bool nsterm)
|
||||||
{
|
{
|
||||||
unibi_term *ut = data->ut;
|
unibi_term *ut = data->ut;
|
||||||
bool nsterm = terminfo_is_term_family(term, "nsterm");
|
|
||||||
bool xterm = terminfo_is_term_family(term, "xterm")
|
bool xterm = terminfo_is_term_family(term, "xterm")
|
||||||
// Treat Terminal.app as generic xterm-like, for now.
|
// Treat Terminal.app as generic xterm-like, for now.
|
||||||
|| nsterm;
|
|| nsterm;
|
||||||
|
Loading…
Reference in New Issue
Block a user