ruby-changes:13763
From: naruse <ko1@a...>
Date: Thu, 29 Oct 2009 18:40:41 +0900 (JST)
Subject: [ruby-changes:13763] Ruby:r25559 (trunk): Revert set locale and filesystem encindex in Init_Encoding.
naruse 2009-10-29 18:40:25 +0900 (Thu, 29 Oct 2009) New Revision: 25559 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=25559 Log: Revert set locale and filesystem encindex in Init_Encoding. Modified files: trunk/ChangeLog trunk/encoding.c trunk/ruby.c Index: encoding.c =================================================================== --- encoding.c (revision 25558) +++ encoding.c (revision 25559) @@ -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 @@ 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 @@ 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 */ Index: ChangeLog =================================================================== --- ChangeLog (revision 25558) +++ ChangeLog (revision 25559) @@ -1,3 +1,9 @@ +Thu Oct 29 18:37:02 2009 NARUSE, Yui <naruse@r...> + + * encoding.c (Init_Encoding): revert previous commit. + + * ruby.c (process_options): ditto. + Thu Oct 29 15:35:39 2009 NARUSE, Yui <naruse@r...> * encoding.c (Init_Encoding): set locale and filesystem encindex. Index: ruby.c =================================================================== --- ruby.c (revision 25558) +++ ruby.c (revision 25559) @@ -1302,6 +1302,7 @@ 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)) { -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/