diff options
author | Aaron Campbell <aaron@cvs.openbsd.org> | 1999-05-25 00:49:44 +0000 |
---|---|---|
committer | Aaron Campbell <aaron@cvs.openbsd.org> | 1999-05-25 00:49:44 +0000 |
commit | 226d1265f1cae1fd39c4b2c5e007ef3d72b7dd95 (patch) | |
tree | 255e0197b3c7e27d68aba392dc9d20987381ef7c /lib | |
parent | b61783005b91b5fa05f4a5225586152026f2808c (diff) |
out with old macros, in with new mdoc; kwesterback@home.com
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libc/time/time2posix.3 | 147 | ||||
-rw-r--r-- | lib/libc/time/tzfile.5 | 142 | ||||
-rw-r--r-- | lib/libc/time/tzset.3 | 349 | ||||
-rw-r--r-- | lib/libc/time/zdump.8 | 53 | ||||
-rw-r--r-- | lib/libc/time/zic.8 | 356 |
5 files changed, 544 insertions, 503 deletions
diff --git a/lib/libc/time/time2posix.3 b/lib/libc/time/time2posix.3 index 98c5cffb906..8babca3917b 100644 --- a/lib/libc/time/time2posix.3 +++ b/lib/libc/time/time2posix.3 @@ -1,91 +1,110 @@ -.\" $OpenBSD: time2posix.3,v 1.7 1999/05/20 15:22:53 aaron Exp $ -.TH TIME2POSIX 3 -.SH NAME -time2posix, posix2time \- convert seconds since the Epoch -.SH SYNOPSIS -.nf -.B #include <sys/types.h> -.B #include <time.h> -.PP -.B time_t -.br -.B time2posix(time_t t) -.PP -.B time_t -.br -.B posix2time(time_t t) -.fi -.SH DESCRIPTION +.\" $OpenBSD: time2posix.3,v 1.8 1999/05/25 00:49:41 aaron Exp $ +.Dd May 24, 1999 +.Dt TIME2POSIX 3 +.Os +.Sh NAME +.Nm time2posix , posix2time +.Nd convert seconds since the Epoch +.Sh SYNOPSIS +.Fd #include <sys/types.h> +.Fd #include <time.h> +.Ft time_t +.Fn time2posix "time_t t" +.Ft time_t +.Fn posix2time "time_t t" +.Sh DESCRIPTION IEEE Standard 1003.1 (POSIX) -legislates that a time_t value of +legislates that a +.Fa time_t +value of 536457599 shall correspond to "Wed Dec 31 23:59:59 UTC 1986." -This effectively implies that POSIX time_t's cannot include leap -seconds and, -therefore, +This effectively implies that a POSIX +.Fa time_t +cannot include leap seconds and, therefore, that the system time must be adjusted as each leap occurs. -.PP +.Pp If the time package is configured with leap-second support enabled, however, no such adjustment is needed and -time_t values continue to increase over leap events -(as a true `seconds since...' value). +.Fa time_t +values continue to increase over leap events +.Po +as a true +.Sq seconds since... +value +.Pc . This means that these values will differ from those required by POSIX by the net number of leap seconds inserted since the Epoch. -.PP -Typically this is not a problem as the type time_t is intended -to be -(mostly) -opaque\(emtime_t values should only be obtained-from and +.Pp +Typically this is not a problem as the type +.Fa time_t +is intended to be +.Pq mostly +opaque. +.Fa time_t +values should only be obtained-from and passed-to functions such as -.IR time(3) , -.IR localtime(3) , -.IR mktime(3) , +.Xr time 3 , +.Xr localtime 3 , +.Xr mktime 3 , and -.IR difftime(3) . +.Xr difftime 3 . However, POSIX gives an arithmetic -expression for directly computing a time_t value from a given date/time, +expression for directly computing a +.Fa time_t +value from a given date/time, and the same relationship is assumed by some -(usually older) +.Pq usually older applications. -Any programs creating/dissecting time_t's +Any programs creating/dissecting +.Fa time_t +values using such a relationship will typically not handle intervals over leap seconds correctly. -.PP +.Pp The -.I time2posix +.Fn time2posix and -.I posix2time -functions are provided to address this time_t mismatch by converting -between local time_t values and their POSIX equivalents. +.Fn posix2time +functions are provided to address this +.Fa time_t +mismatch by converting +between local +.Fa time_t +values and their POSIX equivalents. This is done by accounting for the number of time-base changes that would have taken place on a POSIX system as leap seconds were inserted or deleted. These converted values can then be used in lieu of correcting the older applications, or when communicating with POSIX-compliant systems. -.PP -.I Time2posix +.Pp +.Fn time2posix is single-valued. That is, -every local time_t -corresponds to a single POSIX time_t. -.I Posix2time +every local +.Fa time_t +corresponds to a single POSIX +.Fa time_t . +.Fn posix2time is less well-behaved: for a positive leap second hit the result is not unique, and for a negative leap second hit the corresponding -POSIX time_t doesn't exist so an adjacent value is returned. +POSIX +.Fa time_t +doesn't exist so an adjacent value is returned. Both of these are good indicators of the inferiority of the POSIX representation. -.PP +.Pp The following table summarizes the relationship between a time T and its conversion to, and back from, the POSIX representation over the leap second inserted at the end of June, 1993. -.nf +.Bd -ragged -offset indent .ta \w'93/06/30 'u +\w'23:59:59 'u +\w'A+0 'u +\w'X=time2posix(T) 'u DATE TIME T X=time2posix(T) posix2time(X) 93/06/30 23:59:59 A+0 B+0 A+0 @@ -102,21 +121,23 @@ DATE TIME T X=time2posix(T) posix2time(X) .sp .ce [Note: posix2time(B+1) => A+0 or A+1] -.fi -.PP -If leap-second support is not enabled, -local time_t's and -POSIX time_t's are equivalent, -and both -.I time2posix +.Ed +.Pp +If leap-second support is not enabled, local +.Fa time_t and -.I posix2time +POSIX +.Fa time_t +are equivalent, and both +.Fn time2posix +and +.Fn posix2time degenerate to the identity function. -.SH SEE ALSO -difftime(3), -localtime(3), -mktime(3), -time(3) +.Sh SEE ALSO +.Xr difftime 3 , +.Xr localtime 3 , +.Xr mktime 3 , +.Xr time 3 .\" @(#)time2posix.3 7.7 .\" This file is in the public domain, so clarified as of .\" 1996-06-05 by Arthur David Olson (arthur_david_olson@nih.gov). diff --git a/lib/libc/time/tzfile.5 b/lib/libc/time/tzfile.5 index 92b3cf735bc..9cc450aedab 100644 --- a/lib/libc/time/tzfile.5 +++ b/lib/libc/time/tzfile.5 @@ -1,139 +1,141 @@ -.\" $OpenBSD: tzfile.5,v 1.6 1999/01/29 07:04:05 d Exp $ -.TH TZFILE 5 -.SH NAME -tzfile \- time zone information -.SH SYNOPSIS -.B -#include <tzfile.h> -.SH DESCRIPTION +.\" $OpenBSD: tzfile.5,v 1.7 1999/05/25 00:49:42 aaron Exp $ +.Dd May 24, 1999 +.Dt TZFILE 5 +.Os +.Sh NAME +.Nm tzfile +.Nd time zone information +.Sh SYNOPSIS +.Fd #include <tzfile.h> +.Sh DESCRIPTION The time zone information files used by -.IR tzset (3) -begin with the magic characters "TZif" to identify then as +.Xr tzset 3 +begin with the magic characters "TZif" to identify themselves as time zone information files, followed by sixteen bytes reserved for future use, followed by six four-byte values of type -.BR long , -written in a ``standard'' byte order -(the high-order byte of the value is written first). +.Fa long +written in a +.Dq standard +byte order +.Po +the high-order byte of the value is written first +.Pc . These values are, in order: -.TP -.I tzh_ttisgmtcnt +.Bl -tag -width "tzh_ttisgmtcnt" +.It Fa tzh_ttisgmtcnt The number of UTC/local indicators stored in the file. -.TP -.I tzh_ttisstdcnt +.It Fa tzh_ttisstdcnt The number of standard/wall indicators stored in the file. -.TP -.I tzh_leapcnt +.It Fa tzh_leapcnt The number of leap seconds for which data is stored in the file. -.TP -.I tzh_timecnt +.It Fa tzh_timecnt The number of "transition times" for which data is stored in the file. -.TP -.I tzh_typecnt +.It Fa tzh_typecnt The number of "local time types" for which data is stored in the file (must not be zero). -.TP -.I tzh_charcnt +.It Fa tzh_charcnt The number of characters of "time zone abbreviation strings" stored in the file. -.PP +.El +.Pp The above header is followed by -.I tzh_timecnt +.Fa tzh_timecnt four-byte values of type -.BR long , +.Fa long , sorted in ascending order. -These values are written in ``standard'' byte order. -Each is used as a transition time (as returned by -.IR time (3)) +These values are written in +.Dq standard +byte order. +Each is used as a transition time +.Pq as returned by Xr time 3 at which the rules for computing local time change. Next come -.I tzh_timecnt +.Fa tzh_timecnt one-byte values of type -.BR "unsigned char" ; -each one tells which of the different types of ``local time'' types +.Fa unsigned char ; +each one tells which of the different types of +.Dq local time +types described in the file is associated with the same-indexed transition time. These values serve as indices into an array of -.I ttinfo +.Fa ttinfo structures that appears next in the file; these structures are defined as follows: -.in +.5i -.sp -.nf +.Bd -literal -offset indent .ta .5i +\w'unsigned int\0\0'u struct ttinfo { long tt_gmtoff; int tt_isdst; unsigned int tt_abbrind; }; -.in -.5i -.fi -.sp +.Ed +.Pp Each structure is written as a four-byte value for -.I tt_gmtoff +.Fa tt_gmtoff of type -.BR long , +.Fa long , in a standard byte order, followed by a one-byte value for -.I tt_isdst +.Fa tt_isdst and a one-byte value for -.IR tt_abbrind . +.Fa tt_abbrind . In each structure, -.I tt_gmtoff +.Fa tt_gmtoff gives the number of seconds to be added to UTC, -.I tt_isdst +.Fa tt_isdst tells whether -.I tm_isdst +.Fa tm_isdst should be set by -.I localtime (3) +.Xr localtime 3 and -.I tt_abbrind +.Fa tt_abbrind serves as an index into the array of time zone abbreviation characters that follow the -.I ttinfo +.Fa ttinfo structure(s) in the file. -.PP +.Pp Then there are -.I tzh_leapcnt +.Fa tzh_leapcnt pairs of four-byte values, written in standard byte order; the first value of each pair gives the time -(as returned by -.IR time(3)) +.Pq as returned by Xr time 3 at which a leap second occurs; the second gives the -.I total +.Em total number of leap seconds to be applied after the given time. The pairs of values are sorted in ascending order by time. -.PP +.Pp Then there are -.I tzh_ttisstdcnt +.Fa tzh_ttisstdcnt standard/wall indicators, each stored as a one-byte value; they tell whether the transition times associated with local time types were specified as standard time or wall clock time, and are used when a time zone file is used in handling POSIX-style time zone environment variables. -.PP +.Pp Finally there are -.I tzh_ttisgmtcnt +.Fa tzh_ttisgmtcnt UTC/local indicators, each stored as a one-byte value; they tell whether the transition times associated with local time types were specified as UTC or local time, and are used when a time zone file is used in handling POSIX-style time zone environment variables. -.PP -.I Localtime +.Pp +.Xr localtime 3 uses the first standard-time -.I ttinfo -structure in the file -(or simply the first -.I ttinfo -structure in the absence of a standard-time structure) +.Fa ttinfo +structure in the file, +or simply the first +.Fa ttinfo +structure in the absence of a standard-time structure, if either -.I tzh_timecnt +.Fa tzh_timecnt is zero or the time argument is less than the first transition time recorded in the file. -.SH SEE ALSO -ctime(3) +.Sh SEE ALSO +.Xr ctime 3 .\" @(#)tzfile.5 7.11 .\" This file is in the public domain, so clarified as of .\" 1996-06-05 by Arthur David Olson (arthur_david_olson@nih.gov). diff --git a/lib/libc/time/tzset.3 b/lib/libc/time/tzset.3 index 843bbc97ce2..f2decc07dcf 100644 --- a/lib/libc/time/tzset.3 +++ b/lib/libc/time/tzset.3 @@ -1,238 +1,281 @@ -.\" $OpenBSD: tzset.3,v 1.8 1999/05/20 15:22:53 aaron Exp $ -.TH TZSET 3 -.SH NAME -tzset \- initialize time conversion information -.SH SYNOPSIS -.nf -.B #include <time.h> -.PP -.B void tzset() -.fi -.SH DESCRIPTION -.I Tzset +.\" $OpenBSD: tzset.3,v 1.9 1999/05/25 00:49:42 aaron Exp $ +.Dd May 24, 1999 +.Dt TZSET 3 +.Os +.Sh NAME +.Nm tzset +.Nd initialize time conversion information +.Sh SYNOPSIS +.Fd #include <time.h> +.Ft void +.Fn tzset +.Sh DESCRIPTION +.Fn tzset uses the value of the environment variable -.B TZ +.Ev TZ to set time conversion information used by -.IR localtime . +.Xr localtime 3 . If -.B TZ +.Ev TZ does not appear in the environment, the best available approximation to local wall clock time, as specified by the -.IR tzfile (5)-format -file -.B localtime +.Xr tzfile 5 +format file +.Em localtime in the system time conversion information directory, is used by -.IR localtime . +.Xr localtime 3 . +.Pp If -.B TZ +.Ev TZ appears in the environment but its value is a null string, Coordinated Universal Time (UTC) is used (without leap second -correction). If -.B TZ -appears in the environment and its value is not a null string: -.IP -if the value begins with a colon, it is used as a pathname of a file -from which to read the time conversion information; -.IP -if the value does not begin with a colon, it is first used as the +correction). +.Pp +If +.Ev TZ +appears in the environment and its value begins with a colon, +it is used as a pathname of a file +from which to read the time conversion information. +.Pp +If +.Ev TZ +appears in the environment and its value does not begin with a colon, +it is first used as the pathname of a file from which to read the time conversion information, and, if that file cannot be read, is used directly as a specification of the time conversion information. -.PP +.Pp When -.B TZ +.Ev TZ is used as a pathname, if it begins with a slash, it is used as an absolute pathname; otherwise, it is used as a pathname relative to a system time conversion information directory. The file must be in the format specified in -.IR tzfile (5). -.PP +.Xr tzfile 5 . +.Pp When -.B TZ +.Ev TZ is used directly as a specification of the time conversion information, it must have the following syntax (spaces inserted for clarity): -.IP -\fIstd\|offset\fR[\fIdst\fR[\fIoffset\fR][\fB,\fIrule\fR]] -.PP +.Bd -ragged -offset indent +.Ar std +.Ar offset +.Op Ar dst Op Ar offset +.Op , Ar rule +.Ed +.Pp Where: -.RS -.TP 15 -.IR std " and " dst +.Bl -tag -width "std and dst" +.It Ar std No and Ar dst Three or more bytes that are the designation for the standard -.RI ( std ) +.Pq Ar std or summer -.RI ( dst ) +.Pq Ar dst time zone. Only -.I std +.Ar std is required; if -.I dst +.Ar dst is missing, then summer time does not apply in this locale. -Upper- and lowercase letters are explicitly allowed. Any characters +Upper and lowercase letters are explicitly allowed. Any characters except a leading colon -.RB ( : ), +.Pq Sq \&: , digits, comma -.RB ( , ), +.Pq Sq \&, , minus -.RB ( \(mi ), +.Pq Sq \&- , plus -.RB ( \(pl ), -and ASCII NUL are allowed. -.TP -.I offset +.Pq Sq \&+ , +and +.Tn ASCII +.Tn NUL +are allowed. +.It Ar offset Indicates the value one must add to the local time to arrive at -Coordinated Universal Time. The -.I offset -has the form: -.RS -.IP -\fIhh\fR[\fB:\fImm\fR[\fB:\fIss\fR]] -.RE -.IP +Coordinated Universal Time. +.Ar offset +has the form +.Pq spaces inserted for clarity : +.Bd -ragged -offset indent +.Ar hh +.Op : Ar mm Op : Ar ss +.Ed +.Pp The minutes -.RI ( mm ) +.Pq Ar mm and seconds -.RI ( ss ) +.Pq Ar ss are optional. The hour -.RI ( hh ) +.Pq Ar hh is required and may be a single digit. The -.I offset +.Ar offset following -.I std +.Ar std is required. If no -.I offset +.Ar offset follows -.IR dst , +.Ar dst , summer time is assumed to be one hour ahead of standard time. One or more digits may be used; the value is always interpreted as a decimal number. The hour must be between zero and 24, and the minutes (and -seconds) \(em if present \(em between zero and 59. If preceded by a -.RB `` \(mi '', +seconds) -- if present -- between zero and 59. If preceded by a +.Dq \&- , the time zone shall be east of the Prime Meridian; otherwise it shall be west (which may be indicated by an optional preceding -.RB `` \(pl ''). -.TP -.I rule -Indicates when to change to and back from summer time. The -.I rule -has the form: -.RS -.IP -\fIdate\fB/\fItime\fB,\fIdate\fB/\fItime\fR -.RE -.IP +.Dq \&+ ) . +.It Ar rule +Indicates when to change to and back from summer time. +.Ar rule +has the form (spaces added for clarity): +.Pp +.Bd -ragged -offset indent +.Ar date +/ +.Ar time , +.Ar date +/ +.Ar time +.Ed +.Pp where the first -.I date +.Ar date describes when the change from standard to summer time occurs and the second -.I date +.Ar date describes when the change back happens. Each -.I time +.Ar time field describes when, in current local time, the change to the other time is made. -.IP +.Pp The format of -.I date -is one of the following: -.RS -.TP 10 -.BI J n +.Ar date +is one of the following (spaces added for clarity): +.Bl -tag -width "M m . n . d" +.It J Ar n The Julian day -.I n -.RI "(1\ \(<=" "\ n\ " "\(<=\ 365). -Leap days are not counted; that is, in all years \(em including leap -years \(em February 28 is day 59 and March 1 is day 60. It is +.Ar n +.Po +1 \&<\&= +.Ar n +\&<\&= 365 +.Pc . +Leap days are not counted; that is, in all years -- including leap +years -- February 28 is day 59 and March 1 is day 60. It is impossible to explicitly refer to the occasional February 29. -.TP -.I n +.It Ar n The zero-based Julian day -.RI "(0\ \(<=" "\ n\ " "\(<=\ 365). +.Po +0 \&<\&= +.Ar n +\&<\&= 365 +.Pc . Leap days are counted, and it is possible to refer to February 29. -.TP -.BI M m . n . d -The -.IR d' th -day -.RI "(0\ \(<=" "\ d\ " "\(<=\ 6) +.It Xo M Ar m No . Ar n +.No . Ar d +.Xc +Day +.Ar d +.Po +1 \&<\&= +.Ar d +\&<\&= 6 +.Pc of week -.I n +.Ar n +.Po +1 \&<\&= +.Ar n +\&<\&= 5 +.Pc of month -.I m -of the year -.RI "(1\ \(<=" "\ n\ " "\(<=\ 5, -.RI "1\ \(<=" "\ m\ " "\(<=\ 12, -where week 5 means ``the last -.I d -day in month -.IR m '' -which may occur in either the fourth or the fifth week). Week 1 is the +.Ar m +.Po +1 \&<\&= +.Ar m +\&<\&= 12 +.Pc , +where week 5 means +.Do +the last +.Ar d +day in month +.Ar m +.Dc +which may occur in either the fourth or the fifth week. Week 1 is the first week in which the -.IR d' th +.Ar d Ns th day occurs. Day zero is Sunday. -.RE -.IP "" 15 +.El +.Pp The -.I time +.Ar time has the same format as -.I offset +.Ar offset except that no leading sign -.RB (`` \(mi '' -or -.RB `` \(pl '') +.Po +.Dq \&- +or +.Dq \&+ +.Pc is allowed. The default, if -.I time +.Ar time is not given, is -.BR 02:00:00 . -.RE -.LP +.Cm 02:00:00 . +.El +.Pp If no -.I rule +.Ar rule is present in -.BR TZ , +.Ev TZ , the rules specified by the -.IR tzfile (5)-format +.Xr tzfile 5 +format file -.B posixrules +.Cm posixrules in the system time conversion information directory are used, with the standard and summer time offsets from UTC replaced by those specified by the -.I offset +.Ar offset values in -.BR TZ . -.PP +.Ev TZ . +.Pp For compatibility with System V Release 3.1, a semicolon -.RB ( ; ) +.Pq Sq \&; may be used to separate the -.I rule +.Ar rule from the rest of the specification. -.PP +.Pp If the -.B TZ +.Ev TZ environment variable does not specify a -.IR tzfile (5)-format +.Xr tzfile 5 +format file and cannot be interpreted as a direct specification, UTC is used. -.SH FILES -.ta \w'/usr/share/zoneinfo/posixrules\0\0'u -/usr/share/zoneinfo time zone information directory -.br -/etc/localtime local time zone file -.br -/usr/share/zoneinfo/posixrules used with POSIX-style TZ's -.br -/usr/share/zoneinfo/GMT for UTC leap seconds -.sp +.Sh FILES +.Bl -tag -width "/usr/share/zoneinfo/posixrules" -compact +.It Pa /usr/share/zoneinfo +time zone information directory +.It Pa /etc/localtime +local time zone file +.It Pa /usr/share/zoneinfo/posixrules +used with POSIX-style +.Ev TZ Ns s +.It Pa /usr/share/zoneinfo/GMT +for UTC leap seconds +.El +.Pp If -.B /usr/share/zoneinfo/GMT +.Pa /usr/share/zoneinfo/GMT is absent, UTC leap seconds are loaded from -.BR /usr/share/zoneinfo/posixrules . -.SH SEE ALSO -getenv(3), -ctime(3), -strftime(3), -time(3), -tzfile(5) +.Pa /usr/share/zoneinfo/posixrules . +.Sh SEE ALSO +.Xr ctime 3 , +.Xr getenv 3 , +.Xr strftime 3 , +.Xr time 3 , +.Xr tzfile 5 .\" @(#)newtzset.3 7.5 diff --git a/lib/libc/time/zdump.8 b/lib/libc/time/zdump.8 index 7126d4e0875..dddead965a8 100644 --- a/lib/libc/time/zdump.8 +++ b/lib/libc/time/zdump.8 @@ -1,40 +1,43 @@ -.\" $OpenBSD: zdump.8,v 1.3 1997/01/14 03:16:54 millert Exp $ -.TH ZDUMP 8 -.SH NAME -zdump \- time zone dumper -.SH SYNOPSIS -.B zdump -[ -.B \-v -] [ -.B \-c -cutoffyear ] [ zonename ... ] -.SH DESCRIPTION -.I Zdump +.\" $OpenBSD: zdump.8,v 1.4 1999/05/25 00:49:42 aaron Exp $ +.Dd May 23, 1999 +.Os +.Dt ZDUMP 8 +.Sh NAME +.Nm zdump +.Nd time zone dumper +.Sh SYNOPSIS +.Nm zdump +.Op Fl v +.Op Fl c Ar cutoffyear +.Op Ar zonename Ar ... +.Sh DESCRIPTION +.Nm prints the current time in each -.I zonename +.Ar zonename named on the command line. -.PP +.Pp These options are available: -.TP -.B \-v +.Bl -tag -width Fl +.It Fl v For each -.I zonename +.Ar zonename on the command line, print the time at the lowest possible time value, the time one day after the lowest possible time value, the times both one second before and exactly at each detected time discontinuity, the time at one day less than the highest possible time value, -and the time at the highest possible time value, +and the time at the highest possible time value. Each line ends with -.B isdst=1 +.Dq isdst=1 if the given time is Daylight Saving Time or -.B isdst=0 +.Dq isdst=0 otherwise. -.TP -.BI "\-c " cutoffyear +.It Fl c Ar cutoffyear Cut off the verbose output near the start of the given year. -.SH "SEE ALSO" -ctime(3), tzfile(5), zic(8) +.El +.Sh SEE ALSO +.Xr ctime 3 , +.Xr tzfile 5 , +.Xr zic 8 .\" @(#)zdump.8 7.3 diff --git a/lib/libc/time/zic.8 b/lib/libc/time/zic.8 index f3ba312852a..1dacba739bd 100644 --- a/lib/libc/time/zic.8 +++ b/lib/libc/time/zic.8 @@ -1,94 +1,71 @@ -.\" $OpenBSD: zic.8,v 1.6 1999/01/29 07:04:05 d Exp $ -.TH ZIC 8 -.SH NAME -zic \- time zone compiler -.SH SYNOPSIS -.B zic -[ -.B \-v -] [ -.B \-d -.I directory -] [ -.B \-l -.I localtime -] [ -.B \-p -.I posixrules -] [ -.B \-L -.I leapsecondfilename -] [ -.B \-s -] [ -.B \-y -.I command -] [ -.I filename -\&... ] -.SH DESCRIPTION -.if t .ds lq `` -.if t .ds rq '' -.if n .ds lq \&"\" -.if n .ds rq \&"\" -.de q -\\$3\*(lq\\$1\*(rq\\$2 -.. -.I Zic +.\" $OpenBSD: zic.8,v 1.7 1999/05/25 00:49:43 aaron Exp $ +.Dd May 23, 1999 +.Os +.Dt ZIC 8 +.Sh NAME +.Nm zic +.Nd time zone compiler +.Sh SYNOPSIS +.Nm zic +.Op Fl v +.Op Fl d Ar directory +.Op Fl l Ar localtime +.Op Fl p Ar posixrules +.Bk -words +.Op Fl L Ar leapsecondfilename +.Ek +.Op Fl s +.Op Fl y Ar command +.Op Ar filename Ar ... +.Sh DESCRIPTION +.Nm reads text from the file(s) named on the command line and creates the time conversion information files specified in this input. If a -.I filename +.Ar filename is -.BR \- , +.Dq Fl , the standard input is read. -.PP +.Pp These options are available: -.TP -.BI "\-d " directory +.Bl -tag -width "-d directory" +.It Fl d Ar directory Create time conversion information files in the named directory rather than in the standard directory named below. -.TP -.BI "\-l " timezone +.It Fl l Ar timezone Use the given time zone as local time. -.I Zic +.Nm will act as if the input contained a link line of the form -.sp -.ti +.5i -Link \fItimezone\fP localtime -.TP -.BI "\-p " timezone +.Pp +.Dl Link timezone localtime +.It Fl p Ar timezone Use the given time zone's rules when handling POSIX-format time zone environment variables. -.I Zic +.Nm will act as if the input contained a link line of the form -.sp -.ti +.5i -Link \fItimezone\fP posixrules -.TP -.BI "\-L " leapsecondfilename +.Pp +.Dl Link timezone posixrules +.It Fl L Ar leapsecondfilename Read leap second information from the file with the given name. If this option is not used, no leap second information appears in output files. -.TP -.B \-v +.It Fl v Complain if a year that appears in a data file is outside the range of years representable by -.IR time (3) +.Xr time 3 values. -.TP -.B \-s +.It Fl s Limit time values stored in output files to values that are the same whether they're taken to be signed or unsigned. You can use this option to generate SVVS-compatible files. -.TP -.BI "\-y " command +.It Fl y Ar command Use the given -.I command +.Ar command rather than -.B yearistype +.Em yearistype when checking year types (see below). -.PP +.El +.Pp Input lines are made up of fields. Fields are separated from one another by any number of white space characters. Leading and trailing white space on input lines is ignored. @@ -99,7 +76,7 @@ White space characters and sharp characters may be enclosed in double quotes Any line that is blank (after comment stripping) is ignored. Non-blank lines are expected to be of one of three types: rule lines, zone lines, and link lines. -.PP +.Pp A rule line has the form .nf .ti +.5i @@ -114,146 +91,140 @@ Rule US 1967 1973 \- Apr lastSun 2:00 1:00 D .sp .fi The fields that make up a rule line are: -.TP "\w'LETTER/S'u" -.B NAME +.Bl -tag -width "LETTER/S" +.It Cm NAME Gives the (arbitrary) name of the set of rules this rule is part of. -.TP -.B FROM +.It Cm FROM Gives the first year in which the rule applies. Any integer year can be supplied; the Gregorian calendar is assumed. The word -.B minimum +.Em minimum (or an abbreviation) means the minimum year representable as an integer. The word -.B maximum +.Em maximum (or an abbreviation) means the maximum year representable as an integer. Rules can describe times that are not representable as time values, with the unrepresentable times ignored; this allows rules to be portable among hosts with differing time value types. -.TP -.B TO +.It Cm TO Gives the final year in which the rule applies. In addition to -.B minimum +.Em minimum and -.B maximum +.Em maximum (as above), the word -.B only +.Em only (or an abbreviation) may be used to repeat the value of the -.B FROM +.Em FROM field. -.TP -.B TYPE -Gives the type of year in which the rule applies. -If -.B TYPE +.It Cm TYPE +Gives the type of year in which the rule applies. If +.Em TYPE is -.B \- +.Dq Fl then the rule applies in all years between -.B FROM +.Em FROM and -.B TO -inclusive. -If -.B TYPE +.Em TO +inclusive. If +.Em TYPE is something else, then -.I zic +.Nm executes the command -.ti +.5i -\fByearistype\fP \fIyear\fP \fItype\fP -.br +.Pp +.Dl yearistype Ar year Ar type +.Pp to check the type of a year: an exit status of zero is taken to mean that the year is of the given type; an exit status of one is taken to mean that the year is not of the given type. -.TP -.B IN +.It Cm IN Names the month in which the rule takes effect. Month names may be abbreviated. -.TP -.B ON +.It Cm ON Gives the day on which the rule takes effect. Recognized forms include: -.nf -.in +.5i -.sp -.ta \w'Sun<=25\0\0'u -5 the fifth of the month -lastSun the last Sunday in the month -lastMon the last Monday in the month -Sun>=8 first Sunday on or after the eighth -Sun<=25 last Sunday on or before the 25th -.fi -.in -.5i -.sp +.Pp +.Bl -tag -width "Sun<=25" -compact -offset indent +.It 5 +the fifth of the month +.It lastSun +the last Sunday in the month +.It lastMon +the last Monday in the month +.It "Sun>=8" +first Sunday on or after the eighth +.It "Sun<=25" +last Sunday on or before the 25th +.El +.Pp Names of days of the week may be abbreviated or spelled out in full. Note that there must be no spaces within the -.B ON +.Em ON field. -.TP -.B AT +.It Cm AT Gives the time of day at which the rule takes effect. Recognized forms include: -.nf -.in +.5i -.sp -.ta \w'1:28:13\0\0'u -2 time in hours -2:00 time in hours and minutes -15:00 24-hour format time (for times after noon) -1:28:14 time in hours, minutes, and seconds -.fi -.in -.5i -.sp +.Pp +.Bl -tag -width "1:28:14" -compact -offset indent +.It 2 +time in hours +.It 2:00 +time in hours and minutes +.It 15:00 +24-hour format time (for times after noon) +.It 1:28:14 +time in hours, minutes, and seconds +.El +.Pp where hour 0 is midnight at the start of the day, and hour 24 is midnight at the end of the day. Any of these forms may be followed by the letter -.B w +.Em w if the given time is local -.q "wall clock" +.Dq wall clock time, -.B s +.Em s if the given time is local -.q standard +.Dq standard time, or -.B u +.Em u (or -.B g +.Em g or -.BR z ) +.Em z ) if the given time is universal time; in the absence of an indicator, wall clock time is assumed. -.TP -.B SAVE +.It Cm SAVE Gives the amount of time to be added to local standard time when the rule is in effect. This field has the same format as the -.B AT +.Em AT field (although, of course, the -.B w +.Em w and -.B s +.Em s suffixes are not used). -.TP -.B LETTER/S +.It Cm LETTER/S Gives the -.q "variable part" +.Dq variable part (for example, the -.q S +.Dq S or -.q D +.Dq D in -.q EST +.Dq EST or -.q EDT ) +.Dq EDT ) of time zone abbreviations to be used when this rule is in effect. If this field is -.BR \- , +.Dq Fl the variable part is null. -.PP +.El +.Pp A zone line has the form .sp .nf @@ -268,40 +239,37 @@ Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00 .sp .fi The fields that make up a zone line are: -.TP "\w'GMTOFF'u" -.B NAME +.Bl -tag -width GMTOFF +.It Cm NAME The name of the time zone. This is the name used in creating the time conversion information file for the zone. -.TP -.B GMTOFF +.It Cm GMTOFF The amount of time to add to UTC to get standard time in this zone. This field has the same format as the -.B AT +.Em AT and -.B SAVE +.Em SAVE fields of rule lines; begin the field with a minus sign if time must be subtracted from UTC. -.TP -.B RULES/SAVE +.It Cm RULES/SAVE The name of the rule(s) that apply in the time zone or, alternately, an amount of time to add to local standard time. If this field is -.B \- +.Dq \- then standard time always applies in the time zone. -.TP -.B FORMAT +.It Cm FORMAT The format for time zone abbreviations in this time zone. The pair of characters -.B %s +.Em %s is used to show where the -.q "variable part" +.Dq variable part of the time zone abbreviation goes. Alternately, -a slash (/) +a slash +.Pq \&/ separates standard and daylight abbreviations. -.TP -.B UNTIL +.It Cm UNTIL The time at which the UTC offset or the rule(s) change for a location. It is specified as a year, a month, a day, and a time of day. If this is specified, @@ -310,21 +278,22 @@ and rule change until the time specified. The month, day, and time of day have the same format as the IN, ON, and AT columns of a rule; trailing columns can be omitted, and default to the earliest possible value for the missing columns. -.IP +.Pp The next line must be a -.q continuation +.Dq continuation line; this has the same form as a zone line except that the string -.q Zone +.Dq Zone and the name are omitted, as the continuation line will place information starting at the time specified as the -.B UNTIL +.Em UNTIL field in the previous line in the file used by the previous line. Continuation lines may contain an -.B UNTIL +.Em UNTIL field, just as zone lines do, indicating that the next line is a further continuation. -.PP +.El +.Pp A link line has the form .sp .nf @@ -339,17 +308,17 @@ Link Europe/Istanbul Asia/Istanbul .sp .fi The -.B LINK-FROM +.Em LINK-FROM field should appear as the -.B NAME +.Em NAME field in some zone line; the -.B LINK-TO +.Em LINK-TO field is used as an alternate name for that zone. -.PP +.Pp Except for continuation lines, lines may appear in any order in the input. -.PP +.Pp Lines in the file that describes leap seconds have the following form: .nf .ti +.5i @@ -364,20 +333,20 @@ Leap 1974 Dec 31 23:59:60 + S .sp .fi The -.BR YEAR , -.BR MONTH , -.BR DAY , +.Em YEAR , +.Em MONTH , +.Em DAY , and -.B HH:MM:SS +.Em HH:MM:SS fields tell when the leap second happened. The -.B CORR +.Em CORR field should be -.q + +.Dq + if a second was added or -.q - +.Dq - if a second was skipped. .\" There's no need to document the following, since it's impossible for more .\" than one leap second to be inserted or deleted at a time. @@ -391,24 +360,27 @@ if a second was skipped. .\" .q -- .\" if two seconds were skipped. The -.B R/S -field -should be (an abbreviation of) -.q Stationary +.Em R/S +field should be (an abbreviation of) +.Dq Stationary if the leap second time given by the other fields should be interpreted as UTC -or -(an abbreviation of) -.q Rolling +or (an abbreviation of) +.Dq Rolling if the leap second time given by the other fields should be interpreted as local wall clock time. -.SH NOTE +.Sh NOTES For areas with more than two types of local time, you may need to use local standard time in the -.B AT +.Em AT field of the earliest transition time's rule to ensure that the earliest transition time recorded in the compiled file is correct. -.SH FILE -/usr/share/zoneinfo standard directory used for created files -.SH "SEE ALSO" -ctime(3), tzfile(5), zdump(8) +.Sh FILES +.Bl -tag -width "/usr/share/zoneinfo" -compact +.It Pa /usr/share/zoneinfo +standard directory used for created files +.El +.Sh SEE ALSO +.Xr ctime 3 , +.Xr tzfile 5 , +.Xr zdump 8 .\" @(#)zic.8 7.18 |