MSymbol mchar_define_charset |
( |
const char * |
name, |
|
|
MPlist * |
plist | |
|
) |
| | |
|
関数 mchar_define_charset() は新しい文字セットを定義し、それを name という名前を持つシンボル経由でアクセスできるようにする。 plist は定義される文字セットのパラメータを以下のように指定する。
-
キーが Mmethod で値がシンボルの時
値は、Moffset, Mmap (デフォルト値), Munify, Msubset, Msuperset のいずれかであり、文字セットのコードポイントをデコード/エンコードする際のメソッドを指定する。
-
キーが Mdimension で値が整数値の時
値は、1 (デフォルト値), 2, 3, 4 のいずれかであり、文字セットのコードポイントの次元である。
-
キーが Mmin_range で値が非負整数値の時
値はコードポイントの最小の値である。すなわち、この値の N 番目のバイトはこの文字セットのコードポイントの N 番目のバイトの最小のものとなる。 デフォルト値は 0 。
-
キーが Mmax_range で値が非負整数値の時
値はコードポイントの最大の値である。すなわち、この値の N 番目のバイトはこの文字セットのコードポイントの N 番目のバイトの最大のものとなる。 デフォルト値は、コードポイントの次元が 1, 2, 3, 4 の時、それぞれ 0xFF, 0xFFFF, 0xFFFFFF, 0xFFFFFFFF 。
-
キーが Mmin_code で値が非負整数値の時
値はこの文字セットの最小のコードポイントである。デフォルト値は Mmin_range の値。
-
キーが Mmax_code で値が非負整数値の時
値はこの文字セットの最大のコードポイントである。デフォルト値は Mmax_range の値。
-
キーが Mascii_compatible で値がシンボルの時
値はこの文字セットが ASCII 互換であるかどうかを示す。デフォルト値の Mnil であれば互換ではなく、それ以外の場合は互換である。
-
キーが Mfinal_byte で値が整数値の時
値はこの文字セットの The International Registry に登録されている 終端バイト であり、0 (デフォルト値) であるか 32..127 である。0 は登録されていないことを意味する。
-
キーが Mrevision で値が整数値の時
値は The International Registry に登録されている revision number であり、0..127 である。 文字セットが登録されていない場合にはこの値は無視される。 0 は revision number が存在しないことを意味する。
-
キーが Mmin_char で値が整数値の時
値はこの文字セットの最小の文字コードである。デフォルト値は 0 。
-
キーが Mmapfile で値が M-text の時
メソッドが Mmap か Munify の時、関数 mdatabase_define() をこの値を引数 extra_info として呼ぶことによって、マッピングに関するデータが m17n データベースに追加される。 すなわち、この値はデータファイルの名前である。
そうでなければ、このパラメータは無視される。
-
キーが Mparents で値が plist の時
メソッドが Msubset ならば、値は長さ 1 の plist であり、その値はこの文字セットの上位集合となる文字セットを示すシンボルである。
メソッドが Msuperset ならば、値は長さ 8 以下の plist であり、それらの値はこの文字セットの下位集合である文字セットを示すシンボルである。
そうでなければ、このパラメータは無視される。
-
キーが Mdefine_coding で値がシンボルの時
文字セットの次元が 1 ならば、値が Mnil 以外の場合に Mcharset 型 で同じ名前を持つコード系を定義する。
そうでなければ、このパラメータは無視される。
- 戻り値:
- 処理が成功すれば、mchar_define_charset() は name という名前のシンボルを返す。そうでなければ Mnil を返し、外部変数 merror_code にエラーコードを設定する。
- エラー:
MERROR_CHARSET
|
int mchar_list_charset |
( |
MSymbol ** |
symbols |
) |
|
|
関数 mchar_list_charsets() は、文字セットを示すシンボルを並べた配列を作り、symbols でポイントされた場所にこの配列へのポインタを置き、配列の長さを返す。 |
int mchar_decode |
( |
MSymbol |
charset_name, |
|
|
unsigned |
code | |
|
) |
| | |
|
関数 mchar_decode() は、シンボル charset_name で示される文字セット内の code というコードポイントをデコードして文字コードを得る。
- 戻り値:
- デコードが成功すれば、mchar_decode() はデコードされた文字コードを返す。 そうでなければ -1 を返す。
- 参照:
- mchar_encode()
|
int mchar_map_charset |
( |
MSymbol |
charset_name, |
|
|
void(*)(int from, int to, void *arg) |
func, |
|
|
void * |
func_arg | |
|
) |
| | |
|
関数 mcharset_map_chars() は charset_name という名前を持つ文字セット中のすべての文字に対して func を呼ぶ。 呼び出しは一文字毎ではなく、連続した文字のまとまり単位で行なわれる。
関数 func にはfrom, to, arg の3引数が渡される。from と to は charset 中の文字コードの範囲を指定する。arg は func_arg と同じである。
- 戻り値:
- 処理に成功すれば mcharset_map_chars() は 0 を返す。 そうでなければ -1 を返し、外部変数 merror_code にエラーコードを設定する。
- エラー:
MERROR_CHARSET
|
|