Patch 8.2.4277 Problem: Vim9: an import does not shadow a command modifier. Solution: Do not accept a command modifier followed by a dot. Files: src/ex_docmd.c, src/testdir/test_vim9_import.vim
*** ../vim-8.2.4276/src/ex_docmd.c 2022-01-29 15:19:19.546172430 +0000 --- src/ex_docmd.c 2022-01-31 18:55:30.079348116 +0000 *************** *** 2709,2715 **** /* * Check for an Ex command with optional tail. * If there is a match advance "pp" to the argument and return TRUE. ! * If "noparen" is TRUE do not recognize the command followed by "(". */ static int checkforcmd_opt( --- 2709,2715 ---- /* * Check for an Ex command with optional tail. * If there is a match advance "pp" to the argument and return TRUE. ! * If "noparen" is TRUE do not recognize the command followed by "(" or ".". */ static int checkforcmd_opt( *************** *** 2723,2730 **** for (i = 0; cmd[i] != NUL; ++i) if (((char_u *)cmd)[i] != (*pp)[i]) break; ! if (i >= len && !isalpha((*pp)[i]) ! && (*pp)[i] != '_' && (!noparen || (*pp)[i] != '(')) { *pp = skipwhite(*pp + i); return TRUE; --- 2723,2730 ---- for (i = 0; cmd[i] != NUL; ++i) if (((char_u *)cmd)[i] != (*pp)[i]) break; ! if (i >= len && !isalpha((*pp)[i]) && (*pp)[i] != '_' ! && (!noparen || ((*pp)[i] != '(' && (*pp)[i] != '.'))) { *pp = skipwhite(*pp + i); return TRUE; *************** *** 2746,2752 **** } /* ! * Check for an Ex command with optional tail, not followed by "(". * If there is a match advance "pp" to the argument and return TRUE. */ int --- 2746,2752 ---- } /* ! * Check for an Ex command with optional tail, not followed by "(" or ".". * If there is a match advance "pp" to the argument and return TRUE. */ int *** ../vim-8.2.4276/src/testdir/test_vim9_import.vim 2022-01-30 18:40:40.535255817 +0000 --- src/testdir/test_vim9_import.vim 2022-01-31 18:54:39.692091224 +0000 *************** *** 142,147 **** --- 142,155 ---- unlet g:imported_func delete('Ximport_lbr.vim') + var import_shadows_cmdmod_lines =<< trim END + vim9script + import './Xexport.vim' as vim9 + vim9.exp_name = 'Shadow' + assert_equal('Shadow', vim9.exp_name) + END + v9.CheckScriptSuccess(import_shadows_cmdmod_lines) + var line_break_before_dot =<< trim END vim9script import './Xexport.vim' as expo *************** *** 365,371 **** assert_fails('source Ximport.vim', 'E46: Cannot change read-only variable "CONST"', '', 3) delete('Ximport.vim') - delete('Ximport3.vim') delete('Xexport.vim') # Check that in a Vim9 script 'cpo' is set to the Vim default. --- 373,378 ---- *** ../vim-8.2.4276/src/version.c 2022-01-31 17:39:45.394105533 +0000 --- src/version.c 2022-01-31 18:24:23.455077073 +0000 *************** *** 748,749 **** --- 748,751 ---- { /* Add new patch number below this line */ + /**/ + 4277, /**/ -- I have read and understood the above. X________________ /// Bram Moolenaar -- b...@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 /// -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_dev/20220131185948.702E71C1918%40moolenaar.net.