From a928613a313e7750c7dcee824631cd6ed1690344 Mon Sep 17 00:00:00 2001 From: naruse Date: Mon, 29 Dec 2008 02:56:23 +0000 Subject: [PATCH] revert previous changes. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- file.c | 22 +--------------------- io.c | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/file.c b/file.c index 3ca63595ff..aa814a5c76 100644 --- a/file.c +++ b/file.c @@ -107,6 +107,7 @@ rb_get_path_check(VALUE obj, int check) tmp = rb_check_string_type(obj); if (!NIL_P(tmp)) goto exit; + CONST_ID(to_path, "to_path"); if (rb_respond_to(obj, to_path)) { tmp = rb_funcall(obj, to_path, 0, 0); @@ -119,27 +120,6 @@ rb_get_path_check(VALUE obj, int check) if (check && obj != tmp) { rb_check_safe_obj(tmp); } - -#if defined _WIN32 || defined __APPLE__ - { - static rb_encoding *fs_encoding; - rb_encoding *fname_encoding = rb_enc_get(tmp); - if (!fs_encoding) - fs_encoding = rb_filesystem_encoding(); - if (rb_usascii_encoding() != fname_encoding - && rb_ascii8bit_encoding() != fname_encoding -#if defined __APPLE__ - && rb_utf8_encoding() != fname_encoding -#endif - && fs_encoding != fname_encoding) { - static VALUE fs_enc; - if (!fs_enc) - fs_enc = rb_enc_from_encoding(fs_encoding); - tmp = rb_str_encode(tmp, fs_enc, 0, Qnil); - } - } -#endif - return rb_str_new4(tmp); } diff --git a/io.c b/io.c index 472957f598..ce0c35048b 100644 --- a/io.c +++ b/io.c @@ -4885,7 +4885,26 @@ rb_scan_open_args(int argc, VALUE *argv, opt = pop_last_hash(&argc, argv); rb_scan_args(argc, argv, "12", &fname, &vmode, &vperm); FilePathValue(fname); - +#if defined _WIN32 || defined __APPLE__ + { + static rb_encoding *fs_encoding; + rb_encoding *fname_encoding = rb_enc_get(fname); + if (!fs_encoding) + fs_encoding = rb_filesystem_encoding(); + if (rb_usascii_encoding() != fname_encoding + && rb_ascii8bit_encoding() != fname_encoding +#if defined __APPLE__ + && rb_utf8_encoding() != fname_encoding +#endif + && fs_encoding != fname_encoding) { + static VALUE fs_enc; + if (!fs_enc) + fs_enc = rb_enc_from_encoding(fs_encoding); + fname = rb_str_encode(fname, fs_enc, 0, Qnil); + } + } +#endif + rb_io_extract_modeenc(&vmode, &vperm, opt, &oflags, &fmode, convconfig_p); perm = NIL_P(vperm) ? 0666 : NUM2UINT(vperm);