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:
@@ -884,6 +884,13 @@ do_arg_all(
|
|||||||
win_T *new_curwin = NULL;
|
win_T *new_curwin = NULL;
|
||||||
tabpage_T *new_curtab = NULL;
|
tabpage_T *new_curtab = NULL;
|
||||||
|
|
||||||
|
#ifdef FEAT_CMDWIN
|
||||||
|
if (cmdwin_type != 0)
|
||||||
|
{
|
||||||
|
emsg(_(e_cmdwin));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (ARGCOUNT <= 0)
|
if (ARGCOUNT <= 0)
|
||||||
{
|
{
|
||||||
// Don't give an error message. We don't want it when the ":all"
|
// Don't give an error message. We don't want it when the ":all"
|
||||||
|
@@ -4205,6 +4205,9 @@ open_cmdwin(void)
|
|||||||
// Don't let quitting the More prompt make this fail.
|
// Don't let quitting the More prompt make this fail.
|
||||||
got_int = FALSE;
|
got_int = FALSE;
|
||||||
|
|
||||||
|
// Set "cmdwin_type" before any autocommands may mess things up.
|
||||||
|
cmdwin_type = get_cmdline_type();
|
||||||
|
|
||||||
// Create the command-line buffer empty.
|
// Create the command-line buffer empty.
|
||||||
if (do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, NULL) == FAIL)
|
if (do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, ECMD_HIDE, NULL) == FAIL)
|
||||||
{
|
{
|
||||||
@@ -4213,7 +4216,6 @@ open_cmdwin(void)
|
|||||||
ga_clear(&winsizes);
|
ga_clear(&winsizes);
|
||||||
return Ctrl_C;
|
return Ctrl_C;
|
||||||
}
|
}
|
||||||
cmdwin_type = get_cmdline_type();
|
|
||||||
|
|
||||||
apply_autocmds(EVENT_BUFFILEPRE, NULL, NULL, FALSE, curbuf);
|
apply_autocmds(EVENT_BUFFILEPRE, NULL, NULL, FALSE, curbuf);
|
||||||
(void)setfname(curbuf, (char_u *)"[Command Line]", NULL, TRUE);
|
(void)setfname(curbuf, (char_u *)"[Command Line]", NULL, TRUE);
|
||||||
|
@@ -559,4 +559,12 @@ func Test_quit_with_arglist()
|
|||||||
call delete('.c.swp')
|
call delete('.c.swp')
|
||||||
endfunc
|
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
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
2413,
|
||||||
/**/
|
/**/
|
||||||
2412,
|
2412,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user