Not only is the Internet dead, it's starting to smell really bad.:2005年09月分

2005/09/05(Mon)

@Citrus iconv UTF-5/6 support

誰も欲しがらないだろうけど、ちゃっちゃと書いてみた。
libUTF5
/distfiles/citrus/NetBSD/citrus_utf5-20050825.tar.bz2
libUTF-6
/distfiles/citrus/NetBSD/citrus_utf6-20050825.tar.bz2
libUTF6はwc->mbに変換するとき、圧縮率(同一バイト、同一ニブル、無圧縮)を決めるのに
いったんすべてのwcを読み込まないとならないので、iconv_stdモジュールでは駄目ぽ。
新しいiconvモジュールを用意する必要があるんだが、どういうインタフェースにするかね。
iconv -f JISAUTODETECT みたいなのを想定するとmb->wcの時も先読みできた方が
sizeof mbstate_t の範囲内で頑張るよりはまともな実装ができそうなんだが…
そもそもiconv的には自動判定ってありなのだろうか。

2005/09/20(Tue)

OpenBSD/Citrus

最近全然ヲチしてなかったんですが
http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/locale/
大分作業が進んでsinglebyte localeならLC_CTYPEが使えるようになってますね。
i18n_modules周りがまだなんで日本語使いにはまだまだpatchが必要ですが。
つうか最近全然メンテしてません、ごめんなさい。

個人的な感想としてはLC_CTYPEのデータベースファイルは

/usr/share/locale/ja_JP.eucJP/LC_CTYPE

ではなく

/usr/share/locale/ja_JP.eucJP/LC_CTYPE/XXX.1.0

とかの方がよかったなぁと今更ながら思うんですがね…

結局EILSEQについてもlibcのmajorのbumpが発生したみたい。
http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/shlib_version?rev=1.91&content-type=text/x-cvsweb-markup
libc.so.36.x -> libc.so.38.x と大手術でしたなぁ。