Log

Author Commit Date CI Message
Bruno Haible da830b51 2017-05-14T21:32:41 stat-time tests: Improve comment. * tests/test-stat-time.c: Add hyperlink, from Paul Eggert.
Bruno Haible 0e9b97cf 2017-05-14T17:33:37 same-inode: Adapt for windows-stat-inodes. * lib/same-inode.h: Include <sys/types.h>. (SAME_INODE) [_GL_WINDOWS_STAT_INODES]: Define specifically. * modules/same-inode (Depends-on): Add sys_types.
Bruno Haible 8123b614 2017-05-14T14:20:01 windows-stat-inodes: New module. * m4/windows-stat-inodes.m4: New file. * m4/sys_types_h.m4 (gl_SYS_TYPES_H): Set WINDOWS_STAT_INODES. * modules/sys_types (Makefile.am): Substitute WINDOWS_STAT_INODES. * lib/sys_types.in.h [WINDOWS_STAT_INODES]: Override dev_t and ino_t. (_GL_WINDOWS_STAT_INODES): New macro. * lib/stat-w32.c: Set _WIN32_WINNT. Include <string.h>, verify.h. (GetFileInformationByHandleExFunc): New variable. (initialize): Initialize it. (_gl_fstat_by_handle) [_GL_WINDOWS_STAT_INODES]: Initialize st_dev and st_ino appropriately. * lib/stat.c (rpl_stat): Use the directory entry based approach only as a fallback, because it does not provide st_dev and st_ino values. * modules/fstat (Depends-on): Add 'verify'. * modules/windows-stat-inodes: New file. * doc/windows-stat-inodes.texi: New file. * doc/gnulib.texi: Include it. * doc/posix-headers/sys_stat.texi: Mention the new module.
Bruno Haible d75a6cfc 2017-05-14T17:37:31 stat-time tests: Workaround for native Windows. * tests/test-stat-time.c: Include <stdio.h>, <time.h>. (filename_stamp1, filename_testfile, filename_stamp2, filename_stamp3): New variables. (initialize_filenames): New function. (main): Invoke it. (cleanup, prepare_test): Update.
Bruno Haible 5f1eef73 2017-05-14T17:35:16 stat-time: Adapt for windows-stat-timespec. * lib/stat-time.h (get_stat_birthtime) [_GL_WINDOWS_STAT_TIMESPEC]: Use entire st_ctim field.
Jim Meyering 8e2bc0b5 2017-05-13T18:18:22 maint.mk: update regex to reflect 2013 addition of "assume" to verify.h * top/maint.mk (sc_prohibit_verify_without_use): Don't reject a source file that uses the assume macro, claiming that verify.h is unused.
Bruno Haible 4ecbdc82 2017-05-13T03:04:54 year2038: New module. * m4/year2038.m4: New file. * modules/year2038: New file. * doc/year2038.texi: New file. * doc/gnulib.texi: Include it.
Bruno Haible 47727ffa 2017-05-13T13:07:26 Use symbolic values for _WIN32_WINNT. * lib/ftruncate.c (_WIN32_WINNT): Use symbolic value _WIN32_WINNT_WIN2K. * lib/sethostname.c (_WIN32_WINNT): Likewise.
Bruno Haible 6327c7d8 2017-05-13T10:35:06 largefile: Simplify. * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Remove unused definition of _GL_WINDOWS_64_BIT_ST_SIZE.
Bruno Haible 7a066745 2017-05-13T03:03:07 largefile: Improve and document. * m4/largefile.m4 (gl_LARGEFILE): Set WINDOWS_64_BIT_ST_SIZE to 0 if the mingw headers already define 'stat' appropriately. * modules/largefile (Description): Clarify. * doc/largefile.texi: New file. * doc/gnulib.texi: Include it. * doc/posix-headers/sys_types.texi: Update.
Bruno Haible 63e26828 2017-05-13T02:55:24 truncate-tests: New module. * tests/test-truncate.c: New file. * modules/truncate-tests: New file.
Bruno Haible f4d71054 2017-05-13T02:54:37 truncate: New module. * lib/unistd.in.h (truncate): New declaration. * lib/truncate.c: New file. * m4/truncate.m4: New file. * m4/unistd_h.m4 (gl_UNISTD_H): Test whether 'truncate' is declared. (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_TRUNCATE, HAVE_TRUNCATE, REPLACE_TRUNCATE. * modules/unistd (Makefile.am): Substitute GNULIB_TRUNCATE, HAVE_TRUNCATE, REPLACE_TRUNCATE. * modules/truncate: New file. * tests/test-unistd-c++.cc (truncate): Test signature. * doc/posix-functions/truncate.texi: Mention the new module.
Bruno Haible 7d2f35f7 2017-05-13T02:51:05 windows-stat-timespec: New module. * modules/windows-stat-timespec: New file. * m4/windows-stat-timespec.m4: New file. * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Set WINDOWS_STAT_TIMESPEC. * modules/sys_stat (Makefile.am): Substitute WINDOWS_STAT_TIMESPEC. * lib/sys_stat.in.h (struct stat) [WINDOWS_STAT_TIMESPEC]: Declare with fields st_atim, st_mtim, st_ctim. (st_atime, st_mtime, st_ctime): Define as macros. (_GL_WINDOWS_STAT_TIMESPEC): New macro. * lib/stat-w32.h (_gl_convert_FILETIME_to_timespec) [_GL_WINDOWS_STAT_TIMESPEC]: New declaration. * lib/stat-w32.c (_gl_convert_FILETIME_to_timespec) [_GL_WINDOWS_STAT_TIMESPEC]: New function. (_gl_convert_FILETIME_to_POSIX): Adjust coding style. (_gl_fstat_by_handle): If _GL_WINDOWS_STAT_TIMESPEC, convert the FILETIME to 'struct timespec', not 'time_t'. * lib/stat.c (rpl_stat): If _GL_WINDOWS_STAT_TIMESPEC, convert the FILETIME to 'struct timespec', not 'time_t'. * lib/stat-time.h (STAT_TIMESPEC): Define also if _GL_WINDOWS_STAT_TIMESPEC. * doc/windows-stat-timespec.texi: New file. * doc/gnulib.texi: Include it.
Bruno Haible 44fe2082 2017-05-13T02:46:43 windows-stat-override: New module. * lib/sys_stat.in.h (stat) [GNULIB_OVERRIDES_STRUCT_STAT]: Provide own definition. Define GNULIB_defined_struct_stat. (fstat, fstatat, lstat, stat) [GNULIB_OVERRIDES_STRUCT_STAT]: Provoke link error if this symbol is used and the corresponding module is not in use. (_stat64, _stat32i64, _stati64, _stat32, _stat64i32): Don't redefine if GNULIB_OVERRIDES_STRUCT_STAT. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Initialize GNULIB_OVERRIDES_STRUCT_STAT. * modules/sys_stat (Makefile.am): Substitute GNULIB_OVERRIDES_STRUCT_STAT. * modules/windows-stat-override: New file.
Bruno Haible 532f7f1e 2017-05-13T02:39:00 fstat: Fix module dependency conditions. * modules/fstat (Depends-on): Fix typo.
Bruno Haible 3a447f59 2017-05-13T02:36:19 stat, fstat: Complete removal of old native Windows code. * lib/stat.c: Remove old macrology for WINDOWS_NATIVE. * lib/fstat.c: Likewise. * lib/stat-w32.c: Likewise.
Bruno Haible 4557f862 2017-05-13T02:32:24 stat: Complete removal of REPLACE_FUNC_STAT_DIR code. * lib/stat.c: Remove all REPLACE_FUNC_STAT_DIR code.
Karl Berry 757a0f5a 2017-05-12T06:18:50 autoupdate
Paul Eggert 19fb4184 2017-05-11T17:59:25 getopt-posix: port to mingw * lib/getopt.c (flockfile, funlockfile): Define on mingw. Problem reported by Daniel P. Berrage in: http://lists.gnu.org/archive/html/bug-gnulib/2017-05/msg00086.html
Bruno Haible 055746f5 2017-05-11T21:38:28 gettimeofday: Increase precision on mingw. * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): Require AC_CANONICAL_HOST. Set REPLACE_GETTIMEOFDAY to 1 on mingw. * lib/gettimeofday.c (gettimeofday): On native Windows, use the GetSystemTimePreciseAsFileTime based implementation always. * doc/posix-functions/gettimeofday.texi: Mention precision problem on mingw.
Bruno Haible 8898223d 2017-05-11T16:31:25 poll: Fix confusion between SOCKETs and FDs on native Windows. Fix proposed by Daniel P. Berrange <berrange@redhat.com>. * lib/poll.c [WINDOWS_NATIVE]: Undefine select.
Karl Berry d8c3882d 2017-05-11T06:50:43 autoupdate
Bruno Haible df7f87df 2017-05-11T15:22:13 doc: Clarify doc about socket functions on native Windows. This reworks doc that was added on 2008-09-29. * doc/posix-functions/select.texi: Fix copy-and-paste mistake and use clearer wording. * doc/posix-functions/accept.texi: Use clearer wording. * doc/posix-functions/bind.texi: Likewise. * doc/posix-functions/connect.texi: Likewise. * doc/posix-functions/getpeername.texi: Likewise. * doc/posix-functions/getsockname.texi: Likewise. * doc/posix-functions/getsockopt.texi: Likewise. * doc/posix-functions/ioctl.texi: Likewise. * doc/posix-functions/listen.texi: Likewise. * doc/posix-functions/recv.texi: Likewise. * doc/posix-functions/recvfrom.texi: Likewise. * doc/posix-functions/send.texi: Likewise. * doc/posix-functions/sendto.texi: Likewise. * doc/posix-functions/setsockopt.texi: Likewise. * doc/posix-functions/shutdown.texi: Likewise. * doc/posix-functions/socket.texi: Likewise.
Bruno Haible 4df5fde5 2017-05-11T00:38:03 poll: Fix link error on native Windows. * lib/poll.c [WINDOWS_NATIVE]: Undefine recv.
Bruno Haible 2511522d 2017-05-11T00:27:52 time: Fix missing initialization of HAVE_TIMEZONE_T. * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize HAVE_TIMEZONE_T here... * m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_DEFAULTS): ... not here. * m4/time_rz.m4 (gl_TIME_RZ): Require gl_HEADER_TIME_H_DEFAULTS, not gl_HEADER_SYS_TIME_H_DEFAULTS. * modules/time_rz (Depends-on): Add 'time'. Remove useless quoting. (configure.ac): Remove useless quoting.
Bruno Haible f16bb1a7 2017-05-10T23:39:15 Implement a way to opt out from MSVC support, part 2. * modules/msvc-inval (Include): Document recommended idiom. * modules/msvc-nothrow (Include): Likewise.
Bruno Haible 03c3f38b 2017-05-10T21:52:21 Implement a way to opt out from MSVC support. This is useful for Emacs. * modules/msvc-nothrow (configure.ac): Invoke gl_MODULE_INDICATOR. * lib/accept4.c: Include <io.h> as an alternative to msvc-nothrow.h. * lib/error.c: Likewise. * lib/fcntl.c: Likewise. * lib/flock.c: Likewise. * lib/fstat.c: Likewise. * lib/fsync.c: Likewise. * lib/ioctl.c: Likewise. * lib/isapipe.c: Likewise. * lib/lseek.c: Likewise. * lib/nonblocking.c: Likewise. * lib/poll.c: Likewise. * lib/select.c: Likewise. * lib/sockets.h: Likewise. * lib/sockets.c: Likewise. * lib/stdio-read.c: Likewise. * lib/stdio-write.c: Likewise. * lib/utimens.c: Likewise. * lib/w32sock.h: Likewise. * lib/w32spawn.h: Likewise. * tests/test-cloexec.c: Likewise. * tests/test-dup-safer.c: Likewise. * tests/test-dup2.c: Likewise. * tests/test-dup3.c: Likewise. * tests/test-fcntl.c: Likewise. * tests/test-pipe.c: Likewise. * tests/test-pipe2.c: Likewise. * lib/ftruncate.c: Likewise. (chsize_nothrow): Renamed from chsize. * lib/msvc-nothrow.c: Don't include msvc-inval.h if HAVE_MSVC_INVALID_PARAMETER_HANDLER is not defined. * lib/close.c: Likewise. * lib/dup.c: Likewise. * lib/fclose.c: Likewise. * lib/raise.c: Likewise. * tests/test-fgetc.c: Likewise. * tests/test-fputc.c: Likewise. * tests/test-fread.c: Likewise. * tests/test-fwrite.c: Likewise. * lib/getdtablesize.c: Likewise. (_setmaxstdio_nothrow): Renamed from _setmaxstdio. * lib/isatty.c: Don't include msvc-inval.h if HAVE_MSVC_INVALID_PARAMETER_HANDLER is not defined. Include <io.h> as an alternative to msvc-nothrow.h. * lib/read.c: Likewise. * lib/write.c: Likewise. * lib/dup2.c: Likewise. (dup2_nothrow): New function. (ms_windows_dup2): Use it. * m4/close.m4 (gl_FUNC_CLOSE): Invoke gl_MSVC_INVAL and test HAVE_MSVC_INVALID_PARAMETER_HANDLER only if gl_MSVC_INVAL is defined. * m4/dup.m4 (gl_FUNC_DUP): Likewise. * m4/fdopen.m4 (gl_FUNC_FDOPEN): Likewise. * m4/raise.m4 (gl_FUNC_RAISE): Likewise. * m4/read.m4 (gl_FUNC_READ): Likewise. * m4/write.m4 (gl_FUNC_WRITE): Likewise. * doc/windows-without-msvc.texi: New file. * doc/gnulib.texi (Native Windows Support without MSVC Support): New section.
Bruno Haible 1888a27a 2017-05-10T20:42:33 wait-process: Adjust native Windows support. * lib/wait-process.c: Use the usual condition for recognizing a native Windows platform.
Bruno Haible 8621e568 2017-05-10T20:30:45 doc: New chapter "Native Windows Support". * doc/gnulib.texi (Native Windows Support): New chapter. * doc/windows-libtool.texi: Small wording changes. * doc/windows-sockets.texi: Small wording and formatting changes.
Bruno Haible d0a9c554 2017-05-10T19:43:20 doc: Move section "Library version handling". * doc/gnulib.texi: Move section "Library version handling" from chapter "Miscellaneous Notes" to chapter "Particular Modules".
Bruno Haible 33c1f82e 2017-05-10T19:39:36 doc: Move section "Running self-tests under valgrind". * doc/gnulib.texi: Move section "Running self-tests under valgrind" from chapter "Particular Modules" to chapter "Miscellaneous Notes".
Bruno Haible b23eb748 2017-05-10T19:35:44 doc: New chapter "Build Infrastructure Modules". * doc/gnulib.texi (Build Infrastructure Modules): New chapter.
Bruno Haible 67d14683 2017-05-10T19:19:51 Prepare for reordering sections in the manual. * doc/gnulib.texi: Move several sections to separate files. Include these files. * doc/out-of-memory.texi: New file, extracted from doc/gnulib.texi. * doc/obsolete.texi: Likewise. * doc/extra-tests.texi: Likewise. * doc/transversal.texi: Likewise. * doc/namespace.texi: Likewise. * doc/check-version.texi: Likewise. * doc/windows-sockets.texi: Likewise. * doc/windows-libtool.texi: Likewise. * doc/licenses-texi.texi: Likewise. * doc/build-automation.texi: Likewise. * doc/c-locale.texi: Likewise.
Bruno Haible 3f67783f 2017-05-10T18:40:13 Fix instructions how to update manual on www.gnu.org. * doc/README: Add -I option, so that texi2dvi finds texinfo.tex.
Bruno Haible aca75e96 2017-05-09T21:27:27 tzset: Expand comment about TZ problem on native Windows. * lib/tzset.c (tzset): Elaborate comment, based on explanations by Paul Eggert. * lib/ctime.c (rpl_ctime): Likewise. * lib/localtime.c (rpl_localtime): Likewise. * lib/mktime.c (mktime): Likewise. * lib/strftime-fixes.c (rpl_strftime): Likewise. * lib/wcsftime.c (rpl_wcsftime): Likewise.
Paul Eggert d9c44b2b 2017-05-08T10:37:48 intprops: don’t depend on ‘verify’ Problem reported by Ævar Arnfjörð Bjarmason in: http://lists.gnu.org/archive/html/bug-gnulib/2017-05/msg00054.html * lib/intprops.h: Do not include verify.h, and move compile-time checks from here ... * tests/test-intprops.c (main): ... to here, if they’re not here already. Check widths of other standard integer types. * modules/intprops (Depends-on): Remove ‘verify’.
Bruno Haible 26d56678 2017-05-07T21:50:30 utimens: On native Windows, support 100ns resolution also if fd < 0. * lib/utime.in.h: Include <time.h>. (_gl_utimens_windows): New declaration. * lib/utime.c (_gl_utimens_windows): New function, based on utime. (utime): Invoke it. * lib/utimens.c (fdutimens): On native Windows, call _gl_utimens_windows instead of utime. * modules/utime (Depends-on): Add 'time'.
Bruno Haible df46bfb9 2017-05-07T21:19:13 utimens: Improve error code on native Windows. * lib/utimens.c (fdutimens): If fd was not opened with O_RDWR, fail with error code EACCES, not EINVAL.
Bruno Haible eb5c620e 2017-05-07T21:09:25 utime: Handle more Windows error codes. * lib/utime.c (utime): Handle ERROR_BAD_NETPATH. Based on explanations by Billy O'Neal.
Bruno Haible 4f0a093a 2017-05-05T18:28:58 crypto/rijndael: Fix "strict-aliasing rules" warnings, alignment issues. * lib/rijndael-api-fst.c (rijndaelBlockEncrypt): Declare 'block' as a union. (rijndaelPadEncrypt, rijndaelBlockDecrypt): Likewise. (rijndaelPadDecrypt): Likewise. Use local variable 'iv' to cache the value of cipher->IV.
Bruno Haible 7a10cf55 2017-05-05T23:21:33 wctype-h-c++-tests: Update. * tests/test-wctype-h-c++.cc: Reorder to match lib/wchar.in.h.
Bruno Haible 2c3911f5 2017-05-05T23:19:40 wchar-c++-tests: Update. * tests/test-wchar-c++.cc (wcsftime): Declare, missing since 2017-04-30.
Bruno Haible 308880d8 2017-05-05T23:16:31 utime-h-c++-tests: New module. * tests/test-utime-h-c++.cc: New file. (utime): Declare, missing since 2017-04-30. * modules/utime-h-c++-tests: New file.
Bruno Haible 22760ce6 2017-05-05T23:11:12 unistd-c++-tests: Update. * tests/test-unistd-c++.cc (isatty): Declare, missing since 2012-01-03. (read): Declare, missing since 2011-04-15. (sethostname): Declare, missing since 2011-12-03.
Bruno Haible 8f4aa684 2017-05-05T23:04:27 time-c++-tests: Update. * tests/test-time-c++.cc (tzset): Declare, missing since 2017-05-01. (localtime, gmtime): Declare, missing since 2017-04-30. (ctime): Declare, missing since 2017-04-30. (strftime): Declare, missing since 2017-04-30. (tzalloc, tzfree, localtime_rz, mktime_z): Declare, missing since 2015-07-24.
Bruno Haible f614b66a 2017-05-05T22:43:41 sys_resource-c++-tests: New module. * tests/test-sys_resource-c++.cc: New file. (getrusage): Declare, missing since 2012-04-13. * modules/sys_resource-c++-tests: New file.
Bruno Haible e31d3f5c 2017-05-05T22:40:19 strings-c++-tests: New module. * tests/test-strings-c++.cc: New file. (ffs): Declare, missing since 2011-07-12. * modules/strings-c++-tests: New file.
Bruno Haible ec17d752 2017-05-05T22:36:48 string-c++-tests: Update. * tests/test-string-c++.cc (ffsl): Declare, missing since 2011-07-15. (ffsll): Declare, missing since 2011-07-15.
Bruno Haible b8af9e17 2017-05-05T22:29:18 stdlib-c++-tests: Update. * tests/test-stdlib-c++.cc (posix_openpt): Declare, missing since 2011-10-18. (ptsname_r): Declare, missing since 2011-11-07. (qsort_r): Declare, missing since 2014-08-29. (random, srandom, initstate, setstate): Declare, missing since 2012-01-14. (secure_getenv): Declare, missing since 2013-02-05.
Bruno Haible dc3abe2b 2017-05-05T22:13:37 stdio-c++-tests: Update. * tests/test-stdio-c++.cc (pclose): Declare, missing since 2011-09-18.
Bruno Haible 532cc565 2017-05-05T22:08:05 signal-h-c++-tests: Update. * tests/test-signal-h-c++.cc (raise): Remove redundant declaration.
Bruno Haible b42edb72 2017-05-05T22:03:49 math-c++-tests: Update. * tests/test-math-c++.cc (fmaf): Declare, missing since 2011-10-17. (fma): Declare, missing since 2011-10-17. (fmal): Declare, missing since 2011-10-17.
Bruno Haible b2ed664d 2017-05-05T21:57:14 locale-c++-tests: Update. * tests/test-locale-c++.cc (localeconv): Declare, missing since 2012-03-25.
Bruno Haible f33c4869 2017-05-05T21:50:57 inttypes-c++-tests: New module. * tests/test-inttypes-c++.cc: New file. (strtoimax): Declare, missing since 2012-01-05. (strtoumax): Declare, missing since 2012-01-05. * modules/inttypes-c++-tests: New file.
Bruno Haible 89b335be 2017-05-05T21:38:07 dirent-c++-tests: Update. * tests/test-dirent-c++.cc (readdir): Declare, missing since 2011-09-13. (rewinddir): Declare, missing since 2011-09-13. (dirfd): Declare, missing since 2010-03-08.
Bruno Haible 46da8e7d 2017-05-05T00:09:48 argp: Fix mistake in 2017-04-23 commit. * lib/argp-help.c (__argp_failure): If GNULIB_STRERROR_R_POSIX is set, assume that strerror_r returns 'int', not 'char *'.
Reuben Thomas a87d5e5c 2017-05-04T17:51:43 argp: Fix typo. * lib/argp-help.c (argp_doc): Fix spelling mistake in comment.
Paul Eggert fb26fc4b 2017-05-02T00:40:41 utimens: port to Emacs + MS-Windows Skip the new MS-Windows-specific code if Emacs. * lib/utimens.c [EMACS_CONFIGUATION]: Avoid new MS-Windows-specific code. (USE_SETFILETIME): New macro. (fdutimens): Use it.
Paul Eggert b0ebe1b9 2017-05-01T18:00:56 tzset: update doc for TZ problems on MS-Windows * doc/posix-functions/ctime.texi, doc/posix-functions/daylight.texi: * doc/posix-functions/localtime.texi, doc/posix-functions/mktime.texi: * doc/posix-functions/strftime.texi, doc/posix-functions/timezone.texi: * doc/posix-functions/tzname.texi, doc/posix-functions/tzset.texi: * doc/posix-functions/wcsftime.texi: Mention some issues with TZ under MS-Windows.
Bruno Haible 65758d9c 2017-05-01T18:14:35 copy-file: Fix build error on mingw. * modules/copy-file (Depends-on): Add 'close'.
Bruno Haible 458f64b7 2017-05-01T17:40:15 Fix recent ChangeLog entry.
Bruno Haible 210cb7a9 2017-05-01T17:27:53 tzset: Work around TZ problem on native Windows. * m4/tzset.m4 (gl_FUNC_TZSET): Require AC_CANONICAL_HOST. On native Windows, set REPLACE_TZSET to 1. * lib/tzset.c (tzset): On native Windows, fix TZ if necessary, and invoke '_tzset' instead of 'tzset'. * doc/posix-functions/tzset.texi: Mention the native Windows workaround. * modules/time_rz (Depends-on): Add tzset. * lib/time_rz.c (tzset): Remove fallback definition. * m4/time_rz.m4 (gl_TIME_RZ): Don't test for tzset.
Bruno Haible 45af9a36 2017-05-01T16:37:15 mktime: Fix dependencies. * modules/mktime (Depends-on): Add 'time'.
Bruno Haible e4d101c4 2017-05-01T16:10:46 New module 'localtime-buffer', split off from module 'gettimeofday'. * lib/localtime-buffer.h: New file. * lib/localtime-buffer.c: New file, extracted from lib/gettimeofday.c. * lib/time.in.h (tzset): New declaration. (localtime, gmtime): Don't test GNULIB_GETTIMEOFDAY. * lib/tzset.c: New file, extracted from lib/gettimeofday.c. * lib/gettimeofday.c: Include localtime-buffer.h. Remove code that was moved to lib/localtime-buffer.c or lib/tzset.c. * m4/localtime-buffer.m4: New file. * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize GNULIB_TZSET, HAVE_TZSET, REPLACE_TZSET. * m4/tzset.m4 (gl_FUNC_TZSET): Move code from m4/gettimeofday.m4 to here, with modifications. Set HAVE_TZSET, REPLACE_TZSET. Invoke gl_LOCALTIME_BUFFER_NEEDED. (gl_FUNC_TZSET_CLOBBER): Don't require gl_HEADER_SYS_TIME_H; not needed since 2007-01-18. * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): Remove code that deals with tzset. (gl_FUNC_GETTIMEOFDAY_CLOBBER): Require gl_LOCALTIME_BUFFER_DEFAULTS. Invoke gl_LOCALTIME_BUFFER_NEEDED instead of gl_GETTIMEOFDAY_REPLACE_LOCALTIME. (gl_GETTIMEOFDAY_REPLACE_LOCALTIME): Remove macro. * modules/localtime-buffer: New file. * modules/time (Depends-on): Remove 'gettimeofday'. (Makefile.am): Substitute GNULIB_TZSET, HAVE_TZSET, REPLACE_TZSET. Don't substitute GNULIB_GETTIMEOFDAY. * modules/tzset (Description): Enable hyperlink to POSIX spec. (Files): Add lib/tzset.c. (Depends-on): Remove gettimeofday. Add localtime-buffer, time. (configure.ac): Arrange to conditionally compile lib/tzset.c. Invoke gl_TIME_MODULE_INDICATOR. * modules/gettimeofday (Depends-on): Add localtime-buffer.
Bruno Haible 3eee3a1e 2017-05-01T13:27:57 copy-file: Preserve sub-second time stamps. * lib/copy-file.c: Include stat-time.h, utimens.h instead of <utime.h>. (qcopy_file_preserving): Use 'struct timespec' and utimens() to transport the time stamps from the original file to the destination file. * m4/copy-file.m4 (gl_COPY_FILE): Don't test for utime, utimes. * modules/copy-file (Depends-on): Add stat-time, utimns instead of utime-h.
Bruno Haible e48f55fd 2017-05-01T12:58:28 wctype: Fix problems if <wchar.h> gets included after <wctype.h>. * lib/wctype.in.h: Include not only <ctype.h> but also <wchar.h>. Do so also on MSVC. Reported by Eli Zaretskii <eliz@gnu.org>.
Bruno Haible dfcf42ed 2017-05-01T12:36:02 wchar: Fix compilation error with the original mingw.org mingw. * lib/wchar.in.h (rpl_wint_t): If <crtdefs.h> does not exist, include <stddef.h> instead. * m4/wint_t.m4 (gl_TYPE_WINT_T_PREREQ): New macro, extracted from gl_WCTYPE_H. * m4/wctype_h.m4 (gl_WCTYPE_H): Don't set HAVE_CRTDEFS_H here; require gl_TYPE_WINT_T_PREREQ instead. * m4/wchar_h.m4 (gl_WCHAR_H): Require gl_TYPE_WINT_T_PREREQ. * modules/wchar (Makefile.am): Substitute HAVE_CRTDEFS_H. Reported by Eli Zaretskii <eliz@gnu.org>.
Bruno Haible f70371e5 2017-05-01T11:52:56 utimecmp: Add support for native Windows. * lib/utimecmp.c (SYSCALL_RESOLUTION): Set to 100 on native Windows.
Bruno Haible 8974b8ff 2017-05-01T11:50:08 utimens: Add support for native Windows. * lib/utimens.c: Include <windows.h>, msvc-nothrow.h. (fdutimens): Provide a native Windows implementation, like utime.c with added tv_nsec support. * modules/utimens (Depends-on): Add msvc-nothrow, utime. Suggested by Tim Rühsen <tim.ruehsen@gmx.de>.
Bruno Haible 05226f4e 2017-04-30T17:56:49 wcsftime: New module. * lib/wchar.in.h (wcsftime): New declaration. * lib/wcsftime.c: New file. * m4/wcsftime.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test for wcsftime declaration. (gl_HEADER_TIME_H_DEFAULTS): Initialize GNULIB_WCSFTIME, HAVE_WCSFTIME, REPLACE_WCSFTIME. * modules/wchar (Makefile.am): Substitute GNULIB_WCSFTIME, HAVE_WCSFTIME, REPLACE_WCSFTIME. * modules/wcsftime: New file. * doc/posix-functions/wcsftime.texi: Mention the new module.
Bruno Haible 9df4babe 2017-04-30T17:14:35 strftime-fixes: New module. * lib/time.in.h (strftime): New declaration. * lib/strftime-fixes.c: New file. * m4/strftime.m4 (gl_FUNC_GNU_STRFTIME): Inline gl_FUNC_STRFTIME macro. (gl_FUNC_STRFTIME): Remove macro. * m4/strftime-fixes.m4: New file. * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize GNULIB_STRFTIME, REPLACE_STRFTIME. * modules/time (Makefile.am): Substitute GNULIB_STRFTIME, REPLACE_STRFTIME. * modules/strftime-fixes: New file. * doc/posix-functions/strftime.texi: Mention the new module.
Bruno Haible db1ee11e 2017-04-30T16:34:54 mktime: Work around TZ problem on native Windows. * lib/mktime.c: Add #ifs to make the algorithmic workaround independent from the native Windows workaround. * m4/mktime.m4 (gl_FUNC_MKTIME_WORKS): New macro, extracted from gl_FUNC_MKTIME. If guessing, set gl_cv_func_working_mktime to 'guessing no'. (gl_FUNC_MKTIME): Require it. Require AC_CANONICAL_HOST. Set REPLACE_MKTIME to 1 on native Windows. Define NEED_MKTIME_WORKING, NEED_MKTIME_WINDOWS. (gl_FUNC_MKTIME_INTERNAL): Require gl_FUNC_MKTIME_WORKS, not gl_FUNC_MKTIME. Set WANT_MKTIME_INTERNAL, not REPLACE_MKTIME. Define NEED_MKTIME_INTERNAL. * m4/timegm.m4 (gl_FUNC_TIMEGM): Require gl_FUNC_MKTIME_WORKS, not gl_FUNC_MKTIME. Cope with 'guessing yes' value. * modules/mktime-internal (configure.ac): Test WANT_MKTIME_INTERNAL, not REPLACE_MKTIME. * doc/posix-functions/mktime.texi: Mention the native Windows workaround.
Bruno Haible 16778a29 2017-04-30T13:32:40 localtime: New module. * lib/time.in.h (localtime): Declare also if requested by module 'localtime'. * lib/localtime.c: New file. * m4/localtime.m4: New file. * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize GNULIB_LOCALTIME. * modules/time (Makefile.am): Substitute GNULIB_LOCALTIME. * modules/localtime: New file. * doc/posix-functions/localtime.texi: Mention the new module.
Bruno Haible 8c59a9eb 2017-04-30T13:19:24 ctime: New module. * lib/time.in.h (ctime): New declaration. * lib/ctime.c: New file. * m4/ctime.m4: New file. * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize GNULIB_CTIME, REPLACE_CTIME. * modules/time (Makefile.am): Substitute GNULIB_CTIME, REPLACE_CTIME. * modules/ctime: New file. * doc/posix-functions/ctime.texi: Mention the new module.
Bruno Haible 8625e57a 2017-04-30T12:15:08 gettimeofday: Provide higher resolution on native Windows. * lib/gettimeofday.c: Don't include <sys/timeb.h>. (GetSystemTimePreciseAsFileTimeFuncType): New variable. (initialize): Initialize it. (gettimeofday) [WINDOWS_NATIVE]: Use it, and convert from FILETIME to 'struct timeval'. Don't use _ftime(). * m4/gettimeofday.m4 (gl_PREREQ_GETTIMEOFDAY): Don't test for <sys/timeb.h> and _ftime.
Bruno Haible 6736a883 2017-04-30T11:38:25 Document the problem with the Cygwin environment variable TZ. * doc/posix-functions/tzset.texi: Add note about TZ. * doc/posix-functions/ctime.texi: Likewise. * doc/posix-functions/localtime.texi: Likewise. * doc/posix-functions/mktime.texi: Likewise. * doc/posix-functions/strftime.texi: Likewise. * doc/posix-functions/wcsftime.texi: Likewise. * doc/pastposix-functions/ftime.texi: Likewise.
Bruno Haible dc2bc508 2017-04-30T11:13:56 utime-tests: New module. * tests/test-utime.c: New file, based on tests/test-utimens.h. * tests/test-utimens-common.h: Include <sys/stat.h>. * modules/utime-tests: New file.
Bruno Haible e5194dce 2017-04-30T03:08:46 utime: New module. * lib/utime.in.h: Add comment for snippets. (utime): New declaration. * lib/utime.c: New file. * m4/utime.m4: New file. * m4/utime_h.m4 (gl_UTIME_H): Test for utime declaration. (gl_UTIME_H_DEFAULTS): Initialize GNULIB_UTIME, HAVE_UTIME, REPLACE_UTIME. * modules/utime-h (Depends-on): Add snippets. (Makefile.am): Substitute GNULIB_UTIME, HAVE_UTIME, REPLACE_UTIME. Insert snippets. * modules/utime: New file. * doc/posix-functions/utime.texi: Mention the new module.
Bruno Haible 127cc815 2017-04-30T01:26:05 utime-h: Modernize handling of 'struct utimbuf'. * lib/utime.in.h: Include next <utime.h> if it exists. (utimbuf): Define to _utimbuf on native Windows. * m4/utime-h.m4 (gl_UTIME_H): Check for prerequisites of include_next. Set UTIME_H on native Windows. (gl_UTIME_MODULE_INDICATOR, gl_HEADER_UTIME_H_DEFAULTS): New macros. * modules/utime-h (Depends-on): Add include_next. (Makefile.am): Substitute also HAVE_UTIME_H, INCLUDE_NEXT, PRAGMA_SYSTEM_HEADER, PRAGMA_COLUMNS, NEXT_UTIME_H. * lib/utimens.c (utimbuf): Remove fallback definition. * m4/utimens.m4 (gl_UTIMENS): Don't require gl_CHECK_TYPE_STRUCT_UTIMBUF. * m4/utimbuf.m4: Remove file. * modules/utimens (Files): Remove m4/utimbuf.m4.
Bruno Haible 06464e83 2017-04-30T00:03:50 Make use of module 'utime-h'. * modules/copy-file (Depends-on): Add utime-h. * lib/copy-file.c: Assume that <utime.h> exists. * m4/copy-file.m4 (gl_COPY_FILE): Don't test for <utime.h>. * modules/utimens (Depends-on): Add utime-h. * lib/utimens.c: Assume that <utime.h> exists.
Bruno Haible 8dac05d2 2017-04-30T10:21:22 utime-h: New module. * m4/utime_h.m4: New file. * lib/utime.in.h: New file. * modules/utime-h: New file. * doc/posix-headers/utime.texi: Mention the new module. * tests/test-utime-h.c: New file. * modules/utime-h-tests: New file.
Bruno Haible 33390878 2017-04-30T10:15:55 Fix a few typos. * m4/fstat.m4 (gl_FUNC_FSTAT): Require AC_CANONICAL_HOST. * m4/stat.m4 (gl_FUNC_STAT): Fix comment. * doc/posix-functions/fstat.texi: Fix a plural typo. * doc/posix-functions/stat.texi: Likewise. * m4/include_next.m4: Update comments.
Bruno Haible f9973ab5 2017-04-29T23:01:39 error: Fix mistake in 2017-04-23 commit. * lib/error.c (print_errno_message): If GNULIB_STRERROR_R_POSIX is set, assume that strerror_r returns 'int', not 'char *'.
Bruno Haible bd481743 2017-04-29T15:05:15 stat: Fix time_t values and other problems on native Windows platforms. * doc/posix-functions/stat.texi: Mention the problem with the Microsoft implementations of stat(). * lib/stat.c: Include filename.h instead of dosname.h. Include malloca.h, stat-w32.h. (is_unc_root): New function. (rpl_stat): New implementation for native Windows. Remove REPLACE_FUNC_STAT_DIR code. * m4/stat.m4 (gl_FUNC_STAT): On native Windows, set REPLACE_STAT always. Don't define REPLACE_FUNC_STAT_DIR. (gl_PREREQ_STAT): Require gl_HEADER_SYS_STAT_H. * modules/stat (Files): Add lib/stat-w32.h, lib/stat-w32.c. (Depends-on): Remove dosname. Add filename, malloca. (configure.ac): Also compile lib/stat-w32.c.
Bruno Haible fcb99f40 2017-04-29T14:55:22 fstat: Fix time_t values on native Windows platforms. * doc/posix-functions/fstat.texi: Mention the problem with st_*time. * lib/stat-w32.h: New file. * lib/stat-w32.c: New file. * lib/fstat.c: Don't include msvc-inval.h. Include msvc-nothrow.h, stat-w32.h instead. (fstat_nothrow): Remove function. (rpl_fstat): Implement by means of _gl_fstat_by_handle. * m4/fstat.m4 (gl_FUNC_FSTAT): On native Windows, set REPLACE_FSTAT always. (gl_PREREQ_FSTAT): Require gl_HEADER_SYS_STAT_H. * modules/fstat (Files): Add lib/stat-w32.h, lib/stat-w32.c. (Depends-on): Remove msvc-inval. Add pathmax, msvc-nothrow. (configure.ac): Also compile lib/stat-w32.c.
Paul Eggert f3f95f86 2017-04-29T11:09:39 getopt: port to Solaris 10 with circa-1997 glibc getopt.h Problem reported by Assaf Gordon and Gavin Smith in: http://lists.gnu.org/archive/html/bug-gnulib/2017-04/msg00157.html * lib/getopt-pfx-ext.h (_getopt_internal) [__GETOPT_PREFIX]: #define this, too.
Bruno Haible 765a4060 2017-04-29T13:23:28 strerror_r-posix: Fixes for MSVC 14. * lib/strerror_r.c: Include <stdarg.h>. (strerror_r): Provide error messages for errno values 100...140. * doc/posix-functions/strerror_r.texi: Mention the MSVC 14 problem.
Bruno Haible 62f2dba6 2017-04-26T23:25:11 noreturn: New module. * lib/noreturn.h: New file. * modules/noreturn: New file. * tests/test-noreturn.c: New file. * modules/noreturn-tests: New file. * tests/test-noreturn-c++.cc: New file. * modules/noreturn-c++-tests: New file.
Bruno Haible 2a0c08e4 2017-04-27T18:59:24 wctype-h: Fix compilation error with the original mingw.org mingw. * m4/wctype_h.m4 (gl_WCTYPE_H): Test for <crtdefs.h>. Set HAVE_CRTDEFS_H. * modules/wctype-h (Makefile.am): Substitute HAVE_CRTDEFS_H. * lib/wctype.in.h (rpl_wint_t): If <crtdefs.h> does not exist, include <stddef.h> instead. Reported and proposed by Eli Zaretskii <eliz@gnu.org>.
Pádraig Brady efb84214 2017-04-26T21:46:55 nap.h: Fix compilation on non windows platforms * tests/nap.h: Move misplaced endif.
Pádraig Brady 94e01571 2017-04-24T01:43:36 time_rz: fix heap buffer overflow vulnerability This issue has been assigned CVE-2017-7476 and was detected with American Fuzzy Lop 2.41b run on the coreutils date(1) program with ASAN enabled. ERROR: AddressSanitizer: heap-buffer-overflow on address 0x... WRITE of size 8 at 0x60d00000cff8 thread T0 #1 0x443020 in extend_abbrs lib/time_rz.c:88 #2 0x443356 in save_abbr lib/time_rz.c:155 #3 0x44393f in localtime_rz lib/time_rz.c:290 #4 0x41e4fe in parse_datetime2 lib/parse-datetime.y:1798 A minimized reproducer is the following 120 byte TZ value, which goes beyond the value of ABBR_SIZE_MIN (119) on x86_64. Extend the aa...b portion to overwrite more of the heap. date -d $(printf 'TZ="aaa%020daaaaaab%089d"') localtime_rz and mktime_z were affected since commit 4bc76593. parse_datetime was affected since commit 4e6e16b3f. * lib/time_rz.c (save_abbr): Rearrange the calculation determining whether there is enough buffer space available. The rearrangement ensures we're only dealing with positive numbers, thus avoiding the problematic promotion of signed to unsigned causing an invalid comparison when zone_copy is more than ABBR_SIZE_MIN bytes beyond the start of the buffer. * tests/test-parse-datetime.c (main): Add a test case written by Paul Eggert, which overwrites enough of the heap so that standard glibc will fail with "free(): invalid pointer" without the patch applied. Reported and analyzed at https://bugzilla.redhat.com/1444774
Paul Eggert cff48ff7 2017-04-26T11:38:30 xalloc: add missing integer overflow check * lib/xalloc.h (x2nrealloc): Also check for multiplication overflow when P is null.
Paul Eggert 3c53173e 2017-04-25T11:58:30 parse-datetime: make it standalone * lib/parse-datetime.y: Include <stdarg.h>, for va_start etc. (_GL_ATTRIBUTE_FORMAT): New macro. These are needed to get './gnulib-tool --test parse-datetime' to work.
Bruno Haible be36311d 2017-04-23T19:19:35 nap.h: Port to native Windows. * tests/nap.h (nap_get_stat): Renamed from get_stat. Remove argument fd; use nap_fd instead. On native Windows, close and reopen nap_fd. (nap_works): Don't compare the ctimes, because on native Windows, these are the creation times. (nap): Update.
Bruno Haible 5f72078b 2017-04-23T19:09:32 nap.h: Fix logic. * tests/nap.h (nap): Avoid signed integer overflow in loop.
Bruno Haible 1b19f8fb 2017-04-23T19:02:08 Fix conflict between strerror_r-posix module and AC_FUNC_STRERROR_R. * modules/strerror_r-posix (configure.ac): Invoke gl_MODULE_INDICATOR. * lib/error.c: Test GNULIB_STRERROR_R_POSIX before testing HAVE_DECL_STRERROR_R, HAVE_STRERROR_R, or STRERROR_R_CHAR_P. * lib/argp-help.c (__argp_failure): Likewise.
Bruno Haible 60530d05 2017-04-23T18:27:44 strerror_r-posix: Revert commits from 2016-10-16,2016-11-04,2016-11-14. * m4/strerror_r.m4: Revert changes since 2016-10-16. * lib/strerror_r.c: Likewise.
Paul Eggert 3a8af1e3 2017-04-23T20:54:35 Target a C99 subset, not a C89 subset For many years Gnulib has targeted C89 and has resisted using C99 features, as some Gnulib-using programs still wanted to target C89. As this no longer seems to be the case, relax the porting requirements to allow some C99 features. This is merely a change to the documentation, to give other Gnulib developers a chance to weigh in on the topic. * doc/extern-inline.texi (extern inline): * doc/gnulib-readme.texi (Portability guidelines): * doc/gnulib-tool.texi (Initial import): * doc/gnulib.texi (Header files): Modernize to talk about C99 and C11 instead of C89 and C99. * doc/gnulib-readme.texi (Portability guidelines): Now a section, not merely a subsection, so that it can be split up. Modernize a bit. (C language versions, C99 features assumed) (C99 features avoided): New sections.
Bruno Haible 332decd8 2017-04-23T18:06:19 doc: New section "Modules that modify the way other modules work". * doc/gnulib.texi (Modules that modify the way other modules work): New section.
Bruno Haible 430c2ba5 2017-04-23T13:18:16 stat-time: Update comments. * lib/stat-time.h: Fix reference regarding st_ctime on Windows. * tests/test-utimens-common.h: Add reference regarding st_ctime on Windows.