Signed-off-by: Jeff Smith whydoubt@gmail.com --- dlls/msvcrt/time.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-)
diff --git a/dlls/msvcrt/time.c b/dlls/msvcrt/time.c index eea47ec2cd..0376d355f2 100644 --- a/dlls/msvcrt/time.c +++ b/dlls/msvcrt/time.c @@ -1328,20 +1328,6 @@ static MSVCRT_size_t strftime_impl(STRFTIME_CHAR *str, MSVCRT_size_t max, case 'G': if(!MSVCRT_CHECK_PMT(year>=0 && year<=9999)) goto einval_error; - tmp_year = year; - if (mstm->tm_yday - (mstm->tm_wday ? mstm->tm_wday : 7) + 4 < 0) - tmp_year--; - else if(mstm->tm_yday - (mstm->tm_wday ? mstm->tm_wday : 7) + 5 > 365 + IsLeapYear(tmp_year)) - tmp_year++; - if(*format == 'G') - { - if (!strftime_int(str, &ret, max, tmp_year, 4, 0, 9999)) - return 0; - } else { - if (!strftime_int(str, &ret, max, tmp_year%100, 2, 0, 99)) - return 0; - } - break; case 'V': tmp_year = year; tmp_days = mstm->tm_yday - (mstm->tm_wday ? mstm->tm_wday : 7) + 4; @@ -1350,8 +1336,16 @@ static MSVCRT_size_t strftime_impl(STRFTIME_CHAR *str, MSVCRT_size_t max, else if(tmp_days >= 365 + IsLeapYear(tmp_year)) tmp_days -= 365 + IsLeapYear(tmp_year++);
- if(!strftime_int(str, &ret, max, tmp_days/7 + 1, alternate ? 0 : 2, 0, 53)) - return 0; + if(*format == 'G') { + if(!strftime_int(str, &ret, max, tmp_year, 4, 0, 9999)) + return 0; + } else if(*format == 'g') { + if(!strftime_int(str, &ret, max, tmp_year%100, 2, 0, 99)) + return 0; + } else { + if(!strftime_int(str, &ret, max, tmp_days/7 + 1, alternate ? 0 : 2, 0, 53)) + return 0; + } break; #endif case 'H':