From: Ulrich Drepper Date: Mon, 26 Oct 1998 09:35:41 +0000 (+0000) Subject: (tz_compute): Correct last patch and describe this in a comment. X-Git-Tag: cvs/glibc-2_0_100~47 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=14f65de69493dee805645c0a782885727d5bdac6;p=thirdparty%2Fglibc.git (tz_compute): Correct last patch and describe this in a comment. --- diff --git a/time/tzset.c b/time/tzset.c index 0621cd9af7d..6b9f93239bb 100644 --- a/time/tzset.c +++ b/time/tzset.c @@ -517,20 +517,16 @@ tz_compute (timer, tm) time_t timer; const struct tm *tm; { - if (! compute_change (&tz_rules[0], 1900 + tm->tm_year)) + if (! compute_change (&tz_rules[0], 1900 + tm->tm_year) + || ! compute_change (&tz_rules[1], 1900 + tm->tm_year)) return 0; /* We have to distinguish between northern and southern hemisphere. - For the later the daylight saving time ends in the next year. */ - if (tz_rules[0].change < tz_rules[1].change) - { - if (! compute_change (&tz_rules[1], 1900 + tm->tm_year)) - return 0; - } - else - { - if (! compute_change (&tz_rules[1], 1900 + tm->tm_year + 1)) - return 0; - } + For the later the daylight saving time ends in the next year. + It is easier to detect this after first computing the time for the + wrong year since now we simply can compare the times to switch. */ + if (tz_rules[0].change < tz_rules[1].change + && ! compute_change (&tz_rules[1], 1900 + tm->tm_year + 1)) + return 0; __daylight = tz_rules[0].offset != tz_rules[1].offset; __timezone = -tz_rules[0].offset;