#include "time_impl.h"
#include <errno.h>

time_t mktime(struct tm* tm) {
  struct tm new;
  long opp;
  long long t = __tm_to_secs(tm);

  __secs_to_zone(t, 1, &new.tm_isdst, &new.__tm_gmtoff, &opp, &new.__tm_zone);

  if (tm->tm_isdst >= 0 && new.tm_isdst != tm->tm_isdst)
    t -= opp - new.__tm_gmtoff;

  t -= new.__tm_gmtoff;
  if ((time_t)t != t)
    goto error;

  __secs_to_zone(t, 0, &new.tm_isdst, &new.__tm_gmtoff, &opp, &new.__tm_zone);

  if (__secs_to_tm(t + new.__tm_gmtoff, &new) < 0)
    goto error;

  *tm = new;
  return t;

error:
  errno = EOVERFLOW;
  return -1;
}
