patch 8.2.0370: the typebuf_was_filled flag is sometimes not reset
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.
diff --git a/src/getchar.c b/src/getchar.c
index 7df4bce..6b1068d 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -421,6 +421,10 @@
// 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 @@
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;
}