6static stralloc
tokens = {0};
20 for (pos =
tokens.len; pos > 0; --pos)
23 if ((
tokens.s[pos - 2] ==
';') || (
tokens.s[pos - 2] ==
','))
34 pos += str_len(x) + 1;
37 if (state == 5) state = 6;
38 if (state == 7) state = 8;
43 flagnumeric = !x[scan_long(x,&number)];
46 if (!flagnumeric)
return 1;
50 if (!case_diffs(x,
"Jan")) { ct.
date.
month = 1;
break; }
51 if (!case_diffs(x,
"Feb")) { ct.
date.
month = 2;
break; }
52 if (!case_diffs(x,
"Mar")) { ct.
date.
month = 3;
break; }
53 if (!case_diffs(x,
"Apr")) { ct.
date.
month = 4;
break; }
54 if (!case_diffs(x,
"May")) { ct.
date.
month = 5;
break; }
55 if (!case_diffs(x,
"Jun")) { ct.
date.
month = 6;
break; }
56 if (!case_diffs(x,
"Jul")) { ct.
date.
month = 7;
break; }
57 if (!case_diffs(x,
"Aug")) { ct.
date.
month = 8;
break; }
58 if (!case_diffs(x,
"Sep")) { ct.
date.
month = 9;
break; }
59 if (!case_diffs(x,
"Oct")) { ct.
date.
month = 10;
break; }
60 if (!case_diffs(x,
"Nov")) { ct.
date.
month = 11;
break; }
61 if (!case_diffs(x,
"Dec")) { ct.
date.
month = 12;
break; }
64 if (!flagnumeric)
return 1;
65 if (number < 50) number += 2000;
66 if (number < 999) number += 1900;
70 if (!flagnumeric)
return 1;
76 if (!flagnumeric)
return 1;
80 if (!flagnumeric)
return 1;
90 ct.
offset = (number / 100) * 60 + (number % 100);
92 ct.
offset = -(((-number) / 100) * 60 + ((-number) % 100));
93 if (!case_diffs(x,
"-0000")) known = 1;
96 if (!case_diffs(x,
"UT")) { ct.
offset = 0;
break; }
97 if (!case_diffs(x,
"GMT")) { ct.
offset = 0;
break; }
100 if (!case_diffs(x,
"BST")) { ct.
offset = 60;
break; }
101 if (!case_diffs(x,
"CDT")) { ct.
offset = -300;
break; }
102 if (!case_diffs(x,
"CET")) { ct.
offset = 60;
break; }
103 if (!case_diffs(x,
"CST")) { ct.
offset = -360;
break; }
104 if (!case_diffs(x,
"EDT")) { ct.
offset = -240;
break; }
105 if (!case_diffs(x,
"EET")) { ct.
offset = 120;
break; }
106 if (!case_diffs(x,
"EST")) { ct.
offset = -300;
break; }
107 if (!case_diffs(x,
"HKT")) { ct.
offset = 480;
break; }
108 if (!case_diffs(x,
"IST")) { ct.
offset = 120;
break; }
109 if (!case_diffs(x,
"JST")) { ct.
offset = 540;
break; }
110 if (!case_diffs(x,
"MDT")) { ct.
offset = -360;
break; }
111 if (!case_diffs(x,
"MET")) { ct.
offset = 60;
break; }
112 if (!case_diffs(x,
"METDST")) { ct.
offset = 120;
break; }
113 if (!case_diffs(x,
"MST")) { ct.
offset = -420;
break; }
114 if (!case_diffs(x,
"PDT")) { ct.
offset = -420;
break; }
115 if (!case_diffs(x,
"PST")) { ct.
offset = -480;
break; }
118 if (!case_diffs(x,
"DST")) ct.
offset += 60;
121 if (state < 10) ++state;
int mess822_when(mess822_time *out, char *in)
int mess822_token(stralloc *, char *)