about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--include/time.h2
-rw-r--r--time/tzfile.c6
-rw-r--r--time/tzset.c8
4 files changed, 19 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 8f311cc071..628aaef05f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2019-02-03  Florian Weimer  <fweimer@redhat.com>
 
+	* include/time.h (__tzfile_default): Use int, not long int, for
+	the GMT offsets.
+	* time/tzfile.c (struct ttinfo): Change type of the offset member
+	to int.
+	(__tzfile_read): Remove useless cast.
+	(__tzfile_default): Adjust prototype.
+	* time/tzset.c (tz_rule): Change type of the offset member to int.
+	(parse_offset): Change the type of the sign variable to int.
+
+2019-02-03  Florian Weimer  <fweimer@redhat.com>
+
 	[BZ #24153]
 	* debug/gets_chk.c (__gets_chk): Use stdin instead of _IO_stdin.
 	* libio/getchar.c (getchar): Likewise.
diff --git a/include/time.h b/include/time.h
index f935e9dd3e..61dd9e180b 100644
--- a/include/time.h
+++ b/include/time.h
@@ -43,7 +43,7 @@ extern void __tzfile_compute (__time64_t timer, int use_localtime,
 			      long int *leap_correct, int *leap_hit,
 			      struct tm *tp) attribute_hidden;
 extern void __tzfile_default (const char *std, const char *dst,
-			      long int stdoff, long int dstoff)
+			      int stdoff, int dstoff)
   attribute_hidden;
 extern void __tzset_parse_tz (const char *tz) attribute_hidden;
 extern void __tz_compute (__time64_t timer, struct tm *tm, int use_localtime)
diff --git a/time/tzfile.c b/time/tzfile.c
index 24440a6a9c..a07e7c5037 100644
--- a/time/tzfile.c
+++ b/time/tzfile.c
@@ -35,7 +35,7 @@ static time_t tzfile_mtime;
 
 struct ttinfo
   {
-    long int offset;		/* Seconds east of GMT.  */
+    int offset;			/* Seconds east of GMT.  */
     unsigned char isdst;	/* Used to set tm_isdst.  */
     unsigned char idx;		/* Index into `zone_names'.  */
     unsigned char isstd;	/* Transition times are in standard time.  */
@@ -345,7 +345,7 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
 	/* Bogus index in data file.  */
 	goto lose;
       types[i].idx = c;
-      types[i].offset = (long int) decode (x);
+      types[i].offset = decode (x);
     }
 
   if (__glibc_unlikely (__fread_unlocked (zone_names, 1, chars, f) != chars))
@@ -491,7 +491,7 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
 
 void
 __tzfile_default (const char *std, const char *dst,
-		  long int stdoff, long int dstoff)
+		  int stdoff, int dstoff)
 {
   size_t stdlen = strlen (std) + 1;
   size_t dstlen = strlen (dst) + 1;
diff --git a/time/tzset.c b/time/tzset.c
index d026674d11..307eb651ad 100644
--- a/time/tzset.c
+++ b/time/tzset.c
@@ -50,7 +50,7 @@ typedef struct
     unsigned short int m, n, d;	/* Month, week, day.  */
     int secs;			/* Time of day.  */
 
-    long int offset;		/* Seconds east of GMT (west if < 0).  */
+    int offset;			/* Seconds east of GMT (west if < 0).  */
 
     /* We cache the computed time of change for a
        given year so we don't have to recompute it.  */
@@ -193,11 +193,11 @@ parse_offset (const char **tzp, int whichrule)
       && (*tz == '\0' || (*tz != '+' && *tz != '-' && !isdigit (*tz))))
     return false;
 
-  long sign;
+  int sign;
   if (*tz == '-' || *tz == '+')
-    sign = *tz++ == '-' ? 1L : -1L;
+    sign = *tz++ == '-' ? 1 : -1;
   else
-    sign = -1L;
+    sign = -1;
   *tzp = tz;
 
   unsigned short int hh;