diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-04-29 16:44:00 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-04-29 16:44:00 +0100 |
commit | bad8a013c238595aa206690210eb1367fbc878f9 (patch) | |
tree | acbb3312539ea808a8fceaab70125bb817a745ac | |
parent | 590f365f91511c164253c5b5812d4d0fc4a238d6 (diff) | |
download | vim-git-bad8a013c238595aa206690210eb1367fbc878f9.tar.gz |
patch 8.2.4846: termcodes test failsv8.2.4846
Problem: Termcodes test fails.
Solution: use CTRL-SHIFT-V to insert an unsimplified key. (closes #10316)
-rw-r--r-- | runtime/doc/cmdline.txt | 1 | ||||
-rw-r--r-- | src/edit.c | 8 | ||||
-rw-r--r-- | src/getchar.c | 2 | ||||
-rw-r--r-- | src/testdir/test_gui.vim | 4 | ||||
-rw-r--r-- | src/version.c | 2 |
5 files changed, 14 insertions, 3 deletions
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt index 2ef09fa5b..8b491345a 100644 --- a/runtime/doc/cmdline.txt +++ b/runtime/doc/cmdline.txt @@ -87,6 +87,7 @@ CTRL-Q Same as CTRL-V. But with some terminals it is used for CTRL-SHIFT-V *c_CTRL-SHIFT-V* *c_CTRL-SHIFT-Q* CTRL-SHIFT-Q Works just like CTRL-V, unless |modifyOtherKeys| is active, then it inserts the Escape sequence for a key with modifiers. + In the GUI the |key-notation| is inserted without simplifying. *c_<Left>* *c_Left* <Left> cursor left diff --git a/src/edit.c b/src/edit.c index 3790bfb5d..61c169483 100644 --- a/src/edit.c +++ b/src/edit.c @@ -1899,7 +1899,11 @@ get_literal(int noReduceKeys) * vi-compatible (maybe there should be an option for it?) -- webb */ if (gui.in_use) + { ++allow_keys; + if (noReduceKeys) + ++no_reduce_keys; + } #endif #ifdef USE_ON_FLY_SCROLL dont_scroll = TRUE; // disallow scrolling here @@ -1992,7 +1996,11 @@ get_literal(int noReduceKeys) --no_mapping; #ifdef FEAT_GUI if (gui.in_use) + { --allow_keys; + if (noReduceKeys) + --no_reduce_keys; + } #endif if (nc) { diff --git a/src/getchar.c b/src/getchar.c index 6d8697c37..2b1bbde4b 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -1634,7 +1634,7 @@ merge_modifyOtherKeys(int c_arg, int *modifiers) { int c = c_arg; - if ((*modifiers & MOD_MASK_CTRL) && !(*modifiers & MOD_MASK_SHIFT)) + if (*modifiers & MOD_MASK_CTRL) { if ((c >= '`' && c <= 0x7f) || (c >= '@' && c <= '_')) { diff --git a/src/testdir/test_gui.vim b/src/testdir/test_gui.vim index 96723b668..993954b5a 100644 --- a/src/testdir/test_gui.vim +++ b/src/testdir/test_gui.vim @@ -1560,8 +1560,8 @@ func Test_gui_findrepl() bw! endfunc -func Test_gui_CTRL_V() - call feedkeys(":let g:str = '\<C-V>\<*C-S-I>\<C-V>\<*C-S-@>'\<CR>", 'tx') +func Test_gui_CTRL_SHIFT_V() + call feedkeys(":let g:str = '\<*C-S-V>\<*C-S-I>\<*C-S-V>\<*C-S-@>'\<CR>", 'tx') call assert_equal('<C-S-I><C-S-@>', g:str) unlet g:str endfunc diff --git a/src/version.c b/src/version.c index dc2c1ff3f..eddc6c96a 100644 --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4846, +/**/ 4845, /**/ 4844, |