| To: vim_dev@googlegroups.com |
| Subject: Patch 7.3.088 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.3.088 |
| Problem: Ruby can't load Gems sometimes, may cause a crash. |
| Solution: Undefine off_t. Use ruby_process_options(). (Yasuhiro Matsumoto) |
| Files: src/if_ruby.c |
| |
| |
| |
| |
| |
| *** 90,95 **** |
| --- 90,96 ---- |
| # include <ruby/encoding.h> |
| #endif |
| |
| + #undef off_t /* ruby defines off_t as _int64, Mingw uses long */ |
| #undef EXTERN |
| #undef _ |
| |
| |
| *** 229,238 **** |
| # define rb_enc_find_index dll_rb_enc_find_index |
| # define rb_enc_find dll_rb_enc_find |
| # define rb_enc_str_new dll_rb_enc_str_new |
| - # define rb_intern2 dll_rb_intern2 |
| - # define rb_const_remove dll_rb_const_remove |
| # define rb_sprintf dll_rb_sprintf |
| # define ruby_init_stack dll_ruby_init_stack |
| #endif |
| |
| /* |
| --- 230,239 ---- |
| # define rb_enc_find_index dll_rb_enc_find_index |
| # define rb_enc_find dll_rb_enc_find |
| # define rb_enc_str_new dll_rb_enc_str_new |
| # define rb_sprintf dll_rb_sprintf |
| + # define rb_require dll_rb_require |
| # define ruby_init_stack dll_ruby_init_stack |
| + # define ruby_process_options dll_ruby_process_options |
| #endif |
| |
| /* |
| |
| *** 319,329 **** |
| static int (*dll_rb_enc_find_index) (const char*); |
| static rb_encoding* (*dll_rb_enc_find) (const char*); |
| static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*); |
| - static ID (*dll_rb_intern2) (const char*, long); |
| - static void (*dll_Init_prelude) (void); |
| - static VALUE (*dll_rb_const_remove) (VALUE, ID); |
| static VALUE (*dll_rb_sprintf) (const char*, ...); |
| static void (*ruby_init_stack)(VALUE*); |
| #endif |
| |
| #ifdef RUBY19_OR_LATER |
| --- 320,329 ---- |
| static int (*dll_rb_enc_find_index) (const char*); |
| static rb_encoding* (*dll_rb_enc_find) (const char*); |
| static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*); |
| static VALUE (*dll_rb_sprintf) (const char*, ...); |
| + static VALUE (*dll_rb_require) (const char*); |
| static void (*ruby_init_stack)(VALUE*); |
| + static void* (*ruby_process_options)(int, char**); |
| #endif |
| |
| #ifdef RUBY19_OR_LATER |
| |
| *** 430,439 **** |
| {"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index}, |
| {"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find}, |
| {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new}, |
| - {"rb_intern2", (RUBY_PROC*)&dll_rb_intern2}, |
| - {"rb_const_remove", (RUBY_PROC*)&dll_rb_const_remove}, |
| {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf}, |
| {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack}, |
| #endif |
| {"", NULL}, |
| }; |
| --- 430,439 ---- |
| {"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index}, |
| {"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find}, |
| {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new}, |
| {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf}, |
| + {"rb_require", (RUBY_PROC*)&dll_rb_require}, |
| {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack}, |
| + {"ruby_process_options", (RUBY_PROC*)&dll_ruby_process_options}, |
| #endif |
| {"", NULL}, |
| }; |
| |
| *** 663,680 **** |
| ruby_init(); |
| } |
| #ifdef RUBY19_OR_LATER |
| ruby_script("vim-ruby"); |
| ! #endif |
| ruby_init_loadpath(); |
| - ruby_io_init(); |
| - #ifdef RUBY19_OR_LATER |
| - rb_enc_find_index("encdb"); |
| - |
| - /* This avoids the error "Encoding::ConverterNotFoundError: code |
| - * converter not found (UTF-16LE to ASCII-8BIT)". */ |
| - rb_define_module("Gem"); |
| - rb_const_remove(rb_cObject, rb_intern2("TMP_RUBY_PREFIX", 15)); |
| #endif |
| ruby_vim_init(); |
| ruby_initialized = 1; |
| #ifdef DYNAMIC_RUBY |
| --- 663,678 ---- |
| ruby_init(); |
| } |
| #ifdef RUBY19_OR_LATER |
| + { |
| + int dummy_argc = 2; |
| + char *dummy_argv[] = {"vim-ruby", "-e0"}; |
| + ruby_process_options(dummy_argc, dummy_argv); |
| + } |
| ruby_script("vim-ruby"); |
| ! #else |
| ruby_init_loadpath(); |
| #endif |
| + ruby_io_init(); |
| ruby_vim_init(); |
| ruby_initialized = 1; |
| #ifdef DYNAMIC_RUBY |
| |
| |
| |
| *** 716,717 **** |
| --- 716,719 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 88, |
| /**/ |
| |
| -- |
| It is hard to understand how a cemetery raised its burial |
| cost and blamed it on the cost of living. |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ an exciting new programming language -- http://www.Zimbu.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |