* localtime.cc: Implement setting __tzrule's offset member using
newlib's __gettzinfo () interface. (__tzrule): Remove. (timezone): Define as long according to POSIX.
This commit is contained in:
parent
ee8d935cdd
commit
d0578adf88
|
@ -1,3 +1,10 @@
|
||||||
|
2005-02-23 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* localtime.cc: Implement setting __tzrule's offset member using
|
||||||
|
newlib's __gettzinfo () interface.
|
||||||
|
(__tzrule): Remove.
|
||||||
|
(timezone): Define as long according to POSIX.
|
||||||
|
|
||||||
2005-02-23 Eric Blake <ebb9@byu.net>
|
2005-02-23 Eric Blake <ebb9@byu.net>
|
||||||
|
|
||||||
* devices.in (parsedisk): Fix typo.
|
* devices.in (parsedisk): Fix typo.
|
||||||
|
|
|
@ -629,28 +629,14 @@ static struct tm tm;
|
||||||
#undef _daylight
|
#undef _daylight
|
||||||
|
|
||||||
#ifdef USG_COMPAT
|
#ifdef USG_COMPAT
|
||||||
time_t timezone;
|
long timezone; /* was time_t but POSIX requires long. */
|
||||||
int daylight;
|
int daylight;
|
||||||
#endif /* defined USG_COMPAT */
|
#endif /* defined USG_COMPAT */
|
||||||
|
|
||||||
#ifdef ALTZONE
|
#ifdef ALTZONE
|
||||||
time_t altzone;
|
time_t altzone;
|
||||||
#endif /* defined 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
|
static long
|
||||||
detzcode(const char *codep)
|
detzcode(const char *codep)
|
||||||
{
|
{
|
||||||
|
@ -1249,8 +1235,10 @@ tzparse(const char *name, struct state *sp, const int lastditch)
|
||||||
janfirst += year_lengths[isleap(year)] *
|
janfirst += year_lengths[isleap(year)] *
|
||||||
SECSPERDAY;
|
SECSPERDAY;
|
||||||
}
|
}
|
||||||
__tzrule[0].offset = -sp->ttis[1].tt_gmtoff;
|
__gettzinfo ()->__tzrule[0].offset
|
||||||
__tzrule[1].offset = -sp->ttis[0].tt_gmtoff;
|
= -sp->ttis[1].tt_gmtoff;
|
||||||
|
__gettzinfo ()->__tzrule[1].offset
|
||||||
|
= -sp->ttis[0].tt_gmtoff;
|
||||||
} else {
|
} else {
|
||||||
register long theirstdoffset;
|
register long theirstdoffset;
|
||||||
register long theirdstoffset;
|
register long theirdstoffset;
|
||||||
|
@ -1337,8 +1325,10 @@ tzparse(const char *name, struct state *sp, const int lastditch)
|
||||||
sp->ttis[1].tt_isdst = true;
|
sp->ttis[1].tt_isdst = true;
|
||||||
sp->ttis[1].tt_abbrind = stdlen + 1;
|
sp->ttis[1].tt_abbrind = stdlen + 1;
|
||||||
sp->typecnt = 2;
|
sp->typecnt = 2;
|
||||||
__tzrule[0].offset = -sp->ttis[0].tt_gmtoff;
|
__gettzinfo ()->__tzrule[0].offset
|
||||||
__tzrule[1].offset = -sp->ttis[1].tt_gmtoff;
|
= -sp->ttis[0].tt_gmtoff;
|
||||||
|
__gettzinfo ()->__tzrule[1].offset
|
||||||
|
= -sp->ttis[1].tt_gmtoff;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dstlen = 0;
|
dstlen = 0;
|
||||||
|
@ -1347,8 +1337,8 @@ tzparse(const char *name, struct state *sp, const int lastditch)
|
||||||
sp->ttis[0].tt_gmtoff = -stdoffset;
|
sp->ttis[0].tt_gmtoff = -stdoffset;
|
||||||
sp->ttis[0].tt_isdst = 0;
|
sp->ttis[0].tt_isdst = 0;
|
||||||
sp->ttis[0].tt_abbrind = 0;
|
sp->ttis[0].tt_abbrind = 0;
|
||||||
__tzrule[0].offset = -sp->ttis[0].tt_gmtoff;
|
__gettzinfo ()->__tzrule[0].offset = -sp->ttis[0].tt_gmtoff;
|
||||||
__tzrule[1].offset = -sp->ttis[0].tt_gmtoff;
|
__gettzinfo ()->__tzrule[1].offset = -sp->ttis[0].tt_gmtoff;
|
||||||
}
|
}
|
||||||
sp->charcnt = stdlen + 1;
|
sp->charcnt = stdlen + 1;
|
||||||
if (dstlen != 0)
|
if (dstlen != 0)
|
||||||
|
|
Loading…
Reference in New Issue