neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 7df25a1372fde01d9498ddef349a0b7851045cc7
parent 9a1920e2238f8dcde3e923cf67dae2a46a4d40df
Author: zeertzjq <zeertzjq@outlook.com>
Date:   Sat, 30 Apr 2022 07:04:53 +0800

Merge pull request #18309 from zeertzjq/vim-8.2.4845

vim-patch:8.2.{4844,4845,4846}
Diffstat:
Msrc/nvim/state.c | 15+++++----------
Mtest/functional/ex_cmds/cmd_map_spec.lua | 6++++++
2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/src/nvim/state.c b/src/nvim/state.c @@ -187,22 +187,17 @@ void get_mode(char *buf) if (State & VREPLACE_FLAG) { buf[i++] = 'R'; buf[i++] = 'v'; - if (ins_compl_active()) { - buf[i++] = 'c'; - } else if (ctrl_x_mode_not_defined_yet()) { - buf[i++] = 'x'; - } } else { if (State & REPLACE_FLAG) { buf[i++] = 'R'; } else { buf[i++] = 'i'; } - if (ins_compl_active()) { - buf[i++] = 'c'; - } else if (ctrl_x_mode_not_defined_yet()) { - buf[i++] = 'x'; - } + } + if (ins_compl_active()) { + buf[i++] = 'c'; + } else if (ctrl_x_mode_not_defined_yet()) { + buf[i++] = 'x'; } } else if ((State & CMDLINE) || exmode_active) { buf[i++] = 'c'; diff --git a/test/functional/ex_cmds/cmd_map_spec.lua b/test/functional/ex_cmds/cmd_map_spec.lua @@ -136,6 +136,12 @@ describe('mappings with <Cmd>', function() ]]) end) + it('handles character containing K_SPECIAL (0x80) byte correctly', function() + command([[noremap <F3> <Cmd>let g:str = '‥'<CR>]]) + feed('<F3>') + eq('‥', eval('g:str')) + end) + it('works in various modes and sees correct `mode()` value', function() -- normal mode feed('<F3>')