patch 8.1.1056: no eval function for Ruby
Problem: No eval function for Ruby.
Solution: Add rubyeval(). (Ozaki Kiichi, closes #4152)
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 733d45a..c1a32f3 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -338,6 +338,9 @@
#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 @@
#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 @@
}
#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
*/