aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/keymap.c3
-rw-r--r--test/functional/ui/input_spec.lua4
2 files changed, 6 insertions, 1 deletions
diff --git a/src/nvim/keymap.c b/src/nvim/keymap.c
index b53a0d3e0b..517274a1d3 100644
--- a/src/nvim/keymap.c
+++ b/src/nvim/keymap.c
@@ -712,7 +712,8 @@ static int extract_modifiers(int key, int *modp)
{
int modifiers = *modp;
- if (!(modifiers & MOD_MASK_CMD)) { // Command-key is special
+ // Command-key and ctrl are special
+ if (!(modifiers & MOD_MASK_CMD) && !(modifiers & MOD_MASK_CTRL)) {
if ((modifiers & MOD_MASK_SHIFT) && ASCII_ISALPHA(key)) {
key = TOUPPER_ASC(key);
modifiers &= ~MOD_MASK_SHIFT;
diff --git a/test/functional/ui/input_spec.lua b/test/functional/ui/input_spec.lua
index 12d0e4f40b..9313a35708 100644
--- a/test/functional/ui/input_spec.lua
+++ b/test/functional/ui/input_spec.lua
@@ -23,6 +23,8 @@ describe('mappings', function()
before_each(function()
clear()
cid = nvim('get_api_info')[1]
+ add_mapping('<C-L>', '<C-L>')
+ add_mapping('<C-S-L>', '<C-S-L>')
add_mapping('<s-up>', '<s-up>')
add_mapping('<s-up>', '<s-up>')
add_mapping('<c-s-up>', '<c-s-up>')
@@ -51,6 +53,8 @@ describe('mappings', function()
end)
it('ok', function()
+ check_mapping('<C-L>', '<C-L>')
+ check_mapping('<C-S-L>', '<C-S-L>')
check_mapping('<s-up>', '<s-up>')
check_mapping('<c-s-up>', '<c-s-up>')
check_mapping('<s-c-up>', '<c-s-up>')