Blame src/gl/time-internal.h

Packit aea12f
/* Time internal interface
Packit aea12f
Packit Service 991b93
   Copyright 2015-2020 Free Software Foundation, Inc.
Packit aea12f
Packit aea12f
   This program is free software; you can redistribute it and/or modify
Packit aea12f
   it under the terms of the GNU General Public License as published by
Packit aea12f
   the Free Software Foundation; either version 3, or (at your option)
Packit aea12f
   any later version.
Packit aea12f
Packit aea12f
   This program is distributed in the hope that it will be useful,
Packit aea12f
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit aea12f
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit aea12f
   GNU General Public License for more details.
Packit aea12f
Packit aea12f
   You should have received a copy of the GNU General Public License along
Packit aea12f
   with this program; if not, see <https://www.gnu.org/licenses/>.  */
Packit aea12f
Packit aea12f
/* Written by Paul Eggert.  */
Packit aea12f
Packit aea12f
/* A time zone rule.  */
Packit aea12f
struct tm_zone
Packit aea12f
{
Packit aea12f
  /* More abbreviations, should they be needed.  Their TZ_IS_SET
Packit aea12f
     members are zero.  */
Packit aea12f
  struct tm_zone *next;
Packit aea12f
Packit aea12f
#if HAVE_TZNAME && !HAVE_TM_ZONE
Packit aea12f
  /* Copies of recent strings taken from tzname[0] and tzname[1].
Packit aea12f
     The copies are in ABBRS, so that they survive tzset.  Null if unknown.  */
Packit aea12f
  char *tzname_copy[2];
Packit aea12f
#endif
Packit aea12f
Packit aea12f
  /* If nonzero, the rule represents the TZ environment variable set
Packit aea12f
     to the first "abbreviation" (this may be the empty string).
Packit aea12f
     Otherwise, it represents an unset TZ.  */
Packit aea12f
  char tz_is_set;
Packit aea12f
Packit aea12f
  /* A sequence of null-terminated strings packed next to each other.
Packit aea12f
     The strings are followed by an extra null byte.  If TZ_IS_SET,
Packit aea12f
     there must be at least one string and the first string (which is
Packit aea12f
     actually a TZ environment value) may be empty.  Otherwise all
Packit aea12f
     strings must be nonempty.
Packit aea12f
Packit aea12f
     Abbreviations are stored here because otherwise the values of
Packit aea12f
     tm_zone and/or tzname would be dead after changing TZ and calling
Packit aea12f
     tzset.  Abbreviations never move once allocated, and are live
Packit aea12f
     until tzfree is called.  */
Packit aea12f
  char abbrs[FLEXIBLE_ARRAY_MEMBER];
Packit aea12f
};