diff options
author | Thiago de Arruda <tpadilha84@gmail.com> | 2014-09-18 22:37:59 -0300 |
---|---|---|
committer | Thiago de Arruda <tpadilha84@gmail.com> | 2014-09-18 22:37:59 -0300 |
commit | 53d15c2c25199f8e44e9a8a74898f06a85e7c83b (patch) | |
tree | c7d53772706ed78bee255100b328db11e3dc867e /src/nvim/eval.c | |
parent | 67a16384a46c5eb51ba43d9150e95a1742cffbde (diff) | |
parent | 4a8b52ea08bb5cf501cd20bce4744ae6c7edd9b1 (diff) | |
download | rneovim-53d15c2c25199f8e44e9a8a74898f06a85e7c83b.tar.gz rneovim-53d15c2c25199f8e44e9a8a74898f06a85e7c83b.tar.bz2 rneovim-53d15c2c25199f8e44e9a8a74898f06a85e7c83b.zip |
Merge PR #1199 'Improvements to API error handling'
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r-- | src/nvim/eval.c | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 760457b54e..a119cd6eac 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -12471,25 +12471,18 @@ static void f_rpcrequest(typval_T *argvars, typval_T *rettv) ADD(args, vim_to_object(tv)); } - bool errored; - Object result; - if (!channel_send_call((uint64_t)argvars[0].vval.v_number, - (char *)argvars[1].vval.v_string, - args, - &result, - &errored)) { - EMSG2(_(e_invarg2), "Channel doesn't exist"); - return; - } - - if (errored) { - vim_report_error(result.data.string); + Error err = ERROR_INIT; + Object result = channel_send_call((uint64_t)argvars[0].vval.v_number, + (char *)argvars[1].vval.v_string, + args, + &err); + if (err.set) { + vim_report_error(cstr_as_string(err.msg)); goto end; } - - Error conversion_error = {.set = false}; - if (!object_to_vim(result, rettv, &conversion_error)) { - EMSG(_("Error converting the call result")); + + if (!object_to_vim(result, rettv, &err)) { + EMSG2(_("Error converting the call result: %s"), err.msg); } end: @@ -19442,7 +19435,7 @@ static void script_host_eval(char *method, typval_T *argvars, typval_T *rettv) return; } - Error err = {.set = false}; + Error err = ERROR_INIT; object_to_vim(result, rettv, &err); api_free_object(result); |