forked from aniani/vim
patch 9.0.0920: cannot find an import prefixed with "s:"
Problem: Cannot find an import prefixed with "s:". (Doug Kearns) Solution: Skip over the "s:". (closes #11585)
This commit is contained in:
parent
9c5b7cb4cf
commit
b775e72439
@ -2034,6 +2034,15 @@ def Test_source_vim9_from_legacy()
|
|||||||
source Xlegacy_script.vim
|
source Xlegacy_script.vim
|
||||||
assert_equal('global', g:global)
|
assert_equal('global', g:global)
|
||||||
unlet g:global
|
unlet g:global
|
||||||
|
|
||||||
|
legacy_lines =<< trim END
|
||||||
|
import './Xvim9_script.vim'
|
||||||
|
let g:global = s:Xvim9_script.GetText()
|
||||||
|
END
|
||||||
|
writefile(legacy_lines, 'Xlegacyimport.vim', 'D')
|
||||||
|
source Xlegacyimport.vim
|
||||||
|
assert_equal('text', g:global)
|
||||||
|
unlet g:global
|
||||||
enddef
|
enddef
|
||||||
|
|
||||||
def Test_import_vim9_from_legacy()
|
def Test_import_vim9_from_legacy()
|
||||||
|
@ -695,6 +695,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 */
|
||||||
|
/**/
|
||||||
|
920,
|
||||||
/**/
|
/**/
|
||||||
919,
|
919,
|
||||||
/**/
|
/**/
|
||||||
|
@ -656,12 +656,14 @@ find_imported_in_script(char_u *name, size_t len, int sid)
|
|||||||
imported_T *
|
imported_T *
|
||||||
find_imported(char_u *name, size_t len, int load)
|
find_imported(char_u *name, size_t len, int load)
|
||||||
{
|
{
|
||||||
imported_T *ret;
|
|
||||||
|
|
||||||
if (!SCRIPT_ID_VALID(current_sctx.sc_sid))
|
if (!SCRIPT_ID_VALID(current_sctx.sc_sid))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
ret = find_imported_in_script(name, len, current_sctx.sc_sid);
|
// Skip over "s:" before "s:something" to find the import name.
|
||||||
|
int off = name[0] == 's' && name[1] == ':' ? 2 : 0;
|
||||||
|
|
||||||
|
imported_T *ret = find_imported_in_script(name + off, len - off,
|
||||||
|
current_sctx.sc_sid);
|
||||||
if (ret != NULL && load && (ret->imp_flags & IMP_FLAGS_AUTOLOAD))
|
if (ret != NULL && load && (ret->imp_flags & IMP_FLAGS_AUTOLOAD))
|
||||||
{
|
{
|
||||||
scid_T actual_sid = 0;
|
scid_T actual_sid = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user