Hiroyuki Ikezoe
poinc****@ikezo*****
2005年 3月 3日 (木) 11:10:32 JST
zoeです。 さっきのメールはこのメールを全く読まずに書いてしまってました。 On Thu, 3 Mar 2005 10:46:00 +0900 Hiroaki Nakamura <hnaka****@good-*****> wrote: > 特に問題なければ、以下の内容でzoeさんに作業をお願いしようかと思います。 > #事前に説明した内容から少し変わってます。事前説明では戻り値が辞書内の > #文字のインデックスの配列だったのですが、それだとuim-tomoe-gtk側が > #辞書を読まないといけなくなってしまうので、文字列の配列を返すように > #修正しました。 > > tomoeのAPI案 > ============ > > 基本的にはmatch.cのmain()内の処理を分割することになります。 > > * void tomoe_init() > - load_data()を呼ぶ > > * int tomoe_match(letter *input, char ***matched) > - get_matched_char_index()は現状グローバル変数のstatic letter inputを > 参照していますがこれを止めて、引数でletter *型の変数inputを渡すようにし、 > そこから呼ばれる関数にも全て引数でletter *型の変数inputを渡すようにする。 > あとは現状input.〜として参照している箇所をinput->〜に変更。 > - 上記の変更を行なった上でget_matched_char_index()を呼ぶ。 > 戻り値は辞書内の文字のインデックスの配列が返ってくるので、 > それを元に文字列(char*)の配列(char**)を作成して出力引数matchedに設定する。 > 作成後に > static void int_array_free_contents(int_array *array) > を呼んでget_matched_char_index()の戻り値の領域を解放する。 > - 戻り値はマッチした数を返す。 > > * void tomoe_free_matched(char **matched) > - tomoe_matchの出力引数matchedの領域を解放するための関数。 > > * void tomoe_term() > - dictionary_free_contents(&dict)を呼ぶ これでいいと思います。 ので、とりあえづ、この形で作業を始めます。 # スレッドセーフにするのがめんどくさそう…