From: ntakahas Date: Mon, 10 Dec 2007 07:33:48 +0000 (+0000) Subject: Update comments. X-Git-Tag: REL-1-5-0~9 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=99f137212fdd1a5ed2f5b3463c13333c2978c7d9;p=m17n%2Fm17n-lib.git Update comments. --- diff --git a/src/m17n-flt.h b/src/m17n-flt.h index 8afea0c..5d48dc0 100644 --- a/src/m17n-flt.h +++ b/src/m17n-flt.h @@ -72,43 +72,75 @@ extern void m17n_fini_flt (void); The type #MFLTGlyph is the structure that contains information about a glyph. */ +/***ja + @brief ¥°¥ê¥Õ¤Ë´Ø¤¹¤ë¾ðÊó¤Î·¿. + + ·¿ #MFLTGlyph ¤Ï¡¢¥°¥ê¥Õ¤Ë´Ø¤¹¤ë¾ðÊó¤ò³ÊǼ¤¹¤ë¹½Â¤ÂΤǤ¢¤ë¡£ */ + typedef struct _MFLTGlyph MFLTGlyph; struct _MFLTGlyph { - /***en @brief Character code (Unicode) of the glyph. This is the sole + /***en Character code (Unicode) of the glyph. This is the sole member to be set before calling the functions mflt_find () and mflt_run (). */ + /***ja ¥°¥ê¥Õ¤Î (Unicode ¤Ë¤ª¤±¤ë) ʸ»ú¥³¡¼¥É¡£´Ø¿ô + mflt_find () ¤È mflt_run () + ¤ò¸Æ¤Ó½Ð¤¹Á°¥»¥Ã¥È¤¹¤Ù¤­Í£°ì¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¡£ */ int c; - /***en Glyph-id of the font of the glyph. */ + /***en Glyph ID of the glyph in the font. */ + /***ja ¥Õ¥©¥ó¥ÈÆâ¤Ë¤ª¤±¤ë¤½¤Î¥°¥ê¥Õ¤Î ID¡£ */ unsigned int code; - /***en Glyph indices indicating the start of the original glyphs. */ + /***en Starting index of the run in #MFLTGlyphString that is + replaced by this glyph. */ + /***ja #MFLTGlyphString + ¤ÎÃæ¤Ç¡¢¤³¤Î¥°¥ê¥Õ¤Ë¤è¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤ëÉôʬ¤ÎÀèƬ¤Î¥¤¥ó¥Ç¥¯¥¹¡£ */ int from; - /***en Glyph indices indicating the end of the original glyphs. */ + /***en Ending index of the run in #MFLTGlyphString that is + replaced by this glyph. */ + /***ja #MFLTGlyphString + ¤ÎÃæ¤Ç¡¢¤³¤Î¥°¥ê¥Õ¤Ë¤è¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤ëÉôʬ¤ÎËöÈø¤Î¥¤¥ó¥Ç¥¯¥¹¡£ */ int to; /***en Advance width for horizontal layout expressed in 26.6 fractional pixel format. */ + /***ja ²£½ñ¤­»þ¤ÎÁ÷¤êÉý¤ò 26.6 fractional pixel format ¤Çɽ¸½¤·¤¿¤â¤Î¡£ */ int xadv; /***en Advance height for vertical layout expressed in 26.6 fractional pixel format. */ + /***ja ½Ä½ñ¤­»þ¤ÎÁ÷¤ê¹â¤ò 26.6 fractional pixel format ¤Çɽ¸½¤·¤¿¤â¤Î¡£ */ int yadv; /***en Ink metrics of the glyph expressed in 26.6 fractional pixel format. */ + /***ja ¤³¤Î¥°¥ê¥Õ¤Î¥¤¥ó¥¯¥á¥È¥ê¥Ã¥¯¤ò 26.6 fractional pixel format + ¤Çɽ¸½¤·¤¿¤â¤Î¡£ */ int ascent, descent, lbearing, rbearing; /***en Horizontal and vertical adjustments for the glyph positioning expressed in 26.6 fractional pixel format. */ + /***ja ¥°¥ê¥Õ°ÌÃÖ·è¤á¤ÎºÝ¤Î¿åÊ¿¡¦¿âľĴÀ°Ãͤò¡¢ + 26.6 fractional pixel format ¤Çɽ¸½¤·¤¿¤â¤Î¡£ */ int xoff, yoff; - /***en Flag to tell if the member is already encoded into a - glyph ID of a font. */ + /***en Flag to tell whether the member has already been set + to a glyph ID in the font. */ + /***ja ¥á¥ó¥Ð¡¼ ¤Ë´û¤Ë¥°¥ê¥Õ ID + ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¤«Èݤ«¤ò¼¨¤¹¥Õ¥é¥°¡£ */ unsigned encoded : 1; /***en Flag to tell if the metrics of the glyph (members thru ) are already calculated. */ + /***ja ¥á¥ó¥Ð¡¼ ¤«¤é + ¤Þ¤Ç¤Î³Æ¥á¥È¥ê¥Ã¥¯¤¬´û¤Ë·×»»ºÑ¤«Èݤ«¤ò¼¨¤¹¥Õ¥é¥°¡£ */ unsigned measured : 1; /***en Flag to tell if the metrics of the glyph is adjusted, i.e. or is different from the normal size, or or is nonzero. */ + /***ja ¥°¥ê¥Õ¤Î¥á¥È¥ê¥Ã¥¯¤¬Ä´À°ºÑ¤ß¤«Èݤ«¡¢ + ¤¹¤Ê¤ï¤Á°Ê²¼¤Î¤¦¤Á1¤Ä°Ê¾å¤¬À®Î©¤·¤Æ¤¤¤ë¤³¤È¤ò¼¨¤¹¥Õ¥é¥°¡£ + ¤¬É¸½à¤ÎÃͤȰۤʤ롢 + ¤¬É¸½à¤ÎÃͤȰۤʤ롢 + ¤¬¥¼¥í¤Ç¤Ê¤¤¡¢ + ¤¬¥¼¥í¤Ç¤Ê¤¤¡£ */ unsigned adjusted : 1; /***en For m17n-lib's internal use only. */ + /***ja m17n-lib ÆâÉôºî¶ÈÍÑ¡£ */ unsigned internal : 30; /* Arbitrary data can follow. */ @@ -123,6 +155,13 @@ struct _MFLTGlyph information about a glyph metrics/position adjustment. It is given to the callback function #drive_otf of #MFLTFont. */ +/***ja + @brief ¥°¥ê¥Õ°ÌÃÖÄ´À°¾ðÊó¤Î¤¿¤á¤Î·¿. + + ·¿ #MFLTGlyphAdjustment + ¤Ï¡¢¥°¥ê¥Õ¤Î¥á¥È¥ê¥Ã¥¯/°ÌÃÖ¤ÎÄ´À°¤Ë´Ø¤¹¤ë¾ðÊó¤ò³ÊǼ¤¹¤ë¤¿¤á¤Î¹½Â¤ÂΤǤ¢¤ê¡¢ + #MFLTFont ¤Î callback ´Ø¿ô #drive_otf ¤ËÅϤµ¤ì¤ë¡£ */ + typedef struct _MFLTGlyphAdjustment MFLTGlyphAdjustment; struct _MFLTGlyphAdjustment @@ -130,18 +169,26 @@ struct _MFLTGlyphAdjustment /***en Adjustments for advance width for horizontal layout and advance height for vertical layout expressed in 26.6 fractional pixel format. */ + /***ja ¿åÊ¿¡¦¿âľÊý¸þ¤ÎÁ÷¤êÎ̤ÎÄ´À°Ãͤò 26.6 fractional pixel format + ¤Çɽ¸½¤·¤¿¤â¤Î¡£ */ int xadv, yadv; - /***en Horizontal and vertical adjustments for a glyph positioning + /***en Horizontal and vertical adjustments for glyph positioning expressed in 26.6 fractional pixel format. */ + /***ja ¥°¥ê¥Õ°ÌÃÖ·è¤á¤¿¤á¤Î¿åÊ¿¡¦¿âľĴÀ°Ãͤò 26.6 fractional pixel + format ¤Çɽ¸½¤·¤¿¤â¤Î¡£ */ int xoff, yoff; /***en Number of glyphs to go back for drawing a glyph. */ + /***ja ¥°¥ê¥ÕÉÁ²è¤Î¤¿¤á¤ËÌá¤ë¤Ù¤­¥°¥ê¥Õ¿ô¡£ */ short back; /***en If nonzero, the member and are absolute, i.e., they should not be added to a glyph's origianl advance width and height. */ + /***ja Èó¥¼¥í¤Î¤È¤­¡¢¥á¥ó¥Ð¡¼ ¤È ¤ÏÀäÂÐÃͤǤ¢¤ë¡£ + ¤¹¤Ê¤ï¤Á¤½¤ÎÃͤò¥°¥ê¥ÕËÜÍè¤ÎÁ÷¤êÉý¤Ë²Ã»»¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ */ unsigned advance_is_absolute : 1; /***en Should be set to 1 iff at least one of the other members has a nonzero value. */ + /***ja ¾¤Î¥á¥ó¥Ð¡¼¤Î¤¦¤ÁºÇÄã1¸Ä¤¬Èó¥¼¥í¤Î¤È¤­¤Î¤ß¡¢1¤Ë¥»¥Ã¥È¤µ¤ì¤ë¡£ */ unsigned set : 1; }; @@ -151,6 +198,11 @@ struct _MFLTGlyphAdjustment The type #MFLTGlyphString is the structure that contains information about a sequence of glyphs. */ +/***ja + @brief ¥°¥ê¥ÕÎó¤Î¾ðÊó¤Î¤¿¤á¤Î·¿. + + ·¿ #MFLTGlyphString ¤Ï¡¢¥°¥ê¥ÕÎó¤Î¾ðÊó¤ò³ÊǼ¤¹¤ë¤¿¤á¤Î¹½Â¤ÂΤǤ¢¤ë¡£ */ + typedef struct _MFLTGlyphString MFLTGlyphString; struct _MFLTGlyphString @@ -158,15 +210,21 @@ struct _MFLTGlyphString /***en The actual byte size of elements of the array pointed by the member #glyphs. It must be equal to or greater than "sizeof (MFLTGlyph)". */ + /***ja ¥á¥ó¥Ð¡¼ #glyphs ¤Î»Ø¤¹ÇÛÎó¤ÎÍ×ÁǤ¬Àê¤á¤ë¼Â¥Ð¥¤¥È¿ô¡£ + ¤³¤ÎÃÍ¤Ï "sizeof (MFLTGlyph)" °Ê¾å¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ */ int glyph_size; /***en Array of glyphs. */ + /***ja ¥°¥ê¥Õ¤ÎÇÛÎó¡£ */ MFLTGlyph *glyphs; - /***en How many elements are allocated in #glyphs. */ + /***en Number of elements allocated in #glyphs. */ + /***ja #glyphs Æâ¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤ëÍ×ÁǤοô¡£ */ int allocated; - /***en How many elements in #glyphs are in use. */ + /***en Number of elements in #glyphs in use. */ + /***ja #glyphs Æâ¤Ç»ÈÍÑÃæ¤ÎÍ×ÁǤοô¡£ */ int used; /***en Flag to tell if the glyphs should be drawn from right-to-left or not. */ + /***ja ¥°¥ê¥Õ¤¬±¦¤«¤éº¸¤Ø¤ÈÉÁ¤«¤ì¤ë¤Ù¤­¤«Èݤ«¤ò¼¨¤¹¥Õ¥é¥°¡£ */ unsigned int r2l; }; @@ -174,25 +232,39 @@ struct _MFLTGlyphString @brief Type of specification of GSUB and GPOS OpenType tables. The type #MFLTOtfSpec is the structure that contains information - about GSUB and GPOS features of a specific script and language + about the GSUB and GPOS features of a specific script and language system to be applied to a glyph sequence. */ +/***ja + @brief GSUB ¤ª¤è¤Ó GPOS OpenType ¥Æ¡¼¥Ö¥ë¤Î»ÅÍͤΤ¿¤á¤Î·¿. + + ·¿ #MFLTOtfSpec ¤Ï¡¢GSUB ¤ª¤è¤Ó GPOS + ¥Õ¥£¡¼¥Á¥ã¡¼¤Î¾ðÊó¤ò³ÊǼ¤¹¤ë¤¿¤á¤Î¹½Â¤ÂΤǤ¢¤ë¡£ + ¤³¤ì¤é¥Õ¥£¡¼¥Á¥ã¡¼¤ÏÆÃÄê¤Î¥¹¥¯¥ê¥×¥È¤ª¤è¤Ó¸À¸ì¥·¥¹¥Æ¥à¤Î¤â¤Î¤Ç¤¢¤ê¡¢¥°¥ê¥ÕÎó¤ËŬÍѤµ¤ì¤ë¡£ */ + typedef struct _MFLTOtfSpec MFLTOtfSpec; struct _MFLTOtfSpec { /***en Unique symbol representing the spec. This is the same as the #OTF-SPEC of the FLT. */ + /***ja ¤³¤Î»ÅÍͤòɽ¤ï¤¹¥æ¥Ë¡¼¥¯¤Ê¥·¥ó¥Ü¥ë¡£ + FLT ¤Î #OTF-SPEC ¤ÈƱ°ì¤ÎÃͤǤ¢¤ë¡£ */ MSymbol sym; /***en Tags for script and language system. */ + /***ja ¥¹¥¯¥ê¥×¥È¤ª¤è¤Ó¸À¸ì¥·¥¹¥Æ¥à¤Î¥¿¥°¡£ */ unsigned int script, langsys; /***en Array of GSUB (1st element) and GPOS (2nd element) features. - Each array is terminated by 0. If an element is 0xFFFFFFFF, + Each array is terminated by 0. If an element is 0xFFFFFFFF apply the previous features in that order, and apply all the - other features except those appearing in the following elements. - It may be NULL if there's no feature. */ + other features except those that appear in the following elements. + It may be NULL if there are no features. */ + /***ja GSUB ¥Õ¥£¡¼¥Á¥ã¡¼¤òÂè1Í×ÁÇ¡¢GPOS ¥Õ¥£¡¼¥Á¥ã¡¼¤òÂè2Í×ÁǤȤ¹¤ëÇÛÎó¡£ + ³ÆÇÛÎó¤ÎËöÈø¤Ï0¤Ç¼¨¤µ¤ì¤ë¡£¤â¤·¤¢¤ëÍ×ÁǤ¬ 0xFFFFFFFF + ¤Ê¤é¤Ð¡¢°ÊÁ°¤ÎÁ´¥Õ¥£¡¼¥Á¥ã¡¼¤ò¤½¤Î½ç½ø¤ÇŬÍѤ·¡¢¹¹¤Ë°Ê¹ß¤ÎÍ×ÁǤȤ·¤Æ¸½¤ï¤ì¤ë¥Õ¥£¥Á¥ã¡¼°Ê³°¤Î¤¹¤Ù¤Æ¤òŬÍѤ¹¤ë¡£ + ¥Õ¥£¡¼¥Á¥ã¡¼¤¬1¤Ä¤â¤Ê¤¤¾ì¹ç¤Ï NULL ¤Ç¤â¤è¤¤¡£ */ unsigned int *features[2]; }; @@ -202,6 +274,12 @@ struct _MFLTOtfSpec The type #MFLTFont is the structure that contains information about a font used by the FLT driver. */ +/***ja + @brief FLT ¥É¥é¥¤¥Ð¤¬»È¤¦¥Õ¥©¥ó¥È¤Î·¿. + + ·¿ #MFLTFont ¤Ï¡¢FLT + ¥É¥é¥¤¥Ð¤¬»È¤¦¥Õ¥©¥ó¥È¤Ë´Ø¤¹¤ë¾ðÊó¤ò³ÊǼ¤¹¤ë¤¿¤á¤Î¹½Â¤ÂΤǤ¢¤ë¡£ */ + typedef struct _MFLTFont MFLTFont; struct _MFLTFont @@ -210,50 +288,83 @@ struct _MFLTFont is not important in finding a Font Layout Table suitable for the font (for instance, in the case that the font is an OpenType font). */ + /***ja ¥Õ¥©¥ó¥È¤Î¥Õ¥¡¥ß¥ê¡¼Ì¾¡£¥Õ¥©¥ó¥È¤ËŬ¤·¤¿ FLT + ¤òõ¤¹ºÝ¤Ë½ÅÍפǤʤ¤¾ì¹ç (¤¿¤È¤¨¤Ð OpenType + ¥Õ¥©¥ó¥È¤Î¾ì¹ç¤Ê¤É) ¤Ï¡¢#Mnil ¤Ç¤è¤¤¡£*/ MSymbol family; - /***en Horizontal and vertical font sizes in pixel per EM. */ + /***en Horizontal and vertical font sizes in pixels per EM. */ + /***ja ¥Õ¥©¥ó¥È¤Î¿åÊ¿¡¦¿âľ¥µ¥¤¥º¤ò pixels per EM ¤Çɽ¸½¤·¤¿¤â¤Î¡£ */ int x_ppem, y_ppem; /***en Callback function to get glyph IDs for glyphs between FROM - (inclusive) and TO (exclusive) of GSTRING. If member - of a glyph is zero, the member of the glyph is a character + (inclusive) and TO (exclusive) of GSTRING. If the member + of a glyph is zero, the member of that glyph is a character code. The function must convert it to the glyph ID of FONT. */ + /***ja GSTRING Æâ¤Î FROM ¤«¤é TO ľÁ°¤Þ¤Ç¤Î³Æ¥°¥ê¥Õ¤ËÂбþ¤¹¤ë¥°¥ê¥Õ ID + ¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Î callback ´Ø¿ô¡£¤â¤·¤¢¤ë¥°¥ê¥Õ¤Î¥á¥ó¥Ð¡¼ + ¤¬¥¼¥í¤Ê¤é¤Ð¡¢¤½¤Î¥°¥ê¥Õ¤Î¥á¥ó¥Ð¡¼ ¤Ïʸ»ú¥³¡¼¥É¤Ç¤¢¤ë¡£ + ¤³¤Î´Ø¿ô¤Ï¤½¤Îʸ»ú¥³¡¼¥É¤ò FONT ¤Î¥°¥ê¥Õ ID + ¤ËÊÑ´¹¤·¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ */ int (*get_glyph_id) (MFLTFont *font, MFLTGlyphString *gstring, int from, int to); - /*** Callback function to get metrics of glyphs between FROM - (inclusive) and TO (exclusive) of GSTRING. If member - of a glyph is zero, the function must set members , , + /***en Callback function to get metrics of glyphs between FROM + (inclusive) and TO (exclusive) of GSTRING. If the member + of a glyph is zero, the function must set the members , , , , , and of the glyph. */ + /***ja GSTRING Æâ¤Î FROM ¤«¤é TO + ľÁ°¤Þ¤Ç¤Î³Æ¥°¥ê¥Õ¤ËÂбþ¤¹¤ë¥á¥È¥ê¥Ã¥¯¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Î callback ´Ø¿ô¡£ + ¤â¤·¤¢¤ë¥°¥ê¥Õ¤Î¥á¥ó¥Ð¡¼ + ¤¬¥¼¥í¤Ê¤é¤Ð¡¢¤³¤Î´Ø¿ô¤Ï¤½¤Î¥°¥ê¥Õ¤Î¥á¥ó¥Ð¡¼ , , + , , , ¤ª¤è¤Ó + ¤ò¥»¥Ã¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ */ int (*get_metrics) (MFLTFont *font, MFLTGlyphString *gstring, int from, int to); /***en Callback function to check if the font has OpenType GSUB/GPOS features for a specific script/language. The function must - return 1 if the font satisfy SPEC, else return 0. It must be - NULL if the font doesn't have OpenType tables. */ + return 1, if the font satisfies SPEC, or 0. It must be + NULL if the font does not have OpenType tables. */ + /***ja ¥Õ¥©¥ó¥È¤¬¤¢¤ëÆÃÄê¤Î¥¹¥¯¥ê¥×¥È/¸À¸ì¤ËÂФ¹¤ë GSUB/GPOS OpenType + ¥Õ¥£¡¼¥Á¥ã¡¼¤ò»ý¤Ä¤«Èݤ«¤òÄ´¤Ù¤ë callback ´Ø¿ô¡£¤³¤Î´Ø¿ô¤Ï¥Õ¥©¥ó¥È¤¬ + SPEC ¤òËþ¤¿¤¹¤È¤­¤Ï 1 ¤ò¡¢¤½¤¦¤Ç¤Ê¤¤¤È¤­¤Ï 0 + ¤òÊÖ¤µ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¥Õ¥©¥ó¥È¤¬ OpenType ¥Æ¡¼¥Ö¥ë¤ò»ý¤¿¤Ê¤¤¤È¤­¤Ï + NULL ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ */ int (*check_otf) (MFLTFont *font, MFLTOtfSpec *spec); - /*** Callback function to apply OpenType features in SPEC to glyphs + /***en Callback function to apply OpenType features in SPEC to glyphs between FROM (inclusive) and TO (exclusive) of IN. The resulting - glyphs should be appended to the tail of OUT. If OUT doesn't - have a room to store all resulting glyphs, it must return -2. - It must be NULL if the font doesn't have OpenType tables. */ + glyphs are appended to the tail of OUT. If OUT does not + have a room to store all the resulting glyphs, it must return -2. + It must be NULL if the font does not have OpenType tables. */ + /***ja IN Æâ¤Î FROM ¤«¤é TO ľÁ°¤Þ¤Ç¤Î³Æ¥°¥ê¥Õ¤Ë SPEC + Æâ¤Î³Æ OpenType ¥Õ¥£¡¼¥Á¥ã¡¼¤òŬÍѤ¹¤ë¤¿¤á¤Î callback ´Ø¿ô¡£ + ŬÍÑ·ë²Ì¤Î¥°¥ê¥ÕÎó¤Ï OUT ¤ÎËöÈø¤ËÄɲ䵤ì¤ë¡£ + OUT ¤¬Ã»¤«²á¤®¤Æ·ë²Ì¤òÄɲä·ÀÚ¤ì¤Ê¤¤¾ì¹ç¤Ï -2 ¤òÊÖ¤µ¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£ + ¥Õ¥©¥ó¥È¤¬ OpenType ¥Æ¡¼¥Ö¥ë¤ò»ý¤¿¤Ê¤¤¾ì¹ç¤Ï NULL + ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ /* int (*drive_otf) (MFLTFont *font, MFLTOtfSpec *spec, MFLTGlyphString *in, int from, int to, MFLTGlyphString *out, MFLTGlyphAdjustment *adjustment); /***en For m17n-lib's internal use only. It should be initialized to NULL. */ + /***ja m17n-lib ¤ÎÆâÉôºî¶ÈÍÑ¡£NULL ¤Ë½éÃͲ½¤µ¤ì¤ë¡£ */ void *internal; }; /***en @brief Type of FLT (Font Layout Table). - The type #MFLT is for a FLT object. Its internal structure is - concealed from application program. */ + The type #MFLT is for an FLT object. Its internal structure is + concealed from application programs. */ + +/***ja + @brief FLT (Font Layout Table) ¤Î·¿. + + ·¿ #MFLT ¤Ï FLT ¥ª¥Ö¥¸¥§¥¯¥È¤Î¤¿¤á¤Î·¿¤Ç¤¢¤ë¡£ + ¤³¤ÎÆâÉô¹½Â¤¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤«¤é¤Ï±£Ê䵤ì¤Æ¤¤¤ë¡£ */ typedef struct _MFLT MFLT;