summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPriyeshkkumar <priyeshkkumar@gmail.com>2020-06-29 21:53:44 +0530
committerPriyeshkkumar <priyeshkkumar@gmail.com>2020-06-29 21:53:44 +0530
commit421bb589e67d1bbdd9b052522417481b67cc0a12 (patch)
tree3202e46abadfde8a1c49a924fb7b526e58ab44ef
parent01ce8ff34087f33591cf6eafafe55673a793bf32 (diff)
downloadfreetype2-421bb589e67d1bbdd9b052522417481b67cc0a12.tar.gz
Added functions to initialize and un-initialize logging
-rw-r--r--[priyesh]ChangeLog13
-rw-r--r--include/freetype/internal/ftdebug.h19
-rw-r--r--src/base/ftdebug.c32
-rw-r--r--src/base/ftinit.c10
4 files changed, 73 insertions, 1 deletions
diff --git a/[priyesh]ChangeLog b/[priyesh]ChangeLog
index 0f84213b6..7c91f11d8 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 469220c9c..4bc810486 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 62cf680b0..b5e4a4a7c 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 0acc75e46..24d5dc710 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;
}