diff options
author | Bram Moolenaar <Bram@vim.org> | 2015-11-19 19:55:16 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2015-11-19 19:55:16 +0100 |
commit | 5d8afebb5bf7fb1e8ce06062451dc6a1f9a53ac0 (patch) | |
tree | 18c1c558bcae47c09b1e13dde657689c13bd57eb | |
parent | 9b1067e038d371bd6c51e5da025383761f4921b4 (diff) |
patch 7.4.928v7.4.928
Problem: A clientserver message interrupts handling keys of a mapping.
Solution: Have mch_inchar() send control back to WaitForChar when it is
interrupted by server message. (James Kolb)
-rw-r--r-- | src/os_unix.c | 10 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/os_unix.c b/src/os_unix.c index 8f059be8fe..314a906d61 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -401,9 +401,15 @@ mch_inchar(buf, maxlen, wtime, tb_change_cnt) { while (WaitForChar(wtime) == 0) /* no character available */ { - if (!do_resize) /* return if not interrupted by resize */ + if (do_resize) + handle_resize(); +#ifdef FEAT_CLIENTSERVER + else if (!server_waiting()) +#else + else +#endif + /* return if not interrupted by resize or server */ return 0; - handle_resize(); #ifdef MESSAGE_QUEUE parse_queued_messages(); #endif diff --git a/src/version.c b/src/version.c index feda1de767..77a2564481 100644 --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 928, +/**/ 927, /**/ 926, |