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);
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()