changeset 12853:b2a8d6ef578b v8.0.1303

patch 8.0.1303: 'ttymouse' is not set to "sgr" for Terminal.app and Iterm2 commit https://github.com/vim/vim/commit/9c6ce0e62297294b41344e684429a91853bc2268 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Nov 16 22:07:13 2017 +0100 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.
author Christian Brabandt <cb@256bit.org>
date Thu, 16 Nov 2017 22:15:05 +0100
parents 32132969394a
children aea77fb82d7a
files src/term.c src/version.c
diffstat 2 files changed, 23 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- 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
--- a/src/version.c
+++ b/src/version.c
@@ -767,6 +767,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1303,
+/**/
     1302,
 /**/
     1301,