]> granicus.if.org Git - vim/commitdiff
patch 8.1.2333: with modifyOtherKeys CTRL-^ doesn't work v8.1.2333
authorBram Moolenaar <Bram@vim.org>
Thu, 21 Nov 2019 22:24:00 +0000 (23:24 +0100)
committerBram Moolenaar <Bram@vim.org>
Thu, 21 Nov 2019 22:24:00 +0000 (23:24 +0100)
Problem:    With modifyOtherKeys CTRL-^ doesn't work.
Solution:   Handle the exception.

src/getchar.c
src/testdir/test_termcodes.vim
src/version.c

index 31843f64b134b33e3f2591883016ce28c3f3d9c6..475ee7efe726064cb93f3b23ed8e95e9489d2392 100644 (file)
@@ -1768,12 +1768,19 @@ vgetc(void)
            {
                // A modifier was not used for a mapping, apply it to ASCII
                // keys.  Shift would already have been applied.
-               if ((mod_mask & MOD_MASK_CTRL)
-                       && ((c >= '`' && c <= 0x7f)
-                           || (c >= '@' && c <= '_')))
+               if (mod_mask & MOD_MASK_CTRL)
                {
-                   c &= 0x1f;
-                   mod_mask &= ~MOD_MASK_CTRL;
+                   if ((c >= '`' && c <= 0x7f) || (c >= '@' && c <= '_'))
+                   {
+                       c &= 0x1f;
+                       mod_mask &= ~MOD_MASK_CTRL;
+                   }
+                   else if (c == '6')
+                   {
+                       // CTRL-6 is equivalent to CTRL-^
+                       c = 0x1e;
+                       mod_mask &= ~MOD_MASK_CTRL;
+                   }
                }
                if ((mod_mask & (MOD_MASK_META | MOD_MASK_ALT))
                        && c >= 0 && c <= 127)
index 6f8c8c074f580e91681e75b773dfdcb606d199cd..2678dae29208336294070838a0ce62f6ce725a49 100644 (file)
@@ -1192,6 +1192,14 @@ func RunTest_modifyOtherKeys(func)
   call feedkeys('a' .. a:func('X', 9) .. "\<Esc>", 'Lx!')
   call assert_equal("Ø", getline(1))
 
+  " Ctrl-6 is Ctrl-^
+  split aaa
+  edit bbb
+  call feedkeys(a:func('6', 5), 'Lx!')
+  call assert_equal("aaa", bufname())
+  bwipe aaa
+  bwipe bbb
+
   bwipe!
   set timeoutlen&
 endfunc
index 0fa2f7d8520d49629f6efa37598379d6ff703e12..903734998da418c21daa99d79e5951fb97b5f299 100644 (file)
@@ -737,6 +737,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2333,
 /**/
     2332,
 /**/