summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-04-29 16:44:00 +0100
committerBram Moolenaar <Bram@vim.org>2022-04-29 16:44:00 +0100
commitbad8a013c238595aa206690210eb1367fbc878f9 (patch)
treeacbb3312539ea808a8fceaab70125bb817a745ac
parent590f365f91511c164253c5b5812d4d0fc4a238d6 (diff)
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.txt1
-rw-r--r--src/edit.c8
-rw-r--r--src/getchar.c2
-rw-r--r--src/testdir/test_gui.vim4
-rw-r--r--src/version.c2
5 files changed, 14 insertions, 3 deletions
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index 2ef09fa5b8..8b491345aa 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 3790bfb5d6..61c1694836 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 6d8697c376..2b1bbde4b0 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 96723b668e..993954b5a1 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 dc2c1ff3f1..eddc6c96a3 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,