From 6b1a58b9e6f52d6fbb1eef01cc24cf7be6e3a929 Mon Sep 17 00:00:00 2001 From: usa Date: Sun, 1 Dec 2013 15:55:56 +0000 Subject: * hash.c (getenv): use ANSI codepage version of getenv() for miniruby on Windows. [ruby-core:58732] [Bug #9189] reported by phasis68 (Heesob Park). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- hash.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'hash.c') diff --git a/hash.c b/hash.c index e1d682819e..8ceae61d29 100644 --- a/hash.c +++ b/hash.c @@ -2423,7 +2423,17 @@ static char **my_environ; #undef environ #define environ my_environ #undef getenv -#define getenv(n) rb_w32_ugetenv(n) +inline char * +getenv(const char *name) +{ + static int binary = -1; + static int locale = -1; + if (binary < 0) { + binary = rb_ascii8bit_encindex(); + locale = rb_locale_encindex(); + } + return locale == binary ? rb_w32_getenv(name) : rb_w32_ugetenv(name); +} #elif defined(__APPLE__) #undef environ #define environ (*_NSGetEnviron()) -- cgit v1.2.3