From: nobu.nakada@... Date: 2002-01-07T12:16:06+09:00 Subject: [ruby-dev:15648] Re: [PATCH] substitutes for str2cstr() なかだです。 At Mon, 7 Jan 2002 09:06:53 +0900, matz@ruby-lang.org (Yukihiro Matsumoto) wrote: > |うえのさんのzlibを見て思ったのですが、1.6から1.7(1.8?)への移行 > |には、やはり今のStringValue関連だけでは不便な気がします。 > |StringValueCstr()というのはいい名前が思いつかなかったんですが。 > |こういうのはどうでしょうか。 > > 効果と目的がいまいち分からなかったんですが、少々解説していた > だけませんか? 拡張ライブラリの1.6から1.7への移行用です。 STR2CSTR()、str2cstr()を使っている場合、1.7ではStringValuePtr() などに変更する必要があります。STR2CSTR()は副作用だけ気をつけれ ば、ほぼそのままStringValuePtr()に置き換えるだけで済みまが、 str2cstr()は今のところ二つの式に分けることになって変更が面倒で す。また、そうすると今度は1.6で通らなくなってしまいます。 マクロでラップしようとしても、評価順序の問題でStringValuePtr() とRSTRING()->lenの組合せだけではうまくいきません。 StringValueCstr()を使えば、比較的単純な置換で1.6、1.7両方でコン パイルできるようになります。 # あ、StringValueLen()があってもいいかも。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