Synchronize `ftdebug.c' files.
* builds/amiga/src/base/ftdebug.c, builds/wince/ftdebug.c, builds/windows/ftdebug.c: Synchronize with `src/base/ftdebug.c'.
This commit is contained in:
parent
97c7944f9e
commit
f8af8fba78
|
@ -1,3 +1,10 @@
|
||||||
|
2018-09-05 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
|
Synchronize `ftdebug.c' files.
|
||||||
|
|
||||||
|
* builds/amiga/src/base/ftdebug.c, builds/wince/ftdebug.c,
|
||||||
|
builds/windows/ftdebug.c: Synchronize with `src/base/ftdebug.c'.
|
||||||
|
|
||||||
2018-09-05 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
|
2018-09-05 Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>
|
||||||
|
|
||||||
Add documentation guidelines file.
|
Add documentation guidelines file.
|
||||||
|
|
|
@ -1,60 +1,62 @@
|
||||||
/***************************************************************************/
|
/****************************************************************************
|
||||||
/* */
|
*
|
||||||
/* ftdebug.c */
|
* ftdebug.c
|
||||||
/* */
|
*
|
||||||
/* Debugging and logging component for amiga (body). */
|
* Debugging and logging component for amiga (body).
|
||||||
/* */
|
*
|
||||||
/* Copyright 1996-2018 by */
|
* Copyright 1996-2018 by
|
||||||
/* David Turner, Robert Wilhelm, Werner Lemberg and Detlef Würkner. */
|
* David Turner, Robert Wilhelm, Werner Lemberg, and Detlef Wuerkner.
|
||||||
/* */
|
*
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
* This file is part of the FreeType project, and may only be used,
|
||||||
/* modified, and distributed under the terms of the FreeType project */
|
* modified, and distributed under the terms of the FreeType project
|
||||||
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
|
* license, LICENSE.TXT. By continuing to use, modify, or distribute
|
||||||
/* this file you indicate that you have read the license and */
|
* this file you indicate that you have read the license and
|
||||||
/* understand and accept it fully. */
|
* understand and accept it fully.
|
||||||
/* */
|
*
|
||||||
/***************************************************************************/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
/**************************************************************************
|
||||||
/* */
|
*
|
||||||
/* This component contains various macros and functions used to ease the */
|
* This component contains various macros and functions used to ease the
|
||||||
/* debugging of the FreeType engine. Its main purpose is in assertion */
|
* debugging of the FreeType engine. Its main purpose is in assertion
|
||||||
/* checking, tracing, and error detection. */
|
* checking, tracing, and error detection.
|
||||||
/* */
|
*
|
||||||
/* There are now three debugging modes: */
|
* There are now three debugging modes:
|
||||||
/* */
|
*
|
||||||
/* - trace mode */
|
* - trace mode
|
||||||
/* */
|
*
|
||||||
/* Error and trace messages are sent to the log file (which can be the */
|
* Error and trace messages are sent to the log file (which can be the
|
||||||
/* standard error output). */
|
* standard error output).
|
||||||
/* */
|
*
|
||||||
/* - error mode */
|
* - error mode
|
||||||
/* */
|
*
|
||||||
/* Only error messages are generated. */
|
* Only error messages are generated.
|
||||||
/* */
|
*
|
||||||
/* - release mode: */
|
* - release mode:
|
||||||
/* */
|
*
|
||||||
/* No error message is sent or generated. The code is free from any */
|
* No error message is sent or generated. The code is free from any
|
||||||
/* debugging parts. */
|
* debugging parts.
|
||||||
/* */
|
*
|
||||||
/*************************************************************************/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Based on the default ftdebug.c,
|
* Based on the default `ftdebug.c' file,
|
||||||
* replaced vprintf() with KVPrintF(),
|
* replaced `vprintf' with `KVPrintF',
|
||||||
* commented out exit(),
|
* commented out `exit',
|
||||||
* replaced getenv() with GetVar().
|
* replaced `getenv' with `GetVar'.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <exec/types.h>
|
#include <exec/types.h>
|
||||||
#include <utility/tagitem.h>
|
#include <utility/tagitem.h>
|
||||||
#include <dos/exall.h>
|
#include <dos/exall.h>
|
||||||
#include <dos/var.h>
|
#include <dos/var.h>
|
||||||
|
|
||||||
#define __NOLIBBASE__
|
#define __NOLIBBASE__
|
||||||
#define __NOLOBALIFACE__
|
#define __NOLOBALIFACE__
|
||||||
#define __USE_INLINE__
|
#define __USE_INLINE__
|
||||||
|
|
||||||
#include <proto/dos.h>
|
#include <proto/dos.h>
|
||||||
#include <clib/debug_protos.h>
|
#include <clib/debug_protos.h>
|
||||||
|
|
||||||
|
@ -70,7 +72,7 @@
|
||||||
#include FT_INTERNAL_DEBUG_H
|
#include FT_INTERNAL_DEBUG_H
|
||||||
|
|
||||||
|
|
||||||
#if defined( FT_DEBUG_LEVEL_ERROR )
|
#ifdef FT_DEBUG_LEVEL_ERROR
|
||||||
|
|
||||||
/* documentation is in ftdebug.h */
|
/* documentation is in ftdebug.h */
|
||||||
|
|
||||||
|
@ -111,9 +113,19 @@
|
||||||
int line,
|
int line,
|
||||||
const char* file )
|
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( error );
|
||||||
FT_UNUSED( line );
|
FT_UNUSED( line );
|
||||||
FT_UNUSED( file );
|
FT_UNUSED( file );
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -124,9 +136,16 @@
|
||||||
|
|
||||||
#ifdef FT_DEBUG_LEVEL_TRACE
|
#ifdef FT_DEBUG_LEVEL_TRACE
|
||||||
|
|
||||||
/* array of trace levels, initialized to 0 */
|
/* array of trace levels, initialized to 0; */
|
||||||
int ft_trace_levels[trace_count];
|
/* this gets adjusted at run-time */
|
||||||
|
static int ft_trace_levels_enabled[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 array of trace toggle names */
|
||||||
#define FT_TRACE_DEF( x ) #x ,
|
#define FT_TRACE_DEF( x ) #x ,
|
||||||
|
@ -164,28 +183,46 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
/* documentation is in ftdebug.h */
|
||||||
/* */
|
|
||||||
/* Initialize the tracing sub-system. This is done by retrieving the */
|
FT_BASE_DEF( void )
|
||||||
/* value of the `FT2_DEBUG' environment variable. It must be a list of */
|
FT_Trace_Disable( void )
|
||||||
/* toggles, separated by spaces, `;', or `,'. Example: */
|
{
|
||||||
/* */
|
ft_trace_levels = ft_trace_levels_disabled;
|
||||||
/* 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, */
|
/* documentation is in ftdebug.h */
|
||||||
/* respectively. */
|
|
||||||
/* */
|
FT_BASE_DEF( void )
|
||||||
/* See the file `include/freetype/internal/fttrace.h' for details of the */
|
FT_Trace_Enable( void )
|
||||||
/* available toggle names. */
|
{
|
||||||
/* */
|
ft_trace_levels = ft_trace_levels_enabled;
|
||||||
/* The level must be between 0 and 7; 0 means quiet (except for serious */
|
}
|
||||||
/* runtime errors), and 7 means _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:
|
||||||
|
*
|
||||||
|
* 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_BASE_DEF( void )
|
||||||
ft_debug_init( void )
|
ft_debug_init( void )
|
||||||
{
|
{
|
||||||
/* const char* ft2_debug = getenv( "FT2_DEBUG" ); */
|
/* const char* ft2_debug = ft_getenv( "FT2_DEBUG" ); */
|
||||||
char buf[256];
|
char buf[256];
|
||||||
const char* ft2_debug = &buf[0];
|
const char* ft2_debug = &buf[0];
|
||||||
|
|
||||||
|
@ -250,14 +287,16 @@
|
||||||
{
|
{
|
||||||
/* special case for `any' */
|
/* special case for `any' */
|
||||||
for ( n = 0; n < trace_count; n++ )
|
for ( n = 0; n < trace_count; n++ )
|
||||||
ft_trace_levels[n] = level;
|
ft_trace_levels_enabled[n] = level;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
ft_trace_levels[found] = level;
|
ft_trace_levels_enabled[found] = level;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ft_trace_levels = ft_trace_levels_enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -287,11 +326,23 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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 */
|
#endif /* !FT_DEBUG_LEVEL_TRACE */
|
||||||
|
|
||||||
/*
|
|
||||||
Local Variables:
|
|
||||||
coding: latin-1
|
|
||||||
End:
|
|
||||||
*/
|
|
||||||
/* END */
|
/* END */
|
||||||
|
|
|
@ -1,53 +1,53 @@
|
||||||
/***************************************************************************/
|
/****************************************************************************
|
||||||
/* */
|
*
|
||||||
/* ftdebug.c */
|
* ftdebug.c
|
||||||
/* */
|
*
|
||||||
/* Debugging and logging component for WinCE (body). */
|
* Debugging and logging component for WinCE (body).
|
||||||
/* */
|
*
|
||||||
/* Copyright 1996-2018 by */
|
* Copyright 1996-2018 by
|
||||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
/* */
|
*
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
* This file is part of the FreeType project, and may only be used,
|
||||||
/* modified, and distributed under the terms of the FreeType project */
|
* modified, and distributed under the terms of the FreeType project
|
||||||
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
|
* license, LICENSE.TXT. By continuing to use, modify, or distribute
|
||||||
/* this file you indicate that you have read the license and */
|
* this file you indicate that you have read the license and
|
||||||
/* understand and accept it fully. */
|
* understand and accept it fully.
|
||||||
/* */
|
*
|
||||||
/***************************************************************************/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
/**************************************************************************
|
||||||
/* */
|
*
|
||||||
/* This component contains various macros and functions used to ease the */
|
* This component contains various macros and functions used to ease the
|
||||||
/* debugging of the FreeType engine. Its main purpose is in assertion */
|
* debugging of the FreeType engine. Its main purpose is in assertion
|
||||||
/* checking, tracing, and error detection. */
|
* checking, tracing, and error detection.
|
||||||
/* */
|
*
|
||||||
/* There are now three debugging modes: */
|
* There are now three debugging modes:
|
||||||
/* */
|
*
|
||||||
/* - trace mode */
|
* - trace mode
|
||||||
/* */
|
*
|
||||||
/* Error and trace messages are sent to the log file (which can be the */
|
* Error and trace messages are sent to the log file (which can be the
|
||||||
/* standard error output). */
|
* standard error output).
|
||||||
/* */
|
*
|
||||||
/* - error mode */
|
* - error mode
|
||||||
/* */
|
*
|
||||||
/* Only error messages are generated. */
|
* Only error messages are generated.
|
||||||
/* */
|
*
|
||||||
/* - release mode: */
|
* - release mode:
|
||||||
/* */
|
*
|
||||||
/* No error message is sent or generated. The code is free from any */
|
* No error message is sent or generated. The code is free from any
|
||||||
/* debugging parts. */
|
* debugging parts.
|
||||||
/* */
|
*
|
||||||
/*************************************************************************/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <ft2build.h>
|
#include <ft2build.h>
|
||||||
|
#include FT_FREETYPE_H
|
||||||
#include FT_INTERNAL_DEBUG_H
|
#include FT_INTERNAL_DEBUG_H
|
||||||
|
|
||||||
|
|
||||||
#ifdef FT_DEBUG_LEVEL_ERROR
|
#ifdef FT_DEBUG_LEVEL_ERROR
|
||||||
|
|
||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -55,14 +55,15 @@
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
|
|
||||||
void
|
static void
|
||||||
OutputDebugStringEx( const char* str )
|
OutputDebugStringEx( const char* str )
|
||||||
{
|
{
|
||||||
static WCHAR buf[8192];
|
static WCHAR buf[8192];
|
||||||
|
|
||||||
|
|
||||||
int sz = MultiByteToWideChar( CP_ACP, 0, str, -1, buf,
|
int sz = MultiByteToWideChar( CP_ACP, 0, str, -1, buf,
|
||||||
sizeof ( buf ) / sizeof ( *buf ) );
|
sizeof ( buf ) / sizeof ( *buf ) );
|
||||||
|
|
||||||
|
|
||||||
if ( !sz )
|
if ( !sz )
|
||||||
lstrcpyW( buf, L"OutputDebugStringEx: MultiByteToWideChar failed" );
|
lstrcpyW( buf, L"OutputDebugStringEx: MultiByteToWideChar failed" );
|
||||||
|
|
||||||
|
@ -70,6 +71,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* documentation is in ftdebug.h */
|
||||||
|
|
||||||
FT_BASE_DEF( void )
|
FT_BASE_DEF( void )
|
||||||
FT_Message( const char* fmt,
|
FT_Message( const char* fmt,
|
||||||
... )
|
... )
|
||||||
|
@ -87,6 +90,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* documentation is in ftdebug.h */
|
||||||
|
|
||||||
FT_BASE_DEF( void )
|
FT_BASE_DEF( void )
|
||||||
FT_Panic( const char* fmt,
|
FT_Panic( const char* fmt,
|
||||||
... )
|
... )
|
||||||
|
@ -111,18 +116,38 @@
|
||||||
int line,
|
int line,
|
||||||
const char* file )
|
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( error );
|
||||||
FT_UNUSED( line );
|
FT_UNUSED( line );
|
||||||
FT_UNUSED( file );
|
FT_UNUSED( file );
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* FT_DEBUG_LEVEL_ERROR */
|
||||||
|
|
||||||
|
|
||||||
#ifdef FT_DEBUG_LEVEL_TRACE
|
#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 */
|
/* array of trace levels, always initialized to 0 */
|
||||||
int ft_trace_levels[trace_count];
|
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 array of trace toggle names */
|
||||||
#define FT_TRACE_DEF( x ) #x ,
|
#define FT_TRACE_DEF( x ) #x ,
|
||||||
|
@ -136,24 +161,66 @@
|
||||||
#undef FT_TRACE_DEF
|
#undef FT_TRACE_DEF
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
/* documentation is in ftdebug.h */
|
||||||
/* */
|
|
||||||
/* Initialize the tracing sub-system. This is done by retrieving the */
|
FT_BASE_DEF( FT_Int )
|
||||||
/* value of the "FT2_DEBUG" environment variable. It must be a list of */
|
FT_Trace_Get_Count( void )
|
||||||
/* toggles, separated by spaces, `;' or `,'. Example: */
|
{
|
||||||
/* */
|
return trace_count;
|
||||||
/* "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, */
|
/* documentation is in ftdebug.h */
|
||||||
/* respectively. */
|
|
||||||
/* */
|
FT_BASE_DEF( const char * )
|
||||||
/* See the file `include/freetype/internal/fttrace.h' for details of the */
|
FT_Trace_Get_Name( FT_Int idx )
|
||||||
/* available toggle names. */
|
{
|
||||||
/* */
|
int max = FT_Trace_Get_Count();
|
||||||
/* The level must be between 0 and 6; 0 means quiet (except for serious */
|
|
||||||
/* runtime errors), and 6 means _very_ verbose. */
|
|
||||||
/* */
|
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_BASE_DEF( void )
|
||||||
ft_debug_init( void )
|
ft_debug_init( void )
|
||||||
{
|
{
|
||||||
|
@ -189,8 +256,8 @@
|
||||||
|
|
||||||
if ( *p == ':' && p > q )
|
if ( *p == ':' && p > q )
|
||||||
{
|
{
|
||||||
int n, i, len = (int)( p - q );
|
FT_Int n, i, len = (FT_Int)( p - q );
|
||||||
int level = -1, found = -1;
|
FT_Int level = -1, found = -1;
|
||||||
|
|
||||||
|
|
||||||
for ( n = 0; n < trace_count; n++ )
|
for ( n = 0; n < trace_count; n++ )
|
||||||
|
@ -224,16 +291,18 @@
|
||||||
{
|
{
|
||||||
if ( found == trace_any )
|
if ( found == trace_any )
|
||||||
{
|
{
|
||||||
/* special case for "any" */
|
/* special case for `any' */
|
||||||
for ( n = 0; n < trace_count; n++ )
|
for ( n = 0; n < trace_count; n++ )
|
||||||
ft_trace_levels[n] = level;
|
ft_trace_levels_enabled[n] = level;
|
||||||
}
|
}
|
||||||
else
|
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 */
|
/* END */
|
||||||
|
|
|
@ -1,47 +1,48 @@
|
||||||
/***************************************************************************/
|
/****************************************************************************
|
||||||
/* */
|
*
|
||||||
/* ftdebug.c */
|
* ftdebug.c
|
||||||
/* */
|
*
|
||||||
/* Debugging and logging component for Win32 (body). */
|
* Debugging and logging component for Win32 (body).
|
||||||
/* */
|
*
|
||||||
/* Copyright 1996-2018 by */
|
* Copyright 1996-2018 by
|
||||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
* David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||||
/* */
|
*
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
* This file is part of the FreeType project, and may only be used,
|
||||||
/* modified, and distributed under the terms of the FreeType project */
|
* modified, and distributed under the terms of the FreeType project
|
||||||
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
|
* license, LICENSE.TXT. By continuing to use, modify, or distribute
|
||||||
/* this file you indicate that you have read the license and */
|
* this file you indicate that you have read the license and
|
||||||
/* understand and accept it fully. */
|
* understand and accept it fully.
|
||||||
/* */
|
*
|
||||||
/***************************************************************************/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
/**************************************************************************
|
||||||
/* */
|
*
|
||||||
/* This component contains various macros and functions used to ease the */
|
* This component contains various macros and functions used to ease the
|
||||||
/* debugging of the FreeType engine. Its main purpose is in assertion */
|
* debugging of the FreeType engine. Its main purpose is in assertion
|
||||||
/* checking, tracing, and error detection. */
|
* checking, tracing, and error detection.
|
||||||
/* */
|
*
|
||||||
/* There are now three debugging modes: */
|
* There are now three debugging modes:
|
||||||
/* */
|
*
|
||||||
/* - trace mode */
|
* - trace mode
|
||||||
/* */
|
*
|
||||||
/* Error and trace messages are sent to the log file (which can be the */
|
* Error and trace messages are sent to the log file (which can be the
|
||||||
/* standard error output). */
|
* standard error output).
|
||||||
/* */
|
*
|
||||||
/* - error mode */
|
* - error mode
|
||||||
/* */
|
*
|
||||||
/* Only error messages are generated. */
|
* Only error messages are generated.
|
||||||
/* */
|
*
|
||||||
/* - release mode: */
|
* - release mode:
|
||||||
/* */
|
*
|
||||||
/* No error message is sent or generated. The code is free from any */
|
* No error message is sent or generated. The code is free from any
|
||||||
/* debugging parts. */
|
* debugging parts.
|
||||||
/* */
|
*
|
||||||
/*************************************************************************/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <ft2build.h>
|
#include <ft2build.h>
|
||||||
|
#include FT_FREETYPE_H
|
||||||
#include FT_INTERNAL_DEBUG_H
|
#include FT_INTERNAL_DEBUG_H
|
||||||
|
|
||||||
|
|
||||||
|
@ -99,19 +100,38 @@
|
||||||
int line,
|
int line,
|
||||||
const char* file )
|
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( error );
|
||||||
FT_UNUSED( line );
|
FT_UNUSED( line );
|
||||||
FT_UNUSED( file );
|
FT_UNUSED( file );
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* FT_DEBUG_LEVEL_ERROR */
|
||||||
|
|
||||||
|
|
||||||
#ifdef FT_DEBUG_LEVEL_TRACE
|
#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 */
|
/* array of trace levels, always initialized to 0 */
|
||||||
int ft_trace_levels[trace_count];
|
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 array of trace toggle names */
|
||||||
#define FT_TRACE_DEF( x ) #x ,
|
#define FT_TRACE_DEF( x ) #x ,
|
||||||
|
@ -125,24 +145,66 @@
|
||||||
#undef FT_TRACE_DEF
|
#undef FT_TRACE_DEF
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************/
|
/* documentation is in ftdebug.h */
|
||||||
/* */
|
|
||||||
/* Initialize the tracing sub-system. This is done by retrieving the */
|
FT_BASE_DEF( FT_Int )
|
||||||
/* value of the "FT2_DEBUG" environment variable. It must be a list of */
|
FT_Trace_Get_Count( void )
|
||||||
/* toggles, separated by spaces, `;' or `,'. Example: */
|
{
|
||||||
/* */
|
return trace_count;
|
||||||
/* "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, */
|
/* documentation is in ftdebug.h */
|
||||||
/* respectively. */
|
|
||||||
/* */
|
FT_BASE_DEF( const char * )
|
||||||
/* See the file `include/freetype/internal/fttrace.h' for details of the */
|
FT_Trace_Get_Name( FT_Int idx )
|
||||||
/* available toggle names. */
|
{
|
||||||
/* */
|
int max = FT_Trace_Get_Count();
|
||||||
/* The level must be between 0 and 6; 0 means quiet (except for serious */
|
|
||||||
/* runtime errors), and 6 means _very_ verbose. */
|
|
||||||
/* */
|
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_BASE_DEF( void )
|
||||||
ft_debug_init( void )
|
ft_debug_init( void )
|
||||||
{
|
{
|
||||||
|
@ -171,8 +233,8 @@
|
||||||
|
|
||||||
if ( *p == ':' && p > q )
|
if ( *p == ':' && p > q )
|
||||||
{
|
{
|
||||||
int n, i, len = (int)( p - q );
|
FT_Int n, i, len = (FT_Int)( p - q );
|
||||||
int level = -1, found = -1;
|
FT_Int level = -1, found = -1;
|
||||||
|
|
||||||
|
|
||||||
for ( n = 0; n < trace_count; n++ )
|
for ( n = 0; n < trace_count; n++ )
|
||||||
|
@ -206,16 +268,18 @@
|
||||||
{
|
{
|
||||||
if ( found == trace_any )
|
if ( found == trace_any )
|
||||||
{
|
{
|
||||||
/* special case for "any" */
|
/* special case for `any' */
|
||||||
for ( n = 0; n < trace_count; n++ )
|
for ( n = 0; n < trace_count; n++ )
|
||||||
ft_trace_levels[n] = level;
|
ft_trace_levels_enabled[n] = level;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
ft_trace_levels[found] = level;
|
ft_trace_levels_enabled[found] = level;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ft_trace_levels = ft_trace_levels_enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -229,9 +293,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 */
|
/* END */
|
||||||
|
|
Loading…
Reference in New Issue