Patch 7.3.088

12 views
Skip to first unread message

Bram Moolenaar

unread,
Dec 24, 2010, 7:40:00 AM12/24/10
to vim...@googlegroups.com

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


*** ../vim-7.3.087/src/if_ruby.c 2010-12-08 13:11:15.000000000 +0100
--- src/if_ruby.c 2010-12-24 12:18:31.000000000 +0100
***************
*** 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
*** ../vim-7.3.087/src/version.c 2010-12-17 20:23:56.000000000 +0100
--- src/version.c 2010-12-24 13:38:51.000000000 +0100
***************
*** 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 -- Br...@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 ///

Reply all
Reply to author
Forward
0 new messages