summaryrefslogtreecommitdiff
path: root/ext/date/lib
diff options
context:
space:
mode:
Diffstat (limited to 'ext/date/lib')
-rw-r--r--ext/date/lib/interval.c3
-rw-r--r--ext/date/lib/parse_date.c1204
-rw-r--r--ext/date/lib/parse_date.re41
-rw-r--r--ext/date/lib/timelib.c5
-rw-r--r--ext/date/lib/timelib.h5
-rw-r--r--ext/date/lib/timelib.m42
-rw-r--r--ext/date/lib/timelib_structs.h3
-rw-r--r--ext/date/lib/timezonemap.h293
-rw-r--r--ext/date/lib/tm2unixtime.c15
-rw-r--r--ext/date/lib/unixtime2tm.c7
10 files changed, 743 insertions, 835 deletions
diff --git a/ext/date/lib/interval.c b/ext/date/lib/interval.c
index 9c1cc3b273..dee9f92eed 100644
--- a/ext/date/lib/interval.c
+++ b/ext/date/lib/interval.c
@@ -65,6 +65,7 @@ timelib_rel_time *timelib_diff(timelib_time *one, timelib_time *two)
rt->h = two->h - one->h;
rt->i = two->i - one->i;
rt->s = two->s - one->s;
+ rt->f = two->f - one->f;
if (one_backup.dst == 0 && two_backup.dst == 1 && two->sse >= one->sse + 86400 - dst_corr) {
rt->h += dst_h_corr;
rt->i += dst_m_corr;
@@ -110,6 +111,7 @@ timelib_time *timelib_add(timelib_time *old_time, timelib_rel_time *interval)
t->relative.h = interval->h * bias;
t->relative.i = interval->i * bias;
t->relative.s = interval->s * bias;
+ t->relative.f = interval->f * bias;
}
t->have_relative = 1;
t->sse_uptodate = 0;
@@ -145,6 +147,7 @@ timelib_time *timelib_sub(timelib_time *old_time, timelib_rel_time *interval)
t->relative.h = 0 - (interval->h * bias);
t->relative.i = 0 - (interval->i * bias);
t->relative.s = 0 - (interval->s * bias);
+ t->relative.f = 0 - (interval->f * bias);
t->have_relative = 1;
t->sse_uptodate = 0;
diff --git a/ext/date/lib/parse_date.c b/ext/date/lib/parse_date.c
index a23dc81db2..c1547a0f32 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 Fri Sep 30 20:30:54 2016 */
+/* Generated by re2c 0.15.3 on Wed Oct 5 11:54:35 2016 */
#line 1 "ext/date/lib/parse_date.re"
/*
* The MIT License (MIT)
@@ -824,7 +824,7 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper)
std:
s->tok = cursor;
s->len = 0;
-#line 950 "ext/date/lib/parse_date.re"
+#line 951 "ext/date/lib/parse_date.re"
@@ -951,19 +951,19 @@ yy2:
} else {
if (yych <= '@') goto yy3;
if (yych <= 'D') goto yy140;
- goto yy1523;
+ goto yy1531;
}
} else {
if (yych <= 'd') {
if (yych <= 'Z') goto yy140;
if (yych >= 'a') goto yy145;
} else {
- if (yych <= 'e') goto yy1532;
+ if (yych <= 'e') goto yy1540;
if (yych <= 'z') goto yy145;
}
}
yy3:
-#line 1630 "ext/date/lib/parse_date.re"
+#line 1659 "ext/date/lib/parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("tzcorrection | tz");
@@ -986,7 +986,7 @@ yy4:
} else {
if (yych <= '@') goto yy3;
if (yych <= 'D') goto yy140;
- goto yy1523;
+ goto yy1531;
}
} else {
if (yych <= 'd') {
@@ -994,7 +994,7 @@ yy4:
if (yych <= '`') goto yy3;
goto yy140;
} else {
- if (yych <= 'e') goto yy1523;
+ if (yych <= 'e') goto yy1531;
if (yych <= 'z') goto yy140;
goto yy3;
}
@@ -1008,12 +1008,12 @@ yy5:
goto yy140;
} else {
if (yych <= 'H') {
- if (yych <= 'E') goto yy1494;
+ if (yych <= 'E') goto yy1502;
goto yy140;
} else {
- if (yych <= 'I') goto yy1495;
+ if (yych <= 'I') goto yy1503;
if (yych <= 'N') goto yy140;
- goto yy1493;
+ goto yy1501;
}
}
} else {
@@ -1022,15 +1022,15 @@ yy5:
if (yych <= 'Z') goto yy140;
goto yy3;
} else {
- if (yych == 'e') goto yy1510;
+ if (yych == 'e') goto yy1518;
goto yy145;
}
} else {
if (yych <= 'n') {
- if (yych <= 'i') goto yy1511;
+ if (yych <= 'i') goto yy1519;
goto yy145;
} else {
- if (yych <= 'o') goto yy1509;
+ if (yych <= 'o') goto yy1517;
if (yych <= 'z') goto yy145;
goto yy3;
}
@@ -1045,12 +1045,12 @@ yy6:
goto yy140;
} else {
if (yych <= 'H') {
- if (yych <= 'E') goto yy1494;
+ if (yych <= 'E') goto yy1502;
goto yy140;
} else {
- if (yych <= 'I') goto yy1495;
+ if (yych <= 'I') goto yy1503;
if (yych <= 'N') goto yy140;
- goto yy1493;
+ goto yy1501;
}
}
} else {
@@ -1059,15 +1059,15 @@ yy6:
if (yych <= 'Z') goto yy140;
goto yy3;
} else {
- if (yych == 'e') goto yy1494;
+ if (yych == 'e') goto yy1502;
goto yy140;
}
} else {
if (yych <= 'n') {
- if (yych <= 'i') goto yy1495;
+ if (yych <= 'i') goto yy1503;
goto yy140;
} else {
- if (yych <= 'o') goto yy1493;
+ if (yych <= 'o') goto yy1501;
if (yych <= 'z') goto yy140;
goto yy3;
}
@@ -1079,24 +1079,24 @@ yy7:
if (yych <= 'A') {
if (yych == ')') goto yy139;
if (yych <= '@') goto yy3;
- goto yy1463;
+ goto yy1471;
} else {
- if (yych == 'I') goto yy1464;
+ if (yych == 'I') goto yy1472;
if (yych <= 'N') goto yy140;
- goto yy1465;
+ goto yy1473;
}
} else {
if (yych <= 'h') {
if (yych <= 'Z') goto yy140;
if (yych <= '`') goto yy3;
- if (yych <= 'a') goto yy1478;
+ if (yych <= 'a') goto yy1486;
goto yy145;
} else {
if (yych <= 'n') {
- if (yych <= 'i') goto yy1479;
+ if (yych <= 'i') goto yy1487;
goto yy145;
} else {
- if (yych <= 'o') goto yy1480;
+ if (yych <= 'o') goto yy1488;
if (yych <= 'z') goto yy145;
goto yy3;
}
@@ -1108,24 +1108,24 @@ yy8:
if (yych <= 'A') {
if (yych == ')') goto yy139;
if (yych <= '@') goto yy3;
- goto yy1463;
+ goto yy1471;
} else {
- if (yych == 'I') goto yy1464;
+ if (yych == 'I') goto yy1472;
if (yych <= 'N') goto yy140;
- goto yy1465;
+ goto yy1473;
}
} else {
if (yych <= 'h') {
if (yych <= 'Z') goto yy140;
if (yych <= '`') goto yy3;
- if (yych <= 'a') goto yy1463;
+ if (yych <= 'a') goto yy1471;
goto yy140;
} else {
if (yych <= 'n') {
- if (yych <= 'i') goto yy1464;
+ if (yych <= 'i') goto yy1472;
goto yy140;
} else {
- if (yych <= 'o') goto yy1465;
+ if (yych <= 'o') goto yy1473;
if (yych <= 'z') goto yy140;
goto yy3;
}
@@ -1137,15 +1137,15 @@ yy9:
switch (yych) {
case ')': goto yy139;
case '0':
- case '1': goto yy1393;
- case '2': goto yy1394;
+ case '1': goto yy1401;
+ case '2': goto yy1402;
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
- case '9': goto yy1395;
+ case '9': goto yy1403;
case 'A':
case 'B':
case 'C':
@@ -1167,11 +1167,11 @@ yy9:
case 'X':
case 'Y':
case 'Z': goto yy140;
- case 'E': goto yy1388;
- case 'H': goto yy1389;
- case 'O': goto yy1390;
- case 'U': goto yy1391;
- case 'W': goto yy1392;
+ case 'E': goto yy1396;
+ case 'H': goto yy1397;
+ case 'O': goto yy1398;
+ case 'U': goto yy1399;
+ case 'W': goto yy1400;
case 'a':
case 'b':
case 'c':
@@ -1193,11 +1193,11 @@ yy9:
case 'x':
case 'y':
case 'z': goto yy145;
- case 'e': goto yy1431;
- case 'h': goto yy1432;
- case 'o': goto yy1433;
- case 'u': goto yy1434;
- case 'w': goto yy1435;
+ case 'e': goto yy1439;
+ case 'h': goto yy1440;
+ case 'o': goto yy1441;
+ case 'u': goto yy1442;
+ case 'w': goto yy1443;
default: goto yy3;
}
yy10:
@@ -1206,15 +1206,15 @@ yy10:
switch (yych) {
case ')': goto yy139;
case '0':
- case '1': goto yy1393;
- case '2': goto yy1394;
+ case '1': goto yy1401;
+ case '2': goto yy1402;
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
- case '9': goto yy1395;
+ case '9': goto yy1403;
case 'A':
case 'B':
case 'C':
@@ -1258,15 +1258,15 @@ yy10:
case 'y':
case 'z': goto yy140;
case 'E':
- case 'e': goto yy1388;
+ case 'e': goto yy1396;
case 'H':
- case 'h': goto yy1389;
+ case 'h': goto yy1397;
case 'O':
- case 'o': goto yy1390;
+ case 'o': goto yy1398;
case 'U':
- case 'u': goto yy1391;
+ case 'u': goto yy1399;
case 'W':
- case 'w': goto yy1392;
+ case 'w': goto yy1400;
default: goto yy3;
}
yy11:
@@ -1276,7 +1276,7 @@ yy11:
if (yych <= '/') goto yy12;
if (yych <= '9') goto yy1385;
yy12:
-#line 1725 "ext/date/lib/parse_date.re"
+#line 1754 "ext/date/lib/parse_date.re"
{
add_error(s, "Unexpected character");
goto std;
@@ -2295,7 +2295,7 @@ yy48:
if (yych <= '/') goto yy49;
if (yych <= '9') goto yy54;
yy49:
-#line 1714 "ext/date/lib/parse_date.re"
+#line 1743 "ext/date/lib/parse_date.re"
{
goto std;
}
@@ -2305,7 +2305,7 @@ yy50:
goto yy49;
yy51:
++YYCURSOR;
-#line 1719 "ext/date/lib/parse_date.re"
+#line 1748 "ext/date/lib/parse_date.re"
{
s->pos = cursor; s->line++;
goto std;
@@ -2372,7 +2372,7 @@ yy54:
}
yy56:
YYCURSOR = YYMARKER;
- if (yyaccept <= 16) {
+ if (yyaccept <= 17) {
if (yyaccept <= 8) {
if (yyaccept <= 4) {
if (yyaccept <= 2) {
@@ -2408,98 +2408,102 @@ yy56:
}
}
} else {
- if (yyaccept <= 12) {
- if (yyaccept <= 10) {
- if (yyaccept == 9) {
- goto yy392;
+ if (yyaccept <= 13) {
+ if (yyaccept <= 11) {
+ if (yyaccept <= 10) {
+ if (yyaccept == 9) {
+ goto yy392;
+ } else {
+ goto yy475;
+ }
} else {
- goto yy475;
+ goto yy490;
}
} else {
- if (yyaccept == 11) {
- goto yy490;
- } else {
+ if (yyaccept == 12) {
goto yy611;
+ } else {
+ goto yy656;
}
}
} else {
- if (yyaccept <= 14) {
- if (yyaccept == 13) {
- goto yy656;
- } else {
+ if (yyaccept <= 15) {
+ if (yyaccept == 14) {
goto yy666;
+ } else {
+ goto yy763;
}
} else {
- if (yyaccept == 15) {
- goto yy763;
- } else {
+ if (yyaccept == 16) {
goto yy783;
+ } else {
+ goto yy814;
}
}
}
}
} else {
- if (yyaccept <= 25) {
- if (yyaccept <= 21) {
- if (yyaccept <= 19) {
- if (yyaccept <= 18) {
- if (yyaccept == 17) {
- goto yy814;
- } else {
+ if (yyaccept <= 26) {
+ if (yyaccept <= 22) {
+ if (yyaccept <= 20) {
+ if (yyaccept <= 19) {
+ if (yyaccept == 18) {
goto yy821;
+ } else {
+ goto yy848;
}
} else {
- goto yy848;
+ goto yy793;
}
} else {
- if (yyaccept == 20) {
- goto yy793;
- } else {
+ if (yyaccept == 21) {
goto yy454;
+ } else {
+ goto yy973;
}
}
} else {
- if (yyaccept <= 23) {
- if (yyaccept == 22) {
- goto yy973;
- } else {
+ if (yyaccept <= 24) {
+ if (yyaccept == 23) {
goto yy842;
+ } else {
+ goto yy1067;
}
} else {
- if (yyaccept == 24) {
- goto yy1067;
- } else {
+ if (yyaccept == 25) {
goto yy1075;
+ } else {
+ goto yy1117;
}
}
}
} else {
- if (yyaccept <= 29) {
- if (yyaccept <= 27) {
- if (yyaccept == 26) {
- goto yy1117;
- } else {
+ if (yyaccept <= 30) {
+ if (yyaccept <= 28) {
+ if (yyaccept == 27) {
goto yy1141;
+ } else {
+ goto yy1294;
}
} else {
- if (yyaccept == 28) {
- goto yy1294;
+ if (yyaccept == 29) {
+ goto yy1387;
} else {
- goto yy1417;
+ goto yy1425;
}
}
} else {
- if (yyaccept <= 31) {
- if (yyaccept == 30) {
- goto yy1420;
+ if (yyaccept <= 32) {
+ if (yyaccept == 31) {
+ goto yy1428;
} else {
- goto yy1500;
+ goto yy1508;
}
} else {
- if (yyaccept == 32) {
- goto yy1508;
+ if (yyaccept == 33) {
+ goto yy1516;
} else {
- goto yy1531;
+ goto yy1539;
}
}
}
@@ -2677,7 +2681,7 @@ yy71:
if (yych == 'S') goto yy73;
if (yych == 's') goto yy73;
yy72:
-#line 1698 "ext/date/lib/parse_date.re"
+#line 1727 "ext/date/lib/parse_date.re"
{
timelib_ull i;
DEBUG_OUTPUT("relative");
@@ -2692,7 +2696,7 @@ yy72:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 2696 "<stdout>"
+#line 2700 "<stdout>"
yy73:
yych = *++YYCURSOR;
if (yych == 'D') goto yy74;
@@ -3360,7 +3364,7 @@ yy165:
}
}
yy166:
-#line 1561 "ext/date/lib/parse_date.re"
+#line 1590 "ext/date/lib/parse_date.re"
{
const timelib_relunit* relunit;
DEBUG_OUTPUT("daytext");
@@ -3377,7 +3381,7 @@ yy166:
TIMELIB_DEINIT;
return TIMELIB_WEEKDAY;
}
-#line 3381 "<stdout>"
+#line 3385 "<stdout>"
yy167:
yych = *++YYCURSOR;
if (yych <= 'K') {
@@ -3870,7 +3874,7 @@ yy192:
}
}
yy193:
-#line 1620 "ext/date/lib/parse_date.re"
+#line 1649 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("monthtext");
TIMELIB_INIT;
@@ -3879,7 +3883,7 @@ yy193:
TIMELIB_DEINIT;
return TIMELIB_DATE_TEXT;
}
-#line 3883 "<stdout>"
+#line 3887 "<stdout>"
yy194:
++YYCURSOR;
if ((YYLIMIT - YYCURSOR) < 21) YYFILL(21);
@@ -3925,7 +3929,7 @@ yy197:
}
}
yy198:
-#line 1366 "ext/date/lib/parse_date.re"
+#line 1395 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("datetextual | datenoyear");
@@ -3938,7 +3942,7 @@ yy198:
TIMELIB_DEINIT;
return TIMELIB_DATE_TEXT;
}
-#line 3942 "<stdout>"
+#line 3946 "<stdout>"
yy199:
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
@@ -4183,7 +4187,7 @@ yy221:
if (yych <= ':') goto yy224;
}
yy222:
-#line 1668 "ext/date/lib/parse_date.re"
+#line 1697 "ext/date/lib/parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz");
@@ -4212,7 +4216,7 @@ yy222:
TIMELIB_DEINIT;
return TIMELIB_SHORTDATE_WITH_TIME;
}
-#line 4216 "<stdout>"
+#line 4220 "<stdout>"
yy223:
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
@@ -4854,7 +4858,7 @@ yy276:
}
yy277:
++YYCURSOR;
-#line 1644 "ext/date/lib/parse_date.re"
+#line 1673 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("dateshortwithtimeshort12 | dateshortwithtimelong12");
TIMELIB_INIT;
@@ -4877,7 +4881,7 @@ yy277:
TIMELIB_DEINIT;
return TIMELIB_SHORTDATE_WITH_TIME;
}
-#line 4881 "<stdout>"
+#line 4885 "<stdout>"
yy279:
yych = *++YYCURSOR;
if (yych <= 0x1F) {
@@ -5039,7 +5043,7 @@ yy292:
yy293:
++YYCURSOR;
yy294:
-#line 1338 "ext/date/lib/parse_date.re"
+#line 1367 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("datenoday");
@@ -5052,7 +5056,7 @@ yy294:
TIMELIB_DEINIT;
return TIMELIB_DATE_NO_DAY;
}
-#line 5056 "<stdout>"
+#line 5060 "<stdout>"
yy295:
yych = *++YYCURSOR;
if (yych <= '/') {
@@ -6203,7 +6207,7 @@ yy361:
if ((yych = *YYCURSOR) <= '/') goto yy363;
if (yych <= '9') goto yy364;
yy363:
-#line 1482 "ext/date/lib/parse_date.re"
+#line 1511 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("pgtextshort");
@@ -6216,7 +6220,7 @@ yy363:
TIMELIB_DEINIT;
return TIMELIB_PG_TEXT;
}
-#line 6220 "<stdout>"
+#line 6224 "<stdout>"
yy364:
yych = *++YYCURSOR;
if (yych <= '/') goto yy363;
@@ -6825,7 +6829,7 @@ yy391:
if (yych <= 'z') goto yy142;
}
yy392:
-#line 1540 "ext/date/lib/parse_date.re"
+#line 1569 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("ago");
TIMELIB_INIT;
@@ -6845,7 +6849,7 @@ yy392:
TIMELIB_DEINIT;
return TIMELIB_AGO;
}
-#line 6849 "<stdout>"
+#line 6853 "<stdout>"
yy393:
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
@@ -8533,7 +8537,7 @@ yy452:
yy453:
++YYCURSOR;
yy454:
-#line 1243 "ext/date/lib/parse_date.re"
+#line 1272 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("iso8601date4 | iso8601date2 | iso8601dateslash | dateslash");
TIMELIB_INIT;
@@ -8544,7 +8548,7 @@ yy454:
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 8548 "<stdout>"
+#line 8552 "<stdout>"
yy455:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
@@ -9080,7 +9084,7 @@ yy474:
}
}
yy475:
-#line 1380 "ext/date/lib/parse_date.re"
+#line 1409 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("datenoyearrev");
TIMELIB_INIT;
@@ -9091,7 +9095,7 @@ yy475:
TIMELIB_DEINIT;
return TIMELIB_DATE_TEXT;
}
-#line 9095 "<stdout>"
+#line 9099 "<stdout>"
yy476:
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
@@ -9219,7 +9223,7 @@ yy485:
}
yy487:
++YYCURSOR;
-#line 1098 "ext/date/lib/parse_date.re"
+#line 1127 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12");
TIMELIB_INIT;
@@ -9235,7 +9239,7 @@ yy487:
TIMELIB_DEINIT;
return TIMELIB_TIME12;
}
-#line 9239 "<stdout>"
+#line 9243 "<stdout>"
yy489:
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
@@ -9246,7 +9250,7 @@ yy489:
if (yych <= ':') goto yy492;
}
yy490:
-#line 1135 "ext/date/lib/parse_date.re"
+#line 1164 "ext/date/lib/parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("timeshort24 | timelong24 | iso8601long");
@@ -9271,7 +9275,7 @@ yy490:
TIMELIB_DEINIT;
return TIMELIB_TIME24_WITH_ZONE;
}
-#line 9275 "<stdout>"
+#line 9279 "<stdout>"
yy491:
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
@@ -9548,7 +9552,7 @@ yy520:
}
yy522:
++YYCURSOR;
-#line 1115 "ext/date/lib/parse_date.re"
+#line 1144 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("mssqltime");
TIMELIB_INIT;
@@ -9567,7 +9571,7 @@ yy522:
TIMELIB_DEINIT;
return TIMELIB_TIME24_WITH_ZONE;
}
-#line 9571 "<stdout>"
+#line 9575 "<stdout>"
yy524:
yyaccept = 11;
YYMARKER = ++YYCURSOR;
@@ -9662,7 +9666,7 @@ yy533:
if ((yych = *YYCURSOR) <= '/') goto yy534;
if (yych <= '9') goto yy540;
yy534:
-#line 1297 "ext/date/lib/parse_date.re"
+#line 1326 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("datefull");
@@ -9676,7 +9680,7 @@ yy534:
TIMELIB_DEINIT;
return TIMELIB_DATE_FULL;
}
-#line 9680 "<stdout>"
+#line 9684 "<stdout>"
yy535:
yych = *++YYCURSOR;
if (yych == 'M') goto yy536;
@@ -10340,7 +10344,7 @@ yy604:
if (yych <= '/') goto yy56;
if (yych >= ':') goto yy56;
++YYCURSOR;
-#line 1312 "ext/date/lib/parse_date.re"
+#line 1341 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("pointed date YYYY");
TIMELIB_INIT;
@@ -10351,7 +10355,7 @@ yy604:
TIMELIB_DEINIT;
return TIMELIB_DATE_FULL_POINTED;
}
-#line 10355 "<stdout>"
+#line 10359 "<stdout>"
yy607:
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
@@ -10382,7 +10386,7 @@ yy610:
if (yych <= '/') goto yy611;
if (yych <= '9') goto yy604;
yy611:
-#line 1324 "ext/date/lib/parse_date.re"
+#line 1353 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("pointed date YY");
@@ -10395,7 +10399,7 @@ yy611:
TIMELIB_DEINIT;
return TIMELIB_DATE_FULL_POINTED;
}
-#line 10399 "<stdout>"
+#line 10403 "<stdout>"
yy612:
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
@@ -10991,7 +10995,7 @@ yy655:
}
}
yy656:
-#line 1283 "ext/date/lib/parse_date.re"
+#line 1312 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("gnudateshort");
@@ -11004,7 +11008,7 @@ yy656:
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 11008 "<stdout>"
+#line 11012 "<stdout>"
yy657:
yyaccept = 13;
yych = *(YYMARKER = ++YYCURSOR);
@@ -11100,7 +11104,7 @@ yy665:
}
}
yy666:
-#line 1227 "ext/date/lib/parse_date.re"
+#line 1256 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("americanshort | american");
@@ -11115,7 +11119,7 @@ yy666:
TIMELIB_DEINIT;
return TIMELIB_AMERICAN;
}
-#line 11119 "<stdout>"
+#line 11123 "<stdout>"
yy667:
yyaccept = 14;
yych = *(YYMARKER = ++YYCURSOR);
@@ -11314,7 +11318,7 @@ yy699:
if (yych <= '9') goto yy702;
if (yych <= ':') goto yy703;
yy700:
-#line 1510 "ext/date/lib/parse_date.re"
+#line 1539 "ext/date/lib/parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("clf");
@@ -11334,7 +11338,7 @@ yy700:
TIMELIB_DEINIT;
return TIMELIB_CLF;
}
-#line 11338 "<stdout>"
+#line 11342 "<stdout>"
yy701:
yych = *++YYCURSOR;
if (yych <= '5') {
@@ -11821,7 +11825,7 @@ yy762:
if (yych <= 't') goto yy662;
}
yy763:
-#line 1255 "ext/date/lib/parse_date.re"
+#line 1284 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("iso8601date2");
@@ -11834,7 +11838,7 @@ yy763:
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 11838 "<stdout>"
+#line 11842 "<stdout>"
yy764:
yych = *++YYCURSOR;
if (yych == 'C') goto yy765;
@@ -11865,7 +11869,7 @@ yy769:
if (yych >= '2') goto yy56;
yy770:
++YYCURSOR;
-#line 1496 "ext/date/lib/parse_date.re"
+#line 1525 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("pgtextreverse");
@@ -11878,7 +11882,7 @@ yy770:
TIMELIB_DEINIT;
return TIMELIB_PG_TEXT;
}
-#line 11882 "<stdout>"
+#line 11886 "<stdout>"
yy772:
yych = *++YYCURSOR;
if (yych == 'V') goto yy765;
@@ -12003,7 +12007,7 @@ yy782:
default: goto yy783;
}
yy783:
-#line 1531 "ext/date/lib/parse_date.re"
+#line 1560 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("year4");
TIMELIB_INIT;
@@ -12011,7 +12015,7 @@ yy783:
TIMELIB_DEINIT;
return TIMELIB_CLF;
}
-#line 12015 "<stdout>"
+#line 12019 "<stdout>"
yy784:
yych = *++YYCURSOR;
switch (yych) {
@@ -12149,7 +12153,7 @@ yy792:
if (yych <= 'X') goto yy883;
}
yy793:
-#line 1352 "ext/date/lib/parse_date.re"
+#line 1381 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("datenodayrev");
@@ -12162,7 +12166,7 @@ yy793:
TIMELIB_DEINIT;
return TIMELIB_DATE_NO_DAY;
}
-#line 12166 "<stdout>"
+#line 12170 "<stdout>"
yy794:
yych = *++YYCURSOR;
if (yych == 'I') goto yy927;
@@ -12356,7 +12360,7 @@ yy813:
if (yych <= '/') goto yy814;
if (yych <= '7') goto yy816;
yy814:
-#line 1463 "ext/date/lib/parse_date.re"
+#line 1492 "ext/date/lib/parse_date.re"
{
timelib_sll w, d;
DEBUG_OUTPUT("isoweek");
@@ -12374,14 +12378,14 @@ yy814:
TIMELIB_DEINIT;
return TIMELIB_ISO_WEEK;
}
-#line 12378 "<stdout>"
+#line 12382 "<stdout>"
yy815:
yych = *++YYCURSOR;
if (yych <= '/') goto yy56;
if (yych >= '8') goto yy56;
yy816:
++YYCURSOR;
-#line 1444 "ext/date/lib/parse_date.re"
+#line 1473 "ext/date/lib/parse_date.re"
{
timelib_sll w, d;
DEBUG_OUTPUT("isoweekday");
@@ -12399,7 +12403,7 @@ yy816:
TIMELIB_DEINIT;
return TIMELIB_ISO_WEEK;
}
-#line 12403 "<stdout>"
+#line 12407 "<stdout>"
yy818:
yych = *++YYCURSOR;
if (yych <= '/') goto yy60;
@@ -12459,7 +12463,7 @@ yy820:
}
}
yy821:
-#line 1430 "ext/date/lib/parse_date.re"
+#line 1459 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("pgydotd");
@@ -12472,7 +12476,7 @@ yy821:
TIMELIB_DEINIT;
return TIMELIB_PG_YEARDAY;
}
-#line 12476 "<stdout>"
+#line 12480 "<stdout>"
yy822:
yych = *++YYCURSOR;
if (yych <= '/') goto yy60;
@@ -12554,7 +12558,7 @@ yy840:
yy841:
++YYCURSOR;
yy842:
-#line 1404 "ext/date/lib/parse_date.re"
+#line 1433 "ext/date/lib/parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif");
@@ -12579,7 +12583,7 @@ yy842:
TIMELIB_DEINIT;
return TIMELIB_XMLRPC_SOAP;
}
-#line 12583 "<stdout>"
+#line 12587 "<stdout>"
yy843:
yych = *++YYCURSOR;
if (yych <= '2') {
@@ -12835,7 +12839,7 @@ yy847:
}
}
yy848:
-#line 1392 "ext/date/lib/parse_date.re"
+#line 1421 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("datenocolon");
TIMELIB_INIT;
@@ -12846,7 +12850,7 @@ yy848:
TIMELIB_DEINIT;
return TIMELIB_DATE_NOCOLON;
}
-#line 12850 "<stdout>"
+#line 12854 "<stdout>"
yy849:
yych = *++YYCURSOR;
if (yych <= 'H') {
@@ -13640,7 +13644,7 @@ yy972:
if (yych <= '/') goto yy973;
if (yych <= '9') goto yy995;
yy973:
-#line 1269 "ext/date/lib/parse_date.re"
+#line 1298 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("gnudateshorter");
@@ -13653,7 +13657,7 @@ yy973:
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 13657 "<stdout>"
+#line 13661 "<stdout>"
yy974:
yyaccept = 22;
yych = *(YYMARKER = ++YYCURSOR);
@@ -14565,7 +14569,7 @@ yy1065:
default: goto yy1067;
}
yy1067:
-#line 1161 "ext/date/lib/parse_date.re"
+#line 1190 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("gnunocolon");
TIMELIB_INIT;
@@ -14587,7 +14591,7 @@ yy1067:
TIMELIB_DEINIT;
return TIMELIB_GNU_NOCOLON;
}
-#line 14591 "<stdout>"
+#line 14595 "<stdout>"
yy1068:
yych = *++YYCURSOR;
if (yych <= '/') goto yy60;
@@ -14671,7 +14675,7 @@ yy1074:
}
}
yy1075:
-#line 1207 "ext/date/lib/parse_date.re"
+#line 1236 "ext/date/lib/parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("iso8601nocolon");
@@ -14690,7 +14694,7 @@ yy1075:
TIMELIB_DEINIT;
return TIMELIB_ISO_NOCOLON;
}
-#line 14694 "<stdout>"
+#line 14698 "<stdout>"
yy1076:
yyaccept = 25;
yych = *(YYMARKER = ++YYCURSOR);
@@ -15546,7 +15550,7 @@ yy1116:
}
}
yy1117:
-#line 1603 "ext/date/lib/parse_date.re"
+#line 1632 "ext/date/lib/parse_date.re"
{
timelib_sll i;
int behavior = 0;
@@ -15562,7 +15566,7 @@ yy1117:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 15566 "<stdout>"
+#line 15570 "<stdout>"
yy1118:
++YYCURSOR;
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
@@ -15604,7 +15608,7 @@ yy1124:
if (yych != 'f') goto yy56;
yy1125:
++YYCURSOR;
-#line 1076 "ext/date/lib/parse_date.re"
+#line 1105 "ext/date/lib/parse_date.re"
{
timelib_sll i;
int behavior = 0;
@@ -15625,7 +15629,7 @@ yy1125:
TIMELIB_DEINIT;
return TIMELIB_WEEK_DAY_OF_MONTH;
}
-#line 15629 "<stdout>"
+#line 15633 "<stdout>"
yy1127:
yyaccept = 26;
yych = *(YYMARKER = ++YYCURSOR);
@@ -15718,7 +15722,7 @@ yy1140:
}
}
yy1141:
-#line 1579 "ext/date/lib/parse_date.re"
+#line 1608 "ext/date/lib/parse_date.re"
{
timelib_sll i;
int behavior = 0;
@@ -15741,7 +15745,7 @@ yy1141:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 15745 "<stdout>"
+#line 15749 "<stdout>"
yy1142:
yych = *++YYCURSOR;
goto yy1117;
@@ -18265,7 +18269,7 @@ yy1293:
if (yych <= '9') goto yy1296;
goto yy1297;
yy1294:
-#line 1053 "ext/date/lib/parse_date.re"
+#line 1082 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("backof | frontof");
TIMELIB_INIT;
@@ -18287,7 +18291,7 @@ yy1294:
TIMELIB_DEINIT;
return TIMELIB_LF_DAY_OF_MONTH;
}
-#line 18291 "<stdout>"
+#line 18295 "<stdout>"
yy1295:
yyaccept = 28;
yych = *(YYMARKER = ++YYCURSOR);
@@ -18526,7 +18530,7 @@ yy1314:
if (yych != 'f') goto yy56;
yy1315:
++YYCURSOR;
-#line 1036 "ext/date/lib/parse_date.re"
+#line 1065 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("firstdayof | lastdayof");
TIMELIB_INIT;
@@ -18542,7 +18546,7 @@ yy1315:
TIMELIB_DEINIT;
return TIMELIB_LF_DAY_OF_MONTH;
}
-#line 18546 "<stdout>"
+#line 18550 "<stdout>"
yy1317:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
@@ -19896,13 +19900,15 @@ yy1384:
if (yych <= '/') goto yy56;
if (yych >= ':') goto yy56;
yy1385:
- ++YYCURSOR;
- if (YYLIMIT <= YYCURSOR) YYFILL(1);
+ yyaccept = 29;
+ YYMARKER = ++YYCURSOR;
+ if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
yych = *YYCURSOR;
+ if (yych == '.') goto yy1388;
if (yych <= '/') goto yy1387;
if (yych <= '9') goto yy1385;
yy1387:
-#line 1010 "ext/date/lib/parse_date.re"
+#line 1011 "ext/date/lib/parse_date.re"
{
timelib_ull i;
@@ -19927,9 +19933,57 @@ yy1387:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 19931 "<stdout>"
+#line 19937 "<stdout>"
yy1388:
yych = *++YYCURSOR;
+ if (yych <= '/') goto yy56;
+ if (yych >= ':') goto yy56;
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy56;
+ if (yych >= ':') goto yy56;
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy56;
+ if (yych >= ':') goto yy56;
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy56;
+ if (yych >= ':') goto yy56;
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy56;
+ if (yych >= ':') goto yy56;
+ yych = *++YYCURSOR;
+ if (yych <= '/') goto yy56;
+ if (yych >= ':') goto yy56;
+ ++YYCURSOR;
+#line 1037 "ext/date/lib/parse_date.re"
+ {
+ timelib_ull i, ms;
+
+ TIMELIB_INIT;
+ TIMELIB_HAVE_RELATIVE();
+ TIMELIB_UNHAVE_DATE();
+ TIMELIB_UNHAVE_TIME();
+ TIMELIB_HAVE_TZ();
+
+ i = timelib_get_unsigned_nr((char **) &ptr, 24);
+ ms = timelib_get_unsigned_nr((char **) &ptr, 24);
+ s->time->y = 1970;
+ s->time->m = 1;
+ s->time->d = 1;
+ s->time->h = s->time->i = s->time->s = 0;
+ s->time->f = 0.0;
+ s->time->relative.s += i;
+ s->time->relative.f = ((double) ms) / 1000000.0;
+ s->time->is_localtime = 1;
+ s->time->zone_type = TIMELIB_ZONETYPE_OFFSET;
+ s->time->z = 0;
+ s->time->dst = 0;
+
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
+#line 19985 "<stdout>"
+yy1396:
+ yych = *++YYCURSOR;
if (yych <= 'N') {
if (yych <= ')') {
if (yych <= '(') goto yy3;
@@ -19937,7 +19991,7 @@ yy1388:
} else {
if (yych <= '@') goto yy3;
if (yych <= 'M') goto yy141;
- goto yy1429;
+ goto yy1437;
}
} else {
if (yych <= 'm') {
@@ -19945,58 +19999,58 @@ yy1388:
if (yych <= '`') goto yy3;
goto yy141;
} else {
- if (yych <= 'n') goto yy1429;
+ if (yych <= 'n') goto yy1437;
if (yych <= 'z') goto yy141;
goto yy3;
}
}
-yy1389:
+yy1397:
yych = *++YYCURSOR;
if (yych <= 'U') {
if (yych <= '@') {
if (yych == ')') goto yy139;
goto yy3;
} else {
- if (yych == 'I') goto yy1421;
+ if (yych == 'I') goto yy1429;
if (yych <= 'T') goto yy141;
- goto yy1422;
+ goto yy1430;
}
} else {
if (yych <= 'i') {
if (yych <= 'Z') goto yy141;
if (yych <= '`') goto yy3;
if (yych <= 'h') goto yy141;
- goto yy1421;
+ goto yy1429;
} else {
- if (yych == 'u') goto yy1422;
+ if (yych == 'u') goto yy1430;
if (yych <= 'z') goto yy141;
goto yy3;
}
}
-yy1390:
+yy1398:
yych = *++YYCURSOR;
if (yych <= 'M') {
if (yych <= '@') {
if (yych == ')') goto yy139;
goto yy3;
} else {
- if (yych == 'D') goto yy1410;
+ if (yych == 'D') goto yy1418;
if (yych <= 'L') goto yy141;
- goto yy1411;
+ goto yy1419;
}
} else {
if (yych <= 'd') {
if (yych <= 'Z') goto yy141;
if (yych <= '`') goto yy3;
if (yych <= 'c') goto yy141;
- goto yy1410;
+ goto yy1418;
} else {
- if (yych == 'm') goto yy1411;
+ if (yych == 'm') goto yy1419;
if (yych <= 'z') goto yy141;
goto yy3;
}
}
-yy1391:
+yy1399:
yych = *++YYCURSOR;
if (yych <= 'E') {
if (yych <= ')') {
@@ -20005,7 +20059,7 @@ yy1391:
} else {
if (yych <= '@') goto yy3;
if (yych <= 'D') goto yy141;
- goto yy1406;
+ goto yy1414;
}
} else {
if (yych <= 'd') {
@@ -20013,12 +20067,12 @@ yy1391:
if (yych <= '`') goto yy3;
goto yy141;
} else {
- if (yych <= 'e') goto yy1406;
+ if (yych <= 'e') goto yy1414;
if (yych <= 'z') goto yy141;
goto yy3;
}
}
-yy1392:
+yy1400:
yych = *++YYCURSOR;
if (yych <= 'E') {
if (yych <= ')') {
@@ -20027,7 +20081,7 @@ yy1392:
} else {
if (yych <= '@') goto yy3;
if (yych <= 'D') goto yy141;
- goto yy1402;
+ goto yy1410;
}
} else {
if (yych <= 'd') {
@@ -20035,68 +20089,68 @@ yy1392:
if (yych <= '`') goto yy3;
goto yy141;
} else {
- if (yych <= 'e') goto yy1402;
+ if (yych <= 'e') goto yy1410;
if (yych <= 'z') goto yy141;
goto yy3;
}
}
-yy1393:
+yy1401:
yych = *++YYCURSOR;
if (yych <= '/') {
if (yych == '.') goto yy1064;
goto yy56;
} else {
- if (yych <= '9') goto yy1396;
+ if (yych <= '9') goto yy1404;
if (yych <= ':') goto yy1064;
goto yy56;
}
-yy1394:
+yy1402:
yych = *++YYCURSOR;
if (yych <= '/') {
if (yych == '.') goto yy1064;
goto yy56;
} else {
- if (yych <= '4') goto yy1396;
+ if (yych <= '4') goto yy1404;
if (yych == ':') goto yy1064;
goto yy56;
}
-yy1395:
+yy1403:
yych = *++YYCURSOR;
if (yych == '.') goto yy1064;
if (yych == ':') goto yy1064;
goto yy56;
-yy1396:
+yy1404:
yych = *++YYCURSOR;
if (yych <= '/') {
if (yych == '.') goto yy1064;
goto yy56;
} else {
- if (yych <= '5') goto yy1397;
+ if (yych <= '5') goto yy1405;
if (yych == ':') goto yy1064;
goto yy56;
}
-yy1397:
+yy1405:
yych = *++YYCURSOR;
if (yych <= '/') goto yy56;
if (yych >= ':') goto yy56;
yyaccept = 24;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '/') goto yy1067;
- if (yych <= '5') goto yy1399;
- if (yych <= '6') goto yy1400;
+ if (yych <= '5') goto yy1407;
+ if (yych <= '6') goto yy1408;
goto yy1067;
-yy1399:
+yy1407:
yych = *++YYCURSOR;
if (yych <= '/') goto yy56;
- if (yych <= '9') goto yy1401;
+ if (yych <= '9') goto yy1409;
goto yy56;
-yy1400:
+yy1408:
yych = *++YYCURSOR;
if (yych != '0') goto yy56;
-yy1401:
+yy1409:
yych = *++YYCURSOR;
goto yy1075;
-yy1402:
+yy1410:
yych = *++YYCURSOR;
if (yych <= 'L') {
if (yych <= ')') {
@@ -20112,12 +20166,12 @@ yy1402:
if (yych <= '`') goto yy3;
goto yy142;
} else {
- if (yych <= 'l') goto yy1403;
+ if (yych <= 'l') goto yy1411;
if (yych <= 'z') goto yy142;
goto yy3;
}
}
-yy1403:
+yy1411:
yych = *++YYCURSOR;
if (yych <= 'F') {
if (yych <= ')') {
@@ -20133,12 +20187,12 @@ yy1403:
if (yych <= '`') goto yy3;
goto yy143;
} else {
- if (yych <= 'f') goto yy1404;
+ if (yych <= 'f') goto yy1412;
if (yych <= 'z') goto yy143;
goto yy3;
}
}
-yy1404:
+yy1412:
yych = *++YYCURSOR;
if (yych <= 'T') {
if (yych <= ')') {
@@ -20154,12 +20208,12 @@ yy1404:
if (yych <= '`') goto yy3;
goto yy144;
} else {
- if (yych <= 't') goto yy1405;
+ if (yych <= 't') goto yy1413;
if (yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1405:
+yy1413:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'G') {
@@ -20170,7 +20224,7 @@ yy1405:
if (yych == 'h') goto yy1205;
goto yy3;
}
-yy1406:
+yy1414:
yych = *++YYCURSOR;
if (yych <= 'S') {
if (yych <= ')') {
@@ -20186,12 +20240,12 @@ yy1406:
if (yych <= '`') goto yy166;
goto yy142;
} else {
- if (yych <= 's') goto yy1407;
+ if (yych <= 's') goto yy1415;
if (yych <= 'z') goto yy142;
goto yy166;
}
}
-yy1407:
+yy1415:
yych = *++YYCURSOR;
if (yych <= 'D') {
if (yych <= ')') {
@@ -20207,12 +20261,12 @@ yy1407:
if (yych <= '`') goto yy3;
goto yy143;
} else {
- if (yych <= 'd') goto yy1408;
+ if (yych <= 'd') goto yy1416;
if (yych <= 'z') goto yy143;
goto yy3;
}
}
-yy1408:
+yy1416:
yych = *++YYCURSOR;
if (yych <= 'A') {
if (yych == ')') goto yy139;
@@ -20222,12 +20276,12 @@ yy1408:
if (yych <= 'Z') goto yy144;
goto yy3;
} else {
- if (yych <= 'a') goto yy1409;
+ if (yych <= 'a') goto yy1417;
if (yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1409:
+yy1417:
yych = *++YYCURSOR;
if (yych <= 'X') {
if (yych == ')') goto yy139;
@@ -20237,23 +20291,23 @@ yy1409:
if (yych == 'y') goto yy172;
goto yy3;
}
-yy1410:
+yy1418:
yych = *++YYCURSOR;
if (yych <= 'A') {
if (yych == ')') goto yy139;
if (yych <= '@') goto yy3;
- goto yy1418;
+ goto yy1426;
} else {
if (yych <= '`') {
if (yych <= 'Z') goto yy142;
goto yy3;
} else {
- if (yych <= 'a') goto yy1418;
+ if (yych <= 'a') goto yy1426;
if (yych <= 'z') goto yy142;
goto yy3;
}
}
-yy1411:
+yy1419:
yych = *++YYCURSOR;
if (yych <= 'O') {
if (yych <= ')') {
@@ -20269,12 +20323,12 @@ yy1411:
if (yych <= '`') goto yy3;
goto yy142;
} else {
- if (yych <= 'o') goto yy1412;
+ if (yych <= 'o') goto yy1420;
if (yych <= 'z') goto yy142;
goto yy3;
}
}
-yy1412:
+yy1420:
yych = *++YYCURSOR;
if (yych <= 'R') {
if (yych <= ')') {
@@ -20290,12 +20344,12 @@ yy1412:
if (yych <= '`') goto yy3;
goto yy143;
} else {
- if (yych <= 'r') goto yy1413;
+ if (yych <= 'r') goto yy1421;
if (yych <= 'z') goto yy143;
goto yy3;
}
}
-yy1413:
+yy1421:
yych = *++YYCURSOR;
if (yych <= 'R') {
if (yych <= ')') {
@@ -20311,29 +20365,29 @@ yy1413:
if (yych <= '`') goto yy3;
goto yy144;
} else {
- if (yych <= 'r') goto yy1414;
+ if (yych <= 'r') goto yy1422;
if (yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1414:
+yy1422:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'N') {
if (yych == ')') goto yy139;
goto yy3;
} else {
- if (yych <= 'O') goto yy1415;
+ if (yych <= 'O') goto yy1423;
if (yych != 'o') goto yy3;
}
-yy1415:
+yy1423:
yych = *++YYCURSOR;
- if (yych == 'W') goto yy1416;
+ if (yych == 'W') goto yy1424;
if (yych != 'w') goto yy56;
-yy1416:
+yy1424:
++YYCURSOR;
-yy1417:
-#line 998 "ext/date/lib/parse_date.re"
+yy1425:
+#line 999 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("tomorrow");
TIMELIB_INIT;
@@ -20344,8 +20398,8 @@ yy1417:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 20348 "<stdout>"
-yy1418:
+#line 20402 "<stdout>"
+yy1426:
yych = *++YYCURSOR;
if (yych <= 'Y') {
if (yych <= ')') {
@@ -20361,22 +20415,22 @@ yy1418:
if (yych <= '`') goto yy3;
goto yy143;
} else {
- if (yych <= 'y') goto yy1419;
+ if (yych <= 'y') goto yy1427;
if (yych <= 'z') goto yy143;
goto yy3;
}
}
-yy1419:
+yy1427:
++YYCURSOR;
if ((yych = *YYCURSOR) <= '@') {
if (yych == ')') goto yy139;
} else {
if (yych <= 'Z') goto yy144;
- if (yych <= '`') goto yy1420;
+ if (yych <= '`') goto yy1428;
if (yych <= 'z') goto yy144;
}
-yy1420:
-#line 988 "ext/date/lib/parse_date.re"
+yy1428:
+#line 989 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("midnight | today");
TIMELIB_INIT;
@@ -20385,8 +20439,8 @@ yy1420:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 20389 "<stdout>"
-yy1421:
+#line 20443 "<stdout>"
+yy1429:
yych = *++YYCURSOR;
if (yych <= 'S') {
if (yych <= '@') {
@@ -20394,8 +20448,8 @@ yy1421:
goto yy3;
} else {
if (yych <= 'Q') goto yy142;
- if (yych <= 'R') goto yy1427;
- goto yy1428;
+ if (yych <= 'R') goto yy1435;
+ goto yy1436;
}
} else {
if (yych <= 'q') {
@@ -20403,13 +20457,13 @@ yy1421:
if (yych <= '`') goto yy3;
goto yy142;
} else {
- if (yych <= 'r') goto yy1427;
- if (yych <= 's') goto yy1428;
+ if (yych <= 'r') goto yy1435;
+ if (yych <= 's') goto yy1436;
if (yych <= 'z') goto yy142;
goto yy3;
}
}
-yy1422:
+yy1430:
yych = *++YYCURSOR;
if (yych <= 'R') {
if (yych <= ')') {
@@ -20425,12 +20479,12 @@ yy1422:
if (yych <= '`') goto yy166;
goto yy142;
} else {
- if (yych <= 'r') goto yy1423;
+ if (yych <= 'r') goto yy1431;
if (yych <= 'z') goto yy142;
goto yy166;
}
}
-yy1423:
+yy1431:
yych = *++YYCURSOR;
if (yych <= 'S') {
if (yych <= ')') {
@@ -20446,12 +20500,12 @@ yy1423:
if (yych <= '`') goto yy3;
goto yy143;
} else {
- if (yych <= 's') goto yy1424;
+ if (yych <= 's') goto yy1432;
if (yych <= 'z') goto yy143;
goto yy3;
}
}
-yy1424:
+yy1432:
yych = *++YYCURSOR;
if (yych <= 'D') {
if (yych <= ')') {
@@ -20467,27 +20521,27 @@ yy1424:
if (yych <= '`') goto yy3;
goto yy144;
} else {
- if (yych <= 'd') goto yy1425;
+ if (yych <= 'd') goto yy1433;
if (yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1425:
+yy1433:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '@') {
if (yych == ')') goto yy139;
goto yy3;
} else {
- if (yych <= 'A') goto yy1426;
+ if (yych <= 'A') goto yy1434;
if (yych != 'a') goto yy3;
}
-yy1426:
+yy1434:
yych = *++YYCURSOR;
if (yych == 'Y') goto yy172;
if (yych == 'y') goto yy172;
goto yy56;
-yy1427:
+yy1435:
yych = *++YYCURSOR;
if (yych <= 'D') {
if (yych <= ')') {
@@ -20509,7 +20563,7 @@ yy1427:
goto yy3;
}
}
-yy1428:
+yy1436:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '(') {
@@ -20531,7 +20585,7 @@ yy1428:
goto yy3;
}
}
-yy1429:
+yy1437:
yych = *++YYCURSOR;
if (yych <= 'T') {
if (yych <= ')') {
@@ -20547,12 +20601,12 @@ yy1429:
if (yych <= '`') goto yy3;
goto yy142;
} else {
- if (yych <= 't') goto yy1430;
+ if (yych <= 't') goto yy1438;
if (yych <= 'z') goto yy142;
goto yy3;
}
}
-yy1430:
+yy1438:
yych = *++YYCURSOR;
if (yych <= 'H') {
if (yych <= ')') {
@@ -20574,7 +20628,7 @@ yy1430:
goto yy3;
}
}
-yy1431:
+yy1439:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'M') {
@@ -20589,7 +20643,7 @@ yy1431:
}
} else {
if (yych <= '_') {
- if (yych <= 'N') goto yy1429;
+ if (yych <= 'N') goto yy1437;
if (yych <= 'Z') goto yy141;
if (yych <= '^') goto yy3;
goto yy147;
@@ -20598,13 +20652,13 @@ yy1431:
if (yych <= '`') goto yy3;
goto yy146;
} else {
- if (yych <= 'n') goto yy1461;
+ if (yych <= 'n') goto yy1469;
if (yych <= 'z') goto yy146;
goto yy3;
}
}
}
-yy1432:
+yy1440:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'T') {
@@ -20621,14 +20675,14 @@ yy1432:
if (yych <= '/') goto yy147;
goto yy3;
} else {
- if (yych == 'I') goto yy1421;
+ if (yych == 'I') goto yy1429;
goto yy141;
}
}
} else {
if (yych <= '`') {
if (yych <= 'Z') {
- if (yych <= 'U') goto yy1422;
+ if (yych <= 'U') goto yy1430;
goto yy141;
} else {
if (yych == '_') goto yy147;
@@ -20636,16 +20690,16 @@ yy1432:
}
} else {
if (yych <= 't') {
- if (yych == 'i') goto yy1453;
+ if (yych == 'i') goto yy1461;
goto yy146;
} else {
- if (yych <= 'u') goto yy1454;
+ if (yych <= 'u') goto yy1462;
if (yych <= 'z') goto yy146;
goto yy3;
}
}
}
-yy1433:
+yy1441:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'L') {
@@ -20662,14 +20716,14 @@ yy1433:
if (yych <= '/') goto yy147;
goto yy3;
} else {
- if (yych == 'D') goto yy1410;
+ if (yych == 'D') goto yy1418;
goto yy141;
}
}
} else {
if (yych <= '`') {
if (yych <= 'Z') {
- if (yych <= 'M') goto yy1411;
+ if (yych <= 'M') goto yy1419;
goto yy141;
} else {
if (yych == '_') goto yy147;
@@ -20677,16 +20731,16 @@ yy1433:
}
} else {
if (yych <= 'l') {
- if (yych == 'd') goto yy1444;
+ if (yych == 'd') goto yy1452;
goto yy146;
} else {
- if (yych <= 'm') goto yy1445;
+ if (yych <= 'm') goto yy1453;
if (yych <= 'z') goto yy146;
goto yy3;
}
}
}
-yy1434:
+yy1442:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'D') {
@@ -20701,7 +20755,7 @@ yy1434:
}
} else {
if (yych <= '_') {
- if (yych <= 'E') goto yy1406;
+ if (yych <= 'E') goto yy1414;
if (yych <= 'Z') goto yy141;
if (yych <= '^') goto yy3;
goto yy147;
@@ -20710,13 +20764,13 @@ yy1434:
if (yych <= '`') goto yy3;
goto yy146;
} else {
- if (yych <= 'e') goto yy1440;
+ if (yych <= 'e') goto yy1448;
if (yych <= 'z') goto yy146;
goto yy3;
}
}
}
-yy1435:
+yy1443:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'D') {
@@ -20731,7 +20785,7 @@ yy1435:
}
} else {
if (yych <= '_') {
- if (yych <= 'E') goto yy1402;
+ if (yych <= 'E') goto yy1410;
if (yych <= 'Z') goto yy141;
if (yych <= '^') goto yy3;
goto yy147;
@@ -20740,13 +20794,13 @@ yy1435:
if (yych <= '`') goto yy3;
goto yy146;
} else {
- if (yych <= 'e') goto yy1436;
+ if (yych <= 'e') goto yy1444;
if (yych <= 'z') goto yy146;
goto yy3;
}
}
}
-yy1436:
+yy1444:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'K') {
@@ -20761,7 +20815,7 @@ yy1436:
}
} else {
if (yych <= '_') {
- if (yych <= 'L') goto yy1403;
+ if (yych <= 'L') goto yy1411;
if (yych <= 'Z') goto yy142;
if (yych <= '^') goto yy3;
goto yy147;
@@ -20770,13 +20824,13 @@ yy1436:
if (yych <= '`') goto yy3;
goto yy150;
} else {
- if (yych <= 'l') goto yy1437;
+ if (yych <= 'l') goto yy1445;
if (yych <= 'z') goto yy150;
goto yy3;
}
}
}
-yy1437:
+yy1445:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'E') {
@@ -20791,7 +20845,7 @@ yy1437:
}
} else {
if (yych <= '_') {
- if (yych <= 'F') goto yy1404;
+ if (yych <= 'F') goto yy1412;
if (yych <= 'Z') goto yy143;
if (yych <= '^') goto yy3;
goto yy147;
@@ -20800,13 +20854,13 @@ yy1437:
if (yych <= '`') goto yy3;
goto yy151;
} else {
- if (yych <= 'f') goto yy1438;
+ if (yych <= 'f') goto yy1446;
if (yych <= 'z') goto yy151;
goto yy3;
}
}
}
-yy1438:
+yy1446:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'S') {
@@ -20821,7 +20875,7 @@ yy1438:
}
} else {
if (yych <= '_') {
- if (yych <= 'T') goto yy1405;
+ if (yych <= 'T') goto yy1413;
if (yych <= 'Z') goto yy144;
if (yych <= '^') goto yy3;
goto yy147;
@@ -20830,13 +20884,13 @@ yy1438:
if (yych <= '`') goto yy3;
goto yy152;
} else {
- if (yych <= 't') goto yy1439;
+ if (yych <= 't') goto yy1447;
if (yych <= 'z') goto yy152;
goto yy3;
}
}
}
-yy1439:
+yy1447:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'G') {
@@ -20859,7 +20913,7 @@ yy1439:
goto yy3;
}
}
-yy1440:
+yy1448:
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'R') {
@@ -20874,7 +20928,7 @@ yy1440:
}
} else {
if (yych <= '_') {
- if (yych <= 'S') goto yy1407;
+ if (yych <= 'S') goto yy1415;
if (yych <= 'Z') goto yy142;
if (yych <= '^') goto yy166;
goto yy147;
@@ -20883,13 +20937,13 @@ yy1440:
if (yych <= '`') goto yy166;
goto yy150;
} else {
- if (yych <= 's') goto yy1441;
+ if (yych <= 's') goto yy1449;
if (yych <= 'z') goto yy150;
goto yy166;
}
}
}
-yy1441:
+yy1449:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'C') {
@@ -20904,7 +20958,7 @@ yy1441:
}
} else {
if (yych <= '_') {
- if (yych <= 'D') goto yy1408;
+ if (yych <= 'D') goto yy1416;
if (yych <= 'Z') goto yy143;
if (yych <= '^') goto yy3;
goto yy147;
@@ -20913,13 +20967,13 @@ yy1441:
if (yych <= '`') goto yy3;
goto yy151;
} else {
- if (yych <= 'd') goto yy1442;
+ if (yych <= 'd') goto yy1450;
if (yych <= 'z') goto yy151;
goto yy3;
}
}
}
-yy1442:
+yy1450:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '@') {
@@ -20933,18 +20987,18 @@ yy1442:
}
} else {
if (yych <= '_') {
- if (yych <= 'A') goto yy1409;
+ if (yych <= 'A') goto yy1417;
if (yych <= 'Z') goto yy144;
if (yych <= '^') goto yy3;
goto yy147;
} else {
if (yych <= '`') goto yy3;
- if (yych <= 'a') goto yy1443;
+ if (yych <= 'a') goto yy1451;
if (yych <= 'z') goto yy152;
goto yy3;
}
}
-yy1443:
+yy1451:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'X') {
@@ -20967,7 +21021,7 @@ yy1443:
goto yy3;
}
}
-yy1444:
+yy1452:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '@') {
@@ -20981,18 +21035,18 @@ yy1444:
}
} else {
if (yych <= '_') {
- if (yych <= 'A') goto yy1418;
+ if (yych <= 'A') goto yy1426;
if (yych <= 'Z') goto yy142;
if (yych <= '^') goto yy3;
goto yy147;
} else {
if (yych <= '`') goto yy3;
- if (yych <= 'a') goto yy1451;
+ if (yych <= 'a') goto yy1459;
if (yych <= 'z') goto yy150;
goto yy3;
}
}
-yy1445:
+yy1453:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'N') {
@@ -21007,7 +21061,7 @@ yy1445:
}
} else {
if (yych <= '_') {
- if (yych <= 'O') goto yy1412;
+ if (yych <= 'O') goto yy1420;
if (yych <= 'Z') goto yy142;
if (yych <= '^') goto yy3;
goto yy147;
@@ -21016,13 +21070,13 @@ yy1445:
if (yych <= '`') goto yy3;
goto yy150;
} else {
- if (yych <= 'o') goto yy1446;
+ if (yych <= 'o') goto yy1454;
if (yych <= 'z') goto yy150;
goto yy3;
}
}
}
-yy1446:
+yy1454:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'Q') {
@@ -21037,7 +21091,7 @@ yy1446:
}
} else {
if (yych <= '_') {
- if (yych <= 'R') goto yy1413;
+ if (yych <= 'R') goto yy1421;
if (yych <= 'Z') goto yy143;
if (yych <= '^') goto yy3;
goto yy147;
@@ -21046,13 +21100,13 @@ yy1446:
if (yych <= '`') goto yy3;
goto yy151;
} else {
- if (yych <= 'r') goto yy1447;
+ if (yych <= 'r') goto yy1455;
if (yych <= 'z') goto yy151;
goto yy3;
}
}
}
-yy1447:
+yy1455:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'Q') {
@@ -21067,7 +21121,7 @@ yy1447:
}
} else {
if (yych <= '_') {
- if (yych <= 'R') goto yy1414;
+ if (yych <= 'R') goto yy1422;
if (yych <= 'Z') goto yy144;
if (yych <= '^') goto yy3;
goto yy147;
@@ -21076,13 +21130,13 @@ yy1447:
if (yych <= '`') goto yy3;
goto yy152;
} else {
- if (yych <= 'r') goto yy1448;
+ if (yych <= 'r') goto yy1456;
if (yych <= 'z') goto yy152;
goto yy3;
}
}
}
-yy1448:
+yy1456:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'N') {
@@ -21096,33 +21150,33 @@ yy1448:
}
} else {
if (yych <= '`') {
- if (yych <= 'O') goto yy1415;
+ if (yych <= 'O') goto yy1423;
if (yych == '_') goto yy147;
goto yy3;
} else {
- if (yych == 'o') goto yy1449;
+ if (yych == 'o') goto yy1457;
if (yych <= 'z') goto yy153;
goto yy3;
}
}
-yy1449:
+yy1457:
yych = *++YYCURSOR;
- if (yych == 'W') goto yy1416;
+ if (yych == 'W') goto yy1424;
if (yych != 'w') goto yy154;
- yyaccept = 29;
+ yyaccept = 30;
yych = *(YYMARKER = ++YYCURSOR);
if (yybm[0+yych] & 16) {
goto yy153;
}
if (yych <= '.') {
if (yych == '-') goto yy147;
- goto yy1417;
+ goto yy1425;
} else {
if (yych <= '/') goto yy147;
if (yych == '_') goto yy147;
- goto yy1417;
+ goto yy1425;
}
-yy1451:
+yy1459:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'X') {
@@ -21137,7 +21191,7 @@ yy1451:
}
} else {
if (yych <= '_') {
- if (yych <= 'Y') goto yy1419;
+ if (yych <= 'Y') goto yy1427;
if (yych <= 'Z') goto yy143;
if (yych <= '^') goto yy3;
goto yy147;
@@ -21146,36 +21200,36 @@ yy1451:
if (yych <= '`') goto yy3;
goto yy151;
} else {
- if (yych <= 'y') goto yy1452;
+ if (yych <= 'y') goto yy1460;
if (yych <= 'z') goto yy151;
goto yy3;
}
}
}
-yy1452:
- yyaccept = 30;
+yy1460:
+ yyaccept = 31;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '/') {
if (yych <= ',') {
if (yych == ')') goto yy139;
- goto yy1420;
+ goto yy1428;
} else {
- if (yych == '.') goto yy1420;
+ if (yych == '.') goto yy1428;
goto yy147;
}
} else {
if (yych <= '^') {
- if (yych <= '@') goto yy1420;
+ if (yych <= '@') goto yy1428;
if (yych <= 'Z') goto yy144;
- goto yy1420;
+ goto yy1428;
} else {
if (yych <= '_') goto yy147;
- if (yych <= '`') goto yy1420;
+ if (yych <= '`') goto yy1428;
if (yych <= 'z') goto yy152;
- goto yy1420;
+ goto yy1428;
}
}
-yy1453:
+yy1461:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'R') {
@@ -21190,13 +21244,13 @@ yy1453:
} else {
if (yych <= '@') goto yy3;
if (yych <= 'Q') goto yy142;
- goto yy1427;
+ goto yy1435;
}
}
} else {
if (yych <= '`') {
if (yych <= 'Z') {
- if (yych <= 'S') goto yy1428;
+ if (yych <= 'S') goto yy1436;
goto yy142;
} else {
if (yych == '_') goto yy147;
@@ -21205,15 +21259,15 @@ yy1453:
} else {
if (yych <= 'r') {
if (yych <= 'q') goto yy150;
- goto yy1459;
+ goto yy1467;
} else {
- if (yych <= 's') goto yy1460;
+ if (yych <= 's') goto yy1468;
if (yych <= 'z') goto yy150;
goto yy3;
}
}
}
-yy1454:
+yy1462:
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'Q') {
@@ -21228,7 +21282,7 @@ yy1454:
}
} else {
if (yych <= '_') {
- if (yych <= 'R') goto yy1423;
+ if (yych <= 'R') goto yy1431;
if (yych <= 'Z') goto yy142;
if (yych <= '^') goto yy166;
goto yy147;
@@ -21237,13 +21291,13 @@ yy1454:
if (yych <= '`') goto yy166;
goto yy150;
} else {
- if (yych <= 'r') goto yy1455;
+ if (yych <= 'r') goto yy1463;
if (yych <= 'z') goto yy150;
goto yy166;
}
}
}
-yy1455:
+yy1463:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'R') {
@@ -21258,7 +21312,7 @@ yy1455:
}
} else {
if (yych <= '_') {
- if (yych <= 'S') goto yy1424;
+ if (yych <= 'S') goto yy1432;
if (yych <= 'Z') goto yy143;
if (yych <= '^') goto yy3;
goto yy147;
@@ -21267,13 +21321,13 @@ yy1455:
if (yych <= '`') goto yy3;
goto yy151;
} else {
- if (yych <= 's') goto yy1456;
+ if (yych <= 's') goto yy1464;
if (yych <= 'z') goto yy151;
goto yy3;
}
}
}
-yy1456:
+yy1464:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'C') {
@@ -21288,7 +21342,7 @@ yy1456:
}
} else {
if (yych <= '_') {
- if (yych <= 'D') goto yy1425;
+ if (yych <= 'D') goto yy1433;
if (yych <= 'Z') goto yy144;
if (yych <= '^') goto yy3;
goto yy147;
@@ -21297,13 +21351,13 @@ yy1456:
if (yych <= '`') goto yy3;
goto yy152;
} else {
- if (yych <= 'd') goto yy1457;
+ if (yych <= 'd') goto yy1465;
if (yych <= 'z') goto yy152;
goto yy3;
}
}
}
-yy1457:
+yy1465:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '@') {
@@ -21317,22 +21371,22 @@ yy1457:
}
} else {
if (yych <= '_') {
- if (yych <= 'A') goto yy1426;
+ if (yych <= 'A') goto yy1434;
if (yych <= '^') goto yy3;
goto yy147;
} else {
if (yych <= '`') goto yy3;
- if (yych <= 'a') goto yy1458;
+ if (yych <= 'a') goto yy1466;
if (yych <= 'z') goto yy153;
goto yy3;
}
}
-yy1458:
+yy1466:
yych = *++YYCURSOR;
if (yych == 'Y') goto yy172;
if (yych == 'y') goto yy185;
goto yy154;
-yy1459:
+yy1467:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'C') {
@@ -21362,7 +21416,7 @@ yy1459:
}
}
}
-yy1460:
+yy1468:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '-') {
@@ -21391,7 +21445,7 @@ yy1460:
}
}
}
-yy1461:
+yy1469:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'S') {
@@ -21406,7 +21460,7 @@ yy1461:
}
} else {
if (yych <= '_') {
- if (yych <= 'T') goto yy1430;
+ if (yych <= 'T') goto yy1438;
if (yych <= 'Z') goto yy142;
if (yych <= '^') goto yy3;
goto yy147;
@@ -21415,13 +21469,13 @@ yy1461:
if (yych <= '`') goto yy3;
goto yy150;
} else {
- if (yych <= 't') goto yy1462;
+ if (yych <= 't') goto yy1470;
if (yych <= 'z') goto yy150;
goto yy3;
}
}
}
-yy1462:
+yy1470:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'G') {
@@ -21451,30 +21505,30 @@ yy1462:
}
}
}
-yy1463:
+yy1471:
yych = *++YYCURSOR;
if (yych <= 'Y') {
if (yych <= '@') {
if (yych == ')') goto yy139;
goto yy3;
} else {
- if (yych == 'R') goto yy1475;
+ if (yych == 'R') goto yy1483;
if (yych <= 'X') goto yy141;
- goto yy1476;
+ goto yy1484;
}
} else {
if (yych <= 'r') {
if (yych <= 'Z') goto yy141;
if (yych <= '`') goto yy3;
if (yych <= 'q') goto yy141;
- goto yy1475;
+ goto yy1483;
} else {
- if (yych == 'y') goto yy1476;
+ if (yych == 'y') goto yy1484;
if (yych <= 'z') goto yy141;
goto yy3;
}
}
-yy1464:
+yy1472:
yych = *++YYCURSOR;
if (yych <= 'D') {
if (yych <= ')') {
@@ -21483,7 +21537,7 @@ yy1464:
} else {
if (yych <= '@') goto yy3;
if (yych <= 'C') goto yy141;
- goto yy1469;
+ goto yy1477;
}
} else {
if (yych <= 'c') {
@@ -21491,12 +21545,12 @@ yy1464:
if (yych <= '`') goto yy3;
goto yy141;
} else {
- if (yych <= 'd') goto yy1469;
+ if (yych <= 'd') goto yy1477;
if (yych <= 'z') goto yy141;
goto yy3;
}
}
-yy1465:
+yy1473:
yych = *++YYCURSOR;
if (yych <= 'N') {
if (yych <= ')') {
@@ -21512,12 +21566,12 @@ yy1465:
if (yych <= '`') goto yy3;
goto yy141;
} else {
- if (yych <= 'n') goto yy1466;
+ if (yych <= 'n') goto yy1474;
if (yych <= 'z') goto yy141;
goto yy3;
}
}
-yy1466:
+yy1474:
yych = *++YYCURSOR;
if (yych <= 'D') {
if (yych <= ')') {
@@ -21533,12 +21587,12 @@ yy1466:
if (yych <= '`') goto yy166;
goto yy142;
} else {
- if (yych <= 'd') goto yy1467;
+ if (yych <= 'd') goto yy1475;
if (yych <= 'z') goto yy142;
goto yy166;
}
}
-yy1467:
+yy1475:
yych = *++YYCURSOR;
if (yych <= 'A') {
if (yych == ')') goto yy139;
@@ -21548,12 +21602,12 @@ yy1467:
if (yych <= 'Z') goto yy143;
goto yy3;
} else {
- if (yych <= 'a') goto yy1468;
+ if (yych <= 'a') goto yy1476;
if (yych <= 'z') goto yy143;
goto yy3;
}
}
-yy1468:
+yy1476:
yych = *++YYCURSOR;
if (yych <= 'Y') {
if (yych <= ')') {
@@ -21575,7 +21629,7 @@ yy1468:
goto yy3;
}
}
-yy1469:
+yy1477:
yych = *++YYCURSOR;
if (yych <= 'N') {
if (yych <= ')') {
@@ -21591,12 +21645,12 @@ yy1469:
if (yych <= '`') goto yy3;
goto yy142;
} else {
- if (yych <= 'n') goto yy1470;
+ if (yych <= 'n') goto yy1478;
if (yych <= 'z') goto yy142;
goto yy3;
}
}
-yy1470:
+yy1478:
yych = *++YYCURSOR;
if (yych <= 'I') {
if (yych <= ')') {
@@ -21612,12 +21666,12 @@ yy1470:
if (yych <= '`') goto yy3;
goto yy143;
} else {
- if (yych <= 'i') goto yy1471;
+ if (yych <= 'i') goto yy1479;
if (yych <= 'z') goto yy143;
goto yy3;
}
}
-yy1471:
+yy1479:
yych = *++YYCURSOR;
if (yych <= 'G') {
if (yych <= ')') {
@@ -21633,29 +21687,29 @@ yy1471:
if (yych <= '`') goto yy3;
goto yy144;
} else {
- if (yych <= 'g') goto yy1472;
+ if (yych <= 'g') goto yy1480;
if (yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1472:
+yy1480:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'G') {
if (yych == ')') goto yy139;
goto yy3;
} else {
- if (yych <= 'H') goto yy1473;
+ if (yych <= 'H') goto yy1481;
if (yych != 'h') goto yy3;
}
-yy1473:
+yy1481:
yych = *++YYCURSOR;
- if (yych == 'T') goto yy1474;
+ if (yych == 'T') goto yy1482;
if (yych != 't') goto yy56;
-yy1474:
+yy1482:
yych = *++YYCURSOR;
- goto yy1420;
-yy1475:
+ goto yy1428;
+yy1483:
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '/') {
@@ -21683,7 +21737,7 @@ yy1475:
if (yych <= '9') goto yy195;
goto yy193;
} else {
- if (yych == 'C') goto yy1477;
+ if (yych == 'C') goto yy1485;
goto yy142;
}
} else {
@@ -21691,13 +21745,13 @@ yy1475:
if (yych <= '`') goto yy193;
goto yy142;
} else {
- if (yych <= 'c') goto yy1477;
+ if (yych <= 'c') goto yy1485;
if (yych <= 'z') goto yy142;
goto yy193;
}
}
}
-yy1476:
+yy1484:
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '-') {
@@ -21722,7 +21776,7 @@ yy1476:
goto yy193;
}
}
-yy1477:
+yy1485:
yych = *++YYCURSOR;
if (yych <= 'H') {
if (yych <= ')') {
@@ -21744,7 +21798,7 @@ yy1477:
goto yy3;
}
}
-yy1478:
+yy1486:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'X') {
@@ -21761,14 +21815,14 @@ yy1478:
if (yych <= '/') goto yy147;
goto yy3;
} else {
- if (yych == 'R') goto yy1475;
+ if (yych == 'R') goto yy1483;
goto yy141;
}
}
} else {
if (yych <= '`') {
if (yych <= 'Z') {
- if (yych <= 'Y') goto yy1476;
+ if (yych <= 'Y') goto yy1484;
goto yy141;
} else {
if (yych == '_') goto yy147;
@@ -21776,16 +21830,16 @@ yy1478:
}
} else {
if (yych <= 'x') {
- if (yych == 'r') goto yy1490;
+ if (yych == 'r') goto yy1498;
goto yy146;
} else {
- if (yych <= 'y') goto yy1491;
+ if (yych <= 'y') goto yy1499;
if (yych <= 'z') goto yy146;
goto yy3;
}
}
}
-yy1479:
+yy1487:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'C') {
@@ -21800,7 +21854,7 @@ yy1479:
}
} else {
if (yych <= '_') {
- if (yych <= 'D') goto yy1469;
+ if (yych <= 'D') goto yy1477;
if (yych <= 'Z') goto yy141;
if (yych <= '^') goto yy3;
goto yy147;
@@ -21809,13 +21863,13 @@ yy1479:
if (yych <= '`') goto yy3;
goto yy146;
} else {
- if (yych <= 'd') goto yy1484;
+ if (yych <= 'd') goto yy1492;
if (yych <= 'z') goto yy146;
goto yy3;
}
}
}
-yy1480:
+yy1488:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'M') {
@@ -21830,7 +21884,7 @@ yy1480:
}
} else {
if (yych <= '_') {
- if (yych <= 'N') goto yy1466;
+ if (yych <= 'N') goto yy1474;
if (yych <= 'Z') goto yy141;
if (yych <= '^') goto yy3;
goto yy147;
@@ -21839,13 +21893,13 @@ yy1480:
if (yych <= '`') goto yy3;
goto yy146;
} else {
- if (yych <= 'n') goto yy1481;
+ if (yych <= 'n') goto yy1489;
if (yych <= 'z') goto yy146;
goto yy3;
}
}
}
-yy1481:
+yy1489:
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'C') {
@@ -21860,7 +21914,7 @@ yy1481:
}
} else {
if (yych <= '_') {
- if (yych <= 'D') goto yy1467;
+ if (yych <= 'D') goto yy1475;
if (yych <= 'Z') goto yy142;
if (yych <= '^') goto yy166;
goto yy147;
@@ -21869,13 +21923,13 @@ yy1481:
if (yych <= '`') goto yy166;
goto yy150;
} else {
- if (yych <= 'd') goto yy1482;
+ if (yych <= 'd') goto yy1490;
if (yych <= 'z') goto yy150;
goto yy166;
}
}
}
-yy1482:
+yy1490:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '@') {
@@ -21889,18 +21943,18 @@ yy1482:
}
} else {
if (yych <= '_') {
- if (yych <= 'A') goto yy1468;
+ if (yych <= 'A') goto yy1476;
if (yych <= 'Z') goto yy143;
if (yych <= '^') goto yy3;
goto yy147;
} else {
if (yych <= '`') goto yy3;
- if (yych <= 'a') goto yy1483;
+ if (yych <= 'a') goto yy1491;
if (yych <= 'z') goto yy151;
goto yy3;
}
}
-yy1483:
+yy1491:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'X') {
@@ -21930,7 +21984,7 @@ yy1483:
}
}
}
-yy1484:
+yy1492:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'M') {
@@ -21945,7 +21999,7 @@ yy1484:
}
} else {
if (yych <= '_') {
- if (yych <= 'N') goto yy1470;
+ if (yych <= 'N') goto yy1478;
if (yych <= 'Z') goto yy142;
if (yych <= '^') goto yy3;
goto yy147;
@@ -21954,13 +22008,13 @@ yy1484:
if (yych <= '`') goto yy3;
goto yy150;
} else {
- if (yych <= 'n') goto yy1485;
+ if (yych <= 'n') goto yy1493;
if (yych <= 'z') goto yy150;
goto yy3;
}
}
}
-yy1485:
+yy1493:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'H') {
@@ -21975,7 +22029,7 @@ yy1485:
}
} else {
if (yych <= '_') {
- if (yych <= 'I') goto yy1471;
+ if (yych <= 'I') goto yy1479;
if (yych <= 'Z') goto yy143;
if (yych <= '^') goto yy3;
goto yy147;
@@ -21984,13 +22038,13 @@ yy1485:
if (yych <= '`') goto yy3;
goto yy151;
} else {
- if (yych <= 'i') goto yy1486;
+ if (yych <= 'i') goto yy1494;
if (yych <= 'z') goto yy151;
goto yy3;
}
}
}
-yy1486:
+yy1494:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'F') {
@@ -22005,7 +22059,7 @@ yy1486:
}
} else {
if (yych <= '_') {
- if (yych <= 'G') goto yy1472;
+ if (yych <= 'G') goto yy1480;
if (yych <= 'Z') goto yy144;
if (yych <= '^') goto yy3;
goto yy147;
@@ -22014,13 +22068,13 @@ yy1486:
if (yych <= '`') goto yy3;
goto yy152;
} else {
- if (yych <= 'g') goto yy1487;
+ if (yych <= 'g') goto yy1495;
if (yych <= 'z') goto yy152;
goto yy3;
}
}
}
-yy1487:
+yy1495:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'G') {
@@ -22034,33 +22088,33 @@ yy1487:
}
} else {
if (yych <= '`') {
- if (yych <= 'H') goto yy1473;
+ if (yych <= 'H') goto yy1481;
if (yych == '_') goto yy147;
goto yy3;
} else {
- if (yych == 'h') goto yy1488;
+ if (yych == 'h') goto yy1496;
if (yych <= 'z') goto yy153;
goto yy3;
}
}
-yy1488:
+yy1496:
yych = *++YYCURSOR;
- if (yych == 'T') goto yy1474;
+ if (yych == 'T') goto yy1482;
if (yych != 't') goto yy154;
- yyaccept = 30;
+ yyaccept = 31;
yych = *(YYMARKER = ++YYCURSOR);
if (yybm[0+yych] & 16) {
goto yy153;
}
if (yych <= '.') {
if (yych == '-') goto yy147;
- goto yy1420;
+ goto yy1428;
} else {
if (yych <= '/') goto yy147;
if (yych == '_') goto yy147;
- goto yy1420;
+ goto yy1428;
}
-yy1490:
+yy1498:
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '9') {
@@ -22088,7 +22142,7 @@ yy1490:
if (yych <= '@') goto yy193;
goto yy142;
} else {
- if (yych <= 'C') goto yy1477;
+ if (yych <= 'C') goto yy1485;
if (yych <= 'Z') goto yy142;
goto yy193;
}
@@ -22098,13 +22152,13 @@ yy1490:
if (yych <= '`') goto yy193;
goto yy150;
} else {
- if (yych <= 'c') goto yy1492;
+ if (yych <= 'c') goto yy1500;
if (yych <= 'z') goto yy150;
goto yy193;
}
}
}
-yy1491:
+yy1499:
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '.') {
@@ -22139,7 +22193,7 @@ yy1491:
}
}
}
-yy1492:
+yy1500:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'G') {
@@ -22169,7 +22223,7 @@ yy1492:
}
}
}
-yy1493:
+yy1501:
yych = *++YYCURSOR;
if (yych <= 'W') {
if (yych <= 'N') {
@@ -22177,29 +22231,29 @@ yy1493:
if (yych <= '@') goto yy3;
goto yy141;
} else {
- if (yych <= 'O') goto yy1501;
+ if (yych <= 'O') goto yy1509;
if (yych <= 'U') goto yy141;
- if (yych <= 'V') goto yy1502;
- goto yy1499;
+ if (yych <= 'V') goto yy1510;
+ goto yy1507;
}
} else {
if (yych <= 'o') {
if (yych <= 'Z') goto yy141;
if (yych <= '`') goto yy3;
if (yych <= 'n') goto yy141;
- goto yy1501;
+ goto yy1509;
} else {
if (yych <= 'v') {
if (yych <= 'u') goto yy141;
- goto yy1502;
+ goto yy1510;
} else {
- if (yych <= 'w') goto yy1499;
+ if (yych <= 'w') goto yy1507;
if (yych <= 'z') goto yy141;
goto yy3;
}
}
}
-yy1494:
+yy1502:
yych = *++YYCURSOR;
if (yych <= 'X') {
if (yych <= ')') {
@@ -22208,7 +22262,7 @@ yy1494:
} else {
if (yych <= '@') goto yy3;
if (yych <= 'W') goto yy141;
- goto yy1498;
+ goto yy1506;
}
} else {
if (yych <= 'w') {
@@ -22216,12 +22270,12 @@ yy1494:
if (yych <= '`') goto yy3;
goto yy141;
} else {
- if (yych <= 'x') goto yy1498;
+ if (yych <= 'x') goto yy1506;
if (yych <= 'z') goto yy141;
goto yy3;
}
}
-yy1495:
+yy1503:
yych = *++YYCURSOR;
if (yych <= 'N') {
if (yych <= ')') {
@@ -22237,12 +22291,12 @@ yy1495:
if (yych <= '`') goto yy3;
goto yy141;
} else {
- if (yych <= 'n') goto yy1496;
+ if (yych <= 'n') goto yy1504;
if (yych <= 'z') goto yy141;
goto yy3;
}
}
-yy1496:
+yy1504:
yych = *++YYCURSOR;
if (yych <= 'T') {
if (yych <= ')') {
@@ -22258,12 +22312,12 @@ yy1496:
if (yych <= '`') goto yy3;
goto yy142;
} else {
- if (yych <= 't') goto yy1497;
+ if (yych <= 't') goto yy1505;
if (yych <= 'z') goto yy142;
goto yy3;
}
}
-yy1497:
+yy1505:
yych = *++YYCURSOR;
if (yych <= 'H') {
if (yych <= ')') {
@@ -22285,7 +22339,7 @@ yy1497:
goto yy3;
}
}
-yy1498:
+yy1506:
yych = *++YYCURSOR;
if (yych <= 'T') {
if (yych <= ')') {
@@ -22294,7 +22348,7 @@ yy1498:
} else {
if (yych <= '@') goto yy3;
if (yych <= 'S') goto yy142;
- goto yy1428;
+ goto yy1436;
}
} else {
if (yych <= 's') {
@@ -22302,22 +22356,22 @@ yy1498:
if (yych <= '`') goto yy3;
goto yy142;
} else {
- if (yych <= 't') goto yy1428;
+ if (yych <= 't') goto yy1436;
if (yych <= 'z') goto yy142;
goto yy3;
}
}
-yy1499:
+yy1507:
++YYCURSOR;
if ((yych = *YYCURSOR) <= '@') {
if (yych == ')') goto yy139;
} else {
if (yych <= 'Z') goto yy142;
- if (yych <= '`') goto yy1500;
+ if (yych <= '`') goto yy1508;
if (yych <= 'z') goto yy142;
}
-yy1500:
-#line 967 "ext/date/lib/parse_date.re"
+yy1508:
+#line 968 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("now");
TIMELIB_INIT;
@@ -22325,8 +22379,8 @@ yy1500:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 22329 "<stdout>"
-yy1501:
+#line 22383 "<stdout>"
+yy1509:
yych = *++YYCURSOR;
if (yych <= 'N') {
if (yych <= ')') {
@@ -22335,7 +22389,7 @@ yy1501:
} else {
if (yych <= '@') goto yy3;
if (yych <= 'M') goto yy142;
- goto yy1507;
+ goto yy1515;
}
} else {
if (yych <= 'm') {
@@ -22343,12 +22397,12 @@ yy1501:
if (yych <= '`') goto yy3;
goto yy142;
} else {
- if (yych <= 'n') goto yy1507;
+ if (yych <= 'n') goto yy1515;
if (yych <= 'z') goto yy142;
goto yy3;
}
}
-yy1502:
+yy1510:
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '/') {
@@ -22383,13 +22437,13 @@ yy1502:
if (yych <= '`') goto yy193;
goto yy142;
} else {
- if (yych <= 'e') goto yy1503;
+ if (yych <= 'e') goto yy1511;
if (yych <= 'z') goto yy142;
goto yy193;
}
}
}
-yy1503:
+yy1511:
yych = *++YYCURSOR;
if (yych <= 'M') {
if (yych <= ')') {
@@ -22405,12 +22459,12 @@ yy1503:
if (yych <= '`') goto yy3;
goto yy143;
} else {
- if (yych <= 'm') goto yy1504;
+ if (yych <= 'm') goto yy1512;
if (yych <= 'z') goto yy143;
goto yy3;
}
}
-yy1504:
+yy1512:
yych = *++YYCURSOR;
if (yych <= 'B') {
if (yych <= ')') {
@@ -22426,37 +22480,37 @@ yy1504:
if (yych <= '`') goto yy3;
goto yy144;
} else {
- if (yych <= 'b') goto yy1505;
+ if (yych <= 'b') goto yy1513;
if (yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1505:
+yy1513:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'D') {
if (yych == ')') goto yy139;
goto yy3;
} else {
- if (yych <= 'E') goto yy1506;
+ if (yych <= 'E') goto yy1514;
if (yych != 'e') goto yy3;
}
-yy1506:
+yy1514:
yych = *++YYCURSOR;
if (yych == 'R') goto yy205;
if (yych == 'r') goto yy205;
goto yy56;
-yy1507:
+yy1515:
++YYCURSOR;
if ((yych = *YYCURSOR) <= '@') {
if (yych == ')') goto yy139;
} else {
if (yych <= 'Z') goto yy143;
- if (yych <= '`') goto yy1508;
+ if (yych <= '`') goto yy1516;
if (yych <= 'z') goto yy143;
}
-yy1508:
-#line 976 "ext/date/lib/parse_date.re"
+yy1516:
+#line 977 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("noon");
TIMELIB_INIT;
@@ -22467,8 +22521,8 @@ yy1508:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 22471 "<stdout>"
-yy1509:
+#line 22525 "<stdout>"
+yy1517:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'V') {
@@ -22486,15 +22540,15 @@ yy1509:
if (yych <= '@') goto yy3;
goto yy141;
} else {
- if (yych <= 'O') goto yy1501;
+ if (yych <= 'O') goto yy1509;
if (yych <= 'U') goto yy141;
- goto yy1502;
+ goto yy1510;
}
}
} else {
if (yych <= 'n') {
if (yych <= '^') {
- if (yych <= 'W') goto yy1499;
+ if (yych <= 'W') goto yy1507;
if (yych <= 'Z') goto yy141;
goto yy3;
} else {
@@ -22504,17 +22558,17 @@ yy1509:
}
} else {
if (yych <= 'v') {
- if (yych <= 'o') goto yy1516;
+ if (yych <= 'o') goto yy1524;
if (yych <= 'u') goto yy146;
- goto yy1517;
+ goto yy1525;
} else {
- if (yych <= 'w') goto yy1515;
+ if (yych <= 'w') goto yy1523;
if (yych <= 'z') goto yy146;
goto yy3;
}
}
}
-yy1510:
+yy1518:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'W') {
@@ -22529,7 +22583,7 @@ yy1510:
}
} else {
if (yych <= '_') {
- if (yych <= 'X') goto yy1498;
+ if (yych <= 'X') goto yy1506;
if (yych <= 'Z') goto yy141;
if (yych <= '^') goto yy3;
goto yy147;
@@ -22538,13 +22592,13 @@ yy1510:
if (yych <= '`') goto yy3;
goto yy146;
} else {
- if (yych <= 'x') goto yy1514;
+ if (yych <= 'x') goto yy1522;
if (yych <= 'z') goto yy146;
goto yy3;
}
}
}
-yy1511:
+yy1519:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'M') {
@@ -22559,7 +22613,7 @@ yy1511:
}
} else {
if (yych <= '_') {
- if (yych <= 'N') goto yy1496;
+ if (yych <= 'N') goto yy1504;
if (yych <= 'Z') goto yy141;
if (yych <= '^') goto yy3;
goto yy147;
@@ -22568,13 +22622,13 @@ yy1511:
if (yych <= '`') goto yy3;
goto yy146;
} else {
- if (yych <= 'n') goto yy1512;
+ if (yych <= 'n') goto yy1520;
if (yych <= 'z') goto yy146;
goto yy3;
}
}
}
-yy1512:
+yy1520:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'S') {
@@ -22589,7 +22643,7 @@ yy1512:
}
} else {
if (yych <= '_') {
- if (yych <= 'T') goto yy1497;
+ if (yych <= 'T') goto yy1505;
if (yych <= 'Z') goto yy142;
if (yych <= '^') goto yy3;
goto yy147;
@@ -22598,13 +22652,13 @@ yy1512:
if (yych <= '`') goto yy3;
goto yy150;
} else {
- if (yych <= 't') goto yy1513;
+ if (yych <= 't') goto yy1521;
if (yych <= 'z') goto yy150;
goto yy3;
}
}
}
-yy1513:
+yy1521:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'G') {
@@ -22634,7 +22688,7 @@ yy1513:
}
}
}
-yy1514:
+yy1522:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'S') {
@@ -22649,7 +22703,7 @@ yy1514:
}
} else {
if (yych <= '_') {
- if (yych <= 'T') goto yy1428;
+ if (yych <= 'T') goto yy1436;
if (yych <= 'Z') goto yy142;
if (yych <= '^') goto yy3;
goto yy147;
@@ -22658,36 +22712,36 @@ yy1514:
if (yych <= '`') goto yy3;
goto yy150;
} else {
- if (yych <= 't') goto yy1460;
+ if (yych <= 't') goto yy1468;
if (yych <= 'z') goto yy150;
goto yy3;
}
}
}
-yy1515:
- yyaccept = 31;
+yy1523:
+ yyaccept = 32;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '/') {
if (yych <= ',') {
if (yych == ')') goto yy139;
- goto yy1500;
+ goto yy1508;
} else {
- if (yych == '.') goto yy1500;
+ if (yych == '.') goto yy1508;
goto yy147;
}
} else {
if (yych <= '^') {
- if (yych <= '@') goto yy1500;
+ if (yych <= '@') goto yy1508;
if (yych <= 'Z') goto yy142;
- goto yy1500;
+ goto yy1508;
} else {
if (yych <= '_') goto yy147;
- if (yych <= '`') goto yy1500;
+ if (yych <= '`') goto yy1508;
if (yych <= 'z') goto yy150;
- goto yy1500;
+ goto yy1508;
}
}
-yy1516:
+yy1524:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'M') {
@@ -22702,7 +22756,7 @@ yy1516:
}
} else {
if (yych <= '_') {
- if (yych <= 'N') goto yy1507;
+ if (yych <= 'N') goto yy1515;
if (yych <= 'Z') goto yy142;
if (yych <= '^') goto yy3;
goto yy147;
@@ -22711,13 +22765,13 @@ yy1516:
if (yych <= '`') goto yy3;
goto yy150;
} else {
- if (yych <= 'n') goto yy1522;
+ if (yych <= 'n') goto yy1530;
if (yych <= 'z') goto yy150;
goto yy3;
}
}
}
-yy1517:
+yy1525:
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '9') {
@@ -22745,7 +22799,7 @@ yy1517:
if (yych <= '@') goto yy193;
goto yy142;
} else {
- if (yych <= 'E') goto yy1503;
+ if (yych <= 'E') goto yy1511;
if (yych <= 'Z') goto yy142;
goto yy193;
}
@@ -22755,13 +22809,13 @@ yy1517:
if (yych <= '`') goto yy193;
goto yy150;
} else {
- if (yych <= 'e') goto yy1518;
+ if (yych <= 'e') goto yy1526;
if (yych <= 'z') goto yy150;
goto yy193;
}
}
}
-yy1518:
+yy1526:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'L') {
@@ -22776,7 +22830,7 @@ yy1518:
}
} else {
if (yych <= '_') {
- if (yych <= 'M') goto yy1504;
+ if (yych <= 'M') goto yy1512;
if (yych <= 'Z') goto yy143;
if (yych <= '^') goto yy3;
goto yy147;
@@ -22785,13 +22839,13 @@ yy1518:
if (yych <= '`') goto yy3;
goto yy151;
} else {
- if (yych <= 'm') goto yy1519;
+ if (yych <= 'm') goto yy1527;
if (yych <= 'z') goto yy151;
goto yy3;
}
}
}
-yy1519:
+yy1527:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'A') {
@@ -22806,7 +22860,7 @@ yy1519:
}
} else {
if (yych <= '_') {
- if (yych <= 'B') goto yy1505;
+ if (yych <= 'B') goto yy1513;
if (yych <= 'Z') goto yy144;
if (yych <= '^') goto yy3;
goto yy147;
@@ -22815,13 +22869,13 @@ yy1519:
if (yych <= '`') goto yy3;
goto yy152;
} else {
- if (yych <= 'b') goto yy1520;
+ if (yych <= 'b') goto yy1528;
if (yych <= 'z') goto yy152;
goto yy3;
}
}
}
-yy1520:
+yy1528:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'D') {
@@ -22835,44 +22889,44 @@ yy1520:
}
} else {
if (yych <= '`') {
- if (yych <= 'E') goto yy1506;
+ if (yych <= 'E') goto yy1514;
if (yych == '_') goto yy147;
goto yy3;
} else {
- if (yych == 'e') goto yy1521;
+ if (yych == 'e') goto yy1529;
if (yych <= 'z') goto yy153;
goto yy3;
}
}
-yy1521:
+yy1529:
yych = *++YYCURSOR;
if (yych == 'R') goto yy205;
if (yych == 'r') goto yy376;
goto yy154;
-yy1522:
- yyaccept = 32;
+yy1530:
+ yyaccept = 33;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '/') {
if (yych <= ',') {
if (yych == ')') goto yy139;
- goto yy1508;
+ goto yy1516;
} else {
- if (yych == '.') goto yy1508;
+ if (yych == '.') goto yy1516;
goto yy147;
}
} else {
if (yych <= '^') {
- if (yych <= '@') goto yy1508;
+ if (yych <= '@') goto yy1516;
if (yych <= 'Z') goto yy143;
- goto yy1508;
+ goto yy1516;
} else {
if (yych <= '_') goto yy147;
- if (yych <= '`') goto yy1508;
+ if (yych <= '`') goto yy1516;
if (yych <= 'z') goto yy151;
- goto yy1508;
+ goto yy1516;
}
}
-yy1523:
+yy1531:
yych = *++YYCURSOR;
if (yych <= 'S') {
if (yych <= ')') {
@@ -22888,12 +22942,12 @@ yy1523:
if (yych <= '`') goto yy3;
goto yy141;
} else {
- if (yych <= 's') goto yy1524;
+ if (yych <= 's') goto yy1532;
if (yych <= 'z') goto yy141;
goto yy3;
}
}
-yy1524:
+yy1532:
yych = *++YYCURSOR;
if (yych <= 'T') {
if (yych <= ')') {
@@ -22909,12 +22963,12 @@ yy1524:
if (yych <= '`') goto yy3;
goto yy142;
} else {
- if (yych <= 't') goto yy1525;
+ if (yych <= 't') goto yy1533;
if (yych <= 'z') goto yy142;
goto yy3;
}
}
-yy1525:
+yy1533:
yych = *++YYCURSOR;
if (yych <= 'E') {
if (yych <= ')') {
@@ -22930,12 +22984,12 @@ yy1525:
if (yych <= '`') goto yy3;
goto yy143;
} else {
- if (yych <= 'e') goto yy1526;
+ if (yych <= 'e') goto yy1534;
if (yych <= 'z') goto yy143;
goto yy3;
}
}
-yy1526:
+yy1534:
yych = *++YYCURSOR;
if (yych <= 'R') {
if (yych <= ')') {
@@ -22951,33 +23005,33 @@ yy1526:
if (yych <= '`') goto yy3;
goto yy144;
} else {
- if (yych <= 'r') goto yy1527;
+ if (yych <= 'r') goto yy1535;
if (yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1527:
+yy1535:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'C') {
if (yych == ')') goto yy139;
goto yy3;
} else {
- if (yych <= 'D') goto yy1528;
+ if (yych <= 'D') goto yy1536;
if (yych != 'd') goto yy3;
}
-yy1528:
+yy1536:
yych = *++YYCURSOR;
- if (yych == 'A') goto yy1529;
+ if (yych == 'A') goto yy1537;
if (yych != 'a') goto yy56;
-yy1529:
+yy1537:
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy1530;
+ if (yych == 'Y') goto yy1538;
if (yych != 'y') goto yy56;
-yy1530:
+yy1538:
++YYCURSOR;
-yy1531:
-#line 955 "ext/date/lib/parse_date.re"
+yy1539:
+#line 956 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("yesterday");
TIMELIB_INIT;
@@ -22988,8 +23042,8 @@ yy1531:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 22992 "<stdout>"
-yy1532:
+#line 23046 "<stdout>"
+yy1540:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'R') {
@@ -23004,7 +23058,7 @@ yy1532:
}
} else {
if (yych <= '_') {
- if (yych <= 'S') goto yy1524;
+ if (yych <= 'S') goto yy1532;
if (yych <= 'Z') goto yy141;
if (yych <= '^') goto yy3;
goto yy147;
@@ -23013,13 +23067,13 @@ yy1532:
if (yych <= '`') goto yy3;
goto yy146;
} else {
- if (yych <= 's') goto yy1533;
+ if (yych <= 's') goto yy1541;
if (yych <= 'z') goto yy146;
goto yy3;
}
}
}
-yy1533:
+yy1541:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'S') {
@@ -23034,7 +23088,7 @@ yy1533:
}
} else {
if (yych <= '_') {
- if (yych <= 'T') goto yy1525;
+ if (yych <= 'T') goto yy1533;
if (yych <= 'Z') goto yy142;
if (yych <= '^') goto yy3;
goto yy147;
@@ -23043,13 +23097,13 @@ yy1533:
if (yych <= '`') goto yy3;
goto yy150;
} else {
- if (yych <= 't') goto yy1534;
+ if (yych <= 't') goto yy1542;
if (yych <= 'z') goto yy150;
goto yy3;
}
}
}
-yy1534:
+yy1542:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'D') {
@@ -23064,7 +23118,7 @@ yy1534:
}
} else {
if (yych <= '_') {
- if (yych <= 'E') goto yy1526;
+ if (yych <= 'E') goto yy1534;
if (yych <= 'Z') goto yy143;
if (yych <= '^') goto yy3;
goto yy147;
@@ -23073,13 +23127,13 @@ yy1534:
if (yych <= '`') goto yy3;
goto yy151;
} else {
- if (yych <= 'e') goto yy1535;
+ if (yych <= 'e') goto yy1543;
if (yych <= 'z') goto yy151;
goto yy3;
}
}
}
-yy1535:
+yy1543:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'Q') {
@@ -23094,7 +23148,7 @@ yy1535:
}
} else {
if (yych <= '_') {
- if (yych <= 'R') goto yy1527;
+ if (yych <= 'R') goto yy1535;
if (yych <= 'Z') goto yy144;
if (yych <= '^') goto yy3;
goto yy147;
@@ -23103,13 +23157,13 @@ yy1535:
if (yych <= '`') goto yy3;
goto yy152;
} else {
- if (yych <= 'r') goto yy1536;
+ if (yych <= 'r') goto yy1544;
if (yych <= 'z') goto yy152;
goto yy3;
}
}
}
-yy1536:
+yy1544:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'C') {
@@ -23123,37 +23177,37 @@ yy1536:
}
} else {
if (yych <= '`') {
- if (yych <= 'D') goto yy1528;
+ if (yych <= 'D') goto yy1536;
if (yych == '_') goto yy147;
goto yy3;
} else {
- if (yych == 'd') goto yy1537;
+ if (yych == 'd') goto yy1545;
if (yych <= 'z') goto yy153;
goto yy3;
}
}
-yy1537:
+yy1545:
yych = *++YYCURSOR;
- if (yych == 'A') goto yy1529;
+ if (yych == 'A') goto yy1537;
if (yych != 'a') goto yy154;
yych = *++YYCURSOR;
- if (yych == 'Y') goto yy1530;
+ if (yych == 'Y') goto yy1538;
if (yych != 'y') goto yy154;
- yyaccept = 33;
+ yyaccept = 34;
yych = *(YYMARKER = ++YYCURSOR);
if (yybm[0+yych] & 16) {
goto yy153;
}
if (yych <= '.') {
if (yych == '-') goto yy147;
- goto yy1531;
+ goto yy1539;
} else {
if (yych <= '/') goto yy147;
if (yych == '_') goto yy147;
- goto yy1531;
+ goto yy1539;
}
}
-#line 1729 "ext/date/lib/parse_date.re"
+#line 1758 "ext/date/lib/parse_date.re"
}
@@ -23460,7 +23514,6 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
s->time->m = 1;
s->time->d = 1;
s->time->h = s->time->i = s->time->s = 0;
- s->time->f = 0.0;
s->time->relative.s += tmp;
s->time->is_localtime = 1;
s->time->zone_type = TIMELIB_ZONETYPE_OFFSET;
@@ -23618,13 +23671,20 @@ void timelib_fill_holes(timelib_time *parsed, timelib_time *now, int options)
parsed->s = 0;
parsed->f = 0;
}
+ if (
+ parsed->y != TIMELIB_UNSET || parsed->m != TIMELIB_UNSET || parsed->d != TIMELIB_UNSET ||
+ parsed->h != TIMELIB_UNSET || parsed->i != TIMELIB_UNSET || parsed->s != TIMELIB_UNSET
+ ) {
+ if (parsed->f == TIMELIB_UNSET) parsed->f = 0;
+ } else {
+ if (parsed->f == TIMELIB_UNSET) parsed->f = now->f != TIMELIB_UNSET ? now->f : 0;
+ }
if (parsed->y == TIMELIB_UNSET) parsed->y = now->y != TIMELIB_UNSET ? now->y : 0;
- if (parsed->d == TIMELIB_UNSET) parsed->d = now->d != TIMELIB_UNSET ? now->d : 0;
if (parsed->m == TIMELIB_UNSET) parsed->m = now->m != TIMELIB_UNSET ? now->m : 0;
+ if (parsed->d == TIMELIB_UNSET) parsed->d = now->d != TIMELIB_UNSET ? now->d : 0;
if (parsed->h == TIMELIB_UNSET) parsed->h = now->h != TIMELIB_UNSET ? now->h : 0;
if (parsed->i == TIMELIB_UNSET) parsed->i = now->i != TIMELIB_UNSET ? now->i : 0;
if (parsed->s == TIMELIB_UNSET) parsed->s = now->s != TIMELIB_UNSET ? now->s : 0;
- if (parsed->f == TIMELIB_UNSET) parsed->f = now->f != TIMELIB_UNSET ? now->f : 0;
if (parsed->z == TIMELIB_UNSET) parsed->z = now->z != TIMELIB_UNSET ? now->z : 0;
if (parsed->dst == TIMELIB_UNSET) parsed->dst = now->dst != TIMELIB_UNSET ? now->dst : 0;
diff --git a/ext/date/lib/parse_date.re b/ext/date/lib/parse_date.re
index 79dabe4ef6..ad14b96def 100644
--- a/ext/date/lib/parse_date.re
+++ b/ext/date/lib/parse_date.re
@@ -925,6 +925,7 @@ clf = day "/" monthabbr "/" year4 ":" hour24lz ":" minutelz ":" sec
/* Timestamp format: @1126396800 */
timestamp = "@" "-"? [0-9]+;
+timestampms = "@" "-"? [0-9]+ "." [0-9]{6};
/* To fix some ambiguities */
dateshortwithtimeshort12 = datenoyear timeshort12;
@@ -1032,6 +1033,34 @@ weekdayof = (reltextnumber|reltexttext) space (dayfull|dayabbr) space 'of
return TIMELIB_RELATIVE;
}
+ timestampms
+ {
+ timelib_ull i, ms;
+
+ TIMELIB_INIT;
+ TIMELIB_HAVE_RELATIVE();
+ TIMELIB_UNHAVE_DATE();
+ TIMELIB_UNHAVE_TIME();
+ TIMELIB_HAVE_TZ();
+
+ i = timelib_get_unsigned_nr((char **) &ptr, 24);
+ ms = timelib_get_unsigned_nr((char **) &ptr, 24);
+ s->time->y = 1970;
+ s->time->m = 1;
+ s->time->d = 1;
+ s->time->h = s->time->i = s->time->s = 0;
+ s->time->f = 0.0;
+ s->time->relative.s += i;
+ s->time->relative.f = ((double) ms) / 1000000.0;
+ s->time->is_localtime = 1;
+ s->time->zone_type = TIMELIB_ZONETYPE_OFFSET;
+ s->time->z = 0;
+ s->time->dst = 0;
+
+ TIMELIB_DEINIT;
+ return TIMELIB_RELATIVE;
+ }
+
firstdayof | lastdayof
{
DEBUG_OUTPUT("firstdayof | lastdayof");
@@ -2032,7 +2061,6 @@ timelib_time *timelib_parse_from_format(char *format, char *string, size_t len,
s->time->m = 1;
s->time->d = 1;
s->time->h = s->time->i = s->time->s = 0;
- s->time->f = 0.0;
s->time->relative.s += tmp;
s->time->is_localtime = 1;
s->time->zone_type = TIMELIB_ZONETYPE_OFFSET;
@@ -2190,13 +2218,20 @@ void timelib_fill_holes(timelib_time *parsed, timelib_time *now, int options)
parsed->s = 0;
parsed->f = 0;
}
+ if (
+ parsed->y != TIMELIB_UNSET || parsed->m != TIMELIB_UNSET || parsed->d != TIMELIB_UNSET ||
+ parsed->h != TIMELIB_UNSET || parsed->i != TIMELIB_UNSET || parsed->s != TIMELIB_UNSET
+ ) {
+ if (parsed->f == TIMELIB_UNSET) parsed->f = 0;
+ } else {
+ if (parsed->f == TIMELIB_UNSET) parsed->f = now->f != TIMELIB_UNSET ? now->f : 0;
+ }
if (parsed->y == TIMELIB_UNSET) parsed->y = now->y != TIMELIB_UNSET ? now->y : 0;
- if (parsed->d == TIMELIB_UNSET) parsed->d = now->d != TIMELIB_UNSET ? now->d : 0;
if (parsed->m == TIMELIB_UNSET) parsed->m = now->m != TIMELIB_UNSET ? now->m : 0;
+ if (parsed->d == TIMELIB_UNSET) parsed->d = now->d != TIMELIB_UNSET ? now->d : 0;
if (parsed->h == TIMELIB_UNSET) parsed->h = now->h != TIMELIB_UNSET ? now->h : 0;
if (parsed->i == TIMELIB_UNSET) parsed->i = now->i != TIMELIB_UNSET ? now->i : 0;
if (parsed->s == TIMELIB_UNSET) parsed->s = now->s != TIMELIB_UNSET ? now->s : 0;
- if (parsed->f == TIMELIB_UNSET) parsed->f = now->f != TIMELIB_UNSET ? now->f : 0;
if (parsed->z == TIMELIB_UNSET) parsed->z = now->z != TIMELIB_UNSET ? now->z : 0;
if (parsed->dst == TIMELIB_UNSET) parsed->dst = now->dst != TIMELIB_UNSET ? now->dst : 0;
diff --git a/ext/date/lib/timelib.c b/ext/date/lib/timelib.c
index b9fb66f00f..84dba3d969 100644
--- a/ext/date/lib/timelib.c
+++ b/ext/date/lib/timelib.c
@@ -231,7 +231,7 @@ void timelib_dump_date(timelib_time *d, int options)
printf("TS: %lld | %s%04lld-%02lld-%02lld %02lld:%02lld:%02lld",
d->sse, d->y < 0 ? "-" : "", TIMELIB_LLABS(d->y), d->m, d->d, d->h, d->i, d->s);
if (d->f > +0.0) {
- printf(" %.5f", d->f);
+ printf(" %.6f", d->f);
}
if (d->is_localtime) {
@@ -260,6 +260,9 @@ void timelib_dump_date(timelib_time *d, int options)
if (d->have_relative) {
printf("%3lldY %3lldM %3lldD / %3lldH %3lldM %3lldS",
d->relative.y, d->relative.m, d->relative.d, d->relative.h, d->relative.i, d->relative.s);
+ if (d->relative.f) {
+ printf(" %6f", d->relative.f);
+ }
if (d->relative.first_last_day_of != 0) {
switch (d->relative.first_last_day_of) {
case 1:
diff --git a/ext/date/lib/timelib.h b/ext/date/lib/timelib.h
index 9a59d89770..5cd1fe6ebc 100644
--- a/ext/date/lib/timelib.h
+++ b/ext/date/lib/timelib.h
@@ -38,8 +38,8 @@
# define timelib_free free
#endif
-#define TIMELIB_VERSION 201602
-#define TIMELIB_ASCII_VERSION "2016.02"
+#define TIMELIB_VERSION 201604
+#define TIMELIB_ASCII_VERSION "2016.04"
#define TIMELIB_NONE 0x00
#define TIMELIB_OVERRIDE_TIME 0x01
@@ -139,6 +139,7 @@ void timelib_time_set_option(timelib_time* tm, int option, void* option_value);
void timelib_time_dtor(timelib_time* t);
timelib_time* timelib_time_clone(timelib_time* orig);
int timelib_time_compare(timelib_time *t1, timelib_time *t2);
+void timelib_set_fraction_from_timeval(timelib_time *t, struct timeval tp);
timelib_time_offset* timelib_time_offset_ctor(void);
void timelib_time_offset_dtor(timelib_time_offset* t);
diff --git a/ext/date/lib/timelib.m4 b/ext/date/lib/timelib.m4
index c7255727f2..99bf9fad20 100644
--- a/ext/date/lib/timelib.m4
+++ b/ext/date/lib/timelib.m4
@@ -77,4 +77,4 @@ stdlib.h
])
dnl Check for strtoll, atoll
-AC_CHECK_FUNCS(strtoll atoll strftime)
+AC_CHECK_FUNCS(strtoll atoll strftime gettimeofday)
diff --git a/ext/date/lib/timelib_structs.h b/ext/date/lib/timelib_structs.h
index d38175753a..4256dd4f6f 100644
--- a/ext/date/lib/timelib_structs.h
+++ b/ext/date/lib/timelib_structs.h
@@ -125,7 +125,7 @@ typedef unsigned __int64 uint64_t;
#include <strings.h>
#endif
-#if defined(__x86_64__) || defined(__LP64__) || defined(_LP64) || defined(_WIN64)
+#if (defined(__x86_64__) || defined(__LP64__) || defined(_LP64) || defined(_WIN64)) && !defined(TIMELIB_FORCE_LONG32)
typedef int64_t timelib_long;
typedef uint64_t timelib_ulong;
# define TIMELIB_LONG_MAX INT64_MAX
@@ -216,6 +216,7 @@ typedef struct 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 */
+ double f; /* Fraction */
int weekday; /* Stores the day in 'next monday' */
int weekday_behavior; /* 0: the current day should *not* be counted when advancing forwards; 1: the current day *should* be counted */
diff --git a/ext/date/lib/timezonemap.h b/ext/date/lib/timezonemap.h
index 41471909ac..d8898bf33d 100644
--- a/ext/date/lib/timezonemap.h
+++ b/ext/date/lib/timezonemap.h
@@ -5,10 +5,16 @@
{ "acdt", 1, 37800, "Australia/South" },
{ "acdt", 1, 37800, "Australia/Yancowinna" },
{ "acst", 1, -14400, "America/Porto_Acre" },
+ { "acst", 0, 32400, "Australia/Adelaide" },
{ "acst", 0, 34200, "Australia/Adelaide" },
{ "acst", 1, -14400, "America/Eirunepe" },
{ "acst", 1, -14400, "America/Rio_Branco" },
{ "acst", 1, -14400, "Brazil/Acre" },
+ { "acst", 0, 32400, "Australia/Broken_Hill" },
+ { "acst", 0, 32400, "Australia/Darwin" },
+ { "acst", 0, 32400, "Australia/North" },
+ { "acst", 0, 32400, "Australia/South" },
+ { "acst", 0, 32400, "Australia/Yancowinna" },
{ "acst", 0, 34200, "Asia/Jayapura" },
{ "acst", 0, 34200, "Australia/Broken_Hill" },
{ "acst", 0, 34200, "Australia/Darwin" },
@@ -71,23 +77,16 @@
{ "ahst", 0, -36000, "America/Atka" },
{ "akdt", 1, -28800, "America/Anchorage" },
{ "akdt", 1, -28800, "America/Juneau" },
+ { "akdt", 1, -28800, "America/Metlakatla" },
{ "akdt", 1, -28800, "America/Nome" },
{ "akdt", 1, -28800, "America/Sitka" },
{ "akdt", 1, -28800, "America/Yakutat" },
{ "akst", 0, -32400, "America/Anchorage" },
{ "akst", 0, -32400, "America/Juneau" },
+ { "akst", 0, -32400, "America/Metlakatla" },
{ "akst", 0, -32400, "America/Nome" },
{ "akst", 0, -32400, "America/Sitka" },
{ "akst", 0, -32400, "America/Yakutat" },
- { "aktst", 1, 21600, "Asia/Aqtobe" },
- { "aktt", 0, 21600, "Asia/Aqtobe" },
- { "aktt", 0, 14400, "Asia/Aqtobe" },
- { "aktt", 0, 18000, "Asia/Aqtobe" },
- { "almst", 1, 25200, "Asia/Almaty" },
- { "almt", 0, 21600, "Asia/Almaty" },
- { "almt", 0, 18000, "Asia/Almaty" },
- { "amst", 1, 18000, "Asia/Yerevan" },
- { "amst", 1, 14400, "Asia/Yerevan" },
{ "amst", 1, -10800, "America/Boa_Vista" },
{ "amst", 1, -10800, "America/Campo_Grande" },
{ "amst", 1, -10800, "America/Cuiaba" },
@@ -95,8 +94,6 @@
{ "amst", 1, -10800, "America/Porto_Velho" },
{ "amst", 1, -10800, "America/Santarem" },
{ "amst", 1, -10800, "Brazil/West" },
- { "amt", 0, 14400, "Asia/Yerevan" },
- { "amt", 0, 10800, "Asia/Yerevan" },
{ "amt", 0, -13840, "America/Asuncion" },
{ "amt", 0, -14400, "America/Boa_Vista" },
{ "amt", 0, -14400, "America/Campo_Grande" },
@@ -111,12 +108,6 @@
{ "amt", 0, -14400, "Brazil/West" },
{ "amt", 0, 1172, "Europe/Amsterdam" },
{ "amt", 0, 5692, "Europe/Athens" },
- { "anast", 1, 50400, "Asia/Anadyr" },
- { "anast", 1, 43200, "Asia/Anadyr" },
- { "anast", 1, 46800, "Asia/Anadyr" },
- { "anat", 0, 46800, "Asia/Anadyr" },
- { "anat", 0, 39600, "Asia/Anadyr" },
- { "anat", 0, 43200, "Asia/Anadyr" },
{ "ant", 0, -16200, "America/Curacao" },
{ "ant", 0, -16200, "America/Aruba" },
{ "ant", 0, -16200, "America/Kralendijk" },
@@ -128,12 +119,6 @@
{ "apt", 1, -10800, "America/Pangnirtung" },
{ "apt", 1, -10800, "America/Puerto_Rico" },
{ "apt", 1, -10800, "Canada/Atlantic" },
- { "aqtst", 1, 21600, "Asia/Aqtau" },
- { "aqtst", 1, 18000, "Asia/Aqtau" },
- { "aqtst", 1, 21600, "Asia/Aqtobe" },
- { "aqtt", 0, 18000, "Asia/Aqtau" },
- { "aqtt", 0, 14400, "Asia/Aqtau" },
- { "aqtt", 0, 18000, "Asia/Aqtobe" },
{ "arst", 1, -7200, "America/Buenos_Aires" },
{ "arst", 1, -10800, "America/Buenos_Aires" },
{ "arst", 1, -10800, "America/Argentina/Buenos_Aires" },
@@ -214,14 +199,6 @@
{ "art", 0, -14400, "America/Mendoza" },
{ "art", 0, -14400, "America/Rosario" },
{ "art", 0, -14400, "Antarctica/Palmer" },
- { "ashst", 1, 21600, "Asia/Ashkhabad" },
- { "ashst", 1, 18000, "Asia/Ashkhabad" },
- { "ashst", 1, 18000, "Asia/Ashgabat" },
- { "ashst", 1, 21600, "Asia/Ashgabat" },
- { "asht", 0, 18000, "Asia/Ashkhabad" },
- { "asht", 0, 14400, "Asia/Ashkhabad" },
- { "asht", 0, 14400, "Asia/Ashgabat" },
- { "asht", 0, 18000, "Asia/Ashgabat" },
{ "ast", 0, 10800, "Asia/Riyadh" },
{ "ast", 0, -14400, "America/Anguilla" },
{ "ast", 0, -14400, "America/Antigua" },
@@ -265,7 +242,6 @@
{ "awdt", 1, 32400, "Australia/Perth" },
{ "awdt", 1, 32400, "Australia/West" },
{ "awst", 0, 28800, "Australia/Perth" },
- { "awst", 0, 28800, "Antarctica/Casey" },
{ "awst", 0, 28800, "Australia/West" },
{ "awt", 1, -10800, "America/Halifax" },
{ "awt", 1, -10800, "America/Blanc-Sablon" },
@@ -279,14 +255,6 @@
{ "azost", 1, -3600, "Atlantic/Azores" },
{ "azot", 0, -3600, "Atlantic/Azores" },
{ "azot", 0, -7200, "Atlantic/Azores" },
- { "azst", 1, 18000, "Asia/Baku" },
- { "azst", 1, 14400, "Asia/Baku" },
- { "azt", 0, 14400, "Asia/Baku" },
- { "azt", 0, 10800, "Asia/Baku" },
- { "bakst", 1, 18000, "Asia/Baku" },
- { "bakst", 1, 14400, "Asia/Baku" },
- { "bakt", 0, 14400, "Asia/Baku" },
- { "bakt", 0, 10800, "Asia/Baku" },
{ "bdst", 1, 7200, "Europe/London" },
{ "bdst", 1, 25200, "Asia/Dacca" },
{ "bdst", 1, 25200, "Asia/Dhaka" },
@@ -326,7 +294,11 @@
{ "bmt", 0, -14309, "America/Barbados" },
{ "bmt", 0, 6264, "Europe/Tiraspol" },
{ "bmt", 0, -17776, "America/Bogota" },
+ { "bmt", 0, 1050, "Europe/Brussels" },
{ "bmt", 0, 10656, "Asia/Baghdad" },
+ { "bmt", 0, 1786, "Europe/Busingen" },
+ { "bmt", 0, 1786, "Europe/Vaduz" },
+ { "bmt", 0, 1786, "Europe/Zurich" },
{ "bmt", 0, 24124, "Asia/Bangkok" },
{ "bmt", 0, 24124, "Asia/Phnom_Penh" },
{ "bmt", 0, 24124, "Asia/Vientiane" },
@@ -385,12 +357,12 @@
{ "burt", 0, 23400, "Asia/Dacca" },
{ "burt", 0, 23400, "Asia/Dhaka" },
{ "burt", 0, 23400, "Asia/Rangoon" },
+ { "burt", 0, 23400, "Asia/Yangon" },
{ "cant", 0, -3600, "Atlantic/Canary" },
{ "capt", 1, -32400, "America/Anchorage" },
{ "cast", 0, 34200, "Australia/Adelaide" },
{ "cast", 1, 10800, "Africa/Juba" },
{ "cast", 1, 10800, "Africa/Khartoum" },
- { "cast", 0, 39600, "Antarctica/Casey" },
{ "cat", 0, -36000, "America/Anchorage" },
{ "cat", 0, 7200, "Africa/Khartoum" },
{ "cat", 0, 7200, "Africa/Blantyre" },
@@ -466,7 +438,6 @@
{ "cest", 1, 7200, "Africa/Ceuta" },
{ "cest", 1, 7200, "Africa/Tripoli" },
{ "cest", 1, 7200, "Africa/Tunis" },
- { "cest", 1, 7200, "Antarctica/Troll" },
{ "cest", 1, 7200, "Arctic/Longyearbyen" },
{ "cest", 1, 7200, "Atlantic/Jan_Mayen" },
{ "cest", 1, 7200, "Europe/Amsterdam" },
@@ -588,10 +559,7 @@
{ "clst", 1, -10800, "Chile/Continental" },
{ "clst", 1, -14400, "Chile/Continental" },
{ "clt", 0, -14400, "America/Santiago" },
- { "clt", 0, -10800, "America/Santiago" },
{ "clt", 0, -18000, "America/Santiago" },
- { "clt", 0, -10800, "Antarctica/Palmer" },
- { "clt", 0, -10800, "Chile/Continental" },
{ "clt", 0, -14400, "Antarctica/Palmer" },
{ "clt", 0, -14400, "Chile/Continental" },
{ "clt", 0, -18000, "Chile/Continental" },
@@ -618,6 +586,7 @@
{ "cmt", 0, -16356, "America/La_Paz" },
{ "cmt", 0, -19176, "America/Cayman" },
{ "cmt", 0, -19176, "America/Panama" },
+ { "cmt", 0, 3020, "Europe/Copenhagen" },
{ "cmt", 0, 6900, "Europe/Chisinau" },
{ "cmt", 0, 6900, "Europe/Tiraspol" },
{ "cost", 1, -14400, "America/Bogota" },
@@ -738,22 +707,13 @@
{ "chst", 0, 36000, "Pacific/Saipan" },
{ "dact", 0, 21600, "Asia/Dacca" },
{ "dact", 0, 21600, "Asia/Dhaka" },
- { "davt", 0, 25200, "Antarctica/Davis" },
- { "davt", 0, 18000, "Antarctica/Davis" },
- { "ddut", 0, 36000, "Antarctica/DumontDUrville" },
{ "dmt", 0, -1521, "Europe/Dublin" },
- { "dusst", 1, 25200, "Asia/Dushanbe" },
- { "dusst", 1, 21600, "Asia/Dushanbe" },
- { "dust", 0, 21600, "Asia/Dushanbe" },
- { "dust", 0, 18000, "Asia/Dushanbe" },
{ "easst", 1, -21600, "Chile/EasterIsland" },
{ "easst", 1, -18000, "Chile/EasterIsland" },
{ "easst", 1, -18000, "Pacific/Easter" },
{ "easst", 1, -21600, "Pacific/Easter" },
- { "east", 0, -18000, "Chile/EasterIsland" },
{ "east", 0, -21600, "Chile/EasterIsland" },
{ "east", 0, -25200, "Chile/EasterIsland" },
- { "east", 0, -18000, "Pacific/Easter" },
{ "east", 0, -21600, "Pacific/Easter" },
{ "east", 0, -25200, "Pacific/Easter" },
{ "eat", 0, 10800, "Africa/Khartoum" },
@@ -819,7 +779,6 @@
{ "eest", 1, 10800, "Europe/Moscow" },
{ "eest", 1, 10800, "Europe/Nicosia" },
{ "eest", 1, 10800, "Europe/Riga" },
- { "eest", 1, 10800, "Europe/Samara" },
{ "eest", 1, 10800, "Europe/Simferopol" },
{ "eest", 1, 10800, "Europe/Sofia" },
{ "eest", 1, 10800, "Europe/Tallinn" },
@@ -921,8 +880,6 @@
{ "ewt", 1, -14400, "America/Thunder_Bay" },
{ "ewt", 1, -14400, "America/Toronto" },
{ "ewt", 1, -14400, "Canada/Eastern" },
- { "fet", 0, 10800, "Europe/Kaliningrad" },
- { "fet", 0, 10800, "Europe/Minsk" },
{ "ffmt", 0, -14660, "America/Martinique" },
{ "fjst", 1, 46800, "Pacific/Fiji" },
{ "fjt", 0, 43200, "Pacific/Fiji" },
@@ -936,19 +893,9 @@
{ "fnst", 1, -3600, "Brazil/DeNoronha" },
{ "fnt", 0, -7200, "America/Noronha" },
{ "fnt", 0, -7200, "Brazil/DeNoronha" },
- { "fort", 0, 18000, "Asia/Aqtau" },
- { "fort", 0, 14400, "Asia/Aqtau" },
- { "frust", 1, 25200, "Asia/Bishkek" },
- { "frust", 1, 21600, "Asia/Bishkek" },
- { "frut", 0, 21600, "Asia/Bishkek" },
- { "frut", 0, 18000, "Asia/Bishkek" },
{ "galt", 0, -21600, "Pacific/Galapagos" },
{ "gamt", 0, -32400, "Pacific/Gambier" },
{ "gbgt", 0, -13500, "America/Guyana" },
- { "gest", 1, 14400, "Asia/Tbilisi" },
- { "gest", 1, 18000, "Asia/Tbilisi" },
- { "get", 0, 14400, "Asia/Tbilisi" },
- { "get", 0, 10800, "Asia/Tbilisi" },
{ "gft", 0, -14400, "America/Cayenne" },
{ "gft", 0, -10800, "America/Cayenne" },
{ "ghst", 1, 1200, "Africa/Accra" },
@@ -990,11 +937,9 @@
{ "gyt", 0, -14400, "America/Guyana" },
{ "gyt", 0, -10800, "America/Guyana" },
{ "gyt", 0, -13500, "America/Guyana" },
- { "hadt", 1, -32400, "America/Adak" },
- { "hadt", 1, -32400, "America/Atka" },
- { "hast", 0, -36000, "America/Adak" },
- { "hast", 0, -36000, "America/Atka" },
{ "hdt", 1, -34200, "Pacific/Honolulu" },
+ { "hdt", 1, -32400, "America/Adak" },
+ { "hdt", 1, -32400, "America/Atka" },
{ "hdt", 1, -34200, "Pacific/Johnston" },
{ "hkst", 1, 32400, "Asia/Hong_Kong" },
{ "hkt", 0, 28800, "Asia/Hong_Kong" },
@@ -1011,6 +956,8 @@
{ "hovt", 0, 21600, "Asia/Hovd" },
{ "hst", 0, -36000, "Pacific/Honolulu" },
{ "hst", 0, -37800, "Pacific/Honolulu" },
+ { "hst", 0, -36000, "America/Adak" },
+ { "hst", 0, -36000, "America/Atka" },
{ "hst", 0, -36000, "Pacific/Johnston" },
{ "hst", 0, -37800, "Pacific/Johnston" },
{ "ict", 0, 25200, "Asia/Bangkok" },
@@ -1030,16 +977,11 @@
{ "imt", 0, 25025, "Asia/Irkutsk" },
{ "imt", 0, 7016, "Asia/Istanbul" },
{ "imt", 0, 7016, "Europe/Istanbul" },
+ { "imt", 0, 7016, "Europe/Sofia" },
{ "iot", 0, 21600, "Indian/Chagos" },
{ "iot", 0, 18000, "Indian/Chagos" },
{ "irdt", 1, 16200, "Asia/Tehran" },
{ "irdt", 1, 18000, "Asia/Tehran" },
- { "irkst", 1, 32400, "Asia/Irkutsk" },
- { "irkst", 1, 28800, "Asia/Irkutsk" },
- { "irkt", 0, 28800, "Asia/Irkutsk" },
- { "irkt", 0, 25200, "Asia/Irkutsk" },
- { "irkt", 0, 32400, "Asia/Irkutsk" },
- { "irkt", 0, 28800, "Asia/Chita" },
{ "irst", 0, 12600, "Asia/Tehran" },
{ "irst", 0, 14400, "Asia/Tehran" },
{ "isst", 1, 0, "Atlantic/Reykjavik" },
@@ -1067,7 +1009,6 @@
{ "ist", 0, 7200, "Asia/Tel_Aviv" },
{ "javt", 0, 26400, "Asia/Jakarta" },
{ "jcst", 0, 32400, "Asia/Pyongyang" },
- { "jcst", 0, 32400, "Asia/Sakhalin" },
{ "jcst", 0, 32400, "Asia/Seoul" },
{ "jcst", 0, 32400, "Asia/Tokyo" },
{ "jcst", 0, 32400, "ROK" },
@@ -1087,11 +1028,11 @@
{ "jst", 0, 32400, "Asia/Pyongyang" },
{ "jst", 0, 32400, "Asia/Rangoon" },
{ "jst", 0, 32400, "Asia/Saigon" },
- { "jst", 0, 32400, "Asia/Sakhalin" },
{ "jst", 0, 32400, "Asia/Seoul" },
{ "jst", 0, 32400, "Asia/Singapore" },
{ "jst", 0, 32400, "Asia/Taipei" },
{ "jst", 0, 32400, "Asia/Ujung_Pandang" },
+ { "jst", 0, 32400, "Asia/Yangon" },
{ "jst", 0, 32400, "Pacific/Bougainville" },
{ "jst", 0, 32400, "Pacific/Nauru" },
{ "jst", 0, 32400, "ROC" },
@@ -1103,37 +1044,18 @@
{ "kdt", 1, 34200, "Asia/Seoul" },
{ "kdt", 1, 34200, "ROK" },
{ "kdt", 1, 36000, "ROK" },
- { "kgst", 1, 21600, "Asia/Bishkek" },
- { "kgt", 0, 18000, "Asia/Bishkek" },
- { "kgt", 0, 21600, "Asia/Bishkek" },
- { "kizst", 1, 21600, "Asia/Qyzylorda" },
- { "kizt", 0, 21600, "Asia/Qyzylorda" },
- { "kizt", 0, 14400, "Asia/Qyzylorda" },
- { "kizt", 0, 18000, "Asia/Qyzylorda" },
{ "kmt", 0, 5736, "Europe/Vilnius" },
{ "kmt", 0, -18431, "America/Grand_Turk" },
{ "kmt", 0, -18431, "America/Jamaica" },
{ "kmt", 0, 7324, "Europe/Kiev" },
{ "kost", 0, 43200, "Pacific/Kosrae" },
{ "kost", 0, 39600, "Pacific/Kosrae" },
- { "krast", 1, 28800, "Asia/Krasnoyarsk" },
- { "krast", 1, 25200, "Asia/Krasnoyarsk" },
- { "krast", 1, 25200, "Asia/Novokuznetsk" },
- { "krast", 1, 28800, "Asia/Novokuznetsk" },
- { "krat", 0, 25200, "Asia/Krasnoyarsk" },
- { "krat", 0, 21600, "Asia/Krasnoyarsk" },
- { "krat", 0, 28800, "Asia/Krasnoyarsk" },
- { "krat", 0, 21600, "Asia/Novokuznetsk" },
- { "krat", 0, 25200, "Asia/Novokuznetsk" },
{ "kst", 0, 30600, "Asia/Seoul" },
{ "kst", 0, 32400, "Asia/Pyongyang" },
{ "kst", 0, 32400, "Asia/Seoul" },
{ "kst", 0, 30600, "Asia/Pyongyang" },
{ "kst", 0, 30600, "ROK" },
{ "kst", 0, 32400, "ROK" },
- { "kuyst", 1, 18000, "Europe/Samara" },
- { "kuyt", 0, 14400, "Europe/Samara" },
- { "kuyt", 0, 10800, "Europe/Samara" },
{ "kwat", 0, -43200, "Pacific/Kwajalein" },
{ "lhdt", 1, 39600, "Australia/LHI" },
{ "lhdt", 1, 39600, "Australia/Lord_Howe" },
@@ -1151,21 +1073,6 @@
{ "madmt", 1, 3600, "Atlantic/Madeira" },
{ "madst", 1, 0, "Atlantic/Madeira" },
{ "madt", 0, -3600, "Atlantic/Madeira" },
- { "magst", 1, 43200, "Asia/Magadan" },
- { "magst", 1, 39600, "Asia/Magadan" },
- { "magst", 1, 39600, "Asia/Srednekolymsk" },
- { "magst", 1, 39600, "Asia/Ust-Nera" },
- { "magst", 1, 43200, "Asia/Srednekolymsk" },
- { "magst", 1, 43200, "Asia/Ust-Nera" },
- { "magt", 0, 36000, "Asia/Magadan" },
- { "magt", 0, 39600, "Asia/Magadan" },
- { "magt", 0, 43200, "Asia/Magadan" },
- { "magt", 0, 36000, "Asia/Srednekolymsk" },
- { "magt", 0, 36000, "Asia/Ust-Nera" },
- { "magt", 0, 39600, "Asia/Srednekolymsk" },
- { "magt", 0, 39600, "Asia/Ust-Nera" },
- { "magt", 0, 43200, "Asia/Srednekolymsk" },
- { "magt", 0, 43200, "Asia/Ust-Nera" },
{ "malst", 1, 26400, "Asia/Singapore" },
{ "malst", 1, 26400, "Asia/Kuala_Lumpur" },
{ "malt", 0, 27000, "Asia/Singapore" },
@@ -1175,8 +1082,6 @@
{ "malt", 0, 26400, "Asia/Kuala_Lumpur" },
{ "malt", 0, 27000, "Asia/Kuala_Lumpur" },
{ "mart", 0, -34200, "Pacific/Marquesas" },
- { "mawt", 0, 21600, "Antarctica/Mawson" },
- { "mawt", 0, 18000, "Antarctica/Mawson" },
{ "mddt", 1, -18000, "America/Cambridge_Bay" },
{ "mddt", 1, -18000, "America/Yellowknife" },
{ "mdst", 1, 16279, "Europe/Moscow" },
@@ -1202,6 +1107,8 @@
{ "mdt", 1, -21600, "Canada/Mountain" },
{ "mdt", 1, -21600, "Canada/Saskatchewan" },
{ "mdt", 1, -21600, "Mexico/BajaSur" },
+ { "mest", 1, 7200, "MET" },
+ { "met", 0, 3600, "MET" },
{ "mht", 0, 43200, "Pacific/Kwajalein" },
{ "mht", 0, 39600, "Pacific/Kwajalein" },
{ "mht", 0, 39600, "Pacific/Majuro" },
@@ -1215,6 +1122,7 @@
{ "mmt", 0, 17640, "Indian/Maldives" },
{ "mmt", 0, 19172, "Asia/Colombo" },
{ "mmt", 0, 23400, "Asia/Rangoon" },
+ { "mmt", 0, 23400, "Asia/Yangon" },
{ "mmt", 0, 28656, "Asia/Makassar" },
{ "mmt", 0, 28656, "Asia/Ujung_Pandang" },
{ "mmt", 0, 6600, "Europe/Minsk" },
@@ -1242,13 +1150,11 @@
{ "msd", 1, 14400, "Europe/Kiev" },
{ "msd", 1, 14400, "Europe/Minsk" },
{ "msd", 1, 14400, "Europe/Riga" },
- { "msd", 1, 14400, "Europe/Samara" },
{ "msd", 1, 14400, "Europe/Simferopol" },
{ "msd", 1, 14400, "Europe/Tallinn" },
{ "msd", 1, 14400, "Europe/Tiraspol" },
{ "msd", 1, 14400, "Europe/Uzhgorod" },
{ "msd", 1, 14400, "Europe/Vilnius" },
- { "msd", 1, 14400, "Europe/Volgograd" },
{ "msd", 1, 14400, "Europe/Zaporozhye" },
{ "msk", 0, 10800, "Europe/Moscow" },
{ "msk", 0, 14400, "Europe/Moscow" },
@@ -1257,17 +1163,13 @@
{ "msk", 0, 10800, "Europe/Kiev" },
{ "msk", 0, 10800, "Europe/Minsk" },
{ "msk", 0, 10800, "Europe/Riga" },
- { "msk", 0, 10800, "Europe/Samara" },
{ "msk", 0, 10800, "Europe/Simferopol" },
{ "msk", 0, 10800, "Europe/Tallinn" },
{ "msk", 0, 10800, "Europe/Tiraspol" },
{ "msk", 0, 10800, "Europe/Uzhgorod" },
{ "msk", 0, 10800, "Europe/Vilnius" },
- { "msk", 0, 10800, "Europe/Volgograd" },
{ "msk", 0, 10800, "Europe/Zaporozhye" },
{ "msk", 0, 14400, "Europe/Simferopol" },
- { "msk", 0, 14400, "Europe/Volgograd" },
- { "msm", 1, 18000, "Europe/Moscow" },
{ "mst", 0, -25200, "America/Denver" },
{ "mst", 0, -25200, "America/Bahia_Banderas" },
{ "mst", 0, -25200, "America/Boise" },
@@ -1277,6 +1179,7 @@
{ "mst", 0, -25200, "America/Dawson_Creek" },
{ "mst", 0, -25200, "America/Edmonton" },
{ "mst", 0, -25200, "America/Ensenada" },
+ { "mst", 0, -25200, "America/Fort_Nelson" },
{ "mst", 0, -25200, "America/Hermosillo" },
{ "mst", 0, -25200, "America/Inuvik" },
{ "mst", 0, -25200, "America/Mazatlan" },
@@ -1332,15 +1235,10 @@
{ "negt", 0, -12600, "America/Paramaribo" },
{ "nest", 1, 4800, "Europe/Amsterdam" },
{ "net", 0, 1200, "Europe/Amsterdam" },
+ { "nfst", 1, 45000, "Pacific/Norfolk" },
{ "nft", 0, 41400, "Pacific/Norfolk" },
+ { "nft", 0, 39600, "Pacific/Norfolk" },
{ "nmt", 0, 40320, "Pacific/Norfolk" },
- { "novst", 1, 25200, "Asia/Novosibirsk" },
- { "novst", 1, 28800, "Asia/Novosibirsk" },
- { "novst", 1, 25200, "Asia/Novokuznetsk" },
- { "novt", 0, 21600, "Asia/Novosibirsk" },
- { "novt", 0, 25200, "Asia/Novosibirsk" },
- { "novt", 0, 21600, "Asia/Novokuznetsk" },
- { "novt", 0, 25200, "Asia/Novokuznetsk" },
{ "npt", 1, -9000, "America/St_Johns" },
{ "npt", 0, 20700, "Asia/Katmandu" },
{ "npt", 1, -36000, "America/Adak" },
@@ -1393,20 +1291,13 @@
{ "nzst", 1, 45000, "Antarctica/McMurdo" },
{ "nzst", 1, 45000, "Antarctica/South_Pole" },
{ "nzst", 1, 45000, "NZ" },
- { "omsst", 1, 25200, "Asia/Omsk" },
- { "omsst", 1, 21600, "Asia/Omsk" },
- { "omst", 0, 21600, "Asia/Omsk" },
- { "omst", 0, 18000, "Asia/Omsk" },
- { "omst", 0, 25200, "Asia/Omsk" },
- { "orast", 1, 18000, "Asia/Oral" },
- { "orat", 0, 18000, "Asia/Oral" },
- { "orat", 0, 14400, "Asia/Oral" },
{ "pddt", 1, -21600, "America/Inuvik" },
{ "pdt", 1, -25200, "America/Los_Angeles" },
{ "pdt", 1, -25200, "America/Boise" },
{ "pdt", 1, -25200, "America/Dawson" },
{ "pdt", 1, -25200, "America/Dawson_Creek" },
{ "pdt", 1, -25200, "America/Ensenada" },
+ { "pdt", 1, -25200, "America/Fort_Nelson" },
{ "pdt", 1, -25200, "America/Juneau" },
{ "pdt", 1, -25200, "America/Metlakatla" },
{ "pdt", 1, -25200, "America/Santa_Isabel" },
@@ -1418,10 +1309,6 @@
{ "pdt", 1, -25200, "Canada/Yukon" },
{ "pdt", 1, -25200, "Mexico/BajaNorte" },
{ "pest", 1, -14400, "America/Lima" },
- { "petst", 1, 46800, "Asia/Kamchatka" },
- { "petst", 1, 43200, "Asia/Kamchatka" },
- { "pett", 0, 43200, "Asia/Kamchatka" },
- { "pett", 0, 39600, "Asia/Kamchatka" },
{ "pet", 0, -18000, "America/Lima" },
{ "pgt", 0, 36000, "Pacific/Bougainville" },
{ "pgt", 0, 36000, "Pacific/Port_Moresby" },
@@ -1435,12 +1322,14 @@
{ "plmt", 0, 25590, "Asia/Ho_Chi_Minh" },
{ "plmt", 0, 25590, "Asia/Saigon" },
{ "pmdt", 1, -7200, "America/Miquelon" },
+ { "pmmt", 0, 35312, "Pacific/Bougainville" },
{ "pmst", 0, -10800, "America/Miquelon" },
{ "pmt", 0, -13236, "America/Paramaribo" },
{ "pmt", 0, -13252, "America/Paramaribo" },
- { "pmt", 0, 36000, "Antarctica/DumontDUrville" },
{ "pmt", 0, 13505, "Asia/Yekaterinburg" },
{ "pmt", 0, 26240, "Asia/Pontianak" },
+ { "pmt", 0, 3464, "Europe/Bratislava" },
+ { "pmt", 0, 3464, "Europe/Prague" },
{ "pmt", 0, 561, "Africa/Algiers" },
{ "pmt", 0, 561, "Africa/Tunis" },
{ "pmt", 0, 561, "Europe/Monaco" },
@@ -1452,6 +1341,7 @@
{ "ppt", 1, -25200, "America/Los_Angeles" },
{ "ppt", 1, -25200, "America/Dawson_Creek" },
{ "ppt", 1, -25200, "America/Ensenada" },
+ { "ppt", 1, -25200, "America/Fort_Nelson" },
{ "ppt", 1, -25200, "America/Juneau" },
{ "ppt", 1, -25200, "America/Metlakatla" },
{ "ppt", 1, -25200, "America/Santa_Isabel" },
@@ -1467,6 +1357,7 @@
{ "pst", 0, -28800, "America/Dawson" },
{ "pst", 0, -28800, "America/Dawson_Creek" },
{ "pst", 0, -28800, "America/Ensenada" },
+ { "pst", 0, -28800, "America/Fort_Nelson" },
{ "pst", 0, -28800, "America/Hermosillo" },
{ "pst", 0, -28800, "America/Inuvik" },
{ "pst", 0, -28800, "America/Juneau" },
@@ -1485,6 +1376,7 @@
{ "pwt", 1, -25200, "America/Los_Angeles" },
{ "pwt", 1, -25200, "America/Dawson_Creek" },
{ "pwt", 1, -25200, "America/Ensenada" },
+ { "pwt", 1, -25200, "America/Fort_Nelson" },
{ "pwt", 1, -25200, "America/Juneau" },
{ "pwt", 1, -25200, "America/Metlakatla" },
{ "pwt", 1, -25200, "America/Santa_Isabel" },
@@ -1498,24 +1390,13 @@
{ "pyt", 0, -14400, "America/Asuncion" },
{ "pyt", 0, -10800, "America/Asuncion" },
{ "qmt", 0, -18840, "America/Guayaquil" },
- { "qyzst", 1, 25200, "Asia/Qyzylorda" },
- { "qyzt", 0, 21600, "Asia/Qyzylorda" },
- { "qyzt", 0, 18000, "Asia/Qyzylorda" },
{ "ret", 0, 14400, "Indian/Reunion" },
{ "rmt", 0, 5794, "Europe/Riga" },
{ "rmt", 0, 23080, "Asia/Rangoon" },
- { "rott", 0, -10800, "Antarctica/Rothera" },
- { "sakst", 1, 39600, "Asia/Sakhalin" },
- { "sakst", 1, 43200, "Asia/Sakhalin" },
- { "sakt", 0, 36000, "Asia/Sakhalin" },
- { "sakt", 0, 39600, "Asia/Sakhalin" },
- { "samst", 1, 21600, "Asia/Samarkand" },
- { "samst", 1, 14400, "Europe/Samara" },
- { "samst", 1, 18000, "Europe/Samara" },
- { "samt", 0, 18000, "Asia/Samarkand" },
- { "samt", 0, 14400, "Asia/Samarkand" },
- { "samt", 0, 10800, "Europe/Samara" },
- { "samt", 0, 14400, "Europe/Samara" },
+ { "rmt", 0, 23080, "Asia/Yangon" },
+ { "rmt", 0, 2996, "Europe/Rome" },
+ { "rmt", 0, 2996, "Europe/San_Marino" },
+ { "rmt", 0, 2996, "Europe/Vatican" },
{ "sast", 0, 7200, "Africa/Johannesburg" },
{ "sast", 1, 10800, "Africa/Johannesburg" },
{ "sast", 0, 5400, "Africa/Johannesburg" },
@@ -1531,11 +1412,9 @@
{ "sct", 0, 14400, "Indian/Mahe" },
{ "sdmt", 0, -16800, "America/Santo_Domingo" },
{ "sdt", 1, -36000, "Pacific/Apia" },
+ { "set", 0, 3614, "Europe/Stockholm" },
{ "sgt", 0, 28800, "Asia/Singapore" },
{ "sgt", 0, 27000, "Asia/Singapore" },
- { "shest", 1, 21600, "Asia/Aqtau" },
- { "shet", 0, 21600, "Asia/Aqtau" },
- { "shet", 0, 18000, "Asia/Aqtau" },
{ "sjmt", 0, -20173, "America/Costa_Rica" },
{ "smt", 0, -13884, "Atlantic/Stanley" },
{ "smt", 0, -16966, "America/Santiago" },
@@ -1543,53 +1422,24 @@
{ "smt", 0, 24925, "Asia/Kuala_Lumpur" },
{ "smt", 0, 24925, "Asia/Singapore" },
{ "smt", 0, 8160, "Europe/Simferopol" },
- { "sret", 0, 39600, "Asia/Srednekolymsk" },
{ "srt", 0, -10800, "America/Paramaribo" },
{ "srt", 0, -12600, "America/Paramaribo" },
{ "sst", 0, -39600, "Pacific/Samoa" },
{ "sst", 0, -39600, "Pacific/Apia" },
{ "sst", 0, -39600, "Pacific/Midway" },
{ "sst", 0, -39600, "Pacific/Pago_Pago" },
- { "stat", 0, 10800, "Europe/Volgograd" },
- { "stat", 0, 14400, "Europe/Volgograd" },
- { "svest", 1, 21600, "Asia/Yekaterinburg" },
- { "svest", 1, 18000, "Asia/Yekaterinburg" },
- { "svet", 0, 18000, "Asia/Yekaterinburg" },
- { "svet", 0, 14400, "Asia/Yekaterinburg" },
{ "swat", 0, 5400, "Africa/Windhoek" },
- { "syot", 0, 10800, "Antarctica/Syowa" },
{ "taht", 0, -36000, "Pacific/Tahiti" },
- { "tasst", 1, 25200, "Asia/Samarkand" },
- { "tasst", 1, 21600, "Asia/Tashkent" },
- { "tasst", 1, 25200, "Asia/Tashkent" },
- { "tast", 0, 21600, "Asia/Samarkand" },
- { "tast", 0, 18000, "Asia/Tashkent" },
- { "tast", 0, 21600, "Asia/Tashkent" },
- { "tbist", 1, 18000, "Asia/Tbilisi" },
- { "tbist", 1, 14400, "Asia/Tbilisi" },
- { "tbit", 0, 14400, "Asia/Tbilisi" },
- { "tbit", 0, 10800, "Asia/Tbilisi" },
{ "tbmt", 0, 10751, "Asia/Tbilisi" },
- { "tft", 0, 18000, "Indian/Kerguelen" },
- { "tjt", 0, 18000, "Asia/Dushanbe" },
{ "tkt", 0, -39600, "Pacific/Fakaofo" },
{ "tkt", 0, 46800, "Pacific/Fakaofo" },
{ "tlt", 0, 32400, "Asia/Dili" },
{ "tlt", 0, 28800, "Asia/Dili" },
{ "tmt", 0, 12344, "Asia/Tehran" },
{ "tmt", 0, 5940, "Europe/Tallinn" },
- { "tmt", 0, 14400, "Asia/Ashgabat" },
- { "tmt", 0, 14400, "Asia/Ashkhabad" },
- { "tmt", 0, 18000, "Asia/Ashgabat" },
- { "tmt", 0, 18000, "Asia/Ashkhabad" },
{ "tost", 1, 50400, "Pacific/Tongatapu" },
{ "tot", 0, 46800, "Pacific/Tongatapu" },
{ "tot", 0, 44400, "Pacific/Tongatapu" },
- { "trst", 1, 14400, "Europe/Istanbul" },
- { "trst", 1, 14400, "Asia/Istanbul" },
- { "trt", 0, 10800, "Europe/Istanbul" },
- { "trt", 0, 10800, "Asia/Istanbul" },
- { "tsat", 0, 10800, "Europe/Volgograd" },
{ "tvt", 0, 43200, "Pacific/Funafuti" },
{ "uct", 0, 0, "Etc/UCT" },
{ "ulast", 1, 32400, "Asia/Ulaanbaatar" },
@@ -1600,12 +1450,6 @@
{ "ulat", 0, 25200, "Asia/Ulan_Bator" },
{ "ulat", 0, 28800, "Asia/Choibalsan" },
{ "ulat", 0, 28800, "Asia/Ulan_Bator" },
- { "urast", 1, 21600, "Asia/Oral" },
- { "urast", 1, 18000, "Asia/Oral" },
- { "urat", 0, 21600, "Asia/Oral" },
- { "urat", 0, 14400, "Asia/Oral" },
- { "urat", 0, 18000, "Asia/Oral" },
- { "utc", 0, 0, "Antarctica/Troll" },
{ "utc", 0, 0, "Etc/Universal" },
{ "utc", 0, 0, "Etc/UTC" },
{ "utc", 0, 0, "Etc/Zulu" },
@@ -1616,27 +1460,8 @@
{ "uyst", 1, -7200, "America/Montevideo" },
{ "uyt", 0, -10800, "America/Montevideo" },
{ "uyt", 0, -12600, "America/Montevideo" },
- { "uzst", 1, 21600, "Asia/Samarkand" },
- { "uzst", 1, 21600, "Asia/Tashkent" },
- { "uzt", 0, 18000, "Asia/Samarkand" },
- { "uzt", 0, 18000, "Asia/Tashkent" },
{ "vet", 0, -16200, "America/Caracas" },
{ "vet", 0, -14400, "America/Caracas" },
- { "vlast", 1, 39600, "Asia/Vladivostok" },
- { "vlast", 1, 36000, "Asia/Vladivostok" },
- { "vlast", 1, 39600, "Asia/Khandyga" },
- { "vlat", 0, 36000, "Asia/Vladivostok" },
- { "vlat", 0, 32400, "Asia/Vladivostok" },
- { "vlat", 0, 39600, "Asia/Vladivostok" },
- { "vlat", 0, 36000, "Asia/Khandyga" },
- { "vlat", 0, 36000, "Asia/Ust-Nera" },
- { "vlat", 0, 39600, "Asia/Khandyga" },
- { "vlat", 0, 39600, "Asia/Ust-Nera" },
- { "volst", 1, 14400, "Europe/Volgograd" },
- { "volst", 1, 18000, "Europe/Volgograd" },
- { "volt", 0, 10800, "Europe/Volgograd" },
- { "volt", 0, 14400, "Europe/Volgograd" },
- { "vost", 0, 21600, "Antarctica/Vostok" },
{ "vust", 1, 43200, "Pacific/Efate" },
{ "vut", 0, 39600, "Pacific/Efate" },
{ "wakt", 0, 43200, "Pacific/Wake" },
@@ -1737,23 +1562,6 @@
{ "wsst", 0, 46800, "Pacific/Apia" },
{ "xjt", 0, 21600, "Asia/Kashgar" },
{ "xjt", 0, 21600, "Asia/Urumqi" },
- { "yakst", 1, 36000, "Asia/Yakutsk" },
- { "yakst", 1, 32400, "Asia/Yakutsk" },
- { "yakst", 1, 32400, "Asia/Chita" },
- { "yakst", 1, 32400, "Asia/Khandyga" },
- { "yakst", 1, 36000, "Asia/Chita" },
- { "yakst", 1, 36000, "Asia/Khandyga" },
- { "yakt", 0, 32400, "Asia/Yakutsk" },
- { "yakt", 0, 28800, "Asia/Yakutsk" },
- { "yakt", 0, 36000, "Asia/Yakutsk" },
- { "yakt", 0, 28800, "Asia/Chita" },
- { "yakt", 0, 28800, "Asia/Khandyga" },
- { "yakt", 0, 28800, "Asia/Ust-Nera" },
- { "yakt", 0, 32400, "Asia/Chita" },
- { "yakt", 0, 32400, "Asia/Khandyga" },
- { "yakt", 0, 32400, "Asia/Ust-Nera" },
- { "yakt", 0, 36000, "Asia/Chita" },
- { "yakt", 0, 36000, "Asia/Khandyga" },
{ "yddt", 1, -25200, "America/Dawson" },
{ "yddt", 1, -25200, "America/Whitehorse" },
{ "yddt", 1, -25200, "Canada/Yukon" },
@@ -1762,13 +1570,6 @@
{ "ydt", 1, -28800, "America/Whitehorse" },
{ "ydt", 1, -28800, "America/Yakutat" },
{ "ydt", 1, -28800, "Canada/Yukon" },
- { "yekst", 1, 21600, "Asia/Yekaterinburg" },
- { "yekt", 0, 18000, "Asia/Yekaterinburg" },
- { "yekt", 0, 21600, "Asia/Yekaterinburg" },
- { "yerst", 1, 18000, "Asia/Yerevan" },
- { "yerst", 1, 14400, "Asia/Yerevan" },
- { "yert", 0, 14400, "Asia/Yerevan" },
- { "yert", 0, 10800, "Asia/Yerevan" },
{ "ypt", 1, -28800, "America/Dawson" },
{ "ypt", 1, -28800, "America/Whitehorse" },
{ "ypt", 1, -28800, "America/Yakutat" },
@@ -1809,22 +1610,4 @@
{ "w", 0, -36000, NULL },
{ "x", 0, -39600, NULL },
{ "y", 0, -43200, NULL },
- { "zzz", 0, 0, "Antarctica/Davis" },
- { "zzz", 0, 0, "America/Cambridge_Bay" },
- { "zzz", 0, 0, "America/Inuvik" },
- { "zzz", 0, 0, "America/Iqaluit" },
- { "zzz", 0, 0, "America/Pangnirtung" },
- { "zzz", 0, 0, "America/Rankin_Inlet" },
- { "zzz", 0, 0, "America/Resolute" },
- { "zzz", 0, 0, "America/Yellowknife" },
- { "zzz", 0, 0, "Antarctica/Casey" },
- { "zzz", 0, 0, "Antarctica/DumontDUrville" },
- { "zzz", 0, 0, "Antarctica/Macquarie" },
- { "zzz", 0, 0, "Antarctica/Mawson" },
- { "zzz", 0, 0, "Antarctica/Palmer" },
- { "zzz", 0, 0, "Antarctica/Rothera" },
- { "zzz", 0, 0, "Antarctica/Syowa" },
- { "zzz", 0, 0, "Antarctica/Troll" },
- { "zzz", 0, 0, "Antarctica/Vostok" },
- { "zzz", 0, 0, "Indian/Kerguelen" },
{ "z", 0, 0, NULL },
diff --git a/ext/date/lib/tm2unixtime.c b/ext/date/lib/tm2unixtime.c
index 57e0cef1be..0d65006de4 100644
--- a/ext/date/lib/tm2unixtime.c
+++ b/ext/date/lib/tm2unixtime.c
@@ -32,6 +32,18 @@ static int month_tab[12] = { 0, 31, 59, 90, 120, 151, 181, 212, 24
static int days_in_month_leap[13] = { 31, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
static int days_in_month[13] = { 31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
+static void do_range_limit_fraction(double *fraction, timelib_sll *seconds)
+{
+ if (*fraction < 0) {
+ *fraction += 1;
+ *seconds -= 1;
+ }
+ if (*fraction > 1) {
+ *fraction -= 1;
+ *seconds += 1;
+ }
+}
+
static void do_range_limit(timelib_sll start, timelib_sll end, timelib_sll adj, timelib_sll *a, timelib_sll *b)
{
if (*a < start) {
@@ -192,6 +204,7 @@ void timelib_do_rel_normalize(timelib_time *base, timelib_rel_time *rt)
void timelib_do_normalize(timelib_time* time)
{
+ if (time->s != TIMELIB_UNSET) do_range_limit_fraction(&time->f, &time->s);
if (time->s != TIMELIB_UNSET) do_range_limit(0, 60, 60, &time->s, &time->i);
if (time->s != TIMELIB_UNSET) do_range_limit(0, 60, 60, &time->i, &time->h);
if (time->s != TIMELIB_UNSET) do_range_limit(0, 24, 24, &time->h, &time->d);
@@ -209,6 +222,8 @@ static void do_adjust_relative(timelib_time* time)
timelib_do_normalize(time);
if (time->have_relative) {
+ time->f += time->relative.f;
+
time->s += time->relative.s;
time->i += time->relative.i;
time->h += time->relative.h;
diff --git a/ext/date/lib/unixtime2tm.c b/ext/date/lib/unixtime2tm.c
index a9b71662ea..6a8627a986 100644
--- a/ext/date/lib/unixtime2tm.c
+++ b/ext/date/lib/unixtime2tm.c
@@ -294,3 +294,10 @@ int timelib_apply_localtime(timelib_time *t, unsigned int localtime)
}
return 0;
}
+
+#if HAVE_GETTIMEOFDAY
+void timelib_set_fraction_from_timeval(timelib_time *t, struct timeval tp)
+{
+ t->f = (double) tp.tv_usec / 1000000;
+}
+#endif