]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.0403: Vim9: not able to import file from start dir v9.1.0403
authorYegappan Lakshmanan <yegappan@yahoo.com>
Fri, 10 May 2024 11:10:54 +0000 (13:10 +0200)
committerChristian Brabandt <cb@256bit.org>
Fri, 10 May 2024 11:10:54 +0000 (13:10 +0200)
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>
src/scriptfile.c
src/testdir/test_vim9_import.vim
src/version.c

index d5ec7cfddd94354194489e7722414e1c1fd56400..b6c66b7a48a160234785dc568fdb7c16c52ceb8b 100644 (file)
@@ -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;
 }
index 94e0f34a33e76d138b64204c12e8bb7f41e7c68d..61184a1f4844a069ee5af497e00f8b7f985f502c 100644 (file)
@@ -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
index a8f47873f8f8b8ddb4e4ac863117f97ef1270c94..954b747b58665174ee39428e9e1d9fc098dfda59 100644 (file)
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    403,
 /**/
     402,
 /**/