Update prototype of __tzfile_compute.
authordrepper <drepper>
Wed, 20 May 1998 10:49:25 +0000 (10:49 +0000)
committerdrepper <drepper>
Wed, 20 May 1998 10:49:25 +0000 (10:49 +0000)
(__tz_convert): Pass tp to __tzfile_compute.  Don't set tm_isdst,
tm_zone and tm_offset here if __use_tzfile.

time/tzset.c

index 251967e..4b8fa41 100644 (file)
@@ -38,7 +38,7 @@ extern int __use_tzfile;
 extern void __tzfile_read __P ((const char *file));
 extern int __tzfile_compute __P ((time_t timer, int use_localtime,
                                  long int *leap_correct, int *leap_hit,
 extern void __tzfile_read __P ((const char *file));
 extern int __tzfile_compute __P ((time_t timer, int use_localtime,
                                  long int *leap_correct, int *leap_hit,
-                                 int *isdst, long int *offset));
+                                 struct tm *tp));
 extern void __tzfile_default __P ((const char *std, const char *dst,
                                   long int stdoff, long int dstoff));
 extern char *__tzstring __P ((const char *string));
 extern void __tzfile_default __P ((const char *std, const char *dst,
                                   long int stdoff, long int dstoff));
 extern char *__tzstring __P ((const char *string));
@@ -595,8 +595,6 @@ __tz_convert (const time_t *timer, int use_localtime, struct tm *tp)
 {
   long int leap_correction;
   int leap_extra_secs;
 {
   long int leap_correction;
   int leap_extra_secs;
-  int isdst;
-  long int offset;
 
   if (timer == NULL)
     {
 
   if (timer == NULL)
     {
@@ -615,8 +613,7 @@ __tz_convert (const time_t *timer, int use_localtime, struct tm *tp)
   if (__use_tzfile)
     {
       if (! __tzfile_compute (*timer, use_localtime,
   if (__use_tzfile)
     {
       if (! __tzfile_compute (*timer, use_localtime,
-                             &leap_correction, &leap_extra_secs,
-                             &isdst, &offset))
+                             &leap_correction, &leap_extra_secs, tp))
        tp = NULL;
     }
   else
        tp = NULL;
     }
   else
@@ -625,18 +622,20 @@ __tz_convert (const time_t *timer, int use_localtime, struct tm *tp)
        tp = NULL;
       leap_correction = 0L;
       leap_extra_secs = 0;
        tp = NULL;
       leap_correction = 0L;
       leap_extra_secs = 0;
-
-      isdst = (*timer >= tz_rules[0].change && *timer < tz_rules[1].change);
-      offset = tz_rules[isdst].offset;
     }
 
   if (tp)
     {
       if (use_localtime)
        {
     }
 
   if (tp)
     {
       if (use_localtime)
        {
-         tp->tm_isdst = isdst;
-         tp->tm_zone = __tzname[isdst];
-         tp->tm_gmtoff = offset;
+         if (!__use_tzfile)
+           {
+             int isdst = (*timer >= tz_rules[0].change
+                          && *timer < tz_rules[1].change);
+             tp->tm_isdst = isdst;
+             tp->tm_zone = __tzname[isdst];
+             tp->tm_gmtoff = tz_rules[isdst].offset;
+           }
        }
       else
        {
        }
       else
        {