ref: af8df8503fdd0b3ee91cbd462a97636d8cf49c81
parent: 222cec8c201dfb93aae9e167ead620ea5065cd7b
author: Werner Lemberg <[email protected]>
date: Thu Feb 21 19:58:04 EST 2002
* include/freetype/internal/ftdebug.h (FT_Trace): Remove comma in enum to avoid compiler warnings.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,39 +1,56 @@
+2002-02-22 Werner Lemberg <[email protected]>
+
+ * include/freetype/internal/ftdebug.h (FT_Trace): Remove comma in
+ enum to avoid compiler warnings.
+
2002-02-21 David Turner <[email protected]>
- * include/freetype/internal/ftdebug.h, src/base/ftdebug.c: modified
- the debug sub-system initialization. trace levels can now be specified
- within the "FT2_DEBUG" environment variable. See the comments within
- "ftdebug.c" for more details
+ Modified the debug sub-system initialization. Trace levels can now
+ be specified within the "FT2_DEBUG" environment variable. See the
+ comments within "ftdebug.c" for more details.
- * include/freetype/internal/fttrace.h: new file to define the trace
- levels used for debugging. it is used both to define enums and
- toggle names for FT2_DEBUG
+ * src/base/ftdebug.c: (FT_SetTraceLevel): Removed.
+ (ft_debug_init): New function.
+ (ft_debug_dummy): Removed.
+ Updated to changes in ftdebug.h
+
+ * include/freetype/internal/ftdebug.h: Always define
+ FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE is defined.
+ (FT_Assert): Renamed to ...
+ (FT_ASSERT): This.
+ Some stuff from ftdebug.h has been moved to ...
- * src/base/ftobjs.c, src/base/ftstream.c: FT_Assert renamed to
- FT_ASSERT
+ * include/freetype/internal/fttrace.h: This new file to define the
+ trace levels used for debugging. It is used both to define enums
+ and toggle names for FT2_DEBUG.
+ * include/freetype/internal/internal.h: Updated.
- * include/freetype/internal/ftextend.h, src/base/ftextend.c,
- src/base/Jamfile, src/base/rules.mk: removing "ftextend" from the
- library, since it is now completely obsolete..
+ * src/base/ftobjs.c, src/base/ftstream.c: Updated.
- * include/freetype/fterrors.h: adding "#undef FT_ERR_CAT" to avoid
- warnings with certain compilers (like LCC)
+ * include/freetype/internal/ftextend.h, src/base/ftextend.c:
+ Removed. Both files are now completely obsolete.
+ * src/base/Jamfile, src/base/rules.mk: Updated.
- * src/pshinter/pshalgo2.c: renaming 'print_zone' to 'psh2_print_zone'
- to avoid errors during compilation of debug library
+ * include/freetype/fterrors.h: Adding "#undef FT_ERR_CAT" and
+ `#undef FT_ERR_XCAT" to avoid warnings with certain compilers (like
+ LCC).
+ * src/pshinter/pshalgo2.c (print_zone): Renamed to ...
+ (psh2_print_zone): This to avoid errors during compilation of debug
+ library.
+ * src/smooth/ftgrays.c (FT_COMPONENT): Change definition to as
+ `trace_smooth'.
+
2002-02-20 David Turner <[email protected]>
- * README: adding "[email protected]" address for bug reports..
+ * README: Adding "[email protected]" address for bug reports.
-
2002-02-20 Werner Lemberg <[email protected]>
* builds/unix/install.mk (check): New dummy target.
(.PHONY): Add it.
-
2002-02-19 Werner Lemberg <[email protected]>
* builds/freetype.mk (FT_CFLAGS): Use $(INCLUDE_FLAGS) first.
@@ -154,7 +171,7 @@
2002-02-06 Detlef W�rkner <[email protected]>
* src/pcf/pcfdriver.c (FT_Done_Face): Fixed small memory leak.
-
+
* src/pcf/pcfread.c (pcf_load_font): Now handles the "AVERAGE_WIDTH"
property to return correct character pixel (width/height) pairs for
embedded bitmaps.
@@ -454,7 +471,7 @@
* src/cff/cffgload.c (CFF_Parse_CharStrings), src/psaux/t1decode.c
(T1_Decoder_Parse_Charstrings), src/pshinter/pshalgo2.c (*), Fixed a
- bug where the X and Y axis where inversed in the postscript hinter.
+ bug where the X and Y axis where inversed in the postscript hinter.
This caused problem when displaying on non-square surfaces.
* src/pshinter/pshalgo2.c: s/vertical/dimension/.
--- a/README
+++ b/README
@@ -24,14 +24,13 @@
ftp://ftp.freetype.org/pub/freetype2/ftdoc208.zip
-
Reports
=======
- Please report bugs by e-mail to '[email protected]'. Don't forget
- to join a detailed explanation of what's wrong, there is nothing
- worse than receiving a terse message that says "it doesn't work"
- for us :o)
+ Please report bugs by e-mail to `[email protected]'. Don't
+ forget to send a detailed explanation of the problem -- there is
+ nothing worse than receiving a terse message that only says "it
+ doesn't work".
--- a/include/freetype/fterrors.h
+++ b/include/freetype/fterrors.h
@@ -196,11 +196,6 @@
"invalid argument" )
FT_ERRORDEF_( Unimplemented_Feature, 0x07, \
"unimplemented feature" )
- FT_ERRORDEF_( Invalid_Table, 0x08, \
- "broken table" )
- FT_ERRORDEF_( Invalid_Offset, 0x09, \
- "broken offset within table" )
-
/* glyph/character errors */
--- a/include/freetype/internal/ftdebug.h
+++ b/include/freetype/internal/ftdebug.h
@@ -28,11 +28,11 @@
/* force the definition of FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE */
-/* is already defined.. this simplifies the following #ifdefs.. */
+/* is already defined; this simplifies the following #ifdefs */
/* */
#ifdef FT_DEBUG_LEVEL_TRACE
-# undef FT_DEBUG_LEVEL_ERROR
-# define FT_DEBUG_LEVEL_ERROR
+#undef FT_DEBUG_LEVEL_ERROR
+#define FT_DEBUG_LEVEL_ERROR
#endif
@@ -45,26 +45,25 @@
#ifdef FT_DEBUG_LEVEL_TRACE
-# define FT_TRACE_DEF(x) trace_ ## x ,
+#define FT_TRACE_DEF( x ) trace_ ## x ,
- /* defining the enums */
+ /* defining the enums */
typedef enum
{
-# include FT_INTERNAL_TRACE_H
- trace_count,
+#include FT_INTERNAL_TRACE_H
+ trace_count
} FT_Trace;
- /* defining the array of trace levels, provided by 'src/base/ftdebug.c' */
- extern int ft_trace_levels [ trace_count ];
+ /* defining the array of trace levels, provided by `src/base/ftdebug.c' */
+ extern int ft_trace_levels[trace_count];
-# undef FT_TRACE_DEF
+#undef FT_TRACE_DEF
#endif /* FT_DEBUG_LEVEL_TRACE */
-
/*************************************************************************/
/* */
/* Define the FT_TRACE macro */
@@ -78,7 +77,7 @@
#ifdef FT_DEBUG_LEVEL_TRACE
-# define FT_TRACE( level, varformat ) \
+#define FT_TRACE( level, varformat ) \
do \
{ \
if ( ft_trace_levels[FT_COMPONENT] >= level ) \
@@ -87,10 +86,11 @@
#else /* !FT_DEBUG_LEVEL_TRACE */
-# define FT_TRACE( level, varformat ) do ; while ( 0 ) /* nothing */
+#define FT_TRACE( level, varformat ) do ; while ( 0 ) /* nothing */
#endif /* !FT_DEBUG_LEVEL_TRACE */
+
/*************************************************************************/
/* */
/* You need two opening resp. closing parentheses! */
@@ -109,7 +109,6 @@
#define FT_TRACE7( varformat ) FT_TRACE( 7, varformat )
-
/*************************************************************************/
/* */
/* Define the FT_ERROR macro */
@@ -118,11 +117,11 @@
#ifdef FT_DEBUG_LEVEL_ERROR
-# define FT_ERROR( varformat ) FT_Message varformat
+#define FT_ERROR( varformat ) FT_Message varformat
#else /* !FT_DEBUG_LEVEL_ERROR */
-# define FT_ERROR( varformat ) do ; while ( 0 ) /* nothing */
+#define FT_ERROR( varformat ) do ; while ( 0 ) /* nothing */
#endif /* !FT_DEBUG_LEVEL_ERROR */
@@ -145,7 +144,7 @@
#else /* !FT_DEBUG_LEVEL_ERROR */
-# define FT_ASSERT( condition ) do ; while ( 0 )
+#define FT_ASSERT( condition ) do ; while ( 0 )
#endif /* !FT_DEBUG_LEVEL_ERROR */
@@ -169,7 +168,6 @@
FT_Panic( const char* fmt, ... );
#endif /* FT_DEBUG_LEVEL_ERROR */
-
FT_BASE( void ) ft_debug_init( void );
--- a/include/freetype/internal/ftobjs.h
+++ b/include/freetype/internal/ftobjs.h
@@ -450,171 +450,6 @@
/*************************************************************************/
/**** ****/
/**** ****/
- /**** V A L I D A T O R ****/
- /**** ****/
- /**** ****/
- /*************************************************************************/
- /*************************************************************************/
- /*************************************************************************/
-
- typedef struct FT_ValidatorRec_* FT_Validator;
-
-/*********************************************************************
- *
- * there are three distinct validation levels here:
- *
- * DEFAULT ::
- * used to perform normal checks. A table validated with this setting
- * is sufficiently correct to be used reliably by FreeType
- *
- * TIGHT ::
- * this is more strict than default. A table validated with this setting
- * is sufficiently correct to be used reliablity by FreeType and to not
- * contain invalid data (that will not crash FreeType or produce bogus
- * warnings). This is used to spot font converter/generation tool
- * bugs..
- *
- * for example, a CharMap table could map a given character code to
- * a glyph index that is larger than the number of available glyphs
- * in the font. Such a table would not pass the "TIGHT" validation
- * even though it can be used safely with FreeType (which will later
- * report errors when trying to load the glyph, for example..)
- *
- *
- * PARANOID ::
- * in this mode, everything is checked to the maximum, and according
- * to the specification(s) defining the tables being checked. Really
- * useful for font fascists and to spot really weird font artefacts.
- *
- * Beware that most fonts will simply not pass this validation level
- * though !!
- */
- typedef enum
- {
- FT_VALIDATE_DEFAULT = 0,
- FT_VALIDATE_TIGHT,
- FT_VALIDATE_PARANOID
-
- } FT_ValidationLevel;
-
-
-/**********************************************************************
- *
- * to use it, you need something like:
- *
- * valid->error = 0;
- *
- * if ( setjmp( valid->jump_buffer ) == 0 )
- * validate_table( table_data, .... );
- *
- * return valid->error;
- *
- */
- typedef struct FT_ValidatorRec_
- {
- FT_Byte* base; /* address of table in memory */
- FT_Byte* limit; /* base + size of table in bytes */
-
- FT_Error error; /* error code. 0 in case of success */
- FT_ValidationLevel level; /* validation level.. */
- FT_UInt num_glyphs; /* if level >= FT_VALIDATE_TIGHT only */
-
- jmp_buf jump_buffer;
-
- } FT_ValidatorRec;
-
-
- /* call this function when an error is detected during validation. this */
- /* will set the error and call 'longjmp' to return to the top-level */
- /* caller of the validation routine.. */
- /* */
- FT_BASE( void )
- ft_validator_error( FT_Validator valid,
- FT_Error error );
-
- /* this macro assumes that the local variable 'valid' points to the */
- /* current validator structure.. */
-#define FT_INVALID(e) ft_validator_error( valid, e )
-
- /* a few "common" errors in font tables */
-#define FT_INVALID_TOO_SHORT FT_INVALID( FT_Err_Invalid_Table )
-#define FT_INVALID_OFFSET FT_INVALID( FT_Err_Invalid_Offset )
-#define FT_INVALID_GLYPH_ID FT_INVALID( FT_Err_Invalid_Table )
-
-
- /*************************************************************************/
- /*************************************************************************/
- /*************************************************************************/
- /**** ****/
- /**** ****/
- /**** C H A R M A P S ****/
- /**** ****/
- /**** ****/
- /*************************************************************************/
- /*************************************************************************/
- /*************************************************************************/
-
- /* handle to internal charmap object */
- typedef struct FT_CMapRec_* FT_CMap;
-
- /* handle to charmap class structure */
- typedef const struct FT_CMap_ClassRec_* FT_CMap_Class;
-
-
- /* internal charmap object structure, sub-class of 'FT_CharMapRec' */
- typedef struct FT_CMapRec_
- {
- FT_CharMapRec charmap;
- FT_CMap_Class clazz;
- FT_Pointer data; /* passed to validate/index/next methods */
-
- } FT_CMapRec;
-
- /* useful macros */
-#define FT_CMAP(x) ((FT_CMap)(x))
-#define FT_CMAP_FACE(x) (FT_CMAP(x)->charmap.face)
-#define FT_CMAP_PLATFORM_ID(x) (FT_CMAP(x)->charmap.platform_id)
-#define FT_CMAP_ENCODING_ID(x) (FT_CMAP(x)->charmap.encoding_id)
-#define FT_CMAP_ENCODING(x) (FT_CMAP(x)->charmap.encoding)
-
-
- /* charmap initializer */
- typedef FT_Error (*FT_CMap_InitFunc)( FT_CMap cmap );
-
- /* charmap finalizer */
- typedef void (*FT_CMap_DoneFunc)( FT_CMap cmap );
-
- /* charmap validation routine */
- typedef FT_Error (*FT_CMap_ValidateFunc)( FT_Pointer cmap_data,
- FT_Validator valid );
-
- /* charmap charcode to glyph index mapping function */
- typedef FT_UInt (*FT_CMap_CharIndexFunc)( FT_Pointer cmap_data,
- FT_ULong char_code );
-
- /* charmap charcode increment function */
- typedef FT_ULong (*FT_CMap_CharNextFunc)( FT_Pointer cmap_data,
- FT_ULong char_code,
- FT_UInt *agindex );
-
- /* charmap class */
- typedef struct FT_CMap_ClassRec_
- {
- FT_ULong size; /* size in bytes */
- FT_CMap_InitFunc init;
- FT_CMap_DoneFunc done;
- FT_CMap_ValidateFunc validate;
- FT_CMap_CharIndexFunc char_index;
- FT_CMap_CharNextFunc char_next;
-
- } FT_CMap_ClassRec;
-
-
- /*************************************************************************/
- /*************************************************************************/
- /*************************************************************************/
- /**** ****/
- /**** ****/
/**** R E N D E R E R S ****/
/**** ****/
/**** ****/
--- a/src/base/ftdebug.c
+++ b/src/base/ftdebug.c
@@ -85,12 +85,12 @@
#ifdef FT_DEBUG_LEVEL_TRACE
/* array of trace levels, initialized to 0 */
- int ft_trace_levels[ trace_count ];
+ int ft_trace_levels[trace_count];
- /* define array of trace toggle names */
-#define FT_TRACE_DEF(x) #x ,
+ /* define array of trace toggle names */
+#define FT_TRACE_DEF(x) #x ,
- static const char* ft_trace_toggles[ trace_count+1 ] =
+ static const char* ft_trace_toggles[trace_count + 1] =
{
#include FT_INTERNAL_TRACE_H
NULL
@@ -99,25 +99,24 @@
#undef FT_TRACE_DEF
-
- /************************************************************************
- *
- * initialize the tracing sub-system, this is done by retrieving the
- * value of the "FT2_DEBUG" environment variable. It must be a list of
- * toggles, separated by spaces, ';' or ':' for example:
- *
- * "any=3 memory=6 stream=5"
- *
- * will request that all levels be set to 3, except the trace level for
- * the memory and stream components which are respectively set to 6 and 5
- *
- * see the file <freetype/internal/fttrace.h> for details of the available
- * toggle names.
- *
- * the level is between 0 and 6, where 0 is quiet (except in important
- * runtime errors), and 6 is _very_ verbose
- */
-
+ /*************************************************************************/
+ /* */
+ /* Initialize the tracing sub-system. This is done by retrieving the */
+ /* value of the "FT2_DEBUG" environment variable. It must be a list of */
+ /* toggles, separated by spaces, `;' or `:'. Example: */
+ /* */
+ /* "any=3 memory=6 stream=5" */
+ /* */
+ /* This will request that all levels be set to 3, except the trace level */
+ /* for the memory and stream components which are set to 6 and 5, */
+ /* respectively. */
+ /* */
+ /* See the file <freetype/internal/fttrace.h> for details of the */
+ /* available toggle names. */
+ /* */
+ /* The level must be between 0 and 6; 0 means quiet (except for serious */
+ /* runtime errors), and 6 means _very_ verbose. */
+ /* */
FT_BASE_DEF( void )
ft_debug_init( void )
{
@@ -128,6 +127,7 @@
const char* p = ft2_debug;
const char* q;
+
for ( ; *p; p++ )
{
/* skip leading whitespace and separators */
@@ -144,10 +144,12 @@
int n, i, len = p - q;
int level = -1, found = -1;
+
for ( n = 0; n < trace_count; n++ )
{
const char* toggle = ft_trace_toggles[n];
+
for ( i = 0; i < len; i++ )
{
if ( toggle[i] != q[i] )
@@ -179,7 +181,7 @@
ft_trace_levels[n] = level;
}
else
- ft_trace_levels[ found ] = level;
+ ft_trace_levels[found] = level;
}
}
}