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 #6644)
diff --git a/src/scriptfile.c b/src/scriptfile.c
index b93e351..3821591 100644
--- a/src/scriptfile.c
+++ b/src/scriptfile.c
@@ -2012,6 +2012,7 @@
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 @@
}
// Try loading the package from $VIMRUNTIME/autoload/<name>.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;
}