0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 9.0.0943: pretending to go out of Insert mode when Esc is received

Problem:    Pretending to go out of Insert mode when Esc is received has side
            effects.
Solution:   When the kitty keyboard protocol is enabled expect Esc to always
            be the start of an escape sequence.
This commit is contained in:
Bram Moolenaar 2022-11-24 20:23:24 +00:00
parent f60bdc3417
commit d330e8422d
2 changed files with 7 additions and 2 deletions

View File

@ -3263,12 +3263,14 @@ vgetorpeek(int advance)
* get a character: 3. from the user - handle <Esc> in Insert mode * get a character: 3. from the user - handle <Esc> in Insert mode
*/ */
/* /*
* Special case: if we get an <ESC> in insert mode and there * Special case: if we get an <ESC> in Insert mode and there
* are no more characters at once, we pretend to go out of * are no more characters at once, we pretend to go out of
* insert mode. This prevents the one second delay after * Insert mode. This prevents the one second delay after
* typing an <ESC>. If we get something after all, we may * typing an <ESC>. If we get something after all, we may
* have to redisplay the mode. That the cursor is in the wrong * have to redisplay the mode. That the cursor is in the wrong
* place does not matter. * place does not matter.
* Do not do this if the kitty keyboard protocol is used, every
* <ESC> is the start of an escape sequence then.
*/ */
c = 0; c = 0;
new_wcol = curwin->w_wcol; new_wcol = curwin->w_wcol;
@ -3277,6 +3279,7 @@ vgetorpeek(int advance)
&& typebuf.tb_len == 1 && typebuf.tb_len == 1
&& typebuf.tb_buf[typebuf.tb_off] == ESC && typebuf.tb_buf[typebuf.tb_off] == ESC
&& !no_mapping && !no_mapping
&& kitty_protocol_state != KKPS_ENABLED
&& ex_normal_busy == 0 && ex_normal_busy == 0
&& typebuf.tb_maplen == 0 && typebuf.tb_maplen == 0
&& (State & MODE_INSERT) && (State & MODE_INSERT)

View File

@ -695,6 +695,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 */
/**/
943,
/**/ /**/
942, 942,
/**/ /**/