|
|
|
@ -4,7 +4,7 @@ |
|
|
|
|
/* */ |
|
|
|
|
/* Debugging and logging component (body). */ |
|
|
|
|
/* */ |
|
|
|
|
/* 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, */ |
|
|
|
@ -82,8 +82,9 @@ |
|
|
|
|
/* array of trace levels, initialized to 0 */ |
|
|
|
|
int ft_trace_levels[trace_count]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* define array of trace toggle names */ |
|
|
|
|
#define FT_TRACE_DEF(x) #x , |
|
|
|
|
#define FT_TRACE_DEF( x ) #x , |
|
|
|
|
|
|
|
|
|
static const char* ft_trace_toggles[trace_count + 1] = |
|
|
|
|
{ |
|
|
|
@ -94,19 +95,43 @@ |
|
|
|
|
#undef FT_TRACE_DEF |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* documentation is in ftdebug.h */ |
|
|
|
|
|
|
|
|
|
FT_EXPORT_DEF( FT_Int ) |
|
|
|
|
FT_Trace_Get_Count( void ) |
|
|
|
|
{ |
|
|
|
|
return trace_count; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* documentation is in ftdebug.h */ |
|
|
|
|
|
|
|
|
|
FT_EXPORT_DEF( const char * ) |
|
|
|
|
FT_Trace_Get_Name( FT_Int index ) |
|
|
|
|
{ |
|
|
|
|
int max = FT_Trace_Get_Count(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ( index < max ) |
|
|
|
|
return ft_trace_toggles[index]; |
|
|
|
|
else |
|
|
|
|
return NULL; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************************/ |
|
|
|
|
/* */ |
|
|
|
|
/* 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: */ |
|
|
|
|
/* 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" */ |
|
|
|
|
/* export FT2_DEBUG="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, */ |
|
|
|
|
/* This requests 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 */ |
|
|
|
|
/* See the file <include/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 */ |
|
|
|
@ -117,6 +142,7 @@ |
|
|
|
|
{ |
|
|
|
|
const char* ft2_debug = getenv( "FT2_DEBUG" ); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ( ft2_debug ) |
|
|
|
|
{ |
|
|
|
|
const char* p = ft2_debug; |
|
|
|
@ -136,7 +162,7 @@ |
|
|
|
|
|
|
|
|
|
if ( *p == ':' && p > q ) |
|
|
|
|
{ |
|
|
|
|
FT_Int n, i, len = (FT_Int)(p - q); |
|
|
|
|
FT_Int n, i, len = (FT_Int)( p - q ); |
|
|
|
|
FT_Int level = -1, found = -1; |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -171,7 +197,7 @@ |
|
|
|
|
{ |
|
|
|
|
if ( found == trace_any ) |
|
|
|
|
{ |
|
|
|
|
/* special case for "any" */ |
|
|
|
|
/* special case for `any' */ |
|
|
|
|
for ( n = 0; n < trace_count; n++ ) |
|
|
|
|
ft_trace_levels[n] = level; |
|
|
|
|
} |
|
|
|
@ -183,14 +209,31 @@ |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#else /* !FT_DEBUG_LEVEL_TRACE */ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FT_BASE_DEF( void ) |
|
|
|
|
ft_debug_init( void ) |
|
|
|
|
{ |
|
|
|
|
/* nothing */ |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FT_EXPORT_DEF( FT_Int ) |
|
|
|
|
FT_Trace_Get_Count( void )
|
|
|
|
|
{ |
|
|
|
|
return 0;
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FT_EXPORT_DEF( const char * ) |
|
|
|
|
FT_Trace_Get_Name( FT_Int index )
|
|
|
|
|
{
|
|
|
|
|
return NULL;
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* !FT_DEBUG_LEVEL_TRACE */ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|