#undef _daylight
#ifdef USG_COMPAT
-time_t timezone;
-int daylight;
+long timezone; /* was time_t but POSIX requires long. */
+int daylight;
#endif /* defined USG_COMPAT */
#ifdef ALTZONE
-time_t altzone;
+time_t altzone;
#endif /* defined ALTZONE */
-/* Must be equivalent to definiton in newlib/libc/time/local.h */
-typedef struct __tzrule_struct
-{
- char ch;
- int m;
- int n;
- int d;
- int s;
- time_t change;
- int offset;
-} __tzrule_type;
-__tzrule_type __tzrule[2] = { {'J', 0, 0, 0, 0, (time_t)0, 0 },
- {'J', 0, 0, 0, 0, (time_t)0, 0 } };
-
static long
detzcode(const char *codep)
{
janfirst += year_lengths[isleap(year)] *
SECSPERDAY;
}
- __tzrule[0].offset = -sp->ttis[1].tt_gmtoff;
- __tzrule[1].offset = -sp->ttis[0].tt_gmtoff;
+ __gettzinfo ()->__tzrule[0].offset
+ = -sp->ttis[1].tt_gmtoff;
+ __gettzinfo ()->__tzrule[1].offset
+ = -sp->ttis[0].tt_gmtoff;
} else {
register long theirstdoffset;
register long theirdstoffset;
sp->ttis[1].tt_isdst = true;
sp->ttis[1].tt_abbrind = stdlen + 1;
sp->typecnt = 2;
- __tzrule[0].offset = -sp->ttis[0].tt_gmtoff;
- __tzrule[1].offset = -sp->ttis[1].tt_gmtoff;
+ __gettzinfo ()->__tzrule[0].offset
+ = -sp->ttis[0].tt_gmtoff;
+ __gettzinfo ()->__tzrule[1].offset
+ = -sp->ttis[1].tt_gmtoff;
}
} else {
dstlen = 0;
sp->ttis[0].tt_gmtoff = -stdoffset;
sp->ttis[0].tt_isdst = 0;
sp->ttis[0].tt_abbrind = 0;
- __tzrule[0].offset = -sp->ttis[0].tt_gmtoff;
- __tzrule[1].offset = -sp->ttis[0].tt_gmtoff;
+ __gettzinfo ()->__tzrule[0].offset = -sp->ttis[0].tt_gmtoff;
+ __gettzinfo ()->__tzrule[1].offset = -sp->ttis[0].tt_gmtoff;
}
sp->charcnt = stdlen + 1;
if (dstlen != 0)