Mercurial > vim
diff 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 |
line wrap: on
line diff
--- a/src/userfunc.c +++ b/src/userfunc.c @@ -3173,6 +3173,15 @@ call_callback( ++callback_depth; ret = call_func(callback->cb_name, len, rettv, argcount, argvars, &funcexe); --callback_depth; + + // When a :def function was called that uses :try an error would be turned + // into an exception. Need to give the error here. + if (need_rethrow && current_exception != NULL) + { + need_rethrow = FALSE; + handle_did_throw(); + } + return ret; }