The m17n Library 1.8.4
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
m17n-core.h File Reference

Data Structures

struct  M17NObjectHead
 The first member of a managed object. More...
 

Macros

#define M17N_BEGIN_HEADER
 
#define M17N_END_HEADER
 
#define M17N_FUNC(func)   ((M17NFunc) (func))
 Wrapper for a generic function type.
 

Typedefs

typedef void(* M17NFunc) (void)
 Generic function type.
 
typedef struct MCharTable MCharTable
 Type of chartables.
 
typedef MPlist *(* MTextPropSerializeFunc) (void *val)
 Type of serializer functions.
 
typedef void *(* MTextPropDeserializeFunc) (MPlist *plist)
 Type of deserializer functions.
 
typedef struct MDatabase MDatabase
 Type of database.
 

Enumerations

enum  M17NStatus {
  M17N_NOT_INITIALIZED ,
  M17N_CORE_INITIALIZED ,
  M17N_SHELL_INITIALIZED ,
  M17N_GUI_INITIALIZED
}
 Enumeration for the status of the m17n library. More...
 
enum  MTextFormat {
  MTEXT_FORMAT_US_ASCII ,
  MTEXT_FORMAT_UTF_8 ,
  MTEXT_FORMAT_UTF_16LE ,
  MTEXT_FORMAT_UTF_16BE ,
  MTEXT_FORMAT_UTF_32LE ,
  MTEXT_FORMAT_UTF_32BE ,
  MTEXT_FORMAT_MAX
}
 Enumeration for specifying the format of an M-text. More...
 
enum  MTextLineBreakOption {
  MTEXT_LBO_SP_CM = 1 ,
  MTEXT_LBO_KOREAN_SP = 2 ,
  MTEXT_LBO_AI_AS_ID = 4 ,
  MTEXT_LBO_MAX
}
 Enumeration for specifying a set of line breaking option. More...
 
enum  MTextPropertyControl {
  MTEXTPROP_FRONT_STICKY = 0x01 ,
  MTEXTPROP_REAR_STICKY = 0x02 ,
  MTEXTPROP_VOLATILE_WEAK = 0x04 ,
  MTEXTPROP_VOLATILE_STRONG = 0x08 ,
  MTEXTPROP_NO_MERGE = 0x10 ,
  MTEXTPROP_CONTROL_MAX = 0x1F
}
 Flag bits to control text property. More...
 

Functions

enum M17NStatus m17n_status (void)
 Report which part of the m17n library is initialized.
 
void * m17n_object (int size, void(*freer)(void *))
 
int m17n_object_ref (void *object)
 Increment the reference count of a managed object.
 
int m17n_object_unref (void *object)
 Decrement the reference count of a managed object.
 
MSymbol msymbol (const char *name)
 Get a symbol.
 
MSymbol msymbol_as_managing_key (const char *name)
 Create a managing key.
 
int msymbol_is_managing_key (MSymbol symbol)
 Check if a symbol is a managing key.
 
MSymbol msymbol_exist (const char *name)
 
char * msymbol_name (MSymbol symbol)
 
int msymbol_put (MSymbol symbol, MSymbol key, void *val)
 Set the value of a symbol property.
 
void * msymbol_get (MSymbol symbol, MSymbol key)
 Get the value of a symbol property.
 
int msymbol_put_func (MSymbol symbol, MSymbol key, M17NFunc func)
 Set the value (function pointer) of a symbol property.
 
M17NFunc msymbol_get_func (MSymbol symbol, MSymbol key)
 Get the value (function pointer) of a symbol property.
 
MPlistmplist ()
 Create a property list object.
 
MPlistmplist_copy (MPlist *plist)
 Copy a property list.
 
MPlistmplist_add (MPlist *plist, MSymbol key, void *val)
 Add a property at the end of a property list.
 
MPlistmplist_push (MPlist *plist, MSymbol key, void *val)
 Add a property at the beginning of a property list.
 
void * mplist_pop (MPlist *plist)
 Remove a property at the beginning of a property list.
 
MPlistmplist_put (MPlist *plist, MSymbol key, void *val)
 Set the value of a property in a property list.
 
void * mplist_get (MPlist *plist, MSymbol key)
 Get the value of a property in a property list.
 
MPlistmplist_put_func (MPlist *plist, MSymbol key, M17NFunc func)
 Set the value (function pointer) of a property in a property list.
 
M17NFunc mplist_get_func (MPlist *plist, MSymbol key)
 Get the value (function pointer) of a property in a property list.
 
MPlistmplist_find_by_key (MPlist *plist, MSymbol key)
 Find a property of a specific key in a property list.
 
MPlistmplist_find_by_value (MPlist *plist, void *val)
 Find a property of a specific value in a property list.
 
MPlistmplist_next (MPlist *plist)
 Return the next sublist of a property list.
 
MPlistmplist_set (MPlist *plist, MSymbol key, void *val)
 Set the first property in a property list.
 
