From c87c803b96119a676026927d81a6d25b9aed8fe4 Mon Sep 17 00:00:00 2001 From: Derick Rethans Date: Thu, 1 Dec 2022 10:58:37 +0000 Subject: [PATCH] Some (old, backwards compatible) TZIDs can have numbers in them --- ext/date/lib/parse_date.c | 207 +++++++++++++++++++------------------ ext/date/lib/parse_date.re | 3 +- 2 files changed, 106 insertions(+), 104 deletions(-) diff --git a/ext/date/lib/parse_date.c b/ext/date/lib/parse_date.c index 84ad4fab894..99ec21baf56 100644 --- a/ext/date/lib/parse_date.c +++ b/ext/date/lib/parse_date.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.15.3 on Wed Nov 30 11:53:33 2022 */ +/* Generated by re2c 0.15.3 on Thu Dec 1 10:57:42 2022 */ #line 1 "ext/date/lib/parse_date.re" /* * The MIT License (MIT) @@ -756,10 +756,11 @@ static timelib_long timelib_lookup_abbr(const char **ptr, int *dst, char **tz_ab timelib_long value = 0; const timelib_tz_lookup_table *tp; - /* Only include A-Z, a-z, /, _, and - in abbreviations/TZ IDs */ + /* Only include A-Z, a-z, 0-9, /, _, and - in abbreviations/TZ IDs */ while ( (**ptr >= 'A' && **ptr <= 'Z') || (**ptr >= 'a' && **ptr <= 'z') || + (**ptr >= '0' && **ptr <= '9') || **ptr == '/' || **ptr == '_' || **ptr == '-' ) { ++*ptr; @@ -957,11 +958,11 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper) std: s->tok = cursor; s->len = 0; -#line 1088 "ext/date/lib/parse_date.re" +#line 1089 "ext/date/lib/parse_date.re" -#line 965 "" +#line 966 "" { YYCTYPE yych; unsigned int yyaccept = 0; @@ -1099,7 +1100,7 @@ yy2: } yy3: YYDEBUG(3, *YYCURSOR); -#line 1822 "ext/date/lib/parse_date.re" +#line 1823 "ext/date/lib/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("tzcorrection | tz"); @@ -1112,7 +1113,7 @@ yy3: TIMELIB_DEINIT; return TIMELIB_TIMEZONE; } -#line 1116 "" +#line 1117 "" yy4: YYDEBUG(4, *YYCURSOR); yych = *++YYCURSOR; @@ -1419,12 +1420,12 @@ yy11: if (yych <= '9') goto yy1483; yy12: YYDEBUG(12, *YYCURSOR); -#line 1917 "ext/date/lib/parse_date.re" +#line 1918 "ext/date/lib/parse_date.re" { add_error(s, TIMELIB_ERR_UNEXPECTED_CHARACTER, "Unexpected character"); goto std; } -#line 1428 "" +#line 1429 "" yy13: YYDEBUG(13, *YYCURSOR); yych = *++YYCURSOR; @@ -2668,11 +2669,11 @@ yy48: if (yych <= '9') goto yy54; yy49: YYDEBUG(49, *YYCURSOR); -#line 1906 "ext/date/lib/parse_date.re" +#line 1907 "ext/date/lib/parse_date.re" { goto std; } -#line 2676 "" +#line 2677 "" yy50: YYDEBUG(50, *YYCURSOR); yych = *++YYCURSOR; @@ -2681,12 +2682,12 @@ yy51: YYDEBUG(51, *YYCURSOR); ++YYCURSOR; YYDEBUG(52, *YYCURSOR); -#line 1911 "ext/date/lib/parse_date.re" +#line 1912 "ext/date/lib/parse_date.re" { s->pos = cursor; s->line++; goto std; } -#line 2690 "" +#line 2691 "" yy53: YYDEBUG(53, *YYCURSOR); yych = *++YYCURSOR; @@ -3108,7 +3109,7 @@ yy83: if (yych == 's') goto yy85; yy84: YYDEBUG(84, *YYCURSOR); -#line 1890 "ext/date/lib/parse_date.re" +#line 1891 "ext/date/lib/parse_date.re" { timelib_ull i; DEBUG_OUTPUT("relative"); @@ -3123,7 +3124,7 @@ yy84: TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 3127 "" +#line 3128 "" yy85: YYDEBUG(85, *YYCURSOR); yych = *++YYCURSOR; @@ -4132,7 +4133,7 @@ yy218: } yy219: YYDEBUG(219, *YYCURSOR); -#line 1753 "ext/date/lib/parse_date.re" +#line 1754 "ext/date/lib/parse_date.re" { const timelib_relunit* relunit; DEBUG_OUTPUT("daytext"); @@ -4149,7 +4150,7 @@ yy219: TIMELIB_DEINIT; return TIMELIB_WEEKDAY; } -#line 4153 "" +#line 4154 "" yy220: YYDEBUG(220, *YYCURSOR); yych = *++YYCURSOR; @@ -4695,7 +4696,7 @@ yy247: } yy248: YYDEBUG(248, *YYCURSOR); -#line 1812 "ext/date/lib/parse_date.re" +#line 1813 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("monthtext"); TIMELIB_INIT; @@ -4704,7 +4705,7 @@ yy248: TIMELIB_DEINIT; return TIMELIB_DATE_TEXT; } -#line 4708 "" +#line 4709 "" yy249: YYDEBUG(249, *YYCURSOR); ++YYCURSOR; @@ -4953,7 +4954,7 @@ yy261: goto yy267; yy262: YYDEBUG(262, *YYCURSOR); -#line 1558 "ext/date/lib/parse_date.re" +#line 1559 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("datetextual | datenoyear"); @@ -4966,7 +4967,7 @@ yy262: TIMELIB_DEINIT; return TIMELIB_DATE_TEXT; } -#line 4970 "" +#line 4971 "" yy263: YYDEBUG(263, *YYCURSOR); yyaccept = 6; @@ -5093,7 +5094,7 @@ yy275: } yy276: YYDEBUG(276, *YYCURSOR); -#line 1860 "ext/date/lib/parse_date.re" +#line 1861 "ext/date/lib/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz"); @@ -5122,7 +5123,7 @@ yy276: TIMELIB_DEINIT; return TIMELIB_SHORTDATE_WITH_TIME; } -#line 5126 "" +#line 5127 "" yy277: YYDEBUG(277, *YYCURSOR); yyaccept = 7; @@ -5420,7 +5421,7 @@ yy300: YYDEBUG(300, *YYCURSOR); ++YYCURSOR; YYDEBUG(301, *YYCURSOR); -#line 1836 "ext/date/lib/parse_date.re" +#line 1837 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("dateshortwithtimeshort12 | dateshortwithtimelong12"); TIMELIB_INIT; @@ -5443,7 +5444,7 @@ yy300: TIMELIB_DEINIT; return TIMELIB_SHORTDATE_WITH_TIME; } -#line 5447 "" +#line 5448 "" yy302: YYDEBUG(302, *YYCURSOR); yych = *++YYCURSOR; @@ -6121,7 +6122,7 @@ yy361: YYDEBUG(362, *YYCURSOR); ++YYCURSOR; YYDEBUG(363, *YYCURSOR); -#line 1530 "ext/date/lib/parse_date.re" +#line 1531 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("datenoday"); @@ -6134,7 +6135,7 @@ yy361: TIMELIB_DEINIT; return TIMELIB_DATE_NO_DAY; } -#line 6138 "" +#line 6139 "" yy364: YYDEBUG(364, *YYCURSOR); yych = *++YYCURSOR; @@ -6365,7 +6366,7 @@ yy368: if (yych <= '9') goto yy372; yy371: YYDEBUG(371, *YYCURSOR); -#line 1674 "ext/date/lib/parse_date.re" +#line 1675 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("pgtextshort"); @@ -6378,7 +6379,7 @@ yy371: TIMELIB_DEINIT; return TIMELIB_PG_TEXT; } -#line 6382 "" +#line 6383 "" yy372: YYDEBUG(372, *YYCURSOR); yych = *++YYCURSOR; @@ -6960,7 +6961,7 @@ yy397: } yy398: YYDEBUG(398, *YYCURSOR); -#line 1732 "ext/date/lib/parse_date.re" +#line 1733 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("ago"); TIMELIB_INIT; @@ -6980,7 +6981,7 @@ yy398: TIMELIB_DEINIT; return TIMELIB_AGO; } -#line 6984 "" +#line 6985 "" yy399: YYDEBUG(399, *YYCURSOR); yyaccept = 5; @@ -8769,7 +8770,7 @@ yy460: ++YYCURSOR; yy461: YYDEBUG(461, *YYCURSOR); -#line 1423 "ext/date/lib/parse_date.re" +#line 1424 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("iso8601date4 | iso8601date2 | iso8601dateslash | dateslash"); TIMELIB_INIT; @@ -8780,7 +8781,7 @@ yy461: TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } -#line 8784 "" +#line 8785 "" yy462: YYDEBUG(462, *YYCURSOR); yych = *++YYCURSOR; @@ -8902,7 +8903,7 @@ yy484: YYDEBUG(484, *YYCURSOR); ++YYCURSOR; YYDEBUG(485, *YYCURSOR); -#line 1449 "ext/date/lib/parse_date.re" +#line 1450 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("iso8601datex"); TIMELIB_INIT; @@ -8913,7 +8914,7 @@ yy484: TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } -#line 8917 "" +#line 8918 "" yy486: YYDEBUG(486, *YYCURSOR); yyaccept = 1; @@ -9667,7 +9668,7 @@ yy508: } yy509: YYDEBUG(509, *YYCURSOR); -#line 1572 "ext/date/lib/parse_date.re" +#line 1573 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("datenoyearrev"); TIMELIB_INIT; @@ -9678,7 +9679,7 @@ yy509: TIMELIB_DEINIT; return TIMELIB_DATE_TEXT; } -#line 9682 "" +#line 9683 "" yy510: YYDEBUG(510, *YYCURSOR); yyaccept = 9; @@ -9819,7 +9820,7 @@ yy521: YYDEBUG(521, *YYCURSOR); ++YYCURSOR; YYDEBUG(522, *YYCURSOR); -#line 1276 "ext/date/lib/parse_date.re" +#line 1277 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12"); TIMELIB_INIT; @@ -9835,7 +9836,7 @@ yy521: TIMELIB_DEINIT; return TIMELIB_TIME12; } -#line 9839 "" +#line 9840 "" yy523: YYDEBUG(523, *YYCURSOR); yyaccept = 10; @@ -9848,7 +9849,7 @@ yy523: } yy524: YYDEBUG(524, *YYCURSOR); -#line 1313 "ext/date/lib/parse_date.re" +#line 1314 "ext/date/lib/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("timetiny24 | timeshort24 | timelong24 | iso8601long"); @@ -9875,7 +9876,7 @@ yy524: TIMELIB_DEINIT; return TIMELIB_TIME24_WITH_ZONE; } -#line 9879 "" +#line 9880 "" yy525: YYDEBUG(525, *YYCURSOR); yyaccept = 10; @@ -10188,7 +10189,7 @@ yy556: YYDEBUG(556, *YYCURSOR); ++YYCURSOR; YYDEBUG(557, *YYCURSOR); -#line 1293 "ext/date/lib/parse_date.re" +#line 1294 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("mssqltime"); TIMELIB_INIT; @@ -10207,7 +10208,7 @@ yy556: TIMELIB_DEINIT; return TIMELIB_TIME24_WITH_ZONE; } -#line 10211 "" +#line 10212 "" yy558: YYDEBUG(558, *YYCURSOR); yyaccept = 10; @@ -10313,7 +10314,7 @@ yy567: if (yych <= '9') goto yy574; yy568: YYDEBUG(568, *YYCURSOR); -#line 1489 "ext/date/lib/parse_date.re" +#line 1490 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("datefull"); @@ -10327,7 +10328,7 @@ yy568: TIMELIB_DEINIT; return TIMELIB_DATE_FULL; } -#line 10331 "" +#line 10332 "" yy569: YYDEBUG(569, *YYCURSOR); yych = *++YYCURSOR; @@ -11063,7 +11064,7 @@ yy638: YYDEBUG(639, *YYCURSOR); ++YYCURSOR; YYDEBUG(640, *YYCURSOR); -#line 1504 "ext/date/lib/parse_date.re" +#line 1505 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("pointed date YYYY"); TIMELIB_INIT; @@ -11074,7 +11075,7 @@ yy638: TIMELIB_DEINIT; return TIMELIB_DATE_FULL_POINTED; } -#line 11078 "" +#line 11079 "" yy641: YYDEBUG(641, *YYCURSOR); yyaccept = 10; @@ -11110,7 +11111,7 @@ yy644: if (yych <= '9') goto yy638; yy645: YYDEBUG(645, *YYCURSOR); -#line 1516 "ext/date/lib/parse_date.re" +#line 1517 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("pointed date YY"); @@ -11123,7 +11124,7 @@ yy645: TIMELIB_DEINIT; return TIMELIB_DATE_FULL_POINTED; } -#line 11127 "" +#line 11128 "" yy646: YYDEBUG(646, *YYCURSOR); yyaccept = 10; @@ -11764,7 +11765,7 @@ yy689: } yy690: YYDEBUG(690, *YYCURSOR); -#line 1475 "ext/date/lib/parse_date.re" +#line 1476 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("gnudateshort"); @@ -11777,7 +11778,7 @@ yy690: TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } -#line 11781 "" +#line 11782 "" yy691: YYDEBUG(691, *YYCURSOR); yyaccept = 12; @@ -11883,7 +11884,7 @@ yy699: } yy700: YYDEBUG(700, *YYCURSOR); -#line 1407 "ext/date/lib/parse_date.re" +#line 1408 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("americanshort | american"); @@ -11898,7 +11899,7 @@ yy700: TIMELIB_DEINIT; return TIMELIB_AMERICAN; } -#line 11902 "" +#line 11903 "" yy701: YYDEBUG(701, *YYCURSOR); yyaccept = 13; @@ -12132,7 +12133,7 @@ yy733: if (yych <= ':') goto yy737; yy734: YYDEBUG(734, *YYCURSOR); -#line 1702 "ext/date/lib/parse_date.re" +#line 1703 "ext/date/lib/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("clf"); @@ -12152,7 +12153,7 @@ yy734: TIMELIB_DEINIT; return TIMELIB_CLF; } -#line 12156 "" +#line 12157 "" yy735: YYDEBUG(735, *YYCURSOR); yyaccept = 14; @@ -12772,7 +12773,7 @@ yy807: } yy808: YYDEBUG(808, *YYCURSOR); -#line 1435 "ext/date/lib/parse_date.re" +#line 1436 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("iso8601date2"); @@ -12785,7 +12786,7 @@ yy808: TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } -#line 12789 "" +#line 12790 "" yy809: YYDEBUG(809, *YYCURSOR); yych = *++YYCURSOR; @@ -12824,7 +12825,7 @@ yy815: YYDEBUG(815, *YYCURSOR); ++YYCURSOR; YYDEBUG(816, *YYCURSOR); -#line 1688 "ext/date/lib/parse_date.re" +#line 1689 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("pgtextreverse"); @@ -12837,7 +12838,7 @@ yy815: TIMELIB_DEINIT; return TIMELIB_PG_TEXT; } -#line 12841 "" +#line 12842 "" yy817: YYDEBUG(817, *YYCURSOR); yych = *++YYCURSOR; @@ -13002,7 +13003,7 @@ yy827: } yy828: YYDEBUG(828, *YYCURSOR); -#line 1723 "ext/date/lib/parse_date.re" +#line 1724 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("year4"); TIMELIB_INIT; @@ -13010,7 +13011,7 @@ yy828: TIMELIB_DEINIT; return TIMELIB_CLF; } -#line 13014 "" +#line 13015 "" yy829: YYDEBUG(829, *YYCURSOR); yych = *++YYCURSOR; @@ -13215,7 +13216,7 @@ yy837: } yy838: YYDEBUG(838, *YYCURSOR); -#line 1544 "ext/date/lib/parse_date.re" +#line 1545 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("datenodayrev"); @@ -13228,7 +13229,7 @@ yy838: TIMELIB_DEINIT; return TIMELIB_DATE_NO_DAY; } -#line 13232 "" +#line 13233 "" yy839: YYDEBUG(839, *YYCURSOR); yych = *++YYCURSOR; @@ -13449,7 +13450,7 @@ yy858: if (yych <= '7') goto yy861; yy859: YYDEBUG(859, *YYCURSOR); -#line 1655 "ext/date/lib/parse_date.re" +#line 1656 "ext/date/lib/parse_date.re" { timelib_sll w, d; DEBUG_OUTPUT("isoweek"); @@ -13467,7 +13468,7 @@ yy859: TIMELIB_DEINIT; return TIMELIB_ISO_WEEK; } -#line 13471 "" +#line 13472 "" yy860: YYDEBUG(860, *YYCURSOR); yych = *++YYCURSOR; @@ -13477,7 +13478,7 @@ yy861: YYDEBUG(861, *YYCURSOR); ++YYCURSOR; YYDEBUG(862, *YYCURSOR); -#line 1636 "ext/date/lib/parse_date.re" +#line 1637 "ext/date/lib/parse_date.re" { timelib_sll w, d; DEBUG_OUTPUT("isoweekday"); @@ -13495,7 +13496,7 @@ yy861: TIMELIB_DEINIT; return TIMELIB_ISO_WEEK; } -#line 13499 "" +#line 13500 "" yy863: YYDEBUG(863, *YYCURSOR); yych = *++YYCURSOR; @@ -13567,7 +13568,7 @@ yy865: } yy866: YYDEBUG(866, *YYCURSOR); -#line 1622 "ext/date/lib/parse_date.re" +#line 1623 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("pgydotd"); @@ -13580,7 +13581,7 @@ yy866: TIMELIB_DEINIT; return TIMELIB_PG_YEARDAY; } -#line 13584 "" +#line 13585 "" yy867: YYDEBUG(867, *YYCURSOR); yych = *++YYCURSOR; @@ -13683,7 +13684,7 @@ yy886: ++YYCURSOR; yy887: YYDEBUG(887, *YYCURSOR); -#line 1596 "ext/date/lib/parse_date.re" +#line 1597 "ext/date/lib/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif"); @@ -13708,7 +13709,7 @@ yy887: TIMELIB_DEINIT; return TIMELIB_XMLRPC_SOAP; } -#line 13712 "" +#line 13713 "" yy888: YYDEBUG(888, *YYCURSOR); yych = *++YYCURSOR; @@ -14004,7 +14005,7 @@ yy892: } yy893: YYDEBUG(893, *YYCURSOR); -#line 1584 "ext/date/lib/parse_date.re" +#line 1585 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("datenocolon"); TIMELIB_INIT; @@ -14015,7 +14016,7 @@ yy893: TIMELIB_DEINIT; return TIMELIB_DATE_NOCOLON; } -#line 14019 "" +#line 14020 "" yy894: YYDEBUG(894, *YYCURSOR); yych = *++YYCURSOR; @@ -14937,7 +14938,7 @@ yy1017: } yy1018: YYDEBUG(1018, *YYCURSOR); -#line 1461 "ext/date/lib/parse_date.re" +#line 1462 "ext/date/lib/parse_date.re" { int length = 0; DEBUG_OUTPUT("gnudateshorter"); @@ -14950,7 +14951,7 @@ yy1018: TIMELIB_DEINIT; return TIMELIB_ISO_DATE; } -#line 14954 "" +#line 14955 "" yy1019: YYDEBUG(1019, *YYCURSOR); yyaccept = 22; @@ -16158,7 +16159,7 @@ yy1125: } yy1127: YYDEBUG(1127, *YYCURSOR); -#line 1341 "ext/date/lib/parse_date.re" +#line 1342 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("gnunocolon"); TIMELIB_INIT; @@ -16180,7 +16181,7 @@ yy1127: TIMELIB_DEINIT; return TIMELIB_GNU_NOCOLON; } -#line 16184 "" +#line 16185 "" yy1128: YYDEBUG(1128, *YYCURSOR); yych = *++YYCURSOR; @@ -16280,7 +16281,7 @@ yy1134: } yy1135: YYDEBUG(1135, *YYCURSOR); -#line 1387 "ext/date/lib/parse_date.re" +#line 1388 "ext/date/lib/parse_date.re" { int tz_not_found; DEBUG_OUTPUT("iso8601nocolon"); @@ -16299,7 +16300,7 @@ yy1135: TIMELIB_DEINIT; return TIMELIB_ISO_NOCOLON; } -#line 16303 "" +#line 16304 "" yy1136: YYDEBUG(1136, *YYCURSOR); yyaccept = 25; @@ -17275,7 +17276,7 @@ yy1178: } yy1179: YYDEBUG(1179, *YYCURSOR); -#line 1795 "ext/date/lib/parse_date.re" +#line 1796 "ext/date/lib/parse_date.re" { timelib_sll i; int behavior = 0; @@ -17291,7 +17292,7 @@ yy1179: TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 17295 "" +#line 17296 "" yy1180: YYDEBUG(1180, *YYCURSOR); ++YYCURSOR; @@ -17357,7 +17358,7 @@ yy1188: YYDEBUG(1188, *YYCURSOR); ++YYCURSOR; YYDEBUG(1189, *YYCURSOR); -#line 1254 "ext/date/lib/parse_date.re" +#line 1255 "ext/date/lib/parse_date.re" { timelib_sll i; int behavior = 0; @@ -17378,7 +17379,7 @@ yy1188: TIMELIB_DEINIT; return TIMELIB_WEEK_DAY_OF_MONTH; } -#line 17382 "" +#line 17383 "" yy1190: YYDEBUG(1190, *YYCURSOR); yyaccept = 26; @@ -17518,7 +17519,7 @@ yy1205: } yy1206: YYDEBUG(1206, *YYCURSOR); -#line 1771 "ext/date/lib/parse_date.re" +#line 1772 "ext/date/lib/parse_date.re" { timelib_sll i; int behavior = 0; @@ -17541,7 +17542,7 @@ yy1206: TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 17545 "" +#line 17546 "" yy1207: YYDEBUG(1207, *YYCURSOR); yych = *++YYCURSOR; @@ -20490,7 +20491,7 @@ yy1387: } yy1388: YYDEBUG(1388, *YYCURSOR); -#line 1231 "ext/date/lib/parse_date.re" +#line 1232 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("backof | frontof"); TIMELIB_INIT; @@ -20512,7 +20513,7 @@ yy1388: TIMELIB_DEINIT; return TIMELIB_LF_DAY_OF_MONTH; } -#line 20516 "" +#line 20517 "" yy1389: YYDEBUG(1389, *YYCURSOR); yyaccept = 28; @@ -20811,7 +20812,7 @@ yy1410: YYDEBUG(1410, *YYCURSOR); ++YYCURSOR; YYDEBUG(1411, *YYCURSOR); -#line 1214 "ext/date/lib/parse_date.re" +#line 1215 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("firstdayof | lastdayof"); TIMELIB_INIT; @@ -20827,7 +20828,7 @@ yy1410: TIMELIB_DEINIT; return TIMELIB_LF_DAY_OF_MONTH; } -#line 20831 "" +#line 20832 "" yy1412: YYDEBUG(1412, *YYCURSOR); yyaccept = 1; @@ -22349,7 +22350,7 @@ yy1483: if (yych <= '9') goto yy1483; yy1485: YYDEBUG(1485, *YYCURSOR); -#line 1148 "ext/date/lib/parse_date.re" +#line 1149 "ext/date/lib/parse_date.re" { timelib_ull i; @@ -22374,7 +22375,7 @@ yy1485: TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 22378 "" +#line 22379 "" yy1486: YYDEBUG(1486, *YYCURSOR); ++YYCURSOR; @@ -22382,7 +22383,7 @@ yy1486: if (yych <= '9') goto yy1488; yy1487: YYDEBUG(1487, *YYCURSOR); -#line 1174 "ext/date/lib/parse_date.re" +#line 1175 "ext/date/lib/parse_date.re" { timelib_sll i; timelib_ull us; @@ -22421,7 +22422,7 @@ yy1487: TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 22425 "" +#line 22426 "" yy1488: YYDEBUG(1488, *YYCURSOR); yych = *++YYCURSOR; @@ -22890,7 +22891,7 @@ yy1523: ++YYCURSOR; yy1524: YYDEBUG(1524, *YYCURSOR); -#line 1136 "ext/date/lib/parse_date.re" +#line 1137 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("tomorrow"); TIMELIB_INIT; @@ -22901,7 +22902,7 @@ yy1524: TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 22905 "" +#line 22906 "" yy1525: YYDEBUG(1525, *YYCURSOR); yych = *++YYCURSOR; @@ -22936,7 +22937,7 @@ yy1526: } yy1527: YYDEBUG(1527, *YYCURSOR); -#line 1126 "ext/date/lib/parse_date.re" +#line 1127 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("midnight | today"); TIMELIB_INIT; @@ -22945,7 +22946,7 @@ yy1527: TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 22949 "" +#line 22950 "" yy1528: YYDEBUG(1528, *YYCURSOR); yych = *++YYCURSOR; @@ -25040,7 +25041,7 @@ yy1611: } yy1612: YYDEBUG(1612, *YYCURSOR); -#line 1105 "ext/date/lib/parse_date.re" +#line 1106 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("now"); TIMELIB_INIT; @@ -25048,7 +25049,7 @@ yy1612: TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 25052 "" +#line 25053 "" yy1613: YYDEBUG(1613, *YYCURSOR); yych = *++YYCURSOR; @@ -25187,7 +25188,7 @@ yy1619: } yy1620: YYDEBUG(1620, *YYCURSOR); -#line 1114 "ext/date/lib/parse_date.re" +#line 1115 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("noon"); TIMELIB_INIT; @@ -25198,7 +25199,7 @@ yy1620: TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 25202 "" +#line 25203 "" yy1621: YYDEBUG(1621, *YYCURSOR); yyaccept = 1; @@ -25731,7 +25732,7 @@ yy1642: ++YYCURSOR; yy1643: YYDEBUG(1643, *YYCURSOR); -#line 1093 "ext/date/lib/parse_date.re" +#line 1094 "ext/date/lib/parse_date.re" { DEBUG_OUTPUT("yesterday"); TIMELIB_INIT; @@ -25742,7 +25743,7 @@ yy1643: TIMELIB_DEINIT; return TIMELIB_RELATIVE; } -#line 25746 "" +#line 25747 "" yy1644: YYDEBUG(1644, *YYCURSOR); yyaccept = 1; @@ -25915,7 +25916,7 @@ yy1649: goto yy1643; } } -#line 1921 "ext/date/lib/parse_date.re" +#line 1922 "ext/date/lib/parse_date.re" } diff --git a/ext/date/lib/parse_date.re b/ext/date/lib/parse_date.re index b7667ad75b0..923091ea89f 100644 --- a/ext/date/lib/parse_date.re +++ b/ext/date/lib/parse_date.re @@ -754,10 +754,11 @@ static timelib_long timelib_lookup_abbr(const char **ptr, int *dst, char **tz_ab timelib_long value = 0; const timelib_tz_lookup_table *tp; - /* Only include A-Z, a-z, /, _, and - in abbreviations/TZ IDs */ + /* Only include A-Z, a-z, 0-9, /, _, and - in abbreviations/TZ IDs */ while ( (**ptr >= 'A' && **ptr <= 'Z') || (**ptr >= 'a' && **ptr <= 'z') || + (**ptr >= '0' && **ptr <= '9') || **ptr == '/' || **ptr == '_' || **ptr == '-' ) { ++*ptr;