| Index: icu52/patches/ios_timezone.patch
|
| ===================================================================
|
| --- icu52/patches/ios_timezone.patch (revision 261238)
|
| +++ icu52/patches/ios_timezone.patch (working copy)
|
| @@ -1,76 +0,0 @@
|
| ---- public/common/unicode/pmac.h
|
| -+++ public/common/unicode/pmac.h
|
| -@@ -50,6 +50,16 @@
|
| - #endif
|
| -
|
| - #include <AvailabilityMacros.h>
|
| -+#include <TargetConditionals.h>
|
| -+
|
| -+/**
|
| -+ * Add a second platform define to handle differences between Mac OS X and iOS
|
| -+ */
|
| -+#if TARGET_OS_IPHONE
|
| -+#ifndef U_IOS
|
| -+#define U_IOS
|
| -+#endif
|
| -+#endif
|
| -
|
| - /**
|
| - * \def U_HAVE_DIRENT_H
|
| -@@ -288,11 +299,16 @@
|
| - #if 1
|
| - #define U_TZSET tzset
|
| - #endif
|
| -+#ifndef U_IOS
|
| -+/* The iOS version of timezone is busted (at least in the simulator, it is
|
| -+ never set to anything useful). Leave it undefined to avoid a code path
|
| -+ in putil.c. */
|
| - #if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
|
| - #define U_TIMEZONE 0
|
| - #else
|
| - #define U_TIMEZONE timezone
|
| - #endif
|
| -+#endif // !U_IOS
|
| - #if 1
|
| - #define U_TZNAME tzname
|
| - #endif
|
| ---- source/common/putil.c
|
| -+++ source/common/putil.c
|
| -@@ -623,20 +623,28 @@ uprv_timezone()
|
| - #else
|
| - time_t t, t1, t2;
|
| - struct tm tmrec;
|
| -+#ifndef U_IOS
|
| - UBool dst_checked;
|
| -+#endif
|
| - int32_t tdiff = 0;
|
| -
|
| - time(&t);
|
| - uprv_memcpy( &tmrec, localtime(&t), sizeof(tmrec) );
|
| -+#ifndef U_IOS
|
| - dst_checked = (tmrec.tm_isdst != 0); /* daylight savings time is checked*/
|
| -+#endif
|
| - t1 = mktime(&tmrec); /* local time in seconds*/
|
| - uprv_memcpy( &tmrec, gmtime(&t), sizeof(tmrec) );
|
| - t2 = mktime(&tmrec); /* GMT (or UTC) in seconds*/
|
| - tdiff = t2 - t1;
|
| -+#ifndef U_IOS
|
| -+ /* On iOS the calculated tdiff is correct so and doesn't need this dst
|
| -+ shift applied. */
|
| - /* imitate NT behaviour, which returns same timezone offset to GMT for
|
| - winter and summer*/
|
| - if (dst_checked)
|
| - tdiff += 3600;
|
| -+#endif
|
| - return tdiff;
|
| - #endif
|
| - }
|
| -@@ -649,7 +661,7 @@ uprv_timezone()
|
| - extern U_IMPORT char *U_TZNAME[];
|
| - #endif
|
| -
|
| --#if !UCONFIG_NO_FILE_IO && (defined(U_DARWIN) || defined(U_LINUX) || defined(U_BSD))
|
| -+#if !UCONFIG_NO_FILE_IO && ((defined(U_DARWIN) && !defined(U_IOS)) || defined(U_LINUX) || defined(U_BSD))
|
| - /* These platforms are likely to use Olson timezone IDs. */
|
| - #define CHECK_LOCALTIME_LINK 1
|
| - #if defined(U_DARWIN)
|
|
|