To: vim_dev@googlegroups.com Subject: Patch 8.0.1378 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.0.1378 Problem: Autoload script sources itself when defining function. Solution: Pass TFN_NO_AUTOLOAD to trans_function_name(). (Yasuhiro Matsumoto, closes #2423) Files: src/userfunc.c, src/testdir/test_autoload.vim, src/testdir/sautest/autoload/sourced.vim *** ../vim-8.0.1377/src/userfunc.c 2017-12-07 22:11:01.094438719 +0100 --- src/userfunc.c 2017-12-07 22:19:59.627176176 +0100 *************** *** 1886,1892 **** * g:func global function name, same as "func" */ p = eap->arg; ! name = trans_function_name(&p, eap->skip, 0, &fudi, NULL); paren = (vim_strchr(p, '(') != NULL); if (name == NULL && (fudi.fd_dict == NULL || !paren) && !eap->skip) { --- 1886,1892 ---- * g:func global function name, same as "func" */ p = eap->arg; ! 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) { *** ../vim-8.0.1377/src/testdir/test_autoload.vim 2017-12-07 22:11:01.098438694 +0100 --- src/testdir/test_autoload.vim 2017-12-07 22:18:46.039620227 +0100 *************** *** 2,11 **** set runtimepath=./sautest ! 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 --- 2,17 ---- set runtimepath=./sautest ! 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 *** ../vim-8.0.1377/src/testdir/sautest/autoload/sourced.vim 2017-12-07 22:22:35.538277028 +0100 --- src/testdir/sautest/autoload/sourced.vim 2017-12-07 22:19:22.703398937 +0100 *************** *** 0 **** --- 1,3 ---- + let g:loaded_sourced_vim += 1 + func! sourced#something() + endfunc *** ../vim-8.0.1377/src/version.c 2017-12-07 22:11:01.098438694 +0100 --- src/version.c 2017-12-07 22:21:14.982721835 +0100 *************** *** 773,774 **** --- 773,776 ---- { /* Add new patch number below this line */ + /**/ + 1378, /**/ -- From "know your smileys": :-O>-o Smiley American tourist (note big mouth and camera) /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///