From 90d1260cb84c917653987c0dfdfa150b617f5a0f Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Thu, 13 Mar 2025 08:46:47 +0800 Subject: vim-patch:9.1.1195: inside try-block: fn body executed with default arg undefined (#32866) Problem: inside try-block: fn body executed when default arg is undefined Solution: When inside a try-block do not execute function body after an error in evaluating a default argument expression (Shane Harper). closes: vim/vim#16865 https://github.com/vim/vim/commit/2d18789aa67cc60072ea0cf21811c403fa0b2c7b Co-authored-by: Shane Harper --- src/nvim/eval/userfunc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/nvim/eval/userfunc.c') diff --git a/src/nvim/eval/userfunc.c b/src/nvim/eval/userfunc.c index c5357d507c..89bb1dca9b 100644 --- a/src/nvim/eval/userfunc.c +++ b/src/nvim/eval/userfunc.c @@ -1246,7 +1246,7 @@ void call_user_func(ufunc_T *fp, int argcount, typval_T *argvars, typval_T *rett int save_did_emsg = did_emsg; did_emsg = false; - if (default_arg_err && (fp->uf_flags & FC_ABORT)) { + if (default_arg_err && (fp->uf_flags & FC_ABORT || trylevel > 0)) { did_emsg = true; } else if (islambda) { char *p = *(char **)fp->uf_lines.ga_data + 7; -- cgit