From ea6f7dbf5b952fd3d4bc3599c790c597954a9c58 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Wed, 4 May 2016 22:32:31 +0200 Subject: [PATCH 2/2] Fallback to gmtime when gmtime_r is not available --- src/libical/icaltime.c | 8 ++++++++ src/libical/icaltimezone.c | 8 ++++++++ src/libicalvcal/icalvcal.c | 8 ++++++++ src/test/regression-utils.c | 8 ++++++++ src/test/timezones.c | 8 ++++++++ 5 files changed, 40 insertions(+) diff --git a/src/libical/icaltime.c b/src/libical/icaltime.c index c0ad168..01a5d5d 100644 --- a/src/libical/icaltime.c +++ b/src/libical/icaltime.c @@ -61,6 +61,14 @@ #include #include +#ifndef HAVE_GMTIME_R +#ifdef gmtime_r +#undef gmtime_r +#endif + +#define gmtime_r(tp,tmp) (gmtime(tp)?(*(tmp)=*gmtime(tp),(tmp)):(memset(tmp, 0, sizeof(*tmp)),(0))) +#endif + /* The first array is for non-leap years, the second for leap years*/ static const int days_in_year_passed_month[2][13] = { /* jan feb mar apr may jun jul aug sep oct nov dec */ diff --git a/src/libical/icaltimezone.c b/src/libical/icaltimezone.c index 65c6441..219ccde 100644 --- a/src/libical/icaltimezone.c +++ b/src/libical/icaltimezone.c @@ -54,6 +54,14 @@ static pthread_mutex_t builtin_mutex = PTHREAD_MUTEX_INITIALIZER; #include #endif +#ifndef HAVE_GMTIME_R +#ifdef gmtime_r +#undef gmtime_r +#endif + +#define gmtime_r(tp,tmp) (gmtime(tp)?(*(tmp)=*gmtime(tp),(tmp)):(memset(tmp, 0, sizeof(*tmp)),(0))) +#endif + /** This is the toplevel directory where the timezone data is installed in. */ #define ZONEINFO_DIRECTORY PACKAGE_DATA_DIR "/zoneinfo" diff --git a/src/libicalvcal/icalvcal.c b/src/libicalvcal/icalvcal.c index 325a6d5..2a6e2b9 100644 --- a/src/libicalvcal/icalvcal.c +++ b/src/libicalvcal/icalvcal.c @@ -44,6 +44,14 @@ #include /* for ptrdiff_t */ +#ifndef HAVE_GMTIME_R +#ifdef gmtime_r +#undef gmtime_r +#endif + +#define gmtime_r(tp,tmp) (gmtime(tp)?(*(tmp)=*gmtime(tp),(tmp)):(memset(tmp, 0, sizeof(*tmp)),(0))) +#endif + enum datatype { DT_COMPONENT, diff --git a/src/test/regression-utils.c b/src/test/regression-utils.c index 2cac382..222222b 100644 --- a/src/test/regression-utils.c +++ b/src/test/regression-utils.c @@ -25,6 +25,14 @@ #include +#ifndef HAVE_GMTIME_R +#ifdef gmtime_r +#undef gmtime_r +#endif + +#define gmtime_r(tp,tmp) (gmtime(tp)?(*(tmp)=*gmtime(tp),(tmp)):(memset(tmp, 0, sizeof(*tmp)),(0))) +#endif + int QUIET = 0; int VERBOSE = 1; diff --git a/src/test/timezones.c b/src/test/timezones.c index b936242..d9bd9a2 100644 --- a/src/test/timezones.c +++ b/src/test/timezones.c @@ -21,6 +21,14 @@ #include +#ifndef HAVE_GMTIME_R +#ifdef gmtime_r +#undef gmtime_r +#endif + +#define gmtime_r(tp,tmp) (gmtime(tp)?(*(tmp)=*gmtime(tp),(tmp)):(memset(tmp, 0, sizeof(*tmp)),(0))) +#endif + int main() { icalarray *timezones; -- 2.5.0