summaryrefslogtreecommitdiff
path: root/src/if_ruby.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-06-11 22:26:53 +0200
committerBram Moolenaar <Bram@vim.org>2016-06-11 22:26:53 +0200
commit06469e979fe524ac6cb8f705ed4221aa267de11d (patch)
treece8c06e78fe2b30c603c64a2a093c25094c50565 /src/if_ruby.c
parent724f2edf75bf084665b3e2cdfa7ab66ccb1b5c0c (diff)
downloadvim-git-06469e979fe524ac6cb8f705ed4221aa267de11d.tar.gz
patch 7.4.1922v7.4.1922
Problem: Ruby 2.4.0 unifies Fixnum and Bignum into Integer. Solution: Use rb_cInteger. (Weiong Mao)
Diffstat (limited to 'src/if_ruby.c')
-rw-r--r--src/if_ruby.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/if_ruby.c b/src/if_ruby.c
index 90e814ec1..7e49906b6 100644
--- a/src/if_ruby.c
+++ b/src/if_ruby.c
@@ -31,6 +31,10 @@
# define RUBYEXTERN extern
#endif
+# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 24
+ # define USE_RUBY_Integer
+#endif
+
#ifdef DYNAMIC_RUBY
/*
* This is tricky. In ruby.h there is (inline) function rb_class_of()
@@ -39,6 +43,9 @@
*/
# define rb_cFalseClass (*dll_rb_cFalseClass)
# define rb_cFixnum (*dll_rb_cFixnum)
+# if defined(USE_RUBY_Integer)
+# define rb_cInteger (*dll_rb_cInteger)
+# endif
# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20
# define rb_cFloat (*dll_rb_cFloat)
# endif
@@ -318,6 +325,9 @@ static void ruby_vim_init(void);
static VALUE (*dll_rb_assoc_new) (VALUE, VALUE);
VALUE *dll_rb_cFalseClass;
VALUE *dll_rb_cFixnum;
+# if defined(USE_RUBY_Integer)
+VALUE *dll_rb_cInteger;
+# endif
# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20
VALUE *dll_rb_cFloat;
# endif
@@ -505,6 +515,9 @@ static struct
{"rb_assoc_new", (RUBY_PROC*)&dll_rb_assoc_new},
{"rb_cFalseClass", (RUBY_PROC*)&dll_rb_cFalseClass},
{"rb_cFixnum", (RUBY_PROC*)&dll_rb_cFixnum},
+# if defined(USE_RUBY_Integer)
+ {"rb_cInteger", (RUBY_PROC*)&dll_rb_cInteger},
+# endif
# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20
{"rb_cFloat", (RUBY_PROC*)&dll_rb_cFloat},
# endif