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:
30
src/term.c
30
src/term.c
@@ -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
|
||||||
|
@@ -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,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user