aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-02-16 17:58:57 -0500
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-02-16 18:04:44 -0500
commit1ce4b3c9a7420227c3ecffab782cb8da732998f5 (patch)
tree5877e7e53df06a76de608f5c1669926a5ff22728 /src
parentacc5fd9fac60de4494925be23f873cf98aaa61b0 (diff)
downloadrneovim-1ce4b3c9a7420227c3ecffab782cb8da732998f5.tar.gz
rneovim-1ce4b3c9a7420227c3ecffab782cb8da732998f5.tar.bz2
rneovim-1ce4b3c9a7420227c3ecffab782cb8da732998f5.zip
vim-patch:8.2.0267: no check for a following cmd when calling a function fails
Problem: No check for a following command when calling a function fails. Solution: Also check for a following command when inside a try block. (closes vim/vim#5642) https://github.com/vim/vim/commit/e51bb17dd0d51384375830ee2a1df30c08121443
Diffstat (limited to 'src')
-rw-r--r--src/nvim/eval.c3
-rw-r--r--src/nvim/testdir/test_user_func.vim4
2 files changed, 6 insertions, 1 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index e309c93544..74a5edc0df 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -2852,7 +2852,8 @@ void ex_call(exarg_T *eap)
}
}
- if (!failed) {
+ // When inside :try we need to check for following "| catch".
+ if (!failed || eap->cstack->cs_trylevel > 0) {
// Check for trailing illegal characters and a following command.
if (!ends_excmd(*arg)) {
emsg_severe = TRUE;
diff --git a/src/nvim/testdir/test_user_func.vim b/src/nvim/testdir/test_user_func.vim
index e7a3701386..67701ee3ca 100644
--- a/src/nvim/testdir/test_user_func.vim
+++ b/src/nvim/testdir/test_user_func.vim
@@ -94,3 +94,7 @@ func Test_user_func()
unlet g:retval g:counter
enew!
endfunc
+
+func Test_failed_call_in_try()
+ try | call UnknownFunc() | catch | endtry
+endfunc