diff options
Diffstat (limited to 'src/base/ftdebug.c')
-rw-r--r-- | src/base/ftdebug.c | 63 |
1 files changed, 53 insertions, 10 deletions
diff --git a/src/base/ftdebug.c b/src/base/ftdebug.c index 48a214380..d8ccd8013 100644 --- a/src/base/ftdebug.c +++ b/src/base/ftdebug.c @@ -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 */ |