mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:7.4.2110 (#5880)
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.
eac784eced
This commit is contained in:
parent
e21aef1e10
commit
12b50b116f
@ -1711,7 +1711,7 @@ static char_u * do_one_cmd(char_u **cmdlinep,
|
||||
xfree(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;
|
||||
}
|
||||
|
||||
if (p == NULL) {
|
||||
|
@ -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
|
||||
|
@ -330,7 +330,7 @@ static int included_patches[] = {
|
||||
// 2113,
|
||||
2112,
|
||||
// 2111,
|
||||
// 2110,
|
||||
2110,
|
||||
2109,
|
||||
// 2108 NA
|
||||
// 2107,
|
||||
|
Loading…
Reference in New Issue
Block a user