22:09:08 @uaa@social.mikutter.hachune.net
icon

init_messages()でiconv_open()、得られたcdはsj3全体で使い回し…iconv_close()の呼び出しは不要、でいいかな?eucmessages.cを見るに、
WcMessages[0] = (wchar16_t *) malloc(all_len * sizeof(wchar16_t));
これに対するfree()は無いので。

21:53:10 @uaa@social.mikutter.hachune.net
icon

ぶっちゃけ、今はEUCで、将来はUTF-8で内部を動かすことになると思うんだけど…setlocale()で文字コード設定を拾っといて、iconv()で内部コードから外部のコードに変換する作りで十分って気がする。C localeならUTF-8扱いでも今は問題ない気がするし。

21:49:33 @uaa@social.mikutter.hachune.net
icon

sj3のロケールチェックって、どの程度必要性があるんだろう?別にja以外のロケールだってsj3を動かしてはいけない理由は無いのだし(日本語話者以外にとって意味不明な文字列が表示されるだけなのだし)。おそらくwcstombs(), mbstowcs()の類が正常に動かないから止めるとかそんな理由なんだろうとは思う。

jaかどうかのチェックは不要として、使用する文字コード…EUC, SJIS, UTF-8を取得する目的でロケール情報を取るというのであれば、それは理解できるんだけど。

というか、ロケールの設定に依存しない作りにする方が堅牢なコードになると思うんだけどどうなんだろう?EUCなりUTF-8なりで内部は処理して、APIの出口だってEUCかそれ以外って規定しているなら別にロケールの設定とか要らんはずだし。

20:28:51 @uaa@social.mikutter.hachune.net
icon

ごめん、sj3.h, sj3priv.hの再編は多分無理。SJ3_OBJSでsj3を構築するのに必要な宣言をsj3.hとsj3priv.hに分けてるけど、これ以上まとめようがないような…

19:56:57 @uaa@social.mikutter.hachune.net
icon

ぐちゃぐちゃにしてしまった、sj3.hの改修始めるかー(あまりやりたくない)