summaryrefslogtreecommitdiff
path: root/time/tzset.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-05-14 19:14:48 +0000
committerUlrich Drepper <drepper@redhat.com>1998-05-14 19:14:48 +0000
commitff152e3fc8c7d38e08d9f9d70eb6109c878e1372 (patch)
tree7fc3fb83b20673816f3f2082ac79558028f02b25 /time/tzset.c
parent847a35a07b6412a24f8978cf2a7fafc4e5c4a471 (diff)
downloadglibc-ff152e3fc8c7d38e08d9f9d70eb6109c878e1372.tar.gz
Update.
1998-05-14 13:25 Ulrich Drepper <drepper@cygnus.com> * inet/netinet/in.h: Add defines for multicast. Reported by Jeremy Hall <jhall@UU.NET>. * stdlib/stdlib.h: Add prototypes for __setenv and __unsetenv. * sysdeps/generic/putenv.c: Use __setenv and __unsetenv, not setenv and unsetenv. Optimize _LIBC case. * sysdeps/generic/setenv.c: Prevent unnecessary memory leaks. Define functions with leading __. * time/tzfile.c: Correct handling of global variables daylight, timezone, and tzname. * time/tzset.c: Likewise. * timezone/Makefile (tests): Add tst-timezone. * timezone/tst-timezone.c: New file. 1998-05-14 10:35 Ulrich Drepper <drepper@cygnus.com> * timezone/asia: Update from tzdata1998d. * timezone/australasia: Likewise. * timezone/europe: Likewise.
Diffstat (limited to 'time/tzset.c')
-rw-r--r--time/tzset.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/time/tzset.c b/time/tzset.c
index e766796513..e42be39db8 100644
--- a/time/tzset.c
+++ b/time/tzset.c
@@ -333,6 +333,7 @@ tzset_internal (always)
{
/* There is no DST. */
tz_rules[1].name = tz_rules[0].name;
+ tz_rules[1].offset = tz_rules[0].offset;
free (tzbuf);
return;
}
@@ -547,8 +548,8 @@ tz_compute (timer, tm)
! compute_change (&tz_rules[1], 1900 + tm->tm_year))
return 0;
- __daylight = timer >= tz_rules[0].change && timer < tz_rules[1].change;
- __timezone = -tz_rules[__daylight].offset;
+ __daylight = tz_rules[0].offset != tz_rules[1].offset;
+ __timezone = -tz_rules[0].offset;
__tzname[0] = (char *) tz_rules[0].name;
__tzname[1] = (char *) tz_rules[1].name;
@@ -626,9 +627,10 @@ __tz_convert (const time_t *timer, int use_localtime, struct tm *tp)
{
if (use_localtime)
{
- tp->tm_isdst = __daylight;
- tp->tm_zone = __tzname[__daylight];
- tp->tm_gmtoff = -__timezone;
+ tp->tm_isdst = (*timer >= tz_rules[0].change
+ && *timer < tz_rules[1].change);
+ tp->tm_zone = __tzname[tp->tm_isdst];
+ tp->tm_gmtoff = tz_rules[tp->tm_isdst].offset;
}
else
{