]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.0.1460: insufficient testing for getcmdcompltype() v9.0.1460
authorzeertzjq <zeertzjq@outlook.com>
Mon, 17 Apr 2023 14:53:24 +0000 (15:53 +0100)
committerBram Moolenaar <Bram@vim.org>
Mon, 17 Apr 2023 14:53:24 +0000 (15:53 +0100)
Problem:    Insufficient testing for getcmdcompltype().
Solution:   Add a few more test cases. (closes #12268)

src/ex_getln.c
src/testdir/test_cmdline.vim
src/version.c

index 36d148e79de8f84ac914e0ad592554f98c1878ff..21447ff040183402bd47c4848d773b7c22c5745c 100644 (file)
@@ -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);
 
index 8b47d86e1c1ca648737c9b03e2e2b7e18df3c980..8b717b7c2df462b63b484b06cfc7b30b72d01d46 100644 (file)
@@ -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()
index 0b3c80ec2cec429b9d32bdbe7a63e15e3a1ff536..4f54fab42efb3e6a9fb98dcbed0243d3c4bcca75 100644 (file)
@@ -695,6 +695,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1460,
 /**/
     1459,
 /**/