# HG changeset patch # User Bram Moolenaar # Date 1596915904 -7200 # Node ID 6c477989f9a473d5ac7c0640e6cbd8c6965e442b # Parent 217fe247a68b4b6322c7d1860e3e91d0b5ab5b48 patch 8.2.1398: autoload script sourced twice if sourced directly Commit: https://github.com/vim/vim/commit/daa2f36573db3e1df7eb1fdbc3a09a2815644048 Author: Bram Moolenaar Date: Sat Aug 8 21:33:21 2020 +0200 patch 8.2.1398: autoload script sourced twice if sourced directly Problem: Autoload script sourced twice if sourced directly. Solution: Do not source an autoload script again. (issue https://github.com/vim/vim/issues/6644) diff --git a/src/scriptfile.c b/src/scriptfile.c --- a/src/scriptfile.c +++ b/src/scriptfile.c @@ -2012,6 +2012,7 @@ script_autoload( char_u *scriptname, *tofree; int ret = FALSE; int i; + int ret_sid; // If there is no '#' after name[0] there is no package name. p = vim_strchr(name, AUTOLOAD_CHAR); @@ -2039,7 +2040,8 @@ script_autoload( } // Try loading the package from $VIMRUNTIME/autoload/.vim - if (source_runtime(scriptname, 0) == OK) + // Use "ret_sid" to avoid loading the same script again. + if (source_in_path(p_rtp, scriptname, 0, &ret_sid) == OK) ret = TRUE; } diff --git a/src/testdir/sautest/autoload/sourced.vim b/src/testdir/sautest/autoload/sourced.vim --- a/src/testdir/sautest/autoload/sourced.vim +++ b/src/testdir/sautest/autoload/sourced.vim @@ -1,3 +1,4 @@ let g:loaded_sourced_vim += 1 -func! sourced#something() +func sourced#something() endfunc +call sourced#something() diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -755,6 +755,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1398, +/**/ 1397, /**/ 1396,