summaryrefslogtreecommitdiffstats
path: root/src/getchar.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-03-04 19:22:36 +0000
committerBram Moolenaar <Bram@vim.org>2022-03-04 19:22:36 +0000
commit196c3850dbe95247f7aa1b0000a5cae625a99ef2 (patch)
tree31b90ae051e63ba144486d65863f4de2ca941f44 /src/getchar.c
parent6aca4d3c2bb6b60cdf51b2ab49fbec6b8f88c890 (diff)
patch 8.2.4504: when there is a partially matching map full map may not workv8.2.4504
Problem: When there is a partially matching map and modifyOtherKeys is active a full map may not work. Solution: Only simplify modifiers when there is no matching mapping. (closes #8792)
Diffstat (limited to 'src/getchar.c')
-rw-r--r--src/getchar.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/getchar.c b/src/getchar.c
index 2fbbd4f6e1..03d6d4d96d 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -2598,7 +2598,7 @@ handle_mapping(
}
// If no partly match found, use the longest full match.
- if (keylen != KEYLEN_PART_MAP)
+ if (keylen != KEYLEN_PART_MAP && mp_match != NULL)
{
mp = mp_match;
keylen = mp_match_len;
@@ -2643,7 +2643,7 @@ handle_mapping(
max_mlen = mlen + 1;
}
- if ((mp == NULL || max_mlen >= mp_match_len) && keylen != KEYLEN_PART_MAP)
+ if ((mp == NULL || max_mlen > mp_match_len) && keylen != KEYLEN_PART_MAP)
{
int save_keylen = keylen;