mirror of
https://github.com/vim/vim.git
synced 2025-10-16 07:24:23 -04:00
patch 9.1.1853: Ctrl-F and Ctrl-B at more prompt not working with key protocol
Problem: Ctrl-F and Ctrl-B at more prompt not working with kitty keyboard protocol or modifyOtherKeys (after v9.1.1849). Solution: Call merge_modifyOtherKeys() in get_keystroke() (zeertzjq). closes: #18558 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
a55dc8c57c
commit
6622dc2ded
@@ -871,6 +871,7 @@ get_keystroke(void)
|
|||||||
int save_mapped_ctrl_c = mapped_ctrl_c;
|
int save_mapped_ctrl_c = mapped_ctrl_c;
|
||||||
int waited = 0;
|
int waited = 0;
|
||||||
|
|
||||||
|
mod_mask = 0;
|
||||||
mapped_ctrl_c = FALSE; // mappings are not used here
|
mapped_ctrl_c = FALSE; // mappings are not used here
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
@@ -974,7 +975,7 @@ get_keystroke(void)
|
|||||||
vim_free(buf);
|
vim_free(buf);
|
||||||
|
|
||||||
mapped_ctrl_c = save_mapped_ctrl_c;
|
mapped_ctrl_c = save_mapped_ctrl_c;
|
||||||
return n;
|
return merge_modifyOtherKeys(n, &mod_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
// For overflow detection, add a digit safely to an int value.
|
// For overflow detection, add a digit safely to an int value.
|
||||||
|
@@ -209,6 +209,7 @@ func Test_message_more()
|
|||||||
CheckRunVimInTerminal
|
CheckRunVimInTerminal
|
||||||
|
|
||||||
let buf = RunVimInTerminal('', {'rows': 6})
|
let buf = RunVimInTerminal('', {'rows': 6})
|
||||||
|
let chan = buf->term_getjob()->job_getchannel()
|
||||||
call term_sendkeys(buf, ":call setline(1, range(1, 100))\n")
|
call term_sendkeys(buf, ":call setline(1, range(1, 100))\n")
|
||||||
|
|
||||||
call term_sendkeys(buf, ":%pfoo\<C-H>\<C-H>\<C-H>#")
|
call term_sendkeys(buf, ":%pfoo\<C-H>\<C-H>\<C-H>#")
|
||||||
@@ -272,6 +273,19 @@ func Test_message_more()
|
|||||||
call term_sendkeys(buf, 'u')
|
call term_sendkeys(buf, 'u')
|
||||||
call WaitForAssert({-> assert_equal(' 79 79', term_getline(buf, 5))})
|
call WaitForAssert({-> assert_equal(' 79 79', term_getline(buf, 5))})
|
||||||
|
|
||||||
|
" Test <C-F> and <C-B> with different keyboard protocols.
|
||||||
|
for [ctrl_f, ctrl_b] in [
|
||||||
|
\ [GetEscCodeCSI27('f', 5), GetEscCodeCSI27('b', 5)],
|
||||||
|
\ [GetEscCodeCSI27('F', 5), GetEscCodeCSI27('B', 5)],
|
||||||
|
\ [GetEscCodeCSIu('f', 5), GetEscCodeCSIu('b', 5)],
|
||||||
|
\ [GetEscCodeCSIu('F', 5), GetEscCodeCSIu('B', 5)],
|
||||||
|
\ ]
|
||||||
|
call ch_sendraw(chan, ctrl_f)
|
||||||
|
call WaitForAssert({-> assert_equal(' 84 84', term_getline(buf, 5))})
|
||||||
|
call ch_sendraw(chan, ctrl_b)
|
||||||
|
call WaitForAssert({-> assert_equal(' 79 79', term_getline(buf, 5))})
|
||||||
|
endfor
|
||||||
|
|
||||||
" Up all the way with 'g'.
|
" Up all the way with 'g'.
|
||||||
call term_sendkeys(buf, 'g')
|
call term_sendkeys(buf, 'g')
|
||||||
call WaitForAssert({-> assert_equal(' 4 4', term_getline(buf, 5))})
|
call WaitForAssert({-> assert_equal(' 4 4', term_getline(buf, 5))})
|
||||||
@@ -285,6 +299,7 @@ func Test_message_more()
|
|||||||
call WaitForAssert({-> assert_equal('Press ENTER or type command to continue', term_getline(buf, 6))})
|
call WaitForAssert({-> assert_equal('Press ENTER or type command to continue', term_getline(buf, 6))})
|
||||||
call term_sendkeys(buf, 'f')
|
call term_sendkeys(buf, 'f')
|
||||||
call WaitForAssert({-> assert_equal('100 100', term_getline(buf, 5))})
|
call WaitForAssert({-> assert_equal('100 100', term_getline(buf, 5))})
|
||||||
|
call WaitForAssert({-> assert_equal('Press ENTER or type command to continue', term_getline(buf, 6))})
|
||||||
call term_sendkeys(buf, "\<C-F>")
|
call term_sendkeys(buf, "\<C-F>")
|
||||||
call WaitForAssert({-> assert_equal('100 100', term_getline(buf, 5))})
|
call WaitForAssert({-> assert_equal('100 100', term_getline(buf, 5))})
|
||||||
call WaitForAssert({-> assert_equal('Press ENTER or type command to continue', term_getline(buf, 6))})
|
call WaitForAssert({-> assert_equal('Press ENTER or type command to continue', term_getline(buf, 6))})
|
||||||
|
@@ -729,6 +729,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1853,
|
||||||
/**/
|
/**/
|
||||||
1852,
|
1852,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user