patch 8.1.0349: crash when wiping buffer in a callback
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().
diff --git a/src/os_unix.c b/src/os_unix.c
index 9966221..f330426 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -417,10 +417,14 @@
handle_resize();
#ifdef MESSAGE_QUEUE
- parse_queued_messages();
- /* If input was put directly in typeahead buffer bail out here. */
- if (typebuf_changed(tb_change_cnt))
- return 0;
+ // Only process messages when waiting.
+ if (wtime != 0)
+ {
+ parse_queued_messages();
+ // If input was put directly in typeahead buffer bail out here.
+ if (typebuf_changed(tb_change_cnt))
+ return 0;
+ }
#endif
if (wtime < 0 && did_start_blocking)
/* blocking and already waited for p_ut */