Main Page   Modules   Data Structures   Globals   Appendix  

m17n-core.h File Reference

Go to the source code of this file.

Data Structures

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


Defines

#define M17NLIB_MAJOR_VERSION   1
#define M17NLIB_MINOR_VERSION   0
#define M17NLIB_VERSION_NAME   "1.0"
#define M17N_INIT()   m17n_init_core()
#define M17N_FINI()   m17n_fini_core()
#define MCHAR_MAX   0x3FFFFF

Typedefs

typedef MSymbolMSymbol
 Type of symbols.

typedef MPlist MPlist
 Type of property list objects.

typedef MCharTable MCharTable
 Type of chartables.

typedef MText MText
 Type of M-texts.

typedef MPlist *(* MTextPropSerializeFunc )(void *val)
 Type of serializer functions.

typedef void *(* MTextPropDeserializeFunc )(MPlist *plist)
 Type of deserializer functions.

typedef MTextProperty MTextProperty

Enumerations

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  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

void m17n_init_core (void)
void m17n_fini_core (void)
void * m17n_object_setup (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.

MSymbol msymbol_exist (const char *name)
 Search for a symbol that has a specified name.

char * msymbol_name (MSymbol symbol)
 Get symbol name.

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.

MPlistmplist ()
 Create a property list object.

MPlistmplist_copy (MPlist *plist)
 Copy a plist.

MPlistmplist_add (MPlist *plist, MSymbol key, void *val)
 Add a property at the end of a property list object.

MPlistmplist_push (MPlist *plist, MSymbol key, void *val)
 Push a property to a property list object.

void * mplist_pop (MPlist *plist)
 Pop a property from a property list object.

MPlistmplist_put (MPlist *plist, MSymbol key, void *val)
 Set the value of a property in a property list object.

void * mplist_get (MPlist *plist, MSymbol key)
 Get the value of a property in a property list object.

MPlistmplist_find_by_key (MPlist *plist, MSymbol key)
 Find a property of a specific key in a property list object.

MPlistmplist_find_by_value (MPlist *plist, void *val)
 Find a property of a specific value in a property list object.

MPlistmplist_next (MPlist *plist)
 Return the next sublist of a plist.

MPlistmplist_set (MPlist *plist, MSymbol key, void *val)
 Set the first property in a property list object.

int mplist_length (MPlist *plist)
 Return the length of a plist.

MSymbol mplist_key (MPlist *plist)
 Return the key of the first property in a property list object.

void * mplist_value (MPlist *plist)
 Return the value of the first property in a property list object.

MSymbol mchar_define_property (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.

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 from, int to, void *val, void *arg), void *func_arg)
void mchartable_range (MCharTable *table, int *from, int *to)
 Search for characters that have non-default value.

MTextmtext ()
 Allocate a new M-text.

MTextmtext_from_data (void *data, int nitems, enum MTextFormat format)
 Allocate a new M-text with specified data.

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 two M-texts.

int mtext_case_compare (MText *mt1, int from1, int to1, MText *mt2, int from2, int to2)
 Compare 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_ins_char (MText *mt, int pos, int c, int n)
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 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)
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 two M-texts ignoring cases.

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 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)
 Set a text property.

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)
 Push a text property.

int mtext_pop_prop (MText *mt, int from, int to, MSymbol key)
 Pop a text property.

int mtext_change_prop (MText *mt, int from, int to, MSymbol key, int(*func)(int, void ***, int *))
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)
 Serialize text properties in an M-text.

MTextmtext_deserialize (MText *mt)
 Deserialize text properties in an M-text.


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 Mplist
 Symbol whose name is "plist".

MSymbol Minteger
 Symbol whose name is "integer".

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 Mchar_table
 Symbol whose name is "char-table".

MSymbol Mtext_prop_serializer
 Symbol for specifying serializer functions.

MSymbol Mtext_prop_deserializer
 Symbol for specifying deserializer functions.


Define Documentation

#define M17NLIB_MAJOR_VERSION   1
 

#define M17NLIB_MINOR_VERSION   0
 

#define M17NLIB_VERSION_NAME   "1.0"
 

 
#define M17N_INIT  )     m17n_init_core()
 

 
#define M17N_FINI  )     m17n_fini_core()
 

#define MCHAR_MAX   0x3FFFFF
 


Typedef Documentation

typedef struct MTextProperty MTextProperty
 


Enumeration Type Documentation

enum MTextFormat
 

The enum MTextFormat is used as an argument of the mtext_from_data() function to specify the format of data from which an M-text is created.

Enumeration values:
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 


Function Documentation

void m17n_init_core void   ) 
 

void m17n_fini_core void   ) 
 

void* m17n_object_setup int  size,
void(*  freer)(void *)
 

int mchartable_map MCharTable table,
void *  ignore,
void(*  func)(int from, int to, void *val, void *arg),
void *  func_arg
 

int mtext_change_prop MText mt,
int  from,
int  to,
MSymbol  key,
int(*  func)(int, void ***, int *)
 


Top of this page

Main Page   Modules   Data Structures   Globals   Appendix  

mulemark mule-aist@m17n.org