예제 #1
0
파일: zoneinfo.c 프로젝트: 00001/plan9port
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
파일: zoneinfo.c 프로젝트: kisom/site-tools
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;
	}
}