summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/date/lib/parse_date.c104
-rw-r--r--ext/date/lib/parse_iso_intervals.c22
-rw-r--r--ext/date/lib/timelib.h6
-rw-r--r--ext/date/lib/tm2unixtime.c3
4 files changed, 68 insertions, 67 deletions
diff --git a/ext/date/lib/parse_date.c b/ext/date/lib/parse_date.c
index c0f6b96d9c..e2f9cb822f 100644
--- a/ext/date/lib/parse_date.c
+++ b/ext/date/lib/parse_date.c
@@ -1,5 +1,5 @@
-/* Generated by re2c 0.15.3 on Wed Jan 31 11:51:51 2018 */
-#line 1 "ext/date/lib/parse_date.re"
+/* Generated by re2c 0.15.3 on Fri Oct 12 10:49:04 2018 */
+#line 1 "parse_date.re"
/*
* The MIT License (MIT)
*
@@ -854,7 +854,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper)
std:
s->tok = cursor;
s->len = 0;
-#line 981 "ext/date/lib/parse_date.re"
+#line 981 "parse_date.re"
@@ -996,7 +996,7 @@ yy2:
}
yy3:
YYDEBUG(3, *YYCURSOR);
-#line 1689 "ext/date/lib/parse_date.re"
+#line 1689 "parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("tzcorrection | tz");
@@ -1318,7 +1318,7 @@ yy11:
if (yych <= '9') goto yy1377;
yy12:
YYDEBUG(12, *YYCURSOR);
-#line 1784 "ext/date/lib/parse_date.re"
+#line 1784 "parse_date.re"
{
add_error(s, TIMELIB_ERR_UNEXPECTED_CHARACTER, "Unexpected character");
goto std;
@@ -2567,7 +2567,7 @@ yy48:
if (yych <= '9') goto yy54;
yy49:
YYDEBUG(49, *YYCURSOR);
-#line 1773 "ext/date/lib/parse_date.re"
+#line 1773 "parse_date.re"
{
goto std;
}
@@ -2580,7 +2580,7 @@ yy51:
YYDEBUG(51, *YYCURSOR);
++YYCURSOR;
YYDEBUG(52, *YYCURSOR);
-#line 1778 "ext/date/lib/parse_date.re"
+#line 1778 "parse_date.re"
{
s->pos = cursor; s->line++;
goto std;
@@ -3021,7 +3021,7 @@ yy73:
if (yych == 's') goto yy75;
yy74:
YYDEBUG(74, *YYCURSOR);
-#line 1757 "ext/date/lib/parse_date.re"
+#line 1757 "parse_date.re"
{
timelib_ull i;
DEBUG_OUTPUT("relative");
@@ -3939,7 +3939,7 @@ yy190:
}
yy191:
YYDEBUG(191, *YYCURSOR);
-#line 1620 "ext/date/lib/parse_date.re"
+#line 1620 "parse_date.re"
{
const timelib_relunit* relunit;
DEBUG_OUTPUT("daytext");
@@ -4476,7 +4476,7 @@ yy217:
}
yy218:
YYDEBUG(218, *YYCURSOR);
-#line 1679 "ext/date/lib/parse_date.re"
+#line 1679 "parse_date.re"
{
DEBUG_OUTPUT("monthtext");
TIMELIB_INIT;
@@ -4734,7 +4734,7 @@ yy231:
goto yy237;
yy232:
YYDEBUG(232, *YYCURSOR);
-#line 1425 "ext/date/lib/parse_date.re"
+#line 1425 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("datetextual | datenoyear");
@@ -4874,7 +4874,7 @@ yy245:
}
yy246:
YYDEBUG(246, *YYCURSOR);
-#line 1727 "ext/date/lib/parse_date.re"
+#line 1727 "parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz");
@@ -5201,7 +5201,7 @@ yy270:
YYDEBUG(270, *YYCURSOR);
++YYCURSOR;
YYDEBUG(271, *YYCURSOR);
-#line 1703 "ext/date/lib/parse_date.re"
+#line 1703 "parse_date.re"
{
DEBUG_OUTPUT("dateshortwithtimeshort12 | dateshortwithtimelong12");
TIMELIB_INIT;
@@ -5831,7 +5831,7 @@ yy320:
YYDEBUG(321, *YYCURSOR);
++YYCURSOR;
YYDEBUG(322, *YYCURSOR);
-#line 1397 "ext/date/lib/parse_date.re"
+#line 1397 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("datenoday");
@@ -6075,7 +6075,7 @@ yy327:
if (yych <= '9') goto yy331;
yy330:
YYDEBUG(330, *YYCURSOR);
-#line 1541 "ext/date/lib/parse_date.re"
+#line 1541 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("pgtextshort");
@@ -6670,7 +6670,7 @@ yy356:
}
yy357:
YYDEBUG(357, *YYCURSOR);
-#line 1599 "ext/date/lib/parse_date.re"
+#line 1599 "parse_date.re"
{
DEBUG_OUTPUT("ago");
TIMELIB_INIT;
@@ -8473,7 +8473,7 @@ yy418:
++YYCURSOR;
yy419:
YYDEBUG(419, *YYCURSOR);
-#line 1302 "ext/date/lib/parse_date.re"
+#line 1302 "parse_date.re"
{
DEBUG_OUTPUT("iso8601date4 | iso8601date2 | iso8601dateslash | dateslash");
TIMELIB_INIT;
@@ -9128,7 +9128,7 @@ yy439:
}
yy440:
YYDEBUG(440, *YYCURSOR);
-#line 1439 "ext/date/lib/parse_date.re"
+#line 1439 "parse_date.re"
{
DEBUG_OUTPUT("datenoyearrev");
TIMELIB_INIT;
@@ -9280,7 +9280,7 @@ yy452:
YYDEBUG(452, *YYCURSOR);
++YYCURSOR;
YYDEBUG(453, *YYCURSOR);
-#line 1157 "ext/date/lib/parse_date.re"
+#line 1157 "parse_date.re"
{
DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12");
TIMELIB_INIT;
@@ -9309,7 +9309,7 @@ yy454:
}
yy455:
YYDEBUG(455, *YYCURSOR);
-#line 1194 "ext/date/lib/parse_date.re"
+#line 1194 "parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("timeshort24 | timelong24 | iso8601long");
@@ -9644,7 +9644,7 @@ yy487:
YYDEBUG(487, *YYCURSOR);
++YYCURSOR;
YYDEBUG(488, *YYCURSOR);
-#line 1174 "ext/date/lib/parse_date.re"
+#line 1174 "parse_date.re"
{
DEBUG_OUTPUT("mssqltime");
TIMELIB_INIT;
@@ -9769,7 +9769,7 @@ yy498:
if (yych <= '9') goto yy505;
yy499:
YYDEBUG(499, *YYCURSOR);
-#line 1356 "ext/date/lib/parse_date.re"
+#line 1356 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("datefull");
@@ -10519,7 +10519,7 @@ yy569:
YYDEBUG(570, *YYCURSOR);
++YYCURSOR;
YYDEBUG(571, *YYCURSOR);
-#line 1371 "ext/date/lib/parse_date.re"
+#line 1371 "parse_date.re"
{
DEBUG_OUTPUT("pointed date YYYY");
TIMELIB_INIT;
@@ -10566,7 +10566,7 @@ yy575:
if (yych <= '9') goto yy569;
yy576:
YYDEBUG(576, *YYCURSOR);
-#line 1383 "ext/date/lib/parse_date.re"
+#line 1383 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("pointed date YY");
@@ -11220,7 +11220,7 @@ yy620:
}
yy621:
YYDEBUG(621, *YYCURSOR);
-#line 1342 "ext/date/lib/parse_date.re"
+#line 1342 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("gnudateshort");
@@ -11339,7 +11339,7 @@ yy630:
}
yy631:
YYDEBUG(631, *YYCURSOR);
-#line 1286 "ext/date/lib/parse_date.re"
+#line 1286 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("americanshort | american");
@@ -11587,7 +11587,7 @@ yy664:
if (yych <= ':') goto yy668;
yy665:
YYDEBUG(665, *YYCURSOR);
-#line 1569 "ext/date/lib/parse_date.re"
+#line 1569 "parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("clf");
@@ -12157,7 +12157,7 @@ yy727:
}
yy728:
YYDEBUG(728, *YYCURSOR);
-#line 1314 "ext/date/lib/parse_date.re"
+#line 1314 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("iso8601date2");
@@ -12209,7 +12209,7 @@ yy735:
YYDEBUG(735, *YYCURSOR);
++YYCURSOR;
YYDEBUG(736, *YYCURSOR);
-#line 1555 "ext/date/lib/parse_date.re"
+#line 1555 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("pgtextreverse");
@@ -12387,7 +12387,7 @@ yy747:
}
yy748:
YYDEBUG(748, *YYCURSOR);
-#line 1590 "ext/date/lib/parse_date.re"
+#line 1590 "parse_date.re"
{
DEBUG_OUTPUT("year4");
TIMELIB_INIT;
@@ -12600,7 +12600,7 @@ yy757:
}
yy758:
YYDEBUG(758, *YYCURSOR);
-#line 1411 "ext/date/lib/parse_date.re"
+#line 1411 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("datenodayrev");
@@ -12834,7 +12834,7 @@ yy778:
if (yych <= '7') goto yy781;
yy779:
YYDEBUG(779, *YYCURSOR);
-#line 1522 "ext/date/lib/parse_date.re"
+#line 1522 "parse_date.re"
{
timelib_sll w, d;
DEBUG_OUTPUT("isoweek");
@@ -12862,7 +12862,7 @@ yy781:
YYDEBUG(781, *YYCURSOR);
++YYCURSOR;
YYDEBUG(782, *YYCURSOR);
-#line 1503 "ext/date/lib/parse_date.re"
+#line 1503 "parse_date.re"
{
timelib_sll w, d;
DEBUG_OUTPUT("isoweekday");
@@ -12950,7 +12950,7 @@ yy785:
}
yy786:
YYDEBUG(786, *YYCURSOR);
-#line 1489 "ext/date/lib/parse_date.re"
+#line 1489 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("pgydotd");
@@ -13066,7 +13066,7 @@ yy806:
++YYCURSOR;
yy807:
YYDEBUG(807, *YYCURSOR);
-#line 1463 "ext/date/lib/parse_date.re"
+#line 1463 "parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif");
@@ -13386,7 +13386,7 @@ yy812:
}
yy813:
YYDEBUG(813, *YYCURSOR);
-#line 1451 "ext/date/lib/parse_date.re"
+#line 1451 "parse_date.re"
{
DEBUG_OUTPUT("datenocolon");
TIMELIB_INIT;
@@ -14316,7 +14316,7 @@ yy937:
if (yych <= '9') goto yy960;
yy938:
YYDEBUG(938, *YYCURSOR);
-#line 1328 "ext/date/lib/parse_date.re"
+#line 1328 "parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("gnudateshorter");
@@ -15422,7 +15422,7 @@ yy1030:
}
yy1032:
YYDEBUG(1032, *YYCURSOR);
-#line 1220 "ext/date/lib/parse_date.re"
+#line 1220 "parse_date.re"
{
DEBUG_OUTPUT("gnunocolon");
TIMELIB_INIT;
@@ -15542,7 +15542,7 @@ yy1039:
}
yy1040:
YYDEBUG(1040, *YYCURSOR);
-#line 1266 "ext/date/lib/parse_date.re"
+#line 1266 "parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("iso8601nocolon");
@@ -16537,7 +16537,7 @@ yy1083:
}
yy1084:
YYDEBUG(1084, *YYCURSOR);
-#line 1662 "ext/date/lib/parse_date.re"
+#line 1662 "parse_date.re"
{
timelib_sll i;
int behavior = 0;
@@ -16604,7 +16604,7 @@ yy1092:
YYDEBUG(1092, *YYCURSOR);
++YYCURSOR;
YYDEBUG(1093, *YYCURSOR);
-#line 1135 "ext/date/lib/parse_date.re"
+#line 1135 "parse_date.re"
{
timelib_sll i;
int behavior = 0;
@@ -16733,7 +16733,7 @@ yy1107:
}
yy1108:
YYDEBUG(1108, *YYCURSOR);
-#line 1638 "ext/date/lib/parse_date.re"
+#line 1638 "parse_date.re"
{
timelib_sll i;
int behavior = 0;
@@ -19605,7 +19605,7 @@ yy1283:
}
yy1284:
YYDEBUG(1284, *YYCURSOR);
-#line 1112 "ext/date/lib/parse_date.re"
+#line 1112 "parse_date.re"
{
DEBUG_OUTPUT("backof | frontof");
TIMELIB_INIT;
@@ -19926,7 +19926,7 @@ yy1306:
YYDEBUG(1306, *YYCURSOR);
++YYCURSOR;
YYDEBUG(1307, *YYCURSOR);
-#line 1095 "ext/date/lib/parse_date.re"
+#line 1095 "parse_date.re"
{
DEBUG_OUTPUT("firstdayof | lastdayof");
TIMELIB_INIT;
@@ -21431,7 +21431,7 @@ yy1377:
if (yych <= '9') goto yy1377;
yy1379:
YYDEBUG(1379, *YYCURSOR);
-#line 1041 "ext/date/lib/parse_date.re"
+#line 1041 "parse_date.re"
{
timelib_ull i;
@@ -21485,7 +21485,7 @@ yy1380:
YYDEBUG(1386, *YYCURSOR);
++YYCURSOR;
YYDEBUG(1387, *YYCURSOR);
-#line 1067 "ext/date/lib/parse_date.re"
+#line 1067 "parse_date.re"
{
timelib_ull i, us;
@@ -21948,7 +21948,7 @@ yy1416:
++YYCURSOR;
yy1417:
YYDEBUG(1417, *YYCURSOR);
-#line 1029 "ext/date/lib/parse_date.re"
+#line 1029 "parse_date.re"
{
DEBUG_OUTPUT("tomorrow");
TIMELIB_INIT;
@@ -21994,7 +21994,7 @@ yy1419:
}
yy1420:
YYDEBUG(1420, *YYCURSOR);
-#line 1019 "ext/date/lib/parse_date.re"
+#line 1019 "parse_date.re"
{
DEBUG_OUTPUT("midnight | today");
TIMELIB_INIT;
@@ -24015,7 +24015,7 @@ yy1499:
}
yy1500:
YYDEBUG(1500, *YYCURSOR);
-#line 998 "ext/date/lib/parse_date.re"
+#line 998 "parse_date.re"
{
DEBUG_OUTPUT("now");
TIMELIB_INIT;
@@ -24162,7 +24162,7 @@ yy1507:
}
yy1508:
YYDEBUG(1508, *YYCURSOR);
-#line 1007 "ext/date/lib/parse_date.re"
+#line 1007 "parse_date.re"
{
DEBUG_OUTPUT("noon");
TIMELIB_INIT;
@@ -24706,7 +24706,7 @@ yy1530:
++YYCURSOR;
yy1531:
YYDEBUG(1531, *YYCURSOR);
-#line 986 "ext/date/lib/parse_date.re"
+#line 986 "parse_date.re"
{
DEBUG_OUTPUT("yesterday");
TIMELIB_INIT;
@@ -24890,7 +24890,7 @@ yy1537:
goto yy1531;
}
}
-#line 1788 "ext/date/lib/parse_date.re"
+#line 1788 "parse_date.re"
}
diff --git a/ext/date/lib/parse_iso_intervals.c b/ext/date/lib/parse_iso_intervals.c
index 17d09c17ff..7b55ce78d7 100644
--- a/ext/date/lib/parse_iso_intervals.c
+++ b/ext/date/lib/parse_iso_intervals.c
@@ -1,5 +1,5 @@
-/* Generated by re2c 0.15.3 on Wed Jan 31 11:51:44 2018 */
-#line 1 "ext/date/lib/parse_iso_intervals.re"
+/* Generated by re2c 0.15.3 on Tue Oct 9 11:04:12 2018 */
+#line 1 "parse_iso_intervals.re"
/*
* The MIT License (MIT)
*
@@ -176,7 +176,7 @@ static int scan(Scanner *s)
std:
s->tok = cursor;
s->len = 0;
-#line 204 "ext/date/lib/parse_iso_intervals.re"
+#line 204 "parse_iso_intervals.re"
@@ -249,7 +249,7 @@ std:
if (yych <= '9') goto yy98;
yy3:
YYDEBUG(3, *YYCURSOR);
-#line 317 "ext/date/lib/parse_iso_intervals.re"
+#line 317 "parse_iso_intervals.re"
{
add_error(s, "Unexpected character");
goto std;
@@ -271,7 +271,7 @@ yy5:
if (yych == 'T') goto yy14;
yy6:
YYDEBUG(6, *YYCURSOR);
-#line 244 "ext/date/lib/parse_iso_intervals.re"
+#line 244 "parse_iso_intervals.re"
{
timelib_sll nr;
int in_time = 0;
@@ -317,7 +317,7 @@ yy7:
YYDEBUG(7, *YYCURSOR);
++YYCURSOR;
YYDEBUG(8, *YYCURSOR);
-#line 306 "ext/date/lib/parse_iso_intervals.re"
+#line 306 "parse_iso_intervals.re"
{
goto std;
}
@@ -326,7 +326,7 @@ yy9:
YYDEBUG(9, *YYCURSOR);
++YYCURSOR;
YYDEBUG(10, *YYCURSOR);
-#line 311 "ext/date/lib/parse_iso_intervals.re"
+#line 311 "parse_iso_intervals.re"
{
s->pos = cursor; s->line++;
goto std;
@@ -661,7 +661,7 @@ yy51:
YYDEBUG(57, *YYCURSOR);
++YYCURSOR;
YYDEBUG(58, *YYCURSOR);
-#line 286 "ext/date/lib/parse_iso_intervals.re"
+#line 286 "parse_iso_intervals.re"
{
DEBUG_OUTPUT("combinedrep");
TIMELIB_INIT;
@@ -809,7 +809,7 @@ yy83:
YYDEBUG(83, *YYCURSOR);
++YYCURSOR;
YYDEBUG(84, *YYCURSOR);
-#line 220 "ext/date/lib/parse_iso_intervals.re"
+#line 220 "parse_iso_intervals.re"
{
timelib_time *current;
@@ -910,7 +910,7 @@ yy98:
if (yych <= '9') goto yy98;
yy100:
YYDEBUG(100, *YYCURSOR);
-#line 209 "ext/date/lib/parse_iso_intervals.re"
+#line 209 "parse_iso_intervals.re"
{
DEBUG_OUTPUT("recurrences");
TIMELIB_INIT;
@@ -922,7 +922,7 @@ yy100:
}
#line 924 "<stdout>"
}
-#line 321 "ext/date/lib/parse_iso_intervals.re"
+#line 321 "parse_iso_intervals.re"
}
#ifdef PHP_WIN32
diff --git a/ext/date/lib/timelib.h b/ext/date/lib/timelib.h
index 3eb39a5569..20fbb7cb14 100644
--- a/ext/date/lib/timelib.h
+++ b/ext/date/lib/timelib.h
@@ -310,9 +310,9 @@ typedef struct _timelib_tzdb {
# define timelib_free free
#endif
-#define TIMELIB_VERSION 201706
-#define TIMELIB_EXTENDED_VERSION 20170600
-#define TIMELIB_ASCII_VERSION "2017.06"
+#define TIMELIB_VERSION 201708
+#define TIMELIB_EXTENDED_VERSION 20170800
+#define TIMELIB_ASCII_VERSION "2017.08"
#define TIMELIB_NONE 0x00
#define TIMELIB_OVERRIDE_TIME 0x01
diff --git a/ext/date/lib/tm2unixtime.c b/ext/date/lib/tm2unixtime.c
index 42a59cfaa6..bfb9ba1d2b 100644
--- a/ext/date/lib/tm2unixtime.c
+++ b/ext/date/lib/tm2unixtime.c
@@ -39,7 +39,7 @@ static void do_range_limit_fraction(timelib_sll *fraction, timelib_sll *seconds)
*fraction += 1000000;
*seconds -= 1;
}
- if (*fraction > 1000000) {
+ if (*fraction >= 1000000) {
*fraction -= 1000000;
*seconds += 1;
}
@@ -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);