Provided by: libcanna1g-dev_3.7p3-17_amd64 bug

名前

       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 で組合わせます.

              RK_SOKUON 促音処理を有効にします.促音処理は,先頭2文字が同一文字xxであり,ロー  マ
                        字かな変換テーブルファイルに登録されていない時に限り,xxから「っ」へ 変換
                        します.この処理は旧形式のローマ字かな変換テーブルを使用していると き用で
                        す。

              RK_FLUSH  すべてのローマ字を強制的に変換します.これは最後のnの処理に有効です.

       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                         RKMAPPHONOGRAM(3)