derick Thu May 1 16:14:30 2008 UTC Modified files: /php-src/ext/date php_date.c /php-src/ext/date/lib parse_date.c parse_date.re timelib.c timelib_structs.h tm2unixtime.c Log: - Rearranged some structures to allow for more powerfull period/intervals.
http://cvs.php.net/viewvc.cgi/php-src/ext/date/php_date.c?r1=1.180&r2=1.181&diff_format=u Index: php-src/ext/date/php_date.c diff -u php-src/ext/date/php_date.c:1.180 php-src/ext/date/php_date.c:1.181 --- php-src/ext/date/php_date.c:1.180 Thu May 1 13:31:00 2008 +++ php-src/ext/date/php_date.c Thu May 1 16:14:29 2008 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_date.c,v 1.180 2008/05/01 13:31:00 derick Exp $ */ +/* $Id: php_date.c,v 1.181 2008/05/01 16:14:29 derick Exp $ */ #include "php.h" #include "php_streams.h" @@ -2345,7 +2345,7 @@ timelib_fill_holes(dateobj->time, now, 0); timelib_update_ts(dateobj->time, tzi); - dateobj->time->have_weekday_relative = dateobj->time->have_relative = 0; + dateobj->time->have_relative = 0; if (type == TIMELIB_ZONETYPE_ID && now->tz_info != tzi) { timelib_tzinfo_dtor(now->tz_info); @@ -2596,17 +2596,15 @@ add_ascii_assoc_long(element, "hour", parsed_time->relative.h); add_ascii_assoc_long(element, "minute", parsed_time->relative.i); add_ascii_assoc_long(element, "second", parsed_time->relative.s); - } - if (parsed_time->have_weekday_relative) { - add_ascii_assoc_long(element, "weekday", parsed_time->relative.weekday); - } - if (parsed_time->have_special_relative && (parsed_time->special.type == TIMELIB_SPECIAL_WEEKDAY)) { - add_ascii_assoc_long(element, "weekdays", parsed_time->special.amount); - } - if (parsed_time->relative.first_last_day_of) { - add_ascii_assoc_bool(element, parsed_time->relative.first_last_day_of == 1 ? "first_day_of_month" : "last_day_of_month", 1); - } - if (parsed_time->have_relative || parsed_time->have_weekday_relative || parsed_time->have_special_relative || parsed_time->relative.first_last_day_of) { + if (parsed_time->have_weekday_relative) { + add_ascii_assoc_long(element, "weekday", parsed_time->relative.weekday); + } + if (parsed_time->have_special_relative && (parsed_time->special.type == TIMELIB_SPECIAL_WEEKDAY)) { + add_ascii_assoc_long(element, "weekdays", parsed_time->special.amount); + } + if (parsed_time->relative.first_last_day_of) { + add_ascii_assoc_bool(element, parsed_time->relative.first_last_day_of == 1 ? "first_day_of_month" : "last_day_of_month", 1); + } add_ascii_assoc_zval(return_value, "relative", element); } timelib_time_dtor(parsed_time); @@ -2723,7 +2721,7 @@ dateobj->time->relative.s = tmp_time->relative.s; dateobj->time->relative.weekday = tmp_time->relative.weekday; dateobj->time->have_relative = tmp_time->have_relative; - dateobj->time->have_weekday_relative = tmp_time->have_weekday_relative; + dateobj->time->relative.have_weekday_relative = tmp_time->relative.have_weekday_relative; dateobj->time->sse_uptodate = 0; timelib_time_dtor(tmp_time); @@ -2760,9 +2758,9 @@ dateobj->time->relative.h = intobj->diff->h * bias; dateobj->time->relative.i = intobj->diff->i * bias; dateobj->time->relative.s = intobj->diff->s * bias; - dateobj->time->relative.weekday = 0; dateobj->time->have_relative = 1; - dateobj->time->have_weekday_relative = 0; + dateobj->time->relative.weekday = 0; + dateobj->time->relative.have_weekday_relative = 0; dateobj->time->sse_uptodate = 0; timelib_update_ts(dateobj->time, NULL); @@ -2798,9 +2796,9 @@ dateobj->time->relative.h = 0 - (intobj->diff->h * bias); dateobj->time->relative.i = 0 - (intobj->diff->i * bias); dateobj->time->relative.s = 0 - (intobj->diff->s * bias); - dateobj->time->relative.weekday = 0; dateobj->time->have_relative = 1; - dateobj->time->have_weekday_relative = 0; + dateobj->time->relative.weekday = 0; + dateobj->time->relative.have_weekday_relative = 0; dateobj->time->sse_uptodate = 0; timelib_update_ts(dateobj->time, NULL); http://cvs.php.net/viewvc.cgi/php-src/ext/date/lib/parse_date.c?r1=1.85&r2=1.86&diff_format=u Index: php-src/ext/date/lib/parse_date.c diff -u php-src/ext/date/lib/parse_date.c:1.85 php-src/ext/date/lib/parse_date.c:1.86 --- php-src/ext/date/lib/parse_date.c:1.85 Sun Apr 27 19:12:09 2008 +++ php-src/ext/date/lib/parse_date.c Thu May 1 16:14:29 2008 @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.3 on Sun Apr 27 21:09:31 2008 */ +/* Generated by re2c 0.13.4 on Thu May 1 18:13:58 2008 */ #line 1 "ext/date/lib/parse_date.re" /* +----------------------------------------------------------------------+ @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: parse_date.c,v 1.85 2008/04/27 19:12:09 derick Exp $ */ +/* $Id: parse_date.c,v 1.86 2008/05/01 16:14:29 derick Exp $ */ #include "timelib.h" @@ -108,8 +108,8 @@ #define TIMELIB_HAVE_DATE() { if (s->time->have_date) { add_error(s, "Double date specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_date = 1; } } #define TIMELIB_UNHAVE_DATE() { s->time->have_date = 0; s->time->d = 0; s->time->m = 0; s->time->y = 0; } #define TIMELIB_HAVE_RELATIVE() { s->time->have_relative = 1; } -#define TIMELIB_HAVE_WEEKDAY_RELATIVE() { s->time->have_weekday_relative = 1; } -#define TIMELIB_HAVE_SPECIAL_RELATIVE() { s->time->have_special_relative = 1; } +#define TIMELIB_HAVE_WEEKDAY_RELATIVE() { s->time->have_relative = 1; s->time->relative.have_weekday_relative = 1; } +#define TIMELIB_HAVE_SPECIAL_RELATIVE() { s->time->have_relative = 1; s->time->relative.have_special_relative = 1; } #define TIMELIB_HAVE_TZ() { s->cur = cursor; if (s->time->have_zone) { s->time->have_zone > 1 ? add_error(s, "Double timezone specification") : add_warning(s, "Double timezone specification"); timelib_string_free(str); s->time->have_zone++; return TIMELIB_ERROR; } else { s->time->have_zone++; } } #define TIMELIB_INIT s->cur = cursor; str = timelib_string(s); ptr = str @@ -681,8 +681,8 @@ case TIMELIB_SPECIAL: TIMELIB_HAVE_SPECIAL_RELATIVE(); TIMELIB_UNHAVE_TIME(); - s->time->special.type = relunit->multiplier; - s->time->special.amount = amount; + s->time->relative.special.type = relunit->multiplier; + s->time->relative.special.amount = amount; } } @@ -886,8 +886,8 @@ YYDEBUG(-1, yych); switch (yych) { case 0x00: - case 0x0A: goto yy49; - case 0x09: + case '\n': goto yy49; + case '\t': case ' ': goto yy46; case '(': goto yy43; case '+': @@ -1441,7 +1441,7 @@ yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case 0x09: goto yy1225; + case '\t': goto yy1225; case ' ': case 'A': case 'D': @@ -1493,7 +1493,7 @@ yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case 0x09: goto yy640; + case '\t': goto yy640; case ' ': case 'A': case 'D': @@ -1547,7 +1547,7 @@ yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case 0x09: goto yy640; + case '\t': goto yy640; case ' ': case 'A': case 'D': @@ -1601,7 +1601,7 @@ yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case 0x09: goto yy640; + case '\t': goto yy640; case ' ': case 'A': case 'D': @@ -1655,7 +1655,7 @@ yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case 0x09: goto yy640; + case '\t': goto yy640; case ' ': case 'A': case 'D': @@ -1732,7 +1732,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy3; goto yy317; } else { @@ -1775,7 +1775,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ' ') { - if (yych == 0x09) goto yy317; + if (yych == '\t') goto yy317; if (yych <= 0x1F) goto yy3; goto yy317; } else { @@ -1806,7 +1806,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ' ') { - if (yych == 0x09) goto yy317; + if (yych == '\t') goto yy317; if (yych <= 0x1F) goto yy3; goto yy317; } else { @@ -2368,7 +2368,7 @@ if (yych <= 'W') { if (yych <= 'F') { if (yych <= ' ') { - if (yych == 0x09) goto yy57; + if (yych == '\t') goto yy57; if (yych >= ' ') goto yy57; } else { if (yych == 'D') goto yy62; @@ -2553,7 +2553,7 @@ yy55: YYDEBUG(55, *YYCURSOR); ++YYCURSOR; - if (YYLIMIT == YYCURSOR) YYFILL(1); + if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; YYDEBUG(56, *YYCURSOR); if (yybm[0+yych] & 8) { @@ -2572,7 +2572,7 @@ if (yych <= 'W') { if (yych <= 'F') { if (yych <= ' ') { - if (yych == 0x09) goto yy57; + if (yych == '\t') goto yy57; if (yych <= 0x1F) goto yy54; goto yy57; } else { @@ -3264,13 +3264,13 @@ yy145: YYDEBUG(145, *YYCURSOR); ++YYCURSOR; - if (YYLIMIT == YYCURSOR) YYFILL(1); + if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yych <= '@') goto yy54; if (yych >= '[') goto yy54; YYDEBUG(146, *YYCURSOR); ++YYCURSOR; - if (YYLIMIT == YYCURSOR) YYFILL(1); + if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 16) { goto yy147; @@ -3280,7 +3280,7 @@ YYDEBUG(147, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; - if (YYLIMIT == YYCURSOR) YYFILL(1); + if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; YYDEBUG(148, *YYCURSOR); if (yybm[0+yych] & 16) { @@ -3353,7 +3353,7 @@ yy152: YYDEBUG(152, *YYCURSOR); ++YYCURSOR; - if (YYLIMIT == YYCURSOR) YYFILL(1); + if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy153: YYDEBUG(153, *YYCURSOR); @@ -3591,7 +3591,7 @@ yy170: YYDEBUG(170, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 0x09) goto yy171; + if (yych == '\t') goto yy171; if (yych != ' ') goto yy54; yy171: YYDEBUG(171, *YYCURSOR); @@ -3603,7 +3603,7 @@ if (yych <= 'W') { if (yych <= 'F') { if (yych <= ' ') { - if (yych == 0x09) goto yy171; + if (yych == '\t') goto yy171; if (yych <= 0x1F) goto yy54; goto yy171; } else { @@ -4245,7 +4245,7 @@ yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy3; goto yy171; } else { @@ -4420,7 +4420,7 @@ YYDEBUG(261, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '.') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy54; goto yy171; } else { @@ -4494,7 +4494,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy171; + if (yych == '\t') goto yy171; goto yy3; } else { if (yych <= ' ') goto yy171; @@ -4621,7 +4621,7 @@ yy271: YYDEBUG(271, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 0x09) goto yy272; + if (yych == '\t') goto yy272; if (yych != ' ') goto yy54; yy272: YYDEBUG(272, *YYCURSOR); @@ -4633,7 +4633,7 @@ if (yych <= 'W') { if (yych <= 'F') { if (yych <= ' ') { - if (yych == 0x09) goto yy272; + if (yych == '\t') goto yy272; if (yych <= 0x1F) goto yy54; goto yy272; } else { @@ -4737,7 +4737,7 @@ s->time->relative.weekday_behavior = 2; /* to handle the format weekday + last/this/next week */ - if (s->time->have_weekday_relative == 0) { + if (s->time->relative.have_weekday_relative == 0) { TIMELIB_HAVE_WEEKDAY_RELATIVE(); s->time->relative.weekday = 1; } @@ -4877,7 +4877,7 @@ YYDEBUG(285, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '.') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy54; goto yy272; } else { @@ -5402,8 +5402,8 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { - if (yych <= 0x09) { - if (yych >= 0x09) goto yy317; + if (yych <= '\t') { + if (yych >= '\t') goto yy317; } else { if (yych == ' ') goto yy317; } @@ -5622,7 +5622,7 @@ yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ' ') { - if (yych == 0x09) goto yy317; + if (yych == '\t') goto yy317; if (yych <= 0x1F) goto yy315; goto yy317; } else { @@ -5844,7 +5844,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '*') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy352; + if (yych == '\t') goto yy352; goto yy344; } else { if (yych <= ' ') goto yy352; @@ -5872,7 +5872,7 @@ YYDEBUG(352, *YYCURSOR); if (yych <= '+') { if (yych <= ' ') { - if (yych == 0x09) goto yy351; + if (yych == '\t') goto yy351; if (yych <= 0x1F) goto yy54; goto yy351; } else { @@ -6046,13 +6046,13 @@ yy365: YYDEBUG(365, *YYCURSOR); ++YYCURSOR; - if (YYLIMIT == YYCURSOR) YYFILL(1); + if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yych <= '@') goto yy54; if (yych >= '[') goto yy54; YYDEBUG(366, *YYCURSOR); ++YYCURSOR; - if (YYLIMIT == YYCURSOR) YYFILL(1); + if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; if (yych <= '`') goto yy54; if (yych >= '{') goto yy54; @@ -6060,7 +6060,7 @@ YYDEBUG(367, *YYCURSOR); yyaccept = 9; YYMARKER = ++YYCURSOR; - if (YYLIMIT == YYCURSOR) YYFILL(1); + if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; YYDEBUG(368, *YYCURSOR); if (yych <= '^') { @@ -6134,7 +6134,7 @@ yy372: YYDEBUG(372, *YYCURSOR); ++YYCURSOR; - if (YYLIMIT == YYCURSOR) YYFILL(1); + if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; YYDEBUG(373, *YYCURSOR); if (yych <= '^') { @@ -6328,7 +6328,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '*') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy394; + if (yych == '\t') goto yy394; goto yy344; } else { if (yych <= ' ') goto yy394; @@ -6356,7 +6356,7 @@ YYDEBUG(394, *YYCURSOR); if (yych <= '@') { if (yych <= '\'') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy54; goto yy393; } else { @@ -6453,7 +6453,7 @@ yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ')') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x00) goto yy400; if (yych <= 0x08) goto yy344; goto yy400; @@ -6475,7 +6475,7 @@ yy399: YYDEBUG(399, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x00) goto yy400; if (yych <= 0x08) goto yy54; } else { @@ -6514,7 +6514,7 @@ yych = *++YYCURSOR; if (yych <= 0x1F) { if (yych <= 0x00) goto yy400; - if (yych == 0x09) goto yy400; + if (yych == '\t') goto yy400; goto yy54; } else { if (yych <= ' ') goto yy400; @@ -6528,7 +6528,7 @@ if (yych <= '-') { if (yych <= 0x1F) { if (yych <= 0x00) goto yy400; - if (yych == 0x09) goto yy400; + if (yych == '\t') goto yy400; goto yy344; } else { if (yych <= ' ') goto yy400; @@ -6558,7 +6558,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ':') { if (yych <= ' ') { - if (yych == 0x09) goto yy405; + if (yych == '\t') goto yy405; if (yych <= 0x1F) goto yy344; } else { if (yych == '.') goto yy389; @@ -6588,7 +6588,7 @@ YYDEBUG(406, *YYCURSOR); if (yych <= 'A') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy405; + if (yych == '\t') goto yy405; goto yy54; } else { if (yych <= ' ') goto yy405; @@ -6622,7 +6622,7 @@ yych = *++YYCURSOR; if (yych <= 0x1F) { if (yych <= 0x00) goto yy400; - if (yych == 0x09) goto yy400; + if (yych == '\t') goto yy400; goto yy54; } else { if (yych <= ' ') goto yy400; @@ -6631,7 +6631,7 @@ yy410: YYDEBUG(410, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x00) goto yy400; if (yych <= 0x08) goto yy54; goto yy400; @@ -6966,7 +6966,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= ' ') { - if (yych == 0x09) goto yy440; + if (yych == '\t') goto yy440; if (yych <= 0x1F) goto yy344; goto yy440; } else { @@ -7004,7 +7004,7 @@ YYDEBUG(440, *YYCURSOR); if (yych <= '@') { if (yych <= '\'') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy54; goto yy439; } else { @@ -7095,7 +7095,7 @@ yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ')') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x00) goto yy400; if (yych <= 0x08) goto yy344; goto yy400; @@ -7125,7 +7125,7 @@ yych = *++YYCURSOR; if (yych <= 0x1F) { if (yych <= 0x00) goto yy400; - if (yych == 0x09) goto yy400; + if (yych == '\t') goto yy400; goto yy54; } else { if (yych <= ' ') goto yy400; @@ -7134,7 +7134,7 @@ yy446: YYDEBUG(446, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x00) goto yy400; if (yych <= 0x08) goto yy54; goto yy400; @@ -7149,7 +7149,7 @@ if (yych <= '-') { if (yych <= 0x1F) { if (yych <= 0x00) goto yy400; - if (yych == 0x09) goto yy400; + if (yych == '\t') goto yy400; goto yy344; } else { if (yych <= ' ') goto yy400; @@ -7179,7 +7179,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ':') { if (yych <= ' ') { - if (yych == 0x09) goto yy405; + if (yych == '\t') goto yy405; if (yych <= 0x1F) goto yy320; goto yy405; } else { @@ -7213,7 +7213,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ':') { if (yych <= ' ') { - if (yych == 0x09) goto yy405; + if (yych == '\t') goto yy405; if (yych <= 0x1F) goto yy320; goto yy405; } else { @@ -7277,7 +7277,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= ' ') { - if (yych == 0x09) goto yy394; + if (yych == '\t') goto yy394; if (yych <= 0x1F) goto yy344; goto yy394; } else { @@ -7312,7 +7312,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ':') { if (yych <= ' ') { - if (yych == 0x09) goto yy405; + if (yych == '\t') goto yy405; if (yych <= 0x1F) goto yy320; goto yy405; } else { @@ -7466,7 +7466,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= ' ') { - if (yych == 0x09) goto yy467; + if (yych == '\t') goto yy467; if (yych <= 0x1F) goto yy344; goto yy467; } else { @@ -7504,7 +7504,7 @@ YYDEBUG(467, *YYCURSOR); if (yych <= '@') { if (yych <= '\'') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy54; goto yy466; } else { @@ -7595,7 +7595,7 @@ yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ')') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x00) goto yy400; if (yych <= 0x08) goto yy344; goto yy400; @@ -7622,7 +7622,7 @@ if (yych <= '-') { if (yych <= 0x1F) { if (yych <= 0x00) goto yy400; - if (yych == 0x09) goto yy400; + if (yych == '\t') goto yy400; goto yy344; } else { if (yych <= ' ') goto yy400; @@ -7706,7 +7706,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= ' ') { - if (yych == 0x09) goto yy352; + if (yych == '\t') goto yy352; if (yych <= 0x1F) goto yy344; goto yy352; } else { @@ -8052,7 +8052,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -8175,7 +8175,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy317; + if (yych == '\t') goto yy317; goto yy315; } else { if (yych <= ' ') goto yy317; @@ -8222,7 +8222,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -8344,7 +8344,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -8761,7 +8761,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -8948,7 +8948,7 @@ yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 0x1F) { - if (yych == 0x09) goto yy171; + if (yych == '\t') goto yy171; goto yy3; } else { if (yych <= ' ') goto yy171; @@ -8961,7 +8961,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -9414,7 +9414,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -9632,7 +9632,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ')') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy171; + if (yych == '\t') goto yy171; goto yy3; } else { if (yych <= ' ') goto yy171; @@ -9656,7 +9656,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -9847,8 +9847,8 @@ if (s->time->relative.weekday == 0) { s->time->relative.weekday = -7; } - if (s->time->have_special_relative && s->time->special.type == TIMELIB_SPECIAL_WEEKDAY) { - s->time->special.amount = 0 - s->time->special.amount; + if (s->time->relative.have_special_relative && s->time->relative.special.type == TIMELIB_SPECIAL_WEEKDAY) { + s->time->relative.special.amount = 0 - s->time->relative.special.amount; } TIMELIB_DEINIT; return TIMELIB_AGO; @@ -9860,7 +9860,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -9924,7 +9924,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy317; + if (yych == '\t') goto yy317; goto yy315; } else { if (yych <= ' ') goto yy317; @@ -9949,7 +9949,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -10034,7 +10034,7 @@ yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -10156,7 +10156,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -10226,7 +10226,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ' ') { - if (yych == 0x09) goto yy317; + if (yych == '\t') goto yy317; if (yych <= 0x1F) goto yy315; goto yy317; } else { @@ -10257,7 +10257,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -10352,7 +10352,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy317; + if (yych == '\t') goto yy317; goto yy315; } else { if (yych <= ' ') goto yy317; @@ -10423,7 +10423,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -10514,7 +10514,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -10557,7 +10557,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -10599,7 +10599,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy317; + if (yych == '\t') goto yy317; goto yy315; } else { if (yych <= ' ') goto yy317; @@ -10689,7 +10689,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -10807,7 +10807,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -10852,7 +10852,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -10897,7 +10897,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ' ') { - if (yych == 0x09) goto yy317; + if (yych == '\t') goto yy317; if (yych <= 0x1F) goto yy315; goto yy317; } else { @@ -10928,7 +10928,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ' ') { - if (yych == 0x09) goto yy317; + if (yych == '\t') goto yy317; if (yych <= 0x1F) goto yy3; goto yy317; } else { @@ -10958,7 +10958,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy317; + if (yych == '\t') goto yy317; goto yy3; } else { if (yych <= ' ') goto yy317; @@ -10983,7 +10983,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ' ') { - if (yych == 0x09) goto yy317; + if (yych == '\t') goto yy317; if (yych <= 0x1F) goto yy3; goto yy317; } else { @@ -11012,7 +11012,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ' ') { - if (yych == 0x09) goto yy317; + if (yych == '\t') goto yy317; if (yych <= 0x1F) goto yy3; goto yy317; } else { @@ -11041,7 +11041,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy317; + if (yych == '\t') goto yy317; goto yy3; } else { if (yych <= ' ') goto yy317; @@ -11066,7 +11066,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy317; + if (yych == '\t') goto yy317; goto yy3; } else { if (yych <= ' ') goto yy317; @@ -11091,7 +11091,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ' ') { - if (yych == 0x09) goto yy317; + if (yych == '\t') goto yy317; if (yych <= 0x1F) goto yy3; goto yy317; } else { @@ -11123,7 +11123,7 @@ if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych <= 0x1F) goto yy3; goto yy58; } else { @@ -11190,7 +11190,7 @@ if (yych <= 'T') { if (yych <= ':') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych <= 0x1F) goto yy3; goto yy58; } else { @@ -11266,7 +11266,7 @@ if (yych <= 'T') { if (yych <= 'C') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych <= 0x1F) goto yy3; goto yy58; } else { @@ -11334,7 +11334,7 @@ yy620: YYDEBUG(620, *YYCURSOR); ++YYCURSOR; - if (YYLIMIT == YYCURSOR) YYFILL(1); + if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; YYDEBUG(621, *YYCURSOR); if (yybm[0+yych] & 8) { @@ -11356,7 +11356,7 @@ if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych <= 0x1F) goto yy3; goto yy58; } else { @@ -11419,7 +11419,7 @@ if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych <= 0x1F) goto yy3; goto yy58; } else { @@ -11557,7 +11557,7 @@ if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych <= 0x1F) goto yy3; goto yy58; } else { @@ -11620,7 +11620,7 @@ if (yych <= 'T') { if (yych <= 'C') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych <= 0x1F) goto yy3; goto yy58; } else { @@ -11690,7 +11690,7 @@ if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych <= 0x1F) goto yy3; goto yy58; } else { @@ -11756,7 +11756,7 @@ if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych <= 0x1F) goto yy3; goto yy58; } else { @@ -11828,7 +11828,7 @@ YYDEBUG(642, *YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case 0x09: + case '\t': case ' ': goto yy641; case '-': case '.': goto yy757; @@ -12092,7 +12092,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; } else { if (yych <= ' ') goto yy712; if (yych <= ',') goto yy656; @@ -12126,7 +12126,7 @@ yyaccept = 12; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy656; goto yy712; } else { @@ -12148,7 +12148,7 @@ yyaccept = 12; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy656; goto yy712; } else { @@ -12243,7 +12243,7 @@ yych = *++YYCURSOR; if (yych <= 0x1F) { if (yych <= 0x00) goto yy668; - if (yych == 0x09) goto yy668; + if (yych == '\t') goto yy668; goto yy54; } else { if (yych <= ' ') goto yy668; @@ -12251,7 +12251,7 @@ } YYDEBUG(667, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x00) goto yy668; if (yych <= 0x08) goto yy54; } else { @@ -12358,7 +12358,7 @@ yy678: YYDEBUG(678, *YYCURSOR); ++YYCURSOR; - if (YYLIMIT == YYCURSOR) YYFILL(1); + if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; YYDEBUG(679, *YYCURSOR); if (yych <= '/') goto yy671; @@ -12370,7 +12370,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '@') { if (yych <= 0x1F) { - if (yych != 0x09) goto yy671; + if (yych != '\t') goto yy671; } else { if (yych <= ' ') goto yy681; if (yych == '.') goto yy677; @@ -12395,7 +12395,7 @@ YYDEBUG(682, *YYCURSOR); if (yych <= 'A') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy681; + if (yych == '\t') goto yy681; goto yy54; } else { if (yych <= ' ') goto yy681; @@ -12428,7 +12428,7 @@ yych = *++YYCURSOR; if (yych <= 0x1F) { if (yych <= 0x00) goto yy668; - if (yych == 0x09) goto yy668; + if (yych == '\t') goto yy668; goto yy54; } else { if (yych <= ' ') goto yy668; @@ -12436,7 +12436,7 @@ } YYDEBUG(686, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x00) goto yy668; if (yych <= 0x08) goto yy54; goto yy668; @@ -12450,7 +12450,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ':') { if (yych <= ' ') { - if (yych == 0x09) goto yy688; + if (yych == '\t') goto yy688; if (yych <= 0x1F) goto yy671; } else { if (yych == '.') goto yy673; @@ -12480,7 +12480,7 @@ YYDEBUG(689, *YYCURSOR); if (yych <= 'A') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy688; + if (yych == '\t') goto yy688; goto yy54; } else { if (yych <= ' ') goto yy688; @@ -12533,7 +12533,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ':') { if (yych <= ' ') { - if (yych == 0x09) goto yy681; + if (yych == '\t') goto yy681; if (yych <= 0x1F) goto yy671; goto yy681; } else { @@ -12607,7 +12607,7 @@ yych = *++YYCURSOR; if (yych <= 0x1F) { if (yych <= 0x00) goto yy703; - if (yych == 0x09) goto yy703; + if (yych == '\t') goto yy703; goto yy54; } else { if (yych <= ' ') goto yy703; @@ -12615,7 +12615,7 @@ } YYDEBUG(702, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x00) goto yy703; if (yych <= 0x08) goto yy54; } else { @@ -12680,7 +12680,7 @@ yych = *++YYCURSOR; if (yych <= 0x1F) { if (yych <= 0x00) goto yy668; - if (yych == 0x09) goto yy668; + if (yych == '\t') goto yy668; goto yy54; } else { if (yych <= ' ') goto yy668; @@ -12688,7 +12688,7 @@ } YYDEBUG(709, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x00) goto yy668; if (yych <= 0x08) goto yy54; goto yy668; @@ -12707,7 +12707,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych != 0x09) goto yy656; + if (yych != '\t') goto yy656; } else { if (yych <= ' ') goto yy712; if (yych <= ',') goto yy656; @@ -12731,7 +12731,7 @@ yy713: YYDEBUG(713, *YYCURSOR); if (yych <= ' ') { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; if (yych <= 0x1F) goto yy54; goto yy712; } else { @@ -12789,7 +12789,7 @@ yyaccept = 12; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ' ') { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; if (yych <= 0x1F) goto yy656; goto yy712; } else { @@ -12826,7 +12826,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -12876,7 +12876,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -12905,7 +12905,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -12960,7 +12960,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -12999,7 +12999,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -13023,7 +13023,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -13046,7 +13046,7 @@ yyaccept = 12; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy656; goto yy712; } else { @@ -13068,7 +13068,7 @@ yyaccept = 12; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy656; goto yy712; } else { @@ -13088,7 +13088,7 @@ yyaccept = 12; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy656; goto yy712; } else { @@ -13110,7 +13110,7 @@ yyaccept = 12; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy656; goto yy712; } else { @@ -13231,7 +13231,7 @@ YYDEBUG(758, *YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case 0x09: + case '\t': case ' ': case '-': case '.': goto yy757; @@ -13267,7 +13267,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -13316,7 +13316,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -13339,7 +13339,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -13398,7 +13398,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -13432,7 +13432,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -13558,7 +13558,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= ' ') { - if (yych == 0x09) goto yy681; + if (yych == '\t') goto yy681; if (yych <= 0x1F) goto yy671; goto yy681; } else { @@ -13593,7 +13593,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ':') { if (yych <= ' ') { - if (yych == 0x09) goto yy688; + if (yych == '\t') goto yy688; if (yych <= 0x1F) goto yy671; goto yy688; } else { @@ -13622,7 +13622,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= ':') { if (yych <= ' ') { - if (yych == 0x09) goto yy688; + if (yych == '\t') goto yy688; if (yych <= 0x1F) goto yy671; goto yy688; } else { @@ -13758,7 +13758,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -13820,7 +13820,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -13850,7 +13850,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -13880,7 +13880,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -13904,7 +13904,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -13940,7 +13940,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -13965,7 +13965,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -14005,7 +14005,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -14029,7 +14029,7 @@ yyaccept = 12; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy656; goto yy712; } else { @@ -14057,7 +14057,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -14103,7 +14103,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -14128,7 +14128,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -14153,7 +14153,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy712; + if (yych == '\t') goto yy712; goto yy656; } else { if (yych <= ' ') goto yy712; @@ -14519,7 +14519,7 @@ yy874: YYDEBUG(874, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 0x09) goto yy875; + if (yych == '\t') goto yy875; if (yych != ' ') goto yy54; yy875: YYDEBUG(875, *YYCURSOR); @@ -14528,7 +14528,7 @@ yych = *YYCURSOR; YYDEBUG(876, *YYCURSOR); if (yych <= '*') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy54; goto yy875; } else { @@ -14761,7 +14761,7 @@ YYDEBUG(908, *YYCURSOR); yych = *++YYCURSOR; if (yych <= ',') { - if (yych == 0x09) goto yy910; + if (yych == '\t') goto yy910; goto yy758; } else { if (yych <= '.') goto yy910; @@ -15241,7 +15241,7 @@ yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case 0x09: + case '\t': case ' ': case 'A': case 'D': @@ -15395,7 +15395,7 @@ YYDEBUG(964, *YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case 0x09: + case '\t': case ' ': goto yy963; case '-': case '.': goto yy1111; @@ -15744,7 +15744,7 @@ if (yych <= 'W') { if (yych <= 'F') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych >= ' ') goto yy58; } else { if (yych == 'D') goto yy58; @@ -15943,7 +15943,7 @@ if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych <= 0x1F) goto yy995; goto yy58; } else { @@ -16006,7 +16006,7 @@ if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych <= 0x1F) goto yy995; goto yy58; } else { @@ -16069,7 +16069,7 @@ if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych <= 0x1F) goto yy995; goto yy58; } else { @@ -16138,7 +16138,7 @@ if (yych <= 'W') { if (yych <= 'F') { if (yych <= ' ') { - if (yych == 0x09) goto yy57; + if (yych == '\t') goto yy57; if (yych >= ' ') goto yy57; } else { if (yych == 'D') goto yy62; @@ -16783,7 +16783,7 @@ YYDEBUG(1112, *YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case 0x09: + case '\t': case ' ': case '-': case '.': goto yy1111; @@ -17774,7 +17774,7 @@ YYDEBUG(1221, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '/') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy758; goto yy910; } else { @@ -17812,7 +17812,7 @@ yych = *++YYCURSOR; if (yych <= '9') { if (yych <= ',') { - if (yych == 0x09) goto yy1225; + if (yych == '\t') goto yy1225; goto yy1227; } else { if (yych <= '-') goto yy1224; @@ -17881,7 +17881,7 @@ YYDEBUG(1227, *YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case 0x09: + case '\t': case ' ': goto yy1226; case '-': case '.': goto yy757; @@ -18038,7 +18038,7 @@ yych = *++YYCURSOR; if (yych <= '9') { if (yych <= '-') { - if (yych == 0x09) goto yy1225; + if (yych == '\t') goto yy1225; if (yych <= ',') goto yy1227; goto yy1224; } else { @@ -18089,7 +18089,7 @@ yych = *(YYMARKER = ++YYCURSOR); YYDEBUG(-1, yych); switch (yych) { - case 0x09: + case '\t': case ' ': case 'A': case 'D': @@ -18210,7 +18210,7 @@ if (yych <= 'W') { if (yych <= 'F') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych >= ' ') goto yy58; } else { if (yych == 'D') goto yy58; @@ -18277,7 +18277,7 @@ if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych <= 0x1F) goto yy1249; goto yy58; } else { @@ -18340,7 +18340,7 @@ if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych <= 0x1F) goto yy1249; goto yy58; } else { @@ -18407,7 +18407,7 @@ if (yych <= 'V') { if (yych <= 'D') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych <= 0x1F) goto yy1249; goto yy58; } else { @@ -18470,7 +18470,7 @@ if (yych <= 'T') { if (yych <= '9') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych <= 0x1F) goto yy1249; goto yy58; } else { @@ -18546,7 +18546,7 @@ if (yych <= 'T') { if (yych <= '9') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych <= 0x1F) goto yy1249; goto yy58; } else { @@ -18622,7 +18622,7 @@ if (yych <= 'T') { if (yych <= '9') { if (yych <= ' ') { - if (yych == 0x09) goto yy58; + if (yych == '\t') goto yy58; if (yych <= 0x1F) goto yy1249; goto yy58; } else { @@ -18827,7 +18827,7 @@ yych = *++YYCURSOR; if (yych <= '9') { if (yych <= '-') { - if (yych == 0x09) goto yy640; + if (yych == '\t') goto yy640; if (yych <= ',') goto yy642; goto yy1224; } else { @@ -18853,7 +18853,7 @@ yych = *++YYCURSOR; if (yych <= '9') { if (yych <= '-') { - if (yych == 0x09) goto yy1225; + if (yych == '\t') goto yy1225; if (yych <= ',') goto yy1227; goto yy1224; } else { @@ -18923,7 +18923,7 @@ yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy3; goto yy272; } else { @@ -19054,7 +19054,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy272; + if (yych == '\t') goto yy272; goto yy3; } else { if (yych <= ' ') goto yy1274; @@ -19389,7 +19389,7 @@ yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy3; goto yy171; } else { @@ -19448,7 +19448,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -19910,7 +19910,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy171; + if (yych == '\t') goto yy171; goto yy3; } else { if (yych <= ' ') goto yy1300; @@ -19936,7 +19936,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -20062,7 +20062,7 @@ yy1332: YYDEBUG(1332, *YYCURSOR); ++YYCURSOR; - if (YYLIMIT == YYCURSOR) YYFILL(1); + if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; YYDEBUG(1333, *YYCURSOR); if (yych <= '/') goto yy1334; @@ -20659,7 +20659,7 @@ yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy3; goto yy272; } else { @@ -21407,7 +21407,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == 0x09) goto yy272; + if (yych == '\t') goto yy272; goto yy3; } else { if (yych <= ' ') goto yy272; @@ -21778,7 +21778,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -21821,7 +21821,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '-') { if (yych <= ' ') { - if (yych == 0x09) goto yy317; + if (yych == '\t') goto yy317; if (yych <= 0x1F) goto yy315; goto yy317; } else { @@ -22150,7 +22150,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -22195,7 +22195,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= ' ') { - if (yych == 0x09) goto yy317; + if (yych == '\t') goto yy317; if (yych <= 0x1F) goto yy315; goto yy317; } else { @@ -22444,7 +22444,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { @@ -22789,7 +22789,7 @@ yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { - if (yych <= 0x09) { + if (yych <= '\t') { if (yych <= 0x08) goto yy315; goto yy317; } else { http://cvs.php.net/viewvc.cgi/php-src/ext/date/lib/parse_date.re?r1=1.76&r2=1.77&diff_format=u Index: php-src/ext/date/lib/parse_date.re diff -u php-src/ext/date/lib/parse_date.re:1.76 php-src/ext/date/lib/parse_date.re:1.77 --- php-src/ext/date/lib/parse_date.re:1.76 Sun Apr 27 19:12:09 2008 +++ php-src/ext/date/lib/parse_date.re Thu May 1 16:14:29 2008 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: parse_date.re,v 1.76 2008/04/27 19:12:09 derick Exp $ */ +/* $Id: parse_date.re,v 1.77 2008/05/01 16:14:29 derick Exp $ */ #include "timelib.h" @@ -106,8 +106,8 @@ #define TIMELIB_HAVE_DATE() { if (s->time->have_date) { add_error(s, "Double date specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_date = 1; } } #define TIMELIB_UNHAVE_DATE() { s->time->have_date = 0; s->time->d = 0; s->time->m = 0; s->time->y = 0; } #define TIMELIB_HAVE_RELATIVE() { s->time->have_relative = 1; } -#define TIMELIB_HAVE_WEEKDAY_RELATIVE() { s->time->have_weekday_relative = 1; } -#define TIMELIB_HAVE_SPECIAL_RELATIVE() { s->time->have_special_relative = 1; } +#define TIMELIB_HAVE_WEEKDAY_RELATIVE() { s->time->have_relative = 1; s->time->relative.have_weekday_relative = 1; } +#define TIMELIB_HAVE_SPECIAL_RELATIVE() { s->time->have_relative = 1; s->time->relative.have_special_relative = 1; } #define TIMELIB_HAVE_TZ() { s->cur = cursor; if (s->time->have_zone) { s->time->have_zone > 1 ? add_error(s, "Double timezone specification") : add_warning(s, "Double timezone specification"); timelib_string_free(str); s->time->have_zone++; return TIMELIB_ERROR; } else { s->time->have_zone++; } } #define TIMELIB_INIT s->cur = cursor; str = timelib_string(s); ptr = str @@ -679,8 +679,8 @@ case TIMELIB_SPECIAL: TIMELIB_HAVE_SPECIAL_RELATIVE(); TIMELIB_UNHAVE_TIME(); - s->time->special.type = relunit->multiplier; - s->time->special.amount = amount; + s->time->relative.special.type = relunit->multiplier; + s->time->relative.special.amount = amount; } } @@ -1500,8 +1500,8 @@ if (s->time->relative.weekday == 0) { s->time->relative.weekday = -7; } - if (s->time->have_special_relative && s->time->special.type == TIMELIB_SPECIAL_WEEKDAY) { - s->time->special.amount = 0 - s->time->special.amount; + if (s->time->relative.have_special_relative && s->time->relative.special.type == TIMELIB_SPECIAL_WEEKDAY) { + s->time->relative.special.amount = 0 - s->time->relative.special.amount; } TIMELIB_DEINIT; return TIMELIB_AGO; @@ -1540,7 +1540,7 @@ s->time->relative.weekday_behavior = 2; /* to handle the format weekday + last/this/next week */ - if (s->time->have_weekday_relative == 0) { + if (s->time->relative.have_weekday_relative == 0) { TIMELIB_HAVE_WEEKDAY_RELATIVE(); s->time->relative.weekday = 1; } http://cvs.php.net/viewvc.cgi/php-src/ext/date/lib/timelib.c?r1=1.21&r2=1.22&diff_format=u Index: php-src/ext/date/lib/timelib.c diff -u php-src/ext/date/lib/timelib.c:1.21 php-src/ext/date/lib/timelib.c:1.22 --- php-src/ext/date/lib/timelib.c:1.21 Thu May 1 00:10:25 2008 +++ php-src/ext/date/lib/timelib.c Thu May 1 16:14:29 2008 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: timelib.c,v 1.21 2008/05/01 00:10:25 derick Exp $ */ +/* $Id: timelib.c,v 1.22 2008/05/01 16:14:29 derick Exp $ */ #include "timelib.h" #include <ctype.h> @@ -234,15 +234,15 @@ break; } } - } - if (d->have_weekday_relative) { - printf(" / %d.%d", d->relative.weekday, d->relative.weekday_behavior); - } - if (d->have_special_relative) { - switch (d->special.type) { - case TIMELIB_SPECIAL_WEEKDAY: - printf(" / %lld weekday", d->special.amount); - break; + if (d->relative.have_weekday_relative) { + printf(" / %d.%d", d->relative.weekday, d->relative.weekday_behavior); + } + if (d->relative.have_special_relative) { + switch (d->relative.special.type) { + case TIMELIB_SPECIAL_WEEKDAY: + printf(" / %lld weekday", d->relative.special.amount); + break; + } } } } http://cvs.php.net/viewvc.cgi/php-src/ext/date/lib/timelib_structs.h?r1=1.27&r2=1.28&diff_format=u Index: php-src/ext/date/lib/timelib_structs.h diff -u php-src/ext/date/lib/timelib_structs.h:1.27 php-src/ext/date/lib/timelib_structs.h:1.28 --- php-src/ext/date/lib/timelib_structs.h:1.27 Fri Apr 25 12:55:16 2008 +++ php-src/ext/date/lib/timelib_structs.h Thu May 1 16:14:29 2008 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: timelib_structs.h,v 1.27 2008/04/25 12:55:16 derick Exp $ */ +/* $Id: timelib_structs.h,v 1.28 2008/05/01 16:14:29 derick Exp $ */ #ifndef __TIMELIB_STRUCTS_H__ #define __TIMELIB_STRUCTS_H__ @@ -116,6 +116,11 @@ tlinfo *leap_times; } timelib_tzinfo; +typedef struct timelib_special { + unsigned int type; + timelib_sll amount; +} timelib_special; + typedef struct timelib_rel_time { timelib_sll y, m, d; /* Years, Months and Days */ timelib_sll h, i, s; /* Hours, mInutes and Seconds */ @@ -126,6 +131,9 @@ int first_last_day_of; int invert; /* Whether the difference should be inverted */ timelib_sll days; /* Contains the number of *days*, instead of Y-M-D differences */ + + timelib_special special; + unsigned int have_weekday_relative, have_special_relative; } timelib_rel_time; typedef struct timelib_time_offset { @@ -136,11 +144,6 @@ timelib_sll transistion_time; } timelib_time_offset; -typedef struct timelib_special { - unsigned int type; - timelib_sll amount; -} timelib_special; - typedef struct timelib_time { timelib_sll y, m, d; /* Year, Month, Day */ timelib_sll h, i, s; /* Hour, mInute, Second */ @@ -150,11 +153,10 @@ timelib_tzinfo *tz_info; /* Timezone structure */ signed int dst; /* Flag if we were parsing a DST zone */ timelib_rel_time relative; - timelib_special special; timelib_sll sse; /* Seconds since epoch */ - unsigned int have_time, have_date, have_zone, have_relative, have_weekday_relative, have_special_relative, have_weeknr_day; + unsigned int have_time, have_date, have_zone, have_relative, have_weeknr_day; unsigned int sse_uptodate; /* !0 if the sse member is up to date with the date/time members */ unsigned int tim_uptodate; /* !0 if the date/time members are up to date with the sse member */ http://cvs.php.net/viewvc.cgi/php-src/ext/date/lib/tm2unixtime.c?r1=1.23&r2=1.24&diff_format=u Index: php-src/ext/date/lib/tm2unixtime.c diff -u php-src/ext/date/lib/tm2unixtime.c:1.23 php-src/ext/date/lib/tm2unixtime.c:1.24 --- php-src/ext/date/lib/tm2unixtime.c:1.23 Sun Apr 27 19:12:10 2008 +++ php-src/ext/date/lib/tm2unixtime.c Thu May 1 16:14:29 2008 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: tm2unixtime.c,v 1.23 2008/04/27 19:12:10 derick Exp $ */ +/* $Id: tm2unixtime.c,v 1.24 2008/05/01 16:14:29 derick Exp $ */ #include "timelib.h" @@ -142,7 +142,7 @@ } else { time->d -= (7 - (abs(time->relative.weekday) - current_dow)); } - time->have_weekday_relative = 0; + time->relative.have_weekday_relative = 0; } void timelib_do_rel_normalize(timelib_time *base, timelib_rel_time *rt) @@ -169,7 +169,7 @@ static void do_adjust_relative(timelib_time* time) { - if (time->have_weekday_relative) { + if (time->relative.have_weekday_relative) { do_adjust_for_weekday(time); } do_normalize(time); @@ -203,7 +203,7 @@ timelib_sll current_dow, this_weekday = 0, count; current_dow = timelib_day_of_week(time->y, time->m, time->d); - count = time->special.amount; + count = time->relative.special.amount; if (count == 0) { if (current_dow == 6) { this_weekday = 2; @@ -233,15 +233,15 @@ static void do_adjust_special(timelib_time* time) { - if (time->have_special_relative) { - switch (time->special.type) { + if (time->relative.have_special_relative) { + switch (time->relative.special.type) { case TIMELIB_SPECIAL_WEEKDAY: do_adjust_special_weekday(time); break; } } do_normalize(time); - memset(&(time->special), 0, sizeof(time->special)); + memset(&(time->relative.special), 0, sizeof(time->relative.special)); } static timelib_sll do_years(timelib_sll year)
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php