Check for non standard timegm, and replace it if not available.

This commit is contained in:
Vreixo Formoso 2008-01-27 14:41:52 +01:00
parent b97121a0e9
commit 5d9e481dff
2 changed files with 25 additions and 0 deletions

View File

@ -98,6 +98,11 @@ AC_CHECK_MEMBER([struct tm.tm_gmtoff],
, ,
[#include <time.h>]) [#include <time.h>])
AC_CHECK_DECL([timegm],
[AC_DEFINE(HAVE_TIMEGM, 1, [Define this if timegm function is available])],
,
[#include <time.h>])
THREAD_LIBS=-lpthread THREAD_LIBS=-lpthread
AC_SUBST(THREAD_LIBS) AC_SUBST(THREAD_LIBS)

View File

@ -1058,6 +1058,26 @@ void iso_datetime_17(unsigned char *buf, time_t t, int always_gmt)
} }
#ifndef HAVE_TIMEGM
static
time_t timegm(struct tm *tm)
{
time_t ret;
char *tz;
tz = getenv("TZ");
setenv("TZ", "", 1);
tzset();
ret = mktime(tm);
if (tz)
setenv("TZ", tz, 1);
else
unsetenv("TZ");
tzset();
return ret;
}
#endif
time_t iso_datetime_read_7(const uint8_t *buf) time_t iso_datetime_read_7(const uint8_t *buf)
{ {
struct tm tm; struct tm tm;