変数: 文字セットを表現する定義済みシンボル. | |
以下の各シンボルは、定義済み文字セットを表現する。 | |
MSymbol | Mcharset_ascii |
ASCII 文字セットを表現するシンボル. | |
MSymbol | Mcharset_iso_8859_1 |
ISO/IEC 8859-1:1998 文字セットを表現するシンボル. | |
MSymbol | Mcharset_unicode |
Unicode 文字セットを表現するシンボル. | |
MSymbol | Mcharset_m17n |
全文字を含む文字セットを表現するシンボル. | |
MSymbol | Mcharset_binary |
正しくデコードできない文字の文字セットを表現するシンボル. | |
変数: mchar_define_charset 用のパラメータ・キー | |
これらは、関数 mchar_define_charset() 用のパラメータ・キーとして使われるシンボルである。 詳しくはこの関数の解説を参照のこと。 | |
MSymbol | Mmethod |
MSymbol | Mdimension |
MSymbol | Mmin_range |
MSymbol | Mmax_range |
MSymbol | Mmin_code |
MSymbol | Mmax_code |
MSymbol | Mascii_compatible |
MSymbol | Mfinal_byte |
MSymbol | Mrevision |
MSymbol | Mmin_char |
MSymbol | Mmapfile |
MSymbol | Mparents |
MSymbol | Msubset_offset |
MSymbol | Mdefine_coding |
MSymbol | Maliases |
変数: 文字セットのメソッド指定に使われるシンボル | |
これらは、文字セットの メソッド を指定するための定義済みシンボルであり、文字セットの Mmethod パラメータの値となることができる。 この値は関数 mchar_define_charset() の引数として使われる。
メソッドとは、コードポイントと文字コードを相互変換する際の方式のことである。 詳しくは関数 mchar_define_charset() の解説を参照のこと。 | |
MSymbol | Moffset |
オフセット型のメソッドを示すシンボル. | |
MSymbol | Mmap |
マップ型のメソッドを示すシンボル. | |
MSymbol | Munify |
ユニファイ型のメソッドを示すシンボル. | |
MSymbol | Msubset |
サブセット型のメソッドを示すシンボル. | |
MSymbol | Msuperset |
スーパーセット型のメソッドを示すシンボル. | |
マクロ定義 | |
#define | MCHAR_INVALID_CODE |
無効なコードポイント. | |
関数 | |
MSymbol | mchar_define_charset (const char *name, MPlist *plist) |
文字セットを定義する. | |
MSymbol | mchar_resolve_charset (MSymbol symbol) |
文字セット名を解決する. | |
int | mchar_list_charset (MSymbol **symbols) |
文字セットを表わすシンボルを列挙する. | |
int | mchar_decode (MSymbol charset_name, unsigned code) |
コードポイントをデコードする. | |
unsigned | mchar_encode (MSymbol charset_name, int c) |
文字コードをエンコードする. | |
int | mchar_map_charset (MSymbol charset_name, void(*func)(int from, int to, void *arg), void *func_arg) |
指定した文字セットのすべての文字に対して関数を呼ぶ. | |
変数 | |
MSymbol | Mcharset |
シンボル Mcharset . |
m17n ライブラリは、以下の概念を区別している:
unsigned
型によって表される。無効なコードポイントはマクロ MCHAR_INVALID_CODE
で表される。#define MCHAR_INVALID_CODE |
マクロ MCHAR_INVALID_CODE は無効なコードポイントを示す。
関数 mchar_define_charset() は新しい文字セットを定義し、それを name という名前を持つシンボル経由でアクセスできるようにする。 plist は定義される文字セットのパラメータを以下のように指定する。
値は、Moffset, Mmap (デフォルト値), Munify, Msubset, Msuperset のいずれかであり、文字セットのコードポイントをデコード/エンコードする際のメソッドを指定する。
値は、1 (デフォルト値), 2, 3, 4 のいずれかであり、文字セットのコードポイントの次元である。
値はコードポイントの最小の値である。すなわち、この値の N 番目のバイトはこの文字セットのコードポイントの N 番目のバイトの最小のものとなる。 デフォルト値は 0 。
値はコードポイントの最大の値である。すなわち、この値の N 番目のバイトはこの文字セットのコードポイントの N 番目のバイトの最大のものとなる。 デフォルト値は、コードポイントの次元が 1, 2, 3, 4 の時、それぞれ 0xFF, 0xFFFF, 0xFFFFFF, 0xFFFFFFFF 。
値はこの文字セットの最小のコードポイントである。デフォルト値は Mmin_range の値。
値はこの文字セットの最大のコードポイントである。デフォルト値は Mmax_range の値。
値はこの文字セットが ASCII 互換であるかどうかを示す。デフォルト値の Mnil であれば互換ではなく、それ以外の場合は互換である。
値はこの文字セットの The International Registry に登録されている 終端バイト であり、0 (デフォルト値) であるか 32..127 である。0 は登録されていないことを意味する。
値は The International Registry に登録されている revision number であり、0..127 である。 文字セットが登録されていない場合にはこの値は無視される。 0 は revision number が存在しないことを意味する。
値はこの文字セットの最小の文字コードである。デフォルト値は 0 。
メソッドが Mmap か Munify の時、関数 mdatabase_define() をこの値を引数 extra_info として呼ぶことによって、マッピングに関するデータが m17n データベースに追加される。 すなわち、この値はデータファイルの名前である。
そうでなければ、このパラメータは無視される。
メソッドが Msubset ならば、値は長さ 1 の plist であり、その値はこの文字セットの上位集合となる文字セットを示すシンボルである。
メソッドが Msuperset ならば、値は長さ 8 以下の plist であり、それらの値はこの文字セットの下位集合である文字セットを示すシンボルである。
そうでなければ、このパラメータは無視される。
文字セットの次元が 1 ならば、値が Mnil 以外の場合に Mcharset 型 で同じ名前を持つコード系を定義する。
そうでなければ、このパラメータは無視される。
MERROR_CHARSET
関数 mchar_resolve_charset() は symbol が文字セットを示していればそれを返す。
そうでなければ、symbol を文字セット名として正規化し、それが文字セットを示していていれば正規化したものを返す。 そうでなければ、Mnil を返す。
int mchar_list_charset | ( | MSymbol ** | symbols | ) |
関数 mchar_list_charsets() は、文字セットを示すシンボルを並べた配列を作り、symbols でポイントされた場所にこの配列へのポインタを置き、配列の長さを返す。
int mchar_decode | ( | MSymbol | charset_name, | |
unsigned | code | |||
) |
関数 mchar_decode() は、シンボル charset_name で示される文字セット内の code というコードポイントをデコードして文字コードを得る。
unsigned mchar_encode | ( | MSymbol | charset_name, | |
int | c | |||
) |
関数 mchar_encode() は、文字コード c をエンコードしてシンボル charset_name で示される文字セット内におけるコードポイントを得る。
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 と同じである。
MERROR_CHARSET
デコードされた M-text は、キーが Mcharset
であるようなテキストプロパティを持つ。 シンボル Mcharset
は "charset"
という名前を持つ。
シンボル Mcharset_ascii は "ascii"
という名前を持ち、 ISO 646, USA Version X3.4-1968 (ISO-IR-6) 文字セットを表現する。
シンボル Mcharset_iso_8859_1 は "iso-8859-1"
という名前を持ち、ISO/IEC 8859-1:1998 文字セットを表現する。
シンボル Mcharset_unicode は "unicode"
という名前を持ち、Unicode 文字セットを表現する。
シンボル Mcharset_m17n は "m17n"
という名前を持ち、 m17n ライブラリが扱う全ての文字を含む文字セットを表現する。
シンボル Mcharset_binary は "binary"
という名前を持ち、偽の (fake) 文字セットを表現する。 デコード関数は、M-text のテキストプロパティとして、無効なバイト(シークエンス)に遭遇した位置を付加する。
詳細は コード変換 参照のこと。
関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。
関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。
関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。
関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。
関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。
関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。
関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。
関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。
関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。
関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。
関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。
関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。
関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。
関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。
関数 mchar_define_charset() 用のパラメータ・キー. 詳しくはこの関数の解説を参照のこと。
シンボル Minherit は "unify"
という名前を持ち、文字セットの Mmethod パラメータの値として用いられた場合には、コードポイントと文字セットの文字コードの間の変換が、マップの参照とオフセットの組み合わせによって行われることを意味する。 マップは Mmapfile パラメータとして与えなければならない。 この種の各文字セットには、全文字に対して連続するコードスペースがそれぞれ割り当てられる。
コードポイントがマップに含まれていれば、変換はマップ参照によって行われる。 そうでなければ、以下の式に従う。
CHARACTER-CODE = CODE-POINT - MIN-CODE + LOWEST-CHAR-CODE
ここで、MIN-CODE は文字セットの Mmin_code パラメータの値であり、 LOWEST-CHAR-CODE は割り当てられたコードスペースの最も小さい文字コードである。
シンボル Msubset は "subset"
という名前を持ち、文字セットの Mmethod パラメータの値として用いられた場合には、この文字セットが別の文字セット(親文字セット)の部分集合であることを意味する。 親文字セットは Mparents パラメータによって与えられなくてはならない。 コードポイントと文字セットの文字コードの間の変換は、概念的には以下の式に従う。
CHARACTER-CODE = PARENT-CODE (CODE-POINT) + SUBSET-OFFSET
ここで PARENT-CODE は CODE-POINT の親文字セット中での文字コードを返す擬関数であり、SUBSET-OFFSET は Msubset_offset パラメータで与えられる値である。