annotate lib/time-internal.h @ 40057:b06060465f09

maint: Run 'make update-copyright'
author Paul Eggert <eggert@cs.ucla.edu>
date Tue, 01 Jan 2019 00:25:11 +0100
parents 10eb9086bea0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18069
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
1 /* Time internal interface
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
2
40057
b06060465f09 maint: Run 'make update-copyright'
Paul Eggert <eggert@cs.ucla.edu>
parents: 19484
diff changeset
3 Copyright 2015-2019 Free Software Foundation, Inc.
18069
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
4
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
5 This program is free software; you can redistribute it and/or modify
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
6 it under the terms of the GNU General Public License as published by
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
7 the Free Software Foundation; either version 2, or (at your option)
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
8 any later version.
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
9
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
10 This program is distributed in the hope that it will be useful,
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
13 GNU General Public License for more details.
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
14
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
15 You should have received a copy of the GNU General Public License along
19190
9759915b2aca all: prefer https: URLs
Paul Eggert <eggert@cs.ucla.edu>
parents: 18683
diff changeset
16 with this program; if not, see <https://www.gnu.org/licenses/>. */
18069
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
17
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
18 /* Written by Paul Eggert. */
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
19
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
20 /* A time zone rule. */
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
21 struct tm_zone
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
22 {
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
23 /* More abbreviations, should they be needed. Their TZ_IS_SET
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
24 members are zero. */
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
25 struct tm_zone *next;
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
26
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
27 #if HAVE_TZNAME && !HAVE_TM_ZONE
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
28 /* Copies of recent strings taken from tzname[0] and tzname[1].
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
29 The copies are in ABBRS, so that they survive tzset. Null if unknown. */
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
30 char *tzname_copy[2];
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
31 #endif
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
32
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
33 /* If nonzero, the rule represents the TZ environment variable set
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
34 to the first "abbreviation" (this may be the empty string).
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
35 Otherwise, it represents an unset TZ. */
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
36 char tz_is_set;
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
37
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
38 /* A sequence of null-terminated strings packed next to each other.
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
39 The strings are followed by an extra null byte. If TZ_IS_SET,
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
40 there must be at least one string and the first string (which is
18683
ab094bdaf384 time_rz: fix comment typo
Paul Eggert <eggert@cs.ucla.edu>
parents: 18626
diff changeset
41 actually a TZ environment value) may be empty. Otherwise all
ab094bdaf384 time_rz: fix comment typo
Paul Eggert <eggert@cs.ucla.edu>
parents: 18626
diff changeset
42 strings must be nonempty.
18069
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
43
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
44 Abbreviations are stored here because otherwise the values of
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
45 tm_zone and/or tzname would be dead after changing TZ and calling
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
46 tzset. Abbreviations never move once allocated, and are live
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
47 until tzfree is called. */
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
48 char abbrs[FLEXIBLE_ARRAY_MEMBER];
1c6c8e9218c9 time_rz: port better to MinGW
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
49 };