Blame lib/time-internal.h

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