diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-03-17 11:46:55 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-03-17 11:46:55 +0000 |
commit | da6d42c35a68610af872551b03077047258a7551 (patch) | |
tree | 55bb0a5f23a54940c76cd220ed26d4a164c04811 /src | |
parent | 4f6e772c9cd013a8690ab0f1efecc0ab3e855148 (diff) | |
download | vim-git-da6d42c35a68610af872551b03077047258a7551.tar.gz |
patch 8.2.4584: error for using autoload function in custom completionv8.2.4584
Problem: Error for using autoload function in custom completion.
Solution: Do not check for errors when using an autoload function.
(closes #9962)
Diffstat (limited to 'src')
-rw-r--r-- | src/eval.c | 7 | ||||
-rw-r--r-- | src/testdir/test_cmdline.vim | 23 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 28 insertions, 4 deletions
diff --git a/src/eval.c b/src/eval.c index e4f47b18b..3f6be1847 100644 --- a/src/eval.c +++ b/src/eval.c @@ -705,10 +705,9 @@ call_vim_function( // The name might be "import.Func" or "Funcref". We don't know, we need to // ignore errors for an undefined name. But we do want errors when an - // autoload script has errors. Guess that when there is a dot or '#' in - // the name showing errors is the right choice. - ignore_errors = vim_strchr(func, '.') == NULL - && vim_strchr(func, AUTOLOAD_CHAR) == NULL; + // autoload script has errors. Guess that when there is a dot in the name + // showing errors is the right choice. + ignore_errors = vim_strchr(func, '.') == NULL; arg = func; if (ignore_errors) ++emsg_off; diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim index ba3c50878..c3a6425b8 100644 --- a/src/testdir/test_cmdline.vim +++ b/src/testdir/test_cmdline.vim @@ -1829,6 +1829,29 @@ func Test_wildmode() let &encoding = save_encoding endfunc +func Test_custom_complete_autoload() + call mkdir('Xdir/autoload', 'p') + let save_rtp = &rtp + exe 'set rtp=' .. getcwd() .. '/Xdir' + let lines =<< trim END + func vim8#Complete(a, c, p) + return "oneA\noneB\noneC" + endfunc + END + call writefile(lines, 'Xdir/autoload/vim8.vim') + + command -nargs=1 -complete=custom,vim8#Complete MyCmd + set nowildmenu + set wildmode=full,list + call feedkeys(":MyCmd \<C-A>\<C-B>\"\<CR>", 'xt') + call assert_equal('"MyCmd oneA oneB oneC', @:) + + let &rtp = save_rtp + set wildmode& wildmenu& + delcommand MyCmd + call delete('Xdir', 'rf') +endfunc + " Test for interrupting the command-line completion func Test_interrupt_compl() func F(lead, cmdl, p) diff --git a/src/version.c b/src/version.c index 4b5088cf6..b9ec937e8 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4584, +/**/ 4583, /**/ 4582, |