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)
 文字プロパティの値を設定する.
 
MCharTablemchar_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 プロパティ」と呼ぶことがある。

マクロ定義詳解

◆ MCHAR_MAX

#define MCHAR_MAX

文字コードの最大値.

マクロ MCHAR_MAX は文字コードの最大値を表す。

関数詳解

◆ mchar_define_property()

MSymbol mchar_define_property ( const char *  name,
MSymbol  type 
)

文字プロパティを定義する.

関数 mchar_define_property() は、 <Mchar_table, type, sym > というタグを持ったデータベースを m17n 言語情報ベースから探す。
ここで symname という名前のシンボルである。type は::Mstring, Mtext, Msymbol, Minteger, Mplist のいずれかでなければならない。

戻り値:
処理に成功すれば mchar_define_property()sym を返す。 失敗した場合は Mnil を返す。
エラー:
MERROR_DB
参照:
mchar_get_prop(), mchar_put_prop()

◆ mchar_get_prop()

void * mchar_get_prop ( int  c,
MSymbol  key 
)

文字プロパティの値を得る.

関数 mchar_get_prop() は、文字 c の文字プロパティのうちキーが key であるものを探す。

戻り値:
処理が成功すれば mchar_get_prop() は見つかったプロパティの値を返す。 失敗した場合は NULL を返す。
エラー:
MERROR_SYMBOL, MERROR_DB
参照:
mchar_define_property(), mchar_put_prop()

◆ mchar_put_prop()

int mchar_put_prop ( int  c,
MSymbol  key,
void *  val 
)

文字プロパティの値を設定する.

関数 mchar_put_prop() は、文字 c の文字プロパティのうちキーが key であるものを探し、その値として val を設定する。

戻り値:
処理が成功すれば mchar_put_prop() は0を返す。失敗した場合は-1を返す。
エラー:
MERROR_SYMBOL, MERROR_DB
参照:
mchar_define_property(), mchar_get_prop()

◆ mchar_get_prop_table()

MCharTable * mchar_get_prop_table ( MSymbol  key,
MSymbol *  type 
)

文字プロパティの文字テーブルを得る.

関数 mchar_get_prop_table() は、キーが key である文字プロパティ を含む文字テーブルを返す。もし type が NULL でなければ、 type で 指される場所にその文字のプロパティを格納する。文字プロパティの種類 に関しては mchar_define_property() を見よ。

戻り値:
もし key が正当な文字プロパティのキーであれば、文字テーブルが返さ れる。そうでない場合は NULL が返される。

変数詳解

◆ Mscript

MSymbol Mscript

スクリプトを表わすキー.

シンボル Mscript"script" という名前を持ち、文字プロパティのキーとして使われる。 このプロパティの値は、この文字の属するスクリプトを表わすシンボルである。

スクリプトを表わすシンボルの名前は、Unicode Technical Report #24 にリストされているもののいずれかである。

◆ Mname

MSymbol Mname

名前を表わすキー.

シンボル Mname"name" という名前を持ち、文字プロパティのキーとして使われる。 このプロパティの値はその文字の名前を表わす C の文字列である。

◆ Mcategory

MSymbol Mcategory

一般カテゴリを表わすキー.

シンボル Mcategory"category" という名前を持ち、文字プロパティのキーとして使われる。 このプロパティの値は、対応する 一般カテゴリ を表わすシンボルである。

一般カテゴリを表わすシンボルの名前は、General Category の省略形として Unicode に定義されているものである。

◆ Mcombining_class

MSymbol Mcombining_class

標準結合クラスを表わすキー.

シンボル Mcombining_class"combining-class" という名前を持ち、文字プロパティのキーとして使われる。 このプロパティの値は、対応する 標準結合クラス を表わす整数である。

標準結合クラスを表わす整数の意味は、Unicode に定義されているものと同じである。

◆ Mbidi_category

MSymbol Mbidi_category

双方向カテゴリを表わすキー.

シンボル Mbidi_category"bidi-category" という名前を持ち、文字プロパティのキーとして使われる。 このプロパティの値は、対応する 双方向カテゴリ を表わすシンボルである。

双方向カテゴリを表わすシンボルの名前は、Bidirectional Category の型として Unicode に定義されているものである。

◆ Msimple_case_folding

MSymbol Msimple_case_folding

対応する小文字一文字を表わすキー.

シンボル Msimple_case_folding"simple-case-folding" という名前を持ち、文字プロパティのキーとして使われる。 このプロパティの値は、対応する小文字一文字であり、大文字/小文字の区別を無視した文字列比較の際に使われる。

複雑な比較方法を必要とする文字であった場合 (別の一文字と対応付けることによって比較できない場合)、このプロパティの値は 0xFFFF になる。この場合その文字は、::Mcomplicated_case_folding というキーの文字プロパティを持つ。

◆ Mcomplicated_case_folding

MSymbol Mcomplicated_case_folding

対応する小文字の列を表わすキー.

シンボル Mcomplicated_case_folding"complicated-case-folding" という名前を持ち、文字プロパティのキーとして使われる。 このプロパティの値は、対応する小文字列からなる M-text であり、大文字/小文字の区別を無視した文字列比較の際に使 われる。

◆ Mcased

MSymbol Mcased

Case 処理に用いられる値のキー.

シンボル Mcased は、"cased" という名前を持ち、文字プロパ ティのキーとして使われる。このプロパティの値は整数値 1, 2, 3 のいず れかであり、それぞれ "cased", "case-ignorable", その両方を意味する。 詳細については、the Unicode Standard 5.0 (Section 3.13 Default Case Algorithm) 参照。

◆ Msoft_dotted

MSymbol Msoft_dotted

Case 処理に用いられる値のキー.

シンボル Msoft_dotted は、"soft-dotted" という名前を持ち、 文字プロパティのキーとして使われる。このプロパティの値は、文字が "Soft_Dotted"プロパティを持つ場合には Mt, そうでなければ Mnil で ある。 詳細については、the Unicode Standard 5.0 (Section 3.13 Default Case Algorithm) 参照。

◆ Mcase_mapping

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) 参照。

◆ Mblock

MSymbol Mblock

スクリプトブロック名を表すキー.

シンボル Mblock は、"block" という名前をもち、文字プロパ ティのキーとして使われる。このプロパティの値は、その文字のスクリプ トブロック名を表すシンボルである。


m17n-lib Home