mrb_funcallの件で、久しぶりにtwitterを使ったのですが、そのときにmrubyを始めてから
良く見ていたブログのkyabさんからも返信頂き、そこで次のような情報を頂きました。
@tkrworks RSTRING_PTR()はNULL終端じゃないこともあるらしいので、それをstrcmpしてるのがまずいかも? 知らなかった。。https://t.co/rmFPeKhBJc
— kyab (@kyab212) 2014, 2月 19
おっとっと、これは知りませんでした。リンクのMatzさんのツイートで
@bamchoh mrubyのRSTRING_PTR()はNULL終端でないことがあるからですね。RSTRING_LEN()と一緒に用法・用量に注意してお使いください。
— Yukihiro Matsumoto (@yukihiro_matz) 2014, 2月 5
と書かれています。これは知っておかないと後々ハマる原因になりそうです。とくに、OSC処理は
言ってしまえば通信処理というより文字列整形が主なので。
むやみに使わず、RSTRING_LEN()と組み合わせるか、mrb_str_to_cstr()を使って文字列を作り直す
のが良いようです。ふむふむ
コメントをどうぞ