YamaKen
yamak****@bp*****
2004年 2月 6日 (金) 20:04:22 JST
At Fri, 6 Feb 2004 19:34:56 +0900, tkng****@xem***** wrote: > > On Fri, 06 Feb 2004 18:32:56 +0900 > YamaKen <yamak****@bp*****> wrote: > > > > > ・変換対象文字列のエンコーディングがtoとfromで同じだったらiconv > > > > を使わずそのまま文字列をアプリ側に渡す > > > > > > > > ・アプリ側で各IMのネイティブエンコーディングを知るために以下の > > > > APIを追加 > > > > > > > > const char *uim_get_im_encoding(uim_context uc, int nth); > > > > > > uim_code_convがiconvに依存してしまっている現状ではどうしようもない > > > のですが、ここらへんをもうちょっとなんとかすれば、アプリ側でIMのネイ > > > ティブエンコーディングを知る必要はないんじゃないかと思うのですが、ど > > > うでしょう? > > iconvに代わる汎用変換インタフェイスを別途用意しない限りは上記の > > ような流れで処理するしかないと思うんですが、もっと別の次元の話で > > すか? > 私が考えてるのは以下のような変更です。 > > uim_context構造体にiconv_t convというメンバがありますが、これを > uimconv_t convとかそんな感じの名前に変える。 > > 環境によってはtypedef uimconv_t iconv_t、またある環境によってはtypedef > uimconv_t QTextCodec、という感じでifdefでuimconv_tの実体を変える。 > > 現在iconvを使って処理しているuim_code_convやその他いくつかの関数を > ifdefで書き換える。 > > どうせconfigure時にiconvの有無やiconvに代わるエンコーディング変換機能の > 有無のチェックをしなければならないならば、これでも問題なく(そして変更点 > は少なく)問題が解決できると思います。 このやり方はまずいです。Linuxザウルスにuimをインストールする場合 でも、uim-xim経由でglibcのiconvが使われる事もあるので、Qt依存が バイナリに焼き込まれてしまうとlibuimが2通り必要になります。 > ここまで書いてから気づいたのですが、ヤマケンさんが考えてるのは、 > uim_contextのメンバのconvはまったく使わずに、ブリッジ側でエンコーディン > グを変換するという方法ですよね。たしかにその方がlibuimは変更せずに済むの > で楽なような気もするのですが、将来的にはどっちが楽なんでしょう?もうちょ > っと考えてみないと、私にはわかりそうにないです。 ブリッジ側がiconv相当の機能を提供するコールバックインタフェイス を作れば綺麗にまとまると思います。それが以下の発言の意図でした。 > > iconvに代わる汎用変換インタフェイスを別途用意しない限りは上記の 0.3で変えようとしているAPIが他にも結構多いのでこの部分はあまり下 手にいじらずにそっとしておこうと思ったんですが、一緒に変えてしま いましょうか? ------------------------------- ヤマケン yamak****@bp*****