Hiroaki Nakamura
hnaka****@good-*****
2005年 3月 3日 (木) 10:46:00 JST
中村です。 zoeさんにはっぱをかけられたのでtomoeのAPI案を考えてみました。 現状のtomoeは入力された文字の座標情報を標準入力から入力し マッチした文字情報を標準出力に返すようになっています。 それをAPI化するという話です。 特に問題なければ、以下の内容で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)を呼ぶ -- 中村 弘輝 )Hiroaki Nakamura) hnaka****@good-*****