mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
fix(getchar): flush screen before doing a blocking wait
This commit is contained in:
parent
95b8e2c55f
commit
b47f313151
@ -2722,6 +2722,8 @@ static void getchar_common(typval_T *argvars, typval_T *rettv)
|
||||
// getchar(): blocking wait.
|
||||
// TODO(bfredl): deduplicate shared logic with state_enter ?
|
||||
if (!char_avail()) {
|
||||
// flush output before waiting
|
||||
ui_flush();
|
||||
(void)os_inchar(NULL, 0, -1, 0, main_loop.events);
|
||||
if (!multiqueue_empty(main_loop.events)) {
|
||||
state_handle_k_event();
|
||||
|
@ -1243,6 +1243,19 @@ vimComment xxx match /\s"[^\-:.%#=*].*$/ms=s+1,lc=1 excludenl contains=@vim
|
||||
|
|
||||
]])
|
||||
end)
|
||||
|
||||
it('echo messages are shown correctly when getchar() immediately follows', function()
|
||||
feed([[:echo 'foo' | echo 'bar' | call getchar()<CR>]])
|
||||
screen:expect([[
|
||||
|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{3: }|
|
||||
foo |
|
||||
bar^ |
|
||||
]])
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('ui/ext_messages', function()
|
||||
|
Loading…
Reference in New Issue
Block a user