X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fm17n-core.h;h=da5cdf2ac69f19cbaca9f45625fbc7a1e313d151;hb=012f94b974e030c40d39836cae8505ad0399303c;hp=fdd465af0be15160b54c1d49bba48eeaa732b327;hpb=724ee38197015387ec9e44e82bb3743b703e173b;p=m17n%2Fm17n-lib.git diff --git a/src/m17n-core.h b/src/m17n-core.h index fdd465a..da5cdf2 100644 --- a/src/m17n-core.h +++ b/src/m17n-core.h @@ -1,5 +1,5 @@ /* m17n-core.h -- header file for the CORE API of the m17n library. - Copyright (C) 2003, 2004, 2005, 2006 + Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 National Institute of Advanced Industrial Science and Technology (AIST) Registration Number H15PRO112 @@ -24,10 +24,15 @@ #define _M17N_CORE_H_ #ifdef __cplusplus -extern "C" -{ +#define M17N_BEGIN_HEADER extern "C" { +#define M17N_END_HEADER } +#else +#define M17N_BEGIN_HEADER /* do nothing */ +#define M17N_END_HEADER /* do nothing */ #endif +M17N_BEGIN_HEADER + /* * Header file for m17n library. */ @@ -41,15 +46,17 @@ extern "C" #if !defined (FOR_DOXYGEN) || defined (DOXYGEN_INTERNAL_MODULE) #define M17NLIB_MAJOR_VERSION 1 -#define M17NLIB_MINOR_VERSION 3 -#define M17NLIB_PATCH_LEVEL 5 -#define M17NLIB_VERSION_NAME "1.3.5" +#define M17NLIB_MINOR_VERSION 6 +#define M17NLIB_PATCH_LEVEL 1 +#define M17NLIB_VERSION_NAME "1.6.1" extern void m17n_init_core (void); #define M17N_INIT() m17n_init_core () extern void m17n_fini_core (void); #define M17N_FINI() m17n_fini_core () +extern int merror_code; + #endif /*=*/ @@ -82,12 +89,16 @@ enum M17NStatus extern enum M17NStatus m17n_status (void); -/***en @defgroup m17nCore CORE API */ -/***ja @defgroup m17nCore ¥³¥¢ API */ +/***en @defgroup m17nCore CORE API + @brief API provided by libm17n-core.so */ +/***ja @defgroup m17nCore ¥³¥¢ API + @brief libm17n-core.so ¤¬Ä󶡤¹¤ë API */ /*=*/ /*** @ingroup m17nCore */ -/***en @defgroup m17nObject Managed Object */ -/***ja @defgroup m17nObject ´ÉÍý²¼¥ª¥Ö¥¸¥§¥¯¥È */ +/***en @defgroup m17nObject Managed Object + @brief Objects managed by the reference count */ +/***ja @defgroup m17nObject ´ÉÍý²¼¥ª¥Ö¥¸¥§¥¯¥È + @brief »²¾È²ó¿ô¤Ç´ÉÍý¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È */ /*=*/ /*** @ingroup m17nObject */ @@ -108,6 +119,7 @@ extern enum M17NStatus m17n_status (void); typedef struct { + /*** Hidden from applications. */ void *filler[2]; } M17NObjectHead; @@ -129,6 +141,13 @@ extern int m17n_object_unref (void *object); #M17NFunc is a generic function type for setting a function pointer as a value of #MSymbol property or #MPlist. */ +/***ja + @brief ÈÆ´Ø¿ô·¿. + + #M17NFunc ¤ÏÈÆ´Ø¿ô·¿¤Ç¤¢¤ê¡¢´Ø¿ô¥Ý¥¤¥ó¥¿¤ò #MSymbol ¥×¥í¥Ñ¥Æ¥£¤ä + #MPlist ¤ÎÃͤȤ·¤ÆÀßÄꤹ¤ëºÝÍѤ¤¤ë¡£ */ + + /*** @seealso msymbol_put_func (), msymbol_get_func (), @@ -142,7 +161,13 @@ typedef void (*M17NFunc) (void); /***en @brief Wrapper for a generic function type. - The macro M17N_FUNC () is to cast a function to type #M17NFunc. */ + The macro M17N_FUNC () casts a function to the type #M17NFunc. */ + +/***ja + @brief ÈÆ´Ø¿ô·¿¤Ø¤Î¥é¥Ã¥Ñ. + + ¥Þ¥¯¥í M17N_FUNC () ¤Ï´Ø¿ô¤ò #M17NFunc ·¿¤Ø¥­¥ã¥¹¥È¤¹¤ë¡£ */ + #define M17N_FUNC(func) ((M17NFunc) (func)) @@ -179,6 +204,7 @@ extern MSymbol Mt; extern MSymbol Mstring; extern MSymbol Msymbol; extern MSymbol Mtext; +extern MSymbol Mcharset; /* Return a symbol of name NAME. */ extern MSymbol msymbol (const char *name); @@ -286,6 +312,8 @@ extern MSymbol Mcombining_class; extern MSymbol Mbidi_category; extern MSymbol Msimple_case_folding; extern MSymbol Mcomplicated_case_folding; +extern MSymbol Mcased, Msoft_dotted, Mcase_mapping; +extern MSymbol Mblock; extern MSymbol mchar_define_property (const char *name, MSymbol type); @@ -320,6 +348,10 @@ typedef struct MCharTable MCharTable; extern MCharTable *mchartable (MSymbol key, void *default_value); +extern int mchartable_min_char (MCharTable *table); + +extern int mchartable_max_char (MCharTable *table); + extern void *mchartable_lookup (MCharTable *table, int c); extern int mchartable_set (MCharTable *table, int c, void *val); @@ -389,11 +421,17 @@ typedef struct MText MText; enum MTextFormat { + /*** US-ASCII encoding */ MTEXT_FORMAT_US_ASCII, + /*** UTF-8 encoding */ MTEXT_FORMAT_UTF_8, + /*** UTF-16LE encoding */ MTEXT_FORMAT_UTF_16LE, + /*** UTF-16BE encoding */ MTEXT_FORMAT_UTF_16BE, + /*** UTF-32LE encoding */ MTEXT_FORMAT_UTF_32LE, + /*** UTF-32BE encoding */ MTEXT_FORMAT_UTF_32BE, MTEXT_FORMAT_MAX }; @@ -551,6 +589,7 @@ extern int mtext_titlecase (MText *mt); extern int mtext_uppercase (MText *mt); +/*** @ingroup m17nMtext */ /***en @brief Enumeration for specifying a set of line breaking option. @@ -682,7 +721,7 @@ typedef MPlist *(*MTextPropSerializeFunc) (void *val); @brief ¥Ç¥·¥ê¥¢¥é¥¤¥¶´Ø¿ô¤Î·¿Àë¸À. ¥Ç¥·¥ê¥¢¥é¥¤¥¶´Ø¿ô¤Î·¿¤Ç¤¢¤ë¡£ ¤¢¤ë¥·¥ó¥Ü¥ë¤Î¥×¥í¥Ñ¥Æ¥£¤Î¥­¡¼¤¬ @c - #Msymbol_prop_deserializer ¤Ç¤¢¤ë¤È¤­¡¢ ÃͤϤ³¤Î·¿¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ + #Mtext_prop_deserializer ¤Ç¤¢¤ë¤È¤­¡¢ ÃͤϤ³¤Î·¿¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ @seealso Mtext_prop_deserialize (), Mtext_prop_deserializer @@ -760,9 +799,52 @@ extern MText *mtext_serialize (MText *mt, int from, int to, extern MText *mtext_deserialize (MText *mt); -#ifdef __cplusplus -} -#endif +/*** @ingroup m17nCore */ +/***en @defgroup m17nDatabase Database */ +/***ja @defgroup m17nDatabase ¥Ç¡¼¥¿¥Ù¡¼¥¹ */ +/*=*/ + +/* Directory of an application specific databases. */ +extern char *mdatabase_dir; +/*=*/ +/*** + @ingroup m17nDatabase */ +/***en + @brief Type of database. + + The type #MDatabase is for a database object. Its internal + structure is concealed from an application program. */ +/***ja + @brief ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î·¿Àë¸À. + + #MDatabase ·¿¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¥ª¥Ö¥¸¥§¥¯¥ÈÍѤι½Â¤ÂΤǤ¢¤ë¡£ + ÆâÉô¹½Â¤¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ + */ + +typedef struct MDatabase MDatabase; + +/*=*/ + +/* Look for a data. */ +extern MDatabase *mdatabase_find (MSymbol tag1, MSymbol tag2, + MSymbol tag3, MSymbol tag4); + +extern MPlist *mdatabase_list (MSymbol tag0, MSymbol tag1, + MSymbol tag2, MSymbol tag3); + +/* Load a data. */ +void *mdatabase_load (MDatabase *mdb); + +/* Get tags of a data. */ +extern MSymbol *mdatabase_tag (MDatabase *mdb); + +/* Define a data. */ +extern MDatabase *mdatabase_define (MSymbol tag1, MSymbol tag2, + MSymbol tag3, MSymbol tag4, + void *(*loader) (MSymbol *, void *), + void *extra_info); + +M17N_END_HEADER #endif /* _M17N_CORE_H_ */