diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-01-05 07:26:51 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-01-05 07:26:51 +0000 |
commit | a5120853c3d08dc8ae842b5118a7a613195f521e (patch) | |
tree | fef4ed23663bb4d735f26534134ae2c808c335b4 /encoding.c | |
parent | ab9a536e8418cc9e855d0a96f956433b4d39cb84 (diff) | |
download | ruby-a5120853c3d08dc8ae842b5118a7a613195f521e.tar.gz ruby-a5120853c3d08dc8ae842b5118a7a613195f521e.tar.xz ruby-a5120853c3d08dc8ae842b5118a7a613195f521e.zip |
* encoding.c (rb_filesystem_encoding): use ANSI codepage for file
system on cygwin.
* encoding.c (rb_locale_charmap): reverted. [ruby-core:21110]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21340 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'encoding.c')
-rw-r--r-- | encoding.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/encoding.c b/encoding.c index 73eda32cb..fde710360 100644 --- a/encoding.c +++ b/encoding.c @@ -14,18 +14,15 @@ #include "regenc.h" #include <ctype.h> #ifndef NO_LOCALE_CHARMAP -#if defined __CYGWIN__ +#ifdef __CYGWIN__ #include <windows.h> -#elif defined HAVE_LANGINFO_H +#endif +#ifdef HAVE_LANGINFO_H #include <langinfo.h> #endif #endif #include "ruby/util.h" -#if defined _WIN32 || defined __CYGWIN__ -#define USE_CODEPAGE_LOCALE 1 -#endif - static ID id_encoding; VALUE rb_cEncoding; static VALUE rb_encoding_list; @@ -1033,8 +1030,12 @@ rb_encoding * rb_filesystem_encoding(void) { rb_encoding *enc; -#if defined USE_CODEPAGE_LOCALE - enc = rb_locale_encoding(); +#if defined NO_LOCALE_CHARMAP + enc = rb_default_external_encoding(); +#elif defined _WIN32 || defined __CYGWIN__ + char cp[sizeof(int) * 8 / 3 + 4]; + snprintf(cp, sizeof cp, "CP%d", GetACP()); + enc = rb_enc_find(cp); #elif defined __APPLE__ enc = rb_enc_find("UTF8-MAC"); #else @@ -1212,12 +1213,12 @@ rb_locale_charmap(VALUE klass) { #if defined NO_LOCALE_CHARMAP return rb_usascii_str_new2("ASCII-8BIT"); -#elif defined USE_CODEPAGE_LOCALE - return rb_sprintf("CP%d", GetACP()); #elif defined HAVE_LANGINFO_H char *codeset; codeset = nl_langinfo(CODESET); return rb_usascii_str_new2(codeset); +#elif defined _WIN32 + return rb_sprintf("CP%d", GetACP()); #else return Qnil; #endif |