Problem: Confusing error when using "q:" in command line window.
Solution: Check for the situation and give a better error message.
(closes #10756)
EXTERN char e_invalid_argument_nr[]
INIT(= N_("E1291: Invalid argument: %ld"));
#endif
+#ifdef FEAT_CMDWIN
+EXTERN char e_cmdline_window_already_open[]
+ INIT(= N_("E1292: Command-line window is already open"));
+#endif
#ifdef FEAT_CMDWIN
if (cap->nchar == ':' || cap->nchar == '/' || cap->nchar == '?')
{
+ if (cmdwin_type != 0)
+ {
+ emsg(_(e_cmdline_window_already_open));
+ return;
+ }
stuffcharReadbuff(cap->nchar);
stuffcharReadbuff(K_CMDWIN);
}
call assert_equal('', getcmdwintype())
endfunc
+func Test_cant_open_cmdwin_in_cmdwin()
+ try
+ call feedkeys("q:q::q\<CR>", "x!")
+ catch
+ let caught = v:exception
+ endtry
+ call assert_match('E1292:', caught)
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 64,
/**/
63,
/**/