ref: 986885965acd80f121d84d0e1ef096fdc274c49f
parent: 70961e57729350aad01ace23c2529265045af85b
author: Alexei Podtelezhnikov <[email protected]>
date: Thu Aug 21 19:28:52 EDT 2014
Fix Savannah bug #43033. * include/config/ftconfig.h, builds/unix/ftconfig.in, builds/vms/ftconfig.h [FT_LONG64]: Do not disable the macro when 64-bit type is `long'.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2014-08-21 Alexei Podtelezhnikov <[email protected]>
+
+ Fix Savannah bug #43033.
+
+ * include/config/ftconfig.h, builds/unix/ftconfig.in,
+ builds/vms/ftconfig.h [FT_LONG64]: Do not disable the macro when
+ 64-bit type is `long'.
+
2014-08-20 Alexei Podtelezhnikov <[email protected]>
[base] Small optimization of `FT_MulFix'.
--- a/builds/unix/ftconfig.in
+++ b/builds/unix/ftconfig.in
@@ -296,8 +296,17 @@
#define FT_INT64 long
#define FT_UINT64 unsigned long
-#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
+ /*************************************************************************/
+ /* */
+ /* A 64-bit data type may create compilation problems if you compile */
+ /* in strict ANSI mode. To avoid them, we disable other 64-bit data */
+ /* types if __STDC__ is defined. You can however ignore this rule */
+ /* by defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */
+ /* */
+#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 )
+#if defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
+
/* this compiler provides the __int64 type */
#define FT_LONG64
#define FT_INT64 __int64
@@ -330,30 +339,9 @@
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
-#endif /* FT_SIZEOF_LONG == 8 */
+#endif /* _MSC_VER */
-
- /*************************************************************************/
- /* */
- /* A 64-bit data type will create compilation problems if you compile */
- /* in strict ANSI mode. To avoid them, we disable its use if __STDC__ */
- /* is defined. You can however ignore this rule by defining the */
- /* FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */
- /* */
-#if defined( FT_LONG64 ) && !defined( FT_CONFIG_OPTION_FORCE_INT64 )
-
-#ifdef __STDC__
-
- /* Undefine the 64-bit macros in strict ANSI compilation mode. */
- /* Since `#undef' doesn't survive in configuration header files */
- /* we use the postprocessing facility of AC_CONFIG_HEADERS to */
- /* replace the leading `/' with `#'. */
-/undef FT_LONG64
-/undef FT_INT64
-
-#endif /* __STDC__ */
-
-#endif /* FT_LONG64 && !FT_CONFIG_OPTION_FORCE_INT64 */
+#endif /* FT_SIZEOF_LONG == 8 */
#ifdef FT_LONG64
typedef FT_INT64 FT_Int64;
--- a/builds/vms/ftconfig.h
+++ b/builds/vms/ftconfig.h
@@ -239,8 +239,17 @@
#define FT_INT64 long
#define FT_UINT64 unsigned long
-#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
+ /*************************************************************************/
+ /* */
+ /* A 64-bit data type may create compilation problems if you compile */
+ /* in strict ANSI mode. To avoid them, we disable other 64-bit data */
+ /* types if __STDC__ is defined. You can however ignore this rule */
+ /* by defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */
+ /* */
+#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 )
+#if defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
+
/* this compiler provides the __int64 type */
#define FT_LONG64
#define FT_INT64 __int64
@@ -273,27 +282,9 @@
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
-#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */
+#endif /* _MSC_VER */
-
- /*************************************************************************/
- /* */
- /* A 64-bit data type will create compilation problems if you compile */
- /* in strict ANSI mode. To avoid them, we disable its use if __STDC__ */
- /* is defined. You can however ignore this rule by defining the */
- /* FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */
- /* */
-#if defined( FT_LONG64 ) && !defined( FT_CONFIG_OPTION_FORCE_INT64 )
-
-#ifdef __STDC__
-
- /* undefine the 64-bit macros in strict ANSI compilation mode */
-#undef FT_LONG64
-#undef FT_INT64
-
-#endif /* __STDC__ */
-
-#endif /* FT_LONG64 && !FT_CONFIG_OPTION_FORCE_INT64 */
+#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */
#ifdef FT_LONG64
typedef FT_INT64 FT_Int64;
--- a/include/config/ftconfig.h
+++ b/include/config/ftconfig.h
@@ -266,8 +266,17 @@
#define FT_INT64 long
#define FT_UINT64 unsigned long
-#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
+ /*************************************************************************/
+ /* */
+ /* A 64-bit data type may create compilation problems if you compile */
+ /* in strict ANSI mode. To avoid them, we disable other 64-bit data */
+ /* types if __STDC__ is defined. You can however ignore this rule */
+ /* by defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */
+ /* */
+#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 )
+#if defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
+
/* this compiler provides the __int64 type */
#define FT_LONG64
#define FT_INT64 __int64
@@ -300,27 +309,9 @@
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
-#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */
+#endif /* _MSC_VER */
-
- /*************************************************************************/
- /* */
- /* A 64-bit data type will create compilation problems if you compile */
- /* in strict ANSI mode. To avoid them, we disable its use if __STDC__ */
- /* is defined. You can however ignore this rule by defining the */
- /* FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */
- /* */
-#if defined( FT_LONG64 ) && !defined( FT_CONFIG_OPTION_FORCE_INT64 )
-
-#ifdef __STDC__
-
- /* undefine the 64-bit macros in strict ANSI compilation mode */
-#undef FT_LONG64
-#undef FT_INT64
-
-#endif /* __STDC__ */
-
-#endif /* FT_LONG64 && !FT_CONFIG_OPTION_FORCE_INT64 */
+#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */
#ifdef FT_LONG64
typedef FT_INT64 FT_Int64;