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:
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>')