diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-07-26 04:02:01 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-07-26 04:02:01 +0000 |
commit | f375a8b40ec65991df54d84856851c2149f11211 (patch) | |
tree | 1aaf396d2a6a2c400705638de616cec5184bd2ed /file.c | |
parent | 320a0dd218e2aecd8510b5a8f88ffb93643a5c48 (diff) | |
download | ruby-f375a8b40ec65991df54d84856851c2149f11211.tar.gz |
file.c: use rb_str_conv_enc
* file.c (rb_str_encode_ospath): simplify using rb_str_conv_enc().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42181 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'file.c')
-rw-r--r-- | file.c | 15 |
1 files changed, 6 insertions, 9 deletions
@@ -229,15 +229,12 @@ rb_str_encode_ospath(VALUE path) { #ifdef _WIN32 rb_encoding *enc = rb_enc_get(path); - if (enc != rb_ascii8bit_encoding()) { - rb_encoding *utf8 = rb_utf8_encoding(); - if (enc != utf8) - path = rb_str_encode(path, rb_enc_from_encoding(utf8), 0, Qnil); - } - else if (RSTRING_LEN(path) > 0) { - path = rb_str_dup(path); - rb_enc_associate(path, rb_filesystem_encoding()); - path = rb_str_encode(path, rb_enc_from_encoding(rb_utf8_encoding()), 0, Qnil); + rb_encoding *utf8 = rb_utf8_encoding(); + if (enc == rb_ascii8bit_encoding()) { + enc = rb_filesystem_encoding(); + } + if (enc != utf8) { + path = rb_str_conv_enc(path, enc, utf8); } #endif return path; |