From 218beb3e96bcb7b20395be3bec6076c767be71a1 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 4 Aug 2018 17:24:44 +0200 Subject: patch 8.1.0239: now Ruby build fails on other systems Problem: Now Ruby build fails on other systems. Solution: Always define rb_intern. (Ken Takata, closes #3275) --- src/if_ruby.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) (limited to 'src/if_ruby.c') diff --git a/src/if_ruby.c b/src/if_ruby.c index 63f7312503..450f34a0b7 100644 --- a/src/if_ruby.c +++ b/src/if_ruby.c @@ -253,12 +253,12 @@ static void ruby_vim_init(void); # define rb_hash_new dll_rb_hash_new # define rb_inspect dll_rb_inspect # define rb_int2inum dll_rb_int2inum -# ifndef rb_intern -# define rb_intern dll_rb_intern -# endif -# ifdef RUBY_CONST_ID_CACHE -# define rb_intern2 dll_rb_intern2 -# endif + +// ruby.h may redefine rb_intern to use RUBY_CONST_ID_CACHE(), but that won't +// work. Not using the cache appears to be the best solution. +# undef rb_intern +# define rb_intern dll_rb_intern + # if VIM_SIZEOF_INT < VIM_SIZEOF_LONG /* 64 bits only */ # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER <= 18 # define rb_fix2int dll_rb_fix2int @@ -394,9 +394,6 @@ static VALUE (*dll_rb_hash_new) (void); static VALUE (*dll_rb_inspect) (VALUE); static VALUE (*dll_rb_int2inum) (long); static ID (*dll_rb_intern) (const char*); -# ifdef RUBY_CONST_ID_CACHE -static ID (*dll_rb_intern2) (const char*, long); -# endif # if VIM_SIZEOF_INT < VIM_SIZEOF_LONG /* 64 bits only */ static long (*dll_rb_fix2int) (VALUE); static long (*dll_rb_num2int) (VALUE); @@ -597,9 +594,6 @@ static struct {"rb_inspect", (RUBY_PROC*)&dll_rb_inspect}, {"rb_int2inum", (RUBY_PROC*)&dll_rb_int2inum}, {"rb_intern", (RUBY_PROC*)&dll_rb_intern}, -# ifdef RUBY_CONST_ID_CACHE - {"rb_intern2", (RUBY_PROC*)&dll_rb_intern2}, -# endif # if VIM_SIZEOF_INT < VIM_SIZEOF_LONG /* 64 bits only */ {"rb_fix2int", (RUBY_PROC*)&dll_rb_fix2int}, {"rb_num2int", (RUBY_PROC*)&dll_rb_num2int}, -- cgit v1.2.3