vim-patch:8.2.2413: crash when using :all while using a cmdline window

Problem:    Crash when using :all while using a cmdline window. (Zdenek Dohnal)
Solution:   Disallow :all from the cmdline window.
bb4b93ed85

Use test from lastest Vim instead.
This commit is contained in:
zeertzjq 2022-10-05 21:14:03 +08:00
parent 1f2ded459a
commit c64acad4e2
2 changed files with 20 additions and 0 deletions

View File

@ -782,6 +782,10 @@ static void do_arg_all(int count, int forceit, int keep_tabs)
assert(firstwin != NULL); // satisfy coverity
if (cmdwin_type != 0) {
emsg(_(e_cmdwin));
return;
}
if (ARGCOUNT <= 0) {
// Don't give an error message. We don't want it when the ":all" command is in the .vimrc.
return;

View File

@ -591,4 +591,20 @@ func Test_quit_with_arglist()
call delete('.c.swp')
endfunc
" Test for ":all" not working when in the cmdline window
func Test_all_not_allowed_from_cmdwin()
au BufEnter * all
next x
" Use try/catch here, somehow assert_fails() doesn't work on MS-Windows
" console.
let caught = 'no'
try
exe ":norm! 7q?apat\<CR>"
catch /E11:/
let caught = 'yes'
endtry
call assert_equal('yes', caught)
au! BufEnter
endfunc
" vim: shiftwidth=2 sts=2 expandtab