diff options
Diffstat (limited to 'ext/date/lib')
-rw-r--r-- | ext/date/lib/interval.c | 3 | ||||
-rw-r--r-- | ext/date/lib/parse_date.c | 1204 | ||||
-rw-r--r-- | ext/date/lib/parse_date.re | 41 | ||||
-rw-r--r-- | ext/date/lib/timelib.c | 5 | ||||
-rw-r--r-- | ext/date/lib/timelib.h | 5 | ||||
-rw-r--r-- | ext/date/lib/timelib.m4 | 2 | ||||
-rw-r--r-- | ext/date/lib/timelib_structs.h | 3 | ||||
-rw-r--r-- | ext/date/lib/timezonemap.h | 293 | ||||
-rw-r--r-- | ext/date/lib/tm2unixtime.c | 15 | ||||
-rw-r--r-- | ext/date/lib/unixtime2tm.c | 7 |
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 |