From: Derick Rethans Date: Fri, 13 Apr 2007 08:11:35 +0000 (+0000) Subject: - MFB: Fixed bug #40290 (strtotime() returns unexpected result with particular X-Git-Tag: RELEASE_1_2_0~329 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3eef99f6cdf60833540f76477c89f4ea070c976b;p=php - MFB: Fixed bug #40290 (strtotime() returns unexpected result with particular timezone offset). --- diff --git a/ext/date/lib/parse_date.c b/ext/date/lib/parse_date.c index d5cd30b80f..1eddeb0486 100644 --- a/ext/date/lib/parse_date.c +++ b/ext/date/lib/parse_date.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.11.0 on Wed Apr 11 16:36:16 2007 */ +/* Generated by re2c 0.11.0 on Fri Apr 13 10:06:30 2007 */ #line 1 "ext/date/lib/parse_date.re" /* +----------------------------------------------------------------------+ @@ -21774,7 +21774,8 @@ timelib_time* timelib_strtotime(char *s, int len, struct timelib_error_container } else { timelib_error_container_dtor(in.errors); } - in.time->y = in.time->d = in.time->m = in.time->h = in.time->i = in.time->s = in.time->f = in.time->z = in.time->dst = -1; + in.time->y = in.time->d = in.time->m = in.time->h = in.time->i = in.time->s = in.time->f = in.time->dst = -1; + in.time->z = -999999; in.time->is_localtime = in.time->zone_type = 0; return in.time; } @@ -21793,7 +21794,7 @@ timelib_time* timelib_strtotime(char *s, int len, struct timelib_error_container in.time->i = -1; in.time->s = -1; in.time->f = -1; - in.time->z = -1; + in.time->z = -999999; in.time->dst = -1; in.tzdb = tzdb; in.time->is_localtime = 0; @@ -21830,7 +21831,7 @@ void timelib_fill_holes(timelib_time *parsed, timelib_time *now, int options) if (parsed->i == -1) parsed->i = now->i != -1 ? now->i : 0; if (parsed->s == -1) parsed->s = now->s != -1 ? now->s : 0; if (parsed->f == -1) parsed->f = now->f != -1 ? now->f : 0; - if (parsed->z == -1) parsed->z = now->z != -1 ? now->z : 0; + if (parsed->z == -999999) parsed->z = now->z != -999999 ? now->z : 0; if (parsed->dst == -1) parsed->dst = now->dst != -1 ? now->dst : 0; if (!parsed->tz_abbr) { diff --git a/ext/date/lib/parse_date.re b/ext/date/lib/parse_date.re index 1f6d7aeb62..20e72ef922 100644 --- a/ext/date/lib/parse_date.re +++ b/ext/date/lib/parse_date.re @@ -1543,7 +1543,8 @@ timelib_time* timelib_strtotime(char *s, int len, struct timelib_error_container } else { timelib_error_container_dtor(in.errors); } - in.time->y = in.time->d = in.time->m = in.time->h = in.time->i = in.time->s = in.time->f = in.time->z = in.time->dst = -1; + in.time->y = in.time->d = in.time->m = in.time->h = in.time->i = in.time->s = in.time->f = in.time->dst = -1; + in.time->z = -999999; in.time->is_localtime = in.time->zone_type = 0; return in.time; } @@ -1562,7 +1563,7 @@ timelib_time* timelib_strtotime(char *s, int len, struct timelib_error_container in.time->i = -1; in.time->s = -1; in.time->f = -1; - in.time->z = -1; + in.time->z = -999999; in.time->dst = -1; in.tzdb = tzdb; in.time->is_localtime = 0; @@ -1599,7 +1600,7 @@ void timelib_fill_holes(timelib_time *parsed, timelib_time *now, int options) if (parsed->i == -1) parsed->i = now->i != -1 ? now->i : 0; if (parsed->s == -1) parsed->s = now->s != -1 ? now->s : 0; if (parsed->f == -1) parsed->f = now->f != -1 ? now->f : 0; - if (parsed->z == -1) parsed->z = now->z != -1 ? now->z : 0; + if (parsed->z == -999999) parsed->z = now->z != -999999 ? now->z : 0; if (parsed->dst == -1) parsed->dst = now->dst != -1 ? now->dst : 0; if (!parsed->tz_abbr) {