diff options
author | lonerover <pathfinder1644@yahoo.com> | 2017-01-05 20:55:32 +0800 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2017-01-05 13:55:32 +0100 |
commit | 12b50b116f305dcc454a594fa25a5e9934b48d01 (patch) | |
tree | 08b6e267d533668c27bf9cd71a70e51c2f6a7e9c | |
parent | e21aef1e1002581dc653176eb3d7d4f2b06424f8 (diff) | |
download | rneovim-12b50b116f305dcc454a594fa25a5e9934b48d01.tar.gz rneovim-12b50b116f305dcc454a594fa25a5e9934b48d01.tar.bz2 rneovim-12b50b116f305dcc454a594fa25a5e9934b48d01.zip |
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.
https://github.com/vim/vim/commit/eac784eced501c54d2c99e18a1af96cd996f3a6c
-rw-r--r-- | src/nvim/ex_docmd.c | 2 | ||||
-rw-r--r-- | src/nvim/testdir/test_usercommands.vim | 30 | ||||
-rw-r--r-- | src/nvim/version.c | 2 |
3 files changed, 32 insertions, 2 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index 79a0b5849f..2c60cd0189 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -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) { diff --git a/src/nvim/testdir/test_usercommands.vim b/src/nvim/testdir/test_usercommands.vim index f593d16dbf..facd675f88 100644 --- a/src/nvim/testdir/test_usercommands.vim +++ b/src/nvim/testdir/test_usercommands.vim @@ -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 diff --git a/src/nvim/version.c b/src/nvim/version.c index cc97de8422..884b7c9bf5 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -330,7 +330,7 @@ static int included_patches[] = { // 2113, 2112, // 2111, - // 2110, + 2110, 2109, // 2108 NA // 2107, |