From 9c6ce0e62297294b41344e684429a91853bc2268 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 16 Nov 2017 22:07:13 +0100 Subject: 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. --- src/term.c | 30 +++++++++++++++++++++--------- src/version.c | 2 ++ 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/term.c b/src/term.c index ef88705ff..83b54e18c 100644 --- a/src/term.c +++ b/src/term.c @@ -4546,6 +4546,9 @@ check_termcode( if (tp[1 + (tp[0] != CSI)] == '>' && semicols == 2) { int need_flush = FALSE; +# ifdef FEAT_MOUSE_SGR + int is_iterm2 = FALSE; +# endif /* if xterm version >= 141 try to get termcap codes */ if (version >= 141) @@ -4573,12 +4576,29 @@ check_termcode( # 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 * by the user already. */ if (!option_was_set((char_u *)"ttym")) { # 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, (char_u *)"sgr", 0); else @@ -4593,14 +4613,6 @@ check_termcode( * "xterm-256colors" but are not fully xterm * 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. * xfce4-terminal sends 1;2802;0. * screen sends 83;40500;0 diff --git a/src/version.c b/src/version.c index e38c18820..2789f2bde 100644 --- a/src/version.c +++ b/src/version.c @@ -766,6 +766,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1303, /**/ 1302, /**/ -- cgit v1.2.1