]> granicus.if.org Git - vim/commitdiff
patch 8.1.2135: with modifyOtherKeys Alt-a does not work properly v8.1.2135
authorBram Moolenaar <Bram@vim.org>
Thu, 10 Oct 2019 19:49:28 +0000 (21:49 +0200)
committerBram Moolenaar <Bram@vim.org>
Thu, 10 Oct 2019 19:49:28 +0000 (21:49 +0200)
Problem:    With modifyOtherKeys Alt-a does not work properly.
Solution:   Remove the ALT modifier.  Get multi-byte after applying ALT.

src/getchar.c
src/version.c

index ecd6bdcd044ff95faacd43a445044dd30dfe7081..0e4e3c31571baba7c3db8efaf16ad90c060f5048 100644 (file)
@@ -1733,25 +1733,6 @@ vgetc(void)
                case K_XRIGHT:  c = K_RIGHT; break;
            }
 
-           if (!no_reduce_keys)
-           {
-               // A modifier was not used for a mapping, apply it to ASCII
-               // keys.
-               if ((mod_mask & MOD_MASK_CTRL)
-                       && ((c >= '`' && c <= 0x7f)
-                           || (c >= '@' && c <= '_')))
-               {
-                   c &= 0x1f;
-                   mod_mask &= ~MOD_MASK_CTRL;
-               }
-               if ((mod_mask & (MOD_MASK_META | MOD_MASK_ALT))
-                       && c >= 0 && c <= 127)
-               {
-                   c += 0x80;
-                   mod_mask &= ~MOD_MASK_META;
-               }
-           }
-
            // For a multi-byte character get all the bytes and return the
            // converted character.
            // Note: This will loop until enough bytes are received!
@@ -1787,6 +1768,25 @@ vgetc(void)
                c = (*mb_ptr2char)(buf);
            }
 
+           if (!no_reduce_keys)
+           {
+               // A modifier was not used for a mapping, apply it to ASCII
+               // keys.
+               if ((mod_mask & MOD_MASK_CTRL)
+                       && ((c >= '`' && c <= 0x7f)
+                           || (c >= '@' && c <= '_')))
+               {
+                   c &= 0x1f;
+                   mod_mask &= ~MOD_MASK_CTRL;
+               }
+               if ((mod_mask & (MOD_MASK_META | MOD_MASK_ALT))
+                       && c >= 0 && c <= 127)
+               {
+                   c += 0x80;
+                   mod_mask &= ~(MOD_MASK_META|MOD_MASK_ALT);
+               }
+           }
+
            break;
        }
     }
index 7289c9bb6daac3f5fb11d27c9e52ec19bca45077..f22db55478de731f8558e5bab165e5223604913e 100644 (file)
@@ -753,6 +753,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2135,
 /**/
     2134,
 /**/