Make otlayout module compile (without actually working).

* src/otlayout/*: s/OTL_Valid/OTL_Validator/.
s/NULL/0/.

* src/otlayout/otlayout.h: Fix various typos.
(OTL_Bool): New typedef.
(OTL_Int, OTL_Long, OTL_Int16, OTL_Int32): Use `signed' keyword.
(OTL_Err_InvalidArgument): Removed.
(OTL_Err_InvalidData, OTL_Err_InvalidSize): New enum values.
(OTL_MAKE_TAG): Add missing parenthesis.
(OTL_INVALID_DATA): Use OTL_Err_InvalidData.
(OTL_INVALID_TOO_SHORT): Use OTL_Err_InvalidSize.
(OTL_INVALID_FORMAT, OTL_INVALID_OFFSET): New macros.

* src/otlayout/otlgpos.c: s/FT_/OTL_/.
s/OTL_Short/OTL_Int16/.
(otl_gpos_pairset_validate): Add return type.
(otl_base_array_validate): Fix call to otl_anchor_validate.
(otl_liga_array_validate): Fix call to otl_liga_attach_validate.
(otl_gpos_lookup5_validate): Fix typos.
(otl_gpos_lookup6_validate): Fix call to otl_mark2_array_validate.
(otl_gpos_lookup7_validate): Comment out unfinished code.
Fix typos.

* src/otlayout/otlgsub.c: Add forward declaration for
otl_gsub_validate_funcs.
(otl_gsub_lookup1_apply, otl_gsub_lookup2_apply,
otl_gsub_lookup3_apply): Fix call to otl_parser_check_property.
s/otl_coverage_lookup/otl_coverage_get_index/.
(otl_ligature_validate): Add missing variable declaration.
(otl_sub_rule_validate): Fix typo.
(otl_sub_class_rule_validate): Add missing variable declaration.
Fix typo.
(otl_gsub_lookup5_validate): Fix typo.
(otl_gsub_lookup6_validate): Fix call to
otl_chain_sub_class_set_validate.
(otl_gsub_validate_funcs): Don't use `const'.

* src/otlayout/otlcommn.c (otl_class_definition_get_value,
otl_device_table_validate, otl_device_table_get_delta,
otl_lookup_validate, otl_script_validate): Add missing
variable declarations.
(otl_lookup_list_validate): Comment out first definition.
(otl_lookup_list_foreach, otl_feature_list_foreach): Comment out.
(otl_feature_list_validate):
s/otl_feature_table_validate/otl_feature_validate/.
(otl_script_list_validate):
s/otl_script_table_validate/otl_script_validate/.

* src/otlayout/otlcommn.h: Comment out first declaration.
(otl_lookup_list_foreach, otl_feature_list_foreach): Comment out.

* src/otlayout/otlbase.c (otl_base_coord_validate): Fix call to
otl_device_table_validate.
(otl_base_scsript_validate): Add missing variable declarations.
(otl_base_script_list_validate): Fix call to
otl_base_script_validate.
(otl_axis_table_validate): Fix calls to otl_base_tag_list_validate
and otl_base_script_list_validate.
(otl_base_validate): Fix calls to otl_axis_table_validate.

* src/otlayout/otlgdef.c (otl_attach_list_validate): Fix call to
otl_attach_point_validate.
(otl_caret_value_validate): Add missing variable declaration.
Fix call to otl_device_table_validate.
(otl_ligature_glyph_validate): Fix call to otl_caret_value_validate.
(otl_ligature_caret_list_validate): Fix call to
otl_ligature_glyph_validate.
(otl_gdef_validate): Fix calls to otl_class_definition_validate,
otl_attach_list_validate, otl_ligature_caret_list_validate, and
otl_class_definition_validate.

* src/otlayout/otltable.h (otl_table_validate, otl_table_init,
otl_table_set_script): Comment out.

* src/otlayout/otlparse.h (OTL_ParserRec):
s/OTL_Alternate/OTL_GSUB_Alternate/.
(OTL_ParseError): Add OTL_Err_Parser_Memory and
OTL_Err_Parser_Internal.
(otl_parser_error): Fix typo.
(otl_parser_check_property): Remove third argument.

* src/otlayout/otlparse.c (otl_string_ensure):
s/OTL_Parse_Err_Memory/OTL_Err_Parser_Memory/.
(OTL_STRING_ENSURE, otl_parser_error, otl_parser_get_index,
otl_parser_replace_1, otl_parser_replace_n): Fix typos.
(OTL_PARSER_UNCOVERED): Removed.
(otl_parser_check_property): Remove third argument.

* src/otlayout/otljstf.c (otl_jstf_priority_validate): Add missing
variable declaration.

* src/otlayout/otlutils.h (OTL_MEM_REALLOC): Fix typo.
This commit is contained in:
Werner Lemberg 2004-08-12 12:22:28 +00:00
parent 17439423f8
commit ec39a8a391
17 changed files with 270 additions and 142 deletions

View File

@ -1,3 +1,100 @@
2004-08-12 Werner Lemberg <wl@gnu.org>
Make otlayout module compile (without actually working).
* src/otlayout/*: s/OTL_Valid/OTL_Validator/.
s/NULL/0/.
* src/otlayout/otlayout.h: Fix various typos.
(OTL_Bool): New typedef.
(OTL_Int, OTL_Long, OTL_Int16, OTL_Int32): Use `signed' keyword.
(OTL_Err_InvalidArgument): Removed.
(OTL_Err_InvalidData, OTL_Err_InvalidSize): New enum values.
(OTL_MAKE_TAG): Add missing parenthesis.
(OTL_INVALID_DATA): Use OTL_Err_InvalidData.
(OTL_INVALID_TOO_SHORT): Use OTL_Err_InvalidSize.
(OTL_INVALID_FORMAT, OTL_INVALID_OFFSET): New macros.
* src/otlayout/otlgpos.c: s/FT_/OTL_/.
s/OTL_Short/OTL_Int16/.
(otl_gpos_pairset_validate): Add return type.
(otl_base_array_validate): Fix call to otl_anchor_validate.
(otl_liga_array_validate): Fix call to otl_liga_attach_validate.
(otl_gpos_lookup5_validate): Fix typos.
(otl_gpos_lookup6_validate): Fix call to otl_mark2_array_validate.
(otl_gpos_lookup7_validate): Comment out unfinished code.
Fix typos.
* src/otlayout/otlgsub.c: Add forward declaration for
otl_gsub_validate_funcs.
(otl_gsub_lookup1_apply, otl_gsub_lookup2_apply,
otl_gsub_lookup3_apply): Fix call to otl_parser_check_property.
s/otl_coverage_lookup/otl_coverage_get_index/.
(otl_ligature_validate): Add missing variable declaration.
(otl_sub_rule_validate): Fix typo.
(otl_sub_class_rule_validate): Add missing variable declaration.
Fix typo.
(otl_gsub_lookup5_validate): Fix typo.
(otl_gsub_lookup6_validate): Fix call to
otl_chain_sub_class_set_validate.
(otl_gsub_validate_funcs): Don't use `const'.
* src/otlayout/otlcommn.c (otl_class_definition_get_value,
otl_device_table_validate, otl_device_table_get_delta,
otl_lookup_validate, otl_script_validate): Add missing
variable declarations.
(otl_lookup_list_validate): Comment out first definition.
(otl_lookup_list_foreach, otl_feature_list_foreach): Comment out.
(otl_feature_list_validate):
s/otl_feature_table_validate/otl_feature_validate/.
(otl_script_list_validate):
s/otl_script_table_validate/otl_script_validate/.
* src/otlayout/otlcommn.h: Comment out first declaration.
(otl_lookup_list_foreach, otl_feature_list_foreach): Comment out.
* src/otlayout/otlbase.c (otl_base_coord_validate): Fix call to
otl_device_table_validate.
(otl_base_scsript_validate): Add missing variable declarations.
(otl_base_script_list_validate): Fix call to
otl_base_script_validate.
(otl_axis_table_validate): Fix calls to otl_base_tag_list_validate
and otl_base_script_list_validate.
(otl_base_validate): Fix calls to otl_axis_table_validate.
* src/otlayout/otlgdef.c (otl_attach_list_validate): Fix call to
otl_attach_point_validate.
(otl_caret_value_validate): Add missing variable declaration.
Fix call to otl_device_table_validate.
(otl_ligature_glyph_validate): Fix call to otl_caret_value_validate.
(otl_ligature_caret_list_validate): Fix call to
otl_ligature_glyph_validate.
(otl_gdef_validate): Fix calls to otl_class_definition_validate,
otl_attach_list_validate, otl_ligature_caret_list_validate, and
otl_class_definition_validate.
* src/otlayout/otltable.h (otl_table_validate, otl_table_init,
otl_table_set_script): Comment out.
* src/otlayout/otlparse.h (OTL_ParserRec):
s/OTL_Alternate/OTL_GSUB_Alternate/.
(OTL_ParseError): Add OTL_Err_Parser_Memory and
OTL_Err_Parser_Internal.
(otl_parser_error): Fix typo.
(otl_parser_check_property): Remove third argument.
* src/otlayout/otlparse.c (otl_string_ensure):
s/OTL_Parse_Err_Memory/OTL_Err_Parser_Memory/.
(OTL_STRING_ENSURE, otl_parser_error, otl_parser_get_index,
otl_parser_replace_1, otl_parser_replace_n): Fix typos.
(OTL_PARSER_UNCOVERED): Removed.
(otl_parser_check_property): Remove third argument.
* src/otlayout/otljstf.c (otl_jstf_priority_validate): Add missing
variable declaration.
* src/otlayout/otlutils.h (OTL_MEM_REALLOC): Fix typo.
2004-08-11 Danny <dannyboynow@yahoo.com> 2004-08-11 Danny <dannyboynow@yahoo.com>
* src/base/ftstream.c (FT_Stream_Close): Don't reset stream->close * src/base/ftstream.c (FT_Stream_Close): Don't reset stream->close

View File

@ -49,7 +49,7 @@
CFF_FIELD_STRING ( 0x116, base_font_name ) CFF_FIELD_STRING ( 0x116, base_font_name )
CFF_FIELD_DELTA ( 0x117, base_font_blend, 16 ) CFF_FIELD_DELTA ( 0x117, base_font_blend, 16 )
CFF_FIELD_CALLBACK( 0x118, multiple_master ) CFF_FIELD_CALLBACK( 0x118, multiple_master )
CFF_FIELD_CALLBACK( 0x119, blend_axit_types ) CFF_FIELD_CALLBACK( 0x119, blend_axis_types )
#endif #endif
CFF_FIELD_CALLBACK( 0x11E, cid_ros ) CFF_FIELD_CALLBACK( 0x11E, cid_ros )

View File

@ -6,6 +6,7 @@
OTL_BEGIN_HEADER OTL_BEGIN_HEADER
/************************************************************************/ /************************************************************************/
/************************************************************************/ /************************************************************************/
/***** *****/ /***** *****/
@ -21,24 +22,26 @@ OTL_BEGIN_HEADER
typedef void* OTL_Pointer; typedef void* OTL_Pointer;
typedef int OTL_Int; typedef unsigned char OTL_Bool;
typedef signed int OTL_Int;
typedef unsigned int OTL_UInt; typedef unsigned int OTL_UInt;
typedef long OTL_Long; typedef signed long OTL_Long;
typedef unsigned long OTL_ULong; typedef unsigned long OTL_ULong;
typedef short OTL_Int16; typedef signed short OTL_Int16;
typedef unsigned short OTL_UInt16; typedef unsigned short OTL_UInt16;
#if OTL_SIZEOF_INT == 4 #if OTL_SIZEOF_INT == 4
typedef int OTL_Int32; typedef signed int OTL_Int32;
typedef unsigned int OTL_UInt32; typedef unsigned int OTL_UInt32;
#elif OTL_SIZEOF_LONG == 4 #elif OTL_SIZEOF_LONG == 4
typedef long OTL_Int32; typedef signed long OTL_Int32;
typedef unsigned long OTL_UInt32; typedef unsigned long OTL_UInt32;
#else #else
@ -47,6 +50,7 @@ OTL_BEGIN_HEADER
typedef OTL_UInt32 OTL_Tag; typedef OTL_UInt32 OTL_Tag;
/************************************************************************/ /************************************************************************/
/************************************************************************/ /************************************************************************/
/***** *****/ /***** *****/
@ -55,16 +59,17 @@ OTL_BEGIN_HEADER
/************************************************************************/ /************************************************************************/
/************************************************************************/ /************************************************************************/
typedef enum enum
{ {
OTL_Err_Ok = 0, OTL_Err_Ok = 0,
OTL_Err_InvalidArgument,
OTL_Err_InvalidFormat, OTL_Err_InvalidFormat,
OTL_Err_InvalidSize,
OTL_Err_InvalidData,
OTL_Err_InvalidOffset, OTL_Err_InvalidOffset,
OTL_Err_Max OTL_Err_Max
} OTL_Error; };
/************************************************************************/ /************************************************************************/
@ -94,6 +99,7 @@ OTL_BEGIN_HEADER
} OTL_MemoryRec, *OTL_Memory; } OTL_MemoryRec, *OTL_Memory;
/************************************************************************/ /************************************************************************/
/************************************************************************/ /************************************************************************/
/***** *****/ /***** *****/
@ -107,9 +113,9 @@ OTL_BEGIN_HEADER
#ifndef OTL_MAKE_TAG #ifndef OTL_MAKE_TAG
#define OTL_MAKE_TAG(c1,c2,c3,c4) \ #define OTL_MAKE_TAG(c1,c2,c3,c4) \
( ( (OTL_UInt32)(c1) << 24 ) | \ ( ( (OTL_UInt32)(c1) << 24 ) | \
(OTL_UInt32)(c2) << 16 ) | \ ( (OTL_UInt32)(c2) << 16 ) | \
(OTL_UInt32)(c3) << 8 ) | \ ( (OTL_UInt32)(c3) << 8 ) | \
(OTL_UInt32)(c4) ) ( (OTL_UInt32)(c4) ) )
#endif #endif
typedef enum OTL_ScriptTag_ typedef enum OTL_ScriptTag_
@ -162,6 +168,7 @@ OTL_BEGIN_HEADER
#define OTL_NEXT_SHORT(p) ((OTL_Int16)OTL_NEXT_USHORT(p)) #define OTL_NEXT_SHORT(p) ((OTL_Int16)OTL_NEXT_USHORT(p))
#define OTL_NEXT_LONG(p) ((OTL_Int32)OTL_NEXT_ULONG(p)) #define OTL_NEXT_LONG(p) ((OTL_Int32)OTL_NEXT_ULONG(p))
/************************************************************************/ /************************************************************************/
/************************************************************************/ /************************************************************************/
/***** *****/ /***** *****/
@ -182,7 +189,7 @@ OTL_BEGIN_HEADER
} OTL_ValidatorRec; } OTL_ValidatorRec;
typedef void (*OTL_ValidateFunc)( OTL_Bytes table, typedef void (*OTL_ValidateFunc)( OTL_Bytes table,
OTL_Valid valid ); OTL_Validator valid );
OTL_API( void ) OTL_API( void )
otl_validator_error( OTL_Validator validator, otl_validator_error( OTL_Validator validator,
@ -190,8 +197,10 @@ OTL_BEGIN_HEADER
#define OTL_INVALID(e) otl_validator_error( valid, e ) #define OTL_INVALID(e) otl_validator_error( valid, e )
#define OTL_INVALID_TOO_SHORT OTL_INVALID( OTL_Err_InvalidOffset ) #define OTL_INVALID_TOO_SHORT OTL_INVALID( OTL_Err_InvalidSize )
#define OTL_INVALID_DATA OTL_INVALID( OTL_Err_InvalidFormat ) #define OTL_INVALID_OFFSET OTL_INVALID( OTL_Err_InvalidOffset )
#define OTL_INVALID_DATA OTL_INVALID( OTL_Err_InvalidData )
#define OTL_INVALID_FORMAT OTL_INVALID( OTL_Err_InvalidFormat )
#define OTL_CHECK(_count) OTL_BEGIN_STMNT \ #define OTL_CHECK(_count) OTL_BEGIN_STMNT \
if ( p + (_count) > valid->limit ) \ if ( p + (_count) > valid->limit ) \
@ -202,4 +211,4 @@ OTL_BEGIN_HEADER
OTL_END_HEADER OTL_END_HEADER
#endif /* __OPENTYPE_LAYOUT_H__ */ #endif /* __OT_LAYOUT_H__ */

View File

@ -24,7 +24,7 @@
case 3: case 3:
OTL_CHECK( 2 ); OTL_CHECK( 2 );
otl_device_table_validate( table + OTL_PEEK_USHORT( p ) ); otl_device_table_validate( table + OTL_PEEK_USHORT( p ), valid );
break; break;
default: default:
@ -106,7 +106,7 @@
OTL_Validator valid ) OTL_Validator valid )
{ {
OTL_Bytes p = table; OTL_Bytes p = table;
OTL_UInt values, default_minmax; OTL_UInt values, default_minmax, count;
OTL_CHECK(6); OTL_CHECK(6);
@ -144,7 +144,7 @@
for ( ; count > 0; count-- ) for ( ; count > 0; count-- )
{ {
p += 4; /* ignore script tag */ p += 4; /* ignore script tag */
otl_base_script_validate( table + OTL_NEXT_USHORT( p ) ); otl_base_script_validate( table + OTL_NEXT_USHORT( p ), valid );
} }
} }
@ -159,9 +159,9 @@
tags = OTL_NEXT_USHORT( p ); tags = OTL_NEXT_USHORT( p );
if ( tags ) if ( tags )
otl_base_tag_list_validate ( table + tags ); otl_base_tag_list_validate( table + tags, valid );
otl_base_script_list_validate( table + OTL_NEXT_USHORT( p ) ); otl_base_script_list_validate( table + OTL_NEXT_USHORT( p ), valid );
} }
@ -176,6 +176,6 @@
if ( OTL_NEXT_ULONG( p ) != 0x10000UL ) if ( OTL_NEXT_ULONG( p ) != 0x10000UL )
OTL_INVALID_DATA; OTL_INVALID_DATA;
otl_axis_table_validate( table + OTL_NEXT_USHORT( p ) ); otl_axis_table_validate( table + OTL_NEXT_USHORT( p ), valid );
otl_axis_table_validate( table + OTL_NEXT_USHORT( p ) ); otl_axis_table_validate( table + OTL_NEXT_USHORT( p ), valid );
} }

