* include/freetype/internal/ftobjs.h: Don't include
FT_CONFIG_STANDARD_LIBRARY_H. (FT_Validator, FT_VAlidationLevel, FT_ValidatorRec, FT_VALIDATOR, ft_validator_init, ft_validator_run, ft_validator_error, FT_INVALID, FT_INVALID_TOO_SHORT, FT_INVALID_OFFSET, FT_INVALID_FORMAT, FT_INVALID_GLYPH_ID, FT_INVALID_DATA): Move to... * include/freetype/internal/ftvalid.h: New file. Make FT_INVALID return module-specific error codes. * include/freetype/internal/internal.h (FT_INTERNAL_VALIDATE_H): New macro. * include/freetype/fterrors.h: Undefine FT_ERR_PREFIX only if FT_KEEP_ERR_PREFIX isn't defined. * src/base/ftobjs.c: Include FT_INTERNAL_VALIDATE_H. * src/sfnt/ttcmap.h: Don't include FT_INTERNAL_OBJECTS_H but FT_INTERNAL_VALIDATE_H. * src/sfnt/ttcmap.c: Don't include FT_INTERNAL_OBJECTS_H but FT_INTERNAL_VALIDATE_H. Include sferrors.h before FT_INTERNAL_VALIDATE_H. s/FT_Err_Ok/SFNT_Err_Ok/. * src/sfnt/sferrors.h: Define FT_KEEP_ERR_PREFIX. * src/type1/t1afm.c: Include t1errors.h.
This commit is contained in:
parent
1357c19b65
commit
645af08157
32
ChangeLog
32
ChangeLog
@ -1,3 +1,35 @@
|
||||
2004-09-04 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
* include/freetype/internal/ftobjs.h: Don't include
|
||||
FT_CONFIG_STANDARD_LIBRARY_H.
|
||||
(FT_Validator, FT_VAlidationLevel, FT_ValidatorRec, FT_VALIDATOR,
|
||||
ft_validator_init, ft_validator_run, ft_validator_error, FT_INVALID,
|
||||
FT_INVALID_TOO_SHORT, FT_INVALID_OFFSET, FT_INVALID_FORMAT,
|
||||
FT_INVALID_GLYPH_ID, FT_INVALID_DATA): Move to...
|
||||
|
||||
* include/freetype/internal/ftvalid.h: New file.
|
||||
Make FT_INVALID return module-specific error codes.
|
||||
|
||||
* include/freetype/internal/internal.h (FT_INTERNAL_VALIDATE_H): New
|
||||
macro.
|
||||
|
||||
* include/freetype/fterrors.h: Undefine FT_ERR_PREFIX only if
|
||||
FT_KEEP_ERR_PREFIX isn't defined.
|
||||
|
||||
* src/base/ftobjs.c: Include FT_INTERNAL_VALIDATE_H.
|
||||
|
||||
* src/sfnt/ttcmap.h: Don't include FT_INTERNAL_OBJECTS_H but
|
||||
FT_INTERNAL_VALIDATE_H.
|
||||
|
||||
* src/sfnt/ttcmap.c: Don't include FT_INTERNAL_OBJECTS_H but
|
||||
FT_INTERNAL_VALIDATE_H.
|
||||
Include sferrors.h before FT_INTERNAL_VALIDATE_H.
|
||||
s/FT_Err_Ok/SFNT_Err_Ok/.
|
||||
|
||||
* src/sfnt/sferrors.h: Define FT_KEEP_ERR_PREFIX.
|
||||
|
||||
* src/type1/t1afm.c: Include t1errors.h.
|
||||
|
||||
2004-09-03 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
* src/base/ftdebug.c (ft_debug_init): Highest debug level is 7,
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* FreeType error code handling (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2001, 2002 by */
|
||||
/* Copyright 1996-2001, 2002, 2004 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@ -25,17 +25,12 @@
|
||||
/* I - Error Formats */
|
||||
/* ----------------- */
|
||||
/* */
|
||||
/* Since release 2.1, the error constants have changed. The lower */
|
||||
/* byte of the error value gives the "generic" error code, while the */
|
||||
/* higher byte indicates in which module the error occurred. */
|
||||
/* */
|
||||
/* You can use the macro FT_ERROR_BASE(x) macro to extract the generic */
|
||||
/* error code from an FT_Error value. */
|
||||
/* */
|
||||
/* The configuration macro FT_CONFIG_OPTION_USE_MODULE_ERRORS can be */
|
||||
/* undefined in ftoption.h in order to make the higher byte always */
|
||||
/* zero, in case you need to be compatible with previous versions of */
|
||||
/* FreeType 2. */
|
||||
/* defined in ftoption.h in order to make the higher byte indicate */
|
||||
/* the module where the error has happened (this is not compatible */
|
||||
/* with standard builds of FreeType 2). You can then use the macro */
|
||||
/* FT_ERROR_BASE macro to extract the generic error code from an */
|
||||
/* FT_Error value. */
|
||||
/* */
|
||||
/* */
|
||||
/* II - Error Message strings */
|
||||
@ -158,7 +153,7 @@
|
||||
#define FT_ERRORDEF_( e, v, s ) \
|
||||
FT_ERRORDEF( FT_ERR_CAT( FT_ERR_PREFIX, e ), v + FT_ERR_BASE, s )
|
||||
|
||||
/* this is only used for FT_Err_Ok, which must be 0! */
|
||||
/* this is only used for <module>_Err_Ok, which must be 0! */
|
||||
#define FT_NOERRORDEF_( e, v, s ) \
|
||||
FT_ERRORDEF( FT_ERR_CAT( FT_ERR_PREFIX, e ), v, s )
|
||||
|
||||
@ -168,7 +163,7 @@
|
||||
#endif
|
||||
|
||||
|
||||
/* no include the error codes */
|
||||
/* now include the error codes */
|
||||
#include FT_ERROR_DEFINITIONS_H
|
||||
|
||||
|
||||
@ -197,9 +192,13 @@
|
||||
#undef FT_NOERRORDEF_
|
||||
|
||||
#undef FT_NEED_EXTERN_C
|
||||
#undef FT_ERR_PREFIX
|
||||
#undef FT_ERR_BASE
|
||||
#undef FT_ERR_CONCAT
|
||||
#undef FT_ERR_BASE
|
||||
|
||||
/* FT_KEEP_ERR_PREFIX is needed for ftvalid.h */
|
||||
#ifndef FT_KEEP_ERR_PREFIX
|
||||
#undef FT_ERR_PREFIX
|
||||
#endif
|
||||
|
||||
#endif /* __FTERRORS_H__ */
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* FreeType simple types definitions (specification only). */
|
||||
/* */
|
||||
/* Copyright 1996-2001 by */
|
||||
/* Copyright 1996-2001, 2002, 2004 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -27,7 +27,6 @@
|
||||
#define __FTOBJS_H__
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_CONFIG_STANDARD_LIBRARY_H /* for ft_setjmp and ft_longjmp */
|
||||
#include FT_RENDER_H
|
||||
#include FT_SIZES_H
|
||||
#include FT_INTERNAL_MEMORY_H
|
||||
@ -81,111 +80,6 @@ FT_BEGIN_HEADER
|
||||
#define FT_PIX_CEIL( x ) FT_PIX_FLOOR( (x) + 63 )
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/**** ****/
|
||||
/**** ****/
|
||||
/**** V A L I D A T I O N ****/
|
||||
/**** ****/
|
||||
/**** ****/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
|
||||
/* handle to a validation object */
|
||||
typedef struct FT_ValidatorRec_* FT_Validator;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* There are three distinct validation levels defined here: */
|
||||
/* */
|
||||
/* FT_VALIDATE_DEFAULT :: */
|
||||
/* A table that passes this validation level can be used reliably by */
|
||||
/* FreeType. It generally means that all offsets have been checked to */
|
||||
/* prevent out-of-bound reads, array counts are correct, etc. */
|
||||
/* */
|
||||
/* FT_VALIDATE_TIGHT :: */
|
||||
/* A table that passes this validation level can be used reliably and */
|
||||
/* doesn't contain invalid data. For example, a charmap table that */
|
||||
/* returns invalid glyph indices will not pass, even though it can */
|
||||
/* be used with FreeType in default mode (the library will simply */
|
||||
/* return an error later when trying to load the glyph). */
|
||||
/* */
|
||||
/* It also check that fields that must be a multiple of 2, 4, or 8 */
|
||||
/* don't have incorrect values, etc. */
|
||||
/* */
|
||||
/* FT_VALIDATE_PARANOID :: */
|
||||
/* Only for font debugging. Checks that a table follows the */
|
||||
/* specification by 100%. Very few fonts will be able to pass this */
|
||||
/* level anyway but it can be useful for certain tools like font */
|
||||
/* editors/converters. */
|
||||
/* */
|
||||
typedef enum FT_ValidationLevel_
|
||||
{
|
||||
FT_VALIDATE_DEFAULT = 0,
|
||||
FT_VALIDATE_TIGHT,
|
||||
FT_VALIDATE_PARANOID
|
||||
|
||||
} FT_ValidationLevel;
|
||||
|
||||
|
||||
/* validator structure */
|
||||
typedef struct FT_ValidatorRec_
|
||||
{
|
||||
const FT_Byte* base; /* address of table in memory */
|
||||
const FT_Byte* limit; /* `base' + sizeof(table) in memory */
|
||||
FT_ValidationLevel level; /* validation level */
|
||||
FT_Error error; /* error returned. 0 means success */
|
||||
|
||||
ft_jmp_buf jump_buffer; /* used for exception handling */
|
||||
|
||||
} FT_ValidatorRec;
|
||||
|
||||
|
||||
#define FT_VALIDATOR( x ) ((FT_Validator)( x ))
|
||||
|
||||
|
||||
FT_BASE( void )
|
||||
ft_validator_init( FT_Validator valid,
|
||||
const FT_Byte* base,
|
||||
const FT_Byte* limit,
|
||||
FT_ValidationLevel level );
|
||||
|
||||
FT_BASE( FT_Int )
|
||||
ft_validator_run( FT_Validator valid );
|
||||
|
||||
/* Sets the error field in a validator, then calls `longjmp' to return */
|
||||
/* to high-level caller. Using `setjmp/longjmp' avoids many stupid */
|
||||
/* error checks within the validation routines. */
|
||||
/* */
|
||||
FT_BASE( void )
|
||||
ft_validator_error( FT_Validator valid,
|
||||
FT_Error error );
|
||||
|
||||
|
||||
/* Calls ft_validate_error. Assumes that the `valid' local variable */
|
||||
/* holds a pointer to the current validator object. */
|
||||
/* */
|
||||
#define FT_INVALID( _error ) ft_validator_error( valid, _error )
|
||||
|
||||
/* called when a broken table is detected */
|
||||
#define FT_INVALID_TOO_SHORT FT_INVALID( FT_Err_Invalid_Table )
|
||||
|
||||
/* called when an invalid offset is detected */
|
||||
#define FT_INVALID_OFFSET FT_INVALID( FT_Err_Invalid_Offset )
|
||||
|
||||
/* called when an invalid format/value is detected */
|
||||
#define FT_INVALID_FORMAT FT_INVALID( FT_Err_Invalid_Table )
|
||||
|
||||
/* called when an invalid glyph index is detected */
|
||||
#define FT_INVALID_GLYPH_ID FT_INVALID( FT_Err_Invalid_Glyph_Index )
|
||||
|
||||
/* called when an invalid field value is detected */
|
||||
#define FT_INVALID_DATA FT_INVALID( FT_Err_Invalid_Table )
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
|
148
include/freetype/internal/ftvalid.h
Normal file
148
include/freetype/internal/ftvalid.h
Normal file
@ -0,0 +1,148 @@
|
||||
/***************************************************************************/
|
||||
/* */
|
||||
/* ftvalid.h */
|
||||
/* */
|
||||
/* FreeType validation support (specification). */
|
||||
/* */
|
||||
/* Copyright 2004 by */
|
||||
/* 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. */
|
||||
/* */
|
||||
/***************************************************************************/
|
||||
|
||||
|
||||
#ifndef __FTVALID_H__
|
||||
#define __FTVALID_H__
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_CONFIG_STANDARD_LIBRARY_H /* for ft_setjmp and ft_longjmp */
|
||||
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/**** ****/
|
||||
/**** ****/
|
||||
/**** V A L I D A T I O N ****/
|
||||
/**** ****/
|
||||
/**** ****/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
|
||||
/* handle to a validation object */
|
||||
typedef struct FT_ValidatorRec_* FT_Validator;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* There are three distinct validation levels defined here: */
|
||||
/* */
|
||||
/* FT_VALIDATE_DEFAULT :: */
|
||||
/* A table that passes this validation level can be used reliably by */
|
||||
/* FreeType. It generally means that all offsets have been checked to */
|
||||
/* prevent out-of-bound reads, array counts are correct, etc. */
|
||||
/* */
|
||||
/* FT_VALIDATE_TIGHT :: */
|
||||
/* A table that passes this validation level can be used reliably and */
|
||||
/* doesn't contain invalid data. For example, a charmap table that */
|
||||
/* returns invalid glyph indices will not pass, even though it can */
|
||||
/* be used with FreeType in default mode (the library will simply */
|
||||
/* return an error later when trying to load the glyph). */
|
||||
/* */
|
||||
/* It also check that fields that must be a multiple of 2, 4, or 8 */
|
||||
/* don't have incorrect values, etc. */
|
||||
/* */
|
||||
/* FT_VALIDATE_PARANOID :: */
|
||||
/* Only for font debugging. Checks that a table follows the */
|
||||
/* specification by 100%. Very few fonts will be able to pass this */
|
||||
/* level anyway but it can be useful for certain tools like font */
|
||||
/* editors/converters. */
|
||||
/* */
|
||||
typedef enum FT_ValidationLevel_
|
||||
{
|
||||
FT_VALIDATE_DEFAULT = 0,
|
||||
FT_VALIDATE_TIGHT,
|
||||
FT_VALIDATE_PARANOID
|
||||
|
||||
} FT_ValidationLevel;
|
||||
|
||||
|
||||
/* validator structure */
|
||||
typedef struct FT_ValidatorRec_
|
||||
{
|
||||
const FT_Byte* base; /* address of table in memory */
|
||||
const FT_Byte* limit; /* `base' + sizeof(table) in memory */
|
||||
FT_ValidationLevel level; /* validation level */
|
||||
FT_Error error; /* error returned. 0 means success */
|
||||
|
||||
ft_jmp_buf jump_buffer; /* used for exception handling */
|
||||
|
||||
} FT_ValidatorRec;
|
||||
|
||||
|
||||
#define FT_VALIDATOR( x ) ((FT_Validator)( x ))
|
||||
|
||||
|
||||
FT_BASE( void )
|
||||
ft_validator_init( FT_Validator valid,
|
||||
const FT_Byte* base,
|
||||
const FT_Byte* limit,
|
||||
FT_ValidationLevel level );
|
||||
|
||||
FT_BASE( FT_Int )
|
||||
ft_validator_run( FT_Validator valid );
|
||||
|
||||
/* Sets the error field in a validator, then calls `longjmp' to return */
|
||||
/* to high-level caller. Using `setjmp/longjmp' avoids many stupid */
|
||||
/* error checks within the validation routines. */
|
||||
/* */
|
||||
FT_BASE( void )
|
||||
ft_validator_error( FT_Validator valid,
|
||||
FT_Error error );
|
||||
|
||||
|
||||
/* Calls ft_validate_error. Assumes that the `valid' local variable */
|
||||
/* holds a pointer to the current validator object. */
|
||||
/* */
|
||||
/* Use preprocessor prescan to pass FT_ERR_PREFIX. */
|
||||
/* */
|
||||
#define FT_INVALID( _prefix, _error ) FT_INVALID_( _prefix, _error )
|
||||
#define FT_INVALID_( _prefix, _error ) \
|
||||
ft_validator_error( valid, _prefix ## _error )
|
||||
|
||||
/* called when a broken table is detected */
|
||||
#define FT_INVALID_TOO_SHORT \
|
||||
FT_INVALID( FT_ERR_PREFIX, Invalid_Table )
|
||||
|
||||
/* called when an invalid offset is detected */
|
||||
#define FT_INVALID_OFFSET \
|
||||
FT_INVALID( FT_ERR_PREFIX, Invalid_Offset )
|
||||
|
||||
/* called when an invalid format/value is detected */
|
||||
#define FT_INVALID_FORMAT \
|
||||
FT_INVALID( FT_ERR_PREFIX, Invalid_Table )
|
||||
|
||||
/* called when an invalid glyph index is detected */
|
||||
#define FT_INVALID_GLYPH_ID \
|
||||
FT_INVALID( FT_ERR_PREFIX, Invalid_Glyph_Index )
|
||||
|
||||
/* called when an invalid field value is detected */
|
||||
#define FT_INVALID_DATA \
|
||||
FT_INVALID( FT_ERR_PREFIX, Invalid_Table )
|
||||
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
#endif /* __FTVALID_H__ */
|
||||
|
||||
|
||||
/* END */
|
@ -35,6 +35,7 @@
|
||||
#define FT_INTERNAL_SFNT_H <freetype/internal/sfnt.h>
|
||||
#define FT_INTERNAL_SERVICE_H <freetype/internal/ftserv.h>
|
||||
#define FT_INTERNAL_RFORK_H <freetype/internal/ftrfork.h>
|
||||
#define FT_INTERNAL_VALIDATE_H <freetype/internal/ftvalid.h>
|
||||
|
||||
#define FT_INTERNAL_TRUETYPE_TYPES_H <freetype/internal/tttypes.h>
|
||||
#define FT_INTERNAL_TYPE1_TYPES_H <freetype/internal/t1types.h>
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include <ft2build.h>
|
||||
#include FT_LIST_H
|
||||
#include FT_OUTLINE_H
|
||||
#include FT_INTERNAL_VALIDATE_H
|
||||
#include FT_INTERNAL_OBJECTS_H
|
||||
#include FT_INTERNAL_DEBUG_H
|
||||
#include FT_INTERNAL_RFORK_H
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* SFNT error codes (specification only). */
|
||||
/* */
|
||||
/* Copyright 2001 by */
|
||||
/* Copyright 2001, 2004 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@ -32,6 +32,8 @@
|
||||
#define FT_ERR_PREFIX SFNT_Err_
|
||||
#define FT_ERR_BASE FT_Mod_Err_SFNT
|
||||
|
||||
#define FT_KEEP_ERR_PREFIX
|
||||
|
||||
#include FT_ERRORS_H
|
||||
|
||||
#endif /* __SFERRORS_H__ */
|
||||
|
@ -18,12 +18,14 @@
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_INTERNAL_DEBUG_H
|
||||
#include FT_INTERNAL_OBJECTS_H
|
||||
|
||||
#include "sferrors.h" /* must come before FT_INTERNAL_VALIDATE_H */
|
||||
|
||||
#include FT_INTERNAL_VALIDATE_H
|
||||
#include FT_INTERNAL_STREAM_H
|
||||
#include "ttload.h"
|
||||
#include "ttcmap.h"
|
||||
|
||||
#include "sferrors.h"
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
@ -153,7 +155,7 @@
|
||||
|
||||
cmap_info->language = (FT_ULong)TT_PEEK_USHORT( p );
|
||||
|
||||
return FT_Err_Ok;
|
||||
return SFNT_Err_Ok;
|
||||
}
|
||||
|
||||
|
||||
@ -161,7 +163,7 @@
|
||||
const TT_CMap_ClassRec tt_cmap0_class_rec =
|
||||
{
|
||||
{
|
||||
sizeof( TT_CMapRec ),
|
||||
sizeof ( TT_CMapRec ),
|
||||
|
||||
(FT_CMap_InitFunc) tt_cmap_init,
|
||||
(FT_CMap_DoneFunc) NULL,
|
||||
@ -523,7 +525,7 @@
|
||||
|
||||
cmap_info->language = (FT_ULong)TT_PEEK_USHORT( p );
|
||||
|
||||
return FT_Err_Ok;
|
||||
return SFNT_Err_Ok;
|
||||
}
|
||||
|
||||
|
||||
@ -531,7 +533,7 @@
|
||||
const TT_CMap_ClassRec tt_cmap2_class_rec =
|
||||
{
|
||||
{
|
||||
sizeof( TT_CMapRec ),
|
||||
sizeof ( TT_CMapRec ),
|
||||
|
||||
(FT_CMap_InitFunc) tt_cmap_init,
|
||||
(FT_CMap_DoneFunc) NULL,
|
||||
@ -1098,7 +1100,7 @@
|
||||
|
||||
cmap_info->language = (FT_ULong)TT_PEEK_USHORT( p );
|
||||
|
||||
return FT_Err_Ok;
|
||||
return SFNT_Err_Ok;
|
||||
}
|
||||
|
||||
|
||||
@ -1256,7 +1258,7 @@
|
||||
|
||||
cmap_info->language = (FT_ULong)TT_PEEK_USHORT( p );
|
||||
|
||||
return FT_Err_Ok;
|
||||
return SFNT_Err_Ok;
|
||||
}
|
||||
|
||||
|
||||
@ -1506,7 +1508,8 @@
|
||||
|
||||
|
||||
cmap_info->language = (FT_ULong)TT_PEEK_ULONG( p );
|
||||
return FT_Err_Ok;
|
||||
|
||||
return SFNT_Err_Ok;
|
||||
}
|
||||
|
||||
|
||||
@ -1652,7 +1655,7 @@
|
||||
|
||||
cmap_info->language = (FT_ULong)TT_PEEK_ULONG( p );
|
||||
|
||||
return FT_Err_Ok;
|
||||
return SFNT_Err_Ok;
|
||||
}
|
||||
|
||||
|
||||
@ -1836,7 +1839,7 @@
|
||||
|
||||
cmap_info->language = (FT_ULong)TT_PEEK_ULONG( p );
|
||||
|
||||
return FT_Err_Ok;
|
||||
return SFNT_Err_Ok;
|
||||
}
|
||||
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_INTERNAL_TRUETYPE_TYPES_H
|
||||
#include FT_INTERNAL_OBJECTS_H
|
||||
#include FT_INTERNAL_VALIDATE_H
|
||||
#include FT_SERVICE_TT_CMAP_H
|
||||
|
||||
FT_BEGIN_HEADER
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
#include <ft2build.h>
|
||||
#include "t1afm.h"
|
||||
#include "t1errors.h"
|
||||
#include FT_INTERNAL_STREAM_H
|
||||
#include FT_INTERNAL_TYPE1_TYPES_H
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user