diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2019-04-30 09:44:38 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2019-04-30 09:45:08 -0700 |
commit | 46b434a62cea06bdcb3c8d9ee18284ab59e9b012 (patch) | |
tree | b14b9963adc009ecbf2f380630bf443a57f2ee87 /lib/timegm.c | |
parent | 826f1e260121edc5185e0ed3fa20a781fbddc9a2 (diff) | |
download | emacs-46b434a62cea06bdcb3c8d9ee18284ab59e9b012.tar.gz emacs-46b434a62cea06bdcb3c8d9ee18284ab59e9b012.tar.bz2 emacs-46b434a62cea06bdcb3c8d9ee18284ab59e9b012.zip |
Update from Gnulib
* build-aux/config.guess, doc/misc/texinfo.tex:
* lib/mktime-internal.h, lib/mktime.c, lib/timegm.c:
Copy from Gnulib.
* lib/gnulib.mk.in: Regenerate.
Diffstat (limited to 'lib/timegm.c')
-rw-r--r-- | lib/timegm.c | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/lib/timegm.c b/lib/timegm.c index 2ca57444d43..c440480cb2d 100644 --- a/lib/timegm.c +++ b/lib/timegm.c @@ -18,17 +18,41 @@ <http://www.gnu.org/licenses/>. */ #ifndef _LIBC -# include <config.h> +# include <libc-config.h> #endif #include <time.h> +#include <errno.h> #include "mktime-internal.h" -time_t -timegm (struct tm *tmp) +__time64_t +__timegm64 (struct tm *tmp) { static mktime_offset_t gmtime_offset; tmp->tm_isdst = 0; - return __mktime_internal (tmp, __gmtime_r, &gmtime_offset); + return __mktime_internal (tmp, __gmtime64_r, &gmtime_offset); } + +#if defined _LIBC && __TIMESIZE != 64 + +libc_hidden_def (__timegm64) + +time_t +timegm (struct tm *tmp) +{ + struct tm tm = *tmp; + __time64_t t = __timegm64 (&tm); + if (in_time_t_range (t)) + { + *tmp = tm; + return t; + } + else + { + __set_errno (EOVERFLOW); + return -1; + } +} + +#endif |