summaryrefslogtreecommitdiff
path: root/src/os_win32.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-09-06 13:14:43 +0200
committerBram Moolenaar <Bram@vim.org>2018-09-06 13:14:43 +0200
commited5a9d661248a2160368f1b0ab3a1bf74831db04 (patch)
treeff7d3eea0f440ae83569fa5f84a4b9a3c831ccc1 /src/os_win32.c
parente67a7d690a53690eb3c99a1ca7a199e8da159146 (diff)
downloadvim-git-ed5a9d661248a2160368f1b0ab3a1bf74831db04.tar.gz
patch 8.1.0349: crash when wiping buffer in a callbackv8.1.0349
Problem: Crash when wiping buffer in a callback. Solution: Do not handle messages when only peeking for a character. (closes #2107) Add "redraw_flag" to test_override().
Diffstat (limited to 'src/os_win32.c')
-rw-r--r--src/os_win32.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/os_win32.c b/src/os_win32.c
index 02bcaaede..9d36dec4a 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -1529,15 +1529,19 @@ WaitForChar(long msec, int ignore_input)
*/
for (;;)
{
+ // Only process messages when waiting.
+ if (msec != 0)
+ {
#ifdef MESSAGE_QUEUE
- parse_queued_messages();
+ parse_queued_messages();
#endif
#ifdef FEAT_MZSCHEME
- mzvim_check_threads();
+ mzvim_check_threads();
#endif
#ifdef FEAT_CLIENTSERVER
- serverProcessPendingMessages();
+ serverProcessPendingMessages();
#endif
+ }
if (0
#ifdef FEAT_MOUSE