TOKUNAGA Hiroyuki
tkng****@xem*****
2004年 2月 10日 (火) 22:13:17 JST
On Tue, 10 Feb 2004 16:23:05 +0900 Etsushi Kato <ekato****@ees*****> wrote: > Mac OS X 10.3 の X Window 上で使うという、少し(?)特殊な環境なのですが > 、いくつか問題がありました。 > > まず gnome2 のパネルで uim-helper-applet を動かしても、表示が "?" のま > まで変化してくれません。これには二つ(?)問題があるようで、一つは > uim-helper-client.c の uim_helper_init_client_fd() の中での、 > fst.st_uid != getuid() のチェックでひっかかってしまうという点です。Mac > OS X では fst.st_uid が 0 になっていました。とりあえず、いまのところチ > ェックを外して動かしています。もう一つは、uim-helper-server が > execlep() で呼び出されるとなぜだかすぐにクラッシュしてしまうようです。 > 手動で先に動かしておくと特に問題なく動くようなので、ちょっとよくわかり > ません。このように uim-helper-client.c の変更と、uim-helper-server > を先に動かしておくということをすれば、いちおう Mac OS X でも > uim-helper-applet の表示がされるようになりました。 fst.st_uid != getuid()のチェックを外すのはセキュリティ的にあまりよろし くないような気がします。個人でわかってて外す分には構わないとは思うのです が。 uim-helper-serverがexeclp()で呼び出されるとすぐにクラッシュするという のは、パスが通ってないところにuim-helper-serverがインストールされている というわけではないですよね?なぜ落ちるのか、ちょっと予想がつきません。 > あと uim-xim についてですが、Mac OS X では canddisp.cpp の fflush() に > よって SIGPIPE で uim-xim が落ちてしまうようです。uim-xim の main() に > SIGPIPE を無視するようにコードを追加していただけるとありがたいです。 とりあえず、無視するようにはしておきました。私はSIGPIPEが送られてくる のはhelper-serverが落ちて書き込めなかったときではないかと思っています。 よければもう少し状況を説明していただけませんか? -- 徳永拓之 http://kodou.net/