mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 9.1.0369: Vim9: problem when importing autoloaded scripts
Problem: Vim9: problem when importing autoloaded scripts Solution: In `:def` handle storing to vim9 autoload export (Ernie Rael) Problem occurs when `import autoload ./.../autoload/...`. The autoload in the specified path causes the use of an autoload_prefix which combines with the `import autoload` to create trouble. In `generate_store_var()` `case dest_script` use ISN_STOREEXPORT, when needed, instead of ISN_STORES. When executing ISN_STOREEXPORT, check for autoload_prefix. fixes: #14606 closes: #14615 Signed-off-by: Ernie Rael <errael@raelity.com> Signed-off-by: Christian Brabandt <cb@256bit.org> Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
This commit is contained in:
committed by
Christian Brabandt
parent
04e8943556
commit
3f821d6de2
@@ -2394,6 +2394,7 @@ generate_store_var(
|
||||
case dest_vimvar:
|
||||
return generate_STORE(cctx, ISN_STOREV, vimvaridx, NULL);
|
||||
case dest_script:
|
||||
case dest_script_v9:
|
||||
{
|
||||
int scriptvar_idx = lhs->lhs_scriptvar_idx;
|
||||
int scriptvar_sid = lhs->lhs_scriptvar_sid;
|
||||
@@ -2401,10 +2402,14 @@ generate_store_var(
|
||||
{
|
||||
isntype_T isn_type = ISN_STORES;
|
||||
|
||||
// If "sn_import_autoload", generate ISN_STOREEXPORT (not
|
||||
// ISN_STORES) if destination is in a vim9script or if
|
||||
// there is no "sn_autoload_prefix".
|
||||
if (SCRIPT_ID_VALID(scriptvar_sid)
|
||||
&& SCRIPT_ITEM(scriptvar_sid)->sn_import_autoload
|
||||
&& SCRIPT_ITEM(scriptvar_sid)->sn_autoload_prefix
|
||||
== NULL)
|
||||
&& ((SCRIPT_ITEM(scriptvar_sid)
|
||||
->sn_autoload_prefix == NULL)
|
||||
|| lhs->lhs_dest == dest_script_v9))
|
||||
{
|
||||
// "import autoload './dir/script.vim'" - load script
|
||||
// first
|
||||
|
Reference in New Issue
Block a user