[Anthy-dev 520] Re: uim: iconvを素通し

Back to archive index

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*****



Anthy-dev メーリングリストの案内
Back to archive index