]> granicus.if.org Git - vim/commitdiff
patch 8.0.1303: 'ttymouse' is not set to "sgr" for Terminal.app and Iterm2 v8.0.1303
authorBram Moolenaar <Bram@vim.org>
Thu, 16 Nov 2017 21:07:13 +0000 (22:07 +0100)
committerBram Moolenaar <Bram@vim.org>
Thu, 16 Nov 2017 21:07:13 +0000 (22:07 +0100)
Problem:    'ttymouse' is not set to "sgr" for Terminal.app and Iterm2.
Solution:   Recognize Iterm2 by the termresponse.

src/term.c
src/version.c

index ef88705ffdef6376546d4df6c306d830c7ebd156..83b54e18ce9e907ee9403f2859a0a484084efc5f 100644 (file)
@@ -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
index e38c188209494f5d18d9f40aa2210bed48d9a07c..2789f2bde4918d3d0ccda1bc4ef9e648269d9134 100644 (file)
@@ -766,6 +766,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1303,
 /**/
     1302,
 /**/