1
0
forked from aniani/vim

patch 7.4.2110

Problem:    When there is an CmdUndefined autocmd then the error for a missing
            command is E464 instead of E492. (Manuel Ortega)
Solution:   Don't let the pointer be NULL.
This commit is contained in:
Bram Moolenaar 2016-07-28 22:08:24 +02:00
parent ad9c2a08f0
commit eac784eced
3 changed files with 33 additions and 1 deletions

View File

@ -2343,7 +2343,7 @@ do_one_cmd(
vim_free(p);
/* If the autocommands did something and didn't cause an error, try
* finding the command again. */
p = (ret && !aborting()) ? find_command(&ea, NULL) : NULL;
p = (ret && !aborting()) ? find_command(&ea, NULL) : ea.cmd;
}
#endif

View File

@ -46,3 +46,33 @@ function Test_cmdmods()
delcommand MyQCmd
unlet g:mods
endfunction
func Test_Ambiguous()
command Doit let g:didit = 'yes'
command Dothat let g:didthat = 'also'
call assert_fails('Do', 'E464:')
Doit
call assert_equal('yes', g:didit)
Dothat
call assert_equal('also', g:didthat)
unlet g:didit
unlet g:didthat
delcommand Doit
Do
call assert_equal('also', g:didthat)
delcommand Dothat
endfunc
func Test_CmdUndefined()
call assert_fails('Doit', 'E492:')
au CmdUndefined Doit :command Doit let g:didit = 'yes'
Doit
call assert_equal('yes', g:didit)
delcommand Doit
call assert_fails('Dothat', 'E492:')
au CmdUndefined * let g:didnot = 'yes'
call assert_fails('Dothat', 'E492:')
call assert_equal('yes', g:didnot)
endfunc

View File

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