Mercurial > vim
changeset 32258:6ababf71c1b1 v9.0.1460
patch 9.0.1460: insufficient testing for getcmdcompltype()
Commit: https://github.com/vim/vim/commit/961b2e54bdbe1c06e4bf8ccf7a7e3deb129b45de
Author: zeertzjq <zeertzjq@outlook.com>
Date: Mon Apr 17 15:53:24 2023 +0100
patch 9.0.1460: insufficient testing for getcmdcompltype()
Problem: Insufficient testing for getcmdcompltype().
Solution: Add a few more test cases. (closes https://github.com/vim/vim/issues/12268)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 17 Apr 2023 17:00:05 +0200 |
parents | e961acb64f50 |
children | 570757513b81 |
files | src/ex_getln.c src/testdir/test_cmdline.vim src/version.c |
diffstat | 3 files changed, 20 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- 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); - - cmd_compl = cmdcomplete_type_to_str(p->xpc->xp_context); + if (p->xpc->xp_context == EXPAND_UNSUCCESSFUL) + return NULL; + + char_u *cmd_compl = cmdcomplete_type_to_str(p->xpc->xp_context); if (cmd_compl != NULL) return vim_strsave(cmd_compl);
--- a/src/testdir/test_cmdline.vim +++ b/src/testdir/test_cmdline.vim @@ -3337,16 +3337,23 @@ func Test_cmdline_complete_bang_cmd_argu 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()