aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-04-30 07:04:53 +0800
committerGitHub <noreply@github.com>2022-04-30 07:04:53 +0800
commit7df25a1372fde01d9498ddef349a0b7851045cc7 (patch)
tree82817b8be4cfdf4dbd3cf929ed58b634c090f72f
parent9a1920e2238f8dcde3e923cf67dae2a46a4d40df (diff)
parent1f72e315503fbaa802270bbad0650c73ef39e3e2 (diff)
downloadrneovim-7df25a1372fde01d9498ddef349a0b7851045cc7.tar.gz
rneovim-7df25a1372fde01d9498ddef349a0b7851045cc7.tar.bz2
rneovim-7df25a1372fde01d9498ddef349a0b7851045cc7.zip
Merge pull request #18309 from zeertzjq/vim-8.2.4845
vim-patch:8.2.{4844,4845,4846}
-rw-r--r--src/nvim/state.c15
-rw-r--r--test/functional/ex_cmds/cmd_map_spec.lua6
2 files changed, 11 insertions, 10 deletions
diff --git a/src/nvim/state.c b/src/nvim/state.c
index 056828574f..6f4bab62d1 100644
--- 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
index dbbfadabd8..42e97757db 100644
--- 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>')