diff --git a/ChangeLog b/ChangeLog index 50735d36d8..f2d20969ef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Thu Aug 14 21:10:00 2008 Tanaka Akira + + * encoding.c (rb_filesystem_encoding): use default external encoding + for Unix. + + * dir.c (dir_initialize): don't cache fs_encoding. + Thu Aug 14 20:58:57 2008 Tanaka Akira * transcode.c (rb_econv_open_by_transcoder_entries): renamed from diff --git a/dir.c b/dir.c index a3eed26c75..ea13490b21 100644 --- a/dir.c +++ b/dir.c @@ -333,17 +333,15 @@ static VALUE dir_initialize(int argc, VALUE *argv, VALUE dir) { struct dir_data *dp; - static rb_encoding *fs_encoding; rb_encoding *extencoding; VALUE dirname, opt; static VALUE sym_extenc; if (!sym_extenc) { sym_extenc = ID2SYM(rb_intern("external_encoding")); - fs_encoding = rb_filesystem_encoding(); } + extencoding = rb_filesystem_encoding(); - extencoding = fs_encoding; rb_scan_args(argc, argv, "11", &dirname, &opt); if (!NIL_P(opt)) { diff --git a/encoding.c b/encoding.c index d1cf17510d..ca08416fe6 100644 --- a/encoding.c +++ b/encoding.c @@ -962,16 +962,14 @@ rb_locale_encoding(void) rb_encoding * rb_filesystem_encoding(void) { - static rb_encoding *enc; - if (!enc) { + rb_encoding *enc; #if defined _WIN32 - enc = rb_locale_encoding(); + enc = rb_locale_encoding(); #elif defined __APPLE__ - enc = rb_enc_find("UTF8-MAC"); + enc = rb_enc_find("UTF8-MAC"); #else - enc = rb_locale_encoding(); + enc = rb_default_external_encoding(); #endif - } return enc; }