diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-03-04 14:51:06 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-03-04 14:51:06 +0000 |
commit | d979d64fa269ff47a96fc6aed2f4cdd066753c0c (patch) | |
tree | 1d8b94bce692199f62b828fce7733e4a0e65ca7a | |
parent | 21efafe4c25373929979c72dc8aafa119f12dd8b (diff) | |
download | vim-git-d979d64fa269ff47a96fc6aed2f4cdd066753c0c.tar.gz |
patch 8.2.4502: in the GUI a modifier is not recognized after CTRL-Xv8.2.4502
Problem: In the GUI a modifier is not recognized for the key typed after
CTRL-X, which may result in a mapping to be used. (Daniel
Steinberg)
Solution: Recognize a modifier starting with CSI. (closes #9889)
-rw-r--r-- | src/getchar.c | 2 | ||||
-rw-r--r-- | src/testdir/test_ins_complete.vim | 13 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 15 insertions, 2 deletions
diff --git a/src/getchar.c b/src/getchar.c index 9939bbdbc..2fbbd4f6e 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -2331,7 +2331,7 @@ at_ctrl_x_key(void) int c = *p; if (typebuf.tb_len > 3 - && c == K_SPECIAL + && (c == K_SPECIAL || c == CSI) // CSI is used by the GUI && p[1] == KS_MODIFIER && (p[2] & MOD_MASK_CTRL)) c = p[3] & 0x1f; diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim index 033bb37f1..3712abe69 100644 --- a/src/testdir/test_ins_complete.vim +++ b/src/testdir/test_ins_complete.vim @@ -1294,7 +1294,18 @@ func Test_z1_complete_no_history() exe "normal owh\<C-X>\<C-K>" exe "normal owh\<C-N>" call assert_equal(currmess, execute('messages')) - close! + bwipe! +endfunc + +" A mapping is not used for the key after CTRL-X. +func Test_no_mapping_for_ctrl_x_key() + new + inoremap <C-K> <Cmd>let was_mapped = 'yes'<CR> + setlocal dictionary=README.txt + call feedkeys("aexam\<C-X>\<C-K> ", 'xt') + call assert_equal('example ', getline(1)) + call assert_false(exists('was_mapped')) + bwipe! endfunc " Test for different ways of setting the 'completefunc' option diff --git a/src/version.c b/src/version.c index 18a0442ee..51dc6de62 100644 --- a/src/version.c +++ b/src/version.c @@ -755,6 +755,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4502, +/**/ 4501, /**/ 4500, |