From 2f2e8455e3644385e517299163bb538cd4f07030 Mon Sep 17 00:00:00 2001 From: naruse Date: Thu, 29 Oct 2009 09:40:25 +0000 Subject: Revert set locale and filesystem encindex in Init_Encoding. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ encoding.c | 40 +++++++++++++++++++++------------------- ruby.c | 1 + 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/ChangeLog b/ChangeLog index d3dfb84189..f46ff226ed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Thu Oct 29 18:37:02 2009 NARUSE, Yui + + * encoding.c (Init_Encoding): revert previous commit. + + * ruby.c (process_options): ditto. + Thu Oct 29 15:35:39 2009 NARUSE, Yui * encoding.c (Init_Encoding): set locale and filesystem encindex. diff --git a/encoding.c b/encoding.c index bd71a61949..fa7937ed2b 100644 --- a/encoding.c +++ b/encoding.c @@ -26,7 +26,6 @@ static ID id_encoding; VALUE rb_cEncoding; static VALUE rb_encoding_list; -static int locale_encindex = -1, filesystem_encindex = -1; struct rb_encoding_entry { const char *name; @@ -1094,47 +1093,53 @@ rb_usascii_encindex(void) return ENCINDEX_US_ASCII; } -static void -set_locale_encindex(void) +static int +rb_locale_encindex(void) { VALUE charmap = rb_locale_charmap(rb_cEncoding); + int idx; if (NIL_P(charmap)) - locale_encindex = rb_usascii_encindex(); - else if ((locale_encindex = rb_enc_find_index(StringValueCStr(charmap))) < 0) - locale_encindex = rb_ascii8bit_encindex(); + idx = rb_usascii_encindex(); + else if ((idx = rb_enc_find_index(StringValueCStr(charmap))) < 0) + idx = rb_ascii8bit_encindex(); - if (rb_enc_registered("locale") < 0) enc_alias_internal("locale", locale_encindex); + if (rb_enc_registered("locale") < 0) enc_alias_internal("locale", idx); + + return idx; } rb_encoding * rb_locale_encoding(void) { - return rb_enc_from_index(locale_encindex); + return rb_enc_from_index(rb_locale_encindex()); } -static void -set_filesystem_encindex(void) +static int +rb_filesystem_encindex(void) { + int idx; #if defined NO_LOCALE_CHARMAP - filesystem_encindex = rb_enc_to_index(rb_default_external_encoding()); + idx = rb_enc_to_index(rb_default_external_encoding()); #elif defined _WIN32 || defined __CYGWIN__ char cp[sizeof(int) * 8 / 3 + 4]; snprintf(cp, sizeof cp, "CP%d", AreFileApisANSI() ? GetACP() : GetOEMCP()); - filesystem_encindex = rb_enc_find_index(cp); + idx = rb_enc_find_index(cp); #elif defined __APPLE__ - filesystem_encindex = rb_utf8_encindex(); + idx = rb_utf8_encindex(); #else - filesystem_encindex = locale_encindex; + idx = rb_locale_encindex(); #endif - if (rb_enc_registered("filesystem") < 0) enc_alias_internal("filesystem", filesystem_encindex); + if (rb_enc_registered("filesystem") < 0) enc_alias_internal("filesystem", idx); + + return idx; } rb_encoding * rb_filesystem_encoding(void) { - return rb_enc_from_index(filesystem_encindex); + return rb_enc_from_index(rb_filesystem_encindex()); } struct default_encoding { @@ -1496,9 +1501,6 @@ Init_Encoding(void) for (i = 0; i < enc_table.count; ++i) { rb_ary_push(list, enc_new(enc_table.list[i].enc)); } - set_locale_encindex(); - set_filesystem_encindex(); - } /* locale insensitive functions */ diff --git a/ruby.c b/ruby.c index 4c2d566643..8c7e88b228 100644 --- a/ruby.c +++ b/ruby.c @@ -1302,6 +1302,7 @@ process_options(int argc, char **argv, struct cmdline_options *opt) ruby_init_loadpath_safe(opt->safe_level); rb_enc_find_index("encdb"); lenc = rb_locale_encoding(); + (void)rb_filesystem_encoding(); rb_enc_associate(rb_progname, lenc); parser = rb_parser_new(); if (opt->dump & DUMP_BIT(yydebug)) { -- cgit v1.2.3