aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Guillaume Bourcier <guillaumebourcier@free.fr>2011-10-11 13:45:33 +0200
committerGravatar Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>2011-10-12 13:28:18 +0200
commit733aeae80de66a6c443e4171dbefa8b266cb806a (patch)
treef2d75647baac8b820fb9ae610ffbf996707ce8a5
parent9152c4d67c763fde5712e2d181d92c0d7e1e2ab9 (diff)
downloaduClibc-733aeae80de66a6c443e4171dbefa8b266cb806a.tar.gz
uClibc-733aeae80de66a6c443e4171dbefa8b266cb806a.tar.bz2
libc: fix daylight saving time handling
The algorithm computing daylight saving time incorrectly adds a day for each month after January for leap years. The clock shift from/to DST can be delayed if the last Sunday of a transition month is exactly seven days before the first of the following month. This change adds a day for the February month only. Signed-off-by: Guillaume Bourcier <guillaumebourcier@free.fr> Signed-off-by: Richard Braun <rbraun@sceen.net> Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-rw-r--r--libc/misc/time/time.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libc/misc/time/time.c b/libc/misc/time/time.c
index 19d68e105..8e2ebf12e 100644
--- a/libc/misc/time/time.c
+++ b/libc/misc/time/time.c
@@ -689,7 +689,7 @@ static int tm_isdst(register const struct tm *__restrict ptm,
++day;
}
monlen = 31 + day_cor[r->month -1] - day_cor[r->month];
- if (isleap && (r->month > 1)) {
+ if (isleap && (r->month == 2)) {
++monlen;
}
/* Wweekday (0 is Sunday) of 1st of the month