diff options
author | Marco Hinz <mh.codebro@gmail.com> | 2018-12-12 03:22:45 +0100 |
---|---|---|
committer | Marco Hinz <mh.codebro@gmail.com> | 2018-12-12 21:59:02 +0100 |
commit | 5062d8e0dd47aa36c568bf8763d6f9054cbcec97 (patch) | |
tree | cb6aee7060a1bd3959b9c3e7701e7e1bc862122e /src | |
parent | 2f3a18695e41ec6afa98194b22d064ec81154dbf (diff) | |
download | rneovim-5062d8e0dd47aa36c568bf8763d6f9054cbcec97.tar.gz rneovim-5062d8e0dd47aa36c568bf8763d6f9054cbcec97.tar.bz2 rneovim-5062d8e0dd47aa36c568bf8763d6f9054cbcec97.zip |
provider: make :ruby provider check use same code path as :python
Prior to this change, the provider check for ruby was special-cased and now it
returns E319, like :python etc.
References #9354
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 cd29e4ef19..d67818aa81 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -10802,17 +10802,6 @@ static void f_has(typval_T *argvars, typval_T *rettv, FunPtr fptr) n = true; } - if (STRICMP(name, "ruby") == 0 && n == true) { - char *rubyhost = call_func_retstr("provider#ruby#Detect", 0, NULL, true); - if (rubyhost) { - if (*rubyhost == NUL) { - // Invalid rubyhost executable. Gem is probably not installed. - n = false; - } - xfree(rubyhost); - } - } - rettv->vval.v_number = n; } @@ -22770,7 +22759,18 @@ bool eval_has_provider(const char *name) CHECK_PROVIDER(python); return has_python; } else if (strequal(name, "ruby")) { + bool need_check_ruby = (has_ruby == -1); CHECK_PROVIDER(ruby); + if (need_check_ruby && has_ruby == 1) { + char *rubyhost = call_func_retstr("provider#ruby#Detect", 0, NULL, true); + if (rubyhost) { + if (*rubyhost == NUL) { + // Invalid rubyhost executable. Gem is probably not installed. + has_ruby = 0; + } + xfree(rubyhost); + } + } return has_ruby; } |