.\" Copyright 1994 NEC Corporation, Tokyo, Japan. .\" .\" Permission to use, copy, modify, distribute and sell this software .\" and its documentation for any purpose is hereby granted without .\" fee, provided that the above copyright notice appear in all copies .\" and that both that copyright notice and this permission notice .\" appear in supporting documentation, and that the name of NEC .\" Corporation not be used in advertising or publicity pertaining to .\" distribution of the software without specific, written prior .\" permission. NEC Corporation makes no representations about the .\" suitability of this software for any purpose. It is provided "as .\" is" without express or implied warranty. .\" .\" NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, .\" INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN .\" NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR .\" CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF .\" USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR .\" OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR .\" PERFORMANCE OF THIS SOFTWARE. .\" .\" $Id: RkMapPho.jmn,v 1.1.1.1 2002/10/19 08:27:47 aida_s Exp $ NEC; .\" $Id: RkMapPho.jmn,v 1.1.1.1 2002/10/19 08:27:47 aida_s Exp $ NEC; .if t .pn 575 .TH RKMAPPHONOGRAM 3 "6 March 1992" .SH "名前" RkMapPhonogram \- 指定されたローマ字かな変換テーブルを用いてローマ字かな変換を行う .SH "形式" .nf .B #include .B "int RkMapPhonogram(romaji, dst, maxdst, src, srclen, flags, ulen, dlen, tlen, rule)" .B struct RkRxDic *romaji; .B unsigned char *dst; .B int maxdst; .B unsigned char *src; .B int srclen; .B int flags; .B int *ulen; .B int *dlen; .B int *tlen; .B int *rule; .fi .SH "説明" .I RkMapPhonogram は,指定されたローマ字かな変換テーブルを用いてローマ字かな変換を行います. .I romaji は, .IR RkOpenRoma(3) により返されたローマ字かな変換テーブルへのポインタを与えます. .I RkMapPhonogram は,領域 .I src から .I srclen バイト続くデータをローマ字列として解釈し,ローマ字列先頭と一致するロー マ字かな変換規則をローマ字かな変換テーブルから探します. 対応する変換規則が見つかった場合には,対応するかな文字列を .I dst 領域に格納しそのバイト長を\fIdlen\fPにて返します.ただし,文字列のバイ ト数が .I maxdst \-1 を超える場合には結果は切り捨てられます. .PP .I flags は,ローマ字かな変換を制御するためのフラグで以下を or で組合わせます. .RS .IP RK_SOKUON 10 促音処理を有効にします.促音処理は,先頭2文字が同一文字xxであり,ロー マ字かな変換テーブルファイルに登録されていない時に限り,xxから「っ」へ 変換します.この処理は旧形式のローマ字かな変換テーブルを使用していると き用です。 .IP RK_FLUSH 10 すべてのローマ字を強制的に変換します.これは最後のnの処理に有効です. .RE .PP .I ulen, dlen, tlen は,ローマ字かな変換の進行具合を管理することに使われます. .PP 例えば,``tt''のような文字を RkMapPhonogram に与えると最初の``t''がロー マ字かな変換に使われ,\fIdst\fP には``っ''が返ります.残りの``t''は次 のローマ字かな変換にて再び使用されます.この後``a''が入力された場合, 前回の\fIRkMapPhonogram\fPで残された``t''と入力された``a''を \fIRkMapPhonogram\fPに与え,``た''を得ます. .PP .I ulen には,\fIsrc\fPのうちローマ字かな変換に 用いられた文字のバイト長が返ります. .PP .I dlen にはローマ字かな変換 された結果得られたかなのバイト長が返ります. .PP そして, .I tlen には,次のローマ字かな変換で引き続き使われるべき文字のバイト長が返りま す. .I tlen で示される文字列は,\fIdst\fPバッファにおいて,ローマ字かな変換済の文 字列の後ろに置かれます. .PP .I ulen, dlen, tlen に対してヌルポインタを与えた場合には,これらの値は返らず単に無視されま す. .PP .I rule にて,ローマ字かな変換ルールに関する情報をやりとりします. 最初に\fIRkMapPhonogram\fPを呼ぶ時は0を格納した変数へのポインタを与え て下さい.最初の呼出しから戻った時にその変数には(0の代わりに)ローマ字 かな変換ルールに関する内部的な情報が返されます.ローマ字かな変換を続け る場合は,前回指定した変数へのポインタを再び\fIRkMapPhonogram\fPに与え て下さい. .SH "戻り値" .I dst で返される文字がローマ字かな変換テーブルに存在したルールを用いて変換さ れたものであるかどうかを返します.ローマ字かな変換テーブルにあったルー ルが使われた場合には1を返し,そうでない場合には0を返します.