Not only is the Internet dead, it's starting to smell really bad.:2004年03月下旬

2004/03/21(Sun)

(ry

@GNU libiconv

iconv -l してみるとサポートしているエンコーディングにC99とかJAVAとかハッケソ。

$ echo "あいうえお" | /usr/pkg/bin/iconv -f EUC-JP -t JAVA
\u3042\u3044\u3046\u3048\u304a

Unicode Escape Sequenceって実体参照の範疇だからiconvで扱うのもなんだかなぁ。
将来的にHTML/XMLの"௢"とかもサポートされて、XSS脆弱性が見つかったりして。

@ってなわけで

Citrusでも互換性の名の元に、てけとーに実装してみた↓
/distfiles/citrus/NetBSD/citrus_ues-20040320.diff.gz
wcrtombでsnprintfのformat使ってるのはマズーだけど、まあ手抜きですから。
そのうち直す予定。
あと、こいつもzWと同じくmbstate_tにvalidなsingle byteが残る問題があるので、
iconvを直さんと変換が途中でstopしてしまう場合があるけど、まあまあ使える。

2004/03/28(Sun)

(ry

@私事ですが

この数週間その関係でバタバタしとったのですが、正式に異動になりマスター。
サーバ管理で遊んでないで開発しろってさ。
4月からのキーワード: Swing + EJB + JDO、環境はWAS + DB2 + AIX。

ちょこちょことServlet + XML(SOAPもどきね)な奴手伝ったこたあるけど
本格的にJavaなお仕事やってたのは、1.0~1.1のApplet + AWT + CORBAな時代。
Java書きとしては既に屍骸なんだけどいいのかねぇ。
若者にeclipseよりVisual Cafeの方が速いとか力説してやるか。

@UTF-7

そういやGNU libiconvをいじってて、surrogate pairを忘れてたことに気づく。
Unicode2.0の時点では既に導入されてたんだよね。
よく読みましょう>>RFC2152 ... 吊ってきますです。

2004/03/29(Mon)

(ry

@Citrus/zW

8月からいろいろ気付いた点があったので、だいぶ書き直した。
/distfiles/citrus/NetBSD/citrus_zw-20040329.tar.bz2

zw2hzは"z\nzW!!\nzW!!"というバイト列を L'z' + 0x2121 + 0x2121でなく
L"z\nzW!!" + 0x2121という変換をする(改行でもinitial stateにならない場合がある)。
どう考えてもバグっぽいんだけど、pkgsrc/print/cnprintでも同様っぽい
(つか同じ変換ロジックを使用?)ので、現状ではそちらに合わせた。

ちなみにデバグ中にmozillaのHZサポートは'~\n'をline continueとして扱わないとか、
zw2hzは'~'を'~~'に変換してくれんとか、いろいろ悩んだ。

2004/03/30(Tue)

(ry

@Citrus

zWにミスがあったので差替え、ファイル名一緒。
utf7も修正中...

@UTF-8

http://www.freebsd.org/cgi/cvsweb.cgi/src/share/mklocale/UTF-8.src
BMP外もサポート、GJ。

@freedesktop.org

こんなことやってるみたい。
http://www.freedesktop.org/Software/XlibToDoList
Redo locale support to use iconv - this would save 1/4 megabyte!