summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-09-29 12:31:43 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-09-29 12:31:43 +0000
commitad8978fdb171a6614375b7bd873b02b909485a31 (patch)
treefec36aa2aedfcf9a9d92cd9c0fa8a20a65cd41b5 /io.c
parent42f0ea8c612015dfb57d53fd41bf7e0e4b7427bf (diff)
* io.c (rb_scan_open_args): add UTF8-MAC to no-convertion encoding.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r--io.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/io.c b/io.c
index 90fa2339a7..586e7b5bd6 100644
--- a/io.c
+++ b/io.c
@@ -5307,17 +5307,19 @@ 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 __APPLE__
+#ifdef __APPLE__
{
static rb_encoding *fs_encoding;
+ static rb_encoding *utf8mac_encoding;
rb_encoding *fname_encoding = rb_enc_get(fname);
if (!fs_encoding)
fs_encoding = rb_filesystem_encoding();
+ if (!utf8mac_encoding)
+ utf8mac_encoding = rb_enc_find("UTF8-MAC");
if (rb_usascii_encoding() != fname_encoding
&& rb_ascii8bit_encoding() != fname_encoding
-#if defined __APPLE__
&& rb_utf8_encoding() != fname_encoding
-#endif
+ && rb_utf8mac_encoding() != fname_encoding
&& fs_encoding != fname_encoding) {
static VALUE fs_enc;
if (!fs_enc)