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 the command line info, can be used recursively.
|
||||||
save_cmdline(&save_ccline);
|
save_cmdline(&save_ccline);
|
||||||
|
|
||||||
/* No Ex mode here! */
|
// No Ex mode here!
|
||||||
exmode_active = 0;
|
exmode_active = 0;
|
||||||
|
|
||||||
State = NORMAL;
|
State = NORMAL;
|
||||||
setmouse();
|
setmouse();
|
||||||
|
|
||||||
|
// Reset here so it can be set by a CmdWinEnter autocommand.
|
||||||
|
cmdwin_result = 0;
|
||||||
|
|
||||||
// Trigger CmdwinEnter autocommands.
|
// Trigger CmdwinEnter autocommands.
|
||||||
typestr[0] = (char_u)cmdwin_type;
|
typestr[0] = (char_u)cmdwin_type;
|
||||||
typestr[1] = NUL;
|
typestr[1] = NUL;
|
||||||
@ -6492,7 +6495,6 @@ static int open_cmdwin(void)
|
|||||||
/*
|
/*
|
||||||
* Call the main loop until <CR> or CTRL-C is typed.
|
* Call the main loop until <CR> or CTRL-C is typed.
|
||||||
*/
|
*/
|
||||||
cmdwin_result = 0;
|
|
||||||
normal_enter(true, false);
|
normal_enter(true, false);
|
||||||
|
|
||||||
RedrawingDisabled = i;
|
RedrawingDisabled = i;
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
" Tests for autocommands
|
" Tests for autocommands
|
||||||
|
|
||||||
source shared.vim
|
source shared.vim
|
||||||
|
source check.vim
|
||||||
|
source term_util.vim
|
||||||
|
|
||||||
func! s:cleanup_buffers() abort
|
func! s:cleanup_buffers() abort
|
||||||
for bnr in range(1, bufnr('$'))
|
for bnr in range(1, bufnr('$'))
|
||||||
@ -1735,6 +1737,35 @@ func Test_throw_in_BufWritePre()
|
|||||||
au! throwing
|
au! throwing
|
||||||
endfunc
|
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()
|
func Test_FileChangedShell_reload()
|
||||||
if !has('unix')
|
if !has('unix')
|
||||||
return
|
return
|
||||||
|
Loading…
Reference in New Issue
Block a user