0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 8.0.1303: 'ttymouse' is not set to "sgr" for Terminal.app and Iterm2

Problem:    'ttymouse' is not set to "sgr" for Terminal.app and Iterm2.
Solution:   Recognize Iterm2 by the termresponse.
This commit is contained in:
Bram Moolenaar
2017-11-16 22:07:13 +01:00
parent 209d3874c1
commit 9c6ce0e622
2 changed files with 23 additions and 9 deletions

View File

@@ -4546,6 +4546,9 @@ check_termcode(
if (tp[1 + (tp[0] != CSI)] == '>' && semicols == 2) if (tp[1 + (tp[0] != CSI)] == '>' && semicols == 2)
{ {
int need_flush = FALSE; int need_flush = FALSE;
# ifdef FEAT_MOUSE_SGR
int is_iterm2 = FALSE;
# endif
/* if xterm version >= 141 try to get termcap codes */ /* if xterm version >= 141 try to get termcap codes */
if (version >= 141) if (version >= 141)
@@ -4573,12 +4576,29 @@ check_termcode(
# endif # endif
} }
if (version == 95)
{
/* Mac Terminal.app sends 1;95;0 */
if (STRNCMP(tp + extra - 2, "1;95;0c", 7) == 0)
{
is_not_xterm = TRUE;
is_mac_terminal = TRUE;
}
# ifdef FEAT_MOUSE_SGR
/* Iterm2 sends 0;95;0 */
if (STRNCMP(tp + extra - 2, "0;95;0c", 7) == 0)
is_iterm2 = TRUE;
# endif
}
/* Only set 'ttymouse' automatically if it was not set /* Only set 'ttymouse' automatically if it was not set
* by the user already. */ * by the user already. */
if (!option_was_set((char_u *)"ttym")) if (!option_was_set((char_u *)"ttym"))
{ {
# ifdef FEAT_MOUSE_SGR # ifdef FEAT_MOUSE_SGR
if (version >= 277) /* Xterm version 277 supports SGR. Also support
* Terminal.app and iterm2. */
if (version >= 277 || is_iterm2 || is_mac_terminal)
set_option_value((char_u *)"ttym", 0L, set_option_value((char_u *)"ttym", 0L,
(char_u *)"sgr", 0); (char_u *)"sgr", 0);
else else
@@ -4593,14 +4613,6 @@ check_termcode(
* "xterm-256colors" but are not fully xterm * "xterm-256colors" but are not fully xterm
* compatible. */ * compatible. */
/* Mac Terminal.app sends 1;95;0 */
if (version == 95
&& STRNCMP(tp + extra - 2, "1;95;0c", 7) == 0)
{
is_not_xterm = TRUE;
is_mac_terminal = TRUE;
}
/* Gnome terminal sends 1;3801;0, 1;4402;0 or 1;2501;0. /* Gnome terminal sends 1;3801;0, 1;4402;0 or 1;2501;0.
* xfce4-terminal sends 1;2802;0. * xfce4-terminal sends 1;2802;0.
* screen sends 83;40500;0 * screen sends 83;40500;0

View File

@@ -766,6 +766,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1303,
/**/ /**/
1302, 1302,
/**/ /**/