patch 8.1.0367: getchar(1) no longer processes pending messages
Problem: getchar(1) no longer processes pending messages. (Yasuhiro
Matsumoto)
Solution: Call parse_queued_messages().
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 54e7dcd..19e2657 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -4680,6 +4680,13 @@
varnumber_T n;
int error = FALSE;
+#ifdef MESSAGE_QUEUE
+ // vpeekc() used to check for messages, but that caused problems, invoking
+ // a callback where it was not expected. Some plugins use getchar(1) in a
+ // loop to await a message, therefore make sure we check for messages here.
+ parse_queued_messages();
+#endif
+
/* Position the cursor. Needed after a message that ends in a space. */
windgoto(msg_row, msg_col);
diff --git a/src/version.c b/src/version.c
index 32f0d1d..3e86c40 100644
--- a/src/version.c
+++ b/src/version.c
@@ -795,6 +795,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 367,
+/**/
366,
/**/
365,