TOKUNAGA Hiroyuki
tkng****@xem*****
2002年 12月 2日 (月) 04:32:19 JST
初めまして。徳永と申します。よろしくお願いします。 uim-1201を使ってみて、いくつか不具合をみつけたので報告します。簡単に解 決できた1つの不具合だけ、パッチも作ってみました。 # sf.jpでパッチが送れるみたいですが、アカウント持ってないので、こちら #に添付させていただきました gtk-entryを使ってテストしました。 使用したコンパイラはgcc version 2.95.4 20011002 (Debian prerelease) gtk+のバージョンは2.0.9です。 ■1.フォーカスアウトしたときにステータスバーと候補ウィンドウが隠れない これは単に機能が実装されていないだけですね。パッチを作ってみましたので、 参照してみて下さい。 ■2.変換エンジンをAnthyにした状態で、特定の文字を最初に入力、変換してから 確定しようとすると落ちる 特定の文字にまだイマイチ法則性が見い出す事ができないのですが、今のとこ ろ「もげ」「もと」「もこ」「もぁ」「また」「なは」など、mかnで始まり、ひ らがなで二文字の単語を入力すると落ちる事を確認しました。ただし、ひらがな で二文字でも、「もぼ」「もぼ」「もあ」「もい」などの単語は入力しても落ち ません。また、「もう゛ぁ」のようにvが入る場合も落ちないようです。 「もあ」「もい」は入力が3文字と、ちょっと特殊なので納得できないこともな いのですが、「もぼ」「もば」などがなぜ落ちないのか、ちょっと疑問です。 落ちる前に出ているメッセージは以下のような感じです。 () Evaluation took nan seconds (0 in gc) 31 cons work, 0 real. () [starting GC] [GC took nan cpu seconds, 51353 cells collected] Evaluation took nan seconds (nan in gc) 6119 cons work, 0 real. () ERROR: not a symbol or string (see errobj) Program received signal SIGSEGV, Segmentation fault. 落ちる直前にはGCが呼ばれていることと、そのあとのEvaluationが(nan in gc)となっているのが特徴であるように思われます。 また、LISP strがシンボルでも文字列でもない事が問題らしいので、どんなタイ プであるのかをprintfを入れて確認してみると、落ちる直前のLISP strのタイプ は、1( tc_cons)か12( tc_free_cell )でした。 どのような時が1でどのような時が12になるのかは、わかりませんでしたが、ど ちらのタイプである事が多いかというと、12の方が多いような印象です。 gdbでおってみましたが、uim_eval_string以降は追えないみたいですね。 (gdb) bt #0 0x000c0000 in ?? () #1 0x40985dd8 in uim_eval_string (uc=0x81461d8, buf=0xbfffebc4 " (key-press-handler 0 'return 0)") at uim-func.c:126 #2 0x40986a6d in handle_key (uc=0x81461d8, p=0x4099c8e3 "press", key=259, state=0) at uim-key.c:47 #3 ... ■3.変換エンジンをAnthyにした状態で、連続して文字列を入力、確定していっ たときに、決まった文字数で落ちる 例えば、「あ」を入力してスペースを一回押してから確定、というような作業 をくりかえすと、かならず10回目で落ちます。他に「い」「も」で試してみまし たが、やはり10回目で落ちます。「ああ」みたいに二文字づつ入力していった場 合は、どこで落ちるかよくわかりませんでした。 難しい部分については全然パッチとかがなくて申し訳ないのですが、開発の参 考になれば幸いです。それでは。 徳永拓之 tkng****@xem***** http://kodou.net/ -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: uim.patch 型: application/octet-stream サイズ: 623 バイト 説明: 無し Download