diff options
author | Werner Lemberg <wl@gnu.org> | 2018-09-05 12:16:56 +0200 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2018-09-05 12:16:56 +0200 |
commit | f8af8fba78ac7180674ac05493b8afed7e055cf9 (patch) | |
tree | 1b99fb4cc8bd99329b4d9fe49c222168ee50a415 /builds/wince | |
parent | 97c7944f9ec2f1f992d0fbad45995da95f4e260a (diff) | |
download | freetype2-f8af8fba78ac7180674ac05493b8afed7e055cf9.tar.gz |
Synchronize `ftdebug.c' files.
* builds/amiga/src/base/ftdebug.c, builds/wince/ftdebug.c,
builds/windows/ftdebug.c: Synchronize with `src/base/ftdebug.c'.
Diffstat (limited to 'builds/wince')
-rw-r--r-- | builds/wince/ftdebug.c | 243 |
1 files changed, 171 insertions, 72 deletions
diff --git a/builds/wince/ftdebug.c b/builds/wince/ftdebug.c index 83c5f4479..b91870a49 100644 --- a/builds/wince/ftdebug.c +++ b/builds/wince/ftdebug.c @@ -1,53 +1,53 @@ -/***************************************************************************/ -/* */ -/* ftdebug.c */ -/* */ -/* Debugging and logging component for WinCE (body). */ -/* */ -/* Copyright 1996-2018 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 component contains various macros and functions used to ease the */ - /* debugging of the FreeType engine. Its main purpose is in assertion */ - /* checking, tracing, and error detection. */ - /* */ - /* There are now three debugging modes: */ - /* */ - /* - trace mode */ - /* */ - /* Error and trace messages are sent to the log file (which can be the */ - /* standard error output). */ - /* */ - /* - error mode */ - /* */ - /* Only error messages are generated. */ - /* */ - /* - release mode: */ - /* */ - /* No error message is sent or generated. The code is free from any */ - /* debugging parts. */ - /* */ - /*************************************************************************/ +/**************************************************************************** + * + * ftdebug.c + * + * Debugging and logging component for WinCE (body). + * + * Copyright 1996-2018 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 component contains various macros and functions used to ease the + * debugging of the FreeType engine. Its main purpose is in assertion + * checking, tracing, and error detection. + * + * There are now three debugging modes: + * + * - trace mode + * + * Error and trace messages are sent to the log file (which can be the + * standard error output). + * + * - error mode + * + * Only error messages are generated. + * + * - release mode: + * + * No error message is sent or generated. The code is free from any + * debugging parts. + * + */ #include <ft2build.h> +#include FT_FREETYPE_H #include FT_INTERNAL_DEBUG_H #ifdef FT_DEBUG_LEVEL_ERROR - #include <stdarg.h> #include <stdlib.h> #include <string.h> @@ -55,14 +55,15 @@ #include <windows.h> - void + static void OutputDebugStringEx( const char* str ) { static WCHAR buf[8192]; + int sz = MultiByteToWideChar( CP_ACP, 0, str, -1, buf, + sizeof ( buf ) / sizeof ( *buf ) ); + - int sz = MultiByteToWideChar( CP_ACP, 0, str, -1, buf, - sizeof ( buf ) / sizeof ( *buf ) ); if ( !sz ) lstrcpyW( buf, L"OutputDebugStringEx: MultiByteToWideChar failed" ); @@ -70,6 +71,8 @@ } + /* documentation is in ftdebug.h */ + FT_BASE_DEF( void ) FT_Message( const char* fmt, ... ) @@ -87,6 +90,8 @@ } + /* documentation is in ftdebug.h */ + FT_BASE_DEF( void ) FT_Panic( const char* fmt, ... ) @@ -111,18 +116,38 @@ int line, const char* file ) { +#if 0 + /* activating the code in this block makes FreeType very chatty */ + fprintf( stderr, + "%s:%d: error 0x%02x: %s\n", + file, + line, + error, + FT_Error_String( error ) ); +#else FT_UNUSED( error ); FT_UNUSED( line ); FT_UNUSED( file ); +#endif return 0; } +#endif /* FT_DEBUG_LEVEL_ERROR */ + + #ifdef FT_DEBUG_LEVEL_TRACE + /* array of trace levels, initialized to 0; */ + /* this gets adjusted at run-time */ + static int ft_trace_levels_enabled[trace_count]; - /* array of trace levels, initialized to 0 */ - int ft_trace_levels[trace_count]; + /* array of trace levels, always initialized to 0 */ + static int ft_trace_levels_disabled[trace_count]; + + /* a pointer to either `ft_trace_levels_enabled' */ + /* or `ft_trace_levels_disabled' */ + int* ft_trace_levels; /* define array of trace toggle names */ #define FT_TRACE_DEF( x ) #x , @@ -136,24 +161,66 @@ #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 `,'. 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 `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 */ - /* runtime errors), and 6 means _very_ verbose. */ - /* */ + /* documentation is in ftdebug.h */ + + FT_BASE_DEF( FT_Int ) + FT_Trace_Get_Count( void ) + { + return trace_count; + } + + + /* documentation is in ftdebug.h */ + + FT_BASE_DEF( const char * ) + FT_Trace_Get_Name( FT_Int idx ) + { + int max = FT_Trace_Get_Count(); + + + if ( idx < max ) + return ft_trace_toggles[idx]; + else + return NULL; + } + + + /* documentation is in ftdebug.h */ + + FT_BASE_DEF( void ) + FT_Trace_Disable( void ) + { + ft_trace_levels = ft_trace_levels_disabled; + } + + + /* documentation is in ftdebug.h */ + + FT_BASE_DEF( void ) + FT_Trace_Enable( void ) + { + ft_trace_levels = ft_trace_levels_enabled; + } + + + /************************************************************************** + * + * 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: + * + * export FT2_DEBUG="any:3 memory:7 stream:5" + * + * This requests that all levels be set to 3, except the trace level for + * the memory and stream components which are set to 7 and 5, + * respectively. + * + * See the file `include/freetype/internal/fttrace.h' for details of + * the available toggle names. + * + * The level must be between 0 and 7; 0 means quiet (except for serious + * runtime errors), and 7 means _very_ verbose. + */ FT_BASE_DEF( void ) ft_debug_init( void ) { @@ -189,8 +256,8 @@ if ( *p == ':' && p > q ) { - int n, i, len = (int)( p - q ); - int level = -1, found = -1; + FT_Int n, i, len = (FT_Int)( p - q ); + FT_Int level = -1, found = -1; for ( n = 0; n < trace_count; n++ ) @@ -224,16 +291,18 @@ { if ( found == trace_any ) { - /* special case for "any" */ + /* special case for `any' */ for ( n = 0; n < trace_count; n++ ) - ft_trace_levels[n] = level; + ft_trace_levels_enabled[n] = level; } else - ft_trace_levels[found] = level; + ft_trace_levels_enabled[found] = level; } } } } + + ft_trace_levels = ft_trace_levels_enabled; } @@ -247,9 +316,39 @@ } -#endif /* !FT_DEBUG_LEVEL_TRACE */ + FT_BASE_DEF( FT_Int ) + FT_Trace_Get_Count( void ) + { + return 0; + } -#endif /* FT_DEBUG_LEVEL_ERROR */ + + FT_BASE_DEF( const char * ) + FT_Trace_Get_Name( FT_Int idx ) + { + FT_UNUSED( idx ); + + return NULL; + } + + + FT_BASE_DEF( void ) + FT_Trace_Disable( void ) + { + /* nothing */ + } + + + /* documentation is in ftdebug.h */ + + FT_BASE_DEF( void ) + FT_Trace_Enable( void ) + { + /* nothing */ + } + + +#endif /* !FT_DEBUG_LEVEL_TRACE */ /* END */ |