The m17n Library 1.8.4
Loading...
Searching...
No Matches
Macros | Functions
Character

Character objects and API for them. More...

Macros

#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.
 
MCharTablemchar_get_prop_table (MSymbol key, MSymbol *type)
 Get the char-table for a character property.
 

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.
 
MSymbol Mcased
 Key for values used in case operation.
 
MSymbol Msoft_dotted
 Key for values used in case operation.
 
MSymbol Mcase_mapping
 Key for values used in case operation.
 
MSymbol Mblock
 Key for script block name.
 

Detailed Description

Character objects and API for them.

The m17n library represents a character by a character code (an integer). The minimum character code is 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".


Macro Definition Documentation

◆ MCHAR_MAX

#define MCHAR_MAX

Maximum character code.

The macro MCHAR_MAX gives the maximum character code.

Function Documentation

◆ mchar_define_property()

MSymbol mchar_define_property ( const char *  name,
MSymbol  type 
)

Define a character property.

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.

Return value:
If the operation was successful, mchar_define_property() returns sym. Otherwise it returns Mnil.
Errors:
MERROR_DB
See Also:
mchar_get_prop(), mchar_put_prop()

◆ mchar_get_prop()

void * mchar_get_prop ( int  c,
MSymbol  key 
)

Get the value of a character property.

The mchar_get_prop() function searches character c for the character property whose key is key.

Return value:
If the operation was successful, mchar_get_prop() returns the value of the character property. Otherwise it returns NULL.
Errors:
MERROR_SYMBOL, MERROR_DB
See Also:
mchar_define_property(), mchar_put_prop()

◆ mchar_put_prop()

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

Set the value of a character property.

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.

Return value:
If the operation was successful, mchar_put_prop() returns 0. Otherwise, it returns -1.
Errors:
MERROR_SYMBOL, MERROR_DB
See Also:
mchar_define_property(), mchar_get_prop()

◆ mchar_get_prop_table()

MCharTable * mchar_get_prop_table ( MSymbol  key,
MSymbol *  type 
)

Get the char-table for a character property.

The mchar_get_prop_table() function returns a char-table that contains the character property whose key is key. If type is not NULL, this function stores the type of the property in the place pointed by type. See mchar_define_property() for types of character property.

Return value:
If key is a valid character property key, this function returns a char-table. Otherwise NULL is retuned.

Variable Documentation

◆ Mscript

MSymbol Mscript

Key for script.

The symbol Mscript has the name "script" and is used as the key of a character property. The value of such a property is a symbol representing the script to which the character belongs.

Each symbol that represents a script has one of the names listed in the Unicode Technical Report #24.

◆ Mname

MSymbol Mname

Key for character name.

The symbol Mname has the name "name" and is used as the key of a character property. The value of such a property is a C-string representing the name of the character.

◆ Mcategory

MSymbol Mcategory

Key for general category.

The symbol Mcategory has the name "category" and is used as the key of a character property. The value of such a property is a symbol representing the general category of the character.

Each symbol that represents a general category has one of the names listed as abbreviations for General Category in Unicode.

◆ Mcombining_class

MSymbol Mcombining_class

Key for canonical combining class.

The symbol Mcombining_class has the name "combining-class" and is used as the key of a character property. The value of such a property is an integer that represents the canonical combining class of the character.

The meaning of each integer that represents a canonical combining class is identical to the one defined in Unicode.

◆ Mbidi_category

MSymbol Mbidi_category

Key for bidi category.

The symbol Mbidi_category has the name "bidi-category" and is used as the key of a character property. The value of such a property is a symbol that represents the bidirectional category of the character.

Each symbol that represents a bidirectional category has one of the names listed as types of Bidirectional Category in Unicode.

◆ Msimple_case_folding

MSymbol Msimple_case_folding

Key for corresponding single lowercase character.

The symbol Msimple_case_folding has the name "simple-case-folding" and is used as the key of a character property. The value of such a property is the corresponding single lowercase character that is used when comparing M-texts ignoring cases.

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 0xFFFF. In this case, the character has another property whose key is Mcomplicated_case_folding.

◆ Mcomplicated_case_folding

MSymbol Mcomplicated_case_folding

Key for corresponding multiple lowercase characters.

The symbol Mcomplicated_case_folding has the name "complicated-case-folding" and is used as the key of a character property. The value of such a property is the corresponding M-text that contains a sequence of lowercase characters to be used for comparing M-texts ignoring case.

◆ Mcased

MSymbol Mcased

Key for values used in case operation.

The symbol Mcased has the name "cased" and is used as the key of charater property. The value of such a property is an integer value 1, 2, or 3 representing "cased", "case-ignorable", and both of them respective. See the Unicode Standard 5.0 (Section 3.13 Default Case Algorithm) for the detail.

◆ Msoft_dotted

MSymbol Msoft_dotted

Key for values used in case operation.

The symbol Msoft_dotted has the name "soft-dotted" and is used as the key of charater property. The value of such a property is Mt if a character has "Soft_Dotted" property, and Mnil otherwise. See the Unicode Standard 5.0 (Section 3.13 Default Case Algorithm) for the detail.

◆ Mcase_mapping

MSymbol Mcase_mapping

Key for values used in case operation.

The symbol Mcase_mapping has the name "case-mapping" and is used as the key of charater property. The value of such a property is a plist of three M-Texts; lower, title, and upper of the corresponding character. See the Unicode Standard 5.0 (Section 5.18 Case Mappings) for the detail.

◆ Mblock

MSymbol Mblock

Key for script block name.

The symbol Mblock the name "block" and is used as the key of charater property. The value of such a property is a symbol representing a script block of the corresponding character.


m17n-lib Home