From: Corinna Vinschen Date: Mon, 12 Dec 2011 10:48:29 +0000 (+0000) Subject: * libc/time/strftime.c (get_era_info): Fix off-by-one error in month X-Git-Tag: newlib-1_20_0~42 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=74e0bcfc0f3fc3c38941675d2338b3d11f41989a;p=newlib-cygwin.git * libc/time/strftime.c (get_era_info): Fix off-by-one error in month calculation. --- diff --git a/newlib/ChangeLog b/newlib/ChangeLog index e1007479e..dccc4f272 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,8 @@ +2011-12-12 Akio Idehara + + * libc/time/strftime.c (get_era_info): Fix off-by-one error in month + calculation. + 2011-12-06 Chris Johns * libc/iconv/Makefile.am (stmp-def): Use $(MAKE) rather than make. diff --git a/newlib/libc/time/strftime.c b/newlib/libc/time/strftime.c index f4704b62d..840e310db 100644 --- a/newlib/libc/time/strftime.c +++ b/newlib/libc/time/strftime.c @@ -426,7 +426,7 @@ get_era_info (const struct tm *tim_p, const char *era) /* Adjust offset for negative gregorian dates. */ if (stm.tm_year <= -YEAR_BASE) ++stm.tm_year; - stm.tm_mon = ERA_STRTOL (c + 1, &c, 10); + stm.tm_mon = ERA_STRTOL (c + 1, &c, 10) - 1; stm.tm_mday = ERA_STRTOL (c + 1, &c, 10); stm.tm_hour = stm.tm_min = stm.tm_sec = 0; era = c + 1; @@ -440,7 +440,7 @@ get_era_info (const struct tm *tim_p, const char *era) else if (era[0] == '+' && era[1] == '*') { etm.tm_year = INT_MAX; - etm.tm_mon = 12; + etm.tm_mon = 11; etm.tm_mday = 31; etm.tm_hour = 23; etm.tm_min = etm.tm_sec = 59; @@ -452,7 +452,7 @@ get_era_info (const struct tm *tim_p, const char *era) /* Adjust offset for negative gregorian dates. */ if (etm.tm_year <= -YEAR_BASE) ++etm.tm_year; - etm.tm_mon = ERA_STRTOL (c + 1, &c, 10); + etm.tm_mon = ERA_STRTOL (c + 1, &c, 10) - 1; etm.tm_mday = ERA_STRTOL (c + 1, &c, 10); etm.tm_mday = 31; etm.tm_hour = 23;