]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 8.2.0370: the typebuf_was_filled flag is sometimes not reset v8.2.0370
authorBram Moolenaar <Bram@vim.org>
Wed, 11 Mar 2020 12:01:40 +0000 (13:01 +0100)
committerBram Moolenaar <Bram@vim.org>
Wed, 11 Mar 2020 12:01:40 +0000 (13:01 +0100)
Problem:    The typebuf_was_filled flag is sometimes not reset, which may
            cause a hang.
Solution:   Make sure typebuf_was_filled is reset when the typeahead buffer is
            empty.

src/edit.c
src/getchar.c
src/version.c

index 70b8fee129067899a2bd25b285c16dcaaa841ddc..edd2374e8fb3d9d3e8c980bfacf17a95c3dd0848 100644 (file)
@@ -1612,6 +1612,10 @@ decodeModifyOtherKeys(int c)
            // Match, consume the code.
            typebuf.tb_off += idx + 1;
            typebuf.tb_len -= idx + 1;
+#if defined(FEAT_CLIENTSERVER) || defined(FEAT_EVAL)
+           if (typebuf.tb_len == 0)
+               typebuf_was_filled = FALSE;
+#endif
 
            mod_mask = decode_modifiers(arg[!form]);
            c = merge_modifyOtherKeys(arg[form]);
index 7df4bcebc9ba0656770aa28e050cd9c7957ecfb8..6b1068dda8583fcba123a6b60a591a618cdc1617 100644 (file)
@@ -421,6 +421,10 @@ flush_buffers(flush_buffers_T flush_typeahead)
        // remove mapped characters at the start only
        typebuf.tb_off += typebuf.tb_maplen;
        typebuf.tb_len -= typebuf.tb_maplen;
+#if defined(FEAT_CLIENTSERVER) || defined(FEAT_EVAL)
+       if (typebuf.tb_len == 0)
+           typebuf_was_filled = FALSE;
+#endif
     }
     else
     {
@@ -1283,6 +1287,9 @@ alloc_typebuf(void)
     typebuf.tb_no_abbr_cnt = 0;
     if (++typebuf.tb_change_cnt == 0)
        typebuf.tb_change_cnt = 1;
+#if defined(FEAT_CLIENTSERVER) || defined(FEAT_EVAL)
+    typebuf_was_filled = FALSE;
+#endif
     return OK;
 }
 
index 0efa4f73852d8dd68c6db2002626c60b18f3a999..34eb68fb253683617f07a7749f4b759977f59157 100644 (file)
@@ -738,6 +738,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    370,
 /**/
     369,
 /**/