From 635c599d6be1bc8bb4039caf7520d5f02e914298 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 18 May 2007 02:11:42 +0000 Subject: [PATCH] * ruby.c (DllMain, ruby_init_loadpath): use DLL instance handle given to DllMain instead of VirtualQuery so that loadpath becomes relative from the DLL on WinCE too. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ ruby.c | 22 +++++++++++++--------- version.h | 6 +++--- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 97c8ea5d6c..92c5f02161 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Fri May 18 11:12:39 2007 Nobuyoshi Nakada + + * ruby.c (DllMain, ruby_init_loadpath): use DLL instance handle given + to DllMain instead of VirtualQuery so that loadpath becomes relative + from the DLL on WinCE too. + Thu May 17 17:03:11 2007 Nobuyoshi Nakada * misc/ruby-style.el (ruby-style-label-indent): for yacc rules. diff --git a/ruby.c b/ruby.c index 045697c89a..6dec7a2c8c 100644 --- a/ruby.c +++ b/ruby.c @@ -259,6 +259,18 @@ translate_char(char *p, int from, int to) } #endif +#if defined _WIN32 || defined __CYGWIN__ +static HMODULE libruby; + +BOOL WINAPI +DllMain(HINSTANCE dll, DWORD reason, LPVOID reserved) +{ + if (reason == DLL_PROCESS_ATTACH) + libruby = dll; + return TRUE; +} +#endif + void ruby_init_loadpath(void) { @@ -266,16 +278,8 @@ ruby_init_loadpath(void) char libpath[MAXPATHLEN + 1]; char *p; int rest; -#if defined _WIN32 || defined __CYGWIN__ - HMODULE libruby = NULL; - MEMORY_BASIC_INFORMATION m; -#ifndef _WIN32_WCE - memset(&m, 0, sizeof(m)); - if (VirtualQuery(ruby_init_loadpath, &m, sizeof(m)) - && m.State == MEM_COMMIT) - libruby = (HMODULE) m.AllocationBase; -#endif +#if defined _WIN32 || defined __CYGWIN__ GetModuleFileName(libruby, libpath, sizeof libpath); #elif defined(DJGPP) extern char *__dos_argv0; diff --git a/version.h b/version.h index f882c2cdc0..3052c9ee7c 100644 --- a/version.h +++ b/version.h @@ -1,7 +1,7 @@ #define RUBY_VERSION "1.9.0" -#define RUBY_RELEASE_DATE "2007-05-17" +#define RUBY_RELEASE_DATE "2007-05-18" #define RUBY_VERSION_CODE 190 -#define RUBY_RELEASE_CODE 20070517 +#define RUBY_RELEASE_CODE 20070518 #define RUBY_PATCHLEVEL 0 #define RUBY_VERSION_MAJOR 1 @@ -9,7 +9,7 @@ #define RUBY_VERSION_TEENY 0 #define RUBY_RELEASE_YEAR 2007 #define RUBY_RELEASE_MONTH 5 -#define RUBY_RELEASE_DAY 17 +#define RUBY_RELEASE_DAY 18 #ifdef RUBY_EXTERN RUBY_EXTERN const char ruby_version[];