示例#1
0
static
void
readtimezone(void)
{
	char *tmp;

	z.timecnt = 0;
	if(zonefile==nil) {
		if ((tmp=getenv("timezone"))!=nil) {
			tzdata = readtzfile(tmp);
			free(tmp);
			goto havedata;
		}
		zonefile = "/etc/localtime";
	}
	tzdata = readtzfile(zonefile);
	if (tzdata==nil)
		return;

havedata:
	if (strncmp("TZif", (char*)tzdata, 4)!=0)
		goto errfree;

	if (parsehead()==-1) {
	errfree:
		free(tzdata);
		tzdata = nil;
		z.timecnt = 0;
		return;
	}
}
示例#2
0
static
void
readtimezone(void)
{
	char *tmp;

	z.timecnt = 0;
	switch (zonefile==nil) {
	default:
		if ((tmp=getenv("timezone"))!=nil) {
			tzdata = readtzfile(tmp);
			free(tmp);
			break;
		}
		zonefile = "/etc/localtime";
		/* fall through */
	case 0:
		tzdata = readtzfile(zonefile);
	}
	if (tzdata==nil)
		return;

	if (strncmp("TZif", (char*)tzdata, 4)!=0)
		goto errfree;

	if (parsehead()==-1) {
	errfree:
		free(tzdata);
		tzdata = nil;
		z.timecnt = 0;
		return;
	}
}