# define ruby_init_loadpath dll_ruby_init_loadpath
# ifdef WIN3264
# define NtInitialize dll_NtInitialize
+# define ruby_sysinit dll_ruby_sysinit
# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
# define rb_w32_snprintf dll_rb_w32_snprintf
# endif
static void (*dll_ruby_init_loadpath) (void);
# ifdef WIN3264
static void (*dll_NtInitialize) (int*, char***);
+static void (*dll_ruby_sysinit) (int*, char***);
# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
# endif
{
{"rb_assoc_new", (RUBY_PROC*)&dll_rb_assoc_new},
{"rb_cFalseClass", (RUBY_PROC*)&dll_rb_cFalseClass},
- {"rb_cFixnum", (RUBY_PROC*)&dll_rb_cFixnum},
# if defined(USE_RUBY_INTEGER)
{"rb_cInteger", (RUBY_PROC*)&dll_rb_cInteger},
+# else
+ {"rb_cFixnum", (RUBY_PROC*)&dll_rb_cFixnum},
# endif
# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20
{"rb_cFloat", (RUBY_PROC*)&dll_rb_cFloat},
{"ruby_init", (RUBY_PROC*)&dll_ruby_init},
{"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
# ifdef WIN3264
- {
# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 19
- "NtInitialize",
+ {"NtInitialize", (RUBY_PROC*)&dll_NtInitialize},
# else
- "ruby_sysinit",
+ {"ruby_sysinit", (RUBY_PROC*)&dll_ruby_sysinit},
# endif
- (RUBY_PROC*)&dll_NtInitialize},
# if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
{"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
# endif
{
int state;
linenr_T i;
+ buf_T *was_curbuf = curbuf;
if (ensure_ruby_initialized())
{
{
VALUE line;
+ if (i > curbuf->b_ml.ml_line_count)
+ break;
line = vim_str2rb_enc_str((char *)ml_get(i));
rb_lastline_set(line);
eval_enc_string_protect((char *) eap->arg, &state);
error_print(state);
break;
}
+ if (was_curbuf != curbuf)
+ break;
line = rb_lastline_get();
if (!NIL_P(line))
{
int argc = 1;
char *argv[] = {"gvim.exe"};
char **argvp = argv;
+# ifdef RUBY19_OR_LATER
+ ruby_sysinit(&argc, &argvp);
+# else
NtInitialize(&argc, &argvp);
+# endif
#endif
{
#if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK)