NAME¶
RkMapPhonogram - perform Romaji-kana conversion by using a specified Romaji-kana
conversion table
SYNOPSIS¶
#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;
DESCRIPTION¶
RkMapPhonogram 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).
RkMapPhonogram 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 area
dst is loaded with the
corresponding kana character string, with
dlen being set to its byte
length. The resulting character string is truncated when its byte length
exceeds
maxdst -1.
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. This
process provides for situations in which an obsolete Romaji-kana
conversion table is used.
- RK_FLUSH
- Converts all Romaji characters compulsorily. Useful for handling n
appearing at the end of a character string.
ulen,
dlen, and
tlen are used to manage the progress of
Romaji-kana conversion.
For example, if the character string "tt" is given to
RkMapPhonogram, the first "t" is submitted to Romaji-kana
conversion, with
dst being set to small kana character "tsu".
The remaining "t" is put to reuse for Romaji-kana conversion. When
"a" is entered subsequently, it is combined with the "t"
left from the previous run of
RkMapPhonogram to generate kana character
"ta".
ulen is set to the byte length of the characters from
src used for
Romaji-kana conversion.
dlen is set to the byte length of the kana characters derived from
Romaji-kana conversion.
tlen is set to the byte length of the character string to be used in the
next run of Romaji-kana conversion. The character string led by
tlen is
placed after the character string resulting from Romaji-kana conversion in the
dst buffers.
If null pointers are specified in
ulen,
dlen, and
tlen,
these parameters do not return any values and are simply ignored.
rule is used to exchange information about the
rule of Romaji-kana
conversion. When calling
RkMapPhonogram for the first time, specify a
pointer to a variable loaded with 0. Upon return from the first call to
RkMapPhonogram, that variable is loaded with internal information about
the rule of Romaji-kana conversion, in place of 0. To continue Romaji-kana
conversion, specify the same pointer to the variable to
RkMapPhonogram.
RETURN VALUE¶
This function returns information about whether the character string set in
dst has been converted by using a rule existing in the Romaji-kana
conversion table or not. The function returns 1 if a rule existing in the
Romaji-kana conversion table has been used; otherwise, it returns 0.