freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2] priyesh_LogLibrary 421bb58: Added functions to initialize an


From: Priyesh Kumar
Subject: [freetype2] priyesh_LogLibrary 421bb58: Added functions to initialize and un-initialize logging
Date: Mon, 29 Jun 2020 12:23:59 -0400 (EDT)

branch: priyesh_LogLibrary
commit 421bb589e67d1bbdd9b052522417481b67cc0a12
Author: Priyeshkkumar <priyeshkkumar@gmail.com>
Commit: Priyeshkkumar <priyeshkkumar@gmail.com>

    Added functions to initialize and un-initialize logging
---
 [priyesh]ChangeLog                  | 13 ++++++++++++-
 include/freetype/internal/ftdebug.h | 19 +++++++++++++++++++
 src/base/ftdebug.c                  | 32 ++++++++++++++++++++++++++++++++
 src/base/ftinit.c                   | 10 ++++++++++
 4 files changed, 73 insertions(+), 1 deletion(-)

diff --git a/[priyesh]ChangeLog b/[priyesh]ChangeLog
index 0f84213..7c91f11 100644
--- a/[priyesh]ChangeLog
+++ b/[priyesh]ChangeLog
@@ -12,4 +12,15 @@
 
     * include/freetype/internal/ftdebug.h: Created an environment for dlg 
       support in FreeType.
-      
\ No newline at end of file
+
+    * include/freetype/internal/ftdebug.h: Added functions `ft_logging_init()` 
and `ft_logging_deinit()` for 
+         initializing and un-initalizing FILE*.
+
+    * src/base/ftdebug.c: 
+       1. Added a FILE* to write logs to file
+       2. Added function definitions for functions 
+      `ft_logging_init()` and `ft_logging_deinit()`.
+
+    * src/base/ftinit.c: 
+      1. Added a function call to `ft_logging_init()` in `FT_Init_FreeType()` 
if FT_LOGGING macro is enabled.
+      2. Added a function call to `ft_logging_deinit()` in 
`FT_Done_FreeType()` if FT_LOGGING macro is enabled.  
\ No newline at end of file
diff --git a/include/freetype/internal/ftdebug.h 
b/include/freetype/internal/ftdebug.h
index 469220c..4bc8104 100644
--- a/include/freetype/internal/ftdebug.h
+++ b/include/freetype/internal/ftdebug.h
@@ -307,6 +307,25 @@ FT_BEGIN_HEADER
   FT_BASE( void )
   ft_debug_init( void );
 
+#ifdef FT_LOGGING
+
+  /************************************************************************
+   * 
+   * If FT_LOGGING macro is enabled, Freetype needs to initialize and 
+   * un-initialize FILE* using following functions
+   * These functions are defined in ftdebug.c
+   * 
+   */ 
+
+  FT_BASE( void )
+  ft_logging_init( void );
+
+  FT_BASE( void )
+  ft_logging_deinit( void );
+
+
+#endif /* FT_LOGGING */  
+
 FT_END_HEADER
 
 #endif /* FTDEBUG_H_ */
diff --git a/src/base/ftdebug.c b/src/base/ftdebug.c
index 62cf680..b5e4a4a 100644
--- a/src/base/ftdebug.c
+++ b/src/base/ftdebug.c
@@ -314,5 +314,37 @@
 
 #endif /* !FT_DEBUG_LEVEL_TRACE */
 
+#ifdef FT_LOGGING
+
+
+  /******************************************************************
+   * If FT_LOGGING is enabled FreeType needs a FILE* to write logs 
+   * to file.
+   */
+  static FILE* fileptr = NULL; 
+
+
+
+  /*******************************************************************
+   * 
+   * If FT_LOGGING is enabled, FreeType needs a FILE* to write logs 
+   * therefore it uses `ft_logging_init()` function to initialize a 
+   * FILE* and `ft_logging_deinit()` to un-initialize the FILE*
+   * 
+   */
+  
+  FT_BASE_DEF( void )
+  ft_logging_init( void )
+  {
+    fileptr = fopen( "freetype2.logs", "w" );
+  }
+
+  FT_BASE_DEF( void )
+  ft_logging_deinit( void )
+  {
+    fclose( fileptr );
+  }
+
+#endif /* FT_LOGGING */
 
 /* END */
diff --git a/src/base/ftinit.c b/src/base/ftinit.c
index 0acc75e..24d5dc7 100644
--- a/src/base/ftinit.c
+++ b/src/base/ftinit.c
@@ -202,6 +202,11 @@
     FT_Memory  memory;
 
 
+    /* If logging is enabled initialize the FILE* */
+#ifdef FT_LOGGING
+    ft_logging_init();
+#endif /* FT_LOGGING */
+
     /* check of `alibrary' delayed to `FT_New_Library' */
 
     /* First of all, allocate a new system object -- this function is part */
@@ -248,6 +253,11 @@
     /* discard memory manager */
     FT_Done_Memory( memory );
 
+    /* If logging is enabled we need to close the FILE* */
+#ifdef FT_LOGGING
+    ft_logging_deinit();
+#endif /* FT_LOGGING */
+
     return FT_Err_Ok;
   }
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]