Commit 324612ceb24d97563a88415ebc84b3dcb3b935f0

Werner Lemberg 2021-01-31T14:28:44

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.

diff --git a/ChangeLog b/ChangeLog
index 171e73a..119e71d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 2021-01-31  Werner Lemberg  <wl@gnu.org>
 
+	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  <wl@gnu.org>
+
 	* builds/unix/configure.raw: Fix typo.
 
 	Bug introduced in Vincent's last commit bb33f03.
diff --git a/docs/DEBUG b/docs/DEBUG
index 0e24df6..9a5fdc6 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<freetype/ftlogging.h>
+  #include <freetype/ftlogging.h>
 
 to access them.
 
diff --git a/include/freetype/ftlogging.h b/include/freetype/ftlogging.h
index 5c819ac..8811261 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 b0fbd9e..bf40186 100644
--- a/src/base/ftdebug.c
+++ b/src/base/ftdebug.c
@@ -42,6 +42,7 @@
 
 
 #include <freetype/freetype.h>
+#include <freetype/ftlogging.h>
 #include <freetype/internal/ftdebug.h>
 #include <freetype/internal/ftobjs.h>
 
@@ -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 */