diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/eval.c | 10 | ||||
-rw-r--r-- | src/nvim/ex_cmds2.c | 7 |
2 files changed, 11 insertions, 6 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index d67818aa81..5191328b5d 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -22683,6 +22683,16 @@ static void script_host_eval(char *name, typval_T *argvars, typval_T *rettv) typval_T eval_call_provider(char *provider, char *method, list_T *arguments) { + if (!eval_has_provider(provider)) { + emsgf("E319: No \"%s\" provider found. Run \":checkhealth provider\"", + provider); + return (typval_T){ + .v_type = VAR_NUMBER, + .v_lock = VAR_UNLOCKED, + .vval.v_number = (varnumber_T)0 + }; + } + char func[256]; int name_len = snprintf(func, sizeof(func), "provider#%s#Call", provider); diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c index 1ffcf67ef7..dd7afa5c77 100644 --- a/src/nvim/ex_cmds2.c +++ b/src/nvim/ex_cmds2.c @@ -3908,12 +3908,7 @@ static void script_host_execute(char *name, exarg_T *eap) tv_list_append_number(args, (int)eap->line1); tv_list_append_number(args, (int)eap->line2); - if (!eval_has_provider(name)) { - emsgf("E319: No \"%s\" provider found. Run \":checkhealth provider\"", - name); - } else { - (void)eval_call_provider(name, "execute", args); - } + (void)eval_call_provider(name, "execute", args); } } |