From: kkosako@... Date: 2004-05-19T17:56:04+09:00 Subject: [ruby-dev:23540] Re: [Oniguruma] Version 3.0.0 > -----Original Message----- > > 3.0.0 で mbclen(c) (enc_len(c)) の実装が変わりましたが、 > > 現在のところ実際の処理は 2.* 系と同等の table lookup を > > 行っているので、今のところは endian に関係なく動いている > > ようです。 > > size > 1の型の引数を渡すと、おかしくなる筈と思ったんですが、 > test.rbが通っているのなら僕が勘違いしているのでしょうね。 少し勘違いをしていたようです。 encoding lengthが正しく返らなくても、テストが通っているのかも しれないと思って、以下のように、UTF-8,EUC-JP,SJISで encoding lengthが常に1を返すように変更してテストしてみました。 (i686-linux) static int EncLen_UTF8[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; rubyのmake testは通りました。 encoding lengthが正しくなくても結果的に正しくパース されていたということではないでしょうか? 鬼車のtest.rbはエラーになりましたが、これは上記の変更が 無茶すぎるためで、正規表現ライブラリ自体はmbclen()を 使用していないので、今回の問題とは関係ないはずです。 -- 小迫@出向中