mirror of
https://github.com/vim/vim.git
synced 2025-09-07 22:03:36 -04:00
patch 8.2.4505: Vim9: outdated "autocmd nested" still works
Problem: Vim9: outdated "autocmd nested" still works. Solution: Do not accept the :autocmd argument "nested" without "++" in Vim9 script.
This commit is contained in:
parent
196c3850db
commit
f07751457c
@ -921,16 +921,30 @@ do_autocmd(exarg_T *eap, char_u *arg_in, int forceit)
|
||||
if ((STRNCMP(cmd, "++nested", 8) == 0 && VIM_ISWHITE(cmd[8])))
|
||||
{
|
||||
if (nested)
|
||||
{
|
||||
semsg(_(e_duplicate_argument_str), "++nested");
|
||||
return;
|
||||
}
|
||||
nested = TRUE;
|
||||
cmd = skipwhite(cmd + 8);
|
||||
}
|
||||
|
||||
// Check for the old "nested" flag.
|
||||
// Check for the old "nested" flag in legacy script.
|
||||
if (STRNCMP(cmd, "nested", 6) == 0 && VIM_ISWHITE(cmd[6]))
|
||||
{
|
||||
if (in_vim9script())
|
||||
{
|
||||
// If there ever is a :nested command this error should
|
||||
// be removed and "nested" accepted as the start of the
|
||||
// command.
|
||||
emsg(_(e_invalid_command_nested_did_you_mean_plusplus_nested));
|
||||
return;
|
||||
}
|
||||
if (nested)
|
||||
{
|
||||
semsg(_(e_duplicate_argument_str), "nested");
|
||||
return;
|
||||
}
|
||||
nested = TRUE;
|
||||
cmd = skipwhite(cmd + 6);
|
||||
}
|
||||
|
@ -2786,7 +2786,10 @@ EXTERN char e_this_vim_is_not_compiled_with_float_support[]
|
||||
# endif
|
||||
EXTERN char e_missing_argument_type_for_str[]
|
||||
INIT(= N_("E1077: Missing argument type for %s"));
|
||||
// E1078 unused
|
||||
#endif
|
||||
EXTERN char e_invalid_command_nested_did_you_mean_plusplus_nested[]
|
||||
INIT(= N_("E1078: Invalid command \"nested\", did you mean \"++nested\"?"));
|
||||
#ifdef FEAT_EVAL
|
||||
EXTERN char e_cannot_declare_variable_on_command_line[]
|
||||
INIT(= N_("E1079: Cannot declare a variable on the command line"));
|
||||
EXTERN char e_invalid_assignment[]
|
||||
|
@ -2116,6 +2116,9 @@ func Test_autocmd_nested()
|
||||
close
|
||||
bwipe! somefile
|
||||
|
||||
" nested without ++ does not work in Vim9 script
|
||||
call assert_fails('vim9cmd au WinNew * nested echo fails', 'E1078:')
|
||||
|
||||
augroup Testing
|
||||
au!
|
||||
augroup END
|
||||
|
@ -754,6 +754,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
4505,
|
||||
/**/
|
||||
4504,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user