mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.1.2108: cannot close the cmdline window from CmdWinEnter
Problem: Cannot close the cmdline window from CmdWinEnter. (George Brown)
Solution: Reset cmdwin_result earlier. (Christian Brabandt, closes vim/vim#4980)
23324a0b35
This commit is contained in:
parent
eb981a01e3
commit
ba16475549
@ -6471,12 +6471,15 @@ static int open_cmdwin(void)
|
||||
// Save the command line info, can be used recursively.
|
||||
save_cmdline(&save_ccline);
|
||||
|
||||
/* No Ex mode here! */
|
||||
// No Ex mode here!
|
||||
exmode_active = 0;
|
||||
|
||||
State = NORMAL;
|
||||
setmouse();
|
||||
|
||||
// Reset here so it can be set by a CmdWinEnter autocommand.
|
||||
cmdwin_result = 0;
|
||||
|
||||
// Trigger CmdwinEnter autocommands.
|
||||
typestr[0] = (char_u)cmdwin_type;
|
||||
typestr[1] = NUL;
|
||||
@ -6492,7 +6495,6 @@ static int open_cmdwin(void)
|
||||
/*
|
||||
* Call the main loop until <CR> or CTRL-C is typed.
|
||||
*/
|
||||
cmdwin_result = 0;
|
||||
normal_enter(true, false);
|
||||
|
||||
RedrawingDisabled = i;
|
||||
|
@ -1,6 +1,8 @@
|
||||
" Tests for autocommands
|
||||
|
||||
source shared.vim
|
||||
source check.vim
|
||||
source term_util.vim
|
||||
|
||||
func! s:cleanup_buffers() abort
|
||||
for bnr in range(1, bufnr('$'))
|
||||
@ -1735,6 +1737,35 @@ func Test_throw_in_BufWritePre()
|
||||
au! throwing
|
||||
endfunc
|
||||
|
||||
func Test_autocmd_CmdWinEnter()
|
||||
CheckRunVimInTerminal
|
||||
" There is not cmdwin switch, so
|
||||
" test for cmdline_hist
|
||||
" (both are available with small builds)
|
||||
CheckFeature cmdline_hist
|
||||
let lines =<< trim END
|
||||
let b:dummy_var = 'This is a dummy'
|
||||
autocmd CmdWinEnter * quit
|
||||
let winnr = winnr('$')
|
||||
END
|
||||
let filename='XCmdWinEnter'
|
||||
call writefile(lines, filename)
|
||||
let buf = RunVimInTerminal('-S '.filename, #{rows: 6})
|
||||
|
||||
call term_sendkeys(buf, "q:")
|
||||
call term_wait(buf)
|
||||
call term_sendkeys(buf, ":echo b:dummy_var\<cr>")
|
||||
call WaitForAssert({-> assert_match('^This is a dummy', term_getline(buf, 6))}, 1000)
|
||||
call term_sendkeys(buf, ":echo &buftype\<cr>")
|
||||
call WaitForAssert({-> assert_notmatch('^nofile', term_getline(buf, 6))}, 1000)
|
||||
call term_sendkeys(buf, ":echo winnr\<cr>")
|
||||
call WaitForAssert({-> assert_match('^1', term_getline(buf, 6))}, 1000)
|
||||
|
||||
" clean up
|
||||
call StopVimInTerminal(buf)
|
||||
call delete(filename)
|
||||
endfunc
|
||||
|
||||
func Test_FileChangedShell_reload()
|
||||
if !has('unix')
|
||||
return
|
||||
|
Loading…
Reference in New Issue
Block a user