summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYegappan Lakshmanan <yegappan@yahoo.com>2024-05-10 13:10:54 +0200
committerChristian Brabandt <cb@256bit.org>2024-05-10 13:10:54 +0200
commit8c35c26c1f68950a75a1a93339410244fec23afc (patch)
tree04ed2dd7e54c5c41a7c9555f9567f4424fcc81f3
parent63f2a5b8adfb570792b9a7cbfff1c350913bbe3e (diff)
patch 9.1.0403: Vim9: not able to import file from start dirv9.1.0403
Problem: Vim9: not able to import file from start dir (Danielle McLean) Solution: Allow to import from start directory (Yegappan Lakshmanan) fixes: #13313 closes: #14740 Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
-rw-r--r--src/scriptfile.c2
-rw-r--r--src/testdir/test_vim9_import.vim28
-rw-r--r--src/version.c2
3 files changed, 31 insertions, 1 deletions
diff --git a/src/scriptfile.c b/src/scriptfile.c
index d5ec7cfddd..b6c66b7a48 100644
--- a/src/scriptfile.c
+++ b/src/scriptfile.c
@@ -682,7 +682,7 @@ find_script_in_rtp(char_u *name)
{
int sid = -1;
- (void)do_in_path_and_pp(p_rtp, name, DIP_NOAFTER,
+ (void)do_in_path_and_pp(p_rtp, name, DIP_START | DIP_NOAFTER,
find_script_callback, &sid);
return sid;
}
diff --git a/src/testdir/test_vim9_import.vim b/src/testdir/test_vim9_import.vim
index 94e0f34a33..61184a1f48 100644
--- a/src/testdir/test_vim9_import.vim
+++ b/src/testdir/test_vim9_import.vim
@@ -3283,4 +3283,32 @@ def Test_set_imported_class_member()
v9.CheckScriptSuccess(lines)
enddef
+" Test for using an imported function from the vimrc file.  The function is
+" defined in the 'start' directory of a package.
+def Test_import_from_vimrc()
+ mkdir('Ximport/pack/foobar/start/foo/autoload', 'pR')
+ var lines =<< trim END
+ vim9script
+ export def Foo()
+ writefile(['Foo called'], 'Xoutput.log')
+ enddef
+ END
+ writefile(lines, 'Ximport/pack/foobar/start/foo/autoload/foo.vim')
+ lines =<< trim END
+ vim9script
+ set packpath+=./Ximport
+ try
+ import autoload 'foo.vim'
+ foo.Foo()
+ catch
+ writefile(['Failed to import foo.vim'], 'Xoutput.log')
+ endtry
+ qall!
+ END
+ writefile(lines, 'Xvimrc', 'D')
+ g:RunVim([], [], '-u Xvimrc')
+ assert_equal(['Foo called'], readfile('Xoutput.log'))
+ delete('Xoutput.log')
+enddef
+
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
diff --git a/src/version.c b/src/version.c
index a8f47873f8..954b747b58 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 403,
+/**/
402,
/**/
401,