Man Linux: Main Page and Category List

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.