Mercurial > vim
diff src/os_unix.c @ 14673:f1b7d308de2f v8.1.0349
patch 8.1.0349: crash when wiping buffer in a callback
commit https://github.com/vim/vim/commit/ed5a9d661248a2160368f1b0ab3a1bf74831db04
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Sep 6 13:14:43 2018 +0200
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().
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 06 Sep 2018 13:15:05 +0200 |
parents | 2c9a467c82fa |
children | cf33c47d66aa |
line wrap: on
line diff
--- a/src/os_unix.c +++ b/src/os_unix.c @@ -417,10 +417,14 @@ mch_inchar( 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 */