X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Ftime.c;h=b980ba15c4ffb2e4271fba49a129c5618ce991ed;hb=5e92e9ed61903658015c2a75c79a32ad41dbd29d;hp=c6403997c5aefbdfe8649c93e43cd43f854dad51;hpb=cea4896b2482b7b2b429c1631d774b4cfbc0efba;p=sbcl.git diff --git a/src/runtime/time.c b/src/runtime/time.c index c640399..b980ba1 100644 --- a/src/runtime/time.c +++ b/src/runtime/time.c @@ -15,21 +15,22 @@ #include #include +#include "sbcl.h" #include "runtime.h" -void get_timezone(time_t when, int *minwest, boolean *dst) +void get_timezone(time_t when, int *secwest, boolean *dst) { struct tm ltm, gtm; - int mw; + int sw; ltm = *localtime(&when); gtm = *gmtime(&when); - mw = ((gtm.tm_hour*60)+gtm.tm_min) - ((ltm.tm_hour*60)+ltm.tm_min); + sw = (((gtm.tm_hour*60)+gtm.tm_min)*60+gtm.tm_sec) - (((ltm.tm_hour*60)+ltm.tm_min)*60+ltm.tm_sec); if ((gtm.tm_wday + 1) % 7 == ltm.tm_wday) - mw -= 24*60; + sw -= 24*3600; else if (gtm.tm_wday == (ltm.tm_wday + 1) % 7) - mw += 24*60; - *minwest = mw; + sw += 24*3600; + *secwest = sw; *dst = ltm.tm_isdst; }