View File

@ -4,7 +4,7 @@
/* */ /* */
/* OpenType layout support, common tables (body). */ /* OpenType layout support, common tables (body). */
/* */ /* */
/* Copyright 2002 by */ /* Copyright 2002, 2004 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -286,7 +286,7 @@
case 2: case 2:
{ {
OTL_UInt count = OTL_NEXT_USHORT( p ); OTL_UInt count = OTL_NEXT_USHORT( p );
OTL_UInt min = 0, max = count, mid, gindex; OTL_UInt min = 0, max = count, mid, gindex, start, end;
table += 4; table += 4;
@ -328,7 +328,7 @@
OTL_Validator valid ) OTL_Validator valid )
{ {
OTL_Bytes p = table; OTL_Bytes p = table;
OTL_UInt start, end, count, format, count; OTL_UInt start, end, count, format;
if ( p + 8 > valid->limit ) if ( p + 8 > valid->limit )
@ -374,7 +374,7 @@
{ {
OTL_Bytes p = table; OTL_Bytes p = table;
OTL_Int result = 0; OTL_Int result = 0;
OTL_UInt start, end, format, idx, value; OTL_UInt start, end, format, idx, value, shift;
start = OTL_NEXT_USHORT( p ); start = OTL_NEXT_USHORT( p );
@ -393,7 +393,7 @@
p += idx / 16; p += idx / 16;
value = OTL_PEEK_USHORT( p ); value = OTL_PEEK_USHORT( p );
shift = idx & 15; shift = idx & 15;
result = (OTL_Short)( value << shift ) >> ( 14 - shift ); result = (OTL_Int16)( value << shift ) >> ( 14 - shift );
break; break;
@ -402,7 +402,7 @@
p += idx / 16; p += idx / 16;
value = OTL_PEEK_USHORT( p ); value = OTL_PEEK_USHORT( p );
shift = idx & 15; shift = idx & 15;
result = (OTL_Short)( value << shift ) >> ( 12 - shift ); result = (OTL_Int16)( value << shift ) >> ( 12 - shift );
break; break;
@ -411,7 +411,7 @@
p += idx / 16; p += idx / 16;
value = OTL_PEEK_USHORT( p ); value = OTL_PEEK_USHORT( p );
shift = idx & 15; shift = idx & 15;
result = (OTL_Short)( value << shift ) >> ( 8 - shift ); result = (OTL_Int16)( value << shift ) >> ( 8 - shift );
break; break;
@ -451,7 +451,7 @@
for ( ; num_tables > 0; num_tables-- ) for ( ; num_tables > 0; num_tables-- )
{ {
offset = OTL_NEXT_USHORT( p ); OTL_UInt offset = OTL_NEXT_USHORT( p );
if ( table + offset >= valid->limit ) if ( table + offset >= valid->limit )
OTL_INVALID_OFFSET; OTL_INVALID_OFFSET;
@ -475,7 +475,7 @@
otl_lookup_get_table( OTL_Bytes table, otl_lookup_get_table( OTL_Bytes table,
OTL_UInt idx ) OTL_UInt idx )
{ {
OTL_Bytes p, result = NULL; OTL_Bytes p, result = 0;
OTL_UInt count; OTL_UInt count;
@ -499,6 +499,7 @@
/*************************************************************************/ /*************************************************************************/
/*************************************************************************/ /*************************************************************************/
#if 0
OTL_LOCALDEF( void ) OTL_LOCALDEF( void )
otl_lookup_list_validate( OTL_Bytes table, otl_lookup_list_validate( OTL_Bytes table,
OTL_Validator valid ) OTL_Validator valid )
@ -522,6 +523,7 @@
otl_lookup_validate( table + offset, valid ); otl_lookup_validate( table + offset, valid );
} }
} }
#endif
OTL_LOCALDEF( OTL_UInt ) OTL_LOCALDEF( OTL_UInt )
@ -559,7 +561,7 @@
OTL_UInt lookup_index, OTL_UInt lookup_index,
OTL_UInt table_index ) OTL_UInt table_index )
{ {
OTL_Bytes result = NULL; OTL_Bytes result = 0;
result = otl_lookup_list_get_lookup( table, lookup_index ); result = otl_lookup_list_get_lookup( table, lookup_index );
@ -570,6 +572,7 @@
} }
#if 0
OTL_LOCALDEF( void ) OTL_LOCALDEF( void )
otl_lookup_list_foreach( OTL_Bytes table, otl_lookup_list_foreach( OTL_Bytes table,
OTL_ForeachFunc func, OTL_ForeachFunc func,
@ -582,6 +585,7 @@
for ( ; count > 0; count-- ) for ( ; count > 0; count-- )
func( table + OTL_NEXT_USHORT( p ), func_data ); func( table + OTL_NEXT_USHORT( p ), func_data );
} }
#endif
/*************************************************************************/ /*************************************************************************/
@ -678,7 +682,7 @@
p += 4; /* skip tag */ p += 4; /* skip tag */
offset = OTL_NEXT_USHORT( p ); offset = OTL_NEXT_USHORT( p );
otl_feature_table_validate( table + offset, valid ); otl_feature_validate( table + offset, valid );
} }
} }
@ -697,7 +701,7 @@
otl_feature_list_get_feature( OTL_Bytes table, otl_feature_list_get_feature( OTL_Bytes table,
OTL_UInt idx ) OTL_UInt idx )
{ {
OTL_Bytes p, result = NULL; OTL_Bytes p, result = 0;
OTL_UInt count; OTL_UInt count;
@ -714,6 +718,7 @@
} }
#if 0
OTL_LOCALDEF( void ) OTL_LOCALDEF( void )
otl_feature_list_foreach( OTL_Bytes table, otl_feature_list_foreach( OTL_Bytes table,
OTL_ForeachFunc func, OTL_ForeachFunc func,
@ -729,6 +734,7 @@
for ( ; count > 0; count-- ) for ( ; count > 0; count-- )
func( table + OTL_NEXT_USHORT( p ), func_data ); func( table + OTL_NEXT_USHORT( p ), func_data );
} }
#endif
/*************************************************************************/ /*************************************************************************/
@ -824,7 +830,7 @@
otl_script_validate( OTL_Bytes table, otl_script_validate( OTL_Bytes table,
OTL_Validator valid ) OTL_Validator valid )
{ {
OTL_UInt default_lang; OTL_UInt default_lang, num_langs;
OTL_Bytes p = table; OTL_Bytes p = table;
@ -880,7 +886,7 @@
p += 4; /* skip tag */ p += 4; /* skip tag */
offset = OTL_NEXT_USHORT( p ); offset = OTL_NEXT_USHORT( p );
otl_script_table_validate( list + offset, valid ); otl_script_validate( list + offset, valid );
} }
} }

