summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/date/lib/parse_date.c202
-rw-r--r--ext/date/lib/parse_date.re2
-rw-r--r--ext/date/lib/parse_iso_intervals.c38
-rw-r--r--ext/date/lib/parse_iso_intervals.re2
-rw-r--r--ext/date/lib/timelib.h10
-rw-r--r--ext/date/lib/timelib.m43
-rw-r--r--ext/date/lib/timezonemap.h16
-rw-r--r--ext/date/lib/tm2unixtime.c1
8 files changed, 131 insertions, 143 deletions
diff --git a/ext/date/lib/parse_date.c b/ext/date/lib/parse_date.c
index 5be4d36e67..e95bc3e4aa 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 Tue Oct 9 10:50:25 2018 */
+/* Generated by re2c 0.15.3 on Fri Oct 12 10:49:04 2018 */
#line 1 "parse_date.re"
/*
* The MIT License (MIT)
@@ -24,8 +24,6 @@
* THE SOFTWARE.
*/
-/* $Id$ */
-
#include "timelib.h"
#include "timelib_private.h"
@@ -885,11 +883,11 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper)
std:
s->tok = cursor;
s->len = 0;
-#line 1012 "parse_date.re"
+#line 1010 "parse_date.re"
-#line 893 "<stdout>"
+#line 891 "<stdout>"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
@@ -1027,7 +1025,7 @@ yy2:
}
yy3:
YYDEBUG(3, *YYCURSOR);
-#line 1720 "parse_date.re"
+#line 1718 "parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("tzcorrection | tz");
@@ -1040,7 +1038,7 @@ yy3:
TIMELIB_DEINIT;
return TIMELIB_TIMEZONE;
}
-#line 1044 "<stdout>"
+#line 1042 "<stdout>"
yy4:
YYDEBUG(4, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1349,12 +1347,12 @@ yy11:
if (yych <= '9') goto yy1377;
yy12:
YYDEBUG(12, *YYCURSOR);
-#line 1815 "parse_date.re"
+#line 1813 "parse_date.re"
{
add_error(s, TIMELIB_ERR_UNEXPECTED_CHARACTER, "Unexpected character");
goto std;
}
-#line 1358 "<stdout>"
+#line 1356 "<stdout>"
yy13:
YYDEBUG(13, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2598,11 +2596,11 @@ yy48:
if (yych <= '9') goto yy54;
yy49:
YYDEBUG(49, *YYCURSOR);
-#line 1804 "parse_date.re"
+#line 1802 "parse_date.re"
{
goto std;
}
-#line 2606 "<stdout>"
+#line 2604 "<stdout>"
yy50:
YYDEBUG(50, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2611,12 +2609,12 @@ yy51:
YYDEBUG(51, *YYCURSOR);
++YYCURSOR;
YYDEBUG(52, *YYCURSOR);
-#line 1809 "parse_date.re"
+#line 1807 "parse_date.re"
{
s->pos = cursor; s->line++;
goto std;
}
-#line 2620 "<stdout>"
+#line 2618 "<stdout>"
yy53:
YYDEBUG(53, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3052,7 +3050,7 @@ yy73:
if (yych == 's') goto yy75;
yy74:
YYDEBUG(74, *YYCURSOR);
-#line 1788 "parse_date.re"
+#line 1786 "parse_date.re"
{
timelib_ull i;
DEBUG_OUTPUT("relative");
@@ -3067,7 +3065,7 @@ yy74:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 3071 "<stdout>"
+#line 3069 "<stdout>"
yy75:
YYDEBUG(75, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3970,7 +3968,7 @@ yy190:
}
yy191:
YYDEBUG(191, *YYCURSOR);
-#line 1651 "parse_date.re"
+#line 1649 "parse_date.re"
{
const timelib_relunit* relunit;
DEBUG_OUTPUT("daytext");
@@ -3987,7 +3985,7 @@ yy191:
TIMELIB_DEINIT;
return TIMELIB_WEEKDAY;
}
-#line 3991 "<stdout>"
+#line 3989 "<stdout>"
yy192:
YYDEBUG(192, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4507,7 +4505,7 @@ yy217:
}
yy218:
YYDEBUG(218, *YYCURSOR);
-#line 1710 "parse_date.re"
+#line 1708 "parse_date.re"
{
DEBUG_OUTPUT("monthtext");
TIMELIB_INIT;
@@ -4516,7 +4514,7 @@ yy218:
TIMELIB_DEINIT;
return TIMELIB_DATE_TEXT;
}
-#line 4520 "<stdout>"
+#line 4518 "<stdout>"
yy219:
YYDEBUG(219, *YYCURSOR);
++YYCURSOR;
@@ -4765,7 +4763,7 @@ yy231:
goto yy237;
yy232:
YYDEBUG(232, *YYCURSOR);
-#line 1456 "parse_date.re"
+#line 1454 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("datetextual | datenoyear");
@@ -4778,7 +4776,7 @@ yy232:
TIMELIB_DEINIT;
return TIMELIB_DATE_TEXT;
}
-#line 4782 "<stdout>"
+#line 4780 "<stdout>"
yy233:
YYDEBUG(233, *YYCURSOR);
yyaccept = 6;
@@ -4905,7 +4903,7 @@ yy245:
}
yy246:
YYDEBUG(246, *YYCURSOR);
-#line 1758 "parse_date.re"
+#line 1756 "parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz");
@@ -4934,7 +4932,7 @@ yy246:
TIMELIB_DEINIT;
return TIMELIB_SHORTDATE_WITH_TIME;
}
-#line 4938 "<stdout>"
+#line 4936 "<stdout>"
yy247:
YYDEBUG(247, *YYCURSOR);
yyaccept = 7;
@@ -5232,7 +5230,7 @@ yy270:
YYDEBUG(270, *YYCURSOR);
++YYCURSOR;
YYDEBUG(271, *YYCURSOR);
-#line 1734 "parse_date.re"
+#line 1732 "parse_date.re"
{
DEBUG_OUTPUT("dateshortwithtimeshort12 | dateshortwithtimelong12");
TIMELIB_INIT;
@@ -5255,7 +5253,7 @@ yy270:
TIMELIB_DEINIT;
return TIMELIB_SHORTDATE_WITH_TIME;
}
-#line 5259 "<stdout>"
+#line 5257 "<stdout>"
yy272:
YYDEBUG(272, *YYCURSOR);
yych = *++YYCURSOR;
@@ -5862,7 +5860,7 @@ yy320:
YYDEBUG(321, *YYCURSOR);
++YYCURSOR;
YYDEBUG(322, *YYCURSOR);
-#line 1428 "parse_date.re"
+#line 1426 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("datenoday");
@@ -5875,7 +5873,7 @@ yy320:
TIMELIB_DEINIT;
return TIMELIB_DATE_NO_DAY;
}
-#line 5879 "<stdout>"
+#line 5877 "<stdout>"
yy323:
YYDEBUG(323, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6106,7 +6104,7 @@ yy327:
if (yych <= '9') goto yy331;
yy330:
YYDEBUG(330, *YYCURSOR);
-#line 1572 "parse_date.re"
+#line 1570 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("pgtextshort");
@@ -6119,7 +6117,7 @@ yy330:
TIMELIB_DEINIT;
return TIMELIB_PG_TEXT;
}
-#line 6123 "<stdout>"
+#line 6121 "<stdout>"
yy331:
YYDEBUG(331, *YYCURSOR);
yych = *++YYCURSOR;
@@ -6701,7 +6699,7 @@ yy356:
}
yy357:
YYDEBUG(357, *YYCURSOR);
-#line 1630 "parse_date.re"
+#line 1628 "parse_date.re"
{
DEBUG_OUTPUT("ago");
TIMELIB_INIT;
@@ -6721,7 +6719,7 @@ yy357:
TIMELIB_DEINIT;
return TIMELIB_AGO;
}
-#line 6725 "<stdout>"
+#line 6723 "<stdout>"
yy358:
YYDEBUG(358, *YYCURSOR);
yyaccept = 5;
@@ -8504,7 +8502,7 @@ yy418:
++YYCURSOR;
yy419:
YYDEBUG(419, *YYCURSOR);
-#line 1333 "parse_date.re"
+#line 1331 "parse_date.re"
{
DEBUG_OUTPUT("iso8601date4 | iso8601date2 | iso8601dateslash | dateslash");
TIMELIB_INIT;
@@ -8515,7 +8513,7 @@ yy419:
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 8519 "<stdout>"
+#line 8517 "<stdout>"
yy420:
YYDEBUG(420, *YYCURSOR);
yyaccept = 0;
@@ -9159,7 +9157,7 @@ yy439:
}
yy440:
YYDEBUG(440, *YYCURSOR);
-#line 1470 "parse_date.re"
+#line 1468 "parse_date.re"
{
DEBUG_OUTPUT("datenoyearrev");
TIMELIB_INIT;
@@ -9170,7 +9168,7 @@ yy440:
TIMELIB_DEINIT;
return TIMELIB_DATE_TEXT;
}
-#line 9174 "<stdout>"
+#line 9172 "<stdout>"
yy441:
YYDEBUG(441, *YYCURSOR);
yyaccept = 9;
@@ -9311,7 +9309,7 @@ yy452:
YYDEBUG(452, *YYCURSOR);
++YYCURSOR;
YYDEBUG(453, *YYCURSOR);
-#line 1188 "parse_date.re"
+#line 1186 "parse_date.re"
{
DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12");
TIMELIB_INIT;
@@ -9327,7 +9325,7 @@ yy452:
TIMELIB_DEINIT;
return TIMELIB_TIME12;
}
-#line 9331 "<stdout>"
+#line 9329 "<stdout>"
yy454:
YYDEBUG(454, *YYCURSOR);
yyaccept = 10;
@@ -9340,7 +9338,7 @@ yy454:
}
yy455:
YYDEBUG(455, *YYCURSOR);
-#line 1225 "parse_date.re"
+#line 1223 "parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("timeshort24 | timelong24 | iso8601long");
@@ -9365,7 +9363,7 @@ yy455:
TIMELIB_DEINIT;
return TIMELIB_TIME24_WITH_ZONE;
}
-#line 9369 "<stdout>"
+#line 9367 "<stdout>"
yy456:
YYDEBUG(456, *YYCURSOR);
yyaccept = 10;
@@ -9675,7 +9673,7 @@ yy487:
YYDEBUG(487, *YYCURSOR);
++YYCURSOR;
YYDEBUG(488, *YYCURSOR);
-#line 1205 "parse_date.re"
+#line 1203 "parse_date.re"
{
DEBUG_OUTPUT("mssqltime");
TIMELIB_INIT;
@@ -9694,7 +9692,7 @@ yy487:
TIMELIB_DEINIT;
return TIMELIB_TIME24_WITH_ZONE;
}
-#line 9698 "<stdout>"
+#line 9696 "<stdout>"
yy489:
YYDEBUG(489, *YYCURSOR);
yyaccept = 10;
@@ -9800,7 +9798,7 @@ yy498:
if (yych <= '9') goto yy505;
yy499:
YYDEBUG(499, *YYCURSOR);
-#line 1387 "parse_date.re"
+#line 1385 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("datefull");
@@ -9814,7 +9812,7 @@ yy499:
TIMELIB_DEINIT;
return TIMELIB_DATE_FULL;
}
-#line 9818 "<stdout>"
+#line 9816 "<stdout>"
yy500:
YYDEBUG(500, *YYCURSOR);
yych = *++YYCURSOR;
@@ -10550,7 +10548,7 @@ yy569:
YYDEBUG(570, *YYCURSOR);
++YYCURSOR;
YYDEBUG(571, *YYCURSOR);
-#line 1402 "parse_date.re"
+#line 1400 "parse_date.re"
{
DEBUG_OUTPUT("pointed date YYYY");
TIMELIB_INIT;
@@ -10561,7 +10559,7 @@ yy569:
TIMELIB_DEINIT;
return TIMELIB_DATE_FULL_POINTED;
}
-#line 10565 "<stdout>"
+#line 10563 "<stdout>"
yy572:
YYDEBUG(572, *YYCURSOR);
yyaccept = 10;
@@ -10597,7 +10595,7 @@ yy575:
if (yych <= '9') goto yy569;
yy576:
YYDEBUG(576, *YYCURSOR);
-#line 1414 "parse_date.re"
+#line 1412 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("pointed date YY");
@@ -10610,7 +10608,7 @@ yy576:
TIMELIB_DEINIT;
return TIMELIB_DATE_FULL_POINTED;
}
-#line 10614 "<stdout>"
+#line 10612 "<stdout>"
yy577:
YYDEBUG(577, *YYCURSOR);
yyaccept = 10;
@@ -11251,7 +11249,7 @@ yy620:
}
yy621:
YYDEBUG(621, *YYCURSOR);
-#line 1373 "parse_date.re"
+#line 1371 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("gnudateshort");
@@ -11264,7 +11262,7 @@ yy621:
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 11268 "<stdout>"
+#line 11266 "<stdout>"
yy622:
YYDEBUG(622, *YYCURSOR);
yyaccept = 12;
@@ -11370,7 +11368,7 @@ yy630:
}
yy631:
YYDEBUG(631, *YYCURSOR);
-#line 1317 "parse_date.re"
+#line 1315 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("americanshort | american");
@@ -11385,7 +11383,7 @@ yy631:
TIMELIB_DEINIT;
return TIMELIB_AMERICAN;
}
-#line 11389 "<stdout>"
+#line 11387 "<stdout>"
yy632:
YYDEBUG(632, *YYCURSOR);
yyaccept = 13;
@@ -11618,7 +11616,7 @@ yy664:
if (yych <= ':') goto yy668;
yy665:
YYDEBUG(665, *YYCURSOR);
-#line 1600 "parse_date.re"
+#line 1598 "parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("clf");
@@ -11638,7 +11636,7 @@ yy665:
TIMELIB_DEINIT;
return TIMELIB_CLF;
}
-#line 11642 "<stdout>"
+#line 11640 "<stdout>"
yy666:
YYDEBUG(666, *YYCURSOR);
yych = *++YYCURSOR;
@@ -12188,7 +12186,7 @@ yy727:
}
yy728:
YYDEBUG(728, *YYCURSOR);
-#line 1345 "parse_date.re"
+#line 1343 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("iso8601date2");
@@ -12201,7 +12199,7 @@ yy728:
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 12205 "<stdout>"
+#line 12203 "<stdout>"
yy729:
YYDEBUG(729, *YYCURSOR);
yych = *++YYCURSOR;
@@ -12240,7 +12238,7 @@ yy735:
YYDEBUG(735, *YYCURSOR);
++YYCURSOR;
YYDEBUG(736, *YYCURSOR);
-#line 1586 "parse_date.re"
+#line 1584 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("pgtextreverse");
@@ -12253,7 +12251,7 @@ yy735:
TIMELIB_DEINIT;
return TIMELIB_PG_TEXT;
}
-#line 12257 "<stdout>"
+#line 12255 "<stdout>"
yy737:
YYDEBUG(737, *YYCURSOR);
yych = *++YYCURSOR;
@@ -12418,7 +12416,7 @@ yy747:
}
yy748:
YYDEBUG(748, *YYCURSOR);
-#line 1621 "parse_date.re"
+#line 1619 "parse_date.re"
{
DEBUG_OUTPUT("year4");
TIMELIB_INIT;
@@ -12426,7 +12424,7 @@ yy748:
TIMELIB_DEINIT;
return TIMELIB_CLF;
}
-#line 12430 "<stdout>"
+#line 12428 "<stdout>"
yy749:
YYDEBUG(749, *YYCURSOR);
yych = *++YYCURSOR;
@@ -12631,7 +12629,7 @@ yy757:
}
yy758:
YYDEBUG(758, *YYCURSOR);
-#line 1442 "parse_date.re"
+#line 1440 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("datenodayrev");
@@ -12644,7 +12642,7 @@ yy758:
TIMELIB_DEINIT;
return TIMELIB_DATE_NO_DAY;
}
-#line 12648 "<stdout>"
+#line 12646 "<stdout>"
yy759:
YYDEBUG(759, *YYCURSOR);
yych = *++YYCURSOR;
@@ -12865,7 +12863,7 @@ yy778:
if (yych <= '7') goto yy781;
yy779:
YYDEBUG(779, *YYCURSOR);
-#line 1553 "parse_date.re"
+#line 1551 "parse_date.re"
{
timelib_sll w, d;
DEBUG_OUTPUT("isoweek");
@@ -12883,7 +12881,7 @@ yy779:
TIMELIB_DEINIT;
return TIMELIB_ISO_WEEK;
}
-#line 12887 "<stdout>"
+#line 12885 "<stdout>"
yy780:
YYDEBUG(780, *YYCURSOR);
yych = *++YYCURSOR;
@@ -12893,7 +12891,7 @@ yy781:
YYDEBUG(781, *YYCURSOR);
++YYCURSOR;
YYDEBUG(782, *YYCURSOR);
-#line 1534 "parse_date.re"
+#line 1532 "parse_date.re"
{
timelib_sll w, d;
DEBUG_OUTPUT("isoweekday");
@@ -12911,7 +12909,7 @@ yy781:
TIMELIB_DEINIT;
return TIMELIB_ISO_WEEK;
}
-#line 12915 "<stdout>"
+#line 12913 "<stdout>"
yy783:
YYDEBUG(783, *YYCURSOR);
yych = *++YYCURSOR;
@@ -12981,7 +12979,7 @@ yy785:
}
yy786:
YYDEBUG(786, *YYCURSOR);
-#line 1520 "parse_date.re"
+#line 1518 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("pgydotd");
@@ -12994,7 +12992,7 @@ yy786:
TIMELIB_DEINIT;
return TIMELIB_PG_YEARDAY;
}
-#line 12998 "<stdout>"
+#line 12996 "<stdout>"
yy787:
YYDEBUG(787, *YYCURSOR);
yych = *++YYCURSOR;
@@ -13097,7 +13095,7 @@ yy806:
++YYCURSOR;
yy807:
YYDEBUG(807, *YYCURSOR);
-#line 1494 "parse_date.re"
+#line 1492 "parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif");
@@ -13122,7 +13120,7 @@ yy807:
TIMELIB_DEINIT;
return TIMELIB_XMLRPC_SOAP;
}
-#line 13126 "<stdout>"
+#line 13124 "<stdout>"
yy808:
YYDEBUG(808, *YYCURSOR);
yych = *++YYCURSOR;
@@ -13417,7 +13415,7 @@ yy812:
}
yy813:
YYDEBUG(813, *YYCURSOR);
-#line 1482 "parse_date.re"
+#line 1480 "parse_date.re"
{
DEBUG_OUTPUT("datenocolon");
TIMELIB_INIT;
@@ -13428,7 +13426,7 @@ yy813:
TIMELIB_DEINIT;
return TIMELIB_DATE_NOCOLON;
}
-#line 13432 "<stdout>"
+#line 13430 "<stdout>"
yy814:
YYDEBUG(814, *YYCURSOR);
yych = *++YYCURSOR;
@@ -14347,7 +14345,7 @@ yy937:
if (yych <= '9') goto yy960;
yy938:
YYDEBUG(938, *YYCURSOR);
-#line 1359 "parse_date.re"
+#line 1357 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("gnudateshorter");
@@ -14360,7 +14358,7 @@ yy938:
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 14364 "<stdout>"
+#line 14362 "<stdout>"
yy939:
YYDEBUG(939, *YYCURSOR);
yyaccept = 21;
@@ -15453,7 +15451,7 @@ yy1030:
}
yy1032:
YYDEBUG(1032, *YYCURSOR);
-#line 1251 "parse_date.re"
+#line 1249 "parse_date.re"
{
DEBUG_OUTPUT("gnunocolon");
TIMELIB_INIT;
@@ -15475,7 +15473,7 @@ yy1032:
TIMELIB_DEINIT;
return TIMELIB_GNU_NOCOLON;
}
-#line 15479 "<stdout>"
+#line 15477 "<stdout>"
yy1033:
YYDEBUG(1033, *YYCURSOR);
yych = *++YYCURSOR;
@@ -15573,7 +15571,7 @@ yy1039:
}
yy1040:
YYDEBUG(1040, *YYCURSOR);
-#line 1297 "parse_date.re"
+#line 1295 "parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("iso8601nocolon");
@@ -15592,7 +15590,7 @@ yy1040:
TIMELIB_DEINIT;
return TIMELIB_ISO_NOCOLON;
}
-#line 15596 "<stdout>"
+#line 15594 "<stdout>"
yy1041:
YYDEBUG(1041, *YYCURSOR);
yyaccept = 24;
@@ -16568,7 +16566,7 @@ yy1083:
}
yy1084:
YYDEBUG(1084, *YYCURSOR);
-#line 1693 "parse_date.re"
+#line 1691 "parse_date.re"
{
timelib_sll i;
int behavior = 0;
@@ -16584,7 +16582,7 @@ yy1084:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 16588 "<stdout>"
+#line 16586 "<stdout>"
yy1085:
YYDEBUG(1085, *YYCURSOR);
++YYCURSOR;
@@ -16635,7 +16633,7 @@ yy1092:
YYDEBUG(1092, *YYCURSOR);
++YYCURSOR;
YYDEBUG(1093, *YYCURSOR);
-#line 1166 "parse_date.re"
+#line 1164 "parse_date.re"
{
timelib_sll i;
int behavior = 0;
@@ -16656,7 +16654,7 @@ yy1092:
TIMELIB_DEINIT;
return TIMELIB_WEEK_DAY_OF_MONTH;
}
-#line 16660 "<stdout>"
+#line 16658 "<stdout>"
yy1094:
YYDEBUG(1094, *YYCURSOR);
yyaccept = 25;
@@ -16764,7 +16762,7 @@ yy1107:
}
yy1108:
YYDEBUG(1108, *YYCURSOR);
-#line 1669 "parse_date.re"
+#line 1667 "parse_date.re"
{
timelib_sll i;
int behavior = 0;
@@ -16787,7 +16785,7 @@ yy1108:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 16791 "<stdout>"
+#line 16789 "<stdout>"
yy1109:
YYDEBUG(1109, *YYCURSOR);
yych = *++YYCURSOR;
@@ -19636,7 +19634,7 @@ yy1283:
}
yy1284:
YYDEBUG(1284, *YYCURSOR);
-#line 1143 "parse_date.re"
+#line 1141 "parse_date.re"
{
DEBUG_OUTPUT("backof | frontof");
TIMELIB_INIT;
@@ -19658,7 +19656,7 @@ yy1284:
TIMELIB_DEINIT;
return TIMELIB_LF_DAY_OF_MONTH;
}
-#line 19662 "<stdout>"
+#line 19660 "<stdout>"
yy1285:
YYDEBUG(1285, *YYCURSOR);
yyaccept = 27;
@@ -19957,7 +19955,7 @@ yy1306:
YYDEBUG(1306, *YYCURSOR);
++YYCURSOR;
YYDEBUG(1307, *YYCURSOR);
-#line 1126 "parse_date.re"
+#line 1124 "parse_date.re"
{
DEBUG_OUTPUT("firstdayof | lastdayof");
TIMELIB_INIT;
@@ -19973,7 +19971,7 @@ yy1306:
TIMELIB_DEINIT;
return TIMELIB_LF_DAY_OF_MONTH;
}
-#line 19977 "<stdout>"
+#line 19975 "<stdout>"
yy1308:
YYDEBUG(1308, *YYCURSOR);
yyaccept = 0;
@@ -21462,7 +21460,7 @@ yy1377:
if (yych <= '9') goto yy1377;
yy1379:
YYDEBUG(1379, *YYCURSOR);
-#line 1072 "parse_date.re"
+#line 1070 "parse_date.re"
{
timelib_ull i;
@@ -21487,7 +21485,7 @@ yy1379:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 21491 "<stdout>"
+#line 21489 "<stdout>"
yy1380:
YYDEBUG(1380, *YYCURSOR);
yych = *++YYCURSOR;
@@ -21516,7 +21514,7 @@ yy1380:
YYDEBUG(1386, *YYCURSOR);
++YYCURSOR;
YYDEBUG(1387, *YYCURSOR);
-#line 1098 "parse_date.re"
+#line 1096 "parse_date.re"
{
timelib_ull i, us;
@@ -21543,7 +21541,7 @@ yy1380:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 21547 "<stdout>"
+#line 21545 "<stdout>"
yy1388:
YYDEBUG(1388, *YYCURSOR);
yych = *++YYCURSOR;
@@ -21979,7 +21977,7 @@ yy1416:
++YYCURSOR;
yy1417:
YYDEBUG(1417, *YYCURSOR);
-#line 1060 "parse_date.re"
+#line 1058 "parse_date.re"
{
DEBUG_OUTPUT("tomorrow");
TIMELIB_INIT;
@@ -21990,7 +21988,7 @@ yy1417:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 21994 "<stdout>"
+#line 21992 "<stdout>"
yy1418:
YYDEBUG(1418, *YYCURSOR);
yych = *++YYCURSOR;
@@ -22025,7 +22023,7 @@ yy1419:
}
yy1420:
YYDEBUG(1420, *YYCURSOR);
-#line 1050 "parse_date.re"
+#line 1048 "parse_date.re"
{
DEBUG_OUTPUT("midnight | today");
TIMELIB_INIT;
@@ -22034,7 +22032,7 @@ yy1420:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 22038 "<stdout>"
+#line 22036 "<stdout>"
yy1421:
YYDEBUG(1421, *YYCURSOR);
yych = *++YYCURSOR;
@@ -24046,7 +24044,7 @@ yy1499:
}
yy1500:
YYDEBUG(1500, *YYCURSOR);
-#line 1029 "parse_date.re"
+#line 1027 "parse_date.re"
{
DEBUG_OUTPUT("now");
TIMELIB_INIT;
@@ -24054,7 +24052,7 @@ yy1500:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 24058 "<stdout>"
+#line 24056 "<stdout>"
yy1501:
YYDEBUG(1501, *YYCURSOR);
yych = *++YYCURSOR;
@@ -24193,7 +24191,7 @@ yy1507:
}
yy1508:
YYDEBUG(1508, *YYCURSOR);
-#line 1038 "parse_date.re"
+#line 1036 "parse_date.re"
{
DEBUG_OUTPUT("noon");
TIMELIB_INIT;
@@ -24204,7 +24202,7 @@ yy1508:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 24208 "<stdout>"
+#line 24206 "<stdout>"
yy1509:
YYDEBUG(1509, *YYCURSOR);
yyaccept = 0;
@@ -24737,7 +24735,7 @@ yy1530:
++YYCURSOR;
yy1531:
YYDEBUG(1531, *YYCURSOR);
-#line 1017 "parse_date.re"
+#line 1015 "parse_date.re"
{
DEBUG_OUTPUT("yesterday");
TIMELIB_INIT;
@@ -24748,7 +24746,7 @@ yy1531:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 24752 "<stdout>"
+#line 24750 "<stdout>"
yy1532:
YYDEBUG(1532, *YYCURSOR);
yyaccept = 0;
@@ -24921,7 +24919,7 @@ yy1537:
goto yy1531;
}
}
-#line 1819 "parse_date.re"
+#line 1817 "parse_date.re"
}
diff --git a/ext/date/lib/parse_date.re b/ext/date/lib/parse_date.re
index 6c84a71917..815d417d02 100644
--- a/ext/date/lib/parse_date.re
+++ b/ext/date/lib/parse_date.re
@@ -22,8 +22,6 @@
* THE SOFTWARE.
*/
-/* $Id$ */
-
#include "timelib.h"
#include "timelib_private.h"
diff --git a/ext/date/lib/parse_iso_intervals.c b/ext/date/lib/parse_iso_intervals.c
index e3677c2bf6..64d2d29553 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.15.3 on Tue Oct 9 10:50:29 2018 */
+/* Generated by re2c 0.15.3 on Fri Oct 12 11:47:32 2018 */
#line 1 "parse_iso_intervals.re"
/*
* The MIT License (MIT)
@@ -24,8 +24,6 @@
* THE SOFTWARE.
*/
-/* $Id$ */
-
#include "timelib.h"
#include "timelib_private.h"
@@ -176,11 +174,11 @@ static int scan(Scanner *s)
std:
s->tok = cursor;
s->len = 0;
-#line 204 "parse_iso_intervals.re"
+#line 202 "parse_iso_intervals.re"
-#line 184 "<stdout>"
+#line 182 "<stdout>"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
@@ -249,12 +247,12 @@ std:
if (yych <= '9') goto yy98;
yy3:
YYDEBUG(3, *YYCURSOR);
-#line 317 "parse_iso_intervals.re"
+#line 315 "parse_iso_intervals.re"
{
add_error(s, "Unexpected character");
goto std;
}
-#line 258 "<stdout>"
+#line 256 "<stdout>"
yy4:
YYDEBUG(4, *YYCURSOR);
yyaccept = 0;
@@ -271,7 +269,7 @@ yy5:
if (yych == 'T') goto yy14;
yy6:
YYDEBUG(6, *YYCURSOR);
-#line 244 "parse_iso_intervals.re"
+#line 242 "parse_iso_intervals.re"
{
timelib_sll nr;
int in_time = 0;
@@ -312,26 +310,26 @@ yy6:
TIMELIB_DEINIT;
return TIMELIB_PERIOD;
}
-#line 316 "<stdout>"
+#line 314 "<stdout>"
yy7:
YYDEBUG(7, *YYCURSOR);
++YYCURSOR;
YYDEBUG(8, *YYCURSOR);
-#line 306 "parse_iso_intervals.re"
+#line 304 "parse_iso_intervals.re"
{
goto std;
}
-#line 325 "<stdout>"
+#line 323 "<stdout>"
yy9:
YYDEBUG(9, *YYCURSOR);
++YYCURSOR;
YYDEBUG(10, *YYCURSOR);
-#line 311 "parse_iso_intervals.re"
+#line 309 "parse_iso_intervals.re"
{
s->pos = cursor; s->line++;
goto std;
}
-#line 335 "<stdout>"
+#line 333 "<stdout>"
yy11:
YYDEBUG(11, *YYCURSOR);
yych = *++YYCURSOR;
@@ -661,7 +659,7 @@ yy51:
YYDEBUG(57, *YYCURSOR);
++YYCURSOR;
YYDEBUG(58, *YYCURSOR);
-#line 286 "parse_iso_intervals.re"
+#line 284 "parse_iso_intervals.re"
{
DEBUG_OUTPUT("combinedrep");
TIMELIB_INIT;
@@ -680,7 +678,7 @@ yy51:
TIMELIB_DEINIT;
return TIMELIB_PERIOD;
}
-#line 684 "<stdout>"
+#line 682 "<stdout>"
yy59:
YYDEBUG(59, *YYCURSOR);
yych = *++YYCURSOR;
@@ -809,7 +807,7 @@ yy83:
YYDEBUG(83, *YYCURSOR);
++YYCURSOR;
YYDEBUG(84, *YYCURSOR);
-#line 220 "parse_iso_intervals.re"
+#line 218 "parse_iso_intervals.re"
{
timelib_time *current;
@@ -832,7 +830,7 @@ yy83:
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 836 "<stdout>"
+#line 834 "<stdout>"
yy85:
YYDEBUG(85, *YYCURSOR);
yych = *++YYCURSOR;
@@ -910,7 +908,7 @@ yy98:
if (yych <= '9') goto yy98;
yy100:
YYDEBUG(100, *YYCURSOR);
-#line 209 "parse_iso_intervals.re"
+#line 207 "parse_iso_intervals.re"
{
DEBUG_OUTPUT("recurrences");
TIMELIB_INIT;
@@ -920,9 +918,9 @@ yy100:
s->have_recurrences = 1;
return TIMELIB_PERIOD;
}
-#line 924 "<stdout>"
+#line 922 "<stdout>"
}
-#line 321 "parse_iso_intervals.re"
+#line 319 "parse_iso_intervals.re"
}
#ifdef PHP_WIN32
diff --git a/ext/date/lib/parse_iso_intervals.re b/ext/date/lib/parse_iso_intervals.re
index 95d8abf9ea..cde4475da1 100644
--- a/ext/date/lib/parse_iso_intervals.re
+++ b/ext/date/lib/parse_iso_intervals.re
@@ -22,8 +22,6 @@
* THE SOFTWARE.
*/
-/* $Id$ */
-
#include "timelib.h"
#include "timelib_private.h"
diff --git a/ext/date/lib/timelib.h b/ext/date/lib/timelib.h
index 3ab2267608..e272cfcd13 100644
--- a/ext/date/lib/timelib.h
+++ b/ext/date/lib/timelib.h
@@ -322,8 +322,8 @@ typedef struct _timelib_tzdb {
#endif
#define TIMELIB_VERSION 201801
-#define TIMELIB_EXTENDED_VERSION 20180002
-#define TIMELIB_ASCII_VERSION "2018.01alpha2"
+#define TIMELIB_EXTENDED_VERSION 20180103
+#define TIMELIB_ASCII_VERSION "2018.01RC1"
#define TIMELIB_NONE 0x00
#define TIMELIB_OVERRIDE_TIME 0x01
@@ -452,7 +452,7 @@ int timelib_valid_date(timelib_sll y, timelib_sll m, timelib_sll d);
* If the **errors points to a timelib_error_container variable, warnings
* and errors will be recorded. You are responsible for freeing the stored
* information with timelib_error_container_dtor(). To see whether errors have
- * occured, inspect errors->errors_count. To see whether warnings have occured,
+ * occurred, inspect errors->errors_count. To see whether warnings have occurred,
* inspect errors->warnings_count.
*
* The returned timelib_time* value is dynamically allocated and should be
@@ -473,7 +473,7 @@ timelib_time *timelib_strtotime(char *s, size_t len, timelib_error_container **e
* If the **errors points to a timelib_error_container variable, warnings
* and errors will be recorded. You are responsible for freeing the stored
* information with timelib_error_container_dtor(). To see whether errors have
- * occured, inspect errors->errors_count. To see whether warnings have occured,
+ * occurred, inspect errors->errors_count. To see whether warnings have occurred,
* inspect errors->warnings_count.
*
* The returned timelib_time* value is dynamically allocated and should be
@@ -562,7 +562,7 @@ timelib_long timelib_parse_zone(char **ptr, int *dst, timelib_time *t, int *tz_n
* If the **errors points to a timelib_error_container variable, warnings
* and errors will be recorded. You are responsible for freeing the stored
* information with timelib_error_container_dtor(). To see whether errors have
- * occured, inspect errors->errors_count. To see whether warnings have occured,
+ * occurred, inspect errors->errors_count. To see whether warnings have occurred,
* inspect errors->warnings_count.
*/
void timelib_strtointerval(char *s, size_t len,
diff --git a/ext/date/lib/timelib.m4 b/ext/date/lib/timelib.m4
index e112380da0..ad21eab38a 100644
--- a/ext/date/lib/timelib.m4
+++ b/ext/date/lib/timelib.m4
@@ -1,7 +1,4 @@
dnl
-dnl $Id$
-dnl
-dnl
dnl TL_DEF_HAVE(what [, why])
dnl
dnl Generates 'AC_DEFINE(HAVE_WHAT, 1, [WHY])'
diff --git a/ext/date/lib/timezonemap.h b/ext/date/lib/timezonemap.h
index e4a96ea57a..b948ee0523 100644
--- a/ext/date/lib/timezonemap.h
+++ b/ext/date/lib/timezonemap.h
@@ -155,9 +155,9 @@
{ "bmt", 0, 25632, "Asia/Jakarta" },
{ "bmt", 0, 6264, "Europe/Bucharest" },
{ "bmt", 0, 6264, "Europe/Chisinau" },
+ { "bost", 1, -12756, "America/La_Paz" },
{ "bst", 1, 3600, "Europe/London" },
{ "bst", 0, 3600, "Europe/London" },
- { "bst", 1, -12756, "America/La_Paz" },
{ "bst", 0, -39600, "America/Adak" },
{ "bst", 0, -39600, "America/Atka" },
{ "bst", 0, -39600, "America/Nome" },
@@ -672,9 +672,6 @@
{ "gmt", 0, 0, "Europe/Jersey" },
{ "gmt", 0, 0, "Europe/London" },
{ "gmt", 0, 0, "GB" },
- { "gmt", 1, 0, "Europe/Bratislava" },
- { "gmt", 1, 0, "Europe/Dublin" },
- { "gmt", 1, 0, "Europe/Prague" },
{ "gst", 0, 36000, "Pacific/Guam" },
{ "gst", 0, 36000, "Pacific/Saipan" },
{ "hdt", 1, -34200, "Pacific/Honolulu" },
@@ -731,8 +728,8 @@
{ "kdt", 1, 34200, "ROK" },
{ "kdt", 1, 36000, "ROK" },
{ "kmt", 0, 5736, "Europe/Vilnius" },
- { "kmt", 0, -18430, "America/Grand_Turk" },
- { "kmt", 0, -18430, "America/Jamaica" },
+ { "kmt", 0, -18431, "America/Grand_Turk" },
+ { "kmt", 0, -18431, "America/Jamaica" },
{ "kmt", 0, 7324, "Europe/Kiev" },
{ "kst", 0, 30600, "Asia/Seoul" },
{ "kst", 0, 32400, "Asia/Pyongyang" },
@@ -765,9 +762,11 @@
{ "mdt", 1, -21600, "Canada/Mountain" },
{ "mdt", 1, -21600, "Canada/Saskatchewan" },
{ "mdt", 1, -21600, "Mexico/BajaSur" },
+ { "mest", 1, 7200, "MET" },
+ { "met", 0, 3600, "MET" },
{ "mmt", 0, 9017, "Europe/Moscow" },
{ "mmt", 0, 9079, "Europe/Moscow" },
- { "mmt", 0, -13491, "America/Montevideo" },
+ { "mmt", 0, -13484, "America/Montevideo" },
{ "mmt", 0, -20712, "America/Managua" },
{ "mmt", 0, -2588, "Africa/Monrovia" },
{ "mmt", 0, -2670, "Africa/Monrovia" },
@@ -1045,8 +1044,7 @@
{ "wat", 0, 3600, "Africa/Ndjamena" },
{ "wat", 0, 3600, "Africa/Niamey" },
{ "wat", 0, 3600, "Africa/Porto-Novo" },
- { "wat", 0, 3600, "Africa/Sao_Tome" },
- { "wat", 1, 3600, "Africa/Windhoek" },
+ { "wat", 0, 3600, "Africa/Windhoek" },
{ "wemt", 1, 7200, "Europe/Lisbon" },
{ "wemt", 1, 7200, "Europe/Madrid" },
{ "wemt", 1, 7200, "Europe/Monaco" },
diff --git a/ext/date/lib/tm2unixtime.c b/ext/date/lib/tm2unixtime.c
index 7d6b7d8844..bfb9ba1d2b 100644
--- a/ext/date/lib/tm2unixtime.c
+++ b/ext/date/lib/tm2unixtime.c
@@ -194,6 +194,7 @@ static void do_adjust_for_weekday(timelib_time* time)
void timelib_do_rel_normalize(timelib_time *base, timelib_rel_time *rt)
{
+ do_range_limit_fraction(&rt->us, &rt->s);
do_range_limit(0, 60, 60, &rt->s, &rt->i);
do_range_limit(0, 60, 60, &rt->i, &rt->h);
do_range_limit(0, 24, 24, &rt->h, &rt->d);