comparison src/userfunc.c @ 26538:dfa658800f21 v8.2.3798

patch 8.2.3798: a :def callback function postpones an error message Commit: https://github.com/vim/vim/commit/3b309f11db7904efcae0177c2825597042c07427 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Dec 13 18:19:55 2021 +0000 patch 8.2.3798: a :def callback function postpones an error message Problem: A :def callback function postpones an error message. Solution: Display the error after calling the function. (closes https://github.com/vim/vim/issues/9340)
author Bram Moolenaar <Bram@vim.org>
date Mon, 13 Dec 2021 19:30:03 +0100
parents 28745eec1dda
children 682ff45f289f
comparison
equal deleted inserted replaced
26537:22dbda400a1d 26538:dfa658800f21
3171 funcexe.fe_evaluate = TRUE; 3171 funcexe.fe_evaluate = TRUE;
3172 funcexe.fe_partial = callback->cb_partial; 3172 funcexe.fe_partial = callback->cb_partial;
3173 ++callback_depth; 3173 ++callback_depth;
3174 ret = call_func(callback->cb_name, len, rettv, argcount, argvars, &funcexe); 3174 ret = call_func(callback->cb_name, len, rettv, argcount, argvars, &funcexe);
3175 --callback_depth; 3175 --callback_depth;
3176
3177 // When a :def function was called that uses :try an error would be turned
3178 // into an exception. Need to give the error here.
3179 if (need_rethrow && current_exception != NULL)
3180 {
3181 need_rethrow = FALSE;
3182 handle_did_throw();
3183 }
3184
3176 return ret; 3185 return ret;
3177 } 3186 }
3178 3187
3179 /* 3188 /*
3180 * call the 'callback' function and return the result as a number. 3189 * call the 'callback' function and return the result as a number.