View File

@ -126,10 +126,12 @@ OTL_BEGIN_HEADER
/*************************************************************************/ /*************************************************************************/
/*************************************************************************/ /*************************************************************************/
#if 0
/* validate lookup list */ /* validate lookup list */
OTL_LOCALDEF( void ) OTL_LOCALDEF( void )
otl_lookup_list_validate( OTL_Bytes table, otl_lookup_list_validate( OTL_Bytes table,
OTL_Validator valid ); OTL_Validator valid );
#endif
/* return number of lookups in list */ /* return number of lookups in list */
OTL_LOCALDEF( OTL_UInt ) OTL_LOCALDEF( OTL_UInt )
@ -146,11 +148,13 @@ OTL_BEGIN_HEADER
OTL_UInt lookup_index, OTL_UInt lookup_index,
OTL_UInt table_index ); OTL_UInt table_index );
#if 0
/* iterate over lookup list */ /* iterate over lookup list */
OTL_LOCALDEF( void ) OTL_LOCALDEF( void )
otl_lookup_list_foreach( OTL_Bytes table, otl_lookup_list_foreach( OTL_Bytes table,
OTL_ForeachFunc func, OTL_ForeachFunc func,
OTL_Pointer func_data ); OTL_Pointer func_data );
#endif
/*************************************************************************/ /*************************************************************************/
@ -202,11 +206,13 @@ OTL_BEGIN_HEADER
otl_feature_list_get_feature( OTL_Bytes table, otl_feature_list_get_feature( OTL_Bytes table,
OTL_UInt idx ); OTL_UInt idx );
#if 0
/* iterate over all features in a list */ /* iterate over all features in a list */
OTL_LOCALDEF( void ) OTL_LOCALDEF( void )
otl_feature_list_foreach( OTL_Bytes table, otl_feature_list_foreach( OTL_Bytes table,
OTL_ForeachFunc func, OTL_ForeachFunc func,
OTL_Pointer func_data ); OTL_Pointer func_data );
#endif
/*************************************************************************/ /*************************************************************************/

