1 /* -*- buffer-read-only: t -*- vi: set ro: */
2 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
3 /* Time internal interface
4 
5    Copyright 2015-2019 Free Software Foundation, Inc.
6 
7    This program is free software; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 3, or (at your option)
10    any later version.
11 
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16 
17    You should have received a copy of the GNU General Public License along
18    with this program; if not, see <https://www.gnu.org/licenses/>.  */
19 
20 /* Written by Paul Eggert.  */
21 
22 /* A time zone rule.  */
23 struct tm_zone
24 {
25   /* More abbreviations, should they be needed.  Their TZ_IS_SET
26      members are zero.  */
27   struct tm_zone *next;
28 
29 #if HAVE_TZNAME && !HAVE_TM_ZONE
30   /* Copies of recent strings taken from tzname[0] and tzname[1].
31      The copies are in ABBRS, so that they survive tzset.  Null if unknown.  */
32   char *tzname_copy[2];
33 #endif
34 
35   /* If nonzero, the rule represents the TZ environment variable set
36      to the first "abbreviation" (this may be the empty string).
37      Otherwise, it represents an unset TZ.  */
38   char tz_is_set;
39 
40   /* A sequence of null-terminated strings packed next to each other.
41      The strings are followed by an extra null byte.  If TZ_IS_SET,
42      there must be at least one string and the first string (which is
43      actually a TZ environment value) may be empty.  Otherwise all
44      strings must be nonempty.
45 
46      Abbreviations are stored here because otherwise the values of
47      tm_zone and/or tzname would be dead after changing TZ and calling
48      tzset.  Abbreviations never move once allocated, and are live
49      until tzfree is called.  */
50   char abbrs[FLEXIBLE_ARRAY_MEMBER];
51 };
52