From: Nobuyoshi Nakada Date: 2007-12-24T17:08:57+09:00 Subject: [ruby-dev:32703] Re: ISO-2022-JP output for transcode なかだです。 At Mon, 24 Dec 2007 14:11:22 +0900, Martin Duerst wrote in [ruby-dev:32697]: > >* transcode_data_*.cをenc/trans/に移動させる。先ほどenc/trans/の > > 下もenc.mkで処理できるようにしました。 > > この移動はこれでいいです。以前にもそういう方向で話しましたよね。 些細な点ですが、one_byteという表現はあまり聞いたことがありません。 MBCSに対比させるなら、SBCSまたはsingle_byteではないかと思います。 > > # transcode_data_one_byte.cという名前はわかりにくいので、 > > # japanese.cと同じ伝でいえばeuropean.cかなぁと思ったりしますが。 > > こちらでもそう思いましたが、iso-8859-6 はアラビア語で、iso-8859-8 > はヘブライ語で、iso-8859-11 はタイ語で、どちらともヨーロッパと > 縁が薄いです。しばらくそのままいいではないでしょうか。 それはむしろenc/trans/{arabic,thai,hebrew}.cとかに分けたほうがい いのでは。 > >* MAX_TRANSCODERSの制限をなくす > > # というか、このパッチだとオーバーしてませんか? > > 外してもいいですが、余り大きな変更はしない方がいいと思います。 以前出したハッシュを使う方法はどうでしょうか。 > >* transcode_data_*.cを拡張ライブラリ形式にする。 > > 必要な構造体とプロトタイプをヘッダに入れて、各transcoderでは > > Init関数を追加することになります。 > > こちらでは次のように考えました: > - transcoder の登録を transcode.c に残す。 > - 登録の際、ファイル名も登録する。 > (例: > register_transcoder("ISO-8859-1", "UTF-8", &rb_from_ISO_8859_1, 2, 0); > の変わり > register_transcoder("ISO-8859-1", "UTF-8", &rb_from_ISO_8859_1, 2, 0, "transcode_data_one_byte"); ロード前にrb_from_ISO_8859_1などのポインタを使うわけにはいきませ んから rb_define_transcoder("ISO-8859-1", "UTF-8", "single_byte"); などのように対応するencoding名とライブラリ名を使うことになると思います。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