diff --git a/ChangeLog b/ChangeLog index 82ae100391..44e3d8571e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Tue Jun 17 06:26:28 2008 NARUSE, Yui + + * encoding.c (rb_filesystem_encoding): defined. + + * include/ruby/encoding.h (rb_filesystem_encoding): added. + Tue Jun 17 06:24:28 2008 NARUSE, Yui * ext/syck/rubyext.c: add encoding header. diff --git a/encoding.c b/encoding.c index 0928b4b2b0..305213569c 100644 --- a/encoding.c +++ b/encoding.c @@ -962,6 +962,22 @@ rb_locale_encoding(void) return rb_enc_from_index(idx); } +rb_encoding * +rb_filesystem_encoding(void) +{ + static rb_encoding *enc; + if (!enc) { +#if defined _WIN32 + enc = rb_locale_encoding(); +#elif defined __APPLE__ + enc = rb_enc_find("UTF8-MAC"); +#else + enc = rb_ascii8bit_encoding(); +#endif + } + return enc; +} + static int default_external_index; rb_encoding * diff --git a/include/ruby/encoding.h b/include/ruby/encoding.h index 1955a4f205..33a8fcd73e 100644 --- a/include/ruby/encoding.h +++ b/include/ruby/encoding.h @@ -165,6 +165,7 @@ rb_encoding *rb_ascii8bit_encoding(void); rb_encoding *rb_utf8_encoding(void); rb_encoding *rb_usascii_encoding(void); rb_encoding *rb_locale_encoding(void); +rb_encoding *rb_filesystem_encoding(void); rb_encoding *rb_default_external_encoding(void); int rb_usascii_encindex(void); int rb_ascii8bit_encindex(void);