1
0
forked from aniani/vim

patch 8.2.4147: E464 does not always include the offending command

Problem:    E464 does not always include the offending command.
Solution:   Add another error message with "%s". (closes #9564)
This commit is contained in:
Bram Moolenaar
2022-01-19 20:48:37 +00:00
parent f67c717e34
commit bed34f0a8a
5 changed files with 36 additions and 2 deletions

View File

@@ -1148,6 +1148,8 @@ EXTERN char e_region_is_guarded_cannot_modify[]
#endif #endif
EXTERN char e_ambiguous_use_of_user_defined_command[] EXTERN char e_ambiguous_use_of_user_defined_command[]
INIT(= N_("E464: Ambiguous use of user-defined command")); INIT(= N_("E464: Ambiguous use of user-defined command"));
EXTERN char e_ambiguous_use_of_user_defined_command_str[]
INIT(= N_("E464: Ambiguous use of user-defined command: %s"));
EXTERN char e_winsize_requires_two_number_arguments[] EXTERN char e_winsize_requires_two_number_arguments[]
INIT(= N_("E465: :winsize requires two number arguments")); INIT(= N_("E465: :winsize requires two number arguments"));
EXTERN char e_winpos_requires_two_number_arguments[] EXTERN char e_winpos_requires_two_number_arguments[]

View File

@@ -2614,7 +2614,7 @@ doend:
if (errormsg != NULL && *errormsg != NUL && !did_emsg) if (errormsg != NULL && *errormsg != NUL && !did_emsg)
{ {
if (sourcing) if (sourcing || !KeyTyped)
{ {
if (errormsg != (char *)IObuff) if (errormsg != (char *)IObuff)
{ {

View File

@@ -3664,6 +3664,36 @@ def ProfiledNestedProfiled()
Nested() Nested()
enddef enddef
def Test_ambigous_command_error()
var lines =<< trim END
vim9script
command CmdA echomsg 'CmdA'
command CmdB echomsg 'CmdB'
Cmd
END
CheckScriptFailure(lines, 'E464: Ambiguous use of user-defined command: Cmd', 4)
lines =<< trim END
vim9script
def Func()
Cmd
enddef
Func()
END
CheckScriptFailure(lines, 'E464: Ambiguous use of user-defined command: Cmd', 1)
lines =<< trim END
vim9script
nnoremap <F3> <ScriptCmd>Cmd<CR>
feedkeys("\<F3>", 'xt')
END
CheckScriptFailure(lines, 'E464: Ambiguous use of user-defined command: Cmd', 3)
delcommand CmdA
delcommand CmdB
nunmap <F3>
enddef
" Execute this near the end, profiling doesn't stop until Vim exits. " Execute this near the end, profiling doesn't stop until Vim exits.
" This only tests that it works, not the profiling output. " This only tests that it works, not the profiling output.
def Test_xx_profile_with_lambda() def Test_xx_profile_with_lambda()

View File

@@ -750,6 +750,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 */
/**/
4147,
/**/ /**/
4146, 4146,
/**/ /**/

View File

@@ -2878,7 +2878,7 @@ compile_def_function(
if (p == NULL) if (p == NULL)
{ {
if (cctx.ctx_skip != SKIP_YES) if (cctx.ctx_skip != SKIP_YES)
emsg(_(e_ambiguous_use_of_user_defined_command)); semsg(_(e_ambiguous_use_of_user_defined_command_str), ea.cmd);
goto erret; goto erret;
} }