X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Ftime%2Ftimegm.c;h=b5dae8b648eca781ca9e726f90d5b6cc85b72d1a;hb=e98a54643ee95032baab883673628314e520012e;hp=6d08917e449518bb00179d56d7e38e8a2e61a98d;hpb=23be72ae4534c13a7fd03f580934cc251ada619f;p=musl diff --git a/src/time/timegm.c b/src/time/timegm.c index 6d08917e..b5dae8b6 100644 --- a/src/time/timegm.c +++ b/src/time/timegm.c @@ -1,9 +1,20 @@ #define _GNU_SOURCE -#include +#include "time_impl.h" +#include -#include "__time.h" +extern const char __gmt[]; time_t timegm(struct tm *tm) { - return __tm_to_time(tm); + struct tm new; + long long t = __tm_to_secs(tm); + if (__secs_to_tm(t, &new) < 0) { + errno = EOVERFLOW; + return -1; + } + *tm = new; + tm->tm_isdst = 0; + tm->__tm_gmtoff = 0; + tm->__tm_zone = __gmt; + return t; }