vim-patch:partial:8.1.2333: with modifyOtherKeys CTRL-^ doesn't work (#18048)

Problem:    With modifyOtherKeys CTRL-^ doesn't work.
Solution:   Handle the exception.
828ffd5963
This commit is contained in:
zeertzjq 2022-04-09 13:31:42 +08:00 committed by GitHub
parent 012c055804
commit fda9adab5d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 5 deletions

View File

@ -1590,11 +1590,19 @@ int vgetc(void)
c = utf_ptr2char(buf);
}
if ((mod_mask & MOD_MASK_CTRL) && (c >= '?' && c <= '_')) {
c = Ctrl_chr(c);
mod_mask &= ~MOD_MASK_CTRL;
if (c == 0) { // <C-@> is <Nul>
c = K_ZERO;
// A modifier was not used for a mapping, apply it to ASCII
// keys. Shift would already have been applied.
if (mod_mask & MOD_MASK_CTRL) {
if ((c >= '`' && c <= 0x7f) || (c >= '@' && c <= '_')) {
c &= 0x1f;
mod_mask &= ~MOD_MASK_CTRL;
if (c == 0) {
c = K_ZERO;
}
} else if (c == '6') {
// CTRL-6 is equivalent to CTRL-^
c = 0x1e;
mod_mask &= ~MOD_MASK_CTRL;
}
}

View File

@ -7,6 +7,7 @@ local curbuf_contents = helpers.curbuf_contents
local meths = helpers.meths
local exec_lua = helpers.exec_lua
local write_file = helpers.write_file
local funcs = helpers.funcs
local Screen = require('test.functional.ui.screen')
before_each(clear)
@ -204,6 +205,13 @@ describe('input pairs', function()
end)
end)
it('Ctrl-6 is Ctrl-^ vim-patch:8.1.2333', function()
command('split aaa')
command('edit bbb')
feed('<C-6>')
eq('aaa', funcs.bufname())
end)
describe('input non-printable chars', function()
after_each(function()
os.remove('Xtest-overwrite')