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:
parent
ad9c2a08f0
commit
eac784eced
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -758,6 +758,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
2110,
|
||||
/**/
|
||||
2109,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user