latest Olson/Harris time package
authorKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Mon, 13 Mar 1989 05:31:14 +0000 (21:31 -0800)
committerKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Mon, 13 Mar 1989 05:31:14 +0000 (21:31 -0800)
SCCS-vsn: include/tzfile.h 5.4

usr/src/include/tzfile.h

index 9472676..8de35de 100644 (file)
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
- *     @(#)tzfile.h    5.3 (Berkeley) %G%
+ *     @(#)tzfile.h    5.4 (Berkeley) %G%
  */
 
 /*
 ** Information about time zone files.
 */
 
  */
 
 /*
 ** Information about time zone files.
 */
 
-#define        TZDIR           "/etc/zoneinfo" /* Time zone object file directory */
-#define        TZDEFAULT       "localtime"
+#define TZDIR          "/etc/zoneinfo" /* Time zone object file directory */
+#define TZDEFAULT      "localtime"
+#define TZDEFRULES     "posixrules"
 
 /*
 ** Each file begins with. . .
 */
 
 struct tzhead {
 
 /*
 ** Each file begins with. . .
 */
 
 struct tzhead {
-       char    tzh_reserved[32];       /* reserved for future use */
+       char    tzh_reserved[24];       /* reserved for future use */
+       char    tzh_ttisstdcnt[4];      /* coded number of trans. time flags */
+       char    tzh_leapcnt[4];         /* coded number of leap seconds */
        char    tzh_timecnt[4];         /* coded number of transition times */
        char    tzh_typecnt[4];         /* coded number of local time types */
        char    tzh_charcnt[4];         /* coded number of abbr. chars */
        char    tzh_timecnt[4];         /* coded number of transition times */
        char    tzh_typecnt[4];         /* coded number of local time types */
        char    tzh_charcnt[4];         /* coded number of abbr. chars */
@@ -45,9 +48,17 @@ struct tzhead {
 **     tzh_timecnt (unsigned char)s    types of local time starting at above
 **     tzh_typecnt repetitions of
 **             one (char [4])          coded GMT offset in seconds
 **     tzh_timecnt (unsigned char)s    types of local time starting at above
 **     tzh_typecnt repetitions of
 **             one (char [4])          coded GMT offset in seconds
-**             one (unsigned char)     used to set tm_isdt
+**             one (unsigned char)     used to set tm_isdst
 **             one (unsigned char)     that's an abbreviation list index
 **             one (unsigned char)     that's an abbreviation list index
-**     tzh_charcnt (char)s             '\0'-terminated zone abbreviaton strings
+**     tzh_charcnt (char)s             '\0'-terminated zone abbreviations
+**     tzh_leapcnt repetitions of
+**             one (char [4])          coded leap second transition times
+**             one (char [4])          total correction after above
+**     tzh_ttisstdcnt (char)s          indexed by type; if TRUE, transition
+**                                     time is standard time, if FALSE,
+**                                     transition time is wall clock time
+**                                     if absent, transition times are
+**                                     assumed to be wall clock time
 */
 
 /*
 */
 
 /*
@@ -61,58 +72,59 @@ struct tzhead {
 ** 138 years of Pacific Presidential Election time
 ** (where there are three time zone transitions every fourth year).
 */
 ** 138 years of Pacific Presidential Election time
 ** (where there are three time zone transitions every fourth year).
 */
-#define        TZ_MAX_TIMES    370
-
-#define        NOSOLAR                 /* We currently don't handle solar time */
-
-#ifndef        NOSOLAR
-#define        TZ_MAX_TYPES    256     /* Limited by what (unsigned char)'s can hold */
-#else /* !NOSOLAR */
-#define        TZ_MAX_TYPES    10      /* Maximum number of local time types */
-#endif /* !NOSOLAR */
-
-#define        TZ_MAX_CHARS    50      /* Maximum number of abbreviation characters */
-
-#define        SECS_PER_MIN    60
-#define        MINS_PER_HOUR   60
-#define        HOURS_PER_DAY   24
-#define        DAYS_PER_WEEK   7
-#define        DAYS_PER_NYEAR  365
-#define        DAYS_PER_LYEAR  366
-#define        SECS_PER_HOUR   (SECS_PER_MIN * MINS_PER_HOUR)
-#define        SECS_PER_DAY    ((long) SECS_PER_HOUR * HOURS_PER_DAY)
-#define        MONS_PER_YEAR   12
-
-#define        TM_SUNDAY       0
-#define        TM_MONDAY       1
-#define        TM_TUESDAY      2
-#define        TM_WEDNESDAY    3
-#define        TM_THURSDAY     4
-#define        TM_FRIDAY       5
-#define        TM_SATURDAY     6
-
-#define        TM_JANUARY      0
-#define        TM_FEBRUARY     1
-#define        TM_MARCH        2
-#define        TM_APRIL        3
-#define        TM_MAY          4
-#define        TM_JUNE         5
-#define        TM_JULY         6
-#define        TM_AUGUST       7
-#define        TM_SEPTEMBER    8
-#define        TM_OCTOBER      9
-#define        TM_NOVEMBER     10
-#define        TM_DECEMBER     11
-#define        TM_SUNDAY       0
-
-#define        TM_YEAR_BASE    1900
-
-#define        EPOCH_YEAR      1970
-#define        EPOCH_WDAY      TM_THURSDAY
+#define TZ_MAX_TIMES   370
+
+#define NOSOLAR                        /* 4BSD doesn't currently handle solar time */
+
+#ifndef NOSOLAR
+#define TZ_MAX_TYPES   256     /* Limited by what (unsigned char)'s can hold */
+#else
+#define TZ_MAX_TYPES   10      /* Maximum number of local time types */
+#endif
+
+#define TZ_MAX_CHARS   50      /* Maximum number of abbreviation characters */
+
+#define        TZ_MAX_LEAPS    50      /* Maximum number of leap second corrections */
+
+#define SECSPERMIN     60
+#define MINSPERHOUR    60
+#define HOURSPERDAY    24
+#define DAYSPERWEEK    7
+#define DAYSPERNYEAR   365
+#define DAYSPERLYEAR   366
+#define SECSPERHOUR    (SECSPERMIN * MINSPERHOUR)
+#define SECSPERDAY     ((long) SECSPERHOUR * HOURSPERDAY)
+#define MONSPERYEAR    12
+
+#define TM_SUNDAY      0
+#define TM_MONDAY      1
+#define TM_TUESDAY     2
+#define TM_WEDNESDAY   3
+#define TM_THURSDAY    4
+#define TM_FRIDAY      5
+#define TM_SATURDAY    6
+
+#define TM_JANUARY     0
+#define TM_FEBRUARY    1
+#define TM_MARCH       2
+#define TM_APRIL       3
+#define TM_MAY         4
+#define TM_JUNE                5
+#define TM_JULY                6
+#define TM_AUGUST      7
+#define TM_SEPTEMBER   8
+#define TM_OCTOBER     9
+#define TM_NOVEMBER    10
+#define TM_DECEMBER    11
+
+#define TM_YEAR_BASE   1900
+
+#define EPOCH_YEAR     1970
+#define EPOCH_WDAY     TM_THURSDAY
 
 /*
 ** Accurate only for the past couple of centuries;
 ** that will probably do.
 */
 
 
 /*
 ** Accurate only for the past couple of centuries;
 ** that will probably do.
 */
 
-#define        isleap(y) (((y) % 4) == 0 && ((y) % 100) != 0 || ((y) % 400) == 0)
+#define isleap(y) (((y) % 4) == 0 && ((y) % 100) != 0 || ((y) % 400) == 0)