summaryrefslogtreecommitdiff
path: root/src/if_ruby.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2013-04-14 16:19:03 +0200
committerBram Moolenaar <Bram@vim.org>2013-04-14 16:19:03 +0200
commit0bcdd6e70932cf689a6a49f514d7b893468b492d (patch)
tree1ca8f7028c915bb1683330c28591ff16200bc727 /src/if_ruby.c
parent0187ca0bdf0d7e5afc5ea80b390dc7e1fc983829 (diff)
downloadvim-git-0bcdd6e70932cf689a6a49f514d7b893468b492d.tar.gz
updated for version 7.3.889v7.3.889
Problem: Can't build with Ruby 2.0 on a 64 bit system. Solution: Define rb_fix2int and rb_num2int. (Kohei Suzuki)
Diffstat (limited to 'src/if_ruby.c')
-rw-r--r--src/if_ruby.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/if_ruby.c b/src/if_ruby.c
index d810d3770..514295850 100644
--- a/src/if_ruby.c
+++ b/src/if_ruby.c
@@ -88,6 +88,14 @@
# define rb_int2big rb_int2big_stub
#endif
+#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 \
+ && SIZEOF_INT < SIZEOF_LONG
+/* Ruby 2.0 defines a number of static functions which use rb_fix2int and
+ * rb_num2int if SIZEOF_INT < SIZEOF_LONG (64bit) */
+# define rb_fix2int rb_fix2int_stub
+# define rb_num2int rb_num2int_stub
+#endif
+
#include <ruby.h>
#ifdef RUBY19_OR_LATER
# include <ruby/encoding.h>
@@ -352,6 +360,17 @@ VALUE rb_int2big_stub(SIGNED_VALUE x)
{
return dll_rb_int2big(x);
}
+#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 \
+ && SIZEOF_INT < SIZEOF_LONG
+long rb_fix2int_stub(VALUE x)
+{
+ return dll_rb_fix2int(x);
+}
+long rb_num2int_stub(VALUE x)
+{
+ return dll_rb_num2int(x);
+}
+#endif
#if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20
VALUE
rb_float_new_in_heap(double d)