diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2005-02-19 19:58:38 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2005-02-19 19:58:38 +0000 |
commit | 2d7606a594bc02f4213fb14d780702d9be270e7f (patch) | |
tree | 5769b5c9697bdcf58b82d6070ffd46c98e2a1577 /winsup/cygwin/localtime.cc | |
parent | 2cd6f872f35c72e95595173653beb1fa40e03ecc (diff) | |
download | cygnal-2d7606a594bc02f4213fb14d780702d9be270e7f.tar.gz cygnal-2d7606a594bc02f4213fb14d780702d9be270e7f.tar.bz2 cygnal-2d7606a594bc02f4213fb14d780702d9be270e7f.zip |
* localtime.cc: Temporary implementation of setting __tzrule's offset
member to be used by strftime.
(__tzrule): New global variable.
(tzparse): Set __tzrule's offset member appropriately.
Diffstat (limited to 'winsup/cygwin/localtime.cc')
-rw-r--r-- | winsup/cygwin/localtime.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/winsup/cygwin/localtime.cc b/winsup/cygwin/localtime.cc index 548f9d2e1..c956b0405 100644 --- a/winsup/cygwin/localtime.cc +++ b/winsup/cygwin/localtime.cc @@ -637,6 +637,20 @@ int daylight; 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) { @@ -1235,6 +1249,8 @@ tzparse(const char *name, struct state *sp, const int lastditch) janfirst += year_lengths[isleap(year)] * SECSPERDAY; } + __tzrule[0].offset = -sp->ttis[1].tt_gmtoff; + __tzrule[1].offset = -sp->ttis[0].tt_gmtoff; } else { register long theirstdoffset; register long theirdstoffset; @@ -1321,6 +1337,8 @@ tzparse(const char *name, struct state *sp, const int lastditch) 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; } } else { dstlen = 0; @@ -1329,6 +1347,8 @@ tzparse(const char *name, struct state *sp, const int lastditch) 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; } sp->charcnt = stdlen + 1; if (dstlen != 0) |