m17n ライブラリ 1.8.4
|
文字オブジェクトとそれに関する API. [詳解]
マクロ定義 | |
#define | MCHAR_MAX |
文字コードの最大値. | |
関数 | |
MSymbol | mchar_define_property (const char *name, MSymbol type) |
文字プロパティを定義する. | |
void * | mchar_get_prop (int c, MSymbol key) |
文字プロパティの値を得る. | |
int | mchar_put_prop (int c, MSymbol key, void *val) |
文字プロパティの値を設定する. | |
MCharTable * | mchar_get_prop_table (MSymbol key, MSymbol *type) |
文字プロパティの文字テーブルを得る. | |
変数: 文字プロパティのキー | |
これらのシンボルは文字プロパティのキーとして使われる。 | |
MSymbol | Mscript |
スクリプトを表わすキー. | |
MSymbol | Mname |
名前を表わすキー. | |
MSymbol | Mcategory |
一般カテゴリを表わすキー. | |
MSymbol | Mcombining_class |
標準結合クラスを表わすキー. | |
MSymbol | Mbidi_category |
双方向カテゴリを表わすキー. | |
MSymbol | Msimple_case_folding |
対応する小文字一文字を表わすキー. | |
MSymbol | Mcomplicated_case_folding |
対応する小文字の列を表わすキー. | |
MSymbol | Mcased |
Case 処理に用いられる値のキー. | |
MSymbol | Msoft_dotted |
Case 処理に用いられる値のキー. | |
MSymbol | Mcase_mapping |
Case 処理に用いられる値のキー. | |
MSymbol | Mblock |
スクリプトブロック名を表すキー. | |
文字オブジェクトとそれに関する API.
m17n ライブラリは 文字 を文字コード(整数)で表現する。 最小の文字コードは 0
であり、最大の文字コードはマクロ MCHAR_MAX によって定義されている。::MCHAR_MAX は 0x3FFFFF(22ビット)
以上であることが保証されている。
0
から 0x10FFFF
までの文字は、それと同じ値を持つ Unicode の文字に割り当てられている。
各文字は 文字プロパティ と呼ぶプロパティを 0 個以上持つことができる。 文字プロパティは キー と 値 からなる。 キーはシンボルであり、値は (void *)
型にキャストできるものなら何でもよい。 「文字 C の文字プロパティのうちキーが K であるもの」を簡単に「文字 C の K プロパティ」と呼ぶことがある。
#define MCHAR_MAX |
文字コードの最大値.
マクロ MCHAR_MAX は文字コードの最大値を表す。
MSymbol mchar_define_property | ( | const char * | name, |
MSymbol | type | ||
) |
文字プロパティを定義する.
関数 mchar_define_property() は、 <Mchar_table, type, sym > というタグを持ったデータベースを m17n 言語情報ベースから探す。
ここで sym は name という名前のシンボルである。type は::Mstring, Mtext, Msymbol, Minteger, Mplist のいずれかでなければならない。
MERROR_DB
void * mchar_get_prop | ( | int | c, |
MSymbol | key | ||
) |
文字プロパティの値を得る.
関数 mchar_get_prop() は、文字 c の文字プロパティのうちキーが key であるものを探す。
NULL
を返す。MERROR_SYMBOL
, MERROR_DB
int mchar_put_prop | ( | int | c, |
MSymbol | key, | ||
void * | val | ||
) |
文字プロパティの値を設定する.
関数 mchar_put_prop() は、文字 c の文字プロパティのうちキーが key であるものを探し、その値として val を設定する。
MERROR_SYMBOL
, MERROR_DB
MCharTable * mchar_get_prop_table | ( | MSymbol | key, |
MSymbol * | type | ||
) |
文字プロパティの文字テーブルを得る.
関数 mchar_get_prop_table() は、キーが key である文字プロパティ を含む文字テーブルを返す。もし type が NULL でなければ、 type で 指される場所にその文字のプロパティを格納する。文字プロパティの種類 に関しては mchar_define_property() を見よ。
MSymbol Mscript |
スクリプトを表わすキー.
シンボル Mscript は "script"
という名前を持ち、文字プロパティのキーとして使われる。 このプロパティの値は、この文字の属するスクリプトを表わすシンボルである。
スクリプトを表わすシンボルの名前は、Unicode Technical Report #24 にリストされているもののいずれかである。
MSymbol Mname |
名前を表わすキー.
シンボル Mname は "name"
という名前を持ち、文字プロパティのキーとして使われる。 このプロパティの値はその文字の名前を表わす C の文字列である。
MSymbol Mcategory |
一般カテゴリを表わすキー.
シンボル Mcategory は "category"
という名前を持ち、文字プロパティのキーとして使われる。 このプロパティの値は、対応する 一般カテゴリ を表わすシンボルである。
一般カテゴリを表わすシンボルの名前は、General Category の省略形として Unicode に定義されているものである。
MSymbol Mcombining_class |
標準結合クラスを表わすキー.
シンボル Mcombining_class は "combining-class"
という名前を持ち、文字プロパティのキーとして使われる。 このプロパティの値は、対応する 標準結合クラス を表わす整数である。
標準結合クラスを表わす整数の意味は、Unicode に定義されているものと同じである。
MSymbol Mbidi_category |
双方向カテゴリを表わすキー.
シンボル Mbidi_category は "bidi-category"
という名前を持ち、文字プロパティのキーとして使われる。 このプロパティの値は、対応する 双方向カテゴリ を表わすシンボルである。
双方向カテゴリを表わすシンボルの名前は、Bidirectional Category の型として Unicode に定義されているものである。
MSymbol Msimple_case_folding |
対応する小文字一文字を表わすキー.
シンボル Msimple_case_folding は "simple-case-folding"
という名前を持ち、文字プロパティのキーとして使われる。 このプロパティの値は、対応する小文字一文字であり、大文字/小文字の区別を無視した文字列比較の際に使われる。
複雑な比較方法を必要とする文字であった場合 (別の一文字と対応付けることによって比較できない場合)、このプロパティの値は 0xFFFF
になる。この場合その文字は、::Mcomplicated_case_folding というキーの文字プロパティを持つ。
MSymbol Mcomplicated_case_folding |
対応する小文字の列を表わすキー.
シンボル Mcomplicated_case_folding は "complicated-case-folding"
という名前を持ち、文字プロパティのキーとして使われる。 このプロパティの値は、対応する小文字列からなる M-text であり、大文字/小文字の区別を無視した文字列比較の際に使 われる。
MSymbol Mcased |
Case 処理に用いられる値のキー.
シンボル Mcased は、"cased"
という名前を持ち、文字プロパ ティのキーとして使われる。このプロパティの値は整数値 1, 2, 3 のいず れかであり、それぞれ "cased", "case-ignorable", その両方を意味する。 詳細については、the Unicode Standard 5.0 (Section 3.13 Default Case Algorithm) 参照。
MSymbol Msoft_dotted |
Case 処理に用いられる値のキー.
シンボル Msoft_dotted は、"soft-dotted"
という名前を持ち、 文字プロパティのキーとして使われる。このプロパティの値は、文字が "Soft_Dotted"プロパティを持つ場合には Mt, そうでなければ Mnil で ある。 詳細については、the Unicode Standard 5.0 (Section 3.13 Default Case Algorithm) 参照。
MSymbol Mcase_mapping |
Case 処理に用いられる値のキー.
シンボル Mcase_mapping は、"case-mapping"
という名前をも ち、文字プロパティのキーとして使われる。このプロパティの値は、3つ の M-text、すなわちその文字の lower, title, と upperからなる plist である。 詳細については、the Unicode Standard 5.0 (Section 3.13 Default Case Algorithm) 参照。
MSymbol Mblock |
スクリプトブロック名を表すキー.
シンボル Mblock は、"block"
という名前をもち、文字プロパ ティのキーとして使われる。このプロパティの値は、その文字のスクリプ トブロック名を表すシンボルである。