| Variables: Keys of character properties | |
| These symbols are used as keys of character properties. | |
| MSymbol | Mscript | 
| Key for script. | |
| MSymbol | Mname | 
| Key for character name. | |
| MSymbol | Mcategory | 
| Key for general category. | |
| MSymbol | Mcombining_class | 
| Key for canonical combining class. | |
| MSymbol | Mbidi_category | 
| Key for bidi category. | |
| MSymbol | Msimple_case_folding | 
| Key for corresponding single lowercase character. | |
| MSymbol | Mcomplicated_case_folding | 
| Key for corresponding multiple lowercase characters. | |
| Defines | |
| #define | MCHAR_MAX | 
| Maximum character code. | |
| Functions | |
| MSymbol | mchar_define_property (const char *name, MSymbol type) | 
| Define a character property. | |
| void * | mchar_get_prop (int c, MSymbol key) | 
| Get the value of a character property. | |
| int | mchar_put_prop (int c, MSymbol key, void *val) | 
| Set the value of a character property. | |
0. The maximum character code is defined by the macro MCHAR_MAX. It is assured that MCHAR_MAX is not smaller than 0x3FFFFF (22 bits).
Characters 0 to 0x10FFFF are equivalent to the Unicode characters of the same code values.
A character can have zero or more properties called character properties. A character property consists of a key and a value, where key is a symbol and value is anything that can be cast to (void *). "The character property that belongs to character C and whose key is K" may be shortened to "the K property of C". 
| 
 | 
| The macro MCHAR_MAX gives the maximum character code. | 
| 
 | ||||||||||||
| The mchar_define_property() function searches the m17n database for a data whose tags are <Mchar_table, type, sym >. Here, sym is a symbol whose name is name. type must be Mstring, Mtext, Msymbol, Minteger, or Mplist. 
 
 
 
 | 
| 
 | ||||||||||||
| The mchar_get_prop() function searches character c for the character property whose key is key. 
 
 
 
 | 
| 
 | ||||||||||||||||
| The mchar_put_prop() function searches character c for the character property whose key is key and assigns val to the value of the found property. 
 
 
 
 | 
| 
 | 
| 
The symbol Mscript has the name  Each symbol that represents a script has one of the names listed in the Unicode Technical Report #24. | 
| 
 | 
| 
The symbol Mname has the name  | 
| 
 | 
| 
The symbol Mcategory has the name  Each symbol that represents a general category has one of the names listed as abbreviations for General Category in Unicode. | 
| 
 | 
| 
The symbol Mcombining_class has the name  The meaning of each integer that represents a canonical combining class is identical to the one defined in Unicode. | 
| 
 | 
| 
The symbol Mbidi_category has the name  Each symbol that represents a bidirectional category has one of the names listed as types of Bidirectional Category in Unicode. | 
| 
 | 
| 
The symbol Msimple_case_folding has the name  
If a character requires a complicated comparison (i.e. cannot be compared by simply mapping to another single character), the value of such a property is  | 
| 
 | 
| 
The symbol Mcomplicated_case_folding has the name  | 
 mule-aist@m17n.org
mule-aist@m17n.org