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.
diff --git a/src/arglist.c b/src/arglist.c
index 4e971fd..06d9428 100644
--- a/src/arglist.c
+++ b/src/arglist.c
@@ -884,6 +884,13 @@
     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"
diff --git a/src/ex_getln.c b/src/ex_getln.c
index a3e1f49..5430014 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -4205,6 +4205,9 @@
     // 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 @@
 	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);
diff --git a/src/testdir/test_arglist.vim b/src/testdir/test_arglist.vim
index d6c369f..b72fe2d 100644
--- a/src/testdir/test_arglist.vim
+++ b/src/testdir/test_arglist.vim
@@ -559,4 +559,12 @@
   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
diff --git a/src/version.c b/src/version.c
index 9a67633..c95b106 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2413,
+/**/
     2412,
 /**/
     2411,