Akira TAGOH
at****@gclab*****
2004年 3月 4日 (木) 22:42:38 JST
たごうです. http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=117140 このようなバグが報告されたのですが,どのように修正すべきかい まいちよく分からないので,質問させてください. 簡単に現象を説明します. bugzillaに報告された問題はbreak-into-romanをtに設定していて, かつ子音を重ねることで,「っ」を出力するケースで問題が起きる ようです. どこが問題なのかを探ってみたところ,一番最初の削除によってロー マ字へ戻されるまではいいのですが,その後の削除で,直前の kAttrの値にHENKANSUMIが入っててもSENTOUがないため, kanaReplace()のみが呼ばれています.これによってkRStartp, kCurs, kEndpとrStartp, rCurs, rEndpの間に矛盾が生じます.そ して,何か入力され,再びgeneralFlagsにCANNA_YOMI_BREAK_ROMAN が入り,romajiReplace()が呼ばれ,その後のkanaReplace()でこの 矛盾によって,rCurs - rStartp分だけ重複してしまうようです. ここまでは,すべて lib/canna/romaji.c KanaDeletePrevious()の 中で起こっている問題ですが, * KanaDeletePrevious()のCANNA_YOMI_BREAK_ROMANが設定されてい なかった場合の処理がおかしい のか * kAttrに設定されているフラグがおかしい のか,見当がつきません. これはどうあるべきなのでしょうか? -- Akira TAGOH : tagoh****@gnome***** / Japan GNOME Users Group at****@gclab***** : tagoh****@gnome***** / GNOME-DB Project : tagoh****@redha***** / Red Hat, Inc. : tagoh****@debia***** / Debian Project