Mercurial > vim
changeset 20701:fbee68c6aab1 v8.2.0904
patch 8.2.0904: assuming modifyOtherKeys for rhs of mapping
Commit: https://github.com/vim/vim/commit/46cd43bda102c3782bba1c4c629836e010734d77
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Jun 4 22:22:11 2020 +0200
patch 8.2.0904: assuming modifyOtherKeys for rhs of mapping
Problem: Assuming modifyOtherKeys for rhs of mapping.
Solution: Ignore seenModifyOtherKeys for mapped characters. (closes https://github.com/vim/vim/issues/6200)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 04 Jun 2020 22:30:04 +0200 |
parents | f1f248c9b90d |
children | 1db8701ca6cb |
files | src/getchar.c src/testdir/test_gui.vim src/version.c |
diffstat | 3 files changed, 14 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/getchar.c +++ b/src/getchar.c @@ -2355,7 +2355,8 @@ handle_mapping( // Skip ":lmap" mappings if keys were mapped. if (mp->m_keys[0] == tb_c1 && (mp->m_mode & local_State) - && !(mp->m_simplified && seenModifyOtherKeys) + && !(mp->m_simplified && seenModifyOtherKeys + && typebuf.tb_maplen == 0) && ((mp->m_mode & LANGMAP) == 0 || typebuf.tb_maplen == 0)) { #ifdef FEAT_LANGMAP
--- a/src/testdir/test_gui.vim +++ b/src/testdir/test_gui.vim @@ -856,4 +856,14 @@ func Test_gui_run_cmd_in_terminal() let &guioptions = save_guioptions endfunc +func Test_gui_recursive_mapping() + nmap ' <C-W> + nmap <C-W>a :let didit = 1<CR> + call feedkeys("'a", 'xt') + call assert_equal(1, didit) + + nunmap ' + nunmap <C-W>a +endfunc + " vim: shiftwidth=2 sts=2 expandtab