RKMAPPHONOGRAM(3) | Library Functions Manual | RKMAPPHONOGRAM(3) |
名前¶
RkMapPhonogram - 指定されたローマ字かな変換テーブルを用いてローマ字かな変換を行う
形式¶
#include <canna/RK.h> int RkMapPhonogram(romaji, dst, maxdst, src, srclen, flags, ulen, dlen, tlen, rule) struct RkRxDic *romaji; unsigned char *dst; int maxdst; unsigned char *src; int srclen; int flags; int *ulen; int *dlen; int *tlen; int *rule;
説明¶
RkMapPhonogram は,指定されたローマ字かな変換テーブルを用いてローマ字かな変換を行います. romaji は, RkOpenRoma(3) により返されたローマ字かな変換テーブルへのポインタを与えます. RkMapPhonogram は,領域 src から srclen バイト続くデータをローマ字列として解釈し,ローマ字列先頭と一致するロー マ字かな変換規則をローマ字かな変換テーブルから探します. 対応する変換規則が見つかった場合には,対応するかな文字列を dst 領域に格納しそのバイト長をdlenにて返します.ただし,文字列のバイ ト数が maxdst -1 を超える場合には結果は切り捨てられます.
flags は,ローマ字かな変換を制御するためのフラグで以下を or で組合わせます.
ulen, dlen, tlen は,ローマ字かな変換の進行具合を管理することに使われます.
例えば,``tt''のような文字を RkMapPhonogram に与えると最初の``t''がロー マ字かな変換に使われ,dst には``っ''が返ります.残りの``t''は次 のローマ字かな変換にて再び使用されます.この後``a''が入力された場合, 前回のRkMapPhonogramで残された``t''と入力された``a''を RkMapPhonogramに与え,``た''を得ます.
ulen には,srcのうちローマ字かな変換に 用いられた文字のバイト長が返ります.
dlen にはローマ字かな変換 された結果得られたかなのバイト長が返ります.
そして, tlen には,次のローマ字かな変換で引き続き使われるべき文字のバイト長が返りま す. tlen で示される文字列は,dstバッファにおいて,ローマ字かな変換済の文 字列の後ろに置かれます.
ulen, dlen, tlen に対してヌルポインタを与えた場合には,これらの値は返らず単に無視されま す.
rule にて,ローマ字かな変換ルールに関する情報をやりとりします. 最初にRkMapPhonogramを呼ぶ時は0を格納した変数へのポインタを与え て下さい.最初の呼出しから戻った時にその変数には(0の代わりに)ローマ字 かな変換ルールに関する内部的な情報が返されます.ローマ字かな変換を続け る場合は,前回指定した変数へのポインタを再びRkMapPhonogramに与え て下さい.
戻り値¶
dst で返される文字がローマ字かな変換テーブルに存在したルールを用いて変換さ れたものであるかどうかを返します.ローマ字かな変換テーブルにあったルー ルが使われた場合には1を返し,そうでない場合には0を返します.
6 March 1992 |