event-loop: do not set CA_COMMAND_BUSY #9853

CA_COMMAND_BUSY in nv_event() was carried over from Vim nv_cursorhold()
(ref: e5165bae11). It prevents :startinsert from working during a RPC
call, so remove it.

Helped-by: glacambre <me@r4>
closes #7254
This commit is contained in:
Justin M. Keyes
2019-04-08 02:33:00 +02:00
committed by GitHub
parent 9da348beda
commit 943bedfc86
2 changed files with 8 additions and 2 deletions

View File

@ -8001,7 +8001,6 @@ static void nv_event(cmdarg_T *cap)
// lists or dicts being used.
may_garbage_collect = false;
multiqueue_process_events(main_loop.events);
cap->retval |= CA_COMMAND_BUSY; // don't call edit() now
finish_op = false;
}

View File

@ -56,6 +56,13 @@ describe('API', function()
eq(2, eval('1+1'))
end)
it('does not set CA_COMMAND_BUSY #7254', function()
nvim('command', 'split')
nvim('command', 'autocmd WinEnter * startinsert')
nvim('command', 'wincmd w')
eq({mode='i', blocking=false}, nvim("get_mode"))
end)
describe('nvim_command', function()
it('works', function()
local fname = helpers.tmpname()
@ -83,7 +90,7 @@ describe('API', function()
end)
it('VimL execution error: fails with specific error', function()
local status, rv = pcall(nvim, "command_output", "buffer 23487")
local status, rv = pcall(nvim, "command", "buffer 23487")
eq(false, status) -- nvim_command() failed.
eq("E86: Buffer 23487 does not exist", string.match(rv, "E%d*:.*"))
eq('', eval('v:errmsg')) -- v:errmsg was not updated.