error("Zone continuation line end time is not after end time of previous line");
error("Zone continuation line end time is not \ after end time of previous line");
inzsub(fields, nfields, iscont)register char ** const	fields;const int		nfields;const int		iscont;{	register char *		cp;	static struct zone	z;	register int		i_gmtoff, i_rule, i_format;	register int		i_untilyear, i_untilmonth;	register int		i_untilday, i_untiltime;	register int		hasuntil;	if (iscont) {		i_gmtoff = ZFC_GMTOFF;		i_rule = ZFC_RULE;		i_format = ZFC_FORMAT;		i_untilyear = ZFC_TILYEAR;		i_untilmonth = ZFC_TILMONTH;		i_untilday = ZFC_TILDAY;		i_untiltime = ZFC_TILTIME;		z.z_name = NULL;	} else {		i_gmtoff = ZF_GMTOFF;		i_rule = ZF_RULE;		i_format = ZF_FORMAT;		i_untilyear = ZF_TILYEAR;		i_untilmonth = ZF_TILMONTH;		i_untilday = ZF_TILDAY;		i_untiltime = ZF_TILTIME;		z.z_name = ecpyalloc(fields[ZF_NAME]);	}	z.z_filename = filename;	z.z_linenum = linenum;	z.z_gmtoff = gethms(fields[i_gmtoff], "invalid GMT offset", TRUE);	if ((cp = strchr(fields[i_format], '%')) != 0) {		if (*++cp != 's' || strchr(cp, '%') != 0) {			error("invalid abbreviation format");			return FALSE;		}	}	z.z_rule = ecpyalloc(fields[i_rule]);	z.z_format = ecpyalloc(fields[i_format]);	hasuntil = nfields > i_untilyear;	if (hasuntil) {		z.z_untilrule.r_filename = filename;		z.z_untilrule.r_linenum = linenum;		rulesub(&z.z_untilrule,			fields[i_untilyear],			"only",			"",			(nfields > i_untilmonth) ?			fields[i_untilmonth] : "Jan",			(nfields > i_untilday) ? fields[i_untilday] : "1",			(nfields > i_untiltime) ? fields[i_untiltime] : "0");		z.z_untiltime = rpytime(&z.z_untilrule,			z.z_untilrule.r_loyear);		if (iscont && nzones > 0 &&			z.z_untiltime > min_time &&			z.z_untiltime < max_time &&			zones[nzones - 1].z_untiltime > min_time &&			zones[nzones - 1].z_untiltime < max_time &&			zones[nzones - 1].z_untiltime >= z.z_untiltime) {error("Zone continuation line end time is not after end time of previous line");				return FALSE;		}	}	zones = (struct zone *) (void *) erealloc((char *) zones,		(int) ((nzones + 1) * sizeof *zones));	zones[nzones++] = z;	/*	** If there was an UNTIL field on this line,	** there's more information about the zone on the next line.	*/	return hasuntil;}