diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-10-05 21:14:03 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-10-05 22:40:23 +0800 |
commit | c64acad4e2d4c8c05404f05dd149da9d34960a3d (patch) | |
tree | 057fac97f222647d14fa2b0c6187e9f489d4c09d /src | |
parent | 1f2ded459a6f26635bf013da4100b3dedb777f73 (diff) | |
download | rneovim-c64acad4e2d4c8c05404f05dd149da9d34960a3d.tar.gz rneovim-c64acad4e2d4c8c05404f05dd149da9d34960a3d.tar.bz2 rneovim-c64acad4e2d4c8c05404f05dd149da9d34960a3d.zip |
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 (limited to 'src')
-rw-r--r-- | src/nvim/arglist.c | 4 | ||||
-rw-r--r-- | src/nvim/testdir/test_arglist.vim | 16 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/nvim/arglist.c b/src/nvim/arglist.c index 02e3a99aab..f22ef10e3f 100644 --- 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 index 521c3fcd57..19b64f996c 100644 --- 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 |