diff options
author | Thiago de Arruda <tpadilha84@gmail.com> | 2015-11-04 09:41:34 -0300 |
---|---|---|
committer | Thiago de Arruda <tpadilha84@gmail.com> | 2015-11-09 09:41:08 -0300 |
commit | 80a44c0525fae6bee396242d2d2e887bfe5ad1a6 (patch) | |
tree | 4b1a96e931139cbfa784ce718f5d6b140dd45a59 /src | |
parent | f65e7bf30c8a00696d5740e35d0f84b9aa648b99 (diff) | |
download | rneovim-80a44c0525fae6bee396242d2d2e887bfe5ad1a6.tar.gz rneovim-80a44c0525fae6bee396242d2d2e887bfe5ad1a6.tar.bz2 rneovim-80a44c0525fae6bee396242d2d2e887bfe5ad1a6.zip |
eval: Extract `find_ufunc` from `get_dict_callback`
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/eval.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 4cb3f58dbb..a0341ab35f 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -6264,7 +6264,16 @@ static bool get_dict_callback(dict_T *d, char *key, ufunc_T **result) return false; } - uint8_t *name = di->di_tv.vval.v_string; + if ((*result = find_ufunc(di->di_tv.vval.v_string)) == NULL) { + return false; + } + + (*result)->uf_refcount++; + return true; +} + +static ufunc_T *find_ufunc(uint8_t *name) +{ uint8_t *n = name; ufunc_T *rv = NULL; if (*n > '9' || *n < '0') { @@ -6276,16 +6285,7 @@ static bool get_dict_callback(dict_T *d, char *key, ufunc_T **result) // dict function, name is already translated rv = find_func(n); } - - if (!rv) { - EMSG2(_("Function %s doesn't exist"), name); - *result = NULL; - return false; - } - rv->uf_refcount++; - - *result = rv; - return true; + return rv; } /* |