Problem: Autoload script sources itself when defining function.
Solution: Pass TFN_NO_AUTOLOAD to trans_function_name(). (Yasuhiro
Matsumoto, closes #2423)
--- /dev/null
+let g:loaded_sourced_vim += 1
+func! sourced#something()
+endfunc
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
* 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)
{
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1378,
/**/
1377,
/**/