View File

@ -47,7 +47,7 @@
OTL_INVALID_TOO_SHORT; OTL_INVALID_TOO_SHORT;
for ( ; count > 0; count-- ) for ( ; count > 0; count-- )
otl_attach_point_validate( table + OTL_NEXT_USHORT( p ) ); otl_attach_point_validate( table + OTL_NEXT_USHORT( p ), valid );
} }
@ -64,6 +64,7 @@
OTL_Validator valid ) OTL_Validator valid )
{ {
OTL_Bytes p = table; OTL_Bytes p = table;
OTL_Int format;
if ( p + 4 > valid->limit ) if ( p + 4 > valid->limit )
OTL_INVALID_TOO_SHORT; OTL_INVALID_TOO_SHORT;
@ -83,7 +84,7 @@
if ( p + 2 > valid->limit ) if ( p + 2 > valid->limit )
OTL_INVALID_TOO_SHORT; OTL_INVALID_TOO_SHORT;
otl_device_table_validate( table + OTL_PEEK_USHORT( p ) ); otl_device_table_validate( table + OTL_PEEK_USHORT( p ), valid );
} }
break; break;
@ -109,7 +110,7 @@
OTL_INVALID_TOO_SHORT; OTL_INVALID_TOO_SHORT;
for ( ; count > 0; count-- ) for ( ; count > 0; count-- )
otl_caret_value_validate( table + OTL_NEXT_USHORT( p ) ); otl_caret_value_validate( table + OTL_NEXT_USHORT( p ), valid );
} }
@ -135,7 +136,7 @@
OTL_INVALID_TOO_SHORT; OTL_INVALID_TOO_SHORT;
for ( ; count > 0; count-- ) for ( ; count > 0; count-- )
otl_ligature_glyph_validate( table + OTL_NEXT_USHORT( p ) ); otl_ligature_glyph_validate( table + OTL_NEXT_USHORT( p ), valid );
} }
@ -161,15 +162,14 @@
OTL_INVALID_FORMAT; OTL_INVALID_FORMAT;
/* validate class definition table */ /* validate class definition table */
otl_class_definition_validate( table + OTL_NEXT_USHORT( p ) ); otl_class_definition_validate( table + OTL_NEXT_USHORT( p ), valid );
/* validate attachment point list */ /* validate attachment point list */
otl_attach_list_validate( table + OTL_NEXT_USHORT( p ) ); otl_attach_list_validate( table + OTL_NEXT_USHORT( p ), valid );
/* validate ligature caret list */ /* validate ligature caret list */
otl_ligature_caret_list_validate( table + OTL_NEXT_USHORT( p ) ); otl_ligature_caret_list_validate( table + OTL_NEXT_USHORT( p ), valid );
/* validate mark attach class */ /* validate mark attach class */
otl_class_definition_validate( table + OTL_NEXT_USHORT( p ) ); otl_class_definition_validate( table + OTL_NEXT_USHORT( p ), valid );
} }

