From: Nobuyoshi Nakada Date: 2009-07-26T20:19:58+09:00 Subject: [ruby-dev:38906] Re: rb_eval_string_protect and encoding なかだです。 At Sat, 25 Jul 2009 23:00:13 +0900, Masaki Suketa wrote in [ruby-dev:38904]: > rb_eval_string_protectを使うとするとこんな感じですか? > (エラーチェックが甘いかも) > VALUE rb_eval_vstring_protect(VALUE s, int *state) { > char *encname; > VALUE v; > encname = rb_enc_name(rb_enc_get(s)); > v = rb_sprintf("#-*- coding:%s-*-\n%s", encname, StringValuePtr(s)); > return rb_eval_string_protect(StringValuePtr(v), state); > } いや、StringならすでにEncodingを持っているので、magic commentを 追加する必要はありません。だからこそ、Stringバージョンがあれば解 決するのかなということです。 VALUE rb_eval_vstring(VALUE str) { return eval_string(rb_vm_top_self(), str, Qnil, "(eval)", 1); } VALUE rb_eval_vstring_protect(VALUE str, int *state) { return rb_protect(rb_eval_vstring, str, state); } -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