summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--encoding.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 98a8b2dc54..631f352cd3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Nov 3 23:53:04 2011 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * encoding.c (rb_locale_charmap): ignore calling nl_langinfo_codeset()
+ on Windows except cygwin. [experimental]
+
Thu Nov 3 22:45:09 2011 Tanaka Akira <akr@fsij.org>
* ext/socket/socket.c (rsock_socketpair0): extracted from
diff --git a/encoding.c b/encoding.c
index 3e4892b2e2..0aac1f1509 100644
--- a/encoding.c
+++ b/encoding.c
@@ -1446,9 +1446,12 @@ rb_locale_charmap(VALUE klass)
#if defined NO_LOCALE_CHARMAP
return rb_usascii_str_new2("ASCII-8BIT");
#elif defined _WIN32 || defined __CYGWIN__
- const char *nl_langinfo_codeset(void);
- const char *codeset = nl_langinfo_codeset();
+ const char *codeset = 0;
char cp[sizeof(int) * 3 + 4];
+# ifdef __CYGWIN__
+ const char *nl_langinfo_codeset(void);
+ codeset = nl_langinfo_codeset();
+# endif
if (!codeset) {
UINT codepage = GetConsoleCP();
if(!codepage) codepage = GetACP();