diff options
| -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,  | 
