To: vim_dev@googlegroups.com Subject: Patch 8.2.4025 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.4025 Problem: Error for import not ending in .vim does not work for .vimrc. Solution: Check that .vim is the end. (closes #9484) Files: src/vim9script.c, src/errors.h, src/testdir/test_vim9_script.vim *** ../vim-8.2.4024/src/vim9script.c 2022-01-06 22:07:53.323887225 +0000 --- src/vim9script.c 2022-01-07 13:23:14.313872139 +0000 *************** *** 474,483 **** semsg(_(e_trailing_characters_str), expr_end); goto erret; } ! ! if (end == NULL) { ! semsg(_(e_imported_script_must_end_in_dot_vim_str), p); goto erret; } as_name = vim_strnsave(p, end - p); --- 474,487 ---- semsg(_(e_trailing_characters_str), expr_end); goto erret; } ! if (end == NULL || end[4] != NUL) { ! 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); *** ../vim-8.2.4024/src/errors.h 2022-01-06 21:10:24.465027868 +0000 --- src/errors.h 2022-01-07 13:26:48.121224150 +0000 *************** *** 2881,2891 **** INIT(= N_("E1255: mapping must end with ")); 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_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")); --- 2881,2893 ---- INIT(= N_("E1255: mapping must end with ")); 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_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\"")); *** ../vim-8.2.4024/src/testdir/test_vim9_script.vim 2022-01-07 12:45:24.115723150 +0000 --- src/testdir/test_vim9_script.vim 2022-01-07 13:36:59.943635052 +0000 *************** *** 1527,1533 **** delete('Xlib.vim') enddef ! def Test_import_star_fails() writefile([], 'Xfoo.vim') var lines =<< trim END import './Xfoo.vim' as foo --- 1527,1533 ---- delete('Xlib.vim') enddef ! def Test_import_fails() writefile([], 'Xfoo.vim') var lines =<< trim END import './Xfoo.vim' as foo *************** *** 1572,1578 **** That() END CheckDefAndScriptFailure(lines, ['E1094:', 'E1236: Cannot use That itself']) ! delete('Xthat.vim') enddef func g:Trigger() --- 1572,1605 ---- That() END CheckDefAndScriptFailure(lines, ['E1094:', 'E1236: Cannot use That itself']) ! ! 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() *** ../vim-8.2.4024/src/version.c 2022-01-07 12:45:24.115723150 +0000 --- src/version.c 2022-01-07 13:18:40.998838390 +0000 *************** *** 752,753 **** --- 752,755 ---- { /* Add new patch number below this line */ + /**/ + 4025, /**/ -- If you're sending someone Styrofoam, what do you pack it in? /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///