summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-04-17 15:53:24 +0100
committerBram Moolenaar <Bram@vim.org>2023-04-17 15:53:24 +0100
commit961b2e54bdbe1c06e4bf8ccf7a7e3deb129b45de (patch)
treeb031a7ff41162ab767a027ceadfc7442e1755a87
parente7d49465a4ad390c1b0fb6d6b97bc30241fe5db9 (diff)
patch 9.0.1460: insufficient testing for getcmdcompltype()v9.0.1460
Problem: Insufficient testing for getcmdcompltype(). Solution: Add a few more test cases. (closes #12268)
-rw-r--r--src/ex_getln.c6
-rw-r--r--src/testdir/test_cmdline.vim21
-rw-r--r--src/version.c2
3 files changed, 19 insertions, 10 deletions
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 36d148e79d..21447ff040 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -4152,11 +4152,11 @@ get_cmdline_completion(void)
if (p == NULL || p->xpc == NULL)
return NULL;
- char_u *cmd_compl;
-
set_expand_context(p->xpc);
+ if (p->xpc->xp_context == EXPAND_UNSUCCESSFUL)
+ return NULL;
- cmd_compl = cmdcomplete_type_to_str(p->xpc->xp_context);
+ char_u *cmd_compl = cmdcomplete_type_to_str(p->xpc->xp_context);
if (cmd_compl != NULL)
return vim_strsave(cmd_compl);
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index 8b47d86e1c..8b717b7c2d 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -3337,16 +3337,23 @@ func Test_cmdline_complete_bang_cmd_argument()
call assert_equal('"!vim test_cmdline.vim', @:)
endfunc
-func Check_completion()
- call assert_equal('let a', getcmdline())
- call assert_equal(6, getcmdpos())
- call assert_equal(7, getcmdscreenpos())
- call assert_equal('var', getcmdcompltype())
- return ''
+func Call_cmd_funcs()
+ return string([getcmdpos(), getcmdscreenpos(), getcmdcompltype()])
endfunc
func Test_screenpos_and_completion()
- call feedkeys(":let a\<C-R>=Check_completion()\<CR>\<Esc>", "xt")
+ call assert_equal(0, getcmdpos())
+ call assert_equal(0, getcmdscreenpos())
+ call assert_equal('', getcmdcompltype())
+
+ cnoremap <expr> <F2> string([getcmdpos(), getcmdscreenpos(), getcmdcompltype()])
+ call feedkeys(":let a\<F2>\<C-B>\"\<CR>", "xt")
+ call assert_equal("\"let a[6, 7, 'var']", @:)
+ call feedkeys(":quit \<F2>\<C-B>\"\<CR>", "xt")
+ call assert_equal("\"quit [6, 7, '']", @:)
+ call feedkeys(":nosuchcommand \<F2>\<C-B>\"\<CR>", "xt")
+ call assert_equal("\"nosuchcommand [15, 16, '']", @:)
+ cunmap <F2>
endfunc
func Test_recursive_register()
diff --git a/src/version.c b/src/version.c
index 0b3c80ec2c..4f54fab42e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1460,
+/**/
1459,
/**/
1458,