diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-12-01 15:55:56 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-12-01 15:55:56 +0000 |
commit | 6b1a58b9e6f52d6fbb1eef01cc24cf7be6e3a929 (patch) | |
tree | 37c8368bbd4e25e38651248038592d754b13d6d4 | |
parent | 547bd873d3dbe23231c3cff3337140b9e1821464 (diff) | |
download | ruby-6b1a58b9e6f52d6fbb1eef01cc24cf7be6e3a929.tar.gz |
* 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
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | hash.c | 12 |
2 files changed, 17 insertions, 1 deletions
@@ -1,3 +1,9 @@ +Mon Dec 2 00:53:01 2013 NAKAMURA Usaku <usa@ruby-lang.org> + + * hash.c (getenv): use ANSI codepage version of getenv() for miniruby + on Windows. + [ruby-core:58732] [Bug #9189] reported by phasis68 (Heesob Park). + Sun Dec 1 22:14:27 2013 Zachary Scott <e@zzak.io> * doc/contributors.rdoc: [DOC] Import contributors from redmine wiki @@ -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()) |