RKMAPROMA(3)

名前
RkMapRoma - 指定されたローマ字かな変換テーブルを用いてローマ字かな変換を行う

形式
#include <canna/RK.h>
int RkMapRoma(romaji, dst, maxdst, src, srclen, flags, status)
struct RkRxDic *romaji;
unsigned char *dst;
int maxdst;
unsigned char *src;
int srclen;
int flags;
int *status;

説明
RkMapRoma は，指定されたローマ字かな変換テーブルを用いてローマ字かな変換を行います． romaji は， RkOpenRoma(3) により返されたローマ字かな変換テーブルへのポインタを与えます． RkMapRoma は，領域 src から srclen バイト続くデータをローマ字列として解釈し，ローマ字列先頭と一致するロー マ字かな変換規則をローマ字かな変換テーブルから探します． 対応する変換規則が見つかった場合には，対応するかな文字列を dst 領域に格納します．ただし，文字列のバイト数が maxdst -1 を超える場合には結果は切り捨てられます． また，可能ならば変換最終位 置にヌル文字が付け加えられます．

flags は，ローマ字かな変換を制御するためのフラグで以下を or で組合わせます．

    RK_SOKUON
        促音処理を有効にします．促音処理は，先頭2文字が同一文字xxであり，ロー マ字かな変換テーブルファイルに登録されていない時に限り，xxから「っ」へ 変換します．

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

以下のフラグは src に格納される文字の種類を指定します．これは，ローマ字かな変換テーブルか ら得られたかな文字列に対するコード変換を指定します．これらは，いずれか ひとつだけを用いることができます．

    RK_NFER
        そのまま

    RK_XFER
        ひらがな

    RK_HFER
        半角文字

    RK_KFER
        カタカナ

    RK_ZFER
        全角文字

status には， dst 領域に設定された文字列のバイト数が設定されます． この値が負の場合には，マッチするローマ字がなかったことを示します．

戻り値
ローマ字かな変換でマッチしたローマ字列先頭バイト数を返します．