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; } }
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; } }