[errors] Refine the macro logic surrounding `FT_Error_String'. * include/freetype/fterrors.h (FT_INCLUDE_ERR_PROTOS, FT_ERR_PROTOS_DEFINED): Undefine `FT_INCLUDE_ERR_PROTOS' after checking it and introduce a new macro that takes proper care of multiple-inclusion protection.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
diff --git a/ChangeLog b/ChangeLog
index 8e19af5..374881e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2018-08-31 Armin Hasitzka <prince.cherusker@gmail.com>
+
+ [errors] Refine the macro logic surrounding `FT_Error_String'.
+
+ * include/freetype/fterrors.h (FT_INCLUDE_ERR_PROTOS,
+ FT_ERR_PROTOS_DEFINED): Undefine `FT_INCLUDE_ERR_PROTOS' after
+ checking it and introduce a new macro that takes proper care of
+ multiple-inclusion protection.
+
2018-08-31 Werner Lemberg <wl@gnu.org>
* src/base/ftdebug.c (FT_Throw): Restore missing `FT_UNUSED' calls.
diff --git a/include/freetype/fterrors.h b/include/freetype/fterrors.h
index bed67cb..1f72602 100644
--- a/include/freetype/fterrors.h
+++ b/include/freetype/fterrors.h
@@ -230,7 +230,16 @@
#undef FT_ERR_PREFIX
#endif
+ /* FT_INCLUDE_ERR_PROTOS: Control if function prototypes should be */
+ /* included with `#include FT_ERRORS_H'. This is */
+ /* only true where `FT_ERRORDEF' is undefined. */
+ /* FT_ERR_PROTOS_DEFINED: Actual multiple-inclusion protection of */
+ /* `fterrors.h'. */
#ifdef FT_INCLUDE_ERR_PROTOS
+#undef FT_INCLUDE_ERR_PROTOS
+
+#ifndef FT_ERR_PROTOS_DEFINED
+#define FT_ERR_PROTOS_DEFINED
/**************************************************************************
@@ -264,6 +273,8 @@
FT_Error_String( FT_Error error_code );
+#endif /* FT_ERR_PROTOS_DEFINED */
+
#endif /* FT_INCLUDE_ERR_PROTOS */
#endif /* !(FTERRORS_H_ && __FTERRORS_H__) */