--- common/unicode/pmac.h +++ common/unicode/pmac.h @@ -49,14 +49,20 @@ #define U_DARWIN #endif +#include <AvailabilityMacros.h> + /** * \def U_HAVE_DIRENT_H * Define whether dirent.h is available * @internal */ #ifndef U_HAVE_DIRENT_H +#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5 +#define U_HAVE_DIRENT_H 0 +#else #define U_HAVE_DIRENT_H 1 #endif +#endif /** Define whether inttypes.h is available */ #ifndef U_HAVE_INTTYPES_H @@ -282,8 +288,10 @@ #if 1 #define U_TZSET tzset #endif -#if 1 -#define U_TIMEZONE timezone +#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5 +#define U_TIMEZONE 0 +#else +#define U_TIMEZONE timezone #endif #if 1 #define U_TZNAME tzname @@ -399,4 +407,18 @@ # endif #endif + +/*===========================================================================*/ +/* Local defines */ +/*===========================================================================*/ + +/* On the Mac, we define U_WCHAR_IS_UTF32 to treat wchar_t as though it + contains UTF-32 at all times. Strictly speaking, that's not entirely + correct given Mac's libc (__STDC_ISO_10646__ is not defined) , but provided + that we ignore libc's locale support (by not calling setlocale) and its + multibyte string support, this should be fine. Our codebase makes enough + other assumptions about a UTF-8 locale and UTF-32 wchar_t strings for this + to make sense. */ +#define U_WCHAR_IS_UTF32 + #endif