int mplist_length (MPlist *plist)
 Return the length of a property list.
 
MSymbol mplist_key (MPlist *plist)
 Return the key of the first property in a property list.
 
void * mplist_value (MPlist *plist)
 Return the value of the first property in a property list.
 
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.
 
MCharTablemchartable (MSymbol key, void *default_value)
 Create a new chartable.
 
int mchartable_min_char (MCharTable *table)
 Return the minimum character whose value is set in a chartabe.
 
int mchartable_max_char (MCharTable *table)
 Return the maximum character whose value is set in a chartabe.
 
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.
 
int mchartable_map (MCharTable *table, void *ignore, void(*func)(int, int, void *, void *), void *func_arg)
 Call a function for characters in a chartable.
 
void mchartable_range (MCharTable *table, int *from, int *to)
 Search for characters that have non-default value.
 
MCharTablemchar_get_prop_table (MSymbol key, MSymbol *type)
 Get the char-table for a character property.
 
MTextmtext ()
 Allocate a new M-text.
 
void * mtext_data (MText *mt, enum MTextFormat *fmt, int *nunits, int *pos_idx, int *unit_idx)
 Get information about the text data in M-text.
 
int mtext_len (MText *mt)
 Number of characters in M-text.
 
int mtext_ref_char (MText *mt, int pos)
 Return the character at the specified position in an M-text.
 
int mtext_set_char (MText *mt, int pos, int c)
 Store a character into an M-text.
 
MTextmtext_copy (MText *mt1, int pos, MText *mt2, int from, int to)
 Copy characters in the specified range into an M-text.
 
int mtext_compare (MText *mt1, int from1, int to1, MText *mt2, int from2, int to2)
 Compare specified regions of two M-texts.
 
int mtext_case_compare (MText *mt1, int from1, int to1, MText *mt2, int from2, int to2)
 Compare specified regions of two M-texts ignoring cases.
 
int mtext_character (MText *mt, int from, int to, int c)
 Search a character in an M-text.
 
int mtext_del (MText *mt, int from, int to)
 Delete characters in the specified range destructively.
 
int mtext_ins (MText *mt1, int pos, MText *mt2)
 Insert an M-text into another M-text.
 
int mtext_insert (MText *mt1, int pos, MText *mt2, int from, int to)
 Insert sub-text of an M-text into another M-text.
 
int mtext_ins_char (MText *mt, int pos, int c, int n)
 Insert a character into an M-text.
 
int mtext_replace (MText *mt1, int from1, int to1, MText *mt2, int from2, int to2)
 Replace sub-text of M-text with another.
 
MTextmtext_cat_char (MText *mt, int c)
 Append a character to an M-text.
 
MTextmtext_duplicate (MText *mt, int from, int to)
 Create a new M-text from a part of an existing M-text.
 
MTextmtext_dup (MText *mt)
 Create a copy of an M-text.
 
MTextmtext_cat (MText *mt1, MText *mt2)
 Append an M-text to another.
 
MTextmtext_ncat (MText *mt1, MText *mt2, int n)
 Append a part of an M-text to another.
 
MTextmtext_cpy (MText *mt1, MText *mt2)
 Copy an M-text to another.
 
MTextmtext_ncpy (MText *mt1, MText *mt2, int n)
 Copy the first some characters in an M-text to another.
 
int mtext_chr (MText *mt, int c)
 Return the position of the first occurrence of a character in an M-text.
 
int mtext_rchr (MText *mt, int c)
 Return the position of the last occurrence of a character in an M-text.
 
int mtext_cmp (MText *mt1, MText *mt2)
 Compare two M-texts character-by-character.
 
int mtext_ncmp (MText *mt1, MText *mt2, int n)
 Compare initial parts of two M-texts character-by-character.
 
int mtext_spn (MText *mt1, MText *mt2)
 Search an M-text for a set of characters.
 
int mtext_cspn (MText *mt1, MText *mt2)
 Search an M-text for the complement of a set of characters.
 
int mtext_pbrk (MText *mt1, MText *mt2)
 Search an M-text for any of a set of characters.
 
int mtext_text (MText *mt1, int pos, MText *mt2)
 Locate an M-text in another.
 
int mtext_search (MText *mt1, int from, int to, MText *mt2)
 Locate an M-text in a specific range of another.
 
MTextmtext_tok (MText *mt, MText *delim, int *pos)
 Look for a token in an M-text.
 
int mtext_casecmp (MText *mt1, MText *mt2)
 Compare two M-texts ignoring cases.
 
int mtext_ncasecmp (MText *mt1, MText *mt2, int n)
 Compare initial parts of two M-texts ignoring cases.
 
int mtext_lowercase (MText *mt)
 Lowercase an M-text.
 
int mtext_titlecase (MText *mt)
 Titlecase an M-text.
 
int mtext_uppercase (MText *mt)
 Uppercase an M-text.
 
