関連:BugTrack/562
上のページに追記したほうが良かったかもしれませんが、バグということでとりあえず別ページに。
/[九-郡]/,ク /[卦-乎]/,ケ /[乎-魂]/,コの部分で、ケの終わりとコの始まりが「乎」となっていて、かぶっている。 本来なら「乎」は、「コ」と判定してほしいので
/[九-郡]/,ク /[卦-限]/,ケ /[乎-魂]/,コとあるべきだと思います。
上のついでに、サンプル辞書の JISの並びによる部分は、UTF-8では動作しませんという注意を(:config/PageReading/dict)に追記してもらえるとうれしいです。
理由は、試しにUTF-8でこの機能を使ったときに、「ひらがな」で始まるページまで記号扱いされたから*1。誤動作です。
:config/PageReading に正常登録されていなかったり、'^([ァ-ヶ])' に当てはまらない時は、記号か日本語に分類されます。上では読みの収得に失敗したのでこうなっただけであって、ページ一覧の動作はこれがデフォルトみたいです。
無効にすればきちんと動きます(あ→ア、みたいに)。
UTF-8版として出すからには、パッケージ(のどこか)に、このことについて注意書きがあればと。
以上2点(1つは蛇足かもですが)、よろしくお願いします。
if ($pagereading_enable) { // WARNING: Japanese code hard-wired if(mb_ereg('^([A-Za-z])', mb_convert_kana($page, 'a'), $matches)) { $initial = & $matches[1]; } elseif (isset($readings[$page]) && mb_ereg('^([ァ-ヶ])', $readings[$page], $matches)) { // here $initial = & $matches[1]; } elseif (mb_ereg('^[ -~]|[^ぁ-ん亜-熙]', $page)) { // and here $initial = & $sentinel_symbol; } else { $initial = & $sentinel_another; } } else {ココもEUC-JP のコードを基準にして書かれてますよね?「WARNING: Japanese code hard-wired」と注意書きしているぐらいですし。 -- 2009-05-13 (水) 17:43:34