Index: source/tools/tzcode/tzfile.h |
diff --git a/source/tools/tzcode/tzfile.h b/source/tools/tzcode/tzfile.h |
index 3a9eee305a53cc7bea4c9abb390a631b6fd16e76..911130eb939a1abe95470616dad6675ecbaf40f0 100644 |
--- a/source/tools/tzcode/tzfile.h |
+++ b/source/tools/tzcode/tzfile.h |
@@ -16,16 +16,6 @@ |
*/ |
/* |
-** ID |
-*/ |
- |
-#ifndef lint |
-#ifndef NOID |
-static char tzfilehid[] = "@(#)tzfile.h 8.1"; |
-#endif /* !defined NOID */ |
-#endif /* !defined lint */ |
- |
-/* |
** Information about time zone files. |
*/ |
@@ -49,7 +39,7 @@ static char tzfilehid[] = "@(#)tzfile.h 8.1"; |
struct tzhead { |
char tzh_magic[4]; /* TZ_MAGIC */ |
- char tzh_version[1]; /* '\0' or '2' as of 2005 */ |
+ char tzh_version[1]; /* '\0' or '2' or '3' as of 2013 */ |
char tzh_reserved[15]; /* reserved--must be zero */ |
char tzh_ttisgmtcnt[4]; /* coded number of trans. time flags */ |
char tzh_ttisstdcnt[4]; /* coded number of trans. time flags */ |
@@ -65,7 +55,7 @@ struct tzhead { |
** tzh_timecnt (char [4])s coded transition times a la time(2) |
** tzh_timecnt (unsigned char)s types of local time starting at above |
** tzh_typecnt repetitions of |
-** one (char [4]) coded UTC offset in seconds |
+** one (char [4]) coded UT offset in seconds |
** one (unsigned char) used to set tm_isdst |
** one (unsigned char) that's an abbreviation list index |
** tzh_charcnt (char)s '\0'-terminated zone abbreviations |
@@ -78,7 +68,7 @@ struct tzhead { |
** if absent, transition times are |
** assumed to be wall clock time |
** tzh_ttisgmtcnt (char)s indexed by type; if TRUE, transition |
-** time is UTC, if FALSE, |
+** time is UT, if FALSE, |
** transition time is local time |
** if absent, transition times are |
** assumed to be local time |
@@ -92,6 +82,13 @@ struct tzhead { |
** instants after the last transition time stored in the file |
** (with nothing between the newlines if there is no POSIX representation for |
** such instants). |
+** |
+** If tz_version is '3' or greater, the above is extended as follows. |
+** First, the POSIX TZ string's hour offset may range from -167 |
+** through 167 as compared to the POSIX-required 0 through 24. |
+** Second, its DST start time may be January 1 at 00:00 and its stop |
+** time December 31 at 24:00 plus the difference between DST and |
+** standard time, indicating DST all year. |
*/ |
/* |
@@ -100,20 +97,12 @@ struct tzhead { |
*/ |
#ifndef TZ_MAX_TIMES |
-#define TZ_MAX_TIMES 1200 |
+#define TZ_MAX_TIMES 2000 |
#endif /* !defined TZ_MAX_TIMES */ |
#ifndef TZ_MAX_TYPES |
-#ifndef NOSOLAR |
+/* This must be at least 17 for Europe/Samara and Europe/Vilnius. */ |
#define TZ_MAX_TYPES 256 /* Limited by what (unsigned char)'s can hold */ |
-#endif /* !defined NOSOLAR */ |
-#ifdef NOSOLAR |
-/* |
-** Must be at least 14 for Europe/Riga as of Jan 12 1995, |
-** as noted by Earl Chew. |
-*/ |
-#define TZ_MAX_TYPES 20 /* Maximum number of local time types */ |
-#endif /* !defined NOSOLAR */ |
#endif /* !defined TZ_MAX_TYPES */ |
#ifndef TZ_MAX_CHARS |
@@ -132,7 +121,7 @@ struct tzhead { |
#define DAYSPERNYEAR 365 |
#define DAYSPERLYEAR 366 |
#define SECSPERHOUR (SECSPERMIN * MINSPERHOUR) |
-#define SECSPERDAY ((long) SECSPERHOUR * HOURSPERDAY) |
+#define SECSPERDAY ((int_fast32_t) SECSPERHOUR * HOURSPERDAY) |
#define MONSPERYEAR 12 |
#define TM_SUNDAY 0 |