summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--hash.c12
2 files changed, 17 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index b51e3f9784..b60ee095ec 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
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())