diff options
author | Derick Rethans <derick@php.net> | 2009-05-05 07:45:18 +0000 |
---|---|---|
committer | Derick Rethans <derick@php.net> | 2009-05-05 07:45:18 +0000 |
commit | f2ef1dec3c945f9680b5edbc0667b69cba18c832 (patch) | |
tree | b705df698e8309732524b40396b56424d8805b3e | |
parent | 06c487133ad4195ea1b6bb9ac4cef16e8e82f47b (diff) | |
download | php-git-f2ef1dec3c945f9680b5edbc0667b69cba18c832.tar.gz |
- Fixed bug #48149 (Cannot make interval parts larger than 9999) by
regenerating the parser.
-rw-r--r-- | ext/date/lib/parse_iso_intervals.c | 46 |
1 files changed, 27 insertions, 19 deletions
diff --git a/ext/date/lib/parse_iso_intervals.c b/ext/date/lib/parse_iso_intervals.c index 92368054fe..c63252f06f 100644 --- a/ext/date/lib/parse_iso_intervals.c +++ b/ext/date/lib/parse_iso_intervals.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Sat Aug 2 12:46:48 2008 */ +/* Generated by re2c 0.13.5 on Tue May 5 09:42:15 2009 */ #line 1 "ext/date/lib/parse_iso_intervals.re" /* +----------------------------------------------------------------------+ @@ -270,6 +270,11 @@ static long timelib_get_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_ } \ } +/* date parser's scan function too large for VC6 - VC7.x + drop the optimization solves the problem */ +#ifdef PHP_WIN32 +#pragma optimize( "", off ) +#endif static int scan(Scanner *s) { uchar *cursor = s->cur; @@ -278,11 +283,11 @@ static int scan(Scanner *s) std: s->tok = cursor; s->len = 0; -#line 306 "ext/date/lib/parse_iso_intervals.re" +#line 311 "ext/date/lib/parse_iso_intervals.re" -#line 286 "ext/date/lib/parse_iso_intervals.c" +#line 291 "ext/date/lib/parse_iso_intervals.c" { YYCTYPE yych; unsigned int yyaccept = 0; @@ -352,12 +357,12 @@ std: if (yych <= '9') goto yy98; yy3: YYDEBUG(3, *YYCURSOR); -#line 419 "ext/date/lib/parse_iso_intervals.re" +#line 424 "ext/date/lib/parse_iso_intervals.re" { add_error(s, "Unexpected character"); goto std; } -#line 361 "ext/date/lib/parse_iso_intervals.c" +#line 366 "ext/date/lib/parse_iso_intervals.c" yy4: YYDEBUG(4, *YYCURSOR); yyaccept = 0; @@ -374,7 +379,7 @@ yy5: if (yych == 'T') goto yy14; yy6: YYDEBUG(6, *YYCURSOR); -#line 346 "ext/date/lib/parse_iso_intervals.re" +#line 351 "ext/date/lib/parse_iso_intervals.re" { timelib_sll nr; int in_time = 0; @@ -391,7 +396,7 @@ yy6: break; } - nr = timelib_get_unsigned_nr((char **) &ptr, 4); + nr = timelib_get_unsigned_nr((char **) &ptr, 9); switch (*ptr) { case 'Y': s->period->y = nr; break; case 'W': s->period->d = nr * 7; break; @@ -415,26 +420,26 @@ yy6: TIMELIB_DEINIT; return TIMELIB_PERIOD; } -#line 419 "ext/date/lib/parse_iso_intervals.c" +#line 424 "ext/date/lib/parse_iso_intervals.c" yy7: YYDEBUG(7, *YYCURSOR); ++YYCURSOR; YYDEBUG(8, *YYCURSOR); -#line 408 "ext/date/lib/parse_iso_intervals.re" +#line 413 "ext/date/lib/parse_iso_intervals.re" { goto std; } -#line 428 "ext/date/lib/parse_iso_intervals.c" +#line 433 "ext/date/lib/parse_iso_intervals.c" yy9: YYDEBUG(9, *YYCURSOR); ++YYCURSOR; YYDEBUG(10, *YYCURSOR); -#line 413 "ext/date/lib/parse_iso_intervals.re" +#line 418 "ext/date/lib/parse_iso_intervals.re" { s->pos = cursor; s->line++; goto std; } -#line 438 "ext/date/lib/parse_iso_intervals.c" +#line 443 "ext/date/lib/parse_iso_intervals.c" yy11: YYDEBUG(11, *YYCURSOR); yych = *++YYCURSOR; @@ -764,7 +769,7 @@ yy51: YYDEBUG(57, *YYCURSOR); ++YYCURSOR; YYDEBUG(58, *YYCURSOR); -#line 388 "ext/date/lib/parse_iso_intervals.re" +#line 393 "ext/date/lib/parse_iso_intervals.re" { DEBUG_OUTPUT("combinedrep"); TIMELIB_INIT; @@ -783,7 +788,7 @@ yy51: TIMELIB_DEINIT; return TIMELIB_PERIOD; } -#line 787 "ext/date/lib/parse_iso_intervals.c" +#line 792 "ext/date/lib/parse_iso_intervals.c" yy59: YYDEBUG(59, *YYCURSOR); yych = *++YYCURSOR; @@ -912,7 +917,7 @@ yy83: YYDEBUG(83, *YYCURSOR); ++YYCURSOR; YYDEBUG(84, *YYCURSOR); -#line 322 "ext/date/lib/parse_iso_intervals.re" +#line 327 "ext/date/lib/parse_iso_intervals.re" { timelib_time *current; @@ -935,7 +940,7 @@ yy83: TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } -#line 939 "ext/date/lib/parse_iso_intervals.c" +#line 944 "ext/date/lib/parse_iso_intervals.c" yy85: YYDEBUG(85, *YYCURSOR); yych = *++YYCURSOR; @@ -1013,7 +1018,7 @@ yy98: if (yych <= '9') goto yy98; yy100: YYDEBUG(100, *YYCURSOR); -#line 311 "ext/date/lib/parse_iso_intervals.re" +#line 316 "ext/date/lib/parse_iso_intervals.re" { DEBUG_OUTPUT("recurrences"); TIMELIB_INIT; @@ -1023,11 +1028,14 @@ yy100: s->have_recurrences = 1; return TIMELIB_PERIOD; } -#line 1027 "ext/date/lib/parse_iso_intervals.c" +#line 1032 "ext/date/lib/parse_iso_intervals.c" } -#line 423 "ext/date/lib/parse_iso_intervals.re" +#line 428 "ext/date/lib/parse_iso_intervals.re" } +#ifdef PHP_WIN32 +#pragma optimize( "", on ) +#endif #define YYMAXFILL 20 |