# HG changeset patch # User Bram Moolenaar # Date 1266415910 -3600 # Node ID 1c7a66d820e4dc9b0a9f696ed6e7a59cd9a20e19 # Parent 903fcd726d9058a0b0c14a85cadf31aae3ad27a2 updated for version 7.2.360 Problem: Ruby on MS-Windows: can't use sockets. Solution: Call NtInitialize() during initialization. (Ariya Mizutani) diff --git a/src/if_ruby.c b/src/if_ruby.c --- a/src/if_ruby.c +++ b/src/if_ruby.c @@ -48,6 +48,11 @@ # endif #endif +/* suggested by Ariya Mizutani */ +#if (_MSC_VER == 1200) +# undef _WIN32_WINNT +#endif + #include #undef EXTERN @@ -132,6 +137,7 @@ static void ruby_vim_init(void); #define ruby_errinfo (*dll_ruby_errinfo) #define ruby_init dll_ruby_init #define ruby_init_loadpath dll_ruby_init_loadpath +#define NtInitialize dll_NtInitialize #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 # define rb_w32_snprintf dll_rb_w32_snprintf #endif @@ -186,6 +192,7 @@ static VALUE (*dll_rb_str_new2) (const c static VALUE *dll_ruby_errinfo; static void (*dll_ruby_init) (void); static void (*dll_ruby_init_loadpath) (void); +static void (*dll_NtInitialize) (int*, char***); #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...); #endif @@ -248,6 +255,7 @@ static struct {"ruby_errinfo", (RUBY_PROC*)&dll_ruby_errinfo}, {"ruby_init", (RUBY_PROC*)&dll_ruby_init}, {"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath}, + {"NtInitialize", (RUBY_PROC*)&dll_NtInitialize}, #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18 {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf}, #endif @@ -414,6 +422,12 @@ static int ensure_ruby_initialized(void) if (ruby_enabled(TRUE)) { #endif +#ifdef _WIN32 + /* suggested by Ariya Mizutani */ + int argc = 1; + char *argv[] = {"gvim.exe"}; + NtInitialize(&argc, &argv); +#endif ruby_init(); ruby_init_loadpath(); ruby_io_init(); diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -682,6 +682,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 360, +/**/ 359, /**/ 358,