int mtext_line_break (MText *mt, int pos, int option, int *after)
 Find a linebreak postion of an M-text.
 
MPlistmplist_deserialize (MText *mt)
 Generate a property list by deserializing an M-text.
 
void * mtext_get_prop (MText *mt, int pos, MSymbol key)
 Get the value of the topmost text property.
 
int mtext_get_prop_values (MText *mt, int pos, MSymbol key, void **values, int num)
 Get multiple values of a text property.
 
int mtext_get_prop_keys (MText *mt, int pos, MSymbol **keys)
 Get a list of text property keys at a position of an M-text.
 
int mtext_put_prop (MText *mt, int from, int to, MSymbol key, void *val)
 
int mtext_put_prop_values (MText *mt, int from, int to, MSymbol key, void **values, int num)
 Set multiple text properties with the same key.
 
int mtext_push_prop (MText *mt, int from, int to, MSymbol key, void *val)
 
int mtext_pop_prop (MText *mt, int from, int to, MSymbol key)
 
int mtext_prop_range (MText *mt, MSymbol key, int pos, int *from, int *to, int deeper)
 Find the range where the value of a text property is the same.
 
MTextPropertymtext_property (MSymbol key, void *val, int control_bits)
 Create a text property.
 
MTextmtext_property_mtext (MTextProperty *prop)
 Return the M-text of a text property.
 
MSymbol mtext_property_key (MTextProperty *prop)
 Return the key of a text property.
 
void * mtext_property_value (MTextProperty *prop)
 Return the value of a text property.
 
int mtext_property_start (MTextProperty *prop)
 Return the start position of a text property.
 
int mtext_property_end (MTextProperty *prop)
 Return the end position of a text property.
 
MTextPropertymtext_get_property (MText *mt, int pos, MSymbol key)
 Get the topmost text property.
 
int mtext_get_properties (MText *mt, int pos, MSymbol key, MTextProperty **props, int num)
 Get multiple text properties.
 
int mtext_attach_property (MText *mt, int from, int to, MTextProperty *prop)
 Attach a text property to an M-text.
 
int mtext_detach_property (MTextProperty *prop)
 Detach a text property from an M-text.
 
int mtext_push_property (MText *mt, int from, int to, MTextProperty *prop)
 Push a text property onto an M-text.
 
MTextmtext_serialize (MText *mt, int from, int to, MPlist *property_list)
 
MTextmtext_deserialize (MText *mt)
 
MDatabasemdatabase_find (MSymbol tag1, MSymbol tag2, MSymbol tag3, MSymbol tag4)
 Look for a data in the database.
 
MPlistmdatabase_list (MSymbol tag0, MSymbol tag1, MSymbol tag2, MSymbol tag3)
 Return a data list of the m17n database.
 
void * mdatabase_load (MDatabase *mdb)
 Load a data from the database.
 
MSymbol * mdatabase_tag (MDatabase *mdb)
 Get tags of a data.
 
MDatabasemdatabase_define (MSymbol tag1, MSymbol tag2, MSymbol tag3, MSymbol tag4, void *(*loader)(MSymbol *, void *), void *extra_info)
 Define a data of the m17n database.
 

Variables

MSymbol Mnil
 Symbol whose name is "nil".
 
MSymbol Mt
 Symbol whose name is "t".
 
MSymbol Mstring
 Symbol whose name is "string".
 
MSymbol Msymbol
 Symbol whose name is "symbol".
 
MSymbol Mtext
 Symbol whose name is "mtext".
 
MSymbol Mcharset
 
MSymbol Mplist
 Symbol whose name is "plist".
 
MSymbol Minteger
 
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
 
MSymbol Mcase_mapping
 
MSymbol Mblock
 Key for script block name.
 
MSymbol Mchar_table
 
MSymbol Mlanguage
 
MSymbol Mtext_prop_serializer
 Symbol for specifying serializer functions.
 
MSymbol Mtext_prop_deserializer
 Symbol for specifying deserializer functions.
 
char * mdatabase_dir
 

Variables: Default Endian of UTF-16 and UTF-32

enum MTextFormat MTEXT_FORMAT_UTF_16
 Variable of value MTEXT_FORMAT_UTF_16LE or MTEXT_FORMAT_UTF_16BE.
 
const int MTEXT_FORMAT_UTF_32
 Variable of value MTEXT_FORMAT_UTF_32LE or MTEXT_FORMAT_UTF_32BE.
 
MTextmtext_from_data (const void *data, int nitems, enum MTextFormat format)
 Allocate a new M-text with specified data.
 

Macro Definition Documentation

◆ M17N_BEGIN_HEADER

#define M17N_BEGIN_HEADER

◆ M17N_END_HEADER

#define M17N_END_HEADER

Variable Documentation

◆ Minteger

MSymbol Minteger

◆ Msoft_dotted

MSymbol Msoft_dotted

◆ Mcase_mapping

MSymbol Mcase_mapping

m17n-lib Home