From b64f79c838c0fc771be6908fb54deadea1f4a763 Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 30 Jun 2013 01:59:12 +0000 Subject: win32.c: rb_w32_udln_find_exe_r, rb_w32_udln_find_file_r * win32/win32.c (rb_w32_udln_find_exe_r, rb_w32_udln_find_file_r): codepage independent versions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 ++++++- common.mk | 3 ++- win32/win32.c | 17 ++++++++++++++++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index b5bf54009b..d391ecc57c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,9 @@ -Sun Jun 30 10:59:04 2013 Nobuyoshi Nakada +Sun Jun 30 10:59:09 2013 Nobuyoshi Nakada + + rb_w32_udln_find_file_r + + * win32/win32.c (rb_w32_udln_find_exe_r, rb_w32_udln_find_file_r): + codepage independent versions. * win32/win32.c (w32_spawn): extract codepage aware code from rb_w32_spawn(). diff --git a/common.mk b/common.mk index 88043575d0..89c042e767 100644 --- a/common.mk +++ b/common.mk @@ -831,7 +831,8 @@ unicode.$(OBJEXT): {$(VPATH)}unicode.c {$(VPATH)}regint.h \ utf_8.$(OBJEXT): {$(VPATH)}utf_8.c {$(VPATH)}regenc.h {$(VPATH)}config.h \ {$(VPATH)}oniguruma.h {$(VPATH)}missing.h $(RUBY_H_INCLUDES) -win32/win32.$(OBJEXT): {$(VPATH)}win32/win32.c $(RUBY_H_INCLUDES) $(PLATFORM_D) +win32/win32.$(OBJEXT): {$(VPATH)}win32/win32.c {$(VPATH)}dln.h {$(VPATH)}dln_find.c \ + $(RUBY_H_INCLUDES) $(PLATFORM_D) win32/file.$(OBJEXT): {$(VPATH)}win32/file.c $(RUBY_H_INCLUDES) $(PLATFORM_D) $(NEWLINE_C): $(srcdir)/enc/trans/newline.trans $(srcdir)/tool/transcode-tblgen.rb diff --git a/win32/win32.c b/win32/win32.c index 39b89a3a9d..7653256fb2 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -21,7 +21,6 @@ #include "ruby/ruby.h" #include "ruby/encoding.h" -#include "dln.h" #include #include #include @@ -52,6 +51,22 @@ static int w32_stati64(const char *path, struct stati64 *st, UINT cp); static char *w32_getenv(const char *name, UINT cp); +#undef getenv +#define DLN_FIND_EXTRA_ARG_DECL ,UINT cp +#define DLN_FIND_EXTRA_ARG ,cp +#define rb_w32_stati64(path, st) w32_stati64(path, st, cp) +#define getenv(name) w32_getenv(name, cp) +#define dln_find_exe_r rb_w32_udln_find_exe_r +#define dln_find_file_r rb_w32_udln_find_file_r +#include "dln.h" +#include "dln_find.c" +#undef MAXPATHLEN +#undef rb_w32_stati64 +#undef dln_find_exe_r +#undef dln_find_file_r +#define dln_find_exe_r(fname, path, buf, size) rb_w32_udln_find_exe_r(fname, path, buf, size, cp) +#define dln_find_file_r(fname, path, buf, size) rb_w32_udln_find_file_r(fname, path, buf, size, cp) + #undef stat #undef fclose #undef close -- cgit v1.2.3