# HG changeset patch # User Bram Moolenaar # Date 1369047149 -7200 # Node ID 92fec4b83be56a65ed81f25885717f6db7639854 # Parent 0917206e731734753ed4c52bcf55eb9bb768394e updated for version 7.3.974 Problem: Can't build with ruby 1.8.5. Solution: Only use ruby_init_stack() when RUBY_INIT_STACK is defined. (Yukihiro Nakadaira) diff --git a/src/if_ruby.c b/src/if_ruby.c --- a/src/if_ruby.c +++ b/src/if_ruby.c @@ -158,8 +158,10 @@ static void error_print(int); static void ruby_io_init(void); static void ruby_vim_init(void); -#if defined(__ia64) && !defined(ruby_init_stack) -# define ruby_init_stack(addr) ruby_init_stack((addr), rb_ia64_bsp()) +#if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK) +# if defined(__ia64) && !defined(ruby_init_stack) +# define ruby_init_stack(addr) ruby_init_stack((addr), rb_ia64_bsp()) +# endif #endif #if defined(DYNAMIC_RUBY) || defined(PROTO) @@ -231,12 +233,14 @@ static void ruby_vim_init(void); # define rb_float_new dll_rb_float_new # define rb_ary_new dll_rb_ary_new # define rb_ary_push dll_rb_ary_push -# ifdef __ia64 -# define rb_ia64_bsp dll_rb_ia64_bsp -# undef ruby_init_stack -# define ruby_init_stack(addr) dll_ruby_init_stack((addr), rb_ia64_bsp()) -# else -# define ruby_init_stack dll_ruby_init_stack +# if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK) +# ifdef __ia64 +# define rb_ia64_bsp dll_rb_ia64_bsp +# undef ruby_init_stack +# define ruby_init_stack(addr) dll_ruby_init_stack((addr), rb_ia64_bsp()) +# else +# define ruby_init_stack dll_ruby_init_stack +# endif # endif # else # define rb_str2cstr dll_rb_str2cstr @@ -346,11 +350,13 @@ static char * (*dll_rb_string_value_ptr) static VALUE (*dll_rb_float_new) (double); static VALUE (*dll_rb_ary_new) (void); static VALUE (*dll_rb_ary_push) (VALUE, VALUE); -# ifdef __ia64 +# if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK) +# ifdef __ia64 static void * (*dll_rb_ia64_bsp) (void); static void (*dll_ruby_init_stack)(VALUE*, void*); -# else +# else static void (*dll_ruby_init_stack)(VALUE*); +# endif # endif # endif # ifdef RUBY19_OR_LATER @@ -491,10 +497,6 @@ static struct # endif # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 {"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr}, -# ifdef __ia64 - {"rb_ia64_bsp", (RUBY_PROC*)&dll_rb_ia64_bsp}, -# endif - {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack}, # if DYNAMIC_RUBY_VER <= 19 {"rb_float_new", (RUBY_PROC*)&dll_rb_float_new}, # else @@ -513,6 +515,12 @@ static struct {"rb_require", (RUBY_PROC*)&dll_rb_require}, {"ruby_process_options", (RUBY_PROC*)&dll_ruby_process_options}, # endif +# if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK) +# ifdef __ia64 + {"rb_ia64_bsp", (RUBY_PROC*)&dll_rb_ia64_bsp}, +# endif + {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack}, +# endif {"", NULL}, }; @@ -735,7 +743,7 @@ static int ensure_ruby_initialized(void) NtInitialize(&argc, &argv); #endif { -#if defined(RUBY_VERSION) && RUBY_VERSION >= 18 +#if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK) ruby_init_stack(ruby_stack_start); #endif ruby_init(); diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 974, +/**/ 973, /**/ 972,