diff options
author | Jan Edmund Lazo <janedmundlazo@hotmail.com> | 2018-09-09 20:28:07 -0400 |
---|---|---|
committer | Jan Edmund Lazo <janedmundlazo@hotmail.com> | 2018-09-09 20:30:32 -0400 |
commit | 39ab7cc6fb5948542f4ccc1d4067fdcca5183964 (patch) | |
tree | f3c6a4fd65aaa14309cf3571e6338a8d961c392b | |
parent | 3fd9ffd36893cd82549956de6960282791573b87 (diff) | |
download | rneovim-39ab7cc6fb5948542f4ccc1d4067fdcca5183964.tar.gz rneovim-39ab7cc6fb5948542f4ccc1d4067fdcca5183964.tar.bz2 rneovim-39ab7cc6fb5948542f4ccc1d4067fdcca5183964.zip |
vim-patch:8.0.1378: autoload script sources itself when defining function
Problem: Autoload script sources itself when defining function.
Solution: Pass TFN_NO_AUTOLOAD to trans_function_name(). (Yasuhiro
Matsumoto, closes vim/vim#2423)
https://github.com/vim/vim/commit/3388d334572f9d65a603d09d75e363805d96c5d9
-rw-r--r-- | src/nvim/eval.c | 2 | ||||
-rw-r--r-- | src/nvim/testdir/sautest/autoload/sourced.vim | 3 | ||||
-rw-r--r-- | src/nvim/testdir/test_autoload.vim | 8 |
3 files changed, 11 insertions, 2 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 429e327028..8d8fdab351 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -19820,7 +19820,7 @@ void ex_function(exarg_T *eap) // s:func script-local function name // g:func global function name, same as "func" p = eap->arg; - name = trans_function_name(&p, eap->skip, 0, &fudi, NULL); + name = trans_function_name(&p, eap->skip, TFN_NO_AUTOLOAD, &fudi, NULL); paren = (vim_strchr(p, '(') != NULL); if (name == NULL && (fudi.fd_dict == NULL || !paren) && !eap->skip) { /* diff --git a/src/nvim/testdir/sautest/autoload/sourced.vim b/src/nvim/testdir/sautest/autoload/sourced.vim new file mode 100644 index 0000000000..f69f00cb53 --- /dev/null +++ b/src/nvim/testdir/sautest/autoload/sourced.vim @@ -0,0 +1,3 @@ +let g:loaded_sourced_vim += 1 +func! sourced#something() +endfunc diff --git a/src/nvim/testdir/test_autoload.vim b/src/nvim/testdir/test_autoload.vim index a92851f655..7396c227c9 100644 --- a/src/nvim/testdir/test_autoload.vim +++ b/src/nvim/testdir/test_autoload.vim @@ -2,10 +2,16 @@ set runtimepath=./sautest -func! Test_autoload_dict_func() +func Test_autoload_dict_func() let g:loaded_foo_vim = 0 let g:called_foo_bar_echo = 0 call g:foo#bar.echo() call assert_equal(1, g:loaded_foo_vim) call assert_equal(1, g:called_foo_bar_echo) endfunc + +func Test_source_autoload() + let g:loaded_sourced_vim = 0 + source sautest/autoload/sourced.vim + call assert_equal(1, g:loaded_sourced_vim) +endfunc |