こんにちは、なかむら(う)です。

# ぶら下げどころが決め切れなかった

先日成瀬さんが入れてくださったfilesystem encoding対応ですが、
rb_encoding*とencoding indexを混同しています。
rb_encoding*の比較が有効なのかどうか確信がなかったので、encoding
indexで統一してみました。
# rb_encoding*の比較が有効ならそっちに揃えた方がシンプルにな
# るとは思います。

rb_utf8_encindex()はなんでないんだろう?

Index: io.c =================================================================== --- io.c (revision 17396) +++ io.c (working copy) @@ -4107,16 +4107,16 @@ rb_open_file(int argc, VALUE *argv, VALU static int fs_encoding; int fname_encoding = rb_enc_get_index(fname); if (!fs_encoding) - fs_encoding = rb_filesystem_encoding(); - if (rb_usascii_encoding() != fname_encoding - && rb_ascii8bit_encoding() != fname_encoding + fs_encoding = rb_enc_to_index(rb_filesystem_encoding()); + if (rb_usascii_encindex() != fname_encoding + && rb_ascii8bit_encindex() != fname_encoding #if defined __APPLE__ - && rb_utf8_encoding() != fname_encoding + && rb_enc_to_index(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); + fs_enc = rb_enc_from_encoding(rb_enc_from_index(fs_encoding)); fname = rb_str_transcode(fname, fs_enc); } }
それでは。 -- U.Nakamura <usa / garbagecollect.jp>