comparison src/if_ruby.c @ 4452:92fec4b83be5 v7.3.974

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)
author Bram Moolenaar <bram@vim.org>
date Mon, 20 May 2013 12:52:29 +0200
parents e7361b2d8136
children e61a2b709f69
comparison
equal deleted inserted replaced
4451:0917206e7317 4452:92fec4b83be5
156 static int ensure_ruby_initialized(void); 156 static int ensure_ruby_initialized(void);
157 static void error_print(int); 157 static void error_print(int);
158 static void ruby_io_init(void); 158 static void ruby_io_init(void);
159 static void ruby_vim_init(void); 159 static void ruby_vim_init(void);
160 160
161 #if defined(__ia64) && !defined(ruby_init_stack) 161 #if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK)
162 # define ruby_init_stack(addr) ruby_init_stack((addr), rb_ia64_bsp()) 162 # if defined(__ia64) && !defined(ruby_init_stack)
163 # define ruby_init_stack(addr) ruby_init_stack((addr), rb_ia64_bsp())
164 # endif
163 #endif 165 #endif
164 166
165 #if defined(DYNAMIC_RUBY) || defined(PROTO) 167 #if defined(DYNAMIC_RUBY) || defined(PROTO)
166 # ifdef PROTO 168 # ifdef PROTO
167 # define HINSTANCE int /* for generating prototypes */ 169 # define HINSTANCE int /* for generating prototypes */
229 # define rb_string_value dll_rb_string_value 231 # define rb_string_value dll_rb_string_value
230 # define rb_string_value_ptr dll_rb_string_value_ptr 232 # define rb_string_value_ptr dll_rb_string_value_ptr
231 # define rb_float_new dll_rb_float_new 233 # define rb_float_new dll_rb_float_new
232 # define rb_ary_new dll_rb_ary_new 234 # define rb_ary_new dll_rb_ary_new
233 # define rb_ary_push dll_rb_ary_push 235 # define rb_ary_push dll_rb_ary_push
234 # ifdef __ia64 236 # if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK)
235 # define rb_ia64_bsp dll_rb_ia64_bsp 237 # ifdef __ia64
236 # undef ruby_init_stack 238 # define rb_ia64_bsp dll_rb_ia64_bsp
237 # define ruby_init_stack(addr) dll_ruby_init_stack((addr), rb_ia64_bsp()) 239 # undef ruby_init_stack
238 # else 240 # define ruby_init_stack(addr) dll_ruby_init_stack((addr), rb_ia64_bsp())
239 # define ruby_init_stack dll_ruby_init_stack 241 # else
242 # define ruby_init_stack dll_ruby_init_stack
243 # endif
240 # endif 244 # endif
241 # else 245 # else
242 # define rb_str2cstr dll_rb_str2cstr 246 # define rb_str2cstr dll_rb_str2cstr
243 # endif 247 # endif
244 # ifdef RUBY19_OR_LATER 248 # ifdef RUBY19_OR_LATER
344 # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 348 # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
345 static char * (*dll_rb_string_value_ptr) (volatile VALUE*); 349 static char * (*dll_rb_string_value_ptr) (volatile VALUE*);
346 static VALUE (*dll_rb_float_new) (double); 350 static VALUE (*dll_rb_float_new) (double);
347 static VALUE (*dll_rb_ary_new) (void); 351 static VALUE (*dll_rb_ary_new) (void);
348 static VALUE (*dll_rb_ary_push) (VALUE, VALUE); 352 static VALUE (*dll_rb_ary_push) (VALUE, VALUE);
349 # ifdef __ia64 353 # if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK)
354 # ifdef __ia64
350 static void * (*dll_rb_ia64_bsp) (void); 355 static void * (*dll_rb_ia64_bsp) (void);
351 static void (*dll_ruby_init_stack)(VALUE*, void*); 356 static void (*dll_ruby_init_stack)(VALUE*, void*);
352 # else 357 # else
353 static void (*dll_ruby_init_stack)(VALUE*); 358 static void (*dll_ruby_init_stack)(VALUE*);
359 # endif
354 # endif 360 # endif
355 # endif 361 # endif
356 # ifdef RUBY19_OR_LATER 362 # ifdef RUBY19_OR_LATER
357 static VALUE (*dll_rb_int2big)(SIGNED_VALUE); 363 static VALUE (*dll_rb_int2big)(SIGNED_VALUE);
358 # endif 364 # endif
489 {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf}, 495 {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
490 # endif 496 # endif
491 # endif 497 # endif
492 # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 498 # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
493 {"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr}, 499 {"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr},
494 # ifdef __ia64
495 {"rb_ia64_bsp", (RUBY_PROC*)&dll_rb_ia64_bsp},
496 # endif
497 {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
498 # if DYNAMIC_RUBY_VER <= 19 500 # if DYNAMIC_RUBY_VER <= 19
499 {"rb_float_new", (RUBY_PROC*)&dll_rb_float_new}, 501 {"rb_float_new", (RUBY_PROC*)&dll_rb_float_new},
500 # else 502 # else
501 {"rb_float_new_in_heap", (RUBY_PROC*)&dll_rb_float_new}, 503 {"rb_float_new_in_heap", (RUBY_PROC*)&dll_rb_float_new},
502 # endif 504 # endif
510 {"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find}, 512 {"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find},
511 {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new}, 513 {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
512 {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf}, 514 {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
513 {"rb_require", (RUBY_PROC*)&dll_rb_require}, 515 {"rb_require", (RUBY_PROC*)&dll_rb_require},
514 {"ruby_process_options", (RUBY_PROC*)&dll_ruby_process_options}, 516 {"ruby_process_options", (RUBY_PROC*)&dll_ruby_process_options},
517 # endif
518 # if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK)
519 # ifdef __ia64
520 {"rb_ia64_bsp", (RUBY_PROC*)&dll_rb_ia64_bsp},
521 # endif
522 {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
515 # endif 523 # endif
516 {"", NULL}, 524 {"", NULL},
517 }; 525 };
518 526
519 /* 527 /*
733 int argc = 1; 741 int argc = 1;
734 char *argv[] = {"gvim.exe"}; 742 char *argv[] = {"gvim.exe"};
735 NtInitialize(&argc, &argv); 743 NtInitialize(&argc, &argv);
736 #endif 744 #endif
737 { 745 {
738 #if defined(RUBY_VERSION) && RUBY_VERSION >= 18 746 #if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK)
739 ruby_init_stack(ruby_stack_start); 747 ruby_init_stack(ruby_stack_start);
740 #endif 748 #endif
741 ruby_init(); 749 ruby_init();
742 } 750 }
743 #ifdef RUBY19_OR_LATER 751 #ifdef RUBY19_OR_LATER