From: Yukihiro Matsumoto Date: 2008-05-21T07:09:57+09:00 Subject: [ruby-dev:34779] Re: VALUE rb_enc_associate(VALUE obj, rb_encoding *enc) まつもと ゆきひろです In message "Re: [ruby-dev:34778] VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)" on Wed, 21 May 2008 04:25:48 +0900, "NARUSE, Yui" writes: |現在 rb_enc_associate() は、 |void rb_enc_associate(VALUE obj, rb_encoding *enc) |という定義になっています。 | |これだと、object を作ってそれに encoding を適用させ、 |さらにその object をほかの関数に渡すという操作をする時、 | | obj = rb_obj_new(); | rb_enc_associate(obj, enc); | foo(obj); | |などとしなければなりません。 |string.c の rb_str_new ではそれを嫌い、rb_enc_str_new を作っています。 | |また、Dir.entries まわりで rb_enc_str_new2, rb_tainted_enc_str_new, |rb_tainted_enc_str_new2 も必要になりそうな気配があります。 | |rb_enc_associate が obj を返すようになると、これらを、 | | foo(rb_enc_associate(rb_obj_new(), enc)); | |と書くことができるようになり、必要以上に関数を増やさなくてもよくなります。 ふむ。いいんじゃないでしょうか。コミットしてください。