if (debug) log_d("D timerfc");
static time_t timerfc(char *s){	static const int daytab[2][12] = {		{0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 },		{0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 }	};	unsigned sec, min, hour, day, mon, year;	char month[3];	char c;	unsigned n;	char flag;	char state;	char isctime;	enum { D_START, D_END, D_MON, D_DAY, D_YEAR, D_HOUR, D_MIN, D_SEC };	if (debug)		log_d("D timerfc");	sec = 60;	min = 60;	hour = 24;	day = 32;	year = 1969;	isctime = 0;	month[0] = 0;	state = D_START;	n = 0;	flag = 1;	do {		c = *s++;		switch (state) {		case D_START:			if (c == ' ') {				state = D_MON;				isctime = 1;			} else if (c == ',') state = D_DAY;			break;		case D_MON:			if (isalpha(c)) {				if (n < 3) month[n++] = c;			} else {				if (n < 3) return -1;				n = 0;				state = isctime ? D_DAY : D_YEAR;			}			break;		case D_DAY:			if (c == ' ' && flag)				;			else if (isdigit(c)) {				flag = 0;				n = 10 * n + (c - '0');			} else {				day = n;				n = 0;				state = isctime ? D_HOUR : D_MON;			}			break;		case D_YEAR:			if (isdigit(c))				n = 10 * n + (c - '0');			else {				year = n;				n = 0;				state = isctime ? D_END : D_HOUR;			}			break;		case D_HOUR:			if (isdigit(c))				n = 10 * n + (c - '0');			else {				hour = n;				n = 0;				state = D_MIN;			}			break;		case D_MIN:			if (isdigit(c))				n = 10 * n + (c - '0');			else {				min = n;				n = 0;				state = D_SEC;			}			break;		case D_SEC:			if (isdigit(c))				n = 10 * n + (c - '0');			else {				sec = n;				n = 0;				state = isctime ? D_YEAR : D_END;			}			break;		}	} while (state != D_END && c);	switch (month[0]) {	case 'A':		mon = (month[1] == 'p') ? 4 : 8;		break;	case 'D':		mon = 12;		break;	case 'F':		mon = 2;		break;	case 'J':		mon = (month[1] == 'a') ? 1 : ((month[2] == 'l') ? 7 : 6);		break;	case 'M':		mon = (month[2] == 'r') ? 3 : 5;		break;	case 'N':		mon = 11;		break;	case 'O':		mon = 10;		break;	case 'S':		mon = 9;		break;	default:		return -1;	}	if (year <= 100)		year += (year < 70) ? 2000 : 1900;	--mon;	--day;	if (sec >= 60 || min >= 60 || hour >= 60 || day >= 31 || year < 1970)		return -1;	return sec + 60L * (min + 60L * (hour + 24L * (		day + daytab[year % 4 == 0][mon] + 365L * (year - 1970L) + ((year - 1969L) >> 2))));}