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

patch 9.0.0253: a symlink to an autoload script results in two entries

Problem:    A symlink to an autoload script results in two entries in the list
            of scripts, items expected in one are actually in the other.
Solution:   Have one script item refer to the actually sourced one.
            (closes #10960)
This commit is contained in:
Bram Moolenaar
2022-08-24 16:30:36 +01:00
parent f5240b96f7
commit 753885b6c5
11 changed files with 124 additions and 21 deletions

View File

@@ -696,6 +696,20 @@ ex_import(exarg_T *eap)
clear_evalarg(&evalarg, eap);
}
/*
* When a script is a symlink it may be imported with one name and sourced
* under another name. Adjust the import script ID if needed.
* "*sid" must be a valid script ID.
*/
void
import_check_sourced_sid(int *sid)
{
scriptitem_T *script = SCRIPT_ITEM(*sid);
if (script->sn_sourced_sid > 0)
*sid = script->sn_sourced_sid;
}
/*
* Find an exported item in "sid" matching "name".
* Either "cctx" or "cstack" is NULL.