0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 9.1.0165: Vim9: Importing an autoload imported script fails

Problem:  Vim9: Importing an autoload imported script fails
          (Song-Tianxiang)
Solution: Return the script ID in this case
          (Yegappan Lakshmanan)

fixes: #14171
closes: #14174

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Yegappan Lakshmanan
2024-03-10 19:22:38 +01:00
committed by Christian Brabandt
parent 26dd09ad5e
commit fa63008727
3 changed files with 53 additions and 0 deletions

View File

@@ -1690,6 +1690,8 @@ do_source_ext(
// reset version, "vim9script" may have been added or removed. // reset version, "vim9script" may have been added or removed.
si->sn_version = 1; si->sn_version = 1;
} }
if (ret_sid != NULL)
*ret_sid = sid;
} }
else else
{ {

View File

@@ -2929,5 +2929,54 @@ def Test_export_in_conditional_block()
v9.CheckScriptSuccess(lines) v9.CheckScriptSuccess(lines)
enddef enddef
" Import fails when an autoloaded script is imported again.
" Github issue #14171
def Test_import_autloaded_script()
mkdir('Ximporttwice', 'pR')
mkdir('Ximporttwice/plugin')
mkdir('Ximporttwice/autoload')
var save_rtp = &rtp
exe 'set rtp^=' .. getcwd() .. '/Ximporttwice'
var lines =<< trim END
vim9script
export def H(): number
return 10
enddef
END
writefile(lines, 'Ximporttwice/autoload/hello.vim')
lines =<< trim END
vim9script
import "./hello.vim"
export def W(): number
return 20
enddef
END
writefile(lines, 'Ximporttwice/autoload/world.vim')
lines =<< trim END
vim9script
import autoload '../autoload/hello.vim'
import autoload '../autoload/world.vim'
command Hello echo hello.H()
command World echo world.W()
END
writefile(lines, 'Ximporttwice/plugin/main.vim')
lines =<< trim END
vim9script
source ./Ximporttwice/plugin/main.vim
assert_equal(['20'], execute('World')->split("\n"))
END
v9.CheckScriptSuccess(lines)
&rtp = save_rtp
enddef
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker

View File

@@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
165,
/**/ /**/
164, 164,
/**/ /**/