diff --git a/ChangeLog b/ChangeLog index 171e73a20..119e71d69 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2021-01-31 Werner Lemberg + + Always provide logging API. + + It's easier to have stubs if FT_DEBUG_LOGGING is undefined than to + modify `ftexport.sym` conditionally. + + Problem reported by Alexei. + + * src/base/ftdebug.c: Include `ftlogging.h`. + + (FT_Trace_Set_Level, FT_Trace_Set_Default_Level, FT_Set_Log_Handler, + FT_Set_Default_Log_Handler) [!FT_DEBUG_LOGGING]: Provide stubs. + 2021-01-31 Werner Lemberg * builds/unix/configure.raw: Fix typo. diff --git a/docs/DEBUG b/docs/DEBUG index 0e24df6cd..9a5fdc6a0 100644 --- a/docs/DEBUG +++ b/docs/DEBUG @@ -260,7 +260,7 @@ IV. Additional Capabilities with `FT_DEBUG_LOGGING' If `FT_DEBUG_LOGGING' is defined, four APIs are available to provide additional debugging support. Use - #include + #include to access them. diff --git a/include/freetype/ftlogging.h b/include/freetype/ftlogging.h index 5c819ac31..8811261b0 100644 --- a/include/freetype/ftlogging.h +++ b/include/freetype/ftlogging.h @@ -66,8 +66,8 @@ FT_BEGIN_HEADER * ``` * * @note: - * This function is only available if compilation option - * `FT_DEBUG_LOGGING` is set. + * This function does nothing if compilation option `FT_DEBUG_LOGGING` + * isn't set. */ FT_EXPORT( void ) FT_Trace_Set_Level( const char* tracing_level ); @@ -85,8 +85,8 @@ FT_BEGIN_HEADER * * * @note: - * This function is only available if compilation option - * `FT_DEBUG_LOGGING` is set. + * This function does nothing if compilation option `FT_DEBUG_LOGGING` + * isn't set. */ FT_EXPORT( void ) FT_Trace_Set_Default_Level( void ); @@ -131,8 +131,8 @@ FT_BEGIN_HEADER * New logging function. * * @note: - * This function is only available if compilation option - * `FT_DEBUG_LOGGING` is set. + * This function does nothing if compilation option `FT_DEBUG_LOGGING` + * isn't set. */ FT_EXPORT( void ) FT_Set_Log_Handler( FT_Custom_Log_Handler handler ); @@ -148,8 +148,8 @@ FT_BEGIN_HEADER * log handler to FreeType's built-in version. * * @note: - * This function is only available if compilation option - * `FT_DEBUG_LOGGING` is set. + * This function does nothing if compilation option `FT_DEBUG_LOGGING` + * isn't set. */ FT_EXPORT( void ) FT_Set_Default_Log_Handler( void ); diff --git a/src/base/ftdebug.c b/src/base/ftdebug.c index b0fbd9eec..bf4018652 100644 --- a/src/base/ftdebug.c +++ b/src/base/ftdebug.c @@ -42,6 +42,7 @@ #include +#include #include #include @@ -589,7 +590,7 @@ /* documentation is in ftlogging.h */ FT_EXPORT_DEF( void ) - FT_Set_Default_Log_Handler() + FT_Set_Default_Log_Handler( void ) { custom_output_handler = NULL; } @@ -608,7 +609,36 @@ va_end( ap ); } -#endif /* FT_DEBUG_LOGGING */ +#else /* !FT_DEBUG_LOGGING */ + + FT_EXPORT_DEF( void ) + FT_Trace_Set_Level( const char* level ) + { + FT_UNUSED( level ); + } + + + FT_EXPORT_DEF( void ) + FT_Trace_Set_Default_Level( void ) + { + /* nothing */ + } + + + FT_EXPORT_DEF( void ) + FT_Set_Log_Handler( FT_Custom_Log_Handler handler ) + { + FT_UNUSED( handler ); + } + + + FT_EXPORT_DEF( void ) + FT_Set_Default_Log_Handler( void ) + { + /* nothing */ + } + +#endif /* !FT_DEBUG_LOGGING */ /* END */