aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/os/input.c2
-rw-r--r--test/functional/api/vim_spec.lua6
2 files changed, 7 insertions, 1 deletions
diff --git a/src/nvim/os/input.c b/src/nvim/os/input.c
index b7878d9da8..9d6518841a 100644
--- a/src/nvim/os/input.c
+++ b/src/nvim/os/input.c
@@ -393,7 +393,7 @@ static InbufPollResult inbuf_poll(int ms, MultiQueue *events)
prof_inchar_enter();
}
- if ((ms == - 1 || ms > 0) && events == NULL && !input_eof) {
+ if ((ms == - 1 || ms > 0) && events != main_loop.events && !input_eof) {
// The pending input provoked a blocking wait. Do special events now. #6247
blocking = true;
multiqueue_process_events(ch_before_blocking_events);
diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua
index c42d5c34cc..30128e9c40 100644
--- a/test/functional/api/vim_spec.lua
+++ b/test/functional/api/vim_spec.lua
@@ -972,6 +972,12 @@ describe('API', function()
nvim("input", "gu")
eq({mode='no', blocking=false}, nvim("get_mode"))
end)
+
+ it("at '-- More --' prompt returns blocking=true #11899", function()
+ command('set more')
+ feed(':digraphs<cr>')
+ eq({mode='rm', blocking=true}, nvim("get_mode"))
+ end)
end)
describe('RPC (K_EVENT) #6166', function()