]> granicus.if.org Git - vim/commitdiff
patch 9.0.0943: pretending to go out of Insert mode when Esc is received v9.0.0943
authorBram Moolenaar <Bram@vim.org>
Thu, 24 Nov 2022 20:23:24 +0000 (20:23 +0000)
committerBram Moolenaar <Bram@vim.org>
Thu, 24 Nov 2022 20:23:24 +0000 (20:23 +0000)
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.

src/getchar.c
src/version.c

index fab721b6dafa3d833b686690575a6d82fd67bd52..1e03b86c32a3f33a950536174c54296043a22b0c 100644 (file)
@@ -3263,12 +3263,14 @@ vgetorpeek(int advance)
  * 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
-                * 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
                 * have to redisplay the mode. That the cursor is in the wrong
                 * 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;
                new_wcol = curwin->w_wcol;
@@ -3277,6 +3279,7 @@ vgetorpeek(int advance)
                        && typebuf.tb_len == 1
                        && typebuf.tb_buf[typebuf.tb_off] == ESC
                        && !no_mapping
+                       && kitty_protocol_state != KKPS_ENABLED
                        && ex_normal_busy == 0
                        && typebuf.tb_maplen == 0
                        && (State & MODE_INSERT)
index d86bf0abb4aa436550980a377642fbbce756bcc9..f602fe34728088e9c65ff38d321dcd0fc64f4dfe 100644 (file)
@@ -695,6 +695,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    943,
 /**/
     942,
 /**/