vim-patch:9.0.0064: confusing error when using "q:" in command line window

Problem:    Confusing error when using "q:" in command line window.
Solution:   Check for the situation and give a better error message.
            (closes vim/vim#10756)

c963ec31a0

Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
zeertzjq 2023-05-13 22:23:02 +08:00
parent 6f29c68928
commit c8dc34795b
2 changed files with 23 additions and 0 deletions

View File

@ -107,6 +107,8 @@ static int VIsual_mode_orig = NUL; // saved Visual mode
#endif
static const char e_changelist_is_empty[] = N_("E664: Changelist is empty");
static const char e_cmdline_window_already_open[]
= N_("E1292: Command-line window is already open");
static inline void normal_state_init(NormalState *s)
{
@ -6372,6 +6374,10 @@ static void nv_record(cmdarg_T *cap)
}
if (cap->nchar == ':' || cap->nchar == '/' || cap->nchar == '?') {
if (cmdwin_type != 0) {
emsg(_(e_cmdline_window_already_open));
return;
}
stuffcharReadbuff(cap->nchar);
stuffcharReadbuff(K_CMDWIN);
} else {

View File

@ -0,0 +1,17 @@
" Tests for editing the command line.
source check.vim
source screendump.vim
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