Commit fdc2d7618a8addfb7f1f4003ae444d14a4d562b0

Suzuki, Toshiya (鈴木俊哉) 2008-08-18T06:02:07

* src/base/ftmac.c: Add a fallback for the case that HAVE_TYPE_RESOURCE_INDEX is not set by configure

diff --git a/ChangeLog b/ChangeLog
index c9208d1..fb8d5b9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2008-08-18  suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
 
+	* src/base/ftmac.c: Add a fallback to suppose the availability
+	of ResourceIndex type. It is used when built without configure
+	(e.g. build by Jam).
+	* builds/mac/ftmac.c: Ditto.
+	* builds/unix/configure.raw: Set HAVE_TYPE_RESOURCE_INDEX
+	to 1 or 0 explicitly, even if ResourceIndex is unavailable.
+
+2008-08-18  suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
 	* builds/unix/configure.raw: In checking of Mac OS X features,
 	all-in-one header file "Carbon.h" is replaced by by the minimum
 	header file "CoreServices.h", as current src/base/ftmac.c.
diff --git a/builds/mac/ftmac.c b/builds/mac/ftmac.c
index 6e91a8f..8b4d295 100644
--- a/builds/mac/ftmac.c
+++ b/builds/mac/ftmac.c
@@ -145,9 +145,21 @@
 #endif
 #endif
 
-  /* Some portable types are unavailable on legacy SDKs */
-#ifndef MAC_OS_X_VERSION_10_5
-typedef short   ResourceIndex;
+  /* configure checks the availability of ResourceIndex strictly */
+  /* and set HAVE_TYPE_RESOURCE_INDEX 1 or 0 always. If it is    */
+  /* not set (e.g. build without configure), the availability    */
+  /* is supposed from the SDK version but this is uncertain.     */
+#if !defined( HAVE_TYPE_RESOURCE_INDEX )
+#if !defined( MAC_OS_X_VERSION_10_5 ) || \
+#   ( MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5 )
+#define HAVE_TYPE_RESOURCE_INDEX 0
+#else
+#define HAVE_TYPE_RESOURCE_INDEX 1
+#endif
+#endif
+
+#if ( HAVE_TYPE_RESOURCE_INDEX == 0 )
+typedef short ResourceIndex;
 #endif
 
   /* Set PREFER_LWFN to 1 if LWFN (Type 1) is preferred over
diff --git a/builds/unix/configure.raw b/builds/unix/configure.raw
index ba6de3c..1ac3cce 100644
--- a/builds/unix/configure.raw
+++ b/builds/unix/configure.raw
@@ -285,10 +285,11 @@ if test x$with_old_mac_fonts = xyes; then
          ])],
        [AC_MSG_RESULT([ok])
         CFLAGS="$orig_CFLAGS"
-        CFLAGS="$CFLAGS -DHAVE_TYPE_RESOURCE_INDEX"
+        CFLAGS="$CFLAGS -DHAVE_TYPE_RESOURCE_INDEX=1"
        ],
        [AC_MSG_RESULT([no])
         CFLAGS="$orig_CFLAGS"
+        CFLAGS="$CFLAGS -DHAVE_TYPE_RESOURCE_INDEX=0"
        ])],
     [AC_MSG_RESULT([not found])
      LDFLAGS="${orig_LDFLAGS}"
diff --git a/src/base/ftmac.c b/src/base/ftmac.c
index 4f4ab9d..ab67391 100644
--- a/src/base/ftmac.c
+++ b/src/base/ftmac.c
@@ -77,8 +77,20 @@
 #define OS_INLINE  static __inline__
 #endif
 
-  /* The ResourceIndex type was available SDKs on 10.5 */
-#ifndef HAVE_TYPE_RESOURCE_INDEX
+  /* configure checks the availability of ResourceIndex strictly */
+  /* and set HAVE_TYPE_RESOURCE_INDEX 1 or 0 always. If it is    */
+  /* not set (e.g. build without configure), the availability    */
+  /* is supposed from the SDK version but this is uncertain.     */
+#if !defined( HAVE_TYPE_RESOURCE_INDEX )
+#if !defined( MAC_OS_X_VERSION_10_5 ) || \
+#   ( MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5 )
+#define HAVE_TYPE_RESOURCE_INDEX 0
+#else
+#define HAVE_TYPE_RESOURCE_INDEX 1
+#endif
+#endif
+
+#if ( HAVE_TYPE_RESOURCE_INDEX == 0 )
 typedef short ResourceIndex;
 #endif