X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fm17n-core.h;h=413c1edf0e50369f6533024c063e3ae3dc284446;hb=ebb9aa922a01d5052acee38d06d4b175086ba725;hp=44b357ce1fa8c57187f1037c9a816f30dbd434ef;hpb=e87e0d674357a3af731112de86977105797fdc61;p=m17n%2Fm17n-lib.git diff --git a/src/m17n-core.h b/src/m17n-core.h index 44b357c..413c1ed 100644 --- a/src/m17n-core.h +++ b/src/m17n-core.h @@ -38,18 +38,52 @@ extern "C" /***ja @defgroup m17nIntro ¤Ï¤¸¤á¤Ë */ /*=*/ +#if !defined (FOR_DOXYGEN) || defined (DOXYGEN_INTERNAL_MODULE) + #define M17NLIB_MAJOR_VERSION 1 -#define M17NLIB_MINOR_VERSION 0 -#define M17NLIB_PATCH_LEVEL 1 -#define M17NLIB_VERSION_NAME "1.0.1" +#define M17NLIB_MINOR_VERSION 3 +#define M17NLIB_PATCH_LEVEL 0 +#define M17NLIB_VERSION_NAME "1.3.0" extern void m17n_init_core (void); #define M17N_INIT() m17n_init_core () extern void m17n_fini_core (void); #define M17N_FINI() m17n_fini_core () +#endif + +/*=*/ + +/*** @ingroup m17nIntro */ +/***en + @brief Enumeration for the status of the m17n library. + + The enum #M17NStatus is used as a return value of the function + m17n_status (). */ + +/***ja + @brief m17n ¥é¥¤¥Ö¥é¥ê¤Î¾õÂÖ¤ò¼¨¤¹Îóµó·¿. + + Îóµó·¿ #M17NStatus ¤Ï´Ø¿ô m17n_status () ¤ÎÌá¤êÃͤȤ·¤ÆÍѤ¤¤é¤ì¤ë¡£ */ + +enum M17NStatus + { + /***en No modules is initialized, and all modules are finalized. */ + M17N_NOT_INITIALIZED, + /***en Only the modules in CORE API are initialized. */ + M17N_CORE_INITIALIZED, + /***en Only the modules in CORE and SHELL APIs are initialized. */ + M17N_SHELL_INITIALIZED, + /***en All modules are initialized. */ + M17N_GUI_INITIALIZED + }; + +/*=*/ + +extern enum M17NStatus m17n_status (void); + /***en @defgroup m17nCore CORE API */ -/***ja @defgroup m17nCore CORE API */ +/***ja @defgroup m17nCore ¥³¥¢ API */ /*=*/ /*** @ingroup m17nCore */ /***en @defgroup m17nObject Managed Object */ @@ -64,6 +98,13 @@ extern void m17n_fini_core (void); objects, its first member must be of the type @c struct #M17NObjectHead. Its contents are used by the m17n library, and application programs should never touch them. */ +/***ja + @brief ´ÉÍý²¼¥ª¥Ö¥¸¥§¥¯¥È¤ÎºÇ½é¤Î¥á¥ó¥Ð. + + ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤¬¿·¤·¤¤¹½Â¤ÂΤò´ÉÍý²¼¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤ÆÄêµÁ¤¹¤ëºÝ¤Ë¤Ï¡¢ºÇ½é¤Î¥á¥ó¥Ð¤Ï + @c #M17NObjectHead ¹½Â¤Âη¿¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ + @c #M17NObjectHead ¤ÎÆâÍÆ¤Ï m17n + ¥é¥¤¥Ö¥é¥ê¤¬»ÈÍѤ¹¤ë¤Î¤Ç¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤Ï¿¨¤ì¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ */ typedef struct { @@ -73,7 +114,7 @@ typedef struct /*=*/ /* Return a newly allocated managed object. */ -extern void *m17n_object_setup (int size, void (*freer) (void *)); +extern void *m17n_object (int size, void (*freer) (void *)); /* Increment the reference count of managed object OBJECT. */ extern int m17n_object_ref (void *object); @@ -99,11 +140,12 @@ extern int m17n_object_unref (void *object); structure is concealed from application programs. */ /***ja - @brief ¥·¥ó¥Ü¥ë¤Î·¿ + @brief ¥·¥ó¥Ü¥ë¤Î·¿Àë¸À. - #MSymbol ¤Ï¥·¥ó¥Ü¥ë¥ª¥Ö¥¸¥§¥¯¥È¤Î·¿¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ */ + #MSymbol ¤Ï @e ¥·¥ó¥Ü¥ë (symbol) ¥ª¥Ö¥¸¥§¥¯¥È¤Î·¿¤Ç¤¢¤ë¡£ + ÆâÉô¹½Â¤¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ */ -typedef struct MSymbol *MSymbol; +typedef struct MSymbolStruct *MSymbol; /*=*/ @@ -120,6 +162,9 @@ extern MSymbol msymbol (const char *name); /* Return a managing key of name NAME. */ extern MSymbol msymbol_as_managing_key (const char *name); +/* Check if SYMBOL is a managing key. */ +extern int msymbol_is_managing_key (MSymbol symbol); + /* Return a symbol of name NAME if it already exists. */ extern MSymbol msymbol_exist (const char *name); @@ -135,10 +180,10 @@ extern void *msymbol_get (MSymbol symbol, MSymbol key); /* * (2-1) Property List */ - +/*=*/ /*** @ingroup m17nCore */ /***en @defgroup m17nPlist Property List */ -/***ja @defgroup m17nPlist ¥×¥í¥Ñ¥Æ¥£¥ê¥¹¥È¡¦¥ª¥Ö¥¸¥§¥¯¥È */ +/***ja @defgroup m17nPlist ¥×¥í¥Ñ¥Æ¥£¥ê¥¹¥È */ /*=*/ /*** @@ -146,9 +191,15 @@ extern void *msymbol_get (MSymbol symbol, MSymbol key); /***en @brief Type of property list objects. - The type #MPlist is for a property list object. Its internal + The type #MPlist is for a @e property @e list object. Its internal structure is concealed from application programs. */ +/***ja + @brief ¥×¥í¥Ñ¥Æ¥£¥ê¥¹¥È¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î·¿Àë¸À. + + #MPlist ¤Ï @e ¥×¥í¥Ñ¥Æ¥£¥ê¥¹¥È (Property list) ¥ª¥Ö¥¸¥§¥¯¥È¤Î·¿¤Ç¤¢¤ë¡£ + ÆâÉô¹½Â¤¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ */ + typedef struct MPlist MPlist; /*=*/ @@ -191,8 +242,10 @@ extern void *mplist_value (MPlist *plist); /***ja @defgroup m17nCharacter ʸ»ú */ /*=*/ +#if !defined (FOR_DOXYGEN) || defined (DOXYGEN_INTERNAL_MODULE) #define MCHAR_MAX 0x3FFFFF /*#define MCHAR_MAX 0x7FFFFFFF*/ +#endif extern MSymbol Mscript; extern MSymbol Mname; @@ -202,7 +255,7 @@ extern MSymbol Mbidi_category; extern MSymbol Msimple_case_folding; extern MSymbol Mcomplicated_case_folding; -extern MSymbol mchar_define_property (char *name, MSymbol type); +extern MSymbol mchar_define_property (const char *name, MSymbol type); extern void *mchar_get_prop (int c, MSymbol key); @@ -225,9 +278,9 @@ extern MSymbol Mchar_table; internal structure is concealed from application programs. */ /***ja - @brief ʸ»ú¥Æ¡¼¥Ö¥ë¤Î·¿ + @brief ʸ»ú¥Æ¡¼¥Ö¥ë¤Î·¿Àë¸À. - #MCharTable ·¿¤Ï @e ʸ»ú¥Æ¡¼¥Ö¥ë ¥ª¥Ö¥¸¥§¥¯¥ÈÍѤι½Â¤ÂΤǤ¢¤ë¡£ + #MCharTable ¤Ï @e ʸ»ú¥Æ¡¼¥Ö¥ë (chartable) ¥ª¥Ö¥¸¥§¥¯¥È¤Î·¿¤Ç¤¢¤ë¡£ ÆâÉô¹½Â¤¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ */ typedef struct MCharTable MCharTable; @@ -243,8 +296,7 @@ extern int mchartable_set_range (MCharTable *table, int from, int to, void *val); extern int mchartable_map (MCharTable *table, void *ignore, - void (*func) (int from, int to, - void *val, void *arg), + void (*func) (int, int, void *, void *), void *func_arg); extern void mchartable_range (MCharTable *table, int *from, int *to); @@ -265,7 +317,7 @@ extern void mchartable_range (MCharTable *table, int *from, int *to); /* * (5-1) M-text basics */ - +/*=*/ /*** @ingroup m17nMtext */ /***en @brief Type of @e M-texts. @@ -274,10 +326,10 @@ extern void mchartable_range (MCharTable *table, int *from, int *to); structure is concealed from application programs. */ /***ja - @brief @e MText Íѹ½Â¤ÂÎ + @brief @e MText ¤Î·¿Àë¸À. - #Mtext ¹½Â¤ÂÎ¤Ï @e M-text ¥ª¥Ö¥¸¥§¥¯¥È¤ËÍѤ¤¤é¤ì¤ë¡£ÆâÉô¹½Â¤¤Ï¥¢ - ¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ + #Mtext ¤Ï @e M-text ¥ª¥Ö¥¸¥§¥¯¥È¤Î·¿¤Ç¤¢¤ë¡£ + ÆâÉô¹½Â¤¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ @latexonly \IPAlabel{MText} @endlatexonly @latexonly \IPAlabel{MText->MPlist} @endlatexonly */ @@ -286,10 +338,7 @@ typedef struct MText MText; /*=*/ -extern MText *mtext (); - -/*=*/ - +/*** @ingroup m17nMtext */ /***en @brief Enumeration for specifying the format of an M-text. @@ -297,6 +346,13 @@ extern MText *mtext (); mtext_from_data () function to specify the format of data from which an M-text is created. */ +/***ja + @brief M-text ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ëÎóµó·¿. + + Îóµó·¿ #MTextFormat ¤Ï´Ø¿ô + mtext_from_data () ¤Î°ú¿ô¤È¤·¤ÆÍѤ¤¤é¤ì¡¢ + M-text ¤òÀ¸À®¤¹¤ë¸µ¤È¤Ê¤ë¥Ç¡¼¥¿¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë¡£ */ + enum MTextFormat { MTEXT_FORMAT_US_ASCII, @@ -309,11 +365,78 @@ enum MTextFormat }; /*=*/ -extern MText *mtext_from_data (void *data, int nitems, - enum MTextFormat format); +extern MText *mtext (); + +extern void *mtext_data (MText *mt, enum MTextFormat *fmt, int *nunits, + int *pos_idx, int *unit_idx); + +/*=*/ + +/***en @name Variables: Default Endian of UTF-16 and UTF-32 */ +/***ja @name ÊÑ¿ô: UTF-16 ¤È UTF-32 ¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥¨¥ó¥Ç¥£¥¢¥ó */ +/*** @{ */ +/*=*/ + +/*** @ingroup m17nMtext */ +/***en + @brief Variable of value MTEXT_FORMAT_UTF_16LE or MTEXT_FORMAT_UTF_16BE. + + The global variable #MTEXT_FORMAT_UTF_16 is initialized to + #MTEXT_FORMAT_UTF_16LE on a "Little Endian" system (storing words + with the least significant byte first), and to + #MTEXT_FORMAT_UTF_16BE on a "Big Endian" system (storing words + with the most significant byte first). */ + +/***ja + @brief Ãͤ¬ MTEXT_FORMAT_UTF_16LE ¤« MTEXT_FORMAT_UTF_16BE ¤Ç¤¢¤ëÊÑ¿ô + + Âç°èÊÑ¿ô #MTEXT_FORMAT_UTF_16 ¤Ï¥ê¥È¥ë¡¦¥¨¥ó¥Ç¥£¥¢¥ó¡¦¥·¥¹¥Æ¥à + ¡Ê¥ï¡¼¥É¤ò LSB (Least Significant Byte) ¤òÀè¤Ë¤·¤Æ³ÊǼ¡Ë¾å¤Ç¤Ï + #MTEXT_FORMAT_UTF_16LE ¤Ë½é´ü²½¤µ¤ì¡¢¥Ó¥Ã¥°¡¦¥¨¥ó¥Ç¥£¥¢¥ó¡¦¥·¥¹¥Æ¥à + ¡Ê¥ï¡¼¥É¤ò MSB (Most Significant Byte) ¤òÀè¤Ë¤·¤Æ³ÊǼ¡Ë¾å¤Ç¤Ï + #MTEXT_FORMAT_UTF_16BE ¤Ë½é´ü²½¤µ¤ì¤ë¡£ */ + +/*** + @seealso + mtext_from_data () */ + +extern const enum MTextFormat MTEXT_FORMAT_UTF_16; +/*=*/ + +/*** @ingroup m17nMtext */ +/***en + @brief Variable of value MTEXT_FORMAT_UTF_32LE or MTEXT_FORMAT_UTF_32BE. + + The global variable #MTEXT_FORMAT_UTF_32 is initialized to + #MTEXT_FORMAT_UTF_32LE on a "Little Endian" system (storing words + with the least significant byte first), and to + #MTEXT_FORMAT_UTF_32BE on a "Big Endian" system (storing + words with the most significant byte first). */ + +/***ja + @brief Ãͤ¬ MTEXT_FORMAT_UTF_32LE ¤« MTEXT_FORMAT_UTF_32BE ¤Ç¤¢¤ëÊÑ¿ô + + Âç°èÊÑ¿ô #MTEXT_FORMAT_UTF_32 ¤Ï¥ê¥È¥ë¡¦¥¨¥ó¥Ç¥£¥¢¥ó¡¦¥·¥¹¥Æ¥à + ¡Ê¥ï¡¼¥É¤ò LSB (Least Significant Byte) ¤òÀè¤Ë¤·¤Æ³ÊǼ¡Ë¾å¤Ç¤Ï + #MTEXT_FORMAT_UTF_32LE ¤Ë½é´ü²½¤µ¤ì¡¢¥Ó¥Ã¥°¡¦¥¨¥ó¥Ç¥£¥¢¥ó¡¦¥·¥¹¥Æ¥à + ¡Ê¥ï¡¼¥É¤ò MSB (Most Significant Byte) ¤òÀè¤Ë¤·¤Æ³ÊǼ¡Ë¾å¤Ç¤Ï + #MTEXT_FORMAT_UTF_32BE ¤Ë½é´ü²½¤µ¤ì¤ë¡£ */ + +/*** + @seealso + mtext_from_data () */ + +extern const int MTEXT_FORMAT_UTF_32; + +/*=*/ +/*** @} */ +/*=*/ +extern MText *mtext_from_data (const void *data, int nitems, + enum MTextFormat format); /*=*/ +/*** @} */ /* * (5-2) Functions to manipulate M-texts. They correspond to string @@ -387,7 +510,7 @@ extern MPlist *mplist_deserialize (MText *mt); /* * (5-3) Text properties */ - +/*=*/ /*** @ingroup m17nCore */ /***en @defgroup m17nTextProperty Text Property */ /***ja @defgroup m17nTextProperty ¥Æ¥­¥¹¥È¥×¥í¥Ñ¥Æ¥£ */ @@ -401,28 +524,46 @@ extern MPlist *mplist_deserialize (MText *mt); text property as described in the documentation of each flag bit. */ +/***ja + @brief ¥Æ¥­¥¹¥È¥×¥í¥Ñ¥Æ¥£¤òÀ©¸æ¤¹¤ë¥Õ¥é¥°¥Ó¥Ã¥È. + + ´Ø¿ô mtext_property () ¤Ï°Ê²¼¤Î¥Õ¥é¥°¥Ó¥Ã¥È¤ÎÏÀÍý + OR ¤ò°ú¿ô¤È¤·¤Æ¤È¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ + ¥Õ¥é¥°¥Ó¥Ã¥È¤ÏÀ¸À®¤µ¤ì¤¿¥Æ¥­¥¹¥È¥×¥í¥Ñ¥Æ¥£¤Î¿¶Éñ¤¤¤òÀ©¸æ¤¹¤ë¡£ + ¾ÜºÙ¤Ï³Æ¥Õ¥é¥°¥Ó¥Ã¥È¤ÎÀâÌÀ¤ò»²¾È¡£*/ + enum MTextPropertyControl { /***en If this flag bit is on, an M-text inserted at the start position or at the middle of the text property inherits the text property. */ + /***ja ¤³¤Î¥Ó¥Ã¥È¤¬ on ¤Ê¤é¤Ð¡¢¤³¤Î¥Æ¥­¥¹¥È¥×¥í¥Ñ¥Æ¥£¤Î»Ï¤Þ¤ëÅÀ¤¢¤ë¤¤¤ÏÃæ´Ö¤ËÁÞÆþ¤µ¤ì¤¿ + M-text ¤Ï¤³¤Î¥Æ¥­¥¹¥È¥×¥í¥Ñ¥Æ¥£¤ò·Ñ¾µ¤¹¤ë¡£ + */ MTEXTPROP_FRONT_STICKY = 0x01, /***en If this flag bit is on, an M-text inserted at the end position or at the middle of the text property inherits the text property. */ + /***ja ¤³¤Î¥Ó¥Ã¥È¤¬ on ¤Ê¤é¤Ð¡¢¤³¤Î¥Æ¥­¥¹¥È¥×¥í¥Ñ¥Æ¥£¤Î½ª¤ï¤ëÅÀ¤¢¤ë¤¤¤ÏÃæ´Ö¤ËÁÞÆþ¤µ¤ì¤¿ + M-text ¤Ï¤³¤Î¥Æ¥­¥¹¥È¥×¥í¥Ñ¥Æ¥£¤ò·Ñ¾µ¤¹¤ë¡£ + */ MTEXTPROP_REAR_STICKY = 0x02, /***en If this flag bit is on, the text property is removed if a text in its region is modified. */ + /***ja ¤³¤Î¥Ó¥Ã¥È¤¬ on ¤Ê¤é¤Ð¡¢¤³¤Î¥Æ¥­¥¹¥È¥×¥í¥Ñ¥Æ¥£¤ÎÈÏ°ÏÆâ¤Î¥Æ¥­¥¹¥È¤¬Êѹ¹¤µ¤ì¤¿¾ì¹ç¥Æ¥­¥¹¥È¥×¥í¥Ñ¥Æ¥£¤Ï¼è¤ê½ü¤«¤ì¤ë¡£ */ MTEXTPROP_VOLATILE_WEAK = 0x04, /***en If this flag bit is on, the text property is removed if a text or the other text property in its region is modified. */ + /***ja ¤³¤Î¥Ó¥Ã¥È¤¬ on ¤Ê¤é¤Ð¡¢¤³¤Î¥Æ¥­¥¹¥È¥×¥í¥Ñ¥Æ¥£¤ÎÈÏ°ÏÆâ¤Î¥Æ¥­¥¹¥È¤¢¤ë¤¤¤ÏÊ̤Υƥ­¥¹¥È¥×¥í¥Ñ¥Æ¥£¤¬Êѹ¹¤µ¤ì¤¿¾ì¹ç¤³¤Î¥Æ¥­ + ¥¹¥È¥×¥í¥Ñ¥Æ¥£¤Ï¼è¤ê½ü¤«¤ì¤ë¡£*/ MTEXTPROP_VOLATILE_STRONG = 0x08, /***en If this flag bit is on, the text property is not automatically merged with the others. */ + /***ja ¤³¤Î¥Ó¥Ã¥È¤¬ on ¤Ê¤é¤Ð¡¢¤³¤Î¥Æ¥­¥¹¥È¥×¥í¥Ñ¥Æ¥£¤Ï¾¤Î¥×¥í¥Ñ¥Æ¥£¤È¼«Æ°Åª¤Ë¤Ï¥Þ¡¼¥¸¤µ¤ì¤Ê¤¤¡£ */ MTEXTPROP_NO_MERGE = 0x10, MTEXTPROP_CONTROL_MAX = 0x1F @@ -438,10 +579,20 @@ extern MSymbol Mtext_prop_deserializer; @brief Type of serializer functions. This is the type of serializer functions. If the key of a symbol - property is #Msymbol_prop_serializer, the value must be of this + property is #Mtext_prop_serializer, the value must be of this type. - @seealso Mtext_prop_serialize (), Mtext_prop_serializer + @seealso + mtext_serialize (), #Mtext_prop_serializer +*/ +/***ja + @brief ¥·¥ê¥¢¥é¥¤¥¶´Ø¿ô¤Î·¿Àë¸À. + + ¥·¥ê¥¢¥é¥¤¥¶´Ø¿ô¤Î·¿¤Ç¤¢¤ë¡£ ¤¢¤ë¥·¥ó¥Ü¥ë¤Î¥×¥í¥Ñ¥Æ¥£¤Î¥­¡¼¤¬ @c + #Mtext_prop_serializer ¤Ç¤¢¤ë¤È¤­¡¢ ÃͤϤ³¤Î·¿¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ + + @seealso + mtext_serialize (), #Mtext_prop_serializer */ typedef MPlist *(*MTextPropSerializeFunc) (void *val); @@ -451,10 +602,20 @@ typedef MPlist *(*MTextPropSerializeFunc) (void *val); @brief Type of deserializer functions. This is the type of deserializer functions. If the key of a - symbol property is #Msymbol_prop_deserializer, the value must be - of this type. + symbol property is #Mtext_prop_deserializer, the value must be of + this type. - @seealso Mtext_prop_deserialize (), Mtext_prop_deserializer + @seealso + mtext_deserialize (), #Mtext_prop_deserializer +*/ +/***ja + @brief ¥Ç¥·¥ê¥¢¥é¥¤¥¶´Ø¿ô¤Î·¿Àë¸À. + + ¥Ç¥·¥ê¥¢¥é¥¤¥¶´Ø¿ô¤Î·¿¤Ç¤¢¤ë¡£ ¤¢¤ë¥·¥ó¥Ü¥ë¤Î¥×¥í¥Ñ¥Æ¥£¤Î¥­¡¼¤¬ @c + #Msymbol_prop_deserializer ¤Ç¤¢¤ë¤È¤­¡¢ ÃͤϤ³¤Î·¿¤Ç¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ + + @seealso + Mtext_prop_deserialize (), Mtext_prop_deserializer */ typedef void *(*MTextPropDeserializeFunc) (MPlist *plist); @@ -477,14 +638,23 @@ extern int mtext_push_prop (MText *mt, int from, int to, extern int mtext_pop_prop (MText *mt, int from, int to, MSymbol key); -extern int mtext_change_prop (MText *mt, int from, int to, - MSymbol key, - int (*func) (int, void ***, int *)); - extern int mtext_prop_range (MText *mt, MSymbol key, int pos, int *from, int *to, int deeper); /*=*/ +/*** + @ingroup m17nTextProperty */ +/***en + @brief Type of text properties. + + The type #MTextProperty is for a @e text @e property objects. Its + internal structure is concealed from application programs. */ +/***ja + @brief @c ¥Æ¥­¥¹¥È¥×¥í¥Ñ¥Æ¥£¤Î·¿Àë¸À. + + #MTextProperty ¤Ï @e ¥Æ¥­¥¹¥È¥×¥í¥Ñ¥Æ¥£ ¥ª¥Ö¥¸¥§¥¯¥È¤Î·¿¤Ç¤¢¤ë¡£ + ÆâÉô¹½Â¤¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï¸«¤¨¤Ê¤¤¡£ */ + typedef struct MTextProperty MTextProperty; /*=*/