Patch 8.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.
Files: src/edit.c, src/getchar.c,
*** ../vim-8.2.0369/src/edit.c 2020-01-20 21:12:16.503205709 +0100
--- src/edit.c 2020-03-11 12:44:34.143198482 +0100
***************
*** 1612,1617 ****
--- 1612,1621 ----
// 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]);
*** ../vim-8.2.0369/src/getchar.c 2020-03-04 23:21:32.273078877 +0100
--- src/getchar.c 2020-03-11 12:46:27.234541447 +0100
***************
*** 421,426 ****
--- 421,430 ----
// 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,1288 ****
--- 1287,1295 ----
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;
}
*** ../vim-8.2.0369/src/version.c 2020-03-10 07:48:06.575619533 +0100
--- src/version.c 2020-03-11 13:00:33.529782466 +0100
***************
*** 740,741 ****
--- 740,743 ----
{ /* Add new patch number below this line */
+ /**/
+ 370,
/**/
--
hundred-and-one symptoms of being an internet addict:
224. You set up your own Web page. You set up a Web page for each
of your kids... and your pets.
/// Bram Moolenaar -- Br...@Moolenaar.net --
http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features --
http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language --
http://www.Zimbu.org ///
\\\ help me help AIDS victims --
http://ICCF-Holland.org ///