Mercurial > vim
changeset 30934:a07193ed51cd v9.0.0801
patch 9.0.0801: the modifyOtherKeys flag is set when it should not
Commit: https://github.com/vim/vim/commit/7609c88eedc113bc80ccf74050b03a2e0c1a3c5e
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Oct 19 20:07:09 2022 +0100
patch 9.0.0801: the modifyOtherKeys flag is set when it should not
Problem: The modifyOtherKeys flag is set when it should not.
Solution: Do not handle special key codes with a modifer value above 16 as a
modifyOtherKeys value. (issue #11403)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 19 Oct 2022 21:15:03 +0200 |
parents | 208ea15f4c23 |
children | 464a04119e94 |
files | src/term.c src/version.c |
diffstat | 2 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/term.c +++ b/src/term.c @@ -5045,8 +5045,11 @@ handle_csi( // Key with modifier: // {lead}27;{modifier};{key}~ // {lead}{key};{modifier}u - else if ((arg[0] == 27 && argc == 3 && trail == '~') - || (argc == 2 && trail == 'u')) + // Only handles four modifiers, this won't work if the modifier value is + // more than 16. + else if (((arg[0] == 27 && argc == 3 && trail == '~') + || (argc == 2 && trail == 'u')) + && arg[1] <= 16) { return len + handle_key_with_modifier(arg, trail, csi_len, offset, buf, bufsize, buflen);