diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2015-07-27 16:50:44 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2015-07-27 16:51:22 -0700 |
commit | 2856b1dd6f0ff5164eb5a54ddfadb9963f9e9237 (patch) | |
tree | cff0c4728088e2cfc6939bd4a752c619a54c1cbd /lib/time-internal.h | |
parent | 094d5e9ef0fac319816c00cc52e0a0f2ef41be37 (diff) | |
download | emacs-2856b1dd6f0ff5164eb5a54ddfadb9963f9e9237.tar.gz emacs-2856b1dd6f0ff5164eb5a54ddfadb9963f9e9237.tar.bz2 emacs-2856b1dd6f0ff5164eb5a54ddfadb9963f9e9237.zip |
Merge from gnulib
This incorporates:
2015-07-27 time_rz: port better to MinGW
2015-07-27 time: port __need_time_t to MinGW
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib/strftime.c, lib/time.in.h, lib/time_rz.c: Copy from gnulib.
* lib/time-internal.h: New file, from gnulib.
Diffstat (limited to 'lib/time-internal.h')
-rw-r--r-- | lib/time-internal.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/lib/time-internal.h b/lib/time-internal.h new file mode 100644 index 00000000000..6bf3f8d30b7 --- /dev/null +++ b/lib/time-internal.h @@ -0,0 +1,49 @@ +/* Time internal interface + + Copyright 2015 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, see <http://www.gnu.org/licenses/>. */ + +/* Written by Paul Eggert. */ + +/* A time zone rule. */ +struct tm_zone +{ + /* More abbreviations, should they be needed. Their TZ_IS_SET + members are zero. */ + struct tm_zone *next; + +#if HAVE_TZNAME && !HAVE_TM_ZONE + /* Copies of recent strings taken from tzname[0] and tzname[1]. + The copies are in ABBRS, so that they survive tzset. Null if unknown. */ + char *tzname_copy[2]; +#endif + + /* If nonzero, the rule represents the TZ environment variable set + to the first "abbreviation" (this may be the empty string). + Otherwise, it represents an unset TZ. */ + char tz_is_set; + + /* A sequence of null-terminated strings packed next to each other. + The strings are followed by an extra null byte. If TZ_IS_SET, + there must be at least one string and the first string (which is + actually a TZ environment value value) may be empty. Otherwise + all strings must be nonempty. + + Abbreviations are stored here because otherwise the values of + tm_zone and/or tzname would be dead after changing TZ and calling + tzset. Abbreviations never move once allocated, and are live + until tzfree is called. */ + char abbrs[FLEXIBLE_ARRAY_MEMBER]; +}; |