tui: support new iterm2, iTerm2.app terminfo entries

iTerm2 got its own entry in Thomas Dickey's terminfo.src on 2017-08-16.
Make sure that the new entry is handled in the same way as the old entry.

closes #7209
closes #7214
This commit is contained in:
Leonardo Brondani Schenkel 2017-08-24 12:48:32 +02:00 committed by Justin M. Keyes
parent 6e7a8c3fe2
commit e1628fab00
3 changed files with 20 additions and 13 deletions

View File

@ -41,16 +41,17 @@ $TERM is also important because it is mirrored by SSH to the remote session,
unlike other common client-end environment variables ($COLORTERM, unlike other common client-end environment variables ($COLORTERM,
$XTERM_VERSION, $VTE_VERSION, $KONSOLE_PROFILE_NAME, $TERM_PROGRAM, ...). $XTERM_VERSION, $VTE_VERSION, $KONSOLE_PROFILE_NAME, $TERM_PROGRAM, ...).
For this terminal Set $TERM to |builtin-terms|? For this terminal Set $TERM to |builtin-terms|
-------------------------------------------------------------------------
iTerm.app "iterm" or "iTerm.app" Y iTerm (original) iterm, iTerm.app N
anything libvte based "vte" or "vte-256color" Y iTerm2 (new capabilities) iterm2, iTerm2.app Y
(e.g. GNOME Terminal) (aliases: "gnome", "gnome-256color") anything libvte-based vte, vte-256color Y
tmux "tmux" or "tmux-256color" Y (e.g. GNOME Terminal) (aliases: gnome, gnome-256color)
screen "screen" or "screen-256color" Y tmux tmux, tmux-256color Y
PuTTY "putty" or "putty-256color" Y screen screen, screen-256color Y
Terminal.app "nsterm" N PuTTY putty, putty-256color Y
Linux virtual terminal "linux" or "linux-256color" Y Terminal.app nsterm N
Linux virtual terminal linux, linux-256color Y
*builtin-terms* *builtin_terms* *builtin-terms* *builtin_terms*
If a |terminfo| database is not available, or no entry for the terminal type is If a |terminfo| database is not available, or no entry for the terminal type is

View File

@ -104,7 +104,9 @@ unibi_term *load_builtin_terminfo(const char * term)
return unibi_from_mem((const char *)interix_8colour_terminfo, return unibi_from_mem((const char *)interix_8colour_terminfo,
sizeof interix_8colour_terminfo); sizeof interix_8colour_terminfo);
} else if (terminfo_is_term_family(term, "iterm") } else if (terminfo_is_term_family(term, "iterm")
|| terminfo_is_term_family(term, "iTerm.app")) { || terminfo_is_term_family(term, "iterm2")
|| terminfo_is_term_family(term, "iTerm.app")
|| terminfo_is_term_family(term, "iTerm2.app")) {
return unibi_from_mem((const char *)iterm_256colour_terminfo, return unibi_from_mem((const char *)iterm_256colour_terminfo,
sizeof iterm_256colour_terminfo); sizeof iterm_256colour_terminfo);
} else if (terminfo_is_term_family(term, "st")) { } else if (terminfo_is_term_family(term, "st")) {

View File

@ -1263,7 +1263,9 @@ static void patch_terminfo_bugs(TUIData *data, const char *term,
bool gnome = terminfo_is_term_family(term, "gnome") bool gnome = terminfo_is_term_family(term, "gnome")
|| terminfo_is_term_family(term, "vte"); || terminfo_is_term_family(term, "vte");
bool iterm = terminfo_is_term_family(term, "iterm") bool iterm = terminfo_is_term_family(term, "iterm")
|| terminfo_is_term_family(term, "iTerm.app"); || terminfo_is_term_family(term, "iterm2")
|| terminfo_is_term_family(term, "iTerm.app")
|| terminfo_is_term_family(term, "iTerm2.app");
// None of the following work over SSH; see :help TERM . // None of the following work over SSH; see :help TERM .
bool iterm_pretending_xterm = xterm && iterm_env; bool iterm_pretending_xterm = xterm && iterm_env;
bool konsole_pretending_xterm = xterm && konsole; bool konsole_pretending_xterm = xterm && konsole;
@ -1535,7 +1537,9 @@ static void augment_terminfo(TUIData *data, const char *term,
bool screen = terminfo_is_term_family(term, "screen"); bool screen = terminfo_is_term_family(term, "screen");
bool tmux = terminfo_is_term_family(term, "tmux") || !!os_getenv("TMUX"); bool tmux = terminfo_is_term_family(term, "tmux") || !!os_getenv("TMUX");
bool iterm = terminfo_is_term_family(term, "iterm") bool iterm = terminfo_is_term_family(term, "iterm")
|| terminfo_is_term_family(term, "iTerm.app"); || terminfo_is_term_family(term, "iterm2")
|| terminfo_is_term_family(term, "iTerm.app")
|| terminfo_is_term_family(term, "iTerm2.app");
// None of the following work over SSH; see :help TERM . // None of the following work over SSH; see :help TERM .
bool iterm_pretending_xterm = xterm && iterm_env; bool iterm_pretending_xterm = xterm && iterm_env;