diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-07-24 20:08:01 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-07-24 20:08:01 +0100 |
commit | c963ec31a0c293d629e40cb082d4bfb1651def49 (patch) | |
tree | f93897f6bfe81dd5692f5f06b23fedb1881368c9 | |
parent | d61efa50f8f5b9d9dcbc136705cc33874f0fdcb3 (diff) | |
download | vim-git-c963ec31a0c293d629e40cb082d4bfb1651def49.tar.gz |
patch 9.0.0064: confusing error when using "q:" in command line windowv9.0.0064
Problem: Confusing error when using "q:" in command line window.
Solution: Check for the situation and give a better error message.
(closes #10756)
-rw-r--r-- | src/errors.h | 4 | ||||
-rw-r--r-- | src/normal.c | 5 | ||||
-rw-r--r-- | src/testdir/test_cmdwin.vim | 9 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 20 insertions, 0 deletions
diff --git a/src/errors.h b/src/errors.h index 90aa2921a..965187f78 100644 --- a/src/errors.h +++ b/src/errors.h @@ -3306,3 +3306,7 @@ EXTERN char e_substitute_nesting_too_deep[] 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 diff --git a/src/normal.c b/src/normal.c index 72ebcd538..932d72320 100644 --- a/src/normal.c +++ b/src/normal.c @@ -7147,6 +7147,11 @@ nv_record(cmdarg_T *cap) #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); } diff --git a/src/testdir/test_cmdwin.vim b/src/testdir/test_cmdwin.vim index 45ecdd11c..d641b2923 100644 --- a/src/testdir/test_cmdwin.vim +++ b/src/testdir/test_cmdwin.vim @@ -356,5 +356,14 @@ func Test_cmdwin_ctrl_bsl() 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 diff --git a/src/version.c b/src/version.c index d7d0790a5..7534c2371 100644 --- a/src/version.c +++ b/src/version.c @@ -736,6 +736,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 64, +/**/ 63, /**/ 62, |