summaryrefslogtreecommitdiffstats
path: root/newlib/libc/time
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2011-06-14 07:50:40 +0000
committerCorinna Vinschen <corinna@vinschen.de>2011-06-14 07:50:40 +0000
commit9bc99decb73926248915e1ae99ea694263f2c41d (patch)
tree3d8c6a3b74bcca1606e69426fc8640713c92e0d3 /newlib/libc/time
parent4226571d7af401f07fea4797b93c2c888f5e9880 (diff)
downloadcygnal-9bc99decb73926248915e1ae99ea694263f2c41d.tar.gz
cygnal-9bc99decb73926248915e1ae99ea694263f2c41d.tar.bz2
cygnal-9bc99decb73926248915e1ae99ea694263f2c41d.zip
* libc/time/tzset_r.c (tzset_r): Correct behavior for changing from
non-GMT to GMT, when un-setting TZ. Set _timezone and _daylight even if no DST is given in TZ.
Diffstat (limited to 'newlib/libc/time')
-rw-r--r--newlib/libc/time/tzset_r.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/newlib/libc/time/tzset_r.c b/newlib/libc/time/tzset_r.c
index d8f5c667e..5a5a9599b 100644
--- a/newlib/libc/time/tzset_r.c
+++ b/newlib/libc/time/tzset_r.c
@@ -28,6 +28,8 @@ _DEFUN (_tzset_r, (reent_ptr),
_daylight = 0;
_tzname[0] = "GMT";
_tzname[1] = "GMT";
+ free(prev_tzenv);
+ prev_tzenv = NULL;
TZ_UNLOCK;
return;
}
@@ -80,8 +82,10 @@ _DEFUN (_tzset_r, (reent_ptr),
tzenv += n;
if (sscanf (tzenv, "%10[^0-9,+-]%n", __tzname_dst, &n) <= 0)
- {
+ { /* No dst */
_tzname[1] = _tzname[0];
+ _timezone = tz->__tzrule[0].offset;
+ _daylight = 0;
TZ_UNLOCK;
return;
}