From 223a950a85448253780da4e821a5b23dcdfad28f Mon Sep 17 00:00:00 2001 From: =?utf8?q?=3D=3FUTF-8=3Fq=3FBj=3DC3=3DB6rn=3D20Linse=3F=3D?= Date: Mon, 31 Jan 2022 17:26:05 +0000 Subject: [PATCH] patch 8.2.4275: cannot use an autoload function from a package under start Problem: Cannot use an autoload function from a package under start. Solution: Also look in the "start" package directory. (Bjorn Linse, closes #7193) --- src/scriptfile.c | 2 +- src/testdir/test_packadd.vim | 13 +++++++++++++ src/version.c | 2 ++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/scriptfile.c b/src/scriptfile.c index dec512a72..cee3f5440 100644 --- a/src/scriptfile.c +++ b/src/scriptfile.c @@ -2294,7 +2294,7 @@ script_autoload( // Try loading the package from $VIMRUNTIME/autoload/.vim // Use "ret_sid" to avoid loading the same script again. - if (source_in_path(p_rtp, scriptname, 0, &ret_sid) == OK) + if (source_in_path(p_rtp, scriptname, DIP_START, &ret_sid) == OK) ret = TRUE; } diff --git a/src/testdir/test_packadd.vim b/src/testdir/test_packadd.vim index d7a38daf3..8ca9b41a2 100644 --- a/src/testdir/test_packadd.vim +++ b/src/testdir/test_packadd.vim @@ -246,6 +246,19 @@ func Test_packloadall() call assert_equal(4321, g:plugin_bar_number) endfunc +func Test_start_autoload() + " plugin foo with an autoload directory + let autodir = &packpath .. '/pack/mine/start/foo/autoload' + call mkdir(autodir, 'p') + let fname = autodir .. '/foobar.vim' + call writefile(['func foobar#test()', + \ ' return 1666', + \ 'endfunc'], fname) + + call assert_equal(1666, foobar#test()) + call delete(fname) +endfunc + func Test_helptags() let docdir1 = &packpath . '/pack/mine/start/foo/doc' let docdir2 = &packpath . '/pack/mine/start/bar/doc' diff --git a/src/version.c b/src/version.c index 921f07672..d3b7bf846 100644 --- a/src/version.c +++ b/src/version.c @@ -746,6 +746,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 4275, /**/ 4274, /**/ -- 2.40.0