TAKAHASHI Tamotsu
ttaka****@lapis*****
2005年 8月 8日 (月) 20:06:50 JST
高橋全です。 * Mon Aug 8 2005 NUMATA Toshinori <numat****@jp*****> > 沼田です. 情報ありがとうございます。 > 最後から検索しても確実に文字の最初のバイトを見つけられるのは UTF-8 く > らいのもので,それ以外の文字エンコーディングで成功するとは限りません. 「確実なのは UTF-8 くらいのもの」とは知りませんでした。 Edmund が無反応になってしまって、文字コードに詳しい人が mutt-dev にあまりいない状態なので、こういう情報はとても助かります。 > > また、mbrtowc には必ず自前の mbstate を > > 用意しないといけないのでしょうか。 > > 関数が用意している内部の mbstate_t オブジェクトを使うことは,次の点で > 問題があると思います. > > ・他の誰かが使わないことをどう保証するか. > > ・内部の mbstate_t オブジェクトを初期状態に戻す方法がわからない. > なんとなく mbrtowc(NULL, "", 1, NULL) で初期状態に戻りそうな気がする > けれど,「mbstate_t オブジェクトを初期状態に戻すには,memset() を使っ > て mbstate_t オブジェクトの全バイトを 0 にしろ」などという解説がついて > いたりするのが困る. そうですね。 特に後半の指摘を考えると、どうして「NULL でもいい」という仕様に なっているのか不思議に思うほどです。 これも CVS に入る前に訂正することができて、良かったです。 http://marc.theaimsgroup.com/?l=mutt-dev&m=112335301815683&w=2 にあるパッチが CVS に commit されました。 私はもうこれで良いと思うのですが、 ほかにもお気付きの点がございましたらお知らせください。 今回は私が言っていたことがたまたま正しかったようですが、 間違っていたら「バグとりがバグになる」状態でした。 本当にありがとうございました。 -- tamo