Commit 442b0910 authored by Werner Lemberg's avatar Werner Lemberg
Browse files

Complete redesign of error codes. Please check ftmoderr.h for more

details.

* include/freetype/internal/cfferrs.h,
include/freetype/internal/tterrors.h,
include/freetype/internal/t1errors.h: Removed.  Replaced with files
local to the module.  All extra error codes have been moved to
`fterrors.h'.

* src/sfnt/ttpost.h: Move error codes to `fterrors.h'.

* src/autohint/aherrors.h, src/cache/ftcerror.h, src/cff/cfferrs.h,
src/cid/ciderrs.h, src/pcf/pcferror.h, src/psaux/psauxerr.h,
src/psnames/psnamerr.h, src/raster/rasterrs.h, src/sfnt/sferrors.h,
src/smooth/ftsmerrs.h, src/truetype/tterrors.h,
src/type1/t1errors.h, src/winfonts/fnterrs.h: New files defining the
error names for the module it belongs to.

* include/freetype/ftmoderr.h: New file, defining the module error
offsets.  Its structure is similar to `fterrors.h'.

* include/freetype/fterrors.h (FT_NOERRORDEF): New macro.
(FT_ERRORDEF): Redefined to use module error offsets.
All internal error codes are now public; unused error codes have
been removed, some are new.

* include/freetype/config/ftheader.h (FT_MODULE_ERRORS_H): New
macro.
* include/freetype/config/ftoption.h
(FT_CONFIG_OPTION_USE_MODULE_ERRORS): New macro.

All other source files have been updated to use the new error codes;
some already existing (internal) error codes local to a module have
been renamed to give them the same name as in the base module.

All make files have been updated to include the local error files.


* src/cid/cidtokens.h: Replaced with...
* src/cid/cidtoken.h: This file for 8+3 consistency.

* src/raster/ftraster.c: Use macros for header file names.
parent be0924aa
2001-06-06 Werner Lemberg <wl@gnu.org>
Complete redesign of error codes. Please check ftmoderr.h for more
details.
* include/freetype/internal/cfferrs.h,
include/freetype/internal/tterrors.h,
include/freetype/internal/t1errors.h: Removed. Replaced with files
local to the module. All extra error codes have been moved to
`fterrors.h'.
* src/sfnt/ttpost.h: Move error codes to `fterrors.h'.
* src/autohint/aherrors.h, src/cache/ftcerror.h, src/cff/cfferrs.h,
src/cid/ciderrs.h, src/pcf/pcferror.h, src/psaux/psauxerr.h,
src/psnames/psnamerr.h, src/raster/rasterrs.h, src/sfnt/sferrors.h,
src/smooth/ftsmerrs.h, src/truetype/tterrors.h,
src/type1/t1errors.h, src/winfonts/fnterrs.h: New files defining the
error names for the module it belongs to.
* include/freetype/ftmoderr.h: New file, defining the module error
offsets. Its structure is similar to `fterrors.h'.
* include/freetype/fterrors.h (FT_NOERRORDEF): New macro.
(FT_ERRORDEF): Redefined to use module error offsets.
All internal error codes are now public; unused error codes have
been removed, some are new.
* include/freetype/config/ftheader.h (FT_MODULE_ERRORS_H): New
macro.
* include/freetype/config/ftoption.h
(FT_CONFIG_OPTION_USE_MODULE_ERRORS): New macro.
All other source files have been updated to use the new error codes;
some already existing (internal) error codes local to a module have
been renamed to give them the same name as in the base module.
All make files have been updated to include the local error files.
2001-06-06 Werner Lemberg <wl@gnu.org>
* src/cid/cidtokens.h: Replaced with...
* src/cid/cidtoken.h: This file for 8+3 consistency.
* src/raster/ftraster.c: Use macros for header file names.
* src/include/freetype/tttables.h (TT_HoriHeader_, TT_VertHeader_):
Fix length of `Reserved' array. Note that this isn't the real fix
since recent OpenType specs have introduced a `CaretOffset' field
......
......@@ -164,6 +164,18 @@
#define FT_ERRORS_H <freetype/fterrors.h>
/*************************************************************************/
/* */
/* @macro: */
/* FT_MODULE_ERRORS_H */
/* */
/* @description: */
/* A macro used in #include statements to name the file containing */
/* the list of FreeType 2 module error offsets (and messages). */
/* */
#define FT_MODULE_ERRORS_H <freetype/ftmoderr.h>
/*************************************************************************/
/* */
/* @macro: */
......
......@@ -73,6 +73,22 @@ FT_BEGIN_HEADER
#undef FT_CONFIG_OPTION_NO_CONVENIENCE_FUNCS
/*************************************************************************/
/* */
/* Module errors */
/* */
/* If this macro is set (which is the default), the higher byte of an */
/* error code gives the module in which the error has occurred, while */
/* the lower byte is the real error code. */
/* */
/* Unsetting this macro makes sense for backwards compatibility; only */
/* the real error code is emitted, and the higher byte is always zero. */
/* */
/* More details can be found in the files ftmoderr.h and fterrors.h. */
/* */
#define FT_CONFIG_OPTION_USE_MODULE_ERRORS
/*************************************************************************/
/* */
/* Alternate Glyph Image Format support */
......
......@@ -19,14 +19,25 @@
/*************************************************************************/
/* */
/* This file is used to define the FreeType error enumeration constants. */
/* */
/* The lower byte gives the error code, the higher byte gives the */
/* module. The base module has error offset 0. For example, the error */
/* `FT_Err_Invalid_File_Format' has value 0x003, the error */
/* `TT_Err_Invalid_File_Format' has value 0xB03, the error */
/* `T1_Err_Invalid_File_Format' has value 0xC03, etc. */
/* */
/* Undefine the macro FT_CONFIG_OPTION_USE_MODULE_ERRORS (in ftoption.h) */
/* to make the higher byte always zero. */
/* */
/* It can also be used to create an error message table easily with */
/* something like */
/* */
/* { */
/* #undef __FTERRORS_H__ */
/* #define FT_ERRORDEF( e, v, s ) { e, s }, */
/* #define FT_ERROR_START_LIST { */
/* #define FT_ERROR_END_LIST { 0, 0 } }; */
/* #define FT_ERRORDEF( e, v, s ) { FT_Err_ ## e, s }, */
/* #define FT_NOERRORDEF( e, v, s ) { FT_Err_ ## e, s }, */
/* #define FT_ERROR_START_LIST { */
/* #define FT_ERROR_END_LIST { 0, 0 } }; */
/* */
/* const struct */
/* { */
......@@ -37,8 +48,8 @@
/* #include FT_ERRORS_H */
/* } */
/* */
/* For C++ it might be necessary to use `extern "C" {' and to define */
/* FT_NEED_EXTERN_C also. */
/* To use such a table, all errors must be ANDed with 0x00FF to remove */
/* the module error offset. */
/* */
/*************************************************************************/
......@@ -46,15 +57,18 @@
#ifndef __FTERRORS_H__
#define __FTERRORS_H__
#include FT_MODULE_ERRORS_H
#undef FT_NEED_EXTERN_C
#ifndef FT_ERRORDEF
#define FT_ERRORDEF( e, v, s ) e = v,
#define FT_ERROR_START_LIST enum {
#define FT_ERROR_END_LIST FT_Err_Max };
#define FT_ERRORDEF( e, v, s ) FT_Err_ ## e = v + FT_Mod_Err_Base,
#define FT_NOERRORDEF( e, v, s ) FT_Err_ ## e = v,
#define FT_ERROR_START_LIST enum {
#define FT_ERROR_END_LIST FT_Err_Max };
#ifdef __cplusplus
#define FT_NEED_EXTERN_C
......@@ -68,119 +82,182 @@
FT_ERROR_START_LIST
#endif
/* generic errors */
FT_ERRORDEF( FT_Err_Ok, 0x0000, \
"no error" )
FT_ERRORDEF( FT_Err_Cannot_Open_Resource, 0x0001, \
FT_NOERRORDEF( Ok, 0x00, \
"no error" )
FT_ERRORDEF( Cannot_Open_Resource, 0x01, \
"cannot open resource" )
FT_ERRORDEF( FT_Err_Unknown_File_Format, 0x0002, \
FT_ERRORDEF( Unknown_File_Format, 0x02, \
"unknown file format" )
FT_ERRORDEF( FT_Err_Invalid_File_Format, 0x0003, \
FT_ERRORDEF( Invalid_File_Format, 0x03, \
"broken file" )
FT_ERRORDEF( FT_Err_Invalid_Version, 0x0004, \
FT_ERRORDEF( Invalid_Version, 0x04, \
"invalid FreeType version" )
FT_ERRORDEF( FT_Err_Lower_Module_Version, 0x0005, \
FT_ERRORDEF( Lower_Module_Version, 0x05, \
"module version is too low" )
FT_ERRORDEF( FT_Err_Invalid_Argument, 0x0006, \
FT_ERRORDEF( Invalid_Argument, 0x06, \
"invalid argument" )
FT_ERRORDEF( FT_Err_Unimplemented_Feature, 0x0007, \
FT_ERRORDEF( Unimplemented_Feature, 0x07, \
"unimplemented feature" )
/* glyph/character errors */
FT_ERRORDEF( FT_Err_Invalid_Glyph_Index, 0x0010, \
FT_ERRORDEF( Invalid_Glyph_Index, 0x10, \
"invalid glyph index" )
FT_ERRORDEF( FT_Err_Invalid_Character_Code, 0x0011, \
FT_ERRORDEF( Invalid_Character_Code, 0x11, \
"invalid character code" )
FT_ERRORDEF( FT_Err_Invalid_Glyph_Format, 0x0012, \
FT_ERRORDEF( Invalid_Glyph_Format, 0x12, \
"unsupported glyph image format" )
FT_ERRORDEF( FT_Err_Cannot_Render_Glyph, 0x0013, \
FT_ERRORDEF( Cannot_Render_Glyph, 0x13, \
"cannot render this glyph format" )
FT_ERRORDEF( FT_Err_Invalid_Outline, 0x0014, \
FT_ERRORDEF( Invalid_Outline, 0x14, \
"invalid outline" )
FT_ERRORDEF( FT_Err_Invalid_Composite, 0x0015, \
FT_ERRORDEF( Invalid_Composite, 0x15, \
"invalid composite glyph" )
FT_ERRORDEF( FT_Err_Too_Many_Hints, 0x0016, \
FT_ERRORDEF( Too_Many_Hints, 0x16, \
"too many hints" )
FT_ERRORDEF( FT_Err_Invalid_Pixel_Size, 0x0017, \
FT_ERRORDEF( Invalid_Pixel_Size, 0x17, \
"invalid pixel size" )
/* handle errors */
FT_ERRORDEF( FT_Err_Invalid_Handle, 0x0020, \
FT_ERRORDEF( Invalid_Handle, 0x20, \
"invalid object handle" )
FT_ERRORDEF( FT_Err_Invalid_Library_Handle, 0x0021, \
FT_ERRORDEF( Invalid_Library_Handle, 0x21, \
"invalid library handle" )
FT_ERRORDEF( FT_Err_Invalid_Driver_Handle, 0x0022, \
FT_ERRORDEF( Invalid_Driver_Handle, 0x22, \
"invalid module handle" )
FT_ERRORDEF( FT_Err_Invalid_Face_Handle, 0x0023, \
FT_ERRORDEF( Invalid_Face_Handle, 0x23, \
"invalid face handle" )
FT_ERRORDEF( FT_Err_Invalid_Size_Handle, 0x0024, \
FT_ERRORDEF( Invalid_Size_Handle, 0x24, \
"invalid size handle" )
FT_ERRORDEF( FT_Err_Invalid_Slot_Handle, 0x0025, \
FT_ERRORDEF( Invalid_Slot_Handle, 0x25, \
"invalid glyph slot handle" )
FT_ERRORDEF( FT_Err_Invalid_CharMap_Handle, 0x0026, \
FT_ERRORDEF( Invalid_CharMap_Handle, 0x26, \
"invalid charmap handle" )
FT_ERRORDEF( FT_Err_Invalid_Cache_Handle, 0x0027, \
FT_ERRORDEF( Invalid_Cache_Handle, 0x27, \
"invalid cache manager handle" )
FT_ERRORDEF( FT_Err_Invalid_Stream_Handle, 0x0028, \
FT_ERRORDEF( Invalid_Stream_Handle, 0x28, \
"invalid stream handle" )
/* driver errors */
FT_ERRORDEF( FT_Err_Too_Many_Drivers, 0x0030, \
FT_ERRORDEF( Too_Many_Drivers, 0x30, \
"too many modules" )
FT_ERRORDEF( FT_Err_Too_Many_Extensions, 0x0031, \
FT_ERRORDEF( Too_Many_Extensions, 0x31, \
"too many extensions" )
/* memory errors */
FT_ERRORDEF( FT_Err_Out_Of_Memory, 0x0040, \
FT_ERRORDEF( Out_Of_Memory, 0x40, \
"out of memory" )
FT_ERRORDEF( FT_Err_Unlisted_Object, 0x0041, \
FT_ERRORDEF( Unlisted_Object, 0x41, \
"unlisted object" )
/* stream errors */
FT_ERRORDEF( FT_Err_Cannot_Open_Stream, 0x0051, \
FT_ERRORDEF( Cannot_Open_Stream, 0x51, \
"cannot open stream" )
FT_ERRORDEF( FT_Err_Invalid_Stream_Seek, 0x0052, \
FT_ERRORDEF( Invalid_Stream_Seek, 0x52, \
"invalid stream seek" )
FT_ERRORDEF( FT_Err_Invalid_Stream_Skip, 0x0053, \
FT_ERRORDEF( Invalid_Stream_Skip, 0x53, \
"invalid stream skip" )
FT_ERRORDEF( FT_Err_Invalid_Stream_Read, 0x0054, \
FT_ERRORDEF( Invalid_Stream_Read, 0x54, \
"invalid stream read" )
FT_ERRORDEF( FT_Err_Invalid_Stream_Operation, 0x0055, \
FT_ERRORDEF( Invalid_Stream_Operation, 0x55, \
"invalid stream operation" )
FT_ERRORDEF( FT_Err_Invalid_Frame_Operation, 0x0056, \
FT_ERRORDEF( Invalid_Frame_Operation, 0x56, \
"invalid frame operation" )
FT_ERRORDEF( FT_Err_Nested_Frame_Access, 0x0057, \
FT_ERRORDEF( Nested_Frame_Access, 0x57, \
"nested frame access" )
FT_ERRORDEF( FT_Err_Invalid_Frame_Read, 0x0058, \
FT_ERRORDEF( Invalid_Frame_Read, 0x58, \
"invalid frame read" )
/* raster errors */
FT_ERRORDEF( FT_Err_Raster_Uninitialized, 0x0060, \
FT_ERRORDEF( Raster_Uninitialized, 0x60, \
"raster uninitialized" )
FT_ERRORDEF( FT_Err_Raster_Corrupted, 0x0061, \
FT_ERRORDEF( Raster_Corrupted, 0x61, \
"raster corrupted" )
FT_ERRORDEF( FT_Err_Raster_Overflow, 0x0062, \
FT_ERRORDEF( Raster_Overflow, 0x62, \
"raster overflow" )
FT_ERRORDEF( FT_Err_Raster_Negative_Height, 0x0063, \
FT_ERRORDEF( Raster_Negative_Height, 0x63, \
"negative height while rastering" )
/* cache errors */
FT_ERRORDEF( FT_Err_Too_Many_Caches, 0x0070, \
FT_ERRORDEF( Too_Many_Caches, 0x70, \
"too many registered caches" )
/* range 0x400 - 0x4FF is reserved for TrueType specific stuff */
/* range 0x500 - 0x5FF is reserved for CFF specific stuff */
/* TrueType and SFNT errors */
FT_ERRORDEF( Invalid_Opcode, 0x80, \
"invalid opcode" )
FT_ERRORDEF( Too_Few_Arguments, 0x81, \
"too few arguments" )
FT_ERRORDEF( Stack_Overflow, 0x82, \
"stack overflow" )
FT_ERRORDEF( Code_Overflow, 0x83, \
"code overflow" )
FT_ERRORDEF( Bad_Argument, 0x84, \
"bad argument" )
FT_ERRORDEF( Divide_By_Zero, 0x85, \
"division by zero" )
FT_ERRORDEF( Invalid_Reference, 0x86, \
"invalid reference" )
FT_ERRORDEF( Debug_OpCode, 0x87, \
"found debug opcode" )
FT_ERRORDEF( ENDF_In_Exec_Stream, 0x88, \
"found ENDF opcode in execution stream" )
FT_ERRORDEF( Nested_DEFS, 0x89, \
"nested DEFS" )
FT_ERRORDEF( Invalid_CodeRange, 0x8A, \
"invalid code range" )
FT_ERRORDEF( Execution_Too_Long, 0x8B, \
"execution context too long" )
FT_ERRORDEF( Too_Many_Function_Defs, 0x8C, \
"too many function definitions" )
FT_ERRORDEF( Too_Many_Instruction_Defs, 0x8D, \
"too many instruction definitions" )
FT_ERRORDEF( Table_Missing, 0x8E, \
"SFNT font table missing" )
FT_ERRORDEF( Horiz_Header_Missing, 0x8F, \
"horizontal header (hhea) table missing" )
FT_ERRORDEF( Locations_Missing, 0x90, \
"locations (loca) table missing" )
FT_ERRORDEF( Name_Table_Missing, 0x91, \
"name table missing" )
FT_ERRORDEF( CMap_Table_Missing, 0x92, \
"character map (cmap) table missing" )
FT_ERRORDEF( Hmtx_Table_Missing, 0x93, \
"horizontal metrics (hmtx) table missing" )
FT_ERRORDEF( Post_Table_Missing, 0x94, \
"PostScript (post) table missing" )
FT_ERRORDEF( Invalid_Horiz_Metrics, 0x95, \
"invalid horizontal metrics" )
FT_ERRORDEF( Invalid_CharMap_Format, 0x96, \
"invalid character map (cmap) format" )
FT_ERRORDEF( Invalid_PPem, 0x97, \
"invalid ppem value" )
FT_ERRORDEF( Invalid_Vert_Metrics, 0x98, \
"invalid vertical metrics" )
FT_ERRORDEF( Could_Not_Find_Context, 0x99, \
"could not find context" )
FT_ERRORDEF( Invalid_Post_Table_Format, 0x9A, \
"invalid PostScript (post) table format" )
FT_ERRORDEF( Invalid_Post_Table, 0x9B, \
"invalid PostScript (post) table" )
/* CFF, CID, and Type 1 errors */
FT_ERRORDEF( Syntax_Error, 0xA0, \
"opcode syntax error" )
FT_ERRORDEF( Stack_Underflow, 0xA1, \
"argument stack underflow" )
/* range 0x600 - 0x6FF is reserved for Type1 specific stuff */
#ifdef FT_ERROR_END_LIST
FT_ERROR_END_LIST
......@@ -190,6 +267,7 @@
#undef FT_ERROR_START_LIST
#undef FT_ERROR_END_LIST
#undef FT_ERRORDEF
#undef FT_NOERRORDEF
#ifdef FT_NEED_EXTERN_C
......
/***************************************************************************/
/* */
/* ftmoderr.h */
/* */
/* FreeType module error offsets (specification). */
/* */
/* Copyright 2001 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. */
/* */
/***************************************************************************/
/*************************************************************************/
/* */
/* This file is used to define the FreeType module error offsets. */
/* */
/* The lower byte gives the error code, the higher byte gives the */
/* module. The base module has error offset 0. For example, the error */
/* `FT_Err_Invalid_File_Format' has value 0x003, the error */
/* `TT_Err_Invalid_File_Format' has value 0xB03, the error */
/* `T1_Err_Invalid_File_Format' has value 0xC03, etc. */
/* */
/* Undefine the macro FT_CONFIG_OPTION_USE_MODULE_ERRORS in ftoption.h */
/* to make the higher byte always zero (disabling the module error */
/* mechanism). */
/* */
/* It can also be used to create a module error message table easily */
/* with something like */
/* */
/* { */
/* #undef __FTMODERR_H__ */
/* #define FT_MODERRDEF( e, v, s ) { FT_Mod_Err_ ## e, s }, */
/* #define FT_MODERR_START_LIST { */
/* #define FT_MODERR_END_LIST { 0, 0 } }; */
/* */
/* const struct */
/* { */
/* int mod_err_offset; */
/* const char* mod_err_msg */
/* } ft_mod_errors[] = */
/* */
/* #include FT_MODULE_ERRORS_H */
/* } */
/* */
/* To use such a table, all errors must be ANDed with 0xFF00 to remove */
/* the error code. */
/* */
/*************************************************************************/
#ifndef __FTMODERR_H__
#define __FTMODERR_H__
#undef FT_NEED_EXTERN_C
#ifndef FT_MODERRDEF
#ifdef FT_CONFIG_OPTION_USE_MODULE_ERRORS
#define FT_MODERRDEF( e, v, s ) FT_Mod_Err_ ## e = v,
#else
#define FT_MODERRDEF( e, v, s ) FT_Mod_Err_ ## e = 0,
#endif
#define FT_MODERR_START_LIST enum {
#define FT_MODERR_END_LIST FT_Mod_Err_Max };
#ifdef __cplusplus
#define FT_NEED_EXTERN_C
extern "C" {
#endif
#endif /* !FT_MODERRDEF */
#ifdef FT_MODERR_START_LIST
FT_MODERR_START_LIST
#endif
FT_MODERRDEF( Base, 0x000, "base module" )
FT_MODERRDEF( Autohint, 0x100, "autohinter module" )
FT_MODERRDEF( Cache, 0x200, "cache module" )
FT_MODERRDEF( CFF, 0x300, "CFF module" )
FT_MODERRDEF( CID, 0x400, "CID module" )
FT_MODERRDEF( PCF, 0x500, "PCF module" )
FT_MODERRDEF( PSaux, 0x600, "PS auxiliary module" )
FT_MODERRDEF( PSnames, 0x700, "PS names module" )
FT_MODERRDEF( Raster, 0x800, "raster module" )
FT_MODERRDEF( SFNT, 0x900, "SFNT module" )
FT_MODERRDEF( Smooth, 0xA00, "smooth raster module" )
FT_MODERRDEF( TrueType, 0xB00, "TrueType module" )
FT_MODERRDEF( Type1, 0xC00, "Type 1 module" )
FT_MODERRDEF( Winfonts, 0xD00, "Windows FON/FNT module" )
#ifdef FT_MODERR_END_LIST
FT_MODERR_END_LIST
#endif
#undef FT_MODERR_START_LIST
#undef FT_MODERR_END_LIST
#undef FT_MODERRDEF
#ifdef FT_NEED_EXTERN_C
}
#endif
#endif /* __FTMODERR_H__ */
/* END */
/***************************************************************************/
/* */
/* cfferrs.h */
/* */
/* OpenType error ID definitions (specification only). */
/* */
/* Copyright 1996-2000 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 __CFFERRORS_H__
#define __CFFERRORS_H__
#include <ft2build.h>
FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* Error codes declaration */
/* */
/* The error codes are grouped in `classes' used to indicate the `level' */
/* at which the error happened. The class is given by an error code's */
/* high byte. */
/* */
/*************************************************************************/
/* Success is always 0. */
#define CFF_Err_Ok FT_Err_Ok
/* High level API errors. */
#define CFF_Err_Unknown_File_Format FT_Err_Unknown_File_Format
#define CFF_Err_Invalid_File_Format FT_Err_Invalid_File_Format
#define CFF_Err_Invalid_Argument FT_Err_Invalid_Argument
#define CFF_Err_Invalid_Driver_Handle FT_Err_Invalid_Driver_Handle
#define CFF_Err_Invalid_Face_Handle FT_Err_Invalid_Face_Handle
#define CFF_Err_Invalid_Instance_Handle FT_Err_Invalid_Size_Handle
#define CFF_Err_Invalid_Glyph_Handle FT_Err_Invalid_Slot_Handle
#define CFF_Err_Invalid_CharMap_Handle FT_Err_Invalid_CharMap_Handle
#define CFF_Err_Invalid_Glyph_Index FT_Err_Invalid_Glyph_Index
#define CFF_Err_Unimplemented_Feature FT_Err_Unimplemented_Feature
#define CFF_Err_Invalid_Engine FT_Err_Invalid_Driver_Handle
/* Internal errors. */
#define CFF_Err_Out_Of_Memory FT_Err_Out_Of_Memory
#define CFF_Err_Unlisted_Object FT_Err_Unlisted_Object
/* General glyph outline errors. */
#define CFF_Err_Invalid_Composite FT_Err_Invalid_Composite
/* CFF parser errors. */
#define CFF_Err_Stack_Underflow FT_Err_Invalid_Argument
#define CFF_Err_Syntax_Error FT_Err_Invalid_Argument
/* Bytecode interpreter error codes. */
/* These error codes are produced by the TrueType */
/* bytecode interpreter. They usually indicate a */
/* broken font file, a broken glyph within a font */
/* file, or a bug in the interpreter! */
#define CFF_Err_Invalid_Opcode 0x500
#define CFF_Err_Too_Few_Arguments 0x501
#define CFF_Err_Stack_Overflow 0x502
#define CFF_Err_Code_Overflow 0x503
#define CFF_Err_Bad_Argument 0x504
#define CFF_Err_Divide_By_Zero 0x505
#define CFF_Err_Storage_Overflow 0x506
#define CFF_Err_Cvt_Overflow 0x507
#define CFF_Err_Invalid_Reference 0x508
#define CFF_Err_Invalid_Distance 0x509
#define CFF_Err_Interpolate_Twilight 0x50A
#define CFF_Err_Debug_OpCode 0x50B
#define CFF_Err_ENDF_In_Exec_Stream 0x50C
#define CFF_Err_Out_Of_CodeRanges 0x50D
#define CFF_Err_Nested_DEFS 0x50E
#define CFF_Err_Invalid_CodeRange 0x50F
#define CFF_Err_Invalid_Displacement 0x510
#define CFF_Err_Execution_Too_Long 0x511
#define CFF_Err_Too_Many_Instruction_Defs 0x512
#define CFF_Err_Too_Many_Function_Defs 0x513
/* Other TrueType specific error codes. */
#define CFF_Err_Table_Missing 0x520
#define CFF_Err_Too_Many_Extensions 0x521
#define CFF_Err_Extensions_Unsupported 0x522
#define CFF_Err_Invalid_Extension_Id 0x523