man m17nChartable () - Chartable objects and API for them.


Chartable - Chartable objects and API for them.


typedef MCharTable MCharTable

Type of chartables.


MCharTable * mchartable (MSymbol key, void *default_value)

Create a new chartable. void * mchartable_lookup (MCharTable *table, int c)

Return the assigned value of a character in a chartable. int mchartable_set (MCharTable *table, int c, void *val)

Assign a value to a character in a chartable. int mchartable_set_range (MCharTable *table, int from, int to, void *val)

Assign a value to the characters in the specified range. void mchartable_range (MCharTable *table, int *from, int *to)

Search for characters that have non-default value. int mchartable_map (MCharTable *table, void *ignore, void(*func)(int, int, void *, void *), void *func_arg)

Call a function for characters in a chartable.


MSymbol Mchar_table

Symbol whose name is 'char-table'.

Detailed Description

The m17n library supports enormous number of characters. Thus, if attributes of each character are to be stored in a simple array, such an array would be impractically big. The attributes usually used, however, are often assigned only to a range of characters. Even when all characters have attributes, characters of consecutive character code tend to have the same attribute values.

The m17n library utilizes this tendency to store characters and their attribute values efficiently in an object called Chartable. Although a chartable object is not a simple array, application programs can handle chartables as if they were arrays. Attribute values of a character can be obtained by accessing a Chartable for the attribute with the character code of the specified character.

A chartable is a managed object.

Typedef Documentation

typedef struct MCharTable MCharTable

The type MCharTable is for a chartable objects. Its internal structure is concealed from application programs.

Variable Documentation

MSymbol Mchar_table

The symbol Mchar_table has the name 'char-table'.