Mercurial > vim
diff src/evalfunc.c @ 16103:518f44125207 v8.1.1056
patch 8.1.1056: no eval function for Ruby
commit https://github.com/vim/vim/commit/e99be0e6d28fad96efd2b2be23fa38e7559e80e1
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Mar 26 22:51:09 2019 +0100
patch 8.1.1056: no eval function for Ruby
Problem: No eval function for Ruby.
Solution: Add rubyeval(). (Ozaki Kiichi, closes https://github.com/vim/vim/issues/4152)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 26 Mar 2019 23:00:07 +0100 |
parents | d13aa9c5a1d1 |
children | 0375e54f0adc |
line wrap: on
line diff
--- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -338,6 +338,9 @@ static void f_reverse(typval_T *argvars, #ifdef FEAT_FLOAT static void f_round(typval_T *argvars, typval_T *rettv); #endif +#ifdef FEAT_RUBY +static void f_rubyeval(typval_T *argvars, typval_T *rettv); +#endif static void f_screenattr(typval_T *argvars, typval_T *rettv); static void f_screenchar(typval_T *argvars, typval_T *rettv); static void f_screencol(typval_T *argvars, typval_T *rettv); @@ -829,6 +832,9 @@ static struct fst #ifdef FEAT_FLOAT {"round", 1, 1, f_round}, #endif +#ifdef FEAT_RUBY + {"rubyeval", 1, 1, f_rubyeval}, +#endif {"screenattr", 2, 2, f_screenattr}, {"screenchar", 2, 2, f_screenchar}, {"screencol", 0, 0, f_screencol}, @@ -10351,6 +10357,21 @@ f_round(typval_T *argvars, typval_T *ret } #endif +#ifdef FEAT_RUBY +/* + * "rubyeval()" function + */ + static void +f_rubyeval(typval_T *argvars, typval_T *rettv) +{ + char_u *str; + char_u buf[NUMBUFLEN]; + + str = tv_get_string_buf(&argvars[0], buf); + do_rubyeval(str, rettv); +} +#endif + /* * "screenattr()" function */