View File

@ -7,7 +7,7 @@ OTL_BEGIN_HEADER
OTL_API( void ) OTL_API( void )
otl_gdef_validate( OTL_Bytes table, otl_gdef_validate( OTL_Bytes table,
OTL_Valid valid ); OTL_Validator valid );
OTL_END_HEADER OTL_END_HEADER

View File

@ -16,7 +16,7 @@
static OTL_UInt static OTL_UInt
otl_value_length( OTL_UInt format ) otl_value_length( OTL_UInt format )
{ {
FT_UInt count; OTL_UInt count;
count = (( format & 0xAA ) >> 1) + ( format & 0x55 ); count = (( format & 0xAA ) >> 1) + ( format & 0x55 );
count = (( count & 0xCC ) >> 2) + ( count & 0x33 ); count = (( count & 0xCC ) >> 2) + ( count & 0x33 );
@ -161,7 +161,7 @@
{ {
case 1: case 1:
{ {
FT_UInt coverage, value_format; OTL_UInt coverage, value_format;
OTL_CHECK( 4 ); OTL_CHECK( 4 );
coverage = OTL_NEXT_USHORT( p ); coverage = OTL_NEXT_USHORT( p );
@ -174,7 +174,7 @@
case 2: case 2:
{ {
FT_UInt coverage, value_format, count, len; OTL_UInt coverage, value_format, count, len;
OTL_CHECK( 6 ); OTL_CHECK( 6 );
coverage = OTL_NEXT_USHORT( p ); coverage = OTL_NEXT_USHORT( p );
@ -207,7 +207,8 @@
/************************************************************************/ /************************************************************************/
/************************************************************************/ /************************************************************************/
static otl_gpos_pairset_validate( OTL_Bytes table, static void
otl_gpos_pairset_validate( OTL_Bytes table,
OTL_Bytes pos_table, OTL_Bytes pos_table,
OTL_UInt format1, OTL_UInt format1,
OTL_UInt format2, OTL_UInt format2,
@ -315,7 +316,7 @@
static void static void
otl_gpos_lookup3_validate( OTL_Bytes table, otl_gpos_lookup3_validate( OTL_Bytes table,
OTL_Valid valid ) OTL_Validator valid )
{ {
OTL_Bytes p = table; OTL_Bytes p = table;
OTL_UInt format; OTL_UInt format;
@ -377,13 +378,13 @@
OTL_CHECK( count*class_count*2 ); OTL_CHECK( count*class_count*2 );
for ( ; count > 0; count-- ) for ( ; count > 0; count-- )
for ( count2 = class_count; count2 > 0; count2-- ) for ( count2 = class_count; count2 > 0; count2-- )
otl_anchor_validate( table + OTL_NEXT_USHORT( p ) ); otl_anchor_validate( table + OTL_NEXT_USHORT( p ), valid );
} }
static void static void
otl_gpos_lookup4_validate( OTL_Bytes table, otl_gpos_lookup4_validate( OTL_Bytes table,
OTL_Valid valid ) OTL_Validator valid )
{ {
OTL_Bytes p = table; OTL_Bytes p = table;
OTL_UInt format; OTL_UInt format;
@ -456,13 +457,14 @@
OTL_CHECK( count*2 ); OTL_CHECK( count*2 );
for ( ; count > 0; count-- ) for ( ; count > 0; count-- )
otl_liga_attach_validate( table + OTL_NEXT_USHORT( p ), valid ); otl_liga_attach_validate( table + OTL_NEXT_USHORT( p ),
class_count, valid );
} }
static void static void
otl_gpos_lookup5_validate( OTL_Bytes table, otl_gpos_lookup5_validate( OTL_Bytes table,
OTL_Valid valid ) OTL_Validator valid )
{ {
OTL_Bytes p = table; OTL_Bytes p = table;
OTL_UInt format; OTL_UInt format;
@ -473,8 +475,8 @@
{ {
case 1: case 1:
{ {
OTL_UInt mark_coverage, lig_coverage, class_count; OTL_UInt mark_coverage, liga_coverage, class_count;
OTL_UInt mar_array, lig_array; OTL_UInt mark_array, liga_array;
OTL_CHECK( 10 ); OTL_CHECK( 10 );
mark_coverage = OTL_NEXT_USHORT( p ); mark_coverage = OTL_NEXT_USHORT( p );
@ -525,7 +527,7 @@
static void static void
otl_gpos_lookup6_validate( OTL_Bytes table, otl_gpos_lookup6_validate( OTL_Bytes table,
OTL_Valid valid ) OTL_Validator valid )
{ {
OTL_Bytes p = table; OTL_Bytes p = table;
OTL_UInt format; OTL_UInt format;
@ -549,7 +551,7 @@
otl_coverage_validate( table + coverage2, valid ); otl_coverage_validate( table + coverage2, valid );
otl_mark_array_validate( table + array1, valid ); otl_mark_array_validate( table + array1, valid );
otl_mark2_array_validate( table + array2, valid ); otl_mark2_array_validate( table + array2, class_count, valid );
} }
break; break;
@ -680,8 +682,10 @@
otl_class_definition_validate( table + class_def, valid ); otl_class_definition_validate( table + class_def, valid );
OTL_CHECK( count*2 ); OTL_CHECK( count*2 );
#if 0 /* XXX */
for ( ; count > 0; count-- ) for ( ; count > 0; count-- )
otl_ otl_
#endif
} }
break; break;
@ -694,7 +698,7 @@
pos_count = OTL_NEXT_USHORT( p ); pos_count = OTL_NEXT_USHORT( p );
OTL_CHECK( glyph_count*2 + pos_count*4 ); OTL_CHECK( glyph_count*2 + pos_count*4 );
for ( ; glyph_count > 0; glyph_count ) for ( ; glyph_count > 0; glyph_count-- )
otl_coverage_validate( table + OTL_NEXT_USHORT( p ), valid ); otl_coverage_validate( table + OTL_NEXT_USHORT( p ), valid );
/* XXX: check pos lookups */ /* XXX: check pos lookups */
@ -901,7 +905,7 @@
static void static void
otl_gpos_lookup9_validate( OTL_Bytes table, otl_gpos_lookup9_validate( OTL_Bytes table,
OTL_Valid valid ) OTL_Validator valid )
{ {
OTL_Bytes p = table; OTL_Bytes p = table;
OTL_UInt format; OTL_UInt format;
@ -977,4 +981,3 @@
otl_lookup_list_validate( table + lookups, 9, otl_gpos_validate_funcs, otl_lookup_list_validate( table + lookups, 9, otl_gpos_validate_funcs,
valid ); valid );
} }

View File

@ -1,5 +1,10 @@
#include "otlgsub.h" #include "otlgsub.h"
#include "otlcommn.h" #include "otlcommn.h"
#include "otlparse.h"
/* forward declaration */
static OTL_ValidateFunc otl_gsub_validate_funcs[];
/************************************************************************/ /************************************************************************/
/************************************************************************/ /************************************************************************/
@ -92,12 +97,13 @@
gindex = otl_parser_get_gindex( parser ); gindex = otl_parser_get_gindex( parser );
if ( !otl_parser_check_property( parser, gindex, &property ) ) otl_parser_check_property( parser, gindex, &property );
if ( parser->error )
goto Exit; goto Exit;
format = OTL_NEXT_USHORT(p); format = OTL_NEXT_USHORT(p);
coverage = table + OTL_NEXT_USHORT(p); coverage = table + OTL_NEXT_USHORT(p);
index = otl_coverage_lookup( coverage, gindex ); index = otl_coverage_get_index( coverage, gindex );
if ( index >= 0 ) if ( index >= 0 )
{ {
@ -219,22 +225,22 @@
{ {
OTL_Bytes p = table; OTL_Bytes p = table;
OTL_Bytes coverage, sequence; OTL_Bytes coverage, sequence;
OTL_UInt format, gindex, index, property; OTL_UInt format, gindex, index, property, context_len, seq_count, count;
OTL_Int index;
OTL_Bool subst = 0; OTL_Bool subst = 0;
if ( context_len != 0xFFFFU && context_len < 1 ) if ( parser->context_len != 0xFFFFU && parser->context_len < 1 )
goto Exit; goto Exit;
gindex = otl_parser_get_gindex( parser ); gindex = otl_parser_get_gindex( parser );
if ( !otl_parser_check_property( parser, gindex, &property ) ) otl_parser_check_property( parser, gindex, &property );
if ( parser->error )
goto Exit; goto Exit;
p += 2; /* skip format */ p += 2; /* skip format */
coverage = table + OTL_NEXT_USHORT(p); coverage = table + OTL_NEXT_USHORT(p);
seq_count = OTL_NEXT_USHORT(p); seq_count = OTL_NEXT_USHORT(p);
index = otl_coverage_lookup( coverage, gindex ); index = otl_coverage_get_index( coverage, gindex );
if ( (OTL_UInt) index >= seq_count ) if ( (OTL_UInt) index >= seq_count )
goto Exit; goto Exit;
@ -335,27 +341,27 @@
{ {
OTL_Bytes p = table; OTL_Bytes p = table;
OTL_Bytes coverage, alternates; OTL_Bytes coverage, alternates;
OTL_UInt format, gindex, index, property; OTL_UInt format, gindex, index, property, seq_count, count;
OTL_Int index;
OTL_Bool subst = 0; OTL_Bool subst = 0;
OTL_GSUB_Alternate alternate = parser->alternate; OTL_GSUB_Alternate alternate = parser->alternate;
if ( context_len != 0xFFFFU && context_len < 1 ) if ( parser->context_len != 0xFFFFU && parser->context_len < 1 )
goto Exit; goto Exit;
if ( alternate == NULL ) if ( alternate == 0 )
goto Exit; goto Exit;
gindex = otl_parser_get_gindex( parser ); gindex = otl_parser_get_gindex( parser );
if ( !otl_parser_check_property( parser, gindex, &property ) ) otl_parser_check_property( parser, gindex, &property );
if ( parser->error )
goto Exit; goto Exit;
p += 2; /* skip format */ p += 2; /* skip format */
coverage = table + OTL_NEXT_USHORT(p); coverage = table + OTL_NEXT_USHORT(p);
seq_count = OTL_NEXT_USHORT(p); seq_count = OTL_NEXT_USHORT(p);
index = otl_coverage_lookup( coverage, gindex ); index = otl_coverage_get_index( coverage, gindex );
if ( (OTL_UInt) index >= seq_count ) if ( (OTL_UInt) index >= seq_count )
goto Exit; goto Exit;
@ -387,6 +393,7 @@
otl_ligature_validate( OTL_Bytes table, otl_ligature_validate( OTL_Bytes table,
OTL_Validator valid ) OTL_Validator valid )
{ {
OTL_Bytes p = table;
OTL_UInt glyph_id, count; OTL_UInt glyph_id, count;
OTL_CHECK( 4 ); OTL_CHECK( 4 );
@ -473,7 +480,7 @@
if ( glyph_count == 0 ) if ( glyph_count == 0 )
OTL_INVALID_DATA; OTL_INVALID_DATA;
OTL_CHECK( (glyph_count-1)*2 + substcount*4 ); OTL_CHECK( (glyph_count-1)*2 + subst_count*4 );
/* XXX: check glyph indices and subst lookups */ /* XXX: check glyph indices and subst lookups */
} }
@ -499,6 +506,7 @@
otl_sub_class_rule_validate( OTL_Bytes table, otl_sub_class_rule_validate( OTL_Bytes table,
OTL_Validator valid ) OTL_Validator valid )
{ {
OTL_Bytes p = table;
OTL_UInt glyph_count, subst_count; OTL_UInt glyph_count, subst_count;
OTL_CHECK( 4 ); OTL_CHECK( 4 );
@ -508,7 +516,7 @@
if ( glyph_count == 0 ) if ( glyph_count == 0 )
OTL_INVALID_DATA; OTL_INVALID_DATA;
OTL_CHECK( (glyph_count-1)*2 + substcount*4 ); OTL_CHECK( (glyph_count-1)*2 + subst_count*4 );
/* XXX: check glyph indices and subst lookups */ /* XXX: check glyph indices and subst lookups */
} }
@ -571,7 +579,7 @@
OTL_CHECK( 2*count ); OTL_CHECK( 2*count );
for ( ; count > 0; count-- ) for ( ; count > 0; count-- )
otl_sub_class_rule_set_validate( table + coveragen valid ); otl_sub_class_rule_set_validate( table + coverage, valid );
} }
break; break;
@ -745,7 +753,8 @@
OTL_CHECK( 2*count ); OTL_CHECK( 2*count );
for ( ; count > 0; count-- ) for ( ; count > 0; count-- )
otl_chain_sub_class_set( table + OTL_NEXT_USHORT( p ), valid ); otl_chain_sub_class_set_validate( table + OTL_NEXT_USHORT( p ),
valid );
} }
break; break;
@ -782,10 +791,11 @@
} }
} }
/************************************************************************/ /************************************************************************/
/************************************************************************/ /************************************************************************/
/***** *****/ /***** *****/
/***** GSUB LOOKUP TYPE 6 *****/ /***** GSUB LOOKUP TYPE 7 *****/
/***** *****/ /***** *****/
/************************************************************************/ /************************************************************************/
/************************************************************************/ /************************************************************************/
@ -824,7 +834,7 @@
} }
static const OTL_ValidateFunc otl_gsub_validate_funcs[ 7 ] = static OTL_ValidateFunc otl_gsub_validate_funcs[ 7 ] =
{ {
otl_gsub_lookup1_validate, otl_gsub_lookup1_validate,
otl_gsub_lookup2_validate, otl_gsub_lookup2_validate,
@ -834,6 +844,7 @@
otl_gsub_lookup6_validate otl_gsub_lookup6_validate
}; };
/************************************************************************/ /************************************************************************/
/************************************************************************/ /************************************************************************/
/***** *****/ /***** *****/

View File

@ -69,7 +69,7 @@
OTL_Validator valid ) OTL_Validator valid )
{ {
OTL_Bytes p = table; OTL_Bytes p = table;
OTL_UInt offset; OTL_UInt offset, val;
OTL_CHECK( 20 ); OTL_CHECK( 20 );
@ -186,4 +186,3 @@
otl_jstf_script_validate( table + OTL_NEXT_USHORT( p ), valid ); otl_jstf_script_validate( table + OTL_NEXT_USHORT( p ), valid );
} }
} }

View File

@ -1,6 +1,7 @@
#include "otlparse.h" #include "otlparse.h"
#include "otlutils.h" #include "otlutils.h"
static void static void
otl_string_ensure( OTL_String string, otl_string_ensure( OTL_String string,
OTL_UInt count, OTL_UInt count,
@ -18,7 +19,7 @@
new_count += (new_count >> 1) + 16; new_count += (new_count >> 1) + 16;
if ( OTL_MEM_RENEW_ARRAY( string->glyphs, old_count, new_count ) ) if ( OTL_MEM_RENEW_ARRAY( string->glyphs, old_count, new_count ) )
otl_parser_error( parser, OTL_Parse_Err_Memory ); otl_parser_error( parser, OTL_Err_Parser_Memory );
string->capacity = new_count; string->capacity = new_count;
} }
@ -26,7 +27,7 @@
#define OTL_STRING_ENSURE(str,count,parser) \ #define OTL_STRING_ENSURE(str,count,parser) \
OTL_BEGIN_STMNT \ OTL_BEGIN_STMNT \
if ( (str)->length + (count) > (str)>capacity ) \ if ( (str)->length + (count) > (str)->capacity ) \
otl_string_ensure( str, count, parser ); \ otl_string_ensure( str, count, parser ); \
OTL_END_STMNT OTL_END_STMNT
@ -36,27 +37,24 @@
{ {
OTL_String in = parser->str_in; OTL_String in = parser->str_in;
if ( in->cursor >= in->num_glyphs ) if ( in->cursor >= in->length )
otl_parser_error( parser, OTL_Err_Parser_Internal ); otl_parser_error( parser, OTL_Err_Parser_Internal );
return in->str[ in->cursor ].gindex; return in->glyphs[ in->cursor ].gindex;
} }
OTL_LOCALDEF( void ) OTL_LOCALDEF( void )
otl_parser_error( OTL_Parser parser, otl_parser_error( OTL_Parser parser,
OTL_ParseError error; ) OTL_ParseError error )
{ {
parser->error = error; parser->error = error;
otl_longjmp( parser->jump_buffer, 1 ); otl_longjmp( parser->jump_buffer, 1 );
} }
#define OTL_PARSER_UNCOVERED(x) otl_parser_error( x, OTL_Parse_Err_UncoveredGlyph );
OTL_LOCAL( void ) OTL_LOCAL( void )
otl_parser_check_property( OTL_Parser parser, otl_parser_check_property( OTL_Parser parser,
OTL_UInt gindex, OTL_UInt gindex,
OTL_UInt flags,
OTL_UInt *aproperty ); OTL_UInt *aproperty );
OTL_LOCALDEF( void ) OTL_LOCALDEF( void )
@ -68,14 +66,14 @@
OTL_StringGlyph glyph, in_glyph; OTL_StringGlyph glyph, in_glyph;
/* sanity check */ /* sanity check */
if ( in == NULL || if ( in == 0 ||
out == NULL || out == 0 ||
in->length == 0 || in->length == 0 ||
in->cursor >= in->length ) in->cursor >= in->length )
{ {
/* report as internal error, since these should */ /* report as internal error, since these should */
/* never happen !! */ /* never happen !! */
otl_parser_error( parser, OTL_Err_Parse_Internal ); otl_parser_error( parser, OTL_Err_Parser_Internal );
} }
OTL_STRING_ENSURE( out, 1, parser ); OTL_STRING_ENSURE( out, 1, parser );
@ -83,7 +81,7 @@
in_glyph = in->glyphs + in->cursor; in_glyph = in->glyphs + in->cursor;
glyph->gindex = gindex; glyph->gindex = gindex;
glyph->property = in_glyph->property; glyph->properties = in_glyph->properties;
glyph->lig_component = in_glyph->lig_component; glyph->lig_component = in_glyph->lig_component;
glyph->lig_id = in_glyph->lig_id; glyph->lig_id = in_glyph->lig_id;
@ -97,37 +95,37 @@
OTL_UInt count, OTL_UInt count,
OTL_Bytes indices ) OTL_Bytes indices )
{ {
OTL_UInt lig_component, lig_id, property; OTL_UInt lig_component, lig_id, properties;
OTL_String in = parser->str_in; OTL_String in = parser->str_in;
OTL_String out = parser->str_out; OTL_String out = parser->str_out;
OTL_StringGlyph glyph, in_glyph; OTL_StringGlyph glyph, in_glyph;
OTL_Bytes p = indices; OTL_Bytes p = indices;
/* sanity check */ /* sanity check */
if ( in == NULL || if ( in == 0 ||
out == NULL || out == 0 ||
in->length == 0 || in->length == 0 ||
in->cursor >= in->length ) in->cursor >= in->length )
{ {
/* report as internal error, since these should */ /* report as internal error, since these should */
/* never happen !! */ /* never happen !! */
otl_parser_error( parser, OTL_Err_Parse_Internal ); otl_parser_error( parser, OTL_Err_Parser_Internal );
} }
OTL_STRING_ENSURE( out, count, parser ); OTL_STRING_ENSURE( out, count, parser );
glyph = out->glyphs + out->length; glyph = out->glyphs + out->length;
in_glyph = in->glyphs + in->cursor; in_glyph = in->glyphs + in->cursor;
glyph->gindex = gindex; glyph->gindex = in_glyph->gindex;
lig_component = in_glyph->lig_component; lig_component = in_glyph->lig_component;
lig_id = in_glyph->lid_id; lig_id = in_glyph->lig_id;
property = in_glyph->property; properties = in_glyph->properties;
for ( ; count > 0; count-- ) for ( ; count > 0; count-- )
{ {
glyph->gindex = OTL_NEXT_USHORT(p); glyph->gindex = OTL_NEXT_USHORT(p);
glyph->property = property; glyph->properties = properties;
glyph->lig_component = lig_component; glyph->lig_component = lig_component;
glyph->lig_id = lig_id; glyph->lig_id = lig_id;
@ -137,6 +135,3 @@
out->cursor = out->length; out->cursor = out->length;
in->cursor += 1; in->cursor += 1;
} }

View File

@ -38,7 +38,7 @@ OTL_BEGIN_HEADER
OTL_Bytes tab_base; OTL_Bytes tab_base;
OTL_Bytes tab_jstf; OTL_Bytes tab_jstf;
OTL_Alternate alternate; /* external alternate handler */ OTL_GSUB_Alternate alternate; /* external alternate handler */
OTL_UInt context_len; OTL_UInt context_len;
OTL_UInt markup_flags; OTL_UInt markup_flags;
@ -57,7 +57,9 @@ OTL_BEGIN_HEADER
{ {
OTL_Err_Parser_Ok = 0, OTL_Err_Parser_Ok = 0,
OTL_Err_Parser_InvalidData, OTL_Err_Parser_InvalidData,
OTL_Err_Parser_UncoveredGlyph OTL_Err_Parser_UncoveredGlyph,
OTL_Err_Parser_Memory,
OTL_Err_Parser_Internal,
} OTL_ParseError; } OTL_ParseError;
@ -66,7 +68,8 @@ OTL_BEGIN_HEADER
OTL_LOCAL( void ) OTL_LOCAL( void )
otl_parser_error( OTL_Parser parser, OTL_ParserError error ); otl_parser_error( OTL_Parser parser,
OTL_ParseError error );
#define OTL_PARSER_UNCOVERED(x) \ #define OTL_PARSER_UNCOVERED(x) \
otl_parser_error( x, OTL_Err_Parser_UncoveredGlyph ) otl_parser_error( x, OTL_Err_Parser_UncoveredGlyph )
@ -74,7 +77,6 @@ OTL_BEGIN_HEADER
OTL_LOCAL( void ) OTL_LOCAL( void )
otl_parser_check_property( OTL_Parser parser, otl_parser_check_property( OTL_Parser parser,
OTL_UInt gindex, OTL_UInt gindex,
OTL_UInt flags,
OTL_UInt *aproperty ); OTL_UInt *aproperty );
/* copy current input glyph to output */ /* copy current input glyph to output */
@ -96,4 +98,3 @@ OTL_BEGIN_HEADER
OTL_END_HEADER OTL_END_HEADER
#endif /* __OTL_PARSER_H__ */ #endif /* __OTL_PARSER_H__ */

View File

@ -38,6 +38,7 @@ OTL_BEGIN_HEADER
} OTL_TableRec; } OTL_TableRec;
#if 0
OTL_API( OTL_Error ) OTL_API( OTL_Error )
otl_table_validate( OTL_Bytes table, otl_table_validate( OTL_Bytes table,
OTL_Size size, OTL_Size size,
@ -54,6 +55,7 @@ OTL_BEGIN_HEADER
otl_table_set_script( OTL_Table table, otl_table_set_script( OTL_Table table,
OTL_ScriptTag script, OTL_ScriptTag script,
OTL_LangTag language ); OTL_LangTag language );
#endif
OTL_END_HEADER OTL_END_HEADER

View File

@ -85,4 +85,3 @@ OTL_SCRIPT_TAG( 'y','i',' ',' ', "Yi", YI )
#endif #endif
#undef OTL_FEATURE_TAG #undef OTL_FEATURE_TAG

View File

@ -22,7 +22,7 @@ OTL_BEGIN_HEADER
#define OTL_MEM_ALLOC(p,s) otl_mem_alloc( (void**)&(p), (s), memory ) #define OTL_MEM_ALLOC(p,s) otl_mem_alloc( (void**)&(p), (s), memory )
#define OTL_MEM_FREE(p) otl_mem_free( (void**)&(p), memory ) #define OTL_MEM_FREE(p) otl_mem_free( (void**)&(p), memory )
#define OTL_MEM_REALLOC(p,c,n) otl_mem_realloc( (void**)&(p), (c), (s), memory ) #define OTL_MEM_REALLOC(p,c,s) otl_mem_realloc( (void**)&(p), (c), (s), memory )
#define OTL_MEM_NEW(p) OTL_MEM_ALLOC(p,sizeof(*(p))) #define OTL_MEM_NEW(p) OTL_MEM_ALLOC(p,sizeof(*(p)))
#define OTL_MEM_NEW_ARRAY(p,c) OTL_MEM_ALLOC(p,(c)*sizeof(*(p))) #define OTL_MEM_NEW_ARRAY(p,c) OTL_MEM_ALLOC(p,(c)*sizeof(*(p)))