From 22e711c4bf382422f861d598ff6dd188d0482951 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 14 Jan 2009 14:57:34 +0000 Subject: * encoding.c (rb_locale_charmap): fallback to codepage if no locale is found. [ruby-core:21110] * missing/langinfo.c (nl_langinfo_codeset): returns NULL if no locale is found. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21511 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- encoding.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'encoding.c') diff --git a/encoding.c b/encoding.c index 6c70c74137..858f4e70e5 100644 --- a/encoding.c +++ b/encoding.c @@ -1218,6 +1218,15 @@ rb_locale_charmap(VALUE klass) { #if defined NO_LOCALE_CHARMAP return rb_usascii_str_new2("ASCII-8BIT"); +#elif defined __CYGWIN__ + const char *nl_langinfo_codeset(void); + const char *codeset = nl_langinfo_codeset(); + char cp[sizeof(int) * 3 + 4]; + if (codeset) { + snprintf(cp, sizeof(cp), "CP%d", GetConsoleCP()); + codeset = cp; + } + return rb_usascii_str_new2(codeset); #elif defined HAVE_LANGINFO_H char *codeset; codeset = nl_langinfo(CODESET); -- cgit v1.2.3