-/***************************************************************************/
-/* */
-/* gxvmort4.c */
-/* */
-/* TrueTypeGX/AAT mort table validation */
-/* body for type4 (Non-Contextual Glyph Substitution) subtable. */
-/* */
-/* Copyright 2005 by suzuki toshiya, Masatake YAMATO, Red Hat K.K., */
-/* David Turner, Robert Wilhelm, and Werner Lemberg. */
-/* */
-/* This file is part of the FreeType project, and may only be used, */
-/* modified, and distributed under the terms of the FreeType project */
-/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
-/* this file you indicate that you have read the license and */
-/* understand and accept it fully. */
-/* */
-/***************************************************************************/
-
-/***************************************************************************/
-/* */
-/* gxvalid is derived from both gxlayout module and otvalid module. */
-/* Development of gxlayout is supported by the Information-technology */
-/* Promotion Agency(IPA), Japan. */
-/* */
-/***************************************************************************/
-
-
-#include "gxvmort.h"
-
-
- /*************************************************************************/
- /* */
- /* The macro FT_COMPONENT is used in trace mode. It is an implicit */
- /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log */
- /* messages during execution. */
- /* */
-#undef FT_COMPONENT
-#define FT_COMPONENT trace_gxvmort
-
-
- static void
- gxv_mort_subtable_type4_lookupval_validate( FT_UShort glyph,
- GXV_LookupValueDesc value,
- GXV_Validator valid )
- {
- FT_UNUSED( glyph );
-
- gxv_glyphid_validate( value.u, valid );
- }
-
- /*
- +===============+ --------+
- | lookup header | |
- +===============+ |
- | BinSrchHeader | |
- +===============+ |
- | lastGlyph[0] | |
- +---------------+ |
- | firstGlyph[0] | | head of lookup table
- +---------------+ | +
- | offset[0] | -> | offset [byte]
- +===============+ | +
- | lastGlyph[1] | | (glyphID - firstGlyph) * 2 [byte]
- +---------------+ |
- | firstGlyph[1] | |
- +---------------+ |
- | offset[1] | |
- +===============+ |
- |
- .... |
- |
- 16bit value array |
- +===============+ |
- | value | <-------+
- ....
- */
-
- static GXV_LookupValueDesc
- gxv_mort_subtable_type4_lookupfmt4_transit(
- FT_UShort relative_gindex,
- GXV_LookupValueDesc base_value,
- FT_Bytes lookuptbl_limit,
- GXV_Validator valid )
- {
- FT_Bytes p;
- FT_Bytes limit;
- FT_UShort offset;
- GXV_LookupValueDesc value;
-
- /* XXX: check range? */
- offset = (FT_UShort)( base_value.u +
- relative_gindex * sizeof ( FT_UShort ) );
-
- p = valid->lookuptbl_head + offset;
- limit = lookuptbl_limit;
-
- GXV_LIMIT_CHECK( 2 );
- value.u = FT_NEXT_USHORT( p );
-
- return value;
- }
-
-
- FT_LOCAL_DEF( void )
- gxv_mort_subtable_type4_validate( FT_Bytes table,
- FT_Bytes limit,
- GXV_Validator valid )
- {
- FT_Bytes p = table;
-
-
- GXV_NAME_ENTER( "mort chain subtable type4 "
- "(Non-Contextual Glyph Substitution)" );
-
- valid->lookupval_sign = GXV_LOOKUPVALUE_UNSIGNED;
- valid->lookupval_func = gxv_mort_subtable_type4_lookupval_validate;
- valid->lookupfmt4_trans = gxv_mort_subtable_type4_lookupfmt4_transit;
-
- gxv_LookupTable_validate( p, limit, valid );
-
- GXV_EXIT;
- }
-
-
-/* END */
+/***************************************************************************/\r
+/* */\r
+/* gxvmort4.c */\r
+/* */\r
+/* TrueTypeGX/AAT mort table validation */\r
+/* body for type4 (Non-Contextual Glyph Substitution) subtable. */\r
+/* */\r
+/* Copyright 2005 by suzuki toshiya, Masatake YAMATO, Red Hat K.K., */\r
+/* David Turner, Robert Wilhelm, and Werner Lemberg. */\r
+/* */\r
+/* This file is part of the FreeType project, and may only be used, */\r
+/* modified, and distributed under the terms of the FreeType project */\r
+/* license, LICENSE.TXT. By continuing to use, modify, or distribute */\r
+/* this file you indicate that you have read the license and */\r
+/* understand and accept it fully. */\r
+/* */\r
+/***************************************************************************/\r
+\r
+/***************************************************************************/\r
+/* */\r
+/* gxvalid is derived from both gxlayout module and otvalid module. */\r
+/* Development of gxlayout is supported by the Information-technology */\r
+/* Promotion Agency(IPA), Japan. */\r
+/* */\r
+/***************************************************************************/\r
+\r
+\r
+#include "gxvmort.h"\r
+\r
+\r
+ /*************************************************************************/\r
+ /* */\r
+ /* The macro FT_COMPONENT is used in trace mode. It is an implicit */\r
+ /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log */\r
+ /* messages during execution. */\r
+ /* */\r
+#undef FT_COMPONENT\r
+#define FT_COMPONENT trace_gxvmort\r
+\r
+\r
+ static void\r
+ gxv_mort_subtable_type4_lookupval_validate( FT_UShort glyph,\r
+ GXV_LookupValueDesc value,\r
+ GXV_Validator valid )\r
+ {\r
+ FT_UNUSED( glyph );\r
+\r
+ gxv_glyphid_validate( value.u, valid );\r
+ }\r
+\r
+ /*\r
+ +===============+ --------+\r
+ | lookup header | |\r
+ +===============+ |\r
+ | BinSrchHeader | |\r
+ +===============+ |\r
+ | lastGlyph[0] | |\r
+ +---------------+ |\r
+ | firstGlyph[0] | | head of lookup table\r
+ +---------------+ | +\r
+ | offset[0] | -> | offset [byte]\r
+ +===============+ | +\r
+ | lastGlyph[1] | | (glyphID - firstGlyph) * 2 [byte]\r
+ +---------------+ |\r
+ | firstGlyph[1] | |\r
+ +---------------+ |\r
+ | offset[1] | |\r
+ +===============+ |\r
+ |\r
+ .... |\r
+ |\r
+ 16bit value array |\r
+ +===============+ |\r
+ | value | <-------+\r
+ ....\r
+ */\r
+\r
+ static GXV_LookupValueDesc\r
+ gxv_mort_subtable_type4_lookupfmt4_transit(\r
+ FT_UShort relative_gindex,\r
+ GXV_LookupValueDesc base_value,\r
+ FT_Bytes lookuptbl_limit,\r
+ GXV_Validator valid )\r
+ {\r
+ FT_Bytes p;\r
+ FT_Bytes limit;\r
+ FT_UShort offset;\r
+ GXV_LookupValueDesc value;\r
+\r
+ /* XXX: check range? */\r
+ offset = (FT_UShort)( base_value.u +\r
+ relative_gindex * sizeof ( FT_UShort ) );\r
+\r
+ p = valid->lookuptbl_head + offset;\r
+ limit = lookuptbl_limit;\r
+\r
+ GXV_LIMIT_CHECK( 2 );\r
+ value.u = FT_NEXT_USHORT( p );\r
+\r
+ return value;\r
+ }\r
+\r
+\r
+ FT_LOCAL_DEF( void )\r
+ gxv_mort_subtable_type4_validate( FT_Bytes table,\r
+ FT_Bytes limit,\r
+ GXV_Validator valid )\r
+ {\r
+ FT_Bytes p = table;\r
+\r
+\r
+ GXV_NAME_ENTER( "mort chain subtable type4 "\r
+ "(Non-Contextual Glyph Substitution)" );\r
+\r
+ valid->lookupval_sign = GXV_LOOKUPVALUE_UNSIGNED;\r
+ valid->lookupval_func = gxv_mort_subtable_type4_lookupval_validate;\r
+ valid->lookupfmt4_trans = gxv_mort_subtable_type4_lookupfmt4_transit;\r
+\r
+ gxv_LookupTable_validate( p, limit, valid );\r
+\r
+ GXV_EXIT;\r
+ }\r
+\r
+\r
+/* END */\r