commit c64acad4e2d4c8c05404f05dd149da9d34960a3d
parent 1f2ded459a6f26635bf013da4100b3dedb777f73
Author: zeertzjq <zeertzjq@outlook.com>
Date: Wed, 5 Oct 2022 21:14:03 +0800
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.
https://github.com/vim/vim/commit/bb4b93ed85726c3921596ca267f531c8c94d819a
Use test from lastest Vim instead.
Diffstat:
2 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/src/nvim/arglist.c b/src/nvim/arglist.c
@@ -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;
diff --git a/src/nvim/testdir/test_arglist.vim b/src/nvim/testdir/test_arglist.vim
@@ -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