diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-03-11 13:01:40 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-03-11 13:01:40 +0100 |
commit | e49b4bb89505fad28cf89f0891aef3e2d397919e (patch) | |
tree | d2495b040684048ef257f112bf84e32aa7d867ce /src/getchar.c | |
parent | 1671f4488105ee12a6a8558ae351436c26ab55fc (diff) | |
download | vim-git-e49b4bb89505fad28cf89f0891aef3e2d397919e.tar.gz |
patch 8.2.0370: the typebuf_was_filled flag is sometimes not resetv8.2.0370
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.
Diffstat (limited to 'src/getchar.c')
-rw-r--r-- | src/getchar.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/getchar.c b/src/getchar.c index 7df4bcebc..6b1068dda 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -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; } |