Mercurial > vim
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. |