0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.2.4025: error for import not ending in .vim does not work for .vimrc

Problem:    Error for import not ending in .vim does not work for .vimrc.
Solution:   Check that .vim is the end. (closes #9484)
This commit is contained in:
Bram Moolenaar 2022-01-07 13:38:24 +00:00
parent 32884ad753
commit 834d41853e
4 changed files with 42 additions and 7 deletions

View File

@ -2881,11 +2881,13 @@ EXTERN char e_cmd_mapping_must_end_with_cr[]
INIT(= N_("E1255: <Cmd> mapping must end with <CR>"));
EXTERN char e_string_or_function_required_for_argument_nr[]
INIT(= N_("E1256: String or function required for argument %d"));
EXTERN char e_imported_script_must_end_in_dot_vim_str[]
INIT(= N_("E1257: Imported script must end in .vim: %s"));
EXTERN char e_imported_script_must_use_as_or_end_in_dot_vim_str[]
INIT(= N_("E1257: Imported script must use \"as\" or end in .vim: %s"));
EXTERN char e_no_dot_after_imported_name_str[]
INIT(= N_("E1258: No '.' after imported name: %s"));
EXTERN char e_missing_name_after_imported_name_str[]
INIT(= N_("E1259: Missing name after imported name: %s"));
EXTERN char e_cannot_unlet_imported_item_str[]
INIT(= N_("E1260: Cannot unlet an imported item: %s"));
EXTERN char e_cannot_import_dot_vim_without_using_as[]
INIT(= N_("E1261: Cannot import .vim without using \"as\""));

View File

@ -1527,7 +1527,7 @@ def Test_import_funcref()
delete('Xlib.vim')
enddef
def Test_import_star_fails()
def Test_import_fails()
writefile([], 'Xfoo.vim')
var lines =<< trim END
import './Xfoo.vim' as foo
@ -1572,7 +1572,34 @@ def Test_import_star_fails()
That()
END
CheckDefAndScriptFailure(lines, ['E1094:', 'E1236: Cannot use That itself'])
delete('Xthat.vim')
mkdir('Xdir')
writefile(['vim9script'], 'Xdir/.vim')
lines =<< trim END
vim9script
import './Xdir/.vim'
END
CheckScriptFailure(lines, 'E1261: Cannot import .vim without using "as"')
lines =<< trim END
vim9script
import './Xdir/.vim' as vim
END
CheckScriptSuccess(lines)
writefile(['vim9script'], 'Xdir/.vimrc')
lines =<< trim END
vim9script
import './Xdir/.vimrc'
END
CheckScriptFailure(lines, 'E1257: Imported script must use "as" or end in .vim')
lines =<< trim END
vim9script
import './Xdir/.vimrc' as vimrc
END
CheckScriptSuccess(lines)
delete('Xdir', 'rf')
enddef
func g:Trigger()

View File

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

View File

@ -474,10 +474,14 @@ handle_import(
semsg(_(e_trailing_characters_str), expr_end);
goto erret;
}
if (end == NULL)
if (end == NULL || end[4] != NUL)
{
semsg(_(e_imported_script_must_end_in_dot_vim_str), p);
semsg(_(e_imported_script_must_use_as_or_end_in_dot_vim_str), p);
goto erret;
}
if (end == p)
{
semsg(_(e_cannot_import_dot_vim_without_using_as), p);
goto erret;
}
as_name = vim_strnsave(p, end - p);