for (i = 0; isdigit(*cp); )
i = i*10 + (*cp++ - '0');
tw.tw_year = i;
+#ifdef FIX_NON_Y2K_COMPLIANT_MUA_DATES
+ /* handle broken mua's that don't add
+ 1900, or just use the last two
+ digits. Assume no email before
+ 1972. */
+ if (tw.tw_year < 72)
+ tw.tw_year += 100;
+ if (tw.tw_year < 1900)
+ tw.tw_year += 1900;
+#endif /* FIX_NON_Y2K_COMPLIANT_MUA_DATES */
}
break;
case 6:
-# line 261 "./dtimep.lex"
+# line 271 "./dtimep.lex"
{
tw.tw_mday = CVT1OR2;
while ( ! isalpha( *cp++ ) )
break;
case 7:
-# line 267 "./dtimep.lex"
+# line 277 "./dtimep.lex"
{
cp++;
SETMONTH;
break;
case 8:
-# line 276 "./dtimep.lex"
+# line 286 "./dtimep.lex"
{
cp++;
SETMONTH;
break;
case 9:
-# line 282 "./dtimep.lex"
+# line 292 "./dtimep.lex"
{ /* hack: ctime w/o TZ */
tw.tw_hour = CVT1OR2; cp++;
tw.tw_min = CVT1OR2; cp++;
break;
case 10:
-# line 289 "./dtimep.lex"
+# line 299 "./dtimep.lex"
{
tw.tw_hour = CVT1OR2; cp++;
tw.tw_min = CVT1OR2; cp++;
break;
case 11:
-# line 295 "./dtimep.lex"
+# line 305 "./dtimep.lex"
{
tw.tw_hour = CVT1OR2; cp++;
tw.tw_min = CVT1OR2;
break;
case 12:
-# line 300 "./dtimep.lex"
+# line 310 "./dtimep.lex"
{
tw.tw_hour = CVT1OR2; cp++;
if (tw.tw_hour == 12)
break;
case 13:
-# line 307 "./dtimep.lex"
+# line 317 "./dtimep.lex"
{
tw.tw_hour = CVT1OR2; cp++;
if (tw.tw_hour == 12)
break;
case 14:
-# line 315 "./dtimep.lex"
+# line 325 "./dtimep.lex"
{
tw.tw_hour = CVT1OR2; cp++;
if (tw.tw_hour != 12)
break;
case 15:
-# line 322 "./dtimep.lex"
+# line 332 "./dtimep.lex"
{
tw.tw_hour = CVT1OR2; cp++;
if (tw.tw_hour != 12)
break;
case 16:
-# line 330 "./dtimep.lex"
+# line 340 "./dtimep.lex"
{
tw.tw_hour = CVT2; cp+=2;
tw.tw_min = CVT2; cp+=2;
break;
case 17:
-# line 336 "./dtimep.lex"
+# line 346 "./dtimep.lex"
{
/*
* Luckly, 4 digit times in the range
break;
case 18:
-# line 344 "./dtimep.lex"
+# line 354 "./dtimep.lex"
{
if (tw.tw_hour || tw.tw_min
|| tw.tw_sec) {
break;
case 19:
-# line 355 "./dtimep.lex"
+# line 365 "./dtimep.lex"
ZONE(0 * 60);
break;
case 20:
-# line 356 "./dtimep.lex"
+# line 366 "./dtimep.lex"
ZONE(0 * 60);
break;
case 21:
-# line 357 "./dtimep.lex"
+# line 367 "./dtimep.lex"
ZONE(2 * 60);
break;
case 22:
-# line 358 "./dtimep.lex"
+# line 368 "./dtimep.lex"
ZONED(2 * 60);
break;
case 23:
-# line 359 "./dtimep.lex"
+# line 369 "./dtimep.lex"
ZONE(-5 * 60);
break;
case 24:
-# line 360 "./dtimep.lex"
+# line 370 "./dtimep.lex"
ZONED(-5 * 60);
break;
case 25:
-# line 361 "./dtimep.lex"
+# line 371 "./dtimep.lex"
ZONE(-6 * 60);
break;
case 26:
-# line 362 "./dtimep.lex"
+# line 372 "./dtimep.lex"
ZONED(-6 * 60);
break;
case 27:
-# line 363 "./dtimep.lex"
+# line 373 "./dtimep.lex"
ZONE(-7 * 60);
break;
case 28:
-# line 364 "./dtimep.lex"
+# line 374 "./dtimep.lex"
ZONED(-7 * 60);
break;
case 29:
-# line 365 "./dtimep.lex"
+# line 375 "./dtimep.lex"
ZONE(-8 * 60);
break;
case 30:
-# line 366 "./dtimep.lex"
+# line 376 "./dtimep.lex"
ZONED(-8 * 60);
break;
case 31:
-# line 367 "./dtimep.lex"
+# line 377 "./dtimep.lex"
ZONE(-(3 * 60 + 30));
break;
case 32:
-# line 368 "./dtimep.lex"
+# line 378 "./dtimep.lex"
ZONE(-4 * 60);
break;
case 33:
-# line 369 "./dtimep.lex"
+# line 379 "./dtimep.lex"
ZONED(-4 * 60);
break;
case 34:
-# line 370 "./dtimep.lex"
+# line 380 "./dtimep.lex"
ZONE(-9 * 60);
break;
case 35:
-# line 371 "./dtimep.lex"
+# line 381 "./dtimep.lex"
ZONED(-9 * 60);
break;
case 36:
-# line 372 "./dtimep.lex"
+# line 382 "./dtimep.lex"
ZONE(-10 * 60);
break;
case 37:
-# line 373 "./dtimep.lex"
+# line 383 "./dtimep.lex"
ZONED(-10 * 60);
break;
case 38:
-# line 374 "./dtimep.lex"
+# line 384 "./dtimep.lex"
ZONED(-1 * 60);
break;
case 39:
-# line 375 "./dtimep.lex"
+# line 385 "./dtimep.lex"
{
tw.tw_zone = 60 * (('a'-1) - LC(*cp));
EXPZONE;
break;
case 40:
-# line 379 "./dtimep.lex"
+# line 389 "./dtimep.lex"
{
tw.tw_zone = 60 * ('a' - LC(*cp));
EXPZONE;
break;
case 41:
-# line 383 "./dtimep.lex"
+# line 393 "./dtimep.lex"
{
tw.tw_zone = 60 * (LC(*cp) - 'm');
EXPZONE;
break;
case 42:
-# line 387 "./dtimep.lex"
+# line 397 "./dtimep.lex"
{
cp++;
tw.tw_zone = ((cp[0] * 10 + cp[1])
break;
case 43:
-# line 399 "./dtimep.lex"
+# line 409 "./dtimep.lex"
{
cp++;
tw.tw_zone = (('0' * 10 + '0')
break;
case 44:
-# line 411 "./dtimep.lex"
+# line 421 "./dtimep.lex"
{
SKIPD;
tw.tw_year = CVT4; cp+=4;
break;
case 45:
-# line 415 "./dtimep.lex"
+# line 425 "./dtimep.lex"
case 46:
-# line 416 "./dtimep.lex"
+# line 426 "./dtimep.lex"
;
break;
default: return(0);
0,
46,
-0,
+0,
45,
-0,
+0,
46,
-0,
+0,
39,
-0,
+0,
39,
-0,
+0,
39,
-0,
+0,
39,
-0,
+0,
39,
-0,
+0,
39,
-0,
+0,
39,
-0,
+0,
39,
-0,
+0,
39,
-0,
+0,
40,
-0,
+0,
40,
-0,
+0,
41,
-0,
+0,
41,
-0,
+0,
41,
-0,
+0,
41,
-0,
+0,
41,
-0,
+0,
41,
-0,
+0,
41,
-0,
+0,
41,
-0,
+0,
41,
-0,
+0,
19,
-0,
+0,
4,
-0,
+0,
4,
-0,
+0,
11,
-0,
+0,
1,
-0,
+0,
1,
-0,
+0,
1,
-0,
+0,
1,
-0,
+0,
1,
-0,
+0,
1,
-0,
+0,
1,
-0,
+0,
33,
-0,
+0,
32,
-0,
+0,
38,
-0,
+0,
26,
-0,
+0,
25,
-0,
+0,
24,
-0,
+0,
23,
-0,
+0,
20,
-0,
+0,
37,
-0,
+0,
36,
-0,
+0,
22,
-0,
+0,
21,
-0,
+0,
28,
-0,
+0,
27,
-0,
+0,
31,
-0,
+0,
30,
-0,
+0,
29,
-0,
+0,
35,
-0,
+0,
34,
-0,
+0,
4,
-0,
+0,
4,
-0,
+0,
4,
-0,
+0,
18,
-0,
+0,
11,
-0,
+0,
11,
-0,
+0,
6,
-0,
+0,
6,
-0,
+0,
6,
-0,
+0,
6,
-0,
+0,
6,
-0,
+0,
6,
-0,
+0,
6,
-0,
+0,
6,
-0,
+0,
6,
-0,
+0,
6,
-0,
+0,
6,
-0,
+0,
6,
-0,
+0,
17,
18,
-0,
+0,
1,
-0,
+0,
2,
-0,
+0,
18,
-0,
+0,
10,
-0,
+0,
12,
-0,
+0,
14,
-0,
+0,
6,
-0,
+0,
17,
18,
-0,
+0,
8,
-0,
+0,
44,
-0,
+0,
42,
-0,
+0,
43,
-0,
+0,
2,
-0,
+0,
3,
-0,
+0,
16,
-0,
+0,
10,
-0,
+0,
10,
-0,
+0,
5,
-0,
+0,
8,
-0,
+0,
8,
-0,
+0,
1,
-0,
+0,
3,
-0,
+0,
3,
-0,
+0,
13,
-0,
+0,
15,
-0,
+0,
6,
-0,
+0,
5,
-0,
+0,
5,
-0,
+0,
5,
-0,
+0,
5,
-0,
+0,
7,
-0,
+0,
9,
-0,
+0,
7,
-0,
+0,
7,
-0,
+0,
0};
# define YYTYPE int
struct yywork { YYTYPE verify, advance; } yycrank[] = {
/* The copyright notice above does not evidence any */
/* actual or intended publication of such source code. */
-#pragma ident "@(#)ncform 6.8 95/02/11 SMI"
+#pragma ident "@(#)ncform 6.11 97/01/06 SMI"