0
0
mirror of https://github.com/vim/vim.git synced 2025-09-27 04:14:06 -04:00

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.
This commit is contained in:
Bram Moolenaar
2021-01-26 21:35:08 +01:00
parent ce0370d9e6
commit bb4b93ed85
4 changed files with 20 additions and 1 deletions

View File

@@ -884,6 +884,13 @@ do_arg_all(
win_T *new_curwin = NULL;
tabpage_T *new_curtab = NULL;
#ifdef FEAT_CMDWIN
if (cmdwin_type != 0)
{
emsg(_(e_cmdwin));
return;
}
#endif
if (ARGCOUNT <= 0)
{
// Don't give an error message. We don't want it when the ":all"

View File

@@ -4205,6 +4205,9 @@ open_cmdwin(void)
// Don't let quitting the More prompt make this fail.
got_int = FALSE;
// Set "cmdwin_type" before any autocommands may mess things up.
cmdwin_type = get_cmdline_type();
// Create the command-line buffer empty.
if (do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, NULL) == FAIL)
{
@@ -4213,7 +4216,6 @@ open_cmdwin(void)
ga_clear(&winsizes);
return Ctrl_C;
}
cmdwin_type = get_cmdline_type();
apply_autocmds(EVENT_BUFFILEPRE, NULL, NULL, FALSE, curbuf);
(void)setfname(curbuf, (char_u *)"[Command Line]", NULL, TRUE);

View File

@@ -559,4 +559,12 @@ 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
call assert_fails(":norm 7q?x\<CR>", 'E11:')
au! BufEnter
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

@@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
2413,
/**/
2412,
/**/