SYNOPSIS

#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;

DESCRIPTION

RkMapRoma performs Romaji-kana conversion by using a specified Romaji-kana conversion table. romaji specifies a pointer to the Romaji-kana conversion table that has been returned by RkOpenRoma(3). RkMapRoma interprets the srclen bytes of contiguous data starting at the area src as a Romaji character string and searches through the Romaji-kana conversion table for the rule of Romaji-kana conversion that matches the beginning of the Romaji character string. If the corresponding conversion rule is found, the corresponding kana character string is stored in the area dst. The resulting character string is truncated when its byte length exceeds maxdst -1. dst is padded with null characters at the end if possible.

flags is a combination of the following Romaji-kana conversion flags connected by or:

RK_SOKUON

Enables gemination, in which a sequence of two occurrences of the same character, xx, is converted to small kana character "tsu" only if it is not defined in the Romaji-kana conversion table file.

RK_FLUSH

Converts all Romaji characters compulsorily. Useful for handling n appearing at the end of a character string.

The flags listed below specify the type of characters stored in src. These specified code conversion to be performed on the character string derived from the Romaji-kana conversion table. These flags can use one by one.

RK_NFER

No conversion

RK_XFER

Hiragana

RK_HFER

Single-byte character

RK_KFER

Katakana

RK_ZFER

Double-byte character

status is set to the byte length of the character string set in the area dst. A negative value means that there is no matching Romaji character string.

RETURN VALUE

This function returns the starting byte length of the Romaji character string matched by Romaji-kana conversion.