summaryrefslogtreecommitdiff
path: root/lib/mktime.c
Commit message (Collapse)AuthorAgeFilesLines
* Update from GnulibPaul Eggert2019-04-301-27/+44
| | | | | | | * 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.
* Update from Gnulib.Paul Eggert2019-03-251-1/+1
| | | | | | | | | | | | | | | | This incorporates: 2019-03-23 Support cross-compilation to musl libc 2019-03-23 noreturn: In C++ mode with clang, use _Noreturn as fallback 2019-03-22 _Noreturn: beware of C's _Noreturn in C++ pre C++11 2019-03-19 Help making signal handlers more reliable 2019-03-18 _Noreturn: clang and MSVC do support [[noreturn]] in C++11 2019-03-17 _Noreturn: GCC 4.7 does not support [[noreturn]] in C++11 2019-03-14 all: Update URLs to msdn.microsoft.com * doc/misc/texinfo.tex, lib/_Noreturn.h, lib/gettimeofday.c: * lib/mktime.c, lib/regcomp.c, lib/regexec.c, lib/stat-time.h: * lib/utimens.c, m4/fdopendir.m4, m4/getgroups.m4: * m4/gettimeofday.m4, m4/gnulib-common.m4, m4/putenv.m4, m4/utimes.m4: Update from gnulib.
* Merge from origin/emacs-26Paul Eggert2018-12-311-1/+1
|\ | | | | | | | | | | 2fcf2df Fix copyright years by hand 26bed8b Update copyright year to 2019 2814292 Fix value of default frame height. (Bug#33921)
| * Update copyright year to 2019Paul Eggert2019-01-011-1/+1
| | | | | | | | Run 'TZ=UTC0 admin/update-copyright $(git ls-files)'.
* | Update from glibc and GnulibPaul Eggert2018-11-161-266/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This incorporates: 2018-11-15 mktime: DEBUG_MKTIME cleanup 2018-11-15 mktime: fix non-EOVERFLOW errno handling 2018-11-15 mktime: fix bug with Y2038 DST transition 2018-11-15 mktime: make more room for overflow 2018-11-15 mktime: simplify offset guess 2018-11-15 mktime: new test for mktime failure 2018-11-15 mktime: fix EOVERFLOW bug 2018-11-13 longlong: fix comment typo * lib/gnulib.mk.in: Regenerate. * lib/mktime.c, m4/longlong.m4: Copy from Gnulib.
* | Update from GnulibPaul Eggert2018-10-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This incorporates: 2018-10-05 explicit_bzero: make it possible to namespace 2018-10-04 fcntl: make it possible to namespace 2018-10-01 mkostemp, mkostemps: fix C++ compilation on Mac OS X 2018-09-19 maint: mktime.c now shared with glibc 2018-09-18 file-has-acl: fix test failure on Cygwin 2.9 2018-09-18 gettime: nanotime never existed * admin/merge-gnulib (AVOIDED_MODULES): Add mkdir. * doc/misc/texinfo.tex, lib/acl-internal.c, lib/acl-internal.h: * lib/acl_entries.c, lib/explicit_bzero.c, lib/fcntl.c: * lib/get-permissions.c, lib/gettime.c, lib/mktime.c: * lib/set-permissions.c, lib/stdlib.in.h, m4/acl.m4, m4/gettime.m4: Copy from Gnulib. * lib/gnulib.mk.in: Regenerate.
* | Update from GnulibPaul Eggert2018-09-101-61/+61
|/ | | | | | | | | | | | | | | | | | | | | | This incorporates: 2018-09-10 timespec: fix resolution confusion 2018-09-09 mktime: simplify in prep for glibc merge 2018-09-07 intprops: minor clarification of code 2018-09-06 stddef: Override max_align_t on NetBSD 8.0/x86 2018-09-06 fcntl: Fix F_DUPFD_CLOEXEC behaviour on Haiku 2018-09-06 strtoll, strtoull: Rely on limits-h module 2018-09-06 limits-h: Provide numerical limits macros 2018-09-06 fcntl: Don't access nonexistent optional argument 2018-09-02 mktime: fix unlikely race+overflow bug 2018-08-31 mktime, timegm: simplify glibc time64_t 2018-08-31 mktime, timegm: simplify merge to glibc * build-aux/config.guess, build-aux/config.sub: * lib/dtotimespec.c, lib/fcntl.c, lib/intprops.h: * lib/limits.in.h, lib/mktime-internal.h, lib/mktime.c: * lib/stat-time.h, lib/strtol.c, lib/timegm.c: * lib/timespec-add.c, lib/timespec-sub.c, lib/timespec.h: * lib/utimens.c, m4/limits-h.m4, m4/stddef_h.m4: Copy from Gnulib.
* Merge from GnulibPaul Eggert2017-12-311-1/+1
| | | | | | | This incorporates: 2018-01-01 maint: Run 'make update-copyright' 2017-12-29 Add cross-compilation results for GNU/Hurd. 2017-12-12 explicit_bzero: port to macOS + Clang 9.0.0
* Merge from GnulibPaul Eggert2017-09-131-1/+1
| | | | | | | This incorporates: 2017-09-13 all: prefer https: URLs This just changes http: to https: in comments, in files copied from Gnulib.
* Merge from gnulibPaul Eggert2017-05-141-3/+22
| | | | | | | | | | | | | | | | | | | | | This incorporates: 2017-05-13 largefile: Simplify 2017-05-13 largefile: Improve and document 2017-05-13 truncate: New module 2017-05-13 windows-stat-timespec: New module 2017-05-13 windows-stat-override: New module 2017-05-11 getopt-posix: port to mingw 2017-05-11 gettimeofday: Increase precision on mingw 2017-05-10 time: Fix missing initialization of HAVE_TIMEZONE_T 2017-05-10 Implement a way to opt out from MSVC support 2017-05-09 tzset: Expand comment about TZ problem on native Windows * build-aux/config.guess, lib/dup2.c, lib/fcntl.c, lib/fsync.c: * lib/getdtablesize.c, lib/getopt.c, lib/gettimeofday.c: * lib/mktime.c, lib/stat-time.h, lib/sys_stat.in.h, lib/unistd.in.h: * lib/utimens.c, m4/gettimeofday.m4, m4/largefile.m4: * m4/sys_stat_h.m4, m4/sys_time_h.m4, m4/time_h.m4, m4/time_rz.m4: * m4/unistd_h.m4: Copy from gnulib. * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* Merge from gnulibPaul Eggert2017-04-301-3/+44
| | | | | | | | | | | | | | | | | This incorporates: 2017-04-30 strftime-fixes: New module 2017-04-30 mktime: Work around TZ problem on native Windows 2017-04-30 ctime, localtime: New modules 2017-04-30 gettimeofday: Provide higher resolution on native Windows 2017-04-29 utime-h: Modernize handling of 'struct utimbuf' 2017-04-29 Make use of module 'utime-h' 2017-04-30 Fix a few typos * admin/merge-gnulib (AVOIDED_MODULES): Avoid utime-h, too. * lib/gettimeofday.c, lib/mktime.c, lib/time.in.h, lib/utimens.c: * m4/gettimeofday.m4, m4/include_next.m4, m4/mktime.m4: * m4/strftime.m4, m4/time_h.m4, m4/timegm.m4, m4/utimens.m4: Copy from gnulib. * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* Merge from gnulibPaul Eggert2017-01-101-1/+1
| | | | | | | | | | | | This incorporates: 2017-01-09 maint: time stamp -> timestamp 2017-01-07 stdioext: Port to Minix 3.2 and newer 2017-01-06 glob, intprops, xalloc: work around Clang bug 2017-01-02 revert copyright-year change to synced files * doc/misc/texinfo.tex, lib/fpending.c, lib/intprops.h, lib/mktime.c: * lib/stat-time.h, lib/stdio-impl.h, lib/time.in.h, lib/timespec.h: * lib/utimens.c, lib/xalloc-oversized.h: Copy from gnulib.
* Merge from origin/emacs-25Paul Eggert2017-01-011-1/+1
|\ | | | | | | | | 2e2a806 Fix copyright years by hand 5badc81 Update copyright year to 2017
| * Update copyright year to 2017Paul Eggert2016-12-311-1/+1
| | | | | | | | Run admin/update-copyright.
* | Update from gnulibPaul Eggert2016-08-031-0/+2
| | | | | | | | | | | | | | This incorporates: 2016-07-03 mktime: call tzset as per POSIX * doc/misc/texinfo.tex, lib/mktime.c, m4/mktime.m4: Copy from gnulib.
* | Sync from gnulibPaul Eggert2016-05-131-1/+1
| | | | | | | | | | | | | | This incorporates a spelling fix, plus: 2016-05-09 Fix undefined behaviour in gettext.h * lib/gettext.h, lib/mktime.c: Copy from gnulib.
* | Sync from gnulibPaul Eggert2016-05-011-287/+174
|/ | | | | | | | | | | | | | | | This incorporates: 2016-05-01 mktime: port to stricter signed overflow checking 2016-05-01 mktime: speed up DEBUG_MKTIME benchmarks 2016-05-01 mktime: resurrect DEBUG_MKTIME testing 2016-05-01 mktime: simplify DEBUG_MKTIME 2016-05-01 Port mktime_internal offset to unsigned time_t 2016-04-27 xstrtol: prohibit monstrosities like "1bB" 2016-04-13 mktime: improve integer overflow checking 2016-04-13 intprops: check two's complement assumption 2016-04-13 intprops, mktime, strtol: assume two's complement * lib/intprops.h, lib/mktime-internal.h, lib/mktime.c: * lib/strtol.c, lib/timegm.c, m4/mktime.m4, m4/std-gnu11.m4: Copy from gnulib.
* Merge from gnulibPaul Eggert2016-01-241-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | This incorporates: 2016-01-24 openat_proc_name: fix last '/' overwritten on OS/2 kLIBC 2016-01-24 closedir, dirfd, opendir: port to OpenSolaris 5.10 2016-01-15 detect utimes() correctly on OS/2 kLIBC 2016-01-15 openat_proc_name: port to OS/2 kLIBC 2016-01-14 stdint: check _INTPTR_T_DECLARED for intptr_t etc. 2016-01-14 opendir, closedir, dirfd, fdopendir: port to OS/2 kLIBC 2016-01-14 dup, dup2, fcntl: support a directory fd on OS/2 kLIBC 2016-01-14 binary-io: don't put fd in binary mode if a console on EMX 2016-01-14 sig2str: list all signals on FreeBSD >= 7 2016-01-13 acl-permissions: port to USE_ACL==0 platforms 2016-01-12 mktime: rename macro to avoid glibc clash 2016-01-12 Port "$@" to OpenIndiana ksh93 2016-01-12 Port Universal Time settings to strict POSIX * build-aux/gitlog-to-changelog, build-aux/update-copyright: * doc/misc/texinfo.tex, lib/acl-internal.c, lib/acl-internal.h: * lib/binary-io.h, lib/dirent.in.h, lib/dirfd.c, lib/dup2.c: * lib/fcntl.c, lib/fdopendir.c, lib/mktime.c, lib/openat-proc.c: * lib/sig2str.h, lib/stdint.in.h, m4/dirfd.m4, m4/dup2.m4: * m4/fcntl.m4, m4/utimes.m4: Copy from gnulib. * m4/gnulib-comp.m4: Regenerate.
* Merge from gnulibPaul Eggert2016-01-011-1/+1
| | | | | This mostly just updates copyright dates of gnulib files. It also updates to the latest version of texinfo.tex.
* Merge from gnulib, incorporating:Paul Eggert2015-01-011-1/+1
| | | | 2015-01-01 version-etc: new year
* Merge from gnulib, incorporating:Paul Eggert2014-07-121-2/+2
| | | | | 2014-06-27 mktime: merge #if/#ifdef usage from glibc * lib/mktime.c: Update from gnulib.
* Update copyright year to 2014 by running admin/update-copyright.Paul Eggert2014-01-011-1/+1
|
* Update copyright notices for 2013.Paul Eggert2013-01-011-1/+1
|
* Merge from gnulib.Paul Eggert2012-08-191-2/+2
| | | | | | 2012-08-19 ignore-value, stat-time, timespec: omit AC_C_INLINE 2012-08-19 mktime, sys_select: avoid 'static inline' 2012-08-19 gnulib-tool: Fix indentation.
* Merge from gnulib.Paul Eggert2012-05-261-214/+218
| | | | Fixes: debbugs:11527
* gnulib: import mktime and move-if-change fixes from gnulibPaul Eggert2011-01-301-65/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure: Regenerate from the following. 2011-01-30 Paul Eggert <eggert@cs.ucla.edu> mktime: clarify long_int width checking * lib/mktime.c (long_int_is_wide_enough): Move this assertion to the top level, to make it clearer that the assumption about long_int width is being checked. See <http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00554.html>. 2011-01-29 Paul Eggert <eggert@cs.ucla.edu> TYPE_MAXIMUM: avoid theoretically undefined behavior * lib/intprops.h (TYPE_MINIMUM, TYPE_MAXIMUM): Do not shift a negative number, which the C Standard says has undefined behavior. In practice this is not a problem, but might as well do it by the book. Reported by Rich Felker and Eric Blake; see <http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00493.html>. * m4/mktime.m4 (AC_FUNC_MKTIME): Likewise. * lib/mktime.c (TYPE_MAXIMUM): Redo slightly to match the others. mktime: #undef mktime before #defining it * lib/mktime.c (mktime) [DEBUG]: #undef mktime before #defining it. mktime: systematically normalize tm_isdst comparisons * lib/mktime.c (isdst_differ): New function. (__mktime_internal): Use it systematically for all isdst comparisons. This completes the fix for libc BZ #6723, and removes the need for normalizing tm_isdst. See <http://sourceware.org/bugzilla/show_bug.cgi?id=6723> (not_equal_tm) [DEBUG]: Use isdst_differ here, too. mktime: fix some integer overflow issues and sidestep the rest This was prompted by a bug report by Benjamin Lindner for MinGW <http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00472.html>. His bug is due to signed integer overflow (0 - INT_MIN), and I I scanned through mktime.c looking for other integer overflow problems, fixing all the bugs I found. Although the C Standard says the resulting code is still not safe in the presence of integer overflow, in practice it should be good enough for all real-world two's-complement implementations, except for debugging environments that deliberately trap on integer overflow (e.g., gcc -ftrapv). * lib/mktime.c (WRAPV): New macro. (SHR): Also check that long_int and time_t shift right in the usual way, before using the fast-but-unportable method. (TYPE_ONES_COMPLEMENT, TYPE_SIGNED_MAGNITUDE): Remove, no longer used. The code already assumed two's complement, so there's no need to test for alternatives. All uses removed. (TYPE_MAXIMUM): Don't rely here on overflow behavior not defined by the C standard. Problem reported by Rich Felker in <http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00488.html>. (twos_complement_arithmetic): Also check long_int and time_t. (time_t_avg, time_t_add_ok, time_t_int_add_ok): New functions. (guess_time_tm, ranged_convert, __mktime_internal): Use them. (__mktime_internal): Avoid integer overflow with unary subtraction in two instances where -1 - X is an adequate replacement for -X, since the calculations are approximate. 2011-01-29 Eric Blake <eblake@redhat.com> mktime: avoid infinite loop * m4/mktime.m4 (AC_FUNC_MKTIME): Avoid overflow on possibly-signed type; behavior is still undefined but portable to all known targets. Reported by Rich Felker. 2011-01-28 Paul Eggert <eggert@cs.ucla.edu> mktime: avoid problems on NetBSD 5 / i386 * lib/mktime.c (long_int): New type. This works around a problem on NetBSD 5 / i386, where 'long int' and 'int' are both 32 bits but time_t is 64 bits, and where I expect the existing code is wrong in some cases. (leapyear, ydhms_diff, guess_time_tm, __mktime_internal): Use it. (ydhms_diff): Bring back the compile-time check for wide-enough year and yday. mktime: fix misspelling in comment * lib/mktime.c (__mktime_internal): Fix misspelling in comment. This merges all recent glibc changes of importance. 2011-01-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> move-if-change: cope with concurrent mv of identical file. * move-if-change (CMPPROG): Accept environment variable as an override for `cmp'. (usage): Document CMPPROG. Adjust comparison to drop stdout. Cope with failure of mv if the target file exists and is identical to the source, for parallel builds. Report from H.J. Lu against binutils in PR binutils/12283.
* Regenerate.Paul Eggert2011-01-081-0/+669