2003/03/26(Wed)
○ gbk2k module
@何がだめぽかってーと
wchar_tもrunetype.hの__nbrune_tもsignedだという(滝汗)初歩的なアレ。
unsignedな32bitと勘違いしてた漏れはそのまま何も考えずに
0x81308130からのGB18030をwchar_tに突っ込んでますたと。
これじゃぁwctype周りはマトモに動作しないよなぁ、あー恥ずかしい。
サボらずmklocaleファイルを書いてりゃ気づいたものを...
@じゃあどうするかってーと
0x81308130 - 0xfe39fe39の範囲を無理矢理signedの範囲に納める、なんだけど
mklocaleにその為のルールをどうやって教えるかが問題だ罠。
mklocaleはISO2022の場合だと`CHARSET'トークンをみて
wchar_tの内部表現ルールに変換してるので、GB18030も同等の処理が必要だなぁ。
@mklocale
どうやら
CHARSET charsetbit charsetmask
という書式を受けつけるので、既存のmklocaleファイルの記述ルールを
変更する必要は無いけども、unsignedが通るようにmklocaleを修正する必要あるっぽい。