/* Web Polygraph http://www.web-polygraph.org/
* (C) 2003-2006 The Measurement Factory
* Licensed under the Apache License, Version 2.0 */
#include "xstd/xstd.h"
#include "xstd/xport.h"
// XXX: move xport. stuff to Time.
#ifndef HAVE_TIMEGM
static
time_t fake_timegm(struct tm *t) {
const time_t res = mktime(t);
# if defined(HAVE_TM_GMTOFF)
const struct tm *local = localtime(&res);
return res + local->tm_gmtoff;
# elif defined(HAVE_TIMEZONE)
const time_t dst = t->tm_isdst > 0 ? -3600 : 0;
return res - (xtimezone() + dst);
# else
return res;
# endif
}
#endif
time_t xtimegm(struct tm *t) {
# ifdef HAVE_TIMEGM
return timegm(t);
# else
return fake_timegm(t);
# endif
}
syntax highlighted by Code2HTML, v. 0.9.1