2023-03-23 Bruno Haible printf-posix tests: Fix compilation error (regression 2021-08-28). * modules/printf-posix-tests (Files): Add tests/qemu.h. 2023-03-22 Jim Meyering gnu-web-doc-update: don't use host alias, cvs.sv.gnu.org * build-aux/gnu-web-doc-update: Use hostname cvs.savannah.gnu.org, not cvs.sv.gnu.org. Using the shorter alias would elicit this: $ pkg=grep ; cvs -d $USER@cvs.sv.gnu.org:/webcvs/$pkg co $pkg Bad server host key: Invalid key length 2023-03-22 Bruno Haible *printf-posix: Fix implementation of %b directive. * lib/vasnprintf.c (VASNPRINTF): In the %b directive implementation, fix the precision handling, and ignore the '0' flag when a width and a precision are both present. * tests/test-snprintf-posix.h (test_function): Add test cases for the %x directive and more test cases for the %b directive. * tests/test-sprintf-posix.h (test_function): Likewise. * tests/test-vasnprintf-posix.c (test_function): Likewise. * tests/test-vasnwprintf-posix.c (test_function): Likewise. * tests/test-vasprintf-posix.c (test_function): Likewise. * modules/vasnwprintf-posix-tests (Files): Add m4/musl.m4. (configure.ac): Invoke gl_MUSL_LIBC. 2023-03-22 Bruno Haible vasnwprintf: Fix a warning: implicit declaration of function ‘wcsnlen’. * m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Test also whether wcsnlen is declared. * lib/vasnprintf.c (local_wcsnlen): Together with HAVE_WCSNLEN, test also HAVE_DECL_WCSNLEN. 2023-03-22 Bruno Haible vasnwprintf: Fix a "warning: unused function local_wcsnlen". * lib/vasnprintf.c: Adjust #if conditions. 2023-03-22 Bruno Haible vasnwprintf: Fix test failures on FreeBSD, NetBSD, AIX, mingw. * m4/printf.m4 (gl_SWPRINTF_WORKS): New macro. * m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Invoke it and define HAVE_WORKING_SWPRINTF accordingly. * lib/vasnprintf.c: Together with HAVE_SWPRINTF, test also HAVE_WORKING_SWPRINTF. (VASNPRINTF): If WIDE_CHAR_VERSION && !DCHAR_IS_TCHAR, don't pass a wchar_t[] to snprintf. Add a workaround against mingw's snwprintf function. * doc/posix-functions/swprintf.texi: Document the null wide character bug. 2023-03-22 Bruno Haible vasnwprintf: Fix a "warning: unused function 'wmax_room_needed'". * lib/vasnprintf.c (MAX_ROOM_NEEDED): Adjust #if condition. 2023-03-22 Bruno Haible vasnwprintf: Simplify last change. * lib/vasnprintf.c (VASNPRINTF): Remove unused variable 'len'. 2023-03-22 Bruno Haible vasnwprintf tests: Fix link errors on AIX. * modules/vasnwprintf (Link): New section. * modules/vasnwprintf-posix (Link): New section. * modules/vasnwprintf-tests (Makefile.am): Link test-vasnwprintf with $(MBRTOWC_LIB). * modules/vasnwprintf-posix-tests (Makefile.am): Link test-vasnwprintf-posix, test-vasnwprintf-posix2, test-vasnwprintf-posix3 with $(MBRTOWC_LIB). 2023-03-22 Bruno Haible gnu-web-doc-update: Make it work for the first upload of a manual. Reported by Reuben Thomas in . * build-aux/gnu-web-doc-update: Put the 'manual' directory under version control if it is not yet. 2023-03-21 Bruno Haible unistdio/u*-vasnprintf: Fix conversion of %Id directive result. * lib/vasnprintf.c (VASNPRINTF): Don't assume that snprintf's result is entirely ASCII if the directive contain the glibc 'I' flag. 2023-03-21 Bruno Haible vasnwprintf: Fix for older platforms without swprintf. * lib/vasnprintf.c (VASNPRINTF): In the %lc handling, ignore the precision. Convert the snprintf result to a wchar_t[] not by mbsrtowcs, but by a loop that does not stop at NUL characters. * tests/test-vasnwprintf-posix.c (test_function): Add more tests for the %c and %lc directives. * modules/vasnwprintf (Depends-on): Add mbrtowc. Remove mbsrtowcs. 2023-03-21 Bruno Haible *printf-posix: Work around bug with %lc of 0 on many platforms. * lib/vasnprintf.c (local_wctomb): Define also for NEED_PRINTF_DIRECTIVE_LC. (VASNPRINTF): Implement %lc handling ourselves if NEED_PRINTF_DIRECTIVE_LC. * m4/printf.m4 (gl_PRINTF_DIRECTIVE_LC): New macro. * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_LC): New macro. (gl_PREREQ_VASNPRINTF_WITH_EXTRAS): Invoke it. * m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_POSIX): Require gl_PRINTF_DIRECTIVE_LC and test its result. Invoke gl_PREREQ_VASNPRINTF_DIRECTIVE_LC. * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Likewise. * m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_POSIX): Likewise. * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise. * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise. * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise. * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise. * m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_POSIX): Likewise. * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise. * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise. * tests/test-snprintf-posix.h (test_function): Add more tests for the %c and %lc directives. * tests/test-sprintf-posix.h (test_function): Likewise. * tests/test-vasnprintf-posix.c (test_function): Likewise. * tests/test-vasprintf-posix.c (test_function): Likewise. * doc/glibc-functions/asprintf.texi: Mention the %lc 0 bug. * doc/glibc-functions/obstack_printf.texi: Likewise. * doc/glibc-functions/obstack_vprintf.texi: Likewise. * doc/glibc-functions/vasprintf.texi: Likewise. * doc/posix-functions/dprintf.texi: Likewise. * doc/posix-functions/fprintf.texi: Likewise. * doc/posix-functions/printf.texi: Likewise. * doc/posix-functions/snprintf.texi: Likewise. * doc/posix-functions/sprintf.texi: Likewise. * doc/posix-functions/vdprintf.texi: Likewise. * doc/posix-functions/vfprintf.texi: Likewise. * doc/posix-functions/vprintf.texi: Likewise. * doc/posix-functions/vsnprintf.texi: Likewise. * doc/posix-functions/vsprintf.texi: Likewise. 2023-03-21 Ar Rakin (tiny change) gnupload: correct SFTP connection URL Approved by Sergey Poznyakoff in . * build-aux/gnupload: fix gnu.org.ua SFTP connection URL: puszcza.gnu.org.ua -> download.gnu.org.ua 2023-03-20 Bruno Haible memrchr tests: Avoid GCC warning. * tests/test-memrchr.c: Don't use '#pragma GCC diagnostic' for GCC versions older than 4.7. 2023-03-20 Bruno Haible unistdio: Simplify code. * lib/unistdio/u8-vasnprintf.c (DCHAR_T_IS_UINT8_T): Remove unused macro. * lib/unistdio/u8-u8-vasnprintf.c: Likewise. * lib/unistdio/u16-vasnprintf.c (DCHAR_T_IS_UINT16_T): Remove unused macro. * lib/unistdio/u16-u32-vasnprintf.c: Likewise. * lib/unistdio/u32-vasnprintf.c (DCHAR_T_IS_UINT32_T): Remove unused macro. * lib/unistdio/u32-u32-vasnprintf.c: Likewise. 2023-03-20 Bruno Haible vasnwprintf: Port to older platforms without swprintf. * m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Test for swprintf. * lib/vasnprintf.c (TCHAR_T, DCHAR_IS_TCHAR, SNPRINTF): When WIDE_CHAR_VERSION and swprintf does not exist, use TCHAR_T = char, SNPRINTF = snprintf, and !DCHAR_IS_TCHAR. (VASNPRINTF): In this case, implement %ls and %lc directly. Adjust a couple of #if conditions. For the conversion from TCHAR_T[] to DCHAR_T[], use mbsrtowcs. * modules/vasnwprintf (Depends-on): Add mbsrtowcs. 2023-03-20 Bruno Haible wmemset: Relicense under LGPLv2+. * modules/wmemset (License): Change to LGPLv2+. * lib/wmemset.c: Update license notice. * lib/wmemset-impl.h: Likewise. 2023-03-20 Bruno Haible wmemcpy: Relicense under LGPLv2+. * modules/wmemcpy (License): Change to LGPLv2+. * lib/wmemcpy.c: Update license notice. * lib/wmemcpy-impl.h: Likewise. 2023-03-19 Bruno Haible vasnwprintf: Fix test failures on musl libc. * m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Invoke gl_MUSL_LIBC. * lib/vasnprintf.c (VASNPRINTF): On musl libc, when WIDE_CHAR_VERSION, - force pad_ourselves to be 1, - don't use %n. Fix zero-padding when the result starts with a prefix "0x" or "0b". * modules/vasnwprintf (Files): Add musl.m4. * doc/posix-functions/swprintf.texi: Mention two musl libc bugs. 2023-03-19 Bruno Haible vasnwprintf: Fix module dependencies. * modules/vasnwprintf (Depends-on): Add wmemcpy, wmemset. * modules/vasnwprintf-tests (Depends-on): Add wmemcmp. * modules/vasnwprintf-posix-tests (Depends-on): Likewise. 2023-03-19 Paul Eggert test-pselect, test-select: use different ports I have observed rare and hard-to-reproduce problems with the GNU grep release candidate with ‘make -j5 check’ on Fedora 37 x86-64. One possibility is that test-pselect and test-select interfere with each other somehow when run simultaneously, as they use the same port. Work around this possibility by using different ports from each other, and from test-poll (which also uses 12345). Of course it’d be better if all these tests used system-assigned ports, but I assume that’d take more work. * tests/test-pselect.c, tests/test-select.c (TEST_PORT): New macro. * tests/test-select.h (TEST_PORT): Remove. 2023-03-19 Bruno Haible Update MODULES.html.sh. * MODULES.html.sh: Move stack, wmempcpy, bison to different sections. Fix a HTML layout problem. 2023-03-18 Paul Eggert dfa: pacify Oracle Solaris Studio 12.6 Without this patch, the compiler complains “statement not reached”. * lib/dfa.c (lex): Refactor to omit unreachable statement. Update MODULES.html.sh * MODULES.html.sh: Add some recently-added modules. This is by no means a complete update. I needed to point to something about ‘time’ so I added ‘time’, and then added more modules until I ran out of, errr, time. Assuming MODULES.html.sh is still useful, at some point a more-complete update should be done. 2023-03-17 Bruno Haible *printf-posix: ISO C 23: Add %b directive for binary output of integers. * lib/printf-parse.c (PRINTF_PARSE): Recognize the 'b' directive. * lib/printf-parse.h: Update comment. * lib/wprintf-parse.h: Likewise. * lib/vasnprintf.c (MAX_ROOM_NEEDED, VASNPRINTF): Add support for the 'b' directive. * m4/printf.m4 (gl_PRINTF_DIRECTIVE_B): New macro. * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_B): New macro. (gl_PREREQ_VASNPRINTF_WITH_EXTRAS): Invoke it. * m4/vasnwprintf-posix.m4 (gl_FUNC_VASNWPRINTF_POSIX): Invoke gl_PREREQ_VASNPRINTF_DIRECTIVE_B. * m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_POSIX): Require gl_PRINTF_DIRECTIVE_B and test its result. Invoke gl_PREREQ_VASNPRINTF_DIRECTIVE_B. * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Likewise. * m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_POSIX): Likewise. * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise. * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise. * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise. * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise. * m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_POSIX): Likewise. * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise. * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise. * tests/test-snprintf-posix.h (test_function): Add some tests of the %b directive. * tests/test-sprintf-posix.h (test_function): Likewise. * tests/test-vasnprintf-posix.c (test_function): Likewise. * tests/test-vasnwprintf-posix.c (test_function): Likewise. * tests/test-vasprintf-posix.c (test_function): Likewise. * doc/glibc-functions/asprintf.texi: Mention the 'b' directive. * doc/glibc-functions/obstack_printf.texi: Likewise. * doc/glibc-functions/obstack_vprintf.texi: Likewise. * doc/glibc-functions/vasprintf.texi: Likewise. * doc/posix-functions/dprintf.texi: Likewise. * doc/posix-functions/fprintf.texi: Likewise. * doc/posix-functions/fwprintf.texi: Likewise. * doc/posix-functions/printf.texi: Likewise. * doc/posix-functions/snprintf.texi: Likewise. * doc/posix-functions/sprintf.texi: Likewise. * doc/posix-functions/swprintf.texi: Likewise. * doc/posix-functions/vdprintf.texi: Likewise. * doc/posix-functions/vfprintf.texi: Likewise. * doc/posix-functions/vfwprintf.texi: Likewise. * doc/posix-functions/vprintf.texi: Likewise. * doc/posix-functions/vsnprintf.texi: Likewise. * doc/posix-functions/vsprintf.texi: Likewise. * doc/posix-functions/vswprintf.texi: Likewise. * doc/posix-functions/vwprintf.texi: Likewise. * doc/posix-functions/wprintf.texi: Likewise. 2023-03-17 Bruno Haible vasnprintf, vasnwprintf: Simplify code. * lib/vasnprintf.c (MAX_ROOM_NEEDED): Remove dead code: The directives 'o', 'x', 'X' always take an unsigned integer argument. 2023-03-17 Bruno Haible vasnwprintf: Fix test failure on OpenBSD. * lib/vasnprintf.c (VASNPRINTF): Don't use the %n directive on OpenBSD. 2023-03-17 Bruno Haible time: Fix test failure on AIX 7.2. * m4/time.m4 (gl_FUNC_TIME): Guess that it does not work on AIX. * doc/posix-functions/time.texi: Mention the bug on AIX. time: Fix test failure on native Windows. * m4/time.m4 (gl_FUNC_TIME): Guess that it does not work on native Windows. * modules/time (Depends-on): Add gettimeofday. * doc/posix-functions/time.texi: Mention the bug on Windows. 2023-03-17 Bruno Haible vasnprintf, vasnwprintf: Include all necessary workarounds in libintl. * lib/vasnprintf.c: Remove IN_LIBINTL special-casing. 2023-03-17 Bruno Haible vasnwprintf-posix: Add tests. * tests/test-vasnwprintf-posix.c: New file, based on tests/test-vasnprintf-posix.c. * tests/test-vasnwprintf-posix2.sh: New file, based on tests/test-vasnprintf-posix2.sh. * tests/test-vasnwprintf-posix2.c: New file, based on tests/test-vasnprintf-posix2.c. * tests/test-vasnwprintf-posix3.c: New file, based on tests/test-vasnprintf-posix3.c. * modules/vasnwprintf-posix-tests: New file, based on modules/vasnprintf-posix-tests. vasnwprintf-posix: New module. * m4/vasnwprintf-posix.m4: New file. * modules/vasnwprintf-posix: New file, based on modules/vasnprintf-posix. 2023-03-17 Bruno Haible vasnprintf-posix: Relicense under LGPLv2+. * modules/vasnprintf-posix (License): Change to LGPLv2+. 2023-03-17 Bruno Haible vasnwprintf: Add tests. * tests/test-vasnwprintf.c: New file, based on tests/test-vasnprintf.c. * modules/vasnwprintf-tests: New file, based on modules/vasnprintf-tests. vasnwprintf: New module. * lib/vasnprintf.c: Enable more code for WIDE_CHAR_VERSION, because snwprintf()/_snwprintf() (Windows) and swprintf() (Unix) don't return the needed buffer size, like snprintf does. * lib/wprintf-parse.h: New file, based on lib/printf-parse.h and gettext/gettext-runtime/intl/wprintf-parse.h. * lib/wprintf-parse.c: New file, based on gettext/gettext-runtime/intl/printf.c. * lib/vasnwprintf.h: New file, based on lib/vasnprintf.h and gettext/gettext-runtime/intl/vasnwprintf.h. * lib/vasnwprintf.c: New file. * lib/asnwprintf.c: New file, based on lib/asnprintf.c. * m4/vasnprintf.m4 (gl_FUNC_VASNWPRINTF): New macro. (gl_PREREQ_VASNXPRINTF): New macro, extracted from gl_PREREQ_VASNPRINTF. (gl_PREREQ_VASNPRINTF): Invoke it. Don't test for wcsnlen and mbrtowc. (gl_PREREQ_VASNWPRINTF): New macro. * modules/vasnwprintf: New file, based on modules/vasnprintf. 2023-03-16 Bruno Haible strtol, strtoll, strtoul, strtoull: Make ISO C 23 compliant. * lib/strtol.c (INTERNAL (strtol)): Treat 'b' and base 2 like 'x' and base 16. Based on glibc commit 64924422a99690d147a166b4de3103f3bf3eaf6c by Joseph Myers. * m4/strtol.m4 (gl_FUNC_STRTOL): Test also whether parsing binary integers works. Update cross-compilation guesses. * m4/strtoll.m4 (gl_FUNC_STRTOLL): Likewise. * m4/strtoul.m4 (gl_FUNC_STRTOUL): Likewise. * m4/strtoull.m4 (gl_FUNC_STRTOULL): Likewise. * tests/test-strtol.c (main): Add tests of parsing binary integers. * tests/test-strtoll.c (main): Likewise. * tests/test-strtoul.c (main): Likewise. * tests/test-strtoull.c (main): Likewise. * doc/posix-functions/strtol.texi: Mention the problem with parsing binary integers. * doc/posix-functions/strtoll.texi: Likewise. * doc/posix-functions/strtoul.texi: Likewise. * doc/posix-functions/strtoull.texi: Likewise. 2023-03-16 Bruno Haible timegm: Document under ISO C and POSIX substitutes. * doc/posix-functions/timegm.texi: Renamed from doc/glibc-functions/timegm.texi. * doc/gnulib.texi (Function Substitutes): Include timegm.texi here... (Glibc time.h): ... not here. 2023-03-16 Bruno Haible stddef: Fix a compilation error on AIX 7.2 with xlclang. * lib/stddef.in.h (__CLANG_MAX_ALIGN_T_DEFINED): Define whenever we define GNULIB_defined_max_align_t. 2023-03-16 Bruno Haible stddef: Define 'unreachable', for ISO C 23 compliance. * lib/verify.h (_GL_HAS_BUILTIN_UNREACHABLE): Don't define if already defined. * lib/stddef.in.h (_GL_HAS_BUILTIN_UNREACHABLE, unreachable): New macros. (abort): Declare if needed for unreachable. * m4/stddef_h.m4 (gl_STDDEF_H): Test for unreachable. * tests/test-stddef.c (test_unreachable_optimization, test_unreachable_noreturn): New functions, based on tests/test-verify.c. * doc/posix-headers/stddef.texi: Mention unreachable. 2023-03-10 Paul Eggert posixtm: work around Glibc time issue * modules/posixtm (Depends-on): Add time. 2023-03-09 Jim Meyering bootstrap: correct last change * top/bootstrap-funclib.sh (autogen) [AUTORECONFFLAGS]: Do always apply the --no-recursive option. * build-aux/bootstrap: Regenerate. bootstrap: remove code that accommodated RHEL5's old autoreconf * top/bootstrap-funclib.sh (autogen) [AUTORECONFFLAGS]: RHEL5 has not been supported since 2017. It included (and this code worked around) a version of autoreconf that was so old it did not accept the --no-recursive option. Drop that workaround. * build-aux/bootstrap: Regenerate. 2023-03-08 Bruno Haible gettimeofday, timespec_get tests: Avoid test failure on glibc/Linux. * modules/gettimeofday-tests (Depends-on): Add 'time'. * modules/timespec_get-tests (Depends-on): Likewise. * tests/test-gettimeofday.c (test_consistency): Update comment. * tests/test-timespec_get.c (main): Likewise. time: Add tests. * tests/test-time.c: New file. * modules/time-tests: New file. time: New module. * lib/time.in.h (time): New declaration. * lib/time.c: New file. * m4/time_h.m4 (gl_TIME_H_REQUIRE_DEFAULTS): Initialize GNULIB_TIME. (gl_TIME_H_DEFAULTS): Initialize REPLACE_TIME. * m4/time.m4: New file. * modules/time-h (Makefile.am): Substitute GNULIB_TIME, REPLACE_TIME. * modules/time: New file. * tests/test-time-h-c++.cc: Check the signature of GNULIB_NAMESPACE::time. * doc/posix-functions/time.texi: Mention the glibc problem and the 'time' module. 2023-03-08 Bruno Haible time-h: Renamed from time. * modules/time-h: Renamed from modules/time. * tests/test-time-h.c: Renamed from tests/test-time.c. * modules/time-h-tests: Renamed from modules/time-tests. Update. * tests/test-time-h-c++.cc: Renamed from tests/test-time-c++.cc. * tests/test-time-h-c++2.cc: Renamed from tests/test-time-c++2.cc. * modules/time-h-c++-tests: Renamed from modules/time-c++-tests. Update. * modules/cond (Depends-on): Update. * modules/ctime (Depends-on): Likewise. * modules/localtime (Depends-on): Likewise. * modules/mktime (Depends-on): Likewise. * modules/nanosleep (Depends-on): Likewise. * modules/parse-datetime (Depends-on): Likewise. * modules/posixcheck (Depends-on): Likewise. * modules/pthread-h (Depends-on): Likewise. * modules/stat-time (Depends-on): Likewise. * modules/stat-time-tests (Depends-on): Likewise. * modules/strftime-fixes (Depends-on): Likewise. * modules/strptime (Depends-on): Likewise. * modules/sys_stat (Depends-on): Likewise. * modules/tempname (Depends-on): Likewise. * modules/threads-h (Depends-on): Likewise. * modules/time_r (Depends-on): Likewise. * modules/time_rz (Depends-on): Likewise. * modules/timegm (Depends-on): Likewise. * modules/timespec (Depends-on): Likewise. * modules/timespec_get (Depends-on): Likewise. * modules/timespec_getres (Depends-on): Likewise. * modules/tzset (Depends-on): Likewise. * modules/usleep-tests (Depends-on): Likewise. * modules/utime (Depends-on): Likewise. * modules/utimecmp (Depends-on): Likewise. * modules/utimens (Depends-on): Likewise. * modules/windows-cond (Depends-on): Likewise. * modules/windows-timedmutex (Depends-on): Likewise. * modules/windows-timedrecmutex (Depends-on): Likewise. * modules/windows-timedrwlock (Depends-on): Likewise. * modules/xnanosleep (Depends-on): Likewise. * doc/posix-headers/time.texi: Update. * NEWS: Mention the change. 2023-03-08 Bruno Haible gettimeofday tests: Enhance test. * tests/test-gettimeofday.c: Include and macros.h. (test_clobber): New function, extracted from main. (test_consistency): New function, based on tests/test-timespec_get.c. (main): Invoke both functions. * modules/gettimeofday-tests (Files): Add macros.h. 2023-03-05 Paul Eggert stdio: suppress macOS 13 sprintf warnings * lib/stdio.in.h (_POSIX_C_SOURCE, _GL_DEFINED__POSIX_C_SOURCE): Suppress deprecation warnings for sprintf and vsprintf that were introduced in macOS 13. These are not useful for Gnulib itself, and are more likely than not to be merely an annoyance for Gnulib-using code. 2023-03-05 Bruno Haible timespec_get tests: Add comment. * tests/test-timespec_get.c: Add a comment regarding a glibc bug. 2023-03-02 Bruno Haible nl_langinfo tests: Avoid test failure on Solaris 11. * tests/test-nl_langinfo2.c (main): Skip French T_FMT_AMPM test on Solaris. 2023-02-28 Benno Schulenberg (tiny change) terminfo, termcap: Fix more spellos in a comment. * lib/tparm.c: Fix misspellings and wording in the main comment. 2023-02-28 Bruno Haible perl: Allow this module to be used with 'gnulib-tool --lgpl'. Reported by Reuben Thomas in . * modules/perl (License): Relax to 'GPLed build tool'. Approved by Jim Meyering in . 2023-02-28 Bruno Haible dfa: Tweak the last patch. Suggested by Alexei Podtelezhnikov . * lib/dfa.c (FALLTHROUGH): Assume that Apple clang, in C mode, supports __attribute__ ((__fallthrough__)) starting with version 1200. References: https://en.wikipedia.org/wiki/Xcode#Xcode_11.0_-_14.x_(since_SwiftUI_framework)_2 https://github.com/apple/llvm-project/blob/swift-5.3-RELEASE/clang/test/Sema/fallthrough-attr.c 2023-02-27 ChuanGang Jiang fts: fail gracefully when out of memory * lib/fts.c (fts_read): Set errno==ENOMEM and return NULL when setup_dir() fails, rather than hitting an assertion later. 2023-02-26 Jim Meyering announce-gen: spell OpenBSD with a capital "O" * build-aux/announce-gen (print_checksums): Capitalize the "O" in OpenBSD, as suggested by Bruno Haible. 2023-02-26 Bruno Haible dfa: Avoid warnings with some Apple clang versions. Reported by Werner Lemberg in . * lib/dfa.c (FALLTHROUGH): When __apple_build_version__ is defined, ignore __clang_major__. 2023-02-25 Jim Meyering announce-gen: add more info the auto-generated announce template * build-aux/announce-gen (readable_interval, readable_interval0): New functions. (digest_file_base64_wrap): New function to add padding to the base64-encoded SHA256 checksums. (print_checksums): Use that wrapper. Indent each line by two spaces. (main): Emit new sections, e.g., these lines from grep-3.8's release: - There have been 104 commits by 6 people in the 55 weeks since 3.7. - The following people contributed changes to this release: (and list) I tested with this, running from a sibling cloned grep directory: ../gnulib/build-aux/announce-gen --release-type=stable \ --package-name=grep --previous-version=3.7 --current-version=3.8 \ --gpg-key-id=0x7FD9FCCB000BEEEE --url-directory=https://testing Also, reference the cksum programs from coreutils-9.2 and from OpenBSD. 2023-02-25 ChuanGang Jiang (tiny change) terminfo, termcap: Fix typos in comments. * lib/tparm.c: Fix misspellings in comments. 2023-02-23 Paul Eggert lseek: avoid SEEK_HOLE bugs in FreeBSD, macOS This attempts to fix , a bug in GNU cp caused by a serious data corruption bug in FreeBSD and macOS. * doc/posix-functions/lseek.texi: Mention the bug. * lib/unistd.in.h (SEEK_DATA, SEEK_HOLE): Undef in macOS < 13 and FreeBSD < 14. FreeBSD fixed the bug sometime during FreeBSD 13 , so the "FreeBSD < 14" is conservative. It’s unknown when Apple will fix macOS so use macOS "9999" as a placeholder. * m4/lseek.m4 (gl_FUNC_LSEEK): Replace lseek if on one of the above platforms. 2023-02-18 Bruno Haible configmake: Add support for $build_os != $host_os. * m4/build-to-host.m4: New file. * m4/configmake.m4 (gl_CONFIGMAKE_PREP): Provide a configure-time definition for pkgdatadir, pkgincludedir, pkglibdir. (gl_CONFIGMAKE): New macro. * modules/configmake (Files): Add m4/build-to-host.m4. (configure.ac): Invoke gl_CONFIGMAKE instead of gl_CONFIGMAKE_PREP. (Makefile.am): For creating configmake.h, use the various *prefix_c_make and *dir_c_make variables. 2023-02-18 Bruno Haible configmake: Prepare for using directory names with backslashes. * modules/configmake (Makefile.am): Use printf instead of echo. 2023-02-18 Bruno Haible unilbrk tests: Fix compilation failures (regression 2023-02-11). * tests/unilbrk/test-u8-possible-linebreaks.c (main): Outside of libunistring, don't test the backward compatibility function. * tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-ulc-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-u8-width-linebreaks.c (main): Likewise. * tests/unilbrk/test-u16-width-linebreaks.c (main): Likewise. * tests/unilbrk/test-u32-width-linebreaks.c (main): Likewise. * tests/unilbrk/test-ulc-width-linebreaks.c (main): Likewise. 2023-02-17 Bruno Haible Improve cross-compilation for midipix. Reported by Ørjan Malde at . This patch handles the cases where midipix acts like Linux. * m4/chmod.m4 (gl_FUNC_CHMOD): Treat midipix like Linux with glibc or musl libc. * m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Likewise. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Likewise. * m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Likewise. * m4/link.m4 (gl_FUNC_LINK): Likewise. * m4/linkat.m4 (gl_FUNC_LINKAT): Likewise. * m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Likewise. * m4/mkdir.m4 (gl_FUNC_MKDIR): Likewise. * m4/pselect.m4 (gl_FUNC_PSELECT): Likewise. * m4/ptsname.m4 (gl_FUNC_PTSNAME): Likewise. * m4/readlink.m4 (gl_FUNC_READLINK): Likewise. * m4/rename.m4 (gl_FUNC_RENAME): Likewise. * m4/rmdir.m4 (gl_FUNC_RMDIR): Likewise. * m4/select.m4 (gl_FUNC_SELECT): Likewise. * m4/sleep.m4 (gl_FUNC_SLEEP): Likewise. * m4/stat.m4 (gl_FUNC_STAT): Likewise. * m4/symlink.m4 (gl_FUNC_SYMLINK): Likewise. * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Likewise. * m4/unlink.m4 (gl_FUNC_UNLINK): Likewise. * m4/usleep.m4 (gl_FUNC_USLEEP): Likewise. Improve cross-compilation for midipix. Reported by Ørjan Malde at . Since midipix consists of musl libc based on an emulation of Linux system calls, for pure libc functionality it can be treated like musl libc. * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Treat midipix like systems with musl libc. * m4/cbrtl.m4 (gl_FUNC_CBRTL): Likewise. * m4/ceil.m4 (gl_FUNC_CEIL): Likewise. * m4/ceilf.m4 (gl_FUNC_CEILF): Likewise. * m4/ceill.m4 (gl_FUNC_CEILL): Likewise. * m4/exp2l.m4 (gl_FUNC_EXP2L): Likewise. * m4/expl.m4 (gl_FUNC_EXPL): Likewise. * m4/expm1.m4 (gl_FUNC_EXPM1): Likewise. * m4/expm1f.m4 (gl_FUNC_EXPM1F): Likewise. * m4/expm1l.m4 (gl_FUNC_EXPM1L): Likewise. * m4/fclose.m4 (gl_FUNC_FCLOSE_STDIN): Likewise. * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Likewise. * m4/ffsll.m4 (gl_FUNC_FFSLL): Likewise. * m4/floor.m4 (gl_FUNC_FLOOR): Likewise. * m4/floorf.m4 (gl_FUNC_FLOORF): Likewise. * m4/fmod.m4 (gl_FUNC_FMOD): Likewise. * m4/fmodf.m4 (gl_FUNC_FMODF): Likewise. * m4/fmodl.m4 (gl_FUNC_FMODL): Likewise. * m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Likewise. * m4/fopen.m4 (gl_FUNC_FOPEN_GNU): Likewise. * m4/fpurge.m4 (gl_FUNC_FPURGE): Likewise. * m4/getdelim.m4 (gl_FUNC_GETDELIM): Likewise. * m4/getline.m4 (gl_FUNC_GETLINE): Likewise. * m4/hypot.m4 (gl_FUNC_HYPOT): Likewise. * m4/hypotf.m4 (gl_FUNC_HYPOTF): Likewise. * m4/hypotl.m4 (gl_FUNC_HYPOTL): Likewise. * m4/iconv_open-utf.m4 (gl_FUNC_ICONV_OPEN_UTF_SUPPORT): Likewise. * m4/log.m4 (gl_FUNC_LOG): Likewise. * m4/log10.m4 (gl_FUNC_LOG10): Likewise. * m4/log10f.m4 (gl_FUNC_LOG10F): Likewise. * m4/log10l.m4 (gl_FUNC_LOG10L_WORKS): Likewise. * m4/log1p.m4 (gl_FUNC_LOG1P): Likewise. * m4/log1pf.m4 (gl_FUNC_LOG1PF): Likewise. * m4/log1pl.m4 (gl_FUNC_LOG1PL, gl_FUNC_LOG1PL_WORKS): Likewise. * m4/log2.m4 (gl_FUNC_LOG2): Likewise. * m4/log2f.m4 (gl_FUNC_LOG2F): Likewise. * m4/log2l.m4 (gl_FUNC_LOG2L_WORKS): Likewise. * m4/logf.m4 (gl_FUNC_LOGF): Likewise. * m4/logl.m4 (gl_FUNC_LOGL_WORKS): Likewise. * m4/malloc.m4 (_AC_FUNC_MALLOC_IF): Likewise. * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Likewise. * m4/modf.m4 (gl_FUNC_MODF): Likewise. * m4/modff.m4 (gl_FUNC_MODFF): Likewise. * m4/modfl.m4 (gl_FUNC_MODFL): Likewise. * m4/musl.m4 (gl_MUSL_LIBC): Likewise. * m4/perror.m4 (gl_FUNC_PERROR): Likewise. * m4/posix_spawn.m4 (gl_POSIX_SPAWN_SECURE, gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE, gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2, gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN): Likewise. * m4/printf.m4 (gl_PRINTF_SIZES_C99, gl_PRINTF_INFINITE, gl_PRINTF_INFINITE_LONG_DOUBLE, gl_PRINTF_DIRECTIVE_A, gl_PRINTF_DIRECTIVE_F, gl_PRINTF_FLAG_ZERO, gl_SNPRINTF_TRUNCATION_C99, gl_SNPRINTF_RETVAL_C99, gl_SNPRINTF_DIRECTIVE_N, gl_VSNPRINTF_ZEROSIZE_C99): Likewise. * m4/pthread_rwlock_rdlock.m4 (gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER): Likewise. * m4/putenv.m4 (gl_FUNC_PUTENV): Likewise. * m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Likewise. * m4/remainder.m4 (gl_FUNC_REMAINDER): Likewise. * m4/remainderf.m4 (gl_FUNC_REMAINDERF): Likewise. * m4/remainderl.m4 (gl_FUNC_REMAINDERL, gl_FUNC_REMAINDERL_WORKS): Likewise. * m4/rintl.m4 (gl_FUNC_RINTL): Likewise. * m4/round.m4 (gl_FUNC_ROUND): Likewise. * m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise. * m4/roundl.m4 (gl_FUNC_ROUNDL): Likewise. * m4/setenv.m4 (gl_FUNC_SETENV): Likewise. * m4/setlocale_null.m4 (gl_FUNC_SETLOCALE_NULL): Likewise. * m4/signbit.m4 (gl_SIGNBIT): Likewise. * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Likewise. * m4/strerror.m4 (gl_FUNC_STRERROR, gl_FUNC_STRERROR_0): Likewise. * m4/strtod.m4 (gl_FUNC_STRTOD): Likewise. * m4/strtold.m4 (gl_FUNC_STRTOLD): Likewise. * m4/trunc.m4 (gl_FUNC_TRUNC): Likewise. * m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise. * m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise. * m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): Likewise. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise. 2023-02-13 ChuanGang Jiang (tiny change) hamt: Detect GCC version correctly. * lib/hamt.h:Use __GNUC_MINOR__, not __GNUC_MINOR. 2023-02-11 Bruno Haible terminfo, termcap: Avoid wrong configure result with clang ≥ 15. clang 15 reports an error for -Wint-conversion by default. Reported by Sam James in . * m4/terminfo.m4 (gl_TERMINFO_BODY): Avoid a -Wint-conversion warning when testing for tparam and tparm. * m4/termcap.m4 (gl_TERMCAP_BODY): Likewise. 2023-02-11 Bruno Haible error-h: Make less fragile. * lib/error.in.h: Use #include_next if the system has an . Use a split double-inclusion guard. * m4/error_h.m4 (gl_ERROR_H): Invoke gl_CHECK_NEXT_HEADERS. Set HAVE_ERROR_H. * modules/error-h (Makefile.am): Substitute GUARD_PREFIX, HAVE_ERROR_H, INCLUDE_NEXT, PRAGMA_SYSTEM_HEADER, NEXT_ERROR_H. 2023-02-11 Bruno Haible unilbrk: Don't compile unused functions outside of libunistring. * lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks): Don't compile outside of libunistring. * lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks): Likewise. * lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks): Likewise. * lib/unilbrk/ulc-possible-linebreaks.c (ulc_possible_linebreaks): Likewise. * lib/unilbrk/u8-width-linebreaks.c (u8_width_linebreaks): Likewise. * lib/unilbrk/u16-width-linebreaks.c (u16_width_linebreaks): Likewise. * lib/unilbrk/u32-width-linebreaks.c (u32_width_linebreaks): Likewise. * lib/unilbrk/ulc-width-linebreaks.c (ulc_width_linebreaks): Likewise. 2023-02-11 Bruno Haible sigsegv: Fix a compilation error on OpenBSD with clang ≥ 16. * lib/sigsegv.c (install_for): Add a cast when assigning to action.sa_sigaction. 2023-02-10 Bruno Haible Fix code duplication in last commit. * m4/gnulib-common.m4 (gl_CHECK_FUNCS_DEFAULT_CASE, gl_CHECK_FUNCS_CASE_FOR_ANDROID, gl_CHECK_FUNCS_CASE_FOR_MACOS, gl_CHECK_FUNCS_SET_RESULTS): New macros, extracted from gl_CHECK_FUNCS_ANDROID, gl_CHECK_FUNCS_MACOS, gl_CHECK_FUNCS_ANDROID_MACOS. (gl_CHECK_FUNCS_ANDROID, gl_CHECK_FUNCS_MACOS, gl_CHECK_FUNCS_ANDROID_MACOS): Use them. mkfifoat: Fix crash on macOS 12. * m4/gnulib-common.m4 (gl_PREPARE_CHECK_FUNCS_MACOS, gl_CHECK_FUNCS_MACOS, gl_CHECK_FUNCS_ANDROID_MACOS): New macros. * m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Test for mknodat and mkfifoat using gl_CHECK_FUNCS_ANDROID_MACOS instead of gl_CHECK_FUNCS_ANDROID. 2023-02-10 ChuanGang Jiang (tiny change) Fix typos like "the the" and "a a" in comments. * lib/c32is-impl.h: s/the the/the/ * lib/getopt-pfx-core.h: s/a a/a/ * lib/term-style-control.h: s/the the/the/ * lib/textstyle.in.h: Likewise. 2023-02-10 Bruno Haible chown, lchown, fchownat tests: Avoid test failure on macOS 12. * tests/test-chown.h (test_chown): Skip some assertions if getgid() == (gid_t)-1. * tests/test-lchown.h (test_lchown): Likewise. 2023-02-09 Paul Eggert nullptr: work around Apple clang 14 issue Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2023-02/msg00098.html * doc/gnulib.texi (nullptr): Document limitations better. * m4/nullptr.m4 (gl_NULLPTR): Check for incompatibility of macOS clang 14.0.0 (clang-1400.0.29.202), where defines a non-working nullptr macro. 2023-02-09 Bruno Haible math: Fix compilation error in C++ mode on macOS 12.5. * lib/math.in.h (isnan): On macOS, treat clang version 14 again like clang versions < 12. 2023-02-09 Bruno Haible Fix compilation errors in C++ mode on macOS 12.5. * m4/gnulib-common.m4 (gl_COMMON_BODY): Don't define _GL_ATTRIBUTE_MAYBE_UNUSED to [[__maybe_unused__]] if the compiler is an Apple variant of clang. 2023-02-09 Bruno Haible limits-h: Work around a clang 15 bug. * m4/limits-h.m4 (gl_LIMITS_H): Test also for BOOL_MAX. * lib/limits.in.h: Handle the case where BOOL_WIDTH is present and BOOL_MAX is missing. * doc/posix-headers/limits.texi: Mention the clang bug. 2023-02-09 Bruno Haible Fix error in C++ mode on glibc systems (regression 2022-04-28). * lib/malloc.in.h (rpl_free): Add exception specification like stdlib.in.h does. * lib/string.in.h (rpl_free): Likewise. * lib/wchar.in.h (rpl_free): Likewise. 2023-02-09 Bruno Haible getcwd: Fix compilation error in C23 mode. * lib/getcwd.c: Include . 2023-02-08 Bruno Haible x-to-1: Accept additional help2man arguments. Suggested by Reuben Thomas in . * build-aux/x-to-1.in: Allow additional options after the HELP2MAN argument, and pass them down to help2man. 2023-02-08 Bruno Haible x-to-1: Document the configure-time prerequisites. Suggested by Reuben Thomas in . * build-aux/x-to-1.in: Add more comments. 2023-02-08 Bruno Haible hard-locale: Add comment regarding per-thread locales. * lib/hard-locale.h (hard_locale): Add comment. 2023-02-08 Bruno Haible nl_langinfo: Add comment regarding per-thread locales. * lib/nl_langinfo.c (ctype_codeset): Add comment. nl_langinfo tests: Add another test. * tests/test-nl_langinfo2.c: New file. * tests/test-nl_langinfo2.sh: New file. * modules/nl_langinfo-tests (Files): Add them. Add intl-thread-locale.m4. (Depends-on): Add c-strcasestr, stdbool. (configure.ac): Invoke gt_FUNC_USELOCALE. (Makefile.am): Arrange to compile test-nl_langinfo2 and test it through test-nl_langinfo2.sh. nl_langinfo tests: Prepare for adding more tests. * tests/test-nl_langinfo1.c: Renamed from tests/test-nl_langinfo.c. * tests/test-nl_langinfo1.sh: Renamed from tests/test-nl_langinfo.sh. Update. * modules/nl_langinfo-tests (Files, Makefile.am): Update. 2023-02-08 Bruno Haible assert-h: Fix test failure on IRIX 6.5. * m4/assert_h.m4 (gl_ASSERT_H): Ensure that on IRIX, including after actually defines the assert macro. 2023-02-07 Paul Eggert nullptr: test for compilers at autoconf-time * m4/nullptr.m4 (gl_NULLPTR): Test for C and C++ compiler usage at autoconf-time. This should work better than testing at configure-time. Also, push and pop languages so we check the proper compiler. nullptr: test for C++ nullptr at configure-time * m4/nullptr.m4 (gl_NULLPTR): Test for C++ support for nullptr at configure-time, as we already do for C support. This should be more reliable than maintaining #ifdefs by hand. nullptr: rename from c-nullptr * NEWS, doc/gnulib.texi: Mention this. * m4/nullptr.m4: Rename from m4/c-nullptr.m4. (gl_NULLPTR): Rename from gl_C_NULLPTR. * modules/nullptr: Rename from modules/nullptr. * modules/nullptr-c++-tests: Rename from modules/c-nullptr-c++-tests. * modules/nullptr-tests: Rename from modules/c-nullptr-tests. All uses changed. 2023-02-07 Bruno Haible Fix a copyright header - module license mismatch. Reported by Bjarni Ingi Gislason in . * lib/gen-uni-tables.c (output_predicate): For uniwidth/width2.h, use an LGPLv2+ license. (output_nonspacing_property): Use an LGPLv2+ license. * lib/uniwidth/width0.h: Regenerated. * lib/uniwidth/width2.h: Likewise. 2023-02-07 Bruno Haible check-copyright: Don't fail because of the 'glob' module. Reported by Bjarni Ingi Gislason in . * check-copyright: Filter out the files from the 'glob' module. 2023-02-07 Bruno Haible check-copyright: Make output prettier. * check-copyright: Resize the second column from width 14 to width 17. 2023-02-06 Bruno Haible setlocale-null: Don't use a lock in Cygwin >= 3.4.6. Road paved by Corinna Vinschen . * m4/setlocale_null.m4 (gl_FUNC_SETLOCALE_NULL): Assume that setlocale (LC_ALL, NULL) is multithread-safe in Cygwin >= 3.4.6. * lib/setlocale_null.c: Update comments. * tests/test-setlocale_null-mt-all.c: Likewise. 2023-02-05 Bruno Haible c-nullptr: Fix conflict with libstdc++ in GCC >= 11. Reported by Bjarni Ingi Gislason in . * m4/c-nullptr.m4 (gl_C_NULLPTR): Don't define nullptr if it is already defined. In C++ mode, ignore the result of the configure test and don't define it when we know that the C++ compiler already supports it. 2023-02-05 Bruno Haible c-nullptr: Add tests. * tests/test-nullptr.c: New file. * modules/c-nullptr-tests: New file. * tests/test-nullptr-c++.cc: New file. * modules/c-nullptr-c++-tests: New file. 2023-02-05 Paul Eggert sh-quote: backport fix from diffutils * lib/sh-quote.c (init_sh_quoting_options): Use C89 through C17 style for parameterless static function. This avoided a warning when compiling diffutils. This patch is backported from a circa-2009 diffutils patch and lets us remove diffutils/gl/lib/sh-quote.c.diff; see: https://git.savannah.gnu.org/cgit/diffutils.git/commit/?id=8c3d25a63a2c5912170ef6e13f748f3904e6b5cf c-nullptr: new module * doc/gnulib.texi (nullptr): New section. * doc/posix-headers/stddef.texi: Document lack of nullptr_t. * m4/c-nullptr.m4, modules/c-nullptr: New files. 2023-02-05 Bruno Haible Update build-aux/po/Makefile.in.in. Reported by Reuben Thomas in . * build-aux/po/Makefile.in.in: Sync from GNU gettext 0.21.1. Fixes: - In the .po -> .gmo rules, consider the newest changes to the POT file. - Emit a warning when creating a tarball without POT file. 2023-02-05 Bruno Haible assert-h, verify: Fix compilation error in C++ mode with MSVC 14. * lib/verify.h (static_assert): Define _ALLOW_KEYWORD_MACROS. * tests/test-assert-h-c++.cc: Strengthen test. * tests/test-assert-h-c++2.cc: Likewise. 2023-02-04 Paul Eggert fts: pacify GCC 13 -Wuse-after-free Ordinarily I fix this sort of thing by using well-defined rather than undefined behavior, but a straightforward patch along those lines would change the fts_.h API since fts_accpath would change from a pointer to an integer with a more-complex interpretation. Instead, attempt to pacify GCC 13 with code that relies on undefined but portable-in-practice behavior that GCC 13 does not complain about. GCC problem reported by Peter Frazier in: https://lists.gnu.org/r/bug-gnulib/2023-02/msg00000.html * lib/fts.c: Include stdint.h. (fts_build): Do not access freed pointer directly; instead, save its bit-pattern into a uintptr_t, and use that to compare. (ADJUST): Likewise, but more trickily since this hack actually accesses freed pointers, but does so in a way that I hope GCC doesn’t notice. Although using ‘*(uintptr_t *) &P’ instead of ‘(uintptr_t) P’ would avoid accessing freed pointers, it would provoke a -Wstrict-aliasing diagnostic. * modules/fts (Depends-on): Add stdint. 2023-02-04 Bruno Haible assert-h, verify: Fix conflict with standard C++ header files on macOS. * lib/verify.h (_Static_assert): Don't redefine with clang ≥ 3.8.0 in C++ mode. * tests/test-assert-h-c++.cc: Also check against conflict with the standard C++ header files. * tests/test-assert-h-c++2.cc: Likewise. 2023-02-04 Bruno Haible Activate all existing C++ tests. * modules/assert-h-tests (Depends-on): Add assert-h-c++-tests. * modules/stdarg-tests (Depends-on): Add stdarg-c++-tests. 2023-02-04 Bruno Haible spawn: Fix compilation error on macOS (regression 2023-01-22). * lib/spawn.in.h: Tweak logic for defining the POSIX_SPAWN_* constants. 2023-02-03 Bruno Haible relocatable-prog: Fix compiler warning. * lib/progreloc.c (full_read): Use a non-const pointer. 2023-02-03 Bruno Haible doc: Update regarding AIX. * doc/glibc-headers/getopt.texi: Update. 2023-02-03 Bruno Haible doc: Update regarding NetBSD. * doc/posix-functions/sigprocmask.texi: Mention a NetBSD 9.0 bug. * doc/posix-functions/pthread_sigmask.texi: Likewise. 2023-02-03 Paul Eggert isnan: update comment * lib/isnan.c: Update comment for C23. 2023-01-30 Bruno Haible at-internal: Fix support for z/OS. * lib/openat-proc.c (openat_proc_name) [z/OS]: Proper error handling. Convert only the relevant part of the dir[] buffer. at-internal: Add support for z/OS. Reported and draft patch by Igor Todorovski . * lib/openat-proc.c [z/OS]: Include . (openat_proc_name): For z/OS, use an approach similar to kLIBC, with 3 lines of z/OS specific code by Igor Todorovski . 2023-01-30 Bruno Haible Update NEWS. * NEWS: Update for qcopy-acl change on 2023-01-13. 2023-01-29 Bruno Haible maintainer-makefile: Determine gnulib's location on disk correctly. * top/maint.mk (gnulib_dir): Give priority to $(GNULIB_SRCDIR) over $(srcdir)/gnulib. 2023-01-29 Bruno Haible Fix compilation errors with CC="clang -D_FORTIFY_SOURCE=2" on Android. Reported by Alexey Rochev in . * lib/cdefs.h (__bos, __bos0, __glibc_objsize0, __glibc_objsize, __glibc_safe_len_cond, __glibc_unsigned_or_positive, __glibc_safe_or_unknown_len, __glibc_unsafe_len, __glibc_fortify, __glibc_fortify_n): Don't define these macros in Gnulib. * lib/libc-config.h: Don't undefine these macros in Gnulib. 2023-01-28 Bruno Haible Clarify _GL_ATTRIBUTE_NODISCARD code. Reported by Paul Eggert. * m4/gnulib-common.m4 (gl_COMMON_BODY): Add comment regarding _GL_ATTRIBUTE_NODISCARD definition. 2023-01-28 Bruno Haible unistdio/*printf: Fix negative width handling for %U, %lU, %llU. * lib/vasnprintf.c (VASNPRINTF): In the code for %U, %lU, %llU, test for the FLAG_LEFT bit in the flags variable. * tests/unistdio/test-u8-printf1.h (test_xfunction): Add tests for width given as argument for the directives %U, %lU, %llU, %s, %a, %f, %e, %g. * tests/unistdio/test-u16-printf1.h (test_xfunction): Likewise. * tests/unistdio/test-u32-printf1.h (test_xfunction): Likewise. * tests/unistdio/test-ulc-printf1.h (test_xfunction): Likewise. 2023-01-28 Bruno Haible vasnprintf-posix: Fix possible bug with negative width handling for %lc. * lib/vasnprintf.c (VASNPRINTF): In the code for %lc in vasnprintf, test for the FLAG_LEFT bit in the flags variable. * tests/test-vasnprintf-posix.c (test_function): Add tests for width given as argument for the directives %c, %lc. * tests/test-vasprintf-posix.c (test_function): Likewise. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. * tests/test-snprintf-posix.c: Include , for wint_t. * tests/test-sprintf-posix.c: Likewise. * tests/test-vsnprintf-posix.c: Likewise. * tests/test-vsprintf-posix.c: Likewise. 2023-01-28 Bruno Haible vasnprintf-posix: Fix negative width handling for %ls directive. Reported by clang via Po Lu . * lib/vasnprintf.c (VASNPRINTF): In the code for %ls in vasnprintf and for %s in vasnwprintf, test for the FLAG_LEFT bit in the flags variable. * tests/test-vasnprintf-posix.c (test_function): Add tests for width given as argument for the directives %s, %ls. * tests/test-vasprintf-posix.c (test_function): Likewise. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. 2023-01-28 Bruno Haible vasnprintf-posix: Add more unit tests. * tests/test-vasnprintf-posix.c (test_function): Add tests for width given as argument for the directives %a, %f, %e, %g. * tests/test-vasprintf-posix.c (test_function): Likewise. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. 2023-01-28 Bruno Haible Avoid clang warnings regarding [[__nodiscard__]]. * m4/gnulib-common.m4 (gl_COMMON_BODY): For clang, in C++ mode, ignore the __has_c_attribute value and define _GL_ATTRIBUTE_NODISCARD to __attribute__ ((__warn_unused_result__)), not [[__nodiscard__]]. 2023-01-28 Bruno Haible Avoid clang warnings regarding [[__maybe_unused__]]. * m4/gnulib-common.m4 (gl_COMMON_BODY): For clang versions ≥ 6, < 10, in C++ mode, ignore the __has_c_attribute value and define _GL_ATTRIBUTE_MAYBE_UNUSED to __attribute__ ((__unused__)), not [[__maybe_unused__]]. 2023-01-27 Bruno Haible alignasof: Ensure a correct _Alignof (regression 2023-01-15). * m4/stdalign.m4 (gl_ALIGNASOF): Apply the workaround for wrong _Alignof in GCC < 4.9 and clang < 8.0.0 also when the system has . 2023-01-27 Bruno Haible stdalign: Ensure alignof is defined on FreeBSD (regression 2023-01-15). * lib/stdalign.in.h: Include the system's when it exists. * m4/stdalign.m4 (gl_ALIGNASOF): Invoke gl_CHECK_NEXT_HEADERS. Set HAVE_STDALIGN_H. * modules/stdalign (Makefile.am): Substitute GUARD_PREFIX, HAVE_STDALIGN_H, INCLUDE_NEXT, PRAGMA_SYSTEM_HEADER, PRAGMA_COLUMNS, NEXT_STDALIGN_H. 2023-01-27 Bruno Haible stddef: Fix test-stddef compilation error on FreeBSD 12/x86. * m4/stddef_h.m4 (gl_STDDEF_H): When testing for good max_align_t, use an ISO C compliant definition of _Alignof. 2023-01-25 Bruno Haible Keep config.h idempotent. * m4/gnulib-common.m4 (gl_COMMON_BODY): Add double-inclusion guards to the definitions of the macros _GL_ATTRIBUTE_ALLOC_SIZE, _GL_ATTRIBUTE_ALWAYS_INLINE, _GL_ATTRIBUTE_ARTIFICIAL, _GL_ATTRIBUTE_COLD, _GL_ATTRIBUTE_CONST, _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_DEPRECATED, _GL_ATTRIBUTE_ERROR, _GL_ATTRIBUTE_WARNING, _GL_ATTRIBUTE_EXTERNALLY_VISIBLE, _GL_ATTRIBUTE_FALLTHROUGH, _GL_ATTRIBUTE_FORMAT, _GL_ATTRIBUTE_LEAF, _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_MAY_ALIAS, _GL_ATTRIBUTE_MAYBE_UNUSED, _GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_NOINLINE, _GL_ATTRIBUTE_NONNULL, _GL_ATTRIBUTE_NONSTRING, _GL_ATTRIBUTE_NOTHROW, _GL_ATTRIBUTE_PACKED, _GL_ATTRIBUTE_PURE, _GL_ATTRIBUTE_RETURNS_NONNULL, _GL_ATTRIBUTE_SENTINEL, _GL_ATTRIBUTE_UNUSED, _GL_UNUSED_LABEL. 2023-01-25 Bruno Haible vasnprintf: Fix compilation error on Android NDK r26b. Reported by Po Lu . * lib/vasnprintf.c: Include . 2023-01-25 Nick Bowler (tiny change) threadlib: Fix support for Solaris 9 and older. * m4/threadlib.m4 (gl_PTHREADLIB_BODY): Allow case patterns to survive m4 processing by using changequote. 2023-01-24 Bruno Haible alignasof, stdalign: Fix a compilation error on FreeBSD 12.0. * m4/stdalign.m4 (gl_ALIGNASOF): In C mode, prefer __builtin_offsetof over offsetof when possible, since __builtin_offsetof works also when has not been fully included yet. 2023-01-22 Bruno Haible doc: Update list of target platforms. * doc/gnulib-intro.texi (Supported Platforms): Mark musl libc, Android, and MSVC as "occasionally tested". Update the version numbers of some OSes. Combine paragraphs regarding mingw and MSVC. (Formerly Supported Platforms): Mark AIX 5, 6 as "formerly supported". 2023-01-22 Bruno Haible Resolve conflicts for functions introduced in Android API level 29. * m4/reallocarray.m4 (gl_FUNC_REALLOCARRAY): Conditionally set REPLACE_REALLOCARRAY. * lib/stdlib.in.h (reallocarray): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * lib/stdlib.in.h (getloadavg): Consider REPLACE_GETLOADAVG. Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_GETLOADAVG. * modules/stdlib (Makefile.am): Substitute REPLACE_GETLOADAVG. * m4/getloadavg.m4 (gl_GETLOADAVG): Conditionally set REPLACE_GETLOADAVG. * modules/getloadavg (Depends-on, configure.ac): Consider REPLACE_GETLOADAVG. * lib/time.in.h (timespec_get): Consider REPLACE_TIMESPEC_GET. Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/time_h.m4 (gl_TIME_H_DEFAULTS): Initialize REPLACE_TIMESPEC_GET. * modules/time (Makefile.am): Substitute REPLACE_TIMESPEC_GET. * m4/gettime.m4 (gl_CHECK_FUNC_TIMESPEC_GET): Set also gl_cv_onwards_func_timespec_get. * m4/timespec_get.m4 (gl_FUNC_TIMESPEC_GET): Conditionally set REPLACE_TIMESPEC_GET. * modules/timespec_get (Depends-on, configure.ac): Consider REPLACE_TIMESPEC_GET. 2023-01-22 Bruno Haible Resolve conflicts for functions introduced in Android API level 28. * m4/aligned_alloc.m4 (gl_FUNC_ALIGNED_ALLOC): Conditionally set REPLACE_ALIGNED_ALLOC. * m4/getrandom.m4 (gl_FUNC_GETRANDOM): Conditionally set REPLACE_GETRANDOM. * m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Conditionally set REPLACE_GETLOGIN_R. * lib/unistd.in.h (getlogin_r): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/spawn_h.m4 (gl_HAVE_POSIX_SPAWN): Conditionally set REPLACE_POSIX_SPAWN. * lib/spawn.in.h: Adapt logic for defining the POSIX_SPAWN_* constants. (posix_spawn, posix_spawnp, posix_spawnattr_init, posix_spawnattr_destroy, posix_spawnattr_getsigdefault, posix_spawnattr_setsigdefault, posix_spawnattr_getsigmask, posix_spawnattr_setsigmask, posix_spawnattr_getflags, posix_spawnattr_setflags, posix_spawnattr_getpgroup, posix_spawnattr_setpgroup, posix_spawn_file_actions_init, posix_spawn_file_actions_destroy, posix_spawn_file_actions_addchdir, posix_spawn_file_actions_addfchdir): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/glob.m4 (gl_GLOB): Conditionally set REPLACE_GLOB. * lib/glob.in.h (glob): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * lib/unistd.in.h (getentropy): Consider REPLACE_GETENTROPY. Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_GETENTROPY. * modules/unistd (Makefile.am): Substitute REPLACE_GETENTROPY. * m4/getentropy.m4 (gl_FUNC_GETENTROPY): Conditionally set REPLACE_GETENTROPY. * modules/getentropy (Depends-on, configure.ac): Consider REPLACE_GETENTROPY. 2023-01-22 Bruno Haible Resolve conflicts for functions introduced in Android API level 26. * m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME): Test for getdomainname using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. Conditionally set REPLACE_GETSUBOPT. * m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Conditionally set REPLACE_NL_LANGINFO. * lib/langinfo.in.h (nl_langinfo): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * lib/stdlib.in.h (getsubopt): Consider REPLACE_GETSUBOPT. Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_GETSUBOPT. * modules/stdlib (Makefile.am): Substitute REPLACE_GETSUBOPT. * m4/getsubopt.m4 (gl_FUNC_GETSUBOPT): Conditionally set REPLACE_GETSUBOPT. * modules/getsubopt (Depends-on, configure.ac): Consider REPLACE_GETSUBOPT. 2023-01-22 Bruno Haible Resolve conflicts for functions introduced in Android API level 24. * m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Conditionally set REPLACE_STRCHRNUL. 2023-01-22 Bruno Haible Resolve conflicts for functions introduced in Android API level 23. * m4/login_tty.m4 (gl_FUNC_LOGIN_TTY): Conditionally set REPLACE_LOGIN_TTY. * lib/utmp.in.h (login_tty): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Conditionally set REPLACE_MKFIFOAT. * lib/sys_stat.in.h (mkfifoat): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS): Conditionally set REPLACE_STRERROR_R. * lib/string.in.h (strerror_r): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/error_h.m4 (gl_ERROR_H): Conditionally set REPLACE_ERROR. * lib/error.in.h (error): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * lib/wchar.in.h (wmempcpy): Consider REPLACE_WMEMPCPY. * m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WMEMPCPY. * modules/wchar (Makefile.am): Substitute REPLACE_WMEMPCPY. * m4/wmempcpy.m4 (gl_FUNC_WMEMPCPY): Conditionally set REPLACE_WMEMPCPY. * modules/wmempcpy (configure.ac): Consider REPLACE_WMEMPCPY. * lib/unistd.in.h (sethostname): Consider REPLACE_SETHOSTNAME. Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_SETHOSTNAME. * modules/unistd (Makefile.am): Substitute REPLACE_SETHOSTNAME. * m4/sethostname.m4 (gl_FUNC_SETHOSTNAME): Conditionally set REPLACE_SETHOSTNAME. * modules/sethostname (Depends-on, configure.ac): Consider REPLACE_SETHOSTNAME. * lib/string.in.h (mempcpy): Consider REPLACE_MEMPCPY. Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/string_h.m4 (gl_STRING_H_DEFAULTS): Initialize REPLACE_MEMPCPY. * modules/string (Makefile.am): Substitute REPLACE_MEMPCPY. * m4/mempcpy.m4 (gl_FUNC_MEMPCPY): Conditionally set REPLACE_MEMPCPY. * modules/mempcpy (configure.ac): Consider REPLACE_MEMPCPY. * lib/stdlib.in.h (mkostemp): Consider REPLACE_MKOSTEMP. Disable _GL_CXXALIASWARN invocation on non-glibc systems. (mkostemps): Consider REPLACE_MKOSTEMPS. Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_MKOSTEMP, REPLACE_MKOSTEMPS. * modules/stdlib (Makefile.am): Substitute REPLACE_MKOSTEMP, REPLACE_MKOSTEMPS. * m4/mkostemp.m4 (gl_FUNC_MKOSTEMP): Conditionally set REPLACE_MKOSTEMP. * modules/mkostemp (Depends-on, configure.ac): Consider REPLACE_MKOSTEMP. * m4/mkostemps.m4 (gl_FUNC_MKOSTEMPS): Conditionally set REPLACE_MKOSTEMPS. * modules/mkostemps (Depends-on, configure.ac): Consider REPLACE_MKOSTEMPS. 2023-01-22 Bruno Haible Resolve conflicts for functions introduced in Android API level 21. * m4/fts.m4 (gl_FUNC_FTS_CORE): Use rpl_* symbols also when the system will have fts_open in a future version. * m4/iswblank.m4 (gl_FUNC_ISWBLANK): Conditionally set REPLACE_ISWBLANK. * m4/mbtowc.m4 (gl_FUNC_MBTOWC): Conditionally set REPLACE_MBTOWC. * m4/vdprintf.m4 (gl_REPLACE_VDPRINTF): Conditionally set REPLACE_VDPRINTF. * m4/wcsnrtombs.m4 (gl_FUNC_WCSNRTOMBS): Conditionally set REPLACE_WCSNRTOMBS. * m4/mbsnrtowcs.m4 (gl_FUNC_MBSNRTOWCS): Conditionally set REPLACE_MBSNRTOWCS. * lib/wchar.in.h (mbsnrtowcs): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/execvpe.m4 (gl_FUNC_EXECVPE): Conditionally set REPLACE_EXECVPE. * m4/linkat.m4 (gl_FUNC_LINKAT): Conditionally set REPLACE_LINKAT. * m4/readlinkat.m4 (gl_FUNC_READLINKAT): Conditionally set REPLACE_READLINKAT. * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Conditionally set REPLACE_SYMLINKAT. * m4/truncate.m4 (gl_FUNC_TRUNCATE): Conditionally set REPLACE_TRUNCATE. * lib/unistd.in.h (execvpe, linkat, readlinkat, symlinkat, truncate): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Conditionally set REPLACE_MKNODAT. * lib/sys_stat.in.h (mknodat): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Conditionally set REPLACE_STPNCPY. * lib/string.in.h (stpncpy): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/random.m4 (gl_FUNC_RANDOM): Conditionally set REPLACE_INITSTATE, REPLACE_SETSTATE. * lib/stdlib.in.h (initstate, setstate): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/dprintf.m4 (gl_REPLACE_DPRINTF): Conditionally set REPLACE_DPRINTF. * lib/stdio.in.h (dprintf): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Conditionally set REPLACE_DUPLOCALE. * m4/localename.m4 (gl_LOCALENAME): Conditionally set REPLACE_NEWLOCALE, REPLACE_DUPLOCALE, REPLACE_FREELOCALE. * lib/locale.in.h (newlocale, duplocale, freelocale): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * lib/unistd.in.h (dup3): Consider REPLACE_DUP3. Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_DUP3. * modules/unistd (Makefile.am): Substitute REPLACE_DUP3. * m4/dup3.m4 (gl_FUNC_DUP3): Conditionally set REPLACE_DUP3. * lib/string.in.h (stpcpy): Consider REPLACE_STPCPY. Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/string_h.m4 (gl_STRING_H_DEFAULTS): Initialize REPLACE_STPCPY. * modules/string (Makefile.am): Substitute REPLACE_STPCPY. * m4/stpcpy.m4 (gl_FUNC_STPCPY): Conditionally set REPLACE_STPCPY. * modules/stpcpy (configure.ac): Consider REPLACE_STPCPY. * lib/stdlib.in.h (_Exit): Consider REPLACE__EXIT. Disable _GL_CXXALIASWARN invocation on non-glibc systems. (getprogname): Consider REPLACE_GETPROGNAME. Disable _GL_CXXALIASWARN invocation on non-glibc systems. (posix_openpt): Consider REPLACE_POSIX_OPENPT. Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE__EXIT, REPLACE_GETPROGNAME, REPLACE_POSIX_OPENPT. * modules/stdlib (Makefile.am): Substitute REPLACE__EXIT, REPLACE_GETPROGNAME, REPLACE_POSIX_OPENPT. * m4/_Exit.m4 (gl_FUNC__EXIT): Conditionally set REPLACE__EXIT. * modules/_Exit (configure.ac): Consider REPLACE__EXIT. * m4/getprogname.m4 (gl_FUNC_GETPROGNAME): Conditionally set REPLACE_GETPROGNAME. * modules/getprogname (configure.ac): Consider REPLACE_GETPROGNAME. * m4/posix_openpt.m4 (gl_FUNC_POSIX_OPENPT): Conditionally set REPLACE_POSIX_OPENPT. * modules/posix_openpt (configure.ac): Consider REPLACE_POSIX_OPENPT. * lib/search.in.h (twalk): Consider REPLACE_TWALK. * m4/search_h.m4 (gl_SEARCH_H_DEFAULTS): Initialize REPLACE_TWALK. * modules/search (Makefile.am): Substitute REPLACE_TWALK. * m4/tsearch.m4 (gl_FUNC_TSEARCH): Conditionally set REPLACE_TWALK. * modules/tsearch (configure.ac): Consider REPLACE_TWALK. 2023-01-22 Bruno Haible Resolve conflicts for functions introduced in Android API level 19. * lib/inttypes.in.h (imaxabs): Consider REPLACE_IMAXABS. Disable _GL_CXXALIASWARN invocation on non-glibc systems. (imaxdiv): Consider REPLACE_IMAXDIV. Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/inttypes.m4 (gl_INTTYPES_H_DEFAULTS): Initialize HAVE_IMAXABS, HAVE_IMAXDIV, REPLACE_IMAXABS, REPLACE_IMAXDIV. * modules/inttypes-incomplete (Makefile.am): Substitute REPLACE_IMAXABS, REPLACE_IMAXDIV. * m4/imaxabs.m4 (gl_FUNC_IMAXABS): Conditionally set HAVE_IMAXABS, REPLACE_IMAXABS. * modules/imaxabs (configure.ac): Consider HAVE_IMAXABS, REPLACE_IMAXABS. * m4/imaxdiv.m4 (gl_FUNC_IMAXDIV): Conditionally set HAVE_IMAXDIV, REPLACE_IMAXDIV. * modules/imaxdiv (configure.ac): Consider HAVE_IMAXDIV, REPLACE_IMAXDIV. * m4/futimens.m4 (gl_FUNC_FUTIMENS): Conditionally set REPLACE_FUTIMENS. * lib/sys_stat.in.h (futimens): Disable _GL_CXXALIASWARN invocation on non-glibc systems. 2023-01-22 Bruno Haible Resolve conflicts for functions introduced in Android API level 18. * m4/log2.m4 (gl_FUNC_LOG2): Conditionally set REPLACE_LOG2. * m4/log2f.m4 (gl_FUNC_LOG2F): Conditionally set REPLACE_LOG2F. * m4/log2l.m4 (gl_FUNC_LOG2L): Conditionally set REPLACE_LOG2L. * lib/math.in.h (log2f): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/getdelim.m4 (gl_FUNC_GETDELIM): Conditionally set REPLACE_GETDELIM. * m4/getline.m4 (gl_FUNC_GETLINE): Conditionally set REPLACE_GETLINE. * lib/stdio.in.h (getdelim, getline): Disable _GL_CXXALIASWARN invocation on non-glibc systems. 2023-01-22 Bruno Haible Resolve conflicts for functions introduced in Android API level 16-17. * m4/posix_memalign.m4 (gl_FUNC_POSIX_MEMALIGN): Conditionally set REPLACE_POSIX_MEMALIGN. * lib/stdlib.in.h (posix_memalign): Disable _GL_CXXALIASWARN invocation on non-glibc systems. 2023-01-22 Bruno Haible Resolve conflicts for functions introduced in Android API level 16. * m4/tsearch.m4 (gl_FUNC_TSEARCH): Conditionally set REPLACE_TSEARCH. * lib/search.in.h (tsearch, tfind, tdelete, twalk): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/faccessat.m4 (gl_FUNC_FACCESSAT): Conditionally set REPLACE_FACCESSAT. * lib/unistd.in.h (faccessat): Disable _GL_CXXALIASWARN invocation on non-glibc systems. 2023-01-22 Bruno Haible Resolve conflicts for functions introduced in Android API level 12. * m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Conditionally set REPLACE_UTIMENSAT. * lib/sys_stat.in.h (utimensat): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/timegm.m4 (gl_FUNC_TIMEGM): Conditionally set REPLACE_TIMEGM. * lib/time.in.h (timegm): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/pwrite.m4 (gl_FUNC_PWRITE): Conditionally set REPLACE_PWRITE. * lib/unistd.in.h (pwrite): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/pread.m4 (gl_FUNC_PREAD): Conditionally set REPLACE_PREAD. * lib/unistd.in.h (pread): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): Conditionally set REPLACE_FTRUNCATE. * lib/unistd.in.h (ftruncate): Disable _GL_CXXALIASWARN invocation on non-glibc systems. 2023-01-22 Bruno Haible Resolve conflicts for functions introduced in Android API level 9. * lib/unistd.in.h (fdatasync): Consider REPLACE_FDATASYNC. Disable _GL_CXXALIASWARN invocation on non-glibc systems. (pipe2): Consider REPLACE_PIPE2. Disable _GL_CXXALIASWARN invocation on non-glibc systems. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_FDATASYNC, REPLACE_PIPE2. * modules/unistd (Makefile.am): Substitute REPLACE_FDATASYNC, REPLACE_PIPE2. * m4/fdatasync.m4 (gl_FUNC_FDATASYNC): Test for fdatasync using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. Conditionally set REPLACE_FDATASYNC. * modules/fdatasync (Depends-on, configure.ac): Consider REPLACE_FDATASYNC. * m4/pipe2.m4 (gl_FUNC_PIPE2): Conditionally set REPLACE_PIPE2. 2023-01-22 Bruno Haible Resolve conflicts for functions introduced in Android API level 8. * m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Conditionally set REPLACE_TTYNAME_R. * lib/unistd.in.h (ttyname_r): Disable _GL_CXXALIASWARN invocation on non-glibc systems. 2023-01-22 Bruno Haible Prepare for resolving conflicts regarding future Android API levels. * m4/gnulib-common.m4 (gl_CHECK_FUNCS_ANDROID): Don't check for the function declaration on platforms other than Android. Set a variable gl_cv_onwards_func_. 2023-01-22 Paul Eggert sigsegv, vma-iter: port to Solaris 10 On this platform, does not define off_t if neither _LP64 nor _FILE_OFFSET_BITS is defined, which can happen if we #undef _FILE_OFFSET_BITS. This became a problem with the new way of doing stdbool, since config.h now includes , and Solaris 10 includes which arranges for _FILE_OFFSET_BITS to always be defined (if only to 32), which assumes. * lib/stackvma.c, lib/vma-iter.c (_FILE_OFFSET_BITS) [__sun && !_LP64]: Define to 32 instead of leaving undefined. 2023-01-21 Bruno Haible login_tty: Ensure declaration in . * tests/test-utmp-c++.cc: New file. * modules/utmp-c++-tests: New file. * tests/test-utmp.c: New file. * modules/utmp-tests: New file. * lib/login_tty.c: Include . * m4/login_tty.m4: New file. (gl_FUNC_LOGIN_TTY): Moved here from m4/pty.m4. Set HAVE_LOGIN_TTY. * m4/pty.m4 (gl_FUNC_LOGIN_TTY): Moved to m4/login_tty.m4. * modules/login_tty (Files): Add m4/login_tty.m4. (Depends-on): Add utmp. Remove pty. Update condition. (configure.ac): Update condition. Invoke gl_UTMP_MODULE_INDICATOR instead of gl_PTY_MODULE_INDICATOR. (Include): List . * doc/glibc-functions/login_tty.texi: Mark the include file diversity as fixed. * tests/test-login_tty.c: Include . Don't declare login_tty here. * lib/utmp.in.h: New file. * m4/utmp_h.m4: New file. * modules/utmp: New file. * doc/glibc-headers/utmp.texi: New file. * doc/gnulib.texi (Glibc Header File Substitutes): Include it. 2023-01-21 Bruno Haible login_tty: Fix detection of declaration (regression 2023-01-19). * m4/pty.m4 (gl_FUNC_LOGIN_TTY): Check for the three possible header files. 2023-01-21 Bruno Haible alignasof tests: Rename test file. * tests/test-alignasof.c: Renamed from tests/test-stdalign.c. * modules/alignasof-tests (Files, Makefile.am): Update accordingly. 2023-01-21 Bruno Haible alignasof tests: Fix GCC warning (regression 2023-01-15). * tests/test-stdalign.c (alignas): Undefine before redefine. 2023-01-21 Bruno Haible getprogname: Move declaration from "getprogname.h" to . * lib/stdlib.in.h (getprogname): New declaration. * lib/getprogname.h: Add deprecation warning. (getprogname): Remove declaration. * lib/getprogname.c: Include instead of getprogname.h. * m4/stdlib_h.m4 (gl_STDLIB_H): Test whether getprogname is declared. (gl_STDLIB_H_REQUIRE_DEFAULTS): Initialize GNULIB_GETPROGNAME. (gl_STDLIB_H_DEFAULTS): Initialize HAVE_GETPROGNAME. * m4/getprogname.m4 (gl_PREREQ_GETPROGNAME): New macro, extracted from gl_FUNC_GETPROGNAME. Set HAVE_GETPROGNAME. (gl_FUNC_GETPROGNAME): Remove code that was moved to gl_PREREQ_GETPROGNAME. * modules/stdlib (Makefile.am): Substitute GNULIB_GETPROGNAME and HAVE_GETPROGNAME. * modules/getprogname (Depends-on): Add stdlib. (configure.ac): Define a module indicator. Invoke gl_PREREQ_GETPROGNAME. (Makefile.am): Don't compile getprogname.c if not needed. (Include): List instead of getprogname.h. * tests/test-getprogname.c: Include instead of getprogname.h. * NEWS: Mention the change. * lib/argmatch.c: Don't include getprogname.h. * lib/c-stack.c: Likewise. * lib/error.c: Likewise. * lib/git-merge-changelog.c: Likewise. 2023-01-19 Paul Eggert snippet/_Noreturn: work around Clang _Noreturn bug This is a bigger-hammer workaround for the clang _Noreturn issue fix for dfa.c on 2023-01-01. Unfortunately, it causes 270 -Wreturn-type and -Wsometimes-uninitialized warnings when building bleeding-edge GNU Emacs from Git on Fedora 37 with plain ‘./configure && make’. So the workaround is enabled only if you compile with -D_GL_WORK_AROUND_LLVM_BUG_59792. * lib/_Noreturn.h (_Noreturn): * m4/gnulib-common.m4 (gl_COMMON_BODY): #define _Noreturn to be empty if it is Clang 15 or earlier, and if _GL_WORK_AROUND_LLVM_BUG_59792 is defined. 2023-01-19 Bruno Haible Fix warnings for functions introduced in Android API level 34. * modules/execute-tests (configure.ac): Test for close_range using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. 2023-01-19 Bruno Haible Fix warnings for functions introduced in Android API level 30. * m4/threadlib.m4 (gl_STDTHREADLIB_BODY): Test for thrd_create using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. 2023-01-19 Bruno Haible Fix warnings for functions introduced in Android API level 29. * m4/getloadavg.m4 (gl_GETLOADAVG): Test for getloadavg using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNC. 2023-01-19 Bruno Haible Fix warnings for functions introduced in Android API level 28. * m4/glob.m4 (gl_GLOB): Test for glob using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. 2023-01-19 Bruno Haible Fix warnings for functions introduced in Android API level 26. * m4/mountlist.m4 (gl_MOUNTLIST): Test for hasmntopt using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Test for nl_langinfo using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/strtod.m4 (gl_PREREQ_STRTOD): Test for nl_langinfo using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/strtold.m4 (gl_PREREQ_STRTOLD): Likewise. * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_A): Likewise. * m4/strerror_r.m4 (gl_PREREQ_STRERROR_R): Test for catgets using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/utimens.m4 (gl_UTIMENS): Test for lutimes using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Test for nl_langinfo_l using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * modules/duplocale-tests (configure.ac): Likewise. * m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME): Update comment. 2023-01-19 Bruno Haible Fix warnings for functions introduced in Android API level 24. * m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Test for strchrnul using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. 2023-01-19 Bruno Haible Fix warnings for functions introduced in Android API level 23. * m4/fbufmode.m4 (gl_FUNC_FBUFMODE): Test for __flbf, __fbufsize using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/filenamecat.m4 (gl_FILE_NAME_CONCAT_LGPL): Test for mempcpy using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/fpurge.m4 (gl_FUNC_FPURGE): Test for __fpurge using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/freadable.m4 (gl_FUNC_FREADABLE): Test for __freadable using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/fwritable.m4 (gl_FUNC_FWRITABLE): Test for __fwritable using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/getpass.m4 (gl_FUNC_GETPASS_GNU): Test for __fsetlocking using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/mempcpy.m4 (gl_FUNC_MEMPCPY): Test for mempcpy using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Test for mkfifoat using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/mkostemp.m4 (gl_FUNC_MKOSTEMP): Test for mkostemp using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/mkostemps.m4 (gl_FUNC_MKOSTEMPS): Test for mkostemps using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/pty.m4 (gl_FUNC_LOGIN_TTY): Test for login_tty using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/sethostname.m4 (gl_FUNC_SETHOSTNAME): Test for sethostname using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS): Test for strerror_r using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/wmempcpy.m4 (gl_FUNC_WMEMPCPY): Test for wmempcpy using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. 2023-01-19 Bruno Haible Fix warnings for functions introduced in Android API level 21. * m4/_Exit.m4 (gl_FUNC__EXIT): Test for _Exit using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/c-strtod.m4 (gl_C_STRTOLD): Test for strtold_l using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/c32rtomb.m4 (gl_FUNC_C32RTOMB): Test for c32rtomb like gl_CHECK_FUNCS_ANDROID does. * m4/dprintf.m4 (gl_FUNC_DPRINTF): Test for dprintf using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_POSIX): Likewise. * m4/dup3.m4 (gl_FUNC_DUP3): Test for dup3 using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Test for duplocale using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/execvpe.m4 (gl_FUNC_EXECVPE): Test for execvpe using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/fts.m4 (gl_FUNC_FTS_CORE): Test for fts_open using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNC. * m4/getprogname.m4 (gl_FUNC_GETPROGNAME): Test for getprogname using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/intl-thread-locale.m4 (gt_FUNC_USELOCALE): Test for uselocale using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/iswblank.m4 (gl_FUNC_ISWBLANK): Test for iswblank using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/libtextstyle-optional.m4 (gl_LIBTEXTSTYLE_OPTIONAL): Test for tcdrain using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/linkat.m4 (gl_FUNC_LINKAT): Test for linkat using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/localename.m4 (gl_LOCALENAME): Test for newlocale, duplocale, freelocale using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/mbrtoc32.m4 (gl_CHECK_FUNC_MBRTOC32): Test for mbrtoc32 like gl_CHECK_FUNCS_ANDROID does. * m4/mbsnrtowcs.m4 (gl_FUNC_MBSNRTOWCS): Test for mbsnrtowcs using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/mbtowc.m4 (gl_FUNC_MBTOWC): Test for mbtowc using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Test for mknodat using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/mountlist.m4 (gl_MOUNTLIST): Test for setmntent, endmntent using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/posix_openpt.m4 (gl_FUNC_POSIX_OPENPT): Test for posix_openpt using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/pty.m4 (gl_FUNC_OPENPTY): Test for posix_openpt using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/random.m4 (gl_FUNC_RANDOM): Test for initstate, setstate using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/stpcpy.m4 (gl_FUNC_STPCPY): Test for stpcpy using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Test for stpncpy using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Test for symlinkat using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/truncate.m4 (gl_FUNC_TRUNCATE): Test for truncate using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/tsearch.m4 (gl_FUNC_TSEARCH): Test for twalk using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/vdprintf.m4 (gl_FUNC_VDPRINTF): Test for vdprintf using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_POSIX): Likewise. * m4/wcsnrtombs.m4 (gl_FUNC_WCSNRTOMBS): Test for wcsnrtombs using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/readlinkat.m4 (gl_FUNC_READLINKAT): Test for readlinkat using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/fchmodat.m4 (gl_PREREQ_FCHMODAT): Likewise. * modules/careadlinkat (configure.ac): Likewise. * modules/ftoastr (configure.ac): Test for strtof using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * modules/duplocale-tests (configure.ac): Test for duplocale using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * modules/hard-locale-tests (configure.ac): Likewise. * modules/locale-tests (configure.ac): Test for newlocale using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * modules/localename-tests (configure.ac): Likewise. * modules/tsearch-tests (configure.ac): Test for initstate using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * modules/unistr/u8-stpcpy (configure.ac): Test for stpcpy using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/tcgetattr.m4: New file, extracted from m4/getpass.m4. * m4/getpass.m4 (gl_PREREQ_GETPASS): Remove code that tests for tcgetattr. Invoke gl_HAVE_TCGETATTR instead. * modules/getpass (Files): Add tcgetattr.m4. * modules/getpass-gnu (Files): Add tcgetattr.m4. * modules/term-style-control (Files): Add tcgetattr.m4. (configure.ac): Remove code that tests for tcgetattr. Invoke gl_HAVE_TCGETATTR instead. 2023-01-19 Bruno Haible Fix warnings for functions introduced in Android API level 19. * m4/futimens.m4 (gl_FUNC_FUTIMENS): Test for futimens using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/utimens.m4 (gl_UTIMENS): Likewise. * m4/imaxabs.m4 (gl_FUNC_IMAXABS): Test for imaxabs using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/imaxdiv.m4 (gl_FUNC_IMAXDIV): Test for imaxdiv using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. 2023-01-19 Bruno Haible Fix warnings for functions introduced in Android API level 18. * m4/getdelim.m4 (gl_FUNC_GETDELIM): Test for getdelim using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/getline.m4 (gl_FUNC_GETLINE): Test for getline using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNC. * m4/log2.m4 (gl_FUNC_LOG2): Test for log2 using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/log2f.m4 (gl_FUNC_LOG2F): Test for log2f using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/log2l.m4 (gl_FUNC_LOG2L): Test for log2l using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. 2023-01-19 Bruno Haible Fix warnings for functions introduced in Android API level 16 or 17. * m4/posix_memalign.m4 (gl_FUNC_POSIX_MEMALIGN): Test for posix_memalign using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/alignalloc.m4 (gl_ALIGNALLOC): Likewise. * m4/pagealign_alloc.m4 (gl_PREREQ_PAGEALIGN_ALLOC): Likewise. * modules/aligned-malloc (configure.ac): Likewise. 2023-01-19 Bruno Haible Fix warnings for functions introduced in Android API level 16. * m4/faccessat.m4 (gl_FUNC_FACCESSAT): Test for faccessat using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/canonicalize.m4 (gl_FUNC_CANONICALIZE_FILENAME_MODE, gl_CANONICALIZE_LGPL_SEPARATE): Likewise. * m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Likewise. * m4/tsearch.m4 (gl_FUNC_TSEARCH): Test for tsearch using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/setenv.m4 (gl_PREREQ_SETENV): Likewise. 2023-01-19 Bruno Haible Fix warnings for functions introduced in Android API level 12. Reported by Po Lu . * m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): Test for ftruncate using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/glob.m4 (gl_PREREQ_GLOB): Test for getpwnam_r using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/nproc.m4 (gl_PREREQ_NPROC): Test for sched_getaffinity using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/pread.m4 (gl_FUNC_PREAD): Test for pread using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/pwrite.m4 (gl_FUNC_PWRITE): Test for pwrite using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/thread.m4 (gl_THREAD): Test for pthread_atfork using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * m4/timegm.m4 (gl_FUNC_TIMEGM): Test for timegm using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Test for utimensat using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/utimens.m4 (gl_UTIMENS): Likewise. 2023-01-19 Bruno Haible Fix warnings for functions introduced in Android API level 9. * m4/pipe2.m4 (gl_FUNC_PIPE2): Test for pipe2 using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/fdatasync.m4 (gl_FUNC_FDATASYNC): Update comments. 2023-01-19 Bruno Haible Fix warnings for functions introduced in Android API level 8. * m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Test for ttyname_r using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. 2023-01-19 Bruno Haible fts: Document this module. * doc/glibc-headers/fts.texi: Mention the 'fts' module. * doc/glibc-functions/fts_children.texi: Likewise. * doc/glibc-functions/fts_close.texi: Likewise. * doc/glibc-functions/fts_open.texi: Likewise. * doc/glibc-functions/fts_read.texi: Likewise. * doc/glibc-functions/fts_set.texi: Likewise. 2023-01-18 Bruno Haible getcwd: Speed up on Linux. Add support for Android. * lib/getcwd.c (__getcwd_generic): On Linux, use a specific readlink call to speed up the operation. 2023-01-17 Paul Eggert qcopy-acl: port to Fedora 9 It has libattr-2.4.41, which is too old for our code. Problem reported by Po Lu . * m4/xattr.m4 (gl_FUNC_XATTR): Check that we can use ATTR_ACTION_PERMISSIONS, too. Refactor so that there’s a single test program that we compile and link, rather than doing the tests in dribs and drabs. 2023-01-17 Bruno Haible execute tests: Avoid test failure with GNU make 4.4. Reported by Eric Blake in . * tests/test-execute-main.c (main): Reset the SIGPIPE handler to default on all platforms. 2023-01-17 Bruno Haible fflush: Tweak last commit. * lib/stdio-impl.h (fp_): Make the last change work also with newer Android NDKs and _FILE_OFFSET_BITS=64. 2023-01-17 Ondrej Valousek qset-acl, acl: Improve comments. * lib/qset-acl.c (qset_acl): Improve comments. * lib/set-acl.c (set_acl): Likewise. 2023-01-17 Bruno Haible fflush: Fix a buffer overrun on 32-bit Android. * lib/stdio-impl.h (fp_): On Android, change the type of _offset to 'long'. * lib/fflush.c (update_fpos_cache): On Android, update a 'long', not an 'fpos_t'. 2023-01-17 Bruno Haible execute tests: Avoid test failure on Android. * tests/test-execute-main.c (main): Reset the SIGPIPE handler to default. 2023-01-17 Bruno Haible hard-locale: Port to Android ≥ 5.0. * lib/hard-locale.c: Include . (hard_locale): On Android, consider also MB_CUR_MAX, even if the locale's name is "C". * tests/test-hard-locale.c (test_one, main): Assume that on Android, even the "C" locale is hard. 2023-01-16 Bruno Haible stddef tests: Fix compilation error (regression 2023-01-15). * tests/test-stddef.c: Don't include . 2023-01-16 Bruno Haible mbrtowc, mbrtoc32 tests: Avoid test failure on Android ≥ 5.0. * tests/test-mbrtowc.c (main): On Android 5.0 or newer, when testing the "C" locale, verify that the encoding is UTF-8. * tests/test-mbrtoc32.c (main): Likewise. * doc/posix-functions/setlocale.texi: Mention the Android problems. mbrtowc, mbrtoc32 tests: Refactor. * tests/test-mbrtowc.c (main): Straighten convoluted code. * tests/test-mbrtoc32.c (main): Likewise. 2023-01-16 Paul Eggert sigpipe tests: Modernize use of 'head'. POSIX no longer requires support for ‘head -1’. * tests/test-sigpipe.sh: Use ‘head -n1’ rather than ‘head -1’. * tests/test-sigpipe.c (main): Likewise. * lib/git-merge-changelog.c (main): Update comment accordingly. 2023-01-15 Paul Eggert alignasof: new module This splits off support for the C23 keywords alignas and alignof, from the now-deprecated stdalign module. The latter now merely provides C11 support. * MODULES.html.sh, NEWS, doc/gnulib.texi: * doc/posix-headers/stdalign.texi: Document the change. * lib/stdalign.in.h: Remove most of the definitions (which are now supplied by the alignasof module), leaving only __alignas_is_defined and __alignof_is_defined. * modules/alignasof, modules/alignasof-tests: New files. * m4/stdalign.m4 (gl_ALIGNASOF): New macro, with most of the contents of the old gl_STDALIGN_H. Do not define __alignas_is_defined or __alignof_is_defined. (gl_STDALIGN_H): Rely on gl_ALIGNASOF for most of the work. * modules/alignalloc, modules/alignof, modules/argp: * modules/crypto/md4-buffer, modules/crypto/md5-buffer: * modules/crypto/sha1-buffer, modules/crypto/sha256-buffer: * modules/crypto/sha512-buffer, modules/crypto/sm3-buffer: * modules/fts, modules/rawmemchr, modules/relocatable-prog-wrapper: * modules/stddef-tests, modules/sys_socket: Depend on alignasof, not stdalign. * modules/stdalign: Deprecate. Depend on alignasof. * modules/stdalign-tests: Move most contents to the new module alignasof-tests, and depend on that. 2023-01-15 Bruno Haible fpending: Fix compilation error with NDK ≥ r14b and Android API < 23. Report and patch by Po Lu . * lib/fpending.c (__fpending) [__ANDROID__]: Use the fp_ macro. 2023-01-14 Paul Eggert alignof: port to strict C23 Problem reported by Khem Raj in: https://lists.gnu.org/r/bug-gnulib/2023-01/msg00111.html * lib/alignof.h (alignof_slot) [!__cplusplus]: Use C23-style alignof. * modules/alignof (Depends-on): Add stdalign. test-framework-sh: work around AIX 7.2 diff bugs * tests/init.sh (compare_dev_null_): Run diff in the C locale. AIX 7.2 diff messes up in UTF-8 locales; for example, ‘printf '\360\220\200\200\n' | diff - /dev/null’ incorrectly outputs nothing and exits with status 0 when LC_ALL=en_US.UTF-8. 2023-01-14 Bruno Haible error, verror tests: Fix link error when the package uses libintl. * modules/error-tests (Makefile.am): Link test-error with $(LIBINTL). * modules/verror-tests (Makefile.am): Link test-verror with $(LIBINTL). 2023-01-13 Bruno Haible localename: Fix -Wtautological-pointer-compare warning in a better way. * lib/localename.c (duplocale, freelocale): Revert last patch. (_GL_ARG_NONNULL): Define to empty. 2023-01-13 Paul Eggert verify: work around xlclang 16.1 compiler bug Problem reported by Bruno Haible in: https://lists.gnu.org/r/grep-devel/2023-01/msg00003.html * lib/verify.h (_GL_HAS_BUILTIN_TRAP, _GL_HAS_BUILTIN_UNREACHABLE): Define to 0 if compiler advertises itself as clang before version 5. xlclang 16.1 advertises itself as 4.0.1 and this patch works around what appears to be a compiler bug when compiling dfa.c in bleeding-edge grep. assert-h: suppress xlclang 16.1 false alarms * m4/assert_h.m4 (gl_ASSERT_H): Pacify older clangs too, with regard to single-argument static_assert. Problem found with xlclang 16.1 on AIX 7.2. assert-h: fix configure comment-out * m4/assert_h.m4 (gl_ASSERT_H): Also break apart "#undef static_assert" with /**/. Problem discovered with xlclang 16.1, though it does not directly affect xlclang 16.1. Don’t use alloc_size with xlclang 16.1 * m4/gnulib-common.m4 (_GL_HAS_ATTRIBUTE): Require Clang 5 instead of 3.5 for this, to pacify xlclang 16.1.0 on AIX 7.2, which advertises itself as clang 4.0.1, and which otherwise issues warnings like “./xalloc.h:141:3: warning: 1540-2990 The attribute "__attribute__((alloc_size(2, 3)))" is not supported. The attribute is ignored.” when building bleeding-edge GNU grep. localename: -Wtautological-pointer-compare Problem found by xlclang 16.1 on AIX 7.2. * lib/localename.c (duplocale, freelocale): Omit unnecessary comparison of non-null args to NULL. 2023-01-13 Bruno Haible login_tty tests: Be more verbose when the test fails. * tests/test-login_tty.c (main): When the test fails, write a message into a file. 2023-01-13 Bruno Haible qcopy-acl: Make last patch more robust. * m4/acl.m4 (gl_FUNC_ACL): Define through AC_DEFUN_ONCE. * modules/qcopy-acl (configure.ac): Require gl_FUNC_ACL. qcopy-acl: Adjust link dependencies. * modules/qcopy-acl (Depends-on): Add condition. (configure.ac): Set QCOPY_ACL_LIB. (Link): Add $(QCOPY_ACL_LIB). Remove $(LIB_ACL). * modules/qacl (Link): Add $(LIB_ACL) and $(QCOPY_ACL_LIB). * modules/acl (Link): Add $(LIB_ACL) and $(QCOPY_ACL_LIB). * modules/copy-file (Link): Add $(QCOPY_ACL_LIB). * modules/supersede (Link): Add $(QCOPY_ACL_LIB). * modules/acl-tests (Makefile.am): Link test-copy-acl with $(QCOPY_ACL_LIB). * modules/copy-file-tests (Makefile.am): Link test-copy-file with $(QCOPY_ACL_LIB). * modules/supersede-tests (Makefile.am): Link test-supersede with $(QCOPY_ACL_LIB). 2023-01-13 Bruno Haible qcopy-acl: Avoid autoconf warning. * m4/xattr.m4 (gl_FUNC_XATTR): Provide a description in AC_DEFINE. Also, protect against unsafe use of a configure option value. 2023-01-12 Ondrej Valousek qcopy-acl: Optimize copying of ACLs by directly copying the attributes. * lib/qcopy-acl.c (is_attr_permissions): New functions. (qcopy_acl): If USE_XATTR, copy the ACL related attributes directly. * m4/xattr.m4: New file. * modules/qcopy-acl (Files): Add it. (configure.ac): Invoke gl_FUNC_XATTR. 2023-01-12 Bruno Haible error: Work around an Android problem. * lib/error.in.h: Renamed from lib/error.h. (_GL_ATTRIBUTE_SPEC_PRINTF_ERROR): New macro. (error): Consider HAVE_ERROR and REPLACE_ERROR. (error_at_line): Consider HAVE_ERROR_AT_LINE and REPLACE_ERROR_AT_LINE. * m4/error_h.m4: New file, partially based on m4/error.m4. * m4/error.m4 (gl_ERROR): Remove the test for error_at_line. * modules/error-h: New file. * modules/error (Files): Remove lib/error.h. (Depends-on): Add error-h. Update conditions. (configure.ac): Require gl_ERROR_H. Update condition. * doc/glibc-headers/error.texi: Mention the 'error-h' module. * doc/glibc-functions/error.texi: Mention the Android problem. * config/srclist.txt: Add comment regarding error.h. 2023-01-12 Bruno Haible error, verror tests: Add clarification. * tests/test-error.c (main): Clarify why we don't test error_at_line with a NULL filename. * tests/test-verror.c (main): Clarify why we don't test verror_at_line with a NULL filename. 2023-01-12 Bruno Haible verror: Add tests. * tests/test-verror.sh: New file, based on tests/test-error.sh. * tests/test-verror.c: New file, based on tests/test-error.c. * modules/verror-tests: New file. 2023-01-12 Bruno Haible error: Add tests. * tests/test-error.sh: New file. * tests/test-error.c: New file. * modules/error-tests: New file. 2023-01-11 Bruno Haible xstrtol-error: Improve comments. * lib/xstrtol-error.h (xstrtol_fatal): Add parameter names to declaration. 2023-01-11 Bruno Haible spawn-pipe tests: Fix test failure on Android. * tests/test-spawn-pipe-child.c (main): Skip the is_open (STDERR_FILENO) check on Android. 2023-01-11 Bruno Haible perror: Fix "perror clobbers strerror's buffer" problem on Android. * m4/perror.m4 (gl_FUNC_PERROR): Set REPLACE_PERROR to 1 on Android. * doc/posix-functions/perror.texi: Mention the Android problem. 2023-01-11 Bruno Haible posix_spawn_file_actions_addfchdir tests: Fix test failure on Android. * tests/test-posix_spawn-fchdir.c: Include xvasprintf.h. (test): On Android, use "/proc" instead of "/". (main): Determine the relative location of the 'pwd' program accordingly. * modules/posix_spawn_file_actions_addfchdir-tests (Depends-on): Add xvasprintf. 2023-01-11 Bruno Haible rename, renameat, renameatu: Fix test failures on Android/Termux. * tests/test-rename.h (test_rename): On Android, treat an EACCES failure like EPERM. 2023-01-11 Bruno Haible link, linkat tests: Fix test failures on Android/Termux. * tests/test-link.h (test_link): On Android, treat an EACCES failure like EPERM. * tests/test-linkat.c (main): When test_link is marked skipped, skip the rest of the test as well. 2023-01-11 Bruno Haible link tests: Correct indentation. * tests/test-link.h (test_link): Correct indentation. 2023-01-11 Bruno Haible Fix link errors on Android 4.3. * lib/asyncsafe-spin.c: Don't use the GCC >= 4.1 builtins on Android, when building with GCC. * lib/pthread-spin.c: Likewise. * lib/simple-atomic.c: Likewise. 2023-01-10 Jim Meyering update-copyright: also work with two or more updatable lines in a file * build-aux/update-copyright: Replace every occurrence of the copyright line, not just the first one. * tests/test-update-copyright.sh: Add a test case for this. 2023-01-10 Bruno Haible immutable: Fix initialization failure on Android. * lib/immutable.c: Include "pathmax.h". (do_init_mmap_file): Use $TMPDIR rather than /tmp, if it is safe. * modules/immutable (Depends-on): Add pathmax. 2023-01-10 Bruno Haible Fix some test failures on Android ≥ 11. * tests/test-fclose.c (main): On Android, avoid triggering the file-descriptor sanitizer (fdsan). * tests/test-fdopen.c (main): Likewise. * tests/test-fflush.c (main): Likewise. * tests/test-fgetc.c (main): Likewise. * tests/test-fputc.c (main): Likewise. * tests/test-fread.c (main): Likewise. * tests/test-fseeko4.c (main): Likewise. * tests/test-ftello4.c (main): Likewise. * tests/test-fwrite.c (main): Likewise. 2023-01-10 Bruno Haible utimens: Fix warning on Android. * m4/utimens.m4 (gl_UTIMENS): Test for futimesat and futimes using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. 2023-01-10 Bruno Haible secure_getenv: Fix warning on Android. * m4/secure_getenv.m4 (gl_FUNC_SECURE_GETENV): Test for issetugid using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. * lib/secure_getenv.c: Fix comment regarding issetugid. 2023-01-10 Bruno Haible renameat, renameatu: Fix warning on Android. * m4/renameat.m4 (gl_FUNC_RENAMEAT): Test for renameat2 using gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. 2023-01-10 Bruno Haible memset_explicit tests: Fix signature check. * tests/test-memset_explicit.c: Fix return type in signature check. 2023-01-10 Bruno Haible math: Fix compilation errors in C++ mode on Android. * lib/math.in.h: Declare nothing if this file gets included from /usr/include/c++/v1/math.h too early. 2023-01-10 Bruno Haible sys_ioctl: Fix compilation error in C++ mode on Android. * lib/sys_ioctl.in.h (ioctl): Disable _GL_CXXALIASWARN invocation on non-glibc systems. 2023-01-09 Bruno Haible threads-h: Improve portability. * lib/threads.in.h: Use INCLUDE_NEXT_AS_FIRST_DIRECTIVE when possible. * modules/threads-h (Makefile.am): Substitute INCLUDE_NEXT_AS_FIRST_DIRECTIVE and NEXT_AS_FIRST_DIRECTIVE_THREADS_H. 2023-01-09 Bruno Haible threads-h: Fix compilation errors in C++ mode on Android. * lib/threads.in.h (_GL_ALREADY_INCLUDING_THREADS_H): New macro. 2023-01-09 Bruno Haible aligned-malloc: Don't disturb the module aligned_alloc. * modules/aligned-malloc (configure.ac): Test for aligned_alloc in the same way as module aligned_alloc does. 2023-01-09 Bruno Haible malloc-h: Improve portability. * lib/malloc.in.h: Use INCLUDE_NEXT_AS_FIRST_DIRECTIVE when possible. * modules/malloc-h (Makefile.am): Substitute INCLUDE_NEXT_AS_FIRST_DIRECTIVE and NEXT_AS_FIRST_DIRECTIVE_MALLOC_H. 2023-01-09 Bruno Haible reallocarray: Fix compilation error in C++ mode on Android. * m4/reallocarray.m4 (gl_FUNC_REALLOCARRAY): Use gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS. 2023-01-09 Bruno Haible getsubopt: Fix compilation error in C++ mode on Android. * m4/getsubopt.m4 (gl_FUNC_GETSUBOPT): Use gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. 2023-01-09 Bruno Haible malloc-h: Fix compilation errors in C++ mode on Android. * lib/malloc.in.h: Don't include , except on Solaris and on HP-UX. Include . Make _GL_ATTRIBUTE_DEALLOC_FREE work (code snippet copied from string.in.h and wchar.in.h). * m4/malloc_h.m4 (gl_MALLOC_H_REQUIRE_DEFAULTS): Invoke gl_STDLIB_H_REQUIRE_DEFAULTS. * modules/malloc-h (Depends-on): Add stddef, stdlib. (Makefile.am): Substitute GNULIB_FREE_POSIX and REPLACE_FREE. 2023-01-09 Bruno Haible gettime: Fix compilation error in C++ mode on Android. * m4/gettime.m4 (gl_CHECK_FUNC_TIMESPEC_GET): Also test whether timespec_get is declared. 2023-01-09 Bruno Haible malloc-h: Fix compilation error in C++ mode on Android. * lib/malloc.in.h (_GL_ALREADY_INCLUDING_MALLOC_H): New macro. 2023-01-07 Bruno Haible timer_time: Rename LIB_TIMER_TIME to TIMER_TIME_LIB. * m4/timer_time.m4: Rename LIB_TIMER_TIME to TIMER_TIME_LIB. All uses changed. * NEWS: Mention the change 2023-01-07 Bruno Haible setlocale-null: Rename LIB_SETLOCALE_NULL to SETLOCALE_NULL_LIB. * m4/setlocale_null.m4: Rename LIB_SETLOCALE_NULL to SETLOCALE_NULL_LIB. All uses changed. * NEWS: Mention the change 2023-01-07 Bruno Haible setlocale: Rename LIB_SETLOCALE to SETLOCALE_LIB. * m4/setlocale.m4: Rename LIB_SETLOCALE to SETLOCALE_LIB. All uses changed. * NEWS: Mention the change. 2023-01-07 Bruno Haible select: Rename LIB_SELECT to SELECT_LIB. * m4/select.m4: Rename LIB_SELECT to SELECT_LIB. All uses changed. * NEWS: Mention the change. 2023-01-07 Bruno Haible sched_yield: Rename LIB_SCHED_YIELD to SCHED_YIELD_LIB. * m4/threadlib.m4: Rename LIB_SCHED_YIELD to SCHED_YIELD_LIB. All uses changed. * NEWS: Mention the change. 2023-01-07 Bruno Haible pthread_sigmask: Rename LIB_PTHREAD_SIGMASK to PTHREAD_SIGMASK_LIB. * m4/pthread_sigmask.m4: Rename LIB_PTHREAD_SIGMASK to PTHREAD_SIGMASK_LIB. All uses changed. * NEWS: Mention the change. 2023-01-07 Bruno Haible posix_spawn: Rename LIB_POSIX_SPAWN to POSIX_SPAWN_LIB. * m4/spawn_h.m4: Rename LIB_POSIX_SPAWN to POSIX_SPAWN_LIB. All uses changed. * NEWS: Mention the change. 2023-01-07 Bruno Haible poll: Rename LIB_POLL to POLL_LIB. * m4/poll.m4: Rename LIB_POLL to POLL_LIB. All uses changed. * NEWS: Mention the change. 2023-01-07 Bruno Haible nanosleep: Rename LIB_NANOSLEEP to NANOSLEEP_LIB. * m4/nanosleep.m4: Rename LIB_NANOSLEEP to NANOSLEEP_LIB. All uses changed. * NEWS: Mention the change. 2023-01-07 Bruno Haible mbrtowc: Rename LIB_MBRTOWC to MBRTOWC_LIB. * m4/mbrtowc.m4: Rename LIB_MBRTOWC to MBRTOWC_LIB. All uses changed. * NEWS: Mention the change. 2023-01-07 Bruno Haible hard-locale: Rename LIB_HARD_LOCALE to HARD_LOCALE_LIB. * modules/hard-locale (configure.ac): Rename LIB_HARD_LOCALE to HARD_LOCALE_LIB. All uses changed. * NEWS: Mention the change. 2023-01-07 Bruno Haible getrandom: Rename LIB_GETRANDOM to GETRANDOM_LIB. * m4/getrandom.m4: Rename LIB_GETRANDOM to GETRANDOM_LIB. All uses changed. * NEWS: Mention the change. 2023-01-07 Bruno Haible getlogin, getlogin_r: Rename LIB_GETLOGIN to GETLOGIN_LIB. * m4/getlogin.m4: Rename LIB_GETLOGIN to GETLOGIN_LIB. All uses changed. * NEWS: Mention the change. 2023-01-07 Bruno Haible gethrxtime: Rename LIB_GETHRXTIME to GETHRXTIME_LIB. * m4/gethrxtime.m4: Rename LIB_GETHRXTIME to GETHRXTIME_LIB. All uses changed. * NEWS: Mention the change. 2023-01-07 Bruno Haible fdatasync: Rename LIB_FDATASYNC to FDATASYNC_LIB. * m4/fdatasync.m4: Rename LIB_FDATASYNC to FDATASYNC_LIB. All uses changed. * NEWS: Mention the change. 2023-01-07 Bruno Haible euidaccess: Rename LIB_EACCESS to EUIDACCESS_LIBGEN. * m4/euidaccess.m4: Rename LIB_EACCESS to EUIDACCESS_LIBGEN. All uses changed. * NEWS: Mention the change. 2023-01-07 Bruno Haible duplocale: Rename LIB_DUPLOCALE to DUPLOCALE_LIB. * m4/duplocale.m4: Rename LIB_DUPLOCALE to DUPLOCALE_LIB. All uses changed. * NEWS: Mention the change. 2023-01-07 Bruno Haible clock_time: Rename LIB_CLOCK_GETTIME to CLOCK_TIME_LIB. * m4/clock_time.m4: Rename LIB_CLOCK_GETTIME to CLOCK_TIME_LIB. All uses changed. * NEWS: Mention the change. 2023-01-06 Paul Eggert file-has-acl: don’t bother setting LIB_HAS_ACL * m4/acl.m4 (gl_FUNC_ACL, gl_FILE_HAS_ACL): Don’t set LIB_HAS_ACL. I think only Coreutils and Tar used it, and I’ve updated them. bootstrap: suppress stray message from --pull * build-aux/bootstrap: Regenerate. * top/bootstrap-funclib.sh (autopull): Suggest running autogen.sh only if it exists (i.e., the package is using autopull.sh/autogen.sh). Suggest the same name for autogen.sh that is used in the test. 2023-01-05 Bruno Haible string: Fix compilation errors in C++ mode on Android. * lib/string.in.h (memrchr, strchrnul, strcasestr): Disable _GL_CXXALIASWARN invocation on non-glibc systems. 2023-01-05 Bruno Haible getpass: Fix compilation error on Android. * m4/getpass.m4 (gl_FUNC_GETPASS): Define NO_INLINE_GETPASS. * doc/glibc-functions/getpass.texi: Mention the Android problem. 2023-01-05 Bruno Haible Recognize functions added in future versions of Android. * m4/gnulib-common.m4 (gl_CHECK_FUNCS_ANDROID): New macro. * m4/aligned_alloc.m4 (gl_FUNC_ALIGNED_ALLOC): Use gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS_ONCE. * m4/freading.m4 (gl_FUNC_FREADING): Likewise. * m4/fseterr.m4 (gl_FUNC_FSETERR): Likewise. * m4/fwriting.m4 (gl_FUNC_FWRITING): Likewise. * m4/getentropy.m4 (gl_FUNC_GETENTROPY): Likewise. * m4/getlogin_r.m4 (gl_CHECK_FUNCS_ANDROID): Likewise. * m4/getrandom.m4 (gl_FUNC_GETRANDOM): Likewise. * m4/glob.m4 (gl_PREREQ_GLOB): Likewise. * m4/spawn_h.m4 (gl_HAVE_POSIX_SPAWN): Likewise. * doc/glibc-functions/getentropy.texi: Mark function as existing in Android 9.0. * doc/glibc-functions/getrandom.texi: Likewise. * doc/posix-functions/pthread_attr_getinheritsched.texi: Likewise. * doc/posix-functions/pthread_attr_setinheritsched.texi: Likewise. 2023-01-05 Bruno Haible copy-file, supersede: Fix link-time requirements. * modules/copy-file (Link): Add $(LIB_ACL). * modules/supersede (Link): Likewise. 2023-01-05 Bruno Haible More systematic naming of LIB variables. * m4/acl.m4 (gl_FUNC_ACL, gl_FILE_HAS_ACL): Set FILE_HAS_ACL_LIB to the same value as LIB_HAS_ACL. * modules/file-has-acl (Link): Use FILE_HAS_ACL_LIB instead of LIB_HAS_ACL. * modules/file-has-acl-tests (Makefile.am): Likewise. 2023-01-04 Bruno Haible doc: Update regarding Android. * doc/glibc-functions/getdtablesize.texi: Update Android information. * doc/glibc-functions/wait3.texi: Likewise. * doc/pastposix-functions/ftime.texi: Likewise. * doc/pastposix-functions/index.texi: Likewise. * doc/pastposix-functions/pthread_attr_getstackaddr.texi: Likewise. * doc/pastposix-functions/pthread_attr_setstackaddr.texi: Likewise. * doc/pastposix-functions/wcswcs.texi: Likewise. 2023-01-03 Bruno Haible ffsl, ffsll: Fix compilation error on Android. * lib/string.in.h: On Android as well, include . * m4/ffsl.m4 (gl_FUNC_FFSL): Use a specific link test instead of AC_CHECK_FUNCS_ONCE. * m4/ffsll.m4 (gl_FUNC_FFSLL): Likewise. * doc/glibc-functions/ffsl.texi: Mention Android problems. * doc/glibc-functions/ffsll.texi: Likewise. ffs: Document Android problem. * doc/posix-functions/ffs.texi: Mention Android problem. * m4/ffs.m4: Update comment. 2023-01-03 Bruno Haible stdio: Fix error in C++ mode on Android, due to putw. * lib/stdio.in.h (putw): Don't declare in the C++ namespace if putw is not declared. * m4/stdio_h.m4 (gl_STDIO_H): Test whether putw is declared. (gl_STDIO_H_DEFAULTS): Initialize HAVE_DECL_PUTW. * modules/stdio (Makefile.am): Substitute HAVE_DECL_PUTW. * doc/glibc-functions/putw.texi: Update regarding Android. 2023-01-03 Bruno Haible stdio: Fix error in C++ mode on Android, due to getw. * lib/stdio.in.h (getw): Don't declare in the C++ namespace if getw is not declared. * m4/stdio_h.m4 (gl_STDIO_H): Test whether getw is declared. (gl_STDIO_H_DEFAULTS): Initialize HAVE_DECL_GETW. * modules/stdio (Makefile.am): Substitute HAVE_DECL_GETW. 2023-01-02 Bruno Haible sigsegv: Fix compilation error on Android 4.3. * lib/sigsegv.in.h: For Android, don't include and don't reference ucontext_t. * lib/sigsegv.c (SIGSEGV_FAULT_): For Android, use a plain POSIX fault handler (cf. libsigsegv/src/fault-posix.h). 2023-01-01 Paul Eggert dfa: work around Clang 15 bug Problem reported by Kenton Groombridge in: https://lists.gnu.org/archive/html/bug-gawk/2022-12/msg00010.html On x86-64, Clang 15 gets confused by a call (X ? dfaerror : dfawarn) (Y) and generates the wrong code, presumably because dfaerror is _Noreturn and dfawarn is not. * lib/dfa.c (parse_bracket_exp): Reword to have one call for dfaerror, the other for dfawarn. 2023-01-01 Bruno Haible doc: Update regarding stable branches. * doc/gnulib-readme.texi (Stable Branches): Mention new branch stable-202301. Mention that stable-202201 is no longer updated. 2022-12-31 Paul Eggert maint: use UTC when updating copyright date Problem reported by Simon Josefsson in: https://lists.gnu.org/r/bug-gnulib/2022-12/msg00125.html * Makefile (COPYRIGHT_TZ): New macro. (update-copyright): Use it. 2022-12-28 Paul Eggert assert-h: port static_assert to strict C99 * lib/verify.h (_GL_VERIFY): Port MSVC hack back to C99. Problem found when testing bleeding-edge gzip on IBM XL C for AIX, V12.1 (5765-J02, 5725-C72), which complained ‘"malloca.c", line 42.56: 1506-041 (E) The invocation of macro _Static_assert contains fewer arguments than are required by the macro definition.’ This diagnostic is valid because C99 requires that if you #define _Static_assert(R, ...) you must call _Static_assert with at least two arguments. I found a similar problem with Sun C 5.9 SunOS_sparc Patch 124867-12 2009/11/22. 2022-12-27 Paul Eggert file-has-acl: fix recently-introduced NFSv4 bug * lib/file-has-acl.c (acl_nfs4_nontrivial): Fix off-by-one error when rounding WHOLEN up to next multiple of 4. Pacify GCC 12.2.1 -Wcast-align. Add --pull, --gen options to build-aux/bootstrap This supports a single bootstrap script with --pull and --gen options, as an alternative to separate autogen.sh and autopull.sh and bootstrap-funclib.sh auxiliary files. * top/bootstrap: With --version, also output library version. Support update of package that has only the bootstrap script, and not the other three files. Support packages with just 'bootstrap' * top/bootstrap: With --version, also output library version. Support update of package that has only the bootstrap script, and not the other three files. * top/bootstrap-funclib.sh (scriptlibversion): Rename from scriptversion. All uses changed. This way we can distinguish script from script library versions. (upgrade_bootstrap): If the package currently has only the bootstrap script, just update that. Bootstrap with functions, not scripts * top/bootstrap: Use autopull and autogen functions, not shell scripts. This lets build-aux/bootstrap become a standalone script. It does not change the behavior of top/bootstrap, except for minor rewording of disagnostics. Make autopull a shell function too This does not change behavior. It is helpful for future changes. * top/autopull.sh: Call autopull to do the actual work. (usage, download_po_files, update_po_files): Move to top/bootstrap-funclib.sh. * top/bootstrap-funclib.sh (autopull_usage): Rename from ‘usage’. (autopull): New function, containing the top level of the old top/autopull.sh. Make autogen a shell function too This does not change behavior. It is helpful for future changes. * top/autogen.sh: Call autogen to do the actual work. (usage, version_controlled_file, gitignore_entries, insert_if_absent): (insert_vc_ignore, symlink_to_dir): Move to top/bootstrap-funclib.sh. * top/bootstrap-funclib.sh (autogen_usage): Rename from ‘usage’. (autogen): New function, containing the top level of the old top/autogen.sh. 2022-12-27 Bruno Haible Fix compilation errors in C++ mode on Solaris 11 OpenIndiana. * m4/gnulib-common.m4 (gl_COMMON_BODY): In _GL_ATTRIBUTE_DEALLOC_FREE, with GNU C++, cast the 'free' function. * lib/string.in.h (_GL_ATTRIBUTE_DEALLOC_FREE): With GNU C++, cast the 'free' function. * lib/wchar.in.h (_GL_ATTRIBUTE_DEALLOC_FREE): Likewise. 2022-12-27 Bruno Haible stdnoreturn: Mark as deprecated, not obsolete. (Regression 2022-12-24.) * modules/stdnoreturn (Status): Remove. (Notice): Say that it is deprecated, not obsolete. * doc/noreturn.texi: Fix a typo. 2022-12-26 Paul Eggert stdbool-c99: fix typo Reported against Autoconf by Todd C. Miller in: https://lists.gnu.org/r/autoconf/2022-12/msg00001.html * m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Sync from Autoconf master. 2022-12-26 Bruno Haible ctime: Mark as deprecated, not obsolete. (Regression 2022-12-21.) * modules/ctime (Status): Remove. (Notice): Say that it is deprecated, not obsolete. 2022-12-25 Paul Eggert largefile: sync from Autoconf master * m4/largefile.m4 (gl_SET_LARGEFILE_SOURCE): Test whether AC_SYS_YEAR2038 is defined when this macro is defined, not when it is used, as we now define AC_SYS_YEAR2038 later. (_AC_SYS_LARGEFILE_MACRO_VALUE): Remove. (_AC_SYS_YEAR2038_TEST_CODE, _AC_SYS_YEAR2038_OPTIONS) (_AC_SYS_YEAR2038_PROBE, _AC_SYS_YEAR2038_ENABLE) (_AC_SYS_YEAR2038_OPT_IN, AC_SYS_YEAR2038) (_AC_SYS_LARGEFILE_TEST_CODE, _AC_SYS_LARGEFILE_OPTIONS) (_AC_SYS_LARGEFILE_PROBE, _AC_SYS_LARGEFILE_ENABLE): New macros. (AC_SYS_LARGEFILE): Use them. * m4/year2038.m4: Remove. All mentions removed. * modules/largefile, modules/year2038 (configure.ac-early): Do not require gl_YEAR2038_EARLY. * modules/year2038 (Depends-on): Depend on largefile. (configure.ac): Require AC_SYS_YEAR2038, not gl_YEAR2038. 2022-12-24 Paul Eggert extensions: enable some C23 Annex F functions * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Also define __STDC_WANT_IEC_60559_EXT__, for C23 Annex F functions like totalorder. This syncs from Autoconf master. stdnoreturn: deprecate C23 says is obsolescent, so deprecate the stdnoreturn module. I don't think it was being used anyway as it had too many problems. * modules/stdnoreturn: Mark as obsolete. 2022-12-23 Paul Eggert file-has-acl: improve recent NFSv4 support This fixes a link failure with emacsclient on GNU/Linux. This program wants file_has_acl but none of the other ACL primitives, so it doesn’t link acl-internal.o; this way it doesn’t need to link with -lacl. While I was at it I reviewed the recent changes, fixed some unlikely overflow bugs, and adjusted to GNU style. * doc/acl-nfsv4.txt: Remove. Its contents are now in a comment in lib/file-has-acl.c. * lib/acl-internal.c, lib/acl-internal.h: Move recent changes relating to acl_nfs4_nontrivial to lib/file-has-acl.c, so that there is no trouble linking programs that need only file_has_acl. * lib/file-has-acl.c (acl_nfs4_nontrivial): Move here from lib/acl-internal.c, so that we needn't link -lacl in programs that want only file_has_acl, such as emacsclient. Do not assume a char buffer is aligned for uint32_t. Check more carefully for buffer read overrun. Allow up to 6 ACEs, since other code does; but check that they’re distinct. Avoid integer overflow. Use memcmp rather than strncmp to compare memory blocks. (file_has_acl): Preserve initial errno instead of setting to 0. Allocate a bit more room for trivial ACL buffer. Use EINVAL for botchedk NFSv4 ACLs (which shouldn’t happen). 2022-12-22 Paul Eggert posix_spawnp-tests: fix filename typo Problem reported for GNU m4 by Mitchell Dorrell in: https://lists.gnu.org/r/bug-m4/2022-12/msg00000.html * tests/test-posix_spawnp-script.c (DATA_FILENAME): Fix typo in file name that caused race with test-posix_spawn-script.c. 2022-12-22 Ondrej Valousek file-has-acl: Basic support for checking NFSv4 ACLs in Linux. * lib/acl-internal.h (acl_nfs4_nontrivial): New declaration. * lib/acl-internal.c (acl_nfs4_nontrivial): New function. * lib/file-has-acl.c: Include . (XATTR_NAME_NFSV4_ACL, TRIVIAL_NFS4_ACL_MAX_LENGTH): New macros. (file_has_acl): Test for NFSv4 ACLs. * doc/acl-nfsv4.txt: New file. 2022-12-21 Paul Eggert Port __has_c_attribute to strict C23 * m4/gnulib-common.m4 (_GL_HAS_C_ATTRIBUTE): Remove, as C23 says behavior is undefined if __has_c_attribute appears anywhere other than at the top level of an #if or #ifdef. All uses replaced by wordier invocations of __has_c_attribute. asctime, ctime: deprecate C23 deprecates asctime and ctime, so deprecate them in Gnulib too. * NEWS, doc/posix-functions/asctime.texi: * doc/posix-functions/ctime.texi: Mention this. * lib/time.in.h (ctime): Deprecate any ctime replacement. * modules/ctime: Now obsolete. 2022-12-17 Paul Eggert memset_explicit: port to older MS-Windows * lib/memset_explicit.c (memset_explicit): Remove special case for C==0 and MS-Windows. The code isn’t needed for correctness and it’s more trouble than it’s worth as it prevents this module from being used with GNU Emacs, which wants to port to MS-Windows versions so old that they lack SecureZeroMemory. 2022-12-09 Bruno Haible Update users.txt. * users.txt: Add lbzip2. 2022-12-09 Paul Eggert fts: make debug version compilable again This fixes things in what I hope is a better way than the fd-only approach proposed by Kamil Dudka here: https://lists.gnu.org/archive/html/bug-gnulib/2018-03/msg00079.html https://lists.gnu.org/archive/html/bug-gnulib/2018-03/msg00080.html * lib/fts.c (GNULIB_FTS_DEBUG): Rename from FTS_DEBUG, to avoid collision with coreutils symbol. Do not include (not needed, since we include ) or "getcwdat.h" (no longer exists). (fd_ring_check, fd_ring_print): Add forward decls. (struct devino): New type. (PRINT_DEVINO): New macro. (getdevino): New static function. (fd_ring_print): Do nothing if not debugging. (fd_ring_print, fd_ring_check): Use getdevino instead of getcwdat. The output isn’t as good, but at least it compiles and runs. 2022-12-07 Paul Eggert verify: update __STDC_VERSION__ as per C23 This shouldn’t affect anything; it’s merely a refactoring. * lib/verify.h (_GL_HAVE__STATIC_ASSERT1): Require __STDC_VERSION__ to be at least 202311, instead of at least 202000. The latter number was put in in 2019 because we didn’t yet know C23’s __STDC_VERSION__ value. 2022-12-06 Paul Eggert fts: fix race + mishandling of fstatat failure I hope this fixes a Luke Dashjr coreutils bug report about ext4 ramdisks; see “9.1: du Aborted (corrupt filesystem)” . * lib/fts.c (fts_build): Fix two bugs. First, fts_stat was being called without checking its return value, causing a later abort. Second, there was a race between opening a directory and statting it, fixed by using fstat on the file descriptor rather than fstatat on the directory name. fts: omit goto break_without_closedir * lib/fts.c (fts_build): Refactor to omit goto. fts: clarify ISSET * lib/fts.c (ISSET): Refactor to clarify boolean usage. 2022-12-05 Bruno Haible argp: Correct documentation. Reported by José E. Marchesi . * doc/glibc-functions/argp_*.texi: Mention the 'argp' module. 2022-12-02 Pádraig Brady doc: poll: document poll of special files not supported on macOS * doc/posix-functions/poll.texi: Reinstate (updated) macOS info, removed in recent cleanup re removal of support for Mac OS X <= 10.4. * m4/poll.m4: Update macOS to latest tested version. 2022-11-29 Pádraig Brady add new ronna and quetta SI prefixes As voted for in Nov 2022 by the BIPM: https://www.bipm.org/en/cgpm-2022/resolution-3 * lib/human.c: Add Ronna (10^27), and Quetta (10^30) to the prefix list. * lib/xstrtol.c (__xstrtol): Likewise. 2022-11-29 Bruno Haible Update users.txt. * users.txt: Add 4ti2, ale, amanda, binfmt-support, cgminer, collectd, complexity, dc3dd, dico, enchant-2, fuse-overlayfs, gsequencer, idutils, libu2f-host, licenseutils, mmv, pacemaker, trader, ttfautohint. 2022-11-27 Paul Eggert explicit_bzero: implement via memset_explicit * lib/explicit_bzero.c (explicit_bzero): Simplify by just calling memset_explicit. * m4/explicit_bzero.m4 (gl_PREREQ_EXPLICIT_BZERO): Remove. All uses removed. * modules/explicit_bzero (Depends-on): Add memset_explicit. explicit_bzero: memset_explicit is standard * doc/glibc-functions/explicit_bzero.texi: Say that memset_explicit is preferred in new code. read-file: use memset_explicit * lib/read-file.c (fread_file, read_file): Use memset_explicit instead of explicit_bzero. * modules/read-file (Depends-on): Depend on memset_explicit instead of on explicit_bzero. memset_explicit: new module * doc/posix-functions/memset_explicit.texi, lib/memset_explicit.c: * m4/memset_explicit.m4, modules/memset_explicit: * modules/memset_explicit-tests, tests/test-memset_explicit.c: New files. * lib/string.in.h (memset_explict): New decl. * m4/string_h.m4 (gl_STRING_H, gl_STRING_H_REQUIRE_DEFAULTS) (gl_STRING_H_DEFAULTS): * modules/string (string.h): Support memset_explicit. explicit_bzero: add poison * m4/string_h.m4 (gl_STRING_H): Poison explicit_bzero. This was inadvertently omitted when explicit_bzero was added. 2022-11-27 Arsen Arsenović bootstrap: Fix --help output. * build-aux/bootstrap (usage): Regenerate. 2022-11-27 Paul Eggert explicit_bzero: work with gcc -std=c99 * lib/explicit_bzero.c (explicit_bzero) [__GNUC__ && !__clang__]: Use __asm__ instead of asm. 2022-11-26 Paul Eggert Prefer "kill -INT" to killing with a number * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): * tests/test-login_tty.c (main): * tests/test-pthread_sigmask1.c (main): * tests/test-sigprocmask.c (main): Prefer "kill -INT" to "kill -N" where N is SIGINT’s value. Don’t assume pid_t fits in int. 2022-11-25 Bruno Haible In 'trap' commands, prefer symbolic to numeric signal names. Reported by Mike Fulton in . * gnulib-tool: Use symbolic signal names. * posix-modules: Likewise. * MODULES.html.sh: Likewise. * build-aux/bootstrap (prepare_GNULIB_SRCDIR): Likewise. * build-aux/csharpcomp.sh.in: Likewise. * build-aux/gnu-web-doc-update: Likewise. * top/autogen.sh: Likewise. * top/bootstrap-funclib.sh: Likewise. * top/gitsub.sh: Likewise. * lib/t-idcache: Likewise. * tests/havelib/rpath-1: Likewise. * tests/havelib/rpath-2_a: Likewise. * tests/havelib/rpath-2_b: Likewise. * tests/havelib/rpath-3_a: Likewise. * tests/havelib/rpath-3_b: Likewise. * tests/init.sh: Likewise. * tests/test-binary-io.sh: Likewise. * tests/test-c-stack.sh: Likewise. * tests/test-c-stack2.sh: Likewise. * tests/test-dprintf-posix.sh: Likewise. * tests/test-fpending.sh: Likewise. * tests/test-fprintf-posix.sh: Likewise. * tests/test-lseek.sh: Likewise. * tests/test-printf-posix.sh: Likewise. * tests/test-select-in.sh: Likewise. * tests/test-select-out.sh: Likewise. * tests/test-sigpipe.sh: Likewise. * tests/test-tsearch.sh: Likewise. * tests/test-update-copyright.sh: Likewise. * tests/test-vdprintf-posix.sh: Likewise. * tests/test-vfprintf-posix.sh: Likewise. * tests/test-vprintf-posix.sh: Likewise. * tests/test-xprintf-posix.sh: Likewise. * tests/uniwidth/test-uc_width2.sh: Likewise. 2022-11-20 Bruno Haible posix_spawn-internal: Avoid warning on macOS. Suggested by Minsoo Choo in . * lib/spawni.c: Ignore -Wdeprecated-declarations warnings. 2022-11-20 Bruno Haible posix_spawn tests: Fix compilation error (regression 2022-09-14). * modules/posix_spawn-tests (Makefile.am): Augment DEFS, to define EXEEXT. 2022-11-14 Paul Eggert parse-datetime: improve doc formatting, timeliness * doc/parse-datetime.texi: Use @samp and @code in menus for consistenty with how the Coreutils manual will do this sort of thing. Update examples to this year. 2022-11-13 Simon Josefsson vc-list-files-tests: Avoid OpenPGP private key operations. * tests/test-vc-list-files-git.sh (GIT_CONFIG_GLOBAL): Set it to /dev/null. 2022-11-03 Bruno Haible dynarray: Rename to glibc-internal/dynarray. * modules/glibc-internal/dynarray: Renamed from modules/dynarray. * modules/glibc-internal/dynarray-tests: Renamed from modules/dynarray-tests. * modules/regex (Depends-on): Update. * NEWS: Mention this change and the previous one. 2022-11-03 Bruno Haible scratch_buffer: Rename to glibc-internal/scratch_buffer. * modules/glibc-internal/scratch_buffer: Renamed from modules/scratch_buffer. * modules/glibc-internal/scratch_buffer-tests: Renamed from modules/scratch_buffer-tests. * modules/canonicalize (Depends-on): Update. * modules/canonicalize-lgpl (Depends-on): Likewise. * modules/glob (Depends-on): Likewise. 2022-11-02 Bruno Haible scratch_buffer: Document last change. * NEWS: Mention last change. 2022-11-02 Paul Eggert scratch_buffer: adjust to glibc changes Problem reported by Karl Berry in: https://lists.gnu.org/r/bug-gnulib/2022-11/msg00004.html * build-aux/depcomp, doc/make-stds.texi, lib/malloc/scratch_buffer.h: Autoupdate. * build-aux/install-reloc (func_create_wrapper): Omit removed file scratch_buffer_dupfree.c. * config/srclist.txt: Remove lib/malloc/scratch_buffer_dupfree.c * lib/canonicalize-lgpl.c: Merge changes from glibc through its commit ef0700004bf0dccf493a5e8e21f71d9e7972ea9f dated 2022-07-05 11:04:45 +0200. (__strdup) [!_LIBC]: New macro. (struct realpath_bufs): New type. (realpath_stk): Use it as the extra argument. All uses changed. No longer any need for noinline or GCC_BOGUS_WRETURN_LOCAL_ADDR. * lib/canonicalize.c (struct realpath_bufs) (canonicalize_filename_mode_stk): Likewise. * lib/malloc/scratch_buffer_dupfree.c: Remove, since it was removed in glibc. * lib/scratch_buffer.h (scratch_buffer_dupfree) [0]: (__libc_scratch_buffer_dupfree): Remove decls. * modules/relocatable-prog-wrapper (Files): * modules/scratch_buffer (Files, lib_SOURCES): Remove lib/malloc/scratch_buffer_dupfree.c. 2022-11-01 Bruno Haible relocatable-script: Relax license. * modules/relocatable-script (License): Change to GPLv2+. * build-aux/relocatable.sh.in: Change copyright header to GPLv2+. 2022-10-31 Simon Josefsson maintainer-makefile: Fix Apple Xcode 'make syntax-check'. * top/maint.mk (sc_indent): Don't use non-GNU indent. 2022-10-30 Paul Eggert thread: pacify gcc -Wbad-function-cast * lib/glthread/thread.h (gl_thread_self_pointer): With POSIX threads, cast the call to gl_thread_t before casting to void *. test-getlogin: pacify gcc -Wshadow * tests/test-getlogin.h (test_getlogin_result): Rename local. 2022-10-25 Simon Josefsson gendocs: Output timestamp in English. * build-aux/gendocs.sh (SETLANG): Add LC_TIME= for "date". 2022-10-23 Bruno Haible assert-h: Make static_assert work on Solaris 11.4. * m4/assert_h.m4 (gl_ASSERT_H): After including , on Solaris, redefine static_assert. 2022-10-16 Bruno Haible getdelim: Work around buggy implementation on macOS 10.13. * doc/posix-functions/getdelim.texi: Mention the macOS bug. * m4/getdelim.m4 (gl_FUNC_GETDELIM): Let the "checking for working getdelim function" test answer 'no' on macOS. 2022-10-15 Bruno Haible Update to Unicode 15.0.0. * lib/gen-uni-tables.c (is_property_default_ignorable_code_point): Exclude 0x13439..0x1343F. (get_lbp): Update such that unilbrk/lbrkprop.txt comes out as expected. * All generated files under lib/uni* and tests/uni*: Regenerate. * tests/uniname/NameAliases.txt: Update. * tests/uniname/UnicodeData.txt: Update. * tests/uninorm/NormalizationTest.txt: Update. * tests/unigbrk/GraphemeBreakTest.txt: Update. * tests/uniwbrk/WordBreakTest.txt: Update. * tests/uniwidth/test-uc_width2.sh: Expect width 0 for the characters 0x0ECE, 0x10EFD..0x10EFF, 0x11241, 0x11F00..0x11F01, 0x11F36..0x11F3A, 0x11F40, 0x11F42, 0x13439..0x13440, 0x13447..0x13455, 0x1E08F, 0x1E4EC..0x1E4EF. * All the affected modules: Bump required libunistring version. 2022-10-15 Bruno Haible gen-uni-tables: Temporarily revert last change. * lib/gen-uni-tables.c: Include , unless the C compiler advertises compliance to ISO C 23. 2022-10-12 Paul Eggert doc: improve intprops doc * doc/intprops.texi: Tighten up wording, by saying that macros "yield 1 if X, 0 otherwise" rather than the weaker "yield 1 if X". Say "yield" rather than "return" since the macros are not functions. Say "1" and "0" rather than "true" and "false" since the macros yield int. Say that stdckdint.h is the standard alternative to the _WRAPV macros. Mention another source of problems with the _OVERFLOW macros. 2022-10-10 Paul Eggert tests: prefer stdckdint to intprops * modules/chown-tests, modules/fchownat-tests: * modules/fdutimensat-tests, modules/futimens-tests: * modules/lchown-tests, modules/stat-time-tests: * modules/utime-tests, modules/utimens-tests: * modules/utimensat-tests: (Depends on): Depend on stdckint, not intprops. * tests/nap.h: Include stdckdint.h, not intprops.h. All macro uses changed. stat-time: prefer stdckdint to intprops * lib/stat-time.h: Include stdckdint.h instead of intprops.h. (stat_time_normalize): Use ckd_add instead of INT_ADD_WRAPV. * modules/stat-time (Depends-on): Depend on stdckdint, not intprops. xalloc: remove stray includes + dependencies These used to be needed, but are not needed now. * lib/xalloc.h: Do not include stdlib.h. [GNULIB_XALLOC]: Do not include "intprops.h". * lib/xmalloc.c: Include stdint.h here instead, for SIZE_MAX. * modules/xalloc-die, modules/xvasprintf (Depends-on): Remove stdint. 2022-09-30 Paul Eggert assert-h: suppress Apple clang 13 false alarms * m4/assert_h.m4 (gl_ASSERT_H): Suppress bogus warnings from Apple clang 13 (clang-1300.0.29.30). Problem privately reported by Mattias Engdegård for GNU Emacs. 2022-09-26 Daiki Ueno largefile: fix detection of time_t size on mingw32 * modules/largefile (configure.ac-early): Ensure gl_YEAR2038_EARLY is invoked before gl_YEAR2038_BODY. 2022-09-25 Paul Eggert fts: fix errno handling if dirfd fails * lib/fts.c (fts_build): Use proper errno if dirfd failed. Although I don’t know of any platform where dirfd can fail here, we might as well get it right. 2022-09-25 Bruno Haible stdbool: Mostly revert last patch. * m4/c-bool.m4 (gl_C_BOOL): If stdbool.h does not exist, just err out. * modules/stdbool (Files): Remove m4/stdbool.m4. 2022-09-24 Bruno Haible stdbool: Don't #include a gnulib-generated stdbool.h from config.h. * m4/c-bool.m4 (gl_C_BOOL): Check for stdbool.h and for _Bool. If stdbool.h does not exist, don't #include but instead put the substitute code into config.h. * modules/stdbool (Files): Add m4/stdbool.m4. 2022-09-24 Bruno Haible stdalign: Don't #include a gnulib-generated stdalign.h from config.h. * m4/stdalign.m4 (gl_STDALIGN_H): Check for stdalign.h. If it does not exist, don't #include but instead put the substitute code into config.h. 2022-09-24 Bruno Haible stdalign: Fix compilation error with MSVC in C++ mode. * lib/stdalign.in.h: Treat MSVC in C++ mode like C++11 compliant compilers. * tests/test-stdalign-c++.cc: Include some other header files. stdalign: Avoid namespace pollution. * lib/stdalign.in.h (_GL_STDALIGN_NEEDS_STDDEF): New macro. Include only when needed. 2022-09-23 Simon Josefsson warnings, manywarnings: Doc fixes. * doc/manywarnings.texi (manywarnings): Improve usage instruction. Start list of comments on particular warning flags, based on comment from Paul Eggert . * doc/warnings.texi (warnings): Mention that it is often used with manywarnings. 2022-09-21 Paul Eggert assert-h: suppress clang false alarms Suppress scads of annoying warnings from clang version 14.0.5 (Fedora 14.0.5-1.fc36) of the form "warning: '_Static_assert' with no message is a C2x extension [-Wc2x-extensions]", by refusing to use single-arg static_assert with older clang. * m4/assert_h.m4 (gl_ASSERT_H): Turn -Wc2x-extensions from a warning into an error when testing static_assert, so that the annoying diagnostic causes the test to fail, which causes assert.h to be replaced in a way that suppresses the diagnostic during the real build. 2022-09-20 Bruno Haible Add another helper script for creating testdirs. * all-modules: New file, based on posix-modules. 2022-09-20 Bruno Haible snippet/warn-on-use: Don't cause wrong AC_CHECK_DECL results with clang. * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Use the clang command-line option that disables implicit built-in function declarations in clang. 2022-09-19 Bruno Haible stdbool, stdbool-c99 tests: Fix compilation error with clang/MSVC. * tests/test-stdbool.c (WORKING_BOOL): Define to 0 on compilers that define _MSC_VER. 2022-09-18 Paul Eggert stdbool: omit ‘#undef true’ This is mostly just simplification. * m4/c-bool.m4 (gl_C_BOOL): Test all preprocessors when !HAVE_C_BOOL, not merely __SUNPRO_CC. Use the slightly more-elegant ‘!true’ instead of ‘true == 1’; this shouldn’t matter in practice and if it does matter we want to know about it anyway. Remove an unnecessary ‘#undef true’ that is simply commented out by ‘configure’; again, if true is already #defined to be 0 the system is so messed up we want to know about it anyway. 2022-09-18 Bruno Haible stdbool: Ensure that 'true' can be used in the preprocessor. * m4/c-bool.m4 (gl_C_BOOL): With Sun C++, redefine 'true' if it does not evaluate to 1 in the preprocessor. stdbool-c99: Ensure that 'true' can be used in the preprocessor. * lib/stdbool.in.h (true): Redefine if it does not evaluate to 1 in the preprocessor. 2022-09-18 Bruno Haible uni{case,ctype,gbrk,str}/base: Fix installed .h file (regr. 2022-09-10). * lib/unicase.in.h: Do include . * lib/unictype.in.h: Likewise. * lib/unigbrk.in.h: Likewise. * lib/unistr.in.h: Likewise. 2022-09-18 Bruno Haible signal: Fix a C++ compilation error due to sched_yield on OpenBSD 6.0. * lib/signal.in.h: On OpenBSD, include . Don't include on OpenBSD ≥ 5.1. 2022-09-17 Paul Eggert explicit_bzero-tests: robustify a bit This is mostly to suppress GCC warnings, though I suppose it might also improve the test. * tests/test-explicit_bzero.c: Do not ignore -Wmaybe-uninitialized, as this warning should no longer be generated given the other changes. (test_heap): ASSERT that malloc succeeds, to suppress any GCC warning about relying on malloc succeeding. Declare addr to be volatile, so that GCC does not deduce that it is heapbuf in disguise and diagnose using it after freeing it. (do_secret_stuff): Declare more things to be volatile, to avoid optimizations that might disturb the stack and/or mess up the test in other ways. Pass last_stackbuf address as a parameter rather than having last_stackbuf be static, to avoid GCC warning about assigning address of a local to a static; all callers changed. 2022-09-17 Bruno Haible wchar: Fix compilation errors in C++ mode on Solaris 11.3. * lib/wchar.in.h (wcsnlen, wcpcpy, wcpncpy, wcscasecmp, wcsncasecmp, wcsdup): Force declaration in C++ mode on Solaris (which does not declare these functions in the global namespace). 2022-09-17 Bruno Haible swab: Fix compilation error with Sun C++ on Solaris 11.3. * lib/unistd.in.h (swab): For the C++ declaration, under Solaris 11 but not under Solaris 10, test also __XOPEN_OR_POSIX. 2022-09-17 Bruno Haible time C++ tests: Fix link error on CentOS 5. * modules/time-c++-tests (Makefile.am): Link test-time-c++ against $(LIB_CLOCK_GETTIME). 2022-09-14 Bruno Haible time: Fix compilation errors with clang/MSVC. * m4/time_h.m4 (gl_TIME_H): Test whether asctime_r and ctime_r are declared. * lib/time.in.h (asctime_r, ctime_r): Skip _GL_WARN_ON_USE invocations when these functions are not declared. 2022-09-14 Bruno Haible verify: Avoid syntax error due to static_assert with clang in C++ mode. * lib/verify.h (static_assert): Don't define in clang C++ 6 or newer. * m4/assert_h.m4 (gl_ASSERT_H): If we don't need to define static_assert with clang in C++ mode, don't include . 2022-09-14 Paul Eggert assert-h: work around include confusion * m4/assert_h.m4 (gl_ASSERT_H): Arrange for to not include if assert is already defined. This works around bugs in packages that mistakenly include after including (typically due to double-inclusion of ). Found in coreutils, which I plan to fix. stdbool: depend on C99 Record that stdbool depends on C99 these days. This matters only for ancient compilers that need special flags to support C99 features. * modules/stdbool (Depends-on): Add c99. 2022-09-14 Bruno Haible verify: Avoid syntax error due to static_assert with MSVC 14 in C++. * lib/verify.h (static_assert): For MSVC in C++ mode, use a definition that supports both the two-arguments and the one-argument syntax. 2022-09-14 Bruno Haible posix_spawn-* tests: Fix test failure on mingw when libtool is in use. * tests/test-posix_spawn-inherit0.c (CHILD_PROGRAM_FILENAME): Add the EXEEXT suffix. * tests/test-posix_spawn-inherit1.c (CHILD_PROGRAM_FILENAME): Likewise. * tests/test-posix_spawn-open1.c (CHILD_PROGRAM_FILENAME): Likewise. * tests/test-posix_spawn-open2.c (CHILD_PROGRAM_FILENAME): Likewise. 2022-09-14 Bruno Haible verify: Avoid syntax error due to static_assert with MSVC 14. * lib/verify.h (_Static_assert): Pass only the first argument to _GL_VERIFY. 2022-09-13 Paul Eggert verify: treat GNU C++ 6 like recent C++ * m4/assert_h.m4 (gl_ASSERT_H): If we check __cpp_static_assert < 201411, also check __GNUG__ < 6, for consistency with the previous change. 2022-09-13 Bruno Haible verify: Avoid syntax error due to static_assert with GNU C++ 6.x. * lib/verify.h (static_assert): Don't define in GNU C++ 6 or newer. 2022-09-13 Paul Eggert stdalign: prefer to not include * lib/alignalloc.c, lib/argp-parse.c, lib/fts.c, lib/md4.c, lib/md5.c: * lib/rawmemchr.c, lib/sha1.c, lib/sha256.c, lib/sha512.c, lib/sm3.c: * lib/sys_socket.in.h: In C23, is a no-op, so don’t include it. stdalign: alignas and alignof are C23 keywords * m4/stdalign.m4 (gl_STDALIGN_H): Check also whether alignas and alignof are keywords and so don’t need stdalign.h, and define HAVE_C_ALIGNASOF if so. If not, arrange for config.h to #define alignas and alignof by including . * modules/stdalign: No need to include . * tests/test-stdalign.c: Do not include stdalign.h. assert-h: prefer to ‘verify’ Where it’s easy, prefer ‘static_assert’ to ‘verify’, as this simplifies the source by removing the need to include verify.h. Keep using ‘verify’ if verify.h is used for other reasons, or if code is shared with glibc. * lib/alignalloc.c, lib/argmatch.h, lib/c32is-impl.h: * lib/c32snrtombs.c, lib/c32srtombs.c, lib/exclude.c: * lib/filevercmp.c, lib/fma.c, lib/i-ring.h, lib/ino-map.c: * lib/localeinfo.c, lib/malloca.c, lib/mbrtoc32.c, lib/mbrtowc.c: * lib/mbsinit.c, lib/mbsnrtoc32s.c, lib/mbsrtoc32s.c: * lib/nanosleep.c, lib/parse-datetime.y, lib/pipe2.c: * lib/rawmemchr.c, lib/relocwrapper.c, lib/sleep.c: * lib/stat-w32.c, lib/strerror.c, lib/strtoimax.c: * lib/utimecmp.c, lib/vasnprintf.c, tests/test-alignof.c: * tests/test-intprops.c, tests/test-libgmp.c: * tests/test-limits-h.c, tests/test-locale.c: * tests/test-pthread.c, tests/test-round2.c: * tests/test-stdalign.c, tests/test-stddef.c, tests/test-stdio.c: * tests/test-stdlib.c, tests/test-string.c, tests/test-sys_stat.c: * tests/test-time.c, tests/test-uchar.c, tests/test-unistd.c: * tests/test-wchar.c: Prefer static_assert to verify, and stop including verify.h. * lib/stat.c: Don’t include verify.h (this include was unnecessary). * modules/alignalloc, modules/alignof-tests, modules/argmatch: * modules/c-vasnprintf, modules/c32isalnum, modules/c32isalpha: * modules/c32isblank, modules/c32iscntrl, modules/c32isdigit: * modules/c32isgraph, modules/c32islower, modules/c32isprint: * modules/c32ispunct, modules/c32isspace, modules/c32isupper: * modules/c32isxdigit, modules/c32snrtombs, modules/c32srtombs: * modules/exclude, modules/filevercmp, modules/fma, modules/fmaf: * modules/fmal, modules/fstat, modules/i-ring, modules/ino-map: * modules/intprops-tests, modules/libgmp-tests: * modules/limits-h-tests, modules/locale-tests, modules/malloca: * modules/mbrtoc32, modules/mbrtowc, modules/mbsinit: * modules/mbsnrtoc32s, modules/mbsrtoc32s, modules/nanosleep: * modules/parse-datetime, modules/pipe2, modules/pthread-h-tests: * modules/rawmemchr, modules/relocatable-prog-wrapper: * modules/round-tests, modules/roundf-tests, modules/sleep: * modules/stat, modules/stdalign-tests, modules/stdckdint-tests: * modules/stddef-tests, modules/stdio-tests, modules/stdlib-tests: * modules/strerror, modules/string-tests, modules/strtoimax: * modules/strtoumax, modules/sys_stat-tests, modules/time-tests: * modules/uchar-tests, modules/unistd-tests: * modules/unistdio/u16-u16-vasnprintf: * modules/unistdio/u16-vasnprintf: * modules/unistdio/u32-u32-vasnprintf: * modules/unistdio/u32-vasnprintf: * modules/unistdio/u8-u8-vasnprintf: * modules/unistdio/u8-vasnprintf, modules/unistdio/ulc-vasnprintf: * modules/utimecmp, modules/vasnprintf, modules/wchar-tests: Depend on assert-h, not verify. assert-h: static_assert is a keyword in C23 * m4/assert_h.m4 (gl_ASSERT_H): Also test for static_assert keyword a la C23, and define HAVE_C_STATIC_ASSERT if so. If not, arrange for config.h to #define static_assert by including , and then do "#undef assert" so that the assert macro still needs an explicit include. This should be safe even on very old hosts, as assert.h has been re-includable for decades. * tests/tests-assert.c: New test. * modules/assert-h-tests (Files, Makefile.am): Add it. 2022-09-13 Bruno Haible Prefer talking about alignas than _Alignas. * m4/gnulib-common.m4 (gl_COMMON_BODY): Don't mention _Alignas in a comment. * m4/stdalign.m4 (gl_STDALIGN_H): Likewise. 2022-09-13 Paul Eggert stdalign-tests: port to C23 * tests/test-stdalign.c: Do not test __alignas_is_defined, _Alignof, or _Alignas as they are obsolescent. Do not use __alignas_is_defined in C23 or later (or C++11 or later), as it’s removed in C23. 2022-09-12 Bruno Haible supersede: Avoid a failure when writing to /dev/null in Solaris zones. * lib/supersede.c (open_supersede): Treat EACCES (seen on Solaris 11.3) like EINVAL (seen on Illumos). 2022-09-11 Paul Eggert maint: avoid unportable ERE \} * top/maint.mk (sc_copyright_check): Avoid unportable use of \} in ERE. verify: improve maint check * top/maint.mk (sc_prohibit_verify_without_use): Adjust re to match verify.h. verify: port better to C23 * lib/verify.h (_GL_VERIFY, static_assert): If C23, use static_assert keyword; no macro. This should simplify diagnostics and debugging. 2022-09-10 Bruno Haible pipe-filter-gi: Fix test failure on native Windows. * lib/pipe-filter-aux.h (write): Redefine on native Windows. 2022-09-10 Bruno Haible stdbool C++ tests: Fix compilation error with MSVC14 (regr. from today). * tests/test-stdbool-c++.cc (s): Choose field names that are not type names. Reorganize C++ tests for stdbool and stdbool-c99. * tests/test-stdbool-c++.cc: Don't include if TEST_STDBOOL_H is not defined. Add a couple of simple tests, from test-stdbool.c. * tests/test-stdbool-c99-c++.cc: New file. * modules/stdbool-c99-c++-tests: New file, based on modules/stdbool-c++-tests. * modules/stdbool-c99-tests (Depends-on): Add stdbool-c99-c++-tests. Remove stdbool-c++-tests. * modules/stdbool-tests (Depends-on): Add stdbool-c++-tests. 2022-09-10 Bruno Haible stdbool C++ tests: Fix for C++20. * tests/test-stdbool-c++2.cc: Don't include in C++20 or newer. 2022-09-10 Bruno Haible uchar: Work around error in C++ mode on AIX 7.2 with xlclang. * lib/uchar.in.h (char16_t, char32_t): On AIX with xlclang++, define these as macros. * doc/posix-headers/uchar.texi: Document the AIX + xlclang++ bug. 2022-09-10 Paul Eggert Rely on new stdbool behavior Prefer the C23 style to the C99 style, since the stdbool module now supports C23. * lib/acl-internal.h, lib/acl.h, lib/argmatch.c, lib/argmatch.h: * lib/argp-help.c, lib/argv-iter.h, lib/asyncsafe-spin.c: * lib/backup-internal.h, lib/backupfile.c, lib/base32.h: * lib/base64.h, lib/basename-lgpl.c, lib/bitset/base.h: * lib/c-ctype.h, lib/c-strcasestr.c, lib/canonicalize-lgpl.c: * lib/canonicalize.c, lib/chdir-long.c, lib/chown.c: * lib/classpath.h, lib/clean-temp-private.h: * lib/clean-temp-simple.c, lib/clean-temp-simple.h: * lib/clean-temp.c, lib/clean-temp.h, lib/cloexec.h: * lib/close-stream.c, lib/closein.c, lib/closeout.c, lib/closeout.h: * lib/csharpcomp.h, lib/csharpexec.h, lib/cycle-check.c: * lib/cycle-check.h, lib/des.h, lib/dfa.h, lib/diffseq.h: * lib/dirname.h, lib/exclude.c, lib/exclude.h, lib/execute.c: * lib/execute.h, lib/execvpe.c, lib/fatal-signal.c, lib/fchdir.c: * lib/file-set.h, lib/filevercmp.c, lib/findprog-in.c: * lib/findprog.c, lib/findprog.h, lib/fma.c, lib/fnmatch.c: * lib/fopen.c, lib/freadable.h, lib/freading.h, lib/freopen-safer.c: * lib/fstrcmp.c, lib/fsusage.h, lib/fts.c, lib/fwritable.h: * lib/fwriteerror.c, lib/fwriting.h, lib/gen-uni-tables.c: * lib/getaddrinfo.c, lib/getcwd.c, lib/getloadavg.c: * lib/getndelim2.c, lib/getpass.c, lib/getrandom.c: * lib/git-merge-changelog.c, lib/gl_list.h, lib/gl_map.h: * lib/gl_omap.h, lib/gl_oset.h, lib/gl_set.h, lib/glob.c: * lib/glthread/cond.h, lib/hamt.h, lib/hard-locale.h: * lib/hash-triple.h, lib/hash.h, lib/human.h, lib/i-ring.h: * lib/isapipe.c, lib/javacomp.h, lib/javaexec.h, lib/javaversion.c: * lib/lchown.c, lib/localeinfo.h, lib/localename.c: * lib/long-options.h, lib/malloc/dynarray.h, lib/mbchar.h: * lib/mbfile.h, lib/mbiter.h, lib/mbmemcasecoll.h, lib/mbscasestr.c: * lib/mbsstr.c, lib/mbuiter.h, lib/mkdir-p.h, lib/modechange.h: * lib/mountlist.h, lib/nanosleep.c, lib/nonblocking.h: * lib/nstrftime.c, lib/openat.c, lib/openat.h, lib/os2-spawn.c: * lib/parse-datetime.h, lib/pipe-filter-aux.c, lib/pipe-filter-gi.c: * lib/pipe-filter-ii.c, lib/pipe-filter.h, lib/posixtm.h: * lib/priv-set.c, lib/progreloc.c, lib/propername.c: * lib/pthread-spin.c, lib/quotearg.c, lib/readtokens.c: * lib/readtokens0.h, lib/readutmp.c, lib/regex-quote.h: * lib/regex_internal.h, lib/relocwrapper.c, lib/rename.c: * lib/renameatu.c, lib/rpmatch.c, lib/same.c, lib/same.h: * lib/save-cwd.c, lib/savewd.c, lib/savewd.h, lib/spawn-pipe.h: * lib/spawni.c, lib/stack.h, lib/stat.c, lib/stdckdint.in.h: * lib/strcasestr.c, lib/strfmon_l.c, lib/striconveh.c: * lib/striconveha.h, lib/string-buffer.h, lib/strptime.c: * lib/strstr.c, lib/strtod.c, lib/supersede.h, lib/system-quote.c: * lib/tempname.c, lib/term-style-control.c: * lib/term-style-control.h, lib/textstyle.in.h, lib/time_rz.c: * lib/tmpdir.c, lib/tmpdir.h, lib/tmpfile.c, lib/unicase.in.h: * lib/unicase/caseprop.h, lib/unicase/invariant.h: * lib/unicase/u16-casemap.c, lib/unicase/u16-ct-totitle.c: * lib/unicase/u16-is-invariant.c, lib/unicase/u32-casemap.c: * lib/unicase/u32-ct-totitle.c, lib/unicase/u32-is-invariant.c: * lib/unicase/u8-casemap.c, lib/unicase/u8-ct-totitle.c: * lib/unicase/u8-is-invariant.c, lib/unictype.in.h: * lib/unigbrk.in.h, lib/unigbrk/u16-grapheme-breaks.c: * lib/unigbrk/u32-grapheme-breaks.c: * lib/unigbrk/u8-grapheme-breaks.c: * lib/unigbrk/uc-grapheme-breaks.c, lib/uniname/uniname.c: * lib/unistr.in.h, lib/unlinkdir.h, lib/userspec.h, lib/utime.c: * lib/utimecmp.c, lib/utimens.c, lib/wait-process.h: * lib/windows-cond.c, lib/windows-spawn.c, lib/windows-spawn.h: * lib/windows-timedrwlock.c, lib/write-any-file.h, lib/xbinary-io.c: * lib/xstrtod.h, lib/yesno.h: * tests/nap.h, tests/qemu.h, tests/test-areadlink-with-size.c: * tests/test-areadlink.c, tests/test-areadlinkat-with-size.c: * tests/test-areadlinkat.c, tests/test-base32.c: * tests/test-base64.c, tests/test-ceil2.c, tests/test-ceilf2.c: * tests/test-chown.c, tests/test-dirname.c, tests/test-dup-safer.c: * tests/test-dup3.c, tests/test-exclude.c: * tests/test-execute-child.c, tests/test-execute-main.c: * tests/test-execute-script.c, tests/test-explicit_bzero.c: * tests/test-fchownat.c, tests/test-fcntl-safer.c: * tests/test-fcntl.c, tests/test-fdutimensat.c: * tests/test-filenamecat.c, tests/test-floor2.c: * tests/test-floorf2.c, tests/test-fstatat.c, tests/test-fstrcmp.c: * tests/test-futimens.c, tests/test-getlogin.h, tests/test-getopt.h: * tests/test-hard-locale.c, tests/test-hash.c: * tests/test-idpriv-drop.c, tests/test-idpriv-droptemp.c: * tests/test-immutable.c, tests/test-intprops.c: * tests/test-lchown.c, tests/test-link.c, tests/test-linkat.c: * tests/test-lstat.c, tests/test-mbmemcasecmp.c: * tests/test-mbmemcasecoll.c, tests/test-mkdir.c: * tests/test-mkdirat.c, tests/test-mkfifo.c, tests/test-mkfifoat.c: * tests/test-mknod.c, tests/test-nonblocking-pipe-child.c: * tests/test-nonblocking-pipe-main.c: * tests/test-nonblocking-socket-child.c: * tests/test-nonblocking-socket-main.c, tests/test-open.c: * tests/test-openat.c, tests/test-pipe.c, tests/test-pipe2.c: * tests/test-poll.c, tests/test-posix_spawn-chdir.c: * tests/test-posix_spawn-dup2-stdin.c: * tests/test-posix_spawn-dup2-stdout.c: * tests/test-posix_spawn-fchdir.c, tests/test-posix_spawn-open1.c: * tests/test-posix_spawn-open2.c, tests/test-quotearg-simple.c: * tests/test-quotearg.c, tests/test-readlink.c: * tests/test-readlinkat.c, tests/test-readtokens.c: * tests/test-rename.c, tests/test-renameat.c: * tests/test-renameatu.c, tests/test-rmdir.c, tests/test-round2.c: * tests/test-select.h, tests/test-spawn-pipe-child.c: * tests/test-spawn-pipe-main.c, tests/test-spawn-pipe-script.c: * tests/test-stack.c, tests/test-stat.c, tests/test-supersede.c: * tests/test-symlink.c, tests/test-symlinkat.c: * tests/test-system-quote-main.c: * tests/test-term-style-control-hello.c: * tests/test-term-style-control-yes.c, tests/test-timespec.c: * tests/test-trunc2.c, tests/test-truncf2.c, tests/test-unlink.c: * tests/test-unlinkat.c, tests/test-userspec.c, tests/test-utime.c: * tests/test-utimens.c, tests/test-utimensat.c: * tests/unictype/test-categ_byname.c: * tests/unigbrk/test-uc-is-grapheme-break.c: Don’t include stdbool.h. * modules/acl, modules/xgetcwd: Don’t depend on stdbool, as these modules don’t use bool. * modules/argp, modules/bitset, modules/diffseq, modules/file-has-acl: * modules/gen-uni-tables, modules/getrandom: * modules/hash-triple-simple, modules/posix_spawn-internal: * modules/strcasestr, modules/supersede, modules/system-quote: * modules/uniconv/base, modules/uniname/uniname, modules/utime: * modules/windows-timedrwlock: Depend on stdbool, as these modules use bool. stdbool: upgrade from C99 to C23 Change the stdbool module so that it now emulates C23. The module now assumes C99. The old module (which assumes C89 and emulates C99) is still available as stdbool-c99, but is deprecated. * tests/test-stdbool.c [TEST_C_BOOL]: Do not include stdbool.h. * m4/c-bool.m4, modules/c-bool, modules/c-bool-tests: * tests/test-c-bool.c: New files. 2022-09-10 Bruno Haible string: Fix compilation error in C++ mode on AIX 7.2 with xlclang. * lib/string.in.h (mbslen): Enable the C++ alias warning only on glibc systems. 2022-09-10 Bruno Haible math: Fix compilation error in C++ mode on AIX 7.2 with xlclang. * lib/math.in.h (cbrtl, copysignl, exp2l, expm1l, fmal, ilogbl, log1pl, log2l, logbl, remainderl, rintl, roundl, truncl): Enable the C++ alias warning only on glibc systems. 2022-09-10 Bruno Haible doc: Mention the stable branches. * doc/gnulib-readme.texi (High Quality): Add subsection 'Stable Branches'. (Writing reliable code): Extracted from 'High Quality'. Mention also -Wall and valgrind. 2022-09-09 Bruno Haible posix_spawn-internal: Optimize DuplicateHandle calls on native Windows. * lib/windows-spawn.h (DELAYED_DUP2_OLDFD, DELAYED_DUP2_NEWFD): New macros. (struct IHANDLE): Add a linked_fd field. * lib/spawni.c (SPAWN_INTERNAL_OPTIMIZE_DUPLICATEHANDLE): New macro. (do_delayed_dup2, do_remaining_delayed_dup2): New functions. (close_inheritable_handles): Don't close handles in DELAYED_DUP2_NEWFD entries. (do_close): Add a third parameter. Optimize delayed dup2 calls. (do_open): Use do_close. (do_dup2): Likewise. Prepare for optimizing the DuplicateHandle call. (__spawni): Do the remaining delayed dup2 invocations after the loop over the actions. posix_spawn-internal: Refactor. * lib/windows-spawn.h (struct IHANDLE): New type. (struct inheritable_handles): Combine handles and flags into a single array. * lib/windows-spawn.c (init_inheritable_handles, compose_handles_block, spawnpvech): Update. * lib/spawni.c (grow_inheritable_handles, shrink_inheritable_handles, do_open, do_dup2, do_close): Update. posix_spawn-internal: Optimize DuplicateHandle calls on native Windows. * lib/spawni.c (open_handle): Return an inheritable HANDLE. (do_open): Don't call DuplicateHandle. Remove curr_process parameter. (__spawni): Update. posix_spawn-internal: Optimize DuplicateHandle calls on native Windows. * lib/windows-spawn.h (KEEP_OPEN_IN_PARENT): New macro. * lib/windows-spawn.c (init_inheritable_handles): When a handle is already inheritable, don't bother duplicating it; instead, just mark it as KEEP_OPEN_IN_PARENT. * lib/spawni.c (shrink_inheritable_handles, close_inheritable_handles, do_open, do_dup2, do_close): Don't close handles that are marked as KEEP_OPEN_IN_PARENT. 2022-09-09 Bruno Haible posix_spawn-internal: Don't lose flags while duplicating an fd. * lib/spawni.c (do_dup2): Fix the flags of the new fd. 2022-09-09 Bruno Haible spawn-pipe: Fix pipe-filter-* test hangs (regression 2020-12-24). * lib/windows-spawn.h (struct inheritable_handles): Widen the per-fd flags from 8 bits to 16 bits. (KEEP_OPEN_IN_CHILD): New macro. (init_inheritable_handles): Change description of what it does when duplicate == true. * lib/windows-spawn.c (init_inheritable_handles): If duplicate == true, add all fds to the array, regardless whether they are scheduled to be preserved in the child process. (compose_handles_block): Update. (spawnpvech): Update. * lib/spawni.c (grow_inheritable_handles): Update. (shrink_inheritable_handles): Also close the handles not marked with KEEP_OPEN_IN_CHILD. (do_open, do_dup2): Mark the new fd with KEEP_OPEN_IN_CHILD. 2022-09-09 Bruno Haible spawn-pipe: Fix possible hangs in programs that spawn several children. * lib/spawn-pipe.c (create_pipe) [Unix]: Create the ifd[] and ofd[] file descriptors with the close-on-exec flag set. 2022-09-09 Bruno Haible pipe-filter-gi tests: Fix long-standing failure on native Windows. * tests/test-pipe-filter-gi2-main.c: Include binary-io.h. (main): Avoid NL to CRLF conversion on standard output. * tests/test-pipe-filter-gi2-child.c: Include , binary-io.h. (main): Avoid NL to CRLF conversion on standard output. 2022-09-09 Bruno Haible posix_spawn_file_actions_addclose tests: Fix mistake from 2022-09-07. * modules/posix_spawn_file_actions_addclose-tests (Files): Add m4/musl.m4. 2022-09-08 Paul Eggert stdbool-tests: match stdbool * tests/test-stdbool.c: Omit test for __bool_true_false_are_defined since AC_CHECK_HEADER_STDBOOL no longer checks for this obsolescent macro. mktime: back in sync with GNUlib * config/srclist.txt: glibc has synced mktime from Gnulib. 2022-09-07 Bruno Haible posix_spawn_file_actions_addclose tests: Avoid test failure on musl. Reported by Valery Ushakov in . * modules/posix_spawn_file_actions_addclose-tests (configure.ac): Invoke gl_MUSL_LIBC. * tests/test-posix_spawn_file_actions_addclose.c (main): Skip one of the tests on musl libc. 2022-09-06 Simon Josefsson gnumakefile: Improve tarball reproducibility. * top/GNUmakefile (TAR_OPTIONS): Add --sort=name. Suggested by Tzvetelin Katchov . * DEPENDENCIES: Mention tar 1.28 dependency. 2022-09-05 Bruno Haible pthread-h: Fix compilation error on mingw with --enable-threads=windows. * lib/pthread.in.h: In C++ mode, if mingw's has not been used, import many pthread_* symbols from the GNULIB_NAMESPACE into the global namespace. 2022-09-04 Bruno Haible Fix various test link errors on MSVC. * modules/crypto/gc-arcfour-tests (Makefile.am): Link test-gc-arcfour with $(LIB_GETRANDOM). * modules/crypto/gc-arctwo-tests (Makefile.am): Link test-gc-arctwo with $(LIB_GETRANDOM). * modules/crypto/gc-des-tests (Makefile.am): Link test-gc-des with $(LIB_GETRANDOM). * modules/crypto/gc-hmac-md5-tests (Makefile.am): Link test-gc-hmac-md5 with $(LIB_GETRANDOM). * modules/crypto/gc-hmac-sha1-tests (Makefile.am): Link test-gc-hmac-sha1 with $(LIB_GETRANDOM). * modules/crypto/gc-hmac-sha256-tests (Makefile.am): Link test-gc-hmac-sha256 with $(LIB_GETRANDOM). * modules/crypto/gc-hmac-sha512-tests (Makefile.am): Link test-gc-hmac-sha512 with $(LIB_GETRANDOM). * modules/crypto/gc-md2-tests (Makefile.am): Link test-gc-md2 with $(LIB_GETRANDOM). * modules/crypto/gc-md4-tests (Makefile.am): Link test-gc-md4 with $(LIB_GETRANDOM). * modules/crypto/gc-md5-tests (Makefile.am): Link test-gc-md5 with $(LIB_GETRANDOM). * modules/crypto/gc-pbkdf2-tests (Makefile.am): Link test-gc-pbkdf2 with $(LIB_GETRANDOM). * modules/crypto/gc-pbkdf2-sha1-tests (Makefile.am): Link test-gc-pbkdf2-sha1 with $(LIB_GETRANDOM). * modules/crypto/gc-rijndael-tests (Makefile.am): Link test-gc-rijndael with $(LIB_GETRANDOM). * modules/crypto/gc-sha1-tests (Makefile.am): Link test-gc-sha1 with $(LIB_GETRANDOM). * modules/crypto/gc-sha256-tests (Makefile.am): Link test-gc-sha256 with $(LIB_GETRANDOM). * modules/crypto/gc-sha512-tests (Makefile.am): Link test-gc-sha512 with $(LIB_GETRANDOM). * modules/crypto/gc-sm3-tests (Makefile.am): Link test-gc-sm3 with $(LIB_GETRANDOM). * modules/sys_stat-c++-tests (Makefile.am): Link test-sys_stat-c++ with $(LIB_GETRANDOM). * modules/unistd-c++-tests (Makefile.am): Link test-unistd-c++ with $(LIB_GETRANDOM). 2022-09-04 Bruno Haible count-leading-zeros: Fix a link error on 32-bit MSVC and a test failure. * lib/count-leading-zeros.h: Correct syntax for #pragma intrinsic. (COUNT_LEADING_ZEROS): Fix the return value. (count_leading_zeros_ll): Use two _BitScanReverse invocations instead of a _BitScanReverse64 invocation. 2022-09-04 Bruno Haible count-trailing-zeros: Fix a link error on 32-bit MSVC. * lib/count-trailing-zeros.h: Correct syntax for #pragma intrinsic. (count_trailing_zeros_ll): Use two _BitScanForward invocations instead of a _BitScanForward64 invocation. 2022-09-04 Bruno Haible unictype/category-none tests: Fix a link error on MSVC. * tests/unictype/test-categ_none.c (main): Disable the test on MSVC. 2022-09-04 Bruno Haible oset-c++: Fix compilation error with MSVC 14. * lib/gl_oset.hh: With MSVC, avoid 'friend'. 2022-09-04 Bruno Haible glob tests: Fix link error on mingw. * modules/glob-tests (Makefile.am): Link test-glob with $(LIBINTL). 2022-09-04 Bruno Haible timespec_get: Fix compilation error with MSVC 14. * m4/gettime.m4 (gl_CHECK_FUNC_TIMESPEC_GET): New macro. (gl_GETTIME): Use it instead of AC_CHECK_FUNCS_ONCE. * m4/timespec_get.m4 (gl_FUNC_TIMESPEC_GET): Likewise. 2022-09-04 Bruno Haible stdbool: Fix compilation error in C++ mode with MSVC 14. * lib/stdbool.in.h (_Bool, bool, false, true): In C++ mode with MSVC 14, don't define these as macros. 2022-09-04 Bruno Haible fts: Fix compilation error with MSVC 14. * lib/fts.c (S_IFBLK): Add fallback definition. 2022-09-04 Bruno Haible lstat: Fix compilation error in C++ mode on mingw. * lib/sys_stat.h (lstat): Move declaration after the declaration of 'stat'. 2022-09-04 Bruno Haible pselect: Fix compilation error in C++ mode on mingw. * lib/sys_select.in.h (pselect): Enable the C++ alias warning only on glibc systems. 2022-09-04 Bruno Haible nanosleep: Work around bug on newer 32-bit mingw. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Test for 32-bit mingw bug. * tests/test-nanosleep.c (main): Add another test. * doc/posix-functions/nanosleep.texi: Mention the mingw bug. 2022-09-03 Bruno Haible fmal: Work around glibc 2.17 bug on x86_64. * m4/fmal.m4 (gl_FUNC_FMAL_WORKS): Test against bug seen on glibc 2.17 x86_64. * doc/posix-functions/fmal.texi: Update info. 2022-09-03 Bruno Haible Fix a compilation error in C++ mode on Solaris 11.4. * lib/uchar.in.h (c32rtomb): Enable the C++ alias warning only on glibc ≥ 2.16 systems. Fix a GNULIB_POSIXCHECK mistake. (mbrtoc32): Enable the C++ alias warning only on glibc ≥ 2.16 systems. 2022-09-03 Bruno Haible Fix compilation errors of C++ tests on Solaris 10 with Sun C++. * modules/string-c++-tests (Makefile.am): Link test-string-c++ with $(LIBUNISTRING). * modules/wchar-c++-tests (Makefile.am): Link test-wchar-c++ with $(LIBUNISTRING). 2022-09-03 Bruno Haible Fix a compilation error in C++ mode on FreeBSD 13.1. * lib/signal.in.h: Don't include on FreeBSD ≥ 8.0. * lib/sys_select.in.h: Don't include on FreeBSD. 2022-09-03 Bruno Haible stdnoreturn: Document relation to C++. * doc/posix-headers/stdnoreturn.texi: Document FreeBSD problem. 2022-09-03 Bruno Haible sysexits: Add C++ tests. * tests/test-sysexits-c++.cc: New file. * modules/sysexits-c++-tests: New file. * modules/sysexits-tests (Depends-on): Add sysexits-c++-tests. 2022-09-03 Bruno Haible sys_utsname: Add C++ tests. * tests/test-sys_utsname-c++.cc: New file. * modules/sys_utsname-c++-tests: New file. * modules/sys_utsname-tests (Depends-on): Add sys_utsname-c++-tests. 2022-09-03 Bruno Haible sys_uio: Add C++ tests. * tests/test-sys_uio-c++.cc: New file. * modules/sys_uio-c++-tests: New file. * modules/sys_uio-tests (Depends-on): Add sys_uio-c++-tests. 2022-09-03 Bruno Haible sys_times: Add C++ tests. * tests/test-sys_times-c++.cc: New file. * modules/sys_times-c++-tests: New file. * modules/sys_times-tests (Depends-on): Add sys_times-c++-tests. 2022-09-03 Bruno Haible sys_file: Add C++ tests. * tests/test-sys_file-c++.cc: New file. * modules/sys_file-c++-tests: New file. * modules/sys_file-tests (Depends-on): Add sys_file-c++-tests. sys_file: Document this module. * doc/glibc-headers/sys_file.texi: New file. * doc/gnulib.texi (Glibc Header File Substitutes): Include it. 2022-09-03 Bruno Haible stdckdint: Add C++ tests. * tests/test-stdckdint-c++.cc: New file. * modules/stdckdint-c++-tests: New file. * modules/stdckdint-tests (Depends-on): Add stdckdint-c++-tests. 2022-09-03 Bruno Haible stdalign: Add C++ tests. * tests/test-stdalign-c++.cc: New file. * modules/stdalign-c++-tests: New file. * modules/stdalign-tests (Depends-on): Add stdalign-c++-tests. 2022-09-03 Bruno Haible sched: Add C++ tests. * tests/test-sched-c++.cc: New file. * modules/sched-c++-tests: New file. * modules/sched-tests (Depends-on): Add sched-c++-tests. 2022-09-03 Bruno Haible netinet_in: Add C++ tests. * tests/test-netinet_in-c++.cc: New file. * modules/netinet_in-c++-tests: New file. * modules/netinet_in-tests (Depends-on): Add netinet_in-c++-tests. 2022-09-03 Bruno Haible net_if: Add C++ tests. * tests/test-net_if-c++.cc: New file. * modules/net_if-c++-tests: New file. * modules/net_if-tests (Depends-on): Add net_if-c++-tests. * doc/posix-headers/net_if.texi: Fix documentation. 2022-09-03 Bruno Haible termcap: Fix link error on AIX 7. * m4/termcap.m4 (gl_TERMCAP_BODY): Search also for libxcurses and for libcurses, like gl_TERMINFO_BODY does. * m4/terminfo.m4 (gl_TERMINFO_BODY): Update platform list in comment. 2022-09-02 Bruno Haible getrandom: Fix compilation error in C++ mode on FreeBSD 12. * lib/sys_random.in.h (getrandom): Enable the C++ alias warning only on glibc ≥ 2.25 systems. 2022-09-02 Bruno Haible math C++ tests: Fix compilation error with clang on FreeBSD 13. * lib/math.in.h (isnan): For clang >= 11 on FreeBSD, declare 'isnan', not 'rpl_isnan'. 2022-09-02 Bruno Haible strerror_r-posix: Fix for Hurd. * lib/strerror_r.c (strerror_r): Interpret return value of __xpg_strerror_r correctly. Remove assumption about how strerror_r behaves. 2022-09-02 Bruno Haible ptsname tests, ptsname_r tests: Fix test failures on Hurd. * tests/test-ptsname.c (main): On Hurd, test only the BSD ptys that actually exist on Hurd. * tests/test-ptsname_r.c (main): Likewise. 2022-09-02 Bruno Haible strtol, strtoul: Fix compilation error in C++ mode on Solaris 11. * lib/stdlib.in.h (strtol, strtoul): Enable the C++ alias warning only on glibc systems. 2022-09-02 Bruno Haible aligned_alloc: Fix compilation error in C++ mode on Solaris 11. * lib/stdlib.in.h (aligned_alloc): Enable the C++ alias warning only on glibc systems. 2022-09-02 Bruno Haible getdomainname: Fix compilation error in C++ mode on Solaris 11. * lib/unistd.in.h (getdomainname): Enable the C++ alias warning only on glibc systems. 2022-09-02 Bruno Haible terminfo: Don't disturb the termcap module. * m4/terminfo.m4 (gl_TERMINFO_BODY): Save and restore the variables determined by the gl_TERMCAP_BODY macro. 2022-08-30 Paul Eggert fnmatch: fix stdckdint typo * lib/fnmatch_loop.c (NEW_PATTERN): Fix typo in previous patch. Problem and fix reported by Simon Josefsson in: https://lists.gnu.org/r/bug-gnulib/2022-08/msg00104.html 2022-08-25 Paul Eggert tempname: simplify by omitting _LIBC code * lib/tempname.c [_LIBC]: Simplify. Suggested by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2022-08/msg00077.html I plan to propose a corresponding patch to glibc. 2022-08-22 Paul Eggert tempname: don't lose entropy in seed * lib/tempname.c (random_bits): Don't lose entropy in S in the rare case where where the template has more than 10 Xs. From a suggestion by Bruno Haible in: https://bugs.gnu.org/57129#149 tempname: fix multithreading, ASLR leak etc. Fix problems with tempname and multithreading, entropy loss, and missing clock data (this last on non-GNU platforms). See analysis by Bruno Haible in: https://bugs.gnu.org/57129#149 While looking into this, I noticed that tempname can leak info derived from ASLR into publicly-visible file names, which is a no-no. Fix that too. * lib/tempname.c: Don't include stdalign.h. (HAS_CLOCK_ENTROPY): Remove. (mix_random_values): New function. (random_bits): Use it. Args are now new value address and old value, and this function now returns a success indicator. Omit old USE_GETRANDOM argument: always try getrandom now, as there is no good reason not to now that GRND_NONBLOCK is used. Caller changed. Use CLOCK_REALTIME for for ersatz entropy, as CLOCK_MONOTONIC doesn't work on some platforms. Also, mix in ersatz entropy from tv_sec and from clock (). (try_tempname_len): Do not mix in ASLR-based entropy, as the result is published to the world and ASLR should be private. Do not try to use a static var as that has issues if multithreaded. Instead, simply generate new random bits. Worry about bias only with high-quality random bits. * modules/tempname (Depends-on): Do not depend on stdalign. tempname: merge 64-bit time_t fix from glibc This merges glibc commit 52a5fe70a2c77935afe807fb6e904e512ddd894e "Use 64 bit time_t stat internally". * lib/tempname.c (struct_stat64) [_LIBC]: Use struct __stat64_t64. (__lstat64_time64) [!_LIBC]: Rename from __lstat64. All uses changed. (direxists): Use __stat64_time64 instead of __stat64. 2022-08-16 Bruno Haible tempname: Add more tests. Based on scenario described by Eli Zaretskii in . * tests/test-tempname.c (main): Add another test. * modules/tempname-tests (Status): Mark the test as unportable. 2022-08-16 Paul Eggert tempname: generate better names for MinGW Emacs On MinGW, GNU Emacs disables clock_gettime, which reliably breaks some of gen_tempname’s optimistic callers. Work around the problem by making the generated names less predictable. We don’t need cryptographic randomness here, just enough unpredictability to keep Emacs happy most of the time. * lib/tempname.c (HAS_CLOCK_ENTROPY): New macro. (random_bits): Use it. (try_tempname_len): On systems lacking clock entropy, maintain state so that gen_filename generates less-predictable names on successive successful calls. 2022-08-16 Simon Josefsson maintainer-makefile: Check for incorrect DISTCHECK_CONFIGURE_FLAGS usage. * top/maint.mk (sc_makefile_DISTCHECK_CONFIGURE_FLAGS): Add. 2022-08-16 Bruno Haible tempname: Add tests. * tests/test-tempname.c: New file. * modules/tempname-tests: New file. 2022-08-16 Simon Josefsson pmccabe2html: Doc fix. * build-aux/pmccabe2html: Don't use reserved _SOURCES namespace. Use AM_V_GEN. Use LC_ALL=C. 2022-08-15 Bruno Haible stdbool: Drop old BeOS support that gets in the way of ISO C 23 support. * lib/stdbool.in.h: Don't include . 2022-08-15 Bruno Haible tempname: Fix a comment. * lib/tempname.c (try_tempname_len): Use of entropy makes the function more, not less, secure. 2022-08-15 Paul Eggert tempname: remove incorrect comment * lib/tempname.c, lib/tempname.h: Remove incorrect comment, as the names are not necessarily hard to predict (Bug#57129). 2022-08-14 Simon Josefsson bootstrap.conf: Use proper shell marker for Emacs. * build-aux/bootstrap.conf: Add it. 2022-08-13 Paul Eggert stdbool: port to C23 * m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Copy from bleeding-edge Autoconf. Don’t define if Autoconf 2.72 or later. * tests/test-stdbool.c (bool, false, true) (__bool_true_false_are_defined): Do not require these to be defined. C23 still requires __bool_true_false_are_defined but marks it as obsolescent, and it’s no longer worth testing. (WORKING_BOOL): New macro, which also tests __STDC_VERSION__. Use it in tests for working bool. Test for bool instead of for _Bool, which C23 says is obsolescent. 2022-08-13 Bruno Haible gnulib-tool.py: Fix some code generation details. * pygnulib/GLEmiter.py: Don't produce Windows CR-LFs on Windows. (GLEmiter.po_Makevars): Emit a definition of top_builddir, not top_subdir. (GLEmiter.po_POTFILES_in): Fix result when sourcebase is 'tests' or something like that. (GLEmiter.initmacro_start): Add two more newlines (mistake from 2021-04-11). gnulib-tool.py: Reduce code duplication. * pygnulib/constants.py (relinverse): New function. * pygnulib/GLEmiter.py (GLEmiter.po_Makevars, GLEmiter.tests_Makefile_am): Use it. * pygnulib/GLTestDir.py (GLTestDir.execute): Likewise. 2022-08-12 Marc Nieper-Wißkirchen hamt: fix technically undefined behavior Bug reported by Bruno Haible in . * lib/hamt.c (entry_insert): Remove technically undefined behavior when shifting an integer of N bits by N or more bits. 2022-08-10 Paul Eggert stdckdint: fix dependency * modules/stdckdint (Depends-on): Add stdbool. Reported by Bruno Haible. maint: parenthesize macro definiens * lib/intprops.h (INT_ADD_OK, INT_SUBTRACT_OK, INT_MULTIPLY_OK): * lib/pipe-filter-ii.c (GetLastError): * lib/thread-optim.h (gl_multithreaded): Parenthesize function-like macro definiens beginning with a unary operator; needed for weird invocations like ‘m (...)[p]’. 2022-08-09 Paul Eggert stdckdint: prefer to intprops when easy stdckdint.h is part of draft C23 and therefore is more likely to be familiar to programmers in the future, so prefer it to intprops.h in files that don’t need non-_WRAPV intprops.h macros. * lib/alignalloc.c, lib/backupfile.c, lib/fnmatch.c, lib/fnmatch_loop.c: * lib/group-member.c, lib/malloca.c, lib/posixtm.c, lib/reallocarray.c: * lib/xmalloc.c: For files that can use stdckdint.h just as easily as intprops.h, include the former instead of the latter, and use the former’s ckd_* macros instead of the latter’s *_WRAPV macros. * modules/alignalloc, modules/backup-rename, modules/backupfile: * modules/fnmatch, modules/group-member, modules/malloca: * modules/posixtm, modules/reallocarray: * modules/relocatable-prog-wrapper, modules/xalloc: Depend on stdckdint instead of intprops. stdckdint: new module This supports draft C23 . * doc/posix-headers/stdckdint.texi: * lib/stdckdint.in.h, modules/stdckdint: * modules/stdckdint-tests, tests/test-stdckdint.c: New files. * MODULES.html.sh, doc/gnulib.texi: Update for new module. * lib/intprops-internal.h: Include if C23 and its macros would help and our substitute has not already started to be included. (_GL_INT_ADD_WRAPV, _GL_INT_SUBTRACT_WRAPV) (_GL_INT_MULTIPLY_WRAPV): Use ckd_add, ckd_sub, ckd_mul if they are defined and would help. * lib/intprops-internal.h, lib/intprops.h: Improve comments. The C23 restrictions on stdckdint macros already mostly applied to intprops.h, so these are clarifications, not further restrictions. * tests/test-intprops.c: If TEST_STDCKDINT is defined, include instead of "intprops.h", and test it instead. (VERIFY) [TEST_STDCKDINT]: Ignore the arg in this case. (main) [TEST_STDCKDINT]: Skip tests irrelevant to stdckdint.h. intprops: refactor intprops.h into two * lib/intprops.h: Include new file intprops-internal.h. (_GL_INT_CONVERT, _GL_INT_NEGATE_CONVERT, _GL_INT_MINIMUM) (_GL_INT_MAXIMUM, _GL_SIGNED_INT_MAXIMUM, LLONG_MAX, LLONG_MIN) (_GL_HAVE___TYPEOF__, _GL_SIGNED_TYPE_OR_EXPR) (_GL_HAS_BUILTIN_ADD_OVERFLOW, _GL_HAS_BUILTIN_MUL_OVERFLOW) (_GL_HAS_BUILTIN_OVERFLOW_P, _GL__GENERIC_BOGUS) (_GL_INT_OP_WRAPV, _GL_INT_OP_WRAPV_LONGISH, _GL_INT_OP_CALC) (_GL_INT_OP_WRAPV_VIA_UNSIGNED, _GL_INT_ADD_RANGE_OVERFLOW) (_GL_INT_SUBTRACT_RANGE_OVERFLOW) (_GL_INT_MULTIPLY_RANGE_OVERFLOW): Move to intprops-internal.h. (TYPE_SIGNED, EXPR_SIGNED, TYPE_WIDTH, INT_NEGATE_RANGE_OVERFLOW) (INT_NEGATE_OVERFLOW, INT_ADD_WRAPV, INT_SUBTRACT_WRAPV) (INT_MULTIPLY_WRAPV): Rename to _GL_ prefix, move to intprops-internal.h, and define here in terms of the _GL_ name. * lib/intprops-internal.h: New file, containing the above. * modules/intprops (Files): Add lib/intprops-internal.h. intprops: refactor _GL_HAS_BUILTIN_OVERFLOW_P * lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW_P) [_GL_HAS_BUILTIN_OVERFLOW_P]: Use __builtin_sub_overflow_p directly rather than indirectly via INT_SUBTRACT_OVERFLOW. This simplifies future changes, and doesn’t change the generated code. verify: port ‘assume’ to C23 non-GCC * lib/verify.h (assume): Use C23's unreachable if available and if GCC and/or MSC primitives are not available. 2022-08-09 Bruno Haible gnulib-tool.py: Finish implementing option --conditional-dependencies. * gnulib-tool.py (main) Accept options --conditional-dependencies, --no-conditional-dependencies. * pygnulib/GLModuleSystem.py (GLModuleTable.addConditional): Use str(module), not module, as key. Fix logic bug. (GLModuleTable.getCondition): Simplify. (GLModuleTable.transitive_closure): Show a warning when there are duplicate dependencies. Fix logic bug. (GLModuleTable.transitive_closure_separately): Simplify. (GLModuleTable.add_dummy): Ignore tests modules. Cope with multiple lib_SOURCES augmentation lines. Cope with comments at the end of a lib_SOURCES augmentation line. Add the dummy module at the end of the modules list. * pygnulib/GLTestDir.py (GLTestDir.execute): Remove the code that forces the dummy module to the end of the list. * pygnulib/GLEmiter.py (GLEmiter.autoconfSnippets): Add code to terminate the shell functions. Add code for the dependencies from the unconditional to the conditional modules. Don't emit AM_CONDITIONAL for unconditional modules. gnulib-tool.py: Don't do license replacements in the autoconf snippets. * pygnulib/GLEmiter.py (GLEmiter.autoconfSnippet): Remove fileassistant argument. Don't invoke the 'aux' transformer here. Don't produce Windows CR-LFs on Windows. (GLEmiter.autoconfSnippets): Remove fileassistant argument. * pygnulib/GLImport.py (GLImport.gnulib_comp): Update all callers. * pygnulib/GLTestDir.py (GLTestDir.execute): Likewise. gnulib-tool.py: Fix some code generation details. * pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am): When removing a lib_LDFLAGS line, remove also the newline. Fix regex that matches lib_SOMETHING. Add a newline after each '## begin gnulib module' line. Don't emit 'endif' lines without corresponding 'if'. When emitting a '+=' augmentation, make sure it does not get emitted a second time. Don't emit a blank line when there is no AM_CPPFLAGS augmentation. Update after getLink() changed. In the value of DEFAULT_TEXT_DOMAIN, backslash-escape the double-quotes. Don't produce Windows CR-LFs on Windows. Simplify. (GLEmiter.tests_Makefile_am): When removing a lib_LDFLAGS line, remove also the newline. Fix regex that matches lib_SOMETHING. Don't remove a blank line before EXTRA_DIST. Add a newline after each '## begin gnulib module' line. Set uses_subdirs also when there is a .c file in a subdir of tests/. When emitting a '+=' augmentation, make sure it does not get emitted a second time. Don't produce Windows CR-LFs on Windows. Simplify. * pygnulib/GLImport.py (GLImport.execute): Update after getLink() changed. gnulib-tool.py: Fixes for conditional dependencies. * pygnulib/GLModuleSystem.py (GLModule.shell_id_chars): New constant. (GLModule.getShellFunc): Don't use md5 just because of an '_' character. (GLModule.getShellVar): Likewise. (GLModule.getConditionalName): Include a newline in the md5 input. * pygnulib/constants.py (ALPHANUMERIC): Remove constant. gnulib-tool.py: Refactor. * pygnulib/GLModuleSystem.py (GLModule.getLicense): Separate the warning logic from the result logic. 2022-08-09 Paul Eggert largefile, year2038: simplify if Autoconf 2.72 * m4/largefile.m4 (gl_SET_LARGEFILE_SOURCE) (_AC_SYS_LARGEFILE_MACRO_VALUE): * m4/year2038.m4 (gl_YEAR2038_EARLY, gl_YEAR2038, gl_YEAR2038_BODY): Adjust to Autoconf 2.72, which should contain the Gnulib patches in this area and so should not need to be overridden. 2022-08-07 Bruno Haible gnulib-tool.py: Finish implementing option --extract-test-module. * gnulib-tool.py (main): Accept option --extract-tests-module. gnulib-tool.py: Fix handling of nonexistent module names in --extract-*. * gnulib-tool.py (main): To test whether a module exists, just call GLModuleSystem.find and test its return value. gnulib-tool.py: Fix --extract-dependencies result. * pygnulib/GLModuleSystem.py (GLModule.getDependencies): Return a snippet, not a list. Implement dependency of ${module}-tests on ${module}. (GLModule.getDependenciesWithoutConditions, GLModule.getDependenciesWithConditions): New methods. (GLModuleTable.transitive_closure): Call getDependenciesWithConditions. * pygnulib/GLEmiter.py (GLEmiter.autoconfSnippets): Call getDependenciesWithoutConditions. * gnulib-tool.py (main) [--extract-dependencies]: Update. gnulib-tool.py: Rename a method. * pygnulib/GLModuleSystem.py (GLModule.getAutoconfEarlySnippet): Renamed from GLModule.getAutoconfSnippet_Early. * pygnulib/GLImport.py: Update. * pygnulib/GLTestDir.py: Likewise. gnulib-tool.py: Fix section extraction from module descriptions. The code with self.content.split(section)[-1] was broken because it recognizes an indented section label. Similar code with ('\n' + self.content).split('\n' + section)[-1] would still be broken because it recognizes an indented section label in the first line of the file. The code with section_label_regex was broken because sometimes it returns the second-to-last section with the given label, not the last one. Also, whitespace after the colon was not ignored. * pygnulib/GLModuleSystem.py (GLModule.__init__): Dissect the module description's contents immediately, once only, in a reliable way. (GLModule.getDescription, GLModule.getComment): Simplify. (GLModule.getStatus): Simplify. Return a string. (GLModule.getStatuses): New function. Return a list. (GLModule.getNotice, GLModule.getApplicability, GLModule.getFiles, GLModule.getDependencies, GLModules.getAutoconfSnippet_Early, GLModules.getAutoconfSnippet, GLModule.getAutomakeSnippet_Conditional, GLModule.getInclude, GLModule.getLink, GLModule.getLicense_Raw): Simplify. (GLModule.getLicense): Remove whitespace after calling getLicense_Raw. (GLModule.getMaintainer): Simplify. (GLModuleTable.transitive_closure): Call getStatuses() instead of getStatus(). * pygnulib/GLEmiter.py: Likewise. * gnulib-tool.py (main): For --extract-description, --extract-comment, --extract-status, --extract-notice, --extract-autoconf-snippet, --extract-automake-snippet, --extract-include-directive, --extract-link-directive, --extract-maintainer, don't add an extra newline after the snippet. gnulib-tool.py: Improve field naming. * pygnulib/GLModuleSystem.py (GLModule): Rename field 'module' to 'path'. Fix a typo in a TypeError message. gnulib-tool.py: Simplify. * pygnulib/GLModuleSystem.py (GLModule): Convert Windows newlines right after reading the module description, not in every accessor. gnulib-tool.py: Reduce code duplication. * pygnulib/GLModuleSystem.py (GLModule): Declare two regexes are class variables. gnulib-tool.py: Implement option --find. * pygnulib/GLModuleSystem.py (GLModuleSystem.file_is_module): New method. (GLModuleSystem.list): Filter the listing in memory; don't use a 'sed' subprocess. * gnulib-tool.py (main): Handle mode 'find'. gnulib-tool: Fix option --find in combination with option --local-dir. * gnulib-tool (func_prefixed_modules_in_dir): New function. (find): Use it, and filter the directory names away after the 'grep' pass. gnulib-tool.py: Fix some regexes. * pygnulib/GLEmiter.py (GLEmiter.lib_Makefile_am): Use an equivalent regex as gnulib-tool. * pygnulib/GLTestDir.py (GLTestDir.execute): Likewise. gnulib-tool.py: Fix some regex uses. * pygnulib/GLModuleSystem.py (GLModuleTable.transitive_closure): Match the regex against all lines of the snippet, not only the first line. * pygnulib/GLEmiter.py (GLEmiter.autoconfSnippet): Likewise. gnulib-tool.py: Make regex uses more straightforward. * pygnulib/constants.py: Don't use the "minimal matching" *? construct when it makes no difference (because we're matching a single line only and flag re.M is not specified). * pygnulib/GLModuleSystem.py: Likewise. gnulib-tool.py: Make regex uses more straightforward. * pygnulib/GLModuleSystem.py: Don't use flag re.S on regular expressions that are meant to match a single line only, and remove the use of the "minimal matching" *? construct whose only purpose was to neutralize the re.S flag. * pygnulib/GLEmiter.py: Likewise. * pygnulib/GLImport.py: Likewise. * pygnulib/GLTestDir.py: Likewise. gnulib-tool.py: Make regex uses more straightforward. * pygnulib/GLEmiter.py: Don't use flag re.S on regular expressions on regular expressions with no '.'. * pygnulib/GLImport.py: Likewise. 2022-08-06 Bruno Haible gnulib-tool: In the VC files messages, omit the destination directory. This makes these messages consistent with the other "Copying ..." and "Creating ..." messages. * gnulib-tool (func_import): Omit $destdir/ from the "Updating"/ "Creating" messages regarding .gitignore files. * pygnulib/GLImport.py (GLImport._update_ignorelist_): Likewise. gnulib-tool.py: Fix output in --dry-run mode. * pygnulib/GLImport.py (GLImport._update_ignorelist_): In dry-run mode, say "Update", not "Updating". gnulib-tool.py: Finish implementing options --vc-files, --no-vc-files. * gnulib-tool.py (main): Accept options --vc-files, --no-vc-files. * pygnulib/GLImport.py (GLImport.__init__): Correct parsing of gl_VC_FILES directive. (GLImport.gnulib_cache): Don't treat the value False like None. (GLImport.execute): Skip the .gitignore file manipulations if vc_files is False. gnulib-tool.py: Finish implementing option --witness-c-macro. * gnulib-tool.py (main): Accept option --witness-c-macro. * pygnulib/GLConfig.py (GLConfig.__init__): Remove wrong type check of witness_c_macro argument. 2022-08-05 Bruno Haible gnulib-tool.py: Don't initialize local variables too early. * gnulib-tool.py (main): Initialize each local variable in one place. I prefer to have pylint tell me about uninitialized variables than to get the value None at runtime. gnulib-tool.py: Finish implementing option --po-domain. * gnulib-tool.py (main): Accept option --po-domain. * pygnulib/GLEmiter.py (GLEmiter.po_POTFILES_in): Fix variable reference. * pygnulib/GLImport.py (GLImport.execute): Don't delete Makefile.in.in from the gnulib directory. Don't require a shell when invoking wget. After invoking wget, restore the current directory. gnulib-tool.py: Finish implementing option --macro-prefix. * gnulib-tool.py (main): Accept option --macro-prefix. gnulib-tool.py: Refactor --makefile-name option. * gnulib-tool.py (main): Handle option --makefile-name like all other string-valued options. gnulib-tool.py: Implement option --no-libtool. * gnulib-tool.py (main): Accept option --no-libtool. gnulib-tool.py: Remove redundant type checks. * pygnulib/GLConfig.py (GLConfig.__init__): Remove redundant type checks, left over from 2022-08-04. (GLConfig.getIncludeGuardPrefix): Improve comment. (GLConfig.resetMacroPrefix): Optimize. gnulib-tool.py: Refactor --makefile-name option. * gnulib-tool.py (main): Rename variable 'makefile' to 'makefile_name'. * pygnulib/GLConfig.py: Rename attribute 'makefile' to 'makefile_name'. * pygnulib/GLMakefileTable.py: Update. * pygnulib/GLEmiter.py: Likewise. * pygnulib/GLImport.py: Likewise. * pygnulib/GLFileSystem.py (GLFileAssistant): Remove unused assignment. gnulib-tool.py: Fix link_if_changed function. * pygnulib/constants.py (joinpath): Fix comment. (as_link_value_at_dest): New function, extracted from link_relative. (link_relative): Use it. (link_if_changed): Really don't replace the symbolic link if it does not need to change. gnulib-tool.py: Fix 'Unused import' warnings. * gnulib-tool.py: Remove unused imports. * pygnulib/*.py: Likewise. gnulib-tool.py: Fix 'Undefined variable' errors. * pygnulib/constants.py: Import codecs. * pygnulib/GLConfig.py (GLConfig.setLibName): Fix local variable reference. * pygnulib/GLFileSystem.py (GLFileSystem.lookup, GLFileAssistant.update): Fix local variable references. * pygnulib/GLEmiter.py (GLEmiter.po_POTFILES_in): Fix reference. * pygnulib/GLTestDir.py (GLMegaTestDir.execute): Define missing local variables. gnulib-tool.py: Make option --version work. * pygnulib/constants.py (__copyright__): Bump copyright year. * pygnulib/GLInfo.py (GLInfo.authors): Add a comma after the second-to-last author. (GLInfo.copyright): Show only the last modification year. (GLInfo.date): Check whether git and GNU date are available. Use 'git log ChangeLog', not 'git log'. Run 'git log' in the gnulib directory, not in the current directory. Search for 'Date:' only at the beginning of a line. As a fallback, look at the first ChangeLog entry. (GLInfo.version): Check whether git is available. Run git-version-gen in the gnulib directory, not in the current directory. Replace '-dirty' with '-modified'. As a fallback, return the empty string. * gnulib-tool.py (main) [--version]: Add a space before the version. gnulib-tool.py: Simplify. * pygnulib/constants.py (compiler): Remove function. * gnulib-tool.py: Use re.compile directly instead. * pygnulib/*.py: Likewise. 2022-08-04 Bruno Haible gnulib-tool.py: Fix typo. * pygnulib/GLImport.py (GLImport.execute): Actually handle file removals. gnulib-tool.py: Coding style: Revisit line breaks. * gnulib-tool.py: Avoid line breaks at arbitrary points inside expressions. Use line breaks to clarify [... for ...] iterations. * pygnulib/*.py: Likewise. gnulib-tool.py: Simplify boolean setters. * pygnulib/GLConfig.py (setLibtool): New method, replaces enableLibtool and disableLibtool. (setCondDeps): New method, replaces enableCondDeps and disableCondDeps. (setVCFiles): New method, replaces enableVCFiles and disableVCFiles. (setSymbolic): New method, replaces enableSymbolic and disableSymbolic. (setLSymbolic): New method, replaces enableLSymbolic and disableLSymbolic. (setLibtests): New method, replaces enableLibtests and disableLibtests. (setSingleConfigure): New method, replaces enableSingleConfigure and disableSingleConfigure. (setDryRun): New method, replaces enableDryRun and disableDryRun. (setErrors): New method, replaces enableErrors and disableErrors. (__init__): Update. * pygnulib/GLImport.py: Likewise. * pygnulib/GLTestDir.py: Likewise. gnulib-tool.py: Implement options --cache-modules, --no-cache-modules. * gnulib-tool.py (main): Accept options --cache-modules, --no-cache-modules. * pygnulib/GLConfig.py: Remove modcache property and constructor argument. * pygnulib/GLInfo.py (GLInfo.usage): Don't document these no-op options. gnulib-tool.py: Use mainstream/GNU coding style. * gnulib-tool.py: Break lines before the % operator, not after. * pygnulib/*.py: Likewise. Avoid line breaks when the resulting lines are not too long. gnulib-tool.py: Follow gnulib-tool changes, part 24. Follow gnulib-tool change 2017-02-19 Bruno Haible gnulib-tool: Avoid conflict of havelib-tests with --single-configure. * pygnulib/GLTestDir.py (GLTestDir.__init__): Don't allocate the GLModuleTable here. (GLTestDir.execute): Do it here. Avoid havelib-tests when --with-tests --single-configure is specified. gnulib-tool.py: Respect the specified module list. * pygnulib/GLTestDir.py (GLTestDir.execute): Don't remove specific modules (ftruncate, mountlist, etc.) from the specified module list. gnulib-tool.py: Implement option --avoid. * pygnulib/GLModuleSystem.py (GLModuleTable.__init__): Compute the effective avoids list here. (GLModuleTable.transitive_closure, GLModuleTable.add_dummy): Consider the avoids list. * pygnulib/GLImport.py (GLImport.gnulib_cache): Use the avoids list from GLConfig directly. (GLImport.prepare): No need any more to set the avoids list in the GLModuleTable. gnulib-tool.py: Make --with/--without-*-tests handling a little safer. * pygnulib/GLConfig.py (__init__): Fix reset* invocations. setInclTestCategories, setExclTestCategories): Revert to old value if the new value is invalid. 2022-08-03 Bruno Haible gnulib-tool.py: Implement option --single-configure. * gnulib-tool.py (main): Accept option --single-configure. Pass its value to the GLConfig constructor. * pygnulib/GLTestDir.py (GLTestDir.execute): Remove debugging output. gnulib-tool.py: Implement options --without-c++-tests etc. * gnulib-tool.py (main): Accept options --without-c++-tests, --without-longrunning-tests, --without-privileged-tests, --without-unportable-tests. Improve error message for --copy-file with invalid number of arguments. Check for invalid options given in --import, --add-import, --remove-import, --update modes. Pass both sets of test categories to the GLConfig constructor. * pygnulib/GLConfig.py (GLConfig.__init__): Accept incl_test_categories and excl_test_categories instead of testflags. (checkInclTestCategory): Renamed from checkTestFlag. (enableInclTestCategory): Renamed from enableTestFlag. (disableInclTestCategory): Renamed from disableTestFlag. (getInclTestCategories): Renamed from getTestFlags. (setInclTestCategories): Renamed from setTestFlags. (resetInclTestCategories): Renamed from resetTestFlags. (setInclTestCategory, checkExclTestCategory, enableExclTestCategory, disableExclTestCategory, getExclTestCategories, setExclTestCategories, resetExclTestCategories): New methods. * pygnulib/GLModuleSystem.py (GLModuleTable.__init__): Accept two booleans as second and third constructor arguments. (transitive_closure): Correct the determination of whether to include each module, depending on the with-* and without-* options. (transitive_closure_separately): Update. * pygnulib/GLMakefileTable.py: Update. * pygnulib/GLImport.py (__init__, actioncmd, gnulib_cache, execute): Update. * pygnulib/GLTestDir.py (GLTestDir.__init__, GLTestDir.execute, GLMegaTestDir.__init__): Update. gnulib-tool.py: Implement option --without-tests. * gnulib-tool.py (main): Accept option --without-tests. gnulib-tool.py: Fix broken 'for' loop. * gnulib-tool.py (main): Canonicalize inctests before creating the GLConfig. Rewrite a broken 'for' loop. * pygnulib/GLConfig.py (GLConfig.setTestFlags): Remove unused statement. gnulib-tool.py: Follow gnulib-tool changes, part 23. Follow gnulib-tool changes 2016-11-11 Bruno Haible gnulib-tool: Support for the dual "LGPLv3+ or GPLv2" license. 2016-12-02 Nikos Mavrogiannopoulos gnulib-tool (func_import): Adhere to the license guideline ... 2016-12-02 Daiki Ueno gnulib-tool (func_import): Relax the regex ... * gnulib-tool.py: For --lgpl, accept value 3orGPLv2. * pygnulib/GLInfo.py (GLInfo.usage): Update. * pygnulib/GLConfig.py (GLConfig.setLGPL): Update argument check. * pygnulib/GLImport.py (GLImport.__init__, GLImport.gnulib_cache): Update gl_LGPL handling. (GLImport.prepare): Update license compatibility checks and license header rewriting. * pygnulib/GLTestDir.py (GLTestDir.execute): Update license compatibility checks. Handle also the licenses GPLv3+, GPL, LGPLv3+. gnulib-tool.py: Fix unjustified "incompatible license" warnings. * pygnulib/GLTestDir.py (GLTestDir.execute): Don't emit a warning when the dependency module has a license such as "public domain" or "unlimited". gnulib-tool.py: Follow gnulib-tool changes, part 22. Follow gnulib-tool change 2016-10-15 Bruno Haible Avoid gnulib-tool warnings about the dependencies of 'parse-datetime'. * pygnulib/GLModuleSystem.py (GLModule.getLicense): Special-case the 'parse-datetime' module. gnulib-tool.py: Follow gnulib-tool changes, part 21. Follow gnulib-tool change 2016-10-16 Bruno Haible gnulib-tool: Make --create-testdir on all modules work again. * pygnulib/GLTestDir.py (GLTestDir.execute): Don't include the non-recursive-gnulib-prefix-hack module. gnulib-tool.py: Follow gnulib-tool changes, part 20. Follow gnulib-tool changes 2016-01-15 Paul Eggert gnulib-tool: don't assume ln -s works 2016-01-24 Paul Eggert gnulib-tool: don't give up on ln -s so easily 2017-06-08 Bruno Haible gnulib-tool: Fix bug in func_ln_s, from 2016-01-15. * pygnulib/constants.py (symlink_relative): New function. (link_relative): Use it instead of os.symlink. gnulib-tool.py: Avoid errors when writing to a VFAT file system, part 2. * pygnulib/constants.py (movefile): New function. * pygnulib/*.py: Use it instead of shutil. gnulib-tool.py: Avoid errors when writing to a VFAT file system. * pygnulib/constants.py (copyfile, copyfile2): New functions. * gnulib-tool.py: Use them instead of shutil. * pygnulib/*.py: Likewise. gnulib-tool.py: Fix typo. * pygnulib/GLImport.py (GLImport.__init__): Use the relative auxdir as second, not as first argument of joinpath. 2022-07-31 Bruno Haible gnulib-tool.py: Fix typo. * pygnulib/GLTestDir.py (GLMegaTestDir.execute): Invoke os.mkdir as intended. gnulib-tool.py: Improve some error messages. * gnulib-tool.py (main): Write "*** Stop." instead of "*** Exit.". (__main__): Print an error message for GLError 5, 13, 14, 15, 16, 17, 18. * pygnulib/GLError.py (GLError.__repr__): Compute one error message, not 19. gnulib-tool.py: Write errors to stderr, not stdout. * pygnulib/constants.py: Write error messages to stderr, not stdout. gnulib-tool.py: Use mainstream coding style. * pygnulib/GLConfig.py: Use 'raise' to re-throw an exception. gnulib-tool.py: Implement options --symlink and --local-symlink. * gnulib-tool.py (main): Handle options --symlink and --local-symlink. * pygnulib/constants.py (link_if_changed): Ignore FileNotFoundError from os.remove call. gnulib-tool.py: Make --copy-file work. * gnulib-tool.py (main) [copy-file]: Fix reference to uninitialized variable. Fix error handling of os.makedirs. Pass the destdir to the GLFileAssistant. gnulib-tool.py: Allow module arguments to occur at any position. * gnulib-tool.py (main): Collect the non-option arguments in a single list, regardless of their position. Use parse_known_args instead of parse_args, and give an error message about unknown options ourselves. * gnulib-tool: Fix typo in error message. gnulib-tool.py: Make --test behaviour more similar to gnulib-tool. * gnulib-tool.py (main) [test]: Remove space from the testdir name. gnulib-tool: Clarify that --test allows zero module arguments. * gnulib-tool (func_usage): Mark the modules for --test as optional. * pygnulib/GLInfo.py (GLInfo.usage): Likewise. gnulib-tool.py: Make option processing more similar to gnulib-tool. * gnulib-tool.py (main): Allow --add-import and --remove-import with 0 modules. gnulib-tool.py: Improve compliance with GNU standards. * gnulib-tool.py (main): Handle --help and --version before testing for conflicting modes. gnulib-tool.py: Emit error message when conflicting modes are specified. * gnulib-tool.py (main): Fix test of conflicting modes. (Some options produce a value of [], and as a condition, [] evaluates to False.) gnulib-tool.py: Remove most short options. * gnulib-tool.py (main): Reorder the list of options. Remove most short options, for consistency with gnulib-tool. gnulib-tool.py: Follow gnulib-tool changes, part 19. Follow gnulib-tool changes 2015-12-09 Pavel Raiskup gnulib-tool: allow multiple --local-dir usage 2019-02-14 Bruno Haible gnulib-tool: Improve handling of multiple --local-dir options. * gnulib-tool (func_reconstruct_cached_dir): When the argument is absolute, return it unmodified. (func_compute_relative_local_gnulib_path): Renamed from func_count_relative_local_gnulib_path. Add comment. * gnulib-tool.py: Accept multiple --local-dir options and collect the values into localpath. * pygnulib/GLConfig.py: Take a localpath argument instead of a localdir argument. (getLocalDir, setLocalDir, resetLocalDir): Remove methods. (getLocalPath, setLocalPath, resetLocalPath): New methods. * pygnulib/GLFileSystem.py (CopyAction): New class. (GLFileSystem.lookup): Consider all dirs in localpath. (GLFileSystem.shouldLink): New method. (GLFileAssistant): Use shouldLink. * pygnulib/GLModuleSystem.py (GLModuleSystem.exists): Iterate over all dirs in localpath. (GLModuleSystem.list): Likewise. * pygnulib/GLEmiter.py: Update. * pygnulib/GLImport.py (GLImport.__init__): Put the argument of gl_LOCAL_DIR into localpath, not localdir. (GLImport.actioncmd): Consider all dirs in localpath. (GLImport.relative_to_destdir, GLImport.relative_to_currdir): New methods. (GLImport.gnulib_cache): Combine all dirs in localpath. Use self.relative_to_destdir. * pygnulib/GLTestDir.py (GLTestDir.execute): Use shouldLink. gnulib-tool.py: Improve the primitives for relative file names. * pygnulib/constants.py (relativize): Don't attempt to handle absolute file names. Fix bug with relativize('../foo/bar', '../foo/bla/zut'). (relconcat): New function. gnulib-tool.py: Follow gnulib-tool changes, part 18. Follow gnulib-tool change 2005-09-20 Bruno Haible gnulib-tool: Remove trailing slashes * pygnulib/constants.py (remove_trailing_slashes): New function. * pygnulib/GLConfig.py (GLConfig): Use it in the setters. 2022-07-31 Bruno Haible avltree-omap, avltree-oset, avltreehash-list, rbtree-omap: Pacify GCC. * lib/gl_avltree_omap.c (gl_avltree_omap_check_invariants): Add extern decl. * lib/gl_avltree_oset.c (gl_avltree_oset_check_invariants): Likewise. * lib/gl_avltreehash_list.c (gl_avltreehash_list_check_invariants): Likewise. * lib/gl_rbtree_omap.c (gl_rbtree_omap_check_invariants): Likewise. 2022-07-31 Paul Eggert rbtree-oset, rbtreehash-list: Pacify GCC * lib/gl_rbtree_oset.c (gl_rbtree_oset_check_invariants): * lib/gl_rbtreehash_list.c (gl_rbtreehash_list_check_invariants): Add extern decls, to pacify --enable-gcc-warnings with Bison. 2022-07-31 Akim Demaille gnulib-tool: add support for --automake-subdir-tests * gnulib-tool (main): Handle --automake-subdir-tests. (func_emit_shellvars_init, func_emit_lib_Makefile_am): Use $sourcebase when handling tests and --automake-subdir-tests is given. (func_append_actionarg): Support --automake-subdir-tests. (func_create_testdir): Add missing argument for func_emit_initmacro_end. 2022-07-31 Bruno Haible gendocs.sh: Fix error when invoking 'perl' (regression 2022-07-23). * build-aux/gendocs.sh (PERL): Use double-quotes, not single-quotes. 2022-07-30 Bruno Haible gnulib-tool.py: Clean up imports. * gnulib-tool.py: Remove unused constants. * pygnulib/*.py: Likewise. gnulib-tool.py: Assume Python 3. * gnulib-tool.py: Don't allow 'bytes' as an alternative to 'str'. * pygnulib/*.py: Likewise. gnulib-tool.py: Assume Python 3. * gnulib-tool.py: Don't set PYTHON3, string. Use str instead of string. * pygnulib/*.py: Likewise. gnulib-tool.py: Modernize coding style. * pygnulib/*.py: Remove parentheses around raise value expressions. 2022-07-30 Bruno Haible doc: Update regarding bootstrap split. Reported by Paul Smith . * doc/gnulib-tool.texi (gettextize and autopoint): Mention autogen.sh instead of bootstrap. (VCS Issues): Describe three alternative approaches. * doc/gnulib.texi (Developer tools): Mention also autopull.sh and autogen.sh. * top/bootstrap (usage): Fix copy&paste mistake. 2022-07-29 Bruno Haible gnulib-tool.py: Follow gnulib-tool changes, part 17. Follow gnulib-tool change 2015-10-06 Pavel Raiskup gnulib-tool: fix tests of 'extensions' module * pygnulib/GLEmiter.py (GLEmiter.preEarlyMacros): New function. * pygnulib/GLImport.py (GLImport.gnulib_comp): Invoke it. * pygnulib/GLTestDir.py (GLTestDir.execute): Likewise. gnulib-tool.py: Follow gnulib-tool changes, part 16. Follow gnulib-tool change 2015-09-25 Pavel Raiskup gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash * pygnulib/GLImport.py (GLImport.gnulib_comp): Put the gl_USE_SYSTEM_EXTENSIONS right before gl_PROG_AR_RANLIB into gnulib-comp.m4 (if the 'extensions' module is used). gnulib-tool.py: Modernize coding style. * pygnulib/*.py: Remove parentheses around return value expressions. gnulib-tool.py: Modernize the file headers. * pygnulib/*.py: Remove '#!/usr/bin/python' (not needed) and 'encoding: UTF-8' lines (default in Python 3). Add copyright notice. gnulib-tool.py: Use mainstream coding style. * gnulib-tool.py: Clarify the coding style. Fix some pycodestyle warnings. * pygnulib/constants.py: Likewise. * pygnulib/GLEmiter.py: Likewise. * pygnulib/GLImport.py: Likewise. * pygnulib/GLMakefileTable.py: Likewise. 2022-07-29 Bruno Haible gnulib-tool.py: Fix error (regression 2021-04-11). * pygnulib/GLConfig.py (GLConfig.getModuleIndicatorPrefix): Fix code. gnulib-tool.py: Fix warning from Python 3.10.4. * pygnulib/GLModuleSystem.py (getConditionalName): Fix a string substitution expression. gnulib-tool.py: Fix error in Ubuntu 22.04. * gnulib-tool.py: Search for python3 in $PATH. 2022-07-25 Bruno Haible bootstrap: Make the automatic sync more resilient. Reported by Paul Eggert in . * top/bootstrap (bootstrap_sync): Set to true when bootstrap-funclib.sh is not present. * top/gen-bootstrap.sed: Insert a couple of comment lines. * build-aux/bootstrap: Regenerated using "make build-aux/bootstrap". 2022-07-24 Bruno Haible Fix comment. Reported by Paul Eggert in . * top/bootstrap-funclib.sh: Fix comment about canonical location. * top/autopull.sh: Likewise. * top/autogen.sh: Likewise. * top/bootstrap: Likewise. Split bootstrap into autopull.sh and autogen.sh. * top/bootstrap-funclib.sh: New file, based on build-aux/bootstrap. * top/autopull.sh: New file, based on build-aux/bootstrap. * top/autogen.sh: New file, based on build-aux/bootstrap. * top/bootstrap: New file, based on build-aux/bootstrap. * top/gen-bootstrap.sed: New file. * Makefile (build-aux/bootstrap): New rule. (regen): Depend on it. * build-aux/bootstrap: Regenerated using "make build-aux/bootstrap". 2022-07-24 Bruno Haible bootstrap: Obey another environment variable GNULIB_REFDIR. * build-aux/bootstrap (usage): Document option --gnulib-refdir and environment variable GNULIB_REFDIR. Accept option --gnulib-refdir. When GNULIB_SRCDIR is specified, verify that it denotes a directory. Use $GNULIB_REFDIR, not $GNULIB_SRCDIR, as argument to git's --reference option. Improve an error message. * NEWS: Mention the change. 2022-07-23 Bruno Haible Fix a couple of ShellCheck warnings. * MODULES.html.sh (sed_escape_slash): Remove unused variable. * build-aux/bootstrap: Avoid computed printf format strings. * build-aux/do-release-commit-and-tag: Likewise. * build-aux/gendocs.sh: Likewise. * build-aux/declared.sh: Fix "unrecognized option" message. * gnulib-tool (supplied_opts): Remove unused variable. (--single-con): Remove redundant option recognition. * tests/test-parse-duration.sh (nl): Remove unused variable. * tests/test-update-copyright.sh: Use double-quotes instead of single-quotes. 2022-07-23 Bruno Haible Avoid DoS vulnerability through unsafe default assignment. See https://www.shellcheck.net/wiki/SC2223 . * MODULES.html.sh (func_tmpdir): Surround default assignment with double-quotes. * build-aux/bootstrap: Likewise. * build-aux/csharpcomp.sh.in (func_tmpdir): Likewise. * build-aux/gendocs.sh: Likewise. * build-aux/libtool-next-version (func_tmpdir): Likewise. * config/srclist-update: Likewise. * gnulib-tool (func_tmpdir): Likewise. * posix-modules (func_tmpdir): Likewise. * tests/test-atexit.sh: Likewise. * tests/test-btoc32-1.sh: Likewise. * tests/test-btoc32-2.sh: Likewise. * tests/test-btowc1.sh: Likewise. * tests/test-btowc2.sh: Likewise. * tests/test-c-dtoastr.sh: Likewise. * tests/test-c-ldtoastr.sh: Likewise. * tests/test-c-snprintf.sh: Likewise. * tests/test-c-strcase.sh: Likewise. * tests/test-c-vasprintf.sh: Likewise. * tests/test-c-vsnprintf.sh: Likewise. * tests/test-c-xvasprintf.sh: Likewise. * tests/test-c32isalnum.sh: Likewise. * tests/test-c32isalpha.sh: Likewise. * tests/test-c32isblank.sh: Likewise. * tests/test-c32iscntrl.sh: Likewise. * tests/test-c32isdigit.sh: Likewise. * tests/test-c32isgraph.sh: Likewise. * tests/test-c32islower.sh: Likewise. * tests/test-c32isprint.sh: Likewise. * tests/test-c32ispunct.sh: Likewise. * tests/test-c32isspace.sh: Likewise. * tests/test-c32isupper.sh: Likewise. * tests/test-c32isxdigit.sh: Likewise. * tests/test-c32rtomb.sh: Likewise. * tests/test-c32snrtombs-1.sh: Likewise. * tests/test-c32snrtombs-2.sh: Likewise. * tests/test-c32snrtombs-3.sh: Likewise. * tests/test-c32snrtombs-4.sh: Likewise. * tests/test-c32srtombs-1.sh: Likewise. * tests/test-c32srtombs-2.sh: Likewise. * tests/test-c32srtombs-3.sh: Likewise. * tests/test-c32srtombs-4.sh: Likewise. * tests/test-c32stombs-1.sh: Likewise. * tests/test-c32stombs-2.sh: Likewise. * tests/test-c32stombs-3.sh: Likewise. * tests/test-c32stombs-4.sh: Likewise. * tests/test-closein.sh: Likewise. * tests/test-copy-acl.sh (func_tmpdir): Likewise. * tests/test-copy-file.sh (func_tmpdir): Likewise. * tests/test-dprintf-posix.sh: Likewise. * tests/test-execl.sh: Likewise. * tests/test-execle.sh: Likewise. * tests/test-execlp.sh: Likewise. * tests/test-execv.sh: Likewise. * tests/test-execve.sh: Likewise. * tests/test-execvp.sh: Likewise. * tests/test-execvpe.sh: Likewise. * tests/test-file-has-acl.sh (func_tmpdir): Likewise. * tests/test-fprintf-posix.sh: Likewise. * tests/test-init.sh: Likewise. * tests/test-iswdigit.sh: Likewise. * tests/test-iswxdigit.sh: Likewise. * tests/test-mbmemcasecmp1.sh: Likewise. * tests/test-mbmemcasecmp2.sh: Likewise. * tests/test-mbmemcasecmp3.sh: Likewise. * tests/test-mbmemcasecoll1.sh: Likewise. * tests/test-mbmemcasecoll2.sh: Likewise. * tests/test-mbmemcasecoll3.sh: Likewise. * tests/test-mbrtoc32-1.sh: Likewise. * tests/test-mbrtoc32-2.sh: Likewise. * tests/test-mbrtoc32-3.sh: Likewise. * tests/test-mbrtoc32-4.sh: Likewise. * tests/test-mbrtowc1.sh: Likewise. * tests/test-mbrtowc2.sh: Likewise. * tests/test-mbrtowc3.sh: Likewise. * tests/test-mbrtowc4.sh: Likewise. * tests/test-mbscasecmp.sh: Likewise. * tests/test-mbscasestr2.sh: Likewise. * tests/test-mbscasestr3.sh: Likewise. * tests/test-mbscasestr4.sh: Likewise. * tests/test-mbschr.sh: Likewise. * tests/test-mbscspn.sh: Likewise. * tests/test-mbsinit.sh: Likewise. * tests/test-mbsncasecmp.sh: Likewise. * tests/test-mbsnrtoc32s-1.sh: Likewise. * tests/test-mbsnrtoc32s-2.sh: Likewise. * tests/test-mbsnrtoc32s-3.sh: Likewise. * tests/test-mbsnrtoc32s-4.sh: Likewise. * tests/test-mbsnrtowcs1.sh: Likewise. * tests/test-mbsnrtowcs2.sh: Likewise. * tests/test-mbsnrtowcs3.sh: Likewise. * tests/test-mbsnrtowcs4.sh: Likewise. * tests/test-mbspbrk.sh: Likewise. * tests/test-mbspcasecmp.sh: Likewise. * tests/test-mbsrchr.sh: Likewise. * tests/test-mbsrtoc32s-1.sh: Likewise. * tests/test-mbsrtoc32s-2.sh: Likewise. * tests/test-mbsrtoc32s-3.sh: Likewise. * tests/test-mbsrtoc32s-4.sh: Likewise. * tests/test-mbsrtowcs1.sh: Likewise. * tests/test-mbsrtowcs2.sh: Likewise. * tests/test-mbsrtowcs3.sh: Likewise. * tests/test-mbsrtowcs4.sh: Likewise. * tests/test-mbsspn.sh: Likewise. * tests/test-mbsstr2.sh: Likewise. * tests/test-mbsstr3.sh: Likewise. * tests/test-mbstoc32s-1.sh: Likewise. * tests/test-mbstoc32s-2.sh: Likewise. * tests/test-mbstoc32s-3.sh: Likewise. * tests/test-mbstoc32s-4.sh: Likewise. * tests/test-nl_langinfo.sh: Likewise. * tests/test-parse-duration.sh (func_tmpdir): Likewise. * tests/test-perror.sh: Likewise. * tests/test-printf-posix.sh: Likewise. * tests/test-set-mode-acl.sh (func_tmpdir): Likewise. * tests/test-setlocale1.sh: Likewise. * tests/test-strtod1.sh: Likewise. * tests/test-strtold1.sh: Likewise. * tests/test-unicodeio2.sh: Likewise. * tests/test-unicodeio3.sh: Likewise. * tests/test-vasnprintf-posix2.sh: Likewise. * tests/test-vc-list-files-cvs.sh: Likewise. * tests/test-vc-list-files-git.sh: Likewise. * tests/test-vdprintf-posix.sh: Likewise. * tests/test-vfprintf-posix.sh: Likewise. * tests/test-vprintf-posix.sh: Likewise. * tests/test-wcrtomb.sh: Likewise. * tests/test-wcsnrtombs1.sh: Likewise. * tests/test-wcsnrtombs2.sh: Likewise. * tests/test-wcsnrtombs3.sh: Likewise. * tests/test-wcsnrtombs4.sh: Likewise. * tests/test-wcsrtombs1.sh: Likewise. * tests/test-wcsrtombs2.sh: Likewise. * tests/test-wcsrtombs3.sh: Likewise. * tests/test-wcsrtombs4.sh: Likewise. * tests/test-xprintf-posix.sh: Likewise. * tests/test-xstrtoimax.sh: Likewise. * tests/test-xstrtol.sh: Likewise. * tests/test-xstrtoll.sh: Likewise. * tests/test-xstrtoumax.sh: Likewise. * tests/test-yesno.sh: Likewise. * tests/unicase/test-locale-language.sh: Likewise. * tests/unicase/test-ulc-casecmp1.sh: Likewise. * tests/unicase/test-ulc-casecmp2.sh: Likewise. * tests/unicase/test-ulc-casecoll1.sh: Likewise. * tests/unicase/test-ulc-casecoll2.sh: Likewise. * tests/unigbrk/test-ulc-grapheme-breaks.sh: Likewise. * tests/unistdio/test-u16-vasnprintf2.sh: Likewise. * tests/unistdio/test-u16-vasnprintf3.sh: Likewise. * tests/unistdio/test-u32-vasnprintf2.sh: Likewise. * tests/unistdio/test-u32-vasnprintf3.sh: Likewise. * tests/unistdio/test-u8-vasnprintf2.sh: Likewise. * tests/unistdio/test-u8-vasnprintf3.sh: Likewise. * tests/unistdio/test-ulc-vasnprintf2.sh: Likewise. * tests/unistdio/test-ulc-vasnprintf3.sh: Likewise. * tests/uniwbrk/test-ulc-wordbreaks.sh: Likewise. * tests/uniwidth/test-uc_width2.sh: Likewise. 2022-07-18 Bruno Haible bootstrap: Comments. * build-aux/bootstrap: Comment about two unused variables. 2022-07-17 Bruno Haible doc: Update README. * doc/README: Fix stale links (reported by Tzvetelin Katchov). Clarify the relation to build-aux/gnu-web-doc-update. 2022-07-14 Bruno Haible doc: Fix typo. Reported by Eric Gallager in . * doc/posix-functions/mmap.texi: Add parenthesis. 2022-07-12 Paul Eggert parse-datetime: improve doc for TZ="<-07>7" etc. * doc/parse-datetime.texi (Specifying time zone rules): Give examples of POSIX TZ strings that specify UTC offsets (Bug#56524). 2022-07-10 Bruno Haible sigsegv: Optimize stackvma implementation for AIX 7. Reported by Neha Jain in via Eric Blake. * lib/stackvma.c: For AIX, add implementation that uses /proc/$pid/map, based on lib/vma-iter.c. (sigsegv_get_vma): Use it on AIX 7 or higher. 2022-07-10 Bruno Haible vma-iter: Add support for AIX 7. * lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define also on AIX. * lib/vma-iter.c (vma_iterate): Add code for AIX, known to work on AIX 7. * lib/get-rusage-as.c: Update comments. * lib/get-rusage-data.c: Likewise. * tests/test-get-rusage-as.c (main): Take into account the special address space organization on AIX in 32-bit mode. 2022-07-10 Bruno Haible iconv: Define a summary result. Reported by Simon Josefsson in . * m4/iconv.m4 (AM_ICONV): Define also am_cv_func_iconv_summary. 2022-07-10 Bruno Haible iconv: Remove obsolete comment. * m4/iconv.m4 (AM_ICONV): Remove comment that is obsolete since 2020-08-16. 2022-07-10 Bruno Haible announce-gen: Fix internationalization in verification instructions. * build-aux/announce-gen: Set LC_ALL, not LANG, to "C", to force English output from gpg. 2022-07-10 Bruno Haible lib-symbol-visibility: Improve documentation. * doc/lib-symbol-visibility.texi: Tweak BUILDING_SHARED snippet. 2022-07-10 Bruno Haible doc: Mark Minix as no longer tested. Rationale: No commits since 2018 at https://git.minix3.org/. Reported by Paul Eggert and Jim Meyering in . * doc/gnulib-intro.texi (Supported Platforms): Mark Minix as no longer tested. 2022-07-09 Jim Meyering announce-gen: better diagnose some usage errors * build-aux/announce-gen (main): Erroneous usage would elicit a misleading diagnostic. When --gnulib-version=V was specified: - without --bootstrap_tools, or - with --bootstrap_tools, but without listing "gnulib" as a tool we would give an inappropriate diagnostic. Now, each diagnostic is tailored to the precise erroneous condition. Reported by Bruno Haible in https://lists.gnu.org/r/bug-gnulib/2022-01/msg00025.html 2022-07-09 Simon Josefsson git-version-gen: Doc fix. Reported by Reuben Thomas in . * build-aux/git-version-gen (usage): Replace incorrect text with bug report instructions. 2022-07-09 Simon Josefsson announce-gen: Improve GnuPG verification instructions. * build-aux/announce-gen: Add GPG fingerprint to output, and a pointer to GNU keyring. 2022-07-08 Simon Josefsson lib-symbol-visibility: Improve documentation. * doc/lib-symbol-visibility.texi: Include BUILDING_SHARED snippet suggested by Bruno Haible. 2022-07-04 Bruno Haible havelib: Fix 'configure --help' output. * m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Fix m4 quoting bug. 2022-07-03 Bruno Haible lib-symbol-visibility: Improve documentation. Reported by Vivien Kraus in . * doc/lib-symbol-visibility.texi: List the platforms. Extend the LIBFOO_DLL_EXPORTED to work also with mingw and also with --disable-shared. 2022-07-03 Bruno Haible supersede: Support the file name "/dev/null" on native Windows. * lib/supersede.c (open_supersede): On native Windows, map "/dev/null" to "NUL". 2022-06-23 Jim Meyering maint.mk: fix syntax-check for unnecessary hash.h header use * top/maint.mk (_hash_re): Correct the regexp. It had two problems: - lacked the "hash_" prefix, so would match non-uses - failed to detect uses of the hash_x?initialize functions The former led to an excess/unneeded use of hash.h in coreutils' cut.c. The latter would have led to a FP "not needed" report for copy.c. 2022-06-22 Bruno Haible fchmodat: Fix test failure on native Windows. * modules/fchmodat (Depends-on): Add 'chmod'. 2022-06-22 Bruno Haible chmod: Add tests. * tests/test-chmod.c: New file, based on tests/test-lchmod.c. * modules/chmod-tests: New file. chmod: New module. * lib/sys_stat.in.h (chmod): Declare when GNULIB_CHMOD is 1. * lib/chmod.c: New file, based on lib/lchmod.c. * m4/chmod.m4: New file, based on m4/fchmodat.m4. * m4/sys_stat_h.m4 (gl_SYS_STAT_H): Test whether chmod is declared. (gl_SYS_STAT_H_REQUIRE_DEFAULTS): Initialize GNULIB_CHMOD. (gl_SYS_STAT_H_DEFAULTS): Initialize REPLACE_CHMOD. * modules/sys_stat (Makefile.am): Substitute GNULIB_CHMOD, REPLACE_CHMOD. * modules/chmod: New file, based on modules/lchmod. * doc/posix-functions/chmod.texi: Mention the new module and the problems on IRIX and Windows. 2022-06-21 Bruno Haible lchmod: Simplify. * lib/lchmod.c: Remove unnecessary include, obsolete since 2020-02-23. 2022-06-20 Bruno Haible javacomp-script, javaexec-script: Add support for disabling Java. * m4/javacomp.m4 (gt_JAVACOMP_DISABLED): New macro. * m4/javaexec.m4 (gt_JAVAEXEC_DISABLED): New macro. 2022-06-19 Paul Eggert lchmod: port back to AIX 7.2 Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2022-06/msg00075.html * lib/lchmod.c: Include string.h, for strlen. (lchmod): Do not depend on HAVE_READLINK since we now depend on the readlink module. Check for AIX 7.2 bug. * m4/lchmod.m4 (gl_PREREQ_LCHMOD): Do not check for readlink since we now depend on the readlink module. * modules/lchmod (Depends-on): Depend on readlink. fchmodat: pacify gcc -Wunused-variable Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2022-06/msg00075.html * lib/fchmodat.c (fchmodat): Remove unused local. 2022-06-19 Bruno Haible getlogin, getlogin_r tests: Really avoid test failure. Reported by Letu Ren in . * tests/test-getlogin.h (test_getlogin_result): Parse the contents of /proc/self/loginuid as an unsigned integer. 2022-06-12 Paul Eggert fchmodat: port better to MS-Windows etc. MS-Windows problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2022-06/msg00041.html Although I don’t use MS-Windows I see some related fstatat etc. problems and am trying to fix them with this further patch. * lib/fchmodat.c (fchmodat): * lib/lchmod.c (lchmod): * lib/lchown.c (lchown) [!HAVE_LCHOWN && HAVE_CHOWN && !CHOWN_MODIFIES_SYMLINK]: * lib/renameatu.c (renameatu) [HAVE_RENAME && RENAME_TRAILING_SLASH_SOURCE_BUG]: Use readlinkat/readlink instead of fstatat/lstat to test merely whether a string names a symlink, as this avoids problems with EOVERFLOW. Also, I hope it works around the MS-Windows issues that Bruno noted. * m4/fchmodat.m4 (gl_PREREQ_FCHMODAT): Check for readlinkat, not lchmod. * m4/lchmod.m4 (gl_FUNC_LCHMOD): Do not require AC_CANONICAL_HOST or check for lstat. (gl_PREREQ_LCHMOD): Check for readlink. * modules/lchown (Depends-on): Add readlink. Do not depend on lstat merely because !HAVE_LCHOWN. * modules/renameatu (Depends-on): Add fstatat, readlinkat. 2022-06-12 Bruno Haible doc: Update O_PATH platforms list. * doc/posix-headers/fcntl.texi: Update O_PATH platforms list. 2022-06-11 Paul Eggert fcntl: document O_PATH * doc/posix-headers/fcntl.texi: Mention O_PATH. fchmodat: port to old Linux kernel + newer headers Problem reported by Lance Fredrickson in: https://lists.gnu.org/r/bug-gnulib/2022-06/msg00038.html * lib/fchmodat.c (fchmodat): * lib/lchmod.c (lchmod): Do not rely on AT_EMPTY_PATH as to whether syscalls work on ""; instead, if a call fails with ENOENT assume that those syscalls do not work. Do not use fstatat to determine whether a file is a symlink, as this has problems with EOVERFLOW. Use readlinkat instead, and if it fails with EINVAL then the file is not a symlink. Remove #if tests on __linux__ || __ANDROID__ || __CYGWIN__ as this has been a maintenance hassle and it’s unlikely these days that a new platform would #define O_PATH without also either supporting /proc or keeping it absent. * modules/fchmodat (Depends-on): Remove fstatat. There should be no need for either fchmodat or lchmod to depend on readlinkat, since they use readlinkat only in contexts where it should work without Gnulib intervention. 2022-06-06 Bruno Haible fopen-gnu: Make this module work again (regression 2022-01-03). Reported by Nelson H. F. Beebe in . * modules/fopen-gnu (configure.ac): Invoke gl_STDIO_MODULE_INDICATOR. 2022-06-06 Bruno Haible getlogin, getlogin_r tests: Avoid test failure in specific environments. Reported by Letu Ren in . * modules/getlogin-tests (Depends-on): Add stdbool. * modules/getlogin_r-tests (Depends-on): Likewise. * tests/test-getlogin.h: Include stdbool.h. (test_getlogin_result): On Linux, skip the test if /proc/self/loginuid contains "-1". 2022-06-05 Bruno Haible doc: Add section to attract more people towards the GNU project. Inspired by a suggestion from José E. Marchesi on the gnu-prog-discuss mailing list. * doc/join-gnu.texi: New file. * doc/gnulib-readme.texi: Include it. 2022-06-05 Bruno Haible doc: Fix warnings about regex chapter structure (regression 2022-05-15). * doc/regex.texi (GNU Operators): Fix menu. 2022-06-04 Paul Eggert regex-quote: \} -> } in EREs * lib/regex-quote.c (ere_special): Don’t use \} in EREs, as POSIX says the interpretation is undefined. * tests/test-regex-quote.c (test_bre, test_ere): Add tests for }. dfa: do not warn about \] and \} * lib/dfa.c (lex): Do not warn about \] and \}, since they’re surely universally supported even though POSIX says their interpretation is undefined. 2022-06-03 Paul Eggert regex-quote: \] -> ] in EREs and BREs * build-aux/bootstrap: * build-aux/bootstrap.conf (gettext_external): * check-AC_LIBOBJ: * lib/regex-quote.c (bre_special, ere_special): * gnulib-tool (func_modules_transitive_closure) (func_emit_autoconf_snippet, func_import, func_create_testdir): * tests/test-regex-quote.c (test_bre, test_ere): * top/maint.mk (longopt_re, gpg_key_ID): Don’t use \] in BREs and EREs, as POSIX says the interpretation is undefined. filevercmp: don’t treat entire filename as suffix Problem reported by Artém S. Tashkinóv in: https://lists.gnu.org/r/bug-gnulib/2022-06/msg00012.html * lib/filevercmp.c (file_prefixlen): When stripping (\.[A-Za-z~][A-Za-z0-9~]*)*$ suffixes, do not strip the entire file name. * tests/test-filevercmp.c (examples): Adjust to match new behavior. 2022-06-03 Bruno Haible setlocale: Update after Turkey changed its name. * lib/setlocale.c: Update comments. 2022-05-25 Karl Berry doc: regex.texi deleted the node GNU Emacs Operators * doc/gnulib.texi (Regular expression): remove "GNU Emacs Operators" from the @menu, since the node no longer exists in regex.texi. 2022-05-24 Paul Eggert dfa: new options DFA_STAR_WARN, DFA_PLUS_WARN This lets ‘grep -E '(*a|+b)'’ warn about the * and the +. * lib/dfa.h (DFA_STAR_WARN, DFA_PLUS_WARN): New flags. * lib/dfa.c (lex): Support them. 2022-05-23 Paul Eggert dfa: '\n' is not governed by RE_LIMITED_OPS * lib/dfa.c (lex): Pay no attention to RE_LIMITED_OPS when deciding how to parse '\n', since regcomp.c doesn’t. dfa: new option DFA_STRAY_BACKSLASH_WARN This is for grep, which wants to warn about stray backslashes that lead to unspecified behavior. For example, "grep -oi '\a'" surprisingly is not equivalent to "grep -oi 'a'", so the stray backslash should be warned about. * lib/dfa.c: Include wctype.h, for iswprint and iswspace. (lex): Add support for DFA_STRAY_BACKSLASH_WARN. * lib/dfa.h (DFA_STRAY_BACKSLASH_WARN): New constant. dfa: new option DFA_CONFUSING_BRACKETS_ERROR This is for grep, which wants [:alpha:] to be an error at the top level. * lib/dfa.c (struct regex_syntax): New member dfaopts, replacing anchor. All uses changed. (parse_bracket_exp): Error, not warn, if DFA_CONFUSING_BRACKETS_ERROR. * lib/dfa.h (DFA_CONFUSING_BRACKETS_ERROR): New constant. 2022-05-21 Paul Eggert strstr-simple: pacify GCC 12.1 * lib/str-two-way.h (two_way_long_needle): Pacify GCC 12.1 -Wsuggest-attribute=pure (x86-64, -O2). 2022-05-20 Paul Eggert dfa: steer cleer of POSIX-reserved symbols * lib/dfa.c (str_eq): Rename from streq. All uses changed. (c_isdigit): Rename from isasciidigit. The function worked in EBCDIC so it wasn’t ASCII-specific anyway. All uses changed. 2022-05-17 Paul Eggert parse-datetime: support 'J' military time zone Requested by Brian Inglis in: https://savannah.gnu.org/support/?110644 * lib/parse-datetime.y (parser_control): New member J_zones_seen. (item): New item 'J'. (military_table): Add 'J'. (parse_datetime_body): Set and use J_zones_seen. * tests/test-parse-datetime.c (main): Test "J". 2022-05-15 Reuben Thomas doc: Update regex documentation to match implementation. * doc/regex.texi: remove Emacs-specific documentation; match code. Remove mention of both Emacs and non-Emacs syntax tables, as these are no longer supported by the code. Document the word character class (alnum + _). Add documentation for \s and \S. Replace mentions of #defining emacs with RE_NO_GNU_OPS (which takes effect in the opposite sense); merge the node “GNU Emacs Operators” into “GNU Operators”. For \` and \', refer to the “whole string” rather than the (Emacs) “buffer”. 2022-05-15 Bruno Haible string, wchar: Fix compilation error on MSVC (regression 2021-09-07). * lib/string.in.h (free): For MSVC, add the dllimport specification if the MSVC headers have it. * lib/wchar.in.h (free): Likewise. 2022-05-14 Bruno Haible glob tests: Fix a warning (regression from 2022-03-23). * tests/test-glob.c: Include . * modules/glob-tests (Depends-on): Add fcntl-h. 2022-05-14 Bruno Haible termcap: Fix link error when no suitable library is found. * m4/termcap.m4 (gl_TERMCAP_BODY): If no suitable library is found, set LIBTERMCAP and LTLIBTERMCAP to empty. 2022-05-13 Paul Eggert dfa: fix bug with ‘.’ and UTF-8 Hangul Syllables This fixes a bug introduced in 2019-12-18T05:41:27Z!eggert@cs.ucla.edu, an earlier patch that fixed dfa.c to not match invalid UTF-8. Unfortunately that patch had a couple of typos when dfa.c is matching against the regular expression ‘.’ (dot). One typo caused dfa.c to incorrectly reject the valid UTF-8 sequences (ED)(90-9F)(80-BF) corresponding to U+D400 through U+D7FF, which are some Hangul Syllables and Hangul Jamo Extended-B. The other typo caused dfa.c to incorrectly reject the valid sequences (F4)(88-8F)(80-BF)(80-BF) which correspond to U+108000 through U+10FFFF (Supplemental Private Use Area plane B). * lib/dfa.c (utf8_classes): Fix typos. * tests/test-dfa-match.sh: Test the fix. 2022-05-12 Paul Eggert manywarnings: update C warnings for GCC 12 Adjust for C programs compiled by GCC 12. (A C++ expert still needs to look at manywarnings-c++.m4.) * build-aux/gcc-warning.spec: Add warnings introduced in GCC 12. * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wbidi-chars=any,ucn and -Wuse-after-free=3. Although not enabled by -Wall or -Wextra they seem suitable for Gnulib-using C code. 2022-05-11 Paul Eggert parse-datetime: remove Emacs cruft * lib/parse-datetime.y: Remove an ‘ifdef emacs’. Emacs has never used this module. The module is derived from code taken from Emacs, but that code was removed from Emacs in the 1990s. 2022-05-11 Bruno Haible alloca: Remove old code for Emacs, unused since 2009. Reported by Reuben Thomas in . * lib/alloca.c: Remove Emacs specific code. 2022-05-05 Paul Eggert libc-config: update to match cdefs * lib/libc-config.h (__attribute_alloc_align__) (__attribute_maybe_unused, __fortified_attr_access) (__glibc_fortify, __glibc_fortify_n, __glibc_likely) (__glibc_safe_len_cond, __glibc_safe_or_unknown_len) (__glibc_unsafe_len, __glibc_unsigned_or_positive, __wur): Undef these too, since lib/cdefs.h now defines them unconditionally. cdefs: merge from glibc * lib/cdefs.h (__glibc_safe_or_unknown_len): Use glibc’s newer version. 2022-05-02 Paul Eggert gettime-res: help the compiler * lib/gettime-res.c (gettime_res): Pacify GCC versions that incorrectly complain about earlier.tv_sec not being initialized. Let GCC know that gcd args are always positive. af_alg: port to Ubuntu 22.04 Without this patch, maintainer builds of coreutils fail on Ubuntu 22.04 with diagnostics like "./lib/gl_openssl.h:79:1: error: 'MD5_Init' is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations]". From it appears that Gnulib needs to either define OPENSSL_API_COMPAT to a version less than 3.0, or use a compatibility layer, or assume OpenSSL 1.1.0 or later. The simplest workaround is to define OPENSSL_API_COMPAT for 1.1.1, the oldest OpenSSL release still supported. A better fix would be to rewrite the code to assume OpenSSL 1.1.1 or later, and stop using the older API. * lib/md5.h, lib/sha1.h, lib/sha256.h, lib/sha512.h, lib/sm3.h: Define OPENSSL_API_COMPAT to 0x10101000L to suppress the deprecation warnings on Ubuntu 22.04. 2022-05-01 Paul Eggert vasnprintf: Simplify. Reduce binary code size. * lib/vasnprintf.c (VASNPRINTF): Coalesce cleanup code. vasnprintf: Simplify 'result' variable. * lib/vasnprintf.c (VASNPRINTF): Simplify initialization and test of 'result' variable. vasnprintf: Simplify a free() call. * lib/vasnprintf.c (divide): Just call free (x) instead of doing ‘if (x != NULL) free (x);’. 2022-04-30 Bruno Haible string: Avoid syntax error on glibc systems with GCC 11. Reported by Tom Tromey in and by Satadru Pramanik in . * lib/string.in.h (strndup): Don't rededeclare strndup if it is defined as a macro. 2022-04-28 Simon Marchi (tiny change) stdlib: Fix error in C++ mode on glibc systems (regr. 2022-04-13). * lib/stdlib.in.h (free): Add exception specification like glibc does. 2022-04-28 Paul Eggert glob: improve config and test cleanup Config problem reported by Benno Schulenberg in: https://lists.gnu.org/r/bug-gnulib/2022-04/msg00071.html * m4/glob.m4 (gl_GLOB): Clean up temporary file. Also, name it conf$$-file not conf-file, so it’s cleaned up on interrupt. * modules/glob-tests (MOSTLYCLEANFILES): Append test-glob.tglobfile, test-glob.tgloblink[123]. 2022-04-26 Paul Eggert glob: port to NetBSD 9.2 Problem reported by Benno Schulenberg in: https://lists.gnu.org/r/bug-gnulib/2022-04/msg00052.html * doc/posix-functions/dirfd.texi: Document NetBSD 9.2 portability bugs. Remove an old comment about errno that is no longer true of POSIX 2018. * lib/glob.c (glob_in_dir): Convert dirfd arg from void * to DIR * before passing it to dirfd. 2022-04-21 Paul Eggert regex: match [...---...] like V7 grep Problem reported by Arnold Robbins in: https://bugs.gnu.org/20657 https://lists.gnu.org/r/bug-gnulib/2022-04/msg00053.html * lib/regcomp.c (peek_token_bracket): Let [...---...] match '-'. This is an extension to POSIX, and matches V7 Unix grep. 2022-04-20 Paul Eggert backupfile: fix bug when renaming simple backups * lib/backupfile.c (backupfile_internal): Fix bug when RENAME and when doing simple backups. Problem reported by Steve Ward in: https://bugs.gnu.org/55029 gettime-res: more-robust sampling * lib/gettime-res.c (gettime_res): If adjacent timestamps are identical search for a differing timestamp. Also, stop collecting samples thereafter since they surely won’t help. 2022-04-19 Paul Eggert Port _GL_HAS_C_ATTRIBUTE to pedantic gcc -std=c99 * m4/gnulib-common.m4 (_GL_HAS_C_ATTRIBUTE): Disable -Wpedantic if using __has_c_attribute and this is not C2x. verify: port to pedantic gcc -std=c99 * lib/verify.h (_GL_VERIFY): If we lack both _Static_assert and static_assert, suppress -Wnexted-externs. gettime-res: add tests * modules/gettime-res-tests, tests/test-gettime-res.c: New files. 2022-04-16 Paul Eggert verify: port to Mac OS 10.7.5 Mac OS 10.7.5 clang sets __clang_major__ to 4 even though it was derived from Clang 3.2. Problem reported by Werner Lemberg in: https://lists.gnu.org/r/emacs-devel/2022-04/msg00779.html * lib/verify.h (_GL_HAVE__STATIC_ASSERT): Don’t define to 1 when __clang_major__ == 4 && !__cplusplus && __STDC_VERSION__ < 201112L && !defined __STRICT_ANSI__. 2022-04-15 Bruno Haible sigsegv: Fix compilation error on arceb CPUs. Reported by Fabrice Fontaine in . * m4/stack-direction.m4 (SV_STACK_DIRECTION): Treat the 'arc' variants like 'arc'. 2022-04-13 Bruno Haible string, wchar: Fix error in C++ mode on glibc systems with clang. * lib/string.in.h (free): Add exception specification like glibc does. * lib/wchar.in.h (free): Likewise. 2022-04-13 Bruno Haible string: Fix errors in C++ mode on glibc systems with clang. * lib/string.in.h (memchr, memrchr, rawmemchr, strchrnul, strpbrk, strstr, strcasestr): Use _GL_CXXALIASWARN1 also with clang, and add exception specification. 2022-04-13 Bruno Haible math: Fix errors in C++ mode on glibc systems with clang. * lib/math.in.h (GNULIB_NAMESPACE_LACKS_ISFINITE, GNULIB_NAMESPACE_LACKS_ISINF, GNULIB_NAMESPACE_LACKS_ISNAN, GNULIB_NAMESPACE_LACKS_SIGNBIT): New macros. * tests/test-math-c++.cc (isfinite): Skip test if GNULIB_NAMESPACE_LACKS_ISFINITE is 1. (isinf): Skip test if GNULIB_NAMESPACE_LACKS_ISINF is 1. (isnan): Skip test if GNULIB_NAMESPACE_LACKS_ISNAN is 1. (signbit): Skip test if GNULIB_NAMESPACE_LACKS_SIGNBIT is 1. 2022-04-08 Paul Eggert libgmp: pacify Clang too * lib/mini-gmp-gnulib.c [NDEBUG]: Also use -Wunused-variable if clang. Problem reported for Emacs by Mattias Engdegård. 2022-04-04 Paul Eggert init.sh: don’t assume gzip * tests/init.sh (rand_bytes_): Don’t assume gzip is installed. I found this while testing gzip installation on a platform where I had removed the installed gzip. gzip is executed only on platforms lacking mktemp and /dev/urandom so this code is rarely used; however, these platforms might also lack gzip since gzip is neither specified by POSIX or required by the GNU Coding Standards. 2022-03-30 Paul Eggert glob: sync better with glibc * lib/glob.c (dirfd) [_LIBC]: Use #undef instead of #ifdef. Problem reported by DJ Delorie. 2022-03-23 Paul Eggert glob: test for glibc bug 25659 https://sourceware.org/bugzilla/show_bug.cgi?id=25659 * m4/glob.m4 (gl_GLOB): Replace glob if it has bug 25659. * tests/test-glob.c (main): Test for glibc bug 25659. glob: fix symlink and // issues; improve speed * lib/glob.c: Include fcntl.h. (dirfd) [_LIBC]: New macro. (GLOB_STAT64, GLOB_LSTAT64): Remove. Replace all uses with ... (GLOB_FSTATAT64): ... this new macro. (glob_in_dir): Treat DT_LNK like DT_UNKNOWN. Use directory-relative fstatat unless GLOB_ALTDIRFUNC, or dirfd fails. Avoid duplicate strlen (directory). Work even if directory is "/", without turning it into "//". Use a scratch buffer instead of by-hand alloca stuff. Use mempcpy and memcpy instead of stpcpy and strcpy. * modules/glob (Depends-on): Add dirfd, fstatat. Remove stat. (License): Change from LGPLv2+ to GPL, since it depends on fstatat. 2022-03-23 DJ Delorie glob: resolve DT_UNKNOWN via is_dir The DT_* values returned by getdents (readdir) are only hints and not required. In fact, some Linux filesystems return DT_UNKNOWN for most entries, regardless of actual type. This causes make to mis-match patterns with a trailing slash (via GLOB_ONLYDIR) (see make's functions/wildcard test case). Thus, this patch detects that case and uses is_dir() to make the type known enough for proper operation. Performance in non-DT_UNKNOWN cases is not affected. The lack of DT_* is a well known issue on older XFS installations (for example, RHEL 7 and 8, Fedora 28) but can be recreated by creating an XFS filesystem with flags that mimic older behavior: $ fallocate -l 10G /xfs.fs $ mkfs.xfs -n ftype=0 -m crc=0 -f /xfs.fs $ mkdir /xfs $ mount -o loop /xfs.fs /xfs 2022-03-20 Jim Meyering maint: bootstrap: split a too-long line * build-aux/bootstrap (git_modules_config): Split longer-than-80 line. 2022-03-14 Simon Josefsson announce-gen: Modernize GnuPG key retrieval suggestions. Based on patch by Darshit Shah in: https://lists.gnu.org/archive/html/bug-gnulib/2022-03/msg00022.html * build-aux/announce-gen (usage): Add --gpg-key-email and --gpg-keyring-url. (main): Support the new options. (main): Don't suggest 'gpg --keyserver' since the situation with public key servers is complicated and GnuPG version dependent. maintainer-makefile: Improve GnuPG announce-gen options. * top/maint.mk (gpg_key_emil): New variable. (gpg_keyring_url): New variable. (announcement): Pass them as --gpg-key-email and --gpg-keyring-url. 2022-03-13 Ben Pfaff Document Automake 1.14 requirement in NEWS, too, since it had been documented there before for the Automake 1.11 requirement. * NEWS: Mention the change. 2022-03-13 Bruno Haible sigsegv: Add support for Linux/PowerPC (32-bit) with musl libc. Reported by Khem Raj in . * src/sigsegv.c (SIGSEGV_FAULT_STACKPOINTER): In the Linux/PowerPC 32-bit case, handle musl libc differently. * modules/sigsegv (Files): Add m4/musl.m4. (configure.ac): Invoke gl_MUSL_LIBC. 2022-03-11 Paul Eggert regex: fix double-free * lib/regex_internal.c (re_dfa_add_node): Don’t free storage twice if an allocation fails. regex: fix minor over-allocation * lib/regexec.c (push_fail_stack): Fix off-by-one error that over-allocated the stack. regex: fix free_fail_stack undefined behavior * lib/regexec.c (push_fail_stack): Don’t increment number of re_fail_stack_t entries until after successful allocation. This prevents a crash if re_realloc or re_malloc fails here, and a later free_fail_stack examines regs or a later pop_fail_stack examines node. Problem discovered by Coverity scan sent 2022-03-11 11:03:52Z. 2022-03-10 Paul Eggert fts: revert change to use AT_NO_AUTOMOUNT * NEWS: Don’t mention AT_NO_AUTOMOUNT. * lib/fts.c (fts_stat): Don’t use AT_NO_AUTOMOUNT, as it has no effect with fstatat. 2022-03-09 Paul Eggert statat: now obsolete * lib/openat.h (statat, lstatat): Now deprecated. All uses removed, and replaced with fstatat. * modules/statat: Mark as obsolete, because it’s confusing: it’s not clear whether it should use AT_NO_AUTOMOUNT, which is implied by stat and by lstat, but not by fstatat. * tests/test-statat.c: Disable deprecated-declarations warnings. fts: be consistent about AT_NO_AUTOMOUNT * lib/fts.c (fts_stat): Use fstatat with AT_NO_AUTOMOUNT consistently, instead of sometimes using stat (which implies AT_NO_AUTOMOUNT) and sometimes using fstatat without AT_NO_AUTOMOUNT. Remove a goto while we’re at it. 2022-03-07 Pádraig Brady fcntl-h: add AT_NO_AUTOMOUNT * lib/fcntl.in.h: Define AT_NO_AUTOMOUNT to 0 where not defined. This is available on Linux since 2.6.38. 2022-03-01 Paul Eggert Create lib/Makefile.am after gnulib-comp.m4 * gnulib-tool (func_import): Create library makefile after creating gnulib-comp.m4. With --gnu-make, the latter depends on the former. See . 2022-02-26 Paul Eggert gettime-res: fix unlikely overflow bug * lib/gettime-res.c (gettime_res): Fix bug when hz * tv_sec overflows. With 64-bit ‘long’ and nanosecond resolution the bug can occur starting in the year 2262, with probability about 2e-9. With 32-bit ‘long’ the bug can occur now, with same probability. The probability goes up on hosts with worse timestamp resolution. Document clang -fsanitize=undefined glitch * doc/gnulib-intro.texi (Unsupported Platforms): Document incompatibility of ‘clang -fsanitize=undefined’ with Gnulib, and how to work around it by also using ‘-fno-sanitize=pointer-overflow’. 2022-02-25 Darshit Shah modules/unicase/special-casing: Fix compilation error * modules/unicase/special-casing: Don't prepend $(AM_V_at) to the second part of a compound command. It causes make to try and execute the command "@sed" which doesn't exist. 2022-02-25 Paul Eggert Port __has_attribute to Apple’s Clang renumbering Problem reported by Kirill A. Korinsky in: https://lists.gnu.org/r/bug-gnulib/2022-02/msg00034.html * config/srclist.txt: Comment out sys/cdefs.h for now. * lib/cdefs.h (__glibc_has_attribute): * m4/gnulib-common.m4 (gl_COMMON_BODY): Port to Apple’s renumbering of Clang versions. nanosleep: simplify by using pselect GNU Emacs avoids Gnulib’s ‘select’ module and uses only pselect, which it implements in a special way on MS-DOS. Unfortunately, though, nanosleep uses ‘select’; problem reported by Lars Ingebrigtsen (Bug#32452#74). As far as I can tell, Gnulib nanosleep's use of ‘select’ with signals is only for ancient platforms that Gnulib no longer cares about, so remove that use of ‘select’. I don’t know of any platforms that still need this fallback code, but just in case, fall back to pselect instead, while removing signal handling that it shouldn’t be needed nowadays. * lib/nanosleep.c: Do not include sig-handler.h, sys/time.h. (SIGCONT, suspended, sighandler, my_usleep): Remove. (nanosleep) [!HAVE_BUG_BIG_NANOSLEEP && !(_WIN32 && !__CYGWIN__)]: Just call pselect. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Do not check for sys/time.h or call gl_FUNC_SELECT. Do not include sys/time.h or worry about LIBSOCKET. (gl_PREREQ_NANOSLEEP): Remove as it’s no longer needed. All uses removed. * modules/nanosleep (Depends-on): Add pselect. Remove select, sigaction, sys_time. 2022-02-24 Paul Eggert userspec: warn about '.' separator Problem reported by Dan Jacobson (Bug#44770). * lib/userspec.c: Don’t include stdbool.h since it’s now in our API. (parse_user_spec_warn): New function, broken out of parse_user_spec and with a new PWARN arg. (parse_user_spec): Use it. * lib/userspec.h: Include stdbool.h and declare new function. * tests/test-userspec.c (struct test.in): Now a char array so that it can be modified. (T): Make the placeholder a valid test, as that simplifies the code. Omit NULL placeholder at the end, likewise. (main): Set up T in the new way, and test that the "." separator acts like the ":" separator except with a warning if it works. userspec: no need for static vars * lib/userspec.c (parse_with_separator): Simplify. 2022-02-22 Benno Schulenberg (tiny change) doc: add two missing closing parentheses * doc/regex.texi (Syntax Bits): Add missing closing parenthesis. * doc/regex.texi (BSD Regular Expression Compiling): Likewise. 2022-02-22 Simon Josefsson gnulib-tool: Bump automake dependency. * gnulib-tool (func_emit_lib_Makefile_am) (func_emit_tests_Makefile_am): Demand Automake ≥ 1.14, for %reldir%. 2022-02-21 Paul Eggert close-stream: don't depend on fclose This reverts 2022-01-26T17:33:03Z!eggert@cs.ucla.edu. Depending on fclose broke Emacs, and since this dependency didn't help GNU m4 let's remove it for now. Problem reported by Lars Ingebrigtsen . * modules/close-stream (Depends-on): Remove fclose. 2022-02-20 Bruno Haible Document that Automake ≥ 1.14 is needed (regression 2021-12-15). Reported by Simon Josefsson and Mike Frysinger in . * DEPENDENCIES (Automake): Require version 1.14 or newer. 2022-02-19 Paul Eggert mktime: improve heuristic for ca-1986 Indiana DST Problem reported by Mark Krenz . * lib/mktime.c (__mktime_internal): Be more generous about accepting arguments with the wrong value of tm_isdst, by falling back to a one-hour DST difference if we find no nearby DST that is unusual. This fixes a problem where "1986-04-28 00:00 EDT" was rejected when TZ="America/Indianapolis" because the nearest DST timestamp occurred in 1970, a temporal distance too great for the old heuristic. This also also narrows the search a bit, which is a minor performance win. * m4/mktime.m4 (gl_FUNC_MKTIME_WORKS): Check for putenv failures and for Bug#48085. * tests/test-parse-datetime.c (main): Test for setenv failures and for Bug#48085. 2022-02-12 Paul Eggert filevercmp: fix several unexpected results Problems reported by Michael Debertol in . While looking into this, I spotted some more areas where the code and documentation did not agree, or where the documentation was unclear. The biggest change needed by coreutils is a new function filenvercmp that can compare byte strings containing NUL. * lib/filevercmp.c: Do not include sys/types.h, stdlib.h, string.h. Include idx.h, verify.h. (match_suffix): Remove, replacing all uses with calls to ... (file_prefixlen): ... this new function. Simplify it by avoiding the need for a confusing READ_ALPHA state variable. Change its API to something more useful, with a *LEN arg. it with a new *LEN arg. (file_prefixlen, verrevcmp): Prefer idx_t to size_t where either will do. (order): Change args to S, POS, LEN instead of just S[POS]. This lets us handle NUL bytes correctly. Callers changed. Verify that ints are sufficiently wide for its API. (verrevcmp): Don't assume that S1[S1_LEN] is a non-digit, and likewise for S2[S2_LEN]. The byte might not be accessible if filenvercmp is being called. (filevercmp): Reimplement by calling filenvercmp. (filenvercmp): New function, rewritten without the assumption that the inputs are null-terminated. Remove "easy comparison to see if strings are identical", as the use of it later (a) was undocumented, and (b) caused sort -V to be unstable. When both strings start with ".", do not skip past the "."s before looking for suffixes, as this disagreed with the documentation. * lib/filevercmp.h: Fix comments, which had many mistakes. (filenvercmp): New decl. * modules/filevercmp (Depends-on): Add idx, verify. Remove string. * tests/test-filevercmp.c: Include string.h. (examples): Reorder examples ".0" and ".9" that matched the code but not the documentation. The code has been fixed to match the documentation. Add some examples involving \1 so that they can be tried with both \1 and \0. Add some other examples taken from the bug report. (equals): New set of test cases. (sign, test_filevercmp): New functions. (main): Remove test case where the fixed filevercmp disagrees with strverscmp. Use test_filevercmp instead of filevercmp, so that we also test filenvercmp. Test the newly-introduced EQUALS cases. 2022-02-09 Bruno Haible string: Fix "mismatched allocation function" warnings regarding strndup. * lib/string.in.h (strndup): Mark with _GL_ATTRIBUTE_MALLOC and _GL_ATTRIBUTE_DEALLOC_FREE. For GCC >= 11: Declare also when the platform already declares the function or when the module 'strndup' is not in use. 2022-02-09 Bruno Haible unictype/category-byname: Fix test failure. * modules/unictype/category-byname (configure.ac): Bump required libunistring version. 2022-02-06 Bruno Haible termcap, termcap-h: Deprecate. * modules/termcap (Status, Notice): Add deprecation. * modules/termcap-h (Status, Notice): Likewise. 2022-02-05 Paul Eggert parse-datetime: allow calculations to yield -1 Problem reported by Jeremy Cantrell . * lib/parse-datetime.y (parse_datetime_body): When calling mktime, use an unmodifed and negative tm_wday or tm_yday to detect an error, as a (time_t) -1 return value is valid on most hosts. * tests/test-parse-datetime.c (main): Add a test for the bug. 2022-02-04 Paul Eggert userspec: help fix GNU ‘id’ incompatibility * lib/userspec.c (parse_with_separator): Don’t set *username to a numeric string that is not a user name, and similarly for *groupname. Needed to fix Bug#53631. 2022-01-30 Pádraig Brady argmatch: add variants that only match full argument * lib/argmatch.h (argmatch_exact, [X]ARGMATCH_EXACT): New interfaces that don't allow abbreviations. * lib/argmatch.c (argmatch_exact): Likewise. (__xargmatch_internal): Add a bool parameter to disable abbreviations. * tests/test-argmatch.c: Add tests. 2022-01-30 Bruno Haible tests: Fix interpretation of setupterm's return code. * tests/test-terminfo.c (main): Test the value of err when setupterm fails, not when it succeeds. * tests/test-termcap.c (main): Likewise. 2022-01-30 Bruno Haible terminfo: Add tests. * tests/test-terminfo.c: New file. * modules/terminfo-tests: New file. terminfo, terminfo-h: New modules. * lib/terminfo.h: New file, from GNU gettext. * m4/terminfo.m4: New file, from GNU gettext. * modules/terminfo: New file, from GNU gettext. * modules/terminfo-h: New file, from GNU gettext. 2022-01-30 Bruno Haible termcap: Add tests. * tests/test-termcap.c: New file. * modules/termcap-tests: New file. termcap, termcap-h: New modules. * lib/termcap.h: New file, from GNU gettext. * lib/tparm.c: New file, from GNU gettext. * lib/tputs.c: New file, from GNU gettext. * m4/termcap.m4: New file, from GNU gettext. * m4/curses.m4: New file, from GNU gettext. * modules/termcap: New file, from GNU gettext. * modules/termcap-h: New file, from GNU gettext. 2022-01-29 Bruno Haible doc: Clarify MSVC support. * doc/gnulib-intro.texi (Supported Platforms): Document that "debug" builds are unsupported. 2022-01-28 Pádraig Brady maintainer-makefile: fix sc_error_message_uppercase false failure * top/maint.mk (sc_error_message_uppercase): Don't trigger for any of the PRI... defines. 2022-01-27 Paul Eggert alignalloc: work around AddressSanitizer bug * doc/posix-functions/aligned_alloc.texi (aligned_alloc): Mention AddressSanitizer bug. * lib/alignalloc.h (ALIGNALLOC_VIA_ALIGNED_ALLOC): Define to 0 if AddressSanitizer is in use. * tests/test-alignalloc.c (test_alignalloc): New function, which tests for non-aligned sizes too. (main): Use it. Don’t bother checking for alignments greater than 16 MiB, as this flummoxes AddressSanitizer and there seems little point to testing them. doc: use UTF-8 encoding * doc/gnulib.texi: Use ‘@documentencoding UTF-8’. Partly this is because there are a few UTF-8 characters in the .texi files and there seems little point nowadays to @U-ifiying them. And partly it is so that the .info output uses nicer UTF-8 characters, e.g., it single-quotes ‘like this’ instead of 'like this'. maint: Update copyright notices * build-aux/announce-gen, build-aux/declared.sh: * build-aux/git-version-gen, build-aux/gitlog-to-changelog: * build-aux/gnu-web-doc-update, build-aux/gnupload: * build-aux/increment-serial, build-aux/libtool-next-version: * build-aux/useless-if-before-free: Update some copyright notices by hand, that were not updated automatically. 2022-01-26 Paul Eggert calloc-gnu: fix misspelling in 2022-01-03 patch Problem reported by Thien-Thi Nguyen in: https://lists.gnu.org/r/bug-gnulib/2022-01/msg00170.html * modules/calloc-gnu (Depends-on): * modules/calloc-posix (Depends-on): Fix misspelling of REPLACE_CALLOC_FOR_CALLOC_POSIX. close-stream: avoid crash on MSVC Debug mode Problem reported by Julien Marrec in: https://lists.gnu.org/r/bug-m4/2022-01/msg00000.html * modules/close-stream (Depends-on): Depend on fclose. 2022-01-23 Paul Eggert xstrtoimax, xstrtoumax: depend on inttypes-incomplete This fixes a call to strtoimax without declaring it, and similarly for strtoumax. * lib/xstrtoimax.c, lib/xstrtoumax.c (XSTRTOL_INCLUDE_INTTYPES_H): Define, so that strtoimax and strtoumax are declared. * lib/xstrtol.c [XSTRTOL_INCLUDE_INTTYPES_H]: Include inttypes.h. * modules/xstrtoimax, modules/xstrtoumax (Depends-on): Add inttypes-incomplete. alignalloc, xalignalloc: new modules * lib/alignalloc.c, lib/alignalloc.h, lib/xalignalloc.c: * m4/alignalloc.m4, modules/alignalloc, modules/alignalloc-tests: * modules/xalignalloc, tests/test-alignalloc.c: New files. 2022-01-17 Paul Eggert extern-inline: improve macOS port * m4/extern-inline.m4 (gl_EXTERN_INLINE): Define HAVE___HEADER_INLINE at configure-time, so that config.h knows the workaround is not needed even though ctype.h has not yet been included. This lets the compiler use extern inline functions on newer macOS platforms, instead of static inline. Problem reported by Reuben Thomas in: https://lists.gnu.org/r/bug-gnulib/2022-01/msg00130.html 2022-01-17 Bruno Haible xstrtol: Trim dependencies. * lib/xstrtol.h: Include , not . * modules/xstrtol (Depends-on): Add stdint. Remove inttypes-incomplete. 2022-01-17 Bruno Haible xstrtol: Fix compilation error (regression 2022-01-16). * modules/xstrtol (Depends-on): Add intprops. 2022-01-17 Jim Meyering xstrtol: remove unnecessary else after return * lib/xstrtol.c (bkm_scale): Drop "else" after return. 2022-01-16 Paul Eggert xstrtol: simplify integer overflow checking * lib/xstrtol.c: Include intprops.h. (TYPE_SIGNED): Remove, as intprops.h defines that for us now. (bkm_scale): Use INT_MULTIPLY_WRAPV instead of checking for overflow by hand. xstrtoll-tests: use %lld for long long * tests/test-xstrtoll.c, tests/test-xstrtoull.c (__spec): Do not assume long long is 64 bits, or that exact-width 64-bit types exist. Although these assumptions are true on current Gnulib platforms they are not true in general. Also, GCC warns if PRId64 is "ld" but intmax_t is long long even when long and long long are both 64 bits. 2022-01-15 Bruno Haible Don't pass unknown warning option to clang. Reported by Assaf Gordon via Paul Eggert in . * m4/gnulib-common.m4 (gl_CC_GNULIB_WARNINGS): Don't use -Wno-unsuffixed-float-constants with clang. 2022-01-15 Bruno Haible log tests: Avoid test failure with nvc 22.1. * tests/test-log.h (test_function): With nvc, expect up to 4 ulps error. 2022-01-15 Bruno Haible havelib: Recognize ELF platform despite nvc 22.1. * m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Recognize Linux as an ELF platform, even with a compiler that does not define __ELF__. 2022-01-15 Bruno Haible oset-c++: Avoid compilation error with nvc++ 22.1. * lib/gl_oset.hh: With EDG C++ compilers, avoid 'friend'. 2022-01-14 Paul Eggert nstrftime: pacify nvc 22.1 unreachable statement * lib/nstrftime.c (__strftime_internal): Omit unreachable ‘break;’. tests: pacify nvc 22.1 unreachable statement * tests/test-sys_wait.h (test_sys_wait_macros): Widen scope of ‘#if 0’ so that there is not an unreachable ‘break;’. tests: pacify nvc 22.1 set-but-not-used * tests/test-fnmatch.c (main): Don’t set a var without using it. * tests/test-sched.c (f1): Now extern. intprops: work around nvc 22.1 bug Problem reported by Olivier Cessenat (Bug#53256). * lib/intprops.h (_GL_HAS_BUILTIN_ADD_OVERFLOW) [__EDG__]: Define to 0, since __builtin_add_overflow doesn’t work on NVIDIA HPC SDK 22.1. copy-file-range: work around Linux kernel bug This workaround is adapted from Coreutils. * lib/copy-file-range.c [__linux__ && HAVE_COPY_FILE_RANGE]: Include . (copy_file_range): Use a stub to replace the copy_file_range of Linux kernel versions 4.5 through 5.2. * lib/unistd.in.h (copy_file_range): * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): * modules/copy-file-range (configure.ac): * modules/unistd (unistd.h): Support replacement of copy_file_range. * m4/copy-file-range.m4 (gl_FUNC_COPY_FILE_RANGE): Define HAVE_COPY_FILE_RANGE if the system has copy_file_range, and on Linux check whether the system’s is known to work. 2022-01-14 Bruno Haible Avoid error "conditional LIBUNISTRING_COMPILE_... was never defined" when option --conditional-dependencies is used (regression 2022-01-09). Reported by Gavin Smith in . * m4/libunistring-base.m4 (gl_LIBUNISTRING_MODULE): Use gl_CONDITIONAL instead of AM_CONDITIONAL. 2022-01-13 Bruno Haible Avoid warning "_GL_ATTRIBUTE_DEALLOC_FREE redefined" (regr. 2022-01-04). Reported by Werner Lemberg in . * m4/gnulib-common.m4 (gl_COMMON_BODY): Avoid redefining _GL_ATTRIBUTE_DEALLOC_FREE. 2022-01-10 Paul Eggert backupfile: fix bug when renaming not from wd * lib/backupfile.c (backupfile_internal): Fix bug when DIR_FD does not specify the working directory, and when RENAME. Without the bug fix, FILE is treated as relative to the working directory, not relative to DIR_FD, when renaming FILE. This bug was introduced when DIR_FD and RENAME were introduced, in 2018-10-24T02:10:21Z!eggert@cs.ucla.edu. While we’re at it, when SDIR is nonnegative improve performance a bit by passing an SDIR-relative old name to renameatu. 2022-01-09 Bruno Haible host-cpu-c-abi: Add support for LoongArch64 CPU. * m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Define __loongarch64__. (GCC and clang predefine only __loongarch__, __loongarch64.) 2022-01-09 Bruno Haible stdio: Fix "missing file" errors (regression from today). * modules/stdio (Files): Add stdio-read.c, stdio-write.c. * m4/stdio_h.m4 (gl_STDIO_H): Update comments. 2022-01-09 Bruno Haible Use the GL_CFLAG_GNULIB_WARNINGS for most AC_LIBOBJ compilation units. * modules/_Exit (configure.ac): Define an Automake conditional. Remove the AC_LIBOBJ invocation. (Makefile.am): Augment lib_SOURCES, guarded by that Automake conditional. * modules/accept: Likewise. * modules/access: Likewise. * modules/acosf: Likewise. * modules/acosl: Likewise. * modules/aligned_alloc: Likewise. * modules/alphasort: Likewise. * modules/argz: Likewise. * modules/asinf: Likewise. * modules/asinl: Likewise. * modules/atan2f: Likewise. * modules/atanf: Likewise. * modules/atanl: Likewise. * modules/atexit: Likewise. * modules/atoll: Likewise. * modules/bind: Likewise. * modules/btowc: Likewise. * modules/c32rtomb: Likewise. * modules/canonicalize-lgpl: Likewise. * modules/cbrt: Likewise. * modules/cbrtf: Likewise. * modules/cbrtl: Likewise. * modules/ceil: Likewise. * modules/ceilf: Likewise. * modules/ceill: Likewise. * modules/chdir-long: Likewise. * modules/chown: Likewise. * modules/close: Likewise. * modules/closedir: Likewise. * modules/cnd: Likewise. * modules/connect: Likewise. * modules/copy-file-range: Likewise. * modules/copysign: Likewise. * modules/copysignf: Likewise. * modules/copysignl: Likewise. * modules/cosf: Likewise. * modules/coshf: Likewise. * modules/cosl: Likewise. * modules/creat: Likewise. * modules/crypto/gc: Likewise. * modules/ctime: Likewise. * modules/dirfd: Likewise. * modules/dup: Likewise. * modules/dup2: Likewise. * modules/duplocale: Likewise. * modules/error: Likewise. * modules/euidaccess: Likewise. * modules/execinfo: Likewise. * modules/execl: Likewise. * modules/execle: Likewise. * modules/execlp: Likewise. * modules/execv: Likewise. * modules/execve: Likewise. * modules/execvp: Likewise. * modules/execvpe: Likewise. * modules/exp2: Likewise. * modules/exp2f: Likewise. * modules/exp2l: Likewise. * modules/expf: Likewise. * modules/expl: Likewise. * modules/explicit_bzero: Likewise. * modules/expm1: Likewise. * modules/expm1f: Likewise. * modules/expm1l: Likewise. * modules/fabsf: Likewise. * modules/fabsl: Likewise. * modules/faccessat: Likewise. * modules/fchdir: Likewise. * modules/fchmodat: Likewise. * modules/fchownat: Likewise. * modules/fclose: Likewise. * modules/fcntl: Likewise. * modules/fdatasync: Likewise. * modules/fdopen: Likewise. * modules/fdopendir: Likewise. * modules/fflush: Likewise. * modules/ffs: Likewise. * modules/ffsl: Likewise. * modules/ffsll: Likewise. * modules/fileblocks: Likewise. * modules/float: Likewise. * modules/flock: Likewise. * modules/floor: Likewise. * modules/floorf: Likewise. * modules/floorl: Likewise. * modules/fma: Likewise. * modules/fmaf: Likewise. * modules/fmal: Likewise. * modules/fmod: Likewise. * modules/fmodf: Likewise. * modules/fmodl: Likewise. * modules/forkpty: Likewise. * modules/fpending: Likewise. * modules/fpurge: Likewise. * modules/freadable: Likewise. * modules/freadahead: Likewise. * modules/freadptr: Likewise. * modules/free-posix: Likewise. * modules/freopen: Likewise. * modules/frexpf: Likewise. * modules/fseek: Likewise. * modules/fseeko: Likewise. * modules/fseterr: Likewise. * modules/fstat: Likewise. * modules/fstatat: Likewise. * modules/fsusage: Likewise. * modules/fsync: Likewise. * modules/ftell: Likewise. * modules/ftello: Likewise. * modules/ftruncate: Likewise. * modules/fts: Likewise. * modules/futimens: Likewise. * modules/fwritable: Likewise. * modules/fwriting: Likewise. * modules/getaddrinfo: Likewise. * modules/getcwd: Likewise. * modules/getcwd-lgpl: Likewise. * modules/getdelim: Likewise. * modules/getdomainname: Likewise. * modules/getdtablesize: Likewise. * modules/getentropy: Likewise. * modules/getgroups: Likewise. * modules/gethostname: Likewise. * modules/getline: Likewise. * modules/getloadavg: Likewise. * modules/getlogin: Likewise. * modules/getlogin_r: Likewise. * modules/getopt-posix: Likewise. * modules/getpagesize: Likewise. * modules/getpeername: Likewise. * modules/getrandom: Likewise. * modules/getrusage: Likewise. * modules/getsockname: Likewise. * modules/getsockopt: Likewise. * modules/getsubopt: Likewise. * modules/gettimeofday: Likewise. * modules/getumask: Likewise. * modules/getusershell: Likewise. * modules/glob: Likewise. * modules/grantpt: Likewise. * modules/group-member: Likewise. * modules/hypot: Likewise. * modules/hypotf: Likewise. * modules/hypotl: Likewise. * modules/iconv_open: Likewise. * modules/ilogb: Likewise. * modules/ilogbf: Likewise. * modules/ilogbl: Likewise. * modules/imaxabs: Likewise. * modules/imaxdiv: Likewise. * modules/inet_ntop: Likewise. * modules/inet_pton: Likewise. * modules/ioctl: Likewise. * modules/isapipe: Likewise. * modules/isatty: Likewise. * modules/isblank: Likewise. * modules/isfinite: Likewise. * modules/isinf: Likewise. * modules/iswblank: Likewise. * modules/iswctype: Likewise. * modules/iswdigit: Likewise. * modules/iswxdigit: Likewise. * modules/lchmod: Likewise. * modules/lchown: Likewise. * modules/ldexpf: Likewise. * modules/ldexpl: Likewise. * modules/libgmp: Likewise. * modules/link: Likewise. * modules/linkat: Likewise. * modules/listen: Likewise. * modules/localeconv: Likewise. * modules/localtime: Likewise. * modules/log: Likewise. * modules/log10: Likewise. * modules/log10f: Likewise. * modules/log10l: Likewise. * modules/log1p: Likewise. * modules/log1pf: Likewise. * modules/log1pl: Likewise. * modules/log2: Likewise. * modules/log2f: Likewise. * modules/log2l: Likewise. * modules/logb: Likewise. * modules/logbf: Likewise. * modules/logbl: Likewise. * modules/logf: Likewise. * modules/login_tty: Likewise. * modules/logl: Likewise. * modules/lseek: Likewise. * modules/lstat: Likewise. * modules/mbrlen: Likewise. * modules/mbrtoc32: Likewise. * modules/mbrtowc: Likewise. * modules/mbsinit: Likewise. * modules/mbsnrtowcs: Likewise. * modules/mbsrtowcs: Likewise. * modules/mbtowc: Likewise. * modules/memalign: Likewise. * modules/memchr: Likewise. * modules/memcmp: Likewise. * modules/memcpy: Likewise. * modules/memmove: Likewise. * modules/mempcpy: Likewise. * modules/memrchr: Likewise. * modules/memset: Likewise. * modules/mkdir: Likewise. * modules/mkdirat: Likewise. * modules/mkdtemp: Likewise. * modules/mkfifo: Likewise. * modules/mkfifoat: Likewise. * modules/mknod: Likewise. * modules/mkostemp: Likewise. * modules/mkostemps: Likewise. * modules/mkstemp: Likewise. * modules/mkstemps: Likewise. * modules/modf: Likewise. * modules/modff: Likewise. * modules/modfl: Likewise. * modules/mountlist: Likewise. * modules/msvc-inval: Likewise. * modules/msvc-nothrow: Likewise. * modules/mtx: Likewise. * modules/nanosleep: Likewise. * modules/nl_langinfo: Likewise. * modules/obstack: Likewise. * modules/open: Likewise. * modules/openat: Likewise. * modules/opendir: Likewise. * modules/openpty: Likewise. * modules/pclose: Likewise. * modules/perror: Likewise. * modules/pipe-posix: Likewise. * modules/poll: Likewise. * modules/popen: Likewise. * modules/posix_memalign: Likewise. * modules/posix_openpt: Likewise. * modules/posix_spawn: Likewise. * modules/posix_spawn-internal: Likewise. * modules/posix_spawn_file_actions_addchdir: Likewise. * modules/posix_spawn_file_actions_addclose: Likewise. * modules/posix_spawn_file_actions_adddup2: Likewise. * modules/posix_spawn_file_actions_addfchdir: Likewise. * modules/posix_spawn_file_actions_addopen: Likewise. * modules/posix_spawn_file_actions_destroy: Likewise. * modules/posix_spawn_file_actions_init: Likewise. * modules/posix_spawnattr_destroy: Likewise. * modules/posix_spawnattr_getflags: Likewise. * modules/posix_spawnattr_getpgroup: Likewise. * modules/posix_spawnattr_getschedparam: Likewise. * modules/posix_spawnattr_getschedpolicy: Likewise. * modules/posix_spawnattr_getsigdefault: Likewise. * modules/posix_spawnattr_getsigmask: Likewise. * modules/posix_spawnattr_init: Likewise. * modules/posix_spawnattr_setflags: Likewise. * modules/posix_spawnattr_setpgroup: Likewise. * modules/posix_spawnattr_setschedparam: Likewise. * modules/posix_spawnattr_setschedpolicy: Likewise. * modules/posix_spawnattr_setsigdefault: Likewise. * modules/posix_spawnattr_setsigmask: Likewise. * modules/posix_spawnp: Likewise. * modules/powf: Likewise. * modules/pread: Likewise. * modules/pselect: Likewise. * modules/pthread-cond: Likewise. * modules/pthread-mutex: Likewise. * modules/pthread-once: Likewise. * modules/pthread-rwlock: Likewise. * modules/pthread-spin: Likewise. * modules/pthread-thread: Likewise. * modules/pthread-tss: Likewise. * modules/pthread_mutex_timedlock: Likewise. * modules/pthread_sigmask: Likewise. * modules/ptsname: Likewise. * modules/ptsname_r: Likewise. * modules/putenv: Likewise. * modules/pwrite: Likewise. * modules/qsort_r: Likewise. * modules/raise: Likewise. * modules/random: Likewise. * modules/random_r: Likewise. * modules/rawmemchr: Likewise. * modules/read: Likewise. * modules/readdir: Likewise. * modules/readline: Likewise. * modules/readlink: Likewise. * modules/readlinkat: Likewise. * modules/readutmp: Likewise. * modules/reallocarray: Likewise. * modules/recv: Likewise. * modules/recvfrom: Likewise. * modules/regex: Likewise. * modules/relocatable-prog: Likewise. * modules/remainder: Likewise. * modules/remainderf: Likewise. * modules/remainderl: Likewise. * modules/remove: Likewise. * modules/rename: Likewise. * modules/renameat: Likewise. * modules/rewinddir: Likewise. * modules/rint: Likewise. * modules/rintf: Likewise. * modules/rintl: Likewise. * modules/rmdir: Likewise. * modules/round: Likewise. * modules/roundf: Likewise. * modules/roundl: Likewise. * modules/rpmatch: Likewise. * modules/scandir: Likewise. * modules/sched_yield: Likewise. * modules/secure_getenv: Likewise. * modules/select: Likewise. * modules/selinux-h: Likewise. * modules/send: Likewise. * modules/sendto: Likewise. * modules/setenv: Likewise. * modules/sethostname: Likewise. * modules/setlocale: Likewise. * modules/setlocale-null: Likewise. * modules/setsockopt: Likewise. * modules/shutdown: Likewise. * modules/sig2str: Likewise. * modules/sigabbrev_np: Likewise. * modules/sigaction: Likewise. * modules/sigdescr_np: Likewise. * modules/signbit: Likewise. * modules/sigprocmask: Likewise. * modules/sinf: Likewise. * modules/sinhf: Likewise. * modules/sinl: Likewise. * modules/sleep: Likewise. * modules/socket: Likewise. * modules/spawn-pipe: Likewise. * modules/sqrtf: Likewise. * modules/sqrtl: Likewise. * modules/stat: Likewise. * modules/stdio: Likewise. * modules/stpcpy: Likewise. * modules/stpncpy: Likewise. * modules/strcase: Likewise. * modules/strchrnul: Likewise. * modules/strcspn: Likewise. * modules/strdup-posix: Likewise. * modules/strerror: Likewise. * modules/strerror-override: Likewise. * modules/strerrorname_np: Likewise. * modules/strfmon_l: Likewise. * modules/strftime-fixes: Likewise. * modules/strncat: Likewise. * modules/strndup: Likewise. * modules/strnlen: Likewise. * modules/strpbrk: Likewise. * modules/strptime: Likewise. * modules/strsep: Likewise. * modules/strsignal: Likewise. * modules/strtod: Likewise. * modules/strtoimax: Likewise. * modules/strtok_r: Likewise. * modules/strtol: Likewise. * modules/strtold: Likewise. * modules/strtoll: Likewise. * modules/strtoul: Likewise. * modules/strtoull: Likewise. * modules/strtoumax: Likewise. * modules/strverscmp: Likewise. * modules/symlink: Likewise. * modules/symlinkat: Likewise. * modules/tanf: Likewise. * modules/tanhf: Likewise. * modules/tanl: Likewise. * modules/tcgetsid: Likewise. * modules/thrd: Likewise. * modules/time_r: Likewise. * modules/time_rz: Likewise. * modules/timegm: Likewise. * modules/times: Likewise. * modules/timespec_get: Likewise. * modules/timespec_getres: Likewise. * modules/tmpfile: Likewise. * modules/towctrans: Likewise. * modules/trunc: Likewise. * modules/truncate: Likewise. * modules/truncf: Likewise. * modules/truncl: Likewise. * modules/tsearch: Likewise. * modules/tss: Likewise. * modules/ttyname_r: Likewise. * modules/tzset: Likewise. * modules/uname: Likewise. * modules/unlink: Likewise. * modules/unlinkat: Likewise. * modules/unlockpt: Likewise. * modules/unsetenv: Likewise. * modules/usleep: Likewise. * modules/utime: Likewise. * modules/utimensat: Likewise. * modules/waitpid: Likewise. * modules/wcpcpy: Likewise. * modules/wcpncpy: Likewise. * modules/wcrtomb: Likewise. * modules/wcscasecmp: Likewise. * modules/wcscat: Likewise. * modules/wcschr: Likewise. * modules/wcscmp: Likewise. * modules/wcscoll: Likewise. * modules/wcscpy: Likewise. * modules/wcscspn: Likewise. * modules/wcsdup: Likewise. * modules/wcsftime: Likewise. * modules/wcslen: Likewise. * modules/wcsncasecmp: Likewise. * modules/wcsncat: Likewise. * modules/wcsncmp: Likewise. * modules/wcsncpy: Likewise. * modules/wcsnlen: Likewise. * modules/wcsnrtombs: Likewise. * modules/wcspbrk: Likewise. * modules/wcsrchr: Likewise. * modules/wcsrtombs: Likewise. * modules/wcsspn: Likewise. * modules/wcsstr: Likewise. * modules/wcstok: Likewise. * modules/wcswidth: Likewise. * modules/wcsxfrm: Likewise. * modules/wctob: Likewise. * modules/wctomb: Likewise. * modules/wctrans: Likewise. * modules/wctype: Likewise. * modules/wcwidth: Likewise. * modules/windows-cond: Likewise. * modules/windows-mutex: Likewise. * modules/windows-once: Likewise. * modules/windows-recmutex: Likewise. * modules/windows-rwlock: Likewise. * modules/windows-spawn: Likewise. * modules/windows-spin: Likewise. * modules/windows-thread: Likewise. * modules/windows-timedmutex: Likewise. * modules/windows-timedrecmutex: Likewise. * modules/windows-timedrwlock: Likewise. * modules/windows-tls: Likewise. * modules/wmemchr: Likewise. * modules/wmemcmp: Likewise. * modules/wmemcpy: Likewise. * modules/wmemmove: Likewise. * modules/wmempcpy: Likewise. * modules/wmemset: Likewise. * modules/write: Likewise. 2022-01-09 Bruno Haible obstack: Move AC_LIBOBJ invocation to the module description. * m4/obstack.m4 (gl_FUNC_OBSTACK): Renamed from AC_FUNC_OBSTACK. Don't invoke AC_LIBSOURCES nor AC_LIBOBJ. * modules/obstack (configure.ac): Update. Invoke AC_LIBOBJ here. 2022-01-09 Bruno Haible stdio: Move AC_LIBOBJ invocations to the module description. * m4/stdio_h.m4 (gl_STDIO_H): Don't invoke AC_LIBOBJ. * modules/stdio (configure.ac): Invoke AC_LIBOBJ here. 2022-01-09 Bruno Haible fchdir: Move AC_LIBOBJ invocation to the module description. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't invoke AC_LIBOBJ and gl_PREREQ_FCHDIR. * modules/fchdir (configure.ac): Invoke AC_LIBOBJ and gl_PREREQ_FCHDIR. 2022-01-09 Bruno Haible Remove influence of Automake conditionals on conditional dependencies. * m4/gnulib-common.m4 (gl_CONDITIONAL): New macro. (gl_CONDITIONAL_HEADER): Use it instead of AM_CONDITIONAL. * m4/libgmp.m4 (gl_LIBGMP): Likewise. * modules/posix_spawn_file_actions_addfchdir-tests (configure.ac): Likewise. * modules/uchar-c++-tests (configure.ac): Likewise. * gnulib-tool (func_modules_transitive_closure): Don't inhibit conditional dependencies processing on a module that uses an Automake conditional. 2022-01-08 Bruno Haible gnulib-tool: Fix "Don't forget" messages (regression 2021-12-12). * gnulib-tool (func_import): Fix variable references in "Don't forget" messages. 2022-01-08 Bruno Haible gnulib-tool: Remove all *.Po files upon distclean (regr. 2022-01-05). Reported by Mohammad Akhlaghi in . * gnulib-tool (func_emit_initmacro_end): Collect the *.Po or *.Plo files to remove into an AC_SUBSTed variable gl_LIBOBJDEPS. (func_emit_lib_Makefile_am): Extend the distclean and maintainer-clean rules. 2022-01-08 Bruno Haible Add another example. * examples/hello-c-gnulib-conddeps: New directory. 2022-01-08 Marc Nieper-Wißkirchen c-stack: Adapt header file for use in C++ applications. * lib/c-stack.h: Add extern "C" block. 2022-01-08 Marc Nieper-Wißkirchen version-etc: Adapt header file for use in C++ applications. * lib/version-etc.h: Add extern "C" block. 2022-01-07 Bruno Haible sigsegv: Improve support for Linux/LoongArch64. * lib/sigsegv.c (SIGSEGV_FAULT_STACKPOINTER): Add special case for Linux/LoongArch. 2022-01-05 Glenn Washburn bootstrap: When a commit is specified, do a shallow fetch if possible. Rationale and explanation: . * bootstrap: When a commit hash is specified, ask for this specific commit on fetch, and fallback to fetching the entire repository if fetching by commit hash fails. 2022-01-05 Paul Eggert stack: pacify gcc -Wsign-compare * lib/stack.h (_GL_STACK_TYPE): Use idx_t for size too. Suggested by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2022-01/msg00035.html (_GL_STACK_PREFIX (size)): Return idx_t, not size_t. 2022-01-05 Bruno Haible Fix last commit. Based on a patch by José E. Marchesi , reported in . * m4/gnulib-common.m4 (gl_CC_GNULIB_WARNINGS): Don't enable -Wimplicit-fallthrough for GCC < 7. 2022-01-05 Bruno Haible gnulib-tool: Avoid known warnings that reflect Gnulib's coding style. * m4/gnulib-common.m4 (gl_CC_GNULIB_WARNINGS): New macro. * gnulib-tool (func_emit_lib_Makefile_am): Add the GL_CFLAG_GNULIB_WARNINGS to the CFLAGS of all the compilation units of the library. (func_emit_tests_Makefile_am): Add the GL_CFLAG_GNULIB_WARNINGS to the CFLAGS. (func_import): Emit an invocation of gl_CC_GNULIB_WARNINGS. 2022-01-04 Bernhard Voelker license: fix GPLv3 texts to use a comma instead of semicolon. See: https://www.gnu.org/licenses/gpl-3.0.html#howto Run: $ git grep -l 'Foundation; either version 3' \ | xargs sed -i '/Foundation; either version 3/ s/n; e/n, e/' * All files using GPLv3: Adjust via the above command. 2022-01-04 Bruno Haible string, wchar: Fix compilation error on MSVC (regression 2021-09-07). * lib/string.in.h (free): Don't redeclare as rpl_free. Instead, redefine _GL_ATTRIBUTE_DEALLOC_FREE to reference rpl_free directly. * lib/wchar.in.h (free): Likewise. 2022-01-03 Bruno Haible getpass-gnu: Allow use as dependency from test modules. * m4/getpass.m4 (gl_FUNC_GETPASS_GNU): Set REPLACE_GETPASS_FOR_GETPASS_GNU instead of REPLACE_GETPASS. * m4/unistd_h.m4 (gl_UNISTD_H_REQUIRE_DEFAULTS): Initialize the getpass-gnu module indicator. (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_GETPASS_FOR_GETPASS_GNU. * modules/unistd (Makefile.am): Substitute GNULIB_GETPASS_GNU, REPLACE_GETPASS_FOR_GETPASS_GNU. * modules/getpass-gnu (configure.ac): Test REPLACE_GETPASS_FOR_GETPASS_GNU instead of REPLACE_GETPASS. Set a module indicator. * lib/unistd.in.h (getpass): Test REPLACE_GETPASS, REPLACE_GETPASS_FOR_GETPASS_GNU, and the respective module indicators instead of just REPLACE_GETPASS. 2022-01-03 Bruno Haible fopen-gnu: Allow use as dependency from test modules. * m4/fopen.m4 (gl_FUNC_FOPEN_GNU): Set REPLACE_FOPEN_FOR_FOPEN_GNU instead of REPLACE_FOPEN. * m4/stdio_h.m4 (gl_STDIO_H_REQUIRE_DEFAULTS): Initialize the fopen-gnu module indicator. (gl_STDIO_H_DEFAULTS): Initialize REPLACE_FOPEN_FOR_FOPEN_GNU. * modules/stdio (Makefile.am): Substitute GNULIB_FOPEN_GNU, REPLACE_FOPEN_FOR_FOPEN_GNU. * modules/fopen-gnu (Depends-on): Add more dependencies. (configure.ac): Test REPLACE_FOPEN_FOR_FOPEN_GNU instead of REPLACE_FOPEN. * lib/stdio.in.h (fopen): Test REPLACE_FOPEN, REPLACE_FOPEN_FOR_FOPEN_GNU, and the respective module indicators instead of just REPLACE_FOPEN. 2022-01-03 Bruno Haible realloc-gnu: Allow use as dependency from test modules. * m4/realloc.m4 (gl_FUNC_REALLOC_GNU): Set REPLACE_REALLOC_FOR_REALLOC_GNU instead of REPLACE_REALLOC. (gl_FUNC_REALLOC_POSIX): Set REPLACE_REALLOC_FOR_REALLOC_POSIX instead of REPLACE_REALLOC. * m4/stdlib_h.m4 (gl_STDLIB_H_REQUIRE_DEFAULTS): Initialize the realloc-gnu module indicator. (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_REALLOC_FOR_REALLOC_GNU, REPLACE_REALLOC_FOR_REALLOC_POSIX, not REPLACE_REALLOC. * modules/stdlib (Makefile.am): Substitute GNULIB_REALLOC_GNU, REPLACE_REALLOC_FOR_REALLOC_GNU, REPLACE_REALLOC_FOR_REALLOC_POSIX, not REPLACE_REALLOC. * modules/realloc-posix (Depends-on, configure.ac): Test REPLACE_REALLOC_FOR_REALLOC_POSIX instead of REPLACE_REALLOC. * modules/realloc-gnu (Comment): Remove section. (Depends-on): Add free-posix, malloc-gnu, xalloc-oversized. (configure.ac): Test REPLACE_REALLOC_FOR_REALLOC_GNU instead of REPLACE_REALLOC. Set a module indicator. * lib/stdlib.in.h (realloc): Test REPLACE_REALLOC_FOR_REALLOC_POSIX, REPLACE_REALLOC_FOR_REALLOC_GNU, and the respective module indicators instead of just REPLACE_REALLOC. 2022-01-03 Bruno Haible calloc-gnu: Allow use as dependency from test modules. * m4/calloc.m4 (gl_FUNC_CALLOC_GNU): Set REPLACE_CALLOC_FOR_CALLOC_GNU instead of REPLACE_CALLOC. (gl_FUNC_CALLOC_POSIX): Set REPLACE_CALLOC_FOR_CALLOC_POSIX instead of REPLACE_CALLOC. * m4/stdlib_h.m4 (gl_STDLIB_H_REQUIRE_DEFAULTS): Initialize the calloc-gnu module indicator. (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_CALLOC_FOR_CALLOC_GNU, REPLACE_CALLOC_FOR_CALLOC_POSIX, not REPLACE_CALLOC. * modules/stdlib (Makefile.am): Substitute GNULIB_CALLOC_GNU, REPLACE_CALLOC_FOR_CALLOC_GNU, REPLACE_CALLOC_FOR_CALLOC_POSIX, not REPLACE_CALLOC. * modules/calloc-posix (Depends-on, configure.ac): Test REPLACE_CALLOC_FOR_CALLOC_POSIX instead of REPLACE_CALLOC. * modules/calloc-gnu (Depends-on): Add xalloc-oversized. (configure.ac): Test REPLACE_CALLOC_FOR_CALLOC_GNU instead of REPLACE_CALLOC. Set a module indicator. * lib/stdlib.in.h (calloc): Test REPLACE_CALLOC_FOR_CALLOC_POSIX, REPLACE_CALLOC_FOR_CALLOC_GNU, and the respective module indicators instead of just REPLACE_CALLOC. 2022-01-03 Bruno Haible malloc-gnu: Allow use as dependency from test modules. * m4/malloc.m4 (gl_FUNC_MALLOC_GNU): Set REPLACE_MALLOC_FOR_MALLOC_GNU instead of REPLACE_MALLOC. (gl_FUNC_MALLOC_PTRDIFF, gl_FUNC_MALLOC_POSIX): Set REPLACE_MALLOC_FOR_MALLOC_POSIX instead of REPLACE_MALLOC. * m4/calloc.m4 (gl_FUNC_CALLOC_POSIX): Test REPLACE_MALLOC_FOR_MALLOC_POSIX instead of REPLACE_MALLOC. * m4/realloc.m4 (gl_FUNC_REALLOC_POSIX): Likewise. * m4/stdlib_h.m4 (gl_STDLIB_H_REQUIRE_DEFAULTS): Initialize the malloc-gnu module indicator. (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_MALLOC_FOR_MALLOC_GNU, REPLACE_MALLOC_FOR_MALLOC_POSIX, not REPLACE_MALLOC. * modules/stdlib (Makefile.am): Substitute GNULIB_MALLOC_GNU, REPLACE_MALLOC_FOR_MALLOC_GNU, REPLACE_MALLOC_FOR_MALLOC_POSIX, not REPLACE_MALLOC. * modules/malloc-posix (Depends-on, configure.ac): Test REPLACE_MALLOC_FOR_MALLOC_POSIX instead of REPLACE_MALLOC. * modules/malloc-gnu (Comment): Remove section. (Depends-on): Add xalloc-oversized. (configure.ac): Test REPLACE_MALLOC_FOR_MALLOC_GNU instead of REPLACE_MALLOC. Set a module indicator. * lib/stdlib.in.h (malloc): Test REPLACE_MALLOC_FOR_MALLOC_POSIX, REPLACE_MALLOC_FOR_MALLOC_GNU, and the respective module indicators instead of just REPLACE_MALLOC. 2022-01-02 Bruno Haible striconveh: Make the last change also work on Solaris 11. * lib/striconveh.c (mem_cd_iconveh_internal): Tweak last commit. striconveh: Make the last change also work on musl libc. * lib/striconveh.c (mem_cd_iconveh_internal): Make the U+FFFD conversion also work with non-GNU iconv() implementations. 2022-01-01 Paul Eggert gen-header: port to BusyBox ‘sed’ Problem reported by Tim Rühsen in: https://lists.gnu.org/r/bug-gnulib/2022-01/msg00004.html * modules/gen-header (SED_HEADER_NOEDIT): Replace instead of prepend. (SED_HEADER_STDOUT, SED_HEADER_TO_AT_t): Adjust to that change. Do not use ‘w foo’ twice in the same script, as BusyBox ‘sed’ mistakenly opens ‘foo’ for output twice, thus losing some output. 2022-01-01 Bruno Haible striconveh: Support an error handler that produces a Unicode U+FFFD. Suggested by Marc Nieper-Wißkirchen in . * lib/iconveh.h (iconveh_replacement_character): New enum value. * lib/striconveh.c (mem_cd_iconveh_internal): When the handler is iconveh_replacement_character, try to produce U+FFFD when possible, instead of '?'. * tests/test-striconveh.c (main): Add GB18030 tests. Test also iconveh_replacement_character. 2022-01-01 Bruno Haible maint: Update copyright notices. * build-aux/declared.sh (func_version): Bump year. 2022-01-01 Bruno Haible maint: Update copyright notices in code generating programs. * lib/gen-uni-tables.c (output_predicate_test, output_predicate, output_category, output_combclass, output_bidi_category, output_decimal_digit_test, output_decimal_digit, output_digit_test, output_digit, output_numeric_test, output_numeric, output_mirror, output_joining_type_test, output_joining_type, output_joining_group_test, output_joining_group, output_scripts, output_scripts_byname, output_blocks, output_ident_category, output_nonspacing_property, output_lbrk_tables, output_lbrk_rules_as_tables, output_wbrk_tables, output_gbp_test, output_gbp_table, output_decomposition_tables, output_composition_tables, output_simple_mapping_test, output_simple_mapping, output_casing_rules): Extend copyright year of generated file to 2022. * lib/uniname/gen-uninames.lisp (main): Likewise. Produce license notice that is consistent with the gnulib/etc/license-notices/ files. * All files regenerated. 2022-01-01 Paul Eggert maint: fix ‘make update-copyright’ on symlinks After running ‘make update-copyright’ I noticed that it incorrectly replaced a couple of symlinks with their contents. * Makefile (update-copyright): Do not update symlinks. * etc/license-notices/GPL, etc/license-notices/LGPL: Change these back to symlinks. 2021-12-31 Bruno Haible unistdio: Prefer newer version to older, buggy one. * modules/unistdio/ulc-vasnprintf (configure.ac): Bump required libunistring version. This is needed because of the heap overrun fix (2018-09-23) and the need to avoid %n on more platforms (2020-10-04). * modules/unistdio/ulc-asnprintf (configure.ac): Likewise. * modules/unistdio/ulc-asprintf (configure.ac): Likewise. * modules/unistdio/ulc-fprintf (configure.ac): Likewise. * modules/unistdio/ulc-snprintf (configure.ac): Likewise. * modules/unistdio/ulc-sprintf (configure.ac): Likewise. * modules/unistdio/ulc-vasprintf (configure.ac): Likewise. * modules/unistdio/ulc-vfprintf (configure.ac): Likewise. * modules/unistdio/ulc-vsnprintf (configure.ac): Likewise. * modules/unistdio/ulc-vsprintf (configure.ac): Likewise. 2021-12-31 Bruno Haible uniwidth: Optimize. * lib/gen-uni-tables.c (output_nonspacing_property): Add version parameter. Emit the usual boilerplate header for generated files. (is_width2): New function, based on lib/uniwidth/width.c. (output_width2_property): New function. (main): Create uniwidth/width0.h instead of uniwidth/width.c.part. Create uniwidth/width2.h. * lib/uniwidth/width.c: Include width0.h, width2.h, bitmap.h. (nonspacing_table_data, nonspacing_table_ind): Remove here. (uc_width): Replace the double-width character with an u_width2 bitmap lookup. * modules/uniwidth/width (Files): Add lib/uniwidth/width0.h, lib/uniwidth/width2.h, lib/unictype/bitmap.h. 2021-12-31 Bruno Haible Update to Unicode 14.0.0. * lib/gen-uni-tables.c (UC_JOINING_GROUP_THIN_YEH, UC_JOINING_GROUP_VERTICAL_TAIL): New enum values. (fill_arabicshaping, joining_group_as_c_identifier): Recognize these joining groups. * lib/unictype.in.h (UC_JOINING_GROUP_THIN_YEH, UC_JOINING_GROUP_VERTICAL_TAIL): New enum values. * lib/unictype/joininggroup_name.h: Add the THIN_YEH, VERTICAL_TAIL joining groups. * lib/unictype/joininggroup_byname.gperf: Likewise. * lib/gen-uni-tables.c (LBP_ID1, LBP_ID2): New enum values. (LBP_ID): Assign artificial value. (get_lbp): Use the extended_pictographic property to assign LBP_ID1, LBP_ID2 instead of LBP_ID. Update such that unilbrk/lbrkprop.txt comes out as expected. (debug_output_lbp): Print either LBP_ID1 or LBP_ID2 as LBP_ID. (lbp_value_to_string): Handle LBP_ID1, LBP_ID2 instead of LBP_ID. (output_lbrk_rules_as_tables): Treat LBP_ID as macro that maps to two table rows/columns. In rule LB30b, use LBP_ID2 in addition to LBP_EB. Remove redundant part of rule LB27. * lib/unilbrk/lbrktables.h (LBP_ID1, LBP_ID2): New enum values. (LBP_ID): Remove enum value. (unilbrk_table): Update declaration. * lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks_loop): Use LBP_ID1 instead of LBP_ID. * lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks_loop): Likewise. * lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks_loop): Likewise. * tests/unilbrk/test-u8-possible-linebreaks.c (test_function): Add a test of potential future emoji. * tests/unilbrk/test-u16-possible-linebreaks.c (test_function): Likewise. * tests/unilbrk/test-u32-possible-linebreaks.c (test_function): Likewise. * lib/uniwidth/width.c (nonspacing_table_data, nonspacing_table_ind): Update. (uc_width): Assign width 2 to the characters 0x1AFF0..0x1AFF3, 0x1AFF5..0x1AFFB, 0x1AFFD..0x1AFFE, 0x1B120..0x1B122, 0x1F6DD..0x1F6DF, 0x1F7F0, 0x1FA7B..0x1FA7C, 0x1FAA9..0x1FAAC, 0x1FAB7..0x1FABA, 0x1FAC3..0x1FAC5, 0x1FAD7..0x1FAD9, 0x1FAE0..0x1FAE7, 0x1FAF0..0x1FAF6. * tests/uniwidth/test-uc_width2.sh: Expect width 0 for the characters 0x0890..0x0891, 0x0898..0x089F, 0x08CA..0x0902, 0x0C3C, 0x180F, 0x1AC1..0x1ACE, 0x1DFA, 0x10F82..0x10F85, 0x11070, 0x11073..0x11074, 0x110C2, 0x1CF00..0x1CF2D, 0x1CF30..0x1CF46, 0x1E2AE. Expect ambiguous width for the character 0x1734. Expect width 2 for the characters 0x1AFF0..0x1AFF3, 0x1AFF5..0x1AFFB, 0x1AFFD..0x1AFFE, 0x1B120..0x1B122, 0x1F6DD..0x1F6DF, 0x1F7F0, 0x1FA7B..0x1FA7C, 0x1FAA9..0x1FAAC, 0x1FAB7..0x1FABA, 0x1FAC3..0x1FAC5, 0x1FAD7..0x1FAD9, 0x1FAE0..0x1FAE7, 0x1FAF0..0x1FAF6. * All generated files under lib/uni* and tests/uni*: Regenerate. * tests/uniname/NameAliases.txt: Update. * tests/uniname/UnicodeData.txt: Update. * tests/uninorm/NormalizationTest.txt: Update. * tests/unigbrk/GraphemeBreakTest.txt: Update. * tests/uniwbrk/WordBreakTest.txt: Update. * All the affected modules: Bump required libunistring version. 2021-12-31 Bruno Haible Update to Unicode 13.0.0. * lib/gen-uni-tables.c (is_WBP_MIDLETTER): Add character 0x055F. (get_wbp): Assign value WBP_ALETTER to the characters 0x02E5..0x02EB, 0x055A, 0x058A, 0xA708..0xA716. * lib/gen-uni-tables.c (LBP_CP1, LBP_CP2, LBP_OP1, LBP_OP2): New enum values. (LBP_OP, LBP_CP): Assign artificial values. (get_lbp): Use the unicode_width[] table to assign LBP_CP1, LBP_CP2 instead of LBP_CP, and LBP_OP1, LBP_OP2 instead of LBP_OP. Update such that unilbrk/lbrkprop.txt comes out as expected. (debug_output_lbp): Print either LBP_CP1 or LBP_CP2 as LBP_CP. Print either LBP_OP1 or LBP_OP2 as LBP_OP. (lbp_value_to_string): Handle LBP_CP1, LBP_CP2, LBP_OP1, LBP_OP2 instead of LBP_CP, LBP_OP. (output_lbrk_rules_as_tables): Treat LBP_CP and LBP_OP as macros that map to two table rows/columns. In rule LB30, use only LBP_OP1 instead of LBP_OP, and only LBP_CP1 instead of LBP_CP. Simplify rule LB22. * lib/unilbrk/lbrktables.h (LBP_CP1, LBP_CP2, LBP_OP1, LBP_OP2): New enum values. (LBP_OP, LBP_CP): Remove enum values. (unilbrk_table): Update declaration. * tests/unilbrk/test-u8-possible-linebreaks.c (test_function): Add a test for East Asian opening parenthesis. * tests/unilbrk/test-u16-possible-linebreaks.c (test_function): Likewise. * tests/unilbrk/test-u32-possible-linebreaks.c (test_function): Likewise. * lib/uniwidth/width.c (nonspacing_table_data, nonspacing_table_ind): Update. (uc_width): Assign width 2 to the characters 0x16FF0..0x16FF1, 0x18AF3..0x18CD5, 0x18D00..0x18D08, 0x1F6D6..0x1F6D7, 0x1F6FB..0x1F6FC, 0x1F90C, 0x1FA74, 0x1FA83..0x1FA86, 0x1FA96..0x1FAA8, 0x1FAB0..0x1FAB6, 0x1FAC0..0x1FAC2, 0x1FAD0..0x1FAD6. Assign width 1 to the characters 0x1F93B, 0x1F946. * tests/uniwidth/test-uc_width2.sh: Expect width 0 for the characters 0x0B55, 0x0D81, 0x1ABF..0x1AC0, 0xA82C, 0x10EAB..0x10EAC, 0x111CF, 0x1193B..0x1193C, 0x1193E, 0x11943, 0x16FE4. Expect width 2 for the characters 0x16FF0..0x16FF1, 0x18AF3..0x18CD5, 0x18D00..0x18D08, 0x1F6D6..0x1F6D7, 0x1F6FB..0x1F6FC, 0x1F90C, 0x1FA74, 0x1FA83..0x1FA86, 0x1FA96..0x1FAA8, 0x1FAB0..0x1FAB6, 0x1FAC0..0x1FAC2, 0x1FAD0..0x1FAD6. Expect width 1 for the characters 0x1F93B, 0x1F946. * All generated files under lib/uni* and tests/uni*: Regenerate. * tests/uniname/NameAliases.txt: Update. * tests/uniname/UnicodeData.txt: Update. * tests/uninorm/NormalizationTest.txt: Update. * tests/unigbrk/GraphemeBreakTest.txt: Update. * tests/uniwbrk/WordBreakTest.txt: Update. * All the affected modules: Bump required libunistring version. 2021-12-30 Bruno Haible uniwbrk: Correction of Unicode 10.0.0 support. * lib/gen-uni-tables.c (is_WBP_MIDLETTER): Remove character 0x02D7. The generated files are not affected. 2021-12-30 Bruno Haible Update to Unicode 12.1.0. * lib/gen-uni-tables.c: Update comments. * All generated files under lib/uni* and tests/uni*: Regenerate. * tests/uniname/NameAliases.txt: Update. * tests/uniname/UnicodeData.txt: Update. * tests/uninorm/NormalizationTest.txt: Update. * tests/unigbrk/GraphemeBreakTest.txt: Update. * tests/uniwbrk/WordBreakTest.txt: Update. * All the affected modules: Bump required libunistring version. 2021-12-30 Bruno Haible Update to Unicode 12.0.0. * lib/gen-uni-tables.c (is_property_default_ignorable_code_point): Exclude 0x13430..0x13438. (get_lbp): Update such that unilbrk/lbrkprop.txt comes out as expected. (get_wbp): Map 0xFF10..0xFF19 to WBP_NUMERIC. * lib/uniwidth/width.c (nonspacing_table_data, nonspacing_table_ind): Update. (uc_width): Assign width 2 to the characters 0x16FE2..0x16FE3, 0x187F2..0x187F7, 0x1B150..0x1B152, 0x1B164..0x1B167, 0x1F6D5, 0x1F6FA, 0x1F7E0..0x1F7EB, 0x1F90D..0x1F90F, 0x1FA70..0x1FA73, 0x1FA78..0x1FA7A, 0x1FA80..0x1FA82, 0x1FA90..0x1FA95. * tests/uniwidth/test-uc_width2.sh: Expect width 0 for the characters 0x0EBA, 0xA9BD, 0x119D4..0x119D7, 0x119DA..0x119DB, 0x119E0, 0x13430..0x13438, 0x16F4F, 0x1E130..0x1E136, 0x1E2EC..0x1E2EF. Expect width 2 for the characters 0x16FE2..0x16FE3, 0x187F2..0x187F7, 0x1B150..0x1B152, 0x1B164..0x1B167, 0x1F6D5, 0x1F6FA, 0x1F7E0..0x1F7EB, 0x1F90D..0x1F90F, 0x1FA70..0x1FA73, 0x1FA78..0x1FA7A, 0x1FA80..0x1FA82, 0x1FA90..0x1FA95. * All generated files under lib/uni* and tests/uni*: Regenerate. * tests/uniname/NameAliases.txt: Update. * tests/uniname/UnicodeData.txt: Update. * tests/uninorm/NormalizationTest.txt: Update. * tests/unigbrk/GraphemeBreakTest.txt: Update. * tests/uniwbrk/WordBreakTest.txt: Update. * All the affected modules: Bump required libunistring version. 2021-12-30 Paul Eggert crypto/sm3-buffer: fix C99 conformance bug * lib/sm3.c (sm3_process_block): Call varargs macro with enough arguments. Problem found by IBM XL/C 12.1.0.0 for AIX. 2021-12-30 Bruno Haible Update to Unicode 11.0.0. * lib/gen-uni-tables.c (is_property_default_ignorable_code_point): Simplify by use of PROP_PREPENDED_CONCATENATION_MARK. (UC_JOINING_GROUP_HANIFI_ROHINGYA_PA, UC_JOINING_GROUP_HANIFI_ROHINGYA_KINNA_YA): New enum values. (fill_arabicshaping, joining_group_as_c_identifier): Recognize these joining groups. (get_lbp): Update such that unilbrk/lbrkprop.txt comes out as expected. (WBP_EB, WBP_EM, WBP_GAZ, WBP_EBG): Remove enum values. (WBP_WSS): New enum value. (get_wbp): Update such that uniwbrk/wbrkprop.txt comes out as expected. (debug_output_wbp, fill_org_wbp, debug_output_org_wbp, output_wbp): Update for changed enum values. * lib/unictype.in.h (UC_JOINING_GROUP_HANIFI_ROHINGYA_*): New enum values. * lib/unictype/joininggroup_name.h: Add the HANIFI_ROHINGYA_* joining groups. * lib/unictype/joininggroup_byname.gperf: Likewise. * lib/unigbrk.in.h: Mark 4 enum values as obsolete. * lib/unigbrk/u-grapheme-breaks.h (FUNC): Handle emoji modifier sequence according to Unicode 11.0.0. * lib/unigbrk/u8-grapheme-breaks.c: Include , unictype.h. * lib/unigbrk/u16-grapheme-breaks.c: Likewise. * lib/unigbrk/u32-grapheme-breaks.c: Likewise. * lib/unigbrk/uc-grapheme-breaks.c: Likewise. * modules/unigbrk/u8-grapheme-breaks (Depends-on): Add unictype/property-extended-pictographic, stdbool. * modules/unigbrk/u16-grapheme-breaks (Depends-on): Likewise. * modules/unigbrk/u32-grapheme-breaks (Depends-on): Likewise. * modules/unigbrk/uc-grapheme-breaks (Depends-on): Likewise. * tests/unigbrk/test-u8-grapheme-breaks.c (main): Add test for emoji modifier / ZWJ sequence. * tests/unigbrk/test-u16-grapheme-breaks.c (main): Likewise. * tests/unigbrk/test-u32-grapheme-breaks.c (main): Likewise. * tests/unigbrk/test-uc-is-grapheme-break.c: Include , unictype.h. (main): Update workaround logic to match the one in lib/unigbrk/u-grapheme-breaks.h. * modules/unigbrk/uc-is-grapheme-break-tests (Depends-on): Add unictype/property-extended-pictographic, stdbool. * lib/uniwbrk.in.h: Mark 4 enum values as obsolete. (WBP_WSS): New enum value. * lib/uniwbrk/u-wordbreaks.h (FUNC): Handle emoji ZWJ sequences and horizontal whitespace according to Unicode 11.0.0. * lib/uniwbrk/u8-wordbreaks.c: Include unictype.h. * lib/uniwbrk/u16-wordbreaks.c: Likewise. * lib/uniwbrk/u32-wordbreaks.c: Likewise. * lib/uniwbrk/wbrktable.c (uniwbrk_prop_index, uniwbrk_table): Add a row and column for WBP_WSS. * lib/uniwbrk/wbrktable.h (uniwbrk_prop_index, uniwbrk_table): Update declarations. * modules/uniwbrk/u8-wordbreaks (Depends-on): Add unictype/property-extended-pictographic. * modules/uniwbrk/u16-wordbreaks (Depends-on): Likewise. * modules/uniwbrk/u32-wordbreaks (Depends-on): Likewise. * tests/uniwbrk/test-u8-wordbreaks.c (main): Update expected results. * tests/uniwbrk/test-u16-wordbreaks.c (main): Likewise. * tests/uniwbrk/test-u32-wordbreaks.c (main): Likewise. * tests/uniwbrk/test-uc-wordbreaks.c (wordbreakproperty_to_string): Update. * lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks_loop): Handle ZWJ according to Unicode 11.0.0. * lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks_loop): Likewise. * lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks_loop): Likewise. * lib/uniwidth/width.c (nonspacing_table_data, nonspacing_table_ind): Update. (uc_width): Assign width 2 to the characters 0x187ED..0x187F1, 0x1F6F9, 0x1F9E7..0x1F9FF. * tests/uniwidth/test-uc_width2.sh: Expect width 0 for the characters 0x07FD, 0x08D3, 0x09FE, 0x0C04, 0xA8FF, 0x10D24..0x10D27, 0x10F46..0x10F50, 0x110CD, 0x111C9, 0x1133B, 0x1145E, 0x1182F..0x11837, 0x11839..0x1183A, 0x11D90..0x11D91, 0x11D95, 0x11D97, 0x11EF3..0x11EF4. Expect width 2 for the characters 0x187ED..0x187F1, 0x1F6F9, 0x1F9E7..0x1F9FF. * All generated files under lib/uni* and tests/uni*: Regenerate. * tests/uniname/NameAliases.txt: Update. * tests/uniname/UnicodeData.txt: Update. * tests/uninorm/NormalizationTest.txt: Update. * tests/unigbrk/GraphemeBreakTest.txt: Update. * tests/uniwbrk/WordBreakTest.txt: Update. * All the affected modules: Bump required libunistring version. 2021-12-30 Bruno Haible unictype: Add Emoji properties from Unicode 11.0.0. * lib/gen-uni-tables.c (PROP_EMOJI*, PROP_EXTENDED_PICTOGRAPHIC): New enum values. (fill_properties): Don't require a space between the property name and the comment. Handle the property names from emoji-data.txt. (is_property_emoji, is_property_emoji_presentation, is_property_emoji_modifier, is_property_emoji_modifier_base, is_property_emoji_component, is_property_extended_pictographic): New declarations. (output_properties): Emit the properties emoji, emoji_presentation, emoji_modifier, emoji_modifier_base, emoji_component, extended_pictographic. (get_lbp): Use the emoji_modifier property. (main): Expect one more argument, for the emoji-data.txt file. * lib/unictype.in.h (UC_PROPERTY_EMOJI, UC_PROPERTY_EMOJI_PRESENTATION, UC_PROPERTY_EMOJI_MODIFIER, UC_PROPERTY_EMOJI_MODIFIER_BASE, UC_PROPERTY_EMOJI_COMPONENT, UC_PROPERTY_EXTENDED_PICTOGRAPHIC, uc_is_property_emoji, uc_is_property_emoji_presentation, uc_is_property_emoji_modifier, uc_is_property_emoji_modifier_base, uc_is_property_emoji_component, uc_is_property_extended_pictographic): New declarations. * lib/unictype/pr_emoji.c: New file. * lib/unictype/pr_emoji_presentation.c: New file. * lib/unictype/pr_emoji_modifier.c: New file. * lib/unictype/pr_emoji_modifier_base.c: New file. * lib/unictype/pr_emoji_component.c: New file. * lib/unictype/pr_extended_pictographic.c: New file. * modules/unictype/property-emoji: New file. * modules/unictype/property-emoji-tests: New file. * modules/unictype/property-emoji-presentation: New file. * modules/unictype/property-emoji-presentation-tests: New file. * modules/unictype/property-emoji-modifier: New file. * modules/unictype/property-emoji-modifier-tests: New file. * modules/unictype/property-emoji-modifier-base: New file. * modules/unictype/property-emoji-modifier-base-tests: New file. * modules/unictype/property-emoji-component: New file. * modules/unictype/property-emoji-component-tests: New file. * modules/unictype/property-extended-pictographic: New file. * modules/unictype/property-extended-pictographic-tests: New file. * modules/unictype/property-all (Depends-on): Depend on the new modules. 2021-12-29 Bruno Haible uniwidth: Give width 0 to conjoining Hangul Jamo jungseong, jongseong. Reported by Luis Javier Merino in . * lib/gen-uni-tables.c (is_nonspacing): Return true for the conjoining Hangul Jamo jungseong and jongseong characters. * lib/uniwidth/width.c (nonspacing_table_data, nonspacing_table_ind): Regenerated. * tests/uniwidth/test-uc_width2.sh: Expect width 0 for the characters 0x1160..0x11FF, 0xD7B0..0xD7C6, 0xD7CB..0xD7FB. 2021-12-29 Bruno Haible uniwidth: Update to Unicode 10.0.0. * lib/uniwidth/width.c (uc_width): Assign width 2 to the characters 0x231A..0x231B, 0x23E9..0x23EC, 0x23F0, 0x23F3, 0x25FD..0x25FE, 0x2614..0x2615, 0x2648..0x2653, 0x267F, 0x2693, 0x26A1, 0x26AA..0x26AB, 0x26BD..0x26BE, 0x26C4..0x26C5, 0x26CE, 0x26D4, 0x26EA, 0x26F2..0x26F3, 0x26F5, 0x26FA, 0x26FD, 0x2705, 0x270A..0x270B, 0x2728, 0x274C, 0x274E, 0x2753..0x2755, 0x2757, 0x2795..0x2797, 0x27B0, 0x27BF, 0x2B1B..0x2B1C, 0x2B50, 0x2B55, 0xA960..0xA97C, 0x16FE0..0x16FE1, 0x17000..0x187EC, 0x18800..0x18AF2, 0x1B000..0x1B11F, 0x1B170..0x1B2FB, 0x1F004, 0x1F0CF, 0x1F18E, 0x1F191..0x1F19A, 0x1F200..0x1F320, 0x1F32D..0x1F335, 0x1F337..0x1F37C, 0x1F37E..0x1F393, 0x1F3A0..0x1F3CA, 0x1F3CF..0x1F3D3, 0x1F3E0..0x1F3F0, 0x1F3F4, 0x1F3F8..0x1F43E, 0x1F440, 0x1F442..0x1F4FC, 0x1F4FF..0x1F53D, 0x1F54B..0x1F54E, 0x1F550..0x1F567, 0x1F57A, 0x1F595..0x1F596, 0x1F5A4, 0x1F5FB..0x1F64F, 0x1F680..0x1F6C5, 0x1F6CC, 0x1F6D0..0x1F6D2, 0x1F6EB..0x1F6EC, 0x1F6F4..0x1F6F8, 0x1F910..0x1F9E6. Assign ambiguous width to the characters 0x3248..0x324F. * tests/uniwidth/test-uc_width2.sh: Expect these changes. 2021-12-29 Bruno Haible unilbrk: Improve support for strings that contain CR-LF sequences. * lib/gen-uni-tables.c (LBP_CR, LBP_LF): New enum values. (get_lbp): For '\r' and '\n', return LBP_CR and LBP_LF, respectively, instead of LBP_BK. (debug_output_lbp, fill_org_lbp, debug_output_org_lbp, lbp_value_to_string): Handle LBP_CR, LBP_LF. * lib/unilbrk/lbrkprop2.h: Regenerated. * lib/unilbrk/lbrktables.h (LBP_CR, LBP_LF): New enum values. * lib/unilbrk.in.h (UC_BREAK_CR_BEFORE_LF): New enum value. (u8_possible_linebreaks, u16_possible_linebreaks, u32_possible_linebreaks, ulc_possible_linebreaks, u8_width_linebreaks, u16_width_linebreaks, u32_width_linebreaks, ulc_width_linebreaks): Declare also a _v2 variant, and use a C macro to activate it by default. * lib/unilbrk/internal.h: New file. * lib/unilbrk/u8-possible-linebreaks.c: Include unilbrk/internal.h. (u8_possible_linebreaks_loop): Renamed from u8_possible_linebreaks. Add 'cr' parameter. (u8_possible_linebreaks, u8_possible_linebreaks_v2): New functions. (main): Update. * lib/unilbrk/u16-possible-linebreaks.c: Include unilbrk/internal.h. (u16_possible_linebreaks_loop): Renamed from u16_possible_linebreaks. Add 'cr' parameter. (u16_possible_linebreaks, u16_possible_linebreaks_v2): New functions. * lib/unilbrk/u32-possible-linebreaks.c: Include unilbrk/internal.h. (u32_possible_linebreaks_loop): Renamed from u32_possible_linebreaks. Add 'cr' parameter. (u32_possible_linebreaks, u32_possible_linebreaks_v2): New functions. * lib/unilbrk/ulc-possible-linebreaks.c: Include unilbrk/internal.h, unilbrk/lbrktables.h. (ulc_possible_linebreaks_internal): Renamed from ulc_possible_linebreaks. Add 'cr' parameter. (ulc_possible_linebreaks, ulc_possible_linebreaks_v2): New functions. (main): Update. * lib/unilbrk/u8-width-linebreaks.c: Include unilbrk/internal.h, unilbrk/lbrktables.h. (u8_width_linebreaks_internal): Renamed from u8_width_linebreaks. Add 'cr' parameter. (u8_width_linebreaks, u8_width_linebreaks_v2): New functions. (main): Update. * lib/unilbrk/u16-width-linebreaks.c: Include unilbrk/internal.h, unilbrk/lbrktables.h. (u16_width_linebreaks_internal): Renamed from u16_width_linebreaks. Add 'cr' parameter. (u16_width_linebreaks, u16_width_linebreaks_v2): New functions. * lib/unilbrk/u32-width-linebreaks.c: Include unilbrk/internal.h, unilbrk/lbrktables.h. (u32_width_linebreaks_internal): Renamed from u32_width_linebreaks. Add 'cr' parameter. (u32_width_linebreaks, u32_width_linebreaks_v2): New functions. * lib/unilbrk/ulc-width-linebreaks.c: Include unilbrk/internal.h, unilbrk/lbrktables.h. (ulc_width_linebreaks_internal): Renamed from ulc_width_linebreaks. Add 'cr' parameter. (ulc_width_linebreaks, ulc_width_linebreaks_v2): New functions. (main): Update. * modules/unilbrk/u8-possible-linebreaks (Files): Add lib/unilbrk/internal.h. * modules/unilbrk/u16-possible-linebreaks (Files): Likewise. * modules/unilbrk/u32-possible-linebreaks (Files): Likewise. * modules/unilbrk/u8-width-linebreaks (Files): Likewise. * tests/unilbrk/test-u8-possible-linebreaks.c (test_function): New function, extracted from main. Add a test of CR-LF handling. (main): Invoke it twice. * tests/unilbrk/test-u16-possible-linebreaks.c (test_function): New function, extracted from main. Add a test of CR-LF handling. (main): Invoke it twice. * tests/unilbrk/test-u32-possible-linebreaks.c (test_function): New function, extracted from main. Add a test of CR-LF handling. (main): Invoke it twice. * tests/unilbrk/test-ulc-possible-linebreaks.c (test_function): New function, extracted from main. (main): Invoke it twice. * tests/unilbrk/test-u8-width-linebreaks.c (test_function): New function, extracted from main. (main): Invoke it twice. * tests/unilbrk/test-u16-width-linebreaks.c (test_function): New function, extracted from main. (main): Invoke it twice. * tests/unilbrk/test-u32-width-linebreaks.c (test_function): New function, extracted from main. (main): Invoke it twice. * tests/unilbrk/test-ulc-width-linebreaks.c (test_function): New function, extracted from main. (main): Invoke it twice. 2021-12-29 Bruno Haible uniwbrk: Add unit tests of CR-LF sequences. * tests/uniwbrk/test-u8-wordbreaks.c (main): Add test of a string with CR-LF. * tests/uniwbrk/test-u16-wordbreaks.c (main): Likewise. * tests/uniwbrk/test-u32-wordbreaks.c (main): Likewise. 2021-12-29 Bruno Haible unigbrk: Add unit tests of CR-LF sequences. * tests/unigbrk/test-u8-grapheme-breaks.c (main): Add test of a string with CR-LF. * tests/unigbrk/test-u16-grapheme-breaks.c (main): Likewise. * tests/unigbrk/test-u32-grapheme-breaks.c (main): Likewise. 2021-12-29 Bruno Haible unilbrk: Update handling of Hebrew letter + hyphen for Unicode 10.0.0. * lib/unilbrk/lbrktables.h (LBP_HL_BA): New enum value. * lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks): Add code for handling break-after character after Hebrew letter. * lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks): Likewise. * lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks): Likewise. * tests/unilbrk/test-u8-possible-linebreaks.c (main): Add a test regarding break-after character after Hebrew letter. * tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise. 2021-12-28 Paul Eggert nstrftime: improve handling of invalid formats * lib/nstrftime.c (__strftime_internal): Without this change, ‘date +'%0_-+^#1%A'’ would output ‘%A’; with it, it outputs something like ‘%0_-+^#1Tuesday’ which is easier to debug and to write wrappers for (such as the nstrftime/fprintftime usage in GNU ‘date’). 2021-12-28 Bruno Haible unilbrk: Update handling of regional indicators for Unicode 10.0.0. * lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks): Add code for handling regional indicators. * lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks): Likewise. * lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks): Likewise. * tests/unilbrk/test-u8-possible-linebreaks.c (main): Add a test regarding regional indicators. * tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise. 2021-12-28 Bruno Haible unilbrk: Update handling of zero-width joiner for Unicode 10.0.0. * lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks): Update code for zero-width joiner handling to match UAX #14 for Unicode 10.0.0. * lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks): Likewise. * lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks): Likewise. * tests/unilbrk/test-u8-possible-linebreaks.c (main): Add a test regarding zero-width joiner. * tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise. 2021-12-28 Bruno Haible unilbrk: Update handling of combining marks for Unicode 10.0.0. * lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks): Update code for combining characters to match UAX #14 for Unicode 10.0.0. Remove legacy support for space + combining mark. * lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks): Likewise. * lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks): Likewise. * tests/unilbrk/test-u8-possible-linebreaks.c (main): Add a test regarding combining characters. * tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise. 2021-12-28 Bruno Haible unilbrk: Restore deviation for (IS,AL) pair. * lib/gen-uni-tables.c (output_lbrk_rules_as_tables): Disable rule LB29. * lib/unilbrk/lbrktables.c: Regenerated. * tests/unilbrk/test-u8-possible-linebreaks.c (main): Add test case with HTML markup. * tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-ulc-possible-linebreaks.c (main): Likewise. 2021-12-28 Bruno Haible unilbrk: Change algorithm to be closer to Unicode Standard Annex #14. * lib/gen-uni-tables.c (lbp_value_to_string): New function, extracted from output_lbp. (output_lbp): Invoke it. (output_lbrk_rules_as_tables): New function. (main): Invoke it. * lib/unilbrk/lbrktables.c: Now automatically generated. * tests/unilbrk/test-u8-possible-linebreaks.c (main): Update expected result. * tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-ulc-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-ulc-width-linebreaks.c (main): Likewise. 2021-12-28 Bruno Haible uniwbrk: Add unit tests of regional indicators. * tests/uniwbrk/test-u8-wordbreaks.c (main): Add test of regional indicators. * tests/uniwbrk/test-u16-wordbreaks.c (main): Likewise. * tests/uniwbrk/test-u32-wordbreaks.c (main): Likewise. 2021-12-28 Bruno Haible unigbrk: Simplify code for regional indicators. * lib/unigbrk/u-grapheme-breaks.h (FUNC): Make code for regional indicators more future-proof. * tests/unigbrk/test-u8-grapheme-breaks.c (main): Add test of regional indicators. * tests/unigbrk/test-u16-grapheme-breaks.c (main): Likewise. * tests/unigbrk/test-u32-grapheme-breaks.c (main): Likewise. 2021-12-28 Paul Eggert clock_getres: document portability issues better * doc/posix-functions/clock_getres.texi: * doc/posix-functions/timespec_getres.texi: Document problems with timestamp resolution. timespec_getres: new module * lib/time.in.h (timespec_getres): New decl. * lib/timespec_getres.c, m4/timespec_getres.m4: * modules/timespec_getres, modules/timespec_getres-tests: * tests/test-timespec_getres.c: New files. * m4/time_h.m4 (gl_TIME_H_REQUIRE_DEFAULTS, gl_TIME_H_DEFAULTS): * modules/time (time.h): Support timespec_getres. gettime-res: new module * lib/gettime-res.c, modules/gettime-res: New files. * lib/timespec.h (gettime_res): New decl. * m4/clock_time.m4 (gl_CLOCK_TIME): Also check for clock_getres. * m4/gettime.m4 (gl_GETTIME_RES): New macro. gettime: port better to non-POSIX C2x C2x requires a function timespec_get; prefer that to gettimeofday, since it has better resolution. * lib/gettime.c (gettime): Prefer timespec_get to gettimeofday. * m4/gettime.m4 (gl_GETTIME): Check for timespec_get. Omit a check for gettimeofday; not needed because the gettime module depends on the gettimeofday module. 2021-12-28 Bruno Haible gen-uni-tables: Produce license notices suitable for Gnulib. * lib/gen-uni-tables.c (output_library_license, output_tests_license): Produce license notices that are consistent with the gnulib/etc/license-notices/ files. * All generated files under lib/uni* and tests/uni*: Regenerate. 2021-12-28 Bruno Haible unigbrk, uniwbrk: No-op tweaks. * lib/unigbrk/u-grapheme-breaks.h: Comment tweaks. * lib/uniwbrk/u-wordbreaks.h: Coding style and comment tweaks. * lib/uniwbrk/wbrktable.c: Comment tweaks. 2021-12-28 Paul Eggert perl: let caller see whether perl was found Problem reported for coreutils by Serge Belyshev (Bug#52844). * m4/perl.m4 (gl_PERL): Use AC_CACHE_CHECK, so that an invoker of gl_PERL can later inspect gl_cv_prog_perl to see whether perl was found. 2021-12-28 Bruno Haible Fix --automake-subdir breakage (regression 2021-12-24). Reported by Bjarni Ingi Gislason in . * build-aux/prefix-gnulib-mk (prefix_assignment): Don't change SED_HEADER_* variables. 2021-12-26 Bruno Haible Update to Unicode 10.0.0. * lib/gen-uni-tables.c (PROP_REGIONAL_INDICATOR): New enum value. (fill_properties): Recognize property "Regional_Indicator". (is_property_regional_indicator): New function. (output_properties): Also output the data for regional_indicator. (get_lbp): Update such that unilbrk/lbrkprop.txt comes out as expected. Use is_property_regional_indicator. (get_wbp): Update such that uniwbrk/wbrkprop.txt comes out as expected. Use is_property_regional_indicator. (UC_JOINING_GROUP_MALAYALAM_*): New enum values. (fill_arabicshaping, joining_group_as_c_identifier): Recognize these joining groups. * lib/uniname/gen-uninames.lisp (main): Ignore empty lines and comment lines in the aliases file. Needed because since 2015-06-20, we use the unmodified Unicode NameAliases.txt file. Remove reference to undefined variable. Correct indentation. * lib/unictype.in.h (UC_PROPERTY_REGIONAL_INDICATOR, uc_is_property_regional_indicator): New declarations. * lib/unictype/pr_regional_indicator.c: New file. * modules/unictype/property-regional-indicator: New file. * modules/unictype/property-regional-indicator-tests: New file. * modules/unictype/property-all (Depends-on): Add unictype/property-regional-indicator. * lib/unictype.in.h (UC_JOINING_GROUP_MALAYALAM_*): New enum values. * lib/unictype/joininggroup_name.h: Add the MALAYALAM_* joining groups. * lib/unictype/joininggroup_byname.gperf: Likewise. * lib/uniwidth/width.c (nonspacing_table_data, nonspacing_table_ind): Update. * tests/uniwidth/test-uc_width2.sh: Expect width 0 for the characters 0x0AFA..0x0AFF, 0x0D00, 0x0D3B..0x0D3C, 0x1DF6..0x1DF9, 0x11A01..0x11A06, 0x11A09..0x11A0A, 0x11A33..0x11A38, 0x11A3B..0x11A3E, 0x11A47, 0x11A51..0x11A56, 0x11A59..0x11A5B, 0x11A8A..0x11A96, 0x11A98..0x11A99, 0x11D31..0x11D36, 0x11D3A, 0x11D3C..0x11D3D, 0x11D3F..0x11D45, 0x11D47. * All generated files under lib/uni* and tests/uni*: Regenerate. * tests/uniname/NameAliases.txt: Update. * tests/uniname/UnicodeData.txt: Update. * tests/uninorm/NormalizationTest.txt: Update. * tests/unigbrk/GraphemeBreakTest.txt: Update. * tests/uniwbrk/WordBreakTest.txt: Update. * All the affected modules: Bump required libunistring version. 2021-12-26 Bruno Haible pselect: Fix compilation error in C++ mode on AIX 7. * lib/sys_select.in.h (pselect): Use _GL_CXXALIAS_SYS_CAST instead of _GL_CXXALIAS_SYS. * doc/posix-functions/pselect.texi: Mention the AIX problem. 2021-12-25 Bruno Haible gnulib-tool: Fix handling of module libtextstyle-optional. Reported by Paul Eggert in . * gnulib-tool (func_repeat_module_in_tests): New function. (func_emit_tests_Makefile_am, func_create_testdir): Use it for the file list and when creating tests/Makefile.am. 2021-12-25 Bruno Haible gnulib-tool: Respect applicability 'all' without --single-configure. * gnulib-tool (func_verify_tests_module): Treat modules with applicability 'all' like 'tests' modules, not like 'main' modules. 2021-12-24 Paul Eggert maint: avoid empty lines in recipes AIX 7.2 ‘make’ complains about recipe lines that are empty after macro expansion, and I suppose there’s a good chance some non-POSIX ‘make’ would prohibit them. Rework macros so that we can avoid them. * gnulib-tool (func_emit_lib_Makefile_am) (func_emit_tests_Makefile_am): Support @!NMD@ too. * modules/gen-header (@gl_V_at): New macro. * modules/alloca-opt, modules/argz, modules/assert-h: * modules/byteswap, modules/configmake, modules/ctype: * modules/dirent, modules/errno, modules/execinfo, modules/fcntl-h: * modules/float, modules/fnmatch-h, modules/getopt-posix: * modules/glob-h, modules/iconv-h, modules/ieee754-h: * modules/inttypes-incomplete, modules/langinfo: * modules/libtextstyle-optional, modules/limits-h, modules/locale: * modules/malloc-h, modules/math, modules/monetary, modules/netdb: * modules/openmp-init, modules/poll-h, modules/posix-shell: * modules/pthread-h, modules/pty, modules/sched, modules/search: * modules/signal-h, modules/sigsegv, modules/snippet/link-warning: * modules/spawn, modules/stdalign, modules/stdarg, modules/stdbool: * modules/stddef, modules/stdint, modules/stdio, modules/stdlib: * modules/stdnoreturn, modules/string, modules/strings: * modules/sysexits, modules/termios, modules/threads-h: * modules/time, modules/uchar, modules/unicase/base: * modules/uniconv/base, modules/unictype/base, modules/unigbrk/base: * modules/unilbrk/base, modules/uniname/base, modules/uninorm/base: * modules/unistd, modules/unistdio/base, modules/unistr/base: * modules/unitypes, modules/uniwbrk/base, modules/uniwidth/base: * modules/utime-h, modules/wchar, modules/wctype-h: Use it. maint: tight-scope.mk need not be read-only * top/maint.mk (tight-scope.mk): Don’t bother to make tight-scope.mk read-only either. maint: break out '&& mv $@-t $@' * build-aux/git-version-gen, config/argz.mk, modules/configmake: * modules/posix_spawnp-tests, modules/snippet/link-warning: * top/maint.mk: Break out '&& mv $@-t $@' to a separate line in the Make recipe, as this makes things a bit easier to debug. gen-header: new module Simplify header generation by using Makefile variables defined by a new gen-header module. * modules/gen-header: New module. * modules/alloca-opt, modules/argz, modules/arpa_inet: * modules/assert-h, modules/byteswap: * modules/ctype, modules/dirent, modules/dynarray, modules/errno: * modules/execinfo, modules/fcntl-h, modules/float: * modules/fnmatch-h, modules/getopt-posix, modules/glob-h: * modules/iconv-h, modules/ieee754-h, modules/inttypes-incomplete: * modules/langinfo, modules/libtextstyle-optional, modules/limits-h: * modules/locale, modules/malloc-h, modules/math, modules/monetary: * modules/net_if, modules/netdb, modules/netinet_in: * modules/openmp-init, modules/poll-h: * modules/pthread-h, modules/pty, modules/sched: * modules/scratch_buffer, modules/search, modules/selinux-h: * modules/signal-h, modules/sigsegv: * modules/spawn, modules/stdalign, modules/stdarg, modules/stdbool: * modules/stddef, modules/stdint, modules/stdio, modules/stdlib: * modules/stdnoreturn, modules/string, modules/strings: * modules/sys_file, modules/sys_ioctl, modules/sys_random: * modules/sys_resource, modules/sys_select, modules/sys_socket: * modules/sys_stat, modules/sys_time, modules/sys_times: * modules/sys_types, modules/sys_uio, modules/sys_utsname: * modules/sys_wait, modules/sysexits, modules/termios: * modules/threads-h, modules/time, modules/uchar: * modules/unicase/base, modules/unicase/special-casing: * modules/uniconv/base, modules/unictype/base, modules/unigbrk/base: * modules/unilbrk/base, modules/uniname/base, modules/uninorm/base: * modules/unistd, modules/unistdio/base, modules/unistr/base: * modules/unitypes, modules/uniwbrk/base, modules/uniwidth/base: * modules/utime-h, modules/wchar, modules/wctype-h: Depend on gen-header, and use its macros to simplify header generation. 2021-12-24 Bruno Haible passfd: Fix compilation error on IRIX. * lib/passfd.c (sendfd): On IRIX, ignore CMSG_FIRSTHDR. (recvfd): Likewise. Produce a fake error ENOTCONN. 2021-12-24 Bruno Haible tests: Fix link errors on AIX. * modules/fnmatch-h-c++-tests (Makefile.am): Link test-fnmatch-h-c++ with $(LIB_MBRTOWC). * modules/glob-h-c++-tests (Makefile.am): Link test-glob-h-c++ with $(LIB_MBRTOWC). * modules/stdlib-c++-tests (Makefile.am): Link test-stdlib-c++ with $(GETLOADAVG_LIBS). * modules/sys_stat-c++-tests (Makefile.am): Link test-sys_stat-c++ with $(LIB_MBRTOWC). * modules/uchar-c++-tests (Makefile.am): Link test-uchar-c++ with $(LIBUNISTRING). 2021-12-24 Bruno Haible hamt tests: Fix compilation error with AIX xlc. * tests/test-hamt.c (test_iterator): Don't use compound initializer. 2021-12-24 Bruno Haible strerrorname_np: Fix compilation error on IRIX. * lib/strerrorname_np.c (strerrorname_np): Handle conflict between EDIRCORRUPTED and EFSCORRUPTED. * tests/test-strerrorname_np.c (main): Likewise. 2021-12-24 Bruno Haible hamt: Fix compilation error on NetBSD 7. * lib/hamt.h (GL_HAMT_THREAD_SAFE): Define to 0 if the compiler is a GCC version < 4.9. 2021-12-24 Bruno Haible search: Fix compilation errors with SunPRO C++ on Solaris 10. * lib/search.in.h (_gl_lsearch_compar_fn): New type. (lfind, lsearch): Use it. 2021-12-24 Bruno Haible qsort_r: Fix compilation error with SunPRO C++ on Solaris 10. * lib/stdlib.in.h (_gl_qsort_r_compar_fn): New type. (qsort_r): Use it. * tests/test-stdlib-c++.cc (qsort_r): Don't test with SunPRO C++. 2021-12-24 Bruno Haible threads-h tests: Avoid clang warnings. * tests/test-threads.c (main): Add 'default' to switch statements. 2021-12-24 Bruno Haible doc: Small updates. * doc/glibc-functions/ptsname_r.texi: Update info regarding Mac OS X. * doc/posix-functions/getlogin_r.texi: Update info regarding FreeBSD. 2021-12-22 Paul Eggert libgmp: omit redundant 'mkdir -p .' * modules/libgmp: Mark $(MKDIR) with @NMD@; this was missed in a previous pass. maint: omit unnecessary ‘rm -f $@-t $@’ * modules/alloca-opt, modules/argz, modules/arpa_inet: * modules/assert-h, modules/byteswap, modules/configmake: * modules/ctype, modules/dirent, modules/dynarray, modules/errno: * modules/execinfo, modules/fcntl-h, modules/float: * modules/fnmatch-h, modules/getopt-posix, modules/glob-h: * modules/iconv-h, modules/ieee754-h, modules/inttypes-incomplete: * modules/langinfo, modules/libtextstyle-optional: * modules/limits-h, modules/langinfo, modules/libgmp, modules/limits-h: * modules/locale, modules/malloc-h, modules/math, modules/monetary: * modules/net_if, modules/netdb, modules/netinet_in: * modules/openmp-init, modules/poll-h, modules/posix-shell: * modules/posix_spawnp-tests, modules/pthread-h, modules/pty: * modules/sched, modules/scratch_buffer, modules/search: * modules/selinux-h, modules/signal-h, modules/sigsegv: * modules/snippet/link-warning, modules/spawn, modules/stdalign: * modules/stdarg, modules/stdbool, modules/stddef, modules/stdint: * modules/stdio, modules/stdlib, modules/stdnoreturn: * modules/string, modules/strings, modules/sys_file: * modules/sys_ioctl, modules/sys_random, modules/sys_resource: * modules/sys_select, modules/sys_socket, modules/sys_stat: * modules/sys_time, modules/sys_times, modules/sys_types: * modules/sys_uio, modules/sys_utsname, modules/sys_wait: * modules/sysexits, modules/termios, modules/threads-h: * modules/time, modules/uchar, modules/unicase/base: * modules/unicase/special-casing, modules/uniconv/base: * modules/unictype/base, modules/unigbrk/base, modules/unilbrk/base: * modules/uniname/base, modules/uninorm/base, modules/unistd: * modules/unistdio/base, modules/unistr/base, modules/unitypes: * modules/uniwbrk/base, modules/uniwidth/base, modules/utime-h: * modules/wchar, modules/wctype-h: Don’t bother to do a ‘rm -f $@-t $@’ at the start of recipes that create .h and similar files. This is a revenant of a style in which the files were created read-only. Also, consistently use use plain ‘mv $@-t $@’ afterwards, instead of usually using ‘mv -f’ but sometimes plain ‘mv’. 2021-12-21 Paul Eggert maint: fix __clang_major__ misspellings The intprops.h typo fix should fix a bug in Emacs on Debian testing with clang . * lib/asyncsafe-spin.c, lib/intprops.h, lib/pthread-spin.c: Fix some misspellings of ‘__clang_major__’. I left one misspelling alone, in lib/cdefs.h, and instead reported that bug upstream here: https://sourceware.org/pipermail/libc-alpha/2021-December/134512.html 2021-12-21 Bruno Haible get_ppid_of, get_progname_of: Fix runtime error on Mac OS X < 10.5. Reported by Evan Miller . * lib/get_ppid_of.c (proc_pidinfo): Declare with WEAK_IMPORT_ATTRIBUTE. (get_ppid_of): Test whether the symbol declared weak evaluates to non-NULL before invoking it. * lib/get_progname_of (proc_pidinfo): Declare with WEAK_IMPORT_ATTRIBUTE. (get_progname_of): Test whether the symbol declared weak evaluates to non-NULL before invoking it. 2021-12-21 Paul Eggert Move AM_V_GEN to recipe start This is especially needed when building Emacs, as it uses ‘AM_V_GEN=@$(info GEN $@)', which means the GEN line is output by GNU make just before the recipe runs, regardless of where AM_V_GEN appears in the recipe. And it’s also good practice even if the default Automake ‘AM_V_GEN=@echo GEN $@;’ is used, as it’s better to output the GEN line consistently at the start of every recipe, even if this precedes a preparatory command that almost always works silently. * modules/arpa_inet, modules/dynarray, modules/net_if: * modules/netinet_in, modules/scratch_buffer, modules/selinux-h: * modules/sys_file, modules/sys_ioctl, modules/sys_random: * modules/sys_resource, modules/sys_select, modules/sys_socket: * modules/sys_stat, modules/sys_time, modules/sys_times: * modules/sys_types, modules/sys_uio, modules/sys_utsname: * modules/sys_wait, modules/unicase/special-casing, top/maint.mk: Use AM_V_GEN only at the start of each recipe. 2021-12-21 Bruno Haible c-xvasprintf: Fix declarations (regression 2021-08-07). * lib/c-xvasprintf.h (c_xasprintf, c_xvasprintf): Remove _GL_ATTRIBUTE_RETURNS_NONNULL attribute. 2021-12-21 Bruno Haible snippet/warn-on-use: Fix compilation error in C++ mode on OpenBSD 7.0. * lib/warn-on-use.h (_GL_WARN_ON_USE): In C++ mode, declare function with "C" linkage. 2021-12-21 Bruno Haible Optimize redundant 'mkdir -p .' invocations. Reported by Paul Eggert. * gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Eliminate @NMD@ tokens. * modules/alloca-opt (Makefile.am): Prefix the "$(MKDIR_P) '%reldir%'" line with @NMD@. * modules/argz (Makefile.am): Likewise. * modules/assert-h (Makefile.am): Likewise. * modules/byteswap (Makefile.am): Likewise. * modules/configmake (Makefile.am): Likewise. * modules/ctype (Makefile.am): Likewise. * modules/dirent (Makefile.am): Likewise. * modules/errno (Makefile.am): Likewise. * modules/execinfo (Makefile.am): Likewise. * modules/fcntl-h (Makefile.am): Likewise. * modules/float (Makefile.am): Likewise. * modules/fnmatch-h (Makefile.am): Likewise. * modules/getopt-posix (Makefile.am): Likewise. * modules/glob-h (Makefile.am): Likewise. * modules/iconv-h (Makefile.am): Likewise. * modules/ieee754-h (Makefile.am): Likewise. * modules/inttypes-incomplete (Makefile.am): Likewise. * modules/langinfo (Makefile.am): Likewise. * modules/libtextstyle-optional (Makefile.am): Likewise. * modules/limits-h (Makefile.am): Likewise. * modules/locale (Makefile.am): Likewise. * modules/malloc-h (Makefile.am): Likewise. * modules/math (Makefile.am): Likewise. * modules/monetary (Makefile.am): Likewise. * modules/netdb (Makefile.am): Likewise. * modules/openmp-init (Makefile.am): Likewise. * modules/poll-h (Makefile.am): Likewise. * modules/posix-shell (Makefile.am): Likewise. * modules/pthread-h (Makefile.am): Likewise. * modules/pty (Makefile.am): Likewise. * modules/sched (Makefile.am): Likewise. * modules/search (Makefile.am): Likewise. * modules/signal-h (Makefile.am): Likewise. * modules/sigsegv (Makefile.am): Likewise. * modules/snippet/link-warning (Makefile.am): Likewise. * modules/spawn (Makefile.am): Likewise. * modules/stdalign (Makefile.am): Likewise. * modules/stdarg (Makefile.am): Likewise. * modules/stdbool (Makefile.am): Likewise. * modules/stddef (Makefile.am): Likewise. * modules/stdint (Makefile.am): Likewise. * modules/stdio (Makefile.am): Likewise. * modules/stdlib (Makefile.am): Likewise. * modules/stdnoreturn (Makefile.am): Likewise. * modules/string (Makefile.am): Likewise. * modules/strings (Makefile.am): Likewise. * modules/sysexits (Makefile.am): Likewise. * modules/termios (Makefile.am): Likewise. * modules/threads-h (Makefile.am): Likewise. * modules/time (Makefile.am): Likewise. * modules/uchar (Makefile.am): Likewise. * modules/unicase/base (Makefile.am): Likewise. * modules/uniconv/base (Makefile.am): Likewise. * modules/unictype/base (Makefile.am): Likewise. * modules/unigbrk/base (Makefile.am): Likewise. * modules/unilbrk/base (Makefile.am): Likewise. * modules/uniname/base (Makefile.am): Likewise. * modules/uninorm/base (Makefile.am): Likewise. * modules/unistd (Makefile.am): Likewise. * modules/unistdio/base (Makefile.am): Likewise. * modules/unistr/base (Makefile.am): Likewise. * modules/unitypes (Makefile.am): Likewise. * modules/uniwbrk/base (Makefile.am): Likewise. * modules/uniwidth/base (Makefile.am): Likewise. * modules/utime-h (Makefile.am): Likewise. * modules/wchar (Makefile.am): Likewise. * modules/wctype-h (Makefile.am): Likewise. 2021-12-19 Bruno Haible non-recursive-gnulib-prefix-hack: Deprecate module. * modules/non-recursive-gnulib-prefix-hack (Status, Notice): New sections. 2021-12-19 Bruno Haible gnulib-tool: Don't insist on ACLOCAL_AMFLAGS. Reported by Bjarni Ingi Gislason in . * gnulib-tool (func_import): Mention an AC_CONFIG_MACRO_DIRS invocation as an alternative to augmenting ACLOCAL_AMFLAGS. (--import, --add-import, --remove-import, --update): To find the m4 directories, look also for AC_CONFIG_MACRO_DIR and AC_CONFIG_MACRO_DIRS invocations in configure.ac. 2021-12-18 Bruno Haible nstrftime: Update meta info. * config/srclist.txt: Fix typo from 2017-07-23. 2021-12-18 Bruno Haible stdint: Fix handling of limits.h (regression 2021-12-16). * modules/stdint (configure.ac): Revert last change. * gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): If --gnu-make is used, assume that AC_SUBSTed variables for conditionals are constructed by appending the suffix '_CONDITION'. 2021-12-18 Paul Eggert nstrftime: simplify by using libc-config.h. * lib/nstrftime.c [!_LIBC]: Include libc-config.h instead of config.h. (iso_week_days): Simplify via libc-config.h’s __inline. (my_strftime): Simplify via libc-config.h’s libc_hidden_def. * modules/nstrftime (Depends-on): Add libc-config. 2021-12-18 Bruno Haible libtextstyle-optional: Fix generation of textstyle.h (regr. 2021-12-15). * m4/libtextstyle-optional.m4 (gl_LIBTEXTSTYLE_OPTIONAL): Invoke gl_CONDITIONAL_HEADER. 2021-12-18 Bruno Haible Fix support for --gnu-make in tests (regression 2021-12-15). * gnulib-tool (func_emit_tests_Makefile_am): When producing output for GNU make, eliminate %reldir% tokens. 2021-12-17 Bruno Haible getopt-posix: Fix build on AIX (regression 2021-12-15). * modules/getopt-posix (configure.ac): Arrange to generate getopt-cdefs.h. (Makefile.am): Separate the rules for getopt.h and getopt-cdefs.h. 2021-12-16 Paul Eggert getopt-posix: omit unnessary building of getopt.h * modules/getopt-posix (getopt.h, getopt-cdefs.h): Build only if GL_GENERATE_GETOPT_H. stdint: omit duplicate gl_CONFIGURE_HEADER calls * modules/stdint (configure.ac): Omit ‘gl_CONDITIONAL_HEADER([limits.h])’, since stdint depends on limits-h and doing gl_CONDITIONAL_HEADER twice can result in ‘configure’ failing with “*** GL_GENERATE_LIMITS_H is not set correctly”. 2021-12-15 Bruno Haible automake-subdir support: Support the libunistring modules. * m4/libunistring-base.m4 (gl_LIBUNISTRING_LIBHEADER): Use the value of the gl_source_base_prefix variable. 2021-12-15 Bruno Haible automake-subdir support: Support arbitrary --source-base value. Reported by Marc Nieper-Wißkirchen in . * build-aux/prefix-gnulib-mk ($canon_prefix): New variable. (prefix): Initialize it. (prefix_assignment): Use it. 2021-12-15 Bruno Haible automake-subdir support: Look for 'subdir-objects' also in configure.ac. * gnulib-tool: Look for the automake options also in the first argument of the AM_INIT_AUTOMAKE invocation in configure.ac. 2021-12-15 Bruno Haible Add simple examples. * examples: New directory. 2021-12-15 Bruno Haible Accommodate non-recursive Automake in a less hacky way. * gnulib-tool: New option --automake-subdir. (automake_subdir): New variable. (func_emit_initmacro_end): Add a second argument. Use it to prefix each object file name in *_LIBOBJS and *_LTLIBOBJS. (func_emit_shellvars_init): New function. (func_import): Add support for --automake-subdir. Invoke prefix-gnulib-mk. Update calls to func_emit_initmacro_end. Call func_emit_shellvars_init. (func_create_testdir): Update calls to func_emit_initmacro_end. Call func_emit_shellvars_init. * m4/gnulib-tool.m4 (gl_AUTOMAKE_SUBDIR): New macro. * m4/gnulib-common.m4 (gl_CONDITIONAL_HEADER): Use the value of the gl_source_base_prefix variable. * build-aux/prefix-gnulib-mk: New options --from-gnulib-tool, --prefix. (contents_of_file): Renamed from contents. (contents_of_stdin): New function. (process): Inline and remove function. * doc/gnulib-tool.texi (Non-recursive make): New section. 2021-12-15 Bruno Haible Move .h file names out of the *.m4 files. This is useful because Autoconf macros defined in *.m4 files can be AC_REQUIREd. In the configure file, they are then expanded before gl_INIT, i.e. at a place where it is not known whether they are required for the lib/ or for the tests/ directory (or both). * m4/gnulib-common.m4 (gl_CONDITIONAL_HEADER): New macro. * m4/alloca.m4 (gl_FUNC_ALLOCA): Set GL_GENERATE_ALLOCA_H instead of ALLOCA_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/alloca-opt (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/argz.m4 (gl_FUNC_ARGZ): Set GL_GENERATE_ARGZ_H instead of ARGZ_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/argz (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/assert_h.m4 (gl_ASSERT_H): Set GL_GENERATE_ASSERT_H instead of ASSERT_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/assert-h (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/byteswap.m4 (gl_BYTESWAP): Set GL_GENERATE_BYTESWAP_H instead of BYTESWAP_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/byteswap (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Set GL_GENERATE_ERRNO_H instead of ERRNO_H. Drop AC_SUBST and AM_CONDITIONAL invocations. (gl_REPLACE_ERRNO_VALUE): Update. * m4/perror.m4 (gl_FUNC_PERROR): Update. * m4/strerror.m4 (gl_FUNC_STRERROR): Update. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R, gl_FUNC_STRERROR_R_WORKS): Update. * modules/errno (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/execinfo.m4 (gl_EXECINFO_H): Set GL_GENERATE_EXECINFO_H instead of EXECINFO_H. Drop AC_SUBST and AM_CONDITIONAL invocations. Drop AC_LIBOBJ invocation. * modules/execinfo (configure.ac): Invoke gl_CONDITIONAL_HEADER and AC_LIBOBJ. * m4/float_h.m4 (gl_FLOAT_H): Set GL_GENERATE_FLOAT_H instead of FLOAT_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/float (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/fnmatch_h.m4 (gl_FNMATCH_H, gl_REPLACE_FNMATCH_H): Set GL_GENERATE_FNMATCH_H instead of FNMATCH_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/fnmatch-h (configure.ac): Invoke gl_CONDITIONAL_HEADER. * modules/fnmatch (configure.ac): Likewise. * m4/getopt.m4 (gl_FUNC_GETOPT_POSIX, gl_GETOPT_SUBSTITUTE_HEADER): Set GL_GENERATE_GETOPT_H instead of GETOPT_H. Set GL_GENERATE_GETOPT_CDEFS_H instead of GETOPT_CDEFS_H. Drop AC_SUBST invocations. * modules/getopt-posix (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/glob_h.m4 (gl_GLOB_H, gl_REPLACE_GLOB_H): Set GL_GENERATE_GLOB_H instead of GLOB_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/glob-h (configure.ac): Invoke gl_CONDITIONAL_HEADER. * modules/glob (configure.ac): Likewise. * m4/iconv_h.m4 (gl_ICONV_H_DEFAULTS, gl_REPLACE_ICONV_H): Set GL_GENERATE_ICONV_H instead of ICONV_H. Drop AC_SUBST and AM_CONDITIONAL invocations. (gl_ICONV_H): Update. * modules/iconv-h (configure.ac): Invoke gl_CONDITIONAL_HEADER. * modules/iconv_open (configure.ac): Likewise. * m4/ieee754-h.m4 (gl_IEEE754_H): Set GL_GENERATE_IEEE754_H instead of IEEE754_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/ieee754-h (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/libgmp.m4 (gl_LIBGMP): Set GL_GENERATE_GMP_H instead of GMP_H. Drop AC_SUBST invocation. * modules/libgmp (configure.ac): Invoke gl_CONDITIONAL_HEADER. (Makefile.am): Use GL_GENERATE_GMP_H. * m4/libtextstyle-optional.m4 (gl_LIBTEXTSTYLE_OPTIONAL): Set GL_GENERATE_TEXTSTYLE_H instead of TEXTSTYLE_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/libtextstyle-optional (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/limits-h.m4 (gl_LIMITS_H, gl_REPLACE_LIMITS_H): Set GL_GENERATE_LIMITS_H instead of LIMITS_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/limits-h (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/monetary_h.m4 (gl_MONETARY_H): Set GL_GENERATE_MONETARY_H instead of MONETARY_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/monetary (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/net_if_h.m4 (gl_HEADER_NET_IF): Set GL_GENERATE_NET_IF_H instead of NET_IF_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/net_if (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/netinet_in_h.m4 (gl_HEADER_NETINET_IN): Set GL_GENERATE_NETINET_IN_H instead of NETINET_IN_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/netinet_in (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/selinux-context-h.m4 (gl_HEADERS_SELINUX_CONTEXT_H): Set GL_GENERATE_SELINUX_CONTEXT_H instead of SELINUX_CONTEXT_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * m4/selinux-label-h.m4 (gl_HEADERS_SELINUX_LABEL_H): Set GL_GENERATE_SELINUX_LABEL_H instead of SELINUX_LABEL_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/selinux-h (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/stdalign.m4 (gl_STDALIGN_H): Set GL_GENERATE_STDALIGN_H instead of STDALIGN_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/stdalign (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/stdarg.m4 (gl_STDARG_H): Set GL_GENERATE_STDARG_H instead of STDARG_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/stdarg (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/stdbool.m4 (gl_STDBOOL_H): Renamed from AM_STDBOOL_H. Set GL_GENERATE_STDBOOL_H instead of STDBOOL_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * m4/parse-datetime.m4 (gl_PARSE_DATETIME): Don't require AM_STDBOOL_H. * modules/stdbool (configure.ac): Invoke gl_STDBOOL_H instead of AM_STDBOOL_H. Invoke gl_CONDITIONAL_HEADER. * m4/stddef_h.m4 (gl_STDDEF_H): Set GL_GENERATE_STDDEF_H instead of STDDEF_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/stddef (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/stdint.m4 (gl_STDINT_H): Set GL_GENERATE_STDINT_H instead of STDINT_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * m4/inttypes.m4 (gl_INTTYPES_PRI_SCN): Update. * modules/stdint (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/stdnoreturn.m4 (gl_STDNORETURN_H): Set GL_GENERATE_STDNORETURN_H instead of STDNORETURN_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/stdnoreturn (configure.ac): Invoke gl_CONDITIONAL_HEADER. * m4/sys_socket_h.m4 (gl_SYS_SOCKET_H): Set GL_GENERATE_SYS_SOCKET_H instead of SYS_SOCKET_H. * m4/sysexits.m4 (gl_SYSEXITS): Set GL_GENERATE_SYSEXITS_H instead of SYSEXITS_H. Drop AC_SUBST and AM_CONDITIONAL invocations. * modules/sysexits (configure.ac): Invoke gl_CONDITIONAL_HEADER. * modules/sigsegv (configure.ac): Set GL_GENERATE_SIGSEGV_H instead of SIGSEGV_H. Drop AC_SUBST and AM_CONDITIONAL invocations. Invoke gl_CONDITIONAL_HEADER. 2021-12-15 Bruno Haible Fix creation of build directories with non-recursive-gnulib-prefix-hack. This is necessary for executing "make" in a VPATH build of a package that uses prefix-gnulib-mk and a module such as alloca-opt. * modules/alloca-opt (Makefile.am): Before generating the .h-t file, ensure that the directory in which we want to create it exists. (configure.ac): Invoke AC_PROG_MKDIR_P. * modules/argz: Likewise. * modules/arpa_inet: Likewise. * modules/assert-h: Likewise. * modules/byteswap: Likewise. * modules/configmake: Likewise. * modules/ctype: Likewise. * modules/dirent: Likewise. * modules/dynarray: Likewise. * modules/errno: Likewise. * modules/execinfo: Likewise. * modules/fcntl-h: Likewise. * modules/float: Likewise. * modules/fnmatch-h: Likewise. * modules/getopt-posix: Likewise. * modules/glob-h: Likewise. * modules/iconv-h: Likewise. * modules/ieee754-h: Likewise. * modules/inttypes-incomplete: Likewise. * modules/langinfo: Likewise. * modules/libgmp: Likewise. * modules/libtextstyle-optional: Likewise. * modules/limits-h: Likewise. * modules/locale: Likewise. * modules/malloc-h: Likewise. * modules/math: Likewise. * modules/monetary: Likewise. * modules/net_if: Likewise. * modules/netdb: Likewise. * modules/netinet_in: Likewise. * modules/openmp-init: Likewise. * modules/poll-h: Likewise. * modules/posix-shell: Likewise. * modules/pthread-h: Likewise. * modules/pty: Likewise. * modules/sched: Likewise. * modules/scratch_buffer: Likewise. * modules/search: Likewise. * modules/selinux-h: Likewise. * modules/signal-h: Likewise. * modules/sigsegv: Likewise. * modules/snippet/link-warning: Likewise. * modules/spawn: Likewise. * modules/stdalign: Likewise. * modules/stdarg: Likewise. * modules/stdbool: Likewise. * modules/stddef: Likewise. * modules/stdint: Likewise. * modules/stdio: Likewise. * modules/stdlib: Likewise. * modules/stdnoreturn: Likewise. * modules/string: Likewise. * modules/strings: Likewise. * modules/sys_file: Likewise. * modules/sys_ioctl: Likewise. * modules/sys_random: Likewise. * modules/sys_resource: Likewise. * modules/sys_select: Likewise. * modules/sys_socket: Likewise. * modules/sys_stat: Likewise. * modules/sys_time: Likewise. * modules/sys_times: Likewise. * modules/sys_types: Likewise. * modules/sys_uio: Likewise. * modules/sys_utsname: Likewise. * modules/sys_wait: Likewise. * modules/sysexits: Likewise. * modules/termios: Likewise. * modules/threads-h: Likewise. * modules/time: Likewise. * modules/uchar: Likewise. * modules/unicase/base: Likewise. * modules/unicase/special-casing: Likewise. * modules/uniconv/base: Likewise. * modules/unictype/base: Likewise. * modules/unigbrk/base: Likewise. * modules/unilbrk/base: Likewise. * modules/uniname/base: Likewise. * modules/uninorm/base: Likewise. * modules/unistd: Likewise. * modules/unistdio/base: Likewise. * modules/unistr/base: Likewise. * modules/unitypes: Likewise. * modules/uniwbrk/base: Likewise. * modules/uniwidth/base: Likewise. * modules/utime-h: Likewise. * modules/wchar: Likewise. * modules/wctype-h: Likewise. * gnulib-tool (func_emit_lib_Makefile_am): When producing output for GNU make, eliminate %reldir% tokens. 2021-12-15 Bruno Haible non-recursive-gnulib-prefix-hack: Remove obsolete code. * build-aux/prefix-gnulib-mk (prefix): Remove handling of t-$@ pattern. 2021-12-15 Bruno Haible Indentation fix. * m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): Correct indentation. 2021-12-14 Paul Eggert renameatu: port to macOS tmpfs Problem reported by Sudhip Nashi (Bug#52193). * lib/renameatu.c (renameat2ish) [HAVE_RENAMEAT]: New function. (renameatu): Use the new function, to avoid a bug when renameatx_np fails with errno == ENOTSUP. Don’t try to support RENAME_EXCHANGE; the old code didn’t work and nobody using using RENAME_EXCHANGE anyway. 2021-12-12 Bruno Haible gnulib-tool: Try to support non-recursive-gnulib-prefix-hack with tests. * gnulib-tool (func_import): Synthesize an AC_CONFIG_LIBOBJ_DIR invocation. * m4/non-recursive-gnulib-prefix-hack.m4 (gl_NON_RECURSIVE_GNULIB_PREFIX_HACK): Don't invoke AC_CONFIG_LIBOBJ_DIR. 2021-12-12 Paul Eggert bootstrap: refactor for GNU tar * build-aux/bootstrap (gitignore_entries, insert_if_absent) (insert_vc_ignore, symlink_to_dir): Define these shell functions before including bootstrap.conf. This is for GNU tar, whose bootstrap.conf uses symlink_to_dir. 2021-12-12 Bruno Haible gnulib-tool: Support different basenames for the lib/,tests/ Makefiles. * gnulib-tool: New option --tests-makefile-name. (tests_makefile_name): New variable. (func_import): Add support for --tests-makefile-name. Replace local variable makefile_am with two local variables source_makefile_am, tests_makefile_am. * m4/gnulib-tool.m4 (gl_TESTS_MAKEFILE_NAME): New macro. 2021-12-11 Bruno Haible get_ppid_of, get_progname_of: Fix compilation error on Mac OS X < 10.5. Reported by Ryan Schmidt in . * lib/get_ppid_of.c: Include AvailabilityMacros.h (get_ppid_of): Use MAC_OS_X_VERSION_MAX_ALLOWED and MAC_OS_X_VERSION_MIN_REQUIRED. * lib/get_progname_of: Include AvailabilityMacros.h (get_progname_of): Use MAC_OS_X_VERSION_MAX_ALLOWED and MAC_OS_X_VERSION_MIN_REQUIRED. 2021-12-10 Paul Eggert backupfile: assume C99 decls * lib/backupfile.c: Use C99-style decls after statements. backupfile: prefer signed integers * lib/backupfile.c: Include ialloc.h instead of idx.h. Prefer idx_t to size_t where either will do. Use imalloc and irealloc instead of malloc and realloc. * modules/backupfile, modules/backup-rename (Depends-on): Depend on ialloc not idx. backupfile: fix numbered backups for XXX/ * lib/backupfile.c (check_extension): Return a bool indicating whether the original extension was OK. Caller changed. (numbered_backup): Require that FILELEN does not count trailing slashes after a non-slash, and don’t require that *BUF be null-terminated. Caller changed. This fixes a bug where the numbered backup file name for X/ was incorrectly computed because the slash messed up the code looking for X.~1~, X.~2~, etc., and this caused numbered_backup to loop forever. Also, check that check_extension doesn’t truncate a file name leading to an infloop. 2021-12-07 Paul Eggert regex: pacify Coverity clean_state_log_if_needed Problem reported by Robbie Harwood in: https://lists.gnu.org/r/bug-gnulib/2021-12/msg00005.html * lib/regexec.c (clean_state_log_if_needed): Add a DEBUG_ASSERT; this both pacifies Coverity and will help to debug in case some other change mistakenly causes the assertion to become false. 2021-12-07 Bruno Haible gettext-h: Optimize also for clang. * lib/gettext.h (pgettext_aux, npgettext_aux, dcpgettext_expr, dcnpgettext_expr): Inline also on clang. 2021-12-06 Bruno Haible intprops: Break sync with glibc. * config/srclist.txt: Comment out intprops.h. 2021-12-06 Paul Eggert intprops: streamline and get ready for Clang 14 * lib/intprops.h (_GL_HAS_BUILTIN_ADD_OVERFLOW): Rely on __has_builtin first, since GCC didn’t introduce it until GCC 9 so we don’t need to special-case GCC first. (_GL_HAS_BUILTIN_ADD_OVERFLOW, _GL_HAS_BUILTIN_OVERFLOW_P): Look at __EDG__ rather than __ICC, since icc defines __EDG__ too. (_GL_HAS_BUILTIN_MUL_OVERFLOW): Define to 1 in Clang 14 and later, as a bug fix is scheduled for Clang 14. (_GL_HAS_BUILTIN_OVERFLOW_P): Do not bother to special-case __clang__, since __has_builtin should do the right thing anyway. 2021-12-06 Bruno Haible intprops: Treat EDG-based compilers like Intel compilers. Reported by Ilya Kurdyukov in . * lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW_P): Define to 0 on EDG-based compilers. 2021-12-05 Bruno Haible sigsegv: Fix build on some more embedded CPUs. * m4/stack-direction.m4 (SV_STACK_DIRECTION): Assume the stack grows negative, when the GCC 11 sources say so. 2021-11-30 Paul Eggert sys_random: port better to uClibc < 1.0.35 Problem reported by Fabrice Fontaine in: https://lists.gnu.org/r/bug-gnulib/2021-11/msg00043.html * lib/sys_random.in.h [HAVE_SYS_RANDOM_H && !__GLIBC__ && __UCLIBC__]: Include , in case this file is included before __UCLIBC__ is defined. 2021-11-27 Paul Eggert gettext-h: document GNULIB_NO_VLA * doc/gnulib-readme.texi (C99 features avoided): Document GNULIB_NO_VLA. gettext-h: use VLA test similar to regex * lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS): Assuming GNULIB_NO_VLA, define if (defined __STDC_VERSION__ && 199901L <= __STDC_VERSION__ \ + && !defined __STDC_NO_VLA___), not if ((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__). This is more consistent with what the regex module does. * modules/gettext-h (Depends-on): Depend on vararrays, since lib/gettext.h uses __STDC_NO_VLA__. regex: port to tcc Problem reported by Benno Schulenberg in: https://lists.gnu.org/r/bug-gnulib/2021-11/msg00038.html * modules/regex (Depends-on): Depend on vararrays, since lib/regex.h uses __STDC_NO_VLA__. * modules/vararrays: Change license from LGPL to LGPLv2+. 2021-11-25 Bernhard Voelker test-framework-sh: remove unsafe entries from PATH Running tests with '.' in the PATH may yield unspecified results, and is deemed unsafe per se. This includes empty entries as well which are treated like a '.' entry as per POSIX. * tests/init.sh (setup_): Add snippet to remove relative and non- accessible entries from the PATH environment variable. 2021-11-24 Paul Eggert regex: merge from glibc The main change here, imported from Glibc, is for the regex code to stop using nested functions when _LIBC is defined. The intent is for the result to be copied back to Glibc so that the two implementations can resync. * lib/regcomp.c (re_set_fastmap, seek_collating_symbol_entry) (lookup_collation_sequence_value, build_range_exp) (build_collating_symbol): * lib/regexec.c (acquire_init_state_context): Declare with __always_inline instead of with ‘inline __attribute__ ((always_inline))’. * lib/regexec.c (init_word_char): Move uint64_t comment to regex_internal.h. (parse_byte): Change multibyte-detecting arg from re_charset_t * to re_dfa_t const *. All callers changed. (build_range_exp, build_collating_symbol) [!_LIBC]: Change signature to match _LIBC well enough so that the caller can be simplified to assume _LIBC. (parse_bracket_exp): Pull its nested functions seek_collating_symbol_entry, lookup_collation_sequence_value, build_range_exp, build_collating_symbol out to the top level, adding args to pass the information instead of having them access nonlocal vars. Use types in local vars that do not assume glibc. * lib/regex_internal.h: Explain uint64_t etc. here. 2021-11-23 Paul Eggert regex: assume RE_ENABLE_I18N These days there is no longer any need to port to platforms lacking iswctype etc., since Gnulib now has substitutes. * config/srclist.txt: Comment out regex_internal.c and regex_internal.h for now, since they no longer match glibc. The intent is to merge them again soon. * lib/regex_internal.h (RE_ENABLE_I18N): Remove. All uses changed to assume that RE_ENABLE_I18N is 1. * modules/regex (Depends-on): Add iswctype. 2021-11-15 Paul Eggert lseek: port around macOS SEEK_HOLE glitch Problem reported by Sudhip Nashi (Bug#51857#47). * lib/lseek.c (rpl_lseek): Work around macOS lseek+SEEK_HOLE returning -1 with ENXIO if there are no holes before EOF, contrary to the macOS documentation. lseek: port around macOS SEEK_DATA glitch Problem reported by Sudhip Nashi (Bug#51857). * doc/posix-functions/lseek.texi (lseek): Mention macOS SEEK_DATA issue. * lib/lseek.c (rpl_lseek): Work around macOS portability glitch. * m4/lseek.m4 (gl_FUNC_LSEEK): Replace lseek on Darwin. * modules/lseek (Depends-on): Depend on msvc-nothrow and fstat only if needed. 2021-11-11 Fabrice Fontaine (tiny change) sigsegv: fix builds on microblazeel, or1k * m4/stack-direction.m4 (SV_STACK_DIRECTION): Assume it grows negative on microblaze* and or1k. 2021-11-09 Paul Eggert exclude: yield proper errno on failure * lib/exclude.c (add_exclude_file): Do not assume that fclose preserves errno on success. 2021-11-07 Paul Eggert regex: break regcomp.c link with glibc Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2021-11/msg00005.html * config/srclist.txt: Comment out regcomp.c for now. * lib/regcomp.c: Revert previous change. 2021-10-24 Bruno Haible string: Avoid syntax error re strdup in string.in.h (regr. 2021-09-07). Reported by Jan Engelhardt and by Arash Esbati via Andy Moreton in . * lib/string.in.h (_GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_DEALLOC_FREE, _GL_ATTRIBUTE_MALLOC): Add fallback declarations, like in lib/stdlib.in.h. * lib/wchar.in.h (_GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_DEALLOC_FREE, _GL_ATTRIBUTE_MALLOC): Likewise. 2021-10-19 Paul Eggert xalloc: new function xinmalloc * lib/xmalloc.c (xinmalloc): New function, which is like xnmalloc but for idx_t instead of size_t. 2021-10-18 Paul Eggert regex: fix buffer read overrrun * lib/regexec.c (re_search_internal): Fix buffer read overrun reported by Benno Schulenberg in: https://lists.gnu.org/r/bug-gnulib/2021-10/msg00035.html 2021-10-15 Paul Eggert nproc: port better to macOS 10.14 * lib/nproc.c (num_processors_ignoring_omp) [HAVE_SYSCTL && !defined __GLIBC__ && defined HW_NCPU]: Do not use a const mib, as macOS 10.14 rejects this. 2021-10-13 Paul Eggert sigsegv: fix quoting problem Problem reported for FreeBSD ports by Alexey Dokuchaev in: https://bugs.gnu.org/51144 * m4/stack-direction.m4 (SV_STACK_DIRECTION): Quote brackets. 2021-10-10 Paul Eggert nproc: port better to OpenBSD Problem reported by Omar Polo in: https://lists.gnu.org/r/emacs-devel/2021-10/msg00692.html * lib/nproc.c (num_processors_ignoring_omp): Prefer HW_NCPUONLINE to HW_NCPU, for OpenBSD. Also, make mib const. 2021-10-02 Paul Eggert timer-time: port better to OpenBSD 6.9 * m4/timer_time.m4 (gl_TIMER_TIME): Also require timer_settime to be declared, as it exists in OpenBSD but always fails with ENOSYS. sys_select: port better to OpenBSD 6.9 OpenBSD 6.9’s includes which then includes , which caused coreutils/lib/nproc.c compiles to fail with "/usr/include/signal.h:57: warning: 'struct sigaction' declared inside parameter list". Fix this. * lib/sys_select.in.h [__OpenBSD__]: Simply delegate to the system header if being included from . 2021-09-22 Bruno Haible doc: Fix outdated statement about Spanish collation. Reported by Dietmar Schindler in . * doc/regex.texi (Collating Elements vs. Characters): Choose another example of a digraph with special collation. doc: Don't assume that the output format is TeX-based or info. Reported by Dietmar Schindler in . * doc/regex.texi (Collating Elements vs. Characters): Assume a texinfo version that groks UTF-8 encoded ISO-8859-1 characters. 2021-09-21 Paul Eggert regex: sync with glibc * config/srclist.txt: Uncomment-out posix/regex.c and related files, as the Gnulib versions have now been copied to glibc. * lib/intprops.h: Remove authorship comment, as per glibc guidelines. 2021-09-20 Simon Josefsson maint: Avoid syntax-check failure for empty gnulib submodule. * top/maint.mk (gnulib_dir): Fall back to GNULIB_SRCDIR if submodule is not checked out. 2021-09-19 Bruno Haible Relicense qemu.h under LGPLv2+. * tests/qemu.h: Change license header. 2021-09-19 Bruno Haible ialloc: Update license headers after license change from 2021-08-29. * lib/ialloc.h: Update license header. * lib/ialloc.c: Likewise. 2021-09-19 Bruno Haible Improve 'configure --help' output for crypto modules. * m4/af_alg.m4 (gl_AF_ALG): List the hash functions for which we use the Linux crypto. Also mention that we use it on files only. * m4/gl-openssl.m4 (gl_CRYPTO_CHECK): Use manual line breaking, not the line-filling style of AS_HELP_STRING. Show that --with-openssl takes an optional argument. List the hash functions for which we use the OpenSSL library. Don't mention --with-linux-crypto if the af_alg module is not in use. Mention that --with-linux-crypto applies only to the Linux kernel. Mention that it gets used only when available. Mention that it takes precedence only for files. In the error or warning, mention the pre-built package name that people can install. 2021-09-18 Bruno Haible string, wchar: Don't require undefined m4 macros (regr. today). Reported by Colin Watson in . * m4/string_h.m4 (gl_STRING_H_REQUIRE_DEFAULTS): Don't use m4_require directly. Instead, invoke gl_STDLIB_H_REQUIRE_DEFAULTS. * m4/wchar_h.m4 (gl_WCHAR_H_REQUIRE_DEFAULTS): Likewise. 2021-09-18 Bruno Haible sm3-buffer tests: New module. * tests/test-sm3-buffer.c: Renamed from tests/test-sm3.c. * modules/crypto/sm3-buffer-tests: Renamed from modules/crypto/sm3-tests. Test tests/test-sm3-buffer.c instead of tests/test-sm3.c. sm3-buffer: New module. * lib/sm3-stream.c: New file, extracted from lib/sm3.c. * lib/sm3.c: Don't include stdlib.h, unlocked-io.h. (BLOCKSIZE, sm3_stream): Moved to sm3-stream.c. * lib/sm3.h: Tweak. * modules/crypto/sm3-buffer: New file, based on modules/crypto/sm3. * modules/crypto/sm3: Rewritten. 2021-09-18 Bruno Haible sha512-buffer tests: New module. * tests/test-sha512-stream.c: Renamed from tests/test-sha512.c. * modules/crypto/sha512-buffer-tests: New file, based on modules/crypto/sha512-tests. * modules/crypto/sha512-tests: Remove tests that are now in modules/crypto/sha512-buffer-tests. Test tests/test-sha512-stream.c instead of tests/test-sha512.c. sha512: Clarify module to source relation. * lib/sha512-stream.c: New file, extracted from lib/sha512.c. * lib/sha512.c: Don't include stdlib.h, unlocked-io.h. (BLOCKSIZE, shaxxx_stream, sha512_stream, sha384_stream): Moved to sha512-stream.c. * lib/sha512.h: Tweak. * modules/crypto/sha512 (Files): Add lib/sha512-stream.c. (configure.ac): Don't define GL_COMPILE_CRYPTO_STREAM. (Makefile.am): Arrange to compile sha512-stream.c. (Link): Mention $(LIB_CRYPTO). 2021-09-18 Bruno Haible sha256-buffer tests: New module. * tests/test-sha256-stream.c: Renamed from tests/test-sha256.c. * modules/crypto/sha256-buffer-tests: New file, based on modules/crypto/sha256-tests. * modules/crypto/sha256-tests: Remove tests that are now in modules/crypto/sha256-buffer-tests. Test tests/test-sha256-stream.c instead of tests/test-sha256.c. sha256: Clarify module to source relation. * lib/sha256-stream.c: New file, extracted from lib/sha256.c. * lib/sha256.c: Don't include stdlib.h, unlocked-io.h. (BLOCKSIZE, shaxxx_stream, sha256_stream, sha224_stream): Moved to sha256-stream.c. * lib/sha256.h: Tweak. * modules/crypto/sha256 (Files): Add lib/sha256-stream.c. (configure.ac): Don't define GL_COMPILE_CRYPTO_STREAM. (Makefile.am): Arrange to compile sha256-stream.c. (Link): Mention $(LIB_CRYPTO). 2021-09-18 Bruno Haible sha1-buffer tests: New module. * tests/test-sha1-buffer.c: New file, based on tests/test-sha1.c. * tests/test-sha1-stream.c: Renamed from tests/test-sha1.c. (main): Remove sha1-buffer tests. * modules/crypto/sha1-buffer-tests: New file, based on modules/crypto/sha1-tests. * modules/crypto/sha1-tests: Remove tests that are now in modules/crypto/sha1-buffer-tests. Test tests/test-sha1-stream.c instead of tests/test-sha1.c. sha1: Clarify module to source relation. * lib/sha1-stream.c: New file, extracted from lib/sha1.c. * lib/sha1.c: Don't include stdlib.h, unlocked-io.h. (BLOCKSIZE, sha1_stream): Moved to sha1-stream.c. * lib/sha1.h: Correct indentation. * modules/crypto/sha1 (Files): Add lib/sha1-stream.c. (configure.ac): Don't define GL_COMPILE_CRYPTO_STREAM. (Makefile.am): Arrange to compile sha1-stream.c. (Link): Mention $(LIB_CRYPTO). 2021-09-18 Bruno Haible md5-buffer tests: New module. * tests/test-md5-buffer.c: New file, based on tests/test-md5.c. * tests/test-md5-stream.c: Renamed from tests/test-md5.c. (main): Remove md5-buffer tests. * modules/crypto/md5-buffer-tests: New file, based on modules/crypto/md5-tests. * modules/crypto/md5-tests: Remove tests that are now in modules/crypto/md5-buffer-tests. Test tests/test-md5-stream.c instead of tests/test-md5.c. md5: Clarify module to source relation. * lib/md5-stream.c: New file, extracted from lib/md5.c. * lib/md5.c: Don't include stdlib.h, unlocked-io.h. (BLOCKSIZE, md5_stream): Moved to md5-stream.c. * lib/md5.h: Tweak. * modules/crypto/md5 (Files): Add lib/md5-stream.c. (configure.ac): Don't define GL_COMPILE_CRYPTO_STREAM. (Makefile.am): Arrange to compile md5-stream.c. (Link): Mention $(LIB_CRYPTO). 2021-09-18 Bruno Haible md4-buffer tests: New module. * tests/test-md4-buffer.c: Renamed from tests/test-md4.c. * modules/crypto/md4-buffer-tests: Renamed from modules/crypto/md4-tests. Test tests/test-md4-buffer.c instead of tests/test-md4.c. md4-buffer: New module. * lib/md4-stream.c: New file, extracted from lib/md4.c. * lib/md4.c: Don't include stdlib.h, unlocked-io.h. (BLOCKSIZE, md4_stream): Moved to md4-stream.c. * lib/md4.h: Reorder declarations. * modules/crypto/md4-buffer: New file, based on modules/crypto/md4. * modules/crypto/md4: Rewritten. 2021-09-18 Bruno Haible md2-buffer tests: New module. * tests/test-md2-buffer.c: Renamed from tests/test-md2.c. * modules/crypto/md2-buffer-tests: Renamed from modules/crypto/md2-tests. Test tests/test-md2-buffer.c instead of tests/test-md2.c. md2-buffer: New module. * lib/md2-stream.c: New file, extracted from lib/md2.c. * lib/md2.c: Don't include stdlib.h, unlocked-io.h. (BLOCKSIZE, md2_stream): Moved to md2-stream.c. * lib/md2.h: Reorder declarations. * modules/crypto/md2-buffer: New file, based on modules/crypto/md2. * modules/crypto/md2: Rewritten. 2021-09-18 Bruno Haible string, wchar: Don't cause link errors for rpl_free (regr. 2021-09-07). Reported by Simon Josefsson in . * lib/string.in.h (free, rpl_free): Consider GNULIB_FREE_POSIX variable. * lib/wchar.in.h (free, rpl_free): Likewise. * m4/string_h.m4 (gl_STRING_H_REQUIRE_DEFAULTS): Require module indicator variable initializations from the stdlib module. * m4/wchar_h.m4 (gl_WCHAR_H_REQUIRE_DEFAULTS): Likewise. * modules/string (Makefile.am): Substitute GNULIB_FREE_POSIX in string.h. * modules/wchar (Makefile.am): Substitute GNULIB_FREE_POSIX in wchar.h. 2021-09-17 Bruno Haible threadlib: Avoid crashes in thread-related functions on Cygwin 3.2.0. Reported by Brian Inglis via Akim Demaille in . * m4/threadlib.m4 (gl_WEAK_SYMBOLS): Force a "guessing no" result on Cygwin. 2021-09-13 Bruno Haible simple-atomic: Port to Oracle Studio 12.6. * lib/simple-atomic.c (asm) [0x590 <= __SUNPRO_C && __STDC__]: #define to __asm. 2021-09-13 Paul Eggert asyncsafe-spin: port to Oracle Studio 12.6 sparc Problem reported by Dennis Clarke via Eric Blake in: https://lists.gnu.org/r/bug-gnulib/2021-09/msg00056.html * lib/asyncsafe-spin.c (asm) [0x590 <= __SUNPRO_C && __STDC__]: #define to __asm. 2021-09-12 Paul Eggert stdint-tests: long long preproc on recent Sun C * tests/test-stdint.c: Test long long preprocessor constants on Oracle Developer Studio 12.6, where they should work. 2021-09-13 Bruno Haible extern-inline: Fix syntax error on macOS with GCC 11 (regr. 2021-08-22). Reported by Akim Demaille in . * m4/extern-inline.m4 (_GL_INLINE, _GL_EXTERN_INLINE): Put _GL_UNUSED before, not after, 'static'. 2021-09-11 Christian Weisgerber (tiny change) sigsegv: port to OpenBSD 6.8+ powerpc64 * lib/sigsegv.c (SIGSEGV_FAULT_STACKPOINTER): Special case for __OpenBSD__ && __powerpc64__, needed due to: https://github.com/openbsd/src/commit/5e649a8714ba05cf482011b7b7d1e5437b7c17db which is part of the oldest currently-supported OpenBSD (6.8), so we needn’t worry about older versions. 2021-09-09 Pádraig Brady maintainer-makefile: add 'can' to sc_prohibit_doubled_word * top/maint.mk (sc_prohibit_doubled_word): Check for "can can". 2021-09-08 Paul Eggert strerror_r-posix: port even better to Android * lib/strerror_r.c: Use STRERROR_R_CHAR_P to decide whether the system strerror_r returns char *, and HAVE_DECL_STRERROR_R to decide whether it either does that or returns an integer. In the former case, use the system strerror_r even on platforms like Android API level 23 that don’t have __xpg_strerror_r; also check for strerror_r failure just in case. * m4/error.m4 (gl_PREREQ_ERROR): * m4/strerror_r.m4 (gl_PREREQ_STRERROR_R): Use system extensions on Android, to avoid mishandling strerror_r on API level 23 and later. * modules/error, modules/strerror_r-posix (configure.ac): Surround gl_PREREQ_ERROR with AS_IF instead of plain if, so that AC_REQUIREs are propagated out. strerror_r-posix: port better to Android * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Move requirement of gl_USE_SYSTEM_EXTENSIONS from here ... (gl_FUNC_STRERROR_R_WORKS): ... to here, which is the macro that actually needs it. This avoids a bug where 'configure' tests whether strerror_r has the POSIX API before enabling GNU extensions. On Android, enabling GNU extensions switches from the POSIX to the GNU API. Problem reported by Lucy Phipps in: https://lists.gnu.org/r/bug-gnulib/2021-09/msg00026.html string, wchar: port rpl_free decl to Android * lib/string.in.h, lib/wchar.in.h: (free): When replacing it, declare the unreplaced version too. Problem reported by Lucy Phipps in: https://lists.gnu.org/r/bug-gnulib/2021-09/msg00026.html 2021-09-07 Paul Eggert string, wchar: avoid some namespace pollution * lib/string.in.h, lib/wchar.in.h: (free): Declare by hand instead of including stdlib.h. This avoids some namespace pollution. It should also avoid some nested-include problems described by Lucy Phipps in: https://lists.gnu.org/r/bug-gnulib/2021-09/msg00018.html * modules/string, modules/wchar: (Depends-on): Add stdlib, so that REPLACE_FREE has the right value. (Makefile.am): Replace @REPLACE_FREE@ when creating the include file. 2021-09-04 Paul Eggert idx: break copying from glibc * config/srclist.txt: Comment out idx.h, and bring back recent change. 2021-09-04 Sun Haiyong (tiny change) sigsegv: Improve cross-compilation support for LoongArch CPU. * m4/stack-direction.m4 (SV_STACK_DIRECTION): Assume the stack grows down on LoongArch. 2021-09-04 Simon Josefsson doc: Improve help related to bootstrap script. * doc/gnulib-tool.texi (VCS Issues): Make title more positive, s/Issues/Integration/. Some more bootstrap-related hints, including changing suggested submodule path from .gnulib to gnulib as this seems to be more wide-spread. 2021-09-04 Paul Eggert intprops: fix minor doc glitches * doc/intprops.texi (Integer Properties): Fix doc glitches. 2021-09-04 Simon Josefsson doc: Add suggestions on FDL texinfo usage. * doc/licenses-texi.texi (License Texinfo sources): Add texinfo examples. 2021-09-03 Simon Josefsson maintainer-makefile: Add indentation syntax-check rule. * top/maint.mk (indent): Use AM_V_GEN and indent_args. (sc_indent): New rule. (indent_args): New variable. (C_SOURCES): New variable, initialized to reasonable C files. (exclude_file_name_regexp--indent): New variable. 2021-08-30 Paul Eggert idx: add commentary * lib/idx.h: Add comments about ssize_t and strlen, in response to comments from Simon Josefsson in: https://lists.gnu.org/r/bug-gnulib/2021-08/msg00196.html 2021-08-29 Paul Eggert attribute: keep up with gnulib-common.m4 * lib/attribute.h (ATTRIBUTE_DEALLOC, ATTRIBUTE_DEALLOC_FREE): New macros, aliases for the _GL_-prefixed macros added to gnulib-common.m4 last month. 2021-08-29 Bruno Haible supersede: Fix test failure under QEMU user-mode for Linux/mips. * tests/test-supersede-open.h (test_open_supersede): Copy statbuf.st_dev into a local variable of type dev_t. * tests/test-supersede-fopen.h (test_fopen_supersede): Likewise. 2021-08-29 Bruno Haible spawn-pipe: Fix test failure when running under QEMU user-mode. * tests/test-spawn-pipe-child.c: Include , , qemu.h. (main): Under QEMU user-mode, allow fd 2 or fd 3 to be open. * modules/spawn-pipe-tests (Files): Add qemu.h. (Depends-on): Add stdbool. 2021-08-29 Bruno Haible execute: Fix test failure when running under QEMU user-mode. * tests/test-execute-child.c: Include , qemu.h. (main): Under QEMU user-mode, allow fd 3 to be open. * modules/execute-tests (Files): Add qemu.h. (Depends-on): Add stdbool. 2021-08-29 Bruno Haible posix_spawn_file_actions_addfchdir: Avoid test failure under QEMU. * tests/test-posix_spawn-fchdir.c: Include qemu.h. (is_qemu): New variable. (test): Under QEMU user-mode, don't expect that "pwd" produces the result "/". (main): Initialize is_qemu. Under QEMU user-mode, skip the relative file name test. * modules/posix_spawn_file_actions_addfchdir-tests (Files): Add qemu.h. (Depends-on): Add stdbool. 2021-08-29 Bruno Haible getcwd tests: Avoid test failure when running under QEMU user-mode. * modules/getcwd-tests (Files): Add qemu.h. (Depends-on): Add stdbool. * tests/test-getcwd.c: Include qemu.h. (test_long_name): Skip this test when running under QEMU user-mode. (main): Consider return code 77 from test_long_name. 2021-08-29 Paul Eggert base32, base64: treat negative sizes as overflows * lib/base64.c (base64_encode_alloc): * lib/base32.c (base32_encode_alloc): Treat negative sizes as overflows, for better compatibility with previous API. 2021-08-29 Bruno Haible explicit_bzero test: Fix test failure due to GCC optimizations. * tests/test-explicit_bzero.c (do_secret_stuff): Use static variable 'last_stackbuf'. (main): Use an 'if' to combine the two do_secret_stuff invocations. 2021-08-29 Paul Eggert dfa: port to non-gnulib Suggested by Arnold Robbins in: https://lists.gnu.org/r/bug-gnulib/2021-08/msg00181.html * lib/dfa.h (_GL_ATTRIBUTE_DEALLOC) [!_GL_ATTRIBUTE_MALLOC]: Add missing definition. 2021-08-29 Paul Eggert base32, base64: fix broken tests Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2021-08/msg00170.html * lib/base32.c, lib/base64.c: Do not include verify.h, and omit all uses of ‘assume’. * modules/base32, modules/base64 (Depends-on): Remove verify. * tests/test-base32.c, tests/test-base64.c: Don’t pass out-of-range values to allocator, as converting them to idx_t relies on implementation-defined behavior that could trap. ialloc: relicense * modules/ialloc (License): Change from LGPL to LGPLv2+. 2021-08-28 Bruno Haible fma: Fix compilation error on Linux/sh4. * lib/fma.c (FUNC): Don't test for FE_DOWNWARD or FE_UPWARD when these rounding modes are not defined. 2021-08-28 Bruno Haible Skip some tests when running under QEMU user-mode. * tests/qemu.h: New file. * tests/test-get-rusage-as.c: Include qemu.h. (main): Skip the test when running under QEMU. * tests/test-get-rusage-data.c: Include qemu.h. (main): Skip the test when running under QEMU. * tests/test-printf-posix2.c: Include qemu.h. (main): Return with code 77 when running under QEMU. * tests/test-fprintf-posix2.c: Include qemu.h. (main): Return with code 77 when running under QEMU. * tests/test-fprintf-posix3.c: Include qemu.h. (main): Return with code 79 when running under QEMU. * tests/test-fprintf-posix3.sh: Skip the test when the return code was 79. * tests/test-dprintf-posix2.c: Include qemu.h. (main): Return with code 79 when running under QEMU. Use return code 80 instead of 78. * tests/test-dprintf-posix2.sh: Skip the test when the return code was 79. Update for changed return code. * modules/get-rusage-as-tests (Files): Add qemu.h. (Depends-on): Add stdbool. * modules/get-rusage-data-tests (Files): Add qemu.h. (Depends-on): Add stdbool. * modules/fprintf-posix-tests (Files): Add qemu.h. (Depends-on): Add stdbool. * modules/dprintf-posix-tests (Files): Add qemu.h. (Depends-on): Add stdbool. 2021-08-28 Bruno Haible sigabbrev_np, sigdescr_np: Fix compilation error on Linux/alpha. * lib/sigabbrev_np.c (sigabbrev_np): When SIGINFO and SIGPWR have the same value, give precendence to SIGPWR. * lib/sigdescr_np.c (sigdescr_np): Likewise. * tests/test-sigabbrev_np.c (main): Likewise. * tests/test-sigdescr_np.c (main): Likewise. 2021-08-28 Bruno Haible execle, execve, execvpe tests: Fix test failures under qemu user-mode. * test-execle-main.c: Include . (get_environ_assignment, create_minimal_env): New functions. (main): Call create_minimal_env. * test-execve-main.c: Likewise. * test-execvpe-main.c: Likewise. 2021-08-27 Paul Eggert base32, base64: prefer signed to unsigned integers * lib/base32.c, lib/base64.c: Include ialloc.h instad of stdlib.h. Include intprops.h, verify.h. * lib/base32.c (base32_encode, base32_encode_alloc, get_8, decode_8) (base32_decode_ctx, base32_decode_alloc_ctx): * lib/base32.h (struct base32_decode_context): * lib/base64.c (base64_encode_fast, base64_encode) (base64_encode_alloc, get_4, decode_4, base64_decode_ctx) (base64_decode_alloc_ctx): * lib/base64.h (struct base64_decode_context): * tests/test-base32.c (main): * tests/test-base64.c (main): Prefer signed to unsigned integers. * lib/base32.c (base32_encode_alloc): * lib/base64.c (base64_encode_alloc): Use simpler and more-direct check for overflow, removing a TODO. * lib/base32.h, lib/base64.h: Include idx.h instead of stddef.h. * modules/base32, modules/base64 (Depends-on): Add ialloc, verify. 2021-08-26 Paul Eggert regex: use __attr_access and C99-style array arg This should help with some static checking. Derived from a suggestion by Martin Sebor in: https://sourceware.org/pipermail/libc-alpha/2021-August/130336.html * config/srclist.txt: Remove lib/regex.c for now. * lib/regex.c: Ignore -Wvla for the whole file. * lib/regex.h (_REGEX_NELTS, _Attr_access_): New macros. Ignore -Wvla when declaring regexec. (re_compile_pattern, re_search, re_search2, re_match, re_match_2) (regerror): Mark with _Attr_access_, as glibc does. * lib/regex.h (regexec): * lib/regexec.c (regexec, __compat_regexec): Use _REGEX_NELTS for each array parameter whose size is another arg but with an access pattern that cannot be captured with __attr_access. 2021-08-25 Bruno Haible execute tests: Fix test failure when libtool is in use. * modules/execute-tests (Makefile.am): Link test-execute-child without using libtool. * modules/spawn-pipe-tests (Makefile.am): Link test-spawn-pipe-child without using libtool. * modules/system-quote-tests (Makefile.am): Link test-system-quote-child without using libtool. 2021-08-24 Paul Eggert dfa: prefer idx_t to ptrdiff_t for nonnegative * lib/dfa.c (struct dfa, dfaexec_main, dfaexec_mb, dfaexec_sb) (dfaexec_noop, dfaexec): * lib/dfa.h (dfaparse, dfacomp, dfaexec): Prefer idx_t to ptrdiff_t for counts, which should be nonnegative. * lib/dfa.h: Include idx.h. 2021-08-22 Bruno Haible snippet/unused-parameter: Mark unused module obsolete. * modules/snippet/unused-parameter (Status, Notice): Mark as obsolete. 2021-08-22 Bruno Haible Make generated .in.h files as standalone as possible. Reported by Jan Engelhardt . * lib/stdlib.in.h (_GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_DEALLOC_FREE, _GL_ATTRIBUTE_MALLOC): Add fallback definitions. * lib/dirent.in.h (_GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC): Add fallback definitions. * lib/stdio.in.h (_GL_ATTRIBUTE_DEALLOC): Add fallback definition. * lib/math.in.h (_GL_ATTRIBUTE_CONST): Add fallback definition. * lib/pthread.in.h (_GL_ATTRIBUTE_PURE): Add fallback definition. * lib/threads.in.h (_GL_ATTRIBUTE_PURE): Likewise. * lib/uchar.in.h (_GL_ATTRIBUTE_PURE): Likewise. * lib/string.in.h (_GL_ATTRIBUTE_PURE): Move definition, for consistency with the other *.in.h files. * lib/se-context.in.h (_GL_ATTRIBUTE_MAYBE_UNUSED): Add fallback definition. * lib/se-label.in.h (_GL_ATTRIBUTE_MAYBE_UNUSED): Likewise. * lib/se-selinux.in.h (_GL_ATTRIBUTE_MAYBE_UNUSED): Likewise. * lib/textstyle.in.h: Use _GL_ATTRIBUTE_MAYBE_UNUSED instead of _GL_UNUSED. (_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, _GL_ATTRIBUTE_MAYBE_UNUSED): Add fallback definitions. 2021-08-22 Bruno Haible gnulib-common.m4: Clarify logic behind _GL_UNUSED_LABEL. Reported by Paul Eggert. * m4/gnulib-common.m4 (gl_COMMON_BODY): Add comment and write the condition in a way that is close to the comment. 2021-08-22 Paul Eggert c-stack: depend on inttypes, mempcpy * modules/c-stack (Depends-on): Add inttypes, mempcpy. mempcpy problem reported by Evan Miller in: https://debbugs.gnu.org/50098#31 2021-08-22 Bruno Haible mountlist: Use recommended syntax for _GL_UNUSED_LABEL. * lib/mountlist.c (read_file_system_list): Add semicolon after _GL_UNUSED_LABEL. 2021-08-22 Bruno Haible gnulib-common.m4: Make _GL_UNUSED_LABEL effective for clang. * m4/gnulib-common.m4 (gl_COMMON_BODY): Make _GL_UNUSED_LABEL use _GL_ATTRIBUTE_UNUSED also for clang. 2021-08-22 Bruno Haible gnulib-common.m4: Use C2x [[maybe_unused]] when possible. * m4/gnulib-common.m4 (gl_COMMON_BODY): Define _GL_UNUSED as an alias of _GL_ATTRIBUTE_MAYBE_UNUSED, not of _GL_ATTRIBUTE_UNUSED. * lib/binary-io.h (__gl_setmode): Put _GL_UNUSED before, not after, the declaration. * lib/c-stack.c (null_action, segv_handler, overflow_handler, c_stack_action): Likewise. * lib/chown.c (chown): Likewise. * lib/clean-temp-simple.c (cleanup_action): Likewise. * lib/fts.c (dirent_inode_sort_may_be_useful, leaf_optimization, fts_set): Likewise. * lib/getgroups.c (getgroups): Likewise. * lib/getopt.c (_getopt_initialize): Likewise. * lib/getugroups.c (getugroups): Likewise. * lib/localename.c (gl_locale_name_thread_unsafe, gl_locale_name_thread, gl_locale_name_posix, gl_locale_name_environ): Likewise. * lib/mkdir.c (rpl_mkdir): Likewise. * lib/mkfifo.c (mkfifo): Likewise. * lib/mkfifoat.c (mkfifoat): Likewise. * lib/mknod.c (mknod): Likewise. * lib/mknodat.c (mknodat): Likewise. * lib/mountlist.c (me_remote): Likewise. * lib/openpty.c (openpty): Likewise. * lib/parse-datetime.y (yyerror): Likewise. * lib/passfd.c (sendfd, recvfd): Likewise. * lib/pthread-cond.c (pthread_condattr_destroy, pthread_cond_init, pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal, pthread_cond_broadcast, pthread_cond_destroy): Likewise. * lib/pthread-mutex.c (pthread_mutexattr_destroy, pthread_mutex_init, pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_timedlock, pthread_mutex_unlock, pthread_mutex_destroy): Likewise. * lib/pthread-rwlock.c (pthread_rwlockattr_destroy, pthread_rwlock_init, pthread_rwlock_timedrdlock, pthread_rwlock_timedwrlock): Likewise. * lib/pthread-spin.c (pthread_spin_init, pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock, pthread_spin_destroy): Likewise. * lib/pthread-thread.c (pthread_attr_destroy): Likewise. * lib/readlink.c (readlink): Likewise. * lib/rename.c (rpl_rename): Likewise. * lib/set-permissions.c (set_permissions): Likewise. * lib/sockets.c (gl_sockets_startup): Likewise. * lib/stat-time.h (get_stat_birthtime_ns, get_stat_birthtime, stat_time_normalize): Likewise. * lib/strptime.c (__strptime_internal): Likewise. * lib/strtod.c (LDEXP): Likewise. * lib/symlink.c (symlink): Likewise. * lib/symlinkat.c (symlinkat): Likewise. * lib/tempname.c (try_dir, try_nocreate): Likewise. * lib/textstyle.in.h (styled_ostream_begin_use_class, styled_ostream_end_use_class, styled_ostream_get_hyperlink_ref, styled_ostream_get_hyperlink_id, styled_ostream_set_hyperlink, styled_ostream_flush_to_current_style, fd_ostream_create, term_ostream_get_color, term_ostream_set_color, term_ostream_get_bgcolor, term_ostream_set_bgcolor, term_ostream_get_weight, term_ostream_set_weight, term_ostream_get_posture, term_ostream_set_posture, term_ostream_get_underline, term_ostream_set_underline, term_ostream_get_hyperlink_ref, term_ostream_get_hyperlink_id, term_ostream_set_hyperlink, term_ostream_create, term_styled_ostream_create, html_styled_ostream_create, handle_color_option, handle_style_option, style_file_prepare, styled_ostream_create, libtextstyle_set_failure_exit_code): Likewise. * lib/unicodeio.c (exit_failure_callback, fallback_failure_callback): Likewise. * lib/wait-process.c (cleanup_slaves_action): Likewise. * tests/signature.h (SIGNATURE_CHECK2): Likewise. * tests/test-areadlink.c (do_areadlink): Likewise. * tests/test-areadlinkat.c (do_areadlinkat): Likewise. * tests/test-ceilf-ieee.c (main): Likewise. * tests/test-ceilf1.c (main): Likewise. * tests/test-dirent.c (dir): Likewise. * tests/test-fchownat.c (main): Likewise. * tests/test-fdopendir.c (main): Likewise. * tests/test-filenamecat.c (main): Likewise. * tests/test-floor1.c (main): Likewise. * tests/test-floorf-ieee.c (main): Likewise. * tests/test-floorf1.c (main): Likewise. * tests/test-fseeko.c (main): Likewise. * tests/test-fstatat.c (main): Likewise. * tests/test-ftello.c (main): Likewise. * tests/test-getdomainname.c (main): Likewise. * tests/test-getgroups.c (main): Likewise. * tests/test-gethostname.c (main): Likewise. * tests/test-math-c++.cc (OVERLOADED_CHECK): Likewise. * tests/test-mkdirat.c (main): Likewise. * tests/test-openat.c (main): Likewise. * tests/test-parse-datetime.c (main): Likewise. * tests/test-quotearg-simple.c (main): Likewise. * tests/test-quotearg.c (main): Likewise. * tests/test-sethostname2.c (main): Likewise. * tests/test-unlinkat.c (main): Likewise. * tests/test-version-etc.c (main): Likewise. * tests/test-xalloc-die.c (main): Likewise. * tests/test-xfprintf-posix.c (main): Likewise. * tests/test-xprintf-posix.c (main): Likewise. * tests/test-xvasprintf.c (main): Likewise. 2021-08-22 Bruno Haible gnulib-common.m4: Document the gnulib-internal _GL_ATTRIBUTE_* macros. * m4/gnulib-common.m4 (gl_COMMON_BODY): Add comments to the _GL_ATTRIBUTE_* macros, based on lib/attribute.h. 2021-08-22 Bernhard Voelker doc: fix order of stdlib functions * doc/gnulib.texi (node Glibc stdlib.h): Move mrand48_r after mkstemps. Reported by Benno Schulenberg. 2021-08-21 Bruno Haible c-stack: Test for libsigsegv once, not twice. * m4/sigsegv.m4: New file, based on modules/sigsegv. * modules/sigsegv (Files): Add it. (configure.ac): Require gl_SIGSEGV. Test gl_sigsegv_uses_libsigsegv instead of with_libsigsegv and gl_cv_lib_sigsegv. * m4/c-stack.m4 (gl_C_STACK): Likewise. 2021-08-21 Bruno Haible rawmemchr: Fix use in relocatable-prog-wrapper (regression 2021-08-20). * lib/rawmemchr.c: Restore test of HAVE_RAWMEMCHR. * modules/relocatable-prog-wrapper (Depends-on): Add stdalign. 2021-08-20 Paul Eggert rawmemchr: modernize and simplify * lib/rawmemchr.c (HAVE_RAWMEMCHR): Assume it’s not defined; otherwise this file would not be compiled. Include limits.h, stdalign.h, stdint.h, verify.h. (rawmemchr): Prefer uintptr_t to unsigned long and to size_t when it’s the better type. Verify that longword lacks padding. Use alignof rather than sizeof when checking alignment. Simplify by assuming C99 decl-after-statement, and by using multiplication rather than repeated shifting and OR (modern compilers can optimize the multiplication if needed). Avoid unnecessary casts. Don’t assume CHAR_WIDTH is 8. Convert back and forth between void * to suppress bogus GCC warnings about alignment. Omit a duplicate assignment to char_ptr. * modules/rawmemchr (Depends-on): Add stdalign, stdint, verify. 2021-08-17 Paul Eggert c-stack: fix libsigsegv dependency (regression 2021-05-18) Problem reported for GNU grep by Evan Miller (Bug#50098). * m4/c-stack.m4 (gl_C_STACK): Call gl_LIBSIGSEGV before testing gl_cv_lib_sigsegv. 2021-08-14 Bruno Haible doc: Update for glibc 2.34. * doc/posix-functions/timespec_getres.texi: New file. * doc/glibc-functions/_Fork.texi: New file. * doc/glibc-functions/closefrom.texi: New file. * doc/glibc-functions/dn_comp.texi: New file. * doc/glibc-functions/dn_skipname.texi: New file. * doc/glibc-functions/execveat.texi: New file. * doc/glibc-functions/posix_spawn_file_actions_addclosefrom_np.texi: New file. * doc/glibc-functions/res_dnok.texi: New file. * doc/glibc-functions/res_hnok.texi: New file. * doc/glibc-functions/res_mailok.texi: New file. * doc/glibc-functions/res_nmkquery.texi: New file. * doc/glibc-functions/res_nquery.texi: New file. * doc/glibc-functions/res_nquerydomain.texi: New file. * doc/glibc-functions/res_nsearch.texi: New file. * doc/glibc-functions/res_nsend.texi: New file. * doc/glibc-functions/res_ownok.texi: New file. * doc/glibc-functions/res_send.texi: New file. * doc/gnulib.texi: Include them. * doc/glibc-functions/inet_neta.texi: Remove file. * doc/glibc-functions/malloc_get_state.texi: Remove file. * doc/glibc-functions/malloc_set_state.texi: Remove file. * doc/glibc-functions/pthread_mutex_consistent_np.texi: Remove file. * doc/glibc-functions/pthread_mutexattr_getrobust_np.texi: Remove file. * doc/glibc-functions/pthread_mutexattr_setrobust_np.texi: Remove file. * doc/glibc-functions/pthread_yield.texi: Remove file. * doc/gnulib.texi: Don't include them. * doc/glibc-headers/resolv.texi: Update. * doc/pastposix-functions/h_errno.texi: Likewise. * doc/posix-functions/*.texi: Likewise. * doc/glibc-functions/*.texi: Likewise. 2021-08-12 Paul Eggert memrchr-tests: port to GCC 12 * tests/test-memrchr.c: Bug#101494 is fixed in GCC 12. 2021-08-12 Akim Demaille snippet/_Noreturn: Fix typo * lib/_Noreturn.h: Fix spelling of 4. 2021-08-11 Paul Eggert dynarray: merge from glibc This also helps document glibc’s direction in using GCC’s memory-allocation checking. * lib/cdefs.h: Omit comments that glibc rejected. (__returns_nonnull, __attr_access_none, __attr_dealloc) (__attr_dealloc_free): New macros. * lib/libc-config.h: Undef the new macros that are defined unconditionally. * lib/malloc/dynarray_at_failure.c [_LIBC]: Do not include stdlib.h. (__libc_dynarray_at_failure) [_LIBC]: Call __libc_fatal, fixing a bad merge previously. 2021-08-08 Bruno Haible canonicalize-lgpl: Fix conflict with z/OS . Reported by Mike Fulton in via Eric Blake. * lib/canonicalize-lgpl.c (__stat): Remove macro. (file_accessible): Use 'stat' instead. 2021-08-08 Bruno Haible ptsname_r: Drop sync with glibc. * lib/ptsname_r.c: Drop _LIBC code. (__set_errno, __isatty, __stat, __ttyname_r, __ptsname_r): Remove macros. (ptsname_r): Rename local variable 'save_errno'. 2021-08-08 Bruno Haible config: Update after glibc changed. * config/srclist.txt: Remove two files that glibc dropped on 2013-12-17. 2021-08-08 Bruno Haible relocatable-lib-lgpl: Fix a memory leak related to a Windows DLL. Reported by Jonathan Boeing in . * lib/relocatable.c (DllMain): Avoid memory leak in a special case of repeated attach/detach. 2021-08-08 Bruno Haible fopen: Fix link error on native Windows. * modules/fopen (Depends-on): Add close. 2021-08-08 Bruno Haible fopen: Fix compilation error on AIX (regression from 2020-05-28). * modules/fopen (Depends-on): Add fcntl-h. 2021-08-08 Bruno Haible stdio: Improve GCC 11 allocation-deallocation checking. * lib/stdio.in.h (fdopen, fopen, tmpfile): For GCC >= 11: Declare nearly always. (popen): For GCC >= 11: Declare also when the platform already declares the function or when the module 'popen' is not in use. 2021-08-08 Bruno Haible dirent: Improve GCC 11 allocation-deallocation checking. * lib/dirent.in.h (opendir): For GCC >= 11: Declare also when the platform already declares the function or when the module 'opendir' is not in use. (fdopendir): For GCC >= 11: Declare also when the platform already declares the function or when the module 'fdopendir' is not in use. 2021-08-08 Bruno Haible stdlib, string, wchar: Improve GCC 11 allocation-deallocation checking. * lib/stdlib.in.h (aligned_alloc): For GCC >= 11: Declare also when the platform already declares the function or when the module 'aligned_alloc' is not in use. (calloc): For GCC >= 11: Declare nearly always. (canonicalize_file_name): For GCC >= 11: Declare also when the platform already declares the function or when the module 'canonicalize-lgpl' is not in use. (malloc, realloc): For GCC >= 11: Declare nearly always. * lib/malloc.in.h: Remove redundant include. (memalign): For GCC >= 11: Declare also when the platform already declares the function or when the module 'memalign' is not in use. * lib/string.in.h: Include always. (strdup): For GCC >= 11: Declare also when the platform already declares the function or when the module 'strdup' or 'strdup-posix' is not in use. * lib/wchar.in.h: Include always. (wcsdup): For GCC >= 11: Declare also when the platform already declares the function or when the module 'wcsdup' is not in use. * modules/free-posix (Depends-on): Add string, wchar. 2021-08-07 Bruno Haible gnulib-tool: Add support for Automake 1.16.4. Reported by in . * build-aux/test-driver-1.16.3.diff: Renamed from build-aux/test-driver.diff. * build-aux/test-driver.diff: Update to match Automake 1.16.4. * gnulib-tool (func_create_testdir, func_create_megatestdir): Try both .diff files. 2021-08-07 Bruno Haible gnulib-common.m4: Minor style fix. * m4/gnulib-common.m4 (gl_COMMON_BODY): Keep list of attributes sorted alphabetically. 2021-08-07 Bruno Haible uninorm, unistr: Improve GCC 11 allocation-deallocation checking. * lib/uninorm.in.h (uninorm_filter_free): Move declaration up. (uninorm_filter_create): Declare that deallocation must happen through 'uninorm_filter_free'. * lib/unistr.in.h: Include . (u8_strdup, u16_strdup, u32_strdup): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible ialloc: Prepare for allocation-deallocation checking. * lib/ialloc.h (imalloc, irealloc, icalloc): Add comment that deallocation must happen through 'free'. 2021-08-07 Bruno Haible aligned-malloc: Prepare for allocation-deallocation checking. * lib/aligned-malloc.h (aligned_free): Move declaration up. (aligned_malloc): Add comment that deallocation must happen through 'aligned_free'. 2021-08-07 Bruno Haible list, set, oset, map, omap: Prepare allocation-deallocation checking. * lib/gl_list.h (gl_list_create_empty, gl_list_nx_create_empty, gl_list_create, gl_list_nx_create): Add comment that deallocation must happen through 'gl_list_free'. * lib/gl_xlist.h (gl_list_create_empty, gl_list_create): Likewise. * lib/gl_sublist.h (gl_sublist_create, gl_sublist_nx_create): Likewise. * lib/gl_xsublist.h (gl_sublist_create): Likewise. * lib/gl_set.h (gl_set_create_empty, gl_set_nx_create_empty): Add comment that deallocation must happen through 'gl_set_free'. * lib/gl_xset.h (gl_set_create_empty): Likewise. * lib/gl_oset.h (gl_oset_create_empty, gl_oset_nx_create_empty): Add comment that deallocation must happen through 'gl_oset_free'. * lib/gl_xoset.h (gl_oset_create_empty): Likewise. * lib/gl_map.h (gl_map_create_empty, gl_map_nx_create_empty): Add comment that deallocation must happen through 'gl_map_free'. * lib/gl_xmap.h (gl_map_create_empty): Likewise. * lib/gl_omap.h (gl_omap_create_empty, gl_omap_nx_create_empty): Add comment that deallocation must happen through 'gl_omap_free'. * lib/gl_xomap.h (gl_omap_create_empty): Likewise. 2021-08-07 Bruno Haible xgetdomainname: Improve GCC 11 allocation-deallocation checking. * lib/xgetdomainname.h: Include . (xgetdomainname): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible xgetdomainname: Ensure .c file starts with '#include '. * lib/xgetaname-impl.h: New file, based on lib/xgethostname.c. * lib/xgethostname.c: Move implementation to lib/xgetaname-impl.h. * lib/xgetdomainname.c: Include . Include xgetaname-impl.h instead of xgethostname.c. * modules/xgethostname (Files): Add lib/xgetaname-impl.h. * modules/xgetdomainname (Files): Likewise. (Depends-on): Remove xgethostname. Add free-posix, xalloc. 2021-08-07 Bruno Haible xstrndup: Improve GCC 11 allocation-deallocation checking. * lib/xstrndup.h: Include instead of . (xstrndup): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible xstriconveh: Improve GCC 11 allocation-deallocation checking. * lib/xstriconveh.h: Include instead of . (xstr_cd_iconveh, xstr_iconveh): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible xmemdup0: Improve GCC 11 allocation-deallocation checking. * lib/xmemdup0.h: Include instead of . (xmemdup0): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible windows-spawn: Improve GCC 11 allocation-deallocation checking. * lib/windows-spawn.h: Include . (compose_command, compose_envblock): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible string-buffer: Improve GCC 11 allocation-deallocation checking. * lib/string-buffer.h: Include instead of . (sb_dupfree): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible striconveha: Improve GCC 11 allocation-deallocation checking. * lib/striconveha.h: Include instead of . (str_iconveha): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible striconveh: Improve GCC 11 allocation-deallocation checking. * lib/striconveh.h: Include instead of . (str_cd_iconveh, str_iconveh): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible striconv: Improve GCC 11 allocation-deallocation checking. * lib/striconv.h: Include instead of . (str_cd_iconv, str_iconv): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible relocatable-lib-lgpl: Improve GCC 11 allocation-deallocation checking. * lib/relocatable.h: Include . (compute_curr_prefix): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible regex-quote: Improve GCC 11 allocation-deallocation checking. * lib/regex-quote.h: Include instead of . (regex_quote): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible readline: Improve GCC 11 allocation-deallocation checking. * lib/readline.h: Include . (readline): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible read-file: Improve GCC 11 allocation-deallocation checking. * lib/read-file.h: Include instead of . (fread_file, read_file): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible pipe-filter-gi: Improve GCC 11 allocation-deallocation checking. * lib/pipe-filter.h (pipe_filter_gi_close): Move declaration up. (pipe_filter_gi_create): Declare that deallocation must happen through 'pipe_filter_gi_close'. 2021-08-07 Bruno Haible javaversion: Improve GCC 11 allocation-deallocation checking. * lib/javaversion.h: Include . (javaexec_version): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible ino-map: Improve GCC 11 allocation-deallocation checking. * lib/ino-map.h (ino_map_free): Move declaration up. (ino_map_alloc): Declare that deallocation must happen through 'ino_map_free'. 2021-08-07 Bruno Haible hash: Improve GCC 11 allocation-deallocation checking. * lib/hash.h (hash_free): Move declaration up. (hash_initialize, hash_xinitialize): Declare that deallocation must happen through 'hash_free'. 2021-08-07 Bruno Haible hamt: Improve GCC 11 allocation-deallocation checking. * lib/hamt.h (hamt_free): Move declaration up. (hamt_create, hamt_copy): Declare that deallocation must happen through 'hamt_free'. 2021-08-07 Bruno Haible get_progname_of: Improve GCC 11 allocation-deallocation checking. * lib/get_progname_of.h: Include . (get_progname_of): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible fts: Improve GCC 11 allocation-deallocation checking. * lib/fts_.h (fts_open): Declare that deallocation must happen through 'fts_close'. 2021-08-07 Bruno Haible eealloc: Improve GCC 11 allocation-deallocation checking. * lib/eealloc.h (eemalloc): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible di-set: Improve GCC 11 allocation-deallocation checking. * lib/di-set.h (di_set_free): Move declaration up. (di_set_alloc): Declare that deallocation must happen through 'di_set_free'. 2021-08-07 Bruno Haible [x]concat-filename: Improve GCC 11 allocation-deallocation checking. * lib/concat-filename.h: Include . (concatenated_filename, xconcatenated_filename): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible clean-temp: Improve GCC 11 allocation-deallocation checking. * lib/clean-temp.h (cleanup_temp_dir): Move declaration up. (create_temp_dir): Declare that deallocation must happen through 'cleanup_temp_dir'. 2021-08-07 Bruno Haible canon-host: Improve GCC 11 allocation-deallocation checking. * lib/canon-host.h: Include . (canon_host, canon_host_r): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible c-xvasprintf: Improve GCC 11 allocation-deallocation checking. * lib/c-xvasprintf.h: Include . (c_xasprintf, c_xvasprintf): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible bitsetv: Improve GCC 11 allocation-deallocation checking. * lib/bitsetv.h (bitsetv_free): Move declaration up. (bitsetv_alloc, bitsetv_create): Declare that deallocation must happen through 'bitsetv_free'. bitset: Improve GCC 11 allocation-deallocation checking. * lib/bitset.h (bitset_free): Move declaration up. (bitset_alloc, bitset_create): Declare that deallocation must happen through 'bitset_free'. (bitset_obstack_free): Move declaration up. (bitset_obstack_alloc): Declare that deallocation must happen through 'bitset_obstack_free'. 2021-08-07 Bruno Haible argv-iter: Improve GCC 11 allocation-deallocation checking. * lib/argv-iter.h (argv_iter_free): Move declaration up. (argv_iter_init_argv, argv_iter_init_stream): Declare that deallocation must happen through 'argv_iter_free'. 2021-08-07 Bruno Haible argp: Improve GCC 11 allocation-deallocation checking. * lib/argp-fmtstream.h (__argp_fmtstream_free, argp_fmtstream_free): Move declarations up. (__argp_make_fmtstream): Declare that deallocation must happen through '__argp_fmtstream_free'. (argp_make_fmtstream): Declare that deallocation must happen through 'argp_fmtstream_free'. 2021-08-07 Bruno Haible areadlink, areadlinkat: Improve GCC 11 allocation-deallocation checking. * lib/areadlink.h: Include instead of . (areadlink, areadlink_with_size, areadlinkat, areadlinkat_with_size): Declare that deallocation must happen through 'free'. 2021-08-07 Bruno Haible stdio: Improve GCC 11 allocation-deallocation checking. * lib/stdio.in.h (fdopen, fopen, tmpfile): Declare that deallocation must happen through 'fclose'. (popen): Declare that deallocation must happen through 'pclose'. * lib/stdio-safer.h (fopen_safer, tmpfile_safer): Declare that deallocation must happen through 'fclose'. (popen_safer): Declare that deallocation must happen through 'pclose'. (freopen_safer): Declare that arguments must be non-NULL. 2021-08-07 Bruno Haible dirent: Improve GCC 11 allocation-deallocation checking. * lib/dirent.in.h (closedir): Move declaration up. (opendir, fdopendir): Declare that deallocation must happen through 'closedir'. * lib/dirent-safer.h (opendir_safer): Likewise. * lib/opendirat.h (opendirat): Likewise. 2021-08-07 Bruno Haible stdlib, string, wchar: Improve GCC 11 allocation-deallocation checking. * lib/stdlib.in.h (free): Move declaration up. (aligned_alloc, calloc, canonicalize_file_name, malloc, realloc): Declare that deallocation must happen through 'free' (which may actually be 'rpl_free'). * lib/string.in.h: Include . (strdup): Declare deallocation. * lib/wchar.in.h: Include . (wcsdup): Declare deallocation. * lib/malloc.in.h: Include . (memalign): Declare deallocation. 2021-08-07 Bruno Haible year2038: Fix recommendation regarding -m64 flag. * m4/year2038.m4 (gl_YEAR2038_BODY): Recommend to put option --m64 in CC, not in CPPFLAGS and LDFLAGS. 2021-08-07 Bruno Haible quotearg: Tweak last commit. * lib/quotearg.h: Don't include . Remove stray semicolon. 2021-08-07 Bruno Haible malloca: Tweak last commit. * lib/malloca.h: Keep use and declaration of mmalloca close together. 2021-08-07 Bruno Haible dirname-lgpl, sh-quote, system-quote, xstriconv: Clean up includes. * lib/dirname.h: Don't include . * lib/sh-quote.h: Likewise. * lib/system-quote.h: Likewise. * lib/xstriconv.h: Likewise. 2021-08-07 Bruno Haible dfa: Improve GCC 11 allocation-deallocation checking. * lib/dfa.h (dfamust): Declare that deallocation must happen through dfamustfree. 2021-08-06 Paul Eggert glob: merge from glibc * lib/glob-libc.h, lib/glob.c: Merge changes from glibc 2.34. The result should be copyable directly into glibc. * modules/glob-h (glob-libc.gl.h): Also omit __THROWNL. 2021-08-03 Simon Josefsson announce-gen: Print SHA1/B64(SHA256) instead of MD5/SHA1. * build-aux/announce-gen (%digest_classes): Removed. (usage): Doc fix. (print_checksums): Instead of MD5/SHA1, print SHA1 and B64(SHA256), inspired by OpenSSH announcements. maintainer-makefile: Print checksums by default. * top/maint.mk (announcement): Drop --no-print-checksums. 2021-08-02 Paul Eggert manywarnings: enable some malloc warnings * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Stop adding -Wno-analyzer-double-free, -Wno-analyzer-null-dereference, and -Wno-analyzer-use-after-free, as these false alarms don’t seem to be as much of an issue now that we’ve pacified a couple of individual modules and GCC has some bug fixes. dfa: omit unneeded malloc+free Problem indirectly found by Coverity. * lib/dfa.c (enlistnew): New function, with most of the body of the old ‘enlist’. It assumes its arg NEW has been malloced and can be freed eventually. (enlist, addlists, dfamust): Use it. (dfamust): Omit an unnecessary malloc+free. year2038: port to unusual time_t platforms * m4/year2038.m4 (gl_YEAR2038_TEST_INCLUDES): Check that time_t can go to 2**32 - 1, not to 2**63 - 1, as the former is enough to be year 2038 safe. Unsigned 32-bit time_t (AmigaOS) and signed 40-bit time_t (Unisys ClearPath) have occurred in the wild, and even if Gnulib code is rarely or never ported to them there’s no need to exclude them merely because of year 2038 issues. (gl_YEAR2038_BODY): Adjust messages to match. Use 2**32 - 1, not 2**32, as the test timestamp, to allow unsigned 32-bit time_t. 2021-08-01 Paul Eggert xalloc: no attribute (malloc (free)) on inline The GCC manual says you can’t use __attribute__ ((__malloc__ (free, 1))) on inline functions. Problem discovered when compiling diffutils 3.8 on RHEL 8.4 using a GCC 11.2.0 that I built myself. Perhaps the problem was not discovered earlier because the attribute works with ‘free’ (which is what I was seeing before on Fedora 34) but not with ‘rpl_free’ (seen on RHEL 8.4). Anyway, the GCC manual says it shouldn’t work at all, so don’t use it. * lib/xalloc.h (xnmalloc, xcharalloc): No longer inline. * lib/xmalloc.c (xcharalloc, xnmalloc): Move function bodies here. * m4/gnulib-common.m4 (_GL_ATTRIBUTE_DEALLOC) (_GL_ATTRIBUTE_DEALLOC_FREE): Document that these cannot be used on inline functions, as per the GCC 11.2.1 manual. sigsegv-tests: make more things static * tests/test-sigsegv-catch-segv1.c: * tests/test-sigsegv-catch-stackoverflow1.c: * tests/test-sigsegv-catch-stackoverflow2.c: Declare some functions and variables static, to pacify GCC when warning about external functions missing declarations. maint: improve -fanalyzer malloc checking * lib/backup-internal.h, lib/backupfile.h: * lib/canonicalize.h, lib/dfa.h, lib/dirname.h, lib/exclude.h: * lib/filenamecat.h, lib/malloca.h, lib/modechange.h: * lib/mountlist.h, lib/pagealign_alloc.h, lib/quotearg.h: * lib/readutmp.h, lib/savedir.h, lib/sh-quote.h, lib/system-quote.h: * lib/trim.h, lib/xgetcwd.h, lib/xgethostname.h, lib/xmalloca.h: * lib/xreadlink.h, lib/xstriconv.h, lib/xvasprintf.h: Add malloc-related attributes and include stdlib.h as needed. * lib/dfa.c: Include verify.h. (assume_nonnull): New macro. (dfamust): Use it to pacify GCC. * lib/malloca.c (mmalloca): Redo to pacify GCC, to cut down on the number of casts, and to avoid signed integer overflow on theoretical platforms. * lib/vasnprintf.c, tests/test-argmatch.c: Disable -Wanalyzer-null-argument here. * m4/manywarnings.m4: Update GCC bug report number in comment. 2021-08-01 Jim Meyering regex: pacify GCC 11.2.1's -fanalyzer * lib/regex_internal.c (re_node_set_merge): Add a debug assertion to pacify GCC 11.2.1's -fanalyzer. 2021-08-01 Bruno Haible limits-h tests: Add tests for BOOL_MAX and BOOL_WIDTH. * tests/test-limits-h.c (bool_attrs): New variable. Check value of BOOL_MAX. 2021-07-31 Paul Eggert regex: pacify GCC 11.2 -fanalyzer * lib/regex_internal.c (re_node_set_insert): Add a debug assertion to pacify GCC 11.2 -fanalyzer. maint: pacify GCC 11.2 -fanalyzer in crypto tests * tests/bench-digest.h (main): Report an error after memory exhaustion, instead of using a null pointer. 2021-07-30 Paul Eggert xalloc: add malloc-related function attributes * lib/quotearg.h, lib/xalloc.h: Include stdlib.h, for the benefit of _GL_ATTRIBUTE_RETURNS_NONNULL. * lib/quotearg.h (clone_quoting_options): * lib/xalloc.h (xmalloc, ximalloc, xzalloc, xizalloc, xcalloc) (xicalloc, xrealloc, xirealloc, xireallocarray, x2realloc) (x2nrealloc, xmemdup, ximemdup, xstrdup, xnmalloc, xcharalloc): Add _GL_ATTRIBUTE_DALLOC_FREE and _GL_ATTRIBUTE_RETURNS_NONNULL attributes as appropriate. gnulib-common: update for gcc -Wmismatched-dealloc * m4/gnulib-common.m4 (gl_COMMON_BODY): Define the macros _GL_ATTRIBUTE_DEALLOC and _GL_ATTRIBUTE_DEALLOC_FREE. These can be useful with gcc -Wmismatched-dealloc. gnulib-common: update for C2x 2020-12-11 draft Use blessed-by-draft-standard way to test for [[__deprecated__]] etc.; this is supported by GCC 11 and the fallback code should work fine with GCC 10 and earlier. * m4/gnulib-common.m4 (gl_COMMON_BODY): Define the macro _GL_HAS_C_ATTRIBUTE, and use it instead of __STDC_VERSION__ in deciding whether to use C2x attributes like [[__deprecated__]]. manywarnings: document GCC 11 warnings * build-aux/gcc-warning.spec: Add warnings introduced in GCC 11. None of them require Gnulib code changes, so this is just a documentation change. limits-h: add BOOL_MAX, BOOL_WIDTH * doc/posix-headers/limits.texi (limits.h): Document them. * lib/limits.in.h: Also define CHAR_WIDTH etc. if C2x. (BOOL_MAX, BOOL_WIDTH): New macros, from C2x. * m4/limits-h.m4 (gl_LIMITS_H): Also check BOOL_WIDTH. 2021-07-28 Simon Josefsson maintainer-makefile: Respect cfg.mk setting announcement_Cc_, reverting most of the previous patch. * top/maint.mk (announcement_mail_Cc_stable): Rename back to announcement_Cc_stable. (announcement_Cc_alpha): Rename back to announcement_mail_Cc_alpha. (announcement_Cc_): Renamed from announcement_mail_Cc_. (announcement_mail_headers_stable) (announcement_mail_headers_alpha): Use announcement_Cc_ again. 2021-07-28 Simon Josefsson maintainer-makefile: Fix announcement mail CC's. * top/maint.mk (announcement_Cc_stable): Rename to announcement_mail_Cc_stable. (announcement_Cc_alpha): Rename to announcement_mail_Cc_alpha. (announcement_mail_headers_stable) (announcement_mail_headers_alpha): Use announcement_mail_Cc_ instead of announcement_Cc_. 2021-07-25 Bruno Haible Assume GNU gettext >= 0.17. * modules/vasprintf (Notice): Remove. * modules/xvasprintf (Notice): Remove. * modules/xprintf (Notice): Remove. * modules/error (Notice): Remove. * modules/verror (Notice): Remove. * modules/argp (Notice): Remove. * modules/propername (Notice): Remove. * lib/propername.h: Remove outdated comment. 2021-07-19 Simon Josefsson gendocs.sh: Fix local rendering of HTML manuals. * build-aux/gendocs.sh (htmlarg): Don't use relative URLs. 2021-07-18 Paul Eggert explicit_bzero-tests: pacify GCC better Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2021-07/msg00039.html * tests/test-explicit_bzero.c: Ignore -Wmaybe-uninitialized. (stackbuf): Remove this static pointer, reverting recent change. (do_secret_stuff, test_stack): Revert these related changes too. 2021-07-17 Paul Eggert memrchr-tests: pacify GCC Pacify GCC 11.1.1 20210531 (Red Hat 11.1.1-3) x86-64. * tests/test-memrchr.c: Disable -Wmaybe-uninitialized. explicit_bzero-tests: pacify GCC Redo to pacify -Wmaybe-uninitialized with GCC 11.1.1 20210531 (Red Hat 11.1.1-3) x86-64. * tests/test-explicit_bzero.c (stackbuf): New static pointer. (do_secret_stuff): Use it. (test_stack): Set it to a local buffer. posixtm: pacify latest GCC Also, modernize while I’m at it. * lib/posixtm.c: Include c-ctype.h, idx.h, intprops.h, verify.h instead of stdlib.h. (ISDIGIT): Remove. All uses replaced by c_isdigit. (year, posix_time_parse): Prefer idx_t to size_t. Use assume instead of abort. (posixtime): Do not parse twice; once is enough. That way, we needn’t worry about a bogus warning about strcpy overrunning a buffer from GCC 11.1.1 20210531 (Red Hat 11.1.1-3) x86-64 when coreutils is configured with --enable-gcc-warnings. * modules/posixtm (Depends-on): Add c-ctype, intprops, verify. Remove stpcpy. 2021-07-17 Bruno Haible Don't use '#pragma weak' for thread functions in Linux/glibc>=2.34. Suggested by Florian Weimer in . * m4/threadlib.m4 (gl_PTHREADLIB_BODY): Set gl_pthread_in_glibc and set LIBPMULTITHREAD accordingly. (gl_STDTHREADLIB_BODY): Update comments. (gl_THREADLIB_BODY): Define USE_POSIX_THREADS_FROM_LIBC. * lib/glthread/thread.h (c11_threads_in_use): Define to 1 if all POSIX thread functions are in libc. * lib/glthread/lock.h (c11_threads_in_use): Likewise. * lib/glthread/cond.h (c11_threads_in_use): Likewise. * lib/glthread/tls.h (c11_threads_in_use): Likewise. 2021-07-17 Bruno Haible Fix cross-compilation test results. * m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): When cross-compiling, include before testing __GNU_LIBRARY__. * m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE): Likewise. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Likewise. 2021-07-14 Paul Eggert regex: modernize to newer regex bugset Problem reported by Hiroo Hayashi in: https://lists.gnu.org/r/bug-gnulib/2021-07/msg00024.html * m4/regex.m4 (gl_REGEX): Allow newer glibc behavior for ()0|\1, behavior where the regex compiles but does not match. Test for glibc bug 11053. * tests/test-regex.c (bug_regex11, main): Add casts needed for printf portability. (main): Allow newer glibc behavior for ()0|\1. regex: fix shell quoting problem in configuration * m4/regex.m4 (gl_REGEX): Fix quoting problems. These C programs are put into unquoted here-documents, so $ and \ need to be quoted. 2021-07-08 Paul Eggert select: port better to MinGW Problem reported by Eli Zaretskii in: https://lists.gnu.org/r/bug-gnulib/2021-07/msg00017.html * lib/select.c (rpl_select) [_WIN32 && !__CYGWIN__]: Pass a SOCKET, not a HANDLE, to FD_ISSET. 2021-07-06 Paul Eggert year2038: Add --disable-year2038 option Also, document this stuff better. Suggested by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2021-07/msg00011.html * doc/year2038.texi: Document --disable-year2038. * m4/year2038.m4 (gl_YEAR2038_BODY): Support ‘./configure --disable-year2038’ to disable 64-bit time_t when that is not the default. Arg is now either empty or nonempty (not a shell command) and is evaluated at m4 expansion time instead of at runtime; all callers changed. doc: clarify which module fixes 32-bit time_t * doc/posix-headers/time.texi: Make it clear that the 32-bit time_t problem is addressed by the year2038 module, not by the time module. 2021-07-01 Paul Eggert year2038: support glibc 2.34 _TIME_BITS=64 In glibc 2.34 on Linux kernels where time_t is traditionally 32-bit, defining _FILE_OFFSET_BITS=64 and _TIME_BITS=64 makes time_t 64-bit. Apps must define both macros. Gnulib applications that use either the largefile or the year2038 modules will want this behavior; largefile because it deals with the off_t and ino_t components of struct stat already, and so should also deal with time_t. * NEWS, doc/largefile.texi, doc/posix-headers/time.texi: Mention this. * m4/largefile.m4: Override two macros even in Autoconf 2.70 and later. (_AC_SYS_LARGEFILE_MACRO_VALUE): #undef $1 before #defining it, in case some other Gnulib macro has #defined it. (AC_SYS_LARGEFILE): Use AS_IF and AS_CASE to propagate AC_REQUIREs. Invoke gl_YEAR2038_BODY if we need to set _FILE_OFFSET_BITS=64. * m4/year2038.m4 (gl_YEAR2038_TEST_INCLUDES): New macro. (gl_YEAR2038_BODY): New macro, with gl_YEAR2038’s old body; this macro is designed to be used directly instead of being AC_REQUIREd. It takes an argument specifying whether 64-bit is required. Set _TIME_BITS=64 if this makes a difference in time_t width when setting _FILE_OFFSET_BITS=64. Do not warn about 32-bit time_t more than once. * modules/largefile (Files): Add year2038.m4. (Depends-on): Require gl_YEAR2038_EARLY. relocatable-prog-wrapper: add m4 files Add .m4 files needed for standalone relocatable-prog-wrapper, so that ‘./gnulib-tool --test relocatable-prog-wrapper’ does not fail with diagnostics like ‘configure.ac:63: error: possibly undefined macro: gl_FUNC_MALLOC_POSIX’. * modules/relocatable-prog-wrapper (Files): Add m4/free.m4, m4/malloc.m4, m4/mempcpy.m4, m4/rawmemchr.m4, m4/realloc.m4. 2021-06-28 Bruno Haible strerror-override: Fix possible compilation error. Reported by Thomas Klausner . * lib/strerror-override.h (GNULIB_defined_strerror_override_macro): New macro. * lib/strerror-override.c (strerror_override): Don't define if GNULIB_defined_strerror_override_macro is set. 2021-06-27 Bruno Haible environ: Fix wrong autoconf test result in C++ mode. * m4/environ.m4 (gt_CHECK_VAR_DECL): Use a typedef'ed type, not an anonymous type. 2021-06-22 Egor Ignatov (tiny change) regex: fix undefined behavior Problem reported by Paul Eggert in: https://lists.gnu.org/r/bug-gnulib/2021-06/msg00115.html * lib/regexec.c (proceed_next_node): Don’t insert already-inserted node. 2021-06-21 Eric Blake sigsegv, sigsegv-tests: Assign my contributions to the FSF. * m4/sigaltstack.m4: Change copyright notice: Write "Copyright (C) FSF" instead of "Copyright (C) Eric Blake". * tests/altstack-util.h: Likewise. * tests/test-sigsegv-catch-stackoverflow1.c: Likewise. * tests/test-sigsegv-catch-stackoverflow2.c: Likewise. 2021-06-20 Bruno Haible unistd: Avoid compilation error in C++ mode on Solaris, HP-UX, mingw. Reported by Eli Zaretskii in . * lib/unistd.in.h (swab): Consider different declarations on Solaris, HP-UX, and old mingw. 2021-06-20 Bruno Haible Sync with GNU gettext. * lib/printf-parse.c: Ignore IN_LIBINTL and IN_LIBASPRINTF. * lib/vasnprintf.c: Ignore IN_LIBINTL. 2021-06-19 Bruno Haible Sync with GNU gettext. * lib/tsearch.c: Ignore IN_LIBINTL. * lib/localename-table.h: Likewise. * lib/localename.c: Ignore IN_LIBINTL in some places. 2021-06-19 Bruno Haible unistd: Improve conflict resolution between gnulib and textstyle.h. * lib/unistd.in.h (GNULIB_overrides_isatty): New macro. 2021-06-19 Bruno Haible stdio: Improve conflict resolution between gnulib and libintl.h. * lib/stdio.in.h (GNULIB_overrides_snprintf, GNULIB_overrides_sprintf, GNULIB_overrides_asprintf, GNULIB_overrides_vasprintf, GNULIB_overrides_vsnprintf, GNULIB_overrides_vsprintf): New macros. 2021-06-19 Bruno Haible declared.sh: Allow parsing 'extern "C"' lines. * build-aux/declared.sh: Don't concatenate lines to an 'extern "C" {' line. 2021-06-19 Bruno Haible unitypes: Fix trouble caused by installed older versions of unitypes.h. * modules/unitypes (configure.ac): Define _UC_RESTRICT through config.h. 2021-06-19 Bruno Haible sigsegv, sigsegv-tests: Assign my contributions to the FSF. * lib/sigsegv.in.h: Change copyright notice: Write "Copyright (C) FSF" instead of "Copyright (C) Bruno Haible". * lib/sigsegv.c: Likewise. * lib/stackvma.h: Likewise. * lib/stackvma.c: Likewise. * m4/sigaltstack.m4: Likewise. * m4/stack-direction.m4: Likewise. * tests/altstack-util.h: Likewise. * tests/mmap-anon-util.h: Likewise. * tests/test-sigsegv-catch-segv1.c: Likewise. * tests/test-sigsegv-catch-segv2.c: Likewise. * tests/test-sigsegv-catch-stackoverflow1.c: Likewise. * tests/test-sigsegv-catch-stackoverflow2.c: Likewise. 2021-06-18 Darren Kenny (tiny change) argp: Avoid possible NULL access in argp_help. Reported by Coverity. The invocation chain is: argp_help -> _help -> fill_in_uparams -> validate_uparams. * lib/argp-help.c (validate_uparams): Don't crash if state == NULL. 2021-06-16 Bruno Haible tsearch: Relicense under LGPLv2+. * modules/tsearch (License): Change to LGPLv2+. * lib/tsearch.c: Update license notice. 2021-06-15 Bruno Haible pipe-filter-ii tests: Fix long-standing failure on native Windows. * tests/test-pipe-filter-ii2-main.c: Include binary-io.h. (main): Avoid NL to CRLF conversion on standard output. * tests/test-pipe-filter-ii2-child.c: Include , binary-io.h. (main): Avoid NL to CRLF conversion on standard output. 2021-06-15 Bruno Haible xnanosleep: Improve module description. * modules/xnanosleep (Description): Improve. * lib/xnanosleep.h: Add comment. Make includable from C++. * lib/xnanosleep.c: Update comment. 2021-06-15 Bruno Haible xfreopen: Improve module description. * modules/xfreopen (Description): Improve. * lib/xfreopen.h: Add comments. Make includable from C++. * lib/xfreopen.c: Update comment. 2021-06-14 Paul Eggert idx: new printf/scanf length modifier macro * lib/idx.h (pIDX): New macro. 2021-06-13 Bruno Haible Align 2011-11-26 patch to 2021-04-11 patch (regression from 2021-04-11). Reported by Paul Eggert. * m4/unistd_h.m4 (gl_UNISTD_H_REQUIRE_DEFAULTS): Also initialize GNULIB_UNISTD_H_GETOPT variable. * modules/getopt-posix (configure.ac): Set GNULIB_UNISTD_H_GETOPT variable. * modules/unistd (Makefile.am): Rely on ${gl_include_guard_prefix} processing done by gnulib-tool since 2021-04-11. * gnulib-tool: Revert last change. * pygnulib/GLEmiter.py: Likewise. 2021-06-13 Paul Eggert * lib/stack.h (_GL_STACK_PREFIX): Omit stray semicolon. getopt-gnu: port back to Solaris 10 * gnulib-tool (func_emit_lib_Makefile_am) (func_emit_tests_Makefile_am): Don’t substitute things like $(GNULIB_${gl_include_guard_prefix}_UNISTD_H_GETOPT), as this mishandles unistd and getopt-gnu, which breaks ‘make check’ on Solaris 10 with getopt-gnu. * pygnulib/GLEmiter.py (lib_Makefile_am, tests_Makefile_am): Likewise, albeit hackier since I did not test this and so went with a trivial hack instead. 2021-06-13 Bruno Haible ialloc: Put appropriate license notice in source files. * lib/ialloc.h: Use LGPLv3+ notice. * lib/ialloc.c: Likewise. 2021-06-11 Paul Eggert xalloc: new idx_t-based allocators This is for code that prefers to use idx_t for sizes. * lib/basename.c (base_name): * lib/dfa.c (mbs_to_wchar, state_index, dfaoptimize, dfaanalyze) (icatalloc, enlist, allocmust, dfamust): * lib/exclude.c (struct exclude_pattern, free_exclude_segment) (file_pattern_matches, add_exclude, add_exclude_fp): * lib/getusershell.c (line_size, readname): * lib/linebuffer.c (readlinebuffer_delim): * lib/linebuffer.h (struct linebuffer): * lib/readtokens.c (readtoken, readtokens): * lib/readutmp.c (read_utmp): * lib/savedir.c (streamsavedir): * lib/stack.h (_GL_STACK_TYPE, _GL_STACK_PREFIX): * lib/userspec.c (parse_with_separator): * lib/xgethostname.c (XGETANAME): Prefer idx_t to size_t for indexes, and use idx_t-related allocators. * lib/basename.c: Do not include xstrndup.h. (basename): Simplify by always using memcpy. * lib/xalloc.h (ximalloc, xizalloc, xicalloc, xirealloc) (xireallocarray, ximemdup, ximemdup0) [GNULIB_XALLOC]: New decls. (x2nrealloc): Now just a decl, as the body is moved into xmalloc.c. * lib/xmalloc.c: Include ialloc.h. Rename some local parameters to be consistent with the .h files. (nonnull): New static function. (xmalloc, xcalloc): Simplify by using nonnull. (ximalloc, xirealloc, xireallocarray, xizalloc, xicalloc) (ximemdup, ximemdup0): New functions. (x2nrealloc): Moved here from xalloc.h. * modules/xalloc (Depends-on): Add ialloc. * modules/dirname (Depends-on): Removbe xstrndup. * modules/linebuffer (Depends-on): Add idx. ialloc: new module * lib/ialloc.c, lib/ialloc.h, modules/ialloc: New files. exclude: improve wide-character hashing * lib/exclude.c (string_hasher_ci): Take the modulo at the end rather than each time a wide character is retrieved; this should be more efficient and should hash better. 2021-06-11 Bruno Haible Make message in last commit more precise. Suggested by Eric Blake. * gnulib-tool (func_emit_tests_Makefile_am): Add more precision to 'check-notice' message. 2021-06-10 Bruno Haible Clarify where to report test failures from Gnulib tests. * gnulib-tool (func_emit_tests_Makefile_am): Emit a dependency of 'check-am' on 'check-notice' that prints a notice. 2021-06-10 Bruno Haible Clarify that compiler warnings in the Gnulib tests can be ignored. * gnulib-tool (func_emit_tests_Makefile_am): Emit overrides for CFLAGS and CXXFLAGS. Emit a dependency of 'all' on 'all-notice' that prints a notice. (func_emit_initmacro_start): Add a second argument. If it is true, emit code to require gl_CC_ALLOW_WARNINGS and gl_CXX_ALLOW_WARNINGS. (func_import, func_create_testdir): All callers updated. * m4/gnulib-common.m4 (gl_CC_ALLOW_WARNINGS, gl_CXX_ALLOW_WARNINGS): New macros. 2021-06-09 Bruno Haible sigsegv tests: Hide a null pointer from the compiler's optimizations. Patch by Paul Eggert. * tests/test-sigsegv-catch-stackoverflow2.c (null_pointer_to_volatile_int): New variable. (main): Use it. 2021-06-07 Bruno Haible get_ppid_of: Add support for DragonFly BSD. * lib/get_ppid_of.c: Treat DragonFly BSD like FreeBSD. 2021-06-07 Bruno Haible sigsegv: Document context type for DragonFly BSD. * lib/sigsegv.in.h (stackoverflow_context_t): On DragonFly BSD, it is a pointer to 'struct sigcontext'. 2021-06-07 Bruno Haible dynarray, scratch_buffer: Fix VPATH builds (regression from yesterday). * modules/dynarray (configure.ac): Invoke AC_PROG_MKDIR_P. (Makefile.am): Create malloc/ directory before creating malloc/dynarray.gl.h and malloc/dynarray-skeleton.gl.h. * modules/scratch_buffer (configure.ac): Invoke AC_PROG_MKDIR_P. (Makefile.am): Create malloc/ directory before creating malloc/scratch_buffer.gl.h. 2021-06-07 Bruno Haible ptsname_r: Add support for DragonFly BSD 6.0. * lib/ptsname_r.c (__ptsname_r): Add implementation for DragonFly BSD. * tests/test-ptsname_r.c (main): Treat Dragonfly BSD like Solaris. 2021-06-07 Bruno Haible Avoid some test failures on DragonFly BSD 6.0. * tests/test-c32isalnum.c (main): On Dragonfly BSD, disable tests that fail. * tests/test-c32isalpha.c (main): Likewise. * tests/test-c32islower.c (main): Likewise. * tests/test-c32isupper.c (main): Likewise. * tests/test-ptsname.c (main): Treat Dragonfly BSD like Solaris. 2021-06-07 Kamil Dudka mountlist: recognize fuse.portal as dummy file system * lib/mountlist.c [ME_DUMMY_0]: Add "fuse.portal" as a dummy file system (used in flatpak implementations). 2021-06-07 Bruno Haible host-os: Add support for DragonFly BSD. * m4/host-os.m4 (gl_HOST_OS): On DragonFly BSD, set HOST_OPERATING_SYSTEM to "DragonFly BSD", not "Dragonfly". 2021-06-07 Bruno Haible thread: Fix test link error on DragonFly BSD 6.0. * lib/glthread/thread.c (gl_thread_create): Moved to here... * lib/glthread/thread.h (gl_thread_create): ...from here. (_GLTHREAD_THREAD_INLINE): Remove macro. Remove _GL_INLINE_HEADER_BEGIN/END invocations. 2021-06-06 Bruno Haible sigsegv: Avoid a gcc warning "declaration of 'sig' shadows a parameter". Reported by Dmitry V. Levin in . * lib/sigsegv.c (sigsegv_handler): Use a different local variable name than 'sig'. 2021-06-06 Bruno Haible scratch_buffer: Avoid conflict with prepr. macros owned by the system. * lib/scratch_buffer.h: Don't include . Define _GL_LIKELY, _GL_UNLIKELY. Include malloc/scratch_buffer.gl.h instead of malloc/scratch_buffer.h. * modules/scratch_buffer (Depends-on): Add builtin-expect. (Makefile.am): Arrange to create malloc/scratch_buffer.gl.h from malloc/scratch_buffer.h. 2021-06-06 Bruno Haible dynarray: Avoid conflict with preprocessor macros owned by the system. * lib/dynarray.h: Don't include . Define _GL_LIKELY, _GL_UNLIKELY. Include malloc/dynarray.gl.h instead of malloc/dynarray.h. Include malloc/dynarray-skeleton.gl.h instead of malloc/dynarray-skeleton.c. * modules/dynarray (Depends-on): Add builtin-expect. (Makefile.am): Arrange to create malloc/dynarray.gl.h from malloc/dynarray.h and malloc/dynarray-skeleton.gl.h from malloc/dynarray-skeleton.c. 2021-06-06 Bruno Haible glob-h: Avoid conflict with preprocessor macros owned by the system. This fixes a compilation error on DragonFly BSD 6.0. * lib/glob.in.h: Don't include . Don't define __USE_GNU. Include glob-libc.gl.h instead of glob-libc.h. * modules/glob-h (Makefile.am): Arrange to create glob-libc.gl.h from glob-libc.h. * lib/libc-config.h: Add comment. 2021-06-06 Dmitry V. Levin * tests/test-regex.c (tests): Add test cases for *+ and ** regressions fixed by the previous commit. * tests/test-regex.c (tests): Remove the comment saying that some tests are not used. That comment was copied along with tests from glibc where some of these tests are commented out. 2021-06-06 Egor Ignatov (tiny change) * lib/regexec.c (set_regs): Pop if CUR_NODE has already been checked only when we have a fail stack. 2021-06-05 Bruno Haible lib-symbol-visibility: Make configure check work for newer GCC. Reported by Ozkan Sezer in . * m4/visibility.m4 (gl_VISIBILITY): Add a function definition for each declaration in the test program. 2021-06-05 Bruno Haible vasnprintf: Don't leak memory when memory allocation fails. Found by Coverity. Reported by Mike Fabian in . * lib/vasnprintf.c (VASNPRINTF): In places where a local variable points to heap-allocated storage, free that storage before doing 'goto out_of_memory;'. 2021-06-04 Bruno Haible gnulib-tool: Stop doing license notice replacements. * gnulib-tool: Don't document --more-symlinks and --more-hardlinks any more. (do_copyrights): Remove variable. (func_import): Don't perform license updates on imported files any more. * pygnulib/GLInfo.py: Don't document --more-symlinks any more. * doc/gnulib-intro.texi (Copyright): Document the new situation. * doc/gnulib.texi (Module description): Likewise. * NEWS: Mention the change. 2021-06-04 Bruno Haible git-merge-changelog: Fix license. * modules/git-merge-changelog (License): Change back to GPL. * lib/git-merge-changelog.c: Use a GPLv3+ notice. 2021-06-04 Bruno Haible Put GPLv3+ notices in source files where appropriate. * lib/*.{h,c}: Use GPLv3+ notice whenever the module description says so. * build-aux/pmccabe.css: Likewise. 2021-06-04 Bruno Haible Put LGPLv3+ notices in source files where appropriate. * lib/*.{h,c}: Use LGPLv3+ notice whenever the module description says so. 2021-06-04 Bruno Haible Put "LGPLv3+ or GPLv2+" notices in source files where appropriate. * lib/**.{h,c,gperf}: Use "LGPLv3+ or GPLv2+" notice whenever the module description says so. 2021-06-04 Bruno Haible Generate correct license notices in libunistring files. * lib/gen-uni-tables.c (output_library_license, output_tests_license): New functions. (output_predicate, output_category, output_combclass, output_bidi_category, output_decimal_digit, output_digit, output_numeric, output_mirror, output_joining_type, output_joining_group, output_scripts, output_scripts_byname, output_blocks, output_ident_category, output_lbrk_tables, output_wbrk_tables, output_gbp_table, output_decomposition_tables, output_composition_tables, output_simple_mapping, output_casing_rules): Invoke output_library_license. (output_predicate_test, output_decimal_digit_test, output_digit_test, output_numeric_test, output_joining_type_test, output_joining_group_test, output_gbp_test, output_simple_mapping_test): Invoke output_tests_license. * lib/uni*/*.h, lib/uni*/*.gperf: Regenerated. * tests/uni*/*.h: Likewise. 2021-06-04 Bruno Haible Generate correct license notices in libunistring files. * lib/uniname/gen-uninames.lisp (main): Emit a copyright and license notice. * lib/uniname/uninames.h: Regenerated. 2021-06-04 Bruno Haible Put LGPLv2+ notices in source files where appropriate. * lib/**.{h,c,gperf}: Use LGPLv2+ notice whenever the module description says so. 2021-06-04 Bruno Haible Put "unlimited" notices in source files where appropriate. * build-aux/prefix-gnulib-mk: Use "unlimited" notice, since the module description says so. 2021-06-04 Bruno Haible Put public domain notices in source files where appropriate. * lib/{alloca.c,atexit.c,memmove.c}: Use public domain notice. 2021-06-04 Bruno Haible Revamp check-copyright script. * check-copyright: Search only the first 50 lines of each file. Recognize 'LGPLv3+ or GPLv2+', 'unlimited', and 'public domain' license notices. For files that are part of several modules, consider the weakest among the licenses. Allocate more room for the first output column. 2021-06-04 Bruno Haible gnupload, git-merge-changelog: Fix module description. * gnulib-tool (func_import, func_create_testdir): Treat 'GPLv2+ build tool' like 'GPLed build tool'. * pygnulib/GLImport.py (prepare): Likewise. * modules/gnupload (License): Change to 'GPLv2+ build tool'. * modules/git-merge-changelog (License): Change to GPLv2+. 2021-06-04 Bruno Haible New directory with license notices. * etc/license-notices/*: New files. 2021-05-30 Paul Eggert reallocarray-tests: port to weird platforms * tests/test-reallocarray.c (main): Don’t assume that PTRDIFF_MAX / 2 + 1 <= SIZE_MAX. POSIX allows platforms where this isn’t true, though I don’t know of any examples. dfa, etc.: prefer xreallocarray to older name * lib/dfa.c (addtok_mb, realloc_trans_if_necessary, enlist): * lib/readtokens.c (readtokens): * tests/uninorm/test-u32-normalize-big.c: (read_normalization_test_file): Prefer xreallocarray to the equivalent xnrealloc. The newer name follows the glibc lead of ‘reallocarray’. 2021-05-30 Bruno Haible Write 'LGPLv3+ or GPLv2+' instead of 'LGPLv3+ or GPLv2'. * modules/* (License): Change. * gnulib-tool (func_import, func_create_testdir): Likewise. 2021-05-29 Paul Eggert sigsegv: Port to Solaris 11 Problem reported by Kiyoshi KANAZAWA in: https://lists.gnu.org/r/bug-m4/2021-05/msg00020.html * lib/stackvma.c (_FILE_OFFSET_BITS): #undef on Solaris and Android. 2021-05-24 Bruno Haible c-stack: Document another restriction. Triggered by a discussion with Paul Eggert. * lib/c-stack.h: Mention that ACTION should not use nested functions. 2021-05-22 Bruno Haible stdio: Fix compilation error on DragonFly BSD. * lib/stdio.in.h (fcloseall): Treat DragonFly BSD like FreeBSD. 2021-05-22 Larkin Nickle (tiny change) getprogname: port to Tru64 * lib/getprogname.c: Treat __osf__ like __sgi, except with /proc/123 instead of /proc/pinfo/123. 2021-05-21 Paul Eggert sigsegv: don’t assume SIGSTKSZ is a constant * m4/sigaltstack.m4 (SV_SIGALTSTACK): Don’t attempt to override SIGSTKSZ. Instead, use an array that is plenty large, while checking that it’s large enough. Also, be consistent about putting that array in static storage rather than on the stack. * tests/altstack-util.h (SIGSTKSZ): Don’t define. (MYSTACK_SIZE): New macro, used instead of SIGSTKSZ. (mystack_storage, mystack): Now static. (prepare_alternate_stack) [SIGSTKSZ]: Check that MYSTACK_SIZE is large enough. 2021-05-20 Paul Eggert fstatat: doc improvement * doc/posix-functions/fstatat.texi (fstatat): Mention AT_EMPTY_PATH when talking about empty strings. 2021-05-18 Bruno Haible c-stack: Support catching stack overflow on most platforms without libsigsegv. * lib/c-stack.c: Remove all Solaris-specific code. Include always. * m4/c-stack.m4: Remove all Solaris-specific code. (gl_C_STACK): Test $with_libsigsegv from module 'sigsegv'. * modules/c-stack (Files): Remove m4/libsigsegv.m4. (Depends-on): Add sigsegv. Remove havelib, intprops, inttypes, mempcpy, sigaction, stdbool. 2021-05-16 Bruno Haible sigsegv, c-stack: Avoid compilation error with glibc >= 2.34. * lib/sigsegv.in.h (SIGSTKSZ): On glibc systems, redefine to a suitable constant. * m4/sigaltstack.m4 (SV_SIGALTSTACK): Likewise. * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Likewise. 2021-05-16 Bruno Haible sigsegv: Add tests. * tests/test-sigsegv-catch-segv1.c: New file, from GNU libsigsegv with modifications. * tests/test-sigsegv-catch-segv2.c: Likewise. * tests/test-sigsegv-catch-stackoverflow1.c: Likewise. * tests/test-sigsegv-catch-stackoverflow2.c: Likewise. * tests/altstack-util.h: Likewise. * tests/mmap-anon-util.h: Likewise. * modules/sigsegv-tests: New file. sigsegv: New module. * lib/sigsegv.in.h: New file, from GNU libsigsegv with modifications. * lib/sigsegv.c: Likewise. * lib/stackvma.h: Likewise. * lib/stackvma.c: Likewise. * m4/sigaltstack.m4: Likewise. * m4/stack-direction.m4: Likewise. * modules/sigsegv: New file. 2021-05-15 Pádraig Brady realloc-gnu: avoid glibc MALLOC_CHECK_ issue * tests/test-realloc-gnu.c (main): if MALLOC_CHECK_ env var is set then don't check ENOMEM is returned from realloc(). See https://sourceware.org/bugzilla/show_bug.cgi?id=27870 Note it doesn't suffice to unsetenv() this var within the program, as the hooks have already been set up at that stage. 2021-05-14 Paul Eggert c-stack: work around Solaris 11 bugs Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2021-05/msg00062.html * lib/c-stack.c: Always include sigsegv.h if HAVE_LIBSIGSEGV. (USE_LIBSIGSEGV): Do not use libsigsegv if the kernel has the si_addr bug and libsigsegv is too old to work around it. (segv_handler) [!USE_LIBSIGSEGV]: Do not trust si_addr if BOGUS_SI_ADDR_UPON_STACK_OVERFLOW. * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Define BOGUS_SI_ADDR_UPON_STACK_OVERFLOW on Solaris 2.11 SPARC. And do not define HAVE_XSI_STACK_OVERFLOW_HEURISTIC. 2021-05-14 Bruno Haible fcntl tests: Avoid failure in MacPorts. Reported by Nicholas Gaya in . * tests/test-fcntl.c (main): Close fd 10 before assuming that it is closed. * tests/test-execute-main.c: Update comment. 2021-05-14 Bruno Haible linked-list-unportable-test: New module. * modules/linked-list-unportable-tests: New file, based on modules/linked-list-tests. * modules/linked-list-tests: Remove the unportable tests from here. Depend on linked-list-unportable-tests. 2021-05-14 Simon Josefsson valgrind-tests: Doc fix and introduce AM_VALGRINDFLAGS. * doc/valgrind-tests.texi (Using valgrind automatically): Clarify when the parallel vs serial test harness is used, suggested by Bruno Haible . * m4/valgrind-tests.m4: Add VALGRIND_PROGRAM and AM_VALGRINDFLAGS. 2021-05-14 Bruno Haible malloc-gnu, realloc-gnu, calloc-gnu: Ensure errno gets set to ENOMEM. * m4/malloc.m4 (gl_CHECK_MALLOC_POSIX): Set gl_cv_func_malloc_posix to 'no' also on Solaris. 2021-05-14 Bruno Haible DEPENDENCIES: Mention the requirement for 'join'. Reported by Simon Josefsson in . * DEPENDENCIES: Mention 'join' among the core POSIX utilities. 2021-05-14 Bruno Haible *alloc-gnu tests: Use ASSERT macro. * tests/test-malloc-gnu.c: Include "macros.h". (main): Use ASSERT. * tests/test-calloc-gnu.c: Include "macros.h". (main): Use ASSERT. * tests/test-realloc-gnu.c: Include "macros.h". (main): Use ASSERT. * tests/test-reallocarray.c: Include "macros.h". (main): Use ASSERT. * modules/malloc-gnu-tests (Files): Add tests/macros.h. * modules/calloc-gnu-tests (Files): Likewise. * modules/realloc-gnu-tests (Files): Likewise. * modules/reallocarray-tests (Files): Likewise. 2021-05-14 Simon Josefsson valgrind-tests: Fix 'sh: yes: unknown operand' error. * m4/valgrind-tests.m4: Protect variable usage. 2021-05-14 Simon Josefsson valgrind-tests: Fix LOG_VALGRIND when valgrind is missing. * m4/valgrind-tests.m4: Clear all variables when missing. 2021-05-14 Simon Josefsson valgrind-tests: Better option handling. * m4/valgrind-tests.m4: Support new variables VALGRINDFLAGS and DEFAULT_VALGRINDFLAGS. * doc/valgrind-tests.texi (Running self-tests under valgrind): Improve. 2021-05-14 Markus Mützel (tiny change) windows-spawn: Don't assume that UNICODE is not defined. * lib/windows-spawn.h (compose_handles_block): Use type STARTUPINFOA. 2021-05-13 Bruno Haible getrandom: Produce a better error code. Reported by Paul Eggert in . * lib/getrandom.c (getrandom): When open() fails with an error that does not indicate the absence of the file, fail with that error code, not with ENOSYS. 2021-05-13 Bruno Haible fstatat: Document a glibc 2.7 bug. * doc/posix-functions/fstatat.texi: Document an old glibc 2.7 bug. 2021-05-13 Bruno Haible posix_spawn, posix_spawnp: Fix build error on Minix 3.3. * m4/posix_spawn.m4 (gl_POSIX_SPAWN_BODY): If posix_spawn does not exist but is declared, set REPLACE_POSIX_SPAWN. * doc/posix-functions/posix_spawn.texi: Update platforms list. * doc/posix-functions/posix_spawnp.texi: Likewise. 2021-05-13 Bruno Haible reallocarray tests: Avoid test failure on NetBSD. * tests/test-reallocarray.c (main): Accept EOVERFLOW error code. 2021-05-12 Bruno Haible gnulib-tool: Fail properly if the 'join' program is not found. Reported by Simon Josefsson in . * gnulib-tool: Bail out early of the 'join' program is not found. 2021-05-09 Bruno Haible {realloc,calloc}-gnu: Fix autoconf macro (regression 2021-04-18). * m4/realloc.m4 (gl_FUNC_REALLOC_POSIX): Don't reset REPLACE_REALLOC to 0 if it is already 1 after gl_FUNC_REALLOC_GNU was executed. * m4/calloc.m4 (gl_FUNC_CALLOC_POSIX): Don't reset REPLACE_CALLOC to 0 if it is already 1 after gl_FUNC_CALLOC_GNU was executed. {malloc,realloc,calloc}-gnu: Fix autoconf macro (regression 2021-04-18). * m4/malloc.m4 (gl_FUNC_MALLOC_GNU): Don't assume that _AC_FUNC_MALLOC_IF expands to a single shell statement. * m4/realloc.m4 (gl_FUNC_REALLOC_GNU): Don't assume that _AC_FUNC_REALLOC_IF expands to a single shell statement. * m4/calloc.m4 (gl_FUNC_CALLOC_GNU): Don't assume that _AC_FUNC_CALLOC_IF expands to a single shell statement. 2021-05-09 Bruno Haible malloc-gnu, realloc-gnu, calloc-gnu: Ensure errno gets set on IRIX. * m4/malloc.m4 (gl_CHECK_MALLOC_POSIX): Require AC_CANONICAL_HOST. Set gl_cv_func_malloc_posix to 'no' also on IRIX. malloc-gnu, realloc-gnu, calloc-gnu tests: Verify errno is set. * tests/test-malloc-gnu.c: Include . (main): Verify that, when an allocation larger than PTRDIFF_MAX failed, errno is ENOMEM. * tests/test-realloc-gnu.c: Likewise. * tests/test-calloc-gnu.c: Likewise. 2021-05-09 Bruno Haible getrandom: Fail with ENOSYS when the system has no randomness source. * lib/getrandom.c (getrandom): When open() fails, set errno to ENOSYS. 2021-05-09 Bruno Haible free tests: Avoid test failure on glibc < 2.15. * tests/test-free.c (main): Skip the hairy test on glibc < 2.15. 2021-05-08 Bruno Haible Fix build error when libintl is installed. * modules/posix_spawn_file_actions_addchdir-tests (Makefile.am): Link test-posix_spawn-chdir with libintl. * modules/posix_spawn_file_actions_addfchdir-tests (Makefile.am): Link test-posix_spawn-fchdir with libintl. 2021-05-07 Bruno Haible Fix build when an older libunistring is installed (regr. 2020-02-23). * modules/unitypes (configure.ac): Arrange to generate the .h file if the installed one is from a version < 0.9.11. * modules/unicase/base (configure.ac): Likewise. * modules/uniconv/base (configure.ac): Likewise. * modules/unilbrk/base (configure.ac): Likewise. * modules/uninorm/base (configure.ac): Likewise. * modules/unistdio/base (configure.ac): Likewise. * modules/unistr/base (configure.ac): Likewise. * modules/uniwbrk/base (configure.ac): Likewise. * modules/uniwidth/base (configure.ac): Likewise. * modules/unictype/base (configure.ac): Arrange to generate the .h file if the installed one is from a version < 0.9.8. * modules/unigbrk/base (configure.ac): Likewise. 2021-04-30 Bruno Haible immutable: Fix crash when immmalloc() fails. Found by GCC 11 '-fanalyzer'. * lib/immutable.c (immstrdup): Don't crash when immmalloc() fails. 2021-04-30 Bruno Haible supersede: Fix crash when malloc() fails. Found by GCC 11 '-fanalyzer'. * lib/supersede.c (create_temp_file): Don't crash when malloc() fails. 2021-04-27 Paul Eggert libc-config: fix include problem on older Debian https://lists.gnu.org/r/bug-gnulib/2021-04/msg00198.html * lib/cdefs.h: Use __GNULIB_CDEFS, not __GLIBC__, to determine whether to include the bits/* files. * lib/libc-config.h (__WORDSIZE): Remove. (__GNULIB_CDEFS): New macro. 2021-04-26 Paul Eggert gnulib-tool: port better to current Autoconf * doc/gnulib-tool.texi (Initial import): Don’t mention AC_PROG_CC_STDC as it’s deprecated in current Autoconf. * gnulib-tool (func_done_dir): Suggest replacing AC_PROG_CC_STDC and AC_PROG_CC_C99, as per current Autoconf. 2021-04-25 Paul Eggert reallocarray: a bit more tuning * lib/reallocarray.c: Include intprops.h. (reallocarray): Use INT_MULTIPLY_WRAPV instead of xalloc_oversized, as it now suffices and is likely a bit more efficient (five fewer machine insns on Ubuntu 20.10 x86-64). * modules/reallocarray (Depends-on): Depend on intprops, not xalloc-oversized. Use conditional dependencies to avoid building realloc-gnu when not needed. reallocarray: don’t crash if item size is 0 This problem affects only platforms where xalloc_oversized divides a number by the size arg. Fix this by defining xalloc_oversized (n, s) to work even if s == 0. * lib/malloca.h, lib/xalloc-oversized.h: Document new behavior. * lib/xalloc-oversized.h (__xalloc_oversized): Do not crash if S==0. * tests/test-reallocarray.c (main): Test for the bug. 2021-04-24 Paul Eggert xmalloca, etc.: avoid unlikely trap * lib/malloca.h (nmalloca): * lib/xmalloca.h (xnmalloca): Use size_t, not ptrdiff_t, to avoid implementation-defined behavior (which could include a trap) if N is 0 and S exceeds PTRDIFF_MAX. * lib/xalloc-oversized.h: Adjust comment to match. xmalloca, etc.: fix some xalloc-oversized issues * lib/malloca.h (nmalloca): * lib/xmalloca.h (xnmalloca): Convert S to ptrdiff_t to avoid arithmetic overflow if N and S are both narrower than ptrdiff_t. * lib/xalloc-oversized.h (xalloc_oversized): Don’t say that args must be ptrdiff_t or size_t or wider. The macro returns the correct answer even when that is not the case, and it’s the caller’s responsibility to avoid howlers like (xalloc_oversized (n, s) ? NULL : malloc (n * s)) when N and S are both narrower than ptrdiff_t and size_t. Add a comment to that effect. * lib/xmalloca.h: Include xalloc-oversized.h, since this file uses xalloc_oversized. Add comments about side effects and avoid unnecessary parens. * modules/xmalloca (Depends-on): Add xalloc-oversized. reallocarray: check for ptrdiff_t overflow * doc/glibc-functions/reallocarray.texi (reallocarray): Mention ptrdiff_t overflow. * lib/reallocarray.c (reallocarray): Reindent as per usual GNU. * lib/stdlib.in.h (reallocarray): Allow reallocarray to be replaced. * m4/reallocarray.m4 (gl_FUNC_REALLOCARRAY): Check for ptrdiff_t overflow. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Set up REPLACE_REALLOCARRAY. * modules/reallocarray (Files): Add malloc.m4. (configure.ac): Also test REPLACE_REALLOCARRAY. * modules/reallocarray-tests (Depends-on): Add stdint. * modules/stdlib (stdlib.h): Substitute REPLACE_REALLOCARRAY. * tests/test-reallocarray.c: Include stdint.h. (main): Check for ptrdiff_t overflow. calloc-gnu-tests: add overflow tests * tests/test-calloc-gnu.c (identity): New function, replacing ‘eight’. (main): Do 2 * log2(SIZE_MAX) tests instead of just two tests. Don’t bother to free on failure. 2021-04-22 Paul Eggert libc-config: port better to Fedora Rawhide Problem reported by Eric Blake in: https://lists.gnu.org/r/bug-gnulib/2021-04/msg00181.html * lib/cdefs.h: Make this closer to glibc, so that we can merge Gnulib into glibc here. (__attribute_maybe_unused__): Make identical to glibc’s definition, though with an additional comment. (__attribute_nonnull__): Add clarifying comment. Make inclusion of bits/wordsize.h, bits/long-double.h dependent on __GLIBC__, not on !__WORDSIZE. * lib/libc-config.h: Use __attribute_nonnull__, not __attribute_maybe_unused__, to detect whether to include sys/cdefs.h. 2021-04-21 Paul Eggert realloc: port to AIX 7.1 * lib/realloc.c (_GL_USE_STDLIB_ALLOC): Do not define. This module relies on GNU malloc. This fixes a test failure on AIX 7.1. malloc: simplify * lib/malloc.c: Omit unnecessary "#undef malloc". I recently introduced it by mistake. This module defines _GL_USE_STDLIB_ALLOC and so malloc isn’t redefined to rpl_malloc. malloca: avoid ptrdiff_t overflow * lib/malloca.c: Include idx.h, intprops.h. (mmalloca): Check for ptrdiff_t overflow. Since this module uses _GL_USE_STDLIB_ALLOC, it cannot assume GNU malloc semantics. * modules/malloca (Depends-on): Add idx, intprops. careadlinkat: avoid ptrdiff_t overflow * lib/careadlinkat.c: Include idx.h, minmax.h. (readlink_stk): Avoid ptrdiff_t overflow in object allocation. Since this module uses arbitrary allocators (including stdlib_allocator), it cannot assume GNU malloc semantics. * modules/careadlinkat (Depends-on): Add idx, minmax. execute-tests: pacify compiler * tests/test-execute-main.c (main): Use 0x7DEADBEE rather than 0xDEADBEEF for nonces, to avoid provoking AIX XLC compiler warning that the latter is out of int range. 2021-04-20 Paul Eggert malloc-gnu-tests, etc.: use volatile for clang In some more test locations, store the result of malloc etc. into a volatile pointer so that clang doesn’t optimize away the malloc and thus bypass the test. This fixes a malloc-gnu test failure on macOS 11.2.3 with clang 12.0.0 on ARM. * tests/test-alloca-opt.c (do_allocation): * tests/test-malloc-gnu.c (main): * tests/test-malloca.c (do_allocation): * tests/test-realloc-gnu.c (main): * tests/test-reallocarray.c (main): * tests/test-aligned-malloc.c (main): * tests/test-aligned_alloc.c (main): Store malloc etc. results into a volatile pointer. 2021-04-18 Paul Eggert malloc-gnu-tests: pacify -Walloc-size-larger-than * tests/test-malloc-gnu.c (main): * tests/test-realloc-gnu.c (main): Hide true intentions from GCC, to prevent diagnostics like “warning: argument 1 value ‘9223372036854775808’ exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=]”. safe-alloc: fix pointer implementation The old implementation assumed that all pointers use the same internal representation, but the C standard doesn’t guarantee this. Use void * (pointer) not void ** (pointer-to-pointer) for the internal functions’ API. The internal functions now return NULL if and only if they failed, and the macros translate that into -1 or 0 to satisfy the existing API. * doc/safe-alloc.texi (Safe Allocation Macros): Mention overflow. * lib/safe-alloc.c: Major rewrite. Now this simply defines SAFE_ALLOC_INLINE and includes safe-alloc.h. * lib/safe-alloc.h: Include stddef.h, not stdlib.h. (SAFE_ALLOC_INLINE): New macro; use Gnulib inline function style. (safe_alloc_realloc_n): New API, which passes and returns the pointer, and which returns NULL if and only if failure occurs. (safe_alloc_check): New function. (ALLOC, ALLOC_N, ALLOC_N_UNINITIALIZED, REALLOC_N): Redo using the new API for internal functions, and using calloc which is good enough since it’s GNU-compatible now. (FREE): Expand to an expression rather than merely to something that needs a following ‘;’ to become a statement. * modules/safe-alloc (Depends-on): Add calloc-gnu. calloc-gnu: now LGPLv2+ * modules/calloc-gnu (License): Change from GPL to LGPLv2+. The old value was evidently a longstanding typo, and calloc will be needed by LGPLv2+ modules that will want to rely on GNU behavior. safe-alloc: simplify via reallocarray * lib/safe-alloc.c: Do not include xalloc-oversized.h. (safe_alloc_alloc_n, safe_alloc_realloc_n): Use reallocarray to check for size or ptrdiff_t overflow. * modules/reallocarray (License): Switch from LGPL to LGPLv2+, as this is needed for safe-alloc and anyway is more appropriate for this library function common with BSD. * modules/safe-alloc (Depends-on): Depend on reallocarray rather than xalloc-oversized. xalloc-oversized: fix SIZE_MAX optimization bug * lib/xalloc-oversized.h (xalloc_count_t): Remove; no longer needed and was evidently error-prone anyway. (xalloc_oversized): Omit some over-optimization that caused SIZE_MAX to not be treated as too large (the Gnulib convention) on unusual platforms where PTRDIFF_MAX == SIZE_MAX. This change should not affect typical platforms where PTRDIFF_MAX < SIZE_MAX. When optimizing, simply use ptrdiff_t instead of xalloc_count_t. xalloc: new function xreallocarray This is the same as xnrealloc, which perhaps should be deprecated. The name xreallocarray should be easier to remember now that reallocarray is a standard GNU function. * lib/xalloc.h [GNULIB_XALLOC]: Do not include xalloc-oversized.h. (xnmalloc, xnrealloc, x2nrealloc): Simplify by using xreallocarray. * lib/xmalloc.c (xreallocarray): New function. * modules/xalloc (Depends-on): Add reallocarray; remove xalloc-oversized. group-member: simplify via realloc-gnu * lib/group-member.c, modules/group-member: Simplify similarly to backupfile. backupfile: simplify via realloc-gnu * lib/backupfile.c: Do not include xalloc-oversized.h. (numbered_backup): Simplify now that realloc will do the right thing about ptrdiff_t overflow. * modules/backupfile (Depends-on): Add realloc-gnu; remove xalloc-oversized. safe-alloc: improve doc * doc/safe-alloc.texi: Clarify that reallocating an array appends uninitialized storage. Say ‘sizeof *p’ rather than ‘sizeof(*p)’ which would need a space before the paren to follow GNU style. malloc-gnu-tests, etc.: test ptrdiff_t overflow * modules/calloc-gnu-tests (Depends-on): * modules/malloc-gnu-tests (Depends-on): * modules/realloc-gnu-tests (Depends-on): Add stdint. * tests/test-calloc-gnu.c (main): * tests/test-malloc-gnu.c (main):, * tests/test-realloc-gnu.c (main): Test for ptrdiff_t overflow. malloc-gnu, etc.: prefer AS_CASE to woolly AS_IF * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): * m4/malloc.m4 (_AC_FUNC_MALLOC_IF): * m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Use AS_CASE. malloc-gnu, etc.: sync better with Autoconf * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): * m4/malloc.m4 (_AC_FUNC_MALLOC_IF): * m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Avoid some unnecessary differences from Autoconf’s versions. Separate our platforms into a different line so that it’s easier to diff. Use AS_IF in case the args use AC_REQUIRE. However, don’t bother with omitting the first newline, as omitting the newline is not Gnulib style and the difference doesn’t seem to matter here. 2021-04-18 Bruno Haible malloc-posix, realloc-posix, calloc-posix: Document affected platforms. * doc/posix-functions/malloc.texi: Re-add platforms list. * doc/posix-functions/realloc.texi: Likewise. * doc/posix-functions/calloc.texi: Likewise. 2021-04-18 Bruno Haible More systematic file naming. * m4/ctype_h.m4: Renamed from m4/ctype.m4. * m4/threads_h.m4: Renamed from m4/threads.m4. * m4/uchar_h.m4: Renamed from m4/uchar.m4. 2021-04-18 Bruno Haible Add comments after 2021-04-11 change. * m4/*_h.m4: Add comments regarding *_REQUIRE_DEFAULTS and *_MODULE_INDICATOR macros. 2021-04-18 Bruno Haible doc: Update for FreeBSD 13.0/arm64. * doc/posix-headers/stdint.texi: Mention FreeBSD 13 bug. * m4/stdint.m4: Update comment. 2021-04-17 Paul Eggert xalloc: adjust to malloc ptrdiff_t change * lib/xmalloc.c (HAVE_GNU_CALLOC, HAVE_GNU_MALLOC, HAVE_GNU_REALLOC): Remove. (xmalloc, xrealloc, xcalloc): Simplify by assuming GNU behavior. * modules/xalloc (Depends-on): Add calloc-gnu, malloc-gnu, realloc-gnu. malloc, etc.: check for ptrdiff_t overflow In glibc 2.30 and later, malloc, realloc and calloc reject attempts to create objects larger than PTRDIFF_MAX bytes. This patch changes malloc-gnu etc. to support this behavior on non-GNU hosts. It also makes this change for malloc-posix etc. since it’s a safety measure that ought to be in POSIX (perhaps we can talk them into that...). In writing this patch I found a complicated set of code that had accumulated over the years, some written by yours truly. I got rid of the code I couldn’t see the need for nowadays. Among other things, the GNU realloc behavior is no longer incompatible with the C standard, because in C17 the latter was relaxed to allow the former. If I went too far in cleaning up, the old stuff can be resurrected. This change is mostly for 32-bit platforms, since practical 64-bit platforms cannot create objects larger than PTRDIFF_MAX bytes anyway. * doc/posix-functions/calloc.texi: * doc/posix-functions/malloc.texi: * doc/posix-functions/realloc.texi: Mention ptrdiff_t issues, and go into more detail about what the gnu extension module does. * doc/posix-functions/realloc.texi: Fix now-obsolete commentary about C99 vs glibc, as C17 allows the glibc behavior and POSIX will follow suit when it gets around to it. * lib/calloc.c, lib/malloc.c, lib/realloc.c: Simplify by always supplying a GNU-compatible version, as that suffices for correctness and is good enough for performance. Include xalloc-oversized.h, and use xalloc_oversized to check for ptrdiff_t overflow. (NEED_CALLOC_GNU, NEED_MALLOC_GNU, NEED_REALLOC_GNU): Remove. * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): * m4/malloc.m4 (_AC_FUNC_MALLOC_IF): * m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Don’t start with a newline. Fix message to match behavior. * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Don’t test for size_t overflow, as the ptrdiff_t test is good enough. * m4/calloc.m4 (gl_FUNC_CALLOC_GNU): * m4/malloc.m4 (gl_FUNC_MALLOC_GNU): * m4/realloc.m4 (gl_FUNC_REALLOC_GNU): Do not define HAVE_CALLOC_GNU, HAVE_MALLOC_GNU, HAVE_REALLOC_GNU. It’s not worth the aggravation of maintaining these, as they are confusing (they don’t really mean GNU-compatible anyway). Don’t bother testing for GNU behavior if we have already decided to replace the function, since the replacement is always GNUish. * m4/calloc.m4 (gl_FUNC_CALLOC_POSIX): * m4/realloc.m4 (gl_FUNC_REALLOC_POSIX): Defer to gl_FUNC_MALLOC_POSIX. * m4/malloc.m4 (gl_FUNC_MALLOC_PTRDIFF, gl_CHECK_MALLOC_PTRDIFF): New macros. (gl_FUNC_MALLOC_POSIX): Use them to check for ptrdiff_t overflow. * modules/calloc-gnu, modules/malloc-gnu, modules/realloc-gnu: Remove no-longer-needed module indicators. * modules/calloc-posix, modules/malloc-posix, modules/realloc-posix: Depend on xalloc-oversized. * modules/malloc-posix: Require gl_FUNC_MALLOC_POSIX instead of calling it directly, so that other code can require it. * modules/realloc-posix: Depend on free-posix and malloc-posix. 2021-04-17 Bruno Haible stdio: Fix build error in some configurations (regression 2021-04-11). * m4/stdio_h.m4 (gl_STDIO_H): Move gl_STDIO_MODULE_INDICATOR and gl_MODULE_INDICATOR invocations from here... * modules/stdio (configure.ac): ... to here. 2021-04-17 Bruno Haible doc: Update for FreeBSD 11.0, 12.0, 13.0. * doc/posix-headers/*.texi: Update. * doc/glibc-headers/*.texi: Update. * doc/posix-functions/*.texi: Likewise. * doc/pastposix-functions/*.texi: Likewise. * doc/glibc-functions/*.texi: Likewise. * m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): Update cross-compilation guess. 2021-04-16 Paul Eggert malloc, realloc: fix recently-introduced #undef typos * lib/malloc.c (malloc): * lib/realloc.c (malloc, realloc): #undef before using. 2021-04-14 Bruno Haible hamt tests: Fix link error. * modules/hamt-tests (Makefile.am): Link test-hamt against @LIBINTL@. 2021-04-14 Bruno Haible c-stack: Don't use an undefined C macro (regression from 2020-10-04). * lib/c-stack.c: Test GNU C version directly, without __GNUC_PREREQ. 2021-04-12 Bruno Haible doc: Fix confusion between LIBADD and LDADD. Reported by Reuben Thomas in . * doc/gnulib-tool.texi (Multiple instances): For programs, use LDADD, not LIBADD. 2021-04-11 Bruno Haible malloc, realloc, calloc: Support restricted library symbols on AIX. Suggested by Paul Eggert in . * lib/malloc.c: Drop the code that intends to collaborate with AC_FUNC_MALLOC. * lib/realloc.c: Drop the code that intends to collaborate with AC_FUNC_REALLOC. * lib/calloc.c: Drop the code that intends to collaborate with the nonexistent macro AC_FUNC_CALLOC. 2021-04-11 Bruno Haible Support several gnulib-tool invocations under the same configure.ac. Reported by Reuben Thomas in . This is done by defining the Gnulib module indicator variables per gnulib-tool invocation. So that a generated .h file is no longer influenced by the set of modules used in other gnulib-tool invocations. * gnulib-tool (func_compute_include_guard_prefix): Set module_indicator_prefix. (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Use it to modify $(GNULIB_*) variable references in the Automake snippets. (func_emit_initmacro_start): Push macro definitions for GL_MACRO_PREFIX and GL_MODULE_INDICATOR_PREFIX. (func_emit_initmacro_end): Pop these macro definitions. * pygnulib/GLConfig.py (GLConfig.getIncludeGuardPrefix): New method. * pygnulib/GLEmiter.py (GLEmiter.initmacro_start): Push macro definitions for GL_MACRO_PREFIX and GL_MODULE_INDICATOR_PREFIX. (GLEmiter.initmacro_end): Pop these macro definitions. (GLEmiter.lib_Makefile_am, GLEmiter.tests_Makefile_am): Use the module indicator prefix to modify $(GNULIB_*) variable references in the Automake snippets. * m4/gnulib-common.m4 (gl_MODULE_INDICATOR_INIT_VARIABLE, gl_MODULE_INDICATOR_SET_VARIABLE): Use the value of GL_MODULE_INDICATOR_PREFIX. * m4/arpa_inet_h.m4: Use new idiom for header files that contain references to Gnulib module indicator variables: - Define the main macro through AC_DEFUN_ONCE. - Define a macro gl_*_H_REQUIRE_DEFAULTS that initializes the Gnulib module indicator variables (each prefixed with GL_MODULE_INDICATOR_PREFIX). - Invoke this macro in the gl_*_MODULE_INDICATOR macro. * m4/ctype.m4: Likewise. * m4/dirent_h.m4: Likewise. * m4/fcntl_h.m4: Likewise. * m4/fnmatch_h.m4: Likewise. * m4/glob_h.m4: Likewise. * m4/iconv_h.m4: Likewise. * m4/inttypes.m4: Likewise. * m4/langinfo_h.m4: Likewise. * m4/locale_h.m4: Likewise. * m4/malloc_h.m4: Likewise. * m4/math_h.m4: Likewise. * m4/monetary_h.m4: Likewise. * m4/netdb_h.m4: Likewise. * m4/poll_h.m4: Likewise. * m4/pthread_h.m4: Likewise. * m4/pty_h.m4: Likewise. * m4/sched_h.m4: Likewise. * m4/search_h.m4: Likewise. * m4/signal_h.m4: Likewise. * m4/spawn_h.m4: Likewise. * m4/stddef_h.m4: Likewise. * m4/stdio_h.m4: Likewise. * m4/stdlib_h.m4: Likewise. * m4/string_h.m4: Likewise. * m4/strings_h.m4: Likewise. * m4/sys_file_h.m4: Likewise. * m4/sys_ioctl_h.m4: Likewise. * m4/sys_random_h.m4: Likewise. * m4/sys_resource_h.m4: Likewise. * m4/sys_select_h.m4: Likewise. * m4/sys_socket_h.m4: Likewise. * m4/sys_stat_h.m4: Likewise. * m4/sys_time_h.m4: Likewise. * m4/sys_times_h.m4: Likewise. * m4/sys_types_h.m4: Likewise. * m4/sys_uio_h.m4: Likewise. * m4/sys_utsname_h.m4: Likewise. * m4/sys_wait_h.m4: Likewise. * m4/termios_h.m4: Likewise. * m4/threads.m4: Likewise. * m4/time_h.m4: Likewise. * m4/uchar.m4: Likewise. * m4/unistd_h.m4: Likewise. * m4/utime_h.m4: Likewise. * m4/wchar_h.m4: Likewise. * m4/wctype_h.m4: Likewise. * modules/arpa_inet (configure.ac): Invoke the macro gl_*_H_REQUIRE_DEFAULTS explicitly. * modules/ctype (configure.ac): Likewise. * modules/dirent (configure.ac): Likewise. * modules/fcntl-h (configure.ac): Likewise. * modules/fnmatch-h (configure.ac): Likewise. * modules/glob-h (configure.ac): Likewise. * modules/iconv-h (configure.ac): Likewise. * modules/inttypes-incomplete (configure.ac): Likewise. * modules/langinfo (configure.ac): Likewise. * modules/locale (configure.ac): Likewise. * modules/malloc-h (configure.ac): Likewise. * modules/math (configure.ac): Likewise. * modules/monetary (configure.ac): Likewise. * modules/netdb (configure.ac): Likewise. * modules/poll-h (configure.ac): Likewise. * modules/pthread-h (configure.ac): Likewise. * modules/pty (configure.ac): Likewise. * modules/sched (configure.ac): Likewise. * modules/search (configure.ac): Likewise. * modules/signal-h (configure.ac): Likewise. * modules/spawn (configure.ac): Likewise. * modules/stddef (configure.ac): Likewise. * modules/stdio (configure.ac): Likewise. * modules/stdlib (configure.ac): Likewise. * modules/string (configure.ac): Likewise. * modules/strings (configure.ac): Likewise. * modules/sys_file (configure.ac): Likewise. * modules/sys_ioctl (configure.ac): Likewise. * modules/sys_random (configure.ac): Likewise. * modules/sys_resource (configure.ac): Likewise. * modules/sys_select (configure.ac): Likewise. * modules/sys_socket (configure.ac): Likewise. * modules/sys_stat (configure.ac): Likewise. * modules/sys_time (configure.ac): Likewise. * modules/sys_times (configure.ac): Likewise. * modules/sys_types (configure.ac): Likewise. * modules/sys_uio (configure.ac): Likewise. * modules/sys_utsname (configure.ac): Likewise. * modules/sys_wait (configure.ac): Likewise. * modules/termios (configure.ac): Likewise. * modules/threads-h (configure.ac): Likewise. * modules/time (configure.ac): Likewise. * modules/uchar (configure.ac): Likewise. * modules/unistd (configure.ac): Likewise. * modules/utime-h (configure.ac): Likewise. * modules/wchar (configure.ac): Likewise. * modules/wctype-h (configure.ac): Likewise. * m4/af_alg.m4: Update after a macro name changed. * m4/ctime.m4: Likewise. * m4/explicit_bzero.m4: Likewise. * m4/ffs.m4: Likewise. * m4/ffsl.m4: Likewise. * m4/ffsll.m4: Likewise. * m4/flock.m4: Likewise. * m4/fstat.m4: Likewise. * m4/getaddrinfo.m4: Likewise. * m4/getdomainname.m4: Likewise. * m4/gettimeofday.m4: Likewise. * m4/hostent.m4: Likewise. * m4/ioctl.m4: Likewise. * m4/localtime.m4: Likewise. * m4/mbslen.m4: Likewise. * m4/memchr.m4: Likewise. * m4/memmem.m4: Likewise. * m4/mempcpy.m4: Likewise. * m4/memrchr.m4: Likewise. * m4/mktime.m4: Likewise. * m4/nanosleep.m4: Likewise. * m4/passfd.m4: Likewise. * m4/pselect.m4: Likewise. * m4/rawmemchr.m4: Likewise. * m4/select.m4: Likewise. * m4/servent.m4: Likewise. * m4/sigabbrev_np.m4: Likewise. * m4/sigdescr_np.m4: Likewise. * m4/sockpfaf.m4: Likewise. * m4/stat.m4: Likewise. * m4/stpcpy.m4: Likewise. * m4/stpncpy.m4: Likewise. * m4/strcase.m4: Likewise. * m4/strcasestr.m4: Likewise. * m4/strchrnul.m4: Likewise. * m4/strdup.m4: Likewise. * m4/strerror.m4: Likewise. * m4/strerror_r.m4: Likewise. * m4/strerrorname_np.m4: Likewise. * m4/strftime-fixes.m4: Likewise. * m4/strncat.m4: Likewise. * m4/strndup.m4: Likewise. * m4/strnlen.m4: Likewise. * m4/strpbrk.m4: Likewise. * m4/strptime.m4: Likewise. * m4/strsep.m4: Likewise. * m4/strsignal.m4: Likewise. * m4/strstr.m4: Likewise. * m4/strtok_r.m4: Likewise. * m4/strverscmp.m4: Likewise. * m4/time_r.m4: Likewise. * m4/time_rz.m4: Likewise. * m4/timegm.m4: Likewise. * m4/timespec_get.m4: Likewise. * m4/tzset.m4: Likewise. * modules/accept (configure.ac): Likewise. * modules/bind (configure.ac): Likewise. * modules/connect (configure.ac): Likewise. * modules/flock (configure.ac): Likewise. * modules/getpeername (configure.ac): Likewise. * modules/getsockname (configure.ac): Likewise. * modules/getsockopt (configure.ac): Likewise. * modules/listen (configure.ac): Likewise. * modules/recv (configure.ac): Likewise. * modules/recvfrom (configure.ac): Likewise. * modules/send (configure.ac): Likewise. * modules/sendto (configure.ac): Likewise. * modules/setsockopt (configure.ac): Likewise. * modules/shutdown (configure.ac): Likewise. * modules/socket (configure.ac): Likewise. Use the gl_*_H_REQUIRE_DEFAULTS macros. * modules/nonblocking (configure.ac): Use the gl_*_H_REQUIRE_DEFAULTS and gl_MODULE_INDICATOR_INIT_VARIABLE macros. * modules/sigpipe (configure.ac): Likewise. * modules/windows-stat-override (configure.ac): Likewise. * m4/nonblocking.m4: Update a comment. * m4/sigpipe.m4: Likewise. 2021-04-11 Bruno Haible Rename GNULIB_OVERRIDES_CHAR16_T, GNULIB_OVERRIDES_CHAR32_T. * GNULIBHEADERS_OVERRIDE_CHAR16_T: Renamed from GNULIB_OVERRIDES_CHAR16_T. * GNULIBHEADERS_OVERRIDE_CHAR32_T: Renamed from GNULIB_OVERRIDES_CHAR32_T. Rename GNULIB_OVERRIDES_WINT_T. * GNULIBHEADERS_OVERRIDE_WINT_T: Renamed from GNULIB_OVERRIDES_WINT_T. 2021-04-11 Bruno Haible increment-serial: New program. * build-aux/increment-serial: New file. 2021-04-11 Bruno Haible useless-if-before-free: Implement --version option according to GCS. * build-aux/useless-if-before-free (copyright_year): New variable. (GetOptions): Print also a short copyright and license notice and author statement. libtool-next-version: Implement --version option according to GCS. * build-aux/libtool-next-version (scriptversion): New variable. (func_version): Deduce the copyright year from it. Terminate sentences with '.'. gnupload: Implement --version option according to GCS. * build-aux/gnupload (copyright_year, copyright): New variables. (--version): Print also a short copyright and license notice. git-version-gen: Implement --version option according to GCS. * build-aux/git-version-gen (version): State the license. Use wording from GCS. bootstrap: Implement --version option according to GCS. * build-aux/bootstrap (copyright_year, copyright): New variables. (--version): New option processing. announce-gen: Implement --version option according to GCS. * build-aux/announce-gen (copyright_year): New variable. (GetOptions): Print also a short copyright and license notice and author statement. 2021-04-10 Bruno Haible Simplify GNULIB_* variable initializations. * modules/gnulib-common.m4 (gl_MODULE_INDICATOR_INIT_VARIABLE): New macro. * m4/arpa_inet_h.m4 (gl_ARPA_INET_H_DEFAULTS): Use it. * m4/ctype.m4 (gl_CTYPE_H_DEFAULTS): Likewise. * m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): Likewise. * m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Likewise. * m4/fnmatch_h.m4 (gl_FNMATCH_H_DEFAULTS): Likewise. * m4/glob_h.m4 (gl_GLOB_H_DEFAULTS): Likewise. * m4/iconv_h.m4 (gl_ICONV_H_DEFAULTS): Likewise. * m4/inttypes.m4 (gl_INTTYPES_H_DEFAULTS): Likewise. * m4/langinfo_h.m4 (gl_LANGINFO_H_DEFAULTS): Likewise. * m4/locale_h.m4 (gl_LOCALE_H_DEFAULTS): Likewise. * m4/malloc_h.m4 (gl_MALLOC_H_DEFAULTS): Likewise. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Likewise. * m4/monetary_h.m4 (gl_MONETARY_H_DEFAULTS): Likewise. * m4/netdb_h.m4 (gl_NETDB_H_DEFAULTS): Likewise. * m4/poll_h.m4 (gl_POLL_H_DEFAULTS): Likewise. * m4/pthread_h.m4 (gl_PTHREAD_H_DEFAULTS): Likewise. * m4/pty_h.m4 (gl_PTY_H_DEFAULTS): Likewise. * m4/sched_h.m4 (gl_SCHED_H_DEFAULTS): Likewise. * m4/search_h.m4 (gl_SEARCH_H_DEFAULTS): Likewise. * m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Likewise. * m4/spawn_h.m4 (gl_SPAWN_H_DEFAULTS): Likewise. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Likewise. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Likewise. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Likewise. * m4/strings_h.m4 (gl_HEADER_STRINGS_H_DEFAULTS): Likewise. * m4/sys_file_h.m4 (gl_HEADER_SYS_FILE_H_DEFAULTS): Likewise. * m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H_DEFAULTS): Likewise. * m4/sys_random_h.m4 (gl_SYS_RANDOM_H_DEFAULTS): Likewise. * m4/sys_resource_h.m4 (gl_SYS_RESOURCE_H_DEFAULTS): Likewise. * m4/sys_select_h.m4 (gl_SYS_SELECT_H_DEFAULTS): Likewise. * m4/sys_socket_h.m4 (gl_SYS_SOCKET_H_DEFAULTS): Likewise. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Likewise. * m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_DEFAULTS): Likewise. * m4/sys_times_h.m4 (gl_SYS_TIMES_H_DEFAULTS): Likewise. * m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H_DEFAULTS): Likewise. * m4/sys_wait_h.m4 (gl_SYS_WAIT_H_DEFAULTS): Likewise. * m4/termios_h.m4 (gl_TERMIOS_H_DEFAULTS): Likewise. * m4/threads.m4 (gl_THREADS_H_DEFAULTS): Likewise. * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Likewise. * m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Likewise. * m4/utime_h.m4 (gl_UTIME_H_DEFAULTS): Likewise. * m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Likewise. * m4/wctype_h.m4 (gl_WCTYPE_H_DEFAULTS): Likewise. 2021-04-10 Paul Eggert realloc: fix undef typo * lib/realloc.c: #undef realloc if config.h defines it. This fixes a typo that I introduced in 2011-04-08T18:39:01Z!eggert@cs.ucla.edu. Apparently nobody uses Gnulib realloc in that way? 2021-04-07 Bruno Haible execute tests: Avoid test failure in certain environments. Reported by Dmitry V. Levin in . * tests/test-execute-main.c (main): Close file descriptors 3..19. * tests/test-execute-child.c (main): Remove NetBSD workaround. * modules/execute-tests (configure.ac): Test for close_range function. 2021-04-07 Paul Eggert utimens: fix confusing arg type in internal func Although the old code was technically correct, this was accidental and it confused a GCC 11 prerelease. Reported by Ondrej Dubaj in: https://lists.gnu.org/r/bug-tar/2021-04/msg00000.html * lib/utimens.c (update_timespec): Change arg type from ‘struct timespec *[2]’ (pointer to array of 2 pointers to timespecs) to ‘struct timespec **’ (pointer to pointer to the first timespec in an array of 2 timespecs). Although the old code happened to be technically correct, it was misleading and confused Coverity. And though the type ‘struct timespec (**)[2]’ (pointer to pointer to array of 2 timespecs) would perhaps be more technically correct, it would be almost as confusing and would require changes elsewhere in this file; let’s quit while we’re ahead. xalloc: simplify integer overflow test * lib/xalloc.h (x2nrealloc): Simplify integer overflow detection. This is easier to maintain, and (unlike the old code) exact. 2021-04-06 Paul Eggert group-member: minor tweak to omit a * * lib/group-member.c: Include intprops.h. (get_group_info): Use INT_MULTIPLY_WRAPV instead of xalloc_oversized (which does a multiplication) followed by the same multiplication. The code was OK as-is; this is just conceptual simplification, possible now that we have xalloc_count_t. * modules/group-member: Depend on intprops. backupfile: less-aggressive buffer growth * lib/backupfile.c: Include intprops.h. (numbered_backup): Grow buffer by the usual 50%, not 100%. This is easier to do now that we have xalloc_count_t. * modules/backup-rename, modules/backupfile: Depend on intprops. xalloc-oversized: export xalloc_count_t * lib/xalloc-oversized.h (__xalloc_oversized, xalloc_oversized): * lib/xmalloca.h (nmalloca): Comment re restrictions on arg types. * lib/xalloc-oversized.h (xalloc_count_t): Rename from __xalloc_count_type; all uses changed. This publicizes the type. 2021-04-05 Paul Eggert xalloc: try to pacify gcc -Wsign-compare Problem reported by Marc Nieper-Wißkirchen in: https://lists.gnu.org/r/bug-gnulib/2021-04/msg00034.html * lib/xmalloc.c (xpalloc): For odd platforms where SIZE_MAX < IDX_MAX, use a tricky destination for INT_MULTIPLY_WRAPV instead of an explicit comparison to SIZE_MAX. This should be more likely to pacify gcc -Wsign-compare. 2021-04-05 Marc Nieper-Wißkirchen hamt: Fix coding errors. Reported by Bruno Haible in after a Coverity run. * lib/hamt.c (bucket_do_while, hamt_iterator): Add missing derefencing operator and silence a bogus warning on uninitialized variables. * tests/test-hamt.c (test_general): Replace two errorneous assignment operators with comparison operators. 2021-04-05 Fabrice Fontaine pthread-cond: Fix compilation error. * lib/pthread-cond.c (pthread_cond_wait): Use tv.nsec instead of tv.usec. 2021-04-04 Fabrice Fontaine pthread-cond: Fix wrong configure results when is absent. * m4/pthread-cond.m4 (gl_PTHREAD_COND): When does not exist, set HAVE_PTHREAD_COND_* to 0, not to 1. 2021-04-04 Bruno Haible backupfile, backup-rename: Trim dependencies. * lib/backupfile.h: Add comment. * lib/backupfile.c: Include , for readdir() declaration. * modules/backup-rename (Depends-on): Remove dirent-safer, fcntl. Add fcntl-h. * modules/backupfile (Depends-on): Likewise. Remove xalloc. Add xalloc-die. 2021-04-04 Bruno Haible doc: Fix syntax error (regression from 2021-04-02). * doc/posix-functions/strtol.texi: Put @item inside @itemize block. 2021-04-04 Marc Nieper-Wißkirchen hamt: Document the module in the Gnulib manual. Suggested by Bruno Haible in . * doc/containers.texi: Add a subsection to section 15.11 Container data types. * lib/hamt.h: Improve documentation on how Hamt_entry is supposed to be used. 2021-04-03 Paul Eggert savedir: avoid unlikely undefined behavior * lib/savedir.c (streamsavedir): Prefer idx_to size_t where either will do. Simplify reallocation of entries. Use xpalloc to reallocate name_space, to avoid some unlikely integer overflows. quotearg: avoid undefined and/or O(N**2) Avoid undefined and O(N**2) behavior in some very unlikely cases. * lib/quotearg.c (quotearg_n_options): Document that N must be less than MIN (INT_MAX, IDX_MAX), and add this to the abort test; this also avoids a conditional branch. Use xpalloc instead of xrealloc, to avoid O(N**2) behavior in very-unlikely cases. xgethostname: reorganize / simplify xgethostname and xgetdomainname were essentially copies long ago, but they’ve diverged. Bring them back together again by implementing the (rarely used) latter in terms of the former. And avoid some unnecessary realloc calls while we’re at it. * lib/xgetdomainname.c: Rewrite from scratch so that it merely includes xgethostname.c with a few preliminaries. * lib/xgethostname.c: Generalize so that it can be included from xgetdomainname.c. (GETANAME, XGETANAME): New macros. (INITIAL_HOSTNAME_LENGTH): Remove. No need for this parameter. Use 100 instead, as few hostnames are longer than that. (XGETANAME): Try getting the hostname into the stack first, as that avoids a malloc call in the usual case. Check for both POSIX-style truncation and SunOS 5.5 bug in a cleaner way, by simply checking string length. Don’t use x2realloc, which wastes time preserving buffer garbage; use xpalloc with NULL instead. Don’t bother shrinking buffer in the very rare case where the hostname is longer than sizeof buf; it’s not worth the aggravation. * modules/xgetdomainname (Depends-on): Remove free-posix, xalloc. Add xgethostname. 2021-04-03 Bruno Haible *-list tests: Add more tests. * tests/test-array_list.c (check_equals_by_forward_iteration, check_equals_by_backward_iteration): New functions. (main): Invoke them. * tests/test-carray_list.c: Likewise. * tests/test-linked_list.c: Likewise. * tests/test-linkedhash_list.c: Likewise. * tests/test-avltree_list.c: Likewise. * tests/test-avltreehash_list.c: Likewise. * tests/test-rbtree_list.c: Likewise. * tests/test-rbtreehash_list.c: Likewise. list: Add operations first_node, last_node. Reported by Marc Nieper-Wißkirchen in . * lib/gl_list.h (gl_list_first_node, gl_list_last_node): New functions. (struct gl_list_implementation): Add members first_node, last_node. * lib/gl_array_list.c (gl_array_first_node, gl_array_last_node): New functions. (gl_array_list_implementation): Add the new operations. * lib/gl_carray_list.c (gl_carray_first_node, gl_carray_last_node): New functions. (gl_carray_list_implementation): Add the new operations. * lib/gl_anylinked_list2.h (gl_linked_first_node, gl_linked_last_node): New functions. * lib/gl_linked_list.c (gl_linked_list_implementation): Add the new operations. * lib/gl_linkedhash_list.c (gl_linkedhash_list_implementation): Likewise. * lib/gl_anytree_list2.h (gl_tree_first_node, gl_tree_last_node): New functions. * lib/gl_avltree_list.c (gl_avltree_list_implementation): Add the new operations. * lib/gl_avltreehash_list.c (gl_avltreehash_list_implementation): Likewise. * lib/gl_rbtree_list.c (gl_rbtree_list_implementation): Likewise. * lib/gl_rbtreehash_list.c (gl_rbtreehash_list_implementation): Likewise. * lib/gl_sublist.c (gl_sublist_first_node, gl_sublist_last_node): New functions. (gl_sublist_list_implementation): Add the new operations. * lib/gl_list.hh (class gl_List): Add member functions first_node, last_node. * doc/containers.texi: Update table. 2021-04-03 Bruno Haible xalloc-die: Fix compilation error (regression from 2021-03-28). * lib/xalloc.h: Don't include idx.h and xalloc-oversized.h if the module 'xalloc' is not in use. * modules/xalloc-die (Depends-on): Remove xalloc-oversized. 2020-04-03 Marc Nieper-Wißkirchen hamt: New module. This module provides (persistent) hash array mapped tries. * MODULES.html.sh: Add hamt. * lib/hamt.c: New file. * lib/hamt.h: New file. * modules/hamt: New file. * modules/hamt-tests: New file. * tests/test-hamt.c: New file. 2021-04-02 Bruno Haible strtoul, strtoll, strtoull: Fix compilation warning. * lib/strtol.c (strtol): Undefine before defining as a macro. 2021-04-02 Bruno Haible strtoll: Work around a bug on native Windows and Minix. * lib/stdlib.in.h (strtoll): Override if REPLACE_STRTOLL is 1. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_STRTOLL. * m4/strtoll.m4 (gl_FUNC_STRTOLL): Test whether strtoll works. Set REPLACE_STRTOLL. * modules/stdlib (Makefile.am): Substitute REPLACE_STRTOLL. * modules/strtoll (configure.ac): Test REPLACE_STRTOLL. * tests/test-strtoll.c (main): Add tests of hexadecimal integer syntax. * doc/posix-functions/strtoll.texi: Mention the bug. 2021-04-02 Bruno Haible strtol: Work around a bug on native Windows and Minix. * lib/stdlib.in.h (strtol): New declaration. * m4/stdlib_h.m4 (gl_STDLIB_H): Test whether strtol is declared. (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_STRTOL, HAVE_STRTOL, REPLACE_STRTOL. * m4/strtol.m4 (gl_FUNC_STRTOL): Require gl_STDLIB_H_DEFAULTS. Test whether strtol works. Set REPLACE_STRTOL. * modules/stdlib (Makefile.am): Substitute GNULIB_STRTOL, HAVE_STRTOL, REPLACE_STRTOL. * modules/strtol (Status, Notice): Remove. (Depends-on): Add stdlib. (configure.ac): Test HAVE_STRTOL and REPLACE_STRTOL. Invoke gl_STDLIB_MODULE_INDICATOR. * tests/test-strtol.c (main): Add tests of hexadecimal integer syntax. * doc/posix-functions/strtol.texi: Mention the bug. 2021-04-02 Bruno Haible strtoull: Work around a bug on native Windows and Minix. * lib/stdlib.in.h (strtoull): Override if REPLACE_STRTOULL is 1. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_STRTOULL. * m4/strtoull.m4 (gl_FUNC_STRTOULL): Test whether strtoull works. Set REPLACE_STRTOULL. * modules/stdlib (Makefile.am): Substitute REPLACE_STRTOULL. * modules/strtoull (configure.ac): Test REPLACE_STRTOULL. * tests/test-strtoull.c (main): Add tests of hexadecimal integer syntax. * doc/posix-functions/strtoull.texi: Mention the bug. 2021-04-02 Bruno Haible strtoul: Work around a bug on native Windows and Minix. Reported by Eric Blake in . * lib/stdlib.in.h (strtoul): New declaration. * m4/stdlib_h.m4 (gl_STDLIB_H): Test whether strtoul is declared. (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_STRTOUL, HAVE_STRTOUL, REPLACE_STRTOUL. * m4/strtoul.m4 (gl_FUNC_STRTOUL): Require gl_STDLIB_H_DEFAULTS. Test whether strtoul works. Set REPLACE_STRTOUL. * modules/stdlib (Makefile.am): Substitute GNULIB_STRTOUL, HAVE_STRTOUL, REPLACE_STRTOUL. * modules/strtoul (Status, Notice): Remove. (Depends-on): Add stdlib. (configure.ac): Test HAVE_STRTOUL and REPLACE_STRTOUL. Invoke gl_STDLIB_MODULE_INDICATOR. * tests/test-strtoul.c (main): Add tests of hexadecimal integer syntax. * doc/posix-functions/strtoul.texi: Mention the bug. 2021-04-02 Bruno Haible strtol, strtoul, strtoll, strtoull: Optimize. * lib/strtol.c (GROUP_PARAM_PROTO): New macro. (INTERNAL): Define differently if !USE_NUMBER_GROUPING. (INTERNAL (strtol)): Define without 'int group' parameter if !USE_NUMBER_GROUPING. (strtol): Don't define if !USE_NUMBER_GROUPING. 2021-04-02 Bruno Haible strto*l: Don't pass invalid arguments to isspace, isalnum, toupper. * lib/strtol.c (ISSPACE, ISALPHA, TOUPPER): Cast argument to 'unsigned char' before passing it to the functions isspace(), isalpha(), toupper(). 2021-04-02 Bruno Haible glob: Reject ~user syntax, when flag GLOB_TILDE_CHECK is given. Reported and patch suggested by Eli Zaretskii in . * lib/glob.c (__glob) [WINDOWS32]: If flag GLOB_TILDE_CHECK is given, do error handling like when ~user is allowed by the user is unknown. 2021-03-31 Paul Eggert xalloc: delay setting size until success * lib/xalloc.h (x2nrealloc): Don’t change *PN until after xrealloc succeeds, in case xalloc_die or one of its callees or longjmp targets uses *PN. Similar code in xpalloc already does this. 2021-03-28 Paul Eggert xalloc: new function xpalloc, from dfa Move xpalloc from dfa.c to xmalloc.c and change it from static to extern. The function is useful in other contexts; I’m about to use it in coreutils. * lib/dfa.c: Include idx.h, instead of rolling our own idx_t and IDX_MAX. Do not include intprops.h; no longer needed. (xpalloc): Move from here ... * lib/xmalloc.c (xpalloc): ... to here, and make it extern. Include intprops.h and minmax.h, needed by xpalloc. * lib/xalloc.h: Include idx.h, for idx_t. * modules/dfa (Depends-on): Add idx; remove intprops. * modules/xalloc (Depends-on): Add idx, intprops, minmax. 2021-03-28 Bruno Haible linked-list tests: Add another test for SIGNAL_SAFE_LIST. * tests/test-asyncsafe-linked_list-strong.c: Renamed from tests/test-asyncsafe-linked_list.c. * tests/test-asyncsafe-linked_list-strong.sh: Renamed from tests/test-asyncsafe-linked_list.sh. * tests/test-asyncsafe-linked_list-weak.c: New file, based on tests/test-asyncsafe-linked_list.c. * tests/test-asyncsafe-linked_list-weak.sh: New file, based on tests/test-asyncsafe-linked_list.sh. * modules/linked-list-tests (Files): Add tests/test-asyncsafe-linked_list-weak.*, tests/test-asyncsafe-linked_list-strong.*. (Makefile.am): Arrange to test also tests/test-asyncsafe-linked_list-weak.sh. Mark test-asyncsafe-linked_list-weak.sh and test-asyncsafe-linked_list-strong.sh as expected failures. 2021-03-27 Bruno Haible renameatu tests: Add unit test for bug found on macOS. * tests/test-renameatu.c (main): Add test for identical rename with RENAME_NOREPLACE. 2021-03-26 Bruno Haible unistdio/*-vasnprintf: Fix errno value (regression from yesterday). * modules/unistdio/u8-vasnprintf (Depends-on): Add free-posix. * modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/ulc-vasnprintf (Depends-on): Likewise. 2021-03-26 Bruno Haible vasnprintf: Fix memory leak (regression from yesterday). * lib/vasnprintf.c (VASNPRINTF): Restore omitted CLEANUP invocation. Some more simplifications of errno around free(). 2021-03-26 Akim Demaille fprintf-posix: fix typo * modules/fprintf-posix (Depends-on): Fix typo. 2021-03-25 Paul Eggert free-posix: use more often in other modules This lets us simplify cleanup code that calls ‘free’. * lib/amemxfrm.c (amemxfrm): * lib/areadlink-with-size.c (areadlink_with_size): * lib/areadlinkat-with-size.c (areadlinkat_with_size): * lib/astrxfrm.c (astrxfrm): * lib/dprintf.c (dprintf): * lib/execute.c (execute): * lib/execvpe.c (execvpe): * lib/fchdir.c (get_name): * lib/file-has-acl.c (file_has_acl): * lib/fprintf.c (fprintf): * lib/getcwd-lgpl.c (rpl_getcwd): * lib/getgroups.c (rpl_getgroups): * lib/link.c (link, rpl_link): * lib/linkat.c (link_immediate, link_follow, linkat_follow): * lib/localename.c (newlocale, duplocale): * lib/mgetgroups.c (mgetgroups): * lib/mountlist.c (read_file_system_list): * lib/pipe-filter-gi.c (pipe_filter_gi_close): * lib/putenv.c (_unsetenv, putenv): * lib/read-file.c (read_file): * lib/rename.c (rpl_rename): * lib/savedir.c (streamsavedir, savedir): * lib/spawni.c (do_open, __spawni): * lib/spawn-pipe.c (create_pipe): * lib/striconv.c (mem_cd_iconv, str_cd_iconv, str_iconv): * lib/striconveh.c (mem_cd_iconveh_internal, str_cd_iconveh) (mem_iconveh, str_iconveh): * lib/supersede.c (open_supersede, close_supersede): * lib/vasnprintf.c (VASNPRINTF): * lib/vdprintf.c (vdprintf): * lib/vfprintf.c (vfprintf): * lib/wcscoll-impl.h (wcscoll): * lib/wcsxfrm-impl.h (wcsxfrm): * lib/xgetdomainname.c (xgetdomainname): * lib/xgethostname.c (xgethostname): Simplify by assuming that ‘free’ preserves errno. * lib/localename.c: Do not include errno.h. * modules/amemxfrm, modules/areadlink-with-size: * modules/areadlinkat-with-size, modules/astrxfrm: * modules/c-vasnprintf, modules/dprintf, modules/execute: * modules/execvpe, modules/fchdir, modules/file-has-acl: * modules/fprintf-posix, modules/getcwd-lgpl, modules/getgroups: * modules/link, modules/linkat, modules/localename: * modules/mgetgroups, modules/mountlist, modules/pipe-filter-gi: * modules/posix_spawn-internal, modules/putenv, modules/read-file: * modules/rename, modules/savedir, modules/spawn-pipe: * modules/striconv, modules/striconveh, modules/supersede: * modules/vasnprintf, modules/vdprintf, modules/vfprintf-posix: * modules/wcscoll, modules/wcsxfrm, modules/xgetdomainname: * modules/xgethostname: Depend on free-posix. 2021-03-24 Paul Eggert renameatu: work around macOS 11.2 renameatx_np bug * lib/renameatu.c (renameatu) [RENAME_EXCL]: Use lstatat test here too. 2021-03-22 Bruno Haible clean-temp-simple: Fix a rare memory leak. * lib/clean-temp-simple.c (register_temporary_file): Fix cleanup code. 2021-03-22 Bruno Haible clean-temp-simple: Relicense under LGPLv2+. * modules/clean-temp-simple (License): Change to LGPLv2+. 2021-03-22 Bruno Haible clean-temp-simple: Remove dependency upon xalloc, xalloc-die, xlist. * lib/clean-temp-private.h (clean_temp_init): Change return type to 'int'. * lib/clean-temp-simple.h (register_temporary_file): Change return type to 'int'. * lib/clean-temp-simple.c: Don't include xalloc.h, gl_xlist.h. Include gl_list.h instead. (init_failed): New variable. (do_clean_temp_init): Set it. (clean_temp_init): Return an error indicator. (register_temporary_file): Invoke gl_list_nx_create_empty instead of gl_list_create_empty. Invoke strdup instead of xstrdup. Invoke gl_list_nx_add_first instead of gl_list_add_first. Return an error indicator. * lib/clean-temp.c (create_temp_dir, gen_register_open_temp): Call xalloc_die() if clean_temp_init or register_temporary_file failed. * modules/clean-temp-simple (Depends-on): Remove xalloc, xalloc-die, xlist. 2021-03-22 Bruno Haible clean-temp-simple: New module. * lib/clean-temp-simple.h: New file, based on lib/clean-temp.h. * lib/clean-temp-private.h: New file, based on lib/clean-temp.c. * lib/clean-temp-simple.c: New file, based on lib/clean-temp.c. * lib/clean-temp.h: Include clean-temp-simple.h. (register_temporary_file, unregister_temporary_file, cleanup_temporary_file): Remove declarations. * lib/clean-temp.c: Don't include , . Include , , clean-temp-simple.h, clean-temp-private.h. (file_cleanup_list_lock, file_cleanup_list): Moved to clean-temp-simple.c. (struct tempdir, dir_cleanup_list, struct closeable_fd, descriptors): Moved to clean-temp-private.h. (string_equals, SIZE_BITS, string_hash, fatal_signal_set, init_fatal_signal_set, asyncsafe_close): Moved to clean-temp-simple.c. (asyncsafe_fclose_variant): Use get_fatal_signal_set() here. (cleanup_action, do_init_clean_temp, clean_temp_once, init_clean_temp, register_temporary_file, unregister_temporary_file, do_unlink, cleanup_temporary_file): Moved to clean-temp-simple.c. (create_temp_dir, cleanup_temp_file, cleanup_temp_dir_contents, gen_register_open_temp, close_temp): Update for changed function names. (fclose_variant_temp): Don't call init_fatal_signal_set(). * modules/clean-temp-simple: New file, based on modules/clean-temp. * modules/clean-temp (Depends-on): Add clean-temp-simple, list. Remove stdint. (configure.ac): Don't define SIGNAL_SAFE_LIST here. 2021-03-22 Bruno Haible error: Relicense under LGPLv2+. Pino Toscano's approval is in . Paul Eggert's approval is in . * modules/error (License): Change to LGPLv2+. 2021-03-22 Bruno Haible getprogname: Relicense under LGPLv2+. Pino Toscano's approval is in . Paul Eggert's approval is in . Jim Meyering's approval is in . Gisle Vanem's approval is in . Daniel Richard G's approval is in . John David Anglin's approval is in . Benji Wiebe's approval is in . * modules/getprogname (License): Change to LGPLv2+. 2021-03-22 Bruno Haible fatal-signal: Relicense under LGPLv2+. Eric Blake's approval is in . * modules/fatal-signal (License): Change to LGPLv2+. 2021-03-22 Bruno Haible doc: Mention an open glibc bug. * doc/posix-functions/mbrtowc.texi: Mention the possible out-of-range wchar_t values returned by this function on glibc. * doc/posix-functions/mbtowc.texi: Likewise. 2021-03-22 Benno Schulenberg (tiny change) mbrtowc: Remove a redundant condition. * lib/mbrtowc-impl-utf8.h: There is no need to check for c == 0xf4 when !(c < 0xf4), as ten lines earlier c <= 0xf4 was established. 2021-03-22 Bruno Haible linkedhash-list: Relicense under LGPLv2+. Paul Eggert's approval is in . * modules/linkedhash-list (License): Change to LGPLv2+. 2021-03-21 Bruno Haible fatal-signal: Remove dependency upon xalloc. * lib/fatal-signal.h (at_fatal_signal): Change return type to 'int'. * lib/fatal-signal.c: Don't include xalloc.h. (at_fatal_signal): Return an error indicator. * modules/fatal-signal (Depends-on): Remove xalloc. * NEWS: Mention the change. * lib/term-style-control.c: Include xalloc.h. (ensure_other_signal_handlers): Test return value of at_fatal_signal. * lib/clean-temp.c (do_init_clean_temp): Likewise. * lib/wait-process.c (register_slave_subprocess): Likewise. * modules/term-style-control (Depends-on): Add xalloc-die. * modules/clean-temp (Depends-on): Likewise. * modules/wait-process (Depends-on): Likewise. 2021-03-21 Paul Eggert diacrit: remove * MODULES.html.sh (func_all_modules), NEWS: Remove diacrit. * lib/diacrit.c, lib/diacrit.h, modules/diacrit: Remove. tests: fix signed overflow issues * tests/test-dynarray.c (value_at): Avoid undefined behavior in signed integer multiplication. * tests/test-scratch-buffer.c (byte_at): Likewise, for the theoretically-possible case where size_t is narrower than int. 2021-03-21 Bruno Haible doc: More updates. * doc/glibc-functions/sethostname.texi: Update regarding macOS. * doc/glibc-functions/sethostname.texi: List the affected platforms. doc: Update for macOS 11.1. * doc/posix-headers/*.texi: Update. * doc/glibc-headers/*.texi: Update. * doc/posix-functions/*.texi: Likewise. * doc/pastposix-functions/*.texi: Likewise. * doc/glibc-functions/*.texi: Likewise. * m4/aligned_alloc.m4 (gl_FUNC_ALIGNED_ALLOC): Update cross-compilation guess. 2021-03-21 Bruno Haible ftell: Document bug in macOS >= 10.15. * doc/posix-functions/ftell.texi: Mention the macOS bug. 2021-03-20 Bruno Haible ftello: Work around bug in macOS >= 10.15. Reported by Martin Storsjö in . * m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): On macOS, don't define FUNC_UNGETC_BROKEN. Instead, set gl_ftello_broken_after_ungetc to yes. * m4/ftello.m4 (gl_FUNC_FTELLO): Invoke gl_FUNC_UNGETC_WORKS, and arrange to provide the workaround if ftello is broken after ungetc. * lib/ftello.c: Include , intprops.h. (ftello) [FTELLO_BROKEN_AFTER_UNGETC]: Implement from scratch. * modules/ftello (Files): Add m4/ungetc.m4. (Depends-on): Add intprops. * doc/posix-functions/ftello.texi: Mention the macOS bug. 2021-03-20 Bruno Haible math C++ tests: Fix compilation error on macOS 11.2. * lib/math.in.h (isnan): For clang >= 12 on macOS, declare 'rpl_isnan', not 'isnan'. 2021-03-18 Bruno Haible simple-atomic tests: Fix compilation error on Solaris 10. Reported by Tom G. Christensen in . * tests/test-simple-atomic.c (yield): Define only after all #includes. 2021-03-18 Bruno Haible simple-atomic: Fix compilation error on Solaris 10/x86_64 with cc. * lib/simple-atomic.c (atomic_compare_and_swap_ptr): Correct asm instruction. 2021-03-18 Paul Eggert argmatch: fix testing typo Problem and fix reported by Gisle Vanem in: https://lists.gnu.org/r/bug-gnulib/2021-03/msg00083.html * lib/argmatch.c (main) [TEST]: Fix address-of typo. 2021-03-14 Paul Eggert intprops: improve commentary * lib/intprops.h: Improve comments about promotion etc. 2021-03-14 Bruno Haible time_rz: Put reference documentation into the .h file. * lib/time.in.h (timezone_t, tzalloc, tzfree, localtime_rz, mktime_z): Add comments, based on modules/time_rz. * modules/time_rz (Comment): Remove section. 2021-03-14 Bruno Haible parse-datetime tests: Avoid a test failure on NetBSD. Reported by Thomas Klausner in . * tests/test-parse-datetime.c (main): Skip two tests on NetBSD. 2021-03-10 Paul Eggert libc-config: port to DragonFlyBSD 5.9 DragonFlyBSD defines __nonnull incompatibly with glibc, so avoid the use of __nonnull in Gnulib code. Problem reported by Gavin Smith in: https://lists.gnu.org/r/bug-gnulib/2021-03/msg00066.html * lib/cdefs.h (__attribute_nonnull__): Rename from __nonnull. All uses in Gnulib changed. There should be no need to change glibc code that is not shared with Gnulib. (__nonnull): New macro, defined in terms of __attribute_nonnull__, and which can be used in glibc code that is not shared with Gnulib. 2021-03-07 Paul Eggert manywarnings: modernize documentation Problem reported by Reuben Thomas in: https://lists.gnu.org/r/bug-gnulib/2021-03/msg00046.html * doc/manywarnings.texi (manywarnings): Update in the light of recent changes to the manywarnings module. 2021-03-07 Bruno Haible sysexits: Fix for Haiku. * lib/sysexits.in.h: Don't assume that , when it exists, defines anything. * doc/glibc-headers/sysexits.texi: Mention the Haiku bug. 2021-03-07 Bruno Haible Rename GNULIB_WCHAR_SINGLE to GNULIB_WCHAR_SINGLE_LOCALE. * lib/lc-charset-dispatch.c: Test GNULIB_WCHAR_SINGLE_LOCALE instead of GNULIB_WCHAR_SINGLE. * lib/wcwidth.c: Likewise. * tests/test-wcwidth.c: Likewise. * doc/multithread.texi: Document GNULIB_WCHAR_SINGLE_LOCALE instead of GNULIB_WCHAR_SINGLE. * NEWS: Document the change. 2021-03-06 Bruno Haible mbrtowc: Allow locking optimization independently of 'unlocked-io'. * lib/mbtowc-lock.h: Test GNULIB_MBRTOWC_SINGLE_THREAD instead of USE_UNLOCKED_IO. * doc/multithread.texi: Document GNULIB_MBRTOWC_SINGLE_THREAD. 2021-03-06 Bruno Haible regex: Allow locking optimization independently of 'unlocked-io'. * lib/regex_internal.h: Test GNULIB_REGEX_SINGLE_THREAD instead of USE_UNLOCKED_IO. * doc/multithread.texi: Document GNULIB_REGEX_SINGLE_THREAD. 2021-03-06 Bruno Haible exclude: Allow stdio optimization independently of 'unlocked-io'. * lib/exclude.c: Test GNULIB_EXCLUDE_SINGLE_THREAD instead of USE_UNLOCKED_IO. * modules/exclude (Depends-on): Add unlocked-io-internal. * doc/multithread.texi: Document GNULIB_EXCLUDE_SINGLE_THREAD. 2021-03-06 Bruno Haible readutmp: Optimize stdio accesses. * lib/readutmp.c: Include unlocked-io.h unconditionally. * modules/readutmp (Depends-on): Add unlocked-io-internal. 2021-03-06 Bruno Haible mountlist: Optimize stdio accesses. * lib/mountlist.c: Include unlocked-io.h unconditionally. * modules/mountlist (Depends-on): Add unlocked-io-internal. 2021-03-06 Bruno Haible getusershell: Optimize stdio accesses when possible. * lib/getusershell.c: Test GNULIB_GETUSERSHELL_SINGLE_THREAD instead of USE_UNLOCKED_IO. * modules/getusershell (Depends-on): Add unlocked-io-internal. * doc/multithread.texi: Document GNULIB_GETUSERSHELL_SINGLE_THREAD. 2021-03-06 Bruno Haible unlocked-io-internal: New module. * m4/unlocked-io.m4 (gl_FUNC_GLIBC_UNLOCKED_IO): Don't define USE_UNLOCKED_IO here. * modules/unlocked-io-internal: New file, based on modules/unlocked-io. * modules/unlocked-io (Description): Clarify. (Files, Depends-on): Just use the unlocked-io-internal module. (configure.ac): Define GNULIB_STDIO_SINGLE_THREAD and USE_UNLOCKED_IO here. * doc/multithread.texi: Clarify when the 'unlocked-io' module can be used. 2021-03-06 Bruno Haible posixtm: Remove unused includes. * lib/posixtm.c: Don't include , , unlocked-io.h. 2021-03-06 Bruno Haible dynarray: Add tests. * tests/test-dynarray.c: New file. * modules/dynarray-tests: New file. dynarray: Make the module usable on its own. * lib/dynarray.h: Document the exported API. Comments taken from lib/malloc/dynarray-skeleton.c and lib/malloc/dynarray.h. Distinguish an internal include from an include for instantiation. In the latter case, include and . * modules/dynarray (Depends-on): Add intprops. (Include): Reduce to just "dynarray.h". 2021-03-06 Bruno Haible scratch_buffer: Add comment. * lib/scratch_buffer.h: Add comment. 2021-03-06 Paul Eggert parse-datetime2: fix licensing Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2021-03/msg00017.html * gnulib-tool (func_get_license): Treat parse-datetime2 (actually, anything starting with "parse-datetime") like parse-datetime, as far as licenses go. 2021-03-06 Bruno Haible free-posix: Update documentation. * doc/posix-functions/free.texi: Add platform details. 2021-03-06 Bruno Haible doc: Update for glibc 2.33. * doc/glibc-functions/mallinfo2.texi: New file. * doc/gnulib.texi: Include it. (Glibc sys/vtimes.h): Remove section. * doc/glibc-functions/vtimes.texi: Remove file. * doc/pastposix-functions/h_errno.texi: Update. * doc/posix-functions/*.texi: Likewise. * doc/glibc-functions/*.texi: Likewise. 2021-03-04 Bruno Haible stddef: Generalize tcc workaround to other compilers. Suggested by Paul Eggert in . * lib/stddef.in.h: Undefine the __need_* macros with all compilers. * doc/posix-headers/stddef.texi: Mention that the TinyCC bug also exists on macOS. 2021-03-04 Paul Eggert stdalign: port to tcc + glibc * lib/stdalign.in.h (_Alignas): Do not define using __attribute__ if __attribute__ is defined as a macro, as __attribute__ surely a no-op in that case and this is an area where __attribute__ cannot simply be ignored. * m4/stdalign.m4 (gl_STDALIGN_H): Include so that it #defines __attribute__(x) to nothing on glibc-based systems when non-GNU-C-compatible compilers are used. This exposes a bug in Tiny C Compiler 0.9.27’s implementation of _Alignas on glibc platforms. 2021-03-03 Bruno Haible asyncsafe-spin, simple-atomic: Add support for tcc/x86. * lib/asyncsafe-spin.c (memory_barrier): With tcc/x86, don't use the 'mfence' instruction. * lib/simple-atomic.c (memory_barrier): Likewise. asyncsafe-spin, simple-atomic: Add support for tcc. * lib/asyncsafe-spin.c (memory_barrier, atomic_compare_and_swap): On i386 and x86_64, treat tcc like older GCC or clang. * lib/simple-atomic.c (memory_barrier, atomic_compare_and_swap, atomic_compare_and_swap_ptr): Likewise. 2021-03-02 Bruno Haible stddef: Work around an interoperability problem of tcc with glibc. Reported by Luca Saiu in . * lib/stddef.in.h [__TINYC__]: In case of the special invocation convention, undefine the macros that TinyCC's should undefine but doesn't. * doc/posix-headers/stddef.texi: Mention the TinyCC bug. 2021-03-02 Paul Eggert mbrtowc: port to AIX 7.1 with xlc 12.1 Fix a problem with locks when building GNU Tar (Savannah commit 55f2a0772e08b9febac3ac0de5cb048d4c60d2f5) on AIX 7.1 with IBM XL C/C++ V12.1 using ‘./configure CC=xlc’. The link fails due to missing definitions of pthread_mutex_lock and pthread_mutex_unlock. GNU Tar uses unlocked-io and so should not need to worry about multithreading or locks. * lib/mbtowc-lock.h (mbtowc_with_lock) [USE_UNLOCKED_IO]: Don’t bother with locks, since this app is single-threaded. There may be similar linking problems with lib/nl_langinfo.c and lib/setlocale_null.c but my GNU Tar build didn’t run into them, so I left them alone for now. 2021-03-01 Paul Eggert unlocked-io: do not redefine getc_unlocked etc. I ran into this problem on AIX 7.1 with GNU Tar, which enables visibility of getc_unlocked etc. after testing whether they’re declared, causing argp-namefrob.h and unlocked-io.h to redefine the macros. * lib/argp-namefrob.h, lib/unlocked-io.h: (clearerr_unlocked, feof_unlocked ferror_unlocked) (fflush_unlocked, fgets_unlocked, fputc_unlocked, fputs_unlocked) (fread_unlocked, fwrite_unlocked, getc_unlocked, getchar_unlocked) (putc_unlocked, putchar_unlocked): Do not define if already defined. parse-datetime2: new module This splits the old parse-datetime into two parts; the first is parse-datetime2 which supports all the new bells and whistles, the second is parse-datetime, which reverts to its original intent. This avoids some bogus diagnostics when build GNU Tar with gcc -flto -fanalyze and with --enable-gcc-warnings. And it slims down the executable a bit. * NEWS: Mention this. * lib/parse-datetime.y (parser_control) [!GNULIB_PARSE_DATETIME2]: Omit parse_datetime_debug member. (debugging): New function. Use it everywhere the old code would load parse_datetime_debug. (parse_datetime_body): New static function, with the body of the old parse_datetime2. Set pc.parse_datetime_debug only if GNULIB_PARSE_DATETIME2. (parse_datetime2, parse_datetime): Use this new function. (parse_datetime2) [!GNULIB_PARSE_DATETIME2]: Remove. * modules/parse-datetime2: New file. 2021-02-27 Bruno Haible string-buffer: Fixes. * modules/string-buffer (License): Change to LGPL. * tests/test-string-buffer.c (main): Add another sb_appendf call, that is more likely to fail. 2021-02-25 Bernhard Voelker gitlog-to-changelog: output SHA in "empty commit message" warning * build-aux/gitlog-to-changelog: Add $sha to above warning diagnostic. 2021-02-24 Paul Eggert glob: include libc-config.h in a more-standard way Inspired by Tom Tromey’s report for RHEL 6 in: https://lists.gnu.org/r/bug-gnulib/2021-02/msg00088.html * lib/glob.c [!_LIBC]: Include libc-config.h, not just config.h * lib/glob.in.h: Include libc-config.h only if needed. 2021-02-21 Bruno Haible string-buffer: Add tests. * tests/test-string-buffer.c: New file. * modules/string-buffer-tests: New file. string-buffer: New module. * lib/string-buffer.h: New file. * lib/string-buffer.c: New file. * modules/string-buffer: New file. * doc/posix-functions/open_memstream.texi: Mention the new module. 2021-02-21 Bruno Haible scratch_buffer: Document the exported API. * lib/scratch_buffer.h: Add comments, taken from lib/malloc/scratch_buffer.h. 2021-02-21 Bruno Haible DEPENDENCIES: Update. * DEPENDENCIES: Require GCC >= 3.1. Tell where to find working GNU m4 tarballs. Mention awk. Point to pre-built packages for gettext, bison, gperf, texinfo. 2021-02-20 Bruno Haible parse-datetime: Fix comment. * modules/parse-datetime (Makefile.am): Fix comment. 2021-02-16 Bruno Haible passfd: Fix test failure on FreeBSD >= 12 and NetBSD in 64-bit mode. * lib/passfd.c (recvfd): Use the CMSG_SPACE macro to compute the value for msg_controllen. 2021-02-16 Paul Eggert Port better to macOS Mojave Problem reported by Tom Shields in: https://lists.gnu.org/r/bug-gnulib/2021-02/msg00064.html * config/srclist.txt: Comment out dynarray_finalize.c. * lib/dynarray.h (__libc_dynarray_at_failure): Don’t include libc-config.h here, as that’s the includer’s responsibility. * lib/malloc/dynarray_at_failure.c: * lib/malloc/dynarray_emplace_enlarge.c: * lib/malloc/dynarray_finalize.c: * lib/malloc/dynarray_resize.c: * lib/malloc/dynarray_resize_clear.c: If _LIBC is not defined, include libc-config.h. 2021-02-15 Bruno Haible linked-list test: Add test for SIGNAL_SAFE_LIST. (It currently fails.) * tests/test-asyncsafe-linked_list.sh: New file. * tests/test-asyncsafe-linked_list.c: New file. * modules/linked-list-tests (Files): Add them. (Depends-on): Add thread, yield, nanosleep, sigaction, sigprocmask. (Makefile.am): Arrange to compile test-asyncsafe-linked_list.c and run test-asyncsafe-linked_list.sh. 2021-02-14 Bruno Haible simple-atomic: Add tests. * tests/test-simple-atomic.c: New file. * modules/simple-atomic-tests: New file. simple-atomic: New module. * lib/simple-atomic.h: New file. * lib/simple-atomic.c: New file, based on lib/asyncsafe-spin.c. * modules/simple-atomic: New file. 2021-02-14 Bruno Haible Fix distinction of 32-bit/64-bit mode with xlc 13.1.3 on AIX. * m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI, gl_HOST_CPU_C_ABI_32BIT): Test __LP64__ instead of _ARCH_PPC64. * m4/lib-ld.m4 (AC_LIB_PROG_LD): Likewise. * lib/stddef.in.h: Likewise. 2021-02-13 Ozkan Sezer lib-symbol-visibility: Make it work with -Wmissing-prototypes. * m4/visibility.m4 (gl_VISIBILITY): Avoid error from simultaneous use of -Wmissing-prototypes and -Werror. 2021-02-08 Bruno Haible stddef: Fix test-stddef compilation error on MidnightBSD/x86. * lib/stddef.in.h (_GL_STDDEF_ALIGNAS, rpl_max_align_t, max_align_t): Don't ignore HAVE_MAX_ALIGN_T if the compiler is clang. 2021-02-08 Bruno Haible Document non-standard prototypes on MidnightBSD. * doc/posix-functions/initstate.texi: Mention different prototype on MidnightBSD 2.0. * doc/posix-functions/srandom.texi: Likewise. * doc/posix-functions/getlogin_r.texi: Likewise. * doc/glibc-functions/sethostname.texi: Likewise. 2021-02-08 Bruno Haible posixtm tests: Fix warnings seen on MidnightBSD/x86. * tests/test-posixtm.c (main): Convert two 'time_t' values to 'long' for printing. 2021-02-07 Bruno Haible Add cross-compilation guesses for MidnightBSD. * m4/malloc.m4 (_AC_FUNC_MALLOC_IF): When cross-compiling, use the result from native compilation. * m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Likewise. * m4/mbrtoc32.m4 (gl_MBRTOC32_SANITYCHECK): Likewise. * m4/mprotect.m4 (gl_FUNC_MPROTECT_WORKS): Likewise. * m4/posix_spawn.m4 (gl_POSIX_SPAWN_SECURE): Likewise. * m4/printf.m4 (gl_PRINTF_SIZES_C99, gl_PRINTF_INFINITE, gl_PRINTF_INFINITE_LONG_DOUBLE, gl_PRINTF_DIRECTIVE_F, gl_SNPRINTF_TRUNCATION_C99, gl_SNPRINTF_RETVAL_C99, gl_SNPRINTF_DIRECTIVE_N, gl_VSNPRINTF_ZEROSIZE_C99): Likewise. * m4/strfmon_l.m4 (gl_FUNC_STRFMON_L): Likewise. * m4/setlocale_null.m4 (gl_FUNC_SETLOCALE_NULL): Use predetermined result on MidnightBSD. 2021-02-07 Bruno Haible threadlib: Add support for MidnightBSD. * m4/threadlib.m4 (gl_WEAK_SYMBOLS, gl_THREADLIB_BODY): On MidnightBSD, use the same test as on FreeBSD. 2021-02-07 Bruno Haible host-os: Add support for MidnightBSD. * m4/host-os.m4 (gl_HOST_OS): On MidnightBSD, set HOST_OPERATING_SYSTEM to "MidnightBSD", not "Midnightbsd". 2021-02-07 Bruno Haible c-stack: Adjust for MidnightBSD. * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): On MidnightBSD, set FAULT_YIELDS_SIGBUS. 2021-02-07 Bruno Haible relocatable-prog: Add support for MidnightBSD. * m4/relocatable.m4 (gl_RELOCATABLE_BODY): Use the ELF $ORIGIN trick also on MidnightBSD >= 1.1. * build-aux/config.libpath: Treat MidnightBSD like FreeBSD. * build-aux/reloc-ldflags: Likewise. 2021-02-07 Bruno Haible havelib: Add support for MidnightBSD. * build-aux/config.rpath: Treat MidnightBSD like FreeBSD >= 4. 2021-02-07 Bruno Haible wcwidth: Document MidnightBSD bug. * doc/posix-functions/wcwidth.texi: Mention MidnightBSD as an affected platform. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Update comments. 2021-02-07 Bruno Haible pthread_sigmask: Document MidnightBSD bug. * doc/posix-functions/pthread_sigmask.texi: Mention MidnightBSD as an affected platform. * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Update cross-compilation guess accordingly. 2021-02-07 Bruno Haible immutable: Avoid test failures on MidnightBSD. * tests/test-immutable.c (install_segv_handler): On FreeBSD, install the handler also for SIGBUS. 2021-02-07 Bruno Haible c32is*: Avoid test failures on MidnightBSD. * tests/test-c32isalnum.c (main): On FreeBSD, disable tests that fail on MidnightBSD 1.1. * tests/test-c32isalpha.c (main): Likewise. * tests/test-c32isblank.c (main): Likewise. * tests/test-c32islower.c (main): Likewise. * tests/test-c32isupper.c (main): Likewise. 2021-02-05 Paul Eggert regex: fix comment location * lib/regexec.c (update_regs): Move comment. regex-tests: add bug 11053 test * tests/test-regex.c (main): New test case for glibc bug 11053. regex: debug check for set member duplicates * lib/regex_internal.c (re_node_set_insert): Add a DEBUG_ASSERT that would have caught some recently-fixed performance bugs that caused sets to contain duplicate members. regex: fix longstanding backref match bug This fixes a longstanding glibc bug concerning backreferences (2009-12-04). * lib/regexec.c (proceed_next_node, push_fail_stack) (pop_fail_stack): Push and pop the previous registers as well as the current ones. All callers changed. (set_regs): Also pop if CUR_NODE has already been checked, so that it does not get added as a duplicate set entry. (update_regs): Fix comment location. * tests/test-regex.c (tests): New constant. (bug_regex11): New test function. (main): Bump alarm value. Call new test function. regex: avoid duplicate in espilon closure * lib/regcomp.c (calc_eclosure_iter): Insert NODE into epsilon closure first rather than last. Otherwise, the epsilon closure might contain a duplicate of NODE. regex-tests: fix typo * tests/test-regex.c (main): Fix typo that would have caused an old test case to report incorrect values on failure. regex: make it easier to merge into glibc * lib/regex_internal.h [_LIBC]: Do not include Gnulib’s dynarray.h. regex: minor refactoring * lib/regexec.c (proceed_next_node): Use more-local decls. regex: avoid undefined behavior * lib/regexec.c (pop_fail_stack): If the stack is empty, return -1 instead of indulging in undefined behavior. This simplifies callers, and avoids undefined behavior in some cases (see glibc bug 11053, though this change does not fix that overall bug). regex: improve comments * lib/regexec.c: Add and correct comments about return values. 2021-01-31 Bruno Haible relocatable-prog-wrapper: Tweak today's patch. * build-aux/install-reloc (func_create_wrapper): Clean up free.o. 2021-01-31 Bruno Haible fmaf: Document QEMU bug. * doc/posix-functions/fmaf.texi: Add note about QEMU bug. 2021-01-31 Bruno Haible remainderl: Work around musl libc bug. * doc/posix-functions/remainderl.texi: Document musl libc bug. * m4/remainderl.m4 (gl_FUNC_REMAINDERL_WORKS): Add more tests. Update cross compilation guess. 2021-01-31 Bruno Haible log2l: Work around musl libc bugs. * doc/posix-functions/log2l.texi: Document musl libc bugs. * m4/log2l.m4 (gl_FUNC_LOG2L_WORKS): Add more tests. Update cross compilation guess. 2021-01-31 Bruno Haible log1pl: Work around musl libc bug. * doc/posix-functions/log1pl.texi: Document musl libc bug. * m4/log1pl.m4 (gl_FUNC_LOG1PL_WORKS): New macro. (gl_FUNC_LOG1PL): Invoke it. 2021-01-31 Bruno Haible log10l: Document musl libc bug. * doc/posix-functions/log10l.texi: Document musl libc bug. * m4/log10l.m4 (gl_FUNC_LOG10L_WORKS): Update comment and cross compilation guess. 2021-01-31 Bruno Haible logl: Document musl libc bug. * doc/posix-functions/logl.texi: Document musl libc bug. * m4/logl.m4 (gl_FUNC_LOGL_WORKS): Update comment and cross compilation guess. 2021-01-31 Bruno Haible expm1l: Document musl libc bug. * doc/posix-functions/expm1l.texi: Document musl libc bug. * m4/expm1l.m4 (gl_FUNC_EXPM1L): Update comment and cross compilation guess. 2021-01-31 Bruno Haible expl: Document musl libc bug. * doc/posix-functions/expl.texi: Document musl libc bug. * m4/expl.m4 (gl_FUNC_EXPL): Update comment and cross compilation guess. 2021-01-31 Bruno Haible relocatable-prog-wrapper: Update after recent changes. * lib/relocwrapper.c: Update comments. * modules/relocatable-prog-wrapper (Files): Add lib/scratch_buffer.h, lib/malloc/scratch_buffer*, lib/malloc.c, lib/realloc.c, lib/free.c, lib/mempcpy.c, lib/rawmemchr.c, m4/lstat.m4. Remove lib/lstat.c. (Depends-on): Add c99, eloop-threshold, fcntl-h, idx, intprops, libc-config, stddef, sys_stat. Remove alloca-opt. (configure.ac): Invoke gl_FUNC_MALLOC_POSIX, gl_FUNC_REALLOC_POSIX, gl_FUNC_FREE, gl_FUNC_MEMPCPY, gl_FUNC_RAWMEMCHR. * lib/canonicalize-lgpl.c (memmove): Undefine in the relocwrapper. * build-aux/install-reloc (func_create_wrapper): Compile also malloc/scratch_buffer_*.c, malloc.c, realloc.c, free.c, mempcpy.c, rawmemchr.c. Don't compile lstat.c. Make it possible to compile rawmemchr.c separately, unconditionally. * lib/rawmemchr.c: Don't define rawmemchr if not needed. Make it possible to compile mempcpy.c separately, unconditionally. * lib/mempcpy.c: Don't define mempcpy if not needed. Make it possible to compile free.c separately, unconditionally. * m4/free.m4 (gl_FUNC_FREE): Define HAVE_FREE_POSIX. * lib/free.c: Don't define rpl_free if not needed. Make it possible to compile realloc.c separately, unconditionally. * modules/realloc-posix (configure.ac): Invoke gl_MODULE_INDICATOR. * lib/realloc.c: Don't define rpl_realloc if not needed. Make it possible to compile malloc.c separately, unconditionally. * modules/malloc-posix (configure.ac): Invoke gl_MODULE_INDICATOR. * lib/malloc.c: Don't define rpl_malloc if not needed. 2021-01-31 Bruno Haible canonicalize-lgpl: Simplify. * lib/canonicalize-lgpl.c (_GL_USE_STDLIB_ALLOC): Remove macro. 2021-01-30 Bruno Haible canonicalize, canonicalize-lgpl: Straighten dependencies. * modules/canonicalize-lgpl (Depends-on): Remove free-posix, malloc-posix. Add unistd. * modules/canonicalize (Depends-on): Remove free-posix, xalloc. Add unistd. 2021-01-30 Bruno Haible scratch_buffer: Fix dependencies. * modules/scratch_buffer (Depends-on): Add malloc-posix, realloc-posix, free-posix. 2021-01-26 Bruno Haible doc: More precise wording. Reported by Reuben Thomas in . * doc/relocatable.texi (Enabling Relocatability): Talk about package management systems in general. doc: Remove obsolete text. Suggested by Reuben Thomas in . * doc/relocatable.texi (Enabling Relocatability): Stop mentioning an issue of libtool 1.5.x. 2021-01-26 Simon Josefsson maintainer-makefile: Mimic bootstrap's gnulib-srcdir guessing. * top/maint.mk (gnulib_dir): If $(srcdir)/gnulib doesn't exist, fall back to $GNULIB_SRCDIR. 2021-01-25 Bruno Haible posix_spawn_file_actions_* tests: Fix module dependencies. * modules/posix_spawn_file_actions_addclose-tests (Depends-on): Add posix_spawn_file_actions_destroy. * modules/posix_spawn_file_actions_addopen-tests (Depends-on): Likewise. * modules/posix_spawn_file_actions_adddup2-tests (Depends-on): Likewise. * modules/posix_spawn_file_actions_addchdir-tests (Depends-on): Likewise. * modules/posix_spawn_file_actions_addfchdir-tests (Depends-on): Likewise. 2021-01-25 Bruno Haible posix_spawn_file_actions_addclose: Relax configure test. * m4/posix_spawn.m4 (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE): Test a negative file descriptor, not an out-of-range file descriptor. * tests/test-posix_spawn_file_actions_addclose.c (main): Add comment. * doc/posix-functions/posix_spawn_file_actions_addclose.texi: Update. 2021-01-25 Simon Josefsson getaddrinfo: Doc fix. * doc/posix-functions/getaddrinfo.texi (getaddrinfo): Gnulib does not support IDN. 2021-01-24 Bruno Haible getcwd: Fix cross-compilation guess for musl libc. * m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Guess no also on musl libc. * doc/posix-functions/getcwd.texi: Update platform info. 2021-01-24 Bruno Haible expm1l: Fix configure test result with GCC 10 on powerpc64le. * m4/expm1l.m4 (gl_FUNC_EXPM1L): Change test to avoid GCC optimization. 2021-01-23 Bruno Haible utime: Fix configure test (regression 2020-12-04). Reported by Ryan Schmidt via Tim Rühsen in . * m4/utime.m4 (gl_FUNC_UTIME): In the test program, include , not . 2021-01-23 Paul Eggert libc-config: port to Xcode 7 Problem reported by Mattias Engdegård in: https://lists.gnu.org/r/emacs-devel/2021-01/msg01089.html * lib/cdefs.h (__nonnull): If already defined but glibc is not in use, override the definition with Gnulib’s _GL_ATTRIBUTE_NONNULL. This is needed for Xcode 7, which has a ‘#define __nonnull _Nonnull’ builtin for backwards-compatibility with an older Xcode syntax that GNUish code never uses. 2021-01-23 Bastien Roucariès explicit_bzero: Add fallback for other compilers. * lib/explicit_bzero.c (explicit_bzero): For other compilers, invoke memset through a volatile function pointer. explicit_bzero: Add support for clang. * lib/explicit_bzero.c (explicit_bzero): Add a compiler barrier for clang. 2021-01-21 Paul Eggert Port FALLTHROUGH to clang 3.4 and earlier Problem reported by Akim Demaille in: https://lists.gnu.org/r/bug-gnulib/2021-01/msg00241.html * lib/cdefs.h (__glibc_has_attribute): * m4/gnulib-common.m4 (gl_COMMON_BODY): Do not trust __has_attribute in clang 3.4 and earlier, as says that __has_attribute is unreliable in these old versions. 2021-01-20 Bruno Haible gc-random: Fix link error in tests. * modules/crypto/gc-random (Link): New section. * modules/crypto/gc-tests (Makefile.am): Link test-gc with $(LIB_GETRANDOM). 2021-01-20 Simon Josefsson gc-random: Replace implementation with call to getrandom. * lib/gc-gnulib.c [GNULIB_GC_RANDOM]: Replace #include's with those needed for getrandom. (gc_init): Remove old randomness code. (gc_done): Likewise. (randomize): Rewrite using getrandom, inspired by getentropy. * m4/gc-random.m4: Remove file. * modules/crypto/gc-random: Drop gc-random.m4, gl_GC_RANDOM, and LIB_GC_RANDOM. Add conditional dependency on getrandom. * modules/crypto/gc-tests (test_gc_LDADD): Drop LIB_GC_RANDOM. 2021-01-20 Bruno Haible exec*e tests: Avoid test failures on Cygwin. * tests/test-execle-main.c (main): On Cygwin, add /bin to the new PATH. * tests/test-execve-main.c (main): Likewise. * tests/test-execvpe-main.c (main): Likewise. 2021-01-20 Bruno Haible canonicalize-lgpl: Work around a Cygwin bug. * m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Test for lstat. Add a test case that involves a symbolic link to an existing file. * doc/posix-functions/realpath.texi: Mention the Cygwin bug. 2021-01-20 Bruno Haible doc: Document ptsname_r bug on Cygwin. * doc/glibc-functions/ptsname_r.texi: Mention Cygwin bug. 2021-01-20 Bruno Haible sethostname tests: Avoid test failure on Cygwin. * tests/test-sethostname2.c (main): Treat errno EACCESS like EPERM. 2021-01-19 Paul Eggert fnmatch, regex, fts: FALLTHROUGH consistency Be more consistent about how FALLTHROUGH is defined. For Gnulib, use attribute.h. For glibc, use __GNUC__ >= 7. Problem for glibc reported by Vaseeharan Vinayagamoorthy in: https://sourceware.org/pipermail/libc-alpha/2021-January/121778.html * lib/fnmatch.c (FALLTHROUGH) [_LIBC]: * lib/regex_internal.h (FALLTHROUGH) [_LIBC]: Don’t worry about Clang, as it’s not needed and provokes GCC. * lib/fts.c (FALLTHROUGH) [!_LIBC]: * lib/regex_internal.h (FALLTHROUGH) [!_LIBC]: Rely on attribute.h for FALLTHROUGH * modules/regex: Depend on attribute module. 2021-01-19 KO Myung-Hun spawn-pipe: Fix SIGSEGV on OS/2 kLIBC. * lib/spawn-pipe.c [OS/2 kLIBC]: Check directory correctly if it means a current directory. 2021-01-19 KO Myung-Hun dirent: Fix compilation error in C++ mode on OS/2 kLIBC. * lib/dirent.in.h (dirfd): Redefine dirfd macro as a rpl function always. 2021-01-19 KO Myung-Hun zerosize-ptr: Fix compilation on OS/2 kLIBC. * tests/zerosize-ptr.h [OS/2 kLIBC]: Don't use mmap(). 2021-01-19 KO Myung-Hun stddef: Fix compilation for max_align_t on OS/2 kLIBC. * lib/stddef.in.h [OS/2 kLIBC]: Include in C++ mode. 2021-01-19 KO Myung-Hun yield: Implement for OS/2 kLIBC. * modules/yield (Depends-on): Add sched_yield. sched_yield: Implement for OS/2 kLIBC. * lib/sched_yield.c (sched_yield) [OS/2 kLIBC]: New implementation. 2021-01-19 KO Myung-Hun spawn: Use special invocation for on OS/2 kLIBC. * lib/spawn.in.h: Use special invocation to include properly on OS/2 kLIBC. 2021-01-18 Bruno Haible noreturn tests: Avoid test failure on Solaris 10/x86 with cc. * tests/test-noreturn.c (main): Return 0. 2021-01-18 Bruno Haible uninorm tests: Fix compilation error on Cygwin. * tests/uninorm/test-nfc.c (n): Don't define when using a preinstalled libunistring on Windows. * tests/uninorm/test-nfd.c (n): Likewise. * tests/uninorm/test-nfkc.c (n): Likewise. * tests/uninorm/test-nfkd.c (n): Likewise. 2021-01-17 Bruno Haible immutable: Implement on native Windows. * lib/immutable.h (IMMUTABLE_EFFECTIVE): Set to 1 on native Windows. * lib/immutable.c: Include . (CreateFileMapping): New macro. (init_pagesize, init_mmap_file, alloc_pages, free_pages): Add implementation for native Windows. 2021-01-17 Bruno Haible canonicalize-lgpl tests: Fix link error. * modules/canonicalize-lgpl-tests (Makefile.am): Link test-canonicalize-lgpl with $(LIBINTL). 2021-01-17 Bruno Haible canonicalize-lgpl: Work around // handling in realpath() of musl 1.2.2. Reported by Natanael Copa in . * m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Add a test whether // is the same as /, on Linux only. * lib/canonicalize-lgpl.c: Correct indentation of preprocessor directives. * doc/posix-functions/realpath.texi: Mention the musl 1.2.2 bug. 2021-01-17 Bruno Haible canonicalize[-lgpl] tests: Add more tests. * tests/test-canonicalize.c (main): Add detailed tests for // handling. * tests/test-canonicalize-lgpl.c (main): Likewise. 2021-01-17 Bruno Haible argp tests: Avoid test failures on Alpine Linux. * tests/test-argp-2.sh: Use the test framework (init.sh). Use the 'compare' function instead of 'diff -c'. * tests/test-argp-version-etc-1.sh: Likewise. 2021-01-17 Bruno Haible get-rusage-data tests: Avoid test failure on musl libc. * modules/get-rusage-data-tests (Files): Add m4/musl.m4. (configure.ac): Invoke gl_MUSL_LIBC. * tests/test-get-rusage-data.c (main): Treat musl libc like glibc. 2021-01-17 Bruno Haible immutable, get-rusage-data: Fix autoconf warning. * m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Define through AC_DEFUN_ONCE. 2021-01-16 Bruno Haible vma-iter: Port to 64-bit Haiku. * lib/vma-iter.c (vma_iterate): Adapt to changed signature of get_next_area_info. 2021-01-15 Bruno Haible doc: Update doc about realpath. * doc/posix-functions/realpath.texi: Update info about macOS. 2021-01-13 Paul Eggert verify: simplify static_assert configuration * lib/verify.h (_GL_HAVE__STATIC_ASSERT, _GL_HAVE__STATIC_ASSERT1): Do not define for C++. This should be good enough nowadays, since recent-enough C++ compilers have static_assert. (_GL_HAVE_STATIC_ASSERT_CXX11, _GL_HAVE_STATIC_ASSERT_CXX17): Remove. All uses replaced by simply checking __cpp_static_assert. 2021-01-13 Simon Josefsson lib-msvc-compat: Update libtool usage recommendation. * doc/ld-output-def.texi (Visual Studio Compatibility): Install .def files into libdir, not bindir. Have libfoo-*.def file depend on libfoo.la to fix parallell builds. 2021-01-12 Bruno Haible verify: Use C++11 static_assert when available. Reported by Alexandre Duret-Lutz in . * lib/verify.h (_GL_HAVE_STATIC_ASSERT_CXX11): New macro. (_GL_HAVE_STATIC_ASSERT_CXX17): Renamed from _GL_HAVE_STATIC_ASSERT1. (_GL_VERIFY): Use static_assert when available with C++11 syntax. 2021-01-11 Paul Eggert tempname: consume less entropy Derived from a glibc patch proposed by Adhemerval Zanella in: https://sourceware.org/pipermail/libc-alpha/2021-January/121302.html * lib/tempname.c: Include stdbool.h. (random_bits): New arg use_getrandom. (try_tempname_len): Skip getrandom on the first try, unless __GT_NOCREATE. * modules/tempname (Depends-on): Add stdbool. 2021-01-10 Bruno Haible lchmod-tests: Fix link error. * modules/lchmod-tests (Makefile.am): Don't assume that LIBINTL is set. 2021-01-10 Simon Josefsson Correct preceeding change. * top/gitsub.sh: Update link. 2021-01-09 Bruno Haible immutable: Add tests. * tests/test-immutable.sh: New file. * tests/test-immutable.c: New file. * modules/immutable-tests: New file. immutable: New module. * lib/immutable.h: New file. * lib/immutable.c: New file. * m4/immutable.m4: New file. * m4/mprotect.m4: New file, based on libffcall/m4/codeexec.m4. * modules/immutable: New file. 2021-01-10 Simon Josefsson Use https:// instead of git://. * build-aux/bootstrap (default_gnulib_url): Ditto. * config/srclistvars.sh: Ditto. * doc/gnulib-readme.texi (Git Checkout): Ditto. * doc/gnulib-tool.texi (VCS Issues): Ditto. * top/gitsub.sh: Update link. 2021-01-09 Paul Eggert snippet/_Noreturn: port to pedantic clang Problem reported by Joe Nelson in: https://lists.gnu.org/r/bug-gnulib/2021-01/msg00152.html * doc/noreturn.texi: Improve. * lib/_Noreturn.h (_Noreturn): * m4/gnulib-common.m4 (gl_COMMON_BODY): Do not assume _Noreturn works as-is when __STRICT_ANSI__ is defined, unless __STDC_VERSION__ indicates C11 or later. * lib/_Noreturn.h (_Noreturn): Fall back on __attribute__ ((__noreturn__)) if Clang; this merges the 2020-08-10T23:53:13Zbruno@clisp.org patch to m4/gnulib-common.m4. 2021-01-09 Darshit Shah Allow setting CVS username for gnu-web-doc-update. * build-aux/gnu-web-doc-update: Introduce new option --user to set the name of the user on Savannah, when it doesn't match $USER. 2021-01-09 Bruno Haible exp* tests: Work around clang 6.0.1 optimization bugs on x86. * tests/test-exp-ieee.h (test_function): Mark some variable as 'volatile'. * tests/test-exp2-ieee.h (test_function): Likewise. 2021-01-09 Bruno Haible fchmodat: Work around trailing slash bug in fchmodat() on AIX 7.2. * m4/fchmodat.m4 (gl_FUNC_FCHMODAT): In the test whether fchmodat works, also test for the trailing slashes behaviour. Define HAVE_NEARLY_WORKING_FCHMODAT if this is the only missing feature. * lib/fchmodat.c (fchmodat): If HAVE_NEARLY_WORKING_FCHMODAT, handle trailing slashes here. * modules/fchmodat (Depends-on): Sort by condition, not alphabetically. * doc/posix-functions/fchmodat.texi: Document the AIX bug. 2021-01-09 Bruno Haible fchmod-tests, fchmodat tests, lchmod tests: Add more tests. * tests/test-fchmod.c: Include . (BASE): New macro. (main): Add more tests. * tests/test-fchmodat.c (main): Add more tests. * tests/test-lchmod.c (main): Likewise. 2021-01-09 Bruno Haible utimensat: Fix typo in last commit. * m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Fix typo in macro explanation. 2021-01-09 Bruno Haible truncate: Document last workaround. * doc/posix-functions/truncate.texi: Document the AIX bug. 2021-01-08 Paul Eggert dynarray: work even if ‘free’ is replaced Problem reported by Darshit Shah in: https://lists.gnu.org/r/bug-gnulib/2021-01/msg00140.html * lib/malloc/dynarray-skeleton.c (DYNARRAY_FREE): New macro. Use it everywhere instead of DYNARRAY_NAME (free). tempname: don’t block for minutes Derived from a patch proposed by Adhemerval Zanella in: https://sourceware.org/pipermail/libc-alpha/2021-January/121302.html * lib/tempname.c (random_bits): Use GRND_NONBLOCK. tempname: sync with proposed glibc patch This is from Adhemerval Zanella in: https://sourceware.org/pipermail/libc-alpha/2021-January/121301.html * lib/tempname.c (__lxstat64): Remove. (__lstat64, __stat64): New replacement macros. All uses changed. regex: stop using alloca * lib/regex_internal.h: Do not include or define __libc_use_alloca or alloca. Patch written by Adhemerval Zanella: https://sourceware.org/pipermail/libc-alpha/2021-January/121374.html * modules/regex (Depends-on): Remove alloca-opt. regexec: remove alloca usage in build_trtable Prompted by this different change proposed by Adhemerval Zanella: https://sourceware.org/pipermail/libc-alpha/2021-January/121373.html * lib/regexec.c (build_trtable): Prevent inlining, so that it doesn’t bloat the caller’s stack. Use auto variables instead of alloca/malloc. After these changes, build_trtable’s total stack allocation is only 20 KiB on a 64-bit machine, and this is less than glibc’s 64 KiB cutoff so there’s little point to using alloca to shrink it. Although Gnulib traditionally has used a 4 KiB cutoff, going to 20 KiB here should not be a significant problem in practice; Gnulib-using packages concerned about overflow of tiny stacks can compile with something like gcc -fstack-clash-protection. scratch_buffer: add scratch_buffer_dupfree macro * lib/scratch_buffer.h (__libc_scratch_buffer_dupfree): New macro, needed to support recent changes in this module. regex: remove alloca usage on regex set_regs Derived from this patch by Adhemerval Zanella: https://sourceware.org/pipermail/libc-alpha/2021-January/121372.html * lib/regex_internal.h: Include dynarray.h, for Gnulib. * lib/regexec.c (DYNARRAY_STRUCT, DYNARRAY_ELEMENT) (DYNARRAY_PREFIX): New macros. Include malloc/dynarray-skeleton.c. (set_regs): Use dynarray rather than alloca. * modules/regex (Depends-on): Add dynarray. dynarray: new module * config/srclist.txt: Mention the new files. * lib/cdefs.h (__attribute_maybe_unused__): New macro, like Gnulib’s _GL_ATTRIBUTE_MAYBE_UNUSED but with glibc naming conventions. * lib/libc-config.h: Use it instead of __glibc_likely. * lib/dynarray.h, modules/dynarray: New files. * lib/malloc/dynarray-skeleton.c, lib/malloc/dynarray.h: * lib/malloc/dynarray_at_failure.c: * lib/malloc/dynarray_emplace_enlarge.c: * lib/malloc/dynarray_finalize.c, lib/malloc/dynarray_resize.c: * lib/malloc/dynarray_resize_clear.c, modules/dynarray: New files, from glibc with the following changes needed for portability to compilers that are not recent-enough GCC. * lib/malloc/dynarray_at_failure.c: Include stdlib.h, for abort. (__libc_dynarray_at_failure) [!_LIBC]: Simply abort. * lib/malloc/dynarray_emplace_enlarge.c: * lib/malloc/dynarray_resize.c: Include intprops.h, and use INT_MULTIPLY_WRAPV instead of __builtin_mul_overflow. * lib/malloc/dynarray.h (__libc_dynarray_at_failure): Use _Noreturn instead of __attribute__ ((noreturn)). * lib/malloc/dynarray_resize_clear.c: Do not include stdlib.h; it’s not needed. (__libc_dynarray_resize_clear): Do not do arithmetic on void *. * lib/malloc/dynarray-skeleton.c (struct DYNARRAY_STRUCT): Do not use anonymous unions, as they are not in C99. All uses changed. Use __nonnull (X) instead of __attribute__ ((nonnull X)), and __attribute_maybe_unused__ instead of __attribute__ ((unused)). 2021-01-06 Simon Josefsson bootstrap: Fix parsing of package name. * build-aux/bootstrap (package): Attempt to use autoconf --trace to parse AC_INIT before falling back to sed expression. 2021-01-07 Bruno Haible localename: Fix link error with duplocale on AIX 7.2 (regr. 2019-12-18). * m4/locale_h.m4 (gl_LOCALE_H_DEFAULTS): Initialize LOCALENAME_ENHANCE_LOCALE_FUNCS. * m4/intl-thread-locale.m4 (gt_FUNC_USELOCALE): Set gt_working_uselocale. (gt_INTL_THREAD_LOCALE_NAME): Set gt_fake_locales, gt_good_uselocale, gt_localename_enhances_locale_funcs, LOCALENAME_ENHANCE_LOCALE_FUNCS. Define HAVE_GOOD_USELOCALE, LOCALENAME_ENHANCE_LOCALE_FUNCS. * m4/localename.m4 (gl_LOCALENAME): Test gt_localename_enhances_locale_funcs instead of gt_nameless_locales. * modules/locale (Makefile.am): Substitute LOCALENAME_ENHANCE_LOCALE_FUNCS. * lib/locale.in.h (newlocale, duplocale, freelocale): Don't override if module 'localename' is in use but LOCALENAME_ENHANCE_LOCALE_FUNCS is 0. * lib/localename.c (HAVE_GOOD_USELOCALE): Don't define here. (get_locale_t_name, newlocale, duplocale, freelocale): Define if LOCALENAME_ENHANCE_LOCALE_FUNCS. 2021-01-06 Bruno Haible logb: Fix test failure on glibc/powerpc. * doc/posix-functions/logb.texi: Update platform info. * m4/logb.m4 (gl_FUNC_LOGB_WORKS): Test against bug with negative subnormal numbers. 2021-01-06 Paul Eggert libc-config: simplify clang __has_* macros cdefs.h sometimes used names like __glibc_clang_has_attribute and sometimes __glibc_has_attribute. There is no need in glibc or Gnulib to distinguish clang from other compilers here, so be consistent and use the simpler names. * lib/cdefs.h (__glibc_has_builtin, __glibc_has_extension): Rename from __glibc_clang_has_builtin, __glibc_clang_has_extension. All uses changed. (__glibc_clang_has_attribute): Remove. All uses replaced by __glibc_has_attribute. * lib/libc-config.h [!__glibc_likely]: Undef them here too. This fixes a problem where __glibc_has_attribute was not undeffed. 2021-01-06 Bruno Haible flock: Update documentation. * doc/glibc-functions/flock.texi: Document what to expect on AIX and Solaris. 2021-01-06 Bruno Haible ilogbl: Fix compilation error with xlclang on AIX 7.2. * lib/math.in.h (ilogbl): Undefine macro before declaration. 2021-01-06 Bruno Haible ilogbl: Fix test failures on AIX 7.1 in 64-bit mode. * m4/ilogbl.m4 (gl_FUNC_ILOGBL_WORKS): Test also some denormalized argument. * doc/posix-functions/ilogbl.texi: Mention the AIX bug. 2021-01-06 Bruno Haible ilogb: Fix test failures on AIX 7.1 in 64-bit mode. * m4/ilogb.m4 (gl_FUNC_ILOGB_WORKS): Test also some denormalized argument. * doc/posix-functions/ilogb.texi: Mention the AIX bug. 2021-01-05 Bruno Haible fclose: Fix test failure on AIX 7.2. * m4/fclose.m4 (gl_FUNC_FCLOSE_STDIN): New macro. (gl_FUNC_FCLOSE): Invoke it. Set REPLACE_FCLOSE accordingly. * doc/posix-functions/fclose.texi: Update platform information. * doc/posix-functions/fflush.texi: Likewise. 2021-01-05 Bruno Haible pipe-filter-gi: Fix test failure on AIX 7.2. * lib/pipe-filter-aux.h (SSIZE_MAX) [AIX]: Set to 4096. 2021-01-05 Bruno Haible utimens, utimensat, fdutimensat: Avoid test failures on AIX 7.2. * lib/utimecmp.c (utimecmpat): On AIX, declare equality when the two times differ by less than 0.01 seconds. * tests/test-futimens.h (test_futimens): Pass UTIMECMP_TRUNCATE_SOURCE flag. 2021-01-05 Bruno Haible utimensat: Work around trailing slash bug in utimensat() on AIX 7.2. * m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Require AC_CANONICAL_HOST. Add a test for trailing slash handling. Improve cross-compilation guesses. Conditionally define HAVE_NEARLY_WORKING_UTIMENSAT. * lib/utimensat.c (rpl_utimensat): Add alternative implementation when HAVE_NEARLY_WORKING_UTIMENSAT is defined. * lib/utimens.c: Use the overridden utimensat when HAVE_NEARLY_WORKING_UTIMENSAT is defined. * doc/posix-functions/utimensat.texi: Mention the AIX bug. 2021-01-05 Bruno Haible ptsname_r, ptsname: Avoid test failures on AIX 7.2. * tests/test-ptsname_r.c (main): On AIX, set a 20-seconds timer. * tests/test-ptsname.c (main): Likewise. On AIX, open a pty through /dev/ptc and don't test the BSD ptys. 2021-01-05 Paul Eggert libc-config: merge from glibc Use a better way of keeping glibc and gnulib lib/cdefs.h mostly in sync, by using lib/cdefs.h only on platforms where does not work well enough for Gnulib. * lib/cdefs.h: Go back to using _SYS_CDEFS_H rather than _GL_DEFS_H as an include guard. (__THROW, __THROWNL, __NTH, __NTHNL): Define to noexcept for C++11 and later. (__glibc_objsize, __glibc_objsize0): New, for _FORTIFY_SOURCE=3. (__warndecl): Remove. (__attribute_copy__): New macro, for GCC 9 support. (__LDBL_REDIR, __LDBL_REDIR_DECL, __LDBL_REDIR1) (__LDBL_REDIR1_DECL, __LDBL_REDIR1_NTH, __REDIRECT_NTH_LDBL) (__REDIRECT_LDBL, __LDBL_REDIR_NTH): Redirections for IEEE long double on powerpc64le. (__LDBL_REDIR2_DECL): New macro. (__attr_access): New macro, for GCC 10 bounds checking. (__attribute_returns_twice__): New macro, for setjmp etc. * lib/libc-config.h: Include only if __glibc_likely is undefined. The following changes apply only if __glibc_likely is not defined. (__LDBL_REDIR2_DECL, __attr_access, __attribute_returns_twice__) (__glibc_clang_has_attribute, __glibc_clang_has_extension) (__glibc_objsize, __glibc_objsize0): Undef these new (or newer) macros. (__P, __PMT, __always_inline): Do not undef, since cdefs.h does that. (__glibc_likely): Do not undef, since this is inside ifndef __glibc_likely. (__warndecl): Do not undef; no longer defined. 2021-01-05 Jim Meyering maintainer-makefile: correct preceding change * top/maint.mk (syntax-check-rules): Use LC_ALL=C, not LANG=C. 2021-01-05 Paul Eggert maint: note syncs to glibc * config/srclist.txt: filename.h, idx.h, scratch_buffer.h and scratch_buffer_dupfree.c are now identical to glibc. Add commentary about some other syncs we’d like. * modules/filename, modules/idx (Maintainer): Add glibc. 2021-01-05 Bruno Haible truncate: Work around trailing slash bug in truncate() on AIX 7.2. * m4/truncate.m4 (gl_FUNC_TRUNCATE): Add a test whether truncate rejects trailing slashes. Set REPLACE_TRUNCATE and define TRUNCATE_TRAILING_SLASH_BUG if not. * lib/truncate.c (orig_truncate): New function. (truncate): Add alternative implementation when TRUNCATE_TRAILING_SLASH_BUG is defined. * modules/truncate (Depends-on): Add sys_stat, stat. 2021-01-05 Bruno Haible mkfifoat: Fix cross-compilation guess (regression from 2021-01-04). * m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Fix copy-and-paste mistake. 2021-01-05 Bruno Haible ffsll: Override completely broken implementation on AIX in 32-bit mode. * m4/ffsll.m4 (gl_FUNC_FFSLL): Test whether ffsll minimally works. If not, set REPLACE_FFSLL. * lib/string.in.h (ffsll): Consider REPLACE_FFSLL. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize REPLACE_FFSLL. * modules/string (Makefile.am): Substitute REPLACE_FFSLL. * modules/ffsll (Depends-on, configure.ac): Consider REPLACE_FFSLL. * doc/glibc-functions/ffsll.texi: Mention the AIX 7.2 bug. 2021-01-04 Bruno Haible symlinkat: Fix trailing slash handling. * lib/symlinkat.c (rpl_symlinkat): Don't follow symlinks during the trailing slash handling. * modules/symlinkat (Depends-on): Update conditions. 2021-01-04 Bruno Haible mkfifoat: Update module description. * modules/mkfifoat (Depends-on): Update conditions after last commits. 2021-01-04 Bruno Haible link: Improve trailing slash handling on native Windows. * lib/link.c (link): If stat() fails, provide a better errno. 2021-01-04 Bruno Haible mkfifoat: Work around trailing slash bug in mknodat() on AIX 7.2. * m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Set also REPLACE_MKNODAT. * lib/sys_stat.in.h (mknodat): Consider REPLACE_MKNODAT. * lib/mknodat.c: Add an overriding implementation of mknodat(). * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Initialize REPLACE_MKNODAT. * modules/sys_stat (Makefile.am): Substitute REPLACE_MKNODAT. * modules/mkfifoat (Depends-on, configure.ac): Consider REPLACE_MKNODAT. * doc/posix-functions/mknodat.texi: Mention the AIX bug. mkfifoat: Work around trailing slash bug in mkfifoat() on AIX 7.2. * m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Add a test whether mkfifoat rejects trailing slashes. Set REPLACE_MKFIFOAT if not. * lib/sys_stat.in.h (mkfifoat): Consider REPLACE_MKFIFOAT. * lib/mkfifoat.c: Add an overriding implementation of mkfifoat(). * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Initialize REPLACE_MKFIFOAT. * modules/sys_stat (Makefile.am): Substitute REPLACE_MKFIFOAT. * modules/mkfifoat (Depends-on): Add fstatat. (configure.ac): Consider REPLACE_MKFIFOAT. * doc/posix-functions/mkfifoat.texi: Mention the AIX bug. 2021-01-04 Bruno Haible libc-config: Avoid overriding the headers from an installed newer glibc. Reported by Paul E Murphy in . * lib/cdefs.h: Use a different include guard than glibc's . * lib/libc-config.h: Update accordingly. 2021-01-04 Simon Josefsson maintainer-makefile: Invoke syntax-checks regardless of locale. * top/maint.mk (syntax-check-rules): Invoke sed with LANG=C environment because [a-z] may not include 'w' in all locales. 2021-01-04 Bruno Haible nstrftime, time_rz: Avoid using an obsolete Autoconf macro. Reported by Mike Gran in . * lib/time-internal.h: Test HAVE_STRUCT_TM_TM_ZONE, not HAVE_TM_ZONE. * lib/time_rz.c: Likewise. * lib/nstrftime.c: Set and test HAVE_STRUCT_TM_TM_ZONE, not HAVE_TM_ZONE. * m4/nstrftime.m4 (gl_FUNC_GNU_STRFTIME): Update comments. 2021-01-04 Bruno Haible expm1f-ieee: Work around AIX 7.2 bug. * m4/expm1f.m4 (gl_FUNC_EXPM1F): Initialize gl_expm1f_required. If module 'expm1f-ieee' is in use, check whether expm1f works according to IEEE. * m4/expm1f-ieee.m4: New file. * modules/expm1f-ieee (Files): Add it. (Depends-on): Update conditions. (configure.ac): Invoke gl_FUNC_EXPM1F_IEEE. * doc/posix-functions/expm1f.texi: Mention the AIX bug. 2021-01-04 Bruno Haible ffsl, ffsll: Work around AIX 7.2 problem. * lib/string.in.h: On AIX, include for the declarations of ffsl and ffsll. * doc/glibc-functions/ffsl.texi: Document the AIX 7.2 problem. * doc/glibc-functions/ffsll.texi: Likewise. 2021-01-04 Bruno Haible ssfmalloc: Fix includes. * lib/ssfmalloc.h: Include , for ffs(). * tests/test-ssfmalloc.c: Include , for memset(). 2021-01-03 Bruno Haible quotearg tests: Avoid test failures on Solaris 11.3. * tests/test-quotearg.sh: Copy the fr/ directory using 'cp -R', not 'cp -a'. 2021-01-03 Bruno Haible tests: Fix link errors on Solaris, when libunistring-optional is in use. * modules/wcwidth (Link): New section. * modules/wcswidth (Link): New section. * modules/mbchar (Link): New section. * modules/mbfile (Link): Link against libunistring. * modules/mbiter (Link): Likewise. * modules/mbuiter (Link): Likewise. * modules/mbmemcasecmp (Link): Likewise. * modules/mbscasecmp (Link): Likewise. * modules/mbscasestr (Link): Likewise. * modules/mbschr (Link): Likewise. * modules/mbscspn (Link): Likewise. * modules/mbslen (Link): Likewise. * modules/mbsncasecmp (Link): Likewise. * modules/mbsnlen (Link): Likewise. * modules/mbspbrk (Link): Likewise. * modules/mbspcasecmp (Link): Likewise. * modules/mbsrchr (Link): Likewise. * modules/mbssep (Link): Likewise. * modules/mbsspn (Link): Likewise. * modules/mbsstr (Link): Likewise. * modules/mbstok_r (Link): Likewise. * modules/mbswidth (Link): Likewise. * modules/exclude (Link): Likewise. * modules/propername (Link): Likewise. * modules/regex-quote (Link): Likewise. * modules/trim (Link): Likewise. * modules/mbmemcasecmp-tests (Makefile.am): Link the test program against libunistring. * modules/mbscasecmp-tests (Makefile.am): Likewise. * modules/mbscasestr-tests (Makefile.am): Likewise. * modules/mbschr-tests (Makefile.am): Likewise. * modules/mbscspn-tests (Makefile.am): Likewise. * modules/mbsncasecmp-tests (Makefile.am): Likewise. * modules/mbspbrk-tests (Makefile.am): Likewise. * modules/mbspcasecmp-tests (Makefile.am): Likewise. * modules/mbsrchr-tests (Makefile.am): Likewise. * modules/mbsspn-tests (Makefile.am): Likewise. * modules/mbsstr-tests (Makefile.am): Likewise. * modules/exclude-tests (Makefile.am): Likewise. * modules/regex-quote-tests (Makefile.am): Likewise. 2021-01-03 Bruno Haible c32ispunct tests: Avoid test failures on FreeBSD. * tests/test-c32ispunct.c (main): On FreeBSD, disable tests that fail on FreeBSD 12.1.1. 2021-01-04 Simon Josefsson doc: Repeat warning that --with-tests cannot be used twice. * doc/gnulib-tool.texi (Multiple instances): Remind reader of --with-tests limitation. 2021-01-03 Bruno Haible iconv, iconv_open: Improve documentation. Reported by Noah Misch in . * doc/posix-functions/iconv_open.texi: Add new paragraph "Portability problems handled by Gnulib". * doc/posix-functions/iconv.texi: Likewise. Update info about AIX. * m4/iconv.m4 (AM_ICONV_LINK): Improve comments. 2021-01-03 Bruno Haible iconv-h: Fix module description. * modules/iconv-h (Include): Check HAVE_ICONV_H. 2021-01-03 Noah Misch iconv_open: Fix module description. * modules/iconv_open (Include): Check HAVE_ICONV, like modules/iconv. 2021-01-03 Bruno Haible stddef: Override wrong max_align_t on AIX 7 with xlc in 64-bit mode. * m4/stddef_h.m4 (gl_STDDEF_H): Make check for good max_align_t stricter: Add tests for offsetof-based alignof. * lib/stddef.in.h (max_align_t): Override on AIX in 64-bit mode. * doc/posix-headers/stddef.texi: Document the AIX max_align_t bug. 2021-01-03 Bruno Haible free-posix: Work around GCC mis-optimization bug. Code by Bernhard Voelker . * lib/free.c (rpl_free): Add alternative complicated code for GCC. 2021-01-02 Bruno Haible valgrind-tests: Disable valgrind if it would cause all tests to fail. Suggested by Simon Josefsson in . * m4/valgrind-tests.m4 (gl_VALGRIND_TESTS): Test $VALGRIND on an executable produced by the current compiler. Set VALGRIND to empty if it does not work. Don't set VALGRIND to empty if it merely does not accept the --error-exitcode=1 --leak-check=full options. 2021-01-02 Bruno Haible valgrind-tests: Really enable the valgrind options test. * m4/valgrind-tests.m4 (gl_VALGRIND_TESTS): Don't assume that the valgrind options --error-exitcode=1 --leak-check=full always work. 2021-01-02 Bruno Haible utimensat: Fix test failures on macOS 10.13. * lib/utimensat.c: Include , . (rpl_utimensat): Check against invalid tv_nsec values. Before calling utimensat, recognize a filename ending in a slash that does not point to a directory. 2021-01-02 Bruno Haible utimens: Fix test failure on macOS 10.13. * lib/utimens.c: Include . utimens: Fix test failure on macOS 10.13. * lib/utimens.c (fdutimens): Before calling utimensat, recognize a filename ending in a slash that does not point to a directory. 2021-01-02 Bruno Haible utimens: Avoid test failures on macOS 10.13. Reported by Martin Storsjö in . * tests/test-utimens-common.h (check_ctime): Define to -1 on macOS. * tests/test-utimens.h (test_utimens): Don't expect a ctime change when only the atime is requested to change. * tests/test-futimens.h (test_futimens): Likewise. * tests/test-lutimens.h (test_lutimens): Likewise. 2021-01-02 Bruno Haible renameatu: Fix test failures on macOS. Reported by Martin Storsjö in . * lib/renameatu.c (renameatu): Don't call renameatx_np right away. Instead, treat it as a variant of renameat, with all possible bugs that renameat might have. 2021-01-02 Bruno Haible getgroups test: Avoid warning with glibc >= 2.32 and gcc >= 10. Reported by Bernhard Voelker in . * tests/test-getgroups.c: Silence gcc warnings of type -Wstringop-overflow. 2021-01-02 Bruno Haible timespec_get: Add tests. * tests/test-timespec_get.c: New file. * modules/timespec_get-tests: New file. timespec_get: New module. * lib/time.in.h (timespec_get): New declaration. * lib/timespec_get.c: New file. * m4/timespec_get.m4: New file. * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize GNULIB_TIMESPEC_GET, HAVE_TIMESPEC_GET. * modules/time (Makefile.am): Substitute GNULIB_TIMESPEC_GET, HAVE_TIMESPEC_GET. * modules/timespec_get: New file. * tests/test-time-c++.cc (timespec_get): Check signature. * doc/glibc-functions/timespec_get.texi: Mention the new module. 2021-01-01 Bruno Haible time: Define TIME_UTC. * lib/time.in.h (TIME_UTC, GNULIB_defined_TIME_UTC): New macros. * m4/time_h.m4 (gl_HEADER_TIME_H_BODY): Set TIME_H_DEFINES_TIME_UTC. * modules/time (Makefile.am): Substitute TIME_H_DEFINES_TIME_UTC. * tests/test-time.c: Check that TIME_UTC is defined and a positive integer. * doc/posix-headers/time.texi: Mention TIME_UTC. 2021-01-01 Bruno Haible stddef: Try harder to get max_align_t defined on OpenBSD, part 2. * modules/stddef (Depends-on): Add extensions. 2021-01-01 Paul Eggert canonicalize: remove NARROW_ADDRESSES optimization * lib/canonicalize-lgpl.c, lib/canonicalize.c (NARROW_ADDRESSES): Remove, and remove all uses, as the optimization is arguably not worth the extra complexity. Suggested by Adhemerval Zanella in: https://sourceware.org/pipermail/libc-alpha/2020-December/121203.html 2021-01-01 Bruno Haible stddef: Try harder to get max_align_t defined on OpenBSD. * m4/stddef_h.m4 (gl_STDDEF_H): Require gl_USE_SYSTEM_EXTENSIONS. 2021-01-01 Bruno Haible aligned_alloc: Fix test failure on OpenBSD 6.8. * m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): On OpenBSD, define _ISOC11_SOURCE. * m4/aligned_alloc.m4 (gl_FUNC_ALIGNED_ALLOC): Require it. Update comment. 2021-01-01 Bruno Haible posixtm tests: Disable part of the test on plaforms where it fails. * tests/test-posixtm.c (T): Disable two tests on macOS as well. 2021-01-01 Bruno Haible c32isgraph/c32isprint/c32ispunct tests: Avoid test failures on OmniOS. * tests/test-c32isgraph.c (main): On Solaris, disable tests that fail on Solaris 11 OmniOS. * tests/test-c32isprint.c (main): Likewise. * tests/test-c32ispunct.c (main): Likewise. 2021-01-01 Paul Eggert libc-config: port to Sun C 5.9 * lib/libc-config.h (libc_hidden_proto): Omit ", ..." in macro definition. It’s not needed for Gnulib and elicits a diagnostic from Sun C 5.9 Patch 124867-12 2009/11/22. 2021-01-01 Bruno Haible quotearg tests: Avoid test failures on Solaris 11. * modules/quotearg-tests (Makefile.am): Set host_os in TESTS_ENVIRONMENT. * tests/test-quotearg.sh: On Solaris 11 systems, make a copy of the fr/ directory that contains the .mo file. 2021-01-01 Bruno Haible maint: Update copyright notices in --version output. List the most recent year in which changes were made, per . * build-aux/declared.sh (func_version): Say 2019. * build-aux/libtool-next-version (func_version): Likewise. * build-aux/run-test (func_version): Likewise. * check-module (COPYRIGHT_NOTICE): Say 2012. * lib/git-merge-changelog.c (main): Say 2020. 2020-12-31 Paul Eggert filename: change filename.h comment to LGPLv2.1+ * lib/filename.h: Change license notice to match what should be in glibc, and what modules/filename specifies. This is to simplify syncing with glibc. doc: mention year-0 bugs in Solaris etc. * doc/posix-functions/gmtime.texi, doc/posix-functions/gmtime_r.texi: * doc/posix-functions/localtime.texi: * doc/posix-functions/localtime_r.texi: * doc/posix-functions/mktime.texi: Mention year-0 bugs in localtime etc. 2020-12-31 Bruno Haible ptsname_r: Fix test failure on Solaris. * lib/ptsname_r.c (__ptsname_r) [__sun]: Don't test the major number of the device. 2020-12-31 Bruno Haible posixtm tests: Disable part of the test on plaforms where it fails. * tests/test-posixtm.c (T): Disable two tests on Solaris. 2020-12-31 Bruno Haible poll tests: Avoid test failure on AIX. * tests/test-poll.c (test_pipe): Disable the "expecting POLLHUP after shutdown" test on AIX. * doc/posix-functions/poll.texi: Mention the AIX bug. 2020-12-31 Bruno Haible poll tests: Avoid test failure on BSD and Solaris systems. * tests/test-poll.c (test_accept_first, test_socket_pair): Disable the "expecting POLLHUP after shutdown" test on all platforms except Linux. 2020-12-31 Paul Eggert fnmatch: merge from glibc + proposal This merges the change proposed by Adhemerval Zanella in: https://sourceware.org/pipermail/libc-alpha/2020-December/121212.html which fixes a Gnulib bug that led to a failed assert. * lib/fnmatch_loop.c (EXT): Use signed level, not unsigned, and check that it stays nonnegative. Use __flexarr instead of FLEXIBLE_ARRAY_MEMBER, to port better to glibc. * tests/test-fnmatch.c (main): New test cases, taken from glibc. glob: merge proposed glibc changes This merges the change proposed by Adhemerval Zanella in: https://sourceware.org/pipermail/libc-alpha/2020-December/121211.html * lib/glob.c (__lstat64, __stat64) [_LIBC]: Remove. 2020-12-31 Bruno Haible memalign: Work around Solaris bug. * lib/memalign.c: New file. * m4/memalign.m4: New file. * modules/memalign (Files): Add them. (Depends-on): Add malloc-h. (configure.ac): Invoke gl_FUNC_MEMALIGN. Conditionally compile memalign.c. Set module indicator. (Include): Include unconditionally. * doc/glibc-functions/memalign.texi: Mention the Solaris issues. malloc-h: Add tests. * tests/test-malloc-h.c: New file. * modules/malloc-h-tests: New file. * tests/test-malloc-h-c++.cc: New file. * modules/malloc-h-c++-tests: New file. malloc-h: New module. * lib/malloc.in.h: New file. * m4/malloc_h.m4: New file. * modules/malloc-h: New file. * doc/glibc-headers/malloc.texi: New file. * doc/gnulib.texi (Glibc Header File Substitutes): Include it. 2020-12-31 Bruno Haible unistd: Fix portability warnings. * lib/unistd.in.h (fchownat, unlinkat): Fix module name in warning. 2020-12-31 Bruno Haible utime: Fix compilation error on macOS and Solaris 9 (regr. 2020-12-24). Reported by Tom G. Christensen in . * lib/utime.c: Include . 2020-12-30 Karl Berry config: srclistvars doc. * config/srclistvars.sh: doc a couple of unusual source repo urls. 2020-12-30 Bruno Haible getlogin tests, getlogin_r tests: Avoid failure on Solaris OpenIndiana. * tests/test-getlogin.c (main): Don't fail if getlogin() returns NULL with no errno. * tests/test-getlogin_r.c (main): Don't fail if getlogin_r() returns EINVAL. 2020-12-29 Jim Meyering regex-tests: tweak to avoid a clang-10 warning * tests/test-regex.c: Compare with explicit zero, rather than as boolean to avoid this from clang-10: test-regex.c:315:9: error: converting the result of '<<' to a \ boolean always evaluates to true \ [-Werror,-Wtautological-constant-compare] if (! REG_STARTEND) hash: add casts-to-float to avoid clang-10 warnings * lib/hash.c (compute_bucket_size): Cast SIZE_MAX to float to avoid this warning from clang-10 (for use in grep): hash.c:501:11: error: implicit conversion from 'unsigned long' \ to 'float' changes value from 18446744073709551615 to \ 18446744073709551616 [-Werror,-Wimplicit-int-float-conversion] if (SIZE_MAX <= new_candidate) (hash_insert_if_absent): Likewise. 2020-12-29 Paul Eggert canonicalize: fix size overflow treatment This also has some minor cleanups. * lib/canonicalize-lgpl.c, lib/canonicalize.c: No need to include stddef.h, since the code no longer refers directly to ptrdiff_t. * lib/canonicalize-lgpl.c (realpath_stk): * lib/canonicalize.c (canonicalize_filename_mode_stk): Treat size overflow like other out-of-memory. * lib/canonicalize.c: No need to include stdlib.h, since the code no longer refers to stdlib.h functions (other than those that canonicalize.h must declare). * lib/canonicalize.c (canonicalize_filename_mode_stk): Do not bother terminating the string result on error. 2020-12-29 Bruno Haible list-c++, [o]map-c++, [o]set-c++: Fix conflict with 'free-posix' module. * lib/gl_list.hh: Include . * lib/gl_map.hh: Likewise. * lib/gl_omap.hh: Likewise. * lib/gl_set.hh: Likewise. * lib/gl_oset.hh: Likewise. 2020-12-29 Paul Eggert canonicalize: fix ptrdiff_t overflow bug Problem reported by Adhemerval Zanella in: https://sourceware.org/pipermail/libc-alpha/2020-December/121182.html * lib/canonicalize-lgpl.c, lib/canonicalize.c: Include intprops.h. (NARROW_ADDRESSES): New constant. * lib/canonicalize-lgpl.c (realpath_stk):m * lib/canonicalize.c (canonicalize_filename_mode_stk): Work even if strlen (END) does not fit in idx_t, or if adding N to it overflows. * modules/canonicalize, modules/canonicalize-lgpl (Depends-on): Add intprops. 2020-12-28 Bruno Haible havelib: Fix for Solaris 11 OpenIndiana and Solaris 11 OmniOS. * m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): In acl_is_expected_elfclass, use 'expr', not 'test'. 2020-12-28 Bruno Haible ptsname_r: Fix a compiler warning on Solaris. * lib/ptsname_r.c (__ptsname_r): Reduce the scope of variable 'err'. 2020-12-28 Bruno Haible gnulib-tool: Fix logic whether to add a dummy.c. * gnulib-tool (func_remove_if_blocks): New function. (func_modules_add_dummy): Use it to eliminate all conditional statements from the automake snippet. 2020-12-28 Paul Eggert faccessat: revert recent EOVERFLOW change I misunderstood the glibc source code. Deduced from Adhemerval Zanella’s proposed glibc patch in: https://sourceware.org/pipermail/libc-alpha/2020-December/121131.html * doc/posix-functions/faccessat.texi: It is not a problem. * lib/canonicalize-lgpl.c, lib/canonicalize.c, lib/faccessat.c: (FACCESSAT_NEVER_OVERFLOWS): Remove. All uses removed. * lib/faccessat.c: Revert to simpler version now that LSTAT_FOLLOWS_SLASHED_SYMLINK must be false. * m4/faccessat.m4 (gl_FUNC_FACCESSAT_EOVERFLOW): Remove. All uses removed. * modules/canonicalize, modules/canonicalize-lgpl (Files): Remove m4/faccessat.m4. canonicalize-lgpl: accommodate picky cpp * lib/canonicalize-lgpl.c: Use "defined FUNC_REALPATH_WORKS" in case preprocessor is picky. Reported by Adhemerval Zanella in: https://sourceware.org/pipermail/libc-alpha/2020-December/121130.html canonicalize: simplify via scratch_buffer_dupfree * config/srclist.txt: Adjust accordingly. * lib/canonicalize-lgpl.c (realpath_stk): * lib/canonicalize.c (canonicalize_filename_mode_stk): Simplify by using scratch_buffer_dupfree. * lib/malloc/scratch_buffer.h (scratch_buffer_dupfree): New function. * lib/malloc/scratch_buffer_dupfree.c: New file. * modules/scratch_buffer (Files, Depends-on): Add malloc/scratch_buffer_dupfree.c. 2020-12-27 Paul Eggert regex: remove glibc21.m4 It doesn’t seem to be needed any more; at least, I couldn’t reproduce the circa-2013 problem. Perhaps the recent --conditional-dependencies fixes have removed the need for it. * m4/glibc21.m4: Remove. All uses removed. 2020-12-26 Bruno Haible gnulib-tool: Make --conditional-dependencies work with --with-tests. Reported by Paul Eggert in . * gnulib-tool (func_emit_tests_Makefile_am): Handle conditional dependencies like func_emit_lib_Makefile_am. 2020-12-26 Bruno Haible execvpe: Make dependency to stdbool explicit. * lib/execvpe.c: Include . * modules/execvpe (Depends-on): Add stdbool. execlp: Add tests. * tests/test-execlp-main.c: New file. * tests/test-execlp.sh: New file. * modules/execlp-tests: New file. execlp: New module. * lib/execlp.c: New file. * m4/execlp.m4: New file. * modules/execlp: New file. * doc/posix-functions/execlp.texi: Mention more Windows problems and the new module. execle: Add tests. * tests/test-execle-main.c: New file. * tests/test-execle.sh: New file. * modules/execle-tests: New file. execle: New module. * lib/execle.c: New file. * m4/execle.m4: New file. * modules/execle: New file. * doc/posix-functions/execle.texi: Mention more Windows problems and the new module. execl: Add tests. * tests/test-execl-main.c: New file. * tests/test-execl.sh: New file. * modules/execl-tests: New file. execl: New module. * lib/execl.c: New file. * m4/execl.m4: New file. * modules/execl: New file. * doc/posix-functions/execl.texi: Mention more Windows problems and the new module. execv: Add tests. * tests/test-execv-main.c: New file. * tests/test-execv.sh: New file. * modules/execv-tests: New file. execv: New module. * lib/execv.c: New file. * m4/execv.m4: New file. * modules/execv: New file. * doc/posix-functions/execv.texi: Mention more Windows problems and the new module. execvp: Add tests. * tests/test-execvp-main.c: New file. * tests/test-execvp.sh: New file. * modules/execvp-tests: New file. execvp: New module. * lib/execvp.c: New file. * m4/execvp.m4: New file. * modules/execvp: New file. * doc/posix-functions/execvp.texi: Mention more Windows problems and the new module. execvpe: Add tests. * tests/test-execvpe-main.c: New file. * tests/test-execvpe.sh: New file. * modules/execvpe-tests: New file. execvpe: New module. * lib/execvpe.c: New file. * m4/execvpe.m4: New file. * modules/execvpe: New file. * doc/glibc-functions/execvpe.texi: Mention the Windows problems and the new module. execve: Add tests. * tests/test-exec-child.c: New file. * tests/test-execve-main.c: New file. * tests/test-execve.sh: New file. * modules/execve-tests: New file. execve: New module. * lib/execve.c: New file. * m4/execve.m4: New file. * modules/execve: New file. * doc/posix-functions/execve.texi: Mention more Windows problems and the new module. execve, execvpe, execvp, execv, execl, execle, execlp: Prepare modules. * lib/unistd.in.h (execl, execle, execlp, execv, execve, execvp, execvpe): Add declarations for the new modules. * m4/unistd_h.m4 (gl_UNISTD_H): Test whether execl, execle, execlp, execv, execve, execvp, execvpe are declared. (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_EXEC*, HAVE_EXECVPE, REPLACE_EXEC*. * modules/unistd (Makefile.am): Substitute GNULIB_EXEC*, HAVE_EXECVPE, REPLACE_EXEC*. * tests/test-unistd-c++.cc: Check the signature of execl, execle, execlp, execv, execve, execvp, execvpe. 2020-12-26 Bruno Haible stack: Fix typo in comments. * lib/stack.h: Fix typo in comments. 2020-12-26 Bruno Haible bitset: Fix conflict with 'free-posix' module. * lib/bitset/base.h: Include . 2020-12-25 Paul Eggert idx: change idx.h comment to LGPLv2.1+ * lib/idx.h: Change license notice to match what should be in glibc. gnulib-tool will change it as appropriate anyway, so this is just to simplify syncing with glibc. 2020-12-25 Thien-Thi Nguyen MODULES.html.sh: Update after 2020-12-19 change. * MODULES.html.sh (func_all_modules): Do s/free/free-posix/. 2020-12-25 Bruno Haible Make it possible to turn off the mkdir override on Windows. * lib/sys_stat.in.h (mkdir): Conditionalize through GNULIB_MKDIR and GNULIB_MDA_MKDIR. Also support GNULIB_POSIXCHECK. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Initialize GNULIB_MKDIR, GNULIB_MDA_MKDIR. * modules/sys_stat (Makefile.am): Substitute GNULIB_MKDIR, GNULIB_MDA_MKDIR. * modules/mkdir (configure.ac): Invoke gl_SYS_STAT_MODULE_INDICATOR. * doc/posix-functions/mkdir.texi: Mention also the 'sys_stat' module. Make it possible to turn off each of the Windows oldnames workarounds. * lib/fcntl.in.h (creat, open): Conditionalize each of the Windows oldnames workarounds through a GNULIB_MDA_ symbol. * lib/math.in.h (j0, j1, jn, y0, y1, yn): Likewise. * lib/search.in.h (lfind, lsearch): Likewise. * lib/stdio.in.h (fcloseall, fdopen, fileno, getw, putw, tempnam): Likewise. * lib/stdlib.in.h (ecvt, fcvt, gcvt, mktemp, putenv): Likewise. * lib/string.in.h (memccpy, strdup): Likewise. * lib/sys_stat.in.h (chmod, umask): Likewise. * lib/time.in.h (tzset): Likewise. * lib/unistd.in.h (access, chdir, close, dup, dup2, execl, execle, execlp, execv, execve, execvp, execvpe, getcwd, getpid, isatty, lseek, read, rmdir, swab, unlink, write): Likewise. * lib/utime.in.h (utime): Likewise. * lib/wchar.in.h (wcsdup): Likewise. * m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Initialize these GNULIB_MDA_ symbols. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Likewise. * m4/search_h.m4 (gl_SEARCH_H_DEFAULTS): Likewise. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Likewise. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Likewise. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Likewise. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Likewise. * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Likewise. * m4/utime_h.m4 (gl_UTIME_H_DEFAULTS): Likewise. * m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Likewise. * modules/fcntl-h (Makefile.am): Substitute these GNULIB_MDA_ symbols. * modules/math (Makefile.am): Likewise. * modules/search (Makefile.am): Likewise. * modules/stdio (Makefile.am): Likewise. * modules/stdlib (Makefile.am): Likewise. * modules/string (Makefile.am): Likewise. * modules/sys_stat (Makefile.am): Likewise. * modules/time (Makefile.am): Likewise. * modules/unistd (Makefile.am): Likewise. * modules/utime-h (Makefile.am): Likewise. * modules/wchar (Makefile.am): Likewise. 2020-12-24 Paul Eggert canonicalize, canonicalize-lgpl: remove lint Pacify GCC. Some of these problems were reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2020-12/msg00217.html * lib/canonicalize-lgpl.c, lib/canonicalize.c: Sort shared include directives, for consistency. (IF_LINT): New macro. (suffix_requires_dir_check): Mark with _GL_ATTRIBUTE_PURE. * lib/canonicalize-lgpl.c (GCC_LINT, _GL_ATTRIBUTE_PURE) [_LIBC]: New macros. (realpath_stk): Suppress bogus -Wmaybe-uninitialized warning. * lib/canonicalize.c (canonicalize_filename_mode_stk): Omit unused local. Suppress bogus -Wmaybe-uninitialized warning. 2020-12-24 Bruno Haible spawn-pipe: Use posix_spawn by default on native Windows. * lib/spawn-pipe.c (SPAWN_PIPE_IMPL_AVOID_POSIX_SPAWN): New macro. (create_pipe): Use it to decide among the two possible implementations. * modules/spawn-pipe (Depends-on): Add posix_spawnattr_setpgroup. 2020-12-24 Bruno Haible unistd-safer: Implement pipe_safer on native Windows. * lib/pipe-safer.c (pipe_safer): Don't test HAVE_PIPE. * modules/unistd-safer (Depends-on): Add pipe-posix. 2020-12-24 Bruno Haible execute: Use posix_spawn by default on native Windows. * lib/execute.c (EXECUTE_IMPL_AVOID_POSIX_SPAWN): New macro. (execute): Use it to decide among the two possible implementations. 2020-12-24 Paul Eggert canonicalize-lgpl: merge proposed libc changes This merges the changes proposed for glibc in: https://sourceware.org/pipermail/libc-alpha/2020-December/121085.html https://sourceware.org/pipermail/libc-alpha/2020-December/121086.html * lib/canonicalize-lgpl.c: Include idx.h and filename.h unconditionally. (idx_t, IDX_MAX, FILE_SYSTEM_PREFIX_LEN, IS_ABSOLUTE_FILE_NAME) (ISSLASH) [_LIBC]: Remove. 2020-12-24 Bruno Haible posix_spawn-internal: Implement for native Windows. * lib/spawni.c (grow_inheritable_handles, shrink_inheritable_handles, close_inheritable_handles, memiszero, sigisempty, open_handle, do_open, do_dup2, do_close): New functions. (__spawni): Implement on native Windows. * modules/posix_spawn-internal (Depends-on): Add filename, concat-filename, findprog-in, malloca, windows-spawn. * doc/posix-functions/posix_spawn.texi: Update. * doc/posix-functions/posix_spawnp.texi: Likewise. 2020-12-24 Bruno Haible windows-spawn: Export another auxiliary function. * lib/windows-spawn.h (convert_CreateProcess_error): New declaration. * lib/windows-spawn.c (convert_CreateProcess_error): New function, extracted from spawnpvech. (spawnpvech): Use it. 2020-12-24 Bruno Haible windows-spawn: Export some more auxiliary functions. * lib/windows-spawn.h: Include . (struct inheritable_handles): New type. (init_inheritable_handles, compose_handles_block, free_inheritable_handles): New declarations. * lib/windows-spawn.c (init_inheritable_handles, compose_handles_block): New functions, based on spawnvech. (free_inheritable_handles): New function. (spawnpvech): Use them. 2020-12-24 Bruno Haible windows-spawn: Export another auxiliary function. * lib/windows-spawn.h (compose_envblock): New declaration. * lib/windows-spawn.c (compose_envblock): New function, extracted from spawnpvech. (spawnpvech): Use it. 2020-12-24 Bruno Haible windows-spawn: Export an auxiliary function. * lib/windows-spawn.h (compose_command): New declaration. * lib/windows-spawn.c (compose_command): New function, extracted from spawnpvech. (spawnpvech): Use it. 2020-12-24 Bruno Haible posix_spawn* tests: Add support for native Windows. * tests/test-posix_spawn-open1.c (DATA_FILENAME): Treat native Windows like Cygwin. * tests/test-posix_spawn-dup2-stdin.c (main): Don't assume the signals SIGHUP and SIGPIPE. On native Windows, don't call posix_spawnattr_setsigmask. * tests/test-posix_spawn-dup2-stdout.c (main): Likewise. * tests/test-posix_spawn-fchdir.c (main): Likewise. * tests/test-posix_spawn-chdir.c (test): Likewise. Accept the child output from Cygwin's 'pwd' program. * tests/test-posix_spawn-script.c (main): On native Windows, skip the executable-shell-script part of the test. * tests/test-posix_spawnp-script.c (main): Likewise. * modules/posix_spawn-tests (Depends-on): Add freopen, waitpid. (configure.ac): Don't define the POSIX_SPAWN_PORTED conditional. (Makefile.am): Don't test the POSIX_SPAWN_PORTED conditional. * modules/posix_spawnp-tests (Depends-on): Add waitpid. (configure.ac): Don't define the POSIX_SPAWN_PORTED conditional. (Makefile.am): Don't test the POSIX_SPAWN_PORTED conditional. * modules/posix_spawn_file_actions_addchdir-tests (Makefile.am): Don't test the POSIX_SPAWN_PORTED conditional. * modules/posix_spawn_file_actions_addfchdir-tests (configure.ac): Define the POSIX_SPAWN_PORTED conditional here. 2020-12-24 Bruno Haible sh-filename: Add support for native Windows. * m4/sh-filename.m4 (gl_SH_FILENAME): Treat native Windows like Cygwin. 2020-12-24 Paul Eggert careadlinkat: improve warning line number This propagates an idea first used in canonicalize-lgpl. * lib/careadlinkat.c (GCC_BOGUS_WRETURN_LOCAL_ADDR): New macro. (careadlinkat): Use it. linkat: use eloop-threshold * lib/linkat.c: Include eloop-threshold.h. Do not include sys/param.h. (MAXSYMLINKS): Remove. (link_follow, linkat_follow): Use __eloop_threshold instead of MAXSYMLINKS. * m4/linkat.m4 (gl_FUNC_LINKAT): Omit sys/param.h check. * modules/linkat (Depends-on): Add eloop-threshold. Sort. canonicalize-lgpl: use eloop-threshold * lib/canonicalize-lgpl.c [!_LIBC]: Include eloop-threshold.h. (MAXSYMLINKS, __eloop_threshold): Remove. * modules/canonicalize-lgpl (Depends-on): Add eloop-threshold. eloop-threshold: new module * config/srclist.txt: Add a comment about it. * lib/eloop-threshold.h, modules/eloop-threshold: New files. canonicalize: prefer faccessat to stat A proper faccessat doesn't have the EOVERFLOW problem, and can be more efficient as it needn't gather data from the filesystem to fill in struct stat. So use stat only if faccessat is absent, or when checking for symlink loops in canonicalize.c. * lib/canonicalize-lgpl.c, lib/canonicalize.c: Include fcntl.h, for AT_EACCESS. (FACCESSAT_NEVER_EOVERFLOWS): Default to false. (file_accessible): New function, based on faccessat but with a fallback to stat and with an EOVERFLOW workaround. (dir_check): Use it. (dir_suffix): New static constant. * lib/canonicalize-lgpl.c (FACCESSAT_NEVER_EOVERFLOWS) [_LIBC]: Use __ASSUME_FACCESSAT2 to set FACCESSAT_NEVER_EOVERFLOWS (__faccessat) [!_LIBC]: Define. (realpath_stk): Use dir_suffix now. * lib/canonicalize.c (canonicalize_filename_mode_stk): If logical, don't check each component's existence; just check at the end, as that's enough. * m4/canonicalize.m4 (gl_FUNC_CANONICALIZE_FILENAME_MODE) (gl_CANONICALIZE_LGPL_SEPARATE): Require gl_FUNC_FACCESSAT_EOVERFLOW, gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK, and check for faccessat. (gl_CANONICALIZE_LGPL_SEPARATE): Do not check for readlink, as the code does not use HAVE_READLINK. * modules/canonicalize, modules/canonicalize-lgpl (Files): Add m4/faccessat.m4, m4/lstat.m4. (Depends-on): Add fcntl-lh. faccessat: work around F_OK EOVERFLOW bug * doc/posix-functions/faccessat.texi: Mention the problem. * lib/faccessat.c (FACCESSAT_NEVER_EOVERFLOWS): Default to 0. (rpl_faccessat): If !FACCESSAT_NEVER_EOVERFLOWS, check for F_OK and EOVERFLOW, which means we can return 0. * m4/faccessat.m4 (gl_FUNC_FACCESSAT_EOVERFLOW): New macro. (gl_FUNC_FACCESSAT): Use it. stat failing with EOVERFLOW implies existence * lib/euidaccess.c (euidaccess): * lib/file-has-acl.c (file_has_acl): * lib/link.c (link, rpl_link): * lib/mkdir.c (rpl_mkdir): * lib/mkfifo.c (rpl_mkfifo): * lib/mknod.c (rpl_mknod): * lib/ptsname_r.c (__ptsname_r): * lib/symlink.c (rpl_symlink): * lib/symlinkat.c (rpl_symlinkat): * lib/unlink.c (rpl_unlink): * lib/unlinkat.c (rpl_unlinkat): * lib/utime.c (utime): If stat fails with EOVERFLOW the file exists, so treat it that way in file-existence tests that do not need struct stat values. canonicalize-lgpl: remove freea macro * lib/canonicalize-lgpl.c (freea) [_LIBC]: Remove; not needed. canonicalize, canonicalize-lgpl: fix symlink bug Problem reported by Adhemerval Zanella in: https://lists.gnu.org/r/bug-gnulib/2020-12/msg00155.html * lib/canonicalize-lgpl.c, lib/canonicalize.c: (suffix_requires_dir_check, dir_check): New functions. (GCC_BOGUS_WRETURN_LOCAL_ADDR): New macro, to put the diagnostic closer to the related GCC diagnostics. * lib/canonicalize-lgpl.c (realpath_stk): * lib/canonicalize.c (canonicalize_file_mode_stk): Use them to fix a bug with .../symlink-to-regular-file/ etc. * lib/canonicalize-lgpl.c (__stat) [!_LIBC]: New macro. (realpath_stk): New function, with the contents of the old __realpath and a new scratch buffer arg. This is needed to pacify GCC 10.1, as canonicalize.c is already doing. (__realpath): Use it. * tests/test-canonicalize-lgpl.c, tests/test-canonicalize.c: Add test cases for the bugs. 2020-12-24 Bruno Haible execute: Treat signalled processes like wait-process does. * lib/execute.c: Include , . (execute): Recognize the case where the exit code indicates a signalled child process. * tests/test-execute-main.c (main): Update expected test result. * modules/execute (Depends-on): Add sys_wait. 2020-12-24 Bruno Haible windows-spawn: Improve errno upon failure on native Windows. * lib/windows-spawn.c (spawnpvech): Map the CreateProcess errors ERROR_BAD_FORMAT and ERROR_BAD_EXE_FORMAT to ENOEXEC. * tests/executable-script.sh: New file. * tests/test-posix_spawn-script.c (main): Also try executing executable-script.sh. * tests/test-posix_spawnp-script.c (main): Likewise. * tests/test-execute-script.c (main): Likewise. * tests/test-spawn-pipe-script.c (main): Likewise. * modules/posix_spawn-tests (Files): Add tests/executable-script.sh. * modules/posix_spawnp-tests (Files): Likewise. * modules/execute-tests (Files): Likewise. * modules/spawn-pipe-tests (Files): Likewise. 2020-12-24 Bruno Haible findprog-in: Improve errno upon failure on native Windows. * lib/findprog-in.c (find_in_given_path): If the file basename has no dot and the search with a suffix returned no result, do also a search without a suffix, and set errno = ENOEXEC if we find a file in this way. * tests/test-spawn-pipe-script.c (main): Update expected errno. 2020-12-23 Bruno Haible posix_spawn, posix_spawnp: Fix execution of scripts. * m4/posix_spawn.m4 (gl_POSIX_SPAWN_SECURE): New macro. (gl_POSIX_SPAWN_BODY): Invoke it. Set REPLACE_POSIX_SPAWN if posix_spawn or posix_spawnp allows unsecure execution of scripts. * doc/posix-functions/posix_spawn.texi: Document the script execution problem. * doc/posix-functions/posix_spawnp.texi: Likewise. 2020-12-23 Bruno Haible Add unit tests regarding execution of scripts. * tests/executable-script: New file. * tests/executable-shell-script: New file. * tests/test-posix_spawn-script.c: New file. * tests/test-posix_spawnp-script.c: New file. * tests/test-execute-script.c: New file. * tests/test-spawn-pipe-script.c: New file. * modules/posix_spawn-tests (Files): Add tests/test-posix_spawn-script.c, tests/executable-script, tests/executable-shell-script. (Makefile.am): Compile and run test-posix_spawn-script. * modules/posix_spawnp-tests (Files): Add tests/test-posix_spawnp-script.c, tests/executable-script, tests/executable-shell-script. (Makefile.am): Compile and run test-posix_spawnp-script. * modules/execute-tests (Files): Add tests/test-execute-script.c, tests/executable-script, tests/executable-shell-script. (Makefile.am): Compile and run test-execute-script. * modules/spawn-pipe-tests (Files): Add tests/test-spawn-pipe-script.c, tests/executable-script, tests/executable-shell-script. (Makefile.am): Compile and run test-spawn-pipe-script. 2020-12-23 Bruno Haible Don't execute scripts without '#!' marker through /bin/sh. This reflects the change done in glibc through and . * lib/spawni.c (internal_function): Remove macro. (script_execute): Remove function. (__spawni): Don't invoke script_execute. * lib/execute.c (execute): Disable the ENOEXEC handling. * lib/spawn-pipe.c (create_pipe): Likewise. * NEWS: Mention the change. 2020-12-23 Bruno Haible posix_spawn[p]: Fix compilation error on Windows (regr. 2020-12-14). Reported by Adrian Ebeling in . * lib/spawni.c (__spawni): Update function parameters. 2020-12-23 Bruno Haible posix_spawn tests: Add two more tests. * tests/test-posix_spawn-inherit0.c: New file, based on tests/test-posix_spawn-open2.c. * tests/test-posix_spawn-inherit1.c: New file, based on tests/test-posix_spawn-open2.c. * modules/posix_spawn-tests (Files): Add them. (Depends-on): Add fflush. (Makefile.am): Compile and run test-posix_spawn-inherit0 and test-posix_spawn-inherit1. 2020-12-23 Bruno Haible posix_spawn tests: Add another test. * tests/test-posix_spawn-open2.c: New file, based on tests/test-posix_spawn-open1.c. * modules/posix_spawn-tests (Files): Add it. (Makefile.am): Compile and run test-posix_spawn-open1. 2020-12-20 Bruno Haible Remove support for broken in AIX 3. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Simplify test programs. 2020-12-20 Bruno Haible Remove support for broken in BSD/OS and OSF/1. * lib/wchar.in.h: Don't include , . * lib/mbchar.h: Likewise. * lib/mbiter.h: Likewise. * lib/mbuiter.h: Likewise. * m4/stdint.m4 (gl_STDINT_INCLUDES): Likewise. * lib/mbfile.h: Don't include . * lib/mbswidth.h: Update comment. * lib/stdint.in.h: Don't include , , before . * lib/wctype.in.h: Likewise. * m4/btowc.m4 (gl_FUNC_BTOWC): Simplify test programs. * m4/iswblank.m4 (gl_FUNC_ISWBLANK): Likewise. * m4/iswdigit.m4 (gl_FUNC_ISWDIGIT): Likewise. * m4/iswxdigit.m4 (gl_FUNC_ISWXDIGIT): Likewise. * m4/mbrlen.m4 (gl_FUNC_MBRLEN, gl_MBRLEN_INCOMPLETE_STATE, gl_MBRLEN_RETVAL, gl_MBRLEN_NUL_RETVAL): Likewise. * m4/mbrtoc32.m4 (gl_MBRTOC32_SANITYCHECK): Likewise. * m4/mbrtowc.m4 (gl_FUNC_MBRTOWC, gl_MBRTOWC_INCOMPLETE_STATE, gl_MBRTOWC_SANITYCHECK, gl_MBRTOWC_NULL_ARG1, gl_MBRTOWC_NULL_ARG2, gl_MBRTOWC_RETVAL, gl_MBRTOWC_NUL_RETVAL, gl_MBRTOWC_STORES_INCOMPLETE, AC_FUNC_MBRTOWC): Likewise. * m4/mbsinit.m4 (gl_FUNC_MBSINIT): Likewise. * m4/mbsnrtowcs.m4 (gl_MBSNRTOWCS_WORKS_IN_TRADITIONAL_LOCALE): Likewise. * m4/mbsrtowcs.m4 (gl_FUNC_MBSRTOWCS, gl_MBSRTOWCS_WORKS): Likewise. * m4/mbstate_t.m4 (AC_TYPE_MBSTATE_T): Likewise. * m4/mbswidth.m4 (gl_MBSWIDTH): Likewise. * m4/printf.m4 (gl_PRINTF_DIRECTIVE_LS): Likewise. * m4/wchar_h.m4 (gl_WCHAR_H, gl_WCHAR_H_INLINE_OK): Likewise. * m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise. * m4/wcsdup.m4 (gl_FUNC_WCSDUP): Likewise. * m4/wcsnrtombs.m4 (gl_WCSNRTOMBS_WORKS_IN_TRADITIONAL_LOCALE): Likewise. * m4/wcsrtombs.m4 (gl_FUNC_WCSRTOMBS, gl_WCSRTOMBS_TERMINATION, gl_WCSRTOMBS_NULL): Likewise. * m4/wcstok.m4 (gl_FUNC_WCSTOK): Likewise. * m4/wctob.m4 (gl_FUNC_WCTOB): Likewise. * m4/wctype_h.m4 (gl_WCTYPE_H): Likewise. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise. * m4/wint_t.m4 (gt_TYPE_WINT_T): Likewise. * m4/wmemchr.m4 (gl_FUNC_WMEMCHR): Likewise. * m4/wmemcmp.m4 (gl_FUNC_WMEMCMP): Likewise. * m4/wmemcpy.m4 (gl_FUNC_WMEMCPY): Likewise. * m4/wmemmove.m4 (gl_FUNC_WMEMMOVE): Likewise. * m4/wmemset.m4 (gl_FUNC_WMEMSET): Likewise. 2020-12-20 Bruno Haible isnanf: Fix autoconf test. * m4/isnanf.m4 (gl_ISNANF_WORKS): Fix one of the NaN tests. 2020-12-20 Bruno Haible Remove some of the support for obsolete IRIX 4 and 5. * m4/mountlist.m4 (AC_FUNC_GETMNTENT): Don't test for getmntent in libsun. * tests/init.sh (setup_): Don't talk about IRIX 5. 2020-12-20 Bruno Haible filemode: Remove Cray support. * lib/filemode.c (IS_MIGRATED_FILE): Remove macro. (filemodestring): Don't produce an 'M' type. * m4/filemode.m4 (gl_FILEMODE): Don't invoke AC_STRUCT_ST_DM_MODE. * m4/st_dm_mode.m4: Remove file. * modules/filemode (Files): Remove it. 2020-12-20 Paul Eggert free-posix: assume glibc 2.33 fixes this. * m4/free.m4 (gl_FUNC_FREE): Assume glibc 2.33+ is fixed. Use compile-time test rather than guessing for cross-builds. 2020-12-20 Bruno Haible backupfile: Fix compilation error on native Windows (regr. 2018-10-23). Reported by Adrian Ebeling in . * lib/backupfile.c (fpathconf): Define fallback, like for pathconf. 2020-12-20 Bruno Haible float: Fix compilation error when gnulib's float.h exists twice. Reported by Santiago Vila . * lib/float.in.h (GNULIB_defined_long_double_union): New macro. 2020-12-19 Bruno Haible free-posix: Assume future POSIX compliance only on OpenBSD and Solaris. * m4/free.m4 (gl_FUNC_FREE): Guess yes only on OpenBSD and Solaris. Don't trust _POSIX_VERSION for this test. 2020-12-19 Paul Eggert free-posix: port to GNU/Linux * m4/free.m4 (gl_FUNC_FREE): Don’t assume GNU hosts are free of the bug, as it occurs on Ubuntu 20.10 x86-64 and, I assume, on other GNU/Linux hosts. 2020-12-19 Bruno Haible free-posix: Add tests. * tests/test-free.c: New file. * tests/macros.h (ASSERT_NO_STDIO, WRITE_MACROEXPANDED_INTEGER_TO_STDERR, WRITE_INTEGER_TO_STDERR, WRITE_TO_STDERR): New macros. * modules/free-posix-tests: New file. 2020-12-18 Bruno Haible free-posix: Add C++ declaration test. * tests/test-stdlib-c++.cc (free): New declaration. 2020-12-18 Bruno Haible free-posix: New module, renamed from 'free'. * modules/free-posix: Renamed from modules/free. (configure.ac): Update gl_STDLIB_MODULE_INDICATOR invocation. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_FREE_POSIX, not GNULIB_FREE. * modules/stdlib (Makefile.am): Substitute GNULIB_FREE_POSIX, not GNULIB_FREE. * lib/stdlib.in.h (free): Test GNULIB_FREE_POSIX, not GNULIB_FREE. * doc/posix-functions/free.texi: Mention the module 'free-posix' and what it does. * NEWS: Mention that module 'free' no longer exists. * modules/canonicalize (Depends-on): Add free-posix. Remove free. * modules/canonicalize-lgpl (Depends-on): Likewise. 2020-12-18 Bruno Haible free: Remove support for obsolete platforms. * m4/free.m4 (gl_FUNC_FREE): Assume free(NULL) works. Don't define CANNOT_FREE_NULL. * lib/free.c (rpl_free): Don't test CANNOT_FREE_NULL. * modules/free (Description): Update. * doc/posix-functions/free.texi: Don't mention SunOS 4 any more. 2020-12-18 Paul Eggert intprops: port to ICC 2021.1 Beta 20201112 * lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW_P): Port to ICC 2021.1, which has a non-working __builtin_mul_overflow_p. Add a clause for other compilers that claim to support __builtin_mul_overflow_p, since we might as well find out about slackers other than Clang and ICC. (INT_MULTIPLY_WRAPV): ICC 2021 has GCC bug 91450, so treat it like older GCCs even when it claims to be a newer one. 2020-12-18 Bruno Haible intprops: Avoid potentially buggy __builtin_add_overflow in GCC 5, 6. Reported by Stefan Liebler in . * lib/intprops.h (_GL_HAS_BUILTIN_ADD_OVERFLOW): Don't define for GCC 5.x and 6.x. * lib/glob.c (size_add_wrapv): Don't use __builtin_add_overflow for GCC 5.x and 6.x. 2020-12-17 Bruno Haible free: Fix warning. Reported by Pádraig Brady in . * lib/stdlib.in.h (free): New declaration. * m4/stdlib_h.m4 (gl_STDLIB_H): Test whether 'free' is declared. (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_FREE, REPLACE_FREE. * modules/stdlib (Makefile.am): Substitute GNULIB_FREE, REPLACE_FREE. * m4/free.m4 (gl_FUNC_FREE): Set REPLACE_FREE, instead of defining 'free' as a macro here. * modules/free (Depends-on): Add stdlib. (configure.ac): Test REPLACE_FREE. Invoke gl_STDLIB_MODULE_INDICATOR. 2020-12-17 Paul Eggert canonicalize-lgpl: fix AIX test failures This merges the recent canonicalize.c fix into canonicalize-lgpl.c. Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2020-12/msg00138.html * lib/canonicalize-lgpl.c: Include sys/stat.h. (__realpath): When testing a file name ending in '/', use stat rather than readlink, so that it does the right thing on AIX. * modules/canonicalize-lgpl (Depends-on): Add stat, sys_stat. canonicalize: omit second readlink when not needed * lib/canonicalize.c (canonicalize_filename_mode_stk): Omit second readlink when (can_exist != CAN_MISSING && startlen != 0 && !logical). Simplify. canonicalize: remove arbitrary 8192-byte limit Remove canonicalize.c’s arbitrary 8192-byte limit on platforms like GNU Hurd that do not define the PATH_MAX macro, and similarly for canonicalize-lgpl.c’s arbitrary 1024-byte limit. Do this by using scratch buffers. Lessen the number of differences between the two source files, to simplify this and future maintenance. * lib/canonicalize-lgpl.c (__realpath): * lib/canonicalize.c (canonicalize_filename_mode_stk): Use scratch buffers instead of malloc and malloca. This avoids the need for alloca, and avoids the need for malloc in most cases. * lib/canonicalize-lgpl.c, lib/canonicalize.c: Make these files easier to compare, e.g., by sorting include files and by switching to the GNU convention of calling file names "file names", not "path names". Include stdbool.h, scratch_buffer.h. * lib/canonicalize-lgpl.c (IDX_MAX) [_LIBC]: New macro. (malloca) [_LIBC]: Remove. [!_LIBC]: Do not include malloca.h. (get_path_max): New function, so that pathconf is called only in the rare and dubious case when when RESOLVED is not null and PATH_MAX is not defined. Invoke pathconf on "/" not the input file name, as we care about the longest file name starting from "/" (not from the input file name), and POSIX does not specify what pathconf does on a non-directory file anyway. If PATH_MAX is not defined, do not worry about overriding a path_max of 0, and do not let path_max exceed IDX_MAX. (__realpath): Remove an assumption that file name components cannot exceed 1024 bytes when PATH_MAX is not defined (wrong for the Hurd, presumably). When allocating the result, allocate it to just the right size; this costs nothing when the result is smaller than 1023 bytes, and for larger results it's probably worth the CPU to call realloc, as canonicalize.c already does. * lib/canonicalize.c: Include attribute.h. Do not include pathmax.h or xgetcwd.h. (PATH_MAX): Do not define, so file names longer than 8192 bytes work on platforms with no fixed limit. (canonicalize_filename_mode_stk): New function, with the content of the old canonicalize_filename_mode. Use getcwd instead of xgetcwd, and readlink instead of areadlink, since the scratch buffers now do memory management for us. Use rawmemchr instead of adding strlen. Use mempcpy instead of mempcpy + size. Assume free preserves errno. (canonicalize_filename_mode): Use it. * modules/canonicalize (Depends-on): Remove areadlink, pathmax, xgetcwd. Add attribute, free, getcwd, mempcpy, rawmemchr, scratch_buffer, stdbool, xalloc-die. * modules/canonicalize-lgpl (Depends-on): Remove alloca-opt, malloca, realloc-posix. Add scratch_buffer, stdbool. canonicalize-lgpl: simplify merge to glibc This patch lessens the differences between git glibc stdlib/canonicalize.c and lib/canonicalize-lgpl.c. The (perhaps wishful) goal is to make them identical. * lib/canonicalize-lgpl.c [!_LIBC]: Include , not config.h. Omit an unnecessary (!HAVE_CANONICALIZE_FILE_NAME || !FUNC_REALPATH_WORKS || defined _LIBC) #if. Do not include alloca.h, since we use malloca now. [_LIBC]: Include , and define dummy macros FILE_SYSTEM_PREFIX_LEN, IS_ABSOLUTE_FILE_NAME, ISSLASH, malloca, freea so that the mainline code can be kept #ifdef free. [!_LIBC]: Remove dummy macros for SHLIB_COMPAT, versioned_symbol, compat_symbol, weak_alias, __set_errno since libc-config.h does that. Add redirecting macros __mempcpy, __pathconf, __rawmemchr, __eloop_threshold. All uses of their definiens changed. (SIZE_MAX): Remove; no longer needed. (alloc_failed): Remove, and remove all instances. No need for alloc_failed now that free preserves errno. (__realpath): Default path_max to 1024 instead of 8192, as that’s the glibc tradition and is safer when the 2nd argument is null. Use __rawmemchr instead of strchr. Use __mempcpy where appropriate. Simplify test for overflow so that it does not need SIZE_MAX. Do not preserve errno around free or freea calls; no longer needed. Mark __realpath with libc_hidden_def. * modules/canonicalize-lgpl (Depends-on): Add free, libc-config, malloc-posix, mempcpy, realloc-posix, rawmemchr. * modules/free: Now LGPLv2+, for canonicalize-lgpl. free: preserve errno * lib/free.c (rpl_free): Preserve errno. Check for null only if CANNOT_FREE_NULL is defined, as an optimization for POSIX 2008 platforms that do not preserve errno. * m4/free.m4 (gl_FUNC_FREE): Check whether free preserves errno. Also, define CANNOT_FREE_NULL if free cannot free NULL. * modules/free (configure.ac): Also replace 'free' if it does not preserve errno. idx: simplify IDX_MAX, remove IDX_WIDTH * lib/idx.h (IDX_MAX): Simplify by removing obsolete reference to UNSIGNED_IDX_T. (IDX_WIDTH): Remove, since it’s not used and its value arguably should be PTRDIFF_WIDTH anyway. 2020-12-16 Bruno Haible posix_spawn_file_actions_addfchdir-tests: Rename test. * tests/test-posix_spawn-fchdir.c: Renamed from tests/test-posix_spawn5.c. * modules/posix_spawn_file_actions_addfchdir-tests (Files, Makefile.am): Update. posix_spawn_file_actions_addchdir-tests: Rename test. * tests/test-posix_spawn-chdir.c: Renamed from tests/test-posix_spawn4.c. * modules/posix_spawn_file_actions_addchdir-tests (Files, Makefile.am): Update. posix_spawn-tests: Rename test. * tests/test-posix_spawn-open1.c: Renamed from tests/test-posix_spawn3.c. * modules/posix_spawn-tests (Files, Makefile.am): Update. posix_spawnp-tests: Rename test. * tests/test-posix_spawn-dup2-stdin.c: Renamed from tests/test-posix_spawn2.c. * tests/test-posix_spawn-dup2-stdin.in.sh: Renamed from tests/test-posix_spawn2.in.sh. * modules/posix_spawnp-tests (Files, Makefile.am): Update. posix_spawnp-tests: Rename test. * tests/test-posix_spawn-dup2-stdout.c: Renamed from tests/test-posix_spawn1.c. * tests/test-posix_spawn-dup2-stdout.in.sh: Renamed from tests/test-posix_spawn1.in.sh. * modules/posix_spawnp-tests (Files, Makefile.am): Update. 2020-12-14 Bruno Haible findprog-in: Allow overriding the current directory. * lib/findprog.h (find_in_given_path): Add directory argument. * lib/findprog-in.c (find_in_given_path): Likewise. * lib/execute.c (execute): Update caller. * lib/spawn-pipe.c (create_pipe): Likewise. * lib/windows-spawn.c (spawnpvech): Likewise. * NEWS: Mention the change. 2020-12-14 Bruno Haible posix_spawn-internal: Make better use of 'const'. * lib/spawn_int.h (__spawni): Does not need write access to the elements of argv and envp. * lib/spawni.c (__spawni, script_execute): Likewise. * lib/spawn.c (posix_spawn): Update caller. * lib/spawnp.c (posix_spawnp): Likewise. 2020-12-14 Bruno Haible spawn: Make it compile on native Windows. * modules/spawn (Depends-on): Add signal-h. 2020-12-14 Bruno Haible windows-spawn: Avoid shadowing a variable. * lib/windows-spawn.c (spawnpvech): Rename local variable 'flags'. 2020-12-13 Paul Eggert string: port memchr macro to AIX 7.2 XLC Its defines a memchr macro to help inlining. * lib/string.in.h (memchr): #undef before #defining. canonicalize: fix AIX test failures Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2020-12/msg00109.html * lib/canonicalize.c (canonicalize_filename_mode): When testing a file name ending in '/', use stat rather than readlink, so that it does the right thing on AIX. * modules/canonicalize (Depends-on): Add readlink, to pull in the recent changes in the Gnulib readlink module. Assume readlink/readlinkat ERANGE fix * lib/areadlink-with-size.c (areadlink_with_size): * lib/areadlinkat-with-size.c (areadlinkat_with_size): * lib/careadlinkat.c (readlink_stk): Do not worry about readlink or readlinkat failing with errno == ERANGE, since the Gnulib readlink and readlinkat modules now fix that. getcwd: port to AIX * lib/getcwd.c [!_LIBC]: Undef stat64 before #defining it, in case our sys/stat.h #defined a function macro with the same name. readlink, readlinkat: add ERANGE portability Fix some portability issues with Gnulib's readlink and readlinkat, notably mostly working around the ERANGE problem in AIX and HP-UX. * doc/posix-functions/readlink.texi: * doc/posix-functions/readlinkat.texi: ERANGE problem is mostly fixed now. Mention AIX problem with trailing / and EINVAL. Lessen differences between these two files. * lib/readlink.c (rpl_readlink): * lib/readlinkat.c (rpl_readlinkat): If stat ("FILE/", ...) reports EOVERFLOW, treat FILE/ as an existing directory. Mostly work around READLINK_TRUNCATE BUG. Lessen spurious differences between the readlink and readlinkat code. * lib/readlinkat.c (rpl_readlinkat): Fix bug where stat was used where fstatat was intended. * m4/readlink.m4 (gl_FUNC_READLINK): Rename gl_cv_func_readlink_works to gl_cv_func_readlink_trailing_slash to identify readlink problems more precisely. All uses changed. Guess no on AIX or HP-UX for this variable. Add check for whether readlink truncates results, and define new macro READLINK_TRUCATE_BUG accordingly. * m4/readlinkat.m4 (gl_FUNC_READLINKAT): Also check gl_cv_func_readlink_trailing_slash when deciding whether to replace readlinkat. * modules/readlinkat (Depends-on): Most dependencies are also needed if replacing readlinkat. fstatat is different, as it is needed only if replacing an existing readlinkat. 2020-12-13 Bruno Haible spawn-pipe: Fix hanging processes on Windows (regression 2020-11-30). * lib/spawn-pipe.c (create_pipe): After spawning the subprocess, close the stdin_handle and/or stdout_handle. 2020-12-12 Bruno Haible Fix gnulib-tool error when some modules occur in tests/. * doc/gnulib.texi (Specification): Update statistics. (Autoconf macros): Don't suggest to use AC_LIBOBJ in a .m4 file. (Using AC_LIBOBJ): New section. * check-AC_LIBOBJ: New file. * modules/fnmatch-gnu (Files): Add lib/fnmatch.c. * modules/fopen-gnu (Files): Add lib/fopen.c. * modules/memmem (Files): Add lib/memmem.c. * modules/renameat (Files): Add lib/at-func2.c. * modules/strcasestr (Files): Add lib/strcasestr.c. * modules/strstr (Files): Add lib/strstr.c. 2020-12-11 Bruno Haible sh-quote, execute, spawn-pipe, etc.: Make better use of 'const'. * lib/sh-quote.h (shell_quote_argv): Does not need write access to the elements of argv. * lib/sh-quote.c (shell_quote_argv): Likewise. * lib/windows-spawn.h (prepare_spawn): Add 'const' the argument type and the return type. * lib/windows-spawn.c (prepare_spawn): Likewise. * lib/os2-spawn.h (prepare_spawn): Likewise. * lib/os2-spawn.c (prepare_spawn): Likewise. * lib/execute.h (execute): Does not need write access to the elements of prog_argv. * lib/execute.c (execute): Likewise. * lib/spawn-pipe.h (create_pipe_out, create_pipe_in, create_pipe_bidi): Likewise. * lib/spawn-pipe.c (create_pipe, create_pipe_bidi, create_pipe_in, create_pipe_out): Likewise. * lib/pipe-filter.h (pipe_filter_ii_execute, pipe_filter_gi_create): Likewise. * lib/pipe-filter-ii.c (pipe_filter_ii_execute): Likewise. * lib/pipe-filter-gi.c (pipe_filter_gi_create): Likewise. * lib/javaexec.h (execute_fn): Does not need write access to the elements of prog_argv. * lib/javaexec.c (execute_java_class): Update variable types and remove casts to 'char *'. * lib/csharpexec.h (execute_fn): Does not need write access to the elements of prog_argv. * lib/csharpexec.c (execute_csharp_using_mono, execute_csharp_using_sscli): Update variable types and remove casts to 'char *'. * lib/javacomp.c (compile_using_envjavac, compile_using_gcj, compile_using_javac, compile_using_jikes, is_envjavac_gcj, is_envjavac_gcj43, is_gcj_present, is_gcj_43, is_javac_present, is_jikes_present): Update variable types and remove casts to 'char *'. * lib/javaversion.c (execute_and_read_line): Does not need write access to the elements of prog_argv. * lib/csharpcomp.c (compile_csharp_using_mono, compile_csharp_using_sscli): Update variable types and remove casts to 'char *'. * tests/test-sh-quote.c (main): Update variable types and remove casts to 'char *'. * tests/test-execute-main.c (main): Update variable types and remove casts to 'char *'. * tests/test-spawn-pipe-main.c (test_pipe): Update variable types and remove casts to 'char *'. * NEWS: Mention the changes. 2020-12-11 Bruno Haible execute-tests: Fix compilation error with MSVC. * tests/test-execute-child.c (is_device): With _fstat, use 'struct _stat', not 'struct stat'. 2020-12-11 Paul Eggert vararrays: just use 2.70 * m4/vararrays.m4 (AC_C_VARARRAYS): Do not override Autoconf 2.70 and later, since Autoconf 2.70 matches Gnulib now. sys_types: just use 2.70 * m4/sys_types_h.m4 (AC_HEADER_MAJOR): Reindent to match Autoconf sources. Use Autoconf 2.70 as a prerequisite, not 2.69c. stdint: port to Autoconf 2.70 * m4/stdint.m4 (gl_STDINT_H): Check for inttypes.h and sys/types.h instead of assuming that AC_INCLUDES_DEFAULT does it. The old code relied on AC_INCLUDES_DEFAULT being called and setting ac_cv_header_inttypes_h and ac_cv_header_sys_types_h, but this does not occur in Autoconf 2.70. pid_t.m4: just use 2.70 * m4/pid_t.m4 (AC_TYPE_PID_T): Use Autoconf 2.70 as a prerequisite, not 2.69c. largefile: just use 2.70 * m4/largefile.m4 (_AC_SYS_LARGEFILE_TEST_INCLUDES): Use Autoconf 2.70 as a prerequisite, not 2.69c. AC_C_RESTRICT: update from Autoconf * m4/gnulib-common.m4 (gl_PROG_CC_C99): Use Autoconf 2.70 as a prerequisite, not 2.69c, since 2.70 is now out. (AC_C_RESTRICT): Define only for 2.70 or earlier. Try __restrict__ before __restrict. extensions: update from Autoconf * m4/extensions.m4 (AC_CHECK_INCLUDES_DEFAULT): Provide a default implementation for Autoconf 2.69 or earlier. (AC_USE_SYSTEM_EXTENSIONS): Copy from Autoconf git. Define only if Autoconf 2.70 or earlier, since 2.70.1 or later should be OK. alloca: update from Autoconf * m4/alloca.m4 (gl_PREREQ_ALLOCA): Trivial update to match Autoconf 2.70. 2020-12-11 Bruno Haible memchr: Work around memory overrun bug on AIX 7.2. * m4/memchr.m4 (gl_FUNC_MEMCHR): Test against AIX 7.2 bug. * doc/posix-functions/memchr.texi: Mention the AIX bug. 2020-12-11 Bruno Haible execute-tests: Fix compilation error on AIX in 32-bit mode. * tests/test-execute-child.c: In order to get the original definition of fstat, don't use '#undef fstat' and '#undef stat'. Instead, arrange to include the system's and use it before including other header files. 2020-12-10 Bruno Haible windows-spawn: Relicense under LGPLv2+. * modules/windows-spawn (License): Change to LGPLv2+. 2020-12-10 Bruno Haible execute, spawn-pipe: Fix memory leak on native Windows. * lib/windows-spawn.h (prepare_spawn): Add a second parameter. * lib/windows-spawn.c: Don't include xalloc.h. (quoted_arg_length, quoted_arg_string): New functions, extracted from prepare_spawn. (prepare_spawn): Use malloc instead of XNMALLOC. Allocate memory for all elements of *new_argv together. * modules/windows-spawn (Depends-on): Remove xalloc. Add malloc-posix. * lib/os2-spawn.h (prepare_spawn): Add a second parameter. * lib/os2-spawn.c: Don't include xalloc.h. (prepare_spawn): Use malloc instead of XNMALLOC. Allocate memory for all elements of *new_argv together. * lib/execute.c: Include xalloc.h. (execute): Check return value of prepare_spawn. Free the memory allocated by prepare_spawn. * modules/execute (Depends-on): Add xalloc-die. * lib/spawn-pipe.c: Include xalloc.h. (create_pipe): Check return value of prepare_spawn. Free the memory allocated by prepare_spawn. * modules/spawn-pipe (Depends-on): Add xalloc-die. 2020-12-10 Bruno Haible findprog-in: Relicense under LGPLv2+. Paul Smith's approval is in . * modules/findprog-in (License): Change to LGPLv2+. 2020-12-10 Bruno Haible findprog-in: Don't exit upon out-of-memory. * lib/findprog.h (find_in_given_path): Document ENOMEM as possible error code. * lib/findprog-in.c: Don't include xalloc.h. (find_in_given_path): Call concatenated_filename, not xconcatenated_filename. Call strdup, not xstrdup. Upon out-of-memory, return NULL with errno set. * modules/findprog-in (Depends-on): Remove xconcat-filename, xalloc. Add concat-filename, strdup-posix, malloc-posix. 2020-12-09 Bruno Haible fmaf: Work around a bug on FreeBSD 12.2/arm. * m4/fmaf.m4 (gl_FUNC_FMAF_WORKS): Add one more test. * doc/posix-functions/fmaf.texi: Mention the FreeBSD bug. 2020-12-09 Bruno Haible threadlib: Fix test-fstrcmp failure on FreeBSD 11. * m4/threadlib.m4 (gl_THREADLIB_BODY): When weak symbols are not present on FreeBSD, define PTHREAD_IN_USE_DETECTION_HARD. * lib/glthread/threadlib.c: Include . (glthread_in_use): For FreeBSD, provide an alternative implementation that uses pthread_key_create. 2020-12-09 Bruno Haible math C++ tests: Fix compilation error in with clang >= 7 on FreeBSD. * lib/math.in.h (isnan): For clang >= 7 on FreeBSD, declare 'rpl_isnan', not 'isnan'. 2020-12-08 Bruno Haible std-gnu11: Make compatible with Autoconf 2.70. * m4/std-gnu11.m4: Disable the entire file if Autoconf >= 2.70 is in use. 2020-12-08 Bruno Haible argp: Avoid undefined behaviour when invoking qsort(). This fixes a test-argp-2.sh test failure on macOS and FreeBSD. Reported by Jeffrey Walton in . * lib/argp-help.c (group_cmp): Remove third argument. (hol_sibling_cluster_cmp, hol_cousin_cluster_cmp): New functions, based upon hol_cluster_cmp. (hol_cluster_cmp): Use hol_cousin_cluster_cmp. (hol_entry_cmp): Rewritten to implement a total order. 2020-12-08 Bruno Haible argp: Improve comments. * lib/argp-help.c: Add sectioning comments. Write NULL to designate a null pointer. (struct hol_entry): Fix comment regarding sort order of group. (hol_entry_short_iterate, hol_entry_long_iterate): Add comment. (until_short, canon_doc_option, hol_entry_qcmp): Improve comment. (hol_cluster_is_child, argp_hol): Move functions. (HOL_ENTRY_PTRCMP): Remove unused macro. 2020-12-08 Bruno Haible argp: Don't pass invalid arguments to isspace() and isalnum(). * lib/argp-help.c (canon_doc_option): Cast character to 'unsigned int' before passing it to isspace() or isalnum(). 2020-12-08 Bruno Haible argp: Don't rely on undefined behaviour of _tolower(). Patch by Eric Blake . * lib/argp-help.c (hol_entry_cmp): Don't use _tolower on values that are not upper-case. Pass correct range to tolower. 2020-12-07 Bruno Haible unicodeio: Fix wrong result on FreeBSD. * lib/unicodeio.c (unicode_to_mb): Handle question mark fallback characters on all platforms. 2020-12-07 Bruno Haible get-rusage-data tests: Avoid test failure on FreeBSD/x86_64. * tests/test-get-rusage-data.c (main): Don't expect a strict increase on FreeBSD systems. 2020-12-07 Bruno Haible get-rusage-data: Fix link error on FreeBSD 12.2/arm64. * modules/get-rusage-data (configure.ac): Test whether sbrk exists. * lib/get-rusage-data.c (get_rusage_data_via_setrlimit): Define trivially of sbrk is not available. * doc/glibc-functions/sbrk.texi: Mention that the function does not exist in FreeBSD 12.2/arm64. * doc/glibc-functions/brk.texi: Likewise. 2020-12-07 Bruno Haible Correct interaction between gl_ANSI_CXX and AC_PROG_CXX. Suggested by Zack Weinberg in . * m4/ansi-c++.m4 (gl_ANSI_CXX): Mark AC_PROG_CXX as provided. * modules/uchar-c++-tests: Revert the workaround from 2020-08-18. 2020-12-07 Bruno Haible Tweak the Windows oldnames workaround. Reported by Daniel R. Hurtmans in . * lib/unistd.in.h: On native Windows, include and always. (getcwd): Use _GL_CXXALIAS_MDA_CAST. * lib/stdlib.in.h (putenv): Likewise. 2020-12-06 Paul Eggert doc: fix flat address space discussion * doc/gnulib-readme.texi (Other portability assumptions): Move the all-bits-zero assumption outside the flat address space section, since the two issues are independent. doc: document -static-libubsan more * doc/gnulib-readme.texi (High Quality): Document pros and cons of -static-libubsan a bit more. Mostly cons. 2020-12-06 Bruno Haible doc: Add more details regarding the undefined behaviour sanitizer. * doc/gnulib-readme.texi (High Quality): Describe -fsanitize-undefined-trap-on-error better. 2020-12-06 Bruno Haible Do the Windows oldnames workaround through the C++ GNULIB_NAMESPACE. Reported by Daniel R. Hurtmans in . * lib/c++defs.h (_GL_CXXALIAS_MDA_CAST): New macro. * lib/fcntl.in.h (creat, open): In C++ mode, when GNULIB_NAMESPACE is defined: 1. Define a symbol in this namespace. 2. Don't redirect using a preprocessor #define. * lib/math.in.h (j0, j1, jn, y0, y1, yn): Likewise. * lib/search.in.h (lfind, lsearch): Likewise. * lib/stdio.in.h (fcloseall, fdopen, fileno, getw, putw, tempnam): Likewise. * lib/stdlib.in.h (ecvt, fcvt, gcvt, mktemp, putenv): Likewise. * lib/string.in.h (memccpy, strdup): Likewise. * lib/sys_stat.in.h (chmod, umask): Likewise. * lib/time.in.h (tzset): Likewise. * lib/unistd.in.h (access, chdir, close, dup, dup2, execl, execle, execlp, execv, execve, execvp, execvpe, getcwd, getpid, isatty, lseek, read, rmdir, swab, unlink, write): Likewise. * lib/utime.in.h (utime): Likewise. * lib/wchar.in.h (wcsdup): Likewise. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize HAVE_DECL_FCLOSEALL. (gl_STDIO_H): Set HAVE_DECL_FCLOSEALL. * modules/stdio (Makefile.am): Substitute HAVE_DECL_FCLOSEALL. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_DECL_ECVT, HAVE_DECL_FCVT, HAVE_DECL_GCVT. (gl_STDLIB_H): Set HAVE_DECL_ECVT, HAVE_DECL_FCVT, HAVE_DECL_GCVT. * modules/stdlib (Makefile.am): Substitute HAVE_DECL_ECVT, HAVE_DECL_FCVT, HAVE_DECL_GCVT. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_DECL_EXECVPE. (gl_UNISTD_H): Set HAVE_DECL_EXECVPE. * modules/unistd (Makefile.am): Substitute HAVE_DECL_EXECVPE. * m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize HAVE_DECL_WCSDUP. (gl_WCHAR_H): Set HAVE_DECL_WCSDUP. * modules/wchar (Makefile.am): Substitute HAVE_DECL_WCSDUP. 2020-12-06 Bruno Haible doc: Mention some missing function declarations. * doc/glibc-functions/execvpe.texi: Mention the missing declaration on AIX. * doc/glibc-functions/fcloseall.texi: Mention the missing declaration on FreeBSD. * doc/pastposix-functions/ecvt.texi: Mention the missing declaration on Cygwin. * doc/pastposix-functions/fcvt.texi: Likewise. * doc/pastposix-functions/gcvt.texi: Likewise. 2020-12-06 Bruno Haible doc: Tweak example. * doc/intprops.texi (Checking Integer Overflow): Use 'printf', not 'print'. 2020-12-06 Bruno Haible filenamecat-tests: Use idx_t for nonnegative ptrdiff_t variables. * tests/test-filenamecat.c: Include idx.h. (main): Mark prefixlen as nonnegative. * modules/filenamecat-tests (Depends-on): Add idx. 2020-12-06 Bruno Haible time_rz: Use idx_t for nonnegative ptrdiff_t variables. * lib/time_rz.c: Include idx.h. (save_abbr): Mark zone_size as nonnegative. * modules/time_rz (Depends-on): Add idx. 2020-12-06 Bruno Haible parse-datetime: Use idx_t for nonnegative ptrdiff_t variables. * lib/parse-datetime.y: Include idx.h. (textint): Mark digits as nonnegative. (parser_control): Mark dates_seen, days_seen, local_zones_seen, dsts_seen, times_seen, zones_seen as nonnegative. (lookup_word): Mark wordlen as nonnegative. (yylex): Mark count as nonnegative. (parse_datetime2): Mark tzsize as nonnegative. * modules/parse-datetime (Depends-on): Add idx. 2020-12-06 Bruno Haible fnmatch: Use idx_t for nonnegative ptrdiff_t variables. * lib/fnmatch.c: Include idx.h. In glibc, define idx_t directly. * lib/fnmatch_loop.c (EXT): Mark slen, new_used, plensize as nonnegative. * modules/fnmatch (Depends-on): Add idx. 2020-12-06 Bruno Haible c-stack: Use idx_t for nonnegative ptrdiff_t variables. * lib/c-stack.c: Include idx.h. (die): Mark buflen as nonnegative. * modules/c-stack (Depends-on): Add idx. 2020-12-06 Bruno Haible backupfile: Use idx_t for nonnegative ptrdiff_t variables. * lib/backupfile.c: Include idx.h. (numbered_backup): Mark base_offset as nonnegative. (backupfile_internal): Likewise. * modules/backup-rename (Depends-on): Add idx. * modules/backupfile (Depends-on): Likewise. 2020-12-05 Paul Eggert doc: fix curved quotes issue * doc/gnulib.texi: Set txicodequoteundirected and txicodequotebacktick so that ` and ' in examples do not generate curved single quotes that do the wrong thing when cut and pasted. doc: mention static and dynamic checking * doc/gnulib-readme.texi (High Quality): Add a bit of advice for static and dynamic checking. intprops: Add INT_ADD_OK etc. * doc/intprops.texi (Checking Integer Overflow): New section. * lib/intprops.h: From a suggestion by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2020-12/msg00051.html (SAFE_INT_ADD, SAFE_INT_SUBTRACT, SAFE_INT_MULTIPLY): New macros. doc: move exotic platfroms to Target Platforms * doc/gnulib-intro.texi (Supported Platforms) (Formerly Supported Platforms, Unsupported Platforms): New subsections, split off from Target Platforms. (Unsupported Platforms): Move the exotic-platform stuff here ... * doc/gnulib-readme.texi (Exotic platforms): ... from this removed section. doc: mention intptr_t etc. and IBM i * doc/gnulib-readme.texi (Other portability assumptions): Mention intptr_t and uintptr_t, and that arithmetic on them works in the usual way. (Exotic platforms): New section, containing material from the old 'Integer Portability' section. Also mention IBM i. * doc/intprops.texi (Wraparound Arithmetic): Say that the macros work on unsigned integers too. (Integer Portability): Remove. 2020-12-04 Bruno Haible utime: Fix a test failure on macOS 10.13. Reported by Martin Storsjö in . * m4/utime.m4 (gl_FUNC_UTIME): Test whether utime handles trailing slashes on files. * lib/utime.c (utime): Add alternative implementation for Unix platforms. * modules/utime (Depends-on): Add stat. * doc/posix-functions/utime.texi: Mention the macOS 10.13 bug. * doc/posix-functions/lstat.texi: Mention that macOS 10.13 also has the trailing-slash bug. * doc/posix-functions/open.texi: Likewise. * doc/posix-functions/stat.texi: Likewise. * doc/posix-functions/symlink.texi: Likewise. 2020-12-04 Paul Eggert intprops: update doc and mention Unisys * doc/gnulib-readme.texi (Other portability assumptions): Also mention ptrdiff_t when talking about widths and overflow. * doc/intprops.texi (Integer Properties): Summarize new section. (Arithmetic Type Properties): Document that EXPR_SIGNED no longer evaluates its argument. (Integer Bounds): Fix typo. (Wraparound Arithmetic): Remove obsolete comment about efficiency. Document that the _WRAPV macros now support pointers to unsigned integers. (Integer Range Overflow): Update SEI CERT citation. (Integer Portability): New subsection, which mentions the oddball Unisys platforms as non-Gnulib targets. 2020-12-03 Bruno Haible idx: Clarify that idx_t always behaves like a signed type. Suggested by Paul Eggert in . * lib/idx.h: Clarify that idx_t always behaves like a signed type. Don't test UNSIGNED_IDX_T. 2020-12-03 Bruno Haible idx: New module. * lib/idx.h: New file. * modules/idx: New file. * lib/canonicalize-lgpl.c: Include idx.h. Use idx_t instead of ptrdiff_t. * lib/canonicalize.c: Likewise. * modules/canonicalize-lgpl (Depends-on): Add idx. * modules/canonicalize (Depends-on): Likewise. 2020-12-03 Bruno Haible fprintf-posix-tests: Avoid a test failure on macOS 10.13. Reported by Martin Storsjö in . * tests/test-fprintf-posix3.c: Skip the test on macOS. (main): Return a different exit code at each point. Allow 100 KB extra memory consumption. * tests/test-fprintf-posix3.sh: Update. Remove the "get_rusage_as() doesn't work" diagnostic. 2020-12-02 Paul Eggert canonicalize: refactor can_mode flag * lib/canonicalize.c (MULTIPLE_BITS_SET): Remove, replacing with ... (multiple_bits_set): ... this new static function. Uses changed. (canonicalize_filename_mode): Refactor for clarity to avoid modifying the CAN_MODE argument. canonicalize: prefer signed integer types * lib/canonicalize.c: Include stddef.h, for ptrdiff_t. (seen_triple, canonicalize_filename_mode): Prefer signed to unsigned types where either will do, as they avoid some glitches in comparisons and can trap on overflow when debugging. canonicalize: fix most of another EOVERFLOW issue * lib/canonicalize.c (canonicalize_filename_mode): Do not call stat if fewer than 20 symlinks have been traversed. This avoids EOVERFLOW failure in the common case where there are not that many symlinks, while continuing to catch loops (or fail due to EOVERFLOW) in the unusual case when there are many symlinks to traverse. canonicalize: do not assume symlinks have st_ino * lib/canonicalize.c (canonicalize_filename_mode): When checking for loops, use st_dev and st_ino from the parent directory not from the symlink, as pre-2017 POSIX says these members are not reliable for symlinks. Couple this with START (the remaining file name to be resolved), not NAME (the whole file name with START as its suffix). * modules/canonicalize (Depends-on): Depend on stat, not lstat. canonicalize: fix EOVERFLOW bug * lib/canonicalize.c (canonicalize_filename_mode): When testing whether a directory entry is a symbolic link, or a directory or other, do not use lstat or stat or areadlink_with_size. Just use areadlink, as this suffices and it avoids the EOVERFLOW problem that lstat and stat have. * modules/canonicalize (Depends-on): Depend on areadlink instead of areadlink-with-size and stat. canonicalize-lgpl: fix EOVERFLOW bug * lib/canonicalize-lgpl.c: Do not include . (__realpath): Do not use lstat. Just use readlink, as this suffices and it avoids the EOVERFLOW problem that lstat has. * modules/canonicalize-lgpl (Depends-on): Remove lstat, sys_stat. 2020-12-02 Bruno Haible strsignal-tests: Fix test failure on macOS 10.13. Reported by Martin Storsjö in . * tests/test-strsignal.c (ASSERT_DESCRIPTION): Allow the actual result to be longer than the expected result. 2020-12-02 Bruno Haible Fix compilation errors in test-math-c++.cc on FreeBSD 12.2/arm64. * lib/math.in.h (_GL_INCLUDING_MATH_H): New macro, to work around recursive self-include problem on FreeBSD 12.2 in C++ mode. 2020-12-02 Bruno Haible spawn-pipe: Allow caller to specify directory for the subprocess. * lib/spawn-pipe.h (create_pipe_out, create_pipe_in, create_pipe_bidi): Add directory argument. * lib/spawn-pipe.c: Include canonicalize.h, filename.h, findprog.h. (create_pipe): Add directory argument. If specified, resolve the program file name and make it absolute, first. Pass the directory to spawnpvech and posix_spawn_file_actions_addchdir. (create_pipe_bidi, create_pipe_in, create_pipe_out): Add directory argument. * modules/spawn-pipe (Depends-on): Add canonicalize, filename, findprog-in, posix_spawn, posix_spawn_file_actions_addchdir. * tests/test-spawn-pipe-main.c (test_pipe): Update. * NEWS: Mention the change. * lib/csharpcomp.c (compile_csharp_using_mono, compile_csharp_using_sscli): Update. * lib/javacomp.c (is_envjavac_gcj, is_envjavac_gcj43, is_gcj_present, is_gcj_43): Update. * lib/javaversion.c (execute_and_read_line): Update. * lib/pipe-filter-gi.c (pipe_filter_gi_create): Update. * lib/pipe-filter-ii.c (pipe_filter_ii_execute): Update. 2020-12-02 Bruno Haible execute: Allow caller to specify directory for the subprocess. * lib/execute.h (execute): Add directory argument. * lib/execute.c: Include canonicalize.h, filename.h, findprog.h. (execute): Add directory argument. If specified, resolve the program file name and make it absolute, first. Pass the directory to spawnpvech and posix_spawn_file_actions_addchdir. * modules/execute (Depends-on): Add canonicalize, filename, findprog-in, posix_spawn, posix_spawn_file_actions_addchdir. * tests/test-execute-main.c: Add test for passing a directory. * tests/test-execute-child.c: Likewise. * tests/test-execute.sh: Update. * modules/execute-tests (Depends-on): Add mkdir. * NEWS: Mention the change. * lib/csharpcomp.c (compile_csharp_using_sscli): Update. * lib/csharpexec.c (execute_csharp_using_mono, execute_csharp_using_sscli): Update. * lib/javacomp.c (compile_using_envjavac, compile_using_gcj, compile_using_javac, compile_using_jikes, is_javac_present, is_jikes_present): Update. * lib/javaexec.c (execute_java_class): Update. 2020-12-01 Bruno Haible vma-iter: Add support for macOS11/arm64. Patch suggested by Hill Ma in and by Martin Storsjö in . * lib/vma-iter.c (vma_iterate): On arm64, use 64-bit type definitions. 2020-12-01 Bruno Haible spawn-pipe: Fix handling of OS/2 kLIBC. Reported by KO Myung-Hun in . * modules/spawn-pipe (configure.ac): Use the common idiom for recognizing the OS/2 operating system. 2020-11-30 Bruno Haible execute: Fix uninitialized use of errno. * lib/execute.c (execute): Preserve errno across several system calls. 2020-11-30 Bruno Haible access tests: Fix test failure on native Windows. * tests/test-access.c (main): Change permissions of f2 file before attempting to remove it. 2020-11-30 Paul Eggert faccessat: link with $(LIB_EACCESS) * modules/faccessat (Link:): Add $(LIB_EACCESS), since this module depends on euidaccess. 2020-11-30 Bruno Haible execute, spawn-pipe: Make multithread-safe on native Windows. * lib/windows-spawn.h: Include , . (dup_safer_noinherit, undup_safer_noinherit): Remove declarations. (spawnpvech): New declaration. * lib/windows-spawn.c: Include , , findprog.h. Don't include , cloexec.h, error.h, gettext.h. (_): Remove macro. (dup_noinherit, fd_safer_noinherit, dup_safer_noinherit, undup_safer_noinherit): Remove functions. (spawnpvech): New function. * modules/windows-spawn (Depends-on): Add findprog-in, stdint. Remove cloexec, dup2, error, gettext-h. * lib/execute.c: Include msvc-nothrow.h. (execute) [WIN32]: Use _get_osfhandle, spawnpvech instead of _spawnvpe. * lib/spawn-pipe.c: Include msvc-nothrow.h. (create_pipe) [WIN32]: Use _get_osfhandle, DuplicateHandle, spawnpvech instead of _spawnvpe. * modules/execute (Depends-on): Add msvc-nothrow. * modules/spawn-pipe (Depends-on): Likewise. 2020-11-30 Bruno Haible execute, spawn-pipe: Improve documentation. * lib/execute.h: Describe progname, prog_path, prog_argv. * lib/spawn-pipe.h: Likewise. 2020-11-30 Bruno Haible execute tests: Add more tests. * tests/test-execute-main.c: Add tests for reading, writing, isatty on inherited file descriptors >= 3. * tests/test-execute-child.c: Likewise. * tests/test-execute.sh: Update. 2020-11-30 Bruno Haible havelib: Fix for non-ELF platforms (regression 2019-11-17). Reported by comex in . * m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): On non-ELF platforms, don't expect an ELF header. 2020-11-29 Akim Demaille bitset: use integer_length in table implementation * lib/bitset/table.c (tbitset_list_reverse): Use BITSET_FOR_EACH_BIT_REVERSE. 2020-11-29 Akim Demaille bitset: use integer_length in list implementation * lib/bitset/list.c (lbitset_list_reverse): Use BITSET_FOR_EACH_BIT_REVERSE. 2020-11-29 Akim Demaille bitset: use integer_length in vector implementation * lib/bitset/array.c (vbitset_list_reverse): Use BITSET_FOR_EACH_BIT_REVERSE. 2020-11-29 Akim Demaille bitset: use integer_length in array implementation * modules/bitset (Depends-on): Add integer_length_l. * lib/bitset/base.h (bitset_fls_, BITSET_FOR_EACH_BIT_REVERSE): New. * lib/bitset/array.c (abitset_list_reverse): Use it. 2020-11-29 Akim Demaille bitset: style: use consistent names * bitset/list.c (lbitset_list_reverse): Rename 'bcount' as 'bitcnt', and 'boffset' as 'bitoff', for consistency with the other implementations. * bitset/table.c (tbitset_list_reverse): Likewise. 2020-11-29 Akim Demaille bitset: style: sort header * lib/bitset/base.h (bitset_ffs): Rename as... (bitset_ffs_): this. (bitset_ffs_, BITSET_FOR_EACH_BIT): Move to better places. 2020-11-29 Akim Demaille bitset: tests: check BITSET_FOR_EACH_REVERSE * tests/test-bitset.c (compare, check_zero, check_one_bit, check_ones): Check BITSET_FOR_EACH_REVERSE. 2020-11-29 Bruno Haible spawn-pipe tests: Fix test failure with MSVC. * tests/test-spawn-pipe-child.c: Include . (gl_msvc_invalid_parameter_handler): New function. (main): Set a global invalid-parameter handler. * modules/spawn-pipe-tests (Depends-on): Add msvc-inval, stdint. 2020-11-29 Bruno Haible execute: Add tests. * tests/test-execute.sh: New file. * tests/test-execute-main.c: New file. * tests/test-execute-child.c: New file. * modules/execute-tests: New file. 2020-11-29 Bruno Haible fcntl: Work around NetBSD bug with F_DUPFD_CLOEXEC. * m4/fcntl.m4 (gl_FUNC_FCNTL): Test whether F_DUPFD_CLOEXEC actually works. * lib/fcntl.c (rpl_fcntl_DUPFD_CLOEXEC): On NetBSD, use the same fallback implementation as on Haiku. * tests/test-fcntl.c (main): Add a test whether F_DUPFD_CLOEXEC is effective. * doc/posix-functions/fcntl.texi: Mention the NetBSD bug. 2020-11-29 Bruno Haible spawn-pipe: Fix build on OS/2 kLIBC (regression 2020-11-28). * lib/os2-spawn.h: New file, based on lib/windows-spawn.h. * lib/os2-spawn.c: New file, based on lib/windows-spawn.c. * lib/spawn-pipe.c: On OS/2 kLIBC, include "os2-spawn.h". * lib/windows-spawn.c: Remove modifications for kLIBC. * modules/spawn-pipe (Files): Add the new files. (configure.ac): Arrange to compile os2-spawn.c on OS/2. 2020-11-28 Bruno Haible asyncsafe-spin: Fix compilation error with GCC on 32-bit SPARC. Reported by Paul Eggert in . * m4/sparcv8+.m4: New file. * modules/sparcv8+: New file. * modules/asyncsafe-spin (Depends-on): Add sparcv8+. 2020-11-28 Bruno Haible asyncsafe-spin: Fix build error with GCC on 32-bit SPARC. * lib/asyncsafe-spin.c: Don't use GCC >= 4.1 primitives on SPARC. 2020-11-28 Bruno Haible windows-spawn: New module. * lib/windows-spawn.h: Renamed from lib/w32spawn.h. Remove implementations. * lib/windows-spawn.c: Renamed from lib/w32spawn.h. * modules/windows-spawn: New file. * lib/execute.c: Include "windows-spawn.h" instead of "w32spawn.h". * lib/spawn-pipe.c: Likewise. * modules/execute (Files): Remove lib/w32spawn.h. (Depends-on): Add windows-spawn. Remove cloexec, msvc-nothrow, strpbrk, xalloc. (Makefile.am): Remove w32spawn.h from lib_SOURCES. * modules/spawn-pipe (Files): Remove lib/w32spawn.h. (Depends-on): Add windows-spawn. Remove cloexec, msvc-nothrow, strpbrk, xalloc. (Makefile.am): Remove w32spawn.h from lib_SOURCES. 2020-11-27 Bruno Haible ssfmalloc tests: Port to macOS 11. * tests/test-ssfmalloc.c (PAGESIZE_MAX): Set to 16384, not 8192. 2020-11-26 Bruno Haible Fix dependencies of modules that use '_exit' on native Windows. Reported by Jim Meyering in . * modules/_Exit (Depends-on): Add unistd. * modules/closein (Depends-on): Likewise. * modules/closeout (Depends-on): Likewise. * modules/forkpty (Depends-on): Likewise. * modules/posix_spawn-internal (Depends-on): Likewise. * modules/savewd (Depends-on): Likewise. * modules/stat-time-tests (Depends-on): Likewise. 2020-11-26 Bruno Haible raise-tests: Fix compilation error on MSVC (regression 2020-11-25). * modules/raise-tests (Depends-on): Add unistd. * doc/posix-functions/_exit.texi: Mention the 'unistd' module. 2020-11-25 Jim Meyering setlocale-tests: do not trigger gcc's -Wanalyzer-possible-null-argument * tests/test-setlocale1.c (main): Assert that each strcmp argument is non-NULL, since we don't bother handing strdup failure. raise-tests: avoid GCC 11's new exit-from-signal-handler warning gcc's -Wanalyzer-unsafe-call-within-signal-handler exposed this. * tests/test-raise.c: Include unistd.h. (handler): Use _exit, not exit. 2020-11-23 Bruno Haible Use the correct printf format attribute for mingw. Reported by Reuben Thomas in . * modules/vfprintf-posix (configure.ac): Define GNULIB_VFPRINTF_POSIX. * modules/vprintf-posix (configure.ac): Define GNULIB_VPRINTF_POSIX. * lib/stdio.in.h (_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM): New macros. (_GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD): Renamed from _GL_ATTRIBUTE_FORMAT_PRINTF. Use _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD. (_GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM): Use _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM. * modules/vasnprintf (Depends-on): Add stdio. * lib/vasnprintf.h: Include . (asnprintf, vasnprintf): Use the standard printf format attribute. * modules/xvasprintf (Depends-on): Add stdio. * lib/xvasprintf.h: Include . (xasprintf, xvasprintf): Use the standard printf format attribute. * modules/xprintf (Depends-on): List stdio first. * lib/xprintf.h (xprintf, xvprintf): Use a printf format attribute that depends on GNULIB_VPRINTF_POSIX. (xfprintf, xvfprintf): Use a printf format attribute that depends on GNULIB_VFPRINTF_POSIX. * modules/c-vasnprintf (Depends-on): Add stdio. * lib/c-vasnprintf.h: Include . (c_vasnprintf): Use the standard printf format attribute. * modules/c-vasprintf (Depends-on): Add stdio. * lib/c-vasprintf.h: Include . (c_asprintf, c_vasprintf): Use the standard printf format attribute. * modules/c-vsnprintf (Depends-on): Add stdio. * lib/c-vsnprintf.h: Include . (c_vsnprintf): Use the standard printf format attribute. * modules/c-snprintf (Depends-on): Add stdio. * lib/c-snprintf.h: Include . (c_snprintf): Use the standard printf format attribute. * modules/c-xvasprintf (Depends-on): Add stdio. * lib/c-xvasprintf.h: Include . (c_xasprintf, c_xvasprintf): Use the standard printf format attribute. * modules/error (Depends-on): Depend on stdio always. * lib/error.h: Include . (_GL_ATTRIBUTE_SPEC_PRINTF): Remove macro. (error, error_at_line): Use a printf format attribute that depends on GNULIB_VFPRINTF_POSIX. * lib/error.c (_GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD): Renamed from _GL_ATTRIBUTE_FORMAT_PRINTF. * modules/verror (Depends-on): Add stdio. * lib/verror.h: Include . Don't include "error.h". (verror, verror_at_line): Use the standard printf format attribute. * lib/verror.c: Include "error.h". * modules/argp (Depends-on): Add stdio. * lib/argp.h (argp_error, __argp_error, argp_failure, __argp_failure): Use a printf format attribute that depends on GNULIB_VFPRINTF_POSIX. * modules/libtextstyle-optional (Depends-on): Add stdio. * lib/textstyle.in.h (ostream_printf, ostream_vprintf): Use the standard printf format attribute. * tests/test-nonblocking-misc.h (dbgfprintf): Use the standard printf format attribute. 2020-11-23 Pádraig Brady selinux-at, selinux-h: use const correct declarations * lib/se-selinux.in.h: Use const for "set" functions, to match current selinux, and support cleaner user code. * lib/selinux-at.c: Likewise. * lib/selinux-at.h: Likewise. 2020-11-22 Paul Eggert canonicalize-lgpl: fix memory leak * lib/canonicalize-lgpl.c (__realpath): Fix unlikely memory leak, which could have occurred if BUF was so large that malloc was called. Do this by allocating EXTRA_BUF and BUF at the same time; this eliminates the need to free BUF separately. 2020-11-22 Bruno Haible Fix missing module dependencies to 'xalloc' (regression 2020-10-19). * modules/xvasprintf (Depends-on): Add xalloc. * modules/pipe-filter-gi (Depends-on): Likewise. * modules/execute (Depends-on): Likewise, for w32spawn.h. * modules/spawn-pipe (Depends-on): Likewise. 2020-11-22 Jose E. Marchesi bootstrap: add option hooks * build-aux/bootstrap (bootstrap_print_option_usage_hook): Define. (bootstrap_option_hook): Likewise. (usage): Call bootstrap_print_option_usage_hook. 2020-11-22 Bruno Haible argp: Don't break getprogname on non-glibc systems. * m4/argp.m4 (gl_ARGP): Don't expect to exist when testing for program_invocation_name and program_invocation_short_name. 2020-11-22 Bruno Haible doc: Document . * doc/glibc-headers/link.texi: New file. * doc/gnulib.texi: Include it. 2020-11-22 Bruno Haible doc: Add references to the LSB. * doc/glibc-functions/*.texi: Add references to LSB 5.0. * doc/posix-functions/*.texi: Likewise. 2020-11-22 Bruno Haible doc: Fix a makeinfo warning (regression 2020-11-03). * doc/posix-functions/aligned_alloc.texi: Add missing @item. 2020-11-21 Paul Eggert parse-datetime: fix printf format typo * lib/parse-datetime.y (parse_datetime2): Fix format typo in previous patch to this file. Problem reported by Chris Elvidge in . setlocale-null-tests: work around GCC bug 44511 * tests/test-setlocale_null-mt-all.c: * tests/test-setlocale_null-mt-one.c: Ignore -Wreturn-type, to work around GCC bug 44511. nl_langinfo-tests: work around GCC bug 44511 * tests/test-nl_langinfo-mt.c: Ignore -Wreturn-type, to work around a GCC bug . Problem reported for GNU grep by Andreas Schwab . selinux-h: add stubs for selabel_open etc. Coreutils with --enable-gcc-warnings does not build on Ubuntu 20.10 because matchpathcon is deprecated in favor of selabel_open etc., so this patch adds stubs for these functions. * lib/se-label.c, lib/se-label.in.h, m4/selinux-label-h.m4: New files. * lib/se-selinux.in.h (struct selinux_opt): Add incomplete decl, as it is needed for selabel_open and selinux/selinux.h declares this type here. * modules/selinux-h (Files): Add the new files. (configure.ac): Add gl_HEADERS_SELINUX_LABEL_H. (lib_SOURCES): Add se-label.in.h, se-label.c. (BUILT_SOURCES): Add $(SELINUX_LABEL_H). (selinux/label.h): New rule, mimicking selinux/context.h. (MOSTLYCLEANFILES): Add selinux/label.h, selinux/label.h-t. (Include): Add selinux/label.h. 2020-11-21 Bruno Haible Update after 'test-driver' in Automake changed. * build-aux/test-driver.diff: Rebase. 2020-11-21 Daiki Ueno read-file: remove dead assignment * lib/read-file.c (fread_file): Remove dead assignment when RF_SENSITIVE is set, flagged by clang-analyzer. 2020-11-19 Akim Demaille bitset: tests: exercise the stats too * tests/test-bitset.c: Display the stats at the end of the test. * lib/bitset/stats.c (bitset_log_histogram_print): When diplaying the last bin, display "256-..." rather that "256-511", since the last bin does count item greater than or equal to 256. 2020-11-19 Akim Demaille bitset: tests: try harder to break it * tests/test-bitset.c (compare): Be ready to use bitsets larger than BITSET_LIST_SIZE. (main): Likewise. While at it, also exercise super small bitsets. 2020-11-19 Akim Demaille bitset: use ffs where possible in the vector implementation * lib/bitset/vector.c (vbitset_list): Use BITSET_FOR_EACH_BIT. 2020-11-19 Akim Demaille bitset: use ffs where possible in the table implementation * lib/bitset/table.c (tbitset_list): Use BITSET_FOR_EACH_BIT. 2020-11-19 Akim Demaille bitset: check empty and full bitsets * tests/test-bitset.c (check_zero, check_ones): New. (check_attributes): Use them. 2020-11-19 Akim Demaille bitset: be sure to always return a value * lib/bitset/array.c (abitset_small_list): Always update *next and return a value. 2020-11-19 Siddhesh Poyarekar vcs-to-changelog: Expect spaces in file names Reported by Thierry Bothorel in , * build-aux/vcstocl/vcs_git.py (exec_git_cmd): Do not transform tabs to spaces. (list_changes): Use tabs to identify file names. 2020-11-17 Akim Demaille bitset: strengthen tests * tests/test-bitset.c (compare): Also check count. Deal only with random values, move the one-bit tests to... (check_one_bit): this new function. (check_attributes): Call it. 2020-11-17 Akim Demaille bitset: fix iteration over table bitsets * lib/bitset/table.c (tbitset_list): Update bitno when windex is. 2020-11-17 Akim Demaille bitset: rename internal details for consistency * lib/bitset/table.c: Rename all the EBITSET_ symbols as TBITSET_. 2020-11-17 Akim Demaille bitset: test: run deterministic tests on several bitset sizes * tests/test-bitset.c (check_attributes): Run it with small and large sizes. 2020-11-17 Akim Demaille bitset: use ffs where possible in the list implementation * lib/bitset/list.c (lbitset_list): Use BITSET_FOR_EACH_BIT. 2020-11-17 Akim Demaille bitset: use ffs where possible in array implementation * lib/bitset/array.c (abitset_small_list): Use BITSET_FOR_EACH_BIT. 2020-11-17 Bruno Haible posixcheck: Don't enable GNULIB_POSIXCHECK in C++ mode. Reported by Tom G. Christensen in . * m4/posixcheck.m4 (gl_POSIXCHECK): Don't define GNULIB_POSIXCHECK in C++ mode. 2020-11-17 Bruno Haible Fix error when GNULIB_POSIXCHECK is enabled (regression 2019-06-04). * lib/unistd.in.h (copy_file_range): Don't assume that copy_file_range is always declared. * m4/unistd_h.m4 (gl_UNISTD_H): Test whether copy_file_range is declared. 2020-11-17 Bruno Haible Fix link errors on AIX. * modules/clean-temp (Link): Link with $(LIBTHREAD). * modules/getumask (Link): Link with $(LIBTHREAD). * modules/getumask-tests (Makefile.am): Link test-getumask with $(LIBTHREAD). * modules/supersede (Link): Link with $(LIBTHREAD). * modules/supersede-tests (Makefile.am): Link test-supersede with $(LIBTHREAD). * modules/fatal-signal (Link): New section. * modules/execute (Link): New section. * modules/csharpexec (Link): Link with $(LIBTHREAD). * modules/javaexec (Link): Link with $(LIBTHREAD). * modules/spawn-pipe (Link): New section. * modules/spawn-pipe-tests (Makefile.am): Link test-spawn-pipe-main with $(LIBTHREAD). * modules/csharpcomp (Link): Link with $(LIBTHREAD). * modules/javacomp (Link): Link with $(LIBTHREAD). * modules/javaversion (Link): Link with $(LIBTHREAD). * modules/pipe-filter-gi (Link): New section. * modules/pipe-filter-gi-tests (Makefile.am): Link test-pipe-filter-gi1, test-pipe-filter-gi2-main with $(LIBTHREAD). * modules/pipe-filter-ii (Link): New section. * modules/pipe-filter-ii-tests (Makefile.am): Link test-pipe-filter-ii1, test-pipe-filter-ii2-main with $(LIBTHREAD). * modules/term-style-control (Link): New section. * modules/term-style-control-tests (Makefile.am): Link test-term-style-control-hello, test-term-style-control-yes with $(LIBTHREAD). * modules/wait-process (Link): New section. * modules/nonblocking-pipe-tests (Makefile.am): Link test-nonblocking-pipe-main with $(LIBTHREAD). * modules/nonblocking-socket-tests (Makefile.am): Link test-nonblocking-socket-main with $(LIBTHREAD). 2020-11-16 Bruno Haible Fix link errors on platforms with libunistring. * modules/c32isalnum (Link): New section. * modules/c32isalnum-tests (Makefile.am): Link test-c32isalnum with $(LIBUNISTRING). * modules/c32isalpha (Link): New section. * modules/c32isalpha-tests (Makefile.am): Link test-c32isalpha with $(LIBUNISTRING). * modules/c32isblank (Link): New section. * modules/c32isblank-tests (Makefile.am): Link test-c32isblank with $(LIBUNISTRING). * modules/c32iscntrl (Link): New section. * modules/c32iscntrl-tests (Makefile.am): Link test-c32iscntrl with $(LIBUNISTRING). * modules/c32isdigit (Link): New section. * modules/c32isdigit-tests (Makefile.am): Link test-c32isdigit with $(LIBUNISTRING). * modules/c32isgraph (Link): New section. * modules/c32isgraph-tests (Makefile.am): Link test-c32isgraph with $(LIBUNISTRING). * modules/c32islower (Link): New section. * modules/c32islower-tests (Makefile.am): Link test-c32islower with $(LIBUNISTRING). * modules/c32isprint (Link): New section. * modules/c32isprint-tests (Makefile.am): Link test-c32isprint with $(LIBUNISTRING). * modules/c32ispunct (Link): New section. * modules/c32ispunct-tests (Makefile.am): Link test-c32ispunct with $(LIBUNISTRING). * modules/c32isspace (Link): New section. * modules/c32isspace-tests (Makefile.am): Link test-c32isspace with $(LIBUNISTRING). * modules/c32isupper (Link): New section. * modules/c32isupper-tests (Makefile.am): Link test-c32isupper with $(LIBUNISTRING). * modules/c32isxdigit (Link): New section. * modules/c32isxdigit-tests (Makefile.am): Link test-c32isxdigit with $(LIBUNISTRING). * modules/unicodeio (Link): Mention $(LIBUNISTRING). * modules/unicodeio-tests (Makefile.am): Link test-unicodeio with $(LIBUNISTRING). 2020-11-16 Bruno Haible Fix link errors on platforms with libintl (e.g. Solaris and AIX). Reported by Tom G. Christensen in . * modules/getumask-tests (Makefile.am): Link test-getumask with $(LIBINTL). * modules/stack-tests (Makefile.am): Link test-stack with $(LIBINTL). * modules/supersede-tests (Makefile.am): Link test-supersede with $(LIBINTL). * modules/unicodeio-tests (Makefile.am): Link test-unicodeio with $(LIBINTL). 2020-11-16 Bruno Haible getumask: Document link dependencies. * modules/getumask (Link): New section. 2020-11-16 Bruno Haible Update link dependencies in modules after 2020-09-09 change. * modules/tempname (Link): Add $(LIB_CLOCK_GETTIME). * modules/mkdtemp (Link): Likewise. * modules/mkostemp (Link): Likewise. * modules/mkostemps (Link): Likewise. * modules/mkstemp (Link): Likewise. * modules/mkstemps (Link): Likewise. * modules/supersede (Link): Likewise. * modules/tmpfile (Link): Likewise. * modules/tmpfile-safer (Link): Likewise. 2020-11-15 Paul Eggert getumask-tests: port to Solaris 10 etc. Problem reported by Tom Christensen in: https://lists.gnu.org/r/bug-gnulib/2020-11/msg00062.html * modules/getumask-tests (test_getumask_LDADD): Add $(LIB_CLOCK_GETTIME). 2020-11-15 Akim Demaille bitset: use ffsl to accelerate iterations over set bits Suggested by Bruno Haible. * modules/bitset: Depend upon ffsl. * lib/bitset/base.h (bitset_ffs, BITSET_FOR_EACH_BIT): New. * lib/bitset/array.c (abitset_list): Use BITSET_FOR_EACH_BIT. 2020-11-15 Akim Demaille bitset: more tests * tests/test-bitset.c (compare): Make it clear that the random values should not be modified. Check bitset_first, bitset_last and BITSET_FOR_EACH. 2020-11-15 Akim Demaille bitset: fix the copy from lbitset to other types * lib/bitset/list.c (lbitset_copy): Rename as... (lbitset_copy_): this. (lbitset_copy): New. Dispatch to heterogeneous/homogeneous copy. 2020-11-15 Akim Demaille bitset: making debug traces more useful * lib/bitset.c (bitset_print): Print the bitset type in verbose mode. bitset: comment changes * lib/bitset.c: Move some documenting comments to... * lib/bitset.h: here. * lib/bitset/array.c: Fix some comments. 2020-11-14 Paul Eggert careadlinkat: warn better about GCC bug 93644 * lib/careadlinkat.c (readlink_stk): When --enable-gcc-warnings is not in effect, use "#warning" to let builders know more clearly about GCC bug 93644, because the bug triggers even if no -W option is given to GCC. 2020-11-13 Jim Meyering hard-locale-tests: avoid a -Wstrict-prototypes warning * tests/locale.c (main): Placate gcc's -Wstrict-prototypes by changing "main ()" to "main (void)". This was the only case that triggered a warning when building grep with --enable-gcc-warnings. 2020-11-11 Paul Eggert time_rz: simplify CVE-2017-7476 fix * lib/time_rz.c: Do not include limits.h; I think it was included under the mistaken impression that limits.h defines SIZE_MAX. (SIZE_MAX): Remove. (save_abbr): Put string length into a ptrdiff_t variable, so that the size comparison works naturally. This fixes CVE-2017-7476 in a cleaner way. parse-datetime: streamline overflow checking When parse-datetime.y’s overflow code was written, INT_ADD_WRAPV did not work for unsigned destinations, and since time_t might be unsigned that meant it did not work for time_t destinations. This limitation of INT_ADD_WRAPV has been fixed, so we can now streamline parse-datetime.y a bit. * lib/parse-datetime.y: Do not include limits.h, as LONG_MAX has not been used for a while. (yylex, parse_datetime2): Assume C99 declarations after statements. (yyles): Use INT_SUBTRACT_WRAPV instead of an explicit comparison to TYPE_MINIMUM. (parse_datetime2): No need for time_overflow now that INT_ADD_WRAPV works for unsigned results. parse-datetime-tests: port to Alpine Linux 3.12.1 * tests/test-parse-datetime.c: Include errno.h for errno, and unistd.h for _SC_TZNAME_MAX and sysconf. (main): In the outlandishly-long time zone abbreviation test, do not exceed TZNAME_MAX as this has undefined behavior, and on Alpine Linux 3.12.1 it makes the test fail. 2020-11-09 Pádraig Brady mgetgroups: avoid warning with clang * lib/mgetgroups.c: Xcode-12.1 identifies as GCC 4.2.1, so disable -Wpointer-sign for all clang versions. 2020-11-07 Bruno Haible gnulib-tool: Fix link error with 'version-etc' (regression 2020-05-29). Reported by Simon Josefsson in . * gnulib-tool (func_emit_tests_Makefile_am): Add libtests.a to LDADD a third time, after the second occurrence of ../lib/libgnu.a. * pygnulib/GLEmiter.py (tests_Makefile_am): Likewise. 2020-11-04 Paul Eggert tests: pacify Sun C 5.9 Without these changes, Sun C 5.9 (2009/11/22) issues complaints like “"test-nl_langinfo-mt.c", line 75: warning: statement not reached”. * tests/test-nl_langinfo-mt.c (thread1_func, thread2_func) (thread3_func, thread4_func, thread5_func, thread6_func, threadN_func): * tests/test-setlocale_null-mt-all.c (thread1_func, thread2_func): * tests/test-setlocale_null-mt-one.c (thread1_func, thread2_func): Remove unreachable ‘return NULL;’s. tests: port better to XLC 12.01 * tests/test-argmatch.c (CHECK): Do not use -1 as a subscript, even in code that is not executed, as IBM XLC 12.01 complains "The subscript -1 is less than zero." * tests/test-stdint.c (verify_width): Pass an (unused) 3rd argument to _GL_VERIFY, as ISO C requires. Otherwise, IBM XLC 12.01 complains "The invocation of macro _GL_VERIFY contains fewer arguments than are required by the macro definition." 2020-11-03 Bruno Haible aligned-malloc: Use fixes from the new modules. * modules/aligned-malloc (Depends-on): Add posix_memalign, aligned_alloc, memalign. (configure.ac): Use AC_CHECK_FUNCS_ONCE. 2020-11-03 Bruno Haible aligned_alloc: Add tests. * tests/test-aligned_alloc.c: New file. * modules/aligned_alloc-tests: New file. aligned_alloc: New module. * lib/stdlib.in.h (aligned_alloc): New declaration. * lib/aligned_alloc.c: New file. * m4/aligned_alloc.m4: New file. * m4/stdlib_h.m4 (gl_STDLIB_H): Test whether aligned_alloc is declared. (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_ALIGNED_ALLOC, HAVE_ALIGNED_ALLOC, REPLACE_ALIGNED_ALLOC. * modules/stdlib (Makefile.am): Substitute GNULIB_ALIGNED_ALLOC, HAVE_ALIGNED_ALLOC, REPLACE_ALIGNED_ALLOC. * modules/aligned_alloc: New file. * tests/test-stdlib-c++.cc (aligned_alloc): Check signature. * doc/posix-functions/aligned_alloc.texi: Mention the new module and the AIX bug. 2020-11-03 Bruno Haible posix_memalign: Add tests. * tests/test-posix_memalign.c: New file. * modules/posix_memalign-tests: New file. posix_memalign: New module. * lib/stdlib.in.h (posix_memalign): New declaration. * lib/posix_memalign.c: New file. * m4/posix_memalign.m4: New file. * m4/stdlib_h.m4 (gl_STDLIB_H): Test whether posix_memalign is declared. (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_POSIX_MEMALIGN, HAVE_POSIX_MEMALIGN, REPLACE_POSIX_MEMALIGN. * modules/stdlib (Makefile.am): Substitute GNULIB_POSIX_MEMALIGN, HAVE_POSIX_MEMALIGN, REPLACE_POSIX_MEMALIGN. * modules/posix_memalign: New file. * tests/test-stdlib-c++.cc (posix_memalign): Check signature. * doc/posix-functions/posix_memalign.texi: Mention the new module and the OpenBSD bug. 2020-11-03 Bruno Haible memalign: Add tests. * tests/test-memalign.c: New file. * modules/memalign-tests: New file. memalign: New module. * modules/memalign: New file. * doc/glibc-functions/memalign.texi: Mention the new module. 2020-11-03 Bruno Haible verify tests: Fix crash with GCC (regression 2020-11-02). * tests/test-verify.c (main): Fix initializer of s. 2020-11-03 Pádraig Brady mountlist: recognize more file system types as remote * lib/mountlist.c (ME_REMOTE): Sync previously unconsidered "remote" file systems from stat.c in coreutils. 2020-11-02 Bernhard Voelker verify tests: Fix -Wuninitialized warning (regression 2020-10-30). * tests/test-verify.c (main): Initialize state variable. Reported by Bruno Haible for GCC 5.4.0. 2020-11-02 Paul Eggert dfa.h: support inclusion from C++ * lib/dfa.h: Allow multiple inclusion, and inclusion from C++ code. The latter was suggested by Arnold Robbins. 2020-11-01 Bruno Haible ssfmalloc tests: Portability to Linux/PowerPC and Linux/SPARC. * tests/test-ssfmalloc.c: Include . (PAGESIZE_MAX): Set to 65536 on Linux/PowerPC. 2020-11-01 Bruno Haible verify tests: Fix compilation error with MSVC (regression 2020-10-30). * tests/test-verify.c (test_assume_noreturn): Fix declaration. 2020-11-01 Jim Meyering dfa-tests: test for today's invalid-merge fix * tests/test-dfa-invalid-merge.sh: New file. * modules/dfa-tests (Files): Add it. (TESTS): Add it. 2020-11-01 Norihiro Tanaka dfa: retain sequences of similar nodes in optimization DFA was merging similar nodes when it should not. For example, it would convert a+a+a to a+a. Now, a sequence of similar nodes is not merged. Problem reported by Gonzalo Padrino in https://bugs.gnu.org/44351 * lib/dfa.c (merge_nfa_state): Skip the follow for repetition in optimization. 2020-11-01 Jim Meyering test-dfa-match-aux.c: accept EREs, not BREs * tests/test-dfa-match-aux.c (main): Specify RE_SYNTAX_EGREP, not RE_SYNTAX_GREP, so tests can use ERE syntax rather than BRE. 2020-10-30 Bernhard Voelker verify tests: avoid -Wmissing-declarations warnings * tests/test-verify.c (test_assume_expressions): Add declaration. (test_assume_optimization): Likewise. (test_assume_noreturn): Likewise. (main): Move down after all other definitions. While at it, also call test_assume_expressions and test_assume_optimization as a runtime check. 2020-10-26 Paul Eggert sys_stat: update comments for S_IRWXUGO, S_IXUGO * lib/sys_stat.in.h (S_IXUGO, S_IRWXUGO): Update comments. Perhaps these macros should be removed, as they’re not in either POSIX or GNU. They could be moved to stat-macros.h, which would be cleaner in some sense. 2020-10-25 Bruno Haible ssfmalloc tests: Small tweaks. * tests/test-ssfmalloc.c: Add comments. (alloc_pages): Don't require PROT_EXEC bits. (block_sizes): Add more small sizes, for better coverage of ssfmalloc-bitmap.h. ssfmalloc tests: Portability to Minix. * modules/ssfmalloc-tests (Files): Add m4/mmap-anon.m4. (configure.ac): Invoke gl_FUNC_MMAP_ANON. * m4/mmap-anon.m4: Update comment. ssfmalloc: Portability to AIX. * modules/ssfmalloc (Include): Add ssfmalloc.h. (Link): New section. * modules/ssfmalloc-tests (Makefile.am): Link test-ssfmalloc with $(LIBTHREAD). ssfmalloc: Portability to Cygwin. * lib/ssfmalloc.h: Add parameter PAGESIZE_MAX. (pg_offset_t): Define depending on PAGESIZE_MAX. * tests/test-ssfmalloc.c: Undefine PAGESIZE. (PAGESIZE_MAX): New macro. ssfmalloc: Fix buffer overrun in bitmap search. * lib/ssfmalloc-bitmap.h (find_first_packet_set): Don't access the word *words_end. 2020-10-24 Paul Eggert doc: mention ‘restrict’ and C++ * doc/gnulib-readme.texi (C99 features assumed): Document that ‘restrict’ should be avoided in C++ code. 2020-10-20 Bernhard Voelker selinux-at, selinux-h: port to SELinux 3.1 The new release finally deprecated the typedef 'security_context_t', see . Use the simpler 'char *' instead. * lib/getfilecon.c (getfilecon): Adjust type of context parameter. (lgetfilecon): Likewise. (fgetfilecon): Likewise. (map_to_failure): Likewise. (rpl_getfilecon): Likewise. (rpl_lgetfilecon): Likewise. (rpl_fgetfilecon): Likewise. * lib/se-selinux.in.h (security_context_t): Remove typedef. (getcon): Adjust type of context parameter. (freecon): Likewise. (getfscreatecon): Likewise. (setfscreatecon): Likewise. (matchpathcon): Likewise. (getfilecon): Likewise. (lgetfilecon): Likewise. (fgetfilecon): Likewise. (setfilecon): Likewise. (lsetfilecon): Likewise. (fsetfilecon): Likewise. (security_check_context): Likewise. (security_check_context_raw): Likewise. (setexeccon): Likewise. (security_compute_create): Likewise. * lib/selinux-at.c (getfileconat): Likewise. (lgetfileconat): Likewise. (setfileconat): Likewise. (lsetfileconat): Likewise. * lib/selinux-at.h: Likewise. 2020-10-19 Bruno Haible xalloc-die: Fix link error with Solaris cc (regression 2020-07-27). * lib/xalloc.h (xalloc_die): Don't declare if GNULIB_XALLOC_DIE is 0. (xmalloc, xzalloc, xcalloc, xrealloc, x2realloc, xmemdup, xstrdup, XMALLOC, XNMALLOC, XZALLOC, XCALLOC, xnmalloc, xnrealloc, x2nrealloc, xcharalloc): Don't declare/define if GNULIB_XALLOC is 0. * modules/xalloc (configure.ac): Define GNULIB_XALLOC. * modules/xalloc-die (configure.ac): Define GNULIB_XALLOC_DIE. 2020-10-18 Bruno Haible ssfmalloc: Add tests. * tests/test-ssfmalloc.c: New file. * modules/ssfmalloc-tests: New file. ssfmalloc: New module. * lib/ssfmalloc.h: New file. * lib/ssfmalloc-bitmap.h: New file. * modules/ssfmalloc: New file. 2020-10-18 Bruno Haible wchar: Fix configure test result on some versions of AIX. Reported by Clément Chigot in . * m4/wchar_h.m4 (gl_WCHAR_H_INLINE_OK): Execute the test only on glibc systems. 2020-10-18 Bruno Haible time: Fix warning about asctime when asctime is not used. * lib/time.in.h (asctime_r, ctime, ctime_r): Fix _GL_WARN_ON_USE invocation. 2020-10-18 Bruno Haible *-list, *-oset, *-omap: Avoid a GCC warning (regression 2020-10-10). * lib/gl_anylinked_list2.h (gl_linked_iterator_free): Remove '_GL_ATTRIBUTE_CONST'. * lib/gl_anytree_list2.h (gl_tree_iterator_free): Likewise. * lib/gl_anytree_omap.h (gl_tree_iterator_free): Likewise. * lib/gl_anytree_oset.h (gl_tree_iterator_free): Likewise. * lib/gl_array_list.c (gl_array_iterator_free): Likewise. * lib/gl_array_omap.c (gl_array_iterator_free): Likewise. * lib/gl_array_oset.c (gl_array_iterator_free): Likewise. * lib/gl_carray_list.c (gl_carray_iterator_free): Likewise. 2020-10-18 Bruno Haible obstack: Fix a clang warning. * lib/obstack.c (print_and_abort): Mark as __attribute_noreturn__. 2020-10-16 Bruno Haible hash: Rename hash_delete to hash_remove. * lib/hash.h (hash_remove): Renamed from hash_delete. (hash_delete): New declaration. * lib/hash.c (hash_remove): Renamed from hash_delete. (hash_delete): New function. * tests/test-hash.c (main): Update. * lib/fts-cycle.c (leave_dir): Likewise. * NEWS: Mention the change. 2020-10-16 Bruno Haible hash, xhash: Make usable from C++. * lib/hash.h: Add extern "C". 2020-10-16 Bruno Haible hash, xhash: Move comments to the .h file. * lib/hash.c: Move comments meant for the user from here... * lib/xhash.c: ... and here... * lib/hash.h: ... to here. 2020-10-13 Philipp Klaus Krause (tiny change) Don't declare an intention to modify the return value of strerror. * tests/test-perror2.c (main): Assign the return value of strerror to a 'const char *' variable. 2020-10-11 Bruno Haible *printf: Avoid "expanded before it was required" warning. * m4/printf.m4 (gl_SNPRINTF_TRUNCATION_C99): Define through AC_DEFUN_ONCE. 2020-10-11 Benji Wiebe getprogname: Add support for OpenServer 6 and UnixWare 7. * lib/getprogname.c: Include , , . (getprogname): On OpenServer6 and UnixWare, read /proc//cmdline. 2020-10-11 Bruno Haible tests: Avoid a name clash on UnixWare. Reported by Tim Rice in . * tests/nap.h (nap): Define as gl_nap on OpenServer and UnixWare. 2020-10-11 Bruno Haible stdioext: Update comments regarding UnixWare. Reported by Tim Rice in . * lib/fbufmode.c: Update comments. * lib/fflush.c: Likewise. * lib/fpending.c: Likewise. * lib/fpurge.c: Likewise. * lib/freadable.h: Likewise. * lib/freadable.c: Likewise. * lib/freadahead.c: Likewise. * lib/freading.h: Likewise. * lib/freading.c: Likewise. * lib/freadptr.c: Likewise. * lib/freadseek.c: Likewise. * lib/fseeko.c: Likewise. * lib/fseterr.c: Likewise. * lib/fwritable.h: Likewise. * lib/fwritable.c: Likewise. * lib/fwriting.h: Likewise. * lib/fwriting.c: Likewise. 2020-10-11 Bruno Haible stdioext: Treat OpenServer 6 and UnixWare 7 like OpenServer 5. Reported by Tim Rice in . Uses the info from . * lib/stdio-impl.h: Test also __SCO_VERSION__ and __sysv5__. 2020-10-11 Bruno Haible stdioext: Avoid compilation errors on UnixWare 7. Reported by Tim Rice in . * lib/fbufmode.c: Don't include if it does not exist. * lib/fpurge.c: Likewise. * lib/freadable.h: Likewise. * lib/freading.h: Likewise. * lib/fwritable.h: Likewise. * lib/fwriting.h: Likewise. * m4/fbufmode.m4 (gl_FUNC_FBUFMODE): Test whether exists. * m4/fpurge.m4 (gl_FUNC_FPURGE): Likewise. * m4/freadable.m4 (gl_FUNC_FREADABLE): Likewise. * m4/freading.m4 (gl_FUNC_FREADING): Likewise. * m4/fwritable.m4 (gl_FUNC_FWRITABLE): Likewise. * m4/fwriting.m4 (gl_FUNC_FWRITING): Likewise. 2020-10-11 Bruno Haible stdioext: Update comments regarding Cygwin. * lib/fpending.c: Update comments. * lib/fpurge.c: Likewise. * lib/freadable.h: Likewise. * lib/freadable.c: Likewise. * lib/freading.h: Likewise. * lib/freading.c: Likewise. * lib/fwritable.h: Likewise. * lib/fwritable.c: Likewise. * lib/fwriting.h: Likewise. * lib/fwriting.c: Likewise. 2020-10-11 KO Myung-Hun Fix "warning: implicit declaration of function 'pthread_sigmask'". * lib/signal.in.h [__KLIBC__]: Include . * lib/sys_select.in.h [__KLIBC__]: Do not include . 2020-10-10 Bruno Haible *-list, *-oset, *-omap: Avoid possible compiler warnings. Reported by Marc Nieper-Wißkirchen in . * lib/gl_anylinked_list2.h (gl_linked_iterator, gl_linked_iterator_from_to): Mark as 'pure'. (gl_linked_iterator_free): Mark as 'const'. * lib/gl_anytree_list2.h (gl_tree_size, gl_tree_node_value, gl_tree_search_from_to, gl_tree_indexof_from_to, gl_tree_iterator, gl_tree_iterator_from_to, gl_tree_sortedlist_search, gl_tree_sortedlist_search_from_to, gl_tree_sortedlist_indexof, gl_tree_sortedlist_indexof_from_to): Mark as 'pure'. (gl_tree_iterator_free): Mark as 'const'. * lib/gl_anytree_omap.h (gl_tree_size, gl_tree_iterator): Mark as 'pure'. (gl_tree_iterator_free): Mark as 'const'. * lib/gl_anytree_oset.h (gl_tree_size, gl_tree_next_node, gl_tree_prev_node, gl_tree_iterator): Mark as 'pure'. (gl_tree_iterator_free): Mark as 'const'. * lib/gl_anytreehash_list1.h (node_position, compare_by_position, compare_position_threshold): Mark as 'pure'. * lib/gl_array_list.c (gl_array_size, gl_array_indexof_from_to, gl_array_search_from_to, gl_array_iterator, gl_array_iterator_from_to, gl_array_sortedlist_indexof_from_to, gl_array_sortedlist_indexof, gl_array_sortedlist_search_from_to, gl_array_sortedlist_search): Mark as 'pure'. (gl_array_iterator_free): Mark as 'const'. * lib/gl_array_omap.c (gl_array_size, gl_array_indexof, gl_array_search, gl_array_search_atleast, gl_array_iterator): Mark as 'pure'. (gl_array_iterator_free): Mark as 'const'. * lib/gl_array_oset.c (gl_array_size, gl_array_indexof, gl_array_search, gl_array_indexof_atleast, gl_array_search_atleast, gl_array_iterator, gl_array_iterator_atleast): Mark as 'pure'. (gl_array_iterator_free): Mark as 'const'. * lib/gl_carray_list.c (gl_carray_size, gl_carray_node_value, gl_carray_next_node, gl_carray_previous_node, gl_carray_get_at, gl_carray_indexof_from_to, gl_carray_search_from_to, gl_carray_iterator, gl_carray_iterator_from_to, gl_carray_sortedlist_indexof_from_to, gl_carray_sortedlist_indexof, gl_carray_sortedlist_search_from_to, gl_carray_sortedlist_search): Mark as 'pure'. (gl_carray_iterator_free): Mark as 'const'. 2020-10-10 Bruno Haible rbtree-list: Avoid possible compiler warnings. This mirrors the change of avltree-list on 2014-09-16. * lib/gl_rbtree_list.c (gl_rbtree_list_check_invariants): Add extern declaration. Add cast to void for ignored value of check_invariants. 2020-10-10 Marc Nieper-Wißkirchen stack: New module. * MODULES.html.sh: Add entry for the stack module. * modules/stack: New file. * modules/stack-tests: New file. * lib/stack.h: New file. * tests/test-stack.c: New file. 2020-10-10 Paul Eggert attribute: improve const, pure doc Problem reported by Marc Nieper-Wißkirchen in: https://lists.gnu.org/r/bug-gnulib/2020-10/msg00035.html * lib/attribute.h (ATTRIBUTE_CONST, ATTRIBUTE_PURE): Improv doc. See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51971#c1 2020-10-05 Paul Eggert thread: pacify GCC on Solaris 10 Problem reported by Kiyoshi KANAZAWA for grep (Bug#43666#29). * lib/glthread/thread.h (gl_thread_self): Use ‘(pthread_t) 0’ instead of ‘(pthread_t) NULL’, to pacify GCC on Solaris 10 where pthread_t is unsigned int. 2020-10-04 Paul Eggert c-stack: avoid AS_IF Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2020-10/msg00018.html * m4/c-stack.m4 (gl_PREREQ_C_STACK): No need for AS_IF. c-stack: pacify GCC 9.3.1 when using libsigsegv * lib/c-stack.c [USE_LIBSIGSEGV]: Disable --suggest-attribute=pure. 2020-10-04 Bruno Haible localename: Fix a couple of "unused parameter" warnings. Reported by Marc Nieper-Wißkirchen in . * lib/localename.c (gl_locale_name_thread_unsafe, gl_locale_name_thread, gl_locale_name_posix, gl_locale_name_environ): Add _GL_UNUSED in parameter list. 2020-10-04 Bruno Haible vasnprintf: Don't use %n on modern, ISO C 99 compliant platforms. Suggested by Jeremie Courreges-Anglas in . * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF): Define HAVE_SNPRINTF_TRUNCATION_C99. * lib/vasnprintf.c (VASNPRINTF): Don't use %n if HAVE_SNPRINTF_RETVAL_C99 && HAVE_SNPRINTF_TRUNCATION_C99. 2020-10-03 Paul Eggert c-stack: streamline Solaris configuration * lib/c-stack.c: Omit mention of HAVE_SIGALTSTACK, since the code is used only if a test for sigaltstack worked in some other way. * m4/c-stack.m4 (gl_PREREQ_C_STACK): Do not require gl_LIBSIGSEGV; instead, execute gl_LIBSIGSEGV only if needed (because the XSI heuristic does not work). * modules/c-stack (Files): Add m4/libsigsegv.m4, since we no longer require the libsigsegv module. (Depends-on): Depend on havelib, not libsigsegv. c-stack: stop using SIGSTKSZ It’s been proposed to stop making SIGSTKSZ an integer constant: https://sourceware.org/pipermail/libc-alpha/2020-September/118028.html Also, using SIGSTKSZ in #if did not conform to current POSIX. Also, avoiding SIGSTKSZ makes the code simpler and easier to grok. * lib/c-stack.c (SIGSTKSZ): Remove. (alternate_signal_stack): Now a 64 KiB array, for simplicity. All uses changed. c-stack: fix libsigsegv typo Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2020-09/msg00175.html * lib/c-stack.c (USE_LIBSIGSEGV): Fix typo that caused libsigsegv to be used only on Solaris (exactly where it is not needed!). 2020-10-03 Thien-Thi Nguyen MODULES.html.sh: Fix typo. * MODULES.html.sh (Numeric conversion functions ): Fix typo. 2020-09-28 Paul Eggert version-etc: pacify Oracle Studio 12.6 Without this patch, it complains: "version-etc.h", line 64: warning: token-less macro argument (E_TOKENLESS_MACRO)" when in pedantic mode. * lib/version-etc.h (version_etc): Port to C89 macro rules. 2020-09-27 Bruno Haible Avoid "warning: The macro `AC_DECL_SYS_SIGLIST' is obsolete". Reported by Gavin Smith in . * m4/strsignal.m4 (gl_PREREQ_STRSIGNAL): Check for sys_siglist ourselves; don't use AC_DECL_SYS_SIGLIST. 2020-09-27 Bruno Haible Avoid "warning: The macro `_AC_COMPUTE_INT' is obsolete". Reported by Gavin Smith in . * m4/gethostname.m4 (gl_PREREQ_HOST_NAME_MAX): Use AC_COMPUTE_INT instead of _AC_COMPUTE_INT. 2020-09-27 Bruno Haible Avoid "warning: The macro `AC_HEADER_STDC' is obsolete". Reported by Gavin Smith in . Based on a patch by Paul Eggert. * m4/malloc.m4 (_AC_FUNC_MALLOC_IF): Don't require AC_HEADER_STDC. Don't test STDC_HEADERS. Assume exists. * m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Likewise. 2020-09-27 Bruno Haible Enable testing of prereleases of Autoconf 2.70. Suggested by Paul Eggert in . * m4/alloca.m4 (_AC_LIBOBJ_ALLOCA): Test for Autoconf >= 2.69c, not >= 2.70. * m4/largefile.m4 (AC_SYS_LARGEFILE): Likewise. * m4/pid_t.m4 (AC_TYPE_PID_T): Likewise. * m4/sys_types_h.m4 (AC_HEADER_MAJOR): Likewise. 2020-09-27 Bruno Haible Avoid "warning: The macro `AC_PROG_CC_STDC' is obsolete". Reported by Gavin Smith in . * m4/gnulib-common.m4 (gl_PROG_CC_C99): Use AC_PROG_CC_C99 or AC_PROG_CC, depending on the Autoconf version. 2020-09-27 Gavin Smith Avoid "warning: The macro `AC_HELP_STRING' is obsolete". * m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Use AS_HELP_STRING instead of AC_HELP_STRING. * m4/libgcrypt.m4 (AM_PATH_LIBGCRYPT): Likewise. 2020-09-27 Bruno Haible Avoid "warning: $as_echo_n is obsolete" from autoconf 2.69c. Reported by Gavin Smith in . * m4/gnulib-common.m4 (gl_CACHE_VAL_SILENT): Use gl_SILENT. 2020-09-27 Bruno Haible extensions: Simplify last commit. * m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Don't require AC_GNU_SOURCE ever. 2020-09-26 Paul Eggert extensions: require AC_GNU_SOURCE only for <=2.63 Problem reported by Gavin Smith in: https://lists.gnu.org/r/autoconf/2020-09/msg00012.html * m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Require AC_GNU_SOURCE only for Autoconf 2.63 and earlier, since it shouldn’t be needed after that, and Autoconf 2.70 complains about it being obsolete. 2020-09-26 Bruno Haible regex-tests: Make test more robust. * tests/test-regex.c (main): Make sure to revert the locale to "C" after the test in "tr_TR.UTF-8" locale. Exit if we can't revert it. 2020-09-25 Paul Eggert regex-tests: fix possible Turkish false-alarm * modules/regex-tests (Depends-on): Add wctype-h. * tests/test-regex.c: Include wctype.h. (main): Check that ‘i’ uppercases to ‘İ’ in Turkish, as the Turkish regex test assumes this. regex-tests: fix test and add debug output Perhaps this will fix the recent grep test failure reported at: https://buildfarm.opencsw.org/buildbot/builders/ggrep-solaris10-sparc/builds/199 At least, the debug output should help narrow down the failure. * tests/test-regex.c: Include stdarg.h, stdio.h. (exit_status): New var. (report_error): New function. (main): Use it to report failures to stdout instead of merely exiting with some nonzero status. The status info alone isn’t enough to do remote debugging. In the new tr_TR.UTF-8 test, clear regex before calling re_compile_pattern, fixing a portability bug. regex: no longer match glibc * config/srclist.txt: Comment out regex_internal.c for now. 2020-09-23 Paul Eggert regex: fix ignore-case Turkish bug * lib/regex_internal.c (build_wcs_upper_buffer): Do not assume that converting single-byte character to upper yields a single-byte character. This is not true for Turkish, where towupper (L'i') yields L'İ', which is not single-byte. * tests/test-regex.c (main): Test for this bug. regex: port to weird isascii platforms * lib/regex_internal.h (isascii) [!_LIBC]: Supply glibc version. 2020-09-20 Norihiro Tanaka dfa: make dfasupported a global function * lib/dfa.c (dfasupported): Rename, and make it global. Update caller. * lib/dfa.h (dfasupported): Add prototype. 2020-09-20 Bruno Haible canonicalize: Add support for UNC file names on native Windows. Reported and initial patch by Vaclav Slavik in . * lib/canonicalize.c (canonicalize_filename_mode): For UNC file names, extend the prefix to include the server. 2020-09-20 Bruno Haible supersede: Fix test failures on native Windows. * lib/supersede.c (open_supersede): Handle non-regular files on native Windows like on Solaris. * tests/test-supersede-open.h (test_open_supersede): Use O_BINARY flag. 2020-09-20 Paul Eggert test-stdalign: test Oracle Studio better * doc/posix-headers/stdalign.texi (stdalign.h): * tests/test-stdalign.c (main): Sun Studio Bug #2125432 seems to be fixed. c-stack: output diagnostic in single 'write' * lib/c-stack.c (die): In the typical case, use just one 'write' syscall to output the diagnostic, as this lessens interleaving. (die, c_stack_action): Assume C99. * modules/c-stack (Depends-on): Add c99, mempcpy. c-stack: improve checking if !libsigsegv If SIGINFO_WORKS, do not treat a null pointer dereference as if it were a stack overflow. Use uintptr_t and INT_ADD_WRAPV to avoid unlikely pointer overflow. Also, fix some obsolete code and typos. I found these problems while looking into this bug report: https://lists.gnu.org/r/grep-devel/2020-09/msg00053.html * lib/c-stack.c: Include c-stack.h first, to test interface. Include inttypes.h for UINTPTR_MAX, stdbool.h, stddef.h for max_align_t, intprops.h for INT_ADD_WRAPV. (USE_LIBSIGSEGV): New macro; use it to simplify later code. (SIGSTKSZ): Simplify setup. Work around libsigsegv bug only for libsigsegv 2.8 and earlier since the bug should be fixed after that. (alternate_signal_stack): Use max_align_t instead of doing it by hand. (segv_handler, overflow_handler, segv_handler) [DEBUG]: Assume sprintf returns byte count; this assumption is safe now. (page_size): New static volatile variable, since sysconf isn’t documented to be async-signal-safe on Solaris. This variable is present and used if (!USE_LIBSIGSEGV && HAVE_SIGALTSTACK && HAVE_DECL_SIGALTSTACK && HAVE_STACK_OVERFLOW_HANDLING && SIGINFO_WORKS). (segv_handler): Use it if present. Never report null pointer dereference as a stack overflow. Check for (unlikely) unsigned and/or pointer overflow. * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Rename cache variables to gl_cv_sys_stack_overflow_works and gl_cv_sys_xsi_stack_overflow_heuristic. All uses changed. (gl_PREREQ_C_STACK): Do not require AC_FUNC_ALLOCA, since c-stack no longer uses STACK_DIRECTION. Do not check for unistd.h, since we depend on unistd. Fix shell typo ‘$"ac_cv_sys_xsi_stack_overflow_heuristic"’. * modules/c-stack (Depends-on): Sort. Add intprops, inttypes, stdbool, stddef. 2020-09-20 Bruno Haible Revert now-unnecessary override of config.guess on Alpine Linux 3.10. * m4/musl.m4: Revert 2020-09-19 patch. * m4/setlocale_null.m4: Likewise. * modules/setlocale-null: Likewise. 2020-09-19 Ben Pfaff Bruno Haible relocatable-prog: Fix for multiple relocatable library directories. * build-aux/reloc-ldflags: Fix handling of multiple relocatable library directories. Each one needs its own -Wl,-rpath,$dir option, instead of being attached to a single one. 2020-09-19 Jim Meyering test-verify.c: avoid -Wshadow warnings * tests/test-verify.c (gx): Rename global from "x". Adjust use. (enum): Capitalize member names. Adjust uses. 2020-09-19 Bruno Haible havelib: Avoid linking with libc.a on GNU systems. Reported by Bruce Dubbs in . * m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): When processing the dependency_libs value of a .la file, ignore '-lc' options on GNU systems. 2020-09-19 Bruno Haible Fix recognition of musl libc on Alpine Linux 3.10. Reported by Jeffrey Walton in . * m4/musl.m4 (gl_MUSL_CANONICAL_HOST): New macro. (gl_MUSL_LIBC): Require it. * m4/setlocale_null.m4 (gl_FUNC_SETLOCALE_NULL): Likewise. * modules/setlocale-null (Files): Add m4/musl.m4. 2020-09-19 Bruno Haible nl_langinfo: Make multithread-safe on Solaris 10 and Solaris 11.3. Reported for Solaris 10 by Dagobert Michelsen via Paul Eggert in and for Solaris 11.3 by Jeffrey Walton in . * lib/nl_langinfo-lock.c: New file, based on lib/setlocale_null-lock.c. * lib/nl_langinfo.c: Include and or or . (ITEMS, MAX_RESULT_LEN): New macros. (nl_langinfo_unlocked): New function. (gl_get_nl_langinfo_lock): New declaration. (nl_langinfo_with_lock): New function, based on lib/setlocale_null.c. (rpl_nl_langinfo): Use nl_langinfo_with_lock instead of nl_langinfo. * m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Require gl_PTHREADLIB. Define HAVE_THREADS_H. Set NL_LANGINFO_MTSAFE. If setting it to 0, also set REPLACE_NL_LANGINFO. (gl_PREREQ_NL_LANGINFO_LOCK): New macro. * modules/nl_langinfo (Files): Add lib/nl_langinfo-lock.c, lib/windows-initguard.h, m4/threadlib.m4, m4/visibility.m4. (configure.ac): Compile nl_langinfo-lock.c when NL_LANGINFO_MTSAFE is 0. * doc/posix-functions/nl_langinfo.texi: Mention the Solaris bug. 2020-09-18 Bruno Haible fsusage, getaddrinfo: Produce more regular configure output. * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Remove AC_MSG_CHECKING without corresponding AC_MSG_RESULT. * m4/getaddrinfo.m4 (gl_GETADDRINFO): Likewise. 2020-09-18 Bruno Haible Add back gl_SILENT. * m4/gnulib-common.m4 (GL_TMP_FD, gl_SILENT): New macros. 2020-09-18 Paul Eggert c-stack-tests: fix -fsanitize=undefined false alarm * tests/test-c-stack2.sh: Skip the test-harness self-test if ‘gcc -fsanitize=undefined’ is in use. 2020-09-17 Paul Eggert signalblocking: simplify and remove gl_SILENT gl_SILENT was problematic because if a trap was sprung, stderr generated during the trap was lost. Avoid the problem by removing the need for gl_SILENT. * m4/gnulib-common.m4 (GL_TMP_FD, gl_SILENT): Remove. * m4/signalblocking.m4 (gl_SIGNALBLOCKING): Simplify, avoiding the need for gl_SILENT while preserving the ability of the user to override the value of the cache variable, now ac_cv_func_sigprocmask. 2020-09-17 Bruno Haible sigprocmask: Fix configuration failure on Solaris 10 (regr. 2020-07-25). * m4/gnulib-common.m4 (GL_TMP_FD): New macro. (gl_SILENT): Use 'exec', not a compound statement, to redirect AS_MESSAGE_FD. 2020-09-17 Paul Eggert intprops, xalloc: avoid __builtin_mul_overflow_p with Clang Problem reported by Nelson H. F. Beebe for clang 9.0.1 in: https://lists.gnu.org/r/grep-devel/2020-09/msg00028.html * lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW_P) [__clang__]: Define to 0. * lib/xalloc-oversized.h (xalloc_oversized) [__clang__]: Do not use __builtin_mul_overflow_p. libc-config: port __THROW to Ubuntu 4 * lib/cdefs.h (__THROW): Do not use __attribute__ ((__nothrow__)) for GCC 3.3. Problem reported by Jeffrey Walton in: https://lists.gnu.org/r/bug-gnulib/2019-07/msg00058.html The GCC 3.3.4 documentation says the attribute should work, but apparently it does not work on Ubuntu 4’s GCC 3.3. There seems little point or desire to research this circa-2004 platform further, so just avoid the attribute there. 2020-09-17 Jim Meyering test-dfa-match.sh: port timeout work-around to newer Busybox * tests/test-dfa-match.sh: Update timeout -t portability test to accommodate Busybox 1.30.0 and newer. 2020-09-16 Paul Eggert fnmatch: adjust to match glibc fix This fixes handling of collating symbols in fnmatch (glibc bug 26620). This does not affect Gnulib; it merely keeps Gnulib and glibc closer together, to help with any eventual merge, by incorporating a recent glibc patch. The patch and the following commentary is by Andreas Schwab. * lib/fnmatch_loop.c (FCT) [WIDE_CHAR_VERSION]: The variable idx contains the index into the extra array, whereas wextra points into the extra array at this index, containing the length of the following collating sequence in the wide character representation. 2020-09-16 Bruno Haible stat, fstat: Fix compilation error with old mingw headers. Reported by Eli Zaretskii in . * lib/stat-w32.c (VOLUME_NAME_NONE): Define if the Windows headers don't define it. 2020-09-16 Bruno Haible stat, fstat: Fix when compiling for versions older than Windows Vista. Reported by Eli Zaretskii in . * lib/stat-w32.c: Include . Test the value of _WIN32_WINNT that was originally set before we redefined it. * m4/stat.m4 (gl_PREREQ_STAT_W32): New macro. (gl_PREREQ_STAT): Require it. * m4/fstat.m4 (gl_PREREQ_FSTAT): Likewise. 2020-09-15 Paul Eggert dfa: remove dfa-heap-overrun workaround * lib/dfa.c (reorder_tokens): Go back to a single pass that both sets map[*] and does other things. This reverts 2020-09-14T01:20:01Z!eggert@cs.ucla.edu, which is no longer neeeded now that 2020-09-14T13:21:05Z!noritnk@kcn.ne.jp fixed the underlying problem. 2020-09-13 Paul Eggert dfa: avoid use of uninitialized constraint * lib/dfa.c (merge_nfa_state): Do not initialize the constraint to zero here. (dfaoptimize): Do it here instead, via xcalloc. This prevents the use of an uninitialized constraint by later code when ! (flags[i] & OPT_QUEUED) means merge_nfa_state was not called to initialize the constraint. Problem found by running 'valgrind src/grep -E '(^| )*(a|b)*(c|d)*( |$)' < /dev/null' on Ubuntu 18.04.5 x86-64. dfa: assume C99 in reorder_tokens * lib/dfa.c (reorder_tokens): Assume C99 and simplify. dfa: fix dfa-heap-overrun failure * lib/dfa.c (reorder_tokens): When setting map[d->follows[i].elems[j].index], instead of incorrectly assuming that (i < d->follows[i].elems[j].index), use two loops, one to set the map array and the other to use it. The incorrect assumption caused some elements to be missed, and this in turn caused grep's dfa-heap-overrun test to fail on Solaris 10 sparc when compiled with GCC. I found this bug while investigating https://buildfarm.opencsw.org/buildbot/builders/ggrep-solaris10-sparc/builds/183 and I think the bug also occurs on GNU/Linux but with more-subtle symptoms. The bug predates the recent dfa.c changes; perhaps the recent changes make the bug more likely. 2020-09-13 Bruno Haible parse-datetime: Make the build rule work with parallel 'make'. Reported by Daiki Ueno in . * modules/parse-datetime (Makefile.am): Use a phony target and the general idiom for rules that produce multiple files. 2020-09-13 Ben Pfaff getpass: Check for nonnull prompt argument while avoiding warnings. * lib/getpass.c (_GL_ARG_NONNULL): Define to empty. (getpass) [!_WIN32]: Print prompt only if nonnull. 2020-09-12 Paul Eggert dfa: epsilon-closure tweaks (Bug#40634) Rename BACKWORD to BACKWARD consistently. * lib/dfa.c (struct dfa): Reorder members to reduce fragmentation. (addtok_mb): Redo slightly to make it act more like a state machine. Check depth only when it increases. (epsclosure): Let the switch test the tokens. (dfaanalyze): Cache tindex. Simplify position loops. Prefer xcalloc to xnmalloc + explicit zeroing. Free BACKWARD only if it is not null, since we're testing that anyway. (dfaanalyze, build_state): Use merge2 instead of doing it by hand. 2020-09-12 Norihiro Tanaka dfa: use backward set in removal of epsilon closure When removing in epsilon closure, the code searched all nodes sequentially, and this was slow for some cases. Build a backward set before search, and only check previous position with the set. Problem reported in . * lib/dfa.c (struct dfa): New member 'epsilon'. (addtok_mb): Check whether a pattern has epsilon node or not. (epsclosure): New arg BACKWORD; caller changed. When removing epsilon node and reconnecting, check only previous positions. Treat BEG as if it were character. (dfaanalyze): Build backward set. 2020-09-10 Paul Eggert canonicalize: fix pointer indexing bugs Problem reported by Florian Weimer in: https://lists.gnu.org/r/bug-gnulib/2020-09/msg00025.html * lib/canonicalize-lgpl.c (__realpath): * lib/canonicalize.c (canonicalize_filename_mode): Do not generate a pointer past the end of the array. * lib/canonicalize.c (canonicalize_filename_mode): Do not use a pointer after passing it to realloc. 2020-09-09 Paul Eggert tempname: help merge with glibc Inspired by draft patches by Adhemerval Zanella in: https://sourceware.org/pipermail/libc-alpha/2020-September/117501.html https://sourceware.org/pipermail/libc-alpha/2020-September/117502.html * lib/tempname.c: Include stdalign.h, time.h. If _LIBC, do not include random-bits.h. (__getrandom, __clock_gettime64, __timespec64) [!_LIBC]: New macros. (RANDOM_BITS): Remove, replacing with ... (random_bits): ... this new static function. All uses changed. Add entropy each time if getrandom is not supported. (RANDOM_VALUE, BASE_62_DIGITS, BASE_62_POWER): Assume 64-bit support a la C99. (try_tempname_len): Take advantage of ASLR when initializing random value. * modules/tempname (Depends-on): Add clock-time, stdalign, time. getcwd: merge recent glibc changes * lib/getcwd.c (GETCWD_RETURN_TYPE) [!_LIBC]: New macro. (__getcwd, getcwd) [_LIBC && !GETCWD_RETURN_TYPE]: Add aliases. 2020-09-06 Bruno Haible attribute: Clarify which file to include. * modules/attribute (Include): Add "attribute.h". 2020-09-06 Bruno Haible pipe-filter-ii, pipe-filter-gi: Fix warnings on native Windows. * lib/pipe-filter-ii.c: Include . * lib/pipe-filter-gi.c: Likewise. 2020-09-05 Paul Eggert verify: avoid __builtin_assume Our latest attempt to use Clang’s __builtin_assume caused a crash in GNU Emacs that we spent quite some time tracking down as being caused by the switch to __builtin_assume. It’s not known whether the crash is due is a Clang bug or a portability bug in GNU Emacs. For now, play it safe and avoid __builtin_assume. * lib/verify.h (_GL_HAS_BUILTIN_ASSUME): Remove. (assume): Simplify by not trying to use Clang’s __builtin_assume. 2020-09-05 Bruno Haible Fix several "warning: no previous prototype for function". * modules/unicase/locale-language (Makefile.am): Add a 'static' keyword in front of the declaration of the lookup function in unicase/locale-languages.h. * modules/unictype/bidiclass-byname (Makefile.am): Likewise in unictype/bidi_byname.h. * modules/unictype/category-byname (Makefile.am): Likewise in unictype/categ_byname.h. * modules/unictype/combining-class-byname (Makefile.am): Likewise in unictype/combiningclass_byname.h. * modules/unictype/joininggroup-byname (Makefile.am): Likewise in unictype/joininggroup_byname.h. * modules/unictype/joiningtype-byname (Makefile.am): Likewise in unictype/joiningtype_byname.h. * modules/unictype/property-byname (Makefile.am): Likewise in unictype/pr_byname.h. * modules/unictype/scripts (Makefile.am): Likewise in unictype/scripts_byname.h. * modules/uninorm/composition (Makefile.am): Likewise in uninorm/composition-table.h. 2020-09-05 Bruno Haible select: Fix "warning: no previous prototype for function". * lib/select.c: Include . 2020-09-05 Bruno Haible Use module 'c99' when needed for variadic macros with '...' syntax. * modules/crypto/sm3 (Depends-on): Add c99. 2020-09-05 Bruno Haible Use module 'c99' when needed for subobject initializer syntax. * modules/tempname (Depends-on): Add c99. * modules/nstrftime-tests (Depends-on): Likewise. 2020-09-05 Bruno Haible Use module 'c99' when needed for declaration-after-statement syntax. * modules/backup-rename (Depends-on): Add c99. * modules/backupfile (Depends-on): Likewise. * modules/bitset-tests (Depends-on): Likewise. * modules/bitsetv (Depends-on): Likewise. * modules/c-strtod (Depends-on): Likewise. * modules/c-strtold (Depends-on): Likewise. * modules/clean-temp (Depends-on): Likewise. * modules/copy-file (Depends-on): Likewise. * modules/crypto/hmac-md5-tests (Depends-on): Likewise. * modules/crypto/hmac-sha1-tests (Depends-on): Likewise. * modules/crypto/hmac-sha256-tests (Depends-on): Likewise. * modules/crypto/hmac-sha512-tests (Depends-on): Likewise. * modules/crypto/md5-buffer (Depends-on): Likewise. * modules/crypto/md5-tests (Depends-on): Likewise. * modules/crypto/sha1-buffer (Depends-on): Likewise. * modules/crypto/sha1-tests (Depends-on): Likewise. * modules/crypto/sha256-buffer (Depends-on): Likewise. * modules/crypto/sha256-tests (Depends-on): Likewise. * modules/crypto/sha512-buffer (Depends-on): Likewise. * modules/crypto/sha512-tests (Depends-on): Likewise. * modules/diffseq (Depends-on): Likewise. * modules/fatal-signal (Depends-on): Likewise. * modules/fchmodat (Depends-on): Likewise. * modules/fstrcmp (Depends-on): Likewise. * modules/fsusage (Depends-on): Likewise. * modules/fts (Depends-on): Likewise. * modules/fts-tests (Depends-on): Likewise. * modules/getumask (Depends-on): Likewise. * modules/git-merge-changelog (Depends-on): Likewise. * modules/hash-map (Depends-on): Likewise. * modules/hash-set (Depends-on): Likewise. * modules/lchmod (Depends-on): Likewise. * modules/libgmp-tests (Depends-on): Likewise. * modules/libtextstyle-optional-tests (Depends-on): Likewise. * modules/linkedhash-map (Depends-on): Likewise. * modules/linkedhash-set (Depends-on): Likewise. * modules/long-options (Depends-on): Likewise. * modules/mbrtoc32 (Depends-on): Likewise. * modules/memchr2-tests (Depends-on): Likewise. * modules/memmem-tests (Depends-on): Likewise. * modules/memrchr-tests (Depends-on): Likewise. * modules/mktime-internal (Depends-on): Likewise. * modules/nstrftime (Depends-on): Likewise. * modules/opendirat (Depends-on): Likewise. * modules/parse-datetime (Depends-on): Likewise. * modules/quotearg-simple-tests (Depends-on): Likewise. * modules/same (Depends-on): Likewise. * modules/supersede (Depends-on): Likewise. * modules/supersede-tests (Depends-on): Likewise. * modules/time_rz (Depends-on): Likewise. * modules/unistr/u16-chr-tests (Depends-on): Likewise. * modules/unistr/u32-chr-tests (Depends-on): Likewise. * modules/unistr/u8-chr-tests (Depends-on): Likewise. * modules/xalloc (Depends-on): Likewise. * modules/xnanosleep (Depends-on): Likewise. 2020-09-05 Bruno Haible Fix "warning: array initialized from parenthesized string constant". * tests/test-memmem.c (main): Remove parentheses around string constant. * tests/test-c-strcasestr.c (main): Likewise. * tests/test-strcasestr.c (main): Likewise. 2020-09-05 Bruno Haible argmatch tests: Fix ISO C compliance warning. * tests/test-argmatch.c: Omit semicolon after ARGMATCH_DEFINE_GROUP invocation. 2020-09-05 Bruno Haible uniname/uniname: Fix -Wshadow warning. * lib/uniname/uniname.c (unicode_name_word): Don't declare i upfront. * modules/uniname/uniname (Depends-on): Add c99. 2020-09-05 Bruno Haible uniname/uniname: Fix -Wshorten-64-to-32 warnings. * lib/uniname/uniname.c (unicode_name_word_lookup): Change type of last argument to size_t. (unicode_name_character): Change type of len, n1, n2, n3, words_length, n to size_t. 2020-09-05 Bruno Haible unistr/u{8,16,32}-uctomb: Avoid possible trouble with huge strings. * lib/unistr.in.h (u8_uctomb_aux, u8_uctomb, u16_uctomb_aux, u16_uctomb, u32_uctomb): Change type of last argument to ptrdiff_t. * lib/unistr/u8-uctomb.c (u8_uctomb): Likewise. * lib/unistr/u8-uctomb-aux.c (u8_uctomb_aux): Likewise. * lib/unistr/u16-uctomb.c (u16_uctomb): Likewise. * lib/unistr/u16-uctomb-aux.c (u16_uctomb_aux): Likewise. * lib/unistr/u32-uctomb.c (u32_uctomb): Likewise. 2020-09-01 Paul Eggert manywarnings: remove -Wchkp and -Wabi from C++ too Suggested by Reuben Thomas in: https://lists.gnu.org/r/bug-gnulib/2020-09/msg00001.html At some point somebody should merge the many other manywarnings-c.m4 changes into manywarnings-c++.m4 too, e.g., 2020-07-02T00:00:51Z!eggert@cs.ucla.edu. * m4/manywarnings-c++.m4 (gl_MANYWARN_ALL_GCC_CXX_IMPL): Remove -Wchkp, -Wabi. 2020-08-30 Bruno Haible strerrorname_np: Add tests. * tests/test-strerrorname_np.c: New file. * modules/strerrorname_np-tests: New file. strerrorname_np: New module. * lib/string.in.h (strerrorname_np): New declaration. * lib/strerrorname_np.c: New file. * m4/strerrorname_np.m4: New file. * m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Test whether strerrorname_np is declared. (gl_HEADER_STRING_H_DEFAULTS): Initialize GNULIB_STRERRORNAME_NP, HAVE_STRERRORNAME_NP, REPLACE_STRERRORNAME_NP. * modules/string (Makefile.am): Substitute GNULIB_STRERRORNAME_NP, HAVE_STRERRORNAME_NP, REPLACE_STRERRORNAME_NP. * modules/strerrorname_np: New file. * tests/test-string-c++.cc: Verify the signature of strerrorname_np. * doc/glibc-functions/strerrorname_np.texi: Mention the new module and the glibc 2.32 bug. 2020-08-27 Paul Eggert perror, strerror_r: remove unportable tests Problem reported by Florian Weimer in: https://lists.gnu.org/r/bug-gnulib/2020-08/msg00220.html * tests/test-perror2.c (main): * tests/test-strerror_r.c (main): Omit unportable tests. 2020-08-26 Bruno Haible stdint, wchar, wctype-h: Change configure message. * m4/wint_t.m4 (gt_TYPE_WINT_T): Say "checking whether wint_t is large enough..." instead of "checking whether wint_t is too small...". 2020-08-26 Bruno Haible time_rz: Change configure message. * m4/time_rz.m4 (gl_TIME_RZ): Say "checking whether localtime works even near extrema..." instead of "checking whether localtime loops forever near extrema...". 2020-08-26 Bruno Haible stdint: Change configure message. * m4/stdint.m4 (gl_STDINT_H): Say "checking whether stdint.h works without ISO C predefines..." instead of "checking whether stdint.h predates C++11...". 2020-08-26 Bruno Haible socketlib: Change configure message. * m4/socketlib.m4 (gl_SOCKETLIB): Say "checking for WSAStartup..." instead of "checking if we need to call WSAStartup in winsock2.h and -lws2_32...". 2020-08-26 Bruno Haible include_next: Change configure message. * m4/include_next.m4 (gl_INCLUDE_NEXT): Say "checking whether source code line length is unlimited..." instead of "checking whether system header files limit the line length...". 2020-08-26 Bruno Haible getcwd: Change configure message. * m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Say "checking whether getcwd succeeds when 4k < cwd_length < 16k..." instead of "checking whether getcwd aborts when 4k < cwd_length < 16k...". 2020-08-26 Bruno Haible chdir-long: Change configure message. * m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Say "checking whether this system supports file names of any length..." instead of "checking whether this system has an arbitrary file name length limit...". Set gl_cv_have_unlimited_file_name_length instead of gl_cv_have_arbitrary_file_name_length_limit. * modules/chdir-long (Depends-on, configure.ac): Update accordingly. 2020-08-26 Bruno Haible ceill: Change configure message. * m4/ceill.m4 (gl_FUNC_CEILL): Say "checking whether ceill() works..." instead of "checking whether ceill() breaks with small values...". 2020-08-26 Bruno Haible iconv: Change configure message. * m4/iconv.m4 (AM_ICONV): Say "checking whether iconv is compatible with its POSIX signature..." instead of "checking for iconv declaration...". Remove K&R C support. 2020-08-26 Paul Eggert getcwd: help the merge back into glibc This patch was inspired by Adhemerval Zanella’s proposed glibc patches: https://sourceware.org/pipermail/libc-alpha/2020-August/117294.html The idea is to make it easier for Gnulib lib/getcwd.c to match glibc io/getcwd-generic.c. * lib/getcwd.c [_LIBC]: Do not include pathmax.h. Include not-cancel.h. (HAVE_OPENAT, D_INO_IN_DIRENT, HAVE_MSVC_INVALID_PARAMETER_HANDLER) (HAVE_MINIMALLY_WORKING_GETCWD): Define for the _LIBC case. (__getcwd, __lstat, __readdir) [!_LIBC]: Remove these macros. (__close_nocancel_nostatus, __getcwd_generic, stat64, __fstat64) (__fstatat64, __lstat64, __readdir64, __fdopendir, __openat) (__rewinddir, __openat64, dirent64) [_LIBC]: New macros. (__getcwd_generic): Rename from __getcwd. Use the abovementioned macros for consistency with glibc. (weak_alias): Remove. 2020-08-25 Bruno Haible verify: Avoid warnings when assume(0) is used. Reported by Mattias Engdegård via Paul Eggert in . * lib/verify.h (assume): Use __builtin_unreachable if the argument is the constant 0. * tests/test-verify.c (f): New function. (state): New type. (test_assume_expressions, test_assume_optimization, test_assume_noreturn): New functions. 2020-08-25 Bruno Haible fstrcmp: Clarification regarding NOTE_ORDERED. * lib/fstrcmp.c (NOTE_ORDERED): Define to false. 2020-08-24 Paul Eggert diffseq: new option NOTE_ORDERED Problem reported by Phil Sainty . * NEWS: Mention this. * lib/diffseq.h (NOTE_ORDERED): New macro. (IF_LINT2): Remove; no longer needed. (compareseq): If (!NOTE_ORDERED), recurse on the smaller subproblem and iterate to do the larger. 2020-08-23 Paul Eggert sys_types: let Autoconf 2.70 do pid_t * m4/pid_t.m4 (AC_TYPE_PID_T): Redefine this Autoconf macro only for Autoconf versions 2.69 and earlier, since 2.70 will be fixed. 2020-08-23 Bruno Haible tests: Don't assume that pid_t fits in an 'int'. * tests/test-nonblocking-pipe-main.c (main): Use type 'pid_t' instead of 'int'. * tests/test-nonblocking-socket-main.c (main): Likewise. sys_types: Fix definition of pid_t on 64-bit MSVC. * m4/pid_t.m4: New file. * modules/sys_types (Files): Add it. * modules/dirent (Files): Likewise. * modules/fcntl-h (Files): Likewise. * modules/sched (Files): Likewise. * modules/signal-h (Files): Likewise. * modules/spawn (Files): Likewise. * modules/sys_stat (Files): Likewise. * modules/sys_wait (Files): Likewise. * modules/termios (Files): Likewise. * modules/unistd (Files): Likewise. 2020-08-23 Bruno Haible inttypes: Fix {PRI,SCN}*PTR on 32-bit native Windows (regr. 2020-07-21). * m4/inttypes.m4 (gl_INTTYPES_PRI_SCN): Fix syntax error in test program. 2020-08-23 Paul Eggert intprops: be consistent about +X vs X+0 * lib/intprops.h (_GL_SIGNED_INT_MAXIMUM): Simplify. intprops: fix INT_MULTIPLY_WRAPV bit-field bug The bug occurs when using INT_MULTIPLY_WRAPV (a, b, c) where B is a bit-field, on older GCC or non-GCC compilers where we do things ourselves instead of using __builtin_mul_overflow. Without this fix, INT_MULTIPLY_WRAPV would not compile, due to applying sizeof to a bit-field. * lib/intprops.h (_GL_INT_MULTIPLY_RANGE_OVERFLOW): Promote B before giving it to TYPE_WIDTH, in case B is a bit-field. 2020-08-23 Bruno Haible supersede: Avoid a failure when writing to /dev/null in Solaris zones. Reported by Jörg Sonnenberger via Thomas Klausner in . * lib/supersede.c (open_supersede): When opening an existing non-regular file on Solaris, use O_CREAT although it should not be necessary. 2020-08-23 Bruno Haible verify: Make assume work on bit field expressions (regr. 2020-08-22). Reported by Benno Schulenberg in . * lib/verify.h (assume): Use '_Bool' or 'bool' as type of the temporary variable. 2020-08-23 Bruno Haible libc-config: Improve comments. * lib/cdefs.h (__warndecl, __warnattr, __errordecl): Explain why we cannot use clang's __diagnose_if__ here. 2020-08-22 Bruno Haible verify: Do use __builtin_assume on clang. * lib/verify.h (assume): Use clang’s __builtin_assume, with a temporary variable in a statement expression. 2020-08-22 Bruno Haible sig2str: Add more signals. * lib/sig2str.c (numname_table): Add SIGCPUFAIL, SIGTHR, SIGBREAK. 2020-08-22 Bruno Haible doc: Update for OpenBSD 6.0, 6.7. * doc/*/*.texi: Update. * m4/printf.m4: Update comments and cross-compilation guesses. * m4/ceill.m4: Update comments. * m4/getcwd-abort-bug.m4: Likewise. * m4/ilogb.m4: Likewise. * m4/ilogbf.m4: Likewise. * m4/langinfo_h.m4: Likewise. * m4/modf.m4: Likewise. * m4/modff.m4: Likewise. 2020-08-22 Bruno Haible doc: Mention sig2str module. * doc/glibc-functions/sigabbrev_np.texi: Mention the sig2str module. 2020-08-21 Bruno Haible sigdescr_np: Add tests. * tests/test-sigdescr_np.c: New file. * modules/sigdescr_np-tests: New file. sigdescr_np: New module. * lib/string.in.h (sigdescr_np): New declaration. * lib/sigdescr_np.c: New file. * m4/sigdescr_np.m4: New file. * m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Test whether sigdescr_np is declared. (gl_HEADER_STRING_H_DEFAULTS): Initialize GNULIB_SIGDESCR_NP, HAVE_SIGDESCR_NP. * modules/string (Makefile.am): Substitute GNULIB_SIGDESCR_NP, HAVE_SIGDESCR_NP. * modules/sigdescr_np: New file. * tests/test-string-c++.cc: Verify the signature of sigdescr_np. * doc/glibc-functions/sigdescr_np.texi: Mention the new module. 2020-08-20 Bruno Haible sigabbrev_np: Add tests. * tests/test-sigabbrev_np.c: New file. * modules/sigabbrev_np-tests: New file. sigabbrev_np: New module. * lib/string.in.h (sigabbrev_np): New declaration. * lib/sigabbrev_np.c: New file. * m4/sigabbrev_np.m4: New file. * m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Test whether sigabbrev_np is declared. (gl_HEADER_STRING_H_DEFAULTS): Initialize GNULIB_SIGABBREV_NP, HAVE_SIGABBREV_NP. * modules/string (Makefile.am): Substitute GNULIB_SIGABBREV_NP, HAVE_SIGABBREV_NP. * modules/sigabbrev_np: New file. * tests/test-string-c++.cc: Verify the signature of sigabbrev_np. * doc/glibc-functions/sigabbrev_np.texi: Mention the new module. 2020-08-20 Bruno Haible stdalign tests: Skip test with AIX xlclang. * tests/test-stdalign.c (main): Skip alignas tests with AIX xlclang. 2020-08-20 Bruno Haible stdalign: Fix test failures on 32-bit platforms with clang versions < 8. * lib/stdalign.in.h (_Alignof): For clang versions < 8, use the same workaround as for GCC versions < 4.9. 2020-08-20 Siddhesh Poyarekar Sync up ProjectQuirks comments and documentation Transform the ProjectQuirks comments into a docstring so that it can be accessed from python as ProjectQuirks.__doc__ and harmonize descriptions with the documentation. * build-aux/vcstocl/projectquirks.py (ProjectQuirks): Transform comments into a docstring. * doc/vcs-to-changelog.texi: Sync up description with comments. Split ProjectQuirks out into its own file ProjectQuirks is used by external quirks files and importing it from vcs-to-changelog.py is broken since it was renamed to use hyphens. It is cleaner to put it in its own file anyway. * build-aux/vcstocl/projectquirks.py: A new file... * build-aux/vcs-to-changelog.py (ProjectQuirks): ...to which we move ProjectQuirks and import the file. 2020-08-19 Bruno Haible uchar: Fix compilation errors in C++ mode on macOS. * m4/uchar.m4 (gl_UCHAR_H): Require gl_ANSI_CXX if present. Include some system header file before attempting to use 'char16_t' and 'char32_t'. 2020-08-19 Bruno Haible ansi-c++-opt: Work around an autoconf macro reordering problem. * modules/ansi-c++-opt: Require gl_ANSI_CXX already in the early section. 2020-08-19 Bruno Haible math C++ tests: Fix compilation error in with GCC 10. * lib/math.in.h (cbrt, ceil, copysign, exp2, expm1, floor, fma, fmod, hypot, ilogb, log, log10, log1p, log2, logb, modf, remainder, rint, round, trunc): Use _GL_CXXALIASWARN1 instead of _GL_CXXALIASWARN. 2020-08-19 Bruno Haible uchar: Fix compilation errors in C++ mode on OpenBSD. * lib/uchar.in.h (char16_t, char32_t): Don't define in C++ mode if CXX_HAS_UCHAR_TYPES is 1. * m4/uchar.m4 (gl_UCHAR_H): Determine whether the C++ compiler predefines char16_t and char32_t. Substitute CXX_HAS_UCHAR_TYPES. * modules/uchar (Makefile.am): Substitute CXX_HAS_UCHAR_TYPES. 2020-08-19 Bruno Haible Fix compilation errors in C++ mode on OpenBSD. * lib/math.in.h (isfinite, isinf, isnan, signbit): In C++ mode on OpenBSD with clang, use the approach without C preprocessor macro. 2020-08-18 Bruno Haible uchar C++ tests: Fix side effect on math modules (regr. 2020-08-17). * modules/uchar-c++-tests (configure.ac): Don't use AC_LANG_PUSH and AC_LANG_POP. 2020-08-17 Paul Eggert verify: avoid __built_assume on Clang * lib/verify.h (assume): Do not use Clang’s __builtin_assume, as Clang 9 incorrectly diagnoses arguments as having side effects even when they do not. I guess Clang 9 considers any function call as if it had a side effect here. libc-config: avoid Clang’s __diagnose_if__ * lib/cdefs.h (__warndecl, __warnattr, __errordecl): For now, do not use __diagnose_if__ here, as this fails on Fedora 31 with Clang 9.0.1, with diagnostic "/usr/include/bits/stdio2.h:263:9: error: fgets called with bigger size than length of destination buffer [-Werror,-Wuser-defined-warnings]". I guess Clang 9 warns even for functions that are not called? careadlinkat: speedup for GCC 10 with GCC_LINT Inspired by a suggestion by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2020-08/msg00155.html * lib/careadlinkat.c (STACK_BUF_SIZE): New constant. (readlink_stk): New function, with most of the old careadlinkat contents and with a new STACK_BUF arg. Inline it in GCC 10 if GCC_LINT. (careadlinkat): Use the new function for everything but the stack buffer. * build-aux/gcc-warning.spec: Update comments. 2020-08-17 Bruno Haible Assume autoconf >= 2.64. * m4/std-gnu11.m4 (AC_PROG_CC, AC_PROG_CXX): Use _AC_DO_LIMIT always. 2020-08-17 Bruno Haible Revert autoupdate's revert. * config/srclist.txt: Mark regcomp.c as needing sync with glibc. 2020-08-17 Bruno Haible uchar C++ tests: Fix build error on FreeBSD 12. * modules/uchar-c++-tests (configure.ac): Test whether exists. (Makefile.am): Don't include test-uchar-c++2.cc in the compilation if does not exist. 2020-08-16 Paul Eggert time_rz: remove unused functions * lib/time_rz.c (isdst_differ, equal_tm): Remove; no longer used. time_rz: fix issues with mktime_z failures * lib/time_rz.c (mktime_z): Do not update *TM if revert_tz fails. Use a cheaper tm_yday test for failed mktime. 2020-08-16 Bruno Haible intprops test: Strengthen on clang. * tests/test-intprops.c (VERIFY): Use verify_stmt. 2020-08-16 Bruno Haible nstrftime: Guide inlining also on clang. * lib/nstrftime.c (iso_week_days): Inline also on clang. 2020-08-16 Bruno Haible intprops: Avoid bogus "warning: division by zero is undefined" on clang. * lib/intprops.h (_GL__GENERIC_BOGUS): Define to 1 on clang. 2020-08-16 Bruno Haible log2l: Disable MSVC workaround on clang. * lib/log2l.c (log2l): On clang, use the expression 0.0L/0.0L. 2020-08-16 Bruno Haible argp: Emit a warning also with clang. * lib/argp-help.c (__argp_short_program_name): Use #warning also on clang. 2020-08-16 Bruno Haible libc-config: Enable __REDIRECT macro also on clang. * lib/cdefs.h (__REDIRECT, __REDIRECT_NTH, __REDIRECT_NTHNL, __ASMNAME, __ASMNAME2): Define on clang like on GCC. 2020-08-16 Bruno Haible regex: Use initializer shorthand syntax also with clang. * lib/regcomp.c (utf8_sb_map): Use the initializer shorthand syntax also with clang. 2020-08-16 Bruno Haible regex: Use space optimization also with clang. * lib/regex_internal.h (re_token_t): Use a single byte for the type also with clang. 2020-08-16 Bruno Haible Use _Static_assert and static_assert primitives when present on clang. * lib/cdefs.h (_Static_assert): Don't define as a macro on clang. * lib/verify.h (_GL_HAVE__STATIC_ASSERT, _GL_HAVE__STATIC_ASSERT1, _GL_HAVE_STATIC_ASSERT1): Define as appropriate on clang. 2020-08-16 Bruno Haible Use 'throw ()' for optimization in C++ mode also on clang. * lib/cdefs.h (__THROW): Define to 'throw ()' also on clang. * lib/getopt-cdefs.in.h (__THROW): Likewise. * lib/md5.h (__THROW): Likewise. 2020-08-16 Bruno Haible absolute-header: Add support for clang. * modules/absolute-header (Makefile.am): Include '__clang__' in the HAVE_INCLUDE_NEXT expression. 2020-08-16 Bruno Haible Fix "warning: implicitly declaring library function 'strcasecmp'". * lib/argp-help.c: Include . 2020-08-16 Bruno Haible stdio: Don't break attribute 'scanf' on clang. * lib/stdio.in.h (scanf): Treat clang like GCC. 2020-08-16 Bruno Haible Use __restrict also on clang. * lib/argp.h (__restrict): Don't define as a macro on clang >= 3. * lib/glob.in.h (_Restrict_): Use __restrict on clang >= 3. * lib/unitypes.in.h (_UC_RESTRICT): Likewise. 2020-08-16 Bruno Haible pthread-spin: Use GCC built-ins also on clang. * lib/pthread-spin.c (pthread_spin_init, pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock): Use the newer GCC built-ins also on clang. 2020-08-16 Bruno Haible asyncsafe-spin tests: Update. * tests/test-asyncsafe-spin2.c: Update to match the change in lib/asyncsafe-spin.c from 2020-08-11. 2020-08-16 Bruno Haible setenv: Use tree code also with clang. * lib/setenv.c (USE_TSEARCH): Treat clang like GCC. 2020-08-16 Bruno Haible math: Optimize signbit also on clang. * lib/math.in.h (gl_signbitf, gl_signbitd, gl_signbitl): Optimize also on clang. 2020-08-16 Bruno Haible avltreehash-list, rbtreehash-list: Optimize also on clang. * lib/gl_anytreehash_list1.h (add_nodes_to_buckets): Use __builtin_expect also on clang. 2020-08-16 Bruno Haible Fix "warning: 'WSASocketA' is deprecated: Use WSASocketW() instead". * lib/socket.c: Use WSASocketW, not WSASocketA. Fix "warning: format specifies type 'unsigned long'". * tests/test-nonblocking-writer.h (main_writer_loop): Cast dbgfprintf argument to match the format directive. Fix "warning: no case matching constant switch condition '0'". * tests/test-fcntl.c (check_flags): Add a 'default' case. Fix "warning: integer overflow in expression". * tests/test-strtol.c (main): Use an 'unsigned long' expression to remove a 'long' overflow. Fix "warning: "getpagesize" redefined". * tests/test-getcwd.c (getpagesize): Don't redefine if defined as a macro. Fix "warning: implicitly declaring library function 'strncasecmp'". * lib/strptime.c: Include . Fix "warning: 'snprintf' macro redefined". * lib/strerror_r.c (snprintf): Undefine before redefining. Fix "warning: address of array 'locale' will always evaluate to 'true'". * lib/nl_langinfo.c (ctype_codeset): Remove redundant NULL test. Fix "warning: '__stat64' macro redefined". * lib/glob.c (__stat64): Undefine also on MSVC/clang. Fix "warning: 'format' attribute argument not supported: rpl_printf". * lib/stdio.in.h (printf): Treat clang like GCC. Fix "warning: attribute declaration must precede definition" with clang. * lib/math.in.h (acosl, asinl, atanl, ceill, cosl, expl, fabsf, fabsl, floorl, fmodl, frexpf, frexpl, hypotf, hypotl, ldexpf, ldexpl, logl, log10l, modfl, sinl, sqrtl, tanl): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * lib/netdb.in.h (gai_strerror): Likewise. * lib/stdio.in.h (snprintf, vfscanf, vscanf, vsnprintf): Likewise. * lib/sys_stat.in.h (fstat): Likewise. * lib/utime.in.h (utime): Likewise. Fix undesired warnings. * lib/sys_select.in.h: Disable all _GL_WARN_ON_USE invocations with clang. 2020-08-16 Bruno Haible C++ tests: Fix link errors on MSVC (regression from 2020-05-31). * modules/stdio-c++-tests (Makefile.am): Link test-stdio-c++ with $(LIB_GETRANDOM), needed for the rpl_tmpfile symbol. * modules/stdlib-c++-tests (Makefile.am): Link test-stdlib-c++ with $(LIB_GETRANDOM), needed for the mkdtemp and mkstemp symbols. 2020-08-16 Bruno Haible Don't use Autoconf quadrigraphs. * m4/alloca.m4 (_AC_LIBOBJ_ALLOCA): Use '#' instead of the corresponding Autoconf quadrigraph. * m4/free.m4 (gl_FUNC_FREE): Likewise. * m4/getloadavg.m4 (gl_PREREQ_GETLOADAVG): Likewise. * m4/largefile.m4 (_AC_SYS_LARGEFILE_TEST_INCLUDES, _AC_SYS_LARGEFILE_MACRO_VALUE): Likewise. * m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Likewise. * m4/math_h.m4 (gl_MATH_H): Likewise. * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Likewise. 2020-08-16 Bruno Haible Fix quoting of AC_LANG_PROGRAM arguments. * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Quote the AC_LANG_PROGRAM arguments through [[...]]. * m4/fpending.m4 (gl_FUNC_FPENDING): Likewise. * m4/fpurge.m4 (gl_FUNC_FPURGE): Likewise. * m4/fseeko.m4 (gl_FUNC_FSEEKO): Likewise. * m4/ld-output-def.m4 (gl_LD_OUTPUT_DEF): Likewise. * m4/ld-version-script.m4 (gl_LD_VERSION_SCRIPT): Likewise. * m4/linkat.m4 (gl_FUNC_LINKAT): Likewise. * m4/mountlist.m4 (gl_MOUNTLIST): Likewise. * m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H): Likewise. * m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): Likewise. * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Likewise. * m4/warnings.m4 (gl_COMPILER_OPTION_IF): Likewise. * m4/wcstok.m4 (gl_FUNC_WCSTOK): Likewise. * m4/wctype_h.m4 (gl_WCTYPE_H): Likewise. 2020-08-16 Bruno Haible Assume autoconf >= 2.64. * gnulib-tool (DEFAULT_AUTOCONF_MINVERSION): Set to 2.64. * DEPENDENCIES: Require Autoconf 2.64 or newer. * NEWS: Mention the changed requirement. * m4/00gnulib.m4 (_m4_divert_diversion, AC_DEFUN_ONCE): Remove macros. * m4/gnulib-common.m4 (AS_VAR_IF, AS_VAR_COPY): Remove macros. * m4/absolute-header.m4 (gl_ABSOLUTE_HEADER): Quote pushdef'ed variables. * m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): Likewise. * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Likewise. * m4/warnings.m4 (gl_COMPILER_OPTION_IF): Likewise. (gl_UNKNOWN_WARNINGS_ARE_ERRORS(C), gl_UNKNOWN_WARNINGS_ARE_ERRORS(C++), gl_UNKNOWN_WARNINGS_ARE_ERRORS(Objective C)): Define through AC_DEFUN. * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC(C), gl_MANYWARN_ALL_GCC(C++)): Likewise. * m4/iconv.m4 (AM_ICONV): Define through AC_DEFUN_ONCE directly. * m4/libunistring.m4 (gl_LIBUNISTRING): Likewise. * m4/configmake.m4: Update comment. 2020-08-16 Bruno Haible sys_ioctl: Simplify. * m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H): Remove confusing use of AC_INCLUDES_DEFAULT. 2020-08-16 Bruno Haible Fix quoting of AC_LANG_SOURCE arguments. * m4/printf.m4 (gl_PRINTF_ENOMEM): Fix an m4 quoting bug in the GL_NOCRASH expansion. * m4/locale-ar.m4 (gt_LOCALE_AR): Simplify m4 quoting. * m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): Likewise. * m4/locale-ja.m4 (gt_LOCALE_JA): Likewise. * m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Likewise. * m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Likewise. 2020-08-15 Paul Eggert nstrftime: be more predictable about errno This aligns nstrftime better with draft POSIX 202x strftime. * lib/nstrftime.c: Include errno.h. (width_add, __strftime_internal): Set errno on failure, and preserve it on success. Check for mktime_z failure. * modules/nstrftime (Depends-on): Add errno. * modules/nstrftime-tests (Depends-on): Add atoll, intprops. * tests/test-nstrftime.c: Include intprops.h, limits.h. (errno_test): New test function. (main): Call it. 2020-08-15 Bruno Haible canonicalize: Fix a problem of the autoconf test on MSVC/clang. * m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Remove undesired file from dependency analysis first. 2020-08-15 Bruno Haible Determine asm output option and filename suffix for MSVC/clang. * m4/asm-underscore.m4 (gl_C_ASM): Distinguish clang from cl and clang-cl. 2020-08-15 Bruno Haible doc: Update for MSVC/clang. * doc/*-functions/*printf.texi: Mention that MSVC/clang has two bugs that MSVC 14 does not have. 2020-08-15 Bruno Haible Revert autoupdate's revert. * config/srclist.txt: Mark mktime.c as needing sync with glibc. 2020-08-15 Bruno Haible frexpl: Fix configuration test result on MSVC. * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Avoid a division by a constant zero. 2020-08-15 Bruno Haible Support compiling without -loldnames on native Windows. * m4/gnulib-common.m4 (GL_MDA_DEFINES, _GL_MDA_DEFINES): New macros. * m4/chown.m4 (AC_FUNC_CHOWN): In the test programs, use GL_MDA_DEFINES. (gl_FUNC_CHOWN, gl_FUNC_CHOWN_FOLLOWS_SYMLINK): Likewise. * m4/dup.m4 (gl_FUNC_DUP): Likewise. * m4/dup2.m4 (gl_FUNC_DUP2): Likewise. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Likewise. * m4/fchmodat.m4 (gl_FUNC_FCHMODAT): Likewise. * m4/fchownat.m4 (gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG): Likewise. * m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Likewise. * m4/fcntl.m4 (gl_FUNC_FCNTL): Likewise. * m4/fdopen.m4 (gl_FUNC_FDOPEN): Likewise. * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Likewise. * m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): Likewise. * m4/fopen.m4 (gl_FUNC_FOPEN_GNU): Likewise. * m4/freopen.m4 (gl_FUNC_FREOPEN): Likewise. * m4/futimens.m4 (gl_FUNC_FUTIMENS): Likewise. * m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Likewise. * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise. * m4/getcwd.m4 (gl_FUNC_GETCWD_NULL, gl_FUNC_GETCWD_SIGNATURE): Likewise. * m4/getdtablesize.m4 (gl_FUNC_GETDTABLESIZE): Likewise. * m4/linkat.m4 (gl_FUNC_LINKAT): Likewise. * m4/lseek.m4 (gl_FUNC_LSEEK): Likewise. * m4/mkdir.m4 (gl_FUNC_MKDIR): Likewise. * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Likewise. * m4/mktime.m4 (gl_FUNC_MKTIME_WORKS): Likewise. * m4/open-slash.m4 (gl_OPEN_TRAILING_SLASH_BUG): Likewise. * m4/poll.m4 (gl_FUNC_POLL): Likewise. * m4/posix_spawn.m4 (gl_POSIX_SPAWN_WORKS): Likewise. * m4/pread.m4 (gl_FUNC_PREAD): Likewise. * m4/pselect.m4 (gl_FUNC_PSELECT): Likewise. * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Likewise. * m4/ptsname_r.m4 (gl_PREREQ_PTSNAME_R): Likewise. * m4/putenv.m4 (gl_FUNC_PUTENV): Likewise. * m4/pwrite.m4 (gl_FUNC_PWRITE): Likewise. * m4/rename.m4 (gl_FUNC_RENAME): Likewise. * m4/rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Likewise. * m4/rmdir.m4 (gl_FUNC_RMDIR): Likewise. * m4/select.m4 (gl_FUNC_SELECT): Likewise. * m4/setenv.m4 (gl_FUNC_UNSETENV): Likewise. * m4/strncat.m4 (gl_FUNC_STRNCAT): Likewise. * m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Likewise. * m4/unlink-busy.m4 (gl_FUNC_UNLINK_BUSY_TEXT): Likewise. * m4/unlink.m4 (gl_FUNC_UNLINK): Likewise. * m4/utimens.m4 (gl_UTIMENS): Likewise. * m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Likewise. * m4/utimes.m4 (gl_FUNC_UTIMES): Likewise. * m4/canonicalize.m4 (gl_CANONICALIZE_LGPL): On native Windows, don't test for getcwd. * m4/utime.m4 (gl_FUNC_UTIME): On native Windows, don't test for utime. * m4/wcsdup.m4 (gl_FUNC_WCSDUP): To test for wcsdup, use a test program with GL_MDA_DEFINES. * lib/c++defs.h (_GL_CXXALIAS_MDA): New macro. * lib/fcntl.in.h (creat, open): On native Windows, use the underscore- prefixed symbol. * lib/search.in.h (lfind, lsearch): Likewise. * lib/stdio.in.h (fcloseall, fdopen, fileno, getw, putw, tempnam): Likewise. * lib/stdlib.in.h (ecvt, fcvt, gcvt, mktemp, putenv): Likewise. * lib/string.in.h (memccpy, strdup): Likewise. * lib/sys_stat.in.h (chmod, umask): Likewise. * lib/time.in.h (tzset): Likewise. * lib/unistd.in.h (access, chdir, close, dup, dup2, execl, execle, execlp, execv, execve, execvp, execvpe, getcwd, getpid, isatty, lseek, read, rmdir, swab, unlink, write): Likewise. * lib/utime.in.h (utime): Likewise. * lib/wchar.in.h (wcsdup): Likewise. * lib/math.in.h (j0, j1, jn, y0, y1, yn): Likewise. (isfinite, isinf, isnan, signbit): On native Windows, don't define as an rpl_-prefixed macro. * lib/canonicalize-lgpl.c (__getcwd): On native Windows, use _getcwd. * lib/close.c (close_nothrow): On native Windows, use _close. * lib/creat.c (orig_creat): On native Windows, use _creat. * lib/dup.c (dup_nothrow): On native Windows, use _dup. * lib/dup2.c (dup2_nothrow): Use _dup2. * lib/fdopen.c (fdopen_nothrow): On native Windows, use _fdopen. * lib/getcwd-lgpl.c: On native Windows, use _getcwd. * lib/getcwd.c (getcwd_nothrow): Use _getcwd also on mingw. * lib/open.c (orig_open): On native Windows, use _open. * lib/read.c (read_nothrow): Use _read. * lib/rmdir.c: On native Windows, use _rmdir. * lib/unlink.c: On native Windows, use _unlink. * lib/write.c (write_nothrow): Use _write. * lib/sys_select.in.h (close): With clang, don't attach a warning on an undefined symbol. * lib/sys_socket.in.h (close): Likewise. * lib/sys_time.in.h (close): Likewise. * tests/test-spawn-pipe-child.c: On native Windows, use _fdopen. 2020-08-15 Bruno Haible Fix "unknown pragma ignored" warnings with clang on native Windows. * lib/cbrt.c: Don't use '#pragma fenv_access (off)' with clang. * lib/cbrtf.c: Likewise. * lib/ceil.c: Likewise. * lib/floor.c: Likewise. * lib/fma.c: Likewise. * lib/fmod.c: Likewise. * lib/rint.c: Likewise. * lib/round.c: Likewise. * lib/trunc.c: Likewise. * tests/test-ceil2.c: Likewise. * tests/test-ceilf2.c: Likewise. * tests/test-floor2.c: Likewise. * tests/test-floorf2.c: Likewise. * tests/test-trunc2.c: Likewise. * tests/test-truncf2.c: Likewise. * m4/round.m4 (gl_FUNC_ROUND): Likewise. * m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise. 2020-08-15 Bruno Haible Fix compilation errors in C++ mode with clang on native Windows. * lib/pthread.in.h (pthread_*): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * lib/sched.in.h (sched_yield): Likewise. 2020-08-14 Bruno Haible stdnoreturn: Work around problem with MSVC/clang. * m4/stdnoreturn.m4 (gl_STDNORETURN_H): On native Windows, include some system header after . * doc/posix-headers/stdnoreturn.texi: Mention the issue. 2020-08-14 Bruno Haible utime-h: Generate an utime.h file always. * modules/utime-h (Makefile.am): Generate utime.h always. * m4/utime_h.m4 (gl_UTIME_H): Don't set UTIME_H. Don't define GL_GENERATE_UTIME_H. 2020-08-14 Bruno Haible mktime, mktime-internal: Remove obsolete code. * m4/mktime.m4 (gl_FUNC_MKTIME_WORKS): Don't #undef putenv. 2020-08-14 Bruno Haible getcwd: Remove obsolete code. * m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Don't #undef mkdir. * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise. 2020-08-14 Bruno Haible tzset: Assume the function exists. * lib/time.in.h (tzset): Assume HAVE_TZSET is 1. * lib/tzset.c: Define rpl_tzset, not tzset. Assume HAVE_TZSET is 1. * modules/tzset (configure.ac): Don't test HAVE_TZSET. * m4/tzset.m4 (gl_FUNC_TZSET): Don't test for tzset. Don't set HAVE_TZSET. * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Don't initialize HAVE_TZSET. * modules/time (Makefile.am): Don't substitute HAVE_TZSET. nstrftime: Assume tzset exists. * lib/nstrftime.c (HAVE_TZSET): Remove macro. (__strftime_internal): Test my_strftime, not HAVE_TZSET. * m4/nstrftime.m4 (gl_FUNC_GNU_STRFTIME): Don't test for tzset. mktime, mktime-internal: Assume tzset exists. * lib/mktime.c (my_tzset): Assume HAVE_TZSET is 1. * m4/mktime.m4 (gl_FUNC_MKTIME_WORKS): Don't test for tzset. 2020-08-14 Bruno Haible strdup: Assume the function exists. * m4/strdup.m4 (gl_FUNC_STRDUP, gl_FUNC_STRDUP_POSIX): Don't test whether strdup exists. * modules/strdup (Files): Remove lib/strdup.c. (configure.ac): Don't compile strdup.c. * modules/strdup-posix (Depends-on, configure.ac): Don't test ac_cv_func_strdup. * doc/posix-functions/strdup.texi: Update. * lib/unistr/u8-strdup.c: Assume HAVE_STRDUP is 1. * modules/unistr/u8-strdup (Files): Remove lib/unistr/u-strdup.h. (Depends-on): Remove unistr/u8-strlen. 2020-08-13 Bruno Haible sys_random: Work around an uClibc bug. Reported by akater via Stefan Kangas in . * lib/sys_random.in.h: On uClibc, include first. * m4/sys_random_h.m4 (gl_HEADER_SYS_RANDOM): Update comment. * m4/getrandom.m4 (gl_FUNC_GETRANDOM): Likewise. * doc/glibc-headers/sys_random.texi: Mention the uClibc bug. 2020-08-12 Bruno Haible Avoid implicit conversion from 'unsigned int' to 'int' in initializers. Reported by Florian Weimer in . * lib/gen-uni-tables.c (output_predicate): Change the element type of the level3 array to 'unsigned int'. * lib/unictype/bitmap.h (bitmap_lookup): Access an 'unsigned int'. * lib/unictype/categ_*.h: Regenerated. * lib/unictype/ctype_*.h: Regenerated. * lib/unictype/pr_*.h: Regenerated. * lib/unictype/sy_*.h: Regenerated. * lib/unicase/cased.h: Regenerated. * lib/unicase/ignorable.h: Regenerated. 2020-08-12 Paul Eggert stdint: port intptr_t to more-recent MinGW Problem reported by Eli Zaretskii in . * lib/stdint.in.h (intptr_t, uintptr_t): Do not define on MinGW, even if _INTPTR_T_DEFINED and _UINTPTR_T_DEFINED are not defined. Apparently those two macros were removed in mingwrt-3.22 dated 2016-07-14. 2020-08-12 Bruno Haible thread-optim: Export function-like macros only. Suggested by Paul Eggert. * lib/thread-optim.h (gl_multithreaded): New macro. (IF_MT_DECL, IF_MT): Remove macros. * doc/multithread.texi (Multithreading Optimizations): Add a small example. * lib/fatal-signal.c: Update all uses. * lib/clean-temp.c: Likewise. * lib/localename.c: Likewise. * modules/localename (Depends-on): Add stdbool. 2020-08-12 Bruno Haible Revert autoupdate's revert. * config/srclist.txt: Mark regex.h as needing sync with glibc. 2020-08-11 Bruno Haible thread-optim: Fix a compiler warning. * lib/thread-optim.h (IF_MT_DECL): Define differently. 2020-08-11 Bruno Haible Use __restrict also on clang. * lib/cdefs.h (__restrict): Don't define as a macro on clang. (__restrict_arr): On clang, define like on GCC. * lib/regex.h (_Restrict_): Use '__restrict' also on clang. (_Restrict_arr_): Use _Restrict_ also on clang. * lib/spawn.in.h (_Restrict_): Use '__restrict' also on clang. (_Restrict_arr_): Use _Restrict_ also on clang. 2020-08-11 Bruno Haible Use flexible array syntax also on clang. * lib/cdefs.h (__flexarr, __glibc_c99_flexarr_available): For clang, define like for GCC 3. 2020-08-11 Bruno Haible fcntl: On native Windows, use _setmode, not setmode. * lib/fcntl.c (dupfd): Use _setmode, not setmode. * lib/binary-io.h: Update comment. * tests/test-cloexec.c: Call set_binary_mode, not setmode. * tests/test-dup2.c: Likewise. * tests/test-dup-safer.c: Likewise. * tests/test-fcntl.c: Likewise. 2020-08-11 Bruno Haible execute, spawn-pipe: Use _spawnvpe, not spawnvpe. * lib/execute.c (execute): Use _spawnvpe, not spawnvpe. * lib/spawn-pipe.c (create_pipe): Likewise. * tests/test-nonblocking-pipe-main.c (main): Likewise. * tests/test-nonblocking-socket-main.c (main): Likewise. * lib/wait-process.c: Update comment. * doc/posix-functions/fork.texi: Update. 2020-08-11 Bruno Haible asyncsafe-spin: Use GCC built-ins also on clang. * lib/asyncsafe-spin.c (asyncsafe_spin_init, do_lock, do_unlock): Use the newer GCC built-ins also on clang. 2020-08-11 Bruno Haible Use expression statements also on clang. * lib/cdefs.h (__extension__): Don't define to empty on clang. * lib/obstack.h (__extension__): Likewise. (obstack_object_size, obstack_room, obstack_make_room, obstack_empty_p, obstack_grow, obstack_grow0, obstack_1grow, obstack_ptr_grow, obstack_int_grow, obstack_ptr_grow_fast, obstack_int_grow_fast, obstack_blank, obstack_alloc, obstack_copy, obstack_copy0, obstack_finish, obstack_free): Enable as optimized macros also on clang. * lib/fpucw.h (fpucw_t etc.): Enable the definitions also on clang. 2020-08-10 Bruno Haible Use many __attribute__s with clang. * m4/gnulib-common.m4 (_Noreturn): Use __attribute__ __noreturn__ also on clang. * lib/cdefs.h (__glibc_clang_has_attribute, __glibc_clang_has_builtin): New macros. (__THROW, __THROWNL, __NTH, __NTHNL): Use __attribute__ __nothrow__ also on clang. (__warndecl, __warnattr, __errordecl): Use __attribute__ __diagnose_if__ also on older clang versions. (__attribute__): Don't define to empty on clang. (__attribute_malloc__): Use __attribute__ __malloc__ also on clang. (__attribute_pure__): Use __attribute__ __pure__ also on clang. (__attribute_const__): Use __attribute__ __const__ also on clang. (__attribute_used__): Use __attribute__ __used__ also on clang. (__attribute_noinline__): Use __attribute__ __noinline__ also on clang. (__attribute_deprecated__): Use __attribute__ __deprecated__ also on clang. (__attribute_format_arg__): Use __attribute__ __format_arg__ also on clang. (__attribute_format_strfmon__): Use __attribute__ __format__ __strfmon__ also on clang. (__nonnull): Use __attribute__ __nonnull__ also on clang. (__attribute_warn_unused_result__): Use __attribute__ __warn_unused_result__ also on clang. (__always_inline): Use __attribute__ __always_inline__ also on clang. (__attribute_artificial__): Use __attribute__ __artificial__ also on clang >= 7. (__glibc_unlikely, __glibc_likely): Use __builtin_expect also on older clang versions. (_Noreturn): Don't redefine on clang >= 3.5. * lib/arg-nonnull.h (_GL_ARG_NONNULL): Use __attribute__ __nonnull__ also on clang. * lib/dirent.in.h (_GL_ATTRIBUTE_PURE): Use __attribute__ __pure__ also on clang. * lib/stdlib.in.h (_GL_ATTRIBUTE_PURE): Likewise. * lib/string.in.h (_GL_ATTRIBUTE_PURE): Likewise. * lib/wchar.in.h (_GL_ATTRIBUTE_PURE): Likewise. * lib/stdio.in.h (_GL_ATTRIBUTE_FORMAT): Use __attribute__ __format__ also on clang. * lib/monetary.in.h (_GL_ATTRIBUTE_FORMAT): Likewise. * lib/textstyle.in.h (ostream_printf, ostream_vprintf): Likewise. * lib/unitypes.in.h (_UC_ATTRIBUTE_CONST): Use __attribute__ __const__ also on clang. (_UC_ATTRIBUTE_PURE): Use __attribute__ __pure__ also on clang. * lib/noreturn.h (_GL_NORETURN_FUNC, _GL_NORETURN_FUNCPTR): Use __attribute__ __noreturn__ also on clang. * lib/obstack.h (__attribute_noreturn__): Likewise. * lib/file-set.h (record_file): Use __attribute__ __nonnull__ also on clang. * lib/argp-help.c (hol_entry_long_iterate): Use __attribute__ always_inline also on clang. * tests/test-printf-posix.c (func1, func2, func3, func4): Test also on clang. 2020-08-10 Bruno Haible c-ldtoastr tests: Fix test failure. * tests/test-c-ldtoastr.c (main): Support platforms where 'long double' is longer than 'double'. 2020-08-10 Bruno Haible Revert autoupdate's revert. * config/srclist.txt: Mark intprops.h as needing sync with glibc. 2020-08-09 Bruno Haible string: Fix build error in C++ mode with clang (regression from today). * lib/warn-on-use.h (_GL_WARN_ON_USE_CXX): Expect two rettype parameters, one for GCC, one for clang. * lib/c++defs.h (_GL_CXXALIASWARN1_2): Update. * lib/string.in.h (strchr, strpbrk, strrchr): For clang, pass 'char *' as return type. 2020-08-09 Bruno Haible ftruncate: Use _chsize, not chsize. * m4/ftruncate.m4 (gl_PREREQ_FTRUNCATE): Test for _chsize, not chsize. * lib/ftruncate.c: Test HAVE__CHSIZE. (chsize_nothrow): Use _chsize, not chsize. 2020-08-09 Bruno Haible Silence warnings from clang 10 with -Wimplicit-fallthrough. * lib/dfa.c (FALLTHROUGH): Use __attribute__ __fallthrough__ also on clang >= 10. * lib/fnmatch.c (FALLTHROUGH): Likewise. * lib/fts.c (FALLTHROUGH): Likewise. * tests/macros.h (FALLTHROUGH): Likewise. * lib/regex_internal.h (FALLTHROUGH): Likewise. * config/srclist.txt: Mark it as needing sync with glibc. 2020-08-09 Bruno Haible stdbool tests: Enable the stricter tests also on clang. * tests/test-stdbool.c (ADDRESS_CHECK_OKAY): Define also on clang. (e): Enable the address-to-bool conversion test also on clang. 2020-08-09 Bruno Haible count-one-bits: Use __builtin_popcount{,l,ll} on clang. * lib/count-one-bits.h (COUNT_ONE_BITS): Use the GCC built-in. 2020-08-09 Bruno Haible Use attribute __aligned__ with clang. * lib/stdalign.in.h (_Alignas): Treat clang like GCC. * lib/stddef.in.h (_GL_STDDEF_ALIGNAS): Likewise. 2020-08-09 Bruno Haible Use __alignof__ with clang. * m4/stddef_h.m4 (gl_STDDEF_H): Test the alignment of max_align_t also on clang. * lib/alignof.h (alignof_type): Use __alignof__ also on clang. * lib/stdalign.in.h (_Alignof): Don't activate the GCC workaround on clang. * lib/malloca.h (sa_alignof): Use __alignof__ also on clang. * lib/bitset/list.c (lbitset_elt_alloc): Use __alignof__ also on clang. * lib/bitset/table.c (tbitset_elt_alloc): Likewise. * tests/test-stddef.c: Very the behaviour of __alignof__ also on clang. 2020-08-09 Bruno Haible ignore-value: Simplify on clang. * lib/ignore-value.h (ignore_value): With clang, no need to use the GCC workaround. 2020-08-09 Bruno Haible Use __typeof__ with clang. * m4/stdint.m4 (gl_STDINT_H): Check for SIZE_MAX also on "clang -std=gnu99". * lib/intprops.h (_GL_HAVE___TYPEOF__): Define to 1 also on clang. * tests/test-stdint.c (verify_same_types): Enable the check also on clang. 2020-08-09 Bruno Haible Add ability to emit user-defined warnings and errors with clang. * m4/gnulib-common.m4 (gl_COMMON_BODY): Define _GL_ATTRIBUTE_ERROR, _GL_ATTRIBUTE_WARNING using an attribute for clang. * lib/warn-on-use.h (_GL_WARN_ON_USE, _GL_WARN_ON_USE_ATTRIBUTE, _GL_WARN_ON_USE_CXX): Define using an attribute for clang. * lib/cdefs.h (__warndecl, __warnattr, __errordecl): Define using an attribute for clang. 2020-08-09 Bruno Haible intprops: Fix typo in comment. * lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW_P): Fix typo in comment. 2020-08-09 Bruno Haible Use __builtin_signbit* with clang. * lib/math.in.h (signbit): Use __builtin_signbit{,f,l} also on clang. * m4/signbit.m4 (gl_SIGNBIT): Use __builtin_signbit{,f,l} also on clang. Set REPLACE_SIGNBIT_USING_BUILTINS, not REPLACE_SIGNBIT_USING_GCC. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_SIGNBIT_USING_BUILTINS, not REPLACE_SIGNBIT_USING_GCC. * modules/math (Makefile.am): Substitute REPLACE_SIGNBIT_USING_BUILTINS, not REPLACE_SIGNBIT_USING_GCC. 2020-08-09 Bruno Haible Use __builtin_isnan with clang. * lib/isnanf-nolibm.h (isnanf): Use the GCC built-in __builtin_isnan, not __builtin_isnanf. Also on clang. * m4/isnanf.m4 (gl_HAVE_ISNANF_NO_LIBM, gl_ISNANF_WORKS): Use the GCC built-in __builtin_isnan, not __builtin_isnanf. Also on clang. * lib/isnand-nolibm.h (isnand): With clang, use the GCC built-in. * m4/isnand.m4 (gl_HAVE_ISNAND_IN_LIBM): With clang, use the GCC built-in. * lib/isnanl-nolibm.h (isnanf): Use the GCC built-in __builtin_isnan, not __builtin_isnanl. Also on clang. * m4/isnanl.m4 (gl_HAVE_ISNANL_NO_LIBM, gl_FUNC_ISNANL_WORKS): Use the GCC built-in __builtin_isnan, not __builtin_isnanl. Also on clang. * lib/math.in.h (__has_builtin): Remove macro. (isnanf, gl_isnan_f): Use the GCC built-in __builtin_isnan, not __builtin_isnanf. Also on clang. (isnand, gl_isnan_d): With clang, use the GCC built-in. (isnanl, gl_isnan_l): Use the GCC built-in __builtin_isnan, not __builtin_isnanl. Also on clang. (isnan): Use the GCC built-in __builtin_isnan in all three cases. Also on clang. 2020-08-09 Bruno Haible thread-optim: Fix logic error. Reported by Paul Eggert. * lib/thread-optim.h (IF_MT): Fix logic error. 2020-08-08 Bruno Haible localename: Use module 'thread-optim'. * lib/localename.c: Include thread-optim.h. (struniq): Use IF_MT macro. * modules/localename (Depends-on): Add thread-optim. clean-temp: Use module 'thread-optim'. * lib/clean-temp.c: Include thread-optim.h. (register_temporary_file, unregister_temporary_file, create_temp_dir, register_temp_file, unregister_temp_file, register_temp_subdir, unregister_temp_subdir, cleanup_temp_dir_contents, register_fd, close_temp, fclose_variant_temp): Use IF_MT macro. * modules/clean-temp (Depends-on): Add thread-optim. fatal-signal: Use module 'thread-optim'. * lib/fatal-signal.c: Include thread-optim.h. (at_fatal_signal, block_fatal_signals, unblock_fatal_signals): Use IF_MT macro. * modules/fatal-signal (Depends-on): Add thread-optim. 2020-08-08 Bruno Haible New module 'thread-optim'. * lib/thread-optim.h: New file. * modules/thread-optim: New file. * doc/multithread.texi (Multithreading Optimizations): New section. 2020-08-07 Paul Eggert doc: more updates for glibc 2.32 * doc/glibc-functions/lchmod.texi, doc/posix-functions/faccessat.texi: * doc/posix-functions/fchmodat.texi: Update. 2020-08-07 Bruno Haible doc: Update for glibc 2.32. * doc/glibc-functions/__libc_single_threaded.texi: New file. * doc/glibc-functions/pthread_attr_getsigmask_np.texi: New file. * doc/glibc-functions/pthread_attr_setsigmask_np.texi: New file. * doc/glibc-functions/sigabbrev_np.texi: New file. * doc/glibc-functions/sigdescr_np.texi: New file. * doc/glibc-functions/strerrordesc_np.texi: New file. * doc/glibc-functions/strerrorname_np.texi: New file. * doc/gnulib.texi: Include them. (Glibc sys/single_threaded.h): New section. * doc/pastposix-functions/h_errno.texi: Update. * doc/posix-functions/*.texi: Likewise. * doc/glibc-functions/*.texi: Likewise. 2020-08-07 Bruno Haible alloca: No need to compile alloca.c with clang. * lib/alloca.c: Skip all code with clang. Use __builtin_alloca with clang. * lib/alloca.in.h (alloca): Define as __builtin_alloca on clang. 2020-08-06 Bruno Haible Use __builtin_assume with clang. * lib/verify.h (_GL_HAS_BUILTIN_ASSUME): New macro. (assume): Use __builtin_assume when available. 2020-08-06 Paul Eggert libgmp: add support * m4/libgmp.m4 (gl_LIBGMP): * modules/libgmp (configure.ac, Makefile.am): Support platforms requiring ‘#include ’ instead of ‘#include ’. 2020-08-06 Bruno Haible Consider that clang defines __OPTIMIZE__ like GCC does. * lib/streq.h: Define the inline functions also on clang. * lib/c-strcaseeq.h: Likewise. * lib/c++defs.h (_GL_CXXALIASWARN_2, _GL_CXXALIASWARN1_2): Don't enable the GCC workaround to clang. 2020-08-06 Bruno Haible safe-alloc: Remove unused code. * lib/safe-alloc.h (__GNUC_PREREQ): Remove macro. 2020-08-06 Bruno Haible Use __builtin_expect with clang everywhere. * lib/cdefs.h (__glibc_unlikely, __glibc_likely): Use the GCC built-in also on clang. 2020-08-05 Bruno Haible Use __builtin_ctz{,l,ll} and __builtin_ffs{,l,ll} with clang everywhere. * lib/count-trailing-zeros.h (COUNT_TRAILING_ZEROS): Use the GCC built-in also on clang. * lib/ffs.c: With clang, use the GCC built-in, not . * lib/ffsl.h: Likewise. Assume GCC_BUILTIN is defined. 2020-08-05 Bruno Haible Use __builtin_clz{,l,ll} with clang, also on Windows. * lib/integer_length.c: With clang, use the GCC built-in, not . * lib/integer_length_l.c: Likewise. * lib/count-leading-zeros.h (COUNT_LEADING_ZEROS): Use the GCC built-in also on clang. * lib/vasnprintf.c (divide): Likewise. 2020-08-04 Paul Eggert Update srclist.txt as per recent glibc changes * config/srclist.txt: Uncomment lines to reflect recent merges from Gnulib to glibc. 2020-08-03 Bruno Haible Prefer documented autoconf macro 'm4_if' over 'ifelse'. * m4/progtest.m4 (AM_PATH_PROG_WITH_TEST): Use m4_if instead of ifelse. 2020-08-03 Bruno Haible integer_length_ll: Optimize for MSVC in 64-bit mode. * lib/integer_length_l.c (MSVC_BUILTIN): Define for MSVC in 64-bit mode. (FUNC): On MSVC, use MSVC_BUILTIN if defined. 2020-08-03 Bruno Haible integer_length_ll: Optimize for MSVC in 32-bit mode. * lib/integer_length_l.c: Include . (integer_length): Define as inline function, like in lib/integer_length.c. 2020-08-03 Bruno Haible integer_length: Optimize for MSVC. * lib/integer_length.c: Include . (integer_length): With MSVC, use the _BitScanReverse built-in. 2020-08-03 Bruno Haible ffsll: Optimize for MSVC in 64-bit mode. * lib/ffsl.h (FUNC): On MSVC, use MSVC_BUILTIN if defined. * lib/ffsll.c (MSVC_BUILTIN): Define for MSVC in 64-bit mode. * lib/ffsl.c (MSVC_BUILTIN): Define for MSVC. 2020-08-03 Bruno Haible ffsll: Optimize for MSVC in 32-bit mode. * lib/ffsl.h: Include . (ffs): Define as inline function, like in lib/ffs.c. 2020-08-03 Bruno Haible ffs: Optimize for MSVC. * lib/ffs.c: Include . (ffs): With MSVC, use the _BitScanForward built-in. 2020-08-03 Bruno Haible sigprocmask: Try to avoid breakage for people who use an Autoconf cache. * m4/signalblocking.m4 (gl_SIGNALBLOCKING): Change the name of the cache variable. 2020-08-03 Harald van Dijk (tiny change) fopen: Avoid undesired interactions with glibc headers. * lib/fopen.c (_GL_ALREADY_INCLUDING_STDIO_H): Define this instead of __need_FILE, as the latter does not work with glibc. 2020-08-02 Paul Eggert fcntl: document some F_SETLK errno variations * doc/posix-functions/fcntl.texi (fcntl): Document OpenIndiana, GNU/Linux, FreeBSD on NFS files. 2020-08-02 Bruno Haible oset: Add an 'iterator_atleast' operation. * lib/gl_array_oset.c (gl_array_indexof_atleast): New function, extracted from gl_array_search_atleast. (gl_array_search_atleast): Use it. (gl_array_iterator_atleast): New function. (gl_array_oset_implementation): Use it. * lib/gl_anytree_oset.h (gl_tree_iterator_atleast): New function. * lib/gl_avltree_oset.c (gl_avltree_oset_implementation): Use it. * lib/gl_rbtree_oset.c (gl_rbtree_oset_implementation): Likewise. * lib/gl_oset.h (struct gl_oset_implementation): Add 'iterator_atleast' member. (gl_oset_iterator_atleast): New function. * lib/gl_oset.hh (gl_OSet): Add 'begin_atleast' member. (gl_OSet::iterator): Add another auxiliary constructor. * tests/test-array_oset.c (is_at_least, gl_sortedlist_indexof_atleast): New functions. (main): Test also gl_oset_iterator_atleast. * tests/test-avltree_oset.c (is_at_least): New function. (main): Test also gl_oset_iterator_atleast. * tests/test-rbtree_oset.c (is_at_least): New function. (main): Test also gl_oset_iterator_atleast. * tests/test-oset-c++.cc (is_at_most): New function. (main): Test also gl_OSet::begin_atleast. 2020-08-02 Bruno Haible oset-c++, omap-c++: Remove restriction for search_atleast method. * lib/gl_oset.hh (gl_OSet::search_atleast): Allow the threshold to be of a different type than the element. * lib/gl_omap.hh (gl_OMap::search_atleast): Allow the threshold to be of a different type than the key. 2020-08-01 Paul Eggert gnumakefile: say ‘$(MAKE)’ not ‘make’ * top/GNUmakefile (abort-due-to-no-makefile): Prefer ‘$(MAKE)’ to ‘make’ in a diagnostic. This change is backported from Autoconf. 2020-08-01 Bruno Haible Prefer documented autoconf macro 'm4_if' over 'ifelse'. * m4/autobuild.m4 (AB_INIT): Use m4_if instead of ifelse. * m4/csharpexec.m4 (gt_CSHARPEXEC): Likewise. * m4/javacomp.m4 (gt_JAVACOMP): Likewise. * m4/javaexec.m4 (gt_JAVAEXEC): Likewise. * m4/libtextstyle.m4 (gl_LIBTEXTSTYLE): Likewise. 2020-08-01 Bruno Haible libtextstyle-optional: Update tests. * modules/libtextstyle-optional-tests (configure.ac): Invoke gl_LIBTEXTSTYLE_OPTIONAL. 2020-08-01 Bruno Haible parse-datetime: Fix wrong #line statements. * modules/parse-datetime (Makefile.am): Correct #line statements also in parse-datetime-gen.h. 2020-08-01 Bruno Haible libtextstyle[-optional]: Allow requesting a minimum version. * m4/libtextstyle.m4 (gl_LIBTEXTSTYLE): Allow an optional argument. (gl_LIBTEXTSTYLE_NEWEST_VERSION, gl_LIBTEXTSTYLE_INITIALIZE, gl_LIBTEXTSTYLE_SEARCH): New macros. * modules/libtextstyle (configure.ac): Don't invoke gl_LIBTEXTSTYLE. * m4/libtextstyle-optional.m4 (gl_LIBTEXTSTYLE_OPTIONAL): Allow an optional argument. Invoke, not require, gl_LIBTEXTSTYLE. * modules/libtextstyle-optional (configure.ac): Don't invoke gl_LIBTEXTSTYLE_OPTIONAL. * NEWS: Mention the changes. 2020-07-31 Bruno Haible _GL_CMP: Improve documentation. Reported by Paul Eggert in . * m4/gnulib-common.m4 (gl_COMMON_BODY): Clarify what arguments can be passed. 2020-07-30 Paul Eggert largefile: sync with Autoconf master * m4/largefile.m4 (_AC_SYS_LARGEFILE_TEST_INCLUDES): Avoid undefined behavior on platforms where off_t is 32 bits. See: https://bugs.debian.org/742780 alloca: sync with Autoconf master * m4/alloca.m4 (_AC_LIBOBJ_ALLOCA): Do not define if Autoconf 2.70 or later, since Autoconf master now matches us. 2020-07-30 Bruno Haible unicodeio: Add comment. * lib/unicodeio.c (unicode_to_mb): Clarify why the code distinguishes different iconv behaviours. 2020-07-30 Paul Eggert Work around some Oracle Studio attribute bugs These were discovered when building bleeding-edge Emacs with Oracle Studio. * m4/gnulib-common.m4 (_GL_ATTRIBUTE_COLD, _GL_ATTRIBUTE_MAY_ALIAS): Port to Oracle Studio 12.6, which mishandles __attribute__ ((__cold__)) and __attribute__ ((__may_alias__)) even though __has_attribute says they work. 2020-07-29 Bruno Haible unicodeio: Fix wrong result on musl libc. Reported by A. Wilcox in . * lib/unicodeio.c (unicode_to_mb): Handle asterisk fallback characters on musl libc. * m4/unicodeio.m4 (gl_UNICODEIO): Invoke gl_MUSL_LIBC. * modules/unicodeio (Files): Add m4/musl.m4. 2020-07-29 Paul Eggert fsusage, regex, stat-size: remove Cray support As near as I can make out this is actually support for UNICOS/mp, last released 2005, and Cray hasn’t supported that for years. * config/srclist.txt: Comment out regex.h for now. * lib/fsusage.c (get_fs_usage): * lib/regex.h (re_comp, re_exec): * lib/stat-size.h (ST_NBLOCKSIZE): Don’t worry about _CRAY. 2020-07-29 Bruno Haible parse-datetime: Fix compilation error with bison 3.7. * modules/parse-datetime (Makefile.am): Create a generated header file parse-datetime-gen.h in the source directory. Correct #include and #line statements during preprocessing. 2020-07-28 Bruno Haible fopen-gnu: Create files correctly (regression from 2020-05-24). * lib/fopen.c (rpl_open): Pass a third argument to open(). 2020-07-27 Paul Eggert xalloc-die: don’t depend on xalloc This removes a circular dependency, as xalloc depends on xalloc-die. * modules/xalloc-die (Files): Add lib/xalloc.h. (Depends-on): Remove xalloc. Add extern-inline, stdint, xalloc-oversized (this is for xalloc.h). dfa-tests: port to MSVC Problem reported by Gisle Vanem in: https://lists.gnu.org/r/bug-gnulib/2020-07/msg00159.html Also, remove an unnecessary dependency on getprogname. * modules/dfa-tests (Depends-on): Remove getprogname. * tests/test-dfa-match-aux.c: Do not include getprogname.h. (exit_status): New static var. (dfawarn): Set it instead of exiting. Do not declare as _Noreturn, to pacify MSVC. (main): Return exit_status. 2020-07-26 Paul Eggert argz: pacify MSVC * lib/argz.in.h: Avoid "*/*" to pacify MSVC. Problem reported by Gisle Vanem. libgmp: remove dependency on havelib * m4/libgmp.m4 (gl_LIBGMP): If gl_HAVE_MODULE_HAVELIB is not defined, use the more-traditional AC_SEARCH_LIBS approach. This should work better with GNU Emacs configuration, which uses pkg-config instead of a havelib-style approach. * modules/havelib (gl_HAVE_MODULE_HAVELIB): New witness macro. * modules/libgmp (Depends-on): Remove havelib. libgmp: remove HAVE_GMP, LIB_GMP * m4/libgmp.m4 (gl_LIBGMP): Do not define HAVE_GMP and LIB_GMP, as they’re redundant. I’ll adjust GNU Coreutils accordingly. 2020-07-26 Bruno Haible inttypes: Remove support for AIX 4. * lib/inttypes.in.h: Assume that PRI_MACROS_BROKEN is 0. * m4/inttypes-pri.m4: Remove file. * m4/inttypes.m4 (gl_INTTYPES_PRI_SCN): Don't require gt_INTTYPES_PRI. (gl_INTTYPES_H_DEFAULTS): Don't initialize PRI_MACROS_BROKEN. * modules/inttypes-incomplete (Makefile.am): Don't substitute PRI_MACROS_BROKEN. * modules/inttypes (Files): Remove m4/inttypes-pri.m4. 2020-07-26 Bruno Haible gettimeofday: Remove workaround for Mac OS X 10.0. * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY_CLOBBER): Remove macro. (gl_FUNC_GETTIMEOFDAY): Don't invoke it. * lib/gettimeofday.c: Don't include localtime-buffer.h. (gettimeofday): Don't test GETTIMEOFDAY_CLOBBERS_LOCALTIME. * lib/localtime.c: Don't test GETTIMEOFDAY_CLOBBERS_LOCALTIME. * modules/gettimeofday (Depends-on): Remove localtime-buffer. * modules/localtime-buffer: Remove file. * lib/localtime-buffer.h: Remove file. * lib/localtime-buffer.c: Remove file. * m4/localtime-buffer.m4: Remove file. * MODULES.html.sh (Date and time ): Remove localtime-buffer. 2020-07-26 Bruno Haible tzset: Remove workaround for Solaris 2.6. * m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): Remove macro. (gl_FUNC_TZSET): Don't invoke it. Don't define TZSET_CLOBBERS_LOCALTIME. Don't require gl_LOCALTIME_BUFFER_DEFAULTS. * lib/localtime-buffer.h: Don't test TZSET_CLOBBERS_LOCALTIME. * lib/localtime-buffer.c: Likewise. * lib/localtime.c: Likewise. * lib/tzset.c: Don't include localtime-buffer.h. (tzset): Don't test TZSET_CLOBBERS_LOCALTIME. * lib/nstrftime.c (__strftime_internal): Assume HAVE_RUN_TZSET_TEST is 1. * modules/tzset (Depends-on): Remove localtime-buffer. 2020-07-26 Bruno Haible expl: Simplify autoconf test. * m4/expl.m4 (gl_FUNC_EXPL): Merge the "checking whether expl() breaks with small values..." test into the "checking whether expl works..." test. 2020-07-26 Bruno Haible alloca: Remove Cray-2 and Cray Y-MP support. * m4/alloca.m4 (_AC_LIBOBJ_ALLOCA): Don't define CRAY_STACKSEG_END. Enable also on Autoconf >= 2.69. * lib/alloca.c (ADDRESS_FUNCTION, struct stack_control_header, struct stack_segment_linkage, struct stk_stat, struct stk_trailer, i00afunc): Remove. 2020-07-25 Bruno Haible multiarch: Prepare for x86_64+arm64 universal binaries in macOS 11. * m4/multiarch.m4 (gl_MULTIARCH): Recognize also the ARM architectures. 2020-07-25 Bruno Haible sigprocmask: Small autoconf macro improvement. * m4/signalblocking.m4 (gl_SIGNALBLOCKING): Make it possible for the user to override the value of gl_cv_func_sigprocmask. * m4/gnulib-common.m4 (gl_SILENT): New macro. 2020-07-25 Bruno Haible Small autoconf macro improvements. * m4/mktime.m4 (gl_FUNC_MKTIME_WORKS): Make it possible for the user to override the value of gl_cv_func_working_mktime. * m4/multiarch.m4 (gl_MULTIARCH): Show a line "checking whether the compiler produces multi-arch binaries..." in the configure output. * m4/size_max.m4 (gl_SIZE_MAX): When not found, say "no". * m4/parse-datetime.m4 (gl_C_COMPOUND_LITERALS): Improve indentation. 2020-07-25 Bruno Haible doc: Update for NetBSD 7.1, 8.0, 9.0. * doc/*/*.texi: Update. * m4/exp2l.m4: Update comments. * m4/expl.m4: Likewise. * m4/ilogb.m4: Likewise. * m4/ilogbf.m4: Likewise. * m4/log10l.m4: Likewise. * m4/logl.m4: Likewise. * m4/printf.m4: Likewise. * m4/rintl.m4: Likewise. * m4/wcwidth.m4: Likewise. 2020-07-24 Bruno Haible doc: Update for Mac OS X 10.13. * doc/*/*.texi: Update. * m4/expm1l.m4: Update comments. * m4/getgroups.m4: Likewise. * m4/getlogin_r.m4: Likewise. * m4/linkat.m4: Likewise. * m4/printf.m4: Likewise. 2020-07-24 Bruno Haible doc: Update for Cygwin 2.9.0. * doc/*/*.texi: Update. 2020-07-24 Paul Eggert parse-datetime: modernize doc * doc/parse-datetime.texi: Use more-current examples. Don’t lead with 32-bit time_t, as it’s on its way out. Capitalize “Epoch” to be consistent with POSIX. timespec: remove dependence on ‘verify’ * lib/timespec.h: Do not include verify.h; no longer needed. * modules/timespec (Depends-on): Remove ‘verify’. Optimize a few more three-valued comparisons * lib/timespec.h (timespec_cmp, timespec_sign): * lib/utimecmp.c (utimecmpat): Avoid conditional branches by using _GL_CMP. Fix _GL_CMP parenthesization typo * m4/gnulib-common.m4 (_GL_CMP): Properly parenthesize. 2020-07-24 Bruno Haible dfa: Revert breaking gawk. Reported by Arnold Robbins . * lib/dfa.c (compare): Don't reference the _GL_CMP macro. 2020-07-23 Bruno Haible Optimize three-valued comparison between integers. (a > b ? 1 : a < b ? -1 : 0) is the same as (a > b) - (a < b). * m4/gnulib-common.m4 (gl_COMMON): Define _GL_CMP. * lib/c-strcasecmp.c (c_strcasecmp): Use _GL_CMP. * lib/c-strncasecmp.c (c_strncasecmp): Likewise. * lib/dfa.c (compare): Likewise. * lib/fts.c (fts_compare_ino): Likewise. * lib/mbmemcasecmp.c (mbmemcasecmp): Likewise. * lib/mbscasecmp.c (mbscasecmp): Likewise. * lib/mbsncasecmp.c (mbsncasecmp): Likewise. * lib/memcasecmp.c (memcasecmp): Likewise. * lib/memcmp2.c (memcmp2): Likewise. * lib/savedir.c (direntry_cmp_inode): Likewise. * lib/strcasecmp.c (strcasecmp): Likewise. * lib/strncasecmp.c (strncasecmp): Likewise. * lib/unistr/u-cmp2.h (FUNC): Likewise. 2020-07-23 Bruno Haible lchmod: Use /proc on Cygwin. * lib/lchmod.c (lchmod): Use /proc on Cygwin. 2020-07-23 Ken Brown fchmodat: Use /proc on Cygwin * lib/fchmodat.c (fchmodat): Use /proc on Cygwin. 2020-07-21 Bruno Haible aligned-malloc: Optionally use aligned_alloc. * lib/aligned-malloc.h: Verify the alignment. (aligned_malloc): Use aligned_alloc as an alternative. * modules/aligned-malloc (configure.ac): Test for aligned_alloc. * doc/posix-functions/aligned_alloc.texi: Mention the modules 'aligned-malloc' and 'pagealign_alloc'. 2020-07-21 Bruno Haible aligned-malloc: Add tests. * tests/test-aligned-malloc.c: New file. * modules/aligned-malloc-tests: New file. aligned-malloc: New module. * lib/aligned-malloc.h: New file. * m4/malloc-align.m4: New file. * modules/aligned-malloc: New file. * doc/posix-functions/posix_memalign.texi: Mention the new module. * doc/glibc-functions/memalign.texi: Likewise. 2020-07-21 Bruno Haible inttypes: Fix PRI*PTR and SCN*PTR on 64-bit native Windows. * m4/inttypes.m4 (gl_INTTYPES_PRI_SCN): On 64-bit native Windows, make sure PRIPTR_PREFIX is defined to "ll", not "l". 2020-07-21 Bruno Haible printf-posix: Make an autoconf test more future-proof. * m4/printf.m4 (gl_PRINTF_DIRECTIVE_N): Include before using uintptr_t. 2020-07-20 Bruno Haible list, oset, omap: Relicense some of the container modules under LGPLv2+. * modules/list (License): Change to LGPLv2+. * modules/array-list (License): Likewise. * modules/carray-list (License): Likewise. * modules/linked-list (License): Likewise. * modules/avltree-list (License): Likewise. * modules/rbtree-list (License): Likewise. * modules/oset (License): Likewise. * modules/array-oset (License): Likewise. * modules/avltree-oset (License): Likewise. * modules/rbtree-oset (License): Likewise. * modules/omap (License): Likewise. * modules/array-omap (License): Likewise. * modules/avltree-omap (License): Likewise. * modules/rbtree-omap (License): Likewise. 2020-07-20 Bruno Haible oset: Add an 'update' operation. * lib/gl_array_oset.c (gl_array_update): New function. (gl_array_oset_implementation): Use it. * lib/gl_avltree_omap.c (NODE_PAYLOAD_DISPOSE): Add parameters. * lib/gl_rbtree_omap.c (NODE_PAYLOAD_DISPOSE): Add parameters. * lib/gl_avltree_ordered.h (gl_tree_add_node_before): New function, extracted from gl_tree_nx_add_before. (gl_tree_nx_add_before): Invoke it. (gl_tree_add_node_after): New function, extracted from gl_tree_nx_add_after. (gl_tree_nx_add_after): Invoke it. (gl_tree_remove_node_no_free): New function, extracted from gl_tree_remove_node. (gl_tree_remove_node): Invoke it. * lib/gl_rbtree_ordered.h (gl_tree_add_node_before): New function, extracted from gl_tree_nx_add_before. (gl_tree_nx_add_before): Invoke it. (gl_tree_add_node_after): New function, extracted from gl_tree_nx_add_after. (gl_tree_nx_add_after): Invoke it. (gl_tree_remove_node_no_free): New function, extracted from gl_tree_remove_node. (gl_tree_remove_node): Invoke it. * lib/gl_anytree_oset.h (gl_tree_next_node): New function, extracted from gl_tree_iterator_next. (gl_tree_iterator_next): Invoke it. (gl_tree_prev_node, gl_tree_update): New functions. * lib/gl_avltree_oset.c (NODE_PAYLOAD_DISPOSE): Add parameters. (gl_avltree_oset_implementation): Use gl_tree_update. * lib/gl_rbtree_oset.c (NODE_PAYLOAD_DISPOSE): Add parameters. (gl_rbtree_oset_implementation): Use gl_tree_update. * lib/gl_oset.h (struct gl_oset_implementation): Add 'update' member. (gl_oset_update): New function. * lib/gl_oset.hh (gl_OSet): Add 'update' member. * modules/avltree-oset (configure.ac): Require AC_C_INLINE. * modules/rbtree-oset (configure.ac): Likewise. * tests/test-oset-update.h: New file. * tests/test-array_oset.c: Include test-oset-update.h. (main): Invoke test_update. * tests/test-avltree_oset.c: Likewise. * tests/test-rbtree_oset.c: Likewise. * modules/array-oset-tests (Files): Add tests/test-oset-update.h. * modules/avltree-oset-tests (Files): Likewise. * modules/rbtree-oset-tests (Files): Likewise. * tests/test-oset-c++.cc (action): New function. (main): Test the 'update' member function. 2020-07-15 Paul Eggert md5, sha1, sha256, sha512: pacify Autoconf 2.70 * m4/gl-openssl.m4 (gl_CRYPTO_CHECK): Use m4_if rather than a shell if, so that the argument to AC_CHECK_HEADERS is a simple string that does not require shell evaluation. This fixes a warning generated by Autoconf 2.69b. 2020-07-12 Bruno Haible libgmp: Avoid warning when --without-libgmp is used. * lib/mini-gmp-gnulib.c: Ignore -Wsuggest-attribute=malloc only for GCC >= 8, not for GCC >= 4.6. 2020-07-12 Bruno Haible libgmp: Link to the correct shared library. * m4/libgmp.m4 (gl_LIBGMP): Invoke AC_LIB_HAVE_LINKFLAGS. * modules/libgmp (Depends-on): Add havelib. (Link): Mention $(LIBGMP) and $(LTLIBGMP). * modules/libgmp-tests (Makefile.am): Link test-libgmp with $(LIBGMP). 2020-07-12 Bruno Haible libgmp tests: Add some safety checks. * modules/libgmp-tests (Depends-on): Add verify. * tests/test-libgmp.c: Verify GMP_NUMB_BITS value. (main): Verify that gmp.h and libgmp versions match. 2020-07-10 Bruno Haible unicodeio: Fix wrong result on NetBSD. * lib/unicodeio.c (unicode_to_mb): Handle question mark fallback characters also on NetBSD. 2020-07-09 Bruno Haible unicodeio: Fix wrong result on Solaris 11. Reported by Kiyoshi Kanazawa via Akim Demaille in . * lib/unicodeio.c (unicode_to_mb): Handle question mark fallback characters on Solaris. * tests/test-unicodeio.c (main): In the "C" locale, expect either the UTF-8 output or the specified fallback. 2020-07-08 Bruno Haible unicodeio: Add tests. * tests/test-unicodeio.c: New file. * tests/test-unicodeio1.sh: New file. * tests/test-unicodeio2.sh: New file. * tests/test-unicodeio3.sh: New file. * modules/unicodeio-tests: New file. 2020-07-08 Bruno Haible unicodeio: Document link requirements. * modules/unicodeio (Link): New section. 2020-07-07 Bruno Haible doc: Remove support for some very old platforms. * doc/posix-functions/memcmp.texi: Don't mention "older platforms". * doc/posix-functions/memcpy.texi: Likewise. * doc/posix-functions/memmove.texi: Likewise. * doc/posix-functions/memset.texi: Likewise. * doc/posix-functions/getcwd.texi: Likewise. memchr: Remove support for some very old platforms. * m4/memchr-obsolete.m4: Remove file. * modules/memchr-obsolete: Remove file. * m4/memchr.m4 (gl_FUNC_MEMCHR): Assume module 'memchr-obsolete' is absent. Don't define HAVE_MEMCHR. * lib/string.in.h (memchr): Assume HAVE_MEMCHR is 1. * modules/memchr (Depends-on): Remove memchr-obsolete. (configure.ac): Assume HAVE_MEMCHR is 1. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Don't initialize HAVE_MEMCHR. * modules/string (Makefile.am): Don't substitute HAVE_MEMCHR. * doc/posix-functions/memchr.texi: Don't mention module 'memchr-obsolete'. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Assume HAVE_MEMCHR is 1. * m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE): Assume HAVE_MEMCHR is 1. * modules/strnlen (Depends-on): Remove memchr-obsolete. dup2: Remove support for some very old platforms. * m4/dup2-obsolete.m4: Remove file. * modules/dup2-obsolete: Remove file. * m4/dup2.m4 (gl_FUNC_DUP2): Assume module 'dup2-obsolete' is absent. Don't define HAVE_DUP2. * lib/unistd.in.h (dup2): Assume HAVE_DUP2 is 1. * lib/dup2.c: Likewise. * modules/dup2 (Depends-on, configure.ac): Likewise. (Depends-on): Remove dup2-obsolete. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Don't initialize HAVE_DUP2. * modules/unistd (Makefile.am): Don't substitute HAVE_DUP2. * doc/posix-functions/dup2.texi: Don't mention module 'dup2-obsolete'. 2020-07-07 Bruno Haible canonicalize: Trim module dependencies. * lib/hash-triple.h: Group declarations. * lib/hash-triple-simple.c: New file, extracted from lib/hash-triple.c. * lib/hash-triple.c: Don't include , , hash-pjw.h. (STREQ): Remove macro. (triple_hash, triple_compare_ino_str, triple_free): Remove functions. * modules/hash-triple-simple: New file, based on modules/hash-triple. * modules/hash-triple (Files): Remove lib/hash-triple.h. (Depends-on): Add hash-triple-simple. Remove hash-pjw. * modules/canonicalize (Depends-on): Remove hash-triple. Add hash-triple-simple. * modules/file-set (Depends-on): Likewise. 2020-07-07 Bruno Haible Clarify dependencies to double-slash-root. * modules/canonicalize (Files): Remove m4/double-slash-root.m4. (Depends-on): Add double-slash-root. * modules/canonicalize-lgpl (Depends-on): Add double-slash-root. * modules/dirname-lgpl (Depends-on): Add double-slash-root. 2020-07-06 Paul Eggert libgmp: new module The idea is to let programs simply include , and so long as they live within the mini-gmp subset they need not worry about whether the GMP libraries are installed. * MODULES.html.sh: Mention it. * config/srclist.txt: Mention files copied from GMP source. * config/srclistvars.sh (GMP): New var. * lib/mini-gmp-gnulib.c, m4/libgmp.m4, modules/libgmp: * modules/libgmp-tests, tests/test-libgmp.c: New files. * lib/mini-gmp.c, lib/mini-gmp.h: New files, copied from GMP. 2020-07-05 Bruno Haible mkancesdirs: Trim module dependencies. * lib/mkancesdirs.c: Include filename.h instead of dirname.h. * modules/mkancesdirs (Depends-on): Remove dirname-lgpl. Add filename. 2020-07-05 Bruno Haible getprogname: Trim module dependencies. * lib/getprogname.c: Include basename-lgpl.h instead of dirname.h. * modules/getprogname (Depends-on): Remove dirname-lgpl. Add basename-lgpl. 2020-07-05 Bruno Haible filenamecat-lgpl: Trim module dependencies. * lib/filenamecat-lgpl.c: Include basename-lgpl.h, filename.h instead of dirname.h. * modules/filenamecat-lgpl (Depends-on): Remove dirname-lgpl. Add basename-lgpl, filename. 2020-07-05 Bruno Haible backupfile, backup-rename: Trim module dependencies. * lib/backupfile.c: Include basename-lgpl.h instead of dirname.h. * modules/backupfile (Depends-on): Remove dirname-lgpl. Add basename-lgpl. * modules/backup-rename (Depends-on): Likewise. 2020-07-05 Bruno Haible argp: Trim module dependencies. * lib/argp-namefrob.h: Include basename-lgpl.h instead of dirname.h. * modules/argp (Depends-on): Remove dirname-lgpl. Add basename-lgpl. 2020-07-05 Bruno Haible basename-lgpl: New module. * lib/basename-lgpl.h: New file, based on lib/dirname.h and lib/basename-lgpl.c. * lib/basename-lgpl.c: Include basename-lgpl.h, not dirname.h. Include , filename.h. (last_component): Rename a local variable. * lib/dirname.h: Include basename-lgpl.h. (DOUBLE_SLASH_IS_DISTINCT_ROOT): Remove macro. (last_component, base_len): Remove declarations. * modules/basename-lgpl: New file. * modules/dirname-lgpl (Files): Remove lib/basename-lgpl.c. (Depends-on): Add basename-lgpl. Remove double-slash-root. (Makefile.am): Don't compile basename-lgpl.c. * doc/posix-functions/basename.texi: Mention the module 'basename-lgpl', not 'dirname'. 2020-07-05 Bruno Haible dirname, dirname-lgpl: Simplify. * m4/dirname.m4: Remove file. * modules/dirname (configure.ac): Don't invoke gl_DIRNAME. * modules/dirname-lgpl (Files): Remove m4/dirname.m4. (configure.ac): Don't invoke gl_DIRNAME_LGPL. 2020-07-05 Bernhard Voelker tests: avoid shadowing warning * tests/test-memchr.c (main): Give page_boundary variable a tight scope. 2020-07-05 Bruno Haible supersede: Add tests. * tests/test-supersede.c: New file. * tests/test-supersede-open.h: New file. * tests/test-supersede-fopen.h: New file. * modules/supersede-tests: New file. supersede: New module. * lib/supersede.h: New file. * lib/supersede.c: New file. * m4/supersede.m4: New file. * modules/supersede: New file. 2020-07-05 Bruno Haible Add some copyright headers. * lib/dev-ino.h: Add copyright header. * lib/di-set.h: Likewise. * lib/fchown-stub.c: Likewise. * lib/file-set.h: Likewise. * lib/hash-triple.h: Likewise. * lib/idcache.h: Likewise. * lib/ino-map.h: Likewise. * lib/mkancesdirs.h: Likewise. * lib/scratch_buffer.h: Likewise. * lib/se-context.in.h: Likewise. * lib/stdopen.h: Likewise. * lib/userspec.h: Likewise. 2020-07-04 Bruno Haible getrandom: Relicense under LGPLv2+. Paul Eggert's approval is in . * modules/getrandom (License): Change to LGPLv2+. 2020-07-04 Bruno Haible getumask: Add tests. * tests/test-getumask.c: New file. * modules/getumask-tests: New file. getumask: New module. * lib/sys_stat.in.h (getumask): New declaration. * lib/getumask.c: New file. * m4/getumask.m4: New file. * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Test whether getumask is declared. (gl_SYS_STAT_H_DEFAULTS): Initialize GNULIB_GETUMASK, HAVE_GETUMASK. * modules/sys_stat (Makefile.am): Substitute GNULIB_GETUMASK, HAVE_GETUMASK. * modules/getumask: New file. * tests/test-sys_stat-c++.cc (getumask): Check signature. * doc/glibc-functions/getumask.texi: New file. * doc/gnulib.texi (Glibc sys/stat.h): Include it. 2020-07-04 Bruno Haible clean-temp: Add support for temporary files with given mode. * lib/clean-temp.h (gen_register_open_temp): Add mode argument. * lib/clean-temp.c (struct try_create_file_params): New type. (try_create_file): New function. (gen_register_open_temp): Add mode argument. Use try_tempname instead of gen_tempname. 2020-07-04 Bruno Haible clean-temp: Document limitations. * lib/clean-temp.h: Document limitations. 2020-07-04 Bruno Haible clean-temp: Add support for temporary files with unpredictable names. * lib/clean-temp.h (gen_register_open_temp): New declaration. * lib/clean-temp.c: Include tempname.h. (gen_register_open_temp): New function. * modules/tempname (configure.ac): Define a module indicator. 2020-07-04 Bruno Haible clean-temp: Add support for temporary files anywhere in the file system. * lib/clean-temp.h (register_temporary_file, unregister_temporary_file, cleanup_temporary_file): New declarations. * lib/clean-temp.c (file_cleanup_list_lock, file_cleanup_list): New variables. (dir_cleanup_list_lock): Renamed from cleanup_list_lock. (dir_cleanup_list): Renamed from cleanup_list. (cleanup_action): Process the file_cleanup_list as well. (do_init_clean_temp): New function. (clean_temp_once): New variable. (init_clean_temp): New function. (create_temp_dir): Invoke it. (register_temporary_file, unregister_temporary_file, cleanup_temporary_file): New functions. (do_unlink, do_rmdir): Remove 'dir' argument. Add 'cleanup_verbose' argument. 2020-07-04 Bruno Haible clean-temp: Improve comments. * lib/clean-temp.h (open_temp, fopen_temp, close_temp, fclose_temp, fwriteerror_temp, close_stream_temp): Clarify intended use. * lib/clean-temp.c: Likewise. 2020-07-04 Bruno Haible clean-temp: Make multithread-safe, part 2. * lib/fatal-signal.h: Include . (get_fatal_signal_set): New declaration. * lib/fatal-signal.c (get_fatal_signal_set): New function. * lib/clean-temp.c: Include asyncsafe-spin.h, gl_linked_list.h. (struct closeable_fd): New type. (fatal_signal_set): New variable. (init_fatal_signal_set): New function. (asyncsafe_close, asyncsafe_fclose_variant): New functions. (cleanup_action): Invoke asyncsafe_close instead of close. (create_temp_dir): Invoke init_fatal_signal_set. (register_fd): Use a plain linked list. Add a 'struct closeable_fd *' element. (unregister_fd): Remove function. (close_temp): Cleanup descriptors list on the fly. Invoke init_fatal_signal_set. Invoke asyncsafe_close instead of close. (fclose_variant_temp): New function. (fclose_temp, fwriteerror_temp, close_stream_temp): Use it. * modules/clean-temp (Depends-on): Add asyncsafe-spin, linked-list. 2020-07-04 Bruno Haible clean-temp: Make multithread-safe, part 1. * lib/clean-temp.c: Include glthread/lock.h. (cleanup_list_lock): New variable. (register_temp_file, unregister_temp_file, register_temp_subdir, unregister_temp_subdir, cleanup_temp_dir_contents): Use it. (create_temp_dir): Likewise. Don't free the old array. (descriptors_lock): New variable. (register_fd, unregister_fd): Use it. * modules/clean-temp (Depends-on): Add lock. 2020-07-04 Bruno Haible fatal-signal: Make multithread-safe. * lib/fatal-signal.c (init_fatal_signals): Add comment. (do_init_fatal_signal_set): New function, extracted from init_fatal_signal_set. (fatal_signal_set_once): New variable. (init_fatal_signal_set): Use gl_once. 2020-07-03 Bruno Haible getrandom: Fix compilation error on native Windows (regr. 2020-06-28). * lib/getrandom.c: Don't include . Instead, define NTSTATUS. * m4/getrandom.m4 (gl_FUNC_GETRANDOM): Include before . 2020-07-03 Bruno Haible dfa tests: Follow common file naming conventions. * tests/test-dfa-match-aux.c: Renamed from tests/dfa-match-aux.c. * tests/test-dfa-match.sh: Renamed from tests/dfa-match.sh. Update. * tests/test-dfa-invalid-char-class.sh: Renamed from tests/dfa-invalid-char-class.sh. Update. * modules/dfa-tests (Files, Makefile.am): Update. 2020-07-03 Bruno Haible asyncsafe-spin: Use GCC extended asm syntax for SunStudio 12 compiler. * lib/asyncsafe-spin.c (memory_barrier, atomic_compare_and_swap): Use the GCC extended asm syntax also for the Sun Studio 12 compilers. 2020-07-03 Bruno Haible asyncsafe-spin: Reduce code duplication. * lib/asyncsafe-spin.c (do_lock, do_unlock): New functions. (asyncsafe_spin_lock, asyncsafe_spin_unlock): Use them. * modules/asyncsafe-spin (configure.ac): Require AC_C_INLINE. 2020-07-03 Bruno Haible lchmod: Simplify after 2020-02-22 change. * m4/lchmod.m4 (gl_FUNC_LCHMOD): Don't require AC_C_INLINE. 2020-07-03 Bruno Haible gen-uni-tables: Make sure the compiler does not barf on 'inline'. * modules/gen-uni-tables (configure.ac): Require AC_C_INLINE. 2020-07-03 Bruno Haible dfa: Make sure the compiler does not barf on 'inline'. * modules/dfa (configure.ac): Require AC_C_INLINE. 2020-07-03 Bruno Haible bitset: Make sure the compiler does not barf on 'inline'. * modules/bitset (configure.ac): New section. 2020-07-01 Paul Eggert manywarnings: improve port to GCC 10.1 * build-aux/gcc-warning.spec: Also list warnings that are default or are enabled by already-given flags. This lets us speed up checking for attributes, and makes the generated compilation commands shorter. Add -Wanalyzer-too-complex (too much noise). * m4/manywarnings.m4 (gl_MANYWARN_COMPLEMENT) (gl_MANYWARN_ALL_GCC): Use gl_AS_VAR_APPEND to append to shell variables that may have long values. (gl_MANYWARN_ALL_GCC): Omit flags that are default or are consequences of other flags, to speed up checking and shorten commands. tests: pacify gcc -fanalyzer on zerosize_ptr * tests/test-memcasecmp.c (main): * tests/test-memchr.c (main): * tests/test-memchr2.c (main): * tests/test-memcmp.c (main): * tests/test-memmem.c (main): * tests/test-memrchr.c (main): * tests/unistr/test-chr.h (main): * tests/unistr/test-cmp.h (test_cmp): Check whether zerosize_ptr returns NULL before using it. This pacifies GCC 10.1’s new fanalyzer option, and matches other uses of zerosize_ptr. 2020-07-01 Bruno Haible asyncsafe-spin: Add tests. * tests/test-asyncsafe-spin1.c: New file. * tests/test-asyncsafe-spin2.c: New file, based on tests/test-lock.c and tests/test-pthread-spin.c. * modules/asyncsafe-spin-tests: New file. 2020-07-01 Bruno Haible asyncsafe-spin: New module. * lib/asyncsafe-spin.h: New file. * lib/asyncsafe-spin.c: New file, based on lib/pthread-spin.c. * modules/asyncsafe-spin: New file. 2020-07-01 Bruno Haible windows-spin: Fix race condition on multiprocessor systems. * lib/windows-spin.c (glwthread_spin_init): Add a memory barrier. 2020-07-01 Bruno Haible pthread-spin: Add optimized fallback for GCC versions >= 4.1, < 4.7. * lib/pthread-spin.c (pthread_spin_init, pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock): For GCC >= 4.1, < 4.7, use an implementation based on other GCC built-ins. 2020-07-01 Bruno Haible pthread-spin: Optimize fallback for GCC versions >= 4.7. * lib/pthread-spin.c (pthread_spin_init, pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock): Use a lock word instead of a lock byte. 2020-07-01 Bruno Haible pthread-spin: Add error checking. * lib/pthread-spin.c: Include . (pthread_spin_init, pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock) [GCC>=4.7]: Prefer an implementation that verifies the unlocks. * modules/pthread-spin (Depends-on): Add stdbool. 2020-07-01 Bruno Haible pthread-spin: Add tests. * tests/test-pthread-spin.c: New file, based on tests/test-lock.c. * modules/pthread-spin-tests: New file. 2020-07-01 Bruno Haible tests: Reduce code duplication. * tests/atomic-int-posix.h: New file, extracted from tests/test-pthread-mutex.c. * tests/test-pthread-mutex.c: Include it. Remove the corresponding code. * tests/test-pthread-rwlock.c: Likewise. * modules/pthread-mutex-tests (Files): Add tests/atomic-int-posix.h. * modules/pthread-rwlock-tests (Files): Likewise. 2020-07-01 Bruno Haible tests: Refactor. * tests/atomic-int-isoc.h: New file, extracted from tests/test-mtx.c. * tests/test-mtx.c: Include it. Remove the corresponding code. * modules/mtx-tests (Files): Add tests/atomic-int-isoc.h. 2020-07-01 Bruno Haible tests: Refactor. * tests/atomic-int-gnulib.h: New file, extracted from tests/test-lock.c. * tests/test-lock.c: Include it. Remove the corresponding code. * modules/lock-tests (Files): Add tests/atomic-int-gnulib.h. 2020-06-29 Bruno Haible sys_socket: Don't define socklen_t if it is already defined on mingw. Reported by Keith Marshall in , by Rahul Das in , and by Eli Zaretskii in . * lib/sys_socket.in.h (socklen_t): Remove definition. 2020-06-29 Bruno Haible alloca-opt: Fix warning on mingw. Reported and solution by Eli Zaretskii in . * lib/alloca.in.h: On mingw, include and then test again whether alloca is defined. 2020-06-28 Paul Eggert getrandom: do not depend on ‘open’ on mingw Similarly for at-internal, getloadavg. These modules do not call the ‘open’ function when they are compiled on mingw. On mingw, this avoids having to compile open.c when building Emacs, which does its own thing with ‘open’. * modules/at-internal, modules/getloadavg, modules/getrandom: (Depends-on): Don’t depend on ‘open’ on mingw. (Depends-on): Require AC_CANONICAL_HOST, for host_os. * modules/getloadavg (Depends-on): Depend on intprops, open, stdbool, stdlib only if compiling getloadavg.c. 2020-06-28 Bruno Haible doc: Add a note about sigprocmask vs. pthread_sigmask. * doc/posix-functions/sigprocmask.texi: Add note. 2020-06-28 Bruno Haible getrandom: Fix compilation errors on older versions of mingw. Reported by Eli Zaretskii in . * m4/getrandom.m4 (gl_FUNC_GETRANDOM): Test whether exists. * lib/getrandom.c: If is not available, include and define/declare BCRYPT_ALG_HANDLE, BCRYPT_USE_SYSTEM_PREFERRED_RNG, BCryptGenRandom ourselves. 2020-06-28 Bruno Haible clean-temp: Fix wrong errno in error message. * lib/clean-temp.c (create_temp_dir): Save errno around unblock_fatal_signals call. 2020-06-27 Bruno Haible fatal-signal: Make multithread-safe. * lib/fatal-signal.c (at_fatal_signal): Don't free the old actions array. 2020-06-27 Bruno Haible clean-temp: Don't force deletion of temporary files on native Windows. * lib/clean-temp.h (open_temp, fopen_temp): Add delete_on_close argument. * lib/clean-temp.c (open_temp, fopen_temp): Likewise. * NEWS: Mention the change. * lib/javacomp.c (write_temp_file): Update. 2020-06-27 Bruno Haible fatal-signal: Make multithread-safe. * lib/fatal-signal.c: Include glthread/lock.h. (at_fatal_signal_lock): New variable. (at_fatal_signal): Use it. (fatal_signals_block_lock, fatal_signals_block_counter): New variables. (block_fatal_signals, unblock_fatal_signals): Use them. * modules/fatal-signal (Depends-on): Add lock. 2020-06-27 Paul Eggert getloadavg: don’t depend on fopen-gnu This is for Emacs, which does not need fopen-gnu for anything else, and which would need it only on a NetBSD platform where getloadavg does not work (does that even happen?). * lib/getloadavg.c (getloadavg) [__NetBSD__]: Use open, not fopen. * modules/getloadavg (Depends-on): Remove fopen-gnu. * tests/test-getloadavg.c (main): Fix typo. 2020-06-27 Bruno Haible tempname et al.: Fix link errors on MSVC (regression from 2020-05-31). * modules/tempname (Link): New section. * modules/mkdtemp (Link): Likewise. * modules/clean-temp (Link): Likewise. * modules/mkstemp (Link): Likewise. * modules/stdlib-safer (Link): Likewise. * modules/mkstemps (Link): Likewise. * modules/mkostemp (Link): Likewise. * modules/mkostemps (Link): Likewise. * modules/tmpfile (Link): Likewise. * modules/tmpfile-safer (Link): Likewise. * modules/javacomp (Link): Add $(LIB_GETRANDOM). * modules/argv-iter-tests (Makefile.am): Link test-argv-iter with $(LIB_GETRANDOM). * NEWS: Mention the changes. 2020-06-27 Bruno Haible fopen-gnu: Simplify code. * lib/fopen.c: Include . (rpl_fopen): Use a single variable open_flags instead of open_flags_standard and open_flags_gnu. Make open_flags_gnu a bool. * modules/fopen (Depends-on): Add stdbool. 2020-06-26 Bruno Haible canonicalize: Improve documentation. * lib/canonicalize.h (canonicalize_filename_mode): Document the failure return convention. 2020-06-26 Bruno Haible xgetcwd: Improve documentation. * lib/xgetcwd.c (xgetcwd): Document the failure return convention. 2020-06-26 Bruno Haible getcwd: Improve documentation. * lib/getcwd.c (__getcwd): Document the failure return convention. 2020-06-26 Bruno Haible fchdir: Improve documentation. * lib/fchdir.c (get_name, _gl_register_fd): Document the failure return convention. 2020-06-26 Bruno Haible filenamecat-lgpl: Set errno upon failure. * lib/filenamecat-lgpl.c (mfile_name_concat): Document the failure return convention. * modules/filenamecat-lgpl (Depends-on): Add malloc-posix. 2020-06-26 Bruno Haible areadlink-with-size: Set errno upon failure. * lib/areadlink-with-size.c (areadlink_with_size): Set errno when malloc fails. * lib/areadlinkat-with-size.c (areadlinkat_with_size): Add comment. 2020-06-26 Bruno Haible copy-file: Shrink dependencies. * modules/copy-file (Depends-on): Remove acl. Add acl-permissions, qcopy-acl. 2020-06-26 Bruno Haible doc: Mention declaration fixes implemented by some modules. * doc/posix-functions/chdir.texi: Mention the module 'chdir'. * doc/posix-functions/close.texi: Mention that Gnulib makes the function declaration appear in . * doc/posix-functions/dup.texi: Likewise. * doc/posix-functions/dup2.texi: Likewise. * doc/posix-functions/gethostname.texi: Likewise. * doc/posix-functions/isatty.texi: Likewise. * doc/posix-functions/lseek.texi: Likewise. * doc/posix-functions/unlink.texi: Likewise. * doc/posix-functions/read.texi: Mention the module 'read'. * doc/posix-functions/write.texi: Mention the effects of the module 'write'. 2020-06-25 Marc Nieper-Wißkirchen c-dtoastr, c-ldtoastr: new modules These modules provide the same functionality as the modules dtoastr and ldtoastr except for the formatting taking place in the C locale. * MODULES.html.sh: Add c-dtoastr and c-ldtoastr. * lib/c-dtoastr.c, lib/c-ldtoastr.c: New files. * lib/ftoastr.c: Prefix exported functions when the macro C_LOCALE is defined. Use c_snprintf and c_strtod/c_strtold instead of snprintf and strtod/strtold whhen the macro C_LOCALE is defined. * lib/ftoastr.h: Add prototypes for c_dtoastr and c_ldtoastr. * modules/c-dtoastr, modules/c-dtoastr-tests, modules/c-ldtoastr, modules/c-ldtoastr-tests: New files. * tests/test-c-dtoastr.c, tests/test-c-dtoastr.sh, tests-c-ldtoastr.c tests-c-ldtoastr.sh: New files. 2020-06-21 Bruno Haible tzset: Fix compilation warnings on mingw (regression from 2017-05-01). * lib/tzset.c: Include , . 2020-06-16 Bruno Haible thread: Avoid possible compiler warnings in uses of gl_thread_exit. * lib/glthread/thread.h (gl_thread_exit): Add a cast to void. 2020-06-16 Bruno Haible thread, thrd: Avoid a compiler warning. * lib/windows-thread.h (glwthread_thread_exit): Mark as non-returning. 2020-06-16 Biswapriyo Nath (tiny change) windows-thread: Avoid a compiler warning. * lib/windows-thread.h (glwthread_thread_exit): Change return type to void. * lib/windows-thread.c (glwthread_thread_exit): Likewise. 2020-06-15 Bruno Haible unictype/joininggroup-name: Fix warning on 64-bit mingw. Reported by Biswapriyo Nath in . * lib/unictype/joininggroup_name.c (ELEM): Cast struct offset to size_t first. 2020-06-06 Bruno Haible calloc-gnu tests: Avoid a test failure with clang. * tests/test-calloc-gnu.c (main): Mark the pointer variable as 'volatile', to defeat compiler optimizations. 2020-06-01 Paul Eggert getloadavg: fix double-increment bug * lib/getloadavg.c (getloadavg): Fix double-increment typo on Linux without glibc, Android, Cygwin. This fixes a bug I introduced in 2011-02-08T20:23:29Z!eggert@cs.ucla.edu. Problem and fix reported by Semen Verchenko in: https://lists.gnu.org/r/bug-gnulib/2020-06/msg00007.html tempname: use getrandom, not getentropy This removes a dependency, as getentropy depends on getrandom. * lib/tempname.c: Include sys/random.h instead of unistd.h. (RANDOM_BITS) [!_LIBC]: Use getrandom, not getentropy. * modules/tempname (Depends-on): Depend on getrandom, not getentropy. 2020-06-01 Bruno Haible doc: New chapter 'Multithreading'. * doc/multithread.texi: New file. * doc/gnulib.texi: Include it. 2020-06-01 Bruno Haible doc: Move 'Running self-tests under valgrind' section. * doc/gnulib.texi (Build Infrastructure Modules): Include valgrind-tests.texi here... (Miscellaneous Notes): ... not here. 2020-06-01 Bruno Haible doc: Move 'Visual Studio Compatibility' section. * doc/gnulib.texi (Native Windows Support): Include ld-output-def.texi here... (Build Infrastructure Modules): ... not here. 2020-06-01 Paul Eggert doc: improve randomness discussion Inspired by comments from Jeffrey Walton in: https://lists.gnu.org/r/bug-gnulib/2020-06/msg00002.html * doc/glibc-functions/getentropy.texi (getentropy): * doc/glibc-functions/getrandom.texi (getrandom): Improve discussion of problems with "random" data, and cite Ristenpart & Yilek. Also, mention GRND_INSECURE. 2020-06-01 Bruno Haible doc: Fix Texinfo syntax error. * doc/glibc-functions/getrandom.texi: Add missing '@item'. 2020-06-01 Asher Gordon doc: Change '.' to '@.' where appropriate. * doc/c-ctype.texi: Change '.' to '@.' where appropriate. * doc/glibc-functions/fstatfs.texi: Likewise. * doc/glibc-functions/fts_children.texi: Likewise. * doc/glibc-functions/fts_read.texi: Likewise. * doc/glibc-functions/getdirentries.texi: Likewise. * doc/glibc-functions/mkostemp.texi: Likewise. * doc/glibc-functions/mkostemps.texi: Likewise. * doc/glibc-functions/mkstemps.texi: Likewise. * doc/glibc-functions/preadv.texi: Likewise. * doc/glibc-functions/pwritev.texi: Likewise. * doc/glibc-functions/sendfile.texi: Likewise. * doc/glibc-functions/statfs.texi: Likewise. * doc/gnulib-intro.texi: Likewise. * doc/gnulib-tool.texi: Likewise. * doc/intprops.texi: Likewise. * doc/lib-symbol-visibility.texi: Likewise. * doc/licenses-texi.texi: Likewise. * doc/pastposix-functions/bcmp.texi: Likewise. * doc/pastposix-functions/bcopy.texi: Likewise. * doc/pastposix-functions/bzero.texi: Likewise. * doc/pastposix-functions/ecvt.texi: Likewise. * doc/pastposix-functions/fcvt.texi: Likewise. * doc/pastposix-functions/ftime.texi: Likewise. * doc/pastposix-functions/gcvt.texi: Likewise. * doc/pastposix-functions/getwd.texi: Likewise. * doc/pastposix-functions/index.texi: Likewise. * doc/pastposix-functions/mktemp.texi: Likewise. * doc/pastposix-functions/rindex.texi: Likewise. * doc/pastposix-functions/wcswcs.texi: Likewise. * doc/posix-functions/aio_cancel.texi: Likewise. * doc/posix-functions/aio_error.texi: Likewise. * doc/posix-functions/aio_fsync.texi: Likewise. * doc/posix-functions/aio_read.texi: Likewise. * doc/posix-functions/aio_return.texi: Likewise. * doc/posix-functions/aio_suspend.texi: Likewise. * doc/posix-functions/aio_write.texi: Likewise. * doc/posix-functions/creat.texi: Likewise. * doc/posix-functions/ctime.texi: Likewise. * doc/posix-functions/daylight.texi: Likewise. * doc/posix-functions/fgetpos.texi: Likewise. * doc/posix-functions/fopen.texi: Likewise. * doc/posix-functions/freopen.texi: Likewise. * doc/posix-functions/fseeko.texi: Likewise. * doc/posix-functions/fsetpos.texi: Likewise. * doc/posix-functions/fstatat.texi: Likewise. * doc/posix-functions/fstatvfs.texi: Likewise. * doc/posix-functions/ftello.texi: Likewise. * doc/posix-functions/ftruncate.texi: Likewise. * doc/posix-functions/getrlimit.texi: Likewise. * doc/posix-functions/lio_listio.texi: Likewise. * doc/posix-functions/localtime.texi: Likewise. * doc/posix-functions/lseek.texi: Likewise. * doc/posix-functions/mkstemp.texi: Likewise. * doc/posix-functions/mktime.texi: Likewise. * doc/posix-functions/open.texi: Likewise. * doc/posix-functions/openat.texi: Likewise. * doc/posix-functions/opendir.texi: Likewise. * doc/posix-functions/pread.texi: Likewise. * doc/posix-functions/pwrite.texi: Likewise. * doc/posix-functions/readdir.texi: Likewise. * doc/posix-functions/readdir_r.texi: Likewise. * doc/posix-functions/scandir.texi: Likewise. * doc/posix-functions/seekdir.texi: Likewise. * doc/posix-functions/setrlimit.texi: Likewise. * doc/posix-functions/statvfs.texi: Likewise. * doc/posix-functions/strftime.texi: Likewise. * doc/posix-functions/telldir.texi: Likewise. * doc/posix-functions/timezone.texi: Likewise. * doc/posix-functions/tmpfile.texi: Likewise. * doc/posix-functions/truncate.texi: Likewise. * doc/posix-functions/tzname.texi: Likewise. * doc/posix-functions/wcsftime.texi: Likewise. * doc/windows-sockets.texi: Likewise. 2020-05-31 Paul Eggert getrandom-tests: do not assume GRND_RANDOM yields short read * tests/test-getrandom.c (main): Omit assertion that getrandom (b, sizeof b, GRND_RANDOM | GRND_NONBLOCK) < sizeof b when b’s size is 100000. This assertion fails with Linux kernel 5.6.13, as that kernel ignores the GRND_RANDOM flag. The separate blocking pool is going away in the Linux kernel, and they’ve added a flag GRND_INSECURE instead; see: https://lore.kernel.org/linux-api/705c5a091b63cc5da70c99304bb97e0109be0a26.1577088521.git.luto@kernel.org/ The assertion was iffy anyway; what’s to prevent a kernel from lazily filling a large buffer with random bytes? read-file-test: pacify --enable-gcc-warnings * tests/test-read-file.c (test_read_file): Now static. tempname: merge from glibc and coreutils Also, merge in Gnulib’s more-recent methods of making it easier to share between Gnulib and glibc, and fix a few randomness glitches. * lib/tempname.c: Include libc-config.h, not config.h, if !_LIBC. (__set_errno): Remove; libc-config.h does that for us. Do not include . (__secure_getenv) [_LIBC]: New macro. (__try_tempname, __getpid, __gettimeofday) [!_LIBC]: Remove macros. (RANDOM_BITS): Rewrite. (RANDOM_VALUE_MAX, BASE_62_DIGITS, BASE_62_POWER): New macros. (random_value): New typedef. (try_file, try_dir, try_nocreate): Move up. (gen_tempname_len, try_tempname_len): New functions. (gen_tempname_len): Use a constant array rather than a switch. (try_tempname_len): Don’t assume string length fits in int. Generalize use of RANDOM_BITS. If _LIBC, don’t assume RANDOM_BITS has enough entropy (it’s a bit short). (__gen_tempname): Rewrite in terms of gen_tempname_len. (__try_tempname): Rewrite in terms of try_tempname_len. * lib/tempname.h (gen_tempname_len, try_tempname_len): New decls. * modules/tempname (Depends-on): Remove gettimeofday, sys_time. Add getentropy, libc-config. 2020-05-31 Bruno Haible getrandom, getentropy: Mention the crypto/gc-random module. Suggested by Simon Josefsson in . * doc/glibc-functions/getrandom.texi: Mention the quality issues and the crypto/gc-random module. * doc/glibc-functions/getentropy.texi: Likewise. 2020-05-31 Bruno Haible getentropy: Enhance tests. * tests/test-getentropy.c (main): Add one more test. * tests/test-unistd-c++.cc: Check the signature of getentropy. 2020-05-31 Bruno Haible getentropy: Work around a macOS and Solaris problem. * lib/unistd.in.h: Include , when needed for the 'getentropy' module. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize UNISTD_H_HAVE_SYS_RANDOM_H. * m4/sys_random_h.m4 (gl_HEADER_SYS_RANDOM): Set UNISTD_H_HAVE_SYS_RANDOM_H. * modules/unistd (Makefile.am): Substitute UNISTD_H_HAVE_SYS_RANDOM_H. * doc/glibc-functions/getentropy.texi: Document the macOS and Solaris problem. List more platforms. 2020-05-31 Paul Eggert fnmatch: merge from glibc Also, merge in Gnulib’s more-recent methods of making it easier to share between Gnulib and glibc. * lib/fnmatch.c: Reorder includes to match glibc better. Include libc-config.h instead of config.h. Include alloca.h only if _LIBC || HAVE_ALLOCA. Do not include "../locale/elem-hash.h" if _LIBC. Define macros for btowc, etc. if _LIBC. All uses simplified. Define FALLTHROUGH if _LIBC, instead of including attribute.h. Include intprops.h, since glibc has it now. (SIZE_MAX): Remove; use (size_t) -1 instead. Omit the "Comment out all this code" ifdef, since Gnulib has never really needed it. (STREQ): Remove; no longer used. (__libc_use_alloca, alloca, alloca_account): Define as needed if !_LIBC. (ISWCTYPE): Remove; all uses replaced by iswctype. (HANDLE_MULTIBYTE): Remove. All uses removed by assuming true. (internal_function): Remove. All uses removed. (STRUCT): New macro. (WIDE_CHAR_VERSION): Define to 0 instead of leaving undefined. (WMEMCMP): New macro. (FINDIDX): Define if _LIBC, and include and . (fnmatch): Prefer __glibc_likely and __glibc_unlikely to __builtin_expect. Check for integer overflow more systematically. Account for alloca storage better when recursive. Use strnlen instead of strlen for efficiency. * lib/fnmatch_loop.c: Include stdint.h if _LIBC, for int32_t etc. (struct STRUCT): New type. (FCT, EXT): New ENDS and ALLOCA_USED args. All callers changed. (FCT): Prefer __glibc_unlikely to __builtin_expect. Simplify by assuming WIDE_CHAR_SUPPORT. Copy _LIBC code from glibc without worrying Gnulib compatibility. Cast cold to UCHAR to avoid signedness warning. (END): Check for invalid pattern. (EXT): Improve alloca/malloc checking (taken from glibc), and improve it some more by using intprops.h and checking for integer overflow and using bool for booleans. * lib/libc-config.h (compat_symbol): New macro. (versioned_symbol): Make it ‘extern int dummy’ so that it’s acceptable to non-GCC when a trailing semicolon is added. * modules/fnmatch (Depends-on): Add alloca-opt, intprops, libc-config, strnlen. Remove alloca. 2020-05-31 Bruno Haible getrandom: Doc and test tweaks. * lib/getrandom.c (getrandom): Mention that it never returns 0, and that it sets errno when failing. * tests/test-getrandom.c (main): Disable the high-quality check on those platforms on which it fails. * doc/glibc-functions/getrandom.texi: Add Minix, AIX, HP-UX, IRIX, Cygwin to the list of platforms that don't have the function. Add a note about the quality of the result. * doc/glibc-headers/sys_random.texi: Don't mention the 'getrandom' declaration; this is fixed by module 'getrandom'. 2020-05-31 Bruno Haible getrandom: Add support for native Windows. * lib/getrandom.c: Include , , , . (CRYPT_VERIFY_CONTEXT): New macro. (LoadLibrary, CryptAcquireContext): Redirect to the variant with suffix 'A'. (GetProcAddress): New macro. (BCryptGenRandomFuncType): New type. (BCryptGenRandomFunc, initialized): New variables. (initialize): New function. (getrandom): On native Windows, use API when available, and API as fallback. * m4/getrandom.m4 (gl_FUNC_GETRANDOM): Set LIB_GETRANDOM. * modules/getrandom (Link): New section. * modules/getentropy (Link): Likewise. * modules/getrandom-tests (Makefile.am): Link test-getrandom against $(LIB_GETRANDOM). * modules/getentropy-tests (Makefile.am): Link test-getentropy against $(LIB_GETRANDOM). * modules/sys_random-c++-tests (Makefile.am): Link test-sys_random-c++ against $(LIB_GETRANDOM). * doc/glibc-functions/getrandom.texi: Mention the native Windows support. 2020-05-31 Bruno Haible getrandom: Simplify the determination of the random number devices. Suggested by Paul Eggert in . * lib/getrandom.c (NAME_OF_RANDOM_DEVICE, NAME_OF_NONCE_DEVICE): New macros. * modules/getrandom (Depends-on): Remove crypto/gc-random. 2020-05-31 Bruno Haible crypto/gc-random: Fix list of crypto devices for Solaris. * m4/gc-random.m4 (gl_GC_RANDOM): Don't special-case Solaris. 2020-05-31 Akim Demaille list: fix GCC warnings * lib/gl_anytree_list2.h (gl_tree_iterator_free) (gl_tree_next_node, gl_tree_node_nx_set_value) (gl_tree_previous_node, gl_tree_next_node): Mark unused arguments. * lib/gl_anytree_oset.h (gl_tree_iterator_free): Likewise. * lib/gl_anylinked_list2.h (gl_linked_node_value) (gl_linked_node_nx_set_value, gl_linked_iterator_free): Likewise. * lib/gl_anytreehash_list2.h (gl_tree_search_from_to): Avoid using the same variable name in nested scopes. 2020-05-31 Bruno Haible list-c++, set-c++, oset-c++, map-c++, omap-c++: Don't fool the compiler. Reported by Akim Demaille in . * lib/gl_list.hh (gl_List::iterator::next): Avoid a reinterpret_cast. * lib/gl_set.hh (gl_Set::iterator::next): Likewise. * lib/gl_oset.hh (gl_OSet::iterator::next): Likewise. * lib/gl_map.hh (gl_Map::iterator::next): Likewise. * lib/gl_omap.hh (gl_OMap::iterator::next): Likewise. 2020-05-30 Bruno Haible wmemchr: Relicense under LGPLv2+. * modules/wmemchr (License): Set to LGPLv2+. 2020-05-30 Bruno Haible wmempcpy: New module. Reported by Paul Eggert in . * lib/wchar.in.h (wmempcpy): New declaration. * lib/wmempcpy.c: New file. * m4/wmempcpy.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wmempcpy is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WMEMPCPY, HAVE_WMEMPCPY. * modules/wchar (Makefile.am): Substitute GNULIB_WMEMPCPY, HAVE_WMEMPCPY. * modules/wmempcpy: New file. * tests/test-wchar-c++.cc: Check the signature of wmempcpy. * doc/glibc-functions/wmempcpy.texi: Mention the new module. * modules/mempcpy (Description): Fix typo. 2020-05-30 Bruno Haible crypto/gc-random: Fix list of crypto devices for NetBSD, OpenBSD. * m4/gc-random.m4 (gl_GC_RANDOM): Don't special-case NetBSD and OpenBSD. 2020-05-30 Bruno Haible sys_random: Work around macOS bug. * m4/sys_random_h.m4 (gl_HEADER_SYS_RANDOM): Include and before . * m4/getrandom.m4 (gl_FUNC_GETRANDOM): Likewise. * lib/sys_random.in.h: On macOS, include and first. * doc/glibc-headers/sys_random.texi: Mention the macOS problem. 2020-05-30 Bruno Haible getrandom: Override incompatible system function on Solaris 11. * lib/sys_random.in.h (getrandom): Override if REPLACE_GETRANDOM is 1. * lib/getrandom.c (getrandom): When the system has getrandom, just invoke it. * m4/getrandom.m4 (gl_FUNC_GETRANDOM): Set REPLACE_GETRANDOM if the system's getrandom function's prototype is not the expected one. * m4/sys_random_h.m4 (gl_SYS_RANDOM_H_DEFAULTS): Initialize REPLACE_GETRANDOM. * modules/sys_random (Makefile.am): Substitute REPLACE_GETRANDOM. * modules/getrandom (modules/getrandom): Consider REPLACE_GETRANDOM. * tests/test-getrandom.c (main): Allow error EINVAL as an alternative to EAGAIN. * doc/glibc-functions/getrandom.texi: Mention the new module and the Solaris problem. 2020-05-30 Bruno Haible sys_random: Add C++ tests. * tests/test-sys_random-c++.cc: New file. * modules/sys_random-c++-tests: New file. * modules/sys_random-tests (Depends-on): Depend on it. sys_random: Add tests. * tests/test-sys_random.c: New file. * modules/sys_random-tests: New file. sys_random: New module. * lib/sys_random.in.h: Use the common idioms for overridable header files. * m4/sys_random_h.m4: New file. * m4/getrandom.m4 (gl_FUNC_GETRANDOM): Require gl_SYS_RANDOM_H_DEFAULTS. * modules/sys_random: New file. * modules/getrandom (Files): Remove lib/sys_random.in.h. (Depends-on): Add sys_random. (configure.ac): Use gl_SYS_RANDOM_MODULE_INDICATOR, not gl_UNISTD_MODULE_INDICATOR. (Makefile.am): Don't generate sys/random.h here. * doc/glibc-headers/sys_random.texi: New file. * doc/gnulib.texi: Include it. 2020-05-30 Bruno Haible unistd: Remove conflicting declaration of getrandom(). * lib/unistd.in.h (getrandom): Remove declaration. * m4/unistd_h.m4 (gl_UNISTD_H): Don't test whether getrandom is declared. (gl_UNISTD_H_DEFAULTS): Don't initialize GNULIB_GETRANDOM, HAVE_GETRANDOM. * modules/unistd (Makefile.am): Don't substitute GNULIB_GETRANDOM, HAVE_GETRANDOM. 2020-05-30 Bruno Haible getrandom: Add tests. * tests/test-getrandom.c: New file. * modules/getrandom-tests: New file. 2020-05-30 Bruno Haible crypto/gc-random: Fix link error on MSVC. * m4/gc-random.m4 (gl_GC_RANDOM): Set LIB_GC_RANDOM. * modules/crypto/gc-random (Link): New section. * modules/crypto/gc-tests (Makefile.am): Link test-gc against $(LIB_GC_RANDOM). 2020-05-30 Bruno Haible Don't assume that UNICODE is not defined. Many Windows API functions are defined differently (redirecting to a function with suffix 'W') if the application defines the macro UNICODE than by default (redirecting to a function with suffix 'A'). * lib/clean-temp.c (OSVERSIONINFO, GetVersionEx): Redirect to the variant with suffix 'A'. * lib/dirent-private.h (WIN32_FIND_DATA): Likewise. * lib/gc-gnulib.c (CryptAcquireContext): Likewise. * lib/getaddrinfo.c (GetModuleHandle): Likewise. * lib/getlogin.c (GetUserName): Likewise. * lib/getlogin_r.c (GetUserName): Likewise. * lib/gettimeofday.c (LoadLibrary): Likewise. * lib/isatty.c (LoadLibrary, QueryFullProcessImageName): Likewise. * lib/link.c (GetModuleHandle, CreateHardLink): Likewise. * lib/localename.c (GetLocaleInfo, EnumSystemLocales): Likewise. * lib/mountlist.c (GetDriveType): Likewise. * lib/nonblocking.c (GetNamedPipeHandleState): Likewise. * lib/opendir.c (WIN32_FIND_DATA, GetFullPathName, FindFirstFile): Likewise. * lib/physmem.c (GetModuleHandle): Likewise. * lib/poll.c (GetModuleHandle, PeekConsoleInput, CreateEvent, PeekMessage, DispatchMessage): Likewise. * lib/progreloc.c (GetModuleFileName): Likewise. * lib/putenv.c (SetEnvironmentVariable): Likewise. * lib/read.c (GetNamedPipeHandleState): Likewise. * lib/readdir.c (FindNextFile): Likewise. * lib/relocatable.c (GetModuleFileName): Likewise. * lib/rename.c (MoveFileEx): Likewise. * lib/rewinddir.c (FindFirstFile): Likewise. * lib/select.c (GetModuleHandle, PeekConsoleInput, CreateEvent, PeekMessage, DispatchMessage): Likewise. * lib/sethostname.c (GetComputerNameEx, SetComputerNameEx): Likewise. * lib/socket.c (WSASocket): Likewise. * lib/stat-w32.c (LoadLibrary, GetFinalPathNameByHandle): Likewise. * lib/stat.c (WIN32_FIND_DATA, CreateFile, FindFirstFile): Likewise. * lib/stdio-read.c (GetNamedPipeHandleState): Likewise. * lib/stdio-write.c (GetNamedPipeHandleState): Likewise. * lib/tmpdir.c (GetTempPath): Likewise. * lib/tmpfile.c (OSVERSIONINFO, GetVersionEx, GetTempPath): Likewise. * lib/uname.c (OSVERSIONINFO, GetVersionEx): Likewise. * lib/utime.c (CreateFile, GetFileAttributes): Likewise. * lib/windows-cond.c (CreateEvent): Likewise. * lib/windows-rwlock.c (CreateEvent): Likewise. * lib/windows-timedmutex.c (CreateEvent): Likewise. * lib/windows-timedrecmutex.c (CreateEvent): Likewise. * lib/windows-timedrwlock.c (CreateEvent): Likewise. * lib/write.c (GetNamedPipeHandleState): Likewise. 2020-05-30 Bruno Haible physmem: Fix compilation errors on MSVC. * lib/physmem.c (PFN_MS_EX): Use BOOL, not WINBOOL. * modules/physmem (Depends-on): Add unistd. 2020-05-29 Bruno Haible gnulib-tool: Fix link errors with a particular set of modules on mingw. * gnulib-tool (func_emit_tests_Makefile_am): Add ../lib/libgnu.a to LDADD a second time, after the second occurrence of libtests.a. * pygnulib/GLEmiter.py (tests_Makefile_am): Likewise. 2020-05-29 Bruno Haible fnmatch: Rely on more gnulib modules. * modules/fnmatch (Depends-on): Add btowc, isblank, iswctype, wmemchr, wmempcpy, mempcpy. * lib/fnmatch.c: Assume that HAVE_WCTYPE_H, HAVE_BTOWC, HAVE_ISWCTYPE, HAVE_WMEMCHR, HAVE_WMEMPCPY, HAVE_ISBLANK, HAVE_DECL_ISBLANK, HAVE_MEMPCPY are all 1. * m4/fnmatch.m4 (gl_PREREQ_FNMATCH): Don't test for btowc, isblank, iswctype, mempcpy, wmemchr, wmemcpy, wmempcpy, . 2020-05-29 Bruno Haible Avoid dynamic lookup of Windows API functions when possible. * lib/getaddrinfo.c (GetProcAddress, getaddrinfo_func, freeaddrinfo_func, getnameinfo_func, getaddrinfo_ptr, freeaddrinfo_ptr, getnameinfo_ptr): Don't define in a build for Windows XP or higher. (use_win32_p): Define differently. * lib/link.c (GetProcAddress, CreateHardLinkFuncType, CreateHardLinkFunc, initialized, initialize): Don't define in a build for Windows XP or higher. 2020-05-29 Daiki Ueno read-file: disable buffering if RF_SENSITIVE is set * lib/read-file.c (read_file): Call setvbuf if RF_SENSITIVE. Suggested by Glenn Strauss. (fread_file): Suggest calling setvbuf before calling this function. Suggested by Bruno Haible. 2020-05-29 Bruno Haible wmemchr, wmemcmp, wmemcpy, wmemmove, wmemset: Fix autoconf test. * m4/wmemchr.m4 (gl_FUNC_WMEMCHR): Link, not only compile, the test program. * m4/wmemcmp.m4 (gl_FUNC_WMEMCMP): Likewise. * m4/wmemcpy.m4 (gl_FUNC_WMEMCPY): Likewise. * m4/wmemmove.m4 (gl_FUNC_WMEMMOVE): Likewise. * m4/wmemset.m4 (gl_FUNC_WMEMSET): Likewise. 2020-05-29 Bruno Haible Fix compilation error on native Windows (regression from 2020-05-28). Reported by Daiki Ueno. * lib/gettimeofday.c (GetSystemTimePreciseAsFileTimeFunc): Define as macro when not using dynamic loading. * lib/isatty.c (GetNamedPipeClientProcessIdFunc, QueryFullProcessImageNameFunc): Likewise. * lib/stat-w32.c (GetFileInformationByHandleExFunc, GetFinalPathNameByHandleFunc): Likewise. 2020-05-29 Daiki Ueno fopen-gnu-tests: fix "\x" escape usage * tests/test-fopen-gnu.c (DATA): Use safer escape sequence. 2020-05-28 Bruno Haible Avoid dynamic loading of Windows API functions when possible. Reported by Steve Lhomme in . * lib/gettimeofday.c (GetProcAddress, GetSystemTimePreciseAsFileTimeFuncType, GetSystemTimePreciseAsFileTimeFunc, initialized, initialize): Don't define in a build for Windows 8 or higher. * lib/isatty.c (GetProcAddress, GetNamedPipeClientProcessIdFuncType, GetNamedPipeClientProcessIdFunc, QueryFullProcessImageNameFuncType, QueryFullProcessImageNameFunc, initialized, initialize): Don't define in a build for Windows Vista or higher. * lib/stat-w32.c (GetProcAddress, GetFileInformationByHandleExFuncType, GetFileInformationByHandleExFunc, GetFinalPathNameByHandleFuncType, GetFinalPathNameByHandleFunc, initialized, initialize): Likewise. 2020-05-28 Paul Eggert explicit_bzero-tests: improve -Wmissing-declarations pacification * tests/test-explicit_bzero.c: Now noinline. Suggested by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2020-05/msg00300.html 2020-05-28 Bruno Haible Fix build errors due to read-file changes (regression from 2020-05-27). * lib/git-merge-changelog.c (read_changelog_file): Update read_file invocation. * tests/test-sameacls.c (main): Likewise. * tests/test-pipe-filter-gi1.c (main): Call read_file instead of read_binary_file. * tests/test-pipe-filter-ii1.c (main): Likewise. 2020-05-28 Bruno Haible fts: Make more robust in multithreaded applications. * lib/fts.c (fts_open): Pass an O_CLOEXEC flag to open(). * modules/fts (Depends-on): Add 'open'. 2020-05-28 Bruno Haible relocatable-prog: Make more robust in multithreaded applications. * lib/progreloc.c (O_CLOEXEC): Define fallback to 0 when use from module relocatable-prog-wrapper. (find_executable): Pass an O_CLOEXEC flag to open(). * modules/relocatable-prog (Depends-on): Add 'open'. 2020-05-28 Bruno Haible getloadavg: Make more robust in multithreaded applications. * lib/getloadavg.c (getloadavg): Pass an O_CLOEXEC flag to open(). Simplify use of O_CLOEXEC. * modules/getloadavg (Depends-on): Add 'open'. 2020-05-28 Bruno Haible vma-iter: Make more robust in multithreaded applications. * lib/vma-iter.c (rof_open, vma_iterate): Pass an O_CLOEXEC flag to open(). * modules/vma-iter (Depends-on): Add 'open'. 2020-05-28 Bruno Haible truncate: Make more robust in multithreaded applications. * lib/truncate.c (truncate): Pass an O_CLOEXEC flag to open(). 2020-05-28 Bruno Haible pagealign_alloc: Make more robust in multithreaded applications. * lib/pagealign_alloc.c (pagealign_alloc): Pass an O_CLOEXEC flag to open(). * modules/pagealign_alloc (Depends-on): Add 'open'. 2020-05-28 Bruno Haible openat: Make more robust in multithreaded applications. * lib/openat.c (openat_needs_fchdir): Pass an O_CLOEXEC flag to open(). 2020-05-28 Bruno Haible at-internal: Make more robust in multithreaded applications. * lib/openat-proc.c (openat_proc_name): Pass an O_CLOEXEC flag to open(). 2020-05-28 Bruno Haible mountlist: Make more robust in multithreaded applications. * lib/mountlist.c (read_file_system_list): Pass an O_CLOEXEC flag to open(). * modules/mountlist (Depends-on): Add 'open'. 2020-05-28 Bruno Haible login_tty: Make more robust in multithreaded applications. * lib/login_tty.c (login_tty): Pass an O_CLOEXEC flag to open(). * modules/login_tty (Depends-on): Add 'open'. 2020-05-28 Bruno Haible javacomp: Make more robust in multithreaded applications. * lib/javacomp.c (get_classfile_version): Pass an O_CLOEXEC flag to open(). * modules/javacomp (Depends-on): Add 'open'. 2020-05-28 Bruno Haible getprogname: Make more robust in multithreaded applications. * lib/getprogname.c (getprogname): Pass an O_CLOEXEC flag to open(). * modules/getprogname (Depends-on): Add 'open'. 2020-05-28 Bruno Haible get_progname_of: Make more robust in multithreaded applications. * lib/get_progname_of.c (get_progname_of): Pass an O_CLOEXEC flag to open(). * modules/get_progname_of (Depends-on): Add 'open'. 2020-05-28 Bruno Haible get_ppid_of: Make more robust in multithreaded applications. * lib/get_ppid_of.c (get_ppid_of): Pass an O_CLOEXEC flag to open(). * modules/get_ppid_of (Depends-on): Add 'open'. 2020-05-28 Bruno Haible get-rusage-as: Make more robust in multithreaded applications. * lib/get-rusage-as.c (get_rusage_as_via_setrlimit): Pass an O_CLOEXEC flag to open(). * modules/get-rusage-as (Depends-on): Add 'open'. 2020-05-28 Bruno Haible crypto/gc: Make more robust in multithreaded applications. * lib/gc-gnulib.c (randomize): Pass an O_CLOEXEC flag to open(). * modules/crypto/gc (Depends-on): Add 'open'. 2020-05-28 Bruno Haible copy-file: Make more robust in multithreaded applications. * lib/copy-file.c (qcopy_file_preserving): Pass an O_CLOEXEC flag to open(). 2020-05-28 Bruno Haible chown: Make more robust in multithreaded applications. * lib/chown.c (rpl_chown): Pass an O_CLOEXEC flag to open(). 2020-05-28 Bruno Haible doc: Fix statement about O_CLOEXEC (wrong since 2017-08-14). * doc/posix-headers/fcntl.texi: Gnulib no longer defines O_CLOEXEC to 0. 2020-05-28 Daiki Ueno fopen-gnu: make 'b' flag can be used with 'e' on Windows * lib/fopen.c (rpl_fopen): Pass O_BINARY to open, if a 'b' flag is specified on Windows. * tests/test-fopen-gnu.c (DATA): New define. (main): Add test for reading binary files with an 'e' flag. 2020-05-27 Bruno Haible Don't assume that UNICODE is not defined. Some Windows types, such as TCHAR, LPTSTR, LPCTSTR, are defined differently if the application defines the macro UNICODE. Reported by Steve Lhomme in . * lib/link.c (CreateHardLinkFuncType): Use LPCSTR, not LPCTSTR. * lib/localename.c (enum_locales_fn): Use LPSTR, not LPTSTR. * lib/stat-w32.c (GetFinalPathNameByHandleFuncType): Likewise. 2020-05-27 Bruno Haible Improve pattern for defining _WIN32_WINNT. Newer versions of the Windows API may not only add, but also remove API functions. Therefore, when the user is e.g. building for Windows 10, we should not set _WIN32_WINNT to e.g. Windows 8, as this may enable the use of APIs that were present in Windows 8 but removed in Windows 10. Suggested by Steve Lhomme in . * lib/ftruncate.c (_WIN32_WINNT): Don't set to a smaller value. * lib/sethostname.c (_WIN32_WINNT): Likewise. * lib/stat-w32.c (_WIN32_WINNT): Likewise. 2020-05-27 Bruno Haible javacomp: Make more robust in multithreaded applications. * lib/javacomp.c (write_temp_file): Pass an 'e' flag to fopen_temp. * modules/javacomp (Depends-on): Add fopen-gnu. 2020-05-27 Bruno Haible mountlist: Make more robust in multithreaded applications. * lib/mountlist.c (setmntent, read_file_system_list): Pass an 'e' flag to fopen. * modules/mountlist (Depends-on): Add fopen-gnu. 2020-05-27 Bruno Haible sethostname: Make more robust in multithreaded applications. * lib/sethostname.c (sethostname): Pass an 'e' flag to fopen. * modules/sethostname (Depends-on): Add fopen-gnu. 2020-05-27 Bruno Haible readutmp: Make more robust in multithreaded applications. * lib/readutmp.c (read_utmp): Pass an 'e' flag to fopen. * modules/readutmp (Depends-on): Add fopen-gnu. 2020-05-27 Bruno Haible getpass: Make more robust in multithreaded applications. * lib/getpass.c (getpass): Pass an 'e' flag to fopen. * modules/getpass (Depends-on): Add fopen-gnu. 2020-05-27 Bruno Haible getloadavg: Make more robust in multithreaded applications. * lib/getloadavg.c (getloadavg): Pass an 'e' flag to fopen. * modules/getloadavg (Depends-on): Add fopen-gnu. 2020-05-27 Bruno Haible exclude: Make more robust in multithreaded applications. * lib/exclude.c (add_exclude_file): Pass an 'e' flag to fopen. * modules/exclude (Depends-on): Add fopen-gnu. 2020-05-27 Bruno Haible bitset: Make more robust in multithreaded applications. * lib/bitset/stats.c (bitset_stats_read, bitset_stats_write): Pass an 'e' flag to fopen. * modules/bitset (Depends-on): Add fopen-gnu. 2020-05-27 Daiki Ueno read-file: add RF_SENSITIVE flag * lib/read-file.h (RF_SENSITIVE): New define. * lib/read-file.c (fread_file, read_file): Take into account of RF_SENSITIVE flag. * modules/read-file (Depends-on): Add explicit_bzero. This adds an alternative behavior of those functions to explicitly clear the internal memory block when it becomes unused. This is useful for reading sensitive information from a file. 2020-05-27 Daiki Ueno read-file: add flags to modify reading behavior * lib/read-file.h (RF_BINARY): New define. (fread_file, read_file): Take FLAGS argument. (read_binary_file): Remove. * lib/read-file.c (internal_read_file): Merge into ... (read_file): ... here. * modules/read-file-tests (Files): Add "tests/macros.h". * tests/test-read-file.c (main): Refactor using ASSERT macro. * NEWS: Mention this change. 2020-05-26 Bernhard Voelker doc/gnulib-intro.texi: add missing "to" in sentence Reported by Bjarni Ingi Gislason in . * doc/gnulib-intro.texi (Collaborative Development): Add "to". 2020-05-26 Bruno Haible count-one-bits: Fix MSVC specific code. Reported by Gisle Vanem in . * lib/count-one-bits.h (COUNT_ONE_BITS_GENERIC): Don't define if we're using GCC. [_MSC_VER]: Use correct syntax for #pragma intrinsic. (__popcnt64): In 32-bit mode, define as an inline function. (COUNT_ONE_BITS): Rename first argument to GCC_BUILTIN. 2020-05-26 Bruno Haible argz: Avoid name clashes through argz.h. Reported by Gisle Vanem in . * lib/argz.h: Don't use __ prefixed identifiers. (const): Remove definition. (argz_next): Remove inline definitions. 2020-05-26 Daiki Ueno read-file: make use of fopen-gnu * lib/read-file.c (read_file): Pass an 'e' flag to fopen. (read_binary_file): Likewise. * modules/read-file (Depends-on): Add fopen-gnu. 2020-05-25 Paul Eggert getentropy, getrandom: new modules * MODULES.html.sh (func_all_modules): * lib/unistd.in.h (getentropy, getrandom): * m4/unistd_h.m4 (gl_UNISTD_H, gl_UNISTD_H_DEFAULTS): * modules/unistd (unistd.h): Add support for getentropy, getrandom. * doc/glibc-functions/getentropy.texi (getentropy): * doc/glibc-functions/getrandom.texi (getrandom): These are now fixed on some platforms. * lib/getentropy.c, lib/getrandom.c, lib/sys_random.in.h: * m4/getentropy.m4, m4/getrandom.m4: * modules/getentropy, modules/getentropy-tests: * modules/getrandom, modules/getrandom-tests: * tests/test-getentropy.c, tests/test-getrandom.c: New files. 2020-05-25 Bruno Haible Add missing C99 dependencies. Reported by Paul Smith in . * modules/assert (Depends-on): Add c99. * modules/filenamecat-lgpl (Depends-on): Likewise. * modules/libc-config (Depends-on): Likewise. * modules/mktime (Depends-on): Likewise. * modules/random_r (Depends-on): Likewise. * modules/regex (Depends-on): Likewise. * modules/scratch_buffer (Depends-on): Likewise. * modules/timespec-add (Depends-on): Likewise. * modules/timespec-sub (Depends-on): Likewise. * modules/verify (Depends-on): Likewise. 2020-05-24 Paul Eggert explicit_bzero-tests: pacify -Wmissing-declarations * tests/test-explicit_bzero.c (do_secret_stuff, test_stack): Now static. 2020-05-24 Bruno Haible fopen-gnu: Add tests. * tests/test-fopen-gnu.c: New file. * modules/fopen-gnu-tests: New file. fopen-gnu: New module. Suggested by Tim Rühsen in . * lib/fopen.c (rpl_fopen): When the fopen-gnu module is enabled and the mode contains an 'x' or 'e' flag, use open() followed by fdopen(). * m4/fopen.m4 (gl_FUNC_FOPEN_GNU): New macro. * modules/fopen-gnu: New file. * doc/posix-functions/fopen.texi: Document the 'fopen-gnu' module. 2020-05-24 Bruno Haible open, openat: Really support O_CLOEXEC. * lib/open.c (open): When have_cloexec is still undecided, do pass a O_CLOEXEC flag to orig_open. * lib/openat.c (rpl_openat): When have_cloexec is still undecided, do pass a O_CLOEXEC flag to orig_openat. * tests/test-open.h (test_open): Verify that O_CLOEXEC is honoured. * modules/open-tests (Depends-on): Add fcntl. * modules/openat-tests (Depends-on): Likewise. * modules/fcntl-safer-tests (Depends-on): Likewise. 2020-05-24 Bruno Haible fopen: Fix the trailing slash workaround. * lib/fopen.c (rpl_fopen): Parse the mode string. Recognize "r+" as a write access. Pass the right flags to open(). * tests/test-fopen.h (test_fopen): Add a few more tests on directories. 2020-05-23 Paul Eggert assure: new macro ‘affirm’ * lib/assure.h: Include verify.h. (affirm): New macro, after a suggestion by Marc Nieper-Wißkirchen in: https://lists.gnu.org/r/bug-gnulib/2020-05/msg00263.html and commentary by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2020-05/msg00278.html * modules/assure (Depends-on:): Add verify. 2020-05-23 Bruno Haible calloc-gnu: Make test work in non-flat address spaces. Uses code by Paul Eggert. * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Allow a calloc() implementation to return more than SIZE_MAX bytes, but only without wrap-around bugs. 2020-05-23 Bruno Haible calloc-gnu: Avoid wrong configure results with GCC's AddressSanitizer. * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Split the AC_RUN_IFELSE into two AC_RUN_IFELSE invocations. 2020-05-23 Bruno Haible isnanf, isnanl, isnan: Don't use nonexistent builtins with clang. * m4/isnanf.m4 (gl_HAVE_ISNANF_NO_LIBM, gl_HAVE_ISNANF_IN_LIBM, gl_ISNANF_WORKS): Don't use __builtin_isnanf on clang versions that don't have it. * m4/isnanl.m4 (gl_HAVE_ISNANL_NO_LIBM, gl_HAVE_ISNANL_IN_LIBM, gl_FUNC_ISNANL_WORKS): Don't use __builtin_isnanl on clang versions that don't have it. * lib/isnanf-nolibm.h (__has_builtin): New macro. (isnanf): Don't use __builtin_isnanf on clang versions that don't have it. * lib/isnanl-nolibm.h (__has_builtin): New macro. (isnanl): Don't use __builtin_isnanl on clang versions that don't have it. * lib/math.in.h (__has_builtin): New macro. (isnanf): Don't use __builtin_isnanf on clang versions that don't have it. (isnanl): Don't use __builtin_isnanl on clang versions that don't have it. (isnan): Don't use the builtins on clang versions that don't have __builtin_isnanf and __builtin_isnanl. 2020-05-23 Bruno Haible calloc-gnu: Avoid wrong configure results with clang. * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Mark the pointer variable as 'volatile', to defeat compiler optimizations. 2020-05-23 Bruno Haible isnanl, isnanl-nolibm: Make a test work better with "gcc -O2" on x86_64. * m4/exponentl.m4 (gl_LONG_DOUBLE_EXPONENT_LOCATION): Pass the 'long double' values by reference, with values taken from a statically allocated array. 2020-05-23 Bruno Haible findprog-in: Ignore directories. Reported by Frederick Eaton via Dmitry Goncharov in . * lib/findprog-in.c (find_in_given_path): When the file found is a directory, set errno to EACCES and, during a PATH search, continue searching. * modules/findprog-in (Depends-on): Add sys_stat, stat. 2020-05-23 Paul Eggert verify: document ‘assume’ better * lib/verify.h (assume): Say it’s for static analysis, not dynamic. 2020-05-22 Asher Gordon gendocs: Clarify licenses for templates. * doc/gendocs_template: Add a GNU All-Permissive license notice and bump Parent-Version. * doc/gendocs_template_min: Add a GNU All-Permissive license notice and copy the explanatory comment about the license notice at the bottom from gendocs_template. 2020-05-21 Bruno Haible group-member: Relicense under LGPLv2+. Jim Meyering's approval is in . Paul Eggert's approval is in . Eric Blake's approval is in . * modules/group-member (License): Change to LGPLv2+. 2020-05-21 Bruno Haible memmem: Avoid wrong configure results with "clang -fsanitize=undefined". Reported by Tim Rühsen in . * m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): Use NULL + 1, not NULL. 2020-05-21 Bruno Haible regex: Avoid wrong configure results with "clang -fsanitize=leak". Reported by Tim Rühsen in . * m4/regex.m4 (gl_REGEX): Free compiled regexes and allocated registers before returning with status 0. 2020-05-21 Bruno Haible glob: Avoid wrong configure results with "clang -fsanitize=leak". Reported by Tim Rühsen in . * m4/glob.m4 (gl_GLOB): Free allocated memory before returning. 2020-05-21 Bruno Haible fchownat: Support clang -fsanitize=implicit-integer-sign-change better. Reported by Tim Rühsen in . * m4/fchownat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG, gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG): Cast -1 to uid_t or git_t, respectively. 2020-05-18 Tim Rühsen getdelim: Avoid wrong configure results with gcc -fsanitize=address. * m4/getdelim.m4 (gl_FUNC_GETDELIM): Fix memleak. 2020-05-19 Paul Eggert ftoastr: fix ifndef typo * lib/ftoastr.h (_GL_FTOASTR_H): Define. 2020-05-19 Bruno Haible havelib: Tweak documentation. * doc/havelib.texi (Searching for Libraries): Fix typo. 2020-05-18 Siddhesh Poyarekar vcs-to-changelog: Rename vcs_to_changelog.py to use hyphens. This was needed earlier because modules had to import the main script, but that is no longer true. Rename the script so that it is consistent with all other scripts in gnulib and uses hyphens. * build-aux/vcs_to_changelog.py: Rename to... * build-aux/vcs-to-changelog.py: ... this. * doc/vcs-to-changelog.texi (VCS To ChangeLog): Update reference. * modules/vcs-to-changelog: Likewise. 2020-05-17 Bruno Haible Clarify intended usage of the license file modules. Reported by Asher Gordon in . * doc/licenses-texi.texi (License Texinfo sources): Mention the GNU AGPL. Explain the intended usage of the modules. * modules/fdl (Notice): Discourage use as a module. * modules/fdl-1.3 (Notice): Likewise. 2020-05-17 Akim Demaille hash: add hash_xinsert * lib/hash.h, lib/xhash.c (hash_xinsert): New. 2020-05-16 Bruno Haible findprog-lgpl: Fix link error (existing since 2008-09-02). * modules/findprog-lgpl (Makefile.am): Arrange to compile findprog-lgpl.c, not findprog.c. * lib/findprog.c (find_in_path): Add LGPLed replacement code for XNMALLOC. 2020-05-15 Paul Eggert c-stack: pacify -Wunused-result when DEBUG Problem reported by Marc Nieper-Wißkirchen in: https://lists.gnu.org/r/bug-gnulib/2020-05/msg00132.html * lib/c-stack.c (segv_handler, overflow_handler, segv_handler) [DEBUG]: Explicitly ignore write failures. 2020-05-13 Jim Meyering announce-gen: improve a comment * build-aux/announce-gen: Improve comment. 2020-05-12 Paul Eggert xalloc: pacify -Wanalyzer-possible-null-argument Problem reported for GCC 10.1.0 by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2020-05/msg00118.html * lib/xmalloc.c (HAVE_GNU_MALLOC, HAVE_GNU_REALLOC): New constants. (xmalloc): Suppress unnecessary check if HAVE_GNU_MALLOC. (xrealloc): Suppress unnecssary check if HAVE_GNU_REALLOC. 2020-05-11 Paul Eggert careadlinkat: fix GCC 10 workaround * lib/careadlinkat.c (careadlinkat) [GCC_LINT]: Massage the code so that it’s closer to what it was before the GCC 10.1.0 workaround was introduced. This fixes a loop when !buffer and the bug workaround is in effect. Remove unnecessary casts. Defend in a different way against (buffer && !buffer_size), by adding at least 1 to buf_size each time through the loop. 2020-05-10 Bruno Haible doc: Mark HP-UX as unsupported. * doc/gnulib-intro.texi (Target Platforms): List HP-UX as unsupported. 2020-05-10 Paul Eggert careadlinkat: limit GCC workaround * lib/careadlinkat.c (careadlinkat): Limit workaround to GCC 10.1.0 and later, since the workaround is pretty bad and the GCC bug should get fixed. 2020-05-10 Bruno Haible havelib: Enhance documentation. * doc/havelib.texi (Searching for Libraries): Mention the bad consequences of using LIBxxx instead of LTLIBxxx and vice versa. 2020-05-10 Bruno Haible attribute: Clarify list of attributes. * lib/attribute.h: Reorder the list of attributes, and group them by purpose. 2020-05-10 Bruno Haible string: Fix compilation error in C++ mode. * lib/warn-on-use.h (_GL_WARN_ON_USE_CXX): In C mode, use plain _GL_WARN_ON_USE. * lib/string.in.h (strchr, strpbrk, strrchr): Use _GL_WARN_ON_USE_CXX instead of _GL_WARN_ON_USE. 2020-05-10 Akim Demaille announce-gen: add support for dist-lzip * build-aux/announce-gen (@archive_suffixes): Add tar.lz. 2020-05-09 Paul Eggert manywarnings: port to GCC 10.1 * build-aux/gcc-warning.spec: * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC(C)): Add GCC 10.1.0 warnings. careadlinkat: pacify -Wreturn-local-addr * lib/careadlinkat.c (careadlinkat) [GCC_LINT]: Pacify gcc 10’s -Wreturn-local-addr option. Simplify some of the later code. 2020-05-09 Paul Eggert attribute: remove ATTRIBUTE_DEPRECATED * lib/attribute.h: Improve recently-added comments, mostly by shortening them (use active voice, etc.). (ATTRIBUTE_DEPRECATED): Remove, as it duplicates DEPRECATED. Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2020-05/msg00089.html 2020-05-09 Bruno Haible attribute: Add comments. * lib/attribute.h: Document each macro. 2020-05-09 Akim Demaille bitset: use the attribute module * modules/bitset: Depend on 'attribute'. * lib/bitset/base.h (ATTRIBUTE_UNUSED): Remove. * lib/bitset.c, lib/bitset/array.c, lib/bitset/list.c, * lib/bitset/stats.c, lib/bitset/table.c, lib/bitset/vector.c: Use MAYBE_UNUSED instead of ATTRIBUTE_UNUSED. 2020-05-09 Bruno Haible c-stack: Fix warning when DEBUG is enabled. Patch suggested by Marc Nieper-Wißkirchen in . * lib/c-stack.c: Include . 2020-05-09 Bruno Haible Remove redundant definitions of _GL_ATTRIBUTE_FORMAT. * lib/argp.h (_GL_ATTRIBUTE_FORMAT): Remove macro. * lib/argp-fmtstream.h (_GL_ATTRIBUTE_FORMAT): Likewise. * lib/c-snprintf.h (_GL_ATTRIBUTE_FORMAT): Likewise. * lib/c-vasnprintf.h (_GL_ATTRIBUTE_FORMAT): Likewise. * lib/c-vasprintf.h (_GL_ATTRIBUTE_FORMAT): Likewise. * lib/c-vsnprintf.h (_GL_ATTRIBUTE_FORMAT): Likewise. * lib/c-xvasprintf.h (_GL_ATTRIBUTE_FORMAT): Likewise. * lib/error.h (_GL_ATTRIBUTE_FORMAT): Likewise. * lib/parse-datetime.y (_GL_ATTRIBUTE_FORMAT): Likewise. * lib/vasnprintf.h (_GL_ATTRIBUTE_FORMAT): Likewise. * lib/xprintf.h (_GL_ATTRIBUTE_FORMAT): Likewise. * lib/xvasprintf.h (_GL_ATTRIBUTE_FORMAT): Likewise. 2020-05-09 Bruno Haible Remove redundant definitions of _GL_ATTRIBUTE_ALLOC_SIZE. Reported by Akim Demaille in . * lib/eealloc.h (_GL_ATTRIBUTE_ALLOC_SIZE): Remove macro. * lib/pagealign_alloc.h (_GL_ATTRIBUTE_ALLOC_SIZE): Likewise. * lib/xalloc.h (_GL_ATTRIBUTE_ALLOC_SIZE): Likewise. 2020-05-09 Bruno Haible stdio, monetary: Don't redefine _GL_ATTRIBUTE_FORMAT. * lib/stdio.in.h (_GL_ATTRIBUTE_FORMAT): Don't override the definition that usually comes from m4/gnulib-common.m4. * lib/monetary.in.h (_GL_ATTRIBUTE_FORMAT): Likewise. 2020-05-09 Bruno Haible dirent, stdlib, wchar, string: Don't redefine _GL_ATTRIBUTE_PURE. * lib/dirent.in.h (_GL_ATTRIBUTE_PURE): Don't override the definition that usually comes from m4/gnulib-common.m4. * lib/stdlib.in.h (_GL_ATTRIBUTE_PURE): Likewise. * lib/string.in.h (_GL_ATTRIBUTE_PURE): Likewise. * lib/wchar.in.h (_GL_ATTRIBUTE_PURE): Likewise. 2020-05-09 Bruno Haible uchar: Work around incorrect char16_t, char32_t types on Haiku 2020. * lib/uchar.in.h (char16_t): Define as macro if GNULIB_OVERRIDES_CHAR16_T. (char32_t): Define as macro if GNULIB_OVERRIDES_CHAR32_T. * m4/uchar.m4 (gl_TYPE_CHAR16_T, gl_TYPE_CHAR32_T): New macros. (gl_UCHAR_H): Invoke them. (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_OVERRIDES_CHAR16_T, GNULIB_OVERRIDES_CHAR32_T. * m4/mbrtoc32.m4 (gl_FUNC_MBRTOC32, gl_MBRTOC32_SANITYCHECK): Require gl_TYPE_CHAR32_T and test GNULIB_OVERRIDES_CHAR32_T. * modules/uchar (Makefile.am): Substitute GNULIB_OVERRIDES_CHAR16_T, GNULIB_OVERRIDES_CHAR32_T. 2020-05-09 Bruno Haible Macro tweaks. * m4/c32rtomb.m4 (gl_FUNC_C32RTOMB): Correct config.h comment. * m4/wint_t.m4 (gt_TYPE_WINT_T): Correct indentation. 2020-05-08 Bruno Haible c32rtomb: Avoid compilation failure on Haiku. * m4/c32rtomb.m4 (gl_FUNC_C32RTOMB): Test for c32rtomb without excluding inline definitions. * doc/posix-functions/c32rtomb.texi: Mention the Haiku problem. 2020-05-08 Bruno Haible mbrtoc32: Avoid compilation failure on Haiku. * m4/mbrtoc32.m4 (gl_CHECK_FUNC_MBRTOC32): New macro. (gl_FUNC_MBRTOC32, gl_MBRTOC32_SANITYCHECK): Use it instead of AC_CHECK_FUNCS_ONCE. * doc/posix-functions/mbrtoc32.texi: Mention the Haiku problem. 2020-05-08 Bruno Haible limits-h: Define LONG_BIT correctly on Haiku/x86_64. * lib/limits.in.h: Define and test _GL_ALREADY_INCLUDING_LIMITS_H. 2020-05-08 Bruno Haible list: Update documentation. Reported by Marc Nieper-Wißkirchen in . * doc/containers.texi (Container data types): Document the new list operations and their complexity. 2020-05-08 Bruno Haible ignore-value tests: Use module 'attribute'. * m4/gnulib-common.m4 (gl_COMMON_BODY): Fix a typo. * tests/test-ignore-value.c: Include attribute.h. (_GL_ATTRIBUTE_RETURN_CHECK): Remove macro. Use NODISCARD instead. * modules/ignore-value-tests (Depends-on): Add attribute. 2020-05-08 Bruno Haible uniname/uniname: Use module 'attribute'. * lib/uniname/gen-uninames.lisp: Emit a reference to ATTRIBUTE_PACKED. * lib/uniname/uninames.h: Regenerated. * lib/uniname/uniname.c: Include attribute.h. * modules/uniname/uniname (Depends-on): Add attribute. 2020-05-08 Bruno Haible c32rtomb: Use module 'attribute'. * lib/c32rtomb.c: Include attribute.h. (FALLTHROUGH): Remove macro. * modules/c32rtomb (Depends-on): Add attribute. 2020-05-08 Bruno Haible xsize: Use module 'attribute'. * lib/xsize.h: Include attribute.h. Use ATTRIBUTE_PURE. * modules/xsize (Depends-on): Add attribute. 2020-05-06 Paul Eggert * m4/gnulib-common.m4 (gl_COMMON_BODY): Minor style fixes. * lib/attribute.h: Minor style fixes. Fix version-etc glitch on OpenIndiana Problem reported by Mats Erik Andersson in: https://lists.gnu.org/r/bug-gnulib/2020-05/msg00067.html * lib/version-etc.h (_GL_ATTRIBUTE_SENTINEL): Remove defn that now clashes with gnulib-common.h. All uses changed. 2020-05-03 Paul Eggert attribute: new module This simplifies use of GCC and C2x attributes like ‘deprecated’. * MODULES.html.sh: Add attribute. * doc/attribute.texi, lib/attribute.h, modules/attribute: New files. * doc/gnulib.texi (Particular Modules): Add Attributes. * lib/backupfile.c, lib/fnmatch.c, lib/freopen-safer.c: * lib/mbrtoc32.c, lib/mbrtowc.c, lib/nstrftime.c, lib/quotearg.c: * lib/savewd.c, lib/unistr/u8-uctomb-aux.c, lib/unistr/u8-uctomb.c: * lib/vasnprintf.c: Include attribute.h, and let it define FALLTHROUGH. * lib/bitset/base.h, lib/c-stack.c (__attribute__): Remove macro. * lib/bitset/base.h (ATTRIBUTE_UNUSED): Define in terms of _GL_ATTRIBUTE_MAYBE_UNUSED, for forwards compatibility to C2x. * lib/dfa.c (FALLTHROUGH): Define consistently with gl_COMMON_BODY. This is a copy since Gawk doesn’t use Gnulib. * lib/di-set.h (_GL_ATTRIBUTE_NONNULL): Remove definition that is incompatible with gl_COMMON_BODY’s. All uses changed. * lib/fts.c: Include attribte.h, for FALLTHROUGH. Keep the existing FALLTHROUGH definition since Glibc might use it, and it does no harm to Gnulib’s FALLTHROUGH. * lib/fts_.h, lib/inttostr.h: (__GNUC_PREREQ): Remove; no longer needed. (__attribute_warn_unused_result__): Remove. All uses replaced by _GL_ATTRIBUTE_NODISCARD. * lib/gl_list.h, lib/gl_map.h, lib/gl_omap.h, lib/gl_oset.h: * lib/gl_set.h: Prefer _GL_ATTRIBUTE_NODISCARD to an ifdeffed __attribute__ ((__warn_unused_result__)), for forward compatibility to C2x. * lib/hash.h (_GL_ATTRIBUTE_WUR): Remove. All uses replaced by _GL_ATTRIBUTE_NODISCARD. (_GL_ATTRIBUTE_DEPRECATED): Remove, since gl_COMMON_BODY defines it. * lib/ino-map.h (_GL_ATTRIBUTE_NONNULL): Remove. All uses replaced by gl_COMMON_BODY’s implementation, which has a slightly different signature. * lib/safe-alloc.h (_GL_ATTRIBUTE_RETURN_CHECK): Remove. All uses replaced by _GL_ATTRIBUTE_NODISCARD. * lib/unused-parameter.h (_GL_UNUSED_PARAMETER): Define in terms of _GL_ATTRIBUTE_MAYBE_UNUSED. No doubt all uses should be replaced, at some point. * m4/gnulib-common.m4 (_GL_GNUC_PREREQ): New macro. (_Noreturn): Use it. (_GL_HAS_ATTRIBUTE, _GL_ATTRIBUTE_ALLOC_SIZE) (_GL_ATTRIBUTE_ALWAYS_INLINE, _GL_ATTRIBUTE_ARTIFICIAL) (_GL_ATTRIBUTE_COLD) (_GL_ATTRIBUTE_DEPRECATED, _GL_ATTRIBUTE_ERROR) (_GL_ATTRIBUTE_WARNING, _GL_ATTRIBUTE_EXTERNALLY_VISIBLE) (_GL_ATTRIBUTE_FALLTHROUGH, _GL_ATTRIBUTE_FORMAT) (_GL_ATTRIBUTE_LEAF, _GL_ATTRIBUTE_MAY_ALIAS) (_GL_ATTRIBUTE_MAYBE_UNUSED) (_GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_NOINLINE) (_GL_ATTRIBUTE_NONNULL, _GL_ATTRIBUTE_NONSTRING) (_GL_ATTRIBUTE_NOTHROW, _GL_ATTRIBUTE_PACKED, _GL_ATTRIBUTE_PURE) (_GL_ATTRIBUTE_RETURNS_NONNULL) (_GL_ATTRIBUTE_SENTINEL): New macros. * modules/backup-rename, modules/backupfile, modules/c-vasnprintf: * modules/fnmatch, modules/freopen-safer, modules/fts: * modules/mbrtoc32, modules/mbrtowc, modules/nstrftime: * modules/quotearg, modules/savewd: * modules/unistdio/u16-u16-vasnprintf: * modules/unistdio/u16-vasnprintf: * modules/unistdio/u32-u32-vasnprintf: * modules/unistdio/u32-vasnprintf: * modules/unistdio/u8-u8-vasnprintf: * modules/unistdio/u8-vasnprintf: * modules/unistdio/ulc-vasnprintf: * modules/unistr/u8-uctomb, modules/vasnprintf: (Depends-on:): Add attribute module. 2020-05-03 Bruno Haible bison: Fix today's commit. * m4/bison.m4 (gl_PROG_BISON): Set ac_verc_fail to 'yes', not 'true'. 2020-05-03 Bruno Haible list-c++: Add get_first, get_last, set_first, set_last operations. * lib/gl_list.hh (class gl_List): Add methods get_first, get_last, set_first, set_last. * lib/gl_list.h: Tweak comments. 2020-05-03 Akim Demaille bison: rely on bison's %require to check a version requirement See https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00021.html. * m4/bison.m4 (gl_PROG_BISON): Let bison itself decide if it it recent enough of not. So far it is the only know Yacc tool that supports '%require'. Other yaccs will actually even choke on seeing the -o option after the input file name. * m4/parse-datetime.m4: Simplify gl_PROG_BISON invocation. 2020-05-02 Bruno Haible list: Add get_first, get_last, set_first, set_last operations. * lib/gl_list.h (gl_list_get_first, gl_list_get_last, gl_list_nx_set_first, gl_list_nx_set_last): New functions. * lib/gl_xlist.h (gl_list_set_first, gl_list_set_last): New functions. 2020-05-02 Bruno Haible list: Remove redundant code for remove_first and remove_last operations. * lib/gl_list.h (struct gl_list_implementation): Remove fields remove_first, remove_last. (gl_list_remove_first, gl_list_remove_last): Implement in a generic way. * lib/gl_array_list.c: Revert last change. * lib/gl_carray_list.c: Likewise. * lib/gl_anylinked_list2.h: Likewise. * lib/gl_linked_list.c: Likewise. * lib/gl_linkedhash_list.c: Likewise. * lib/gl_anytree_list2.h: Likewise. * lib/gl_avltree_list.c: Likewise. * lib/gl_avltreehash_list.c: Likewise. * lib/gl_rbtree_list.c: Likewise. * lib/gl_rbtreehash_list.c: Likewise. * lib/gl_sublist.c: Likewise. 2020-05-02 Bruno Haible bison-i18n: Add support for cross-compilation. Reported by Hongxu Jia in via Akim Demaille . * m4/bison-i18n.m4 (BISON_I18N): Accept a configure option --with-bison-prefix=PREFIX and use it to determine BISON_LOCALEDIR. Don't use bison's --print-localedir option when cross-compiling. Also, fix an error message and a comment. 2020-05-01 Bruno Haible list: Add remove_first and remove_last operations. Suggested by Marc Nieper-Wißkirchen in . * lib/gl_list.h (struct gl_list_implementation): Add fields remove_first, remove_last. (gl_list_remove_first, gl_list_remove_last): New functions. * lib/gl_array_list.c (gl_array_remove_first, gl_array_remove_last): New functions, based on gl_array_remove_at. (gl_array_list_implementation): Implement the new operations. * lib/gl_carray_list.c (gl_carray_remove_first, gl_carray_remove_last): New functions, based on gl_carray_remove_at. (gl_carray_list_implementation): Implement the new operations. * lib/gl_anylinked_list2.h (gl_linked_remove_first, gl_linked_remove_last): New functions, based on gl_linked_remove_at. * lib/gl_linked_list.c (gl_linked_list_implementation): Implement the new operations. * lib/gl_linkedhash_list.c (gl_linkedhash_list_implementation): Likewise. * lib/gl_anytree_list2.h (gl_tree_remove_first, gl_tree_remove_last): New functions, based on gl_tree_remove_at. * lib/gl_avltree_list.c (gl_avltree_list_implementation): Implement the new operations. * lib/gl_avltreehash_list.c (gl_avltreehash_list_implementation): Likewise. * lib/gl_rbtree_list.c (gl_rbtree_list_implementation): Likewise. * lib/gl_rbtreehash_list.c (gl_rbtreehash_list_implementation): Likewise. * lib/gl_sublist.c (gl_sublist_remove_first, gl_sublist_remove_last): New functions, based on gl_sublist_remove_at. (gl_sublist_list_implementation): Implement the new operations. * lib/gl_list.hh (class gl_List): Add methods remove_first, remove_last. * tests/test-array_list.c (main): Test also gl_list_remove_first and gl_list_remove_last. * tests/test-avltree_list.c (main): Likewise. * tests/test-avltreehash_list.c (main): Likewise. * tests/test-carray_list.c (main): Likewise. * tests/test-linked_list.c (main): Likewise. * tests/test-linkedhash_list.c (main): Likewise. * tests/test-rbtree_list.c (main): Likewise. * tests/test-rbtreehash_list.c (main): Likewise. 2020-05-01 Bruno Haible parse-datetime: Fix a build failure with an older bison version. * modules/parse-datetime (Makefile.am): Don't do the post-processing of parse-datetime.tab.c if a suitable version of bison was not found. 2020-05-01 Bruno Haible bison: New module. * m4/bison.m4 (gl_PROG_BISON): New macro, extracted from m4/parse-datetime.m4. * m4/parse-datetime.m4 (gl_PARSE_DATETIME): Invoke gl_PROG_BISON. * modules/bison: New file. * modules/parse-datetime (Files): Remove m4/bison.m4. (Depends-on): Add bison. 2020-05-01 Jose E. Marchesi Update users.txt. * users.txt: Add poke. 2020-04-28 Bruno Haible posix_spawn_file_actions_addfchdir tests: Enhance test. * tests/test-posix_spawn5.c: Include findprog.h. (test): New function, extracted from main. (main): Invoke it. Also, invoke it with a program name such as "bin/pwd". * modules/posix_spawn_file_actions_addfchdir-tests (Depends-on): Add findprog. 2020-04-28 Bruno Haible posix_spawn_file_actions_addchdir tests: Enhance test. * tests/test-posix_spawn4.c: Include findprog.h. (test): New function, extracted from main. (main): Invoke it. Also, invoke it with a program name such as "bin/pwd". * modules/posix_spawn_file_actions_addchdir-tests (Depends-on): Add findprog. 2020-04-28 Bruno Haible posix_spawn_file_actions_destroy: Fix a crash (bug from 2019-06-10). * lib/spawn_faction_destroy.c (posix_spawn_file_actions_destroy): Don't access elements of the wrong union member. 2020-04-27 Bruno Haible getdate: Remove deprecated module. * modules/getdate: Remove file. * doc/getdate.texi: Remove file. * lib/getdate.h: Remove file. * NEWS: Mention the removal. 2020-04-27 Bruno Haible realloc: Remove deprecated module. * modules/realloc: Remove file. * NEWS: Mention the removal. 2020-04-27 Bruno Haible calloc: Remove deprecated module. * modules/calloc: Remove file. * NEWS: Mention the removal. 2020-04-27 Bruno Haible malloc: Remove deprecated module. * modules/malloc: Remove file. * NEWS: Mention the removal. 2020-04-27 Bruno Haible fnmatch-posix: Remove deprecated module. * modules/fnmatch-posix: Remove file. * MODULES.html.sh (Enhancements for POSIX:2008 functions): Update. * NEWS: Mention the removal. 2020-04-27 Bruno Haible pipe: Remove deprecated module. * modules/pipe: Remove file. * lib/pipe.h: Remove file. * NEWS: Mention the removal. 2020-04-27 Bruno Haible getopt: Remove deprecated module. * modules/getopt: Remove file. * NEWS: Mention the removal. 2020-04-27 Bruno Haible remove-dest-slash: Remove deprecated module. * modules/rename-dest-slash: Remove file. * MODULES.html.sh (Compatibility checks for POSIX:2008 functions): Update. * NEWS: Mention the removal. 2020-04-27 Bruno Haible unictype/bidicategory-*: Remove deprecated modules. * modules/unictype/bidicategory-all: Remove file. * modules/unictype/bidicategory-byname: Remove file. * modules/unictype/bidicategory-name: Remove file. * modules/unictype/bidicategory-of: Remove file. * modules/unictype/bidicategory-test: Remove file. * MODULES.html.sh (Unicode string functions): Update. * NEWS: Mention the removals. 2020-04-25 Paul Eggert Tune fts for FTS_LOGICAL+FTS_NOSTAT From a suggestion by Askar Safin in: https://lists.gnu.org/r/bug-gnulib/2020-04/msg00074.html * lib/fts.c (fts_build): If file types are known, optimize FTS_LOGICAL+FTS_NOSTAT for non-symlinks and non-directories the same way that we already optimize FTS_PHYSICAL+FTS_NOSTAT for non-directories. 2020-04-19 Bruno Haible vasnprintf: Add support for printing wide characters using escapes. * lib/vasnprintf.c (ENABLE_WCHAR_FALLBACK): Document optional macro. (wctomb_fallback): New function. (local_wctomb): New function. (local_wcrtomb): New function or macro. (MAX_ROOM_NEEDED): Adjust estimate for %lc. (VASNPRINTF): Simplify %ls code by use of local_wcrtomb. Add code for %lc. 2020-04-15 Paul Eggert fts: remove NOSTAT_LEAF_OPTIMIZATION It caused ‘find’ and ‘du’ to dump core, and it was useful only for obsolescent Linux filesystems anyway. Problem reported in: https://lists.gnu.org/r/bug-gnulib/2020-04/msg00068.html Quite possibly there is still a serious underlying fts bug with tight-loop-check and mutating file systems, but if so this patch should cause the bug to be triggered less often. * lib/fts.c (enum leaf_optimization): Remove NOSTAT_LEAF_OPTIMIZATION, as it’s problematic. (S_MAGIC_REISERFS, S_MAGIC_XFS): Remove; no longer needed. (leaf_optimization): Remove special cases for ReiserFS and XFS. (fts_read): Remove NOSTAT_LEAF_OPTIMIZATION code. * lib/fts_.h (struct _ftsent.fts_n_dirs_remaining): Remove. All uses removed. 2020-04-13 Bastien Roucariès explicit_bzero: Improve code style. * lib/explicit_bzero.c (explicit_bzero): Use '\0' instead of 0. 2020-04-13 Bastien Roucariès explicit_bzero: On native Windows, use SecureZeroMemory(). * lib/explicit_bzero.c: Include . (explicit_bzero): On native Windows, use SecureZeroMemory. 2020-04-13 Bastien Roucariès explicit_bzero: Use memset_s() when available. * lib/explicit_bzero.c (__STDC_WANT_LIB_EXT1__): Define. (explicit_bzero): Use memset_s when available. * m4/explicit_bzero.m4 (gl_PREREQ_EXPLICIT_BZERO): Test for memset_s. 2020-04-13 Bastien Roucariès explicit_bzero tests: Fix test failure on OpenBSD 6.5. * tests/test-explicit_bzero.c (test_heap): Handle implementations of free() that overwrite the memory with canaries. 2020-04-13 Akim Demaille bootstrap: recommend git submodule update --init Reported by Bruno Haible. * build-aux/bootstrap: recommand "git submodule update --init" rather than "git submodule init". 2020-04-12 Bruno Haible explicit_bzero: Add tests. * tests/test-explicit_bzero.c: New file. * modules/explicit_bzero-tests: New file. 2020-04-11 Bruno Haible explicit_bzero: Relicense under LGPLv2+. Approved by Paul Eggert. * modules/explicit_bzero (License): Change to LGPLv2+. 2020-04-10 Bruno Haible findprog, relocatable-prog: Ignore directories during PATH search. Reported by Frederick Eaton via Dmitry Goncharov in . * lib/findprog.c (find_in_path): When the file found in a PATH element is a directory, continue searching. * modules/findprog (Depends-on): Add sys_stat, stat. * modules/findprog-lgpl (Depends-on): Likewise. * lib/progreloc.c (maybe_executable): When the file found in a PATH element is a directory, continue searching. * lib/relocwrapper.c: Update comments. * modules/relocatable-prog-wrapper (Files): Add m4/largefile.m4. (configure.ac-early): New section. 2020-04-10 Bruno Haible MODULES.html.sh: Support for reproducible builds from git-less tarballs. Reported by Bernhard M. Wiedemann in . * MODULES.html.sh: In a git-less tarball, use the date of the first ChangeLog entry. 2020-04-04 Bruno Haible Fix comments: The gettext library is under LGPL 2.1, not LGPL 2.0. * m4/gettext.m4: Fix comments regarding the gettext library. * m4/intl-thread-locale.m4: Likewise. * m4/intlmacosx.m4: Likewise. * m4/lcmessage.m4: Likewise. * m4/nls.m4: Likewise. * m4/po.m4: Likewise. * m4/progtest.m4: Likewise. 2020-04-04 Jim Meyering maint: remove a stray inter-word space in a 6x-repeated comment Induce the changes by running this: re='by perl'; git grep -l "$re"|xargs perl -pi -e "s/$re/by perl/" * build-aux/announce-gen: Change "by perl" to "by perl". * build-aux/gitlog-to-changelog: Likewise. * build-aux/prefix-gnulib-mk: Likewise. * build-aux/update-copyright: Likewise. * build-aux/useless-if-before-free: Likewise. * tests/test-update-copyright.sh: Likewise. 2020-03-28 Bruno Haible Use module 'filename' instead of module 'dosname'. * lib/at-func.c: Include filename.h instead of dosname.h. * lib/unlinkat.c: Likewise. * modules/areadlinkat (Depends-on): Add filename. Remove dosname. * modules/areadlinkat-with-size (Depends-on): Likewise. * modules/faccessat (Depends-on): Likewise. * modules/fchmodat (Depends-on): Likewise. * modules/fchownat (Depends-on): Likewise. * modules/fstatat (Depends-on): Likewise. * modules/mkdirat (Depends-on): Likewise. * modules/mkfifoat (Depends-on): Likewise. * modules/readlinkat (Depends-on): Likewise. * modules/selinux-at (Depends-on): Likewise. * modules/symlinkat (Depends-on): Likewise. * modules/unlinkat (Depends-on): Likewise. * modules/utimensat (Depends-on): Likewise. * lib/at-func2.c: Include filename.h instead of dosname.h. * modules/linkat (Depends-on): Add filename. Remove dosname. * modules/renameatu (Depends-on): Likewise. * lib/canonicalize.c: Include filename.h instead of dosname.h. * lib/canonicalize-lgpl.c: Likewise. * modules/canonicalize (Depends-on): Add filename. * modules/canonicalize-lgpl (Depends-on): Likewise. * lib/dirname.h: Include filename.h instead of dosname.h. * modules/dirname-lgpl (Depends-on): Add filename. Remove dosname. * lib/fchdir.c: Include filename.h instead of dosname.h. * modules/fchdir (Depends-on): Add filename. Remove dosname. * lib/openat.c: Include filename.h instead of dosname.h. * modules/openat (Depends-on): Add filename. Remove dosname. * lib/rmdir.c: Include filename.h instead of dosname.h. * modules/rmdir (Depends-on): Add filename. Remove dosname. * lib/savewd.c: Include filename.h instead of dosname.h. * modules/savewd (Depends-on): Add filename. Remove dosname. * lib/unlink.c: Include filename.h instead of dosname.h. * modules/unlink (Depends-on): Add filename. Remove dosname. * modules/relocatable-prog-wrapper (Depends-on): Add filename. * lib/relocwrapper.c: Update comments. * modules/lstat (Depends-on): Remove dosname. 2020-03-28 Bruno Haible dosname: Redirect to 'filename'. Reported by Tim Rühsen in . * lib/dosname.h: Remove all definitions. Just include filename.h. * modules/dosname (Status, Notice): Mark as deprecated. (Depends-on): Add 'filename'. 2020-03-28 Bruno Haible dosname: Change IS_RELATIVE_FILE_NAME. * lib/dosname.h (IS_RELATIVE_FILE_NAME): On native Windows, OS/2, DOS, change the definition so that IS_RELATIVE_FILE_NAME("c:") is false. * NEWS: Mention the change. 2020-03-28 Bruno Haible filename: Copy some definitions from module 'dosname'. * lib/filename.h: Include , for IS_FILE_NAME_WITH_DIR. (HAS_DEVICE): Document macro. (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE): New macro. (IS_ABSOLUTE_FILE_NAME): Consider FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE. (IS_RELATIVE_FILE_NAME, IS_FILE_NAME_WITH_DIR): New macros. (IS_ABSOLUTE_PATH, IS_PATH_WITH_DIR): Define as deprecated aliases. * lib/relocatable.c (IS_FILE_NAME_WITH_DIR): Renamed from IS_PATH_WITH_DIR. (DllMain): Update. * lib/progreloc.c (IS_FILE_NAME_WITH_DIR): Renamed from IS_PATH_WITH_DIR. (find_executable): Update. * NEWS: Document the deprecations. 2020-03-25 Paul Eggert getopt-posix: port __GETOPT_PREFIX to macOS * lib/getopt-pfx-core.h (_GETOPT) [__APPLE__ && __GETOPT_PREFIX]: Define to work around a problem with asm on macOS (Bug#40205). 2020-03-22 Bruno Haible MODULES.html.sh: Add support for reproducible builds. Reported by Bernhard M. Wiedemann in . * MODULES.html.sh: Print the date of the last gnulib commit, not the current date. 2020-03-22 Bruno Haible Several modules: Depend on stat. * modules/acl-permissions (Depends-on): Add stat. * modules/canonicalize (Depends-on): Likewise. * modules/file-has-acl (Depends-on): Likewise. * modules/fstat (Depends-on): Likewise. * modules/fstatat (Depends-on): Likewise. * modules/glob (Depends-on): Likewise. * modules/javacomp (Depends-on): Likewise. * modules/linkat (Depends-on): Likewise. * modules/mkdir (Depends-on): Likewise. * modules/pt_chown (Depends-on): Likewise. * modules/ptsname_r (Depends-on): Likewise. * modules/readlinkat (Depends-on): Likewise. * modules/rename (Depends-on): Likewise. * modules/renameatu (Depends-on): Likewise. * modules/tmpdir (Depends-on): Likewise. * modules/utimens (Depends-on): Likewise. * modules/relocatable-prog-wrapper (Depends-on): Add largefile. * modules/same (Depends-on): Remove stat. 2020-03-22 Bruno Haible acl-permissions: Improve autoconf macro. * m4/acl.m4 (gl_FUNC_ACL): Test the value of gl_need_lib_has_acl more reliably. 2020-03-22 Bruno Haible file-has-acl: Fix module description. * modules/file-has-acl (Files): Add lib/acl-internal.h, m4/acl.m4. (Depends-on): Depend on acl-permissions unconditionally. 2020-03-21 Bruno Haible unlink: Ensure errno also on native Windows. * modules/unlink (Depends-on): Add malloc-posix. 2020-03-21 Paul Eggert unlink: fix malloc errno typo Problem reported by Tim Rühsen in: https://lists.gnu.org/r/bug-gnulib/2020-03/msg00044.html * lib/unlink.c (rpl_unlink): Don’t mask malloc errno. 2020-03-16 Bruno Haible *printf-posix: Fix m4 error (regression from 2020-03-08). * m4/printf.m4 (gl_SNPRINTF_DIRECTIVE_N): Enable interpretation of brackets in AC_COMPILE_IFELSE invocation. 2020-03-08 Bruno Haible crypto/af_alg, renameatu, same, term-style-control: Depend on fstat. * modules/crypto/af_alg (Depends-on): Add fstat. * modules/renameatu (Depends-on): Likewise. * modules/same (Depends-on): Likewise. * modules/term-style-control (Depends-on): Likewise. 2020-03-08 Bruno Haible *printf-posix: Document why it's overridden on some glibc systems. Reported by Adrian Bunk in . * doc/posix-functions/*printf.texi: Document the problem with the %n directive on some glibc systems. * m4/printf.m4 (gl_PRINTF_DIRECTIVE_N, gl_SNPRINTF_DIRECTIVE_N): Adjust the cross-compilation guesses accordingly. 2020-03-07 Paul Eggert open, openat: port to (O_RDWR | O_RDONLY) != 0 Potential portability problem reported by Dan Gohman in: https://lists.gnu.org/r/bug-gnulib/2020-03/msg00000.html * lib/open.c (open): * lib/openat.c (rpl_openat): Don’t assume O_RDONLY is disjoint from O_RDWR. 2020-03-07 Bruno Haible openat: Fix theoretically possible issue on GNU/Hurd. Reported by Dan Gohman in . * lib/openat.c (rpl_openat): When testing whether flags contains O_RDWR, ignore the bits that are also set in O_RDONLY. 2020-02-24 Bruno Haible getloadavg: Don't use /usr/local when cross-compiling on AIX. Reported by Jens Rehsack in . * m4/getloadavg.m4 (gl_GETLOADAVG): Don't look in /usr/local/lib when cross-compiling. 2020-02-24 Bruno Haible fcntl: Add witness of gnulib override. Reported by Jens Rehsack in . * lib/fcntl.in.h (GNULIB_defined_rpl_fcntl, GNULIB_defined_fcntl): New macros. 2020-02-23 Assaf Gordon Update users.txt. * users.txt: Add datamash, time. 2020-02-23 Bruno Haible uni*/base: Use 'restrict'. * lib/unitypes.in.h (_UC_RESTRICT): New macro, based on '_Restrict_' from lib/regex.h. * lib/unistr.in.h (u8_cpy, u16_cpy, u32_cpy, u8_strcpy, u16_strcpy, u32_strcpy, u8_stpcpy, u16_stpcpy, u32_stpcpy, u8_strncpy, u16_strncpy, u32_strncpy, u8_stpncpy, u16_stpncpy, u32_stpncpy, u8_strcat, u16_strcat, u32_strcat, u8_strncat, u16_strncat, u32_strncat, u8_strtok, u16_strtok, u32_strtok): Use '_UC_RESTRICT'. * lib/uninorm.in.h (u8_normalize, u16_normalize, u32_normalize): Use '_UC_RESTRICT'. * lib/uniconv.in.h (u8_conv_to_encoding, u16_conv_to_encoding, u32_conv_to_encoding): Use '_UC_RESTRICT'. * lib/unicase.in.h (u8_toupper, u16_toupper, u32_toupper, u8_tolower, u16_tolower, u32_tolower, u8_totitle, u16_totitle, u32_totitle, u8_ct_toupper, u16_ct_toupper, u32_ct_toupper, u8_ct_tolower, u16_ct_tolower, u32_ct_tolower, u8_ct_totitle, u16_ct_totitle, u32_ct_totitle, u8_casefold, u16_casefold, u32_casefold, u8_ct_casefold, u16_ct_casefold, u32_ct_casefold, u8_casexfrm, u16_casexfrm, u32_casexfrm, ulc_casexfrm): Use '_UC_RESTRICT'. * lib/unilbrk.in.h (u8_possible_linebreaks, u16_possible_linebreaks, u32_possible_linebreaks, ulc_possible_linebreaks, u8_width_linebreaks, u16_width_linebreaks, u32_width_linebreaks, ulc_width_linebreaks): Use '_UC_RESTRICT'. * lib/uniwbrk.in.h (ulc_wordbreaks): Use '_UC_RESTRICT'. * lib/unistdio.in.h (ulc_sprintf, ulc_snprintf, ulc_asnprintf, ulc_vsprintf, ulc_vsnprintf, ulc_vasnprintf, u8_u8_sprintf, u8_u8_snprintf, u8_u8_asnprintf, u8_u8_vsprintf, u8_u8_vsnprintf, u8_u8_vasnprintf, u16_u16_sprintf, u16_u16_snprintf, u16_u16_asnprintf, u16_u16_vsprintf, u16_u16_vsnprintf, u16_u16_vasnprintf, u32_u32_sprintf, u32_u32_snprintf, u32_u32_asnprintf, u32_u32_vsprintf, u32_u32_vsnprintf, u32_u32_vasnprintf): Use '_UC_RESTRICT'. 2020-02-23 Bruno Haible glob, spawn: Use improved '_Restrict_' definition. * lib/glob.in.h (_Restrict_): Use same definition as in lib/regex.h. * lib/spawn.in.h (_Restrict_, _Restrict_arr_): Likewise. 2020-02-23 Bruno Haible crypto/gc: Use 'restrict'. * lib/gc.h (gc_pbkdf2_hmac, gc_pbkdf2_sha1): Use 'restrict'. * m4/gc.m4 (gl_GC): Require AC_C_RESTRICT. crypto/hmac-*: Use 'restrict'. * lib/hmac.h (hmac_md5, hmac_sha1, hmac_sha256, hmac_sha512): Use 'restrict'. * modules/crypto/hmac-md5 (configure.ac): Require AC_C_RESTRICT. * modules/crypto/hmac-sha1 (configure.ac): Likewise. * modules/crypto/hmac-sha256 (configure.ac): Likewise. * modules/crypto/hmac-sha512 (configure.ac): Likewise. crypto/sm3: Use 'restrict'. * lib/sm3.h (sm3_finish_ctx, sm3_read_ctx, sm3_buffer): Use 'restrict'. * m4/sm3.m4 (gl_SM3): Require AC_C_RESTRICT. crypto/*-buffer: Use 'restrict'. * lib/gl_openssl.h (GL_CRYPTO_FN (_finish_ctx), GL_CRYPTO_FN (_buffer), GL_CRYPTO_FN (_read_ctx)): Use 'restrict'. crypto/sha512-buffer: Use 'restrict'. * lib/sha512.h (sha512_finish_ctx, sha384_finish_ctx, sha512_read_ctx, sha384_read_ctx, sha512_buffer, sha384_buffer): Use 'restrict'. * modules/crypto/sha512-buffer (configure.ac): Require AC_C_RESTRICT. crypto/sha256-buffer: Use 'restrict'. * lib/sha256.h (sha256_finish_ctx, sha224_finish_ctx, sha256_read_ctx, sha224_read_ctx, sha256_buffer, sha224_buffer): Use 'restrict'. * modules/crypto/sha256-buffer (configure.ac): Require AC_C_RESTRICT. crypto/sha1-buffer: Use 'restrict'. * lib/sha1.h (sha1_finish_ctx, sha1_read_ctx, sha1_buffer): Use 'restrict'. * modules/crypto/sha1-buffer (configure.ac): Require AC_C_RESTRICT. crypto/md5-buffer: Use 'restrict'. * lib/md5.h (__md5_finish_ctx, __md5_read_ctx, __md5_buffer): Use 'restrict'. * modules/crypto/md5-buffer (configure.ac): Require AC_C_RESTRICT. crypto/md4: Use 'restrict'. * lib/md4.h (md4_finish_ctx, md4_read_ctx, md4_buffer): Use 'restrict'. * modules/crypto/md4 (configure.ac): Require AC_C_RESTRICT. crypto/md2: Use 'restrict'. * lib/md2.h (md2_finish_ctx, md2_read_ctx, md2_buffer): Use 'restrict'. * modules/crypto/md2 (configure.ac): Require AC_C_RESTRICT. crypto/rijndael: Use 'restrict'. * lib/rijndael-api-fst.h (rijndaelBlockEncrypt, rijndaelPadEncrypt, rijndaelBlockDecrypt, rijndaelPadDecrypt): Use 'restrict'. * modules/crypto/rijndael (configure.ac): Require AC_C_RESTRICT. crypto/arctwo: Use 'restrict'. * lib/arctwo.h (arctwo_encrypt, arctwo_decrypt): Use 'restrict'. * modules/crypto/arctwo (configure.ac): Require AC_C_RESTRICT. crypto/arcfour: Use 'restrict'. * lib/arcfour.h (arcfour_stream): Use 'restrict'. * modules/crypto/arcfour (configure.ac): Require AC_C_RESTRICT. careadlinkat: Use 'restrict'. * lib/careadlinkat.h (careadlinkat): Use 'restrict'. * modules/careadlinkat (configure.ac): Require AC_C_RESTRICT. * modules/relocatable-prog-wrapper (configure.ac): Likewise. regex-quote: Use 'restrict'. * lib/regex-quote.h (regex_quote_copy): Use 'restrict'. * modules/regex-quote (configure.ac): Require AC_C_RESTRICT. system-quote: Use 'restrict'. * lib/system-quote.h (system_quote_copy): Use 'restrict'. * modules/system-quote (configure.ac): Require AC_C_RESTRICT. sh-quote: Use 'restrict'. * lib/sh-quote.h (shell_quote_copy): Use 'restrict'. * modules/sh-quote (configure.ac): Require AC_C_RESTRICT. quotearg: Use 'restrict'. * lib/quotearg.h (quotearg_buffer): Use 'restrict'. * m4/quotearg.m4 (gl_QUOTEARG): Require AC_C_RESTRICT. parse-datetime: Use 'restrict'. * lib/parse-datetime.h (parse_datetime, parse_datetime2): Use 'restrict'. * m4/parse-datetime.m4 (gl_PARSE_DATETIME): Require AC_C_RESTRICT. nstrftime: Use 'restrict'. * lib/strftime.h (nstrftime): Use 'restrict'. * m4/nstrftime.m4 (gl_FUNC_GNU_STRFTIME): Require AC_C_RESTRICT. mbstok_r: Use 'restrict'. * lib/string.in.h (mbstok_r): Use 'restrict'. xmemcoll: Use 'restrict'. * lib/xmemcoll.h (xmemcoll): Use 'restrict'. * modules/xmemcoll (configure.ac): Require AC_C_RESTRICT. memcoll: Use 'restrict'. * lib/memcoll.h (memcoll): Use 'restrict'. * m4/memcoll.m4 (gl_MEMCOLL): Require AC_C_RESTRICT. vasnprintf: Use 'restrict'. * lib/vasnprintf.h (asnprintf, vasnprintf): Use 'restrict'. * modules/vasnprintf (configure.ac): Require AC_C_RESTRICT. c-vasnprintf: Use 'restrict'. * lib/c-vasnprintf.h (c_vasnprintf): Use 'restrict'. * modules/c-vasnprintf (configure.ac): Require AC_C_RESTRICT. c-vsnprintf: Use 'restrict'. * lib/c-vsnprintf.h (c_vsnprintf): Use 'restrict'. * modules/c-vsnprintf (configure.ac): Require AC_C_RESTRICT. c-snprintf: Use 'restrict'. * lib/c-snprintf.h (c_snprintf): Use 'restrict'. * modules/c-snprintf (configure.ac): Require AC_C_RESTRICT. astrxfrm: Use 'restrict'. * lib/astrxfrm.h (astrxfrm): Use 'restrict'. * modules/astrxfrm (configure.ac): Require AC_C_RESTRICT. amemxfrm: Use 'restrict'. * lib/amemxfrm.h (amemxfrm): Use 'restrict'. * modules/amemxfrm (configure.ac): Require AC_C_RESTRICT. 2020-02-22 Paul Eggert fchmodat, lchmod: simplify It appears that we may have overengineered lchmod and fchmodat, in that the code was prepared for some hypothetical platforms but was so complicated that it was hard to understand. I attempted to improve the situation by simplifying the code when this simplification should not hurt on real platforms; we can re-add complexity later to port to platforms I didn’t know about. * lib/fchmodat.c (fchmodat): * lib/lchmod.c (lchmod): Put the ‘defined __linux__ || defined __ANDROID__’ #ifdef only around the /proc code that needs it. * lib/fchmodat.c (fchmodat): Coalese calls to orig_fchmodat. * lib/lchmod.c (__need_system_sys_stat_h): Omit; no longer needed. Do not include twice. (orig_lchmod) [HAVE_LCHMOD]: Remove, since we need not wrap lchmod on any known hosts. (lchmod): Do not defer to fchmodat, so that the lchmod module need not depend on the fchmodat module (which is a circular dependency). Do not use openat, since ‘open’ suffices. Coalesce calls to lchmod/chmod. * lib/lchmod.c, lib/sys_stat.in.h (lchmod): * m4/sys_stat_h.m4 (REPLACE_FSTAT): * modules/lchmod (Depends-on, configure.ac): * modules/sys_stat (Depends-on): Do not worry about replacing lchmod, since that shouldn’t happen. * m4/lchmod.m4 (gl_FUNC_LCHMOD): Do not check for fchmodat. Do not worry about whether lchmod works on non-symlinks, since every known lchmod works on non-symlinks. * modules/lchmod (Depends-on): Remove circular dependency on fchmodat. 2020-02-22 Bruno Haible lchmod: Fix link error on Solaris 10 (regression from 2020-02-16). * lib/lchmod.c (lchmod): Use the code with lstat and chmod also when NEED_LCHMOD_NONSYMLINK_FIX is not defined. 2020-02-22 Bruno Haible Use 'restrict' in all POSIX function declarations. * lib/iconv.in.h (iconv): Use 'restrict'. * lib/inttypes.in.h (strtoimax, strtoumax): Likewise. * lib/monetary.in.h (strfmon_l): Likewise. * lib/pthread.in.h (pthread_create, pthread_mutex_init, pthread_mutexattr_gettype, pthread_mutexattr_getrobust, pthread_mutex_timedlock, pthread_rwlock_init, pthread_rwlock_timedrdlock, pthread_rwlock_timedwrlock, pthread_cond_init, pthread_cond_wait, pthread_cond_timedwait): Likewise. * lib/search.in.h (tdelete): Likewise. * lib/signal.in.h (pthread_sigmask, sigprocmask): Likewise. * lib/stdio.in.h (dprintf, fgets, fopen, fprintf, fputs, fread, freopen, fscanf, fwrite, getdelim, getline, printf, scanf, snprintf, sprintf, vdprintf, vfprintf, vfscanf, vprintf, vscanf, vsnprintf, vsprintf): Likewise. * lib/stdlib.in.h (mbtowc, realpath, strtod, strtold, strtoll, strtoull): Likewise. * lib/string.in.h (strncat): Likewise. * lib/sys_socket.in.h (accept, getpeername, getsockname, getsockopt, recvfrom): Likewise. * lib/sys_stat.in.h (fstatat, lstat, stat): Likewise. * lib/time.in.h (strftime): Likewise. * lib/unistd.in.h (readlink, readlinkat): Likewise. * lib/wchar.in.h (mbrtowc, mbrlen, mbsrtowcs, mbsnrtowcs, wcrtomb, wcsrtombs, wcsnrtombs, wmemcpy, wcscpy, wcpcpy, wcsncpy, wcpncpy, wcscat, wcsncat, wcsxfrm, wcsstr, wcstok, wcsftime): Likewise. * m4/iconv_h.m4 (gl_ICONV_H): Require AC_C_RESTRICT. * m4/inttypes.m4 (gl_INTTYPES_INCOMPLETE): Likewise. * m4/monetary_h.m4 (gl_MONETARY_H): Likewise. * m4/search_h.m4 (gl_SEARCH_H): Likewise. * m4/signal_h.m4 (gl_SIGNAL_H): Likewise. * m4/stdio_h.m4 (gl_STDIO_H): Likewise. * m4/stdlib_h.m4 (gl_STDLIB_H): Likewise. * m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise. * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H): Likewise. * m4/wchar_h.m4 (gl_WCHAR_H): Likewise. * m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Make consistent with the other *_h.m4 files. * m4/time_h.m4 (gl_HEADER_TIME_H): Likewise. 2020-02-22 Bruno Haible Update NEWS. * NEWS: Mention the last change. 2020-02-22 Paul Eggert chmodat, chownat: new modules These are split from fchmodat, fchownat. GNU Emacs needs the POSIX-specified fchmodat, but not the gnulib-specified chmodat and lchmodat. Split the latter two into a new module chmodat. Similarly for fchownat. This the same basic idea for why statat was split from fstatat on 2013-01-23. * lib/chmodat.c, lib/openat.h (CHMODAT_INLINE): Rename from FCHMODAT_INLINE. All uses changed. * lib/chownat.c, lib/openat.h (CHOWNAT_INLINE): Rename from FCHOWNAT_INLINE. All uses changed. * lib/openat.h: (chownat, lchownat): Define if GNULIB_CHOWNAT, not GNULIB_FCHOWNAT. (chmodat, lchmodat): Define if GNULIB_CHMODAT, not GNULIB_FCHMODAT. * modules/chmodat, modules/chownat, tests/test-chownat.c: New files. * modules/fchmodat (Files:): Remove lib/fchmodat.c. (configure.ac): Remove fchmodat module indicator. (Makefile.am): Omit chmodat.c. (Maintainer): Add self. * modules/fchownat: Similarly, but for chown. * tests/test-fchownat.c (BASE): Don't define if already defined. (do_chown, do_lchown) [!TEST_CHOWNAT]: Test fchownat instead. 2020-02-22 Bruno Haible users.txt: Add groff. Reported by Bjarni Ingi Gislason . * users.txt: Add groff. 2020-02-22 Bruno Haible gnulib-tool: Ensure copied files are writable. Reported by Benno Fünfstück in . * gnulib-tool (func_ensure_writable): New function. (func_ln_s, func_hardlink, func_lookup_file, func_import, func_create_testdir, copy-file): Invoke it after copying a file. 2020-02-22 Bruno Haible users.txt: Update. * users.txt: Update URLs to projects that have moved or switched to git. Use canonical host names. Prefer gitweb over cgit. Prefer the tree view over the summary view. Add gawk. 2020-02-21 Paul Eggert largefile: remove _DARWIN_USE_64_BIT_INODE It’s not needed in currently-supported macOS versions, and was problematic anyway in MacOS X 10.5 which was the only version that could use it. Problem reported by Peter Eisentraut in: https://lists.gnu.org/r/bug-autoconf/2020-02/msg00004.html * m4/largefile.m4 (AC_SYS_LARGEFILE): Don’t define _DARWIN_USE_64_BIT_INODE. This syncs with Autoconf master. Add ‘extern "C"’ to count-one-bits.h etc. This ports these .h files to C++. Problem reported by Simon Marchi in: https://lists.gnu.org/r/bug-gnulib/2020-02/msg00110.html * lib/count-leading-zeros.h, lib/count-one-bits.h: * lib/count-trailing-zeros.h: Add ‘extern "C"’. 2020-02-19 Bruno Haible uninorm/decompose-internal: Avoid "no previous prototype" warning. Reported by Tim Rühsen in . * lib/array-mergesort.h: Accept an optional macro definition STATIC_FROMTO. * lib/uninorm/decompose-internal.c (STATIC_FROMTO): New macro. 2020-02-16 Bruno Haible fchmodat: Make more future-proof. * m4/fchmodat.m4 (gl_FUNC_FCHMODAT): Define NEED_FCHMODAT_NONSYMLINK_FIX. (gl_PREREQ_FCHMODAT): New macro. * lib/fchmodat.c (fchmodat): Test NEED_FCHMODAT_NONSYMLINK_FIX. Access /proc only on Linux. Return EOPNOTSUPP only on Linux and on platforms without lchmod function. * modules/fchmodat (configure.ac): Invoke gl_PREREQ_FCHMODAT. 2020-02-16 Bruno Haible lchmod: Make more future-proof. * m4/lchmod.m4 (gl_FUNC_LCHMOD): Define NEED_LCHMOD_NONSYMLINK_FIX. (gl_PREREQ_LCHMOD): New macro. * lib/lchmod.c (orig_lchmod): New function. (lchmod): Test NEED_LCHMOD_NONSYMLINK_FIX. Access /proc only on Linux. Return EOPNOTSUPP only on Linux and on platforms without lchmod function. * modules/lchmod (configure.ac): Invoke gl_PREREQ_LCHMOD. lchmod: Fix buggy override on macOS, HP-UX (regression from 2020-02-08). * modules/lchmod (Makefile.am): Don't add lchmod.c to lib_SOURCES. 2020-02-16 Paul Eggert xnanosleep: prefer pause, and get remaining time Problem reported by Vladimir Panteleev in: https://lists.gnu.org/r/bug-gnulib/2020-02/msg00052.html * lib/xnanosleep.c: Include intprops.h, unistd.h. (xnanosleep) [HAVE_PAUSE]: Prefer pause when sleeping infinitely. (xnanosleep): Obtain remaining time when nanosleep is interrupted. * m4/xnanosleep.m4 (gl_XNANOSLEEP): Check for 'pause'. * modules/xnanosleep (Depends-on): Add intprops, unistd. 2020-02-16 Bruno Haible lchmod: Improve cross-compilation guess. * m4/lchmod.m4 (gl_FUNC_LCHMOD): Require AC_CANONICAL_HOST. When cross-compiling, guess depending on the platform. 2020-02-16 Bruno Haible fstrcmp: Add API to clean up resources. Reported by Akim Demaille in . * lib/fstrcmp.h (fstrcmp_free_resources): New declaration. * lib/fstrcmp.c (fstrcmp_free_resources): New function. 2020-02-14 Bruno Haible wctype-h: Fix compilation errors in C++ (regression from 2020-01-25). Reported by Christian Biesinger in . * lib/wctype.in.h (iswdigit, iswxdigit): Don't declare if the corresponding module is not enabled. * tests/test-wctype-h-c++.cc (iswdigit, iswxdigit): Don't check the prototype if the corresponding module is not enabled. 2020-02-13 Paul Eggert fchmodat, lchmod: port to buggy Linux filesystems Problem reported by Florian Weimer in: https://www.sourceware.org/ml/libc-alpha/2020-02/msg00534.html * lib/fchmodat.c (fchmodat): * lib/lchmod.c (lchmod): Don’t assume that chmod on the O_PATH-opened fd will do the right thing on a symbolic link. * lib/fchmodat.c (fchmodat): Don’t attempt to special-case any flag value other than AT_SYMLINK_NOFOLLOW. 2020-02-11 Paul Eggert lchmod: pacify Coverity CID 1491216 * lib/lchmod.c (lchmod): Redo #if nesting so that Coverity does not complain about unreachable code at the ‘struct stat st;’ declaration. 2020-02-10 Bruno Haible copysignf: Fix link error on HP-UX with cc. * m4/copysignf.m4 (gl_FUNC_COPYSIGNF): Require AC_CANONICAL_HOST. On HP-UX, set COPYSIGNF_LIBM to -lm. 2020-02-10 Bruno Haible pthread-mutex-tests, pthread-rwlock-tests: Fix link errors on HP-UX. * modules/pthread-mutex-tests (Makefile.am): Link test-pthread-mutex with $(LIB_SEMAPHORE). * modules/pthread-rwlock-tests (Makefile.am): Link test-pthread-rwlock with $(LIB_SEMAPHORE). 2020-02-10 Bruno Haible ptsname_r-tests: Avoid unused function warning. * tests/test-ptsname_r.c: Don't include null-ptr.h if we don't need it. 2020-02-08 Bruno Haible lchmod: Add tests. * tests/test-lchmod.c: New file. * modules/lchmod-tests: New file. 2020-02-08 Bruno Haible lchmod: Ensure declaration on HP-UX. * lib/sys_stat.in.h (lchown): Declare also on HP-UX. * doc/glibc-functions/lchmod.texi: Mention the HP-UX problem. 2020-02-08 Bruno Haible fchmodat: Strengthen tests. * tests/test-fchmodat.c (BASE): New macro. (main): Use it, to avoid conflicts with other unit tests. Verify that fchmodat changed the file permission bits. 2020-02-08 Bruno Haible fchmodat: Fix endless recursion on Cygwin (regression from 2020-02-07). * lib/fchmodat.c (orig_fchmodat): Move definition to immediately after '#undef __need_system_sys_stat_h'. 2020-02-08 Bruno Haible fchmodat: Improve cross-compilation guesses. * m4/fchmodat.m4 (gl_FUNC_FCHMODAT): Require AC_CANONICAL_HOST. When cross-compiling, guess depending on the platform. * doc/posix-functions/fchmodat.texi: Clarify. 2020-02-08 Bruno Haible Fix compilation errors in a testdir created with --with-c++-tests. * lib/c++defs.h (_GL_CXXALIASWARN1_2): Do not use __typeof__ (func), since it does not work any more with g++ >= 4.4. 2020-02-08 Bruno Haible doc: Update for glibc 2.31. * doc/glibc-functions/pthread_clockjoin_np.texi: New file. * doc/gnulib.texi: Include it. * doc/pastposix-functions/h_errno.texi: Update. * doc/posix-functions/*.texi: Likewise. 2020-02-08 Kenneth D'souza mountlist: consider smb3 file systems as remote * lib/mountlist.c (ME_REMOTE): Recognize file systems of type "smb3" as remote. 2020-02-07 Paul Eggert fchmodat: AT_SYMLINK_NOFOLLOW fix for non-symlinks Fix lchmod, and fchmodat with AT_SYMLINK_NOFOLLOW, so that they act like chmod on non-symlinks. * NEWS: * doc/glibc-functions/lchmod.texi (lchmod): * doc/posix-functions/fchmodat.texi (fchmodat): Mention this. * lib/fchmodat.c: Define __need_system_sys_stat_h before including config.h, and undef it after including sys/stat.h the first time. Include fcntl.h, stdio.h, unistd.h, intprops.h, and include sys/stat.h a second time after defining orig_fchmodat. (orig_fchmodat) [HAVE_FCHMODAT]: New function. (fchmodat) [HAVE_FCHMODAT]: Work around the AT_SYMLINK_NOFOLLOW bug. * lib/lchmod.c: New file. * lib/sys_stat.in.h (fchmodat, lchmod): Support replacing these functions. * m4/fchmodat.m4 (gl_FUNC_FCHMODAT): If fchmodat exists, test that AT_SYMLINK_NOFOLLOW works on non-symlinks. * m4/lchmod.m4 (gl_FUNC_LCHMOD): Check for lstat. Test that lchmod works on non-symlinks. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Default REPLACE_FCHMODAT and REPLACE_LCHMOD to 0. * modules/fchmodat (Depends-on): Add fstatat, intprops, lchmod, unistd. (Depends-on, configure.ac): Check REPLACE_FCHMODAT too. * modules/lchmod (Files): Add lib/lchmod.c. (Depends-on): Add errno, fcntl-h, fchmodat, intprops, lstat, unistd. (configure.ac): Compile lchmod.c if needed. (lib_SOURCES): Add lchmod.c. * modules/sys_stat (sys/stat.h): Substitute REPLACE_FCHMODAT and REPLACE_LCHMOD. * tests/test-fchmodat.c: Include fcntl.h, sys/stat.h. (main): Test fchmodat with AT_SYMLINK_NOFOLLOW on non-symlinks. 2020-02-05 Marc Dionne (tiny change) mountlist: Consider AFS filesystems as remote df --local relies on the ME_REMOTE macro to determine if a given mount entry should be considered "local". There is special logic for nfs and smb/cifs mounts, but /afs as mounted by OpenAFS, the kernel's kafs module or AuriStorFS is treated as a local mount. * lib/mountlist.c (ME_REMOTE): Treat mounts of type 'afs' (OpenAFS, kernel kafs) and 'auristorfs' (AuriStorFS) as remote. 2020-02-04 Paul Eggert Port _Noreturn to older Clang Problem reported by Jeffery Walton in: https://lists.gnu.org/r/bug-gnulib/2020-02/msg00013.html * lib/_Noreturn.h (_Noreturn): * m4/gnulib-common.m4 (gl_COMMON_BODY): Assume _Noreturn works in Clang 3.5 and later. It is documented to work in Clang 3.5: http://releases.llvm.org/3.5.0/tools/clang/docs/AttributeReference.html and is not documented in Clang 3.4: https://releases.llvm.org/3.4/tools/clang/docs/LanguageExtensions.html Apple sets __clang_version__ to a different value, so use __apple_build_version__ there. See: https://lists.gnu.org/r/bug-gnulib/2020-02/msg00017.html 2020-02-04 Pádraig Brady test-canonicalize: avoid unused function warning * tests/test-canonicalize.c: Protect the inclusion of null-ptr.h with the same guard as that used to protect usage of the null_ptr function, so that one doesn't get a -Wunused warning. * tests/test-canonicalize-lgpl.c: Likewise. 2020-02-03 Paul Eggert libc-config: port to Apple’s Clang variant * lib/libc-config.h (__glibc_clang_prereq): Port to Apple’s Clang variant, which uses a different numbering scheme for __clang_major__. 2020-02-02 Bruno Haible Document the new modules list-c++, set-c++, oset-c++, map-c++, omap-c++. * doc/containers.texi: Document these new modules. 2020-02-02 Bruno Haible omap-c++: Add tests. * tests/test-omap-c++.cc: New file. * modules/omap-c++-tests: New file. omap-c++: New module. * lib/gl_omap.hh: New file, based on lib/gl_omap.h. * modules/omap-c++: New file. 2020-02-02 Bruno Haible map-c++: Add tests. * tests/test-map-c++.cc: New file. * modules/map-c++-tests: New file. map-c++: New module. * lib/gl_map.hh: New file, based on lib/gl_map.h. * modules/map-c++: New file. 2020-02-02 Bruno Haible oset-c++: Add tests. * tests/test-oset-c++.cc: New file. * modules/oset-c++-tests: New file. oset-c++: New module. * lib/gl_oset.hh: New file, based on lib/gl_oset.h. * modules/oset-c++: New file. 2020-02-02 Bruno Haible set-c++: Add tests. * tests/test-set-c++.cc: New file. * modules/set-c++-tests: New file. set-c++: New module. * lib/gl_set.hh: New file, based on lib/gl_set.h. * modules/set-c++: New file. 2020-02-02 Bruno Haible list-c++: Add tests. * tests/test-list-c++.cc: New file. * modules/list-c++-tests: New file. list-c++: New module. * lib/gl_list.hh: New file, based on lib/gl_list.h. * modules/list-c++: New file. 2020-02-02 Bruno Haible xalloc: Fix compilation error in C++ mode on FreeBSD 12. * lib/xalloc.h (xalloc_die): Comment out 'extern' keyword before '_Noreturn'. * lib/sigpipe-die.h (sigpipe_die): Likewise. 2020-02-02 Pádraig Brady read-file: reduce max size from SIZE_MAX to PTRDIFF_MAX On x86_64 with glibc-2.30, gcc 9.2 is giving: error: argument 2 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Werror=alloc-size-larger-than=] The details of this restriction are discussed at: https://stackoverflow.com/q/42574890/4421 * lib/read-file.c: s/SIZE_MAX/PTRDIFF_MAX/ 2020-02-02 Pádraig Brady sysctl.h: avoid including on glibc * lib/nproc.c: Avoid including deprecated and unneeded header on GLIBC. * lib/physmem.c: Likewise. 2020-02-02 Bruno Haible list, set, oset, map, omap: Avoid imperative voice in documentation. * lib/gl_list.h: Use descriptive sentences instead of imperative voice in the specification of functions. * lib/gl_set.h: Likewise. * lib/gl_oset.h: Likewise. * lib/gl_map.h: Likewise. * lib/gl_omap.h: Likewise. * lib/gl_*.h: Likewise. 2020-02-01 Bruno Haible ansi-c++-opt: Set CXXFLAGS to "-g -O2" by default. * m4/ansi-c++.m4 (gl_PROG_ANSI_CXX): Determine CXXFLAGS like AC_PROG_CXX does. 2020-01-29 Bruno Haible array-map, hash-map, linkedhash-map: Fix module description. * modules/array-map (Description): Fix description. * modules/hash-map (Description): Likewise. * modules/linkedhash-map (Description): Likewise. 2020-01-29 Paul Eggert dfa: do not depend on isblank This removes a difference between Gawk dfa.c and Gnulib dfa.c. * lib/dfa.c (isblank): Define if neither system nor Gnulib does. * modules/dfa (Depends-on): Remove isblank. * modules/isblank: Add a module indicator, for lib/dfa.c. dfa: do not assume 64-bit int Problem reported for VAX/VMS C (!) by Arnold Robbins in: https://lists.gnu.org/r/bug-gnulib/2020-01/msg00173.html * lib/dfa.c (CHARCLASS_PAIR): Bring back this macro. (CHARCLASS_WORD_BITS, charclass_word) [!UINT_LEAST64_MAX]: Fall back to 32-bit words. (CHARCLASS_INIT): Go back to having 8 32-bit args instead of 4 64-bit args. All uses changed. 2020-01-27 Paul Eggert regex: remove limits-h dependency * modules/regex (Depends-on): Remove limits-h, since the code no longer depends on ULONG_WIDTH already being defined. regex: port to non-GCC pre-IEC-60559 Problem reported by Arnold Robbins in: https://lists.gnu.org/r/bug-gnulib/2020-01/msg00154.html * lib/regex_internal.h (ULONG_WIDTH): Make this usable in #if. 2020-01-25 Bruno Haible c32isxdigit: Add tests. * tests/test-c32isxdigit.c: New file, based on tests/test-iswxdigit.c. * tests/test-c32isxdigit.sh: New file. * modules/c32isxdigit-tests: New file. c32isxdigit: New module. * lib/c32isxdigit.c: New file. * modules/c32isxdigit: New file. * doc/posix-functions/iswxdigit.texi: Mention the new module. 2020-01-25 Bruno Haible c32isupper: Add tests. * tests/test-c32isupper.c: New file. * tests/test-c32isupper.sh: New file. * modules/c32isupper-tests: New file. c32isupper: New module. * lib/c32isupper.c: New file. * modules/c32isupper: New file. * doc/posix-functions/iswupper.texi: Mention the new module. 2020-01-25 Bruno Haible c32isspace: Add tests. * tests/test-c32isspace.c: New file. * tests/test-c32isspace.sh: New file. * modules/c32isspace-tests: New file. c32isspace: New module. * lib/c32isspace.c: New file. * modules/c32isspace: New file. * doc/posix-functions/iswspace.texi: Mention the new module. 2020-01-25 Bruno Haible c32ispunct: Add tests. * tests/test-c32ispunct.c: New file. * tests/test-c32ispunct.sh: New file. * modules/c32ispunct-tests: New file. c32ispunct: New module. * lib/c32ispunct.c: New file. * modules/c32ispunct: New file. * doc/posix-functions/iswpunct.texi: Mention the new module. 2020-01-25 Bruno Haible c32isprint: Add tests. * tests/test-c32isprint.c: New file. * tests/test-c32isprint.sh: New file. * modules/c32isprint-tests: New file. c32isprint: New module. * lib/c32isprint.c: New file. * modules/c32isprint: New file. * doc/posix-functions/iswprint.texi: Mention the new module. 2020-01-25 Bruno Haible c32islower: Add tests. * tests/test-c32islower.c: New file. * tests/test-c32islower.sh: New file. * modules/c32islower-tests: New file. c32islower: New module. * lib/c32islower.c: New file. * modules/c32islower: New file. * doc/posix-functions/iswlower.texi: Mention the new module. 2020-01-25 Bruno Haible c32isgraph: Add tests. * tests/test-c32isgraph.c: New file. * tests/test-c32isgraph.sh: New file. * modules/c32isgraph-tests: New file. c32isgraph: New module. * lib/c32isgraph.c: New file. * modules/c32isgraph: New file. * doc/posix-functions/iswgraph.texi: Mention the new module. 2020-01-25 Bruno Haible c32isdigit: Add tests. * tests/test-c32isdigit.c: New file, based on tests/test-iswdigit.c. * tests/test-c32isdigit.sh: New file. * modules/c32isdigit-tests: New file. c32isdigit: New module. * lib/c32isdigit.c: New file. * modules/c32isdigit: New file. * doc/posix-functions/iswdigit.texi: Mention the new module. 2020-01-25 Bruno Haible c32iscntrl: Add tests. * tests/test-c32iscntrl.c: New file. * tests/test-c32iscntrl.sh: New file. * modules/c32iscntrl-tests: New file. c32iscntrl: New module. * lib/c32iscntrl.c: New file. * modules/c32iscntrl: New file. * doc/posix-functions/iswcntrl.texi: Mention the new module. 2020-01-25 Bruno Haible c32isblank: Add tests. * tests/test-c32isblank.c: New file. * tests/test-c32isblank.sh: New file. * modules/c32isblank-tests: New file. c32isblank: New module. * lib/c32isblank.c: New file. * modules/c32isblank: New file. * doc/posix-functions/iswblank.texi: Mention the new module. 2020-01-25 Bruno Haible c32isalpha: Add tests. * tests/test-c32isalpha.c: New file. * tests/test-c32isalpha.sh: New file. * modules/c32isalpha-tests: New file. c32isalpha: New module. * lib/c32isalpha.c: New file. * modules/c32isalpha: New file. * doc/posix-functions/iswalpha.texi: Mention the new module. 2020-01-25 Bruno Haible c32isalnum: Add tests. * tests/test-c32isalnum.c: New file. * tests/test-c32isalnum.sh: New file. * modules/c32isalnum-tests: New file. c32isalnum: New module. * lib/c32isalnum.c: New file. * lib/c32is-impl.h: New file. * modules/c32isalnum: New file. * doc/posix-functions/iswalnum.texi: Mention the new module. 2020-01-25 Bruno Haible uchar: Preparations for modules c32isalnum, ..., c32isxdigit. * lib/uchar.in.h (c32isalnum, c32isalpha, c32isblank, c32iscntrl, c32isdigit, c32isgraph, c32islower, c32isprint, c32ispunct, c32isspace, c32isupper, c32isxdigit): New declarations. * m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_C32ISALNUM, GNULIB_C32ISALPHA, GNULIB_C32ISBLANK, GNULIB_C32ISCNTRL, GNULIB_C32ISDIGIT, GNULIB_C32ISGRAPH, GNULIB_C32ISLOWER, GNULIB_C32ISPRINT, GNULIB_C32ISPUNCT, GNULIB_C32ISSPACE, GNULIB_C32ISUPPER, GNULIB_C32ISXDIGIT. * modules/uchar (Makefile.am): Substitute GNULIB_C32ISALNUM, GNULIB_C32ISALPHA, GNULIB_C32ISBLANK, GNULIB_C32ISCNTRL, GNULIB_C32ISDIGIT, GNULIB_C32ISGRAPH, GNULIB_C32ISLOWER, GNULIB_C32ISPRINT, GNULIB_C32ISPUNCT, GNULIB_C32ISSPACE, GNULIB_C32ISUPPER, GNULIB_C32ISXDIGIT. * tests/test-uchar-c++.cc: Test the signature of c32isalnum, c32isalpha, c32isblank, c32iscntrl, c32isdigit, c32isgraph, c32islower, c32isprint, c32ispunct, c32isspace, c32isupper, c32isxdigit. 2020-01-25 Bruno Haible mbchar, wctype: Use the corrected iswxdigit function. * modules/mbchar (Depends-on): Add iswxdigit. * modules/wctype (Depends-on): Likewise. iswxdigit: Add tests. * tests/test-iswxdigit.c: New file. * tests/test-iswxdigit.sh: New file. * modules/iswxdigit-tests: New file. iswxdigit: New module. * m4/iswxdigit.m4: New file. * lib/wctype.in.h (iswxdigit): Potentially override. (iswxdigit, rpl_iswxdigit): Test REPLACE_ISWXDIGIT, not REPLACE_ISWCNTRL. Rely on ISO C compliant definition. * lib/iswxdigit.c: New file. * m4/wctype_h.m4 (gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_ISWXDIGIT, REPLACE_ISWXDIGIT. * modules/wctype-h (Makefile.am): Substitute GNULIB_ISWXDIGIT, REPLACE_ISWXDIGIT. * modules/iswxdigit: New file. * doc/posix-functions/iswxdigit.texi: Mention the portability problem. 2020-01-25 Bruno Haible lseek: Fix the override to not undo the effects of AC_SYS_LARGEFILE. Reported by John Donoghue in . * lib/lseek.c (rpl_lseek): When AC_SYS_LARGEFILE has enabled a 64-bit off_t on mingw, invoke _lseeki64 instead of lseek. 2020-01-25 Bruno Haible iswdigit tests: Avoid test failure on Cygwin. * tests/test-iswdigit.c (for_character): If mbrtowc cannot convert the byte sequence, return 0. iswdigit: Fix test failure on native Windows. * lib/wctype.in.h (rpl_iswdigit): Rely on ISO C compliant definition. mbchar, wctype: Use the corrected iswdigit function. * modules/mbchar (Depends-on): Add iswdigit. * modules/wctype (Depends-on): Likewise. iswdigit: Add tests. * tests/test-iswdigit.c: New file. * tests/test-iswdigit.sh: New file. * modules/iswdigit-tests: New file. iswdigit: New module. * m4/iswdigit.m4: New file. * lib/wctype.in.h (iswdigit): Potentially override. (iswdigit, rpl_iswdigit): Test REPLACE_ISWDIGIT, not REPLACE_ISWCNTRL. * lib/iswdigit.c: New file. * m4/wctype_h.m4 (gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_ISWDIGIT, REPLACE_ISWDIGIT. * modules/wctype-h (Makefile.am): Substitute GNULIB_ISWDIGIT, REPLACE_ISWDIGIT. * modules/iswdigit: New file. * doc/posix-functions/iswdigit.texi: Mention the portability problem. 2020-01-25 Bruno Haible hard-locale tests: Make it easy to reuse the musl test. * m4/musl.m4: New file, extracted from modules/hard-locale-tests. * modules/hard-locale-tests (Files): Add it. (configure.ac): Invoke gl_MUSL_LIBC. 2020-01-24 Paul Eggert regex: port to Gawk on nonstandard platforms * lib/regex_internal.h (ULONG_WIDTH): Define if not already defined. This is useful for Gawk, which does not use the Gnulib stdlib-h module. Problem reported by Arnold Robbins in: https://lists.gnu.org/r/bug-gnulib/2020-01/msg00138.html 2020-01-21 Paul Eggert regex: fix bug with >=16 subexpressions * lib/regex_internal.h (struct re_backref_cache_entry): Use bitset_word_t as the type of eps_reachable_subexps_map, instead of unsigned short int. This fixes a bug I introduced to glibc in 2005-09-28T17:33:18Z!drepper@redhat.com (glibc commit 2c05d33f90861d074dc12808dafbde30f487b1a0, BZ #1302). Remove unused member 'unused'. regex: simplify definition of BITSET_WORD_BITS * config/srclist.txt: Remove regex.c, regex_internal.h temporarily. * lib/regex.c (__STDC_WANT_IEC_60559_BFP_EXT__): Define. * lib/regex_internal.h (BITSET_WORD_BITS): * modules/regex (Depends-on): Add limits-h. Simplify now that we can use ULONG_WIDTH. 2020-01-20 Bruno Haible mbrtoc32: Add note about FreeBSD 12. * m4/mbrtoc32.m4 (gl_MBRTOC32_SANITYCHECK): Guess no also on FreeBSD. * doc/posix-functions/mbrtoc32.texi: Mention that FreeBSD 12 is also affected. 2020-01-20 Bruno Haible unistr/u8-uctomb: Fix warning. Reported by Andreas Schwab in . * lib/unistr/u8-uctomb.c (FALLTHROUGH): New macro. (u8_uctomb): Add FALLTHROUGH markers. 2020-01-20 Bruno Haible lock: Fix test-once1 failure on FreeBSD 11 (regression from 2020-01-19). * lib/glthread/lock.c (glthread_once_multithreaded): New function. * lib/glthread/lock.h (glthread_once_multithreaded): New declaration. (glthread_once): Use it. 2020-01-19 Bruno Haible threadlib: Disable use of weak symbols on FreeBSD 11. Reported by Tim Rühsen in . * m4/threadlib.m4 (gl_WEAK_SYMBOLS): Require AC_CANONICAL_HOST. Test against a bug in FreeBSD 11. 2020-01-19 Bruno Haible iconv_open: Improve z/OS support. * lib/iconv_open-zos.gperf: Choose better aliases. Add mapping for ISO-8859-3, KOI8-R, KOI8-U, CP775, CP857, CP865, CP1129, CP1131, CP1257. Remove mapping for EUC-TW. 2020-01-18 Bruno Haible Rename ~~gnulib.m4 to zzgnulib.m4. Suggested by Paul Eggert. * m4/zzgnulib.m4: Renamed from m4/~~gnulib.m4. * gnulib-tool (func_get_filelist): Update. * pygnulib/GLModuleSystem.py (getFiles): Likewise. 2020-01-18 Bruno Haible doc: Update license notices. * doc/*.texi: Reference the GFDL 1.3 through a URL, rather than by reference to a section or to a "file as part of this distribution". 2020-01-18 Bruno Haible Avoid error "m4_require: circular dependency of AC_LANG_COMPILER(C)". Reported by Mats Erik Andersson in . * m4/00gnulib.m4 (gl_COMPILER_CLANG): Use _AC_COMPILE_IFELSE, not AC_EGREP_CPP. 2020-01-18 Bruno Haible Ensure Automake does not drop ~~gnulib.m4. * m4/~~gnulib.m4 (gl_ZZGNULIB): New macro. * m4/gnulib-common.m4 (gl_COMMON): Require it. 2020-01-18 Bruno Haible Fix major regression from 2020-01-10. Reported by Paul Eggert in . * m4/00gnulib.m4 (gl_COMPILER_CLANG, gl_COMPILER_PREPARE_CHECK_DECL): Don't AC_REQUIRE anything. (gl_COMPILER_PREPARE_CHECK_DECL): Define through AC_DEFUN, not AC_DEFUN_ONCE. Use _AC_COMPILE_IFELSE, not AC_COMPILE_IFELSE. (_AC_CHECK_DECL_BODY): If ac_compile_for_check_decl has not been set, use ac_compile instead. (AC_CHECK_DECL): Remove override. * m4/~~gnulib.m4: New file. * gnulib-tool (func_get_filelist): Add also ~~gnulib.m4. * pygnulib/GLModuleSystem.py (getFiles): Likewise. 2020-01-17 Bruno Haible Paul Eggert glob: Fix use-after-free bug. Reported by Tim Rühsen in . * lib/glob.c (__glob): Delay freeing dirname until after the use of end_name. 2020-01-16 Siddhesh Poyarekar vcs-to-changelog: Fix parsing of fndecl without args. * build-aux/vcstocl/frontend_c.py (FNDECL_RE): Fix regular expression for empty arguments. 2020-01-16 Siddhesh Poyarekar vcs-to-changelog: Add documentation. * doc/vcs-to-changelog.texi: New file. * doc/gnulib.texi (Build Infrastructure Modules): Add vcs-to-changelog section. 2020-01-16 Siddhesh Poyarekar vcs-to-changelog: Allow loading of custom quirks file. * build-aux/vcs_to_changelog.py: New commandline option -q. 2020-01-16 Siddhesh Poyarekar vcs-to-changelog: Fix formatting of ChangeLog output. * build-aux/vcstocl/vcs_git.py (list_changes): Add newline in print output. 2020-01-16 Siddhesh Poyarekar vcs-to-changelog: Drop python3 shebang from frontend_c.py. Reported in . * build-aux/vcstocl/frontend_c.py: Remove shebang. 2020-01-15 Simon Josefsson crypto/gc-pbkdf2: New module. * MODULES.html.sh (func_all_modules): Add gc-pbkdf2. * NEWS: Deprecated gc-pbkdf2-sha1 in favor of gc-pbkdf2. * lib/gc-pbkdf2.c: New file. * lib/gc-pbkdf2-sha1.c: Use new interface. * lib/gc.h (GC_MAX_DIGEST_SIZE, gc_pbkdf2_hmac): Add. * modules/crypto/gc-pbkdf2: New file. * modules/crypto/gc-pbkdf2-tests: New file. * tests/test-gc-pbkdf2.c: New file. 2020-01-12 Bruno Haible c32stombs: Add tests. * tests/test-c32stombs.c: New file, based on tests/test-c32srtombs.c. * tests/test-c32stombs-1.sh: New file, based on tests/test-c32srtombs-1.sh. * tests/test-c32stombs-2.sh: New file, based on tests/test-c32srtombs-2.sh. * tests/test-c32stombs-3.sh: New file, based on tests/test-c32srtombs-3.sh. * tests/test-c32stombs-4.sh: New file, based on tests/test-c32srtombs-4.sh. * modules/c32stombs-tests: New file, based on modules/c32srtombs-tests. c32stombs: New module. * lib/uchar.in.h (c32stombs): New declaration. * lib/c32stombs.c: New file. * m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_C32STOMBS. * modules/uchar (Makefile.am): Substitute GNULIB_C32STOMBS. * modules/c32stombs: New file. * tests/test-uchar-c++.cc: Test the signature of c32stombs. * doc/posix-functions/wcstombs.texi: Mention the new module. 2020-01-11 Jim Meyering perl: require the "warnings" module * m4/perl.m4: Also "use warnings", so we reject the perl found on at least one IRIX 6.5 system. Reported by Bruno Haible in https://lists.gnu.org/r/sed-devel/2020-01/msg00004.html 2020-01-10 Bruno Haible Fix major regression from 2020-01-04. Reported by Mats Erik Andersson in . * m4/00gnulib.m4 (gl_COMPILER_PREPARE_CHECK_DECL): Define through AC_DEFUN_ONCE. (AC_CHECK_DECL): Invoke, not require, it. 2020-01-10 Bruno Haible c32snrtombs: Add tests. * tests/test-c32snrtombs.c: New file, based on tests/test-wcsnrtombs.c. * tests/test-c32snrtombs-1.sh: New file, based on tests/test-wcsnrtombs1.sh. * tests/test-c32snrtombs-2.sh: New file, based on tests/test-wcsnrtombs2.sh. * tests/test-c32snrtombs-3.sh: New file, based on tests/test-wcsnrtombs3.sh. * tests/test-c32snrtombs-4.sh: New file, based on tests/test-wcsnrtombs4.sh. * modules/c32snrtombs-tests: New file, based on modules/wcsnrtombs-tests. c32snrtombs: New module. * lib/uchar.in.h (c32snrtombs): New declaration. * lib/wcsnrtombs-impl.h: Parameterize: Use macros FUNC, SCHAR_T, INTERNAL_STATE, WCRTOMB. * lib/wcsnrtombs.c (FUNC, SCHAR_T, INTERNAL_STATE, WCRTOMB): New macros. * lib/c32snrtombs.c: New file. * m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_C32SNRTOMBS. * modules/uchar (Makefile.am): Substitute GNULIB_C32SNRTOMBS. * modules/c32snrtombs: New file. * tests/test-uchar-c++.cc: Test the signature of c32snrtombs. * doc/posix-functions/wcsnrtombs.texi: Mention the new module. 2020-01-09 Bruno Haible c32srtombs: Add tests. * tests/test-c32srtombs.c: New file, based on tests/test-wcsrtombs.c. * tests/test-c32srtombs-1.sh: New file, based on tests/test-wcsrtombs1.sh. * tests/test-c32srtombs-2.sh: New file, based on tests/test-wcsrtombs2.sh. * tests/test-c32srtombs-3.sh: New file, based on tests/test-wcsrtombs3.sh. * tests/test-c32srtombs-4.sh: New file, based on tests/test-wcsrtombs4.sh. * modules/c32srtombs-tests: New file, based on modules/wcsrtombs-tests. c32srtombs: New module. * lib/uchar.in.h (c32srtombs): New declaration. * lib/wcsrtombs-impl.h: Parameterize: Use macros FUNC, SCHAR_T, INTERNAL_STATE, WCRTOMB. * lib/wcsrtombs.c (FUNC, SCHAR_T, INTERNAL_STATE, WCRTOMB): New macros. * lib/c32srtombs.c: New file. * lib/c32srtombs-state.c: New file, based on lib/wcsrtombs-state.c. * m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_C32SRTOMBS. * modules/uchar (Makefile.am): Substitute GNULIB_C32SRTOMBS. * modules/c32srtombs: New file. * tests/test-uchar-c++.cc: Test the signature of c32srtombs. * doc/posix-functions/wcsrtombs.texi: Mention the new module. 2020-01-08 Bruno Haible c32tob: Make consistent with mbrtoc32. * lib/c32tob.c: Include , , . (c32tob): If the char32_t encoding and the wchar_t encoding may differ, use c32rtomb, not wctob. * modules/c32tob (Files): Add m4/mbrtoc32.m4. (Depends-on): Add c32rtomb. (configure.ac): Require gl_MBRTOC32_SANITYCHECK. 2020-01-08 Bruno Haible c32rtomb: Add tests. * tests/test-c32rtomb.c: New file, based on tests/test-wcrtomb.c. * tests/test-c32rtomb.sh: New file, based on tests/test-wcrtomb.sh. * tests/test-c32rtomb-w32.c: New file, based on tests/test-wcrtomb-w32.c. * tests/test-c32rtomb-w32-1.sh: New file, based on tests/test-wcrtomb-w32-1.sh. * tests/test-c32rtomb-w32-2.sh: New file, based on tests/test-wcrtomb-w32-2.sh. * tests/test-c32rtomb-w32-3.sh: New file, based on tests/test-wcrtomb-w32-3.sh. * tests/test-c32rtomb-w32-4.sh: New file, based on tests/test-wcrtomb-w32-4.sh. * tests/test-c32rtomb-w32-5.sh: New file, based on tests/test-wcrtomb-w32-5.sh. * tests/test-c32rtomb-w32-6.sh: New file, based on tests/test-wcrtomb-w32-6.sh. * tests/test-c32rtomb-w32-7.sh: New file, based on tests/test-wcrtomb-w32-7.sh. * modules/c32rtomb-tests: New file. c32rtomb: New module. * lib/uchar.in.h (c32rtomb): New declaration. * lib/c32rtomb.c: New file, based on lib/unistr/u8-uctomb-aux.c. * m4/c32rtomb.m4: New file. * m4/uchar.m4 (gl_UCHAR_H): Test whether c32rtomb is declared. (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_C32RTOMB, HAVE_C32RTOMB, REPLACE_C32RTOMB. * modules/uchar (Makefile.am): Substitute GNULIB_C32RTOMB, HAVE_C32RTOMB, REPLACE_C32RTOMB. * modules/c32rtomb: New file. * tests/test-uchar-c++.cc: Test the signature of c32rtomb. * doc/posix-functions/c32rtomb.texi: Document the new module. * doc/posix-functions/wcrtomb.texi: Mention the new module. 2020-01-08 Bruno Haible mbrtoc32: Use the system's mbrtoc32 if it exists and basically works. * m4/mbrtoc32.m4 (gl_MBRTOC32_SANITYCHECK): New macro. (gl_FUNC_MBRTOC32): Require it. Set REPLACE_MBRTOC32 if mbrtoc32 exists but is not working. * lib/mbrtoc32.c: Include hard-locale.h, . (mbrtoc32): If the char32_t encoding and the wchar_t encoding may differ, use the system's mbrtoc32, adding workarounds. * modules/mbrtoc32 (Depends-on): Add hard-locale. * doc/posix-functions/mbrtoc32.texi: Mention the Solaris and native Windows problem. * lib/btoc32.c: Include , . (btoc32): If the char32_t encoding and the wchar_t encoding may differ, use mbrtoc32, not btowc. * modules/btoc32 (Depends-on): Add mbrtoc32. * lib/mbsrtoc32s.c (mbsrtoc32s): If the char32_t encoding and the wchar_t encoding may differ, use mbrtoc32, not mbsrtowcs. * modules/mbsrtoc32s (Depends-on): Update conditions. (configure.ac): Compile mbsrtoc32s-state.c unconditionally. * lib/mbsnrtoc32s.c (mbsnrtoc32s): If the char32_t encoding and the wchar_t encoding may differ, use mbrtoc32, not mbsnrtowcs. * modules/mbsnrtoc32s (Depends-on): Update conditions. (configure.ac): Compile mbsrtoc32s-state.c unconditionally. 2020-01-07 Bruno Haible wcrtomb: Make multithread-safe, except possibly on IRIX. * m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Don't set REPLACE_WCRTOMB to 1 when REPLACE_MBSTATE_T is set. Define WCRTOMB_C_LOCALE_BUG and WCRTOMB_RETVAL_BUG. * lib/wcrtomb.c (wcrtomb): Use original wcrtomb whenever available. Use wctomb only on IRIX. 2020-01-05 Jim Meyering tests: skip thread-using tests when threading is disabled sed's configure.ac specifies gl_DISABLE_THREADS, and that caused three thread-using gnulib tests to fail. Add an #if-guarded exit (77) to each of those, so they are skipped in this case. * tests/test-nl_langinfo-mt.c (main): Exit 77 when threading is disabled. * tests/test-setlocale_null-mt-all.c (main): Likewise. * tests/test-setlocale_null-mt-one.c (main): Likewise. 2020-01-05 Bruno Haible tests: Avoid GCC over-optimization caused by _GL_ARG_NONNULL attributes. Reported by Jim Meyering in . * lib/stdlib.in.h (GNULIB_defined_canonicalize_file_name): New macro. (GNULIB_defined_ptsname_r): New macro. * tests/test-canonicalize.c (_GL_ARG_NONNULL): Define to empty. (main): Disable the NULL argument test if canonicalize_file_name does not come from gnulib. * tests/test-canonicalize-lgpl.c (_GL_ARG_NONNULL): Define to empty. (main): Disable the NULL argument test if canonicalize_file_name does not come from gnulib. * tests/test-ptsname_r.c (_GL_ARG_NONNULL): Define to empty. (test_errors): Disable the NULL argument test if ptsname_r does not come from gnulib. 2020-01-04 Jim Meyering update-copyright: reenable its always-skipped test * tests/test-update-copyright.sh: Restore the "-pi" options removed on 2019-06-15. Without those, an internal preliminary test would fail, causing this test always to be skipped. Verify that the test is now run and passes via this: ./gnulib-tool --test --dir /tmp/x --with-tests update-copyright 2020-01-05 Bruno Haible mbstoc32s: Add tests. * tests/test-mbstoc32s.c: New file, based on tests/test-mbsrtoc32s.c. * tests/test-mbstoc32s-1.sh: New file, based on tests/test-mbsrtoc32s-1.sh. * tests/test-mbstoc32s-2.sh: New file, based on tests/test-mbsrtoc32s-2.sh. * tests/test-mbstoc32s-3.sh: New file, based on tests/test-mbsrtoc32s-3.sh. * tests/test-mbstoc32s-4.sh: New file, based on tests/test-mbsrtoc32s-4.sh. * modules/mbstoc32s-tests: New file, based on modules/mbsrtoc32s-tests. mbstoc32s: New module. * lib/uchar.in.h (mbstoc32s): New declaration. * lib/mbstoc32s.c: New file. * m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_MBSTOC32S. * modules/uchar (Makefile.am): Substitute GNULIB_MBSTOC32S. * modules/mbstoc32s: New file. * tests/test-uchar-c++.cc: Test the signature of mbstoc32s. * doc/posix-functions/mbstowcs.texi: Mention the new module. 2020-01-05 Bruno Haible Tweak recently added tests. * tests/test-mbrtoc32.c: Make signature consistent with uchar.in.h. * tests/test-mbsrtoc32s.c: Likewise. * tests/test-mbsnrtoc32s.c: Likewise. 2020-01-04 Bruno Haible mbsnrtoc32s: Add tests. * tests/test-mbsnrtoc32s.c: New file, based on tests/test-mbsnrtowcs.c. * tests/test-mbsnrtoc32s-1.sh: New file, based on tests/test-mbsnrtowcs1.sh. * tests/test-mbsnrtoc32s-2.sh: New file, based on tests/test-mbsnrtowcs2.sh. * tests/test-mbsnrtoc32s-3.sh: New file, based on tests/test-mbsnrtowcs3.sh. * tests/test-mbsnrtoc32s-4.sh: New file, based on tests/test-mbsnrtowcs4.sh. * modules/mbsnrtoc32s-tests: New file, based on modules/mbsnrtowcs-tests. mbsnrtoc32s: New module. * lib/uchar.in.h (mbsnrtoc32s): New declaration. * lib/mbsnrtowcs-impl.h: Parameterize: Use macros FUNC, DCHAR_T, INTERNAL_STATE, MBRTOWC. * lib/mbsnrtowcs.c (FUNC, DCHAR_T, INTERNAL_STATE, MBRTOWC): New macros. * lib/mbsnrtoc32s.c: New file. * m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_MBSNRTOC32S. * modules/uchar (Makefile.am): Substitute GNULIB_MBSNRTOC32S. * modules/mbsnrtoc32s: New file. * tests/test-uchar-c++.cc: Test the signature of mbsnrtoc32s. * doc/posix-functions/mbsnrtowcs.texi: Mention the new module. 2020-01-04 Bruno Haible mbsrtoc32s tests: Enhance test. * tests/test-mbsrtoc32s.c (main): Include a non-BMP character in the test strings for UTF-8 and GB18030. 2020-01-04 Bruno Haible mbsrtoc32s: Fix bug. * modules/mbsrtoc32s (configure.ac): Require gl_UCHAR_H, to make sure that SMALL_WCHAR_T is defined. 2020-01-04 Bruno Haible mbsrtoc32s: Add tests. * tests/test-mbsrtoc32s.c: New file, based on tests/test-mbsrtowcs.c. * tests/test-mbsrtoc32s-1.sh: New file, based on tests/test-mbsrtowcs1.sh. * tests/test-mbsrtoc32s-2.sh: New file, based on tests/test-mbsrtowcs2.sh. * tests/test-mbsrtoc32s-3.sh: New file, based on tests/test-mbsrtowcs3.sh. * tests/test-mbsrtoc32s-4.sh: New file, based on tests/test-mbsrtowcs4.sh. * modules/mbsrtoc32s-tests: New file, based on modules/mbsrtowcs-tests. mbsrtoc32s: New module. * lib/uchar.in.h (mbsrtoc32s): New declaration. * lib/mbsrtowcs-impl.h: Parameterize: Use macros FUNC, DCHAR_T, INTERNAL_STATE, MBRTOWC. * lib/mbsrtowcs.c (FUNC, DCHAR_T, INTERNAL_STATE, MBRTOWC): New macros. * lib/mbsrtoc32s.c: New file. * lib/mbsrtoc32s-state.c: New file, based on lib/mbsrtowcs-state.c. * m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_MBSRTOC32S. * modules/uchar (Makefile.am): Substitute GNULIB_MBSRTOC32S. * modules/mbsrtoc32s: New file. * tests/test-uchar-c++.cc: Test the signature of mbsrtoc32s. * doc/posix-functions/mbsrtowcs.texi: Mention the new module. 2020-01-04 Bruno Haible mbrtowc, mbrtoc32: Tighten dependendies. * modules/mbrtowc (Depends-on): Disable hard-locale, mbsinit if REPLACE_MBSTATE_T is 1. (configure.ac): Don't compile lc-charset-dispatch.c and mbtowc-lock.c if REPLACE_MBSTATE_T is 0. * modules/mbrtoc32 (Depends-on): Remove hard-locale, mbsinit. Disable mbrtowc dependency if REPLACE_MBSTATE_T is 1. (configure.ac): Don't compile lc-charset-dispatch.c and mbtowc-lock.c if REPLACE_MBSTATE_T is 0. 2020-01-04 Bruno Haible uchar: Decide about _GL_LARGE_CHAR32_T at configure time. * m4/uchar.m4 (gl_UCHAR_H): Set SMALL_WCHAR_T. * modules/uchar (Files): Add stdint.m4. (Makefile.am): Substitute SMALL_WCHAR_T. * lib/uchar.in.h (_GL_LARGE_CHAR32_T): Rely on SMALL_WCHAR_T. 2020-01-04 Bruno Haible Fix AC_CHECK_DECL so that it deactivates clang's built-in declarations. Reported by Martin Storsjö in . * m4/00gnulib.m4 (gl_COMPILER_CLANG, gl_COMPILER_PREPARE_CHECK_DECL): New macros. (_AC_CHECK_DECL_BODY, AC_CHECK_DECL): Augment. 2020-01-04 Bruno Haible btoc32: Add tests. * tests/test-btoc32.c: New file, based on tests/test-btowc.c. * tests/test-btoc32-1.sh: New file, based on tests/test-btowc1.sh. * tests/test-btoc32-2.sh: New file, based on tests/test-btowc2.sh. * modules/btoc32-tests: New file, based on modules/btowc-tests. btoc32: New module. * lib/uchar.in.h (btoc32): New declaration. * lib/btoc32.c: New file. * m4/uchar.m4 (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_BTOC32. * modules/uchar (Makefile.am): Substitute GNULIB_BTOC32. * modules/btoc32: New file. * tests/test-uchar-c++.cc: Test the signature of btoc32. * doc/posix-functions/btowc.texi: Mention the new module. 2020-01-03 Bruno Haible uchar tests: Avoid compilation error with HP cc. * tests/test-uchar.c: Disable a test when HP cc is in use. 2020-01-03 Bruno Haible mbrtoc32: Add tests. * tests/test-mbrtoc32.c: New file, based on tests/test-mbrtowc.c. * tests/test-mbrtoc32-1.sh: New file, based on tests/test-mbrtowc1.sh. * tests/test-mbrtoc32-2.sh: New file, based on tests/test-mbrtowc2.sh. * tests/test-mbrtoc32-3.sh: New file, based on tests/test-mbrtowc3.sh. * tests/test-mbrtoc32-4.sh: New file, based on tests/test-mbrtowc4.sh. * tests/test-mbrtoc32-5.sh: New file, based on tests/test-mbrtowc5.sh. * tests/test-mbrtoc32-w32.c: New file, based on tests/test-mbrtowc-w32.c. * tests/test-mbrtoc32-w32-1.sh: New file, based on tests/test-mbrtowc-w32-1.sh. * tests/test-mbrtoc32-w32-2.sh: New file, based on tests/test-mbrtowc-w32-2.sh. * tests/test-mbrtoc32-w32-3.sh: New file, based on tests/test-mbrtowc-w32-3.sh. * tests/test-mbrtoc32-w32-4.sh: New file, based on tests/test-mbrtowc-w32-4.sh. * tests/test-mbrtoc32-w32-5.sh: New file, based on tests/test-mbrtowc-w32-5.sh. * tests/test-mbrtoc32-w32-6.sh: New file, based on tests/test-mbrtowc-w32-6.sh. * tests/test-mbrtoc32-w32-7.sh: New file, based on tests/test-mbrtowc-w32-7.sh. * modules/mbrtoc32-tests: New file, based on modules/mbrtowc-tests. mbrtoc32: New module. * lib/uchar.in.h (mbrtoc32): New declaration. * lib/mbrtoc32.c: New file, based on lib/mbrtowc.c. * m4/mbrtoc32.m4: New file, based on m4/mbrtowc.m4. * m4/uchar.m4 (gl_UCHAR_H): Test whether mbrtoc32 is declared. (gl_UCHAR_H_DEFAULTS): Initialize GNULIB_MBRTOC32, HAVE_MBRTOC32, REPLACE_MBRTOC32. * modules/uchar (Makefile.am): Substitute GNULIB_MBRTOC32, HAVE_MBRTOC32, REPLACE_MBRTOC32. * modules/mbrtoc32: New file, based on modules/mbrtowc. * tests/test-uchar-c++.cc (mbrtoc32): Verify the signature. * modules/uchar-c++-tests (Makefile.am): Link test-uchar-c++ with $(LIB_MBRTOWC). * doc/posix-functions/mbrtoc32.texi: Document the new module. * doc/posix-functions/mbrtowc.texi: Mention the new module. 2020-01-03 Bruno Haible mbrtowc: Refactor to share code with mbrtoc32. * lib/mbrtowc-impl.h: New file, extracted from lib/mbrtowc.c. * lib/mbrtowc-impl-utf8.h: Likewise. * lib/mbrtowc.c (mbrtowc): Define macro FITS_IN_CHAR_TYPE. Include mbrtowc-impl.h. * modules/mbrtowc (Files): Add the new files. 2020-01-03 Jim Meyering doc: fix time.texi wording * doc/posix-headers/time.texi (time.h): Typo. 2020-01-03 Bruno Haible mbrtowc: Refactor locale charset dispatching. * lib/lc-charset-dispatch.h: New file, extracted from lib/mbrtowc.c. * lib/lc-charset-dispatch.c: New file, extracted from lib/mbrtowc.c. * lib/mbrtowc.c: Include lc-charset-dispatch.h. Don't include localcharset.h, streq.h. (enc_t): Remove type. (locale_enc): Remove function. (cached_locale_enc): Remove variable. (locale_enc_cached): Remove function. (mbrtowc): Invoke locale_encoding_classification. * m4/mbrtowc.m4 (gl_PREREQ_MBRTOWC): Update comment. * modules/mbrtowc (Files): Add lc-charset-dispatch.h, lc-charset-dispatch.c. (configure.ac): Arrange to compile lc-charset-dispatch.c. 2020-01-03 Paul Eggert doc: mention 32-bit time_t issue * doc/posix-headers/sys_stat.texi (sys/stat.h): * doc/posix-headers/time.texi (time.h): Mention 2038. 2020-01-03 Bruno Haible mbrtowc: Ensure the mbtowc_lock is unique. * lib/mbtowc-lock.c: New file, based on lib/setlocale-lock.c. * lib/mbtowc-lock.h: New file, extracted from lib/mbrtowc.c and lib/setlocale_null.c. * lib/mbrtowc.c: Include headers needed for mbtowc-lock.h. Don't include glthread/lock.h. Include mbtowc-lock.h. (mbtowc_lock): Remove declaration. (mbrtowc): Use mbtowc_with_lock. * m4/mbrtowc.m4 (gl_FUNC_MBRTOWC): Require gl_PTHREADLIB. Check for threads.h. Set LIB_MBRTOWC. (gl_PREREQ_MBTOWC_LOCK): New macro. * modules/mbrtowc (Files): Add lib/mbtowc-lock.h, lib/mbtowc-lock.c, lib/windows-initguard.h, m4/threadlib.m4, m4/visibility.m4. (Depends-on): Remove lock. (configure.ac): Arrange to compile mbtowc-lock.c. (Link): Mention $(LIB_MBRTOWC) instead of $(LIBTHREAD). * modules/acl (Link): Likewise. * modules/argmatch (Link): Likewise. * modules/backup-rename (Link): Likewise. * modules/backupfile (Link): Likewise. * modules/closein (Link): Likewise. * modules/closeout (Link): Likewise. * modules/copy-file (Link): Likewise. * modules/csharpcomp (Link): Likewise. * modules/csharpexec (Link): Likewise. * modules/dfa (Link): Likewise. * modules/exclude (Link): Likewise. * modules/fnmatch (Link): Likewise. * modules/fnmatch-gnu (Link): Likewise. * modules/fnmatch-posix (Link): Likewise. * modules/glob (Link): Likewise. * modules/human (Link): Likewise. * modules/javacomp (Link): Likewise. * modules/javaexec (Link): Likewise. * modules/javaversion (Link): Likewise. * modules/mbfile (Link): Likewise. * modules/mbiter (Link): Likewise. * modules/mbmemcasecmp (Link): Likewise. * modules/mbmemcasecoll (Link): Likewise. * modules/mbrlen (Link): Likewise. * modules/mbscasecmp (Link): Likewise. * modules/mbscasestr (Link): Likewise. * modules/mbschr (Link): Likewise. * modules/mbscspn (Link): Likewise. * modules/mbsinit (Link): Likewise. * modules/mbslen (Link): Likewise. * modules/mbsncasecmp (Link): Likewise. * modules/mbsnlen (Link): Likewise. * modules/mbsnrtowcs (Link): Likewise. * modules/mbspbrk (Link): Likewise. * modules/mbspcasecmp (Link): Likewise. * modules/mbsrchr (Link): Likewise. * modules/mbsrtowcs (Link): Likewise. * modules/mbssep (Link): Likewise. * modules/mbsspn (Link): Likewise. * modules/mbsstr (Link): Likewise. * modules/mbstok_r (Link): Likewise. * modules/mbswidth (Link): Likewise. * modules/mbuiter (Link): Likewise. * modules/mkdir-p (Link): Likewise. * modules/propername (Link): Likewise. * modules/quote (Link): Likewise. * modules/quotearg (Link): Likewise. * modules/quotearg-simple (Link): Likewise. * modules/regex-quote (Link): Likewise. * modules/rpmatch (Link): Likewise. * modules/sh-quote (Link): Likewise. * modules/system-quote (Link): Likewise. * modules/trim (Link): Likewise. * modules/unistdio/ulc-asnprintf (Link): Likewise. * modules/unistdio/ulc-fprintf (Link): Likewise. * modules/unistdio/ulc-vasnprintf (Link): Likewise. * modules/unistdio/ulc-vasprintf (Link): Likewise. * modules/unistdio/ulc-vfprintf (Link): Likewise. * modules/unistdio/ulc-vsnprintf (Link): Likewise. * modules/unistdio/ulc-vsprintf (Link): Likewise. * modules/xfreopen (Link): Likewise. * modules/xmemcoll (Link): Likewise. * modules/yesno (Link): Likewise. * modules/regex (Link): Add $(LIB_MBRTOWC). * modules/acl-tests (Makefile.am): Link the programs with $(LIB_MBRTOWC) instead of $(LIBTHREAD). * modules/argmatch-tests (Makefile.am): Likewise. * modules/closein-tests (Makefile.am): Likewise. * modules/copy-file-tests (Makefile.am): Likewise. * modules/dfa-tests (Makefile.am): Likewise. * modules/fnmatch-tests (Makefile.am): Likewise. * modules/glob-tests (Makefile.am): Likewise. * modules/mbmemcasecmp-tests (Makefile.am): Likewise. * modules/mbmemcasecoll-tests (Makefile.am): Likewise. * modules/mbrtowc-tests (Makefile.am): Likewise. * modules/mbscasecmp-tests (Makefile.am): Likewise. * modules/mbscasestr-tests (Makefile.am): Likewise. * modules/mbschr-tests (Makefile.am): Likewise. * modules/mbscspn-tests (Makefile.am): Likewise. * modules/mbsinit-tests (Makefile.am): Likewise. * modules/mbsncasecmp-tests (Makefile.am): Likewise. * modules/mbsnrtowcs-tests (Makefile.am): Likewise. * modules/mbspbrk-tests (Makefile.am): Likewise. * modules/mbspcasecmp-tests (Makefile.am): Likewise. * modules/mbsrchr-tests (Makefile.am): Likewise. * modules/mbsrtowcs-tests (Makefile.am): Likewise. * modules/mbsspn-tests (Makefile.am): Likewise. * modules/mbsstr-tests (Makefile.am): Likewise. * modules/quotearg-simple-tests (Makefile.am): Likewise. * modules/quotearg-tests (Makefile.am): Likewise. * modules/readtokens-tests (Makefile.am): Likewise. * modules/sh-quote-tests (Makefile.am): Likewise. * modules/system-quote-tests (Makefile.am): Likewise. * modules/unistdio/ulc-asnprintf-tests (Makefile.am): Likewise. * modules/unistdio/ulc-vasnprintf-tests (Makefile.am): Likewise. * modules/unistdio/ulc-vasprintf-tests (Makefile.am): Likewise. * modules/unistdio/ulc-vsnprintf-tests (Makefile.am): Likewise. * modules/unistdio/ulc-vsprintf-tests (Makefile.am): Likewise. * modules/yesno-tests (Makefile.am): Likewise. * modules/exclude-tests (Makefile.am): Link the programs with $(LIB_MBRTOWC). * modules/regex-tests (Makefile.am): Likewise. * modules/regex-quote-tests (Makefile.am): Likewise. 2020-01-03 Bruno Haible getopt-posix: Fix compilation failure in testdirs. * lib/unistd.in.h: Include and only when the gnulib module 'getopt-posix' is enabled. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GETOPT_POSIX. * modules/getopt-posix (configure.ac): Set GNULIB_GETOPT_POSIX as a module indicator. * modules/unistd (Makefile.am): Substitute GNULIB_GETOPT_POSIX. 2020-01-03 Bruno Haible doc: Mention the 64-bit inode number problem. * m4/largefile.m4 (AC_SYS_LARGEFILE): Mention that this macro fixes the 64-bit inode number problem. * doc/posix-functions/stat.texi: Mention that this module fixes the 64-bit inode number problem. * doc/posix-functions/lstat.texi: Likewise. * doc/posix-functions/fstat.texi: Likewise. * doc/posix-functions/readdir.texi: Add more details. * doc/posix-functions/readdir_r.texi: Likewise. 2020-01-02 Bruno Haible wcrtomb: Add more tests. * tests/test-wcrtomb-w32.c: Include localcharset.h. (test_one_locale): For the GB18030 and UTF-8 tests, verify that locale_charset() returns the expected value; otherwise, skip the test. * tests/test-wcrtomb-w32-6.sh: Remove old comment. * tests/test-wcrtomb-w32-7.sh: Likewise. * modules/wcrtomb-tests (Files): Add these files. (Depends-on): Add localcharset. (TESTS): Add test-wcrtomb-w32-6.sh, test-wcrtomb-w32-7.sh. 2020-01-02 Bruno Haible mbrtowc: Add more tests. * tests/test-mbrtowc-w32.c: Include localcharset.h. (test_one_locale): For the GB18030 and UTF-8 tests, verify that locale_charset() returns the expected value; otherwise, skip the test. * tests/test-mbrtowc-w32-6.sh: Remove old comment. * tests/test-mbrtowc-w32-7.sh: Likewise. * modules/mbrtowc-tests (Files): Add these files. (Depends-on): Add localcharset. (TESTS): Add test-mbrtowc-w32-6.sh, test-mbrtowc-w32-7.sh. 2020-01-02 Bruno Haible mbrtowc: Fix test failures on MSVC (regression by previous commit). * m4/mbrtowc.m4 (gl_MBRTOWC_STORES_INCOMPLETE): New macro. (gl_FUNC_MBRTOWC): Invoke it. Define MBRTOWC_STORES_INCOMPLETE_BUG. * lib/mbrtowc.c (rpl_mbrtowc): Add workaround for MBRTOWC_STORES_INCOMPLETE_BUG. * doc/posix-functions/mbrtowc.texi: Mention the MSVC bug. 2020-01-02 Paul Eggert doc: mention glibc bug 24269 * doc/regex.texi (Back-reference Operator): Add glibc bug 24269. Reformat slightly so that it looks nicer in the Grep manual. 2020-01-02 Bruno Haible mbrtowc: Don't replace mbstate_t on MSVC. * m4/mbrtowc.m4 (gl_MBSTATE_T_BROKEN): Require AC_CANONICAL_HOST. Ignore a missing mbsinit function on native Windows. * lib/wchar.in.h (GNULIB_defined_mbstate_t): Likewise. * m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Strengthen the test, to detect an MSVC bug. * doc/posix-functions/wcrtomb.texi: Mention the MSVC bug. 2020-01-02 Bruno Haible setlocale-null: Avoid crashing the MSVC linker. * lib/setlocale-lock.c: Don't define IMP(gl_get_setlocale_null_lock) on MSVC. 2020-01-02 Bruno Haible wchar: Make the HP-UX workaround work on HP-UX 11.31. * modules/wchar (Depends-on): Add inttypes-incomplete. * lib/inttypes.in.h: Define _GL_FINISHED_INCLUDING_SYSTEM_INTTYPES_H. * lib/wchar.in.h: Test _GL_FINISHED_INCLUDING_SYSTEM_INTTYPES_H instead of strtoimax. 2020-01-02 Bruno Haible mbrtowc: Fix compilation error on IRIX (regression from 2019-12-26). * lib/mbrtowc.c: Include . * modules/mbrtowc (Depends-on): Add stdint. 2020-01-01 Pádraig Brady md5, sha1, sha256, sha512: support --with-openssl=auto-gpl-compat * m4/gl-openssl.m4: Add a new "auto-gpl-compat" mode, which will auto enable use of openssl, only for >= version 3, which is newly licensed under the Apache Software License. 2020-01-01 Bruno Haible mbrtowc: Include function name in macro names. * m4/mbrtowc.m4 (gl_FUNC_MBRTOWC): Define MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ, not C_LOCALE_MAYBE_EILSEQ. (gl_MBRTOWC_C_LOCALE): Change cache variable name to gl_cv_func_mbrtowc_C_locale_sans_EILSEQ. * lib/mbrtowc.c: Test MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ, not C_LOCALE_MAYBE_EILSEQ. 2020-01-01 Bruno Haible c32tob: New module. * lib/uchar.in.h (_GL_LARGE_CHAR32_T): New macro. (c32tob): New declaration. * lib/c32tob.c: New file. * m4/uchar.m4 (gl_UCHAR_MODULE_INDICATOR, gl_UCHAR_H_DEFAULTS): New macros. (gl_UCHAR_H): Require gl_UCHAR_H_DEFAULTS. * modules/uchar (Depends-on): Add snippet/c++defs. (Makefile.am): Include c++defs.h and substitute GNULIB_C32TOB in uchar.h. * modules/c32tob: New file. * tests/test-uchar.c: Verify that _GL_LARGE_CHAR32_T is correctly defined. * tests/test-uchar-c++.cc: Include signature.h. Test the signature of c32tob. * modules/uchar-c++-tests (Files): Add tests/signature.h. * doc/posix-functions/wctob.texi: Mention the new module. 2020-01-01 Bruno Haible locale C++ tests: Fix link error on AIX (regression from 2019-12-18). * modules/locale-c++-tests (Makefile.am): Link test-locale-c++ with $(LIB_SETLOCALE). 2020-01-01 Bruno Haible hard-locale tests: Fix a conflict with the C++ tests. * modules/hard-locale-tests (Makefile.am): Build a program named 'current-locale', not 'locale'. 2020-01-01 Bruno Haible doc: Update documentation about wchar_t. * doc/*/*wc*.texi: Clarify that 64-bit AIX does not have a too small wchar_t type. 2020-01-01 Bruno Haible mbrtowc tests: Fix typos. * tests/test-mbrtowc.c (main): Fix typo. * tests/test-mbrtowc-w32.c (test_one_locale): Likewise. 2019-12-31 Paul Eggert maint: update copyright notices Before doing the following changes done by hand, I also ran ‘make update-copyright’ and ‘config/srclist-update uchar: Add C++ tests. * tests/test-uchar-c++.cc: New file. * tests/test-uchar-c++2.cc: New file. * modules/uchar-c++-tests: New file. uchar: Add tests. * tests/test-uchar.c: New file. * modules/uchar-tests: New file. uchar: New module. * lib/uchar.in.h: New file. * m4/uchar.m4: New file. * modules/uchar: New file. * doc/posix-headers/uchar.texi: Mention the new module. 2019-12-30 Jim Meyering localeinfo: ->simple would be wrong for LC_ALL=C That would lead to using unnecessary and expensive code paths in dfa.c. * lib/localeinfo.c (using_simple_locale): Fix recently-introduced logic error that would have made grep many times slower in the C locale. With this change, and a file created like this: yes 00 | head -10000000 > in Running grep as follows becomes more than 40 times faster: LC_ALL=C grep -Fw 0 in 2019-12-30 Paul Eggert doc: document trouble with back-references * doc/regex.texi (Back-reference Operator): Mention bugs etc. 2019-12-29 Paul Eggert doc: use “back-reference” for \1 etc. * doc/regex.texi: Consistently spell “back-reference” with a hyphen, since that’s how POSIX does it. 2019-12-26 Jim Meyering test-framework-sh: tighten an internal grep regexp * tests/init.sh (gl_shell_test_script_): Tighten the grep regexp that helps test for a working printf. 2019-12-26 Bruno Haible test-framework-sh: Avoid /bin/sh on AIX 7.2 due to its printf built-in. Reported by Paul Eggert in . Simplification by Jim Meyering. * tests/init.sh (gl_shell_test_script_): Add a test of printf of an octal escape sequence in a UTF-8 locale. 2019-12-26 Paul Eggert mbrtowc: port better to narrow-wchar_t platforms * lib/mbrtowc.c (mbrtowc): On platforms like AIX 7.2, where wchar_t is too narrow to represent all the Unicode characters, consider a byte sequence for an out-of-wchar_t-range character to be an encoding error. This fixes grep’s surrogate-pair test failure on AIX 7.2. 2019-12-24 Bruno Haible localcharset: Avoid referencing rpl_setlocale on native Windows. * lib/localcharset.c (setlocale): Undefine. 2019-12-24 Bruno Haible lock tests: Fix link error on HP-UX/hppa (regression from 2019-12-21). * m4/semaphore.m4: New file. * modules/lock-tests (Files): Add it. (configure.ac): Require gl_SEMAPHORE. (Makefile.am): Link test-lock with $(LIB_SEMAPHORE). 2019-12-24 Paul Eggert strptime: fix typo in previous patch Problem and fix reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2019-12/msg00202.html * lib/strptime.c (day_of_the_week): Fix paren bug. 2019-12-24 Bruno Haible setlocale-null: Make it easy to rely on the lock in another library. * lib/setlocale-lock.c: Do not define anything if OMIT_SETLOCALE_LOCK is defined. 2019-12-23 Paul Eggert gethrxtime, mktime, nstrftime, strptime: tweak division performance Performanced analyzed by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2019-12/msg00200.html * config/srclist.txt: Do not sync mktime.c for now. * lib/mktime.c (shr, ydhms_diff): * lib/nstrftime.c (SHR, tm_diff, __strftime_internal): * lib/strptime.c (day_of_the_week): * lib/xtime.h (xtime_sec): Redo with neither ‘%’ nor conditional branches. 2019-12-23 Bruno Haible setlocale-null: Export the lock function also on non-Windows platforms. * lib/setlocale-lock.c (DLL_EXPORTED): New macro. (gl_get_setlocale_null_lock): Declare as DLL_EXPORTED. * m4/setlocale_null.m4 (gl_PREREQ_SETLOCALE_LOCK): New macro. * modules/setlocale-null (configure.ac): Invoke it. (Files): Add m4/visibility.m4. 2019-12-22 Paul Eggert gethrxtime: fix rounding bug with negative args Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2019-12/msg00192.html * lib/xtime.h (xtime_sec): Simplify calculation and correct bug with negative rounding. Common platforms can compute / and % with a single instruction, so the simplified code should be shorter and faster on these platforms anyway. 2019-12-22 Bruno Haible gethrxtime: remove incorrect overflow detection * lib/xtime.h (xtime_make): Remove attempt to prevent internal integer overflow, as it didn’t suffice. This reverts the xtime.h part of 2018-10-12T04:46:09Z!akim.demaille@gmail.com, which I cannot now see the need for anyway (even in cases where it works), as the patch is helpful only when the signs of S and NS disagree, and all callers pass nonnegative values for S and NS. 2019-12-22 Bruno Haible setlocale-null: Add standalone include file. * lib/setlocale_null.h: New file, extracted from lib/locale.in.h. * lib/locale.in.h: Include setlocale_null.h. (SETLOCALE_NULL_MAX, SETLOCALE_NULL_ALL_MAX, setlocale_null_r, setlocale_null): Remove declarations. * lib/setlocale_null.c: Include setlocale_null.h. * lib/localename.c: Likewise. * modules/setlocale-null (Files): Add lib/setlocale_null.h. (Depends-on): Add snippet/arg-nonnull. (Include): Allow either "setlocale_null.h" or . 2019-12-22 Bruno Haible strfmon_l: Fix test failures on FreeBSD and Cygwin. * m4/strfmon_l.m4 (gl_FUNC_STRFMON_L): Require gt_LOCALE_FR_UTF8. Add an AC_RUN_IFELSE test. * modules/strfmon_l (Files): Add locale-fr.m4, codeset.m4. * doc/posix-functions/strfmon_l.texi: Mention the FreeBSD and Cygwin problem. 2019-12-22 Bruno Haible Prefer lib_SOURCES to unconditional AC_LIBOBJ. * modules/at-internal: Prefer a lib_SOURCES augmentation to an unconditional AC_LIBOBJ. * modules/selinux-at: Likewise. * modules/xmemdup0: Likewise. * modules/xstrtoll: Likewise. 2019-12-22 Bruno Haible longlong: Mark module obsolete. * modules/longlong (Status, Notice): New sections. stdint: Assume that the compiler supports 'long long'. * lib/stdint.in.h (int64_t, uint64_t, intmax_t, uintmax_t, INT64_C, UINT64_C, INTMAX_C, UINTMAX_C): Assume HAVE_LONG_LONG_INT and HAVE_UNSIGNED_LONG_LONG_INT to be 1. * m4/stdint.m4 (gl_STDINT_H): Don't require AC_TYPE_LONG_LONG_INT, AC_TYPE_UNSIGNED_LONG_LONG_INT. * modules/stdint (Files): Remove longlong.m4. (Makefile.am): Don't substitute HAVE_LONG_LONG_INT, HAVE_UNSIGNED_LONG_LONG_INT. inttypes-incomplete: Assume that the compiler supports 'long long'. * lib/inttypes.in.h (_PRI64_PREFIX, _PRIu64_PREFIX, _SCN64_PREFIX, _SCNu64_PREFIX): Assume HAVE_LONG_LONG_INT and HAVE_UNSIGNED_LONG_LONG_INT to be 1. * m4/inttypes.m4 (gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION): Assume HAVE_LONG_LONG_INT to be 1. * modules/inttypes-incomplete (Makefile.am): Don't substitute HAVE_LONG_LONG_INT, HAVE_UNSIGNED_LONG_LONG_INT. malloca: Assume that the compiler supports 'long long'. * lib/malloca.h: Assume HAVE_LONG_LONG_INT to be 1. * m4/malloca.m4 (gl_MALLOCA): Don't require AC_TYPE_LONG_LONG_INT. * modules/malloca (Files): Remove longlong.m4. * modules/relocatable-prog-wrapper (Files): Likewise. atoll: Assume that the compiler supports 'long long'. * m4/atoll.m4 (gl_FUNC_ATOLL): Don't require AC_TYPE_LONG_LONG_INT. * modules/atoll (Files): Remove longlong.m4. strtoll: Assume that the compiler supports 'long long'. * m4/strtoll.m4 (gl_FUNC_STRTOLL): Don't require AC_TYPE_LONG_LONG_INT. * modules/strtoll (Files): Remove longlong.m4. strtoull: Assume that the compiler supports 'long long'. * m4/strtoull.m4 (gl_FUNC_STRTOULL): Don't require AC_TYPE_UNSIGNED_LONG_LONG_INT. * modules/strtoull (Files): Remove longlong.m4. strtoimax, strtoumax: Assume that the compiler supports 'long long'. * lib/strtoimax.c: Assume HAVE_LONG_LONG_INT and HAVE_UNSIGNED_LONG_LONG_INT to be 1. * m4/strtoimax.m4 (gl_PREREQ_STRTOIMAX): Don't require AC_TYPE_LONG_LONG_INT. * m4/strtoumax.m4 (gl_PREREQ_STRTOUMAX): Don't require AC_TYPE_UNSIGNED_LONG_LONG_INT. * modules/strtoimax (Files): Remove longlong.m4. * modules/strtoumax (Files): Likewise. xstrtoll: Assume that the compiler supports 'long long'. * lib/xstrtol.h (xstrtoll, xstrtoull): Declare unconditionally. * modules/xstrtoll (configure.ac): Don't invoke AC_TYPE_LONG_LONG_INT. vasnprintf: Assume that the compiler supports 'long long'. * lib/printf-args.h: Assume HAVE_LONG_LONG_INT to be 1. * lib/printf-args.c (PRINTF_FETCHARGS): Likewise. * lib/printf-parse.c (PRINTF_PARSE): Likewise. * lib/vasnprintf.c (MAX_ROOM_NEEDED, VASNPRINTF): Likewise. * m4/intmax_t.m4 (gl_AC_TYPE_INTMAX_T, gt_AC_TYPE_INTMAX_T): Don't require AC_TYPE_LONG_LONG_INT. * m4/vasnprintf.m4 (gl_PREREQ_PRINTF_ARGS, gl_PREREQ_PRINTF_PARSE, gl_PREREQ_VASNPRINTF): Likewise. * modules/vasnprintf (Files): Remove longlong.m4. * modules/c-vasnprintf (Files): Likewise. * modules/unistdio/u8-vasnprintf (Files): Likewise. * modules/unistdio/u8-u8-vasnprintf (Files): Likewise. * modules/unistdio/u16-vasnprintf (Files): Likewise. * modules/unistdio/u16-u16-vasnprintf (Files): Likewise. * modules/unistdio/u32-vasnprintf (Files): Likewise. * modules/unistdio/u32-u32-vasnprintf (Files): Likewise. * modules/unistdio/ulc-vasnprintf (Files): Likewise. gethrxtime: Assume that the compiler supports 'long long'. * lib/xtime.h (xtime_t): Define to 'long long int' always. (XTIME_PRECISION): Define to 1000000000 always. (xtime_make, xtime_sec): Optimize accordingly. * m4/gethrxtime.m4 (gl_XTIME): Don't require AC_TYPE_LONG_LONG_INT. * modules/gethrxtime (Files): Remove longlong.m4. integer_length*: Assume that the compiler supports 'long long'. * lib/integer_length.h (integer_length_ll): Declare unconditionally. * modules/integer_length (Files): Remove longlong.m4. (configure.ac): Don't require AC_TYPE_UNSIGNED_LONG_LONG_INT. * modules/integer_length_l (Files): Remove longlong.m4. (configure.ac): Don't require AC_TYPE_UNSIGNED_LONG_LONG_INT. * modules/integer_length_ll (Files): Remove longlong.m4. (configure.ac): Don't require AC_TYPE_UNSIGNED_LONG_LONG_INT. count-one-bits: Assume that the compiler supports 'long long'. * lib/count-one-bits.h (count_one_bits_ll): Define unconditionally. * m4/count-one-bits.m4: Remove file. * modules/count-one-bits (Files): Remove it. (configure.ac): Don't invoke gl_COUNT_ONE_BITS. * tests/test-count-one-bits.c (main): Test count_one_bits_ll unconditionally. count-trailing-zeros: Assume that the compiler supports 'long long'. * lib/count-trailing-zeros.h (count_trailing_zeros_ll): Define unconditionally. * m4/count-trailing-zeros.m4: Remove file. * modules/count-trailing-zeros (Files): Remove it. (configure.ac): Don't invoke gl_COUNT_TRAILING_ZEROS. * tests/test-count-trailing-zeros.c (main): Test count_trailing_zeros_ll unconditionally. count-leading-zeros: Assume that the compiler supports 'long long'. * lib/count-leading-zeros.h (count_leading_zeros_ll): Define unconditionally. * m4/count-leading-zeros.m4: Remove file. * modules/count-leading-zeros (Files): Remove it. (configure.ac): Don't invoke gl_COUNT_LEADING_ZEROS. * tests/test-count-leading-zeros.c (main): Test count_leading_zeros_ll unconditionally. 2019-12-22 Bruno Haible localcharset: Update support for OpenBSD. * lib/localcharset.c (alias_table): Map "US-ASCII" to "ASCII". 2019-12-21 Bruno Haible pthread_sigmask: Avoid test failure on NetBSD 8.0. * tests/test-pthread_sigmask2.c (main): Skip the error handling test on NetBSD. * doc/posix-functions/pthread_sigmask.texi: Mention the NetBSD problem. 2019-12-21 Bruno Haible threadlib: Improve code structure. * m4/threadlib.m4: Reorder macros. Add comments. 2019-12-21 Bruno Haible threadlib: Fix LIBMULTITHREAD on FreeBSD with --enable-threads=isoc. * m4/threadlib.m4 (gl_STDTHREADLIB_BODY): New macro (some code moved here from m4/threads.m4). (gl_THREADLIB_BODY): Don't test whether mtx_lock and cnd_timedwait exist in libc. Instead, rely on gl_STDTHREADLIB_BODY. (gl_STDTHREADLIB): New macro. * m4/threads.m4 (gl_THREADS_H): Require gl_STDTHREADLIB instead of gl_THREADLIB_BODY and gl_YIELD. Don't set LIBSTDTHREAD here. 2019-12-21 Bruno Haible sched_yield: Don't depend on threadlib and yield. * m4/threadlib.m4 (gl_PTHREADLIB): Document that it sets LIB_SCHED_YIELD. (gl_PTHREADLIB_BODY): Set LIB_SCHED_YIELD (code moved here from m4/yield.m4). * m4/sched_yield.m4 (gl_FUNC_SCHED_YIELD): Require gl_PTHREADLIB, not gl_THREADLIB and gl_YIELD. * m4/yield.m4 (gl_YIELD): Require gl_PTHREADLIB. Determine YIELD_LIB based on $(LIB_SCHED_YIELD). * m4/threads.m4 (gl_THREADS_H): Don't require gl_YIELD. Use $(LIB_SCHED_YIELD), not $(YIELD_LIB). * modules/sched_yield (Files): Remove yield.m4. Add threadlib.m4. (Depends-on): Remove threadlib. (Link): Mention $(LIB_SCHED_YIELD), not $(YIELD_LIB). * modules/threads-h (Files): Remove m4/yield.m4. * modules/pthread-cond-tests (Makefile.am): Link the programs against $(LIB_SCHED_YIELD), not $(YIELD_LIB). * modules/pthread-mutex-tests (Makefile.am): Likewise. * modules/pthread-once-tests (Makefile.am): Likewise. * modules/pthread-rwlock-tests (Makefile.am): Likewise. * modules/pthread-tss-tests (Makefile.am): Likewise. 2019-12-21 Bruno Haible threads-h: Don't depend on threadlib. * modules/threads-h (configure.ac-early): Invoke gl_ANYTHREADLIB_EARLY, not gl_THREADLIB_EARLY. 2019-12-21 Bruno Haible nl_langinfo tests: Fix link error (regression from 2019-12-18). * modules/nl_langinfo-tests (Makefile.am): Link also test-nl_langinfo with $(LIB_SETLOCALE). 2019-12-21 Bruno Haible threadlib: Remove unused dependency (left over from 2019-07-06). * modules/threadlib (Depends-on): Remove havelib. 2019-12-21 Bruno Haible New convention for multithread-safety tests. * tests/test-setlocale_null-mt-one.c: Renamed from tests/test-setlocale_null-one.c. * tests/test-setlocale_null-mt-all.c: Renamed from tests/test-setlocale_null-all.c. * modules/setlocale-null-tests (Files, Makefile.am): Update. 2019-12-21 Bruno Haible quotearg tests: Fix conflict with hard-locale tests. * tests/testlocale: Renamed from tests/locale. * modules/quotearg-tests (Files): Update. * tests/test-quotearg.sh (LOCALEDIR): Likewise. 2019-12-21 Bruno Haible pthread-thread, lock: On z/OS, use PTHREAD_RWLOCK_INITIALIZER_NP. Reported by Daniel Richard G. in * lib/pthread.in.h (PTHREAD_RWLOCK_INITIALIZER): Define to PTHREAD_RWLOCK_INITIALIZER_NP when possible. * lib/glthread/lock.h: Allow PTHREAD_RWLOCK_INITIALIZER_NP as an alternative to PTHREAD_RWLOCK_INITIALIZER. * lib/glthread/lock.c: Likewise. 2019-12-21 Bruno Haible memcmp tests: Work around the clang bug. * tests/test-memcmp.c (main): Use a volatile function pointer to disable the clang optimization. 2019-12-20 Bruno Haible localcharset: Add support for z/OS encoding names. * lib/localcharset.h: Mention which encodings are used as locale encodings on z/OS. 2019-12-20 Bruno Haible iconv_open: Add support for z/OS encoding names. Reported by Daniel Richard G. in . * lib/iconv_open-zos.gperf: New file. * modules/iconv_open (Files): Add iconv_open-zos.gperf. (Makefile.am): Add rules for generating iconv_open-zos.h from it. * lib/iconv_open.c (ICONV_FLAVOR_ZOS): New macro. * m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): On z/OS, use ICONV_FLAVOR_ZOS. * doc/posix-functions/iconv_open.texi: Mention z/OS. 2019-12-20 Bruno Haible doc: Document the problem of the per-thread locale functions on z/OS. * doc/posix-functions/uselocale.texi: Document the z/OS problem. * doc/posix-functions/newlocale.texi: Likewise. * doc/posix-functions/duplocale.texi: Likewise. * doc/posix-functions/freelocale.texi: Likewise. 2019-12-20 Bruno Haible localename, gettext: Fix host_os value for z/OS. * m4/intl-thread-locale.m4 (gt_FUNC_USELOCALE): Fix host_os value in cross-configuration code. 2019-12-19 Jim Meyering nstrftime: avoid a shadowing warning * lib/nstrftime.c (libc_hidden_def): Rename inner "i" to "j", to avoid shadowing an "i" declared hundreds of lines above. 2019-12-19 Paul Eggert dfa: struct dfamust now uses flexible array * lib/dfa.c: Include flexmember.h. (dfamust, dfamustfree): Adjust to struct dfamust change. This saves a call to malloc+free. * lib/dfa.h (struct dfamust): Make the final member a flexible array member. * modules/dfa (Depends-on): Add flexmember. dfa: fast->small for array elements * lib/dfa.c (charclass_word): Use uint_least64_t not uint_fast64_t, since this type is used in arrays. This change is more for documentation than for any practical effect, since the two types are the same on all known platforms. 2019-12-19 Bruno Haible iconv tests: Test canonicalized, not system-dependent, encoding names. * tests/test-iconv.c (main): Revert part of the 2016-08-17 patch. * modules/iconv-tests (Depends-on): Add iconv_open. 2019-12-18 Bruno Haible localename: Fix test failure on AIX 7.2. * m4/intl-thread-locale.m4 (gt_INTL_THREAD_LOCALE_NAME): Enable nameless locales on AIX. * lib/localename.c (gl_locale_name_thread_unsafe): Handle nameless locales on AIX. 2019-12-18 Paul Eggert Improve port of AC_C_RESTRICT to Oracle C++ Problem reported by Christian Biesinger in: https://lists.gnu.org/r/bug-gnulib/2019-12/msg00159.html * m4/gnulib-common.m4 (AC_C_RESTRICT): Port better to Oracle Developer Studio C++ 12.5 or later. 2019-12-18 Bruno Haible wchar: Fix test failures on AIX and MSVC (regression from 2019-12-07). * lib/wchar.in.h (GNULIB_defined_mbstate_t): Do define on AIX and MSVC. 2019-12-18 Bruno Haible localename: Ensure multithread-safety in future changes. * lib/localename.c (setlocale): Reference the system's setlocale(). (get_locale_t_name): Invoke setlocale_null instead of setlocale. (gl_locale_name_posix): Likewise. * modules/localename (Depends-on): Add setlocale-null. 2019-12-18 Bruno Haible setlocale-null: Make API more useful. * lib/locale.in.h (setlocale_null_r): Renamed from setlocale_null. All callers changed. (setlocale_null): New declaration. * lib/setlocale_null.c (setlocale_null_androidfix): New function, extracted from setlocale_null_unlocked. (setlocale_null_unlocked): Invoke it. (setlocale_null_r): Renamed from setlocale_null. (setlocale_null): New function, extracted from setlocale_mtsafe in setlocale.c. * lib/setlocale.c: Don't include . (setlocale_mtsafe): Invoke setlocale_null. * lib/setlocale-lock.c: Update comments. * doc/posix-functions/setlocale.texi: Mention both functions. 2019-12-18 Bruno Haible localename: Optimize code for native Windows. * lib/localename.c (gl_locale_name_posix): Remove handling of LC_ALL category (not allowed here). 2019-12-18 Bruno Haible setlocale: Make calls with NULL argument multithread-safe. * lib/setlocale.c: Include . (setlocale_mtsafe): New function. (setlocale_unixlike): Invoke setlocale_mtsafe instead of setlocale. (setlocale_improved): Renamed from rpl_setlocale. * m4/setlocale.m4 (gl_FUNC_SETLOCALE): Require gl_FUNC_SETLOCALE_NULL. Set and define NEED_SETLOCALE_IMPROVED and NEED_SETLOCALE_MTSAFE. Set LIB_SETLOCALE. * modules/setlocale (Depends-on): Add setlocale-null. Update conditions. (Link): New section. * tests/locale.c: Undefine setlocale. * tests/test-setlocale_null-one.c: Likewise. * tests/test-setlocale_null-all.c: Likewise. * modules/setlocale-tests (Makefile.am): Link the test programs with $(LIB_SETLOCALE). * modules/astrxfrm-tests (Makefile.am): Likewise. * modules/btowc-tests (Makefile.am): Likewise. * modules/c-ctype-tests (Makefile.am): Likewise. * modules/c-snprintf-tests (Makefile.am): Likewise. * modules/c-strcase-tests (Makefile.am): Likewise. * modules/c-vasprintf-tests (Makefile.am): Likewise. * modules/c-vsnprintf-tests (Makefile.am): Likewise. * modules/c-xvasprintf-tests (Makefile.am): Likewise. * modules/dfa-tests (Makefile.am): Likewise. * modules/duplocale-tests (Makefile.am): Likewise. * modules/hard-locale-tests (Makefile.am): Likewise. * modules/localcharset-tests (Makefile.am): Likewise. * modules/localename-tests (Makefile.am): Likewise. * modules/mbmemcasecmp-tests (Makefile.am): Likewise. * modules/mbmemcasecoll-tests (Makefile.am): Likewise. * modules/mbrtowc-tests (Makefile.am): Likewise. * modules/mbscasecmp-tests (Makefile.am): Likewise. * modules/mbscasestr-tests (Makefile.am): Likewise. * modules/mbschr-tests (Makefile.am): Likewise. * modules/mbscspn-tests (Makefile.am): Likewise. * modules/mbsinit-tests (Makefile.am): Likewise. * modules/mbsncasecmp-tests (Makefile.am): Likewise. * modules/mbsnrtowcs-tests (Makefile.am): Likewise. * modules/mbspbrk-tests (Makefile.am): Likewise. * modules/mbspcasecmp-tests (Makefile.am): Likewise. * modules/mbsrchr-tests (Makefile.am): Likewise. * modules/mbsrtowcs-tests (Makefile.am): Likewise. * modules/mbsspn-tests (Makefile.am): Likewise. * modules/mbsstr-tests (Makefile.am): Likewise. * modules/nl_langinfo-tests (Makefile.am): Likewise. * modules/quotearg-tests (Makefile.am): Likewise. * modules/regex-tests (Makefile.am): Likewise. * modules/strfmon_l-tests (Makefile.am): Likewise. * modules/strtod-tests (Makefile.am): Likewise. * modules/strtold-tests (Makefile.am): Likewise. * modules/unicase/locale-language-tests (Makefile.am): Likewise. * modules/unicase/ulc-casecmp-tests (Makefile.am): Likewise. * modules/unicase/ulc-casecoll-tests (Makefile.am): Likewise. * modules/unigbrk/ulc-grapheme-breaks-tests (Makefile.am): Likewise. * modules/unistdio/u8-vasnprintf-tests (Makefile.am): Likewise. * modules/unistdio/u16-vasnprintf-tests (Makefile.am): Likewise. * modules/unistdio/u32-vasnprintf-tests (Makefile.am): Likewise. * modules/unistdio/ulc-vasnprintf-tests (Makefile.am): Likewise. * modules/uniwbrk/ulc-wordbreaks-tests (Makefile.am): Likewise. * modules/vasnprintf-posix-tests (Makefile.am): Likewise. * modules/wcrtomb-tests (Makefile.am): Likewise. * modules/wcsnrtombs-tests (Makefile.am): Likewise. * modules/wcsrtombs-tests (Makefile.am): Likewise. * modules/wcwidth-tests (Makefile.am): Likewise. * doc/posix-functions/setlocale.texi: Mention that the multithread- safety fix is also available in module 'setlocale'. 2019-12-18 Bruno Haible hard-locale: Make multithread-safe. * lib/hard-locale.h (hard_locale): Move documentation to here. * lib/hard-locale.c: Don't include . (GLIBC_VERSION): Remove macro. (hard_locale): Assume that all systems name the "C" and "POSIX" locales "C" or "POSIX". Invoke setlocale_null instead of setlocale. * modules/hard-locale (Depends-on): Remove strdup. Add setlocale-null. (configure.ac): Require gl_FUNC_SETLOCALE_NULL. Set LIB_HARD_LOCALE. (Link): New section. * modules/hard-locale-tests (Makefile.am): Link test-hard-locale against $(LIB_HARD_LOCALE). 2019-12-18 Bruno Haible hard-locale: Avoid test failure on Haiku. * tests/test-hard-locale.c (test_one): Treat Haiku like recent OpenBSD. 2019-12-18 Bruno Haible setlocale-null: Handle NULL result from setlocale. * lib/locale.in.h (setlocale_null): Document EINVAL return value. * lib/setlocale_null.c (setlocale_null_unlocked): Handle NULL result from setlocale or _wsetlocale. 2019-12-18 Bruno Haible hard-locale: Add test. * tests/test-hard-locale.c: New file. * tests/locale.c: New file. * modules/hard-locale-tests: New file. 2019-12-17 Paul Eggert dfa: do not match invalid UTF-8 * lib/dfa.c (struct dfa): Grow utf8_anychar_classes member array from 5 to 9 tokens; this is needed due to the changes to add_utf8_anychar. (charclass_index): 2nd arg is now pointer-to-const. (add_utf8_anychar): Match only valid UTF-8 byte sequences instead of allowing overlong encodings or surrogate halves. dfa: simplify charclass by assuming C99 * lib/dfa.c (CHARCLASS_WORD_BITS): Now always 64. (charclass_word): Now always uint_fast64_t. (CHARCLASS_PAIR): Remove. (CHARCLASS_INIT): Take 4 arguments instead of 8. All uses changed. fts: tune via calloc * lib/fts.c (fts_open): Prefer calloc to malloc + memset. dfa: tune via xzalloc * lib/dfa.c (dfaoptimize): Prefer xzalloc to xmalloc + memset. 2019-12-17 Bruno Haible localcharset: Fix multithread-safety bug on Windows and OS/2. * lib/localcharset.h (locale_charset): Clarify when the result becomes invalid. * lib/localcharset.c (locale_charset): Use a stack-allocated buffer to assemble the result. 2019-12-17 Bruno Haible localcharset: Optimize code for native Windows. * lib/localcharset.c (locale_charset): Don't bother calling setlocale (LC_ALL, NULL) since we're not interested in its result. 2019-12-17 Bruno Haible nl_langinfo: Fix multithread-safety bug on OpenBSD 3.8. * lib/nl_langinfo.c (ctype_codeset): Invoke setlocale_null instead of setlocale. * m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Require gl_FUNC_SETLOCALE_NULL. Set LIB_NL_LANGINFO. * modules/nl_langinfo (Depends-on): Add setlocale-null. 2019-12-17 Bruno Haible nl_langinfo: Fix multithread-safety bug on mingw and MSVC. * lib/nl_langinfo.c (ctype_codeset, rpl_nl_langinfo): Use a stack-allocated buffer to assemble each result and different static buffers to return it. * tests/test-nl_langinfo-mt.c: New file. * modules/nl_langinfo-tests (Files): Add it. (Depends-on): Add thread, nanosleep. (Makefile.am): Build test-nl_langinfo-mt test. 2019-12-17 Bruno Haible langinfo: Document more details. * doc/posix-headers/langinfo.texi: List platform details. * doc/posix-functions/nl_langinfo.texi: Likewise. 2019-12-17 Bruno Haible mbsinit: Fix compilation error in mingw-w64 7.0 with _UCRT defined. Reported by Tom Kacvinsky and Martin Storsjö in . * lib/mbsinit.c: Accommodate an MSVC-like mbstate_t definition with mingw. 2019-12-17 Bruno Haible glob: Avoid warning on mingw. Reported by Christian Biesinger in . * lib/glob.c (__stat64): Undefine first. 2019-12-17 Paul Eggert xalloc: tune xzalloc for fresh allocations * lib/xmalloc.c (xzalloc): Use xcalloc rather than xmalloc+memset, because when the memory is freshly allocated from the OS via sbrk or mmap, calloc can avoid doing the memset. dfa: new function dfacopysyntax * lib/dfa.c (struct dfa): Move syntax member later so that dfacopysyntax can easily clear earlier members. (dfacopysyntax): New function, used by Gawk. 2019-12-16 Paul Eggert dfa: port _GL_ATTRIBUTE_MALLOC to Gawk Gawk does not use Gnulib, and does not define _GL_ATTRIBUTE_MALLOC. * lib/dfa.h (_GL_ATTRIBUTE_MALLOC): Define to empty if not already defined. dfa: remove one dependency on MB_CUR_MAX * lib/dfa.c (dfamust): No need to refer to MB_CUR_MAX here. dfa: remove struct lexer_state.cur_mb_len * lib/dfa.c (struct lexer_state): Remove cur_mb_len member, as it’s not needed and the code is simpler without it. All uses removed. 2019-12-16 Bruno Haible setlocale-null: Remove need for -lpthread on musl libc, *BSD, Haiku. Reported by Arnold Robbins . * lib/setlocale_null.c (c11_threads_in_use, pthread_in_use): New macros, copied from lib/glthread/lock.h. (pthread_mutex_lock, pthread_mutex_unlock): Mark as weak. (setlocale_null_with_lock): If pthread_in_use() is false, use setlocale_null_unlocked directly. * m4/threadlib.m4 (gl_WEAK_SYMBOLS): New macro, extracted from gl_THREADLIB_BODY. Define HAVE_WEAK_SYMBOLS. (gl_THREADLIB_BODY): Invoke gl_WEAK_SYMBOLS. * m4/setlocale_null.m4 (gl_FUNC_SETLOCALE_NULL): Invoke gl_WEAK_SYMBOLS. Set LIB_SETLOCALE_NULL to empty if weak symbols are supported. * m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Add comment. 2019-12-16 Paul Eggert dfa: make dfasyntax thread-safe Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2019-12/msg00099.html * lib/dfa.c: Do not include locale.h. (struct dfa): Remove simple_locale member. All uses replaced by localeinfo.simple. (using_simple_locale): Remove; now present (with some changes) in localeinfo.c. (dfasyntax): No need to initialize removed member. localeinfo: record whether locale is simple * lib/localeinfo.c (using_simple_locale): New function, copied here from lib/dfa.c but with a change: it uses strcoll for its heuristic, instead of using setlocale. This lets it be thread-safe. * lib/localeinfo.h (struct localeinfo): New member ‘simple’. 2019-12-15 Bruno Haible duplocale: Fix multithread-safety bug on AIX. * lib/duplocale.c: Don't include . (rpl_duplocale): Invoke setlocale_null instead of setlocale. * m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Require gl_FUNC_SETLOCALE_NULL. Set LIB_DUPLOCALE. * modules/duplocale (Depends-on): Add setlocale-null. (Link): New section. * modules/duplocale-tests (Makefile.am): Link test-duplocale with $(LIB_DUPLOCALE). 2019-12-15 Bruno Haible setlocale-null: Add tests. * tests/test-setlocale_null.c: New file. * tests/test-setlocale_null-one.c: New file. * tests/test-setlocale_null-all.c: New file. * modules/setlocale-null-tests: New file. setlocale-null: New module. * lib/locale.in.h (SETLOCALE_NULL_MAX, SETLOCALE_NULL_ALL_MAX, setlocale_null): New declarations. * lib/setlocale_null.c: New file. * lib/setlocale-lock.c: New file. * m4/threadlib.m4 (gl_PTHREADLIB_BODY): Define C macro HAVE_PTHREAD_API. * m4/setlocale_null.m4: New file. * m4/locale_h.m4 (gl_LOCALE_H_DEFAULTS): Initialize GNULIB_SETLOCALE_NULL. * modules/locale (Makefile.am): Substitute GNULIB_SETLOCALE_NULL. * modules/setlocale-null: New file. * doc/posix-functions/setlocale.texi: Mention the new module. 2019-12-15 Bruno Haible lock tests: Skip test when no multithreading is enabled. * tests/test-rwlock1.c: Skip the test when no multithreading is enabled. 2019-12-14 Bruno Haible locale, duplocale, localename: Fix last patch. Reported by Daniel Richard G. in . * lib/locale.in.h (HAVE_WORKING_NEWLOCALE, HAVE_WORKING_DUPLOCALE): Don't define if locale_t does not exist. 2019-12-13 Bruno Haible locale, duplocale, localename: Fix errors if locale_t does not exist. Reported by Daniel Richard G. in . * lib/locale.in.h (HAVE_WORKING_NEWLOCALE, HAVE_WORKING_DUPLOCALE): New macros. * tests/test-locale.c: Test HAVE_WORKING_NEWLOCALE instead of HAVE_NEWLOCALE. * tests/test-localename.c: Likewise. * tests/test-duplocale.c: Test HAVE_WORKING_DUPLOCALE instead of HAVE_DUPLOCALE. * tests/test-locale-c++.cc: Likewise. 2019-12-13 Bruno Haible wcstok: Fix test failure on HP-UX. * m4/wcstok.m4 (gl_FUNC_WCSTOK): Set REPLACE_WCSTOK to 1 on HP-UX. * doc/posix-functions/wcstok.texi: Mention the HP-UX bug. 2019-12-12 Bruno Haible strtod, strtold tests: Avoid test failure on AIX 7.2. * tests/test-strtod1.c (main): Allow implementations in which ',' and '.' both are radix characters. * tests/test-strtold1.c (main): Likewise. 2019-12-12 Paul Eggert dfa: prefer ptrdiff_t for API, too Also, use ‘idx_t’ for ptrdiff_t values that must be nonnegative, but do this only for internal use for now. * NEWS: Mention the API change. * lib/dfa.c (idx_t, IDX_MAX): New type and max value, for internal use for now. Use them instead of ptrdiff_t and PTRDIFF_MAX for values known to be nonnegative. (dfaparse, dfaexec_mb, dfaexec_sb, dfaexec_noop, dfaexec): Prefer idx_t or ptrdiff_t to size_t for API. * lib/dfa.h (dfaparse, dfacomp, dfaexec): Prefer ptrdiff_t to size_t for API. stdalign: port to xlclang 16.01 Problem reportd by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2019-12/msg00064.html * lib/stdalign.in.h (_Alignas): Do not use __attribute__ ((__aligned__ (...))) with xlclang, as a top-level ‘char __attribute__ ((__aligned__ (8))) c;’ does not work with xlclang version 16.01.0000.0001; the alignment directive is ignored. 2019-12-12 Bruno Haible duplocale: Fix test failure on AIX 7.2 with xlclang. * lib/duplocale.c: Include . (rpl_duplocale): Use a heap-allocated copy of the first setlocale return value. 2019-12-12 Bruno Haible stddef: Document the AIX xlc issue. * doc/posix-headers/stddef.texi: Document the NULL issue with AIX xlc. 2019-12-12 Bruno Haible duplocale: Don't attempt to override if locale_t does not exist. Reported by Daniel Richard G. in . * m4/duplocale.m4 (gl_FUNC_DUPLOCALE): If locale_t does not exist, set HAVE_DUPLOCALE to 0. 2019-12-12 Bruno Haible wcwidth: Avoid test failure on AIX 7.2. * tests/test-wcwidth.c (main): Don't fail if wcwidth(0x200B) is negative. * doc/posix-functions/wcwidth.texi: Mention the AIX issue. 2019-12-12 Bruno Haible ilogbl: Work around Cygwin bug. * m4/ilogbl.m4 (gl_FUNC_ILOGBL_WORKS): Test whether ilogbl(0.0L) is correct. * doc/posix-functions/ilogbl.texi: Mention the Cygwin bug. 2019-12-12 Bruno Haible strtold: Work around Cygwin bug. * m4/strtold.m4 (gl_FUNC_STRTOLD): Add test for the underflow problem. If it is present, define STRTOLD_HAS_UNDERFLOW_BUG. * lib/strtod.c (HAVE_UNDERLYING_STRTOD): Set to 0 if STRTOLD_HAS_UNDERFLOW_BUG is defined. * doc/posix-functions/strtold.texi: Mention the Cygwin bug. 2019-12-12 Bruno Haible strtold: Fix autoconf test. * m4/strtold.m4 (gl_FUNC_STRTOLD): Test strtold, not strtod. 2019-12-11 Bruno Haible fsync tests: Skip test that is known to fail. * doc/posix-functions/fsync.texi: Update list of platforms. * tests/test-fsync.c (main): Skip test with read-only file descriptors that is known to fail on AIX and Cygwin. 2019-12-11 Bruno Haible getaddrinfo: Fix calling convention in 32-bit mode on native Windows. * m4/getaddrinfo.m4 (gl_GETADDRINFO): Test whether getaddrinfo has a non-POSIX signature. If so, set REPLACE_GETADDRINFO. Define HAVE_GETADDRINFO as a C macro. * lib/netdb.in.h (getaddrinfo, freeaddrinfo): If REPLACE_GETADDRINFO, declare as replacement functions. * lib/getaddrinfo.c (getaddrinfo, freeaddrinfo): If HAVE_GETADDRINFO, define as no-op overrides. * m4/netdb_h.m4 (gl_NETDB_H_DEFAULTS): Initialize REPLACE_GETADDRINFO. * modules/netdb (Makefile.am): Substitute REPLACE_GETADDRINFO. * modules/getaddrinfo (Depends-on, configure.ac): Test REPLACE_GETADDRINFO. * doc/posix-functions/getaddrinfo.texi: Mention calling convention problem. * doc/posix-functions/freeaddrinfo.texi: Mention header file and calling convention problems. 2019-12-11 Paul Eggert dfa: prefer signed integers for internals Signed integers can be checked more easily for integer overflow. * lib/dfa.c (position, struct lexer_state, struct parser_state) (struct dfa, mbs_to_wchar, fetch_wc, parse_bracket_exp) (struct lexptr, lex, addtok_mb, add_utf8_anychar, atom) (nsubtoks, copytoks, closure, alloc_position_set, delete) (replace, state_index, epsclosure, charclass_context) (state_separate_contexts, merge_nfa_state, dfaoptimize) (dfaanalyze, build_state, dfaexec_main, dfa_supported) (maybe_disable_superset_dfa, dfassbuild, dfafree, enlist) (comsubs, inboth, allocmust): Prefer a signed to an unsigned integer when calculating indexes, unless the integer is part of the external API (a bigger deal, and to be done later). dfa: fix index overflow * lib/dfa.c (compare): Avoid integer overflow when analyzing very large regular expressions. dfa: update commentary for previous change * NEWS: Mention the change. * lib/dfa.c, lib/dfa.h (dfaparse, dfamust, dfacomp): Update comments. 2019-12-11 Norihiro Tanaka dfa: separate parse and compile phase ‘dfamust’ must be called after parsing and before tokens are reordered, but both are executed in the compilation phase. Token reordering was introduced in Gnulib commit 2018-10-22T15:01:08Z!noritnk@kcn.ne.jp (5c7a0371823876cca7a1347fa09ca26bbbff0c98). * lib/dfa.c (dfaparse): Change it to global function. (dfacomp): If first argument is NULL, skip parse. * lib/dfa.h: (dfaparse): Add a prototype. 2019-12-11 Bruno Haible unistd tests: Fix link error on MSVC. * modules/unistd-c++-tests (Makefile.am): Link test-unistd-c++ against $(LIB_GETLOGIN). 2019-12-11 Bruno Haible doc: Document that ISO C or POSIX substitutes are supported in C++ mode. * doc/gnulib-intro.texi (Various Kinds of Modules): Document that ISO C and POSIX substitutes are supported in C++ mode. * NEWS: Likewise. 2019-12-11 Bruno Haible stddef: Fix compilation error in C++ mode on MSVC. * lib/stddef.in.h (max_align_t): With MSVC in C++ mode, don't define it; instead, include . 2019-12-11 Bruno Haible unistd: Fix compilation error in C++ mode on MSVC. * lib/unistd.in.h: Don't do include[_next] if the platform does not have . 2019-12-11 Bruno Haible locale: Fix compilation error in C++ mode on MSVC. * m4/locale_h.m4 (gl_LOCALE_H): Don't set REPLACE_STRUCT_LCONV on MSVC. * lib/locale.in.h (int_p_cs_precedes, int_p_sign_posn, int_p_sep_by_space, int_n_cs_precedes, int_n_sign_posn, int_n_sep_by_space): Define as macros on MSVC. 2019-12-11 Bruno Haible wchar: Fix compilation error in C++ mode on MSVC. * lib/wchar.in.h (mbstate_t): Don't override on MSVC. 2019-12-11 Bruno Haible pthread-thread: Fix compilation error in C++ mode on MSVC. * lib/pthread.in.h (pthread_exit): Don't use _Noreturn in the _GL_CXXALIAS_RPL invocation. 2019-12-08 Bruno Haible Fix compilation errors in C++ mode on Haiku. * lib/stdio.in.h (vdprintf): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * lib/spawn.in.h (posix_spawnattr_getschedpolicy, posix_spawnattr_setschedpolicy, posix_spawnattr_getschedparam, posix_spawnattr_setschedparam): Likewise. * lib/stdlib.in.h (random, initstate_r, setstate_r): Use _GL_CXXALIAS_SYS_CAST instead of _GL_CXXALIAS_SYS. * lib/unistd.in.h (usleep): Likewise. 2019-12-08 Bruno Haible Fix compilation errors in 32-bit C++ mode on HP-UX 11/ia64. * m4/largefile.m4 (gl_SET_LARGEFILE_SOURCE): New macro. * modules/fseeko (configure.ac-early): Require it instead of AC_FUNC_FSEEKO. * modules/ftello (configure.ac-early): Likewise. * modules/fflush (configure.ac-early): Likewise. 2019-12-08 Bruno Haible Fix compilation error in C++ mode on HP-UX 11. * lib/unistd.in.h (getpagesize): Declare on HP-UX. * doc/glibc-functions/getpagesize.texi: Mention the HP-UX problem. 2019-12-08 Bruno Haible Fix compilation errors on HP-UX 11/ia64. * lib/math.in.h (copysignf, fmaf, fma): Undefine before _GL_FUNCDECL_SYS. 2019-12-08 Bruno Haible Fix compilation error in C++ mode on OpenBSD. * lib/signal.in.h (signal): Declare on OpenBSD. 2019-12-08 Bruno Haible math tests: Don't fail if isfinite, isinf, isnan, signbit is a macro. * tests/test-math-c++.cc (isfinite, isinf, isnan, signbit): Use #warning instead of #error. 2019-12-08 Bruno Haible Fix compilation errors in C++ mode on FreeBSD. * lib/pthread.in.h (pthread_exit): Remove _Noreturn from prototype. * tests/test-pthread-c++.cc (GNULIB_NAMESPACE::pthread_exit): Likewise. * lib/threads.in.h (thrd_exit): Likewise. * tests/test-threads-c++.cc (GNULIB_NAMESPACE::thrd_exit): Likewise. 2019-12-08 Bruno Haible Fix compilation errors in C++ mode on macOS and FreeBSD. * lib/math.in.h (isfinite, isinf, isnan, signbit): In C++ mode on macOS or FreeBSD with clang, use the approach without C preprocessor macro. 2019-12-07 Bruno Haible Fix compilation errors in C++ mode on AIX with xlclang++. Reported by Christian Biesinger in . * lib/wchar.in.h (mbstate_t): Don't override on AIX. 2019-12-07 Bruno Haible Document compilation error in C++ mode on NetBSD 8.0. * doc/posix-headers/monetary.texi: Mention the NetBSD bug. 2019-12-07 Bruno Haible Fix compilation errors in C++ mode on Solaris 10. * m4/stdbool.m4 (AM_STDBOOL_H): Require AC_CANONICAL_HOST. Set STDBOOL_H to non-empty on Solaris with a non-GCC compiler. * doc/posix-headers/stdbool.texi: Mention the Solaris issue. 2019-12-07 Bruno Haible Reword NEWS entry. * NEWS: Reword the latest NEWS entry. 2019-12-05 Pino Toscano Move xstrtol_fatal to a new xstrtol-error module. * lib/xstrtol.h: Stop including . (xstrtol_fatal): Move ... * lib/xstrtol-error.h: ... here. New file. * lib/xstrtol-error.c: Include xstrtol-error.h instead of xstrtol.h. * tests/test-xstrtol.c: Likewise. * modules/xstrtol (Files): Remove lib/xstrtol-error.c. (Depends-on): Remove exitfail, error, getopt-gnu, and gettext-h. (Makefile.am): Remove xstrtol-error.c from lib_SOURCES. * modules/xstrtol-error: New file. * modules/xstrtol-tests (Depends-on): Add xstrtol-error. * MODULES.html.sh: Add xstrtol-error. * NEWS: Document the change. 2019-12-06 Paul Eggert nstrftime: better width support for %N, %z * lib/nstrftime.c (width_add, width_add1, width_cpy): New macros, which generalize ‘add’, ‘add1’, ‘cpy’ by adding a new WIDTH parameter. (add, add1, cpy): Use these macros. (width_add): Do not treat digits == 0 as a special case, do not pad if padding is ‘-’, and do not use a negative width. (__strftime_internal): Redo formatting of nanoseconds and numeric timezones to avoid buffer misuse in unusual cases, and so that widths make more sense. Add support for widths greater than 9 to the %N format; they are zero filled on the right. * tests/test-nstrftime.c (posixtm_test): Add a %12N test. 2019-12-05 Bruno Haible Fix compilation errors in C++ mode on Solaris 10 and Solaris 11. * m4/isfinite.m4 (gl_ISFINITE): Require AC_CANONICAL_HOST. On Solaris, set REPLACE_ISFINITE to 1. * m4/isinf.m4 (gl_ISINF): Require AC_CANONICAL_HOST. On Solaris, set REPLACE_ISINF to 1. * m4/signbit.m4 (gl_SIGNBIT): On Solaris, set REPLACE_SIGNBIT to 1. * lib/pthread.in.h (pthread_create, pthread_once, pthread_key_create): Use _GL_CXXALIAS_SYS_CAST instead of _GL_CXXALIAS_SYS. * lib/threads.in.h (call_once): Likewise. * lib/iconv.in.h (iconv): Likewise. 2019-12-05 Bruno Haible wchar: Add more C++ tests. Reported by Christian Biesinger in . * tests/test-wchar-c++3.cc: New file. * modules/wchar-c++-tests (Files): Add it. (Makefile.am): Compile it. 2019-12-05 Bruno Haible Add more C++ tests. assert-h: Add C++ tests. * tests/test-assert-h-c++.cc: New file. * tests/test-assert-h-c++2.cc: New file. * modules/assert-h-c++-tests: New file. * modules/assert-h-tests: New file. ctype: Add C++ tests. * tests/test-ctype-c++.cc: New file. * tests/test-ctype-c++2.cc: New file. * modules/ctype-c++-tests: New file. * modules/ctype-tests (Depends-on): Add ctype-c++-tests. errno: Add C++ tests. * tests/test-errno-c++.cc: New file. * tests/test-errno-c++2.cc: New file. * modules/errno-c++-tests: New file. * modules/errno-tests (Depends-on): Add errno-c++-tests. float: Add C++ tests. * tests/test-float-c++.cc: New file. * tests/test-float-c++2.cc: New file. * modules/float-c++-tests: New file. * modules/float-tests (Depends-on): Add float-c++-tests. inttypes: Add more C++ tests. * tests/test-inttypes-c++2.cc: New file. * modules/inttypes-c++-tests (Files): Add it. (Makefile.am): Compile it. limits-h: Add C++ tests. * tests/test-limits-h-c++.cc: New file. * tests/test-limits-h-c++2.cc: New file. * modules/limits-h-c++-tests: New file. * modules/limits-h-tests (Depends-on): Add limits-h-c++-tests. stdarg: Add C++ tests. * tests/test-stdarg-c++.cc: New file. * tests/test-stdarg-c++2.cc: New file. * modules/stdarg-c++-tests: New file. * modules/stdarg-tests: New file. stdbool: Add C++ tests. * tests/test-stdbool-c++.cc: New file. * tests/test-stdbool-c++2.cc: New file. * modules/stdbool-c++-tests: New file. * modules/stdbool-tests (Depends-on): Add stdbool-c++-tests. stddef: Add C++ tests. * tests/test-stddef-c++.cc: New file. * tests/test-stddef-c++2.cc: New file. * modules/stddef-c++-tests: New file. * modules/stddef-tests (Depends-on): Add stddef-c++-tests. stdint: Add C++ tests. * tests/test-stdint-c++.cc: New file. * tests/test-stdint-c++2.cc: New file. * modules/stdint-c++-tests: New file. * modules/stdint-tests (Depends-on): Add stdint-c++-tests. wchar: Add more C++ tests. * tests/test-wchar-c++2.cc: New file. * modules/wchar-c++-tests (Files): Add it. (Makefile.am): Compile it. wctype-h: Add more C++ tests. * tests/test-wctype-h-c++2.cc: New file. * modules/wctype-h-c++-tests (Files): Add it. (Makefile.am): Compile it. 2019-12-04 Bruno Haible Fix compilation errors in C++ mode with xlclang++ on AIX. * lib/math.in.h (expm1l, fmal, remainderl, roundl): Don't redeclare in C++ mode on AIX. (isfinite, signbit): In C++ mode on AIX with clang, use the approach without C preprocessor macro. * lib/pthread.in.h (pthread_exit): Use _GL_CXXALIAS_SYS_CAST instead of _GL_CXXALIAS_SYS. * lib/threads.in.h (thrd_exit): Likewise. 2019-12-04 Bruno Haible Fix compilation error in C++ mode on Solaris 11 OpenIndiana. * lib/wchar.in.h (wcsnrtombs): Force declaration in C++ mode on Solaris. * doc/posix-functions/wcsnrtombs.texi: Mention the issue. 2019-12-04 Bruno Haible Disable more _GL_CXXALIASWARN on all platforms other than glibc systems. * lib/wchar.in.h (wcsnrtombs, wcwidth, wcswidth): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * lib/wctype.in.h (iswalnum, iswalpha, iswcntrl, iswdigit, iswgraph, iswlower, iswprint, iswpunct, iswspace, iswupper, iswxdigit, wctype, iswctype, towlower, towupper): Likewise. 2019-12-03 Bruno Haible Avoid hassles caused by [[noreturn]] in C++. Reported by Christian Biesinger in . * m4/gnulib-common.m4 (gl_COMMON_BODY): Disable the use of [[noreturn]]. * lib/_Noreturn.h: Likewise. 2019-12-02 Bruno Haible Fix mistakes in --enable-threads=isoc fixes from 2019-12-01. * m4/pthread-mutex.m4 (gl_PTHREAD_MUTEX): Use LIBPMULTITHREAD, not LIBMULTITHREAD. * m4/pthread-rwlock.m4 (gl_PTHREAD_RWLOCK): Likewise. * m4/pthread-thread.m4 (gl_PTHREAD_THREAD): Likewise. * m4/timer_time.m4 (gl_TIMER_TIME): Likewise. Require gl_PTHREADLIB, not gl_THREADLIB. * modules/timer-time (Depends-on): Add pthread-h. Remove threadlib. 2019-12-02 Bruno Haible Fix some more link errors with --enable-threads=isoc. * modules/pthread-mutex (Depends-on): Test $gl_threads_api differently. * modules/pthread-rwlock (Depends-on): Likewise. 2019-12-02 Bruno Haible Fix link errors with --enable-threads=posix on AIX. * modules/string-c++-tests (Makefile.am): Link the test-string-c++ program with $(LIBTHREAD). * modules/wchar-c++-tests (Makefile.am): Link the test-wchar-c++ program with $(LIBTHREAD). 2019-12-02 Bruno Haible Fix link errors with --enable-threads=posix on AIX. * modules/mbrtowc (Link): New section. * modules/acl (Link): Likewise. * modules/argmatch (Link): Likewise. * modules/backup-rename (Link): Likewise. * modules/backupfile (Link): Likewise. * modules/closein (Link): Likewise. * modules/closeout (Link): Likewise. * modules/copy-file (Link): Likewise. * modules/csharpcomp (Link): Likewise. * modules/csharpexec (Link): Likewise. * modules/dfa (Link): Likewise. * modules/exclude (Link): Likewise. * modules/fnmatch (Link): Likewise. * modules/fnmatch-gnu (Link): Likewise. * modules/fnmatch-posix (Link): Likewise. * modules/glob (Link): Likewise. * modules/human (Link): Likewise. * modules/javacomp (Link): Likewise. * modules/javaexec (Link): Likewise. * modules/javaversion (Link): Likewise. * modules/mbfile (Link): Likewise. * modules/mbiter (Link): Likewise. * modules/mbmemcasecmp (Link): Likewise. * modules/mbmemcasecoll (Link): Likewise. * modules/mbrlen (Link): Likewise. * modules/mbscasecmp (Link): Likewise. * modules/mbscasestr (Link): Likewise. * modules/mbschr (Link): Likewise. * modules/mbscspn (Link): Likewise. * modules/mbsinit (Link): Likewise. * modules/mbslen (Link): Likewise. * modules/mbsncasecmp (Link): Likewise. * modules/mbsnlen (Link): Likewise. * modules/mbsnrtowcs (Link): Likewise. * modules/mbspbrk (Link): Likewise. * modules/mbspcasecmp (Link): Likewise. * modules/mbsrchr (Link): Likewise. * modules/mbsrtowcs (Link): Likewise. * modules/mbssep (Link): Likewise. * modules/mbsspn (Link): Likewise. * modules/mbsstr (Link): Likewise. * modules/mbstok_r (Link): Likewise. * modules/mbswidth (Link): Likewise. * modules/mbuiter (Link): Likewise. * modules/mkdir-p (Link): Likewise. * modules/propername (Link): Likewise. * modules/quote (Link): Likewise. * modules/quotearg (Link): Likewise. * modules/quotearg-simple (Link): Likewise. * modules/regex-quote (Link): Likewise. * modules/rpmatch (Link): Likewise. * modules/sh-quote (Link): Likewise. * modules/system-quote (Link): Likewise. * modules/trim (Link): Likewise. * modules/unistdio/ulc-asnprintf (Link): Likewise. * modules/unistdio/ulc-fprintf (Link): Likewise. * modules/unistdio/ulc-vasnprintf (Link): Likewise. * modules/unistdio/ulc-vasprintf (Link): Likewise. * modules/unistdio/ulc-vfprintf (Link): Likewise. * modules/unistdio/ulc-vsnprintf (Link): Likewise. * modules/unistdio/ulc-vsprintf (Link): Likewise. * modules/xfreopen (Link): Likewise. * modules/xmemcoll (Link): Likewise. * modules/yesno (Link): Likewise. * modules/acl-tests (Makefile.am): Link the programs with $(LIBTHREAD). * modules/argmatch-tests (Makefile.am): Likewise. * modules/closein-tests (Makefile.am): Likewise. * modules/copy-file-tests (Makefile.am): Likewise. * modules/dfa-tests (Makefile.am): Likewise. * modules/fnmatch-tests (Makefile.am): Likewise. * modules/glob-tests (Makefile.am): Likewise. * modules/mbmemcasecmp-tests (Makefile.am): Likewise. * modules/mbmemcasecoll-tests (Makefile.am): Likewise. * modules/mbrtowc-tests (Makefile.am): Likewise. * modules/mbscasecmp-tests (Makefile.am): Likewise. * modules/mbscasestr-tests (Makefile.am): Likewise. * modules/mbschr-tests (Makefile.am): Likewise. * modules/mbscspn-tests (Makefile.am): Likewise. * modules/mbsinit-tests (Makefile.am): Likewise. * modules/mbsncasecmp-tests (Makefile.am): Likewise. * modules/mbsnrtowcs-tests (Makefile.am): Likewise. * modules/mbspbrk-tests (Makefile.am): Likewise. * modules/mbspcasecmp-tests (Makefile.am): Likewise. * modules/mbsrchr-tests (Makefile.am): Likewise. * modules/mbsrtowcs-tests (Makefile.am): Likewise. * modules/mbsspn-tests (Makefile.am): Likewise. * modules/mbsstr-tests (Makefile.am): Likewise. * modules/quotearg-tests (Makefile.am): Likewise. * modules/quotearg-simple-tests (Makefile.am): Likewise. * modules/readtokens-tests (Makefile.am): Likewise. * modules/regex-quote-tests (Makefile.am): Likewise. * modules/sh-quote-tests (Makefile.am): Likewise. * modules/system-quote-tests (Makefile.am): Likewise. * modules/unistdio/ulc-asnprintf-tests (Makefile.am): Likewise. * modules/unistdio/ulc-vasnprintf-tests (Makefile.am): Likewise. * modules/unistdio/ulc-vasprintf-tests (Makefile.am): Likewise. * modules/unistdio/ulc-vsnprintf-tests (Makefile.am): Likewise. * modules/unistdio/ulc-vsprintf-tests (Makefile.am): Likewise. * modules/yesno-tests (Makefile.am): Likewise. 2019-12-02 Bruno Haible Simplify link sections. * modules/threadlib (Link): Stop mentioning LTLIBTHREAD. * modules/lock (Link): Likewise. * modules/cond (Link): Likewise. * modules/tls (Link): Likewise. * modules/yield (Link): Likewise. * modules/regex (Link): Likewise. * modules/localename (Link): Likewise. * modules/unicase/locale-language (Link): Likewise. * modules/thread (Link): Stop mentioning LTLIBMULTITHREAD. 2019-12-02 Bruno Haible thread tests: Avoid link error with --enable-threads=isoc+posix on AIX. * tests/test-thread_self.c (main): Disable test on AIX. 2019-12-01 Bruno Haible pthread-h: Fix link errors with --enable-threads=isoc on AIX. * m4/threadlib.m4 (gl_ANYTHREADLIB_EARLY): New macro, extracted from gl_THREADLIB_EARLY_BODY. (gl_THREADLIB_EARLY_BODY): Invoke it. (gl_PTHREADLIB_BODY): New macro, extracted from gl_THREADLIB_BODY. (gl_THREADLIB_BODY): Invoke it. (gl_PTHREADLIB): New macro. * m4/pthread_h.m4 (gl_PTHREAD_H): Require gl_PTHREADLIB. Require gl_THREADLIB and test $gl_threads_api only if module 'threadlib' is present. Define LIB_PTHREAD using LIBPMULTITHREAD, not LIBMULTITHREAD. * modules/pthread-h (Files): Add threadlib.m4. (Depends-on): Remove threadlib. (configure.ac-early): Invoke gl_ANYTHREADLIB_EARLY. Don't set _REENTRANT and _THREAD_SAFE here. (Link): Use LIBPTHREAD, not LIBTHREAD. * modules/pthread-thread (Link): Use LIBPMULTITHREAD, not LIBMULTITHREAD. * modules/pthread-once (Link): Likewise. * modules/pthread-mutex (Link): Likewise. * modules/pthread-rwlock (Link): Likewise. * modules/pthread-cond (Link): Likewise. * modules/pthread-tss (Link): Likewise. * modules/pthread-spin (Link): Likewise. * modules/pthread (Link): Likewise. * modules/pthread-h-c++-tests (test_pthread_c___LDADD): Likewise. * modules/pthread-thread-tests (test_pthread_thread_LDADD): Likewise. * modules/pthread-once-tests (test_pthread_once1_LDADD, test_pthread_once2_LDADD): Likewise. * modules/pthread-mutex-tests (test_pthread_mutex_LDADD): Likewise. * modules/pthread-rwlock-tests (test_pthread_rwlock_LDADD): Likewise. * modules/pthread-cond-tests (test_pthread_cond_LDADD): Likewise. * modules/pthread-tss-tests (test_pthread_tss_LDADD): Likewise. 2019-12-01 Bruno Haible cond: State linking requirements. * modules/cond (Link): New section. 2019-12-01 Bruno Haible threadlib: Remove unnecessary file (left over from 2019-07-06). * modules/threadlib (Files): Remove config.rpath. 2019-11-29 Tim Rühsen gnulib-tool.py: Fix libgnu_la_LDFLAGS section in generated Makefile.am. Reported by Dagobert Michelsen in . * pygnulib/GLModuleSystem.py (getLink): Don't join the parts. Return a list of strings instead of one string. * pygnulib/GLEmiter.py (lib_Makefile_am): Adapt accordingly. * pygnulib/GLImport.py (execute): Likewise. 2019-11-27 Bruno Haible openpty, forkpty: Fix build error on Solaris 11.4. * m4/pty_h.m4 (gl_PTY_H): Test for termios.h. Look for the declarations also in . * m4/pty.m4 (gl_FUNC_FORKPTY, gl_FUNC_OPENPTY): Look for the declaration of the function also in . * doc/glibc-functions/openpty.texi: Mention the Solaris 11.4 problems. * doc/glibc-functions/forkpty.texi: Likewise. 2019-11-27 Bruno Haible New options --enable-threads=isoc and --enable-threads=isoc+posix. * m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Accept the options --enable-threads=isoc and --enable-threads=isoc+posix. (gl_THREADLIB_BODY): Test whether the ISO C threads API is available. When both the ISO C and the POSIX threads API are available, choose USE_ISOC_AND_POSIX_THREADS instead of USE_POSIX_THREADS if --enable-threads=isoc+posix was specified. When only the ISO C threads API is available and --enable-threads=iso was specified, choose USE_ISOC_THREADS. * lib/glthread/lock.h: Add new code for USE_ISOC_THREADS || USE_ISOC_AND_POSIX_THREADS. * lib/glthread/lock.c: Likewise. * lib/glthread/cond.h: Likewise. * lib/glthread/cond.c: Likewise. * lib/glthread/tls.h: Likewise. * lib/glthread/tls.c: Likewise. * lib/glthread/yield.h: Likewise. * lib/glthread/thread.h: Add new code for USE_ISOC_THREADS. Treat USE_ISOC_AND_POSIX_THREADS like USE_POSIX_THREADS. * lib/glthread/thread.c: Likewise. * lib/glthread/threadlib.c: Likewise. * tests/test-lock.c: Save and restore the values of USE_ISOC_THREADS and USE_ISOC_AND_POSIX_THREADS. * tests/test-cond.c: Consider USE_ISOC_THREADS and USE_ISOC_AND_POSIX_THREADS. * tests/test-tls.c: Likewise. * tests/test-thread_create.c (main): Likewise. * tests/test-pthread-cond.c: Likewise. * tests/test-pthread-mutex.c: Likewise. * tests/test-pthread-once2.c: Likewise. * tests/test-pthread-rwlock.c: Likewise. * tests/test-pthread-tss.c: Likewise. * tests/test-pthread_sigmask2.c: Treat USE_ISOC_AND_POSIX_THREADS like USE_POSIX_THREADS. 2019-11-24 Bruno Haible mbrtowc: Modernize autoconf test. * m4/mbrtowc.m4 (gl_MBRTOWC_INCOMPLETE_STATE): Require gt_LOCALE_FR_UTF8. If a traditional Japanese locale is not available, try a UTF-8 locale. * doc/posix-functions/mbrtowc.texi: Update info about AIX. 2019-11-24 Bruno Haible Fix errors in C++ mode on mingw. * lib/arpa_inet.in.h (inet_ntop, inet_pton): Use _GL_CXXALIAS_SYS_CAST instead of _GL_CXXALIAS_SYS. * lib/signal.in.h (pthread_sigmask): Likewise. * lib/spawn.in.h (posix_spawn_file_actions_addopen, posix_spawn_file_actions_addclose, posix_spawn_file_actions_adddup2): Likewise. * lib/wchar.in.h (btowc): Likewise. 2019-11-24 Bruno Haible sys_time: Fix errors in C++ mode on mingw. * lib/sys_time.in.h (timeval): Restore the redirection '#define timeval rpl_timeval', for when the symbol timeval is being used outside the 'gnulib' namespace. * lib/sys_select.in.h (select): In C++, write 'timeval', not 'struct timeval'. 2019-11-24 Bruno Haible iswctype: Fix errors in C++ mode on mingw. * lib/wctype.in.h (rpl_iswctype): Override if GNULIB_OVERRIDES_WINT_T is 1. * lib/iswctype.c (iswctype): Add another implementation, for the GNULIB_defined_wint_t case. * modules/iswctype (configure.ac): Compile iswctype.c also if GNULIB_OVERRIDES_WINT_T is 1. 2019-11-24 Bruno Haible windows-timedmutex: Fix errors in C++ mode on mingw. * lib/windows-timedmutex.h: Add closing brace. 2019-11-24 Bruno Haible Fix errors in C++ mode on Cygwin. * lib/sys_wait.in.h (waitpid): Use _GL_CXXALIAS_SYS_CAST instead of _GL_CXXALIAS_SYS. 2019-11-24 Bruno Haible time_r: Fix for mingw (regression from 2019-11-16). * m4/time_r.m4 (gl_TIME_R): Revert to using AC_CHECK_FUNCS_ONCE. Use the AC_LINK_IFELSE test only if the function does not appear to exist. 2019-11-24 Bruno Haible wcstok: Add tests. * tests/test-wcstok.c: New file. * modules/wcstok-tests: New file. 2019-11-24 Bruno Haible wcstok: Work around wrong signature on native Windows. * lib/wchar.in.h (wcstok): Override when REPLACE_WCSTOK is 1. * m4/wcstok.m4 (gl_FUNC_WCSTOK): Check for signature of wcstok. Set REPLACE_WCSTOK. * m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WCSTOK. * modules/wchar (Makefile.am): Substitute REPLACE_WCSTOK. * modules/wcstok (Depends-on, configure.ac): Consider REPLACE_WCSTOK. * doc/posix-functions/wcstok.texi: Mention the problem. 2019-11-22 Paul Eggert intprops: INT_MULTIPLY_WRAPV speedup for GCC 8.4+ * lib/intprops.h (INT_MULTIPLY_WRAPV): If GCC 8.x where 4 <= x, remove workaround for GCC bug 91450 as the bug should be fixed there too. 2019-11-21 Bruno Haible Disable many _GL_CXXALIASWARN on all platforms other than glibc systems. Reported by Christian Biesinger in . * lib/fnmatch.in.h (fnmatch): Disable _GL_CXXALIASWARN invocation on non-glibc systems. * lib/locale.in.h (localeconv, setlocale): Likewise. * lib/math.in.h (cbrt, ceil, copysign, exp2, expm1, floor, fma, fmod, frexp, hypot, ilogb, log, log10, log1p, log2, logb, modf, remainder, rint, round, trunc): Likewise. * lib/monetary.in.h (strfmon_l): Likewise. * lib/pthread.in.h (pthread_mutexattr_getrobust, pthread_mutexattr_setrobust, pthread_mutex_lock, pthread_spin_init, pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock, pthread_spin_destroy): Likewise. * lib/signal.in.h (raise, signal): Likewise. * lib/stdio.in.h (fclose, fflush, fgetc, fgets, fopen, fprintf, fputc, fputs, fread, freopen, fscanf, fseek, ftell, fwrite, getc, getchar, perror, printf, putc, putchar, puts, remove, rename, scanf, sprintf, tmpfile, vfprintf, vprintf, vsprintf): Likewise. * lib/stdlib.in.h (calloc, malloc, mbtowc, realloc, strtod, wctomb): Likewise. * lib/string.in.h (memchr, strncat, strpbrk, strstr, strerror): Likewise. * lib/time.in.h (mktime, localtime, ctime, strftime): Likewise. * lib/wchar.in.h (btowc, wctob, mbsinit, mbrtowc, mbrlen, mbsrtowcs, wcrtomb, wcsrtombs, wmemchr, wmemcmp, wmemcpy, wmemmove, wmemset, wcslen, wcscpy, wcsncpy, wcscat, wcsncat, wcscmp, wcsncmp, wcscoll, wcsxfrm, wcschr, wcsrchr, wcscspn, wcsspn, wcspbrk, wcsstr, wcstok, wcsftime): Likewise. * lib/wctype.in.h (iswblank, wctrans, towctrans): Likewise. 2019-11-21 Bruno Haible Fix various errors in _GL_CXXALIAS_SYS invocations. * lib/locale.in.h (freelocale): Use _GL_CXXALIAS_SYS_CAST instead of _GL_CXXALIAS_SYS. * lib/pthread.in.h (pthread_mutexattr_gettype, pthread_mutexattr_getrobust): Likewise. * lib/stdlib.in.h (srandom, initstate, setstate): Likewise. * lib/sys_socket.in.h (recv, send): Likewise. * lib/unistd.in.h (getdtablesize): Likewise. * lib/sys_select.in.h (select): In C++, write 'timeval' instead of 'struct timeval'. 2019-11-21 Bruno Haible math tests: Update after 2019-08-28 change. * tests/test-math-c++.cc (isfinite, isinf, isnan, signbit): Expect a return type of 'bool', not 'int'. 2019-11-21 Bruno Haible pthread-spin: Fix errors in C++ mode. * m4/pthread-spin.m4 (gl_PTHREAD_SPIN): Mark the pthread_spin_* functions as nonexistent when exists but does not define the pthread_spinlock_t type. 2019-11-21 Bruno Haible pthread-mutex: Fix errors in C++ mode. * m4/pthread-mutex.m4 (gl_PTHREAD_MUTEX): Test whether pthread_mutexattr_getrobust exists. If not, define PTHREAD_MUTEXATTR_ROBUST_UNIMPLEMENTED. * lib/pthread-mutex.c (pthread_mutexattr_getrobust, pthread_mutexattr_setrobust): Define also if exists but PTHREAD_MUTEXATTR_ROBUST_UNIMPLEMENTED. * modules/pthread-mutex (configure.ac): Compile pthread-mutex.c also when exists but pthread_mutexattr_getrobust needs a gnulib definition. 2019-11-19 Bruno Haible threads-h tests: Fix typo. * tests/test-threads-c++.cc: Fix references to undefined type 'mtx'. 2019-11-19 Bruno Haible pthread-thread: Fix prototype of pthread_attr_getdetachstate. * lib/pthread.in.h (pthread_attr_getdetachstate): Change first parameter to 'const pthread_attr_t *'. * lib/pthread-thread.c (pthread_attr_getdetachstate): Likewise. * tests/test-pthread-c++.cc (pthread_attr_getdetachstate): Likewise. 2019-11-19 Paul Eggert intprops: speed up INT_MULTIPLY_WRAPV in GCC 9.3 * lib/intprops.h (INT_MULTIPLY_WRAPV): If GCC 9.3 or later, do not work around GCC bug 91450 as the bug should be fixed there. 2019-11-18 Paul Eggert glob: get closer to glibc glob.c Omit differences from glibc when the differences don’t matter. * lib/glob.c [_LIBC]: Include shlib-compat.h. (__glob) [!_LIBC]: New macro. All uses of glob changed to __glob. (glob_lstat): New function. (glob_in_dir): Use it. (GLOB_ATTRIBUTE): Define to empty if not already defined. Use changed. 2019-11-18 Bruno Haible stdint: Define [u]intptr_t correctly on 64-bit native Windows. * lib/stdint.in.h (gl_intptr_t, gl_uintptr_t, INTPTR_MIN, INTPTR_MAX, UINTPTR_MAX): Consider _WIN64. * tests/test-stdint.c: Verify that [u]intptr_t is large enough to hold a pointer. 2019-11-18 Bruno Haible stdint: Fix value of WINT_MAX when we override wint_t. * lib/stdint.in.h (WINT_MIN, WINT_MAX): Don't override a second time when GNULIB_OVERRIDES_WINT_T is 1. 2019-11-18 Bruno Haible vcs-to-changelog: New module. * modules/vcs-to-changelog: New file. * MODULES.html.sh (func_all_modules): Add it. 2019-11-01 Siddhesh Poyarekar vcs-to-changelog: New script to generate ChangeLog-like output. Discussion: * build-aux/vcs_to_changelog.py: New file. * build-aux/vcstocl/frontend_c.py: New file. * build-aux/vcstocl/misc_util.py: New file. * build-aux/vcstocl/vcs_git.py: New file. 2019-11-18 Bruno Haible stdint: Avoid triggering a "conflicting types" error on mingw 5.22. Reported by Keith Marshall in and . * lib/stdint.in.h (intptr_t, uintptr_t): Don't define if the types have already been defined by mingw's . 2019-11-18 Bruno Haible gnulib-tool: Fix build error on macOS with --conditional-dependencies. * gnulib-tool (func_modules_add_dummy): Ignore modules that are conditionally enabled. 2019-11-18 Bruno Haible gc: Mirror libgcrypt.m4 from libgcrypt. * config/srclistvars.sh (LIBGCRYPT): New variable. * config/srclist.txt: Use it to fetch m4/libgcrypt.m4. 2019-11-17 Bruno Haible locale, localename: Improve z/OS support. Reported by Daniel Richard G. in . * m4/locale_h.m4 (gl_LOCALE_T): New macro, partially extracted from gl_LOCALE_H. (gl_LOCALE_H): Require it. * m4/localename.m4 (gl_LOCALENAME): Likewise. If locale_t is not defined, don't even check for newlocale, duplocale, freelocale. * m4/intl-thread-locale.m4 (gt_FUNC_USELOCALE): Make the test fail when locale_t is not defined. 2019-11-17 Bruno Haible havelib: Make libdirstems processing more flexible. * m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Set 3 libdirstem variables: Consider 'lib' always, also on Solaris. Look for lib32 in addition to lib64. Don't invoke /usr/bin/gcc (reverting the second patch from 2017-02-19). * m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Consider up to 3 additional libdirs, even when the first one exists as a directory. 2019-11-17 Bruno Haible havelib: Match the bitness when searching for libraries. * m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Define a function acl_is_expected_elfclass. * m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): When testing whether a library file exists, in ELF, also test whether it has the ELF class that corresponds to the host's bitness. 2019-11-17 Bruno Haible host-cpu-c-abi: Add support for unknown CPUs. * m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI_32BIT): Set gl_cv_host_cpu_c_abi_32bit to 'unknown' if we don't know whether it's 32-bit or 64-bit. 2019-11-17 Bruno Haible havelib: Remove redundant code. * m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Remove Solaris specific test for 64-bit host. Use gl_HOST_CPU_C_ABI_32BIT result instead. 2019-11-17 Bruno Haible havelib: Fix a bug in dependency processing. * m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): During dependency processing of .la files, don't overwrite the value of additional_libdir for the next rounds. 2019-11-16 Bruno Haible wctype-h: When overriding wint_t, override also the related functions. Reported by Christian Biesinger in . * m4/wctype_h.m4 (gl_WCTYPE_H): When GNULIB_OVERRIDES_WINT_T is 1, set REPLACE_ISWCNTRL to 1. * lib/wctype.in.h (rpl_iswalnum, rpl_iswalpha, rpl_iswblank, rpl_iswcntrl, rpl_iswdigit, rpl_iswgraph, rpl_iswlower, rpl_iswprint, rpl_iswpunct, rpl_iswspace, rpl_iswupper, rpl_iswxdigit, rpl_towlower, rpl_towupper): New definitions when GNULIB_OVERRIDES_WINT_T is 1. * doc/posix-headers/wchar.texi: Mention that wint_t is also overridden on mingw. * doc/posix-headers/wctype.texi: Likewise. 2019-11-16 Bruno Haible time_r: Fix for mingw. Reported by Christian Biesinger in . * lib/time.in.h: On mingw, include . * m4/time_r.m4 (gl_TIME_R): On mingw, include before . Test for localtime_r in a way that works when it is defined as an inline function. 2019-11-13 Bruno Haible havelib: Revert last change. * build-aux/config.rpath: Revert last change. We can add msys2 support when it has been added to libtool.m4 upstream. 2019-11-09 Paul Eggert config: add msys support Requested by Arnold Robbins in: https://lists.gnu.org/r/bug-gnulib/2019-11/msg00008.html He also requested a change to config.guess, which I’ll forward upstream. * build-aux/ar-lib (func_file_conv): * build-aux/compile (func_file_conv): * build-aux/config.rpath (wl, with_gnu_ld) (hardcode_libdir_flag_spec, libext, shrext, library_names_spec): Treat msys like cygwin. 2019-11-06 Paul Eggert regex: now back in sync with glibc * config/srclist.txt: regcomp.c, regex_internal.c, regex_internal.h, regexec.c got merged into glibc and are now copies again. 2019-10-27 Bruno Haible host-cpu-c-abi: Recognize i386 and a couple of other CPUs as 32-bit. * m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Include i386 in the case statement. (gl_HOST_CPU_C_ABI_32BIT): Likewise. Also recognize a couple of other 32-bit CPUs. 2019-10-24 Paul Eggert timespec-add, timespec-sub: simplify * lib/timespec-add.c (timespec_add): * lib/timespec-sub.c (timespec_sub): Simplify, now that INT_ADD_WRAPV and INT_SUBTRACT_WRAPV work on unsigned integers. 2019-10-23 Paul Eggert nstrftime: speed up integer overflow checking * lib/nstrftime.c: Include intprops.h. (INT_STRLEN_BOUND): Remove, as we can use intprops.h’s defn. (__strftime_internal): Use INT_MULTIPLY_WRAPV and INT_ADD_WRAPV instead of doing it by hand. * modules/nstrftime (Depends-on): Add intprops. Port better to GCC under macOS Work around macOS header that has ‘#define __has_builtin(x) 0’ when compiled by GCC. Apple really, really doesn’t want you to use GCC, apparently. Rroblem reported by Akim Demaille in: https://lists.gnu.org/r/bug-bison/2019-10/msg00071.html The fix is to not trust __has_builtin when being compiled by recent-enough GCC. * lib/intprops.h (__has_builtin) (_GL_HAS___builtin_add_overflow, _GL_TEMPDEF___has_builtin): * lib/verify.h (__has_builtin, _GL_HAS___builtin_unreachable) (_GL_HAS___builtin_trap, _GL_TEMPDEF___has_builtin): Remove. All uses removed. * lib/intprops.h (_GL_HAS_BUILTIN_ADD_OVERFLOW): Use __has_builtin directly, if defined and if not newer GCC. * lib/verify.h (_GL_HAS_BUILTIN_TRAP, _GL_HAS_BUILTIN_UNREACHABLE): New macro, that use __has_builtin directly, if defined and if not newer GCC. (assume): Use them. 2019-10-22 Akim Demaille maintainer-makefile: update rule for argmatch. * top/maint.mk (sc_prohibit_argmatch_without_use): Add ARGMATCH_DEFINE_GROUP. 2019-10-21 Akim Demaille bitset: let freeing functions accept NULL. * lib/bitset.c (bitset_free, bitset_obstack_free): Do nothing if given NULL. * lib/bitset.h: Document that. * doc/bitset.texi: Fix the example, and demonstrate bitset_free. 2019-10-15 Paul Eggert inttypes: use more-robust test for int range This fixes Bison 3.4.2 when built with Oracle Solaris Studio 12.3. Problem reported by Dagobert Michelsen in: https://lists.gnu.org/r/bug-gnulib/2019-10/msg00042.html * lib/inttypes.in.h: Rely only on limits.h when checking int range. 2019-10-15 Bruno Haible libtextstyle-optional: Sync with current not-yet-released libtextstyle. * libtextstyle-optional (styled_ostream_get_hyperlink_ref, styled_ostream_get_hyperlink_id, styled_ostream_set_hyperlink, term_ostream_get_hyperlink_ref, term_ostream_get_hyperlink_id, term_ostream_set_hyperlink): New functions. (term_styled_ostream_get_hyperlink_ref, term_styled_ostream_get_hyperlink_id, term_styled_ostream_set_hyperlink): New function aliases. 2019-10-14 Paul Eggert update-copyright: use en dashes in .texi ranges * build-aux/update-copyright: Match year ranges like "1998--2019", which are used in the Autoconf manual. Also, update ranges in .tex, .texi, and .texinfo files to use en dashes instead of hyphens. 2019-10-13 Paul Eggert * config/srclist.txt: Remove posix/regex_internal.c for now. 2019-10-13 Bruno Haible git-version-gen: Allow 'snapshot' as .tarball-version contents. * build-aux/git-version-gen: Don't map non-numeric .tarball-version contents to the empty string. 2019-10-12 Bruno Haible intprops tests: Fix compilation errors on HP-UX/ia64 with cc. * tests/test-intprops.c (main): Disable two more tests when using HP-UX cc. 2019-10-11 Paul Eggert Simplify and regularize regex use of ‘assert’ Also, tell GCC about the asserts even when compiling without debugging, to give it further optimization opportunities. * lib/regex_internal.h (DEBUG_ASSERT): New macro. * lib/regcomp.c (link_nfa_nodes, calc_eclosure) (parse_expression, parse_bracket_exp): * lib/regex_internal.c (build_wcs_buffer) (build_wcs_upper_buffer, re_string_reconstruct) (re_string_context_at): * lib/regexec.c (re_search_stub, re_copy_regs) (re_search_internal, prune_impossible_nodes, check_matching) (check_halt_state_context, set_regs, sift_states_backward) (build_sifted_states, transit_state_mb, transit_state_bkref) (check_arrival_add_next_nodes, check_arrival_expand_ecl) (match_ctx_add_subtop): Use it instead of plain ‘assert’. 2019-10-09 Paul Eggert regex: omit debug assignment when not debugging * lib/regexec.c (re_search_internal) [!DEBUG]: Remove unnecessary assignment. regex: tell compiler there’s at most 256 arcs out Partly this is to help the reader (and maybe help GCC); partly this is to pacify Coverity. * lib/regex_internal.h: Include verify.h. * lib/regexec.c (group_nodes_into_DFAstates): Tell the compiler that ndests cannot exceed SBC_MAX. * modules/regex (Depends-on): Add ‘verify’. regex: simplify by assuming C99 * config/srclist.txt: Comment out regex_internal.h and regexec.c temporarily. * lib/regex_internal.h (lock_define, re_match_context_t): Simplify by assuming C99 macros and const. * lib/regexec.c (re_search_internal): Simplify by assuming C99 initializers. Remove unnecessary assignment, as mctx is now safely initialized earlier. regex: avoid copying of uninitialized storage * config/srclist.txt: Comment out regcomp.c temporarily. * lib/regcomp.c (build_charclass_op, create_tree) [! (GCC_LINT||lint)]: Initialize even when not checking for lint, as the behavior is arguably undefined otherwise and Coverity warns about it. 2019-10-06 Bruno Haible access tests: Fix test failure when run as root. * tests/test-access.c: Include root-uid.h. (geteuid): Define fallback. (main): Don't expect that writing to a read-only file would fail when running as root. Also, remove the created files at the end. * modules/access-tests (Depends-on): Add root-uid. (configure.ac): Test whether geteuid exists. 2019-10-06 Benno Schulenberg (tiny change) users.txt: add GNU nano Nano has been making use of gnulib since March 2017, version 2.8.0. 2019-10-05 Paul Eggert bootstrap: simplify debugging of wget failures Problem reported by Tim Rühsen in: https://lists.gnu.org/r/bug-gnulib/2019-10/msg00000.html * build-aux/bootstrap (po_download_command_format): Invoke wget with -nv instead of -q, to make debugging easier. 2019-09-29 Bruno Haible avltree-list: Fix compilation warning (introduced on 2014-09-16). * lib/gl_avltree_list.c (gl_avltree_list_check_invariants): Remove 'const' attribute. 2019-09-29 Bruno Haible fbufmode: Fix compilation error on glibc >= 2.28 systems. * lib/stdio-impl.h (_IO_UNBUFFERED): Define fallback on glibc >= 2.28. 2019-09-28 Bruno Haible Update comments that refer to POSIX. * lib/creat.c, lib/fopen.c, lib/open.c, lib/openat.c: Cite the relevant sentence about trailing slashes. * lib/fflush.c: Clarify the reasoning. * tests/test-fflush2.c: Cite the relevant sentence. 2019-09-28 Bruno Haible access: Document limitations on Windows. Suggested by Zaretskii . * doc/posix-functions/access.texi: Mention two limitations on Windows. 2019-09-28 Bruno Haible findprog-in: Fix comment. Reported by Eli Zaretskii . * lib/findprog.h (find_in_given_path): Extend description of EACCES condition. * lib/stat.c (rpl_stat): Fix typo in comment. * lib/utime.c (_gl_utimens_windows): Likewise. 2019-09-23 Paul Eggert Update URLs and associated text (Thanks to Bruno Haible for proofreading this patch.) Prefer https: to http: in URLs where either will do, for the usual security reasons. I also updated broken and/or moved URLs discovered during the process. In a few places I had to resort to archive.org, since I didn't find the originals elsewhere. 2019-09-15 Paul Smith Bruno Haible findprog-in: Set errno when the search fails. * lib/findprog-in.c: Include . (find_in_given_path): Set errno before returning NULL. * lib/findprog.h (find_in_given_path): Update comment accordingly. Define the term "slash". 2019-09-15 Bruno Haible findprog, findprog-lgpl, findprog-in: Fix crash on MSVC. * modules/findprog (Depends-on): Add access. * modules/findprog-lgpl (Depends-on): Likewise. * modules/findprog-in (Depends-on): Likewise. 2019-09-15 Bruno Haible access: Add tests. * tests/test-access.c: New file. * modules/access-tests: New file. access: New module. * lib/unistd.in.h (access): New declaration. * lib/access.c: New file. * m4/access.m4: New file. * m4/unistd_h.m4 (gl_UNISTD_H): Test whether access is declared. (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_ACCESS, REPLACE_ACCESS. * modules/unistd (Makefile.am): Substitute GNULIB_ACCESS, REPLACE_ACCESS. * modules/access: New file. * tests/test-unistd-c++.cc (access): Check signature. * doc/posix-functions/access.texi: Mention the new module. 2019-09-15 Bruno Haible fcntl-h: Fix compilation error of creat.c on MSVC. * lib/fcntl.in.h: Include also when __need_system_fcntl_h is defined. 2019-09-15 Bruno Haible creat: Add tests. * tests/test-creat.c: New file, based on tests/test-open.h. * modules/creat-tests: New file. creat: New module. * lib/fcntl.in.h (creat): New declaration. * lib/creat.c: New file, based on lib/open.c. * m4/creat.m4: New file. * m4/open-slash.m4: New file, extracted from m4/open.m4. * m4/open.m4 (gl_FUNC_OPEN): Move trailing-slash test to open-slash.m4. Invoke gl_OPEN_TRAILING_SLASH_BUG. * modules/open (Files): Add m4/open-slash.m4. * m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Initialize GNULIB_CREAT, REPLACE_CREAT. * modules/fcntl-h (Makefile.am): Substitute GNULIB_CREAT, REPLACE_CREAT. * modules/creat: New file. * tests/test-fcntl-h-c++.cc (creat): Check signature. * doc/posix-functions/creat.texi: Mention the new module. 2019-09-15 Bruno Haible open tests: Enhance test. * tests/test-open.h (test_open): Test the creation of an executable regular file. Also improve initial cleanup. 2019-09-15 Bruno Haible intprops tests: Avoid build failure with HP-UX cc. * tests/test-intprops.c: Disable a check that makes HP cc choke with "error 4018: Macro param too large after substitution - use -H option.". 2019-09-14 Bruno Haible Make autoconf tests work with -Werror=implicit-function-declaration. * m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Include , for towupper() declaration. * m4/ptsname.m4 (gl_FUNC_PTSNAME): Include , for ptsname() declaration. 2019-09-14 Bruno Haible findprog-in: Better mimic the system on native Windows. Reported by Paul Smith . * lib/findprog-in.c (find_in_given_path): On native Windows, don't try non-empty suffixes when the file name already contains a '.'. 2019-09-10 Bruno Haible wctob: Fix autoconf test. Based on patch by Florian Weimer . * m4/wctob.m4 (gl_FUNC_WCTOB): Include before using mbtowc. 2019-09-09 Akim Demaille xhash: provide hash_xinitialize. Suggested by Egor Pugin https://lists.gnu.org/archive/html/bison-patches/2019-09/msg00026.html * modules/xhash, lib/xhash.c: New. * lib/hash.h (hash_xinitialize): New. 2019-09-09 Bruno Haible findprog-in: Make exec optimization optional. * lib/findprog.h: Add double-inclusion guard. Include . (find_in_given_path): Add optimize_for_exec parameter. * lib/findprog-in.c (find_in_given_path): Likewise. 2019-09-08 Bruno Haible Add option to assume the best, not the worst, when cross-compiling. Suggested by Jonas Termansen . * m4/gnulib-common.m4 (gl_COMMON_BODY): Add --enable-cross-guesses=... option. Set gl_cross_guess_normal and gl_cross_guess_inverted. * m4/argz.m4 (gl_FUNC_ARGZ): Obey --enable-cross-guesses for lt_cv_sys_argz_works. * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Obey --enable-cross-guesses for ac_cv_func_calloc_0_nonnull. * m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Obey --enable-cross-guesses for gl_cv_func_realpath_works. * m4/cbrtl.m4 (gl_FUNC_CBRTL): Obey --enable-cross-guesses for gl_cv_func_cbrtl_ieee. * m4/ceil.m4 (gl_FUNC_CEIL): Obey --enable-cross-guesses for gl_cv_func_ceil_ieee. * m4/ceilf.m4 (gl_FUNC_CEILF): Obey --enable-cross-guesses for gl_cv_func_ceilf_ieee. * m4/ceill.m4 (gl_FUNC_CEILL): Obey --enable-cross-guesses for gl_cv_func_ceill_ieee. * m4/chown.m4 (AC_FUNC_CHOWN): Obey --enable-cross-guesses for ac_cv_func_chown_works. (gl_FUNC_CHOWN): Obey --enable-cross-guesses for gl_cv_func_chown_slash_works, gl_cv_func_chown_ctime_works. * m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Obey --enable-cross-guesses for gl_cv_struct_dirent_d_ino. * m4/exp2l.m4 (gl_FUNC_EXP2L): Obey --enable-cross-guesses for gl_cv_func_exp2l_works, gl_cv_func_exp2l_ieee. * m4/expl.m4 (gl_FUNC_EXPL): Obey --enable-cross-guesses for gl_cv_func_expl_works. * m4/expm1.m4 (gl_FUNC_EXPM1): Obey --enable-cross-guesses for gl_cv_func_expm1_ieee. * m4/expm1l.m4 (gl_FUNC_EXPM1L): Obey --enable-cross-guesses for gl_cv_func_expm1l_works. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Obey --enable-cross-guesses for gl_cv_func_open_directory_works. * m4/fchownat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG): Obey --enable-cross-guesses for gl_cv_func_fchownat_nofollow_works. (gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG): Obey --enable-cross-guesses for gl_cv_func_fchownat_empty_filename_works. * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Obey --enable-cross-guesses for gl_cv_func_fdopendir_works. * m4/floor.m4 (gl_FUNC_FLOOR): Obey --enable-cross-guesses for gl_cv_func_floor_ieee. * m4/floorf.m4 (gl_FUNC_FLOORF): Obey --enable-cross-guesses for gl_cv_func_floorf_ieee. * m4/fma.m4 (gl_FUNC_FMA_WORKS): Obey --enable-cross-guesses for gl_cv_func_fma_works. * m4/fmaf.m4 (gl_FUNC_FMAF_WORKS): Obey --enable-cross-guesses for gl_cv_func_fmaf_works. * m4/fmal.m4 (gl_FUNC_FMAL_WORKS): Obey --enable-cross-guesses for gl_cv_func_fmal_works. * m4/fmod.m4 (gl_FUNC_FMOD): Obey --enable-cross-guesses for gl_cv_func_fmod_ieee. * m4/fmodf.m4 (gl_FUNC_FMODF): Obey --enable-cross-guesses for gl_cv_func_fmodf_ieee. * m4/fmodl.m4 (gl_FUNC_FMODL): Obey --enable-cross-guesses for gl_cv_func_fmodl_ieee. * m4/fpurge.m4 (gl_FUNC_FPURGE): Obey --enable-cross-guesses for gl_cv_func_fpurge_works. * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Obey --enable-cross-guesses for gl_cv_func_getcwd_path_max. * m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Obey --enable-cross-guesses for gl_cv_func_getcwd_null. (gl_FUNC_GETCWD): Update for getcwd-path-max.m4 change. * m4/getdelim.m4 (gl_FUNC_GETDELIM): Obey --enable-cross-guesses for gl_cv_func_working_getdelim. * m4/getgroups.m4 (AC_FUNC_GETGROUPS): Obey --enable-cross-guesses for ac_cv_func_getgroups_works. Keep this macro also in Autoconf >= 2.70. (gl_FUNC_GETGROUPS): Obey --enable-cross-guesses for gl_cv_func_getgroups_works. * m4/getline.m4 (gl_FUNC_GETLINE): Obey --enable-cross-guesses for am_cv_func_working_getline. * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Obey --enable-cross-guesses for gl_cv_func_getopt_gnu. * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY_CLOBBER): Obey --enable-cross-guesses for gl_cv_func_gettimeofday_clobber. * m4/hypot.m4 (gl_FUNC_HYPOT): Obey --enable-cross-guesses for gl_cv_func_hypot_ieee. * m4/hypotf.m4 (gl_FUNC_HYPOTF): Obey --enable-cross-guesses for gl_cv_func_hypotf_ieee. * m4/hypotl.m4 (gl_FUNC_HYPOTL): Obey --enable-cross-guesses for gl_cv_func_hypotl_ieee. * m4/iconv_open-utf.m4 (gl_FUNC_ICONV_OPEN_UTF_SUPPORT): Obey --enable-cross-guesses for gl_cv_func_iconv_supports_utf. * m4/link.m4 (gl_FUNC_LINK): Obey --enable-cross-guesses for gl_cv_func_link_works. * m4/linkat.m4 (gl_FUNC_LINKAT): Obey --enable-cross-guesses for gl_cv_func_linkat_slash. * m4/log.m4 (gl_FUNC_LOG): Obey --enable-cross-guesses for gl_cv_func_log_ieee. * m4/logf.m4 (gl_FUNC_LOGF): Obey --enable-cross-guesses for gl_cv_func_logf_ieee. * m4/logl.m4 (gl_FUNC_LOGL_WORKS): Obey --enable-cross-guesses for gl_cv_func_logl_works. * m4/log10.m4 (gl_FUNC_LOG10): Obey --enable-cross-guesses for gl_cv_func_log10_ieee. * m4/log10f.m4 (gl_FUNC_LOG10F): Obey --enable-cross-guesses for gl_cv_func_log10f_ieee. * m4/log10l.m4 (gl_FUNC_LOG10L_WORKS): Obey --enable-cross-guesses for gl_cv_func_log10l_works. * m4/log1p.m4 (gl_FUNC_LOG1P): Obey --enable-cross-guesses for gl_cv_func_log1p_ieee. * m4/log1pf.m4 (gl_FUNC_LOG1PF): Obey --enable-cross-guesses for gl_cv_func_log1pf_ieee. * m4/log1pl.m4 (gl_FUNC_LOG1PL): Obey --enable-cross-guesses for gl_cv_func_log1pl_ieee. * m4/log2.m4 (gl_FUNC_LOG2): Obey --enable-cross-guesses for gl_cv_func_log2_ieee. * m4/log2f.m4 (gl_FUNC_LOG2F): Obey --enable-cross-guesses for gl_cv_func_log2f_ieee. * m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Obey --enable-cross-guesses for gl_cv_func_lstat_dereferences_slashed_symlink. * m4/malloc.m4 (_AC_FUNC_MALLOC_IF): Obey --enable-cross-guesses for ac_cv_func_malloc_0_nonnull. Keep this macro also in Autoconf >= 2.70. * m4/mbrtowc.m4 (gl_MBRTOWC_C_LOCALE): Obey --enable-cross-guesses for gl_cv_C_locale_sans_EILSEQ. * m4/memchr.m4 (gl_FUNC_MEMCHR): Obey --enable-cross-guesses for gl_cv_func_memchr_works. * m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): Obey --enable-cross-guesses for gl_cv_func_memmem_works_always. (gl_FUNC_MEMMEM): Obey --enable-cross-guesses for gl_cv_func_memmem_works_fast. * m4/mkdir.m4 (gl_FUNC_MKDIR): Obey --enable-cross-guesses for gl_cv_func_mkdir_trailing_slash_works, gl_cv_func_mkdir_trailing_dot_works. * m4/mkfifo.m4 (gl_FUNC_MKFIFO): Obey --enable-cross-guesses for gl_cv_func_mkfifo_works. * m4/mknod.m4 (gl_FUNC_MKNOD): Obey --enable-cross-guesses for gl_cv_func_mknod_works. * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Obey --enable-cross-guesses for gl_cv_func_working_mkstemp. * m4/mktime.m4 (gl_FUNC_MKTIME_WORKS): Obey --enable-cross-guesses for gl_cv_func_working_mktime. * m4/modf.m4 (gl_FUNC_MODF): Obey --enable-cross-guesses for gl_cv_func_modf_ieee. * m4/modff.m4 (gl_FUNC_MODFF): Obey --enable-cross-guesses for gl_cv_func_modff_ieee. * m4/modfl.m4 (gl_FUNC_MODFL): Obey --enable-cross-guesses for gl_cv_func_modfl_ieee. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Obey --enable-cross-guesses for gl_cv_func_nanosleep. * m4/perror.m4 (gl_FUNC_PERROR): Obey --enable-cross-guesses for gl_cv_func_perror_works. * m4/printf.m4 (gl_PRINTF_SIZES_C99): Obey --enable-cross-guesses for gl_cv_func_printf_sizes_c99. (gl_PRINTF_INFINITE): Obey --enable-cross-guesses for gl_cv_func_printf_infinite. (gl_PRINTF_INFINITE_LONG_DOUBLE): Obey --enable-cross-guesses for gl_cv_func_printf_infinite_long_double. (gl_PRINTF_DIRECTIVE_A): Obey --enable-cross-guesses for gl_cv_func_printf_directive_a. (gl_PRINTF_DIRECTIVE_F): Obey --enable-cross-guesses for gl_cv_func_printf_directive_f. (gl_PRINTF_FLAG_ZERO): Obey --enable-cross-guesses for gl_cv_func_printf_flag_zero. (gl_PRINTF_ENOMEM): Obey --enable-cross-guesses for gl_cv_func_printf_enomem. (gl_SNPRINTF_TRUNCATION_C99): Obey --enable-cross-guesses for gl_cv_func_snprintf_truncation_c99. (gl_SNPRINTF_RETVAL_C99): Obey --enable-cross-guesses for gl_cv_func_snprintf_retval_c99. (gl_SNPRINTF_DIRECTIVE_N): Obey --enable-cross-guesses for gl_cv_func_snprintf_directive_n. (gl_VSNPRINTF_ZEROSIZE_C99): Obey --enable-cross-guesses for gl_cv_func_vsnprintf_zerosize_c99. * m4/pselect.m4 (gl_FUNC_PSELECT): Obey --enable-cross-guesses for gl_cv_func_pselect_detects_ebadf. * m4/pthread_rwlock_rdlock.m4 (gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER): Obey --enable-cross-guesses for gl_cv_pthread_rwlock_rdlock_prefer_writer. * m4/ptsname.m4 (gl_FUNC_PTSNAME): Obey --enable-cross-guesses for gl_cv_func_ptsname_sets_errno. * m4/putenv.m4 (gl_FUNC_PUTENV): Obey --enable-cross-guesses for gl_cv_func_svid_putenv. * m4/readlink.m4 (gl_FUNC_READLINK): Obey --enable-cross-guesses for gl_cv_func_readlink_works. * m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Obey --enable-cross-guesses for ac_cv_func_realloc_0_nonnull. Keep this macro also in Autoconf >= 2.70. * m4/regex.m4 (gl_REGEX): Obey --enable-cross-guesses for gl_cv_func_re_compile_pattern_working. * m4/remainder.m4 (gl_FUNC_REMAINDER): Obey --enable-cross-guesses for gl_cv_func_remainder_ieee. * m4/remainderf.m4 (gl_FUNC_REMAINDERF): Obey --enable-cross-guesses for gl_cv_func_remainderf_ieee. * m4/remainderl.m4 (gl_FUNC_REMAINDERL): Obey --enable-cross-guesses for gl_cv_func_remainderl_ieee. * m4/rintl.m4 (gl_FUNC_RINTL): Obey --enable-cross-guesses for gl_cv_func_rintl_works. * m4/rmdir.m4 (gl_FUNC_RMDIR): Obey --enable-cross-guesses for gl_cv_func_rmdir_works. * m4/round.m4 (gl_FUNC_ROUND): Obey --enable-cross-guesses for gl_cv_func_round_ieee. * m4/roundf.m4 (gl_FUNC_ROUNDF): Obey --enable-cross-guesses for gl_cv_func_roundf_ieee. * m4/roundl.m4 (gl_FUNC_ROUNDL): Obey --enable-cross-guesses for gl_cv_func_roundl_ieee. * m4/select.m4 (gl_FUNC_SELECT): Obey --enable-cross-guesses for gl_cv_func_select_detects_ebadf. * m4/setenv.m4 (gl_FUNC_SETENV): Obey --enable-cross-guesses for gl_cv_func_setenv_works. (gl_FUNC_UNSETENV): Obey --enable-cross-guesses for gl_cv_func_unsetenv_works. * m4/signbit.m4 (gl_SIGNBIT): Obey --enable-cross-guesses for gl_cv_func_signbit, gl_cv_func_signbit_gcc. * m4/sleep.m4 (gl_FUNC_SLEEP): Obey --enable-cross-guesses for gl_cv_func_sleep_works. * m4/stat.m4 (gl_FUNC_STAT): Obey --enable-cross-guesses for gl_cv_func_stat_file_slash. * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Obey --enable-cross-guesses for gl_cv_func_stpncpy. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Obey --enable-cross-guesses for gl_cv_func_strcasestr_works_always. (gl_FUNC_STRCASESTR): Obey --enable-cross-guesses for gl_cv_func_strcasestr_linear. * m4/strerror.m4 (gl_FUNC_STRERROR): Obey --enable-cross-guesses for gl_cv_func_working_strerror. (gl_FUNC_STRERROR_0): Obey --enable-cross-guesses for gl_cv_func_strerror_0_works. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS): Obey --enable-cross-guesses for gl_cv_func_strerror_r_works. * m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE): Obey --enable-cross-guesses for gl_cv_func_strstr_works_always. (gl_FUNC_STRSTR): Obey --enable-cross-guesses for gl_cv_func_strstr_linear. * m4/strtod.m4 (gl_FUNC_STRTOD): Obey --enable-cross-guesses for gl_cv_func_strtod_works. * m4/strtold.m4 (gl_FUNC_STRTOLD): Obey --enable-cross-guesses for gl_cv_func_strtold_works. * m4/symlink.m4 (gl_FUNC_SYMLINK): Obey --enable-cross-guesses for gl_cv_func_symlink_works. * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Obey --enable-cross-guesses for gl_cv_func_symlinkat_works. * m4/trunc.m4 (gl_FUNC_TRUNC): Obey --enable-cross-guesses for gl_cv_func_trunc_ieee. * m4/truncf.m4 (gl_FUNC_TRUNCF): Obey --enable-cross-guesses for gl_cv_func_truncf_ieee. * m4/truncl.m4 (gl_FUNC_TRUNCL): Obey --enable-cross-guesses for gl_cv_func_truncl_ieee. * m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): Obey --enable-cross-guesses for gl_cv_func_tzset_clobber. * m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): Obey --enable-cross-guesses for gl_cv_func_ungetc_works. * m4/unlink.m4 (gl_FUNC_UNLINK): Obey --enable-cross-guesses for gl_cv_func_unlink_honors_slashes, gl_cv_func_unlink_parent_fails. * m4/usleep.m4 (gl_FUNC_USLEEP): Obey --enable-cross-guesses for gl_cv_func_usleep_works. * m4/utimens.m4 (gl_UTIMENS): Obey --enable-cross-guesses for gl_cv_func_futimesat_works. * m4/utimes.m4 (gl_FUNC_UTIMES): Obey --enable-cross-guesses for gl_cv_func_working_utimes. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Obey --enable-cross-guesses for gl_cv_func_wcwidth_works. * m4/glob.m4 (gl_GLOB): When cross-compiling, don't create symlinks for testing. Obey --enable-cross-guesses for gl_cv_glob_lists_symlinks. * m4/rename.m4 (gl_FUNC_RENAME): When cross-compiling, don't create links for testing. Obey --enable-cross-guesses for gl_cv_func_rename_slash_dst_works, gl_cv_func_rename_slash_src_works, gl_cv_func_rename_link_works, gl_cv_func_rename_dest_works. 2019-09-08 Bruno Haible Clarify that cross-compilation guesses are guesses. * m4/threads.m4 (gl_THREADS_H): Say "guessing yes" or "guessing no" when cross-compiling. 2019-09-08 Bruno Haible chown: Fix configure output (regression from 2019-03-23). * m4/chown.m4 (gl_FUNC_CHOWN): Fix reference to gl_cv_func_chown_follows_symlink variable. 2019-09-08 Bruno Haible findprog-in: New module. Suggested by Paul Smith . * lib/findprog.h (find_in_given_path): New declaration. * lib/findprog-in.c: New file, based on lib/findprog.c. * m4/findprog-in.m4: New file, based on m4/findprog.m4. * modules/findprog-in: New file. 2019-09-08 Bruno Haible findprog: Remove unused dependency. * modules/findprog (Depends-on): Remove strdup. 2019-09-08 Bruno Haible findprog: Remove test that is obsolete since 2006-04-24. * m4/findprog.m4 (gl_FINDPROG): Don't test for unistd.h. 2019-09-06 Akim Demaille bitset: style changes * lib/bitset/vector.c (vbitset_resize): Factor computation. * lib/bitset.c, lib/bitset/stats.c, lib/bitsetv.c: Prefer xzalloc to xcalloc. Suggested by Paul Eggert. 2019-09-06 Akim Demaille bitset: check memory allocation Reported by 江 祖铭 (Zu-Ming Jiang). With help from Paul Eggert. https://lists.gnu.org/archive/html/bug-bison/2019-08/msg00016.html * lib/bitset/table.c (tbitset_resize): When growing, use xrealloc instead of realloc. When shrinking, accept failures. * lib/bitset/vector.c (vbitset_resize): Likewise. 2019-09-07 Paul Eggert scratch_buffer: sync from glibc * config/srclist.txt: Add the scratch_buffer source code from glibc, since these should be in sync. Autoupdate. 2019-09-07 Bruno Haible doc: Update for glibc 2.30. * doc/glibc-functions/gettid.texi: New file. * doc/glibc-functions/pthread_cond_clockwait.texi: New file. * doc/glibc-functions/pthread_mutex_clocklock.texi: New file. * doc/glibc-functions/pthread_rwlock_clockrdlock.texi: New file. * doc/glibc-functions/pthread_rwlock_clockwrlock.texi: New file. * doc/glibc-functions/sem_clockwait.texi: New file. * doc/glibc-functions/tgkill.texi: New file. * doc/glibc-functions/twalk_r.texi: New file. * doc/gnulib.texi: Include them. (Glibc semaphore.h): New section. * doc/pastposix-functions/h_errno.texi: Update. * doc/posix-functions/*.texi: Likewise. 2019-09-06 Bruno Haible symlink tests: Avoid test failure on Linux with Lustre file system. Reported by Thomas C Oppe at . * tests/test-symlink.h (test_symlink): Accept errno value ENOENT. 2019-09-01 Bruno Haible gitsub.sh: Add support for shallow-cloning of subdirectories. * top/gitsub.sh (func_usage): Document allowed git options with 'git pull'. (func_pull): Accept GIT_OPTIONS argument. (pull): Parse git options before complaining about too many arguments. Pass the git options to func_pull. 2019-08-29 Bruno Haible lock: Fix cross-compilation guesses. * m4/pthread_rwlock_rdlock.m4 (gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER): Require AC_CANONICAL_HOST. When cross-compiling, guess no on most platforms. 2019-08-28 Bruno Haible isfinite, isinf, isnan, signbit: Fix error in C++ mode on mingw. Reported by Martin Storsjö in . * lib/math.in.h (_GL_MATH_CXX_REAL_FLOATING_DECL_2): Add more arguments. (isfinite, isinf, isnan, signbit): On platforms that use C++ include files from GCC 6 or newer, use an override through '#define', because the inline definitions in the platform's cannot be overridden in another way. 2019-08-27 Paul Eggert Revert macOS INT_MULTIPLY_WRAPV patch Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2019-08/msg00076.html * lib/intprops.h (_GL_HAS___builtin_mul_overflow): Remove. (_GL_HAS_BUILTIN_MUL_OVERFLOW): Go back to working around the Clang bug on macOS. 2019-08-27 Bruno Haible libtool-next-version: Fix error output. * build-aux/libtool-next-version (func_fatal_error): Fix the program name. 2019-08-27 Paul Eggert Speed up INT_MULTIPLY_WRAPV on macOS Assume that __builtin_mul_overflow works OK with Clang on macOS. Mattias Engdegård says it’s safe to assume the relevant library is always available there. * lib/intprops.h (_GL_HAS___builtin_mul_overflow): New temporary internal macro. (_GL_HAS_BUILTIN_MUL_OVERFLOW): No need to work around the Clang bug on macOS. 2019-08-25 Paul Eggert intprops.h, verify.h: port better to clang Improve code generated by INT_ADD_WRAPV and INT_SUBTRACT_WRAPV with Clang. Problem reported privately by Mattias Engdegård. Also, insulate intprops.h and verify.h better against each other’s definitions of __has_builtin on non-Clang hosts. * lib/intprops.h (__has_builtin): Define a temporary substitute if __has_builtin is not already defined. (_GL_HAS___builtin_add_overflow, _GL_TEMPDEF___has_builtin): New temporary internal macros. (_GL_HAS_BUILTIN_ADD_OVERFLOW, _GL_HAS_BUILTIN_MUL_OVERFLOW): Now two separate macros, replacing the old _GL_HAS_BUILTIN_OVERFLOW, since we no longer assume that __builtin_mul_overflow is like the rest. All uses changed. (INT_ADD_WRAPV, INT_SUBTRACT_WRAPV, INT_MULTIPLY_WRAPV): Adjust to above changes. (_GL_INT_OP_WRAPV): Remove ‘builtin’ arg, since it’s no longer relevant. All uses changed. * lib/verify.h (__has_builtin): Treat like intprops.h, so that the two .h files do not collide with each other. (_GL_HAS___builtin_unreachable, _GL_HAS___builtin_trap) (_GL_TEMPDEF___has_builtin): New temporary internal macros. 2019-08-24 Paul Eggert intprops: say why not Clang __builtin_add_overflow * lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW): Mention Clang in comment, responding to a query from Mattias Engdegård. 2019-08-24 Bruno Haible doc: Document most of the files outside of modules. * doc/gnulib.texi (Build Infrastructure Files, Release Management Files): New chapters. 2019-08-24 Bruno Haible bootstrap: Keep in sync with the 'gettext' module. Reported by Assaf Gordon in . * build-aux/po/Makefile.in.in: Update to gettext 0.20. * build-aux/po/remove-potcdate.sin: Likewise. 2019-08-24 Bruno Haible crypto/gc-sha512: Add tests. * tests/test-gc-sha512.c: New file, based on tests/test-gc-sha1.c. * modules/crypto/gc-sha512-tests: New file. crypto/gc-sha256: Add tests. * tests/test-gc-sha256.c: New file, based on tests/test-gc-sha1.c. * modules/crypto/gc-sha256-tests: New file. crypto/gc-sha256, crypto/gc-sha512: New modules. * lib/gc.h (gc_sha256, gc_sha512): New declarations. * lib/gc-gnulib.c: Include sha256.h, sha512.h. (MAX_DIGEST_SIZE): Set to 64. (_gc_hash_ctx, gc_hash_open, gc_hash_digest_length, gc_hash_write, gc_hash_read, gc_hash_buffer): Add support for sha256 and sha512. (gc_sha256, gc_sha512): New functions. * lib/gc-libgcrypt.c (gc_sha256, gc_sha512): New functions. * modules/crypto/gc-sha256: New file, based on modules/crypto/gc-sha1. * modules/crypto/gc-sha512: New file, based on modules/crypto/gc-sha1. 2019-08-24 Bruno Haible crypto/gc-sha1 tests: Improve output when the test fails. * tests/test-gc-sha1.c (main): In case of mismatch, print the entire output. 2019-08-24 Bruno Haible crypto/gc-sm3: Fix compilation error with --with-libgcrypt. * m4/gc-sm3.m4 (gl_GC_SM3): Test whether libgcrypt supports SM3. Define LIBGCRYPT_HAS_MD_SM3. * lib/gc-libgcrypt.c: Include sm3.h. (_gc_hash_ctx, gc_hash_open, gc_hash_hmac_setkey, gc_hash_write, gc_hash_read, gc_hash_close, gc_hash_buffer, gc_sm3): Use the gnulib implementation if libgcrypt does not support SM3. 2019-08-24 Bruno Haible crypto/gc-md2: Optimize and clarify code. * lib/gc-gnulib.c (gc_hash_open): Comment out md2_init_ctx invocation. * lib/gc-libgcrypt.c (gc_hash_open): Clarify why md2_init_ctx invocation is not needed. 2019-08-24 Bruno Haible crypto/gc-md2: Add comment. * lib/gc-libgcrypt.c: Add comment. 2019-08-24 Bruno Haible crypto/gc-{md[24],rijndael} tests: Fix link error with --with-libgcrypt. * modules/crypto/gc-md2-tests (test_gc_md2_LDADD): New variable. * modules/crypto/gc-md4-tests (test_gc_md4_LDADD): New variable. * modules/crypto/gc-rijndael-tests (test_gc_rijndael_LDADD): New variable. 2019-08-24 Bruno Haible crypto/gc: Fix link error with --with-libgcrypt. * m4/gc.m4 (gl_GC): Set LIB_CRYPTO to the value found by the AC_LIB_HAVE_LINKFLAGS invocation. 2019-08-24 Bruno Haible crypto/gc: Access the module indicators correctly. * lib/gc-gnulib.c: Use '#if GNULIB_GC_*', not '#ifdef GNULIB_GC_*'. * lib/gc-libgcrypt.c: Likewise. 2019-08-24 Bruno Haible crypto/gc: Fix configuration with --with-libgcrypt. * m4/libgcrypt.m4: New file, copied from libgcrypt/src/libgcrypt.m4. * modules/crypto/gc (Files): Add it. * m4/gc.m4 (gl_GC): Assume AM_PATH_LIBGCRYPT is defined. 2019-08-24 Bruno Haible Remove unused file. * m4/stat-macros.m4: Remove file. 2019-08-21 Paul Eggert New strip-trailing-space option for srclist-update * config/srclist-update (fixfile): Support new option. * config/srclist.txt (texinfo.tex, maintain.texi, standards.texi): Use it. 2019-08-20 Eric Blake accept4: Support SOCK_NONBLOCK, if defined * lib/accept4.c (accept4): If SOCK_NONBLOCK is defined, honor it. accept4: Fix compilation when native accept4() exists. Reported by Richard W.M. Jones in https://lists.gnu.org/archive/html/bug-gnulib/2019-08/msg00029.html * lib/accept4.c (accept4): Match witness symbol to m4 file update. 2019-08-18 Bruno Haible Defeat -flto GCC optimization in math autoconf tests. Reported by Tomasz Kłoczko at . * m4/mathfunc.m4 (gl_MATHFUNC): Mark function pointer as 'volatile'. * m4/acosl.m4 (gl_FUNC_ACOSL): Likewise. * m4/asinl.m4 (gl_FUNC_ASINL): Likewise. * m4/atanl.m4 (gl_FUNC_ATANL): Likewise. * m4/cosl.m4 (gl_FUNC_COSL): Likewise. * m4/exp2.m4 (gl_FUNC_EXP2): Likewise. * m4/expl.m4 (gl_FUNC_EXPL): Likewise. * m4/expm1.m4 (gl_FUNC_EXPM1): Likewise. * m4/expm1l.m4 (gl_FUNC_EXPM1L): Likewise. * m4/sinl.m4 (gl_FUNC_SINL): Likewise. * m4/sqrtl.m4 (gl_FUNC_SQRTL): Likewise. * m4/tanl.m4 (gl_FUNC_TANL): Likewise. 2019-08-17 Bruno Haible windows-spin: Implement declared functions. Reported by Gisle Vanem in . * lib/windows-spin.c (glwthread_spin_trylock): Fix typo in function name. 2019-08-17 Paul Eggert intprops: port to Oracle Developer Studio 12.6 * lib/intprops.h (_GL_INT_OP_WRAPV): Fix recently-introduced typos that were in a section not compiled by GCC. 2019-08-14 Paul Eggert intprops: support uchar, ushort _WRAPV dests * lib/intprops.h (_GL_INT_OP_WRAPV_SMALLISH): New macro, defined when __builtin_add_overflow etc. and _Generic are not used. (_GL_INT_OP_WRAPV): Use it to support destinations that are unsigned char or unsigned short, even in compilers that lack __typeof__ and are not C11-compatible. intprops: pacify picky GCC * lib/intprops.h (_GL_BUILTIN_MUL_OVERFLOW): Pacify GCC’s complaints about ignoring __builtin_mul_overflow’s possibly-incorrect result. (_GL_INT_MULTIPLY_RANGE_OVERFLOW): Pacify GCC’s complaints about (A) used as a boolean, when A is an expression like 3 * 4. intprops: support unsigned *_WRAPV results Add support for unsigned, unsigned long, and unsigned long long results to INT_ADD_WRAPV, INT_SUBTRACT_WRAPV, and INT_MULTIPLY_WRAPV. Also, work around GCC bug 91450, and fix a bug with unsigned inputs reported by Eli Zaretskii in: https://lists.gnu.org/r/bug-gnulib/2019-08/msg00012.html * config/srclist.txt: Break the glibc connection for intprops.h temporarily, while more testing is done in Gnulib-using apps. * lib/intprops.h (INT_ADD_WRAPV, INT_SUBTRACT_WRAPV) (INT_MULTIPLY_WRAPV, _GL_INT_OP_WRAPV, _GL_INT_OP_WRAPV_LONGISH): Support unsigned results no narrower than unsigned int. Report overflow correctly if some arguments are unsigned. (_GL_BUILTIN_MUL_OVERFLOW): New macro, to work around GCC bug 91450. (_GL_INT_OP_CALC): Simplify now that the OVERFLOW argument does the right thing with narrow args. (_GL_INT_OP_CALC1): Remove. All callers removed. (_GL_INT_ADD_RANGE_OVERFLOW, _GL_INT_SUBTRACT_RANGE_OVERFLOW) (_GL_INT_MULTIPLY_RANGE_OVERFLOW): New macros. * tests/test-intprops.c: Check for bugs and test new behavior. 2019-08-14 Bruno Haible get_progname_of: New module. * lib/get_progname_of.h: New file. * lib/get_progname_of.c: New file, based on lib/getprogname.c. * lib/getprogname.c (getprogname): Tweak coding style. * lib/vma-iter.c (vma_iterate_bsd): Update comment. * modules/get_progname_of: New file. 2019-08-14 Bruno Haible get_ppid_of: New module. * lib/get_ppid_of.h: New file. * lib/get_ppid_of.c: New file. * modules/get_ppid_of: New file. 2019-08-13 Bruno Haible libtextstyle-optional tests: Support the NO_COLOR environment variable. * tests/test-libtextstyle.c (main): Do not emit styling when the environment variable NO_COLOR is set. 2019-08-12 Paul Eggert verify: improve diagnostic quality in recent GCC If ‘verify’ fails in a deeply-nested macro, GCC does not output a useful line number containing the top-level caller of the macro. So, bring back the older way of issuing a diagnostic containing the top-level call’s arg, so that it is easier to diagnose ‘verify’ failures with recent GCC. * lib/verify.h (_GL_VERIFY_TRUE, _GL_VERIFY_TYPE): Bring back DIAGNOSTIC arg. All callers changed. (verify): Just use _GL_VERIFY. 2019-08-11 Bruno Haible localcharset: Add more aliases for OS/2. Based on patch by KO Myung-Hun in . * lib/localcharset.c (alias_table) [OS2]: Add more aliases. 2019-08-10 Eric Blake configmake: Update advice on usage. * modules/configmake (Include): No longer necessary to include last, since configmake.h itself worries about collision avoidance. 2019-08-10 Assaf Gordon parse-datetime: fix 'T' military timezone handling * lib/parse-datetime.y (zone): follow-up to the previous commit: the 'T' case is handled outside the conversion table (used as either military timezone UTC-7 or ISO8601 separator). Change it from "HOUR(7)" to "-HOUR(7)" to match other timezone letters. 2019-08-09 Paul Eggert parse-datetime: fix military timezone letters Problem and trivial fix reported by Neil Hoggarth in: https://lists.gnu.org/r/bug-gnulib/2019-08/msg00005.html * lib/parse-datetime.y (military_table): Do it the right way, not the RFC 822 way. 2019-08-08 Eric Blake configmake: Avoid namespace pollution issue on mingw. * modules/configmake (Makefile.am): If the project uses , include that header before defining DATADIR. 2019-07-28 Bruno Haible mbrtowc tests: Fix regression on mingw (regression from 2018-02-24). * tests/test-mbrtowc.c (main): Fix expected value of wc. 2019-07-24 Bruno Haible pthread-h: Fix definitions of types and macros on mingw. * lib/pthread.in.h (pthread_t, pthread_attr_t, PTHREAD_CREATE_JOINABLE, PTHREAD_CREATE_DETACHED): Define also when module 'pthread-thread' is not in use. (pthread_once_t, PTHREAD_ONCE_INIT): Define also when module 'pthread-once' is not in use. (pthread_mutex_t, pthread_mutexattr_t, PTHREAD_MUTEX_INITIALIZER, PTHREAD_MUTEX_DEFAULT, PTHREAD_MUTEX_NORMAL, PTHREAD_MUTEX_ERRORCHECK, PTHREAD_MUTEX_RECURSIVE): Define also when module 'pthread-mutex' is not in use. (pthread_rwlock_t, pthread_rwlockattr_t, PTHREAD_RWLOCK_INITIALIZER): Define also when module 'pthread-rwlock' is not in use. (pthread_cond_t, pthread_condattr_t, PTHREAD_COND_INITIALIZER): Define also when module 'pthread-cond' is not in use. (pthread_key_t, PTHREAD_DESTRUCTOR_ITERATIONS): Define also when module 'pthread-tss' is not in use. (pthread_spinlock_t): Define also when module 'pthread-spin' is not in use. 2019-07-24 Simon Josefsson crypto/gc: Cope with libgcrypt without SM3. * lib/gc-libgcrypt.c (gc_hash_open): Guard SM3 usage. 2019-07-23 Paul Eggert backupfile: fix resource leak on memory failure Problem found by Coverity (CID 1484214). * lib/backupfile.c (backupfile_internal): Don’t leak dirp. 2019-07-22 Bruno Haible Avoid missing-declarations warning in various tests. * tests/test-argp.c (fail, test1, test2, test_file, test3, test4, test5, test6, test_optional, test7, test8, test9, test10, test11, test12, test13, test14, test15, test_fun): Declare static. * tests/test-cnd.c (test_cnd_wait): Likewise. * tests/test-cond.c (test_cond): Likewise. 2019-07-22 Bernhard Voelker pthread tests: Avoid missing-declarations warning. * tests/test-pthread-cond.c (test_pthread_cond_wait): Declare static. 2019-07-19 Bruno Haible parse-datetime: Avoid warnings from bison versions >= 3.3. Reported by Bernhard Voelker . * modules/parse-datetime (Makefile.am): Don't pass option '-y' to bison. 2019-07-19 Bruno Haible parse-datetime: Require Bison 2.4 or newer. * m4/parse-datetime.m4 (gl_PARSE_DATETIME): Set PARSE_DATETIME_BISON. Code taken from gettext's intl.m4. * modules/parse-datetime (Makefile.am): Use PARSE_DATETIME_BISON instead of YACC. 2019-07-19 Bruno Haible areadlink-with-size, xgethostname, xgetdomainname: Fix GCC warning. * lib/areadlink-with-size.c: Include . * lib/areadlinkat-with-size.c: Likewise. * lib/xgethostname.c: Likewise. * lib/xgetdomainname.c: Likewise. 2019-07-19 Bernhard Voelker parse-datetime: avoid "%pure-parser" deprecation warning from Bison 3.4 * lib/parse-datetime.y: Use "%define api.pure" rather than obsolescent "%pure-parser". The former is available since Bison 2.3b (2008), while the latter is marked as obsolete since version 3.4 (May 2019). 2019-07-16 Bruno Haible update-copyright: Make it work again (regression from 2019-06-15). Reported by Brian C. Lane . * build-aux/update-copyright: Add back the -0777, -p, -i options. 2019-07-14 Bruno Haible doc: Update info about . * doc/posix-headers/pthread.texi: Mention the module 'pthread-h' instead of 'pthread'. 2019-07-14 Bruno Haible pthread_sigmask tests: Use new multithread modules. * tests/test-pthread_sigmask2.c: Include instead of glthread/thread.h. (main_thread, killer_thread): Change type to pthread_t. (main): Update accordingly. * modules/pthread_sigmask-tests (Depends-on): Add pthread-thread. Remove thread. 2019-07-14 Bruno Haible pthread-tss: Add tests. * tests/test-pthread-tss.c: New file, based on tests/test-tls.c and tests/test-tss.c. * modules/pthread-tss-tests: New file. 2019-07-14 Bruno Haible pthread-cond: Add tests. * tests/test-pthread-cond.c: New file, based on tests/test-cond.c and tests/test-cnd.c. * modules/pthread-cond-tests: New file. 2019-07-14 Bruno Haible pthread-rwlock: Add tests. * tests/test-pthread-rwlock.c: New file, based on tests/test-lock.c. * modules/pthread-rwlock-tests: New file. 2019-07-14 Bruno Haible pthread-mutex: Add tests. * tests/test-pthread-mutex.c: New file, based on tests/test-lock.c and tests/test-mtx.c. * modules/pthread-mutex-tests: New file. 2019-07-14 Bruno Haible pthread-once: Add tests. * tests/test-pthread-once1.c: New file, based on tests/test-once.c and tests/test-call_once.c. * tests/test-pthread-once2.c: New file, based on tests/test-lock.c and tests/test-mtx.c. * modules/pthread-once-tests: New file. 2019-07-14 Bruno Haible pthread-thread: Add tests. * tests/test-pthread-thread.c: New file, based on tests/test-thread_create.c and tests/test-thrd_create.c. * modules/pthread-thread-tests: New file. 2019-07-14 Bruno Haible pthread: Turn into a convenience module. * lib/pthread.in.h: Remove declarations for extern inline functions. * lib/pthread.c: Remove file. * modules/pthread (Files): Remove it. (Depends-on): Add pthread-thread, pthread-once, pthread-mutex, pthread-rwlock, pthread-cond, pthread-tss, pthread-spin. (configure.ac): Don't compile lib/pthread.c. Don't set GNULIB_PTHREAD. * m4/pthread_h.m4 (gl_PTHREAD_H_DEFAULTS): Don't initialize GNULIB_PTHREAD. * modules/pthread-h (Makefile.am): Don't substitute GNULIB_PTHREAD. 2019-07-14 Bruno Haible pthread-spin: New module. * lib/pthread.in.h (pthread_spin_init, pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock): Remove inline definitions. * lib/pthread-spin.c: New file. * m4/pthread-spin.m4: New file. * modules/pthread-spin: New file. * doc/posix-functions/pthread_spin_init.texi: Mention the new module. * doc/posix-functions/pthread_spin_lock.texi: Likewise. * doc/posix-functions/pthread_spin_trylock.texi: Likewise. * doc/posix-functions/pthread_spin_unlock.texi: Likewise. * doc/posix-functions/pthread_spin_destroy.texi: Likewise. 2019-07-14 Bruno Haible pthread-tss: New module. * lib/pthread-tss.c: New file. * m4/pthread-tss.m4: New file. * modules/pthread-tss: New file. * doc/posix-functions/pthread_key_create.texi: Mention the new module. * doc/posix-functions/pthread_setspecific.texi: Likewise. * doc/posix-functions/pthread_getspecific.texi: Likewise. * doc/posix-functions/pthread_key_delete.texi: Likewise. 2019-07-14 Bruno Haible pthread-cond: New module. * lib/pthread.in.h (pthread_cond_destroy, pthread_cond_init, pthread_cond_signal, pthread_cond_wait): Remove inline definitions. * lib/pthread-cond.c: New file. * m4/pthread-cond.m4: New file. * modules/pthread-cond: New file. * doc/posix-functions/pthread_cond_init.texi: Mention the new module. * doc/posix-functions/pthread_condattr_init.texi: Likewise. * doc/posix-functions/pthread_condattr_destroy.texi: Likewise. * doc/posix-functions/pthread_cond_wait.texi: Likewise. * doc/posix-functions/pthread_cond_timedwait.texi: Likewise. * doc/posix-functions/pthread_cond_signal.texi: Likewise. * doc/posix-functions/pthread_cond_broadcast.texi: Likewise. * doc/posix-functions/pthread_cond_destroy.texi: Likewise. 2019-07-14 Bruno Haible pthread-rwlock: New module. * lib/pthread-rwlock.c: New file, based on lib/glthread/lock.c. * m4/pthread-rwlock.m4: New file. * modules/pthread-rwlock: New file. * doc/posix-functions/pthread_rwlock_init.texi: Mention the new module and the Android problem. * doc/posix-functions/pthread_rwlockattr_init.texi: Likewise. * doc/posix-functions/pthread_rwlockattr_destroy.texi: Likewise. * doc/posix-functions/pthread_rwlock_rdlock.texi: Likewise. * doc/posix-functions/pthread_rwlock_wrlock.texi: Likewise. * doc/posix-functions/pthread_rwlock_tryrdlock.texi: Likewise. * doc/posix-functions/pthread_rwlock_trywrlock.texi: Likewise. * doc/posix-functions/pthread_rwlock_timedrdlock.texi: Likewise. * doc/posix-functions/pthread_rwlock_timedwrlock.texi: Likewise. * doc/posix-functions/pthread_rwlock_unlock.texi: Likewise. * doc/posix-functions/pthread_rwlock_destroy.texi: Likewise. 2019-07-14 Bruno Haible pthread-mutex: New module. * lib/pthread.in.h (pthread_mutexattr_destroy, pthread_mutexattr_init, pthread_mutexattr_settype, pthread_mutex_destroy, pthread_mutex_init, pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_timedlock, pthread_mutex_unlock): Remove inline definitions. * lib/pthread-mutex.c: New file. * m4/pthread-mutex.m4: New file. * modules/pthread-mutex: New file. * doc/posix-functions/pthread_mutex_init.texi: Mention the new module. * doc/posix-functions/pthread_mutexattr_init.texi: Likewise. * doc/posix-functions/pthread_mutexattr_gettype.texi: Likewise. * doc/posix-functions/pthread_mutexattr_settype.texi: Likewise. * doc/posix-functions/pthread_mutexattr_getrobust.texi: Likewise. * doc/posix-functions/pthread_mutexattr_setrobust.texi: Likewise. * doc/posix-functions/pthread_mutexattr_destroy.texi: Likewise. * doc/posix-functions/pthread_mutex_lock.texi: Likewise. * doc/posix-functions/pthread_mutex_trylock.texi: Likewise. * doc/posix-functions/pthread_mutex_timedlock.texi: Likewise. * doc/posix-functions/pthread_mutex_unlock.texi: Likewise. * doc/posix-functions/pthread_mutex_destroy.texi: Likewise. 2019-07-14 Bruno Haible pthread-once: New module. * lib/pthread-once.c: New file. * m4/pthread-once.m4: New file. * modules/pthread-once: New file. * doc/posix-functions/pthread_once.texi: Mention the new module. 2019-07-14 Bruno Haible pthread-thread: New module. * lib/pthread.in.h (pthread_create, pthread_exit, pthread_join): Remove inline definitions. * lib/pthread-thread.c: New file. * m4/pthread-thread.m4: New file. * modules/pthread-thread: New file. * doc/posix-functions/pthread_create.texi: Mention the new module. * doc/posix-functions/pthread_attr_init.texi: Likewise. * doc/posix-functions/pthread_attr_getdetachstate.texi: Likewise. * doc/posix-functions/pthread_attr_setdetachstate.texi: Likewise. * doc/posix-functions/pthread_attr_destroy.texi: Likewise. * doc/posix-functions/pthread_self.texi: Likewise. * doc/posix-functions/pthread_equal.texi: Likewise. * doc/posix-functions/pthread_detach.texi: Likewise. * doc/posix-functions/pthread_join.texi: Likewise. * doc/posix-functions/pthread_exit.texi: Likewise. 2019-07-14 Bruno Haible pthread-h: Prepare for adding new modules. * lib/pthread.in.h: Define the types and macros for each of the facilities separately. * m4/pthread_h.m4 (gl_PTHREAD_H): Set HAVE_PTHREAD_CREATE_DETACHED, HAVE_PTHREAD_MUTEX_RECURSIVE, HAVE_PTHREAD_MUTEX_ROBUST, HAVE_PTHREAD_PROCESS_SHARED. (gl_PTHREAD_H_DEFAULTS): Initialize HAVE_PTHREAD_CREATE_DETACHED, HAVE_PTHREAD_MUTEX_RECURSIVE, HAVE_PTHREAD_MUTEX_ROBUST, HAVE_PTHREAD_PROCESS_SHARED. * modules/pthread-h (Makefile.am): Substitute HAVE_PTHREAD_CREATE_DETACHED, HAVE_PTHREAD_MUTEX_RECURSIVE, HAVE_PTHREAD_MUTEX_ROBUST, HAVE_PTHREAD_PROCESS_SHARED. 2019-07-14 Bruno Haible pthread-h: Add declarations of essential pthread functions. * lib/pthread.in.h: Include snippets. (pthread_create, pthread_attr_init, pthread_attr_getdetachstate, pthread_attr_setdetachstate, pthread_attr_destroy, pthread_self, pthread_equal, pthread_detach, pthread_join, pthread_exit, pthread_once, pthread_mutex_init, pthread_mutexattr_init, pthread_mutexattr_gettype, pthread_mutexattr_settype, pthread_mutexattr_getrobust, pthread_mutexattr_setrobust, pthread_mutexattr_destroy, pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock, pthread_mutex_destroy, pthread_rwlock_init, pthread_rwlockattr_init, pthread_rwlockattr_destroy, pthread_rwlock_rdlock, pthread_rwlock_wrlock, pthread_rwlock_tryrdlock, pthread_rwlock_trywrlock, pthread_rwlock_timedrdlock, pthread_rwlock_timedwrlock, pthread_rwlock_unlock, pthread_rwlock_destroy, pthread_cond_init, pthread_condattr_init, pthread_condattr_destroy, pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal, pthread_cond_broadcast, pthread_cond_destroy, pthread_key_create, pthread_setspecific, pthread_getspecific, pthread_key_delete, pthread_spin_init, pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock, pthread_spin_destroy): New declarations. (pthread_mutex_timedlock): Move declaration. * m4/pthread_h.m4 (gl_PTHREAD_H): Check whether the new functions are declared. (gl_PTHREAD_H_DEFAULTS): Initialize GNULIB_PTHREAD_THREAD, GNULIB_PTHREAD_ONCE, GNULIB_PTHREAD_MUTEX, GNULIB_PTHREAD_RWLOCK, GNULIB_PTHREAD_COND, GNULIB_PTHREAD_TSS, GNULIB_PTHREAD_SPIN and the HAVE_* and REPLACE_* variables for the new functions. * modules/pthread-h (Depends-on): Add snippet/c++defs, snippet/_Noreturn, snippet/arg-nonnull, snippet/warn-on-use. (Makefile.am): Substitute GNULIB_PTHREAD_THREAD, GNULIB_PTHREAD_ONCE, GNULIB_PTHREAD_MUTEX, GNULIB_PTHREAD_RWLOCK, GNULIB_PTHREAD_COND, GNULIB_PTHREAD_TSS, GNULIB_PTHREAD_SPIN and the HAVE_* and REPLACE_* variables for the new functions. Split the sed script, to avoid the limit of 99 commands of HP-UX sed. * tests/test-pthread-c++.cc: Check the signature of the new functions. 2019-07-14 Bruno Haible pthread-h: Respect --enable-threads={posix|windows} option on mingw. * m4/pthread_h.m4 (gl_PTHREAD_H): Require gl_THREADLIB. Set HAVE_PTHREAD_H if gl_threads_api is 'windows'. (LIB_PTHREAD): Rely on $LIBMULTITHREAD from threadlib.m4. * modules/pthread (Link): Change to $(LIBMULTITHREAD). * modules/pthread-h (Depends-on): Add threadlib. (Link): Change to $(LIBTHREAD). * modules/pthread-h-c++-tests (test_pthread_c___LDADD): Use $(LIBMULTITHREAD) instead of $(LIB_PTHREAD). 2019-07-14 Bruno Haible pthread-h: Add C++ tests. * tests/test-pthread-c++.cc: New file. * modules/pthread-h-c++-tests: New file. 2019-07-14 Bruno Haible pthread-h: Add tests. * tests/test-pthread.c: New file. * modules/pthread-h-tests: New file. 2019-07-14 Bruno Haible pthread-h: New module. * lib/pthread.in.h: Define replacement functions only if GNULIB_PTHREAD is 1. * m4/pthread_h.m4: Renamed from m4/pthread.m4. (gl_PTHREAD_H): Renamed from gl_PTHREAD_CHECK. Don't test whether pollutes the namespace; instead, prepare for generating a pthread.h always. Substitute HAVE_PTHREAD_H here. (gl_PTHREAD_H_DEFAULTS): Renamed from gl_PTHREAD_DEFAULTS. Initialize GNULIB_PTHREAD. Don't initialize HAVE_PTHREAD_H here. * modules/pthread-h: New file, based on modules/pthread. * modules/pthread: Rely on 'pthread-h'. * m4/pthread_mutex_timedlock.m4 (gl_FUNC_PTHREAD_MUTEX_TIMEDLOCK): Update. * modules/pthread_mutex_timedlock (Depends-on): Add pthread-h. Remove pthread. 2019-07-14 Bruno Haible sched_yield: New module. * lib/sched.in.h: Add _GL_FUNCDECL_RPL, _GL_WARN_ON_USE placeholders. (sched_yield): New declaration. * lib/sched_yield.c: New file. * m4/sched_yield.m4: New file. * m4/sched_h.m4 (gl_SCHED_H): Require gl_SCHED_H_DEFAULTS. Arrange to provide a replacement sched.h always. Test whether sched_yield is declared. (gl_SCHED_MODULE_INDICATOR, gl_SCHED_H_DEFAULTS): New macros. * modules/sched (Depends-on): Add snippet/c++defs, snippet/warn-on-use. (Makefile.am): Provide a replacement sched.h always. Substitute GNULIB_SCHED_YIELD, HAVE_SCHED_YIELD, REPLACE_SCHED_YIELD, _GL_FUNCDECL_RPL, _GL_WARN_ON_USE. * modules/sched_yield: New file. * doc/posix-functions/sched_yield.texi: Mention the new module. 2019-07-14 Bruno Haible windows-spin: New module. * lib/windows-spin.h: New file. * lib/windows-spin.c: New file. * modules/windows-spin: New file. 2019-07-14 Bruno Haible windows-timedrwlock: New module. * lib/windows-timedrwlock.h: New file, based on windows-rwlock.h. * lib/windows-timedrwlock.c: New file, based on windows-rwlock.c and windows-cond.c. * lib/windows-cond.h (struct glwthread_waitqueue_link): Protect against redefinition conflict with windows-timedrwlock.h. * modules/windows-timedrwlock: New file. 2019-07-14 Bruno Haible windows-rwlock: New module. * lib/windows-rwlock.h: New file, extracted from lib/glthread/lock.h. * lib/windows-rwlock.c: New file, extracted from lib/glthread/lock.c. * lib/glthread/lock.h: Include windows-rwlock.h. Don't include windows-initguard.h. (gl_rwlock_t): Define using glwthread_rwlock_t. (gl_rwlock_initializer): Define using GLWTHREAD_RWLOCK_INIT. (glthread_rwlock_init): Define using glwthread_rwlock_init. (glthread_rwlock_rdlock): Define using glwthread_rwlock_rdlock. (glthread_rwlock_wrlock): Define using glwthread_rwlock_wrlock. (glthread_rwlock_unlock): Define using glwthread_rwlock_unlock. (glthread_rwlock_destroy): Define using glwthread_rwlock_destroy. (glthread_rwlock_init_func, glthread_rwlock_rdlock_func, glthread_rwlock_wrlock_func, glthread_rwlock_unlock_func, glthread_rwlock_destroy_func): Remove declarations. * lib/glthread/lock.c (gl_waitqueue_t): Remove type. (gl_waitqueue_init, gl_waitqueue_add, gl_waitqueue_notify_first, gl_waitqueue_notify_all, glthread_rwlock_init_func, glthread_rwlock_rdlock_func, glthread_rwlock_wrlock_func, glthread_rwlock_unlock_func, glthread_rwlock_destroy_func): Remove functions. * modules/windows-rwlock: New file. * modules/lock (Depends-on): Add windows-rwlock. 2019-07-14 Bruno Haible windows-thread: Add support for creating a thread in detached state. * lib/windows-thread.h (GLWTHREAD_ATTR_DETACHED): New macro. (glwthread_thread_create): Add attr argument. * lib/windows-thread.c (glwthread_thread_create): Likewise. * lib/glthread/thread.h (glthread_create): Update. * lib/thrd.c (thrd_create): Update. 2019-07-14 Bruno Haible windows-*: Rename glwthread_spinlock_t to glwthread_initguard_t. * lib/windows-initguard.h: Renamed from lib/windows-spinlock.h. (glwthread_initguard_t): Renamed from glwthread_spinlock_t. (GLWTHREAD_INITGUARD_INIT): Renamed from GLWTHREAD_SPINLOCK_INIT. * lib/windows-mutex.h: Update. * lib/windows-recmutex.h: Likewise. * lib/windows-timedmutex.h: Likewise. * lib/windows-timedrecmutex.h: Likewise. * lib/windows-cond.h: Likewise. * lib/glthread/lock.h: Likewise. * modules/windows-mutex (Files): Add lib/windows-initguard.h. Remove lib/windows-spinlock.h. * modules/windows-recmutex (Files): Likewise. * modules/windows-timedmutex (Files): Likewise. * modules/windows-timedrecmutex (Files): Likewise. * modules/windows-cond (Files): Likewise. * modules/threads-h (Files): Likewise. 2019-07-14 Bruno Haible doc: Fix info about pthread API in HP-UX. * doc/posix-functions/pthread_*.texi: Fix info about HP-UX 11. 2019-07-14 Bruno Haible threads-h: Fix generation of threads.h. * modules/threads-h (Makefile.am): Insert the required header file snippets. 2019-07-09 Bruno Haible striconveh test: Fix a compilation failure when iconv is not available. Reported by Tom G. Christensen . * tests/test-striconveh.c (main): Move iconv_close invocations inside HAVE_ICONV. 2019-07-07 Akim Demaille argmatch: adjust columns for help2man. * lib/argmatch.h (argmatch_##Name##_doc_col): If some argument requires column 20 or more, return 20. 2019-07-06 Paul Eggert areadlink-with-size: avoid realloc when size==0 * lib/areadlink-with-size.c (areadlink_with_size): * lib/areadlinkat-with-size.c (areadlinkat_with_size): Reallocate at the end to the actual size, to avoid memory waste, as suggested by Bruno Haible. But when the guessed size is zero - useful when the size is unknown - do the initial small readlink into the stack, to avoid that realloc in the usual case. 2019-07-06 Pádraig Brady areadlink-with-size: guess a buffer size with 0 size The size is usually taken from st_size, which can be zero, resulting in inefficient operation. Instead let zero select an initial memory allocation of 128 bytes, which most symlinks fit within. * lib/areadlink-with-size.c (areadlink_with_size): Start with a 128 byte buffer, for SIZE == 0. * lib/areadlinkat-with-size.c (areadlinkat_with_size): Likewise. 2019-07-06 Konstantin Kharlamov Replace manually crafted hex regexes with [:xdigit:] * build-aux/gitlog-to-changelog (parse_amend_file) (git_dir_option): Replace various combinations of [0-9a-fA-F] with [[:xdigit:]]. This patch is backported from Emacs (Bug#36167). 2019-07-06 Bruno Haible error: Fix documentation. * doc/glibc-functions/error_at_line.texi: Document what the 'error' module provides. * doc/glibc-functions/error_message_count.texi: Likewise. * doc/glibc-functions/error_one_per_line.texi: Likewise. * doc/glibc-functions/error_print_progname.texi: Likewise. 2019-07-06 Bruno Haible doc: Remove documentation of glibc <= 2.1.x as a supported platform. * doc/gnulib-intro.texi (Target Platforms): Mention that glibc 2.1.x and older is unsupported. * doc/**/*.texi: Update. 2019-07-06 Bruno Haible doc: Remove documentation of Linux libc5 as a supported platform. * doc/posix-functions/iswalnum.texi: Don't mention workarounds specific to Linux libc5. * doc/posix-functions/iswalpha.texi: Likewise. * doc/posix-functions/iswblank.texi: Likewise. * doc/posix-functions/iswcntrl.texi: Likewise. * doc/posix-functions/iswdigit.texi: Likewise. * doc/posix-functions/iswgraph.texi: Likewise. * doc/posix-functions/iswlower.texi: Likewise. * doc/posix-functions/iswprint.texi: Likewise. * doc/posix-functions/iswpunct.texi: Likewise. * doc/posix-functions/iswspace.texi: Likewise. * doc/posix-functions/iswupper.texi: Likewise. * doc/posix-functions/iswxdigit.texi: Likewise. * doc/posix-functions/snprintf.texi: Likewise. * doc/posix-functions/vsnprintf.texi: Likewise. 2019-07-06 Bruno Haible doc: Remove documentation of Tandem/NSK as a supported platform. * doc/posix-headers/stdlib.texi: Don't mention workarounds specific to Tandem/NSK. * doc/**/*.texi: Update. 2019-07-06 Bruno Haible doc: Remove documentation of Mac OS X <= 10.4 as a supported platform. * doc/gnulib-intro.texi (Target Platforms): Mention that Mac OS X 10.4 and older is unsupported. * doc/posix-functions/acosl.texi: Don't mention workarounds specific to Mac OS X 10.4 and older. * doc/posix-functions/asinl.texi: Likewise. * doc/posix-functions/atanl.texi: Likewise. * doc/posix-functions/cosl.texi: Likewise. * doc/posix-functions/expl.texi: Likewise. * doc/posix-functions/frexpl.texi: Likewise. * doc/posix-functions/gettimeofday.texi: Likewise. * doc/posix-functions/logl.texi: Likewise. * doc/posix-functions/mkstemp.texi: Likewise. * doc/posix-functions/sinl.texi: Likewise. * doc/posix-functions/sqrtl.texi: Likewise. * doc/posix-functions/tanl.texi: Likewise. * doc/posix-functions/wcswidth.texi: Likewise. * doc/**/*.texi: Update. 2019-07-06 Bruno Haible doc: Remove documentation of AIX 4 as a supported platform. * doc/gnulib-intro.texi (Target Platforms): Mention that AIX 4 is unsupported. * doc/posix-functions/nanosleep.texi: Don't mention AIX 4 specific workarounds. * doc/posix-functions/strnlen.texi: Likewise. * doc/posix-headers/inttypes.texi: Likewise. * doc/**/*.texi: Update. 2019-07-06 Bruno Haible doc: Remove documentation of HP-UX 10 as a supported platform. * doc/gnulib-intro.texi (Target Platforms): Mention that HP-UX 10 is unsupported. * doc/*-functions/*printf.texi: Don't mention HP-UX 10 specific workarounds. * doc/posix-functions/gmtime_r.texi: Likewise. * doc/posix-functions/localtime_r.texi: Likewise. * doc/posix-functions/mkstemp.texi: Likewise. * doc/**/*.texi: Update. 2019-07-06 Bruno Haible doc: Remove documentation of Interix 3.5 as a supported platform. * doc/gnulib-intro.texi (Target Platforms): Mention that Interix is unsupported. * doc/posix-functions/select.texi: Don't mention Interix specific workarounds. * doc/posix-headers/signal.texi: Likewise. * doc/**/*.texi: Update. 2019-07-06 Bruno Haible doc: Remove documentation of IRIX 6.4 and older as supported platforms. * doc/gnulib-intro.texi (Target Platforms): Mention that IRIX <= 6.4 is unsupported. * doc/pastposix-functions/usleep.texi: Don't mention IRIX specific workarounds. * doc/posix-functions/nl_langinfo.texi: Likewise. * doc/posix-functions/remainder.texi: Likewise. * doc/posix-functions/towlower.texi: Likewise. * doc/posix-functions/towupper.texi: Likewise. * doc/posix-functions/vsnprintf.texi: Likewise. * doc/posix-functions/wcscat.texi: Likewise. * doc/posix-functions/wcschr.texi: Likewise. * doc/posix-functions/wcscmp.texi: Likewise. * doc/posix-functions/wcscpy.texi: Likewise. * doc/posix-functions/wcscspn.texi: Likewise. * doc/posix-functions/wcslen.texi: Likewise. * doc/posix-functions/wcsncat.texi: Likewise. * doc/posix-functions/wcsncmp.texi: Likewise. * doc/posix-functions/wcsncpy.texi: Likewise. * doc/posix-functions/wcspbrk.texi: Likewise. * doc/posix-functions/wcsrchr.texi: Likewise. * doc/posix-functions/wcsspn.texi: Likewise. * doc/posix-headers/langinfo.texi: Likewise. * doc/posix-headers/signal.texi: Likewise. * doc/posix-headers/wchar.texi: Likewise. * doc/posix-headers/wctype.texi: Likewise. * doc/**/*.texi: Update. 2019-07-05 Bruno Haible doc: Remove documentation of OSF/1 as supported platform. * doc/gnulib-intro.texi (Target Platforms): Mention that OSF/1 is unsupported. * doc/glibc-functions/getdomainname.texi: Don't mention OSF/1 specific workarounds. * doc/glibc-functions/pthread_setname_np.texi: Likewise. * doc/glibc-functions/ptsname_r.texi: Likewise. * doc/posix-functions/ceil.texi: Likewise. * doc/posix-functions/ceilf.texi: Likewise. * doc/posix-functions/ceill.texi: Likewise. * doc/posix-functions/fchdir.texi: Likewise. * doc/posix-functions/floor.texi: Likewise. * doc/posix-functions/floorf.texi: Likewise. * doc/posix-functions/fmod.texi: Likewise. * doc/posix-functions/fmodf.texi: Likewise. * doc/posix-functions/fmodl.texi: Likewise. * doc/posix-functions/log.texi: Likewise. * doc/posix-functions/logf.texi: Likewise. * doc/posix-functions/logl.texi: Likewise. * doc/posix-functions/log10.texi: Likewise. * doc/posix-functions/log10f.texi: Likewise. * doc/posix-functions/log10l.texi: Likewise. * doc/posix-functions/log2.texi: Likewise. * doc/posix-functions/log2f.texi: Likewise. * doc/posix-functions/log2l.texi: Likewise. * doc/posix-functions/mbrtowc.texi: Likewise. * doc/posix-functions/recv.texi: Likewise. * doc/posix-functions/recvfrom.texi: Likewise. * doc/posix-functions/remainder.texi: Likewise. * doc/posix-functions/remainderf.texi: Likewise. * doc/posix-functions/remainderl.texi: Likewise. * doc/posix-functions/round.texi: Likewise. * doc/posix-functions/roundf.texi: Likewise. * doc/posix-functions/roundl.texi: Likewise. * doc/posix-functions/send.texi: Likewise. * doc/posix-functions/sendto.texi: Likewise. * doc/posix-functions/setenv.texi: Likewise. * doc/posix-functions/snprintf.texi: Likewise. * doc/posix-functions/tcgetsid.texi: Likewise. * doc/posix-functions/trunc.texi: Likewise. * doc/posix-functions/truncf.texi: Likewise. * doc/posix-functions/truncl.texi: Likewise. * doc/posix-functions/ttyname_r.texi: Likewise. * doc/posix-functions/unsetenv.texi: Likewise. * doc/posix-functions/wcsrtombs.texi: Likewise. * doc/posix-headers/sys_select.texi: Likewise. * doc/posix-headers/wchar.texi: Likewise. * doc/posix-headers/wctype.texi: Likewise. * doc/**/*.texi: Update. 2019-07-05 Bruno Haible doc: Remove documentation of BSDI and BSD/OS as supported platforms. * doc/**/*.texi: Update. 2019-07-05 Bruno Haible doc: Remove documentation of Solaris 8 and older as supported platforms. * doc/gnulib-intro.texi (Target Platforms): Mention that Solaris <= 8 is unsupported. * doc/posix-functions/mbrtowc.texi: Don't mention Solaris specific workarounds. * doc/posix-functions/memcmp.texi: Likewise. * doc/posix-functions/rename.texi: Likewise. * doc/posix-functions/tzset.texi: Likewise. * doc/posix-headers/wctype.texi: Likewise. * doc/**/*.texi: Update. 2019-07-05 Bruno Haible doc: Remove documentation of Interix 3.5 as a supported platform. * doc/**/*.texi: Update. 2019-07-05 Bruno Haible doc: Remove documentation of BeOS as a supported platform. * doc/gnulib-intro.texi (Target Platforms): Mention that BeOS is unsupported. * doc/*-functions/*printf.texi: Don't mention BeOS specific workarounds. * doc/posix-functions/getdelim.texi: Likewise. * doc/**/*.texi: Update. 2019-07-05 Bruno Haible thread, lock, cond, tls: Remove support for Pth threads. * m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Don't document --enable-threads=pth any more. (gl_THREADLIB_BODY): Don't set USE_PTH_THREADS any more. * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Update comment. * m4/threads.m4 (gl_THREADS_H): Remove test for conflict between Pth threads and ISO C11 threads. * lib/glthread/thread.h: Remove code for USE_PTH_THREADS. * lib/glthread/lock.h: Likewise. * lib/glthread/lock.c: Likewise. * lib/glthread/cond.h: Likewise. * lib/glthread/cond.c: Likewise. * lib/glthread/tls.h: Likewise. * lib/glthread/tls.c: Likewise. * lib/glthread/yield.h: Likewise. * lib/regex_internal.h: Likewise. * tests/test-thread_create.c: Likewise. * tests/test-lock.c: Likewise. * tests/test-cond.c: Likewise. * tests/test-tls.c: Likewise. * tests/test-rwlock1.c: Don't include glthread/yield.h. (main): Sleep without calling gl_thread_yield. 2019-07-05 Bruno Haible thread, lock, cond, tls: Remove support for old Solaris threads. Solaris >= 2.5.1 has POSIX threads. * m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Don't document --enable-threads=solaris any more. (gl_THREADLIB_BODY): Don't set USE_SOLARIS_THREADS any more. * lib/glthread/thread.c: Update comment. * lib/glthread/thread.h: Remove code for USE_SOLARIS_THREADS. * lib/glthread/lock.h: Likewise. * lib/glthread/lock.c: Likewise. * lib/glthread/cond.h: Likewise. * lib/glthread/cond.c: Likewise. * lib/glthread/tls.h: Likewise. * lib/glthread/tls.c: Likewise. * lib/glthread/yield.h: Likewise. * lib/regex_internal.h: Likewise. * tests/test-thread_create.c: Likewise. * tests/test-lock.c: Likewise. * tests/test-cond.c: Likewise. * tests/test-tls.c: Likewise. 2019-07-05 Bruno Haible getcwd-lgpl, getcwd: Don't call realloc when it is pointless. * lib/getcwd-lgpl.c (rpl_getcwd): Don't call realloc if the result's needed size is equal to the allocated size. * lib/getcwd.c (__getcwd): Likewise. 2019-07-05 Bruno Haible xgetdomainname: Don't return an excessive memory allocation. * lib/xgetdomainname.c (xgetdomainname): Shrink the domainname buffer before returning it. 2019-07-05 Bruno Haible xgethostname: Don't return an excessive memory allocation. * lib/xgethostname.c (xgethostname): Shrink the hostname buffer before returning it. 2019-07-05 Bruno Haible areadlinkat-with-size: Don't return an excessive memory allocation. * lib/areadlinkat-with-size.c (areadlinkat_with_size): Shrink the buffer before returning it. 2019-07-05 Bruno Haible areadlink-with-size: Don't return an excessive memory allocation. Reported by Andreas Dilger . * lib/areadlink-with-size.c (areadlink_with_size): Shrink the buffer before returning it. 2019-07-03 Bruno Haible renameatu: Fix test failure on MSVC. * lib/at-func2.c (at_func2): Fail with ENOENT if file1 or file2 is the empty string. 2019-07-03 Bruno Haible mbrtowc: Fix invalid use of mbtowc() on MSVC. * lib/mbrtowc.c: Include glthread/lock.h. (mbtowc_lock): New variable. (mbrtowc): Treat UTF-8 encoding without locking. For the other encodings, explicitly reset the internal state of mbtowc, and protect this through a lock. * modules/mbrtowc (Depends-on): Add lock. 2019-07-03 Akim Demaille argmatch: don't define _ in the header. Reported by Jim Meyering. * lib/argmatch.h (N_, _): Don't define. Use gettext instead. * lib/argmatch.h (_): Define. * tests/test-argmatch.c (N_): Define. 2019-07-02 Paul Eggert verify: document ‘assume’ better * lib/verify.h: Reword doc (Bug#36370). 2019-07-02 Bruno Haible localcharset, nl_langinfo: Fix return value for UTF-8 locales on MSVC. * lib/localcharset.c (locale_charset): Return "UTF-8" instead of "CPutf8". * lib/nl_langinfo.c (ctype_codeset): Likewise. 2019-07-02 Bruno Haible getcwd: Fix crash when invoked with size = 0 on MSVC. * lib/getcwd.c: Include msvc-inval.h. (getcwd_nothrow): New function/macro. (getcwd_system): New macro. (__getcwd): Use it instead of getcwd. * modules/getcwd (Depends-on): Add msvc-inval. * doc/posix-functions/getcwd.texi: Mention the MSVC issue. 2019-07-02 Bruno Haible nonblocking-pipe tests: Fix test failure on MSVC. * tests/test-nonblocking-pipe.h (PIPE_DATA_BLOCK_SIZE): Set to 10000 on native Windows. 2019-07-02 Bruno Haible usleep: Implement with millisecond resolution on native Windows. * lib/usleep.c (usleep): On native Windows, implement using Sleep(). * doc/pastposix-functions/usleep.texi: Update accordingly. 2019-07-02 Bruno Haible lstat tests: Fix test failure on MSVC. * tests/test-lstat.h (test_lstat_func): Don't test SAME_INODE values on native Windows, unless _GL_WINDOWS_STAT_INODES is defined. 2019-07-02 Bruno Haible stat tests: Fix test failure on MSVC. * tests/test-stat.h (test_stat_func): Don't test SAME_INODE values on native Windows, unless _GL_WINDOWS_STAT_INODES is defined. 2019-07-02 Bruno Haible getaddrinfo tests: Fix test failure on MSVC. * tests/test-getaddrinfo.c: Include sockets.h. (main): Invoke gl_sockets_startup. * modules/getaddrinfo-tests (Depends-on): Add sockets. 2019-07-01 Hannes Müller poll: Fix type of timeout pointer passed to select() on mingw x86_64. * lib/poll.c: Call Windows native select() with Windows native timeval. 2019-06-30 Bruno Haible argmatch: Fix compilation errors. * lib/argmatch.h: Include , for INT_MAX. * tests/test-argmatch.c (main): Update after last-minute function names change. 2019-06-30 Bruno Haible Include when needed. * lib/cnd.c: Include , needed for abort(). * lib/fcntl.c: Likewise. * lib/mbscasestr.c: Likewise. * lib/mbssep.c: Likewise. * lib/mbsstr.c: Likewise. * lib/openat.c: Include , needed for free(). * lib/windows-tls.c: Include , needed for malloc(), free(), abort(). 2019-06-30 Bruno Haible Include when needed. * lib/areadlinkat.c: Include , needed for free() in at-func.c. * lib/faccessat.c: Likewise. * lib/fchmodat.c: Likewise. * lib/fchownat.c: Likewise. * lib/fstatat.c: Likewise. * lib/mkfifoat.c: Likewise. * lib/mknodat.c: Likewise. * lib/readlinkat.c: Likewise. * lib/symlinkat.c: Likewise. * lib/utimensat.c: Likewise. * lib/mkdirat.c: Likewise. Include also the specification header. 2019-06-30 Bruno Haible inet_ntop, inet_pton: Avoid conflict with native Windows functions. * m4/sys_socket_h.m4 (gl_PREREQ_SYS_H_WS2TCPIP): New macro, extracted from gl_PREREQ_SYS_H_SOCKET. (gl_PREREQ_SYS_H_SOCKET): Invoke it. * m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET): Invoke gl_PREREQ_SYS_H_WS2TCPIP. * modules/arpa_inet (Files): Add m4/sys_socket_h.m4, m4/socklen.m4. (Makefile.am): Substitute HAVE_WS2TCPIP_H. * lib/arpa_inet.in.h: Include . 2019-06-30 Bruno Haible inet_ntop, inet_pton: Forward-compatibility with newer Windows versions. * m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): On native Windows, set REPLACE_INET_NTOP to 1 always. * m4/inet_pton.m4 (gl_FUNC_INET_PTON): On native Windows, set REPLACE_INET_PTON to 1 always. 2019-06-30 Bruno Haible inet_pton: Fix link error on mingw with _WIN32_WINNT >= 0x0600. * modules/inet_pton (Depends-on, configure.ac): Test REPLACE_INET_PTON, not REPLACE_INET_NTOP. 2019-06-30 Bruno Haible poll: Add comment. * lib/poll.c: Add comment about WSAPoll. 2019-06-30 Bruno Haible poll-h: Fix compilation error on mingw with _WIN32_WINNT >= 0x0600. Reported by Hannes Müller . * lib/poll.in.h: Include . (POLL*, pollfd): Override on native Windows. * m4/poll_h.m4 (gl_POLL_H): Invoke gl_PREREQ_SYS_H_WINSOCK2. * modules/poll-h (Files): Add m4/sys_socket_h.m4. (Makefile.am): Substitute HAVE_WINSOCK2_H. 2019-06-28 Bruno Haible accept4: Fix compilation error on OpenIndiana. Reported by Michal Nowak via Mark H Weaver . * m4/accept.m4 (gl_FUNC_ACCEPT4): Test whether accept4 is declared, not whether it exists as a function. 2019-06-26 Paul Eggert strverscmp: sync from glibc * lib/strverscmp.c: Sync from glibc, except use UTF-8 encoding in comments, include libc-config.h, define __strverscmp to be strverscmp, and don’t assume types line uint8_t and int8_t that that C99 doesn’t guarantee. [!_LIBC]: Include libc-config.h; define __strverscmp. Include stdint.h. (__strverscmp): Assume C99. Use uint_least8_t and int_least8_t instead of unsigned char and signed char. * modules/strverscmp (Depends-on): Add libc-config, stdint. 2019-06-25 Bruno Haible tss tests: Add tests for destructors and races. * tests/test-tss.c (worker_thread): Fix typo in debug message. (test_tss_dtorcheck1, test_tss_dtorcheck2, test_tss_racecheck): New functions. (main): Invoke them. * modules/tls-tests (Depends-on): Add mtx. 2019-06-25 Bruno Haible tls tests: Add tests for destructors and races. * tests/test-tls.c: Include glthread/lock.h. (test_tls_dtorcheck1, test_tls_dtorcheck2, test_tls_racecheck): New functions. (main): Invoke them. * modules/tls-tests (Depends-on): Add lock. 2019-06-25 Bruno Haible windows-tls: Implement TLS key destructors for native Windows. * lib/windows-tls.h (glwthread_tls_process_destructors): New declaration. (GLWTHREAD_DESTRUCTOR_ITERATIONS): New macro. * lib/windows-tls.c: Include , windows-once.h. (dtor_table_init_once, dtor_table_lock: New variables. (struct dtor): New type. (dtor_table, dtors_count, dtors_used, dtors_allocated, dtor_processing_threads): New variables. (dtor_table_initialize, dtor_table_ensure_initialized, dtor_table_shrink_used, glwthread_tls_process_destructors): New functions. (glwthread_tls_key_create, glwthread_tls_key_delete): Rewritten to handle non-NULL destructors. * modules/windows-tls (Depends-on): Add windows-once. * lib/glthread/tls.h (glthread_tls_key_init, glthread_tls_key_destroy): Use the functions declared in windows-tls.h. * lib/threads.in.h (TSS_DTOR_ITERATIONS): Define using GLWTHREAD_DESTRUCTOR_ITERATIONS. * lib/windows-thread.c: Include windows-tls.h. (wrapper_func, glwthread_thread_exit): Invoke glwthread_tls_process_destructors. * modules/windows-thread (Depends-on): Add windows-tls. 2019-06-25 Bruno Haible threadlib: Avoid autoconf warning "was expanded before it was required". * modules/threadlib (configure.ac): Require gl_THREADLIB. 2019-06-25 Akim Demaille argmatch: remove duplicate const qualifier * lib/argmatch.h (ARGMATCH_DEFINE_GROUP): Here. 2019-06-24 Paul Eggert unistd: stddef.h and sys/types.h namespace cleanup * lib/unistd.in.h [__GLIBC__]: Do not include stddef.h or sys/types.h. [!__GLIBC__]: Always include sys/types.h, since unistd.h is supposed to declare off_t and ssize_t. Problem found when looking at why @GNULIB_PWRITE@ was different from the newly-added @GNULIB_COPY_FILE_RANGE@ with respect to ssize_t. 2019-06-22 Akim Demaille maintainer-makefile: restore portability to non-GNU awks Reported by Tim Rühsen. * top/maint.mk (AWK): New variable. Use it. (sc_prohibit_gnu_make_extensions): Skip if $(AWK) is not gawk. 2019-06-23 Paul Eggert Document setvbuf _IOLBF problem * doc/posix-functions/setvbuf.texi (setvbuf): Document MS-Windows portability problem with _IOLBF. Document lseek SEEK_DATA/SEEK_HOLE * doc/posix-functions/lseek.texi (lseek): Document some systems that do not support SEEK_DATA and SEEK_HOLE. 2019-06-22 Akim Demaille argmatch: put all the docs member last. Reported by Bruno Haible. * lib/argmatch.h (argmatch_##Name##_group_type): Put the args member before the docs done. * doc/argmatch.texi, tests/test-argmatch.c: Adjust. 2019-06-21 Akim Demaille argmatch: add support to generate the usage message. * lib/argmatch.c: Move some #includes and gettext support to... * lib/argmatch.h: here. (ARGMATCH_DEFINE_GROUP): New macro. * tests/test-argmatch.c (argmatch_backup_docs, argmatch_backup_args) (argmatch_backup_group): New. (CHECK): New. (main): Check argmatch_backup_value, argmatch_backup_xvalue, argmatch_backup_argument and argmatch_backup_usage. * modules/argmatch: We depend on c99. * doc/argmatch.texi (Recognizing Option Arguments): New. * doc/gnulib.texi: Use it. 2019-06-21 Bruno Haible thrd: Add comment. * lib/thrd.c (pthread_main_func): Add comment. 2019-06-21 Bruno Haible threads-h: Define 'thread_local' if and only if it actually works. * m4/threads.m4 (gl_THREAD_LOCAL_DEFINITION): New macro. (gl_THREADS_H): Define _Thread_local to __thread also for ARM C, IBM C, Oracle Solaris Studio C. Compile a simple program, to see whether _Thread_local basically works. Set HAVE_THREAD_LOCAL and LIBTHREADLOCAL. (gl_THREADS_H_DEFAULTS): Initialize HAVE_THREAD_LOCAL. * lib/threads.in.h (thread_local): Undefine if it does not work. * modules/threads-h (Makefile.am): Substitute HAVE_THREAD_LOCAL. (Link): Mention LIBTHREADLOCAL. * tests/test-threads.c: Don't check that thread_local is defined. * tests/test-thread_local.c: New file. * modules/threads-h-tests (Files): Add it and macros.h. (Depends-on): Add thrd and stdint. (configure.ac): Test whether 'alarm' is declared. (Makefile.am): Arrange to build and link test-thread_local. * doc/posix-headers/threads.texi: Mention the platforms that don't support 'thread_local'. 2019-06-20 Bruno Haible threads-h: Simplify link dependencies. * m4/threads.m4 (gl_THREADS_H): Bail out if Pth threading is requested. Don't set LTLIBSTDTHREAD. * modules/thrd (Link): Simplify accordingly. * modules/mtx (Link): Likewise. * modules/cnd (Link): Likewise. * modules/tss (Link): Likewise. * modules/threads (Link): Likewise. 2019-06-20 Bruno Haible threads-h: Fix link error on FreeBSD 11. * m4/threads.m4 (gl_THREADS_H): When linking with -lstdthreads, link also with -lpthread. 2019-06-20 Bruno Haible threadlib: Fix typo (regression from today). * m4/threadlib.m4 (gl_THREADLIB_BODY): Fix typo in comment marker. 2019-06-20 Bruno Haible windows-thread, windows-tls: Fix compilation error on 32-bit mingw. * lib/windows-thread.c: Include . * lib/windows-tls.c: Likewise. 2019-06-20 Bruno Haible tss tests: Small improvement. * tests/test-tss.c (test_tss): Pass a different id to each thread. 2019-06-20 Bruno Haible threads: New module. * modules/threads: New file. 2019-06-20 Bruno Haible tss: Add tests. * tests/test-tss.c: New file, based on tests/test-tls.c. * modules/tss-tests: New file. 2019-06-20 Bruno Haible cnd: Add tests. * tests/test-cnd.c: New file, based on tests/test-cond.c. * modules/cnd-tests: New file. 2019-06-20 Bruno Haible mtx: Add tests. * tests/test-mtx.c: New file, based on tests/test-lock.c. * tests/test-call_once.c: New file, based on tests/test-once.c. * modules/mtx-tests: New file. 2019-06-20 Bruno Haible thrd: Add tests. * tests/test-thrd_create.c: New file, based on tests/test-thread_create.c. * tests/test-thrd_current.c: New file, based on tests/test-thread_self.c. * modules/thrd-tests: New file. 2019-06-20 Bruno Haible tss: New module. * lib/tss.c: New file. * modules/tss: New file. * doc/posix-functions/tss_create.texi: Mention the new module. * doc/posix-functions/tss_set.texi: Likewise. * doc/posix-functions/tss_get.texi: Likewise. * doc/posix-functions/tss_delete.texi: Likewise. 2019-06-20 Bruno Haible cnd: New module. * lib/cnd.c: New file. * modules/cnd: New file. * doc/posix-functions/cnd_init.texi: Mention the new module. * doc/posix-functions/cnd_wait.texi: Likewise. * doc/posix-functions/cnd_timedwait.texi: Likewise. * doc/posix-functions/cnd_signal.texi: Likewise. * doc/posix-functions/cnd_broadcast.texi: Likewise. * doc/posix-functions/cnd_destroy.texi: Likewise. 2019-06-20 Bruno Haible mtx: New module. * lib/mtx.c: New file. * modules/mtx: New file. * doc/posix-functions/call_once.texi: Mention the new module. * doc/posix-functions/mtx_init.texi: Likewise. * doc/posix-functions/mtx_lock.texi: Likewise. * doc/posix-functions/mtx_trylock.texi: Likewise. * doc/posix-functions/mtx_timedlock.texi: Likewise. * doc/posix-functions/mtx_unlock.texi: Likewise. * doc/posix-functions/mtx_destroy.texi: Likewise. 2019-06-20 Bruno Haible thrd: New module. * lib/thrd.c: New file. * m4/thrd.m4: New file. * modules/thrd: New file. * doc/posix-functions/thrd_current.texi: Mention the new module. * doc/posix-functions/thrd_detach.texi: Likewise. * doc/posix-functions/thrd_equal.texi: Likewise. * doc/posix-functions/thrd_exit.texi: Likewise. * doc/posix-functions/thrd_sleep.texi: Likewise. * doc/posix-functions/thrd_yield.texi: Likewise. * doc/posix-functions/thrd_create.texi: Mention the new module and the AIX bug. * doc/posix-functions/thrd_join.texi: Mention the new module and the AIX and Solaris bugs. 2019-06-20 Bruno Haible threads-h: Add tests. * tests/test-threads.c: New file. * modules/threads-h-tests: New file. * tests/test-threads-c++.cc: New file. * modules/threads-h-c++-tests: New file. 2019-06-20 Bruno Haible threads-h: New module. * lib/threads.in.h: New file. * m4/threads.m4: New file. * m4/yield.m4 (gl_YIELD): Update comment. * modules/threads-h: New file. * modules/yields (configure.ac): Use AC_REQUIRE. * doc/posix-headers/threads.texi: Mention the new module and the AIX bugs. 2019-06-20 Bruno Haible windows-thread: New module. * lib/windows-thread.h: New file, based on lib/glthread/thread.h. * lib/windows-thread.c: New file, based on lib/glthread/thread.c. * lib/glthread/thread.h: Include windows-thread.h. (gl_thread_t): Define using glwthread_thread_t. (glthread_create): Define using glwthread_thread_create. (glthread_join): Define using glwthread_thread_join. (gl_thread_self): Define using glwthread_thread_self. (gl_thread_exit): Define using glwthread_thread_exit. (glthread_create_func, glthread_join_func, gl_thread_self_func, gl_thread_exit_func): Remove declarations. * lib/glthread/thread.c (self_key): Remove variable. (do_init_self_key, init_self_key): Remove functions. (struct gl_thread_struct): Remove type. (get_current_thread_handle, gl_thread_self_func, wrapper_func, glthread_create_func, glthread_join_func, gl_thread_exit_func): Remove functions. * modules/windows-thread: New file. * modules/thread (Depends-on): Add windows-thread. 2019-06-20 Bruno Haible windows-tls: New module. * lib/windows-tls.h: New file, based on lib/glthread/tls.h. * lib/windows-tls.c: New file, based on lib/glthread/tls.h. * lib/glthread/tls.h: Include windows-tls.h. (gl_tls_key_t): Define using glwthread_tls_key_t. * modules/windows-tls: New file. * modules/tls (Depends-on): Add windows-tls. 2019-06-20 Bruno Haible windows-cond: New module. * lib/windows-cond.h: New file, based on lib/glthread/cond.h. * lib/windows-cond.c: New file, based on lib/glthread/cond.c. * lib/glthread/cond.h: Include windows-cond.h. (struct gl_waitqueue_link, gl_linked_waitqueue_t): Remove types. (gl_cond_t): Define using glwthread_cond_t. (gl_cond_initializer): Define using GLWTHREAD_COND_INIT. (glthread_cond_init): Define using glwthread_cond_init. (glthread_cond_wait): Define using glwthread_cond_wait. (glthread_cond_timedwait): Define using glwthread_cond_timedwait. (glthread_cond_signal): Define using glwthread_cond_signal. (glthread_cond_broadcast): Define using glwthread_cond_broadcast. (glthread_cond_destroy): Define using glwthread_cond_destroy. (glthread_cond_init_func, glthread_cond_wait_func, glthread_cond_timedwait_func, glthread_cond_signal_func, glthread_cond_broadcast_func, glthread_cond_destroy_func): Remove declarations. * lib/glthread/cond.c (gl_waitqueue_t, gl_waitqueue_element): Remove types. (gl_waitqueue_init, gl_waitqueue_add, gl_waitqueue_remove, gl_waitqueue_notify_first, gl_waitqueue_notify_all, glthread_cond_init_func, glthread_cond_wait_func, glthread_cond_timedwait_func, glthread_cond_signal_func, glthread_cond_broadcast_func, glthread_cond_destroy_func): Remove functions. * modules/windows-cond: New file. * modules/cond (Depends-on): Add windows-cond. Remove gettimeofday. 2019-06-20 Bruno Haible windows-timedrecmutex: New module. * lib/windows-timedrecmutex.h: New file, based on windows-recmutex.h. * lib/windows-timedrecmutex.c: New file, based on windows-recmutex.c. * modules/windows-timedrecmutex: New file. 2019-06-20 Bruno Haible windows-timedmutex: New module. * lib/windows-timedmutex.h: New file, based on windows-mutex.h. * lib/windows-timedmutex.c: New file, based on windows-mutex.c. * modules/windows-timedmutex: New file. 2019-06-20 Bruno Haible windows-recmutex: New module. * lib/windows-recmutex.h: New file, extracted from lib/glthread/lock.h. * lib/windows-recmutex.c: New file, extracted from lib/glthread/lock.c. * lib/glthread/lock.h: Include windows-recmutex.h. (gl_recursive_lock_t): Define using glwthread_recmutex_t. (gl_recursive_lock_initializer): Define using GLWTHREAD_RECMUTEX_INIT. (glthread_recursive_lock_init): Define using glwthread_recmutex_init. (glthread_recursive_lock_lock): Define using glwthread_recmutex_lock. (glthread_recursive_lock_unlock): Define using glwthread_recmutex_unlock. (glthread_recursive_lock_destroy): Define using glwthread_recmutex_destroy. (glthread_recursive_lock_init_func, glthread_recursive_lock_lock_func, glthread_recursive_lock_unlock_func, glthread_recursive_lock_destroy_func): Remove declarations. * lib/glthread/lock.c (glthread_recursive_lock_init_func, glthread_recursive_lock_lock_func, glthread_recursive_lock_unlock_func, glthread_recursive_lock_destroy_func): Remove functions. * modules/windows-recmutex: New file. * modules/lock (Depends-on): Add windows-recmutex. 2019-06-20 Bruno Haible windows-mutex: New module. * lib/windows-mutex.h: New file, extracted from lib/glthread/lock.h. * lib/windows-mutex.c: New file, extracted from lib/glthread/lock.c. * lib/windows-spinlock.h: New file, extracted from lib/glthread/lock.h. * lib/glthread/lock.h: Include windows-spinlock.h, windows-mutex.h. (gl_spinlock_t): Remove type. (gl_lock_t): Define using glwthread_mutex_t. (gl_lock_initializer): Define using GLWTHREAD_MUTEX_INIT. (glthread_lock_init): Define using glwthread_mutex_init. (glthread_lock_lock): Define using glwthread_mutex_lock. (glthread_lock_unlock): Define using glwthread_mutex_unlock. (glthread_lock_destroy): Define using glwthread_mutex_destroy. (glthread_lock_init_func, glthread_lock_lock_func, glthread_lock_unlock_func, glthread_lock_destroy_func): Remove declarations. Use glwthread_spinlock_t instead of gl_spinlock_t. (gl_rwlock_initializer, gl_recursive_lock_initializer): Define using GLWTHREAD_SPINLOCK_INIT. * lib/glthread/lock.c (glthread_lock_init_func, glthread_lock_lock_func, glthread_lock_unlock_func, glthread_lock_destroy_func): Remove functions. * lib/glthread/cond.h: Use glwthread_spinlock_t instead of gl_spinlock_t. * modules/windows-mutex: New file. * modules/lock (Depends-on): Add windows-mutex. 2019-06-20 Bruno Haible windows-once: New module. * lib/windows-once.h: New file, extracted from lib/glthread/lock.h. * lib/windows-once.c: New file, extracted from lib/glthread/lock.c. * lib/glthread/lock.h: Include windows-once.h. (gl_once_t): Define using glwthread_once_t. (gl_once_define): Define using GLWTHREAD_ONCE_INIT. (glthread_once): Define using glwthread_once. (glthread_once_func): Remove declaration. * lib/glthread/lock.c (glthread_once_func): Remove function. * modules/windows-once: New file. * modules/lock (Depends-on): Add windows-once. 2019-06-20 Bruno Haible lock, cond: Avoid possible counter wraparound on Windows. * lib/glthread/lock.c (glthread_lock_lock_func): Leave the 'started' field of the guard unchanged if it was already positive. (glthread_rwlock_rdlock_func): Likewise. (glthread_rwlock_wrlock_func): Likewise. (glthread_recursive_lock_lock_func): Likewise. * lib/glthread/cond.c (glthread_cond_wait_func): Likewise. (glthread_cond_timedwait_func): Likewise. 2019-06-20 Bruno Haible cond: Make glthread_cond_timedwait more reliable on Windows. * lib/glthread/cond.c (glthread_cond_timedwait_func): Initialize the condition variable before looking at the current time. 2019-06-20 Bruno Haible pthread_mutex_timedlock: New module. * lib/pthread.in.h (pthread_mutex_timedlock): New dummy function and new declaration. * lib/pthread_mutex_timedlock.c: New file. * m4/pthread_mutex_timedlock.m4: New file. * m4/pthread.m4 (gl_PTHREAD_CHECK): Don't call AC_LIBOBJ here. Test whether pthread_mutex_timedlock is declared. (gl_PTHREAD_MODULE_INDICATOR): New macro. (gl_PTHREAD_DEFAULTS): Initialize GNULIB_PTHREAD_MUTEX_TIMEDLOCK, HAVE_PTHREAD_MUTEX_TIMEDLOCK. * modules/pthread (configure.ac): Call AC_LIBOBJ here. (Makefile.am): Substitute GNULIB_PTHREAD_MUTEX_TIMEDLOCK, HAVE_PTHREAD_MUTEX_TIMEDLOCK. * modules/pthread_mutex_timedlock: New file. * doc/posix-functions/pthread_mutex_timedlock.texi: Mention the new module. 2019-06-20 Bruno Haible thread, lock, cond, tls: Recognize C11 multithreaded applications. * m4/threadlib.m4 (gl_THREADLIB_BODY): Test for . * lib/glthread/thread.h (c11_threads_in_use): New macro. (pthread_in_use, pth_in_use, thread_in_use): Use it. * lib/glthread/lock.h (c11_threads_in_use): New macro. (pthread_in_use, pth_in_use, thread_in_use): Use it. * lib/glthread/cond.h (c11_threads_in_use): New macro. (pthread_in_use, pth_in_use, thread_in_use): Use it. * lib/glthread/tls.h (c11_threads_in_use): New macro. (pthread_in_use, pth_in_use, thread_in_use): Use it. 2019-06-20 Bruno Haible tls tests: Small improvements. * tests/test-tls.c: Include . (worker_thread): Avoid gcc warning on 64-bit mingw. (test_tls): Pass a different id to each thread. * modules/tls-tests (Depends-on): Add stdint. 2019-06-20 Bruno Haible cond tests: Simplify. * tests/test-cond.c (test_timedcond): Remove redundant assignment. 2019-06-20 Bruno Haible lock tests: Avoid reference to undefined variable if !ENABLE_LOCKING. * tests/test-lock.c (test_once): Don't reference fire_signal if !ENABLE_LOCKING. 2019-06-19 Bruno Haible nanosleep: Relicense under LGPLv2+. Approved by Jim Meyering, Paul Eggert, Eric Blake, Pádraig Brady. * modules/nanosleep (License): Change to LGPLv2+. 2019-06-19 Bruno Haible Reorder pieces of header in perl scripts. The desired order is - Prologue part 1 (2 lines with #!) - Program short description - Copyright and license notice - Written-by notice - Program short description (optional) - Program long description (optional) - Prologue part 2 - Time stamp - Code Reported by Paul Eggert. * build-aux/announce-gen: Reorder header. * build-aux/gitlog-to-changelog: Likewise. * build-aux/useless-if-before-free: Likewise. * build-aux/prefix-gnulib-mk: Add copyright notice and short description. * build-aux/update-copyright: Likewise. Add short description. Bump time-stamp-line-limit to 200. 2019-06-18 Paul Eggert verify-tests: work around xlc bug Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2019-06/msg00049.html * tests/test-verify.c (item): Move the arithmetic inside the verify_expr, to avoid tickling a bug in IBM AIX xlc V12.1. 2019-06-16 Bruno Haible Restore Emacs time-stamp hook applicability. Reported by Darshit Shah . * build-aux/useless-if-before-free: Bump time-stamp-line-limit to 50. * build-aux/announce-gen: Likewise. * build-aux/gitlog-to-changelog: Likewise. * build-aux/prefix-gnulib-mk: Likewise. * build-aux/update-copyright: Likewise. 2019-06-15 Bruno Haible Fix scripts to have valid executable format on Alpine Linux. Reported by Tim Rühsen . Idea by Paul Eggert. * build-aux/useless-if-before-free: Use a prologue that starts with '#!/bin/sh'. * build-aux/announce-gen: Likewise. * build-aux/gitlog-to-changelog: Likewise. * build-aux/prefix-gnulib-mk: Likewise. * build-aux/update-copyright: Likewise. * tests/test-update-copyright.sh: Update test program accordingly. 2019-06-10 Bruno Haible nproc: Ensure nproc(NPROC_ALL) ≥ nproc(NPROC_CURRENT) with glibc ≥ 2.26. Reported by Nikita Ermakov in . * lib/nproc.c (num_processors_ignoring_omp): Treat a return value of sysconf (_SC_NPROCESSORS_CONF) == 2 like a return value == 1. 2019-06-10 Bruno Haible posix_spawn_file_actions_addchdir: Fix possible use-after-free bug. * lib/spawn_int.h (struct __spawn_action): Remove 'const' from path. * lib/spawn_faction_addchdir.c (posix_spawn_file_actions_addchdir): Make a copy of the path argument. * lib/spawn_faction_destroy.c (posix_spawn_file_actions_destroy): Free it. 2019-06-10 Bruno Haible posix_spawn_file_actions_addopen: Fix possible use-after-free bug. Reported at . * lib/spawn_int.h (struct __spawn_action): Remove 'const' from path. * lib/spawn_faction_addopen.c (posix_spawn_file_actions_addopen): Make a copy of the path argument. * lib/spawn_faction_destroy.c (posix_spawn_file_actions_destroy): Free it. 2019-06-10 Bruno Haible posix_spawn_file_actions_addfchdir: Add tests. * tests/test-posix_spawn_file_actions_addfchdir.c: New file. * tests/test-posix_spawn5.c: New file. * modules/posix_spawn_file_actions_addfchdir-tests: New file. 2019-06-10 Bruno Haible posix_spawn_file_actions_addfchdir: New module. * lib/spawn.in.h (posix_spawn_file_actions_addfchdir): New declaration. * lib/spawn_int.h (struct __spawn_action): Add tag 'spawn_do_fchdir' and union member 'fchdir_action'. * lib/spawn_faction_addfchdir.c: New file. * lib/spawni.c (__spawni): Implement the spawn_do_fchdir action. * m4/posix_spawn_faction_addfchdir.m4: New file. * m4/posix_spawn.m4 (gl_POSIX_SPAWN_BODY): Test whether module 'posix_spawn_file_actions_addfchdir' is present and whether posix_spawn_file_actions_addfchdir_np exists. Set REPLACE_POSIX_SPAWN. * m4/spawn_h.m4 (gl_SPAWN_H): Test whether posix_spawn_file_actions_addfchdir is declared. (gl_SPAWN_H_DEFAULTS): Initialize GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR, HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR, REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR. * modules/spawn (Makefile.am): Substitute GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR, HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR, REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDFCHDIR. * modules/posix_spawn_file_actions_addfchdir: New file. * tests/test-spawn-c++.cc (posix_spawn_file_actions_addfchdir): Check signature. * doc/posix-functions/posix_spawn.texi: Mention the new module. * doc/posix-functions/posix_spawnp.texi: Likewise. * doc/glibc-functions/posix_spawn_file_actions_addfchdir_np.texi: Likewise. 2019-06-10 Bruno Haible doc: Document existence of posix_spawn_file_actions_addchdir module. * doc/glibc-functions/posix_spawn_file_actions_addchdir_np.texi: Mention the posix_spawn_file_actions_addchdir module. 2019-06-10 Bruno Haible posix_spawn-internal: Fix module description. * modules/posix_spawn (configure.ac): Move request to compile spawni.c from here... * modules/posix_spawnp (configure.ac): ... and here... * modules/posix_spawn-internal (configure.ac): ... to here. 2019-06-10 Bruno Haible doc: Update and improve documentation of glibc functions. This is a series of commits that - updates the documentation to the state of glibc 2.29, - adds references to Linux man pages and glibc documentation, - marks Linux specific functions as such. These are the commits: doc: Update after removal of crypt functions from glibc 2.28. doc: Remove mention of function vm86 (does not exist on x86_64). doc: Remove mention of functions that are gone from glibc. doc: Mention that glibc no longer provides h_errno. doc: Mention the availability of specific functions in glibc versions. doc: Mention eaccess. doc: Add references to Linux man pages. doc: Add references to glibc documentation. doc: Mention inotify_* functions. doc: Mention ppoll. doc: Mention sched_getcpu. doc: Mention sync_file_range. doc: Mention epoll_pwait. doc: Mention eventfd, eventfd_read, eventfd_write. doc: Mention signalfd. doc: Mention timerfd_create, timerfd_gettime, timerfd_settime. doc: Mention epoll_create1. doc: Mention getauxval. doc: Mention pthread_getattr_default_np, pthread_setattr_default_np. doc: Mention nextdown, nextup. doc: Mention more ISO TS 18661-1 functions. doc: Mention ISO TS 18661-1 functions. doc: Mention getrandom, getentropy. doc: Mention strfromf, strfromd, strfroml. doc: Mention preadv2, pwritev2. doc: Mention copy_file_range. doc: Mention memfd_create. doc: Mention mlock2. doc: Mention pkey_alloc, pkey_set, pkey_get, pkey_free, pkey_mprotect. doc: Mention more ISO TS 18661-1 functions. doc: Mention renameat2. doc: Mention statx. doc: Mention the ISO C11 multithreading header and functions. doc: Mention getcpu. doc: Mention posix_spawn_file_actions_add[f]chdir_np. doc: Some glibc functions also exist on IRIX 6.5 in 32-bit mode. doc: Some glibc functions also exist on FreeBSD, AIX, HP-UX, Solaris 11. doc: Some glibc functions also exist on FreeBSD, Solaris 11. doc: Some glibc functions also exist on Solaris 11. doc: Some glibc functions also exist on Solaris 11.4. doc: Some glibc functions also exist on FreeBSD. doc: Some glibc functions also exist on BeOS. doc: Some glibc functions also exist on Haiku. doc: Mark functions which exist only on Linux. doc: Mark functions which exist only on Linux and illumos. 2019-06-06 Paul Eggert copy-file: fix typo * lib/copy-file.c (qcopy_file_preserving): Remove unused label. copy-file-range: simplify into a stub Based on a comment by Florian Weimer in: https://lists.gnu.org/r/bug-gnulib/2019-06/msg00007.html It turns out that Emacs (which will use this module) won’t need an emulation and I suspect other programs won’t either, because these programs will need to fall back on read+write anyway. Perhaps I am wrong and other programs will be able to use an emulation; if so, this patch can be reverted. * lib/copy-file-range.c (COPY_FILE_RANGE): Replace with a stub. Just call it copy_file_range. * m4/copy-file-range.m4 (gl_FUNC_COPY_FILE_RANGE): Check via AC_LINK_IFELSE. * modules/copy-file-range (Depends-on): Remove modules no longer used. 2019-06-04 Paul Eggert copy-file: prefer copy_file_range * lib/copy-file.c: Do not include xalloc.h. (qcopy_file_preserving): Allocate a buffer only if copy_file_range does not suffice. If the allocation fails don't give up; just use a small stack-based buffer. Prefer copy_file_range if it works. * modules/copy-file (Depends-on): Add copy-file-range. Remove xalloc. copy-file-range: new module * MODULES.html.sh: Add copy-file-range. * lib/copy-file-range.c, m4/copy-file-range.m4: * modules/copy-file-range: New files. * lib/unistd.in.h (copy_file_range): Declare. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Set up GNULIB_COPY_FILE_RANGE and HAVE_COPY_FILE_RANGE. * modules/unistd (unistd.h): Substitute them. 2019-05-28 Bruno Haible binary-io: Attempted use of O_BINARY on consoles no longer fails. Reported by KO Myung-Hun in . * lib/binary-io.h (__gl_setmode_check): Remove function. (set_binary_mode): Declare as notinline on DJGPP and EMX. * lib/binary-io.c (__gl_setmode_check): Remove function. (set_binary_mode): Define here on DJGPP and EMX. Inline __gl_setmode_check. In case of a tty, don't return an error code. 2019-05-28 James Youngman dirent-safer: Make opendir_safer usable from C++. * lib/dirent-safer.h: use extern "C". 2019-05-28 James Youngman canonicalize: Make canonicalize_filename_mode usable from C++. * lib/canonicalize.h: use extern "C". 2019-05-26 Akim Demaille prefix-gnulib-mk: Fix CPPFLAGS migration. * build-aux/prefix-gnulib-mk (prefix_assignment): Don't forget the _a part of the library name. 2019-05-24 Paul Eggert flexmember: update comments again * lib/flexmember.h, m4/flexmember.m4: Improve comments further. flexmember: update comment * m4/flexmember.m4 (AC_C_FLEXIBLE_ARRAY_MEMBER): Improve comment. 2019-05-20 Bruno Haible setlocale: Improve fallback on macOS. * lib/setlocale.c (search): Optimize away a redundant strcmp() invocation. (locales_with_principal_territory): New array. (langcmp, get_main_locale_with_same_language): New functions. (locales_with_principal_language): New array. (terrcmp, get_main_locale_with_same_territory): New functions. (rpl_setlocale): When setlocale_single failed, try again with a locale that is more likely to exist. Don't warn if the environment variable SETLOCALE_VERBOSE is not set. 2019-05-19 Bruno Haible localename: Fix default on macOS. * m4/intlmacosx.m4 (gt_INTL_MACOSX): Don't test for CFLocaleCopyCurrent. * lib/localename.c: Remove includes for HAVE_CFLOCALECOPYCURRENT. (gl_locale_name_environ, gl_locale_name_default): Remove code for HAVE_CFLOCALECOPYCURRENT. * lib/localename.h (gl_locale_name_default): Update. 2019-05-19 Karl Berry * config/srclistvars.sh (TEXINFOTEX): make ftp.gnu.org be the source for texinfo.tex, replacing TEXINFOSRC, per Texinfo maintainer. * config/srclist.txt (texinfo.tex): use it. (Also doc changes.) 2019-05-18 Akim Demaille maintainer-makefile: catch uses of $< in non-implicit rules * top/maint.mk (sc_prohibit_magic_number_exit): New. 2019-05-18 Bruno Haible threadlib: Provide an easy way to avoid mingw's winpthreads library. * m4/threadlib.m4 (gl_AVOID_WINPTHREAD): New macro. (gl_THREADLIB_EARLY_BODY): Recognize when it was invoked, and set gl_use_threads accordingly. 2019-05-18 Bruno Haible pthread_sigmask: Fix compilation error with --enable-threads=windows. Reported by Tim Rühsen in and Michele Locati in . * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Revert change from 2015-06-01. Test whether pthread_sigmask is a macro, regardless of $LIBMULTITHREAD. Consider it regardless whether module 'threadlib' is in use and regardless which threads API is chosen. 2019-05-14 Paul Eggert close-stream, closein, closeout: simplify I noticed this opportunity for simplification while drafting a new, related module that I haven’t had time to finish yet. * m4/close-stream.m4, m4/closein.m4, m4/closeout.m4: Remove. * modules/close-stream (Files): Remove m4/close-stream.m4. (configure.ac): Omit gl_CLOSE_STREAM. * modules/closein (Files): Remove m4/closein.m4 (configure.ac): Omit gl_CLOSEIN. * modules/closeout (Files): Remove m4/closeout.m4. (configure.ac): Omit gl_CLOSEOUT. 2019-05-12 Bruno Haible libtool-next-version: New program. * build-aux/libtool-next-version: New file. 2019-05-11 John Darrington Bruno Haible version-etc: Ease translation. * lib/version-etc.c (version_etc_arn, emit_bug_reporting_address): Move URLs and formatting newlines out of translatable string. 2019-05-11 Bruno Haible gnupload: Explain how to create symlinks. * build-aux/gnupload (usage): Add an example that creates symlinks. 2019-05-11 Paul Eggert fpucw: port to gcc -pedantic * lib/fpucw.h (GET_FPUCW, SET_FPUCW): Use __extension__ if using ({ ... }). crypto/af_alg: port to strict C compilers * lib/af_alg.c: Include af_alg.h regardless, so that the compilation unit is nonempty. 2019-05-10 Bruno Haible base64: Avoid false positive warning from Coverity. Reported by Kamil Dudka . Idea by Paul Eggert. * lib/base64.c (base64_encode_fast, base64_encode): Add a no-op '& 0x3f' to the array index expressions. This convinces Coverity that there is no out-of-bounds array reference, regardless of the input. 2019-05-09 Bruno Haible gettext: Update to gettext 0.20. * modules/gettext (Files): Remove m4/codeset.m4, m4/fcntl-o.m4, m4/glibc2.m4, m4/glibc21.m4, m4/intdiv0.m4, m4/intl.m4, m4/intldir.m4, m4/intmax.m4, m4/inttypes_h.m4, m4/inttypes-pri.m4, m4/lcmessage.m4, m4/lock.m4, m4/longlong.m4, m4/printf-posix.m4, m4/size_max.m4, m4/stdint_h.m4, m4/threadlib.m4, m4/uintmax_t.m4, m4/visibility.m4, m4/wchar_t.m4, m4/wint_t.m4, m4/xsize.m4. Add m4/host-cpu-c-abi.m4. (configure.ac): Request infrastructure compatible with gettext 0.20. * m4/glibc2.m4: Remove file. * m4/intdiv0.m4: Remove file. * m4/intl.m4: Remove file. * m4/intldir.m4: Remove file. * m4/intmax.m4: Remove file. * m4/printf-posix.m4: Remove file. * m4/uintmax_t.m4: Remove file. * m4/gettext.m4: Update from gettext 0.20. * m4/po.m4: Likewise. 2019-05-09 Paul Eggert verify: remove verify_true * NEWS: Mention this. * lib/verify.h (verify_true): Remove. * tests/test-verify.c (item): Test verify_expr, not verify_true. Support C2x and C++17 static_assert C2x and C++17 finally added support for a simple, single-argument ‘static_assert’ that implements what the Gnulib ‘verify’ macro was doing back in 2005. Implement static_assert on older platforms. The only remaining advantage of ‘verify’ is a shorter name. * doc/posix-headers/assert.texi (assert.h): * doc/verify.texi (Compile-time Assertions): Modernize for C2x and C++17. * lib/verify.h (_GL_HAVE__STATIC_ASSERT1, _GL_HAVE_STATIC_ASSERT1): New macros. (_GL_HAVE__STATIC_ASSERT): Remove. (_GL_HAVE__STATIC_ASSERT): Rely more heavily on __STDC_VERSION__. (_GL_VERIFY_TRUE, _GL_VERIFY_TYPE): Remove 2nd arg, the diagnostic string. All callers changed. (_GL_VERIFY): Require 3 or more args, of which only the first 2 are used. All callers changed. (_Static_assert): Allow either 1 or 2 args, and define if !_GL_HAVE__STATIC_ASSERT1 instead of defining if !_GL_HAVE__STATIC_ASSERT. (static_assert): Define if !_GL_HAVE_STATIC_ASSERT1 instead of defining if !_GL_HAVE_STATIC_ASSERT. (verify_expr, verify): Don’t bother trying to copy the expression into the diagnostic, since 1-argument static_assert doesn’t. (verify): Prefer 1-argument _Static_assert if it works. * m4/assert_h.m4 (gl_ASSERT_H): Check for 1-argument static_assert. 2019-05-08 Paul Eggert Fix _GL_HAVE__STATIC_ASSERT typo * lib/verify.h (_Static_assert): For the FreeBSD workaround, use _GL_HAVE__STATIC_ASSERT, not _GL_HAVE_STATIC_ASSERT. 2019-05-05 Bruno Haible wcwidth: Ensure width 1, not 2, for ambiguous characters. Reported by Kiyoshi KANAZAWA via Akim Demaille . * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Check the width of U+2202. Use an en_US.UTF-8 locale, since that is more likely to be present than an fr_FR.UTF-8 locale. * tests/test-wcwidth.c (main): Check the width of U+2202. * doc/posix-functions/wcwidth.texi: Mention the issue. 2019-05-03 Paul Eggert Port manywarnings to GCC 9 * build-aux/gcc-warning.spec: Sort. Add -Wattribute-alias, -Wc11-c2x-compat, -Wcast-result (for the D programming language), -Wclass-conversion, -Wdeprecated-copy, -Wdeprecated-copy-dtor, -Winit-list-lifetime, -Wpessimizing-move, -Wprio-ctor-dtor, -Wredundant-move. Adjust to minor wording changes in GCC 9’s --help=warnings output. * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wabsolute-value, -Waddress-of-packed-member, -Wattribute-warning, -Wcannot-profile, -Wmissing-profile. Change -Wattribute-alias to -Wattribute-alias=2. 2019-04-30 Paul Eggert Sync lib/mktime-internal.h from glibc * config/srclist.txt: Add entry for lib/mktime-internal.h. * lib/mktime-internal.h: Autoupdate. 2019-04-28 Bruno Haible tls tests: Prevent that the test takes too long. * tests/test-tls.c: Include , . (main): Let the test fail if it takes more than 10 minutes. * modules/tls-tests (configure.ac): Test whether 'alarm' is declared. 2019-04-27 Bruno Haible lock tests: Prevent that the test takes too long. * tests/test-lock.c: Include , . (main): Let the test fail if it takes more than 10 minutes. * modules/lock-tests (configure.ac): Test whether 'alarm' is declared. 2019-04-27 Bruno Haible localename: Fix crash on mingw (regression from 2018-11-23). * lib/localename.c (gl_locale_name_posix): Don't attempt to convert a locale name that is null. 2019-04-27 Bruno Haible Fix gcc warnings on 64-bit mode mingw. * lib/clean-temp.c: Include instead of defining uintptr_t. * lib/gl_array_list.c: Likewise. * lib/gl_array_map.c: Likewise. * lib/gl_array_set.c: Likewise. * lib/gl_carray_list.c: Likewise. * lib/gl_sublist.c: Likewise. * lib/gl_avltreehash_list.c (uintptr_t): Remove definition. * lib/gl_rbtreehash_list.c (uintptr_t): Likewise. * lib/gl_hash_map.c (uintptr_t): Likewise. * lib/gl_hash_set.c (uintptr_t): Likewise. * lib/gl_linkedhash_list.c (uintptr_t): Likewise. * lib/gl_linkedhash_map.c (uintptr_t): Likewise. * lib/gl_linkedhash_set.c (uintptr_t): Likewise. * lib/iconv.c (uintptr_t): Likewise. * lib/iconv_close.c (uintptr_t): Likewise. * tests/test-lock.c: Include . (once_contender_thread, test_once): Cast through 'intptr_t' instead of 'long'. * modules/clean-temp (Depends-on): Add stdint. * modules/array-list (Depends-on): Likewise. * modules/array-map (Depends-on): Likewise. * modules/array-set (Depends-on): Likewise. * modules/carray-list (Depends-on): Likewise. * modules/sublist (Depends-on): Likewise. * modules/lock-tests (Depends-on): Likewise. 2019-04-27 Bruno Haible error: Tweak indentation. * lib/error.c: Correct indentation. 2019-04-27 Bruno Haible term-style-control: Fix gcc warning on mingw. * lib/term-style-control.c (ensure_other_signal_handlers): Reduce scope of i. 2019-04-26 Bruno Haible pipe-filter-gi, pipe-filter-ii: Fix gcc warning. * lib/pipe-filter-aux.h (read): Undefine before redefinition. 2019-04-26 Bruno Haible relocatable-prog: Fix gcc warning on mingw. * lib/progreloc.c (maybe_executable): Don't define on native Windows and on EMX. 2019-04-02 Bruno Haible gitsub.sh: New file. * top/gitsub.sh: New file. 2019-04-18 Akim Demaille argmatch: use void* for raw memory pointers * lib/argmatch.h, lib/argmatch.c (argmatch, argmatch_valid) (__xargmatch_internal, argmatch_to_argument): Use void* for pointers to "values", keep char* for strings. 2019-04-21 Akim Demaille prefix-gnulib-mk: fix the support for gnulib-po * build-aux/prefix-gnulib-mk (prefix_assignment): Remove useless $res. Don't touch HAVE_* variables. Map AM_CPPFLAGS and AM_CPPFLAGS to the library's corresponding variables. 2019-04-18 Bernhard Voelker di-set: allow free with 'ino_map' being NULL. * lib/di-set.c (di_set_free): Avoid ino_map_free() when dis->ino_map is NULL. Bug introduced in commit 3703dbbe88dd. * tests/test-di-set.c: Add di_set_free() right after di_set_alloc() as a test. 2019-04-14 Paul Eggert * lib/str-two-way.h: Fix comment typo. 2019-04-13 Bruno Haible x-to-1: Restore ability to use original calling convention. * build-aux/x-to-1.in: Add comments. Accept the original form of HELP2MAN argument as well as the form expected since 2012-12-12. 2019-04-13 Bruno Haible x-to-1: Avoid failure due to missing perl modules. * build-aux/x-to-1.in: Test whether all the perl modules that help2man needs are installed. 2019-04-13 Bruno Haible openmp-init: New module. * modules/openmp-init: New file. * modules/openmp: (Files, Depends-on, configure.ac, Makefile.am): Revert the changes from 2019-04-09. 2019-04-12 Bruno Haible signbit: Fix compilation error when gnulib's math.h exists twice. * lib/math.in.h (GNULIB_defined_signbit): New macro. 2019-04-12 Bruno Haible openmp: Fix compilation error on platforms without OpenMP. * lib/omp-init.c: Include only if _OPENMP. 2019-04-09 Bernhard Voelker mountlist: make parsing /proc/self/mountinfo more robust Cater for the following issues with mountinfo parsing (the first one was reported by Zbigniew Jędrzejewski-Szmek in ). 1. The fields source, target, mntroot and fstype may contain characters like '\r'; sscanf(3) fails to read such values with the %s format specifier because it would stop at such characters. Example: "mount -t tmpfs tmpfs /foo^Mbar". The only true separator in that file is the ' ' character. 2. The source field may be an empty string, which happens e.g. with "mount -t tmpfs '' /target". 3. The fstype field may contain mangled characters as well which need unescaping. * lib/mountlist.c (terminate_at_blank): Add utility function. (read_file_system_list): In the block trying to read the mountinfo file, avoid using sscanf(3) with %s format; instead, parse the above fields separated by spaces one by one. This also handles the case when the source field is an empty string. Unescape the fstype field. 2019-04-09 Bruno Haible openmp: Add workaround for 32-bit programs on AIX. * lib/omp.in.h: New file. * lib/omp-init.c: New file, based on lib/nproc.c. * m4/omp_h.m4: New file. * modules/openmp (Files): Add them. (Depends-on): Add include_next, c-ctype, setenv. (configure.ac): Invoke gl_OMP_H. (Makefile.am): Add rules to create omp.h and compile omp-init.c. (Include): Mention . 2019-04-09 Bruno Haible nproc: Fix return value for privileged processes. * lib/nproc.c (num_processors_ignoring_omp): Test getuid(), not getpid(). 2019-04-07 Bruno Haible Add copyright notices in several files. Reported by in . * lib/_Noreturn.h: Add LGPLv2+ copyright notice. * lib/libunistring.valgrind: Likewise. * lib/iconv_open-*.gperf: Add GPLv2+ copyright notice. * lib/uniname/gen-uninames.lisp: Add GPLv3+ copyright notice. * lib/memchr.valgrind: Likewise. * lib/memchr2.valgrind: Likewise. * lib/rawmemchr.valgrind: Likewise. * lib/relocatable.valgrind: Likewise. * lib/strchrnul.valgrind: Likewise. 2019-03-25 Bruno Haible term-style-control tests: Fix link error. Reported by Tom G. Christensen in . * modules/term-style-control-tests (Makefile.am): Link test-term-style-control-hello and test-term-style-control-yes against LIBINTL. 2019-03-24 Bruno Haible term-style-control: Add tests. * tests/test-term-style-control-hello.c: New file. * tests/test-term-style-control-yes.c: New file. * modules/term-style-control-tests: New file. term-style-control: New module. * lib/term-style-control.h: New file, based on libtextstyle's term-ostream.oo.h and term-ostream.oo.c. * lib/term-style-control.c: New file, based on libtextstyle's term-ostream.oo.c. * modules/term-style-control: New file. 2019-03-22 Akim Demaille _Noreturn: beware of C's _Noreturn in C++ pre C++11. * lib/_Noreturn.h, m4/gnulib-common.m4: Using C's _Noreturn in C++98 appears to be supported by Clang, but not by GCC nor ICC. 2019-03-23 Bruno Haible Support cross-compilation to musl libc. Reported by Necktwi Ozfguah . * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Add cross-compilation guesses for musl libc. * m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Likewise. * m4/cbrtl.m4 (gl_FUNC_CBRTL): Likewise. * m4/ceil.m4 (gl_FUNC_CEIL): Likewise. * m4/ceilf.m4 (gl_FUNC_CEILF): Likewise. * m4/ceill.m4 (gl_FUNC_CEILL): Likewise. * m4/chown.m4 (gl_FUNC_CHOWN): Likewise. * m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Likewise. * m4/exp2l.m4 (gl_FUNC_EXP2L): Likewise. * m4/expl.m4 (gl_FUNC_EXPL): Likewise. * m4/expm1.m4 (gl_FUNC_EXPM1): Likewise. * m4/expm1l.m4 (gl_FUNC_EXPM1L): Likewise. * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Likewise. * m4/floor.m4 (gl_FUNC_FLOOR): Likewise. * m4/floorf.m4 (gl_FUNC_FLOORF): Likewise. * m4/fmod.m4 (gl_FUNC_FMOD): Likewise. * m4/fmodf.m4 (gl_FUNC_FMODF): Likewise. * m4/fmodl.m4 (gl_FUNC_FMODL): Likewise. * m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Likewise. * m4/fpurge.m4 (gl_FUNC_FPURGE): Likewise. * m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Likewise. * m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Likewise. * m4/getdelim.m4 (gl_FUNC_GETDELIM): Likewise. * m4/getgroups.m4 (AC_FUNC_GETGROUPS, gl_FUNC_GETGROUPS): Likewise. * m4/getline.m4 (gl_FUNC_GETLINE): Likewise. * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY_CLOBBER): Likewise. * m4/hypot.m4 (gl_FUNC_HYPOT): Likewise. * m4/hypotf.m4 (gl_FUNC_HYPOTF): Likewise. * m4/hypotl.m4 (gl_FUNC_HYPOTL): Likewise. * m4/iconv_open-utf.m4 (gl_FUNC_ICONV_OPEN_UTF_SUPPORT): Likewise. * m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK): Likewise. * m4/log.m4 (gl_FUNC_LOG): Likewise. * m4/logf.m4 (gl_FUNC_LOGF): Likewise. * m4/logl.m4 (gl_FUNC_LOGL_WORKS): Likewise. * m4/log10.m4 (gl_FUNC_LOG10): Likewise. * m4/log10f.m4 (gl_FUNC_LOG10F): Likewise. * m4/log10l.m4 (gl_FUNC_LOG10L): Likewise. * m4/log1p.m4 (gl_FUNC_LOG1P): Likewise. * m4/log1pf.m4 (gl_FUNC_LOG1PF): Likewise. * m4/log1pl.m4 (gl_FUNC_LOG1PL): Likewise. * m4/log2.m4 (gl_FUNC_LOG2): Likewise. * m4/log2f.m4 (gl_FUNC_LOG2F): Likewise. * m4/malloc.m4 (_AC_FUNC_MALLOC_IF): Likewise. * m4/mkdir.m4 (gl_FUNC_MKDIR): Likewise. * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Likewise. * m4/modf.m4 (gl_FUNC_MODF): Likewise. * m4/modff.m4 (gl_FUNC_MODFF): Likewise. * m4/modfl.m4 (gl_FUNC_MODFL): Likewise. * m4/perror.m4 (gl_FUNC_PERROR): Likewise. * m4/printf.m4 (gl_PRINTF_SIZES_C99, gl_PRINTF_INFINITE, gl_PRINTF_INFINITE_LONG_DOUBLE, gl_PRINTF_DIRECTIVE_A, gl_PRINTF_DIRECTIVE_F, gl_PRINTF_FLAG_ZERO, gl_SNPRINTF_TRUNCATION_C99, gl_SNPRINTF_RETVAL_C99, gl_SNPRINTF_DIRECTIVE_N, gl_VSNPRINTF_ZEROSIZE_C99): Likewise. * m4/ptsname.m4 (gl_FUNC_PTSNAME): Likewise. * m4/putenv.m4 (gl_FUNC_PUTENV): Likewise. * m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Likewise. * m4/remainder.m4 (gl_FUNC_REMAINDER): Likewise. * m4/remainderf.m4 (gl_FUNC_REMAINDERF): Likewise. * m4/remainderl.m4 (gl_FUNC_REMAINDERL): Likewise. * m4/rintl.m4 (gl_FUNC_RINTL): Likewise. * m4/round.m4 (gl_FUNC_ROUND): Likewise. * m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise. * m4/roundl.m4 (gl_FUNC_ROUNDL): Likewise. * m4/setenv.m4 (gl_FUNC_SETENV): Likewise. * m4/signbit.m4 (gl_SIGNBIT): Likewise. * m4/sleep.m4 (gl_FUNC_SLEEP): Likewise. * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Likewise. * m4/strerror.m4 (gl_FUNC_STRERROR, gl_FUNC_STRERROR_0): Likewise. * m4/strtod.m4 (gl_FUNC_STRTOD): Likewise. * m4/strtold.m4 (gl_FUNC_STRTOLD): Likewise. * m4/trunc.m4 (gl_FUNC_TRUNC): Likewise. * m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise. * m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise. * m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): Likewise. * m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): Likewise. * m4/usleep.m4 (gl_FUNC_USLEEP): Likewise. * m4/utimes.m4 (gl_FUNC_UTIMES): Likewise. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise. 2019-03-23 Bruno Haible posix_spawn_file_actions_*: Document musl libc bugs. * doc/posix-functions/posix_spawn_file_actions_addclose.texi: Mention the bug. * doc/posix-functions/posix_spawn_file_actions_adddup2.texi: Likewise. * doc/posix-functions/posix_spawn_file_actions_addopen.texi: Likewise. * m4/posix_spawn.m4 (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE): When cross-compiling to a musl system, guess no. (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2): Likewise. (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN): Likewise. 2019-03-23 Bruno Haible futimens: Document musl libc bug. * doc/posix-functions/futimens.texi: Mention the bug. * m4/futimens.m4 (gl_FUNC_FUTIMENS): Require AC_CANONICAL_HOST. When cross-compiling, guess no on glibc and musl systems. 2019-03-23 Bruno Haible Clarify that cross-compilation guesses are guesses. * m4/chown.m4 (gl_FUNC_CHOWN_FOLLOWS_SYMLINK): When cross-compiling, add prefix 'guessing ' to gl_cv_func_chown_follows_symlink. * m4/fchownat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG): When cross-compiling, add prefix 'guessing ' to gl_cv_func_fchownat_nofollow_works. * m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): When cross-compiling, add prefix 'guessing ' to gl_cv_func_getcwd_abort_bug. * m4/glob.m4 (gl_GLOB): When cross-compiling, add prefix 'guessing ' to gl_cv_glob_lists_symlinks. * m4/malloc.m4 (_AC_FUNC_MALLOC_IF): When cross-compiling, add prefix 'guessing ' to ac_cv_func_malloc_0_nonnull. * m4/realloc.m4 (_AC_FUNC_REALLOC_IF): When cross-compiling, add prefix 'guessing ' to ac_cv_func_realloc_0_nonnull. * m4/poll.m4 (gl_FUNC_POLL): When cross-compiling, add prefix 'guessing ' to gl_cv_func_poll. * m4/iconv_open-utf.m4 (gl_FUNC_ICONV_OPEN_UTF_SUPPORT): When cross- compiling, add prefix 'guessing ' to gl_cv_func_iconv_supports_utf. * m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): Update accordingly. 2019-03-23 Bruno Haible strtold: Fix typo. * m4/strtold.m4 (gl_FUNC_STRTOLD): Fix typo in variable name. 2019-03-23 Bruno Haible noreturn: In C++ mode with clang, use _Noreturn as fallback. Reported by Akim Demaille. * lib/noreturn.h (_GL_NORETURN_FUNC): In C++ mode with clang, when [[noreturn]] would not work, use _Noreturn instead. 2019-03-22 Akim Demaille libtextstyle-optional: Fix compiler warnings. * lib/textstyle.in.h (html_styled_ostream_create): Flag arguments as unused. 2019-03-19 Akim Demaille bitset: fix memory leaks Reported by Bruno Haible. https://lists.gnu.org/archive/html/bug-gnulib/2019-03/msg00027.html * lib/bitset/vector.c (vbitset_free): New. (vbitset_vtable): Use it. 2019-03-19 Akim Demaille bitset: minor changes * lib/bitset/base.h (bitset_alloc_type): Remove, unused. * lib/bitset/table.c: Formatting changes. Remove useless braces. Prefer using else in cascades of if/else-if with returns. * lib/bitset/vector.c: Reduce scopes. 2019-03-19 Akim Demaille bitset: expose bitset_resize * lib/bitset.h (bitset_resize): Bounce on the polymorphic implementation. * tests/test-bitset.c (check_attributes): Check bitset_resize. (main): Use a variable bitset as reference, since fixed does not support resize. 2019-03-19 Bruno Haible doc: Document the 'stdnoreturn' and 'noreturn' modules. Reported by Akim Demaille. * doc/noreturn.texi: New file. * doc/gnulib.texi: Include it. 2019-03-19 Bruno Haible doc: Document how to use 'static inline'. * doc/static-inline.texi: New file. * doc/gnulib.texi: Include it. 2019-03-19 Bruno Haible libtextstyle-optional: Add tests. * tests/test-libtextstyle.c: New file, based on libtextstyle's adhoc-tests/hello.c. * tests/test-libtextstyle-default.css: New file, copied from libtextstyle's adhoc-tests/hello-default.css. * modules/libtextstyle-optional-tests: New file. libtextstyle-optional: New module. * lib/textstyle.in.h: New file, based on libtextstyle's textstyle.h. * m4/libtextstyle-optional.m4: New file, based on m4/libtextstyle.m4. * modules/libtextstyle-optional: New file. 2019-03-19 Bruno Haible c-stack: Make signal handlers more reliable. * lib/c-stack.c (progname): New variable. (die): Use it. (c_stack_action): Initialize it. (segv_handler): Save and restore errno. 2019-03-19 Bruno Haible Help making signal handlers more reliable. * m4/gnulib-common.m4 (gl_COMMON_BODY): Emit definition of _GL_ASYNC_SAFE into config.h. * lib/nanosleep.c (sighandler): Mark as _GL_ASYNC_SAFE. * lib/fatal-signal.h (at_fatal_signal): Add _GL_ASYNC_SAFE marker to argument. * lib/fatal-signal.c (action_t, uninstall_handlers, fatal_signal_handler): Mark as _GL_ASYNC_SAFE. * lib/clean-temp.c (cleanup_action): Mark as _GL_ASYNC_SAFE. * lib/wait-process.c (cleanup_slaves, cleanup_slaves_action): Mark as _GL_ASYNC_SAFE. * lib/c-stack.h (c_stack_action): Add _GL_ASYNC_SAFE marker to argument. * lib/c-stack.c: Add _GL_ASYNC_SAFE markers. 2019-03-18 Bruno Haible _Noreturn: clang and MSVC do support [[noreturn]] in C++11 mode. * lib/_Noreturn.h: Use [[noreturn]] if __GNUC__ and __GNUC_MINOR__ indicate clang, or if _MSC_VER indicates MSVC++ 14.0 or newer. 2019-03-17 Akim Demaille _Noreturn: GCC 4.7 does not support [[noreturn]] in C++11 mode * lib/_Noreturn.h, m4/gnulib-common.m4: Don't use [[noreturn]] before GCC 4.8. 2019-03-17 Paul Eggert fts: minor simplification * lib/fts.c (fts_safe_changedir): Remove redundant assignment. 2019-03-17 Akim Demaille bitset, timevar: Depend on c99. Reported by Bruno Haible. * modules/bitset, modules/timevar (Depends-on): Add c99. 2019-03-16 Akim Demaille bitset: a bit (...) more tests * tests/test-bitset.c (check_attributes): Check zero and ones. 2019-03-16 Akim Demaille bitset: fix overflows. Reported by Bruno Haible. https://lists.gnu.org/archive/html/bug-gnulib/2019-03/msg00017.html * lib/bitset/table.c (tbitset_test): last_bit is the position of the bit in the array of bitset_word, so be sure to take its modulo number-of-bits-in-bitset-word (i.e., EBITSET_ELT_WORDS). * lib/bitset/list.c (lbitset_unused_clear): Likewise. 2019-03-14 Akim Demaille bitset: style changes. * lib/bitset/table.c: Use NULL, not 0, for pointers. Formatting changes. (tbitset_list): Reduce scopes. 2019-03-16 Bruno Haible fatal-signal: Pass the signal number to the action. * lib/fatal-signal.h (at_fatal_signal): Change the signature. * lib/fatal-signal.c (action_t): Take the signal number as parameter. (fatal_signal_handler): Pass the signal number to the action. * lib/clean-temp.c (cleanup_action): Renamed from cleanup. Take the signal number as parameter. (create_temp_dir): Update. * lib/wait-process.c (cleanup_slaves_action): New function. (register_slave_subprocess): Update at_fatal_signal invocation. * NEWS: Mention the change. 2019-03-16 Bruno Haible fatal-signal: Add function that lists the fatal signals. * lib/fatal-signal.h (get_fatal_signals): New declaration. * lib/fatal-signal.c (get_fatal_signals): New function. 2019-03-14 Bruno Haible isatty: Make it return true in Cygwin consoles on native Windows. * lib/isatty.c: Include . (GetProcAddress): New macro. (GetNamedPipeClientProcessIdFuncType): New type. (GetNamedPipeClientProcessIdFunc): New variable. (QueryFullProcessImageNameFuncType): New type. (QueryFullProcessImageNameFunc): New variable. (initialized): New variable. (initialize): New function. (IsCygwinConsoleHandle): New function. (isatty): Invoke it. * doc/posix-functions/isatty.texi: Mention the issue. 2019-03-14 Bruno Haible all: Update URLs to msdn.microsoft.com. * lib/stat-w32.c et al.: Update URLs after most of msdn.microsoft.com was moved to docs.microsoft.com. 2019-03-13 Bruno Haible gnulib-tool: Clarify the coding style. Suggested by Pavel Raiskup . * gnulib-tool: Add comment about coding style. 2019-03-11 Paul Eggert strtod: fix clash with strtold Problem reported for RHEL 5 by Jesse Caldwell (Bug#34817). * lib/strtod.c (compute_minus_zero, minus_zero): Simplify by remving the macro / external variable, and having just a function. User changed. This avoids the need for an external variable that might clash. 2019-03-10 Bruno Haible alloca-opt: Fix conflict mingw's new file. Reported by Eli Zaretskii . * lib/alloca.in.h: On mingw systems that have , include that. * m4/alloca.m4 (gl_FUNC_ALLOCA): Set HAVE_ALLOCA_H. * modules/alloca-opt (Makefile.am): Substitute HAVE_ALLOCA_H. 2019-03-10 Bruno Haible tests: Avoid havoc with "gcc -fcheck-pointer-bounds". * tests/test-fprintf-posix2.c: Skip the test when -fcheck-pointer-bounds is in use. * tests/test-printf-posix2.c: Likewise. 2019-03-10 Bruno Haible uninorm tests: Free allocated memory. * tests/uninorm/test-u32-normalize-big.h (struct normalization_test_file): Remove 'const' from allocated member. (free_normalization_test_file): New declaration. * tests/uninorm/test-u32-normalize-big.c (test_other): Free allocated memory. (free_normalization_test_file): New function. * tests/uninorm/test-u32-nfc-big.c (main): Free allocated 'struct normalization_test_file' contents. * tests/uninorm/test-u32-nfd-big.c (main): Likewise. * tests/uninorm/test-u32-nfkc-big.c (main): Likewise. * tests/uninorm/test-u32-nfkd-big.c (main): Likewise. 2019-03-10 Bruno Haible di-set: Fix memory leak. * lib/di-set.c (di_set_free): Free the ino_map through ino_map_free(), not free(). 2019-03-10 Bruno Haible tests: Free allocated memory. Reported by via Assaf Gordon. * tests/test-astrxfrm.c (main): Free allocated memory. * tests/test-bitset.c (compare, check_attributes): Free allocated bitsets. * tests/test-filenamecat.c (main): Free allocated memory. * tests/test-freadahead.c (main): Free allocated memory and close stdin. * tests/test-freadptr.c (main): Likewise. * tests/test-freadptr2.c (main): Free allocated memory. * tests/test-freadseek.c (main): Likewise. * tests/test-gc-arcfour.c (main): Close allocated context. * tests/test-gc-arctwo.c (main): Likewise. * tests/test-gc-des.c (main): Close all allocated contexts. * tests/test-pipe-filter-gi1.c (main): Free allocated memory. * tests/test-pipe-filter-ii1.c (main): Likewise. * tests/test-posix_spawn_file_actions_addchdir.c (main): Destroy the allocated file actions. * tests/test-posix_spawn_file_actions_addclose.c (main): Likewise. * tests/test-posix_spawn_file_actions_adddup2.c (main): Likewise. * tests/test-posix_spawn_file_actions_addopen.c (main): Likewise. * tests/test-sameacls.c (main): Free allocated memory and ACLs. * tests/test-strfmon_l.c (main): Free allocated locales. * tests/test-striconveh.c (main): Free allocated iconv_t objects. * tests/uniconv/test-u8-conv-to-enc.c (main): Free allocated memory. * tests/uniconv/test-u16-conv-to-enc.c (main): Likewise. * tests/uniconv/test-u32-conv-to-enc.c (main): Likewise. * tests/unistr/test-chr.h (main): Free input32. * tests/unistr/test-strchr.h (test_strchr): Likewise. 2019-03-10 Bruno Haible tests: Prepare for using valgrind. * tests/*.sh: Invoke all test programs through ${CHECKER}. * tests/*/*.sh: Likewise. * tests/test-freadptr.c (main): Update accordingly. * tests/test-freadseek.c (main): Likewise. 2019-03-09 Bruno Haible get-rusage-as, pthread_sigmask tests: Fix -fsanitize=thread findings. * lib/get-rusage-as.c (get_rusage_as): When compiled by "gcc -fsanitize=thread", don't try get_rusage_as_via_setrlimit. * tests/test-pthread_sigmask2.c (main): Clean up the killer_thread before exiting. 2019-03-09 Jim Meyering test-userspec.c: don't print NULL * tests/test-userspec.c (main): A test release of gcc, 9.0.1 20190310, warned that this test would attempt to print a NULL pointer via a %s printf format. Fix that and remove the unnecessary preceding "!diag" conjunct. Also add a comment. 2019-03-03 Bruno Haible getloadavg: Write NULL for the null pointer. Reported by Michal Privoznik . * lib/getloadavg.c (getloadavg): Write NULL instead of 0. 2019-02-28 Michal Privoznik alloca, tsearch-tests: Write NULL for the null pointer. * lib/alloca.c (i00afunc): Write NULL instead of 0. * tests/test-tsearch.c (mangle_tree): Likewise. 2019-03-09 Bruno Haible strfmon_l: Fix -fsanitize=address finding. * lib/strfmon_l.c: Include , , , . (MAX_ARGS): Renamed from MAX_ARG_WORDS. (directive_t, directives_t): New types. (fmon_parse): New function. (rpl_strfmon_l): Don't call va_arg more often than needed for the format string. Consume 'long double' arguments in places where the format string indicates so. * modules/strfmon_l (Depends-on): Add 'stdbool'. 2019-03-09 Bruno Haible crypto/des: Fix undefined behaviour. * lib/des.c (READ_64BIT_DATA): Cast bytes to 'unsigned int', to avoid shift operations on 'int'. 2019-03-09 Bruno Haible Fix undefined behaviour. * lib/bitrotate.h (rotl16, rotr16, rotl8, rotr8): Cast x to 'unsigned int', to avoid shift operations on 'int'. * lib/xmemdup0.c (xmemdup0): Don't invoke memcpy with a zero size. * tests/test-count-leading-zeros.c (main): Use a random number that has as many bits as TYPE, not only 2*15 or 2*31 bits. * tests/test-count-trailing-zeros.c (main): Likewise. * tests/test-count-one-bits.c (main): Likewise. * tests/test-memmem.c: Don't include "null-ptr.h". (main): Use zerosize_ptr() instead of null_ptr(). * modules/memmem-tests (Files): Remove tests/null-ptr.h. 2019-03-08 Bruno Haible unilbrk/u*-possible-linebreaks: Fix undefined behaviour. Reported by Jeffrey Walton . * lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks): Don't invoke memset with a zero size. * lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks): Likewise. * lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks): Adjust accordingly. 2019-03-08 Bruno Haible unistr/*, uniconv/*: Fix undefined behaviour. Reported by Jeffrey Walton . * lib/unistr/u-cpy.h (FUNC): Don't invoke memcpy with a zero size. * lib/unistr/u-cpy-alloc.h (FUNC): Likewise. * lib/uniconv/u8-conv-from-enc.c (u8_conv_from_encoding): Likewise. * lib/uniconv/u8-conv-to-enc.c (u8_conv_to_encoding): Likewise. 2019-03-08 Bruno Haible unistr/u8-cmp: Fix undefined behaviour. Reported by Jeffrey Walton . * lib/unistr/u8-cmp.c (u8_cmp): Don't invoke memcmp if n is zero. 2019-03-08 Bruno Haible unictype/numeric: Fix undefined behaviour. Reported by Jeffrey Walton . * lib/unictype/numeric.c (uc_numeric_value): Avoid undefined behaviour on shift overflow, caught by "gcc -fsanitize=undefined". * lib/unictype/bidi_of.c (uc_bidi_class): Add cast, for clarity. * lib/unictype/categ_of.c (lookup_withtable): Likewise. * lib/unictype/joininggroup_of.c (uc_joining_group): Likewise. 2019-03-05 Paul Eggert git-version-gen: fix --version copyright year * build-aux/git-version-gen, build-aux/move-if-change (version): --version output copyright year is now taken from script year, so that it no longer needs to be updated by hand. 2019-03-04 Bruno Haible relocatable-prog: Use wrapper-free installation on Mac OS X, take 2. This approach supports relocatable installation of shared libraries which depend on other shared libraries from the same package. * m4/relocatable.m4 (gl_RELOCATABLE_BODY): Determine use_macos_tools. If use_macos_tools is true, use reloc-ldflags and set LIBTOOL to be a wrapper around the original LIBTOOL. * build-aux/reloc-ldflags: Add support for Mac OS X, which uses the token '@loader_path' instead of '$ORIGIN'. * build-aux/libtool-reloc: New file. * modules/relocatable-prog (Files): Add it. * doc/relocatable-maint.texi (Supporting Relocation): Update to match the recent changes. Document the need to set the *_LDFLAGS of libraries. RELOCATABLE_LIBRARY_PATH and RELOCATABLE_CONFIG_H_DIR should be set in Makefile.am, not in configure.ac. 2019-03-04 Bruno Haible relocatable-prog: Revert "Use wrapper-free installation on Mac OS X." * build-aux/install-reloc: Revert change. * m4/relocatable.m4 (gl_RELOCATABLE_BODY): Likewise. 2019-02-24 Paul Eggert nstrftime: support the ‘+’ flag * lib/nstrftime.c (add, __strftime_internal): Add support for the ‘+’ flag introduced in POSIX.1-2017. (__strftime_internal): New arg ‘width’. All uses changed. (DO_YEARISH, DO_MAYBE_SIGNED_NUMBER): New macros. 2019-02-24 Bruno Haible relocatable-prog: Improve verbose output. * build-aux/install-reloc (func_verbose): Escape characters that would be interpreted by the shell. 2019-02-24 Bruno Haible stat, lstat: Fix conflict with relocatable-prog-wrapper module. * lib/stat.c: On platforms other than OSF/1, include , not "sys/stat.h". * lib/lstat.c: Likewise. * lib/fstat.c: Likewise. * lib/fstatat.c: Likewise. 2019-02-23 Bernhard Voelker long-options: add parse_gnu_standard_options_only Discussed in https://bugs.gnu.org/33468 . * lib/long-options.c (parse_long_options): Use EXIT_SUCCESS instead of 0 (parse_gnu_standard_options_only): Add function to process the GNU default options --help and --version and fail for any other unknown long or short option. See https://gnu.org/prep/standards/html_node/Command_002dLine-Interfaces.html * lib/long-options.h (parse_gnu_standard_options_only): Declare it. * modules/long-options (depends-on): Add stdbool, exitfail. * top/maint.mk (sc_prohibit_long_options_without_use): Update syntax-check rule, add new function name. 2019-02-23 Bruno Haible relocatable-prog: Update documentation. * doc/relocatable-maint.texi (Supporting Relocation): Update to match the recent changes. 2019-02-23 Paul Eggert nstrftime: tweak arg order * lib/nstrftime.c (__strftime_internal): Interchange arg order. All callers changed. Suggested by TAMUKI Shoichi in: https://lists.gnu.org/r/bug-gnulib/2019-02/msg00052.html 2019-02-23 Bruno Haible relocatable-prog: Use wrapper-free installation also on Mac OS X. Reported by Paul Smith . * build-aux/install-reloc: Accept a 'mode' argument as first argument. (func_relativize): New function, from gnulib-tool. Handle mode 'macosx' through invocations of 'otool' and 'install_name_tool'. * m4/relocatable.m4 (gl_RELOCATABLE_BODY): Determine use_macos_tools. If use_macos_tools is true, set INSTALL_PROGRAM_ENV to an 'install-reloc' invocation with mode 'macosx'. 2019-02-23 Bruno Haible relocatable-prog: Use $ORIGIN trick also on GNU/Hurd. * m4/relocatable.m4 (gl_RELOCATABLE_BODY): Use $ORIGIN trick also on Hurd with glibc >= 2.27. 2019-02-21 Paul Eggert nstrftime: merge glibc strftime changes This incorporates: 2019-02-11 Fix a few whitespace arrangement inconsistencies 2019-01-24 strftime: Pass flags from "%EY" to "%Ey" [BZ #24096] 2019-01-24 Set the default width of "%Ey" to 2 [BZ #23758] 2019-01-11 strftime: use the "L_" macro with character literals * lib/nstrftime.c (__strftime_internal): New arg yr_spec. All callers changed. Default width of %Ey is now 2. This is needed for proper handling of Japanese dates starting on 2019-05-01. 2019-02-19 Bruno Haible relocatable-prog: Use $ORIGIN trick on more platforms. * m4/relocatable.m4 (gl_RELOCATABLE_BODY): Use $ORIGIN trick also on FreeBSD >= 7.3, DragonFly >= 3.0, NetBSD >= 8.0, OpenBSD >= 5.4, Solaris >= 10, Haiku. But don't use it on Android. * build-aux/reloc-ldflags: Allow the use of the $ORIGIN trick also on Hurd, FreeBSD, DragonFly, NetBSD, OpenBSD, Solaris, Haiku. 2019-02-19 Bruno Haible progreloc: Speed up executable lookup on various platforms. * lib/progreloc.c: Include . (safe_read, full_read): New functions. (find_executable): On GNU/kFreeBSD, FreeBSD, DragonFly, NetBSD, Solaris, prefer the information from the /proc file system to a PATH search. 2019-02-19 Bruno Haible progreloc: Simplify code for Android. * lib/progreloc.c (executable_fd): Don't define on Android. (maybe_executable, find_executable): Don't use executable_fd on Android. 2019-02-15 Bruno Haible gnulib-tool: Support --import with just a few tests, not --with-tests. * gnulib-tool (func_import): New variable 'gentests'. Use it instead of 'inctests' when generating files; use 'inctests' only for computing the transitive closure. 2019-02-14 Bruno Haible gnulib-tool: Improve handling of multiple --local-dir options. * doc/gnulib.texi (Extending Gnulib): Explain how multiple --local-dir options work. * gnulib-tool (func_path_prepend): Remove function. (func_path_foreach): Make IFS handling more robust. (local_gnulib_path): Collect --local-dir values using func_path_append, not func_path_prepend. (func_determine_path_separator): Make IFS handling more robust. (func_lookup_file_cb): New function. (func_lookup_file): Rewritten to use func_lookup_file_cb instead of func_lookup_local_file. Apply the patches in the reverse order of their origin in $local_gnulib_path. (func_count_relative_local_gnulib_path): Make IFS handling more robust. * NEWS: Mention that the first --local-dir option is the one with highest priority. 2019-02-10 Bruno Haible libtextstyle: New module. * m4/libtextstyle.m4: New file. * modules/libtextstyle: New file. 2019-02-05 Bruno Haible declared.sh: Fix bug with variables of pointer type. * build-aux/declared.sh (sed_extract_extern_declared): Allow the space before the symbol to be omitted if the preceding character is a '*'. 2019-02-04 Bruno Haible Add script for running tests under valgrind. * build-aux/run-test: New file, from GNU libunistring. * doc/valgrind-tests.texi: Rewritten to mention alternative approaches as well. 2019-02-04 Bruno Haible declared.sh: Fix --version output. * build-aux/declared.sh (func_version): Update package name. 2019-02-03 Bruno Haible Add script for determining the set of symbols to export from a library. * build-aux/declared.sh: New file, from GNU libunistring. * doc/lib-symbol-visibility.texi (Exported Symbols of Shared Libraries): Mention it. 2019-02-02 Paul Eggert vla: add commentary about VLA_ELEMS * lib/vla.h (VLA_ELEMS): Add commentary, some inspired by Bruno Haible’s proposal in: https://lists.gnu.org/r/bug-gnulib/2019-01/msg00109.html dtoastr,ftoastr,ldtoastr: port to c-strtod changes Decouple these modules from c-strtod. Nowadays it’s reasonable to assume the C99 signatures for strtod and strtold. Programs that require stricter adherence to C99 should also use the strtod and strtold modules as needed, and we no longer need the HAVE_C99_STRTOLD macro. * NEWS: Mention this. * lib/ftoastr.c (STRTOF) [LENGTH == 3]: Assume strtold. * m4/c-strtod.m4 (gl_C_STRTOLD): Do not define HAVE_C99_STRTOLD. * modules/dtoastr, modules/ftoastr, modules/ldtoastr: (Files): Remove m4/c-strtod.m4. (configure.ac): Do not require gl_C99_STRTOLD, which no longer exists. 2019-02-02 Bruno Haible fma: Improve code style. * lib/fma.c: Include , for CHAR_BIT. 2019-02-02 Colin Watson *-map tests: Fix compilation error. * tests/test-array_map.c: Include , for CHAR_BIT. * tests/test-hash_map.c: Likewise. * tests/test-linkedhash_map.c: Likewise. 2019-01-31 Bruno Haible c-strtod, c-strtold: Use the bug fixes for strtod, strtold. * lib/stdlib.in.h (GNULIB_defined_strtod_function, GNULIB_defined_strtold_function): New macros. * lib/c-strtod.c (HAVE_GOOD_STRTOD_L): New macro. (STRTOD): Ignore HAVE_C99_STRTOLD. (c_locale): Don't define it on platforms where strtod_l/strtold_l is deemed buggy. But do use it on platforms where uselocale exists and is usable. (C_STRTOD): Don't use STRTOD_L on platforms where strtod_l/strtold_l is deemed buggy. On platforms where uselocale exists and is usable, use uselocale and strtod/strtold. * m4/c-strtod.m4 (gl_C99_STRTOLD): Remove macro. (gl_C_STRTOD): Require gt_FUNC_USELOCALE. (gl_C_STRTOLD): Likewise. Define HAVE_C99_STRTOLD unconditionally. * modules/c-strtod (Files): Add m4/intl-thread-locale.m4. (Depends-on): Add strtod. * modules/c-strtold (Files): Add m4/intl-thread-locale.m4. (Depends-on): Add strtold. 2019-01-31 Bruno Haible strtod, strtold: Use the locale's decimal point. * lib/strtod.c: Include , , . (decimal_point_char): New function, copied from lib/vasnprintf.c. (parse_number): Add a radixchar argument. Use it instead of '.'. (STRTOD): Invoke decimal_point_char and pass the result to parse_number. * m4/strtod.m4 (gl_PREREQ_STRTOD): Test whether nl_langinfo exists. * m4/strtold.m4 (gl_PREREQ_STRTOLD): Likewise. * tests/test-strtod1.c: New file. * tests/test-strtod1.sh: New file. * modules/strtod-tests (Files): Add test-strtod1.{sh,c}. Add locale-fr.m4 and its dependencies. (configure.ac): Invoke gt_LOCALE_FR, gt_LOCALE_FR_UTF8. (Makefile.am): Arrange to compile test-strtod1.c and run test-strtod1.sh. * tests/test-strtold1.c: New file. * tests/test-strtold1.sh: New file. * modules/strtold-tests (Files): Add test-strtold1.{sh,c}. Add locale-fr.m4 and its dependencies. (configure.ac): Invoke gt_LOCALE_FR, gt_LOCALE_FR_UTF8. (Makefile.am): Arrange to compile test-strtold1.c and run test-strtold1.sh. 2019-01-31 Bruno Haible strtod, strtold tests: Simplify tests. * tests/test-strtod.c (main): Assume no rounding errors for 0.5. * tests/test-strtold.c (main): Likewise. 2019-01-31 Bruno Haible strtod, strtold: Avoid unnecessary rounding errors. * lib/strtod.c (parse_number): Drop trailing zeroes before doing the decimal to DOUBLE conversion. 2019-01-31 Bruno Haible strtod, strtold: Work around HP-UX 11.31/ia64 bug. * lib/strtod.c (STRTOD): When there is an extra character after the exponent marker 'p', reparse the number. * doc/posix-functions/strtod.texi: Document the HP-UX 11.31 bug. * doc/posix-functions/strtold.texi: Likewise. 2019-01-29 Bruno Haible strtold: Add tests. * tests/test-strtold.c: New file, based on tests/test-strtod.c. * modules/strtold-tests: New file. 2019-01-29 Bruno Haible strtold: New module. * lib/stdlib.in.h (strtold): New declaration. * lib/strtold.c: New file. * lib/strtod.c: Consider USE_LONG_DOUBLE. (STRTOD, LDEXP, HAVE_UNDERLYING_STRTOD, DOUBLE, MIN, MAX, L_, USE_LDEXP): New macros. (LDEXP, scale_radix_exp, parse_number, STRTOD): Adapt for USE_LONG_DOUBLE. (underlying_strtod): Remove function. Replace with some macros. Re-add the code for a missing underlying function that was removed on 2013-02-19. * m4/strtold.m4: New file. * m4/stdlib_h.m4 (gl_STDLIB_H): Test whether strtold is declared. (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_STRTOLD, HAVE_STRTOLD, REPLACE_STRTOLD. * modules/stdlib (Makefile.am): Substitute GNULIB_STRTOLD, HAVE_STRTOLD, REPLACE_STRTOLD. * modules/strtold: New file. * doc/posix-functions/strtold.texi: Document the new module. 2019-01-29 Bruno Haible strtod: Fix compilation error on IRIX 6.5. * modules/strtod (Depends-on): Add 'math'. 2019-01-28 Bruno Haible Fix build error when building a shared libunistring on Android. * tests/uninorm/test-nfc.c (n): Don't define on Android. (main): Add 'volatile', to defeat a GCC optimization that would eliminate the reference. * tests/uninorm/test-nfd.c (n): Don't define on Android. (main): Add 'volatile', to defeat a GCC optimization that would eliminate the reference. * tests/uninorm/test-nfkc.c (n): Don't define on Android. (main): Add 'volatile', to defeat a GCC optimization that would eliminate the reference. * tests/uninorm/test-nfkd.c (n): Don't define on Android. (main): Add 'volatile', to defeat a GCC optimization that would eliminate the reference. 2019-01-27 Bruno Haible Avoid build errors due to wrong references between modules. * lib/uninorm/canonical-decomposition.c: Include "uninorm/decomposition-table.h", not "decomposition-table.h". * lib/uninorm/decomposition.c: Likewise. * lib/uninorm/u8-normalize.c: Include "uninorm/decompose-internal.h", not "decompose-internal.h". * lib/uninorm/u16-normalize.c: Likewise. * lib/uninorm/u32-normalize.c: Likewise. * lib/uninorm/uninorm-filter.c: Likewise. * lib/uninorm/nfkc.c: Likewise. * lib/uninorm/nfkd.c: Likewise. * lib/unicase/u8-casemap.c: Include "unicase/caseprop.h", not "caseprop.h". * lib/unicase/u8-ct-totitle.c: Likewise. * lib/unicase/u8-prefix-context.c: Likewise. * lib/unicase/u8-suffix-context.c: Likewise. * lib/unicase/u16-casemap.c: Likewise. * lib/unicase/u16-ct-totitle.c: Likewise. * lib/unicase/u16-prefix-context.c: Likewise. * lib/unicase/u16-suffix-context.c: Likewise. * lib/unicase/u32-casemap.c: Likewise. * lib/unicase/u32-ct-totitle.c: Likewise. * lib/unicase/u32-prefix-context.c: Likewise. * lib/unicase/u32-suffix-context.c: Likewise. * lib/unicase/u8-tolower.c: Include "unicase/unicasemap.h", not "unicasemap.h". * lib/unicase/u8-toupper.c: Likewise. * lib/unicase/u8-ct-tolower.c: Likewise. * lib/unicase/u8-ct-toupper.c: Likewise. * lib/unicase/u16-tolower.c: Likewise. * lib/unicase/u16-toupper.c: Likewise. * lib/unicase/u16-ct-tolower.c: Likewise. * lib/unicase/u16-ct-toupper.c: Likewise. * lib/unicase/u32-tolower.c: Likewise. * lib/unicase/u32-toupper.c: Likewise. * lib/unicase/u32-ct-tolower.c: Likewise. * lib/unicase/u32-ct-toupper.c: Likewise. * lib/unicase/u8-ct-casefold.c: Include "unicase/unicasemap.h", not "unicasemap.h", and "unicase/casefold.h", not "casefold.h". * lib/unicase/u16-ct-casefold.c: Likewise. * lib/unicase/u32-ct-casefold.c: Likewise. 2019-01-27 Bruno Haible gperf: Fix error when this module is required by some test module. * modules/gperf (Applicability): Set to 'all'. 2019-01-27 Bruno Haible tmpfile: Add support for Android. * m4/tmpfile.m4 (gl_FUNC_TMPFILE): Add a runtime test whether tmpfile() works. * lib/tmpfile.c (tmpfile): Add an alternative implementation for Android. * modules/tmpfile (Depends-on): Add 'stdbool'. * doc/posix-functions/tmpfile.texi: Mention the Android bug. * modules/argv-iter-tests (Depends-on): Add 'tmpfile'. 2019-01-27 Akim Demaille bitsetv: allow free on NULL. * lib/bitsetv.c (bitsetv_free): Do nothing when the bitsetv is NULL. 2019-01-27 Bruno Haible test-framework-sh: Improve maintainability. * tests/init.sh: Clarify what belongs together. Reorder definitions. 2019-01-27 Bruno Haible tests: Don't assume that /tmp exists. * tests/test-set-mode-acl-1.sh: Skip the test if /tmp does not exist. * tests/test-copy-acl-1.sh: Likewise. * tests/test-file-has-acl-1.sh: Likewise. * tests/test-copy-file-1.sh: Likewise. 2019-01-27 Bruno Haible tests: Accommodate a shell that is not in /bin/sh. * tests/init.sh (setup_): Set srcdir and builddir. (BOURNE_SHELL): New variable. * modules/acl-tests (Depends-on): Add 'test-framework-sh'. * modules/file-has-acl-tests (Depends-on): Likewise. * modules/copy-file-tests (Depends-on): Likewise. * tests/test-set-mode-acl-1.sh: Use the test framework. Invoke shell scripts through $BOURNE_SHELL. * tests/test-set-mode-acl-2.sh: Likewise. * tests/test-copy-acl-1.sh: Likewise. * tests/test-copy-acl-2.sh: Likewise. * tests/test-file-has-acl-1.sh: Likewise. * tests/test-file-has-acl-2.sh: Likewise. * tests/test-copy-file-1.sh: Likewise. * tests/test-copy-file-2.sh: Likewise. * tests/test-set-mode-acl.sh (builddir): Consider value set by the invoker. * tests/test-copy-acl.sh (builddir): Likewise. * tests/test-file-has-acl.sh (builddir): Likewise. * tests/test-copy-file.sh (builddir): Likewise. * tests/test-vc-list-files-cvs.sh: Don't create shims for executables in build-aux/. Instead, invoke shell scripts through $BOURNE_SHELL. * tests/test-vc-list-files-git.sh: Likewise. 2019-01-27 Bruno Haible tests: Fix some "unused variable" warnings. * tests/test-fts.c (fts_dealloc): Remove unused variable. * tests/unigbrk/test-uc-grapheme-breaks.c (main): Likewise. * tests/test-striconveh.c (main): Move some variable into the '#if HAVE_ICONV'. * tests/test-striconveha.c (main): Likewise. * tests/uniconv/test-u8-conv-from-enc.c (main): Likewise. * tests/uniconv/test-u16-conv-from-enc.c (main): Likewise. * tests/uniconv/test-u32-conv-from-enc.c (main): Likewise. * tests/uniconv/test-u8-conv-to-enc.c (main): Likewise. * tests/uniconv/test-u16-conv-to-enc.c (main): Likewise. * tests/uniconv/test-u32-conv-to-enc.c (main): Likewise. * tests/uniconv/test-u8-strconv-from-enc.c (main): Likewise. * tests/uniconv/test-u16-strconv-from-enc.c (main): Likewise. * tests/uniconv/test-u32-strconv-from-enc.c (main): Likewise. * tests/uniconv/test-u8-strconv-to-enc.c (main): Likewise. * tests/uniconv/test-u16-strconv-to-enc.c (main): Likewise. * tests/uniconv/test-u32-strconv-to-enc.c (main): Likewise. * tests/test-tsearch.c (main): Move some variable into the '#if HAVE_INITSTATE'. 2019-01-27 Bruno Haible unigbrk/uc-grapheme-breaks: Fix build failure. * lib/unigbrk/uc-grapheme-breaks.c: Don't include unistr.h. * modules/unigbrk/uc-grapheme-breaks (Makefile.am): Fix typo. 2019-01-27 Bruno Haible mountlist: Merge two .m4 files. * m4/mountlist.m4 (gl_MOUNTLIST): Inline gl_LIST_MOUNTED_FILE_SYSTEMS. (AC_FUNC_GETMNTENT): Move to here, from m4/ls-mntd-fs.m4. * m4/ls-mntd-fs.m4: Remove file. * modules/mountlist (Files): Remove m4/ls-mntd-fs.m4. 2019-01-27 Bruno Haible tests: Enable Linux specific tests on Android. * tests/test-flock.c (main): Treat Android like Linux. * tests/test-openat-safer.c (main): Likewise. 2019-01-27 Bruno Haible relocatable-prog: Use Linux code on Android. * lib/progreloc.c: Treat Android like Linux. 2019-01-26 Bruno Haible getloadavg: Add support for Android. * lib/getloadavg.c: Treat Android like Linux. 2019-01-26 Bruno Haible vma-iter: Add support for Android. * lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define on Android as well. * lib/vma-iter.c: Treat Android like Linux. * lib/get-rusage-data.c (get_rusage_data): Likewise. 2019-01-26 Bruno Haible fts: Optimize on Android. * lib/fts.c: Treat Android like Linux. 2019-01-26 Bruno Haible fts: Add support for Android. * m4/fts.m4 (gl_FUNC_FTS_CORE): Avoid conflicts between the symbols defined by this module and the ones in libc. * tests/test-fts.c (main): Treat mkdir error EMLINK like EMFILE. 2019-01-26 Bruno Haible mountlist: Use Linux code on Android. * lib/mountlist.c (setmntent, endmntent): Define fallbacks. (unescape_tab, read_file_system_list): Enable Linux code on Android as well. * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Test for setmntent and endmntent. * modules/mountlist (Depends-on): Add 'getline'. 2019-01-26 Bruno Haible localename tests: Fix test failure on Android. * modules/localename-tests (Depends-on): Add 'setlocale'. 2019-01-26 Bruno Haible mountlist: Port better to Android. * lib/mountlist.c (MOUNTED): Redefine on Android. * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Redefine MOUNTED on Android. 2019-01-26 Bruno Haible striconveh: Fix use of uninitialized iconv_t. Reported by Tim Rühsen in . * lib/striconveh.c (iconveh_open): Correct the iconv_close argument. 2019-01-26 Bruno Haible nonblocking-socket-tests: Fix test failure on Android 4.3. * tests/test-nonblocking-socket.h (SOCKET_HAS_LARGE_BUFFER): Define to 1 also on Android. 2019-01-26 Bruno Haible sh-filename: Add support for Android 4.3. * m4/sh-filename.m4 (gl_SH_FILENAME): Set to "sh" on Android. 2019-01-26 Bruno Haible ptsname_r: Work around bug on Android 4.3. * m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): Define HAVE_ESSENTIALLY_WORKING_PTSNAME_R. Test whether the return value is correct. * lib/ptsname_r.c (__ptsname_r): If HAVE_ESSENTIALLY_WORKING_PTSNAME_R is defined, just fix the return value. * doc/glibc-functions/ptsname_r.texi: Mention the Android bug. Reword: The behaviour of musl libc is nothing to be "fixed", since it is compliant with the next POSIX standard. 2019-01-26 Bruno Haible ttyname_r: Work around bug on Android 4.3. * m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Test whether ttyname_r is a stub. * lib/ttyname_r.c (ttyname_r): Implement for Android. * doc/posix-functions/ttyname_r.texi: Mention the Android bug. * doc/posix-functions/ttyname.texi: Likewise. 2019-01-25 Bruno Haible getprogname: Port to Android 4.3. * lib/getprogname.c (getprogname): On Android, take only the last component of __progname. 2019-01-25 Bruno Haible wcrtomb: Work around bug on Android 4.3. * m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Test also whether wcrtomb works in the C locale. * lib/wcrtomb.c (wcrtomb): Provide alternate implementation for Android, which does not have the 'wctomb' function. * doc/posix-functions/wcrtomb.texi: Mention the Android bug. * tests/test-wcrtomb.c (main): Accept argument '5'. * tests/test-wcrtomb.sh: Add tests in the POSIX locale. 2019-01-25 Bruno Haible setlocale: Work around bug on Android 4.3. * m4/setlocale.m4 (gl_FUNC_SETLOCALE): Test whether setlocale supports the "C" locale. * lib/setlocale.c (setlocale_unixlike): New wrapper for Android. * doc/posix-functions/setlocale.texi: Mention the Android bug. 2019-01-24 Bruno Haible memchr: Work around bug on Android <= 5.0. * m4/memchr.m4 (gl_FUNC_MEMCHR): Add test against the Android bug. * doc/posix-functions/memchr.texi: Mention the Android bug. 2019-01-24 Bruno Haible random: Fix compilation error on Android 4.3. * lib/stdlib.in.h (random, srandom): Test also REPLACE_RANDOM. (initstate): Test REPLACE_INITSTATE and HAVE_INITSTATE, not HAVE_RANDOM. (setstate): Test REPLACE_SETSTATE and HAVE_SETSTATE, not HAVE_RANDOM. * m4/random.m4 (gl_FUNC_RANDOM): Set HAVE_INITSTATE, HAVE_SETSTATE, REPLACE_RANDOM, REPLACE_INITSTATE, REPLACE_SETSTATE. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_INITSTATE, HAVE_SETSTATE, REPLACE_RANDOM, REPLACE_INITSTATE, REPLACE_SETSTATE. * modules/stdlib (Makefile.am): Substitute HAVE_INITSTATE, HAVE_SETSTATE, REPLACE_RANDOM, REPLACE_INITSTATE, REPLACE_SETSTATE. * modules/random (Depends-on, configure.ac): Test also REPLACE_RANDOM, REPLACE_INITSTATE, REPLACE_SETSTATE. * doc/posix-functions/random.texi: Correct the description of the situation on Android. * doc/posix-functions/srandom.texi: Likewise. * doc/posix-functions/rand.texi: Likewise. * doc/posix-functions/srand.texi: Likewise. 2019-01-24 Bruno Haible mbtowc: Fix compilation error on Android 4.3. * lib/stdlib.in.h (mbtowc): Test also HAVE_MBTOWC. * m4/mbtowc.m4 (gl_FUNC_MBTOWC): Test whether mbtowc exists. Set HAVE_MBTOWC. * m4/stdlib_h.m4 (gl_STDLIB_H): Test whether mbtowc is declared. (gl_STDLIB_H_DEFAULTS): Initialize HAVE_MBTOWC. * modules/stdlib (Makefile.am): Substitute HAVE_MBTOWC. * modules/mbtowc (Depends-on, configure.ac): Test also HAVE_MBTOWC. * doc/posix-functions/mbtowc.texi: Mention the change. 2019-01-24 Bruno Haible fdatasync: Fix compilation error on Android 4.3. * m4/fdatasync.m4 (gl_FUNC_FDATASYNC): On platforms other than Solaris, test whether fdatasync() exists. 2019-01-24 Bruno Haible unlinkat: Fix compilation error on Android 4.3. * lib/unistd.in.h: Include when module 'unlinkat' is in use also on Android. * doc/posix-functions/unlinkat.texi: Mention the issue. 2019-01-24 Bruno Haible renameat: Fix compilation error on Android 4.3. * lib/stdio.in.h: Include when module 'renameat' is in use. * doc/posix-functions/renameat.texi: Mention the issue. 2019-01-24 Bruno Haible fchownat: Fix compilation error on Android 4.3. * lib/unistd.in.h: Include when module 'fchownat' is in use. * m4/fchownat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG, gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG): Include also . * doc/posix-functions/fchownat.texi: Mention the issue. 2019-01-23 Bruno Haible gnulib-tool: Support running testdirs on Android. * build-aux/test-driver.diff: New file. * gnulib-tool (func_create_testdir, func_create_megatestdir): Patch build-aux/test-driver after running automake. 2019-01-23 Akim Demaille relocatable-prog: avoid warnings from Automake * modules/relocatable-prog: Don't declare PHONY dependencies in Automake conditionals. 2019-01-23 Akim Demaille array-list: Pacify warnings about unused arguments (-Wunused-parameter). * lib/gl_array_list.c (gl_array_iterator_free): "Use" the argument. 2019-01-23 Bruno Haible threadlib: Revert commit from 2018-06-25. We now have a better fix. * m4/threadlib.m4 (gl_THREADLIB_BODY): Don't attempt to defeat a preceding -Wl,--as-needed option. Don't check whether the linker supports --as-needed/--no-as-needed and --push-state/--pop-state. 2019-01-23 Bruno Haible thread: Force linking with -lpthread, even when --as-needed is in use. Reported by Richard W.M. Jones in . * lib/glthread/thread.h (pthread_create): Don't declare weak. 2019-01-23 Akim Demaille Bruno Haible relocatable: avoid compiler warnings (-Wshadow) * lib/relocatable.c (compute_curr_prefix): Rename local variables to avoid name collisions with global variables. 2019-01-22 Bruno Haible vasnprintf: Don't use %n on Android. Reported and fix suggested by Hugo Beauzée-Luyssen in . * lib/vasnprintf.c (VASNPRINTF): Don’t use %n on Android. 2019-01-22 Bruno Haible *printf: Support cross-compilation to Android. * m4/printf.m4: Add cross-compilation guesses for Android. 2019-01-21 Bruno Haible diacrit: Mark deprecated. * modules/diacrit (Status, Notice): Mark as deprecated. * NEWS: Mention it. 2019-01-20 Bruno Haible rintl: Override broken implementation on NetBSD. * lib/math.in.h (rintl): Test also REPLACE_RINTL. * m4/rintl.m4 (gl_FUNC_RINTL): Add test for negative arguments. Set REPLACE_RINTL. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_RINTL. * modules/math (Makefile.in): Substitute REPLACE_RINTL. * modules/rintl (Depends-on, configure.ac): Test REPLACE_RINTL. * doc/posix-functions/rintl.texi: Mention the NetBSD bug. 2019-01-20 Bruno Haible log10l: Work around inaccurate implementation on NetBSD. * m4/log10l.m4 (gl_FUNC_LOG10L_WORKS): Add test for a certain accuracy. * lib/log10l.c: Comment out too simplistic override. * doc/posix-functions/log10l.texi: Mention the NetBSD bug. 2019-01-20 Bruno Haible logl: Work around inaccurate implementation on NetBSD. * m4/logl.m4 (gl_FUNC_LOGL_WORKS): Add test for a certain accuracy. * lib/logl.c: Comment out unused code. * doc/posix-functions/logl.texi: Mention the NetBSD bug. 2019-01-20 Bruno Haible expm1l: Work around inaccurate implementation on NetBSD. * lib/math.in.h (expm1l): Test also REPLACE_EXPM1L. * m4/expm1l.m4 (gl_FUNC_EXPM1L): Add test for a certain accuracy. Set REPLACE_EXPM1L. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_EXPM1L. * modules/math (Makefile.in): Substitute REPLACE_EXPM1L. * modules/expm1l (Depends-on, configure.ac): Test REPLACE_EXPM1L. * doc/posix-functions/expm1l.texi: Mention the NetBSD bug. 2019-01-20 Bruno Haible expl: Work around inaccurate implementation on NetBSD. * lib/math.in.h (expl): Test also REPLACE_EXPL. * m4/expl.m4 (gl_FUNC_EXPL): Add test for a certain accuracy. Set REPLACE_EXPL. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_EXPL. * modules/math (Makefile.in): Substitute REPLACE_EXPL. * modules/expl (Depends-on, configure.ac): Test REPLACE_EXPL. * doc/posix-functions/expl.texi: Mention the NetBSD bug. 2019-01-20 Bruno Haible exp2l: Work around inaccurate implementation on NetBSD. * m4/exp2l.m4 (gl_FUNC_EXP2L): Add test for a certain accuracy. * doc/posix-functions/exp2l.texi: Mention the NetBSD bug. 2019-01-20 Bruno Haible floor, floorl: Avoid autoconf warnings. * modules/floor (configure.ac): Use AC_REQUIRE. * modules/floorl (configure.ac): Likewise. 2019-01-20 Bruno Haible Defeat current GCC optimizations in math autoconf tests. * m4/cbrtl.m4 (gl_FUNC_CBRTL): Mark function pointer as 'volatile'. * m4/ceil.m4 (gl_FUNC_CEIL): Likewise. * m4/ceilf.m4 (gl_FUNC_CEILF): Likewise. * m4/ceill.m4 (gl_FUNC_CEILL): Likewise. * m4/exp2l.m4 (gl_FUNC_EXP2L): Likewise. * m4/expm1.m4 (gl_FUNC_EXPM1): Likewise. * m4/floor.m4 (gl_FUNC_FLOOR): Likewise. * m4/floorf.m4 (gl_FUNC_FLOORF): Likewise. * m4/fmod.m4 (gl_FUNC_FMOD): Likewise. * m4/fmodf.m4 (gl_FUNC_FMODF): Likewise. * m4/fmodl.m4 (gl_FUNC_FMODL): Likewise. * m4/hypot.m4 (gl_FUNC_HYPOT): Likewise. * m4/hypotf.m4 (gl_FUNC_HYPOTF): Likewise. * m4/hypotl.m4 (gl_FUNC_HYPOTL): Likewise. * m4/ilogb.m4 (gl_FUNC_ILOGB_WORKS): Likewise. * m4/ilogbf.m4 (gl_FUNC_ILOGBF_WORKS): Likewise. * m4/ilogbl.m4 (gl_FUNC_ILOGBL_WORKS): Likewise. * m4/log.m4 (gl_FUNC_LOG): Likewise. * m4/logf.m4 (gl_FUNC_LOGF): Likewise. * m4/log10.m4 (gl_FUNC_LOG10): Likewise. * m4/log10f.m4 (gl_FUNC_LOG10F): Likewise. * m4/log1p.m4 (gl_FUNC_LOG1P): Likewise. * m4/log1pf.m4 (gl_FUNC_LOG1PF): Likewise. * m4/log1pl.m4 (gl_FUNC_LOG1PL): Likewise. * m4/log2.m4 (gl_FUNC_LOG2): Likewise. * m4/log2f.m4 (gl_FUNC_LOG2F): Likewise. * m4/modf.m4 (gl_FUNC_MODF): Likewise. * m4/modff.m4 (gl_FUNC_MODFF): Likewise. * m4/modfl.m4 (gl_FUNC_MODFL): Likewise. * m4/remainder.m4 (gl_FUNC_REMAINDER): Likewise. * m4/remainderf.m4 (gl_FUNC_REMAINDERF): Likewise. * m4/remainderl.m4 (gl_FUNC_REMAINDERL): Likewise. * m4/round.m4 (gl_FUNC_ROUND): Likewise. * m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise. * m4/roundl.m4 (gl_FUNC_ROUNDL): Likewise. * m4/trunc.m4 (gl_FUNC_TRUNC): Likewise. * m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise. * m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise. 2019-01-19 Pádraig Brady gettext: support disabling use of VLAs * lib/gettext.h: Disable use of VLAs if GNULIB_NO_VLA is defined 2019-01-17 KO Myung-Hun sys_stat: Fix 'implicit declaration of function' warning on OS/2 kLIBC. * lib/sys_stat.in.h [kLIBC]: Include . 2019-01-17 KO Myung-Hun fcntl: Fix syntax error (regression from 2018-10-05). * lib/fcntl.c (klibc_fcntl): Remove mis-placed ';'. 2019-01-13 Akim Demaille relocatable: improve documentation. * doc/relocatable-maint.texi (Supporting Relocation): For substitutions performed by config.status, we need more variables (for instance datarootdir defaults to '${prefix}/share' so we need prefix). 2019-01-13 Akim Demaille backup: update dependencies * modules/backup-rename (Depends-on): It now depends on opendirat instead of opendir. It also uses stdint, and xalloc-oversized. But no longer dirfd. * modules/backupfile (Depends-on): Add xalloc-oversized. 2019-01-13 Bruno Haible getcwd: Fix test failure when building on a Linux 9p file system. * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): On Linux, treat error EINVAL from mkdir like ENAMETOOLONG. * tests/test-getcwd.c (test_long_name): Likewise. 2019-01-12 Tim Rühsen Fix typos found by codespell. * lib/*.[hc]: Fix typos in comments. * pygnulib/*.py: Fix typos in error messages and comments. 2019-01-12 Bruno Haible doc: Fix documentation about container data types. Reported by Werner Lemberg . * doc/containers.texi (Container data types): Fix typo. 2019-01-10 Bruno Haible verify: Enable _GL_HAVE_STATIC_ASSERT for recent G++ versions. Reported by Reuben Thomas . * lib/verify.h (_GL_HAVE_STATIC_ASSERT): Define for g++ versions >= 6. 2019-01-06 Bruno Haible maintainer-makefile: Make the configure.ac section optional. * top/maint.mk (GREP, SED): Define if not defined. 2019-01-06 Bruno Haible localename: Assume setlocale function. * lib/localename.c (gl_locale_name_posix): Assume setlocale exists. * m4/localename.m4 (gl_LOCALENAME): Don't test whether setlocale exists. 2019-01-06 Bruno Haible doc: Add documentation about container data types. * doc/containers.texi: New file. * doc/gnulib.texi (Particular Modules): Include it. 2019-01-06 Bruno Haible doc: Update documentation about 'progname' module. * doc/progname.texi: Rename from doc/error.texi. Change node name and title. Rewrite. * doc/gnulib.texi (Particular Modules): Update. 2019-01-06 Bruno Haible doc: Document the xstdopen and *-safer modules. * doc/xstdopen.texi: New file. * doc/gnulib.texi (Particular Modules): Include it. 2019-01-06 Bruno Haible xstdopen: Add tests. * tests/test-xstdopen.c: New file. * tests/test-xstdopen.sh: New file. * modules/xstdopen-tests: New file. xstdopen: New module. * lib/xstdopen.h: New file. * lib/xstdopen.c: New file. * modules/xstdopen: New file. 2019-01-06 Bruno Haible stdopen: Fix compilation error with IRIX cc. * lib/stdopen.c (stdopen): Do not use C99-style decl in loop. 2019-01-05 Paul Eggert xfreopen need not include stdio--.h * lib/xfreopen.c: Do not include stdio--.h. xfreopen need not depend on freopen-safer * modules/xfreopen (Depends-on): Depend on freopen, not freopen-safer. stdopen: modernize and simplify * lib/stdopen.c: Update copyright date Do not include sys/types.h; no longer needed these days. (stdopen): Use C99-style decl in loop. Return int errno value, rather than just a bool. Do not worry about fd mismatches, since the caller cares only if 0, 1, 2 are occupied. * lib/stdopen.h: No need to include . * m4/stdopen.m4: Remove. * modules/stdopen: New file. stdopen: copy from last use in coreutils * lib/stdopen.c, lib/stdopen.h, m4/stdopen.m4: New files, taken from their last commit in coreutils 2007-07-23T12:35:58Z!jim@meyering.net 71aa3ea88084d17bcb4fc1031ad7b66f8647115e. 2019-01-05 Bruno Haible argp: Don't pass an invalid argument to dgettext(). Reported by He X . * lib/argp-help.c (print_header, argp_doc): Don't pass a NULL doc to dgettext(). 2019-01-05 Bruno Haible argp: Don't pass an invalid argument to dgettext(). Reported by He X . * lib/argp.h (struct argp): Clarify that the args_doc field may be NULL. * lib/argp-help.c (argp_args_usage): Don't pass a NULL args_doc to dgettext(). 2018-12-22 Paul Eggert stdioext: port to newer 32-bit Android Problem reported by Tom Yan in: https://lists.gnu.org/archive/html/bug-gnulib/2018-07/msg00014.html * lib/stdio-impl.h (_gl_FILE_flags_t) [__ANDROID__]: New macro. (fp_) [__ANDROID__]: Use it. 2019-01-04 Bruno Haible lock: Fix link error with --enable-threads=pth. * lib/glthread/lock.h (pth_cond_init, pth_cond_await, pth_cond_notify): Mark as weak. 2019-01-04 Bruno Haible Fix link errors in unit tests. Reported by Tom G. Christensen . * modules/bitset-tests (Makefile.am): Link test-bitset against libintl. * modules/array-map-tests (Makefile.am): Link test-array_map against libintl. * modules/array-set-tests (Makefile.am): Link test-array_set against libintl. * modules/hash-map-tests (Makefile.am): Link test-hash_map against libintl. * modules/hash-set-tests (Makefile.am): Link test-hash_set against libintl. * modules/linkedhash-map-tests (Makefile.am): Link test-linkedhash_map against libintl. * modules/linkedhash-set-tests (Makefile.am): Link test-linkedhash_set against libintl. 2019-01-04 Bruno Haible Fix incorrect 'Link' sections. * modules/regex (Link): Mention the link requirement of module 'lock'. * modules/regex-tests (Makefile.am): Don't use LIB_PTHREAD. 2019-01-04 Bruno Haible Fix some 'Link' sections. * modules/c-stack (Link): Add link directive from the 'gettext-h' dependency. * modules/getaddrinfo (Link): Likewise. 2019-01-04 Bruno Haible Remove redundant 'Link' sections. * modules/canon-host (Link): Remove section. * modules/timevar (Link): Likewise. 2019-01-04 Bruno Haible Remove incorrect 'Link' sections. * modules/acl (Link): Remove section. Use combined 'Link' sections from the dependencies instead. * modules/crypto/md5 (Link): Likewise. * modules/crypto/sha1 (Link): Likewise. * modules/crypto/sha256 (Link): Likewise. * modules/crypto/sha512 (Link): Likewise. * modules/faccessat (Link): Likewise. * modules/fdutimensat (Link): Likewise. * modules/iconv_open-utf (Link): Likewise. * modules/propername (Link): Likewise. * modules/qacl (Link): Likewise. * modules/unicodeio (Link): Likewise. * modules/utimecmp (Link): Likewise. * modules/utimensat (Link): Likewise. * modules/xstriconv (Link): Likewise. * modules/xstriconveh (Link): Likewise. 2019-01-04 Bruno Haible gnulib-tool: New option --extract-recursive-link-directive. * gnulib-tool (func_usage): Document the new options --extract-recursive-dependencies, --extract-recursive-link-directive. (func_verify_module): Document output variables. (func_get_dependencies_recursively): New function. (func_get_link_directive_recursively): New function. Use them to implement the new options --extract-recursive-dependencies, --extract-recursive-link-directive. * doc/gnulib-tool.texi (Link-time requirements): New section. 2019-01-04 Bruno Haible Clarify meaning of 'Link' section in module description. * doc/gnulib.texi (Module description): Clarify the meaning of the 'Link' section versus the one of the dependencies. * NEWS: Mention the change. 2019-01-04 Bruno Haible pselect: Fix module description. * modules/pselect (Link): Put one link option per line. 2019-01-04 Bruno Haible cosl: Fix module description. * modules/cosl (Link): Fix typo. * modules/mathl (configure.ac): Likewise. 2019-01-04 Bruno Haible c-xvasprintf: Fix module dependencies. * modules/c-xvasprintf (Depends-on): Add 'xalloc-die'. 2019-01-04 Akim Demaille bootstrap: die when some submodules are not initialized * build-aux/bootstrap: Make sure all submodules are initialized. 2019-01-04 Bruno Haible bitsetv: Fix module dependencies. * lib/bitsetv.c: Include xalloc.h. * modules/bitsetv (Depends-on): Add 'xalloc'. 2019-01-04 Bruno Haible xmemdup0: Remove redundant code. * lib/xmemdup0.h (xalloc_die): Remove declaration. 2019-01-04 Bruno Haible backupfile: Fix module dependencies. * modules/backupfile (Depends-on): Add 'xalloc'. 2019-01-03 Paul Eggert bitset, crypto/gc: fix conflicts with Solaris 11 * lib/bitset.h (_GL_BITSET_H): Rename from _BITSET_H, to avoid clash with Solaris 11 . * lib/gc.h (_GL_GC_H): Rename from GC_H, to avoid clash with Solaris 11 . 2019-01-04 Bruno Haible safe-read, safe-write: Fix conflict with Illumos-Joyent . Reported by Andy Fiddaman . * lib/sys-limits.h: Add a '_GL' prefix to the guard symbol. 2019-01-03 Eric Blake maintainer-makefile: fix typo in previous patch * top/maint.mk (_sc_search_regexp): Fix my accidental corruption of Roman's work. 2019-01-02 Roman Bolshakov (tiny change) maintainer-makefile: prefer $(GREP) over grep * modules/maintainer-makefile (configure.ac): Ensure $(GREP) is defined. * top/maint.mk: Use it everywhere. maintainer-makefile: split long argument lines * top/maint.mk: Use xargs to split $(VC_LIST_EXCEPT) usage where it would be too long for exec limits on BSD. 2018-12-27 Paul Eggert mkfifo: bring back HAVE_MKFIFO macro * m4/mkfifo.m4 (gl_FUNC_MKFIFO): #define HAVE_MKFIFO as needed. Problem reported by Andrew Janke in: https://lists.gnu.org/r/bug-gnulib/2018-12/msg00147.html 2018-12-21 Bruno Haible Assume Autoconf >= 2.63. * modules/stdarg (configure.ac-early): Remove comment about Autoconf versions < 2.60. 2018-12-21 Bruno Haible memcmp: Mention the clang bug. * tests/test-memcmp.c: Add comment about a known test failure. * doc/posix-functions/memcmp.texi: Mention the clang bug. 2018-12-20 Jim Meyering revert v0.1-2213-gae4b73e28 and part of v0.1-2281-g95cd86dd7 v0.1-2213-gae4b73e28 caused a regression in grep-3.2 (no match): echo '123-x'|LC_ALL=C grep -E '.\bx' The goal is to revert the first, but reverting it requires to restore the function deleted in the second. I ran this to restore the deleted function: git show v0.1-2281-g95cd86dd7 lib/dfa.c \ | perl -0777 -pe 's/^@@[^\n]*dfaan.*//ms' \ | patch -R -p1 * lib/dfa.c (charclass_context): Restore deleted function. Reverting the primary commit removes this change: dfa: Simplify a building state * lib/dfa.c (build_state): Simplify a building state. 2018-12-20 Paul Eggert version-etc: allow zero authors * lib/version-etc.c (version_etc_arn): If no authors are given, omit authorship info instead of dumping core. 2018-12-19 Bruno Haible lchown tests: Be more permissive regarding errno values. Reported by Ivan Zakharyaschev . * tests/test-lchown.h (test_lchown): Recognize EOPNOTSUPP as an alternative to ENOSYS. * modules/lchown-tests (Depends-on): Add 'errno'. * modules/fchownat-tests (Depends-on): Likewise. 2018-12-18 Bruno Haible duplocale: Avoid test failure on AIX 7. * modules/duplocale-tests (Files): Add m4/intl-thread-locale.m4. (configure.ac): Invoke gt_FUNC_USELOCALE. * tests/test-duplocale.c: Test HAVE_WORKING_USELOCALE instead of HAVE_USELOCALE. Assume that nl_langinfo_l only works when uselocale works. 2018-12-18 Bruno Haible localename: Fix test failure on AIX 7. Reported by Assaf Gordon in . * m4/intl-thread-locale.m4 (gt_FUNC_USELOCALE): New macro. (gt_INTL_THREAD_LOCALE_NAME): Invoke it. Test gt_cv_func_uselocale_works instead of ac_cv_func_uselocale. * lib/localename.c: Test HAVE_WORKING_USELOCALE instead of HAVE_USELOCALE. * lib/localename-table.h: Likewise. * lib/localename-table.c: Likewise. * tests/test-localename.c: Likewise. * doc/posix-functions/uselocale.texi: Mention the AIX problem. 2018-12-18 Bruno Haible localename: Update comments regarding Cygwin. * lib/localename.c: Update comment. * doc/posix-functions/uselocale.texi: Update platforms list. * doc/posix-functions/newlocale.texi: Likewise. * doc/posix-functions/duplocale.texi: Likewise. * doc/posix-functions/freelocale.texi: Likewise. 2018-12-16 Bruno Haible c-stack: Fix for Linux/sparc. * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Set ac_cv_sys_xsi_stack_overflow_heuristic to 'no' on Linux/sparc. 2018-12-16 Bruno Haible localename: Avoid test failure on some glibc systems. * tests/test-localename.c (test_locale_name, test_locale_name_posix): Unset environment variables that might disturb the first setlocale call, and verify that this setlocale call succeeds. 2018-12-16 Assaf Gordon random: Fix build error on native Windows (regression from 2018-06-21). * lib/random.c (__srandom, __initstate, __setstate, __random, __srandom_r, __initstate_r, __setstate_r, __random_r) [!_LIBC]: Redirect to the symbols without '__' prefix. 2018-12-16 Bruno Haible obstack, libc-config: Support HP-UX cc in C99 mode. * lib/obstack.h (__FLEXIBLE_ARRAY_MEMBER): Treat HP-UX cc as a pre-C99 compiler, even when in C99 mode. * lib/cdefs.h (__flexarr): Likewise. * lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS): Update comment. 2018-12-16 Bruno Haible localename: Fix test failure on OpenBSD >= 6.2. * m4/intl-thread-locale.m4 (gt_INTL_THREAD_LOCALE_NAME): Test for fake locale system. Define HAVE_FAKE_LOCALES in this case. * lib/localename.c (HAVE_GOOD_USELOCALE): New macro. Use it instead of HAVE_USELOCALE. * tests/test-localename.c (HAVE_GOOD_USELOCALE): New macro. Use it instead of HAVE_NEWLOCALE && HAVE_USELOCALE. * doc/posix-functions/uselocale.texi: Mention OpenBSD problem. Update platforms list. * doc/posix-functions/newlocale.texi: Likewise. * doc/posix-functions/duplocale.texi: Update platforms list. * doc/posix-functions/freelocale.texi: Likewise. 2018-12-16 Bruno Haible duplocale tests: Re-enable the test on platforms without . * tests/test-duplocale.c: Use more fine-grained #ifs to re-enable most of the test, on platforms without . 2018-12-16 Bruno Haible localename: Update comments. * lib/localename.c (HAVE_USELOCALE): Update list of platforms. 2018-12-15 Jim Meyering regex: fix indentation * m4/regex.m4 (gl_REGEX): Indent with spaces, not TABs. 2018-12-15 Bruno Haible openat-safer tests: Avoid test failure on NetBSD 8. * tests/test-openat-safer.c (main): Execute a Linux specific test only on Linux. 2018-12-15 Jim Meyering regex: work around a bug in glibc-2.27 and prior * m4/regex.m4 (gl_REGEX): Reject any system regexp that gets a failed assertion for /0|()0|\1|0/. * tests/test-regex.c (main): Add the same test here. 2018-12-15 Bruno Haible localename: Fix use of uninitialized shell variable. * m4/intl-thread-locale.m4 (gt_INTL_THREAD_LOCALE_NAME): Initialize gt_cv_locale_solaris114 always before use. Remove assignment without effect. 2018-12-15 Bruno Haible dfa tests: Avoid test failure on Alpine Linux. * tests/dfa-match.sh (timeout_10): Accommodate the BusyBox 'timeout' command found on Alpine Linux. 2018-12-15 Jim Meyering dfa: avoid new warnings from gcc These would prevent building with -Werror and a Dec snapshot of gcc. * lib/dfa.c (dfaanalyze): Avoid shadowing warnings for "pos". Rename each inner instance to "p". (charclass_context): Remove unused static function. 2018-12-14 Paul Eggert mkdir-p: improve diagnostic for FUSE mounts Problem reported by Niklas Hambüchen in: https://lists.gnu.org/r/bug-gnulib/2018-12/msg00074.html * lib/mkdir-p.c (make_dir_parents): In diagnostic, prefer stat errno to mkdir errno if the stat errno is likely more interesting. 2018-12-14 Bruno Haible hash-map: Add tests. * tests/test-hash_map.c: New file. * modules/hash-map-tests: New file. linkedhash-map: Add tests. * tests/test-linkedhash_map.c: New file. * modules/linkedhash-map-tests: New file. array-map: Add tests. * tests/test-array_map.c: New file. * modules/array-map-tests: New file. xmap: New module. * lib/gl_xmap.h: New file. * lib/gl_xmap.c: New file. * modules/xmap: New file. hash-map: New module. * lib/gl_hash_map.h: New file. * lib/gl_hash_map.c: New file. * modules/hash-map: New file. linkedhash-map: New module. * lib/gl_linkedhash_map.h: New file. * lib/gl_linkedhash_map.c: New file. * lib/gl_anyhash1.h: Update comments. * lib/gl_anyhash2.h: Likewise. * modules/linkedhash-map: New file. array-map: New module. * lib/gl_array_map.h: New file. * lib/gl_array_map.c: New file. * modules/array-map: New file. map: New module. * lib/gl_map.h: New file. * lib/gl_map.c: New file. * lib/gl_omap.h (gl_mapkey_dispose_fn, gl_mapvalue_dispose_fn): Avoid conflict with gl_map.h. * modules/map: New file. 2018-12-13 Bruno Haible select tests: Avoid test failure on Cygwin. * tests/test-select.h (test_bad_fd): Use an fd < FD_SETSIZE. 2018-12-13 Bruno Haible localtime-buffer: Avoid endless recursion in localtime and gmtime. * lib/localtime-buffer.c: Undefine localtime and gmtime before use. 2018-12-13 Bruno Haible localeconv tests: Avoid test failure on Cygwin. * tests/test-localeconv.c (main): On Cygwin, skip the 'grouping' and 'mon_grouping' tests. 2018-12-11 Bruno Haible omap: Don't dispose the old value when the function returns it. * lib/gl_array_omap.c (gl_array_remove_at): Don't invoke the vdispose_fn here. * lib/gl_avltree_omap.c (NODE_PAYLOAD_DISPOSE): Likewise. * lib/gl_rbtree_omap.c (NODE_PAYLOAD_DISPOSE): Likewise. * lib/gl_omap.h (gl_omap_nx_put, gl_omap_remove): Invoke the vdispose_fn here. array-omap, avltree-omap, rbtree-omap: Tweak style. * lib/gl_anytree_omap.h (gl_tree_nx_getput): Return 1 or 0, not true or false. * lib/gl_array_omap.c (gl_array_nx_getput): Likewise. rbtree-omap: Add tests. * tests/test-rbtree_omap.c: New file. * modules/rbtree-omap-tests: New file. avltree-omap: Add tests. * tests/test-avltree_omap.c: New file. * modules/avltree-omap-tests: New file. array-omap: Add tests. * tests/test-array_omap.c: New file. * modules/array-omap-tests: New file. xomap: New module. * lib/gl_xomap.h: New file. * lib/gl_xomap.c: New file. * modules/xomap: New file. rbtree-omap: New module. * lib/gl_rbtree_omap.h: New file. * lib/gl_rbtree_omap.c: New file. * lib/gl_rbtree_ordered.h: Code moved to here from lib/gl_rbtree_oset.c. Parameterize. * lib/gl_rbtree_oset.c: Include gl_rbtree_ordered.h. * modules/rbtree-omap: New file. * modules/rbtree-oset (Files): Add lib/gl_rbtree_ordered.h. (Makefile.am): Add gl_rbtree_ordered.h to lib_SOURCES. avltree-omap: New module. * lib/gl_avltree_omap.h: New file. * lib/gl_avltree_omap.c: New file. * lib/gl_avltree_ordered.h: Code moved to here from lib/gl_avltree_oset.c. Parameterize. * lib/gl_avltree_oset.c: Include gl_avltree_ordered.h. * lib/gl_anytree_omap.h: New file. * modules/avltree-omap: New file. * modules/avltree-oset (Files): Add lib/gl_avltree_ordered.h. (Makefile.am): Add gl_avltree_ordered.h to lib_SOURCES. array-omap: New module. * lib/gl_array_omap.h: New file. * lib/gl_array_omap.c: New file. * modules/array-omap: New file. omap: New module. * lib/gl_omap.h: New file. * lib/gl_omap.c: New file. * modules/omap: New file. 2018-12-11 Bruno Haible hash-set, linkedhash-set: Reduce code duplication. * lib/gl_anyhash1.h: Rename from lib/gl_anyhash_list1.h and lib/gl_anyhash_set1.h. * lib/gl_anyhash2.h: Rename from lib/gl_anyhash_list2.h and lib/gl_anyhash_set2.h. Parameterize. (hash_resize_after_add): New function, from lib/gl_anyhash_set2.h. * lib/gl_anytreehash_list1.h (hash_resize_after_add): Remove function. * lib/gl_avltreehash_list.c: Include gl_anyhash1.h instead of gl_anyhash_list1.h. Include gl_anyhash2.h instead of gl_anyhash_list2.h. * lib/gl_rbtreehash_list.c: Likewise. * lib/gl_linkedhash_list.c: Likewise. (hash_resize_after_add): Remove function. * lib/gl_linkedhash_set.c: Include gl_anyhash1.h instead of gl_anyhash_set1.h. Include gl_anyhash2.h instead of gl_anyhash_set2.h. * gl_hash_set.c: Likewise. * modules/avltreehash-list (Files, Makefile.am): Update file list. * modules/rbtreehash-list (Files, Makefile.am): Likewise. * modules/linkedhash-list (Files, Makefile.am): Likewise. * modules/linkedhash-set (Files, Makefile.am): Likewise. * modules/hash-set (Files, Makefile.am): Likewise. 2018-12-11 Bruno Haible array-set: Optimize. * lib/gl_array_set.c (gl_array_search, gl_array_remove): Test equals_fn outside the loop, not inside the loop. 2018-12-11 Bruno Haible times: Fix tests. * tests/test-times.c (doublecmp): Implement a total order. 2018-12-11 Bruno Haible array-set, linkedhash-set, hash-set: Fix tests. * tests/test-array_set.c (cmp_objects_in_array): New function. (check_equals): Use it. * tests/test-hash_set.c: Likewise. * tests/test-linkedhash_set.c: Likewise. 2018-12-08 Bruno Haible Fix comments. * lib/gl_list.h (gl_list_free): Clarify what it does. * lib/gl_oset.h (gl_oset_free): Likewise. * lib/gl_set.h (gl_set_free): Likewise. * lib/gl_anytree_oset.h (gl_tree_search_atleast): Fix typo in comment. * lib/gl_array_oset.c (gl_array_search_atleast): Likewise. * lib/gl_anyavltree_list1.h (MAXHEIGHT): Likewise. * lib/gl_avltree_oset.c (MAXHEIGHT): Likewise. 2018-12-03 Bruno Haible hash-set: Add tests. * tests/test-hash_set.c: New file. * modules/hash-set-tests: New file. linkedhash-set: Add tests. * tests/test-linkedhash_set.c: New file. * modules/linkedhash-set-tests: New file. array-set: Add tests. * tests/test-array_set.c: New file. * modules/array-set-tests: New file. xset: New module. * lib/gl_xset.h: New file. * lib/gl_xset.c: New file. * modules/xset: New file. hash-set: New module. * lib/gl_hash_set.h: New file. * lib/gl_hash_set.c: New file. * modules/hash-set: New file. linkedhash-set: New module. * lib/gl_linkedhash_set.h: New file. * lib/gl_linkedhash_set.c: New file. * lib/gl_anyhash_set1.h: New file, based on lib/gl_anyhash_list1.h. * lib/gl_anyhash_set2.h: New file, based on lib/gl_anyhash_list2.h. * lib/gl_anyhash_primes.h: New file, extracted from lib/gl_anyhash_list2.h. * lib/gl_anyhash_list2.h: Include it. (primes, next_prime): Remove definitions. * modules/linkedhash-set: New file. * modules/avltreehash-list (Files): Add lib/gl_anyhash_primes.h. (Makefile.am): Add gl_anyhash_primes.h to lib_SOURCES. * modules/linkedhash-list (Files): Add lib/gl_anyhash_primes.h. (Makefile.am): Add gl_anyhash_primes.h to lib_SOURCES. * modules/rbtreehash-list (Files): Add lib/gl_anyhash_primes.h. (Makefile.am): Add gl_anyhash_primes.h to lib_SOURCES. array-set: New module. * lib/gl_array_set.h: New file. * lib/gl_array_set.c: New file. * modules/array-set: New file. set: New module. * lib/gl_set.h: New file. * lib/gl_set.c: New file. * lib/gl_oset.h (gl_setelement_dispose_fn): Avoid conflict with gl_set.h. * modules/set: New file. 2018-12-07 Akim Demaille bison: don't force the Yacc mode Passing -y forces Bison into POSIX YACC mode. This includes reporting errors when Bison features are used in the grammar file. Some of these features (such as %expect) were flagged non-yacc recently. Most of the time, -y is actually used to please Automake's ylwrap which expects the output to be y.tab.c. * m4/bison.m4 (gl_BISON): Use `-o y.tab.c` rather than `-y`. 2018-12-01 Bruno Haible gnupload: Document short options. * build-aux/gnupload (usage): Document the short options. 2018-11-28 Ben Elliston gnupload: Support option -h as alias of --help. * build-aux/gnupload: Support -h. 2018-11-30 Paul Eggert memrchr: port better to clang * lib/memrchr.c (__memrchr): Cast to void * instead of to longword *, to pacify clang -Wcast-align (Bug#33544). 2018-11-29 Eric Blake docs: mention printf %m considerations * doc/glibc-functions/asprintf.texi (asprintf): Document that %m is not portable, and is easy enough to work around. * doc/glibc-functions/obstack_printf.texi (obstack_printf): Likewise. * doc/glibc-functions/obstack_vprintf.texi (obstack_vprintf): Likewise. * doc/glibc-functions/vasprintf.texi (vasprintf): Likewise. * doc/posix-functions/dprintf.texi (dprintf): Likewise. * doc/posix-functions/fprintf.texi (fprintf): Likewise. * doc/posix-functions/fwprintf.texi (fwprintf): Likewise. * doc/posix-functions/printf.texi (printf): Likewise. * doc/posix-functions/snprintf.texi (snprintf): Likewise. * doc/posix-functions/sprintf.texi (sprintf): Likewise. * doc/posix-functions/swprintf.texi (swprintf): Likewise. * doc/posix-functions/vdprintf.texi (vdprintf): Likewise. * doc/posix-functions/vfprintf.texi (vfprintf): Likewise. * doc/posix-functions/vfwprintf.texi (vfwprintf): Likewise. * doc/posix-functions/vprintf.texi (vprintf): Likewise. * doc/posix-functions/vsnprintf.texi (vsnprintf): Likewise. * doc/posix-functions/vsprintf.texi (vsprintf): Likewise. * doc/posix-functions/vswprintf.texi (vswprintf): Likewise. * doc/posix-functions/vwprintf.texi (vwprintf): Likewise. * doc/posix-functions/wprintf.texi (wprintf): Likewise. 2018-11-29 Akim Demaille bitset: rename ebitset/expandable.* as tbitset/table.* See https://lists.gnu.org/archive/html/bug-gnulib/2018-11/msg00096.html. * lib/bitset/expandable.h, lib/bitset/expandable.c: Rename as... * lib/bitset/table.h, lib/bitset/table.c: these. Rename all the ebitset* symbols as tbitset*. Adjust dependencies. 2018-11-28 Akim Demaille bitset: check the operations * tests/test-bitset.c (bitset_random): New. Use it. * lib/bitset/expandable.c (ebitset_not): Fix typo. 2018-11-28 Akim Demaille bitset: properly use false/true instead of 0/1 for Booleans * lib/bitset/expandable.c, lib/bitset/vector.c: Use false/true, not 0/1, as Booleans. 2018-11-28 Akim Demaille bitset: rename BITSET_VARRAY as BITSET_VECTOR For consistency with the name of the file. * doc/bitset.texi, lib/bitset.c, lib/bitset/base.h, * lib/bitset/stats.c, lib/bitset/vector.c (BITSET_VARRAY): Rename as... (BITSET_VECTOR): this. 2018-11-28 Paul Eggert strerror_r-posix: memmove, not memcpy * lib/strerror_r.c (safe_copy): Use memmove, not memcpy, since the source and destination might overlap in the call ‘safe_copy (buf, buflen, strerror_r (errnum, buf, buflen))’. Simplify. 2018-11-25 Akim Demaille bitsetv: new module * lib/bitsetv.c, lib/bitsetv.h, modules/bitsetv: New. 2018-11-25 Akim Demaille bitset: add tests and doc First stabs at providing a documentation and test for the bitset module. * doc/bitset.texi, modules/test-bitset, tests/bitset-tests.c: New. 2018-11-25 Akim Demaille bitset: new module * lib/bitset.c, lib/bitset.h, lib/bitset/array.c, * lib/bitset/array.h, lib/bitset/base.h, lib/bitset/expandable.c, * lib/bitset/expandable.h, lib/bitset/list.c, lib/bitset/list.h, * lib/bitset/stats.c, lib/bitset/stats.h, lib/bitset/vector.c, * lib/bitset/vector.h, modules/bitset: New. 2018-11-23 Bruno Haible localename: Fix gettext test failures on mingw. * lib/localename.c (gl_locale_name_posix): Convert the result of gl_locale_name_environ to XPG syntax. 2018-11-23 Karl Berry * config/srclistvars.txt, * config/srclist.txt: remove all gettext references; the gettext maintainers will sync as needed. 2018-11-21 Paul Eggert mktime: add libc-config dependency I missed this when we synced from glibc. * modules/mktime (Depends-on): Add libc-config. 2018-11-13 Paul Eggert longlong: fix comment typo * m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Fix typo. 2018-11-11 Bruno Haible havelib: Remove the need to include asm-underscore.m4. * m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI_32BIT): New macro. * m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Use it instead of gl_HOST_CPU_C_ABI. * modules/havelib (Files): Add host-cpu-c-abi.m4. (Depends-on): Remove host-cpu-c-abi. 2018-11-03 Paul Eggert parse-datetime: simplify test for mktime failure * lib/parse-datetime.y (mktime_ok): Simplify. Remove args TZ and T; no longer needed. Callers changed. posixtm: simplify test for mktime failure * lib/posixtm.c (posixtime): Simplify. nstrftime: simplify test for mktime failure * lib/nstrftime.c (__strftime_internal): Simplify. 2018-11-02 Paul Eggert gnulib-common.m4: port _Noreturn to C++ Problem reported by Akim Demaille in: https://lists.gnu.org/r/bug-bison/2018-10/msg00067.html * m4/gnulib-common.m4 (gl_COMMON_BODY): If C++, use [[noreturn]]. Merge adjustments from _Noreturn.h and from glibc into the non-C++ version. * lib/_Noreturn.h: Match gnulib-common. 2018-10-30 Bruno Haible gnu-make: Fix for NetBSD 8 'make'. Reported by Reuben Thomas in . * m4/gnu-make.m4 (gl_GNU_MAKE): Use a heuristic based on the --version output, ignoring exit codes. 2018-10-28 Bernhard Voelker maintainer-makefile: fix syntax-check rule for "same.h" * top/maint.mk (sc_prohibit_same_without_use): Adjust regex to check for 'same_nameat', too. 2018-10-25 Paul Eggert havelib: fix nested ‘configure’ chatter * m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Don’t nest AC_CACHE_CHECK calls, which resulted in confusing output like “checking for the common suffixes of directories in the library search path... checking for 64-bit host... no lib,lib”. backupfile: tweak for better code * lib/backupfile.c: Sort include directives, and remove unnecessary include. (FALLTHROUGH): New macro, copied from other modules. (backupfile_internal): Use it to avoid code duplication. This lets GCC 8.2.1 generate better code by inlining the call to check_extension. 2018-10-23 Paul Eggert backupfile: new dir_fd args New module opendirat with code taken from fts. Use this module to let backupfile use a directory file descriptor. * NEWS: Document the incompatible change. * lib/backup-find.c (find_backup_file_name): * lib/backup-rename.c (backup_file_rename): New arg DIR_FD. * lib/backupfile.c: Include stdint.h, for SIZE_MAX. (SIZE_MAX): Remove. Include opendirat.h rather than dirent--.h. (check_extension): New args DIR_FD and BASE_MAX. All callers changed. (numbered_backup): New args DIR_FD and PNEW_FD. All callers changed. (backupfile_internal): New arg DIR_FD. All callers changed. * lib/fts.c: Include opendirat.h. (opendirat): Move to opendirat.c. * lib/opendirat.c, lib/opendirat.h, modules/opendirat: New files. * modules/backupfile (Depends-on): Remove dirfd, opendir. Add opendirat. * modules/fts (Depends-on): Remove fdopendir, openat-safer. Add opendirat. 2018-10-23 Bruno Haible localename: Simplify support for per-thread locales on Solaris 11.4. * m4/intl-thread-locale.m4: Renamed from m4/intlsolaris.m4. (gt_INTL_THREAD_LOCALE_NAME): Renamed from gt_INTL_SOLARIS. Define HAVE_SOLARIS114_LOCALES instead of HAVE_NAMELESS_LOCALES. * lib/localename.c: Handle HAVE_SOLARIS114_LOCALES through Solaris specific code. * lib/localename-table.h: Update comments. * lib/localename-table.c: Update comments. * m4/localename.m4 (gl_LOCALENAME): Require gt_INTL_THREAD_LOCALE_NAME. Test for 'uselocale'. Don't invoke gt_INTL_SOLARIS. * m4/intl.m4 (AM_INTL_SUBDIR): Require gt_INTL_THREAD_LOCALE_NAME. Test for 'uselocale'. Set HAVE_NAMELESS_LOCALES. (gt_INTL_SUBDIR_CORE): Don't invoke gt_INTL_SOLARIS. Don't set HAVE_NAMELESS_LOCALES here. * modules/localename (Files): Add m4/intl-thread-locale.m4. Remove m4/intlsolaris.m4. * modules/gettext (Files): Likewise. 2018-10-22 Bruno Haible std-gnu11: Support Autoconf versions < 2.64. * m4/std-gnu11.m4 (AC_PROG_CC, AC_PROG_CXX): Use _AC_DO as fallback when _AC_DO_LIMIT does not exist. 2018-10-22 Bruno Haible Assume Autoconf >= 2.63. * DEPENDENCIES: Mention the requirement. * gnulib-tool (DEFAULT_AUTOCONF_MINVERSION): Bump to 2.63. (func_get_filelist): Don't list m4/onceonly.m4 any more. * pygnulib/GLModuleSystem.py (getFiles): Likewise. * m4/onceonly.m4: Remove file. * m4/openmp.m4: Remove file. * modules/openmp (Files): Remove m4/openmp.m4. * m4/configmake.m4 (gl_CONFIGMAKE_PREP): Don't set datarootdir, docdir, htmldir, dvidir, pdfdir, psdir, localedir. * m4/po.m4 (AM_PO_SUBDIRS): Don't set localedir. * m4/gnulib-common.m4 (m4_foreach_w): Remove fallback for Autoconf < 2.60. (AC_PROG_MKDIR_P): Remove definition for Autoconf < 2.62. (AC_PROG_SED): Remove fallback for Autoconf < 2.60. * m4/errno_h.m4 (AC_COMPUTE_INT): Remove fallback for Autoconf < 2.61. * m4/size_max.m4 (AC_COMPUTE_INT): Likewise. * m4/stdint.m4 (AC_COMPUTE_INT): Likewise. * m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Assume AC_USE_SYSTEM_EXTENSIONS exists. * m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Likewise, * m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Remove workaround for Autoconf < 2.61. * m4/lib-prefix.m4 (AC_LIB_ARG_WITH): Remove macro. (AC_LIB_PREFIX): Use AC_ARG_WITH, assuming semantics of Autoconf >= 2.52. * m4/longlong.m4: Require Autoconf >= 2.62. Update comments. * m4/ls-mntd-fs.m4: Require Autoconf >= 2.60. Update comments. * m4/gettext.m4 (AM_GNU_GETTEXT): Update comment. 2018-10-22 Bruno Haible Assume Automake >= 1.11. * m4/configmake.m4: Update comments. * m4/lib-link.m4 (AC_LIB_RPATH): Assume AC_REQUIRE_AUX_FILE exists. * m4/po.m4 (AM_PO_SUBDIRS, AM_POSTPROCESS_PO_MAKEFILE): Eliminate uses of 'eval'. * gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am, func_create_testdir, func_create_megatestdir): Emit a Makefile.am that requires Automake >= 1.11. 2018-10-22 Bruno Haible localename: Fix typo in comment. * tests/test-locale-c++.cc (newlocale): Fix typo in comment. 2018-10-22 Bruno Haible Fix failure of 'gnulib-tool --create-testdir' with all modules. * gnulib-tool (func_create_testdir): Exclude 'timevar' module. 2018-10-21 Bruno Haible locale: Ease integration with GNU libintl. * lib/locale.in.h (GNULIB_defined_newlocale, GNULIB_defined_duplocale, GNULIB_defined_freelocale): New macros. 2018-10-21 Bruno Haible localename: Fine-tune support for per-thread locales on Solaris 11.4. * lib/localename-table.h: New file, extracted from lib/localename.c. * lib/localename-table.c: Likewise. * lib/localename.c: Include localename-table.h. (get_locale_t_name, newlocale, duplocale, freelocale): Invoke locale_hash_function instead of pointer_hash. * modules/localename (Files): Add lib/localename-table.h, lib/localename-table.c. (lib_SOURCES): Add localename-table.c. * m4/intlsolaris.m4 (gt_INTL_SOLARIS): Require AC_CANONICAL_HOST. Test for Solaris 11.4 locale system only on Solaris. Test for it independently whether getlocalename_l exists. * m4/intl.m4 (gt_INTL_SUBDIR_CORE): Don't test for 'uselocale' and 'getlocalename_l'. Instead, invoke gt_INTL_SOLARIS. Set HAVE_NAMELESS_LOCALES. * modules/gettext (Files): Add m4/intlsolaris.m4. 2018-10-21 Bruno Haible Small update from gettext. * m4/intl.m4: Update from gettext: - 2018-01-02: Fix 'ar' invocation when cross-compiling and in 64-bit mode on AIX. - 2018-01-02: Don't use -lc explicitly when linking with libtool. - 2017-05-19: (AM_INTL_SUBDIR): Require AC_C_FLEXIBLE_ARRAY_MEMBER. 2018-10-16 Bruno Haible mountlist: Remove support for Cray with UNICOS 9. * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Don't define MOUNTED_LISTMNTENT. * lib/mountlist.c: Remove MOUNTED_LISTMNTENT case. 2018-10-16 Bruno Haible fsusage, mountlist, getloadavg, getgroups: Remove support for Ultrix. * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Don't define STAT_STATFS2_FS_DATA. * lib/fsusage.c: Remove STAT_STATFS2_FS_DATA case. * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Don't define MOUNTED_GETMNT. * lib/mountlist.c: Remove MOUNTED_GETMNT case. * lib/getloadavg.c (decstation): Remove definition and case. * m4/getgroups.m4 (AC_FUNC_GETGROUPS): Mention NeXTstep, not Ultrix. * lib/getgroups.c: Likewise. * doc/posix-functions/getgroups.texi: Likewise. * lib/time.in.h: Update comments. 2018-10-16 Bruno Haible getloadavg: Remove support for ConvexOS. * lib/getloadavg.c: Remove convex case. 2018-10-16 Bruno Haible getloadavg: Remove support for Sony NEWS. * lib/getloadavg.c: Remove sony_news case. 2018-10-16 Bruno Haible fsusage, mountlist, getloadavg: Remove support for Dynix/ptx. * lib/fsusage.c: Remove _SEQUENT_ case. * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Update comments. * lib/mountlist.c: Don't test for MNTTABNAME. * m4/ls-mntd-fs.m4 (AC_FUNC_GETMNTENT): Don't test for libseq. (gl_LIST_MOUNTED_FILE_SYSTEMS): Don't test for MNTTABNAME. * lib/getloadavg.c: Remove _SEQUENT_ and sequent cases. * lib/stat-size.h: Don't mention the Sequent bug. * doc/posix-functions/utime.texi: Don't mention the Dynix bug. 2018-10-16 Bruno Haible fsusage: Remove support for AIX 3. * lib/fsusage.c: Remove code for AIX 3. * m4/fsusage.m4 (gl_PREREQ_FSUSAGE_EXTRA): Update comments. 2018-10-16 Bruno Haible fsusage, stat-size, getloadavg: Remove support for AIX PS/2. * m4/fsusage.m4 (gl_PREREQ_FSUSAGE_EXTRA): Don't check for dustat.h. * lib/fsusage.c: Remove code for AIX PS/2. * lib/stat-size.h (ST_NBLOCKSIZE): Likewise. * lib/getloadavg.c: Likewise. 2018-10-16 Bruno Haible getloadavg: Remove support for HP-UX on m68k. * lib/getloadavg.c: Remove hp9000s300 case. 2018-10-16 Bruno Haible fsusage, mountlist: Remove support for DolphinOS (an SVR3 variant). * lib/fsusage.c: Remove DOLPHIN case. * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Update comments. * lib/mountlist.c: Remove MOUNTED_GETMNTTBL case. 2018-10-16 Bruno Haible getloadavg: Remove support for Alliant FX/2800. * lib/getloadavg.c: Remove alliant case. 2018-10-16 Bruno Haible getloadavg: Remove support for tek4300. * lib/getloadavg.c: Remove tek4300 case. 2018-10-16 Bruno Haible getloadavg: Remove support for Ardent. * lib/getloadavg.c: Remove ardent case. 2018-10-16 Bruno Haible mountlist: Remove support for SVR2. Reported by Andrew Borodin in . * lib/mountlist.c: Remove MOUNTED_FREAD case. * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Don't define MOUNTED_FREAD. 2018-10-15 Paul Eggert libc-config: merge from glibc * lib/cdefs.h (__glibc_has_attribute): New macro. regex: depend on libc-config * modules/regex (Depends-on): Add libc-config. This is needed after the recent autoupdate from glibc. 2018-10-14 Bruno Haible localename: Add support for per-thread locales on Solaris 11.4. * lib/locale.in.h (newlocale, freelocale): New declarations. (duplocale): Declare also when the 'localename' module requests it. * lib/localename.c (struniq_hash_node): Renamed from hash_node. (STRUNIQ_HASH_TABLE_SIZE): Renamed from HASH_TABLE_SIZE. (struniq): Update. (struct locale_categories_names, struct locale_hash_node): New types. (LOCALE_HASH_TABLE_SIZE): New constant. (locale_hash_table, locale_lock): New variables. (pointer_hash, get_locale_t_name): New functions. (newlocale, duplocale, freelocale): New overridden functions. (gl_locale_name_thread_unsafe): Use get_locale_t_name. * m4/intlsolaris.m4: New file. * m4/localename.m4 (gl_LOCALENAME): Require gl_LOCALE_H_DEFAULTS. Invoke gt_INTL_SOLARIS. Set HAVE_NEWLOCALE, HAVE_DUPLOCALE, HAVE_FREELOCALE, REPLACE_NEWLOCALE, REPLACE_DUPLOCALE, REPLACE_FREELOCALE. * m4/locale_h.m4 (gl_LOCALE_H): Test whether newlocale, freelocale are declared. (gl_LOCALE_H_DEFAULTS): Initialize GNULIB_LOCALENAME, HAVE_NEWLOCALE, HAVE_FREELOCALE, REPLACE_NEWLOCALE, REPLACE_FREELOCALE. * modules/locale (Makefile.am): Substitute GNULIB_LOCALENAME, HAVE_NEWLOCALE, HAVE_FREELOCALE, REPLACE_NEWLOCALE, REPLACE_FREELOCALE. * modules/localename (Files): Add intlsolaris.m4. (Depends-on): Add 'locale'. (configure.ac): Invoke gl_LOCALE_MODULE_INDICATOR. * tests/test-locale-c++.cc (newlocale, freelocale): Prepare for checking the signatures. 2018-10-14 Akim Demaille timevar: use gethrxtime to get wall clock time clock_gettime is not portable. gethrxtime takes the best available option to get the wall clock time, including clock_gettime (monotonic clock), and gettime (non monotonic). Also, using xtime_t instead of float preserves the precision. Suggested by Bruno Haible. * lib/xtime.h (xtime_make): Handle overflows of nanoseconds. * modules/timevar (Depends-on): We need gethrxtime. We no longer use times(). (Link): Update. * lib/timevar.h (timevar_time_def): Use xtime_t. * lib/timevar.c (set_to_current_time): Use gethrxtime. (timevar_print): Instead of checking whether the timings themselves are large enough for the timevar to be printed, check the percentages. 2018-10-14 Bruno Haible wcsnrtombs: Work around Solaris 11.4 bug. * m4/wcsnrtombs.m4 (gl_WCSNRTOMBS_WORKS_IN_TRADITIONAL_LOCALE): New macro. (gl_FUNC_WCSNRTOMBS): Invoke it. * doc/posix-functions/wcsnrtombs.texi: Mention the Solaris bug. 2018-10-14 Bruno Haible mbsnrtowcs: Work around Solaris 11.4 bug. * m4/mbsnrtowcs.m4 (gl_MBSNRTOWCS_WORKS_IN_TRADITIONAL_LOCALE): New macro. (gl_FUNC_MBSNRTOWCS): Invoke it. * doc/posix-functions/mbsnrtowcs.texi: Mention the Solaris bug. 2018-10-14 Bruno Haible doc: Update for Solaris 11.4. * doc/**/*.texi: For bugs that exist in both Solaris 11.3 and 11.4, mention Solaris 11.4. * m4/printf.m4: Update comments about Solaris. * m4/log.m4: Likewise. * m4/log10.m4: Likewise. * m4/logb.m4: Likewise. * m4/logbf.m4: Likewise. * m4/logbl.m4: Likewise. * m4/rename.m4: Likewise. * m4/wcrtomb.m4: Likewise. * m4/hostent.m4: Likewise. * m4/servent.m4: Likewise. 2018-10-14 Bruno Haible floor, ceil, trunc, truncf, truncl: Defeat GCC optimizations. * m4/floor.m4 (gl_FUNC_FLOOR_LIBS): Use 'floor' also through a function pointer. * m4/ceil.m4 (gl_FUNC_CEIL_LIBS): Use 'ceil' also through a function pointer. * m4/trunc.m4 (gl_FUNC_TRUNC): Use 'trunc' also through a function pointer. * m4/truncf.m4 (gl_FUNC_TRUNCF): Use 'truncf' also through a function pointer. * m4/truncl.m4 (gl_FUNC_TRUNCL): Use 'truncl' also through a function pointer. 2018-10-13 Akim Demaille bootstrap: fix wget command for po files. * build-aux/bootstrap (po_download_command_format): Fix comment, and adjust callers. 2018-10-13 Akim Demaille timevar: improve the output format Suggested by Bruno Haible. See https://lists.gnu.org/archive/html/bug-gnulib/2018-10/msg00040.html. * lib/timevar.c (timevar_print): Use %7.3f for usr/sys and %11.6f for wall, since its resolution is much higher. 2018-10-13 Akim Demaille timevar: expect that getrusage is available. Don't keep both times and getrusage as backend: both are guaranteed by gnulib, a single one suffices. Using getrusage is open to possibly tracking other types of resources in the future. * modules/timevar (Depends-on): Add getrusage. (configure.ac): Remove gl_TIMEVAR. (Files): Remove m4/timevar.m4. * m4/timevar.m4: Remove, rely on gnulib for getrusage. * lib/timevar.h (timevar_enabled): Clarify documentation. * lib/timevar.c: Remove all the code about times. Remove all the CPP guards about getrusage: expect it to be present (courtesy of gnulib). 2018-10-12 Bruno Haible mountlist: Improve support for Solaris in 64-bit mode. Reported by David Wood in . * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): On Solaris 8 or newer, define MOUNTED_GETEXTMNTENT instead of MOUNTED_GETMNTENT2. * lib/mountlist.c: Add code for MOUNTED_GETEXTMNTENT case. 2018-10-12 Bruno Haible mountlist: Add support for Minix. Reported by Assaf Gordon in . * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Don't use AC_CHECK_FUNCS to check for 'getmntinfo'. * lib/mountlist.c: Update comments. 2018-10-12 Bruno Haible Make better use of Autoconf. * m4/environ.m4: Use AC_CACHE_CHECK where possible. * m4/manywarnings.m4: Likewise. * m4/manywarnings-c++.m4: Likewise. * m4/socklen.m4: Likewise. * m4/sockpfaf.m4: Likewise. * m4/stdarg.m4: Likewise. * m4/visibility.m4: Likewise. * m4/fsusage.m4: Use AC_CACHE_CHECK where possible. Modernize indentation. * m4/ls-mntd-fs.m4: Likewise. 2018-10-11 Bruno Haible mountlist: Modernize platform lists. * m4/ls-mntd-fs.m4: Clarify which MOUNTED_* symbol applies to which platforms, deemphasizing the obsolete ones. * lib/mountlist.c: Likewise. 2018-10-11 Bruno Haible getprogname: Add support for 32-bit programs on HP-UX. * lib/getprogname.c (getprogname) [HP-UX]: If pstat_getproc fails, try the similar functions 32-bit programs on 64-bit HP-UX. 2018-10-11 Bruno Haible getprogname: Work around program name truncation when possible. * lib/getprogname.c (getprogname) [HP-UX]: When pst_ucomm is truncated, possibly use pst_cmd instead. 2018-10-08 Paul Eggert fts: cleanup after FTS_NOATIME removal * lib/fts_.h (FTS_VERBATIM, FTS_OPTIONMASK, FTS_NAMEONLY) (FTS_STOP): Shrink to minimal values. We don’t need to worry about binary compatibility in Gnulib, and the old way of doing things had a hole in the user options that caused FTS_OPTIONMASK to not work as desired. 2018-10-08 Bernhard Voelker fts: remove FTS_NOATIME This reverts commit da4d6974013c822af1498941e32db774b2031765. We cannot guarantee that O_NOATIME works: e.g. openat fails with EPERM if the effective user ID of the caller does not match the owner of the file and the caller is not privileged. Downstream findutils has never picked up FTS_NOATIME. Discussed at . * lib/fts_.h (FTS_NOATIME): Remove bit flag. (FTS_OPTIONMASK): Adjust. * lib/fts.c (diropen, fts_open, fts_build): Likewise. (fd_ring_check): Likewise. 2018-10-08 Bruno Haible csharpcomp*, csharpexec*: Remove support for pnet. * m4/csharpcomp.m4 (gt_CSHARPCOMP): Don't test for cscc. Don't set HAVE_CSCC. * build-aux/csharpcomp.sh.in (options_cscc): Remove variable. Don't test HAVE_CSCC. * lib/csharpcomp.c (compile_csharp_using_pnet): Remove function. (compile_csharp_class): Don't invoke it. * m4/csharpexec.m4 (gt_CSHARPEXEC): Don't test for ilrun. Don't set HAVE_ILRUN. * build-aux/csharpexec.sh.in (options_ilrun): Remove variable. Don't test HAVE_ILRUN. * lib/csharpexec.c (execute_csharp_using_pnet): Remove function. (execute_csharp_program): Don't invoke it. * m4/csharp.m4 (gt_CSHARP_CHOICE): Don't recognize --enable-csharp=pnet any more. 2018-10-07 Andreas Henriksson (tiny change) renameatu: prefer renameat2 to syscall * lib/renameatu.c (renameatu) [HAVE_RENAMEAT2]: Use renameat2 instead of syscall (Bug#32796). * m4/renameat.m4 (gl_FUNC_RENAMEAT): Check for renameat2. 2018-10-07 Benno Schulenberg bootstrap, gnulib-tool: use https instead of insecure rsync * build-aux/bootstrap (download_po_files, po_download_command_format): Don't try using rsync; always use wget over https to fetch PO files. * gnulib-tool (func_import): Likewise. * pygnulib/GLImport.py (GLImport.execute): Likewise. 2018-10-07 Benno Schulenberg bootstrap, gnulib-tool: correct the translations wget command * build-aux/bootstrap (po_download_command_format2): Restrict recursion to a single level. * gnulib-tool (func_import): Likewise. * pygnulib/GLImport.py (GLImport.execute): Likewise. 2018-10-07 Akim Demaille doc: the gnulib snapshots are not maintained * doc/gnulib-intro.texi (Steady Development): Don't mention them. 2018-10-07 Akim Demaille timevar: add to lib_SOURCES * modules/timevar (lib_SOURCES): Add timevar.c and timevar.def. 2018-10-07 Bruno Haible dirent: Update documentation. * doc/posix-headers/dirent.texi: The MSVC issue is fixed by Gnulib. 2018-10-05 Bruno Haible strpbrk: Make it possible to namespace the defined symbol. * lib/strpbrk.c (strpbrk): Don't undefine outside of glibc. 2018-10-05 Bruno Haible strcspn: Make it possible to namespace the defined symbol. * lib/strcspn.c (strcspn): Don't undefine outside of glibc. 2018-10-05 Bruno Haible raise: Make it possible to namespace the defined symbol. * lib/raise.c (raise): Undefine only after the replacement function has been defined. (raise): Renamed from rpl_raise. (raise_nothrow): Move to the end of the compilation unit. 2018-10-05 Bruno Haible memcmp: Make it possible to namespace the defined symbol. * lib/memcmp.c (memcmp): Don't undefine outside of glibc. 2018-10-05 Bruno Haible explicit_bzero: Make it possible to namespace the defined symbol. * lib/explicit_bzero.c (explicit_bzero): Don't undefine outside of glibc. 2018-10-05 Bruno Haible mkdir-p: Depend on 'mkdir'. * modules/mkdir-p (Depends-on): Add 'mkdir'. 2018-10-05 Bruno Haible tempname: Depend on 'mkdir'. Reported by Maarten Bosmans at . * modules/tempname (Depends-on): Add 'mkdir'. 2018-10-05 Akim Demaille timevar: rely on gnulib modules for time portability. * modules/timevar (Depends-on): Add sys_time, sys_times, and times. * m4/timevar.m4: Don't check for clock_t and struct tms, guaranteed by gnulib. * lib/timevar.h: Use extern "C" protection. Include for FILE. * lib/timevar.c: Include sys/time.h, sys/times.h unconditionally, they are guaranteed by gnulib. Remove uses of clock as (now useless) fallback. 2018-10-04 Bruno Haible sh-filename: New module. * m4/sh-filename.m4: New file. * modules/sh-filename: New file. * lib/spawni.c (_PATH_BSHELL): Use BOURNE_SHELL instead of hardcoding "/bin/sh". * tests/test-posix_spawn1.c (main): Likewise. * tests/test-posix_spawn2.c (main): Likewise. * lib/javacomp.c (compile_using_envjavac, is_envjavac_gcj, is_envjavac_gcj43): Likewise. * lib/javaexec.c (execute_java_class): Likewise. * modules/posix_spawn-internal (Depends-on): Add sh-filename. * modules/posix_spawnp-tests (Depends-on): Likewise. * modules/javacomp (Depends-on): Likewise. * modules/javaexec (Depends-on): Likewise. 2018-10-04 Bruno Haible spawn-pipe tests: Avoid test failure on native Windows. * tests/test-spawn-pipe-child.c (main): On native Windows, don't expect that fd 2 is closed. 2018-10-04 Bruno Haible fcntl: Make it possible to namespace the defined symbol. * lib/fcntl.c (fcntl): Undefine only after the replacement function has been defined. (fcntl): Renamed from rpl_fcntl. (rpl_fcntl_DUPFD, rpl_fcntl_DUPFD_CLOEXEC): New functions, extracted from fcntl. (klibc_fcntl): Move to the end of the compilation unit. 2018-10-02 Bruno Haible vasnprintf tests: Avoid test failure on HP-UX/hppa and IRIX. * tests/test-vasnprintf.c (test_function): Change the test added on 2018-09-23 to check only the 18 most significant digits. vasnprintf tests: Avoid test failure on Cygwin. * tests/test-vasnprintf.c (test_function): Change the test added on 2018-09-23 to check only the 42 most significant digits. 2018-10-01 Bruno Haible mkostemp, mkostemps: Update documentation. * doc/glibc-functions/mkostemp.texi: Mention the Mac OS X issue. * doc/glibc-functions/mkostemps.texi: Likewise. 2018-10-01 Tom Tromey mkostemp, mkostemps: Fix compilation error in C++ mode on Mac OS X. * lib/stdlib.in.h: Include for mkostemp and mkostemps on OS X. 2018-09-30 Pádraig Brady hmac-*: refactor to remove repetitive code * lib/hmac.c: A new parameterized single implementation. * lib/hmac-md5.c: Define parameters and include implementation. * lib/hmac-sha1.c: Likewise. * lib/hmac-sha256.c: Likewise. * lib/hmac-sha512.c: Likewise. * modules/crypto/hmac-md5: Reference the new implementation file. * modules/crypto/hmac-sha1: Likewise. * modules/crypto/hmac-sha256: Likewise. * modules/crypto/hmac-sha512: Likewise. * tests/test-hmac-md5.c: Refactor common code to a single function. * tests/test-hmac-sha1.c: Likewise. * tests/test-hmac-sha256.c: Likewise. * tests/test-hmac-sha512.c: Likewise. 2018-09-30 Zhang Qing hmac-sha512: fix hash for keys > blocksize (128 bytes) * lib/hmac-sha512.c (hmac_sha512): Set the computed/shortened key length to that output by sha512, not the blocksize. Otherwise uninitialized data from the stack is used when computing the hash. * tests/test-hmac-sha512.c: Add a shortened key test case. Reported at https://github.com/coreutils/gnulib/pull/5 2018-09-30 Bruno Haible vasnprintf: Avoid warnings from GCC's -Wsign-compare. Reported by Bjarni Ingi Gislason in . * lib/vasnprintf.c (VASNPRINTF): Cast 'count' from 'int' to 'unsigned int' before comparison with an unsigned value. 2018-09-30 Bruno Haible grantpt: Remove unnecessary dependency. * modules/grantpt (Depends-on): Remove 'builtin-expect'. 2018-09-30 Bruno Haible timevar: Small tweaks. * lib/timevar.h: Fix comments. Add parameter names to function declarations. * lib/timevar.c: Include timevar.h immediately after config.h. * lib/timevar.def: Fix comments. * modules/timevar (Maintainer): List Akim Demaille. 2018-09-30 Bruno Haible timevar: Include documentation in gnulib manual. * doc/timevar.texi: Change node and section name to 'Profiling of program phases'. In the code snippets, tweak the #includes and use GNU coding style. * doc/gnulib.texi: Include timevar.texi. 2018-09-27 Akim Demaille timevar: import from Bison. * m4/timevar.m4, modules/timevar, lib/timevar.h, lib/timevar.c: New files. * lib/timevar.def: New file. * doc/timevar.texi: New file. 2018-09-26 Bruno Haible javacomp-script, javacomp: Add preliminary support for Java 12..17. * m4/javacomp.m4 (gt_JAVACOMP): Treat Java versions 12..17 like 11. * lib/javacomp.c (default_target_version): Likewise. 2018-09-26 Bruno Haible javacomp-script, javacomp: Add support for Java 11. * m4/javacomp.m4 (gt_JAVACOMP): Accept source-version 11 and target-version 11. * lib/javaversion.h: Update comments. * lib/javacomp.c (default_target_version, SOURCE_VERSION_BOUND, source_version_index, get_goodcode_snippet, get_failcode_snippet, TARGET_VERSION_BOUND, target_version_index, corresponding_classfile_version): Accept source_version 11 and target_version 11. * lib/javacomp.h: Update comments accordingly. 2018-09-23 Bruno Haible vasnprintf: Fix heap memory overrun bug. Reported by Ben Pfaff in . * lib/vasnprintf.c (convert_to_decimal): Allocate one more byte of memory. * tests/test-vasnprintf.c (test_function): Add another test. 2018-09-19 Paul Eggert maint: mktime.c now shared with glibc * config/srclist.txt: intprops.h, timegm.c and mktime.c are now the same in Gnulib and glibc. mktime: fix _LIBC typo * lib/mktime.c (mktime): Fix typo (misspelled "_LIBC"). 2018-09-19 Norihiro Tanaka dfa: optimization for state merge * lib/dfa.c (merge2): New function. (merge_nfa_state): Use it. 2018-09-18 Jim Meyering dfa: trivial comment fix: s/is/if/ * lib/dfa.c (maybe_disable_superset_dfa): Fix comment typo. 2018-09-18 Paul Eggert dfa: use more-informative function name * lib/dfa.c (maybe_disable_superset_dfa): Rename from dfautf8noss. Use change. dfa: tweak allocation performance * lib/dfa.c (merge_nfa_state, dfaoptimize): Prefer ptrdiff_t for indexes some more. Use char for flags, as it’s wide enough. Allocate queue and flags together, with one malloc call. No need to use xnmalloc since the multiplication and addition cannot overflow (it’s already been checked by earlier allocation). Prefer memset to open-coding. dfa: prune states as we go * lib/dfa.c (prune): Remove. dfa: reorder enum for efficiency (merge_nfa_state): Prune as we go instead of at the end. Prefer ptrdiff_t for indexes, as this helps the compiler a bit. * lib/dfa.c (END): Now -1 again. Reorder other elements of the enumeration to make it easier for GCC to generate efficient code by using fewer comparisons to check for ranges of values. (atom): Take advantage of the reordering. 2018-09-18 Norihiro Tanaka dfa: optimize alternation in NFA Even when similar states exist in alternation, the DFA treats them as separate items, which may complicate the transition in NFA and cause slowdown. This change assembles the states into one. For example, ab|ac is changed into a(b|c). This change speeds-up matching for many branched patterns. For example, grep speeds up more than 30× in: seq 10000 | sed 's/$/ abcdefghijklmnopqrstuvwxyz/; s/$/./' >in time -p env LC_ALL=C grep -vf in in * lib/dfa.c (prune): New function. (merge_nfa_state): New function. It merges similar NFA states. (dfaoptimize): New function. It seeks merged and removed nodes. (dfaanalyze): Call new function. (dfautf8noss): Change name from dfaoptimize because of addition of new function. (dfacomp): Update caller. dfa: simplify initial state Simplifying the initial state enables easier optimization of the NFA. * lib/dfa.c (enum token): Add new element BEG. (prtok): Adjust due to adding element BEG. (dfaparse): Put BEG at a head of tokens. (state_index): Adjust due to adding element BEG. (dfaanalyze): Concatenate BEG to other tokens, and simplify to build initial state. (dfamust): Adjust due to adding element BEG. DFAMUST ignores it. 2018-09-18 Bruno Haible file-has-acl: Fix test failure on Cygwin 2.9. * m4/acl.m4 (gl_FUNC_ACL): Update comments regarding Cygwin. * lib/acl-internal.h: Likewise. (HAVE_ACL_EXTENDED_FILE): Undefine on Cygwin. * lib/acl-internal.c: Update comments regarding Cygwin. * lib/acl_entries.c: Likewise. * lib/file-has-acl.c: Likewise. (file_has_acl): For Cygwin, use a different way to determine whether the "default" ACL of a directory is nontrivial. * lib/get-permissions.c: Update comments regarding Cygwin. * lib/set-permissions.c: Likewise. 2018-09-18 Bruno Haible stat-time tests: Fix test failure on Cygwin. * tests/nap.h (nap_get_stat): Treat Cygwin like native Windows. 2018-09-18 Paul Eggert doc: OS X 10.11 lacked ns time functions According to , nanosecond-resolution timestamp functions were introduced in macOS 10.12, so document the last version (OS X 10.11) where they were absent. gettime: nanotime never existed Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2018-09/msg00082.html * lib/gettime.c (gettime) [HAVE_NANOTIME]: Remove unused code. * m4/gettime.m4 (gl_GETTIME): Don’t check for nanotime. 2018-09-18 Bruno Haible doc: Update statement about target platforms. Reported by Simon Sobisch. * doc/gnulib-intro.texi (Target Platforms): Update. Mention restrictions on MSVC versions. 2018-09-18 Bruno Haible posix_spawn tests: Fix link error on 64-bit Cygwin. * tests/test-posix_spawn1.c (environ): Remove declaration. * tests/test-posix_spawn2.c (environ): Likewise. * tests/test-posix_spawn3.c (environ): Likewise. * tests/test-posix_spawn4.c (environ): Likewise. * modules/posix_spawn-tests (Depends-on): Add 'environ'. * modules/posix_spawnp-tests (Depends-on): Likewise. 2018-09-16 Paul Eggert timespec: new function current_timespec * lib/gettime.c (gettime): Prefer clock_gettime to nanotime, and don’t worry about it failing on a CLOCK_REALTIME arg. POSIX requires it to succeed and I don’t know of any counterexamples where the fallbacks would work. (current_timespec): New function, taken from Emacs. It is more convenient than gettime, and can help register allocation. * lib/timespec.h: Include arg-nonnull.h. (current_timespec): New declaration. (gettime, settime): Declare args to be nonnull. * modules/timespec (Depends-on): Add snippet/arg-nonnull. 2018-09-16 Bruno Haible setlocale: Improve locale handling on macOS 10.12 or newer. * lib/setlocale.c: Include header files for CoreFoundation. Declare gl_locale_name_canonicalize. (libintl_setlocale): Try harder to set a locale for categories LC_CTYPE and LC_MESSAGES. * m4/setlocale.m4 (gl_PREREQ_SETLOCALE): Add comment. 2018-09-16 Bruno Haible Update list of locale names with scripts on macOS. * lib/localename.c (gl_locale_name_canonicalize): Update tables to match Mac OS X 10.13 and recent glibc. 2018-09-16 Bruno Haible gettext: Use newer macOS APIs when possible. * m4/intlmacosx.m4 (gt_INTL_MACOSX): Check for CFLocaleCopyPreferredLanguages. 2018-09-16 Bruno Haible localename: Revisit macOS specific code. * lib/localename.c (gl_locale_name_default): Reduce code duplication. Fix comments about Mac OS X versions. 2018-09-15 Bruno Haible setlocale: Improve support for locales not supported by libc. Reported by Dapeng Gao at . * gettext-runtime/intl/setlocale.c: Include . (libintl_setlocale): Use a more error-tolerant strategy when the locale to be set is not supported by libc: Emit warnings instead of failing. 2018-09-15 Bruno Haible strstr, strcasestr: Add workaround against glibc-2.28 bug. Reported by Michael Brunnbauer via Siddhesh Poyarekar and Eric Blake. * m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE): Set gl_cv_func_strstr_works_always to 'no' on glibc 2.28. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Set gl_cv_func_strcasestr_works_always to 'no' on glibc 2.28. * doc/posix-functions/strstr.texi: Document the glibc 2.28 bug. * doc/glibc-functions/strcasestr.texi: Likewise. 2018-09-14 Bruno Haible doc: Fix bottom of top-level page. Reported by Akim Demaille in . * doc/pastposix-functions/index.texi: Rename node to '_index' in HTML mode. * doc/gnulib.texi (Legacy Function Substitutes): Update menu accordingly. 2018-09-12 Bruno Haible Add test case from a recent glibc bug. * tests/test-strstr.c (main): Add test of long needle. * tests/test-strcasestr.c (main): Likewise. * tests/test-c-strstr.c (main): Likewise. * tests/test-c-strcasestr.c (main): Likewise. * tests/test-memmem.c (main): Likewise. 2018-09-12 Bruno Haible Apply Eric Blake's improvements from 2011-02-25 to more tests. * tests/test-c-strstr.c (main): Add the same tests here as well. 2018-09-12 Bruno Haible Apply Jim Meyering's fix from 2015-01-11 to more tests. * tests/test-memmem.c (main): Free haystack. * tests/test-strcasestr.c (main): Likewise. * tests/test-c-strcasestr.c (main): Likewise. 2018-09-11 Paul Eggert xstrtol: fix missing-TYPE_SIGNED typo * lib/xstrtol.c (TYPE_SIGNED): New macro, duplicating intprops.h. 2018-09-10 Paul Eggert timespec: fix resolution confusion In normal usage, clock resolution is given in seconds, but the code was mistakenly using inverse seconds and calling it “resolution”. Fix this, partly by renaming two identifiers. The old names will be kept for a bit, to ease transition. * lib/timespec.h (TIMESPEC_HZ, LOG10_TIMESPEC_HZ): New constants, replacing TIMESPEC_RESOLUTION and LOG10_TIMESPEC_RESOLUTION, which are now obsolescent. All uses changed. 2018-09-09 Paul Eggert mktime: simplify in prep for glibc merge * lib/mktime.c, lib/timegm.c [_LIBC]: Include mktime-internal.h (a small file just for glibc) instead of using a typedef. 2018-09-07 Paul Eggert intprops: minor clarification of code * lib/intprops.h (_GL_BINARY_OP_OVERFLOW): Use _GL_INT_CONVERT rather than reinventing it. 2018-09-07 Bruno Haible Fix a comment. * tests/test-posix_spawn3.c (parent_main): Fix typo in comment. 2018-09-07 Bruno Haible posix_spawn_file_actions_addchdir: Add tests. * tests/test-posix_spawn_file_actions_addchdir.c: New file. * tests/test-posix_spawn4.c: New file. * modules/posix_spawn_file_actions_addchdir-tests: New file. 2018-09-07 Bruno Haible posix_spawn_file_actions_addchdir: New module. Suggested by Eric Blake in . * lib/spawn.in.h (posix_spawn_file_actions_addchdir): New declaration. * lib/spawn_int.h (struct __spawn_action): Add tag 'spawn_do_chdir' and union member 'chdir_action'. * lib/spawn_faction_addchdir.c: New file. * lib/spawni.c (__spawni): Implement the spawn_do_chdir action. * lib/spawn_faction_addclose.c: Test REPLACE_POSIX_SPAWN instead of HAVE_WORKING_POSIX_SPAWN. * lib/spawn_faction_adddup2.c: Likewise. * lib/spawn_faction_addopen.c: Likewise. * m4/posix_spawn_faction_addchdir.m4: New file. * m4/posix_spawn.m4 (gl_POSIX_SPAWN_BODY): Test whether module 'posix_spawn_file_actions_addchdir' is present and whether posix_spawn_file_actions_addchdir_np exists. Define REPLACE_POSIX_SPAWN instead of HAVE_WORKING_POSIX_SPAWN. * m4/spawn_h.m4 (gl_SPAWN_H): Test whether posix_spawn_file_actions_addchdir is declared. (gl_SPAWN_H_DEFAULTS): Initialize GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR, HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR, REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR. * modules/spawn (Makefile.am): Substitute GNULIB_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR, HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR, REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR. * modules/posix_spawn_file_actions_addchdir: New file. * modules/posix_spawn_file_actions_addclose (Depends-on, configure.ac): Test also REPLACE_POSIX_SPAWN. * modules/posix_spawn_file_actions_adddup2 (Depends-on, configure.ac): Likewise. * modules/posix_spawn_file_actions_addopen (Depends-on, configure.ac): Likewise. * tests/test-spawn-c++.cc (posix_spawn_file_actions_addchdir): Check signature. * doc/posix-functions/posix_spawn.texi: Mention the new module. * doc/posix-functions/posix_spawnp.texi: Likewise. 2018-09-06 Bruno Haible stddef: Override max_align_t on NetBSD 8.0/x86. * m4/stddef_h.m4 (gl_STDDEF_H): When testing for max_align_t, test also the value of __alignof__ (max_align_t). * doc/posix-headers/stddef.texi: Mention the issue. 2018-09-06 Bruno Haible fcntl: Fix F_DUPFD_CLOEXEC behaviour on Haiku. * lib/fcntl.c (rpl_fcntl): For F_DUPFD_CLOEXEC, don't even try the system fcntl. * doc/posix-functions/fcntl.texi: Document the issue. 2018-09-06 Bruno Haible count-trailing-zeros tests: Rely on limits-h module. * tests/test-count-trailing-zeros.c (ULLONG_MAX): Remove fallback definition. * modules/count-trailing-zeros-tests (Depends-on): Add 'limits-h'. 2018-09-06 Bruno Haible count-leading-zeros tests: Rely on limits-h module. * tests/test-count-leading-zeros.c (ULLONG_MAX): Remove fallback definition. * modules/count-leading-zeros-tests (Depends-on): Add 'limits-h'. 2018-09-06 Bruno Haible count-one-bits tests: Rely on limits-h module. * tests/test-count-one-bits.c (ULLONG_MAX): Remove fallback definition. * modules/count-one-bits-tests (Depends-on): Add 'limits-h'. 2018-09-06 Bruno Haible xstrtoll: Rely on limits-h module. * lib/xstrtol.c: Don't include intprops.h. (ULLONG_MAX, LLONG_MAX, LLONG_MIN): Remove fallback definitions. * modules/xstrtol (Depends-on): Remove 'intprops'. * modules/xstrtoll (Depends-on): Add 'limits-h'. 2018-09-06 Bruno Haible strtoll, strtoull: Rely on limits-h module. * lib/strtol.c (TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Remove macros. (ULLONG_MAX, LLONG_MAX, LLONG_MIN): Remove fallback definitions. * modules/strtoll (Depends-on): Add limits-h. * modules/strtoull (Depends-on): Likewise. 2018-09-06 Bruno Haible intprops tests: Fix compilation error with pre-C99 compiler. * tests/test-intprops.c (verify_stmt): New macro. (VERIFY, main): Use it. 2018-09-06 Bruno Haible limits-h: Provide numerical limits macros. * lib/limits.in.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define also for IRIX and for GCC. (WORD_BIT, LONG_BIT): Define. * m4/limits-h.m4 (gl_LIMITS_H): Set LIMITS_H to non-empty also when does not define LLONG_MAX or WORD_BIT. * tests/test-limits-h.c (TYPE_SIGNED, TYPE_WIDTH, TYPE_MINIMUM, TYPE_MAXIMUM): New macros, from intprops.h. Add tests for CHAR_BIT, WORD_BIT, LONG_BIT, _MIN, and _MAX. * doc/posix-headers/limits.texi: Document what the 'limits-h' module provides. 2018-09-05 Bruno Haible fcntl: Don't access nonexistent optional argument. Reported by Frank Busse in . * lib/fcntl.c (rpl_fcntl): For actions that don't take an argument, don't consume an argument. For actions that take an 'int' argument, consume an 'int' argument. 2018-09-05 Eric Blake doc: mention environ pitfall * doc/posix-functions/environ.texi (environ): Assigning NULL to environ is a glibc extension. 2018-09-03 Bruno Haible gnulib-tool: Fix build order when $testsbase is a subdir of $sourcebase. Reported by Antoine Luong in . * gnulib-tool (func_import): For the tests, set a dotfirst flag. (func_emit_lib_Makefile_am): Consider the dotfirst flag. (func_emit_tests_Makefile_am): Don't consider the dotfirst flag. 2018-09-02 Paul Eggert mktime: fix unlikely race+overflow bug Problem reported by Alexandre Oliva in: https://sourceware.org/bugzilla/show_bug.cgi?id=16346 * lib/mktime.c (__mktime_internal): Access *OFFSET only once, to avoid an unlikely race if the compiler delays a load and if this cascades into a signed integer overflow. 2018-08-31 Paul Eggert mktime, timegm: simplify glibc time64_t * lib/mktime.c, lib/timegm.c (mktime_offset_t) [_LIBC]: Now long int, not time_t, since long int is the longstanding type for this in glibc and there is no need to change it even if time_t becomes 64 bits - even int would do, though this would be a change to the glibc generated code. When this change is merged into glibc, it should simplify the time_t vs time64_t situation. mktime, timegm: simplify merge to glibc Move code around to make a merge to glibc easier to audit. This should not change behavior. * lib/mktime.c (NEED_MKTIME_INTERNAL, NEED_MKTIME_WINDOWS) (NEED_MKTIME_WORKING): Give default values to pacify -Wundef, which glibc uses. Default NEED_MKTIME_WORKING to DEBUG_MKTIME, to simplify later conditionals; default the others to zero. In uses of these conditionals, explicitly spell out how _LIBC affects things, so it’s easier to review from a glibc viewpoint. (my_tzset, __tzset) [!_LIBC]: New function and macro, to better compartmentalize tzset issues. Move system-dependent tzsettish code here from mktime. (mktime): Move tzsettish code to my_tzset, and move localtime_offset to within mktime so that it doesn’t need a separate ifdef. 2018-08-27 Paul Eggert intprops: avoid evaluation of some expressions This makes EXPR_SIGNED (e) easier to use, as it no longer evaluates the expression E. Formerly, E was required to be free of side effects. * lib/intprops.h (_GL_INT_CONVERT, _GL_INT_NEGATE_CONVERT) (EXPR_SIGNED, TYPE_WIDTH, _GL_INT_MINIMUM, _GL_INT_MAXIMUM) (_GL_SIGNED_INT_MAXIMUM): Do not evaluate the expression arg. 2018-08-23 Bruno Haible getcwd: Add cross-compilation guesses. Reported by Sergio Durigan Junior in . Based on a patch by Paul Eggert. * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Add cross-compilation guesses for all GNU systems. 2018-08-19 Bruno Haible glob-h: Formalize side effects from other modules. * m4/glob_h.m4 (gl_REPLACE_GLOB_H): New macro. * m4/glob.m4 (gl_GLOB): Invoke it. fnmatch-h: Formalize side effects from other modules. * m4/fnmatch_h.m4 (gl_REPLACE_FNMATCH_H): New macro. * m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Invoke it. limits-h: Formalize side effects from other modules. * m4/limits-h.m4 (gl_REPLACE_LIMITS_H): New macro. * m4/stdint.m4 (gl_STDINT_H): Invoke it. 2018-08-19 Bruno Haible getpass: Move declaration to . * lib/unistd.in.h (getpass): New declaration. * lib/getpass.h: Replace with a stub that just includes . * m4/getpass.m4 (gl_FUNC_GETPASS): Declare through AC_DEFUN_ONCE. Require gl_UNISTD_H_DEFAULTS. Don't test whether getpass is declared. (gl_FUNC_GETPASS_GNU): Require gl_UNISTD_H_DEFAULTS and gl_FUNC_GETPASS. On glibc systems, don't set REPLACE_GETPASS to 1. * modules/getpass (Depends-on): Add 'unistd'. (configure.ac): Test also REPLACE_GETPASS. Define a module indicator. (Include): Specify instead of "getpass.h". * modules/getpass-gnu (Depends-on): Merely depend on 'getpass'. (configure.ac): Sync with the configure.ac section of modules/getpass. (Include): Specify instead of "getpass.h". * m4/unistd_h.m4 (gl_UNISTD_H): Test whether getpass is declared. (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GETPASS, HAVE_GETPASS, REPLACE_GETPASS. * modules/unistd (Makefile.am): Substitute GNULIB_GETPASS, HAVE_GETPASS, REPLACE_GETPASS. * tests/test-unistd-c++.cc: Test also the declaration of 'getpass'. * doc/glibc-functions/getpass.texi: A length limit exists also on uClibc and musl. * NEWS: Mention the change. 2018-08-19 Bruno Haible glob: Fix over-optimization due to attribute __nonnull__. * lib/glob.c (_GL_ARG_NONNULL): Define to empty. 2018-08-19 Bruno Haible glob: Fix another compilation error when glob.h is not replaced. Reported by Reuben Thomas in . * m4/glob.m4 (gl_GLOB): Set GLOB_H to non-empty when needed. * m4/glob_h.m4 (gl_GLOB_H): Define through AC_DEFUN_ONCE. 2018-08-18 Bruno Haible fnmatch: Avoid conflicting macro definitions of 'fnmatch'. Reported by Reuben Thomas in . * m4/fnmatch.m4 (gl_PREREQ_FNMATCH): Don't define 'fnmatch' as a macro in config.h. 2018-08-18 Bruno Haible Avoid -Wcast-function-type warnings from casts after GetProcAddress. Reported by Andy Moreton in . Solution proposed by Eli Zaretskii. * lib/getaddrinfo.c (GetProcAddress): Cast result to 'void *' first. * lib/gettimeofday.c (GetProcAddress): Likewise. * lib/link.c (GetProcAddress): Likewise. * lib/physmem.c (GetProcAddress): Likewise. * lib/poll.c (GetProcAddress): Likewise. * lib/select.c (GetProcAddress): Likewise. * lib/stat-w32.c (GetProcAddress): Likewise. 2018-08-18 Bruno Haible glob: Fix another compilation error when glob.h is not replaced. Reported and fix proposed by Reuben Thomas again. * lib/globfree.c: Include . 2018-08-18 Bruno Haible glob: Fix compilation error when glob.h is not replaced. Reported and fix proposed by Reuben Thomas in . * lib/glob_pattern_p.c: Include . * modules/glob (Depends-on): Add libc-config. 2018-08-18 Bruno Haible scratch_buffer: Add tests. * tests/test-scratch-buffer.c: New file. * modules/scratch_buffer-tests: New file. 2018-08-18 Bruno Haible scratch_buffer: Fix include file. Reported by Reuben Thomas in . * lib/scratch_buffer.h: Include first. Add double-inclusion guard. 2018-08-18 Bruno Haible glob-h: Revert Paul Eggert's revert. * m4/glob_h.m4: Revert to previous state. * modules/glob-h: Likewise. 2018-08-18 Paul Eggert glob-h: always build glob.h This works around a problem reported by Reuben Thomas in: http://lists.gnu.org/r/bug-gnulib/2018-08/msg00079.html This workaround always builds glob.h, even on platforms that do not need it; perhaps this could be improved someday. * m4/glob_h.m4 (gl_GLOB_H): Do not set or use GLOB_H, since glob.h is always created now. * modules/glob-h (BUILT_SOURCES, glob.h): Always build glob.h. 2018-08-13 Bruno Haible monetary: Simplify m4 code. * m4/monetary_h.m4 (gl_MONETARY_H): Define through AC_DEFUN_ONCE. (gl_MONETARY_H_BODY): Inline into gl_MONETARY_H. Remove macro. 2018-08-13 Bruno Haible fnmatch, fnmatch-gnu: Fix compilation error on Mac OS X. Reported by Jeroen Meijer in and by Paul J. Lucas in . * m4/fnmatch_h.m4 (gl_FNMATCH_H): Define through AC_DEFUN_ONCE. 2018-08-11 Bruno Haible setlocale: Trivial simplification. * lib/setlocale.c (setlocale_unixlike): Remove redundant #if. 2018-08-11 Paul Eggert verify: port 'assume' to traditional tools * lib/verify.h (assume): Port better to Oracle Studio 12.6 and other tools that use /*NOTREACHED*/ comments. 2018-08-10 Bruno Haible fnmatch-gnu: Fix compilation error in C++ namespace mode on Mac OS X. * modules/fnmatch-gnu (configure.ac): Invoke gl_MODULE_INDICATOR. * lib/fnmatch.in.h (fnmatch): Skip _GL_CXXALIASWARN if module 'fnmatch-gnu' is in use. 2018-08-07 Bruno Haible glob-h: Add tests. * tests/test-glob-h.c: New file, partially based on tests/test-glob.c. * tests/test-glob.c: Reorder #includes. Remove tests that are moved to tests/test-glob-h.c. * modules/glob-h-tests: New file. * tests/test-glob-h-c++.cc: Renamed from tests/test-glob-c++.cc. Add conditions. * modules/glob-h-c++-tests: Renamed from modules/glob-c++-tests. * modules/glob-tests (Depends-on): Remove glob-c++-tests. 2018-08-07 Bruno Haible glob-h: New module. * lib/glob.in.h: Use nearly the usual gnulib idioms for header file replacements. * lib/glob.c: Include . * m4/glob_h.m4: New file. * m4/glob.m4 (gl_GLOB): Require gl_GLOB_H. Remove code that is moved to glob_h.m4. Set HAVE_GLOB, REPLACE_GLOB, HAVE_GLOB_PATTERN_P, REPLACE_GLOB_PATTERN_P as appropriate. (gl_PREREQ_GLOB): Don't require AC_C_RESTRICT and AC_USE_SYSTEM_EXTENSIONS, now done through module 'glob-h'. * modules/glob-h: New file. * modules/glob (Files): Remove lib/glob.in.h, lib/glob-libc.h. (Dependencies): Add glob-h. Remove extensions, snippet/*, libc-config, lstat, sys_stat. Change conditions. (configure.ac): Test HAVE_GLOB, REPLACE_GLOB, HAVE_GLOB_PATTERN_P, REPLACE_GLOB_PATTERN_P. Set module indicator. (Makefile.am): Remove code that is moved to glob-h. * doc/posix-headers/glob.texi: Mention the 'glob-h' module. * modules/posixcheck (Depends-on): Add glob-h. 2018-08-06 Bruno Haible Force generation of substitute .h file when C++ support is enabled. * m4/ansi-c++.m4 (gl_ANSI_CXX): New macro. * modules/ansi-c++-opt (configure.ac): Just require gl_ANSI_CXX. * m4/fnmatch_h.m4 (gl_FNMATCH_H): If C++ support is enabled, set FNMATCH_H to non-empty. * m4/iconv_h.m4 (gl_ICONV_H_DEFAULTS): If C++ support is enabled, set ICONV_H to non-empty. * m4/monetary_h.m4 (gl_MONETARY_H_BODY): If C++ support is enabled, set MONETARY_H to non-empty. * m4/utime_h.m4 (gl_UTIME_H): If C++ support is enabled, set UTIME_H to non-empty. 2018-08-06 Bruno Haible fnmatch-h: Fix test compilation error on mingw (regression from today). * lib/fnmatch.in.h: Fix conditions. 2018-08-06 Bruno Haible sys_resource: Relicense under LGPLv2+. John Malmberg's approval is in . * modules/sys_resource (License): Change to LGPLv2+. 2018-08-06 Bruno Haible fnmatch-h: Add tests. * tests/test-fnmatch-h.c: New file. * modules/fnmatch-h-tests: New file. * tests/test-fnmatch-h-c++.cc: New file. * modules/fnmatch-h-c++-tests: New file. 2018-08-06 Bruno Haible fnmatch-h: New module. * lib/fnmatch.in.h: Use the usual gnulib idioms for header file replacements. (FNM_*): Don't redefine if fnmatch exists and we are not overriding it. (fnmatch): Use the usual gnulib idiom for function declarations. Enable 'posixcheck' warning. * m4/fnmatch_h.m4: New file. * m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Require gl_FNMATCH_H. Remove code that is moved to fnmatch_h.m4. When fnmatch does not exist, don't bother testing whether it is working. Set HAVE_FNMATCH, REPLACE_FNMATCH as appropriate. * modules/fnmatch-h: New file. * modules/fnmatch (Files): Remove lib/fnmatch.in.h. (Dependencies): Add fnmatch-h. Remove extensions, snippet/*. Change conditions. (configure.ac): Test HAVE_FNMATCH and REPLACE_FNMATCH. Set module indicator. (Makefile.am): Remove code that is moved to fnmatch-h. * modules/fnmatch-gnu (configure.ac): Test HAVE_FNMATCH and REPLACE_FNMATCH. * doc/posix-headers/fnmatch.texi: Mention the 'fnmatch-h' module. * modules/posixcheck (Depends-on): Add fnmatch-h. 2018-08-06 Bruno Haible Enable more C++ tests. * modules/inttypes-tests (Depends-on): Add inttypes-c++-tests. * modules/monetary-tests (Depends-on): Add monetary-c++-tests. * modules/strings-tests (Depends-on): Add strings-c++-tests. * modules/sys_resource-tests (Depends-on): Add sys_resource-c++-tests. * modules/utime-h-tests (Depends-on): Add utime-h-c++-tests. 2018-08-06 Bruno Haible getopt-posix, utime-h: Ensure the .h file gets regenerated when needed. * modules/getopt-posix (Makefile.am): Add Makefile dependency for getopt.h. * modules/utime-h (Makefile.am): Add Makefile dependency for utime.h. 2018-08-05 Bruno Haible utime-h: Generate header file when module 'posixcheck' is in use. * m4/utime_h.m4 (gl_UTIME_H): If module 'posixcheck' is in use, set UTIME_H to non-empty. 2018-08-05 Bruno Haible monetary: Generate header file when module 'posixcheck' is in use. * m4/monetary_h.m4 (gl_MONETARY_H_BODY): If module 'posixcheck' is in use, set MONETARY_H to non-empty. 2018-08-05 Bruno Haible iconv-h: Generate header file when module 'posixcheck' is in use. * m4/iconv_h.m4 (gl_ICONV_H_DEFAULTS): If module 'posixcheck' is in use, set ICONV_H to non-empty. 2018-08-05 Bruno Haible Optimize the "checking whether ... is declared without a macro" checks. Suggested by Paul Eggert in . * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Expand to nothing if the Gnulib module 'posixcheck' is not in use. 2018-08-05 Bruno Haible iconv-h: Enable 'posixcheck' warnings. * m4/iconv_h.m4 (gl_ICONV_H): Check for declarations of iconv and iconv_open. * lib/iconv.in.h (iconv_open, iconv): Use _GL_WARN_ON_USE. 2018-08-05 Bruno Haible Fix link error regarding 'rpl_environ' (regression from 2012-11-21). * m4/extern-inline.m4: Add more comments. * lib/warn-on-use.h (_GL_WARN_ON_USE_ATTRIBUTE): New macro. * lib/unistd.in.h (rpl_environ): Use it instead of _GL_WARN_ON_USE. * lib/math.in.h (_GL_WARN_REAL_FLOATING_DECL): Likewise. 2018-08-04 Bruno Haible New module 'posixcheck'. * modules/posixcheck: New file. * m4/posixcheck.m4: New file. * doc/gnulib-tool.texi (Finding POSIX substitutes): New section. (Which modules?): Reference it. 2018-08-01 Assaf Gordon dfa: fix memory leak * lib/dfa.c (dfafree): Add missing free() on dfa->superset. 2018-08-01 Paul Eggert ieee754-h: new module It looks like Emacs can use this for some NaN processing. Emacs uses it only on double NaNs so it should be safe. * MODULES.html.sh (func_all_modules): Add ieee754-h. * config/srclist.txt: Mention ieee754.h in a comment. * doc/glibc-headers/ieee754.texi (ieee754.h): Gnulib now has a substitute that should work except for long double and for non-IEEE platforms. * lib/ieee754.in.h, m4/ieee754-h.m4, modules/ieee754-h: * modules/ieee754-h-tests, tests/test-ieee754-h.c: New files. 2018-07-27 Bruno Haible iswcntrl: Mention minor problem on macOS. * doc/posix-functions/iswcntrl.texi: Mention oddity on macOS. 2018-07-26 Colin Watson bootstrap, gnulib-tool: fix translations rsync Previously, we created files such as $pobase/Makefile.in.in and then the subsequent rsync would immediately delete them. * build-aux/bootstrap (po_download_command_format): Avoid deleting non-.po files in target directory when rsyncing translations. * gnulib-tool (func_import): Likewise. * pygnulib/GLImport.py (GLImport.execute): Likewise. 2018-07-25 Jim Meyering bootstrap: reinstate definition fo gnulib_mk. That variable is used at least by cppi. * build-aux/bootstrap (gnulib_mk): Restore definition. This reverts the deletion from v0.1-1844-gc66dba9ba. 2018-07-23 Bruno Haible doc: For module names, use texinfo markup @code{} or @samp{}. * doc/alloca.texi: Mark gnulib module names with @code. * doc/alloca-opt.texi: Likewise. * doc/quote.texi: Likewise. * doc/posix-functions/freopen.texi: Likewise. * doc/posix-functions/open.texi: Likewise. * doc/posix-functions/readlink.texi: Likewise. * doc/posix-functions/readlinkat.texi: Likewise. * doc/posix-functions/stdout.texi: Likewise. * doc/posix-functions/stderr.texi: Likewise. * doc/posix-functions/unlink.texi: Likewise. * doc/posix-functions/unlinkat.texi: Likewise. * doc/posix-functions/utime.texi: Likewise. * doc/posix-functions/utimensat.texi: Likewise. * doc/posix-functions/utimes.texi: Likewise. * doc/posix-headers/stdint.texi: Likewise. * doc/glibc-functions/futimesat.texi: Likewise. * doc/glibc-functions/lutimes.texi: Likewise. * doc/glibc-functions/memmem.texi: Likewise. 2018-07-23 Werner LEMBERG doc: Avoid some overfull lines in the TeX output. * doc/glibc-functions/futimesat.texi: Replace a long @code with a @example. * doc/pastposix-functions/pthread_attr_getstackaddr.texi: Insert a newline before the long URL. * doc/pastposix-functions/pthread_attr_setstackaddr.texi: Likewise. * doc/relocatable-maint.texi: Use @smallexample instead of @example. Add line breaks in code snippets. 2018-07-17 Paul Eggert hard-locale: simplify by removing hard-locale.m4 * m4/hard-locale.m4: Remove. * modules/hard-locale (Files): Remove m4/hard-locale.m4. (configure.ac): Do not call gl_HARD_LOCALE. gnulib-tool: limit line length for git send-email * gnulib-tool (func_import): Break actioncmd log line into multiple lines. 2018-07-16 Bruno Haible ffs: Ensure declaration on mingw. Reported by Daniel P. Berrangé in https://lists.gnu.org/archive/html/bug-gnulib/2018-07/msg00061.html. * m4/ffs.m4 (gl_FUNC_FFS): Check whether ffs() not only exists but is also declared. 2018-07-13 Paul Eggert regex-tests: add dependency * modules/regex-tests (Depends-on): Add gettext-h. This is needed given the recent changes to regex, which no longer depends on gettext-h. 2018-07-06 Paul Eggert regex: now in sync with glibc * config/srclist.txt: Gnulib and glibc regex code are synchronized again. 2018-07-05 Paul Eggert renameatu: rename from renameat2 It's looking like Glibc will add a renameat2 function that is incompatible with Gnulib renameat2; see: https://sourceware.org/ml/libc-alpha/2018-07/msg00064.html To help avoid future confusion, rename renameat2 to something else. Use the name 'renameatu', as the Gnulib function is close to the Glibc function. Perhaps someday there will also be a renameat2 Gnulib module, which mimicks the future glibc renameat2, but that can wait as nobody seems to need such a module now. * NEWS: Mention this. * lib/renameatu.c: Rename from lib/renameat2.c. * lib/renameatu.h: Rename from lib/renameat2.h. * modules/renameatu: Rename from modules/renameat2. * modules/renameatu-tests: Rename from modules/renameat2-tests. All uses of "renameat2" in identifiers or file name changed to "renameatu", except for two instances in lib/renameatu.c that deal with the Linux kernel's renameat2 syscall. 2018-07-04 Paul Eggert gnulib-tool: minor tweaks for --gnu-make * gnulib-tool: Do not allow --gnu-make in test modes, since they all require automake. (func_emit_lib_Makefile_am): Don’t emit automake comment if --gnu-make. regex: work around conditional-dependencies glitch * modules/regex (Depends-on): Add langinfo. Without this change, I had problems building an experimental version of GNU Emacs. The symptom of the bug was a message ‘./configure: line 12726: test: =: unary operator expected’. This was due to a line in gl_FUNC_NL_LANGINFO that invokes ‘test $HAVE_LANGINFO_CODESET = 1’ even though HAVE_LANGINFO_CODESET was unset. Although gl_FUNC_NL_LANGINFO has ‘AC_REQUIRE([gl_LANGINFO_H])’ and gl_LANGINFO_H always sets HAVE_LANGINFO_CODESET to 0 or 1, gnulib-tool with --conditional-dependencies sometimes arranges for the gl_FUNC_NL_LANGINFO code to be executed before the gl_LANGINFO_H code. Since the regex code includes it should be depending on the langinfo module anyway, and this happens to work around the bug, so install that as a workaround for now. To reproduce the original problem, run the following shell script on the version of Gnulib just before this patch was installed. rm -fr foo mkdir foo cat >foo/configure.ac <<'EOF' AC_INIT(GNU Emacs, 27.0.50, bug-gnu-emacs@gnu.org, , https://www.gnu.org/software/emacs/) gl_EARLY gl_INIT AC_OUTPUT EOF ./gnulib-tool --import --conditional-dependencies --gnu-make --dir foo regex ./gnulib-tool --copy build-aux/install-sh foo/install-sh ./gnulib-tool --copy build-aux/config.sub foo/config.sub ./gnulib-tool --copy build-aux/config.guess foo/config.guess cd foo aclocal -I m4 autoconf ./configure --with-included-regex 2018-07-01 Paul Eggert wchar: fix bug when checking for ‘inline’ I discovered this when looking into using the regex module with Emacs. * m4/wchar_h.m4 (gl_WCHAR_H_INLINE_OK): Fix bug introduced in 2016-08-17T23:09:38Z!skunk@iSKUNK.ORG; the code compiled conftest1.c and conftest2.c but these files were not created. As far as I can see, this check never worked and nobody reported it until now, which is a bit worrisome. 2018-06-30 Jim Meyering bootstrap: s/--option val/--option=val/ * build-aux/bootstrap (gnulib_tool_options): Change the spelling of "--option val" pairs to "--option=val", for aesthetics, and also so that this file no longer triggers a common help2man syntax-check warning when copied into projects like grep, gzip, etc. 2018-07-01 Paul Eggert manywarnings: omit -Wswitch-default This should make things more consistent, as we already ignore -Wswitch-enum. Problem reported by Reuben Thomas; see: https://lists.gnu.org/r/bug-gnulib/2018-05/msg00179.html * build-aux/g++-warning.spec, build-aux/gcc-warning.spec: Add -Wswitch-default. * m4/manywarnings-c++.m4 (gl_MANYWARN_ALL_GCC_CXX_IMPL): * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Remove -Wswitch-default. regex: revert most trimming Problems reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2018-07/msg00001.html * modules/regex (Depends-on): Add lock, memcmp, memmove, and wctype back in. lock because regex users shouldn’t need to know that regex needs locking, and the rest because gnulib-tool should ordinarily ignore them anyway. 2018-06-30 Paul Eggert regex: trim module dependencies * modules/regex (Depends-on): Remove gettext-h and lock, since the regex code should work OK without these modules, and Emacs uses it that way. Also remove memcmp, memmove, and wctype, as these modules are obsolete and should not be needed any more. 2018-06-29 Paul Eggert regex: glibc does not use intprops.h Maybe we can talk glibc into using intprops.h someday, but now doesn’t seem to be a good time. * lib/regcomp.c (TYPE_SIGNED): Remove; regex_internal.h now defines. * lib/regex_internal.h [_LIBC]: Do not include intprops.h. (TYPE_SIGNED, INT_ADD_WRAPV): New macros. 2018-06-28 Paul Eggert regex: port to recently proposed glibc regex merge This patch is inspired by Adhemerval Zanella's recent proposal https://www.sourceware.org/ml/libc-alpha/2018-06/msg00905.html to merge glibc and Gnulib regex. It aims to simplify the merge on the glibc side, without keeping Gnulib portable. * lib/regex.h: Fix a problem with glibc installed-header checking, as follows: (_Restrict_): Prefer __restrict if defined or if GCC 2.95 or later. (_Restrict_arr_): Prefer __restrict_arr if defined, otherwise prefer _Restrict_ if C99 or GCC 3.1 or later (but not C++). * lib/regex_internal.c (re_string_realloc_buffers, build_wcs_buffer) (build_wcs_upper_buffer, build_upper_buffer) (re_string_translate_buffer, re_string_context_at): Move decls here from lib/regex_internal.h, for glibc internal tests. (build_wcs_upper_buffer): Use __wcrtomb, not wcrtomb, fixing glibc BZ #18496. * lib/regex_internal.h (lock_fini) [_LIBC]: Cast to 0 to pacify -Wunused-value. (bitset_set, bitset_clear, bitset_contain, bitset_empty) (bitset_set_all, bitset_copy, bitset_not, bitset_merge) (bitset_mask): Now static inline, and without any __attribute__ ((unused)) decoration, for glibc internal tests. 2018-06-25 Bruno Haible threadlib: Fix LIBMULTITHREAD on platforms where --as-needed is enabled. Reported by Erik Auerswald in . * m4/threadlib.m4 (gl_THREADLIB_BODY): Check whether the linker supports --as-needed/--no-as-needed and --push-state/--pop-state. When defining USE_POSIX_THREADS_WEAK or USE_SOLARIS_THREADS_WEAK or USE_PTH_THREADS_WEAK, define LIBMULTITHREAD in such a way that -lpthread / -lthread / -lpth does not get optimized away by a preceding --as-needed option. 2018-06-25 Bruno Haible Continue to use spaces for indentation, not tabs. * MODULES.html.sh: Untabify. * doc/regex.texi: Likewise. * lib/acl-internal.c: Likewise. * lib/dfa.c: Likewise. * lib/exclude.c: Likewise. * lib/exclude.h: Likewise. * lib/get-permissions.c: Likewise. * lib/gettimeofday.c: Likewise. * lib/parse-datetime.y: Likewise. * lib/pselect.c: Likewise. * lib/set-permissions.c: Likewise. * lib/time.in.h: Likewise. * m4/canonicalize.m4: Likewise. * m4/gc.m4: Likewise. * m4/gnulib-common.m4: Likewise. * m4/pthread_sigmask.m4: Likewise. * m4/vararrays.m4: Likewise. * tests/test-digest.h: Likewise. * tests/test-fcntl-h.c: Likewise. * tests/test-timespec.c: Likewise. * tests/uniwbrk/test-uc-wordbreaks.c: Likewise. 2018-06-25 Bruno Haible manywarnings: Don't enable -Wjump-misses-init warnings by default. * build-aux/gcc-warning.spec: Add -Wjump-misses-init. * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC(C)): Remove -Wjump-misses-init. 2018-06-25 Jim Meyering acl-internal.h: remove _GL_ATTRIBUTE_CONST on void function * lib/acl-internal.h (free_permission_context): Remove that attribute directive. Otherwise, it would provoke this from GCC 9: lib/acl-internal.h:300:3: error: 'const' attribute on function \ returning 'void' [-Werror=attributes] 2018-06-24 Jim Meyering parse-datetime: accommodate gcc-4.8.5 Bruno Haible reported the build failure in https://lists.gnu.org/r/bug-gnulib/2018-06/msg00066.html * lib/parse-datetime.y (parse_datetime2): Remove leading "static" on declaration of new local. 2018-06-24 Bruno Haible af_alg: Fail in continuable manner on Linux/powerpc64le. Reported by Assaf Gordon in . * lib/af_alg.c (afalg_stream): On non-seekable streams, try a single- byte send() as the first round. 2018-06-24 Bruno Haible af_alg: Fix state of stream after sendfile() succeeds. * lib/af_alg.c (afalg_stream): Invoke fflush and lseek, to ensure that the stream is correctly positioned afterwards. * modules/crypto/af_alg (Depends-on): Add fflush. * tests/test-digest.h (test_digest_on_files): Verify that after the operation the stream is positioned at end of file. 2018-06-24 Jim Meyering canon-host: take GCC9's advice rather than ignoring warning Pádraig Brady suggested not to ignore this GCC9 advice. * lib/canon-host.c: Undo preceding change. * lib/canon-host.h: Instead, declare with _GL_ATTRIBUTE_MALLOC. parse-datetime.y: avoid spurious GCC 9 warning * lib/parse-datetime.y (parse_datetime2): Save RELATIVE_TIME_0 into a function local prior to the first "goto fail". The prior use would evoke this: parse-datetime.y: In function 'parse_datetime2': parse-datetime.y:1791:19: error: jump skips variable initialization \ [-Werror=jump-misses-init] parse-datetime.y:2385:2: note: label 'fail' defined here parse-datetime.y:188:43: note: '({anonymous})' declared here parse-datetime.y:1841:12: note: in expansion of macro 'RELATIVE_TIME_0' canon-host.c: avoid spurious GCC 9 warning * lib/canon-host.c: Suppress GCC9's -Wsuggest-attribute=malloc. manywarnings: accommodate GCC 9.0-pre: remove -Wchkp and -Wabi * build-aux/gcc-warning.spec: Add them here, each with an explanation. * m4/manywarnings.m4: Remove them. Otherwise, building coreutils, I would see this: cc1: error: deprecated command line option '-Wchkp' [-Werror] cc1: error: -Wabi won't warn about anything [-Werror=abi] cc1: note: -Wabi warns about differences from the most up-to-date ABI,\ which is also used by default cc1: note: use e.g. -Wabi=11 to warn about changes from GCC 7 2018-06-24 Bruno Haible af_alg tests: Add another test. * tests/test-digest.h (test_digest_on_files): Also check a large file with a skipped header. * tests/test-md5.c: Include macros.h. * tests/test-sha1.c: Likewise. * tests/test-sha256.c: Likewise. * tests/test-sha512.c: Likewise. * modules/crypto/md5-tests (Files): Add tests/macros.h. * modules/crypto/sha1-tests (Files): Likewise. * modules/crypto/sha256-tests (Files): Likewise. * modules/crypto/sha512-tests (Files): Likewise. 2018-06-24 Pádraig Brady maint: clarify comments about sticky EOF * lib/af_alg.c: Be more direct that we can't assume stickiness of EOF for portability reasons. * lib/md5.c: Clarify that this isn't just a glibc issue. * lib/sha1.c: Likewise. * lib/sha256.c: Likewise. * lib/sha512.c: Likewise. 2018-06-24 Bruno Haible af_alg: Comment and style improvements. * lib/af_alg.c (alg_socket): Use 'size_t' as index into a string. (afalg_buffer, afalg_stream): Improve comments. 2018-06-24 Pádraig Brady af_alg: disable kernel hash functions by default All the kernel routines were seen to be significantly slower with these relatively recent components on an i3-2310M system: kernel-4.10.6-200.fc25.x86_64 openssl-1.0.2m-1.fc25.x86_64 sha1 was nearly twice as slow in the kernel for example. Further considerations why this should not be the default, at: https://lists.gnu.org/r/coreutils/2018-06/msg00034.html * m4/af_alg.m4: Require --with-linux-crypto to enable. * m4/gl-openssl.m4: Tweak accordingly. 2018-06-24 Pádraig Brady af_alg: avoid hangs when reading from streams * lib/af_alg.c (afalg_stream): Don't assume EOF is sticky, and thus avoid doing a fread() when feof() is set. * lib/md5.c: Ensure feof() is called before fread(). * lib/sha1.c: Likewise. * lib/sha256.c: Likewise. * lib/sha512.c: Likewise. 2018-06-24 Pádraig Brady af_alg: fix error handling when hash not returned * lib/af_alg.c (afalg_stream): Handle the case where we've successfully written data to the kernel in the read/write loop, but the kernel doesn't respond with the hash. 2018-06-24 Paul Eggert libc-config: merge from glibc * lib/cdefs.h (__inline, __restrict): Copy from current glibc. This fixes glibc bug 17721, which Gnulib had already fixed in a different way. (__nonnull): Lessen the distance from glibc by using the glibc definition inside an ‘#ifndef __nonnull’. (__attribute_nonstring__): New macro, copied from current glibc. * lib/libc-config.h (__attribute_nonstring__): New undef. (__restrict): Remove; workaround no longer needed. Keep the __inline workaround, though, as it uses HAVE___INLINE to support more compilers than the glibc __inline can. 2018-06-24 Bruno Haible mbrtowc, wcwidth: Fix MT-safety bug (regression from 2018-06-23). * lib/mbrtowc.c (enc_t): New enum type. (locale_enc, locale_enc_cached): New functions. (mbrtowc): Eliminate static variables. Use locale_enc_cached instead. * lib/wcwidth.c (is_locale_utf8, is_locale_utf8_cached): New functions. (wcwidth): Eliminate static variables. Use is_locale_utf8_cached instead. * m4/mbrtowc.m4 (gl_PREREQ_MBRTOWC): Require AC_C_INLINE. * m4/wcwidth.m4 (gl_PREREQ_WCWIDTH): New macro. * modules/wcwidth (configure.ac): Invoke it. 2018-06-24 Bruno Haible wchar-single: Fix test failure in wcwidth tests. * tests/test-wcwidth.c (main): If the wchar-single module is present, skip the tests in the C locale. 2018-06-23 Pádraig Brady crypto: mention --without-linux-crypto in --with-openssl --help * m4/gl-openssl.m4 (gl_CRYPTO_CHECK): Mention that linux crypto routines take precedence in --with-openssl help output. 2018-06-23 Pádraig Brady wchar-single: a new module to enable optimizations in wchar replacements * lib/mbrtowc.c (mbrtowc): Only check locale_charset() once if GNULIB_WCHAR_SINGLE is enabled. * lib/wcwidth.c (wcwidth): Likewise. 2018-06-23 Bruno Haible libc-config: Fix conflict with FreeBSD include files. * lib/cdefs.h (__nonnull): Remove definition. * lib/libc-config.h (__nonnull): Remove undefinition. 2018-06-21 Paul Eggert random_r: do not crash if state is unaligned Problem reported by Bruce Korb in: https://lists.gnu.org/r/bug-gnulib/2018-06/msg00030.html I reproduced the crash on 32-bit sparc with Oracle Studio 12.6 with 'cc -O2 -xmemalign=8s'. * lib/random_r.c: Include string.h, for memcpy. (get_int32, set_int32): New functions. (__srandom_r, __initstate_r, __setstate_r, __random_r): Use them to avoid assumption that state pointer is aligned. (__random_r): Avoid integer overflow if INT_MAX == UINT32_MAX. * tests/test-random_r.c (test_failed): New function. (main): Use it, to test for alignment bugs. random_r: omit unnecessary include * lib/random_r.c: Do not include limits.h. random, random_r: merge from glibc * lib/random.c, lib/random_r.c: Include libc-config.h if !_LIBC, not config.h unilaterally. * lib/random.c: Do not include stdint.h or time.h; not needed. Include libc-lock.h if _LIBC, and define substitute macros otherwise. (unsafe_state): Rename from generator. All uses changed. Use C99-style initializers. (__random, __srandom, __initstate, __setstate): Rename from non-underscored version, but define it to non-underscored version on Gnulib. Add a lock. * lib/random_r.c (__srandom_r, __initstate_r, __setstate_r, __random_r): Likewise. Do not include ; not needed since stdlib.h defines int32_t. (weak_alias, __set_errno) [!_LIBC]: Remove; now done by libc-config. (__srandom_r): Use int32_t instead of long int where int32_t will do. (__random_r): Use uint32 to fix glibc bug 17343. * modules/random, modules/random_r (Depends-on): Add libc-config. Depend on stdint only if $HAVE_RANDOM = 0. 2018-06-19 Jim Meyering README-release: also run any check-very-expensive tests * top/README-release: Adjust instructions so they run the check-very-expensive tests when there is such a target. 2018-06-18 Bruno Haible pthread_rwlock_rdlock: Add comments regarding glibc behaviour. * m4/pthread_rwlock_rdlock.m4: Add comment. * doc/posix-functions/pthread_rwlock_rdlock.texi: Mention that rwlocks are reader-preferring in glibc. * doc/posix-functions/pthread_rwlock_tryrdlock.texi: Likwise. * doc/posix-functions/pthread_rwlock_timedrdlock.texi: Likewise. 2018-06-17 Paul Eggert crypto: use byteswap * lib/md4.c, lib/md5.c, lib/sha1.c, lib/sha256.c, lib/sha512.c: * lib/sm3.c: Include . (SWAP): Use its macros rather than reinventing the wheel. * modules/crypto/md4, modules/crypto/md5-buffer: * modules/crypto/sha1-buffer, modules/crypto/sha256-buffer: * modules/crypto/sha512-buffer, modules/crypto/sm3: (Depends-on): Add byteswap. 2018-06-17 Pádraig Brady gendocs.sh: fix support for legacy --texi2html * build-aux/gendocs.sh: Restrict use of TOP_NODE_UP_URL to the default makeinfo invocation. Reported by Bruce Korb 2018-06-17 Bruno Haible gettext po infrastructure: Update from current gettext git. Reported by Akim Demaille . * build-aux/po/Makefile.in.in: Update from current gettext git. * build-aux/po/remove-potcdate.sin: Likewise. * config/srclist.txt: Temporarily disable sync for these files. 2018-06-17 Bruno Haible getloadavg: Return 0 on Windows without Cygwin. * lib/getloadavg.c: Don't assume that the symbol WINDOWS32 is defined. 2018-06-17 Paul Smith getloadavg: Allow building on Windows without Cygwin * lib/getloadavg.c: Reinstate ifdef for HAVE_UNISTD_H. * m4/getloadavg.m4: Check for unistd.h. 2018-06-03 Paul Eggert Port crypto/af_alg to GCC 4.8.4 Problem reported by Peter Simons in: https://lists.gnu.org/r/bug-gnulib/2018-06/msg00002.html * modules/crypto/af_alg (Depends-on): Add c99 if USE_AF_ALG. 2018-05-27 Colin Watson bootstrap: document source fetching in --help * build-aux/bootstrap (usage): Document how Gnulib sources are fetched. 2018-04-09 Colin Watson bootstrap: allow non-submodule control of gnulib * build-aux/bootstrap: Honour GNULIB_URL and GNULIB_REVISION in bootstrap.conf when fetching gnulib using "git clone" or via GNULIB_SRCDIR. 2018-05-21 Paul Eggert crypto: omit stream ops Emacs doesn’t need * lib/md5.c (md5_stream): * lib/sha1.c (sha1_stream): * lib/sha256.c (shaxxx_stream, sha256_stream, sha224_stream): * lib/sha512.c (shaxxx_stream, sha512_stream, sha384_stream): Compile stream functions only if GL_COMPILE_CRYPTO_STREAM is defined. Emacs needs this, as it does not use the stream operations and doesn’t need all the af_alg stuff we’ve recently added. Perhaps a similar change is needed to the other crypto modules, but this patch changes only those needed for Emacs. * modules/crypto/md5-buffer, modules/crypto/sha1-buffer: * modules/crypto/sha256-buffer, modules/crypto/sha512-buffer: New modules, used by Emacs. * modules/crypto/md5, modules/crypto/sha1, modules/crypto/sha256: * modules/crypto/sha512: Rewrite to depend on the new modules. 2018-05-20 Pádraig Brady fts: avoid a memory leak edge case * lib/fts.c (fts_open): Set an appropriate fts_level so that an immediate fts_close() will free the allocation. * tests/test-fts.c (fts_dealloc): Add a test case which will trigger under valgrind or address sanitizer. Fixes https://bugs.gnu.org/31439 2018-05-20 Bruno Haible wcwidth tests: Fix link error. * modules/wcwidth-tests (Makefile.am): Link test-wcwidth against $(LIBUNISTRING). 2018-05-20 Bruno Haible regex: Fix "error: possibly undefined macro: gl_GLIBC21". * modules/regex (Files): Add m4/glibc21.m4. 2018-05-20 Bruno Haible localcharset: Optimize. * lib/localcharset.c (alias_table): Comment out no-op mappings for platforms where these don't matter. This reduces the table size, which in turn reduces the lookup time. 2018-05-19 Bruno Haible localcharset: Map the locale encodings found in newer OSes. * lib/localcharset.c (alias_table): Add mapping for locale encodings found in FreeBSD 11, NetBSD 7, Solaris 10, Openindiana, HP-UX 11.31, IRIX 6.5, Minix 3.3. * lib/localcharset.h: Update comments accordingly. Also for Cygwin 2.9. 2018-05-19 Bruno Haible localcharset: Move mapping tables into the code. Use a binary search. * lib/localcharset.h: Document the GNU canonical names for character encodings here. * lib/localcharset.c: Don't include , , relocatable.h, configmake.h. (O_NOFOLLOW, ISSLASH, DIRECTORY_SEPARATOR, getc, volatile): Remove macros. (charset_aliases): Remove variable. (get_charset_aliases): Remove function. (struct table_entry): New type. (alias_table, locale_table): New constants. (locale_charset): Use the alias_table or locale_table to get the canonicalized encoding name. * lib/config.charset: Remove file. * lib/ref-add.sin: Remove file. * lib/ref-del.sin: Remove file. * m4/localcharset.m4 (gl_LOCALCHARSET): Don't require gl_FCNTL_O_FLAGS, AC_CANONICAL_HOST, gl_GLIBC21. Don't check for getc_unlocked. * modules/localcharset (Notice): Remove. (Files): Remove config.charset, ref-add.sin, ref-del.sin, fcntl-o.m4, glibc21.m4. (Depends-on): Remove configmake. (configure.ac): Define LOCALCHARSET_TESTS_ENVIRONMENT to empty. (Makefile.am): Simplify. * build-aux/prefix-gnulib-mk: Remove special code for the removed files. 2018-05-19 Bruno Haible localcharset: Add a manual test. * tests/test-localcharset.c: New file. * modules/localcharset-tests: New file. 2018-05-19 Bruno Haible localcharset: Remove support for obsolete platforms. * lib/config.charset: Remove support for Linux/libc5, glibc-2.0.x, and Mac OS X 10.2. Comment out dubious entry for Solaris. 2018-05-19 Jim Meyering gnupload: adjust comment * build-aux/gnupload: Add FIXME-2020 comment, to make it slightly more likely we'll remove the just-added code in a year or two. 2018-05-19 Bruno Haible gnupload: Fix "gpg-agent is not available in this session" error. * build-aux/gnupload (GPG): Pick the right GNUPG executable to use. 2018-05-16 Paul Eggert crypto/af_alg: fix --help * m4/af_alg.m4: Avoid spurious newline in --help output. 2018-05-13 Bruno Haible nl_langinfo: Fix compilation error on Android. * lib/nl_langinfo.c (nl_langinfo): Define values for the items GROUPING, INT_CURR_SYMBOL, etc. only if these items are defined. 2018-05-13 Bruno Haible truncate: Fix compilation error on Android. * m4/truncate.m4 (gl_FUNC_TRUNCATE): Test also whether 'truncate' is declared. Set HAVE_DECL_TRUNCATE, not HAVE_TRUNCATE. * lib/unistd.in.h (truncate): Test HAVE_DECL_TRUNCATE, not HAVE_TRUNCATE. * modules/truncate: Likewise. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_DECL_TRUNCATE, not HAVE_TRUNCATE. * modules/unistd (Makefile.am): Substitute HAVE_DECL_TRUNCATE, not HAVE_TRUNCATE. * doc/posix-functions/truncate.texi: Mention the issue. 2018-05-13 Bruno Haible pthread: Fix compilation error on Android. * lib/pthread.in.h: Use _GL_ALREADY_INCLUDING_PTHREAD_H to shortcut recursive inclusion of this file. 2018-05-13 Bruno Haible posix_spawn: Fix compilation error on Android. * lib/spawn.in.h (posix_spawnattr_t): Consider also the case HAVE_POSIX_SPAWNATTR_T = 1 && HAVE_POSIX_SPAWN = 0. (posix_spawn_file_actions_t): Consider also the case HAVE_POSIX_SPAWN_FILE_ACTIONS_T = 1 && HAVE_POSIX_SPAWN = 0. 2018-05-13 Bruno Haible tsearch: Move from K&R C to ANSI C. * lib/tsearch.c (tfind): Convert definition to ANSI C. 2018-05-13 Bruno Haible tsearch: Fix compilation error on Android. * lib/search.in.h (twalk): Declare when HAVE_TWALK, not HAVE_TSEARCH, is 0. (GNULIB_defined_tsearch, GNULIB_defined_twalk): New macros. * lib/tsearch.c (tsearch, tfind, tdelete): Define only if GNULIB_defined_tsearch is true. (twalk): Define only if GNULIB_defined_twalk is true. * modules/tsearch (configure.ac): Compile tsearch.c also if HAVE_TWALK is 0. * m4/tsearch.m4 (gl_FUNC_TSEARCH): Set HAVE_TWALK. * m4/search_h.m4 (gl_SEARCH_H_DEFAULTS): Initialize HAVE_TWALK. * modules/search (Makefile.am): Substitute HAVE_TWALK. 2018-05-13 Bruno Haible imaxdiv: Fix compilation error on Android. * m4/imaxdiv.m4 (gl_FUNC_IMAXDIV): Set HAVE_IMAXDIV_T to 0 if imaxdiv_t is not defined. * lib/inttypes.in.h (imaxdiv_t): Define if HAVE_IMAXDIV_T, not HAVE_DECL_IMAXDIV, is 0. * m4/inttypes.m4 (gl_INTTYPES_H_DEFAULTS): Initialize HAVE_IMAXDIV_T. * modules/inttypes-incomplete (Makefile.am): Substitute HAVE_IMAXDIV_T. 2018-05-13 Bruno Haible Support selective inclusion mechanism of recent mingw.org header files. Reported by Eli Zaretskii . * lib/sys_types.in.h: On mingw, when __need_off_t, __need___off64_t, __need_ssize_t, or __need_time_t is defined, just include the system's . * lib/locale.in.h: On mingw, when __need_locale_t is defined, just include the system's . 2018-05-13 Bruno Haible Avoid compilation error due to 'mmap' on Android. * lib/vma-iter.c (_FILE_OFFSET_BITS): Undefine on Android. * lib/get-rusage-as.c (_FILE_OFFSET_BITS): Likewise. * tests/zerosize-ptr.h (_FILE_OFFSET_BITS, __USE_FILE_OFFSET64): Undefine on Android. 2018-05-13 Bruno Haible Add cross-compilation guesses for Linux systems without glibc. * m4/chown.m4 (AC_FUNC_CHOWN): Add cross-compilation guess for Linux. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Likewise. * m4/link.m4 (gl_FUNC_LINK): Likewise. * m4/linkat.m4 (gl_FUNC_LINKAT): Likewise. * m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Likewise. * m4/mkdir.m4 (gl_FUNC_MKDIR): Likewise. * m4/mkfifo.m4 (gl_FUNC_MKFIFO): Likewise. * m4/mknod.m4 (gl_FUNC_MKNOD): Likewise. * m4/pselect.m4 (gl_FUNC_PSELECT): Likewise. * m4/readlink.m4 (gl_FUNC_READLINK): Likewise. * m4/rename.m4 (gl_FUNC_RENAME): Likewise. * m4/rmdir.m4 (gl_FUNC_RMDIR): Likewise. * m4/select.m4 (gl_FUNC_SELECT): Likewise. * m4/stat.m4 (gl_FUNC_STAT): Likewise. * m4/symlink.m4 (gl_FUNC_SYMLINK): Likewise. * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Likewise. * m4/unlink.m4 (gl_FUNC_UNLINK): Likewise. * m4/utimens.m4 (gl_UTIMENS): Likewise. 2018-05-13 Bruno Haible getpagesize: Fix compilation error on Android. * m4/getpagesize.m4 (gl_CHECK_FUNC_GETPAGESIZE): New macro. (gl_FUNC_GETPAGESIZE): Invoke it instead of AC_CHECK_FUNC. * m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Don't invoke AC_CHECK_FUNC. Instead, invoke gl_CHECK_FUNC_GETPAGESIZE and define HAVE_GETPAGESIZE accordingly. * modules/getcwd (Files): Add m4/getpagesize.m4. 2018-05-13 Bruno Haible tcgetsid: Fix compilation error on Android. * m4/tcgetsid.m4 (gl_FUNC_TCGETSID): Use AC_LINK_IFELSE instead of AC_CHECK_FUNC. 2018-05-13 Bruno Haible getpass: Fix configure test for Android. * m4/getpass.m4 (gl_PREREQ_GETPASS): Use AC_LINK_IFELSE instead of AC_CHECK_FUNC. 2018-05-13 Bruno Haible ffs: Fix compilation error on Android. * m4/ffs.m4 (gl_FUNC_FFS): Use AC_LINK_IFELSE instead of AC_CHECK_FUNC. 2018-05-13 Bruno Haible mkfifo: Fix compilation error on Android. * m4/mkfifo.m4 (gl_FUNC_MKFIFO): Use AC_LINK_IFELSE instead of AC_CHECK_FUNC. 2018-05-13 Bruno Haible c-strtod: Fix configure test for Android. * m4/c-strtod.m4 (gl_C_STRTOD): Use AC_LINK_IFELSE instead of AC_CHECK_FUNC. 2018-05-13 Bruno Haible random: Fix compilation error on Android. * m4/random.m4 (gl_FUNC_RANDOM): Use AC_LINK_IFELSE instead of AC_CHECK_FUNC. 2018-05-13 Bruno Haible grantpt: Fix compilation error on Android. * m4/grantpt.m4 (gl_FUNC_GRANTPT): Use AC_LINK_IFELSE instead of AC_CHECK_FUNC. 2018-05-13 Bruno Haible stdioext: Fix compilation errors with newer Android headers. * lib/stdio-impl.h (fp_, fp_ub): Define differently for Android. (__SLBF, __SNBF, __SRD, __SWR, __SRW, __SEOF, __SERR, __SOFF): Define fallbacks for Android. * lib/fpending.c: Update comments. * lib/fpurge.c: Likewise. * lib/freadable.h: Likewise. * lib/freadable.c: Likewise. * lib/freadahead.c: Likewise. * lib/freading.h: Likewise. * lib/freadptr.c: Likewise. * lib/fseterr.c: Likewise. * lib/fwritable.h: Likewise. * lib/fwritable.c: Likewise. * lib/fwriting.h: Likewise. * lib/fwriting.c: Likewise. 2018-05-13 Bruno Haible doc: Add info about Android versions 2.0 to 8.1. * doc/**/*.texi: Add info about functions in all released versions of Bionic. 2018-05-12 Bruno Haible fseeko: On mingw, don't use the hidden function _fseeki64. Reported by Eli Zaretskii . * m4/fseeko.m4 (gl_PREREQ_FSEEKO): Test whether _fseeki64 is declared. * lib/fseeko.c (fseeko): Use _fseeki64 only if it is declared. 2018-05-12 Bruno Haible glob: Choose 'dirent_type' in a way that works better on mingw. Reported and suggested by Eli Zaretskii . * lib/glob.c (dirent_type): Define as uint_fast32_t. 2018-05-12 Bruno Haible execute, spawn-pipe: Avoid warning about redefining 'close'. Reported by Eli Zaretskii . * lib/execute.c: Undefine 'close' before redefining it. * lib/spawn-pipe.c: Likewise. 2018-05-12 Bruno Haible nanosleep: Avoid test failure on mingw when it has nanosleep. Reported by Eli Zaretskii . * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Check whether alarm() exists. If it does not exist, use a simpler test program that does not call alarm(). 2018-05-10 Bruno Haible lock, cond, thread, tls: Use a different symbol as libpthread witness. Reported by Devin Hussey . Based on a patch by Paul Eggert. * lib/glthread/lock.h (pthread_in_use): Use 'pthread_mutexattr_gettype' as witness of libpthread. * lib/glthread/cond.h (pthread_in_use): Likewise. * lib/glthread/thread.h (pthread_in_use): Likewise. * lib/glthread/tls.h (pthread_in_use): Likewise. 2018-05-10 Bruno Haible cond tests: Fix compilation error on Solaris. * tests/test-cond.c: Include before defining 'yield' as a macro. 2018-05-10 Bruno Haible doc: Add partial info about Android 4.3. * doc/*-functions/*.texi: Add info about functions that were added to Bionic between Android 4.3 and Android 9.0. 2018-05-10 Bruno Haible doc: Add info about Android 9.0. * doc/**/*.texi: Add info about functions and headers in Bionic from Android 9.0. 2018-05-09 Paul Eggert af_alg: fix my typo in afalg_buffer * lib/af_alg.c (afalg_buffer): Fix typo I recently introduced. (afalg_stream): Simplify and avoid the need for a runtime test at the end. af_alg: recover better from crypto failures * lib/af_alg.c (afalg_stream): Recover from crypto failures if the input stream is seekable, by repositioning the stream back to where it was, possibly by just calling sendfile with an offset arg. This lets us return -EAFNOSUPPORT instead of -EIO in some cases, which lets our callers try again with user-mode code. * modules/crypto/af_alg (Depends-on): Depend on fseeko and ftello instead of on fflush and lseek. af_alg: distiguish I/O errors better * lib/af_alg.c (afalg_buffer, afalg_stream): Return -EAFNOSUPPORT, not -EIO, if it’s OK for the caller to try again with user-mode code. (afalg_stream) [!_WIN32 || __CYGWIN__]: Return -EIO (not possibly some other error number) if fflush fails, as the caller should not try again that case. af_alg: avoid gotos * lib/af_alg.c (afalg_buffer, afalg_stream): Rewrite to avoid gotos, as they were a source of unreliability and made the code a bit harder to follow. af_alg: don’t leak file descriptors into children * lib/af_alg.c (alg_socket): Use SOCK_CLOEXEC when creating sockets. This code should be compiled only on recent GNU/Linux platforms so we shouldn’t have to also depend on the accept4 module. af_alg: coalesce socket creation * lib/af_alg.c (alg_socket): New function. (afalg_buffer, afalg_stream): Use it. This avoids some code duplication and gotos. af_alg: fix file descriptor leak * lib/af_alg.c (afalg_stream): Close leak. af_alg: Pacify --enable-gcc-warnings on GCC 8 * lib/af_alg.c (afalg_buffer, afalg_stream): Reorder local decls and checking to pacify gcc -Wjump-misses-init on GCC 8. 2018-05-07 Paul Eggert af_alg: Pacify --enable-gcc-warnings Problem reported by Assaf Gordon in: https://lists.gnu.org/r/bug-gnulib/2018-05/msg00041.html * lib/af_alg.c (afalg_buffer): Move local decls to pacify gcc -Wjump-misses-init. * lib/sha512.c (shaxxx_stream): Now static. 2018-05-06 Bruno Haible af_alg: Add ability to use Linux kernel crypto API on data in memory. * lib/af_alg.h (afalg_buffer): New declaration. * lib/af_alg.c (afalg_buffer): New function. 2018-05-06 Bruno Haible af_alg: Avoid warnings. * lib/af_alg.h (afalg_stream): Mark fallback declaration as inline. * m4/af_alg.m4 (gl_AF_ALG): Require AC_C_INLINE. 2018-05-06 Bruno Haible crypto/{md5,sha1,sha256,sha512} tests: Add benchmarks. * tests/bench-digest.h: New file. * tests/bench-md5.c: New file. * tests/bench-sha1.c: New file. * tests/bench-sha224.c: New file. * tests/bench-sha256.c: New file. * tests/bench-sha384.c: New file. * tests/bench-sha512.c: New file. * modules/crypto/md5-tests (Files): Add tests/bench-md5.c, tests/bench-digest.h. (Depends-on): Add getrusage, gettimeofday. (Makefile.am): Add variables to build bench-md5. * modules/crypto/sha1-tests (Files): Add tests/bench-sha1.c, tests/bench-digest.h. (Depends-on): Add getrusage, gettimeofday. (Makefile.am): Add variables to build bench-sha1. * modules/crypto/sha256-tests (Files): Add tests/bench-sha224.c, tests/bench-sha256.c, tests/bench-digest.h. (Depends-on): Add getrusage, gettimeofday. (Makefile.am): Add variables to build bench-sha224, bench-sha256. * modules/crypto/sha512-tests (Files): Add tests/bench-sha384.c, tests/bench-sha512.c, tests/bench-digest.h. (Depends-on): Add getrusage, gettimeofday. (Makefile.am): Add variables to build bench-sha384, bench-sha512. 2018-05-06 Bruno Haible af_alg: Fix a resource leak. * lib/af_alg.c (afalg_stream): Close socket before returning -EINVAL. New local variable 'result'. 2018-05-06 Bruno Haible af_alg: Fix bug with streams that are not at position 0. * lib/af_alg.c (afalg_stream): Before sendfile, invoke fflush. Don't assume that the stream is positioned at position 0. * lib/af_alg.h (afalg_stream): Mention restriction regarding the state of the stream. * lib/md5.h (md5_stream): Likewise. * lib/sha1.h (sha1_stream): Likewise. * lib/sha256.h (sha256_stream, sha224_stream): Likewise. * lib/sha512.h (sha512_stream, sha384_stream): Likewise. * modules/crypto/af_alg (Depends-on): Add fflush, lseek. crypto/{md5,sha1,sha256,sha512} tests: Enhance test. * tests/test-digest.h (test_digest_on_files): Add a test with a FILE stream that is not positioned at the beginning. 2018-05-06 Bruno Haible af_alg: Add configure option to enable/disable use of Linux crypto API. Suggested by Assaf Gordon . * m4/af_alg.m4 (gl_AF_ALG): Add AC_ARG_WITH invocation. Define C macro USE_LINUX_CRYPTO_API. * lib/af_alg.h: Test USE_LINUX_CRYPTO_API, not HAVE_LINUX_IF_ALG_H. * lib/af_alg.c: Likewise. 2018-05-06 Bruno Haible Followup to 'af_alg: New module.'. * modules/crypto/md5 (Depends-on): Remove sys_socket, sys_stat. * modules/crypto/sha1 (Depends-on): Likewise. * modules/crypto/sha256 (Depends-on): Likewise. * modules/crypto/sha512 (Depends-on): Likewise. 2018-05-05 Paul Eggert crypto/{md5,sha1,sha256,sha512}: simplify * lib/md5.c (md5_stream): * lib/sha1.c (sha1_stream): * lib/sha256.c (shaxxx_stream): Simplify, partly by assuming C99. * lib/sha256.c (shaxxx_stream): New function, which implements both sha256 and sha224. Simplify, partly by assuming C99. (sha256_stream, sha224_stream): Use it to avoid code duplication, removing a FIXME. * lib/sha512.c (shaxxx_stream, sha512_stream, sha384_stream): Likewise. af_alg: Improve comments. * lib/af_alg.h: Use imperatives and tighten up wording. 2018-05-05 Bruno Haible af_alg: Improve comments. * lib/af_alg.c (afalg_stream): Improve comment about kernel bug. 2018-05-05 Bruno Haible af_alg: New module. * lib/af_alg.h: Test HAVE_* macro through '#if', not '#ifdef'. * lib/af_alg.c: Include "af_alg.h" before the other header files. * lib/md5.c: Include "af_alg.h" unconditionally. (md5_stream): Invoke afalg_stream unconditionally. * lib/sha1.c: Include "af_alg.h" unconditionally. (sha1_stream): Invoke afalg_stream unconditionally. * lib/sha256.c: Include "af_alg.h" unconditionally. (sha256_stream, sha224_stream): Invoke afalg_stream unconditionally. * lib/sha512.c: Include "af_alg.h" unconditionally. (sha512_stream, sha384_stream): Invoke afalg_stream unconditionally. * m4/af_alg.m4: Renamed from m4/linux-if-alg.m4. (gl_AF_ALG): Renamed from gl_LINUX_IF_ALG_H. * modules/crypto/af_alg: New file. * modules/crypto/md5 (Files): Remove files that are now in the 'crypto/af_alg' module. (Depends-on): Add crypto/af_alg. (configure.ac): Remove gl_LINUX_IF_ALG_H invocation. (Makefile.am): Don't mention af_alg.c here. * modules/crypto/sha1 (Files): Remove files that are now in the 'crypto/af_alg' module. (Depends-on): Add crypto/af_alg. (configure.ac): Remove gl_LINUX_IF_ALG_H invocation. (Makefile.am): Don't mention af_alg.c here. * modules/crypto/sha256 (Files): Remove files that are now in the 'crypto/af_alg' module. (Depends-on): Add crypto/af_alg. (configure.ac): Remove gl_LINUX_IF_ALG_H invocation. (Makefile.am): Don't mention af_alg.c here. * modules/crypto/sha512 (Files): Remove files that are now in the 'crypto/af_alg' module. (Depends-on): Add crypto/af_alg. (configure.ac): Remove gl_LINUX_IF_ALG_H invocation. (Makefile.am): Don't mention af_alg.c here. 2018-05-05 Paul Eggert crypto tests: pacify GCC * tests/test-digest.h (test_digest_on_files): Don’t assume digest size fits in int (!). af_alg: minor style improvements * lib/af_alg.c (afalg_stream): Prefer C99 style decl-after-statement, since we’re already assuming C99. Clarify by strengthening the bind test and omit unnecessary assignment. 2018-05-05 Bruno Haible af_alg: Fix bug on empty files. * lib/af_alg.c (afalg_stream): Ignore the kernel's result if the input stream is empty. 2018-05-05 Paul Eggert sys-limits.h: new file for crypto and safe I/O * lib/af_alg.c: Include sys-limits.h. (MAX_RW_COUNT): Remove. Use replaced by SYS_BUFSIZE_MAX. (afalg_stream): Also reject negative sizes for sendfile; they should not happen and the code is a bit cleaner and faster this way. * lib/safe-read.c: Include sys-limits.h. (BUGGY_READ_MAXIMUM): Remove. All uses replaced by SYS_BUFSIZE_MAX. * lib/sys-limits.h: New file, with values and commentary derived from the old safe-read.c and from GNU Emacs sysdep.c. * modules/crypto/md5, modules/crypto/sha1, modules/crypto/sha256: * modules/crypto/sha512, modules/safe-read, modules/safe-write: Add lib/sys-limits.h to Files section. 2018-05-05 Bruno Haible af_alg: Improve function signature. * lib/af_alg.h (afalg_stream): Swap second and third argument. * lib/af_alg.c (afalg_stream): Likewise. * lib/md5.c, lib/sha1.c, lib/sha256.c, lib/sha512.c: Callers changed. 2018-05-05 Bruno Haible crypto/{md5,sha1,sha256,sha512}: Fix compilation error (S_TYPEISTMO). * modules/crypto/md5 (Depends-on): Add 'sys_stat'. * modules/crypto/sha1 (Depends-on): Likewise. * modules/crypto/sha256 (Depends-on): Likewise. * modules/crypto/sha512 (Depends-on): Likewise. 2018-05-05 Bruno Haible crypto/{md5,sha1,sha256,sha512}: Fix module description. * modules/crypto/md5 (Depends-on): Add 'sys_socket'. * modules/crypto/sha1 (Depends-on): Likewise. * modules/crypto/sha256 (Depends-on): Likewise. * modules/crypto/sha512 (Depends-on): Likewise. 2018-05-05 Bruno Haible af_alg: Add documentation. * lib/af_alg.h: Add comments. 2018-05-05 Bruno Haible sha512: Add tests. * tests/test-sha512.c: New file. * modules/crypto/sha512-tests: New file. 2018-05-05 Bruno Haible sha256: Add tests. * tests/test-sha256.c: New file. * modules/crypto/sha256-tests: New file. 2018-05-05 Bruno Haible sha1 tests: Add test for sha1_stream. * tests/test-sha1.c: Include test-digest.h. (main): Invoke test_digest_on_files on 'sha1_stream'. * modules/crypto/sha1-tests (Files): Add tests/test-digest.h. 2018-05-05 Bruno Haible md5 tests: Add test for md5_stream. * tests/test-digest.h: New file. * tests/test-md5.c: Include test-digest.h. (main): Invoke test_digest_on_files on 'md5_stream'. * modules/crypto/md5-tests (Files): Add tests/test-digest.h. 2018-04-28 Matteo Croce md5sum: Use AF_ALG when available. * lib/md5.c: Include af_alg.h. (md5_stream): Use afalg_stream when available. * modules/crypto/md5 (Files): Add the af_alg files. (configure.ac): Invoke gl_LINUX_IF_ALG_H. (Makefile.am): Add af_alg.c. 2018-04-28 Matteo Croce sha512sum: Use AF_ALG when available. * lib/sha512.c: Include af_alg.h. (sha512_stream, sha384_stream): Use afalg_stream when available. * modules/crypto/sha512 (Files): Add the af_alg files. (configure.ac): Invoke gl_LINUX_IF_ALG_H. (Makefile.am): Add af_alg.c. 2018-04-28 Matteo Croce sha256sum: Use AF_ALG when available. * lib/sha256.c: Include af_alg.h. (sha256_stream, sha224_stream): Use afalg_stream when available. * modules/crypto/sha256 (Files): Add the af_alg files. (configure.ac): Invoke gl_LINUX_IF_ALG_H. (Makefile.am): Add af_alg.c. 2018-04-28 Matteo Croce sha1sum: Use AF_ALG when available. * lib/af_alg.h: New file. * lib/af_alg.c: New file. * lib/sha1.c: Include af_alg.h. (sha1_stream): Use afalg_stream when available. * m4/linux-if-alg.m4: New file. * modules/crypto/sha1 (Files): Add the new files. (configure.ac): Invoke gl_LINUX_IF_ALG_H. (Makefile.am): Add af_alg.c. 2018-05-05 Bruno Haible all: Replace more http URLs by https URLs. * lib/localename.c: Use https: URL. * lib/timespec.h: Likewise. 2018-05-03 Paul Eggert maint: port more modules to GCC 8 * lib/dirname.h (base_name): * lib/exclude.h (new_exclude): * lib/xstrndup.h (xstrndup): Add malloc attribute. * lib/readutmp.c: Pacify GCC 8 about safe use of strncpy. * lib/sig-handler.h (get_handler) [SA_SIGINFO]: Simplify. This pacifies GCC 8. * m4/gnulib-common.m4 (gl_COMMON_BODY): Define _GL_ATTRIBUTE_MALLOC here. All other definitions removed. 2018-05-03 Bruno Haible Simplify code. Drop support for Borland C++ on Windows. Reported by Gisle Vanem . * lib/accept4.c: Simplify 'defined _WIN32 || defined __WIN32__' to just 'defined _WIN32'. * lib/canonicalize-lgpl.c: Likewise. * lib/classpath.c: Likewise. * lib/clean-temp.c: Likewise. * lib/csharpexec.c: Likewise. * lib/ctime.c: Likewise. * lib/dosname.h: Likewise. * lib/dup2.c: Likewise. * lib/errno.in.h: Likewise. * lib/error.c: Likewise. * lib/euidaccess.c: Likewise. * lib/execute.c: Likewise. * lib/fcntl.in.h: Likewise. * lib/fcntl.c: Likewise. * lib/filename.h: Likewise. * lib/findprog.c: Likewise. * lib/flock.c: Likewise. * lib/fopen.c: Likewise. * lib/freopen.c: Likewise. * lib/fstat.c: Likewise. * lib/fsync.c: Likewise. * lib/gc-gnulib.c: Likewise. * lib/get-rusage-data.c: Likewise. * lib/getaddrinfo.c: Likewise. * lib/getdelim.c: Likewise. * lib/getdtablesize.c: Likewise. * lib/gethostname.c: Likewise. * lib/getlogin.c: Likewise. * lib/getlogin_r.c: Likewise. * lib/getopt.c: Likewise. * lib/getpagesize.c: Likewise. * lib/getpass.c: Likewise. * lib/getrusage.c: Likewise. * lib/gettimeofday.c: Likewise. * lib/glob.c: Likewise. * lib/inttypes.in.h: Likewise. * lib/isapipe.c: Likewise. * lib/javaexec.c: Likewise. * lib/link.c: Likewise. * lib/localcharset.c: Likewise. * lib/localename.h: Likewise. * lib/localename.c: Likewise. * lib/localtime.c: Likewise. * lib/lseek.c: Likewise. * lib/mbsinit.c: Likewise. * lib/mkdir.c: Likewise. * lib/msvc-nothrow.h: Likewise. * lib/nanosleep.c: Likewise. * lib/nl_langinfo.c: Likewise. * lib/nonblocking.c: Likewise. * lib/nproc.c: Likewise. * lib/open.c: Likewise. * lib/openpty.c: Likewise. * lib/pathmax.h: Likewise. * lib/pipe-filter-aux.c: Likewise. * lib/pipe-filter-gi.c: Likewise. * lib/pipe-filter-ii.c: Likewise. * lib/pipe.c: Likewise. * lib/pipe2.c: Likewise. * lib/poll.c: Likewise. * lib/popen.c: Likewise. * lib/posix_openpt.c: Likewise. * lib/printf-parse.c: Likewise. * lib/progreloc.c: Likewise. * lib/putenv.c: Likewise. * lib/read.c: Likewise. * lib/relocatable.c: Likewise. * lib/rename.c: Likewise. * lib/same-inode.h: Likewise. * lib/secure_getenv.c: Likewise. * lib/select.c: Likewise. * lib/sethostname.c: Likewise. * lib/setlocale.c: Likewise. * lib/sigaction.c: Likewise. * lib/sigprocmask.c: Likewise. * lib/sleep.c: Likewise. * lib/spawn-pipe.h: Likewise. * lib/spawn-pipe.c: Likewise. * lib/spawni.c: Likewise. * lib/stat-time.h: Likewise. * lib/stat-w32.c: Likewise. * lib/stat.c: Likewise. * lib/stdio.in.h: Likewise. * lib/stdio-impl.h: Likewise. * lib/stdio-read.c: Likewise. * lib/stdio-write.c: Likewise. * lib/stdlib.in.h: Likewise. * lib/strerror_r.c: Likewise. * lib/strftime-fixes.c: Likewise. * lib/sys_stat.in.h: Likewise. * lib/sys_types.in.h: Likewise. * lib/sys_wait.in.h : Likewise. * lib/system-quote.h: Likewise. * lib/system-quote.c: Likewise. * lib/tmpdir.c: Likewise. * lib/tzset.c: Likewise. * lib/uname.c: Likewise. * lib/unistd.in.h: Likewise. * lib/utime.in.h: Likewise. * lib/utime.c: Likewise. * lib/utimecmp.c: Likewise. * lib/utimens.c: Likewise. * lib/vasnprintf.c: Likewise. * lib/vma-iter.h: Likewise. * lib/vma-iter.c: Likewise. * lib/wait-process.c: Likewise. * lib/wcsftime.c: Likewise. * lib/wctype.in.h: Likewise. * lib/write.c: Likewise. * tests/nap.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-get-rusage-data.c: Likewise. * tests/test-getaddrinfo.c: Likewise. * tests/test-getlogin.h: Likewise. * tests/test-isatty.c: Likewise. * tests/test-localename.c: Likewise. * tests/test-mbrtowc-w32.c: Likewise. * tests/test-nonblocking.c: Likewise. * tests/test-nonblocking-pipe-main.c: Likewise. * tests/test-nonblocking-socket-main.c: Likewise. * tests/test-nonblocking-socket.h: Likewise. * tests/test-pipe.c: Likewise. * tests/test-pipe2.c: Likewise. * tests/test-poll.c: Likewise. * tests/test-pthread_sigmask1.c: Likewise. * tests/test-select.h: Likewise. * tests/test-sethostname2.c: Likewise. * tests/test-sigprocmask.c: Likewise. * tests/test-spawn-pipe-child.c: Likewise. * tests/test-stat-time.c: Likewise. * tests/test-system-quote-main.c: Likewise. * tests/test-utimens-common.h: Likewise. * tests/test-wcrtomb-w32.c: Likewise. * m4/csharpexec.m4 (gt_CSHARPEXEC): Likewise. * m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Likewise. * m4/javacomp.m4 (gt_JAVACOMP): Likewise. * m4/javaexec.m4 (gt_JAVAEXEC): Likewise. * m4/locale-ar.m4 (gt_LOCALE_AR): Likewise. * m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): Likewise. * m4/locale-ja.m4 (gt_LOCALE_JA): Likewise. * m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Likewise. * m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Likewise. * m4/malloc.m4 (gl_CHECK_MALLOC_POSIX): Likewise. * m4/nocrash.m4 (GL_NOCRASH): Likewise. * m4/pathmax.m4 (gl_PATHMAX_SNIPPET): Likewise. * m4/ptsname_r.m4 (gl_PREREQ_PTSNAME_R): Likewise. * m4/stdio_h.m4 (gl_STDIO_H): Likewise. * m4/tmpfile.m4 (gl_FUNC_TMPFILE): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H): Likewise. 2018-05-02 Bruno Haible localename: Fix test failures on mingw. * lib/localename.c (gl_locale_name_thread): Remove code specific to native Windows. (gl_locale_name_posix): Move code specific to native Windows here. * tests/test-localename.c (test_locale_name, test_locale_name_posix): Accept result without charset suffix, as it appears on mingw. 2018-04-28 Paul Smith bootstrap: Avoid gnulib operations if not needed * build-aux/bootstrap: Remove unused variable gnulib_mk. Set $gnulib_extra_files early so it can be overridden in .conf. Remove redundant --import flag from $gnulib_tool_options. Set $use_gnulib to false if no gnulib modules or files are needed. If $use_gnulib is false, don't do anything related to gnulib. A lot of this is just whitespace (indentation) changes. 2018-04-27 Paul Eggert manywarnings: port to GCC 8.0 * build-aux/gcc-warning.spec: Add -Wcatch-value, -Wclass-memaccess, -Wdo-subscript, -Wextra-semi. Adjust to the fact that the GCC help message now mentions operands for -Warray-bounds, -Wformat, -Wformat-overflow, -Wformat-truncation, -Wimplicit-fallthrough, -Wplacement-new, -Wshift-overflow, -Wstrict-aliasing, -Wstrict-overflow, -Wstringop-overflow, and -Wunused-const-variable. * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wattribute-alias, -Wcast-align=strict, -Wcast-function-type, -Wif-not-aligned, -Wmissing-attributes, -Wmultistatement-macros, -Wpacked-not-aligned, -Wsizeof-pointer-div, -Wstringop-truncation, -Wsuggest-attribute=cold, -Wsuggest-attribute=malloc. 2018-04-24 Bruno Haible sys_socket: Make SO_REUSEPORT available across platforms. Reported by Tom G. Christensen . * lib/sys_socket.in.h (SO_REUSEPORT): New macro. * doc/posix-headers/sys_socket.texi: Mention the issue. * tests/test-poll.c (SO_REUSEPORT): Remove. * tests/test-select.h: Include . (SO_REUSEPORT): Remove. * modules/select-tests (Depends-on): Add 'sys_socket'. 2018-04-21 Benno Schulenberg (tiny change) localcharset: short-circuit the search for an alias on a Mac * lib/localcharset.c (get_charset_aliases): Add a tautological UTF-8 entry to speed up the search for this case. Most machines default to a UTF-8 locale nowadays, so begin the list of aliases with a dummy UTF-8 entry so it will be found immediately and a time-consuming search through the rest of the list is avoided. 2018-04-11 Paul Eggert fts: add comment * lib/fts.c (fts_build): Explain why ==, not >. See remark by Bernhard Voelker in: https://lists.gnu.org/r/bug-gnulib/2018-04/msg00041.html fts: fix bug in find across filesystems This fixes a bug I introduced last summer. Problem reported by Kamil Dudka in: https://lists.gnu.org/r/bug-gnulib/2018-04/msg00033.html * lib/fts.c (filesystem_type, dirent_inode_sort_may_be_useful) (leaf_optimization): New arg for file descriptor. All callers changed. (fts_build): Check for whether inodes should be sorted before closing the directory. 2018-04-07 Bruno Haible unicase/u*-context: Fix link errors with libunistring <= 0.9.9. Reported by Genki Sky . * modules/unicase/u8-prefix-context (configure.ac): Require libunistring version 0.9.10 or newer. * modules/unicase/u8-suffix-context (configure.ac): Likewise. * modules/unicase/u16-prefix-context (configure.ac): Likewise. * modules/unicase/u16-suffix-context (configure.ac): Likewise. * modules/unicase/u32-prefix-context (configure.ac): Likewise. * modules/unicase/u32-suffix-context (configure.ac): Likewise. 2018-04-07 Bruno Haible execute: Update comment. * lib/execute.h (execute): Refer to spawn-pipe.h, not pipe.h. 2018-04-05 Paul Eggert fts: treat CIFS like NFS Problem reported by Kamil Dudka in: https://lists.gnu.org/r/bug-gnulib/2018-04/msg00015.html * lib/fts.c (S_MAGIC_CIFS): New macro. (dirent_inode_sort_may_be_useful, leaf_optimization): Treat CIFS like NFS. 2018-03-28 Bruno Haible c-stack: Fix possible build failure on some platforms. * lib/c-stack.c (die): Define whenever this function is referenced. 2018-03-28 Paul Eggert time_rz: fix workaround for Mac OS X 10.6 infloop Problems reported by Charles A. Roelli (Bug#27736#117). * m4/time_rz.m4 (gl_TIME_RZ): Use a slightly different timestamp. Also, discard output, which clutters the 'configure' log. 2018-03-27 Paul Eggert havelib: port to Solaris 10 /bin/sh * m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Use 'test ! EXPR' instead of '! test EXPR'. 2018-03-26 Paul Eggert time_rz: work around Mac OS X 10.6 infloop * doc/posix-functions/localtime.texi: * doc/posix-functions/localtime_r.texi: Mention the bug. * lib/time_rz.c (localtime_rz): Work around the bug. It’d be better to fix localtime and localtime_r instead, but that would be more work and is not needed to fix the Emacs problem. * m4/time_rz.m4 (gl_TIME_RZ): Detect the bug. 2018-03-24 Jim Meyering test-version-etc.sh: don't use diff directly: use init.sh's compare We'd rather not sacrifice readable "diff -u" output even for "diff -c" output (not supported by busybox) or for even less readable ed-style "diff" output. So use init.sh's compare function * tests/test-version-etc.sh: Source init.sh and add "." to path. Remove "./" from invocation of test-version-etc, so we use path. And s/diff/compare/. * modules/version-etc-tests (Depends-on): Add test-framework-sh, to get init.sh. Prompted by Eric Blake's comments in https://lists.gnu.org/r/sed-devel/2018-03/msg00015.html 2018-03-24 Bruno Haible javacomp-script, javacomp: Add support for Java 10. * m4/javacomp.m4 (gt_JAVACOMP): Accept source-version 10 and target-version 10. * lib/javaversion.h: Update comments. * lib/javacomp.c (default_target_version, SOURCE_VERSION_BOUND, source_version_index, get_goodcode_snippet, get_failcode_snippet, TARGET_VERSION_BOUND, target_version_index, corresponding_classfile_version): Accept source_version 10 and target_version 10. * lib/javacomp.h: Update comments accordingly. 2018-03-24 Bruno Haible javacomp-script, javacomp: Update comments. * m4/javacomp.m4: Update comments regarding gcj. * lib/javacomp.h: Likewise. 2018-03-24 Bruno Haible javacomp-script, javacomp: Fix support for Java 7, 8, 9. * lib/javaversion.h: Update comments. * lib/javacomp.h: Likewise. * lib/javacomp.c (default_target_version, source_version_index, get_goodcode_snippet, get_failcode_snippet): Recognize "9" instead of "1.9". (TARGET_VERSION_BOUND): Bump to 9. (target_version_index, corresponding_classfile_version): Recognize "9" instead of "1.9". (get_source_version_for_javac): New function. (is_envjavac_nongcj_usable, is_javac_usable): Add source_version_for_javac argument. (compile_java_class): Determine and pass source_version_for_javac. * m4/javacomp.m4: Recognize version '9' instead of '1.9'. When invoking $JAVAC or javac, pass '-source 1.6' instead of '-source 1.5' when appropriate. 2018-03-23 Jim Meyering test-version-etc.sh: port to diff without -c * tests/test-version-etc.sh: Don't use diff's -c option. This caused spurious test failure on Alpine Linux, which uses busybox's diff. Reported by Assaf Gordon in https://lists.gnu.org/r/sed-devel/2018-03/msg00013.html 2018-03-23 Paul Eggert c-stack: port to recent GCC build Problem reported by The Fireplace (Bug#30913). * lib/c-stack.c (die): Define only if used. 2018-03-20 Bruno Haible euidaccess: Port to native Windows. * lib/euidaccess.c (euidaccess): On native Windows, just use _access(). * posix-modules (exclude_for_mingw): Remove 'euidaccess'. 2018-03-19 Bruno Haible javacomp: Add support for Java 7, 8, 9. * lib/javacomp.c (default_target_version, SOURCE_VERSION_BOUND, source_version_index, get_goodcode_snippet, get_failcode_snippet, corresponding_classfile_version): Accept source_version 1,7, 1.8, 1.9 and target_version 1,7, 1.8, 1.9. * lib/javacomp.h: Update comments accordingly. 2018-03-19 Bruno Haible javacomp-script: Add support for Java 9. * m4/javacomp.m4 (gt_JAVACOMP): Accept source-version 1.9 and target-version 1.9. 2018-03-16 Bruno Haible glob: Don't compile replacements on recent glibc systems. * lib/glob.in.h: Use the usual idiom for the double-inclusion guard. If REPLACE_GLOB is 0, include the system's and use _GL_CXXALIAS_SYS. * m4/glob.m4 (gl_GLOB): Set REPLACE_GLOB instead of GLOB_H. Accept _GNU_GLOB_INTERFACE_VERSION 2 as well. Delete the file conf$$-globtest inside the AC_RUN_IFELSE block. Remove GL_GENERATE_GLOB_H conditional. * modules/glob (Dependencies): Test REPLACE_GLOB instead of GLOB_H. Remove snippet/warn-on-use. (configure.ac): Test REPLACE_GLOB instead of GLOB_H. (Makefile.am): Create glob.h always. Update list of substitutions in glob.h. Don't depend on $(WARN_ON_USE_H). 2018-03-16 Bruno Haible glob: Fix link error on native Windows. * modules/glob (Depends-on): Add 'lstat'. 2018-03-15 Bruno Haible glob: Fix compilation error in C++ mode. * lib/glob.in.h (_Restrict_): Define, like in regex.h and spawn.in.h. 2018-03-15 Bruno Haible host-cpu-c-abi: Support for RISC-V CPU. * m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Recognize the various riscv32 and riscv64 ABIs. References: https://github.com/riscv/riscv-toolchain-conventions https://gcc.gnu.org/onlinedocs/gcc-7.3.0/gcc/RISC-V-Options.html https://gnu-mcu-eclipse.github.io/toolchain/riscv/ 2018-03-08 Paul Eggert fflush: be more paranoid about libio.h change Suggested by Eli Zaretskii in: https://lists.gnu.org/r/emacs-devel/2018-03/msg00270.html * lib/fbufmode.c (fbufmode): * lib/fflush.c (clear_ungetc_buffer_preserving_position) (disable_seek_optimization, rpl_fflush): * lib/fpending.c (__fpending): * lib/fpurge.c (fpurge): * lib/freadable.c (freadable): * lib/freadahead.c (freadahead): * lib/freading.c (freading): * lib/freadptr.c (freadptr): * lib/freadseek.c (freadptrinc): * lib/fseeko.c (fseeko): * lib/fseterr.c (fseterr): * lib/fwritable.c (fwritable): * lib/fwriting.c (fwriting): Look at _IO_ftrylockfile as well as at _IO_EOF_SEEN. 2018-03-07 Paul Eggert maint: write-file-hooks -> before-save-hook write-file-hooks is obsolete since Emacs 22.1 (released June 2007) and it's time to use the recommended replacement. Problem reported by Glenn Morris in: https://lists.gnu.org/r/bug-gnulib/2018-03/msg00008.html * build-aux/announce-gen, build-aux/bootstrap: * build-aux/do-release-commit-and-tag, build-aux/gendocs.sh: * build-aux/git-version-gen, build-aux/gitlog-to-changelog: * build-aux/gnu-web-doc-update, build-aux/gnupload: * build-aux/move-if-change, build-aux/prefix-gnulib-mk: * build-aux/update-copyright, build-aux/useless-if-before-free: * build-aux/vc-list-files: Update hook usage for files where Gnulib is the canonical source. 2018-03-05 Paul Eggert binary-io: pacify gcc -Wunused-parameter Problem reported by Reuben Thomas in: https://lists.gnu.org/r/bug-gnulib/2018-03/msg00005.html * lib/binary-io.h (__gl_setmode, __gl_setmode_check): Use _GL_UNUSED where appropriate. fflush: adjust to glibc 2.28 libio.h removal Problem reported by Daniel P. Berrangé in: https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html * lib/fbufmode.c (fbufmode): * lib/fflush.c (clear_ungetc_buffer_preserving_position) (disable_seek_optimization, rpl_fflush): * lib/fpending.c (__fpending): * lib/fpurge.c (fpurge): * lib/freadable.c (freadable): * lib/freadahead.c (freadahead): * lib/freading.c (freading): * lib/freadptr.c (freadptr): * lib/freadseek.c (freadptrinc): * lib/fseeko.c (fseeko): * lib/fseterr.c (fseterr): * lib/fwritable.c (fwritable): * lib/fwriting.c (fwriting): Check _IO_EOF_SEEN instead of _IO_ftrylockfile. * lib/stdio-impl.h (_IO_IN_BACKUP) [_IO_EOF_SEEN]: Define if not already defined. 2018-02-27 Paul Eggert environ: fix link error on 32-bit Cygwin Problem reported for GNU Emacs by Ken Brown in: https://lists.gnu.org/r/emacs-devel/2018-02/msg00765.html * lib/unistd.in.h (environ) [__i386__]: Do not redeclare. 2018-02-24 Bruno Haible mbrtowc tests: Fix regression on glibc. Reported by Bernhard Voelker. * tests/test-mbrtowc.c (main): Fix expected value of wc. 2018-02-24 Bruno Haible striconveha, uniconv/*: Avoid test failures on musl libc. * tests/iconvsupport.c: New file. * tests/test-striconveha.c (main): Skip autodetect_jp tests if iconv() does not support the ISO-2022-JP-2 encoding. * tests/uniconv/test-u8-conv-from-enc.c (main): Likewise. * tests/uniconv/test-u8-strconv-from-enc.c (main): Likewise. * tests/uniconv/test-u16-conv-from-enc.c (main): Likewise. * tests/uniconv/test-u16-strconv-from-enc.c (main): Likewise. * tests/uniconv/test-u32-conv-from-enc.c (main): Likewise. * tests/uniconv/test-u32-strconv-from-enc.c (main): Likewise. * modules/striconveha-tests (Files): Add tests/iconvsupport.c. (Makefile.am): Link test-striconveha with iconvsupport.o. * modules/uniconv/u8-conv-from-enc-tests (Files): Add tests/iconvsupport.c. (Makefile.am): Link test-u8-conv-from-enc with iconvsupport.o. * modules/uniconv/u8-strconv-from-enc-tests (Files): Add tests/iconvsupport.c. (Makefile.am): Link test-u8-strconv-from-enc with iconvsupport.o. * modules/uniconv/u16-conv-from-enc-tests (Files): Add tests/iconvsupport.c. (Makefile.am): Link test-u16-conv-from-enc with iconvsupport.o. * modules/uniconv/u16-strconv-from-enc-tests (Files): Add tests/iconvsupport.c. (Makefile.am): Link test-u16-strconv-from-enc with iconvsupport.o. * modules/uniconv/u32-conv-from-enc-tests (Files): Add tests/iconvsupport.c. (Makefile.am): Link test-u32-conv-from-enc with iconvsupport.o. * modules/uniconv/u32-strconv-from-enc-tests (Files): Add tests/iconvsupport.c. (Makefile.am): Link test-u32-strconv-from-enc with iconvsupport.o. 2018-02-24 Bruno Haible localename: Add support for musl libc. * m4/localename.m4 (gl_LOCALENAME): Check for . * lib/localename.c (gl_locale_name_thread_unsafe): Use NL_LOCALE_NAME on Linux platforms which define NL_LOCALE_NAME. 2018-02-24 Bruno Haible mbrtowc tests: Don't make assumptions about the charset the C locale. * tests/test-mbrtowc.c (main): For bytes >= 0x80, don't assume a particular mapping in the C locale. 2018-02-24 Bruno Haible ptsname_r: Don't expect that this function sets errno. * tests/test-ptsname_r.c (test_errors): Don't test errno after return from ptsname_r(). * doc/glibc-functions/ptsname_r.texi: Mention the issue. 2018-02-23 Bruno Haible xmalloca: pacify gcc -Wbad-function-cast * lib/xmalloca.h (xmalloca): Insert intermediate cast here as well. 2018-02-23 Paul Eggert nl_langinfo: pacify gcc -Wunused-function * lib/nl_langinfo.c (ctype_codeset): Do not define if REPLACE_NL_LANGINFO && !GNULIB_defined_CODESET, as it is unused in this case. Without this change, I got a diagnostic when building coreutils on Fedora 27 with gcc 7.3.1 20180130. same: pacify gcc -Wunused-variable * lib/same.c (same_nameat) [!CHECK_TRUNCATION]: Omit unused variable. malloca: pacify gcc -Wbad-function-cast * lib/malloca.h (malloca): Pacify gcc -Wbad-function-cast diagnostic that I got on Fedora 27 with gcc 7.3.1 20180130. To pacify GCC, I had to cast alloca’s result to some type other than void * before casting that to uintptr_t. 2018-02-20 Paul Eggert utimecmp: new function utimecmpat * lib/utimecmp.c: Include fcntl.h, sys/stat.h and dirname.h. Do not include utimens.h. (utimecmpat): New function, generalizing utimecmp. (utimecmp): Now a thin layer around utimecmpat. * modules/utimecmp (Depends-on): Depend on dirname-lgpl, fstatat, utimensat instead of on lstat and utimens. same: new function same_nameat * lib/same.c: Include fcntl.h. * lib/same.c (same_nameat): New function, generalizing same_name. (same_name): Now a thin layer around same_nameat. * m4/same.m4 (gl_SAME): Check for fpathconf, not pathconf. * modules/same (Depends-on): Depend on fstatat, openat. 2018-02-18 Eric Gallager (tiny change) warnings: Add support for Objective C. * m4/warnings.m4 (gl_UNKNOWN_WARNINGS_ARE_ERRORS(Objective C)): New macro. 2018-02-17 Bruno Haible lock: Fix test-once1 crash on FreeBSD11. * lib/glthread/lock.h: On FreeBSD, test the weak value of the symbol 'pthread_create', not 'pthread_cancel'. 2018-02-17 Bruno Haible lock: Add test of gl_once. * tests/test-once.c: New file. * modules/lock-tests (Files): Add it. (Makefile.am): Build and test programs 'test-once1' and 'test-once2'. 2018-02-17 Bruno Haible thread: Fix compilation error on IRIX. * lib/glthread/thread.h: Include . Include when needed; include it outside the C++ extern "C" {} block. * doc/posix-headers/pthread.texi: Mention the problem with pthread_atfork on IRIX. 2018-02-04 Bruno Haible nl_langinfo: Override the system's nl_langinfo() when needed. Reported by Jim Meyering. * m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Set REPLACE_NL_LANGINFO=1 also when HAVE_LANGINFO_T_FMT_AMPM or HAVE_LANGINFO_ALTMON is 0. 2018-02-04 Bruno Haible signal-h, monetary, strings: Fix build failure in some cases. Reported by Tim Rühsen . * modules/signal-h (Makefile.am): In the GNULIB_* substitutions, use '/' as delimiter in sed command, not '|'. * modules/monetary (Makefile.am): Likewise. * modules/strings (Makefile.am): Likewise. 2018-02-03 Jim Meyering maint.mk: exempt "/proc/filesystems" from "file system" syntax check * top/maint.mk (sc_file_system): Don't complain about "/proc/filesystems". 2018-02-03 Bruno Haible stdlib: Fix compilation error on OpenIndiana. * lib/stdlib.in.h: Before including , include . * m4/stdlib_h.m4 (gl_STDLIB_H): Likewise. * m4/getloadavg.m4 (gl_GETLOADAVG): Likewise. 2018-02-03 Bruno Haible host-cpu-c-abi: Avoid use of 'grep -E' on OpenIndiana. * m4/asm-underscore.m4 (gl_ASM_SYMBOL_PREFIX): Require AC_PROG_EGREP, and use $EGREP instead of 'grep -E'. * m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Use 'grep' instead of 'grep -E'. 2018-02-02 Paul Eggert malloca: Add a compile-time verification. * lib/malloca.c (small_t): Verify that it is wide enough. * modules/malloca (Depends-on): Add verify. 2018-02-02 Bruno Haible malloca: Add an argument check. Suggested by Paul Eggert. * lib/malloca.c (freea): Check against an invalid argument. 2018-02-02 Bruno Haible localename: Add support for OpenIndiana. * lib/localename.c (gl_locale_name_thread_unsafe): Add code for Solaris 11 variants with uselocale() but without getlocalename_l(). 2018-02-02 Bruno Haible malloca, xmalloca: Make multithread-safe. Reported by Florian Weimer . Implements an idea by Ondřej Bílka . * lib/malloca.h (malloca): In the stack allocation case, return a pointer that is a multiple of 2 * sa_alignment_max. (sa_increment): Remove enum item. * lib/xmalloca.h (xmalloca): In the stack allocation case, return a pointer that is a multiple of 2 * sa_alignment_max. * lib/malloca.c (NO_SANITIZE_MEMORY): Remove macro. (MAGIC_NUMBER, MAGIC_SIZE, preliminary_header, HEADER_SIZE, header, HASH_TABLE_SIZE, mmalloca_results): Remove. (small_t): New type. (mmalloca, free): Rewritten. * lib/malloca.valgrind: Remove file. * modules/malloca (Files): Remove it. (Depends-on): Remove verify. 2018-01-31 Bruno Haible environ: Fix link error on 64-bit Cygwin. * lib/unistd.in.h (environ): On Cygwin, redeclare with the __declspec(dllimport) attribute. * doc/posix-functions/environ.texi: Mention the Cygwin problem. 2018-01-30 Bruno Haible get-rusage-data: Add support for Minix 3. * lib/get-rusage-data.c (get_rusage_data): Return 0 on Minix. 2018-01-30 Bruno Haible vma-iter: Add support for Minix 3. * lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define on Minix. * lib/vma-iter.c: On Minix, read /proc//map. 2018-01-27 Bruno Haible Fix malfunction of socket functions on HP-UX in 64-bit mode. * m4/socketlib.m4 (gl_SOCKETLIB): Add comment. * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Define _HPUX_ALT_XOPEN_SOCKET_API. * modules/accept (Depends-on): Add 'extensions'. * modules/getpeername (Depends-on): Likewise. * modules/getsockname (Depends-on): Likewise. * modules/getsockopt (Depends-on): Likewise. * modules/recvfrom (Depends-on): Likewise. * doc/posix-functions/accept.texi: Mention the HP-UX socklen_t problem. * doc/posix-functions/getpeername.texi: Likewise. * doc/posix-functions/getsockname.texi: Likewise. * doc/posix-functions/getsockopt.texi: Likewise. * doc/posix-functions/recvfrom.texi: Likewise. 2018-01-27 Bruno Haible getsockname tests: More tests. * tests/test-getsockname.c (open_server_socket): New function, mostly copied from test-poll.c. (main): Check that getsockname fills in addr. * modules/getsockname-tests (Depends-on): Add the necessary dependencies. (test_getsockname_LDADD): Link with $(INET_PTON_LIB). 2018-01-26 Paul Eggert manywarnings: fix maintainer comment * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Fix comment so that it does not mistakenly think that ‘-1)’ is an option. 2018-01-26 Bruno Haible langinfo: Fix last commit. Reported by Tim Rühsen . * modules/langinfo (Makefile.am): Substitute HAVE_LANGINFO_ALTMON. 2018-01-24 Bruno Haible langinfo, nl_langinfo: Add support for alternative month names. * m4/langinfo_h.m4 (gl_LANGINFO_H): Define HAVE_LANGINFO_ALTMON. * lib/langinfo.in.h (ALTMON_1...ALTMON_12): New macros. * lib/nl_langinfo.c (rpl_nl_langinfo): Treat ALTMON_i like MON_i. * tests/test-nl_langinfo.c (main): Test ALTMON_*. * doc/posix-headers/langinfo.texi: Document support of ALTMON_*. * doc/posix-functions/nl_langinfo.texi: Likewise. 2018-01-23 Paul Eggert Merge strftime.c changes from glibc This incorporates: 2017-11-14 [BZ #10871] Implement alternative month names 2017-11-14 [BZ #10871] Abbreviated alternative month names (%Ob) 2017-06-20 Use locale_t, not __locale_t, throughout glibc * lib/nstrftime.c (ABALTMON_1) [!COMPILE_WIDE]: New macro. (LOCALE_PARAM) [_LIBC && USE_IN_EXTENDED_LOCALE_MODEL]: Use locale_t, not __locale_t. (a_altmonth, f_altmonth, aam_len) [_NL_CURRENT]: New macros. (__strftime_internal): Add support for alternate months. 2018-01-23 Bruno Haible doc: Mention another prerequisite for using Gnulib. Reported at . * doc/gnulib-tool.texi (Initial import): Mention requirement to use AC_CONFIG_HEADERS. 2018-01-22 Mathieu Lirzin build: GuixSD doesn't have /bin/bash * Makefile (SHELL): Search 'bash' in the PATH environment variable. 2018-01-21 Bruno Haible Avoid test failures on Microsoft Windows Subsystem for Linux. * tests/test-fcntl.c (main): Allow a different errno. * tests/test-rename.h (test_rename): Likewise. * tests/test-renameat.c (main): Likewise. * tests/test-renameat2.c (main): Likewise. 2018-01-14 Paul Eggert filenamecat: make base a suffix of result * lib/filenamecat-lgpl.c (longest_relative_suffix): Remove. (mfile_name_concat): Always make BASE a suffix of the result, as cp expects this. To implement this, separate with '.' instead of '/' in some rare cases. Clarify spec to say ./BASE not BASE. * tests/test-filenamecat.c (main): Adjust tests to match current behavior. Check that BASE_IN_RESULT points to a copy of BASE and is a suffix of the resultk, and that DIR is a prefix of the result that is no longer than the prefix indicated by BASE_IN_RESULT. 2018-01-04 Mathieu Lirzin update-copyright: Handle use of © * build-aux/update-copyright ($circle_c_re): Update regex to handle use of © in headers. 2018-01-04 Tim Rühsen Fix -Wundef warning in user-included header lib/cdefs.h. * lib/cdefs.h: Check if defined before using __USE_FORTIFY_LEVEL. 2018-01-04 Bruno Haible pthread_sigmask: Avoid compilation error on mingw. Reported by Tim Rühsen . * lib/signal.in.h (pthread_sigmask): Don't declare it it's defined as a macro. 2018-01-03 Paul Eggert test-framework-sh: ‘ps -ef’, not ‘ps ef’ * tests/init.sh (rand_bytes_): Put ‘-’ before new-style ps options. Suggested by Bob Proulx (Bug#29968). * build-aux/mktempd (rand_bytes): Make it like tests/init.sh. 2018-01-02 Eric Blake stat-time: silence -Wunused-parameter regression * lib/stat-time.h (get_stat_birthtime_ns, get_stat_birthtime): Prefer attribute over cast-to-void. (stat_time_normalize): Mark st as potentially unused. 2018-01-02 Paul Eggert test-framework-sh: avoid netstat Problem reported by Kristýna Streitová (Bug#29947). * tests/init.sh (rand_bytes_): Stop using netstat, as it's deprecated on SuSE and it's not that important anyway. 2018-01-01 Jim Meyering update-copyright: add code to handle more special cases After running "make update-copyright" this year, five files required additional manual changes. Automate those adjustments for next year. * Makefile (_year_and_prev): Define. (update-copyright): Add perl commands to induce this year's post- update-copyright adjustments. 2018-01-01 Paul Eggert version-etc: new year * build-aux/gendocs.sh (version): * doc/gendocs_template: * doc/gendocs_template_min: * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright dates by hand in templates and the like. maint: fix 'make update-copyright' * Makefile (update-copyright): Adjust to 2016-11-23 change to config/srclist-update, which changed the format of srclist.txt. 2017-12-30 Paul Eggert chdir-safer: remove this module * MODULES.html.sh (func_all_modules): Remove chdir-safer. * NEWS: Document removal. * lib/chdir-safer.c, lib/chdir-safer.h, m4/afs.m4, m4/chdir-safer.m4: * modules/chdir-safer: Remove these files. 2017-12-29 Samuel Thibault Add cross-compilation results for GNU/Hurd. * m4/calloc.m4: Add GNU/Hurd guess. * m4/cbrtl.m4: Likewise. * m4/ceil.m4: Likewise. * m4/ceilf.m4: Likewise. * m4/ceill.m4: Likewise. * m4/chown.m4: Likewise. * m4/duplocale.m4: Likewise. * m4/exp2l.m4: Likewise. * m4/expm1.m4: Likewise. * m4/fchdir.m4: Likewise. * m4/floor.m4: Likewise. * m4/floorf.m4: Likewise. * m4/fmod.m4: Likewise. * m4/fmodf.m4: Likewise. * m4/fmodl.m4: Likewise. * m4/getcwd.m4: Likewise. * m4/getgroups.m4: Likewise. * m4/gettimeofday.m4: Likewise. * m4/hypot.m4: Likewise. * m4/hypotf.m4: Likewise. * m4/hypotl.m4: Likewise. * m4/link-follow.m4: Likewise. * m4/link.m4: Likewise. * m4/linkat.m4: Likewise. * m4/log.m4: Likewise. * m4/log10.m4: Likewise. * m4/log10f.m4: Likewise. * m4/log1p.m4: Likewise. * m4/log1pf.m4: Likewise. * m4/log1pl.m4: Likewise. * m4/log2.m4: Likewise. * m4/log2f.m4: Likewise. * m4/logf.m4: Likewise. * m4/lstat.m4: Likewise. * m4/malloc.m4: Likewise. * m4/mbrlen.m4: Likewise. * m4/mbrtowc.m4: Likewise. * m4/mkdir.m4: Likewise. * m4/mkfifo.m4: Likewise. * m4/mknod.m4: Likewise. * m4/mkstemp.m4: Likewise. * m4/modf.m4: Likewise. * m4/modff.m4: Likewise. * m4/modfl.m4: Likewise. * m4/printf.m4: Likewise. * m4/pselect.m4: Likewise. * m4/ptsname.m4: Likewise. * m4/putenv.m4: Likewise. * m4/readlink.m4: Likewise. * m4/realloc.m4: Likewise. * m4/remainder.m4: Likewise. * m4/remainderf.m4: Likewise. * m4/remainderl.m4: Likewise. * m4/rmdir.m4: Likewise. * m4/round.m4: Likewise. * m4/roundf.m4: Likewise. * m4/roundl.m4: Likewise. * m4/select.m4: Likewise. * m4/setenv.m4: Likewise. * m4/signbit.m4: Likewise. * m4/sleep.m4: Likewise. * m4/stat.m4: Likewise. * m4/strerror.m4: Likewise. * m4/strtok_r.m4: Likewise. * m4/symlink.m4: Likewise. * m4/symlinkat.m4: Likewise. * m4/trunc.m4: Likewise. * m4/truncf.m4: Likewise. * m4/truncl.m4: Likewise. * m4/tzset.m4: Likewise. * m4/ungetc.m4: Likewise. * m4/usleep.m4: Likewise. * m4/wcwidth.m4: Likewise. 2017-12-28 Bruno Haible gnulib-tool: Make --conditional-dependencies work better. Reported by Dmitry Selyutin . * gnulib-tool (Options): Don't reject the combination of --conditional-dependencies with --with-tests. (func_emit_autoconf_snippets): Add argument referenceable_modules. Don't reference $modules. (func_import, func_create_testdir): Pass it. 2017-12-19 Paul Eggert regex: use re_malloc etc. consistently Problem and original patch reported by Arnold Robbins in: https://sourceware.org/ml/libc-alpha/2017-12/msg00241.html * lib/regcomp.c (re_comp): * lib/regexec.c (push_fail_stack, build_trtable, match_ctx_clean): Use re_malloc/re_realloc/re_free instead of malloc/realloc/free. 2017-12-15 Tim Rühsen Paul Eggert glob: Silence warning about void pointer arithmetic. * lib/glob.c (glob): Use a 'char *', not a 'void *', in pointer arithmetic. 2017-12-15 Bruno Haible spawn-pipe: Silence a clang warning. Reported by Tim Rühsen . * lib/spawn-pipe.c: Disable clang -Wconditional-uninitialized warnings in this file. 2017-12-12 Paul Eggert explicit_bzero: port to macOS + Clang 9.0.0 Problem reported by Marcus Johnson (Bug#29658). * lib/explicit_bzero.c (explicit_bzero) [__clang__]: Don’t use asm. 2017-12-11 Reuben Thomas doc: Improve explanation of supporting relocatable libraries. * doc/relocatable-maint.texi (Supporting Relocation): Explain properly how to build the relocatable module for libraries. (Method and example code from Bruno Haible.) 2017-12-11 Reuben Thomas doc: Use better texinfo tags in a few cases. * doc/gnulib.texi (Extending Gnulib): Use @option or @command instead of @samp in a few places. 2017-12-11 Bruno Haible unistr/base: Update comment. * lib/unistr.in.h: Update comment about u*_mbtouc_unsafe functions. 2017-12-10 Pádraig Brady test-faccessat.c: unlink temp file to avoid subsequent test failure * tests/test-faccessat.c: Remove the file to avoid failure to open the file on subsequent runs due to being created with no permissions. 2017-12-10 Bruno Haible doc: New sect. "Modifying the build rules of a Gnulib import directory". * doc/gnulib-tool.texi (Modified build rules): New node. 2017-12-10 Bruno Haible doc: Tweak wording. * doc/gnulib-tool.texi (Multiple instances): Talk about "programs", not "binaries". 2017-12-05 Sam Steingold Bruno Haible no-c++: Avoid "egrep: repetition-operator operand invalid" error. * m4/no-c++.m4 (gt_NO_CXX): Don't use '+' characters nor spaces in the AC_EGREP_CPP pattern. 2017-12-03 Bruno Haible all: Replace more http URLs by https URLs. * lib/sm3.h, lib/sm3.c, tests/test-sm3.c: Use https: URL. * lib/unigbrk/u-grapheme-breaks.h: Likewise. * lib/unigbrk/uc-grapheme-breaks.c: Likewise. * tests/unigbrk/test-uc-grapheme-breaks.c: Likewise. 2017-11-28 Paul Eggert Port better to CentOS 5 Problems reported by Tom G. Christensen in: https://lists.gnu.org/r/bug-gnulib/2017-11/msg00053.html * doc/glibc-functions/strverscmp.texi (strverscmp): Document strverscmp bug with glibc 2.9 and earlier. * doc/posix-functions/tzset.texi (tzset): Document that TZ with angle brackets is POSIX-2001 and later. * tests/test-nstrftime.c: Include unistd.h. (TZ_ANGLE_BRACKETS_SHOULD_WORK): New macro. (TZ): Use it to skip tests with angle brackets in TZ, for older systems. stat: add missing module dependencies * modules/lstat, modules/stat, modules/utimensat (Depends-on): Add stat-time. 2017-11-28 Benno Schulenberg stat: fix compilation failure on macOS Sierra Reported by Marius Schamschula in: https://savannah.gnu.org/bugs/?52546 * lib/stat.c: Add missing include of stat-time.h. 2017-11-28 Jim Meyering test-faccessat.c: correct BASE definition to avoid parallel test failure * tests/test-faccessat.c (BASE): Define using this file's name, not that of test-lstat.c. Using the latter caused this test to fail sometimes when run concurrently with test-lstat. 2017-11-27 Daiki Ueno unicase: fix VPATH build * modules/unicase/special-casing (Makefile.am): Ensure that the base directory is created when generating unicase/special-casing.h. 2017-11-27 Daiki Ueno libunistring: update to Unicode 9.0.0 * lib/gen-uni-tables.c (fill_properties): Recognize Sentence_Terminal and Prepended_Concatenation_Mark. (is_property_default_ignorable_code_point): Exclude U+08E2. (fill_arabicshaping): Allow missing whitespace when parsing; recognize "AFRICAN FEH", "AFRICAN QAF", and "AFRICAN MOON". (output_blocks): Increase the element size of the level1 table to accommodate more blocks. (get_lbp): Recognize ZWJ, E_Base, and E_Modifier characters; Update each class according to the standard. (get_wbp): Recognize ZWJ, E_Base, E_Modifier, Glue_After_Zwj, and E_Base_GAZ characters. (output_gbp_table): Recognize ZWJ, E_Base, E_Modifier, Glue_After_Zwj, and E_Base_GAZ characters. * lib/unictype.in.h (UC_JOINING_GROUP_AFRICAN_FEH) (UC_JOINING_GROUP_AFRICAN_QAF, UC_JOINING_GROUP_AFRICAN_MOON): New enum value. * lib/unilbrk/lbrktables.h (LBP_ZWJ, LBP_EB, LBP_EM): New enum value. * lib/unilbrk/lbrktables.c (unilbrk_table): Extend the table with LBP_ZWJ, LBP_EB, and LBP_EM. * lib/uniwbrk.in.h (WBP_ZWJ, WBP_EB, WBP_EM, WBP_GAZ, WBP_EBG): New enum value. * lib/uniwbrk/u-wordbreaks.h: Implement WB3c, WB15, and WB16. * lib/uniwbrk/wbrktable.h (uniwbrk_prop_index): New variable declaration. * lib/uniwbrk/wbrktable.c (uniwbrk_prop_index): New variable. (uniwbrk_table): Implement WB14. * tests/uniwbrk/test-uc-wordbreaks.c (wordbreakproperty_to_string): Check WBP_ZWJ, WBP_EB, WBP_EM, WBP_GAZ, and WBP_EBG. * modules/unigbrk/u{32,16,8}-grapheme-breaks: No longer depend on uc-is-grapheme-break. * modules/unigbrk/uc-grapheme-breaks: New module. * modules/unigbrk/uc-grapheme-breaks-tests: New module. * lib/unigbrk.in.h (GBP_ZWJ, GBP_EB, GBP_EM, GBP_GAZ, GBP_EBG): New enum value. (uc_grapheme_breaks): New function, replacing uc_is_grapheme_break. * lib/unigbrk/u-grapheme-breaks.h: New file. * lib/unigbrk/u{32,16,8}-grapheme-breaks.c: Rewrite using u-grapheme-breaks.h instead of uc_is_grapheme_break. * lib/unigbrk/uc-grapheme-breaks.c: New file. * lib/unigbrk/uc-is-grapheme-break.c: Partially update to TR29 rev 29. * tests/unigbrk/test-uc-gbrk-prop.c (graphemebreakproperty_to_string): Check GBP_ZWJ, GBP_EB, GBP_EM, GBP_GAZ, and GBP_EBG. * tests/unigbrk/test-uc-grapheme-breaks.c: New test. * tests/unigbrk/test-uc-is-grapheme-break.c (graphemebreakproperty_to_string): Check GBP_ZWJ, GBP_EB, GBP_EM, GBP_GAZ, and GBP_EBG. (main): Skip unsupported rules involving 3 or more characters, namely GB10, GB12, and GB13. * lib/uniwidth/width.c (nonspacing_table_data): Update. * all generated files under lib/uni* and tests/uni*: Regenerate. * all the affected modules: Bump version. 2017-11-26 Bruno Haible strfmon_l: Fix compilation error with glibc 2.5. Reported by Tom G. Christensen in . * lib/monetary.in.h: Include also . 2017-11-24 Paul Eggert posixtm: remove PDS_LEADING_YEAR This changes the API slightly, in a hopefully-innocuous way. Without this change the code had undefined behavior when a caller specified neither PDS_LEADING_YEAR nor PDS_TRAILING_YEAR. Problem reported by Pádraig Brady in: https://lists.gnu.org/r/bug-gnulib/2017-11/msg00048.html * NEWS: Mention this. * lib/posixtm.c (posix_time_parse): Treat the absence of PDS_TRAILING_YEAR as if PDS_LEADING_YEAR were present. * lib/posixtm.h (PDS_LEADING_YEAR): Remove (actually, leave it present, but define it as zero, for compatibility with existing source code). All other PDS_* values moved up. * tests/test-posixtm.c (LY): New macro. (T): Use it. Do not expect a particular numeric encoding for PDS_CENTURY etc. 2017-11-23 Paul Eggert stat: work around Solaris bug with tv_nsec < 0 * doc/posix-functions/fstat.texi (fstat): * doc/posix-functions/fstatat.texi (fstatat): * doc/posix-functions/lstat.texi (lstat): * doc/posix-functions/stat.texi (stat): Mention Solaris 11 bug. * lib/fstat.c, lib/fstatat.c, lib/lstat.c: Include stat-time.h. * lib/fstat.c (rpl_fstat) [!WINDOWS_NATIVE]: * lib/lstat.c (rpl_lstat): * lib/stat.c (rpl_stat): Normalize resulting timestamps. * lib/fstatat.c (normal_fstatat): New function. (rpl_fstatat): Use it. * lib/stat-time.h: Include intprops.h, errno.h, stddef.h. (stat_time_normalize): New function. * m4/fstat.m4 (gl_FUNC_FSTAT): * m4/fstatat.m4 (gl_FUNC_FSTATAT): * m4/lstat.m4 (gl_FUNC_LSTAT): * m4/stat.m4 (gl_FUNC_STAT): Replace on Solaris. * modules/fstat (Depends-on): * modules/fstatat (Depends-on): Add stat-time. * modules/stat-time (Depends-on): Add errno, intprops. 2017-11-22 Paul Eggert regex: merge from glibc * lib/regcomp.c (init_word_char): Add comments. 2017-11-20 Paul Eggert regex: merge from glibc * lib/regcomp.c (__regcomp, __regfree) [_LIBC]: Now hidden. * lib/regex_internal.h (internal_function): Remove. All uses removed. 2017-11-20 Bruno Haible crypto/gc-sm3: Fix buffer overrun. * lib/gc-gnulib.c (MAX_DIGEST_SIZE): Bump to 32. Reported by Coverity. 2017-11-12 Jim Meyering maint: shorten https://lists.gnu.org/archive/html/... links Each /archive/html/ part can be replace with /r/. Run this to induce the change: git grep -l archive/html|xargs perl -pi -e 's,/archive/html/,/r/,g' * ChangeLog: Perform that substitution. * Makefile: Likewise. * STATUS-libposix: Likewise. * build-aux/bootstrap: Likewise. * doc/maintain.texi: Likewise. * gnulib-tool: Likewise. * lib/allocator.h: Likewise. * lib/argp-ba.c: Likewise. * lib/argp-pv.c: Likewise. * lib/canon-host.c: Likewise. * lib/canonicalize-lgpl.c: Likewise. * lib/float.in.h: Likewise. * lib/fstat.c: Likewise. * lib/getdelim.c: Likewise. * lib/getprogname.c: Likewise. * lib/glthread/thread.h: Likewise. * lib/intprops.h: Likewise. * lib/mbsrtowcs-state.c: Likewise. * lib/safe-read.c: Likewise. * lib/signal.in.h: Likewise. * lib/stat.c: Likewise. * lib/stdbool.in.h: Likewise. * lib/stdio-impl.h: Likewise. * lib/stdio.in.h: Likewise. * lib/sysexits.in.h: Likewise. * lib/timespec.h: Likewise. * lib/wcsrtombs-state.c: Likewise. * m4/alloca.m4: Likewise. * m4/extern-inline.m4: Likewise. * m4/fstatat.m4: Likewise. * m4/gnulib-common.m4: Likewise. * m4/lib-ignore.m4: Likewise. * m4/printf.m4: Likewise. * m4/regex.m4: Likewise. * m4/stat-size.m4: Likewise. * m4/std-gnu11.m4: Likewise. * m4/stdbool.m4: Likewise. * m4/sys_types_h.m4: Likewise. * m4/threadlib.m4: Likewise. * m4/vararrays.m4: Likewise. * pygnulib/GLImport.py: Likewise. * tests/test-exp.h: Likewise. * tests/test-exp2.h: Likewise. * tests/test-expm1.h: Likewise. * tests/test-fflush2.c: Likewise. * tests/test-getopt_long.h: Likewise. * tests/test-intprops.c: Likewise. * tests/test-log.h: Likewise. * tests/test-log10.h: Likewise. * tests/test-log1p.h: Likewise. * tests/test-log2.h: Likewise. * tests/test-printf-posix.h: Likewise. * tests/test-regex.c: Likewise. * tests/test-snprintf-posix.h: Likewise. * tests/test-sprintf-posix.h: Likewise. * tests/test-stdalign.c: Likewise. * tests/test-stdbool.c: Likewise. * tests/test-vasnprintf-posix.c: Likewise. * tests/test-vasprintf-posix.c: Likewise. * top/maint.mk: Likewise. 2017-11-12 Bruno Haible faccessat: Make the last change more robust. * m4/faccessat.m4 (gl_FUNC_FACCESSAT): Require gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK. Treat "guessing yes" like "yes". 2017-11-11 Paul Eggert faccessat: port to macOS (Bug#29231) macOS faccessat has the same bug that lstat does: if the file name ends in '/' it ignores the trailing slash. Problem reported for Emacs by Vincent Zhang. * doc/posix-functions/faccessat.texi (faccessat): Document this. * lib/faccessat.c (_GL_INCLUDING_UNISTD_H): Define and undef around the initial includes. Include errno.h, string.h, sys/stat.h. (orig_faccessat) [HAVE_FACCESSAT]: New function. Include "unistd.h" after defining it. (rpl_faccessat) [HAVE_FACCESSAT]: New implementation. * lib/unistd.in.h (faccessat) [REPLACE_FACCESSAT]: Handle in the usual way. * m4/faccessat.m4 (gl_FUNC_FACCESSAT): Replace faccessat if lstat dereferences symlinks, since faccessat is likely to have the same problem. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Default REPLACE_ACCESSAT. * modules/faccessat (Depends-on): Add fstatat. Depend if REPLACE_FACCESSAT is 1, too. (configure.ac): Link if REPLACE_FACCESSAT is 1. * modules/faccessat-tests (Depends-on): Add symlink. * modules/unistd (unistd.h): Substitute REPLACE_FACCESSAT. * tests/test-faccessat.c (main): Test for the bug. 2017-11-11 Bruno Haible getprogname: Fix compilation error on IRIX. * lib/getprogname.c (getprogname) [__sgi]: Fix type of local variable 'namesize'. 2017-11-11 Bruno Haible year2038: Tweak last patch. * m4/year2038.m4 (gl_YEAR2038): Correct indentation. 2017-11-06 Paul Eggert year2038: be more insistent about 64-bit time_t Applications requiring access to arbitrary files should not be built with 32-bit time_t on hosts that have 64-bit timestamps, as this can lead to real trouble at runtime. * m4/year2038.m4 (gl_YEAR2038): Do not require AC_CANONICAL_HOST. Check on all systems, not just MinGW. Use a heuristic involving TIME_T_32_BIT_OK, cross_compiling, and the touch command to output a failure or just a warning, to make it more likely that builders will select 64-bit time_t. 2017-11-05 Paul Eggert havelib: fix typo in previous change * m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Fix typo. Don’t use AC_EGREP_CPP if affected by CFLAGS * m4/float_h.m4 (gl_FLOAT_H): * m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): * m4/lib-ld.m4 (AC_LIB_PROG_LD): * m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): * m4/year2038.m4 (gl_YEAR2038): Prefer AC_COMPILE_IFELSE to AC_EGREP_CPP when testing conditions likely to be affected by the choice of CFLAGS, since CFLAGS are not used by AC_EGREP_CPP. Without this patch, ‘./configure CFLAGS="-m32"’ fails on gzip with GNU/Linux x86-64. fstatat: pacify GCC on unusual platform * lib/fstatat.c (orig_fstatat) [!HAVE_WORKING_FSTATAT_ZERO_FLAG]: Omit, as it’s unused in this case. 2017-10-29 Paul Eggert timespec: prefer ‘assume’ to ‘assure’ This avoids some runtime tests. The rest of the module makes similar assumptions and there is little point to testing here. * lib/timespec.h: Include verify.h instead of assure.h. (timespec_cmp): Use ‘assume’, not ‘assure’. Also, remove an unnecessary cast to ‘int’, as lots of other code in this module now causes -Wconversion to complain, and this is a problem with -Wconversion not with the code. * modules/timespec (Depends-on): Depend on ‘verify’, not ‘assure’. Port recent gnulib-tool change to Dash * gnulib-tool (func_create_testdir): Don't assume that the shell retokenizes after expanding "$@" inside the call to func_execute_command. Dash 0.5.8-2.1ubuntu2 does not. 2017-10-27 Jim Meyering timespec.h: use "assure" to avoid a spurious warning * lib/timespec.h: Include "assure.h" and use it to help gcc7's -Wstrict-overflow avoid a false positive warning for a use in coreutils' ls.c. Suggested by Paul Eggert in https://lists.gnu.org/r/bug-gnulib/2017-10/msg00007.html * modules/timespec (Depends-on): Add assure. 2017-10-29 Bruno Haible Avoid several test failures with traditional locales on Haiku. * m4/locale-ar.m4 (gt_LOCALE_AR): On BeOS and Haiku, set LOCALE_AR=none. * m4/locale-fr.m4 (gt_LOCALE_FR): On BeOS and Haiku, set LOCALE_FR=none. * m4/locale-ja.m4 (gt_LOCALE_JA): On BeOS and Haiku, set LOCALE_JA-none. * m4/locale-zh.m4 (gt_LOCALE_ZH_CN): On BeOS and Haiku, set LOCALE_ZH_CN=none. 2017-10-29 Bruno Haible strerror_r-posix: Fix behaviour and test failure on Haiku. * lib/strerror_r.c (strerror_r): Don't assume that valid error numbers are positive. Work around return value 0 instead of ERANGE on Haiku. For unknown error numbers, use a format string consistent with perror(). * doc/posix-functions/strerror_r.texi: Mention the Haiku problem. * tests/test-strerror_r.c (main): Don't assume that valid error numbers are positive. 2017-10-29 Bruno Haible get-rusage-data: Avoid crash on Haiku. * lib/get-rusage-data.c: Avoid the setlimit-based implementation. 2017-10-29 Bruno Haible get-rusage-as: Avoid crash on Haiku. * lib/get-rusage-as.c: Avoid the setlimit-based implementation. 2017-10-29 Bruno Haible ilogbl: Ensure replacement on Haiku. * m4/ilogbl.m4 (gl_FUNC_ILOGBL): Invoke gl_FUNC_ILOGBL_WORKS and set REPLACE_ILOGBL if ilogbl does not work. (gl_FUNC_ILOGBL_WORKS): New macro. * lib/math.in.h (ilogbl): Replace if REPLACE_ILOGBL is 1. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_ILOGBL. * modules/math (Makefile.am): Substitute REPLACE_ILOGBL. * modules/ilogbl (Depends-on, configure.ac): Consider REPLACE_ILOGBL. * doc/posix-functions/ilogbl.texi: Mention the Haiku problem. 2017-10-29 Bruno Haible expl: Ensure replacement on Haiku. * m4/expl.m4 (gl_FUNC_EXPL): Test whether an expl() return value is zero. * doc/posix-functions/expl.texi: Mention the Haiku problem. 2017-10-29 Bruno Haible math: Fix test failure on Haiku. * lib/math.in.h (FP_ILOGB0, FP_ILOGBNAN): Override on Haiku. * m4/ilogb.m4 (gl_FUNC_ILOGB_WORKS): Update accordingly. * m4/ilogbf.m4 (gl_FUNC_ILOGBF_WORKS): Likewise. * doc/posix-headers/math.texi: Mention the Haiku problem. 2017-10-29 Bruno Haible gnulib-tool: Avoid unnecessary config.h.in remaking in testdirs. * gnulib-tool (func_create_testdir): Use workaround against 'autoheader' bug reported at . 2017-10-29 Bruno Haible crypto/*: Verify that the header file is self-contained. * tests/test-gc-*.c: Include the module's header file immediately after . * tests/test-hmac-*.c: Likewise. * tests/test-arcfour.c: Likewise. * tests/test-arctwo.c: Likewise. * tests/test-des.c: Likewise. * tests/test-md2.c: Likewise. * tests/test-md4.c: Likewise. * tests/test-md5.c: Likewise. * tests/test-rijndael.c: Likewise. * tests/test-sha1.c: Likewise. * tests/test-sm3.c: Likewise. 2017-10-29 Jia Zhang Bruno Haible crypto/gc: fix build failure with -Werror=suggest-attribute=const * lib/gc.h (gc_hash_digest_length): Mark with 'const' attribute. 2017-10-29 Jia Zhang New module: crypto/gc-sm3 * lib/gc.h: Declare SM3-related stuffs. * lib/gc-gnulib.c: Support sm3 in internal functions. * lib/gc-libgcrypt.c: Support sm3 with libgcrypt. * m4/gc-sm3.m4: m4 file for gc-sm3 module. * modules/crypto/gc-sm3: Define gc-sm3 module. * tests/test-gc-sm3.c: Implement SM3 test case with libgcrypt. * modules/crypto/gc-sm3-tests: Define gc-sm3 test module. * MODULES.html.sh: List gc-sm3 module. 2017-10-29 Bruno Haible random, random_r: Mention different prototypes on Haiku. * doc/posix-functions/random.texi: Mention different prototype on Haiku. * doc/glibc-functions/random_r.texi: Likewise. * doc/glibc-functions/initstate_r.texi: Likewise. * doc/glibc-functions/setstate_r.texi: Likewise. 2017-10-28 Bruno Haible posix_spawn: Avoid spurious message in configure output. * m4/posix_spawn.m4 (gl_POSIX_SPAWN_WORKS): Discard stderr output from 'cmp' command. 2017-10-28 Bruno Haible inet_ntop, inet_pton: Determine needed library correctly on Haiku. * m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): Search also in libnetwork. * m4/inet_pton.m4 (gl_FUNC_INET_PTON): Likewise. 2017-10-28 Bruno Haible ioctl: Override non-POSIX declaration on Haiku. * m4/ioctl.m4 (gl_FUNC_IOCTL): Include also . * lib/sys_ioctl.in.h: Add comment about Haiku. * doc/posix-functions/ioctl.texi: Mention Haiku problem. * doc/glibc-headers/sys_ioctl.texi: Likewise. 2017-10-28 Bruno Haible crypto/sm3: Add overview documentation to the .h file. * lib/sm3.h: Add comments. 2017-10-28 Jia Zhang New module: crypto/sm3 This new module can be used to compute SM3 message digest of files or memory blocks according to the specification GM/T 004-2012 Cryptographic Hash Algorithm SM3, published by State Cryptography Administration, China. The official SM3 cryptographic hash algorithm specification is available at http://www.sca.gov.cn/sca/xwdt/2010-12/17/content_1002389.shtml * lib/sm3.h: Declare the APIs of sm3 module. * lib/sm3.c: Implement SM3 hash algorithm. * m4/sm3.m4: m4 file for sm3 module. * modules/crypto/sm3: Define sm3 module. * tests/test-sm3.c: Implement SM3 test case. * modules/crypto/sm3-tests: Define sm3 test module. * MODULES.html.sh: List sm3 module. 2017-10-28 Jia Zhang gc-libgcrypt: fix undefined enum type in switch statement Resolve the following build failure: lib/gc-libgcrypt.c: In function 'gc_hash_open': lib/gc-libgcrypt.c:317:5: error: case value '0' not in enumerated type 'Gc_hash_mode {aka enum Gc_hash_mode}' [-Werror=switch] case 0: ^~~~ * lib/gc.h (enum Gc_hash_mode): Add value GC_NULL. * lib/gc-libgcrypt.c (gc_hash_open): Use this enum value instead of 0. 2017-10-28 Jia Zhang gc-libgcrypt: fix assignment error due to -Werror=pointer-sign Resolve the following build failure: lib/gc-libgcrypt.c: In function 'gc_hash_read': lib/gc-libgcrypt.c:460:14: error: pointer targets in assignment differ in signedness [-Werror=pointer-sign] digest = gcry_md_read (ctx->gch, 0); ^ * lib/gc-libgcrypt.c (gc_hash_read): Cast result of gcry_md_read. 2017-10-26 Bruno Haible havelib: Fix value of LD for 32-bit compilation on NetBSD/sparc64. * m4/lib-ld.m4 (AC_LIB_PROG_LD): On NetBSD/sparc64 with CC="gcc -m32", set LD to '/usr/bin/ld -m elf32_sparc', not '/usr/bin/ld'. 2017-10-21 Paul Eggert glob: fix another heap buffer overflow Problem reported by Tim Rühsen in: https://sourceware.org/bugzilla/show_bug.cgi?id=22332 * lib/glob.c (glob): Avoid buffer overrun when unescaping. 2017-10-19 Paul Eggert quotearg: pacify compiler re unsigned * lib/quotearg.c (quotearg_n_options): Rewrite to avoid diagnostic from overly-picky compiler. Problem reported by Sami Kerola in: https://lists.gnu.org/r/bug-gnulib/2017-10/msg00060.html glob: fix heap buffer overflow * lib/glob.c (glob): Fix off-by-one error introduced into glibc in commit dd7d45e838a42b0ed470c44b55901ea98d0c2bab dated 1997-10-29 20:33:40. Problem reported by Tim Rühsen in: https://sourceware.org/bugzilla/show_bug.cgi?id=22320 Fix suggested by Bruno Haible. 2017-10-18 Paul Eggert glob: pacify fuzzer for mempcpy Problem reported by Tim Rühsen in: https://lists.gnu.org/r/bug-gnulib/2017-10/msg00054.html * lib/glob.c (glob): Do not pass NULL to mempcpy. 2017-10-12 Bruno Haible doc: Fix syntax error (regression from 2017-10-03). * doc/posix-functions/strncpy.texi: Fix syntax error. 2017-10-12 Bruno Haible doc: Update for Solaris 11.3. * doc/**/*.texi: For bugs that exist in both Solaris 11.0 and 11.3, mention Solaris 11.3. * m4/log2.m4: Fix comments. * m4/log2f.m4: Likewise. * m4/printf.m4: Update comments. * m4/rename.m4: Likewise. * m4/strncat.m4: Likewise. all: Write "Solaris 11.0" instead of "Solaris 11 2011-11". 2017-10-10 Bruno Haible doc: Improve doc about ioctl. * doc/posix-functions/ioctl.texi: Fix list of platforms with non-POSIX prototype. 2017-10-09 Bruno Haible wcwidth: Don't use obsolete syntax of 'test'. Reported by Eric Blake. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Don't optimize two 'test' invocations into one, as POSIX marks '-a' and '-o' as "obsolescent". 2017-10-09 Bruno Haible getopt-posix: Fix build failure when using ac_cv_header_getopt_h=no. Reported by Christian Ehrhardt and Daniel P. Berrange . * lib/unistd.in.h (getopt): Don't attempt to avoid namespace pollution on glibc systems. The getopt-pfx-core.h file declares exactly what unistd.h needs, nothing more. 2017-10-08 Bruno Haible vma-iter: Improve support for FreeBSD. * lib/vma-iter.c (vma_iterate_proc): New function, extracted from vma_iterate. (vma_iterate): Use it. For FreeBSD, try vma_iterate_bsd first. 2017-10-08 Bruno Haible vma-iter: Fix truncated result on NetBSD (regression from 2017-10-07). * lib/vma-iter.c (MIN_LEFTOVER): Define to 1, not 0. 2017-10-07 KO Myung-Hun test-framework-sh: Fix 'invalid path dir' error. On OS/2, a path separator is ';' not ':'. And ':' is used as a separator between a drive letter and directory parts. As a result, an absolute path such as x:/path/to/dir on OS/2 is treated as an invalid path dir. * tests/init.sh (PATH_SEPARATOR): Set at startup. (path_prepend_): '?:*' is also an absolute path. Use $PATH_SEPARATOR instead of hard coded ':'. 2017-10-07 Bruno Haible vma-iter: Fix truncated result on Linux (regression from 2017-09-26). * lib/vma-iter.c (MIN_LEFTOVER): New macro. (STACK_ALLOCATED_BUFFER_SIZE): Set to a minimal value if not needed. (rof_open): On Linux, do multiple read() calls and make sure MIN_LEFTOVER bytes are left when read() returns. 2017-10-07 Bruno Haible vma-iter: Improve support for GNU/Hurd. * lib/vma-iter.c (vma_iterate): On GNU/Hurd, use the Mach vm_region() API, not the /proc file system. 2017-10-07 Bruno Haible test-framework-sh: Don't require bash on Windows and OS/2. Reported by KO Myung-Hun. * tests/test-init.sh: Use 'shopt' only when running in bash. 2017-10-06 KO Myung-Hun wcwidth: check a macro version of wcwidth () as well * lib/wchar.in.h: Revert commit from 2016-01-14. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Test if wcwidth is a macro. 2017-10-06 Bruno Haible getopt-posix: Clarify copyright header. * lib/getopt.in.h: Don't state that gnulib is under LGPL. * lib/getopt-pfx-core.h: Likewise. * lib/getopt-pfx-ext.h: Likewise. * lib/getopt-cdefs.in.h: Likewise. 2017-10-03 Bruno Haible Fix warning "`gl_HOST_CPU_C_ABI' was expanded before it was required". * modules/host-cpu-c-abi (configure.ac): Require, don't invoke gl_HOST_CPU_C_ABI. 2017-10-03 Bruno Haible doc: warn about misuse of strncpy and wcsncpy. * doc/posix-functions/strcpy.texi: Describe requirements on prior memory allocation. * doc/posix-functions/wcscpy.texi: Likewise. * doc/posix-functions/strncpy.texi: Describe what this function is not useful for. * doc/posix-functions/wcsncpy.texi: Likewise. 2017-10-02 Paul Eggert fsuage: fix typo in previous change * lib/fsusage.c: Remove stray include of full-read.h. Problem reported by Sam Steingold for macOS (Bug#28669). 2017-10-01 Paul Eggert fsusage: remove SVR2 support SVR2 was obsolete by 1986 and is no longer supported by anybody, and its code was getting in the way of use of this module by Emacs, which has its own ‘read’ function anyway. * lib/fsusage.c: Do not include sys/filsys.h. (get_fs_usage): Remove SVR2-specific code. * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Do not test for sys/filsys.h or set STAT_READ_FILSYS. * modules/fsusage (Depends-on): Do not depend on full-read. Simplify autoupdate of licenses * config/srclistvars.sh (GNUWWWLICENSES): Move to a more-typical place. 2017-10-01 Bruno Haible vma-iter: Add support for GNU/Hurd. * lib/vma-iter.c: Treat GNU/Hurd like Linux. * lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define also on GNU/kFreeBSD. 2017-09-30 Bruno Haible vma-iter: Make it work on 32-bit Solaris with module 'largefile'. * modules/vma-iter: Don't test for sys/procfs.h, as this test would fail when module 'largefile' is in use. * lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Don't test HAVE_SYS_PROCFS_H. * lib/vma-iter.c: Undefine _FILE_OFFSET_BITS early. Don't test HAVE_SYS_PROCFS_H. 2017-09-30 Bruno Haible havelib: Make it work for CC="gcc -m32" (regression from 2017-02-19). * m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Require gl_HOST_CPU_C_ABI. When $CC produces 32-bit code, set acl_libdirstem to 'lib', not 'lib64'. * modules/havelib (Depends-on): Add host-cpu-c-abi. 2017-09-30 Bruno Haible uniname/uniname: Don't assume C99 compiler (regression from 2015-02-16). * lib/uniname/uniname.c (unicode_name_character): Add braces around scope of local variables. 2017-09-28 Bruno Haible string: code style * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Reorder list of substitutable variables. * modules/string (Makefile.am): Likewise. 2017-09-26 Bruno Haible uniname/uniname-tests: Tighten code. * tests/uniname/test-uninames.c (fill_names, fill_aliases): Merge two local variables into one. 2017-09-26 Bruno Haible vma-iter: Improvements for Linux and BSD platforms. - Add support for DragonFly BSD. - Make it more reliable on Linux, GNU/kFreeBSD, FreeBSD, NetBSD. * lib/vma-iter.c (struct rofile, rof_open, rof_peekchar, rof_close): Read the entire file into memory in a single system call. (vma_iterate): Update. Read from /proc on DragonFly BSD like on FreeBSD. * lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define also on DragonFly BSD. 2017-09-26 Bruno Haible vma-iter: Provide the protection flags on FreeBSD. * lib/vma-iter.c (vma_iterate) [FreeBSD]: When reading from /proc, skip three fields between the addresses and the protection flags. 2017-09-26 Paul Eggert glob: remove bogus extern decl * lib/glob.c (__glob_pattern_type): Remove now-spurious extern declaration. Problem reported by Adhemerval Zanella in: https://sourceware.org/ml/libc-alpha/2017-09/msg00972.html 2017-09-25 Paul Eggert uniname/uniname-tests: integer overflow fix * tests/uniname/test-uninames.c (fill_names, fill_aliases): Check for integer overflow. duplocale-tests: fix unlikely crash * tests/test-duplocale.c (get_locale_dependent_values): Don’t crash with absurdly long month names. maint: fix overflow checking in nap.h * modules/chown-tests: * modules/fchownat-tests, modules/fdutimensat-tests: * modules/futimens-tests, modules/lchown-tests: * modules/stat-time-tests, modules/utime-tests: * modules/utimens-tests, modules/utimensat-tests: Depend on intprops. * tests/nap.h: Include intprops.h. (diff_timespec): Handle overflow properly. sys_types: update URL * m4/sys_types_h.m4: Use https: URL. parse-datetime: fix dependency * modules/parse-datetime (Depends-on): Depend on nstrftime, not strftime. parse-datetime, posixtm: avoid uninit access * lib/parse-datetime.y (parse_datetime2): * lib/posixtm.c (posixtime): Do not access uninitialized storage, even though the resulting value is never used. 2017-09-25 Bruno Haible vma-iter: Improvements for BSD platforms. - Add support for GNU/kFreeBSD. - Make it work on FreeBSD and NetBSD even when /proc is not mounted. - Speed up on OpenBSD. * lib/vma-iter.c (struct rofile, rof*): Define also on GNU/kFreeBSD. (vma_iterate_bsd): New function. (vma_iterate): Use it as fallback on FreeBSD and NetBSD. Use it as first choice on OpenBSD. Treat GNU/kFreeBSD like Linux. * lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define also on GNU/kFreeBSD. * modules/vma-iter (configure.ac): Require AC_C_INLINE. 2017-09-23 Bruno Haible strfmon_l: New module. * modules/strfmon_l: New file. * lib/strfmon_l.c: New file. * m4/strfmon_l.m4: New file. * doc/posix-functions/strfmon_l.texi: Mention the new module. * modules/strfmon_l-tests: New file. * tests/test-strfmon_l.c: New file. monetary: New module. * modules/monetary: New file. * lib/monetary.in.h: New file. * m4/monetary_h.m4: New file. * doc/posix-headers/monetary.texi: Mention the new module. * modules/monetary-tests: New file. * tests/test-monetary.c: New file. * modules/monetary-c++-tests: New file. * tests/test-monetary-c++.cc: New file. * modules/duplocale-tests (configure.ac): Use AC_CHECK_HEADERS_ONCE. 2017-09-23 Bruno Haible duplocale tests: Fix test crash on Linux/x86. * tests/test-duplocale.c (test_with_uselocale): Disconnect the mixed2 locale from the current thread before freeing it. 2017-09-21 Paul Eggert mktime: port to OpenVMS Problem reported by John E. Malmberg in: https://lists.gnu.org/r/bug-gnulib/2017-09/msg00100.html * m4/mktime.m4 (TIME_T_IS_SIGNED): Default to 0. 2017-09-16 Paul Eggert manywarnings: port to GCC on 64-bit MS-Windows * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Work better if LONG_MAX < PTRDIFF_MAX. Problem reported by Richard Copley in: https://lists.gnu.org/r/emacs-devel/2017-09/msg00392.html 2017-09-13 Bruno Haible all: Replace many more http URLs by https URLs. Update stale URLs. * users.txt: Remove mention of 'newts'. * lib/localename.c: Update comment about LANG_SOTHO. 2017-09-13 Paul Eggert all: Replace many http URLs by https URLs. 2017-09-12 Bruno Haible doc: Prefer https URLs where possible. * doc/**/*.texi: Use https URLs instead of http URLs where possible. * doc/ld-output-def.texi: Remove unavailable URL. 2017-09-12 Paul Eggert maintainer-makefile: FTP -> HTTPS * top/maint.mk (url_dir_list, ftp-gnu): Use HTTPS protocol instead of FTP, which is planned to be decommissioned on 2017-11-01. 2017-09-12 Tim Rühsen (tiny change) libc-config: Fix __GNUC_PREREQ macro. * lib/libc-config.h (__GNUC_PREREQ): Use __GNUC_MINOR__, not __GNUC_MINOR. 2017-09-09 Bruno Haible gnulib-tool: Simplify commit from 2015-08-20. * gnulib-tool (func_add_or_update): Remove local variable is_binary_file. 2017-09-08 Bruno Haible stddef: Avoid conflict with system-defined max_align_t. The configure-determined HAVE_MAX_ALIGN_T may not always be accurate. Reported by Werner Lemberg in . * lib/stddef.in.h (rpl_max_align_t): Renamed from max_align_t. (max_align_t): Define as a macro. (GNULIB_defined_max_align_t): New macro. Guards against multiple definitions of rpl_max_align_t in different copies of gnulib-generated . 2017-09-05 Paul Eggert libc-config: port to MSVC Problems reported by Gisle Vanem in: http://lists.gnu.org/r/bug-gnulib/2017-09/msg00016.html * lib/libc-config.h (__inline): Don't define if HAVE___INLINE. (libc_hidden_proto): Stick to Standard C syntax for varargs macro. * m4/__inline.m4: New file. * modules/libc-config (Files): Add it. (Depends-on): Use it. glob: Use enum for __glob_pattern_type result From a patch proposed by Adhemerval Zanella in: https://sourceware.org/ml/libc-alpha/2017-09/msg00212.html * lib/glob_internal.h (GLOBPAT_NONE, GLOBPAT_SPECIAL) (GLOBPAT_BACKSLASH, GLOBPAT_BRACKET): New constants. * lib/glob_internal.h (__glob_pattern_type): * lib/glob.c (glob): * lib/glob_pattern_p.c (__glob_pattern_p): Use them. glob: fix for use in glibc Problem reported by Adhemerval Zanella in: https://sourceware.org/ml/libc-alpha/2017-09/msg00213.html * lib/glob.c (DT_UNKNOWN, DT_DIR, DT_LINK): Do not redefine if _LIBC. 2017-09-02 Paul Eggert glob: fix bugs with long login names Problem reported by Adhemerval Zanella in: https://sourceware.org/ml/libc-alpha/2017-08/msg00455.html * lib/glob.c (GET_LOGIN_NAME_MAX): Remove. (glob): Use the same scratch buffer for both getlogin_r and getpwnam_r. Don’t require preallocation of the login name. This simplifies storage allocation, and corrects the handling of long login names. 2017-09-02 Bruno Haible dirent: Update doc. * doc/posix-headers/dirent.texi: More concrete list of platforms. 2017-09-02 Paul Eggert glob: fix getpwnam_r errno typo * lib/glob.c (glob): Fix longstanding misuse of errno after getpwnam_r, which returns an error number rather than setting errno. glob: fix typo in recent change * lib/glob.c (glob) [!HAVE_GETPWNAM_R && !_LIBC]: Fix recently-introduced typo. 2017-09-02 Paul Eggert glob: don't save and restore errno unnecessarily * lib/glob.c (glob): Don't save and restore errno merely because we have getpwnam_r. glob: don't assume getpwnam_r * lib/glob.c (glob): Port recent patches to platforms lacking getpwnam_r. scratch_buffer: don’t use private glibc API Suggested by Florian Weimer in: http://lists.gnu.org/r/bug-gnulib/2017-09/msg00004.html * lib/scratch_buffer.h: Rename to lib/malloc/scratch_buffer.h. * lib/scratch_buffer_grow.c: Rename to lib/malloc/scratch_buffer_grow.c. * lib/scratch_buffer_grow_preserve.c: Rename to lib/malloc/scratch_buffer_grow_preserve.c. * lib/scratch_buffer_set_array_size.c: Rename to lib/malloc/scratch_buffer_set_array_size.c. * lib/scratch_buffer.h: New file. * modules/scratch_buffer (Files, Makefile.am): Adjust to source-file renaming. 2017-09-01 Paul Eggert glob: use scratch_buffer instead of extend_alloca Much of the lib/glob.c part of this patch comes from a glibc patch proposed by Adhemerval Zanella in: https://sourceware.org/ml/libc-alpha/2017-08/msg00456.html * lib/glob.c: Do not include , since , included via glob.h, does this for us now. (__set_errno): Remove, as libc-config does this for us now. Include . (GETPW_R_SIZE_MAX): Remove. (glob): Use struct scratch_buffer instead of extend_alloca. * lib/glob.in.h: Include libc-config.h rather than including conditionally. (__BEGIN_DECLS, __END_DECLS, __THROW, __THROWNL, attribute_hidden) (__glibc_unlikely, __restrict, weak_alias): Remove, as libc-config does this for us now. * m4/glob.m4 (gl_PREREQ_GLOB): Remove sys/cdefs.h tests; no longer needed. * modules/glob (Depends-on): Add libc-config, scratch_buffer. (glob.h): Do not replace HAVE_SYS_CDEFS_H. scratch_buffer: new module * lib/scratch_buffer.h, lib/scratch_buffer_grow.c: * lib/scratch_buffer_grow_preserve.c: * lib/scratch_buffer_set_array_size.c: New files, copied from glibc with very minor changes that can be copied back. * modules/scratch_buffer: New file. libc-config: new module * MODULES.html.sh: Add libc-config. * lib/cdefs.h: New file, copied from the GNU C Library with very minor changes that can be copied back. * lib/libc-config.h, modules/libc-config: New files. 2017-08-31 Paul Eggert glob: match dangling symlinks This fixes a bug I inadvertently introduced to Gnulib when I merged glibc glob back into gnulib on 2007-10-16. This fix is inspired by a patch proposed for glibc by Adhemerval Zanella in: https://sourceware.org/ml/libc-alpha/2017-08/msg00446.html * doc/posix-functions/glob.texi: Update list of affected platforms. * lib/glob.c (__lstat64): New macro. (is_dir): New function. (glob, glob_in_dir): Match symlinks even if they are dangling. (link_stat, link_exists_p): Remove. All uses removed. * lib/glob.in.h (__attribute_noinline__): Remove; no longer used. * m4/glob.m4 (gl_PREREQ_GLOB): Do not check for fstatat. * modules/glob-tests (Depends-on): Add symlink. * tests/test-glob.c: Include errno.h, unistd.h. (BASE): New macro. (main): Test dangling symlinks, if symlinks are supported. glob, backupfile: inode 0 is a valid inode number * doc/posix-functions/readdir.texi (readdir): * doc/posix-headers/dirent.texi (dirent.h): Document more readdir portability issues. * lib/backupfile.c (REAL_DIR_ENTRY): Remove. (numbered_backup): Don’t treat inode 0 any differently from other inode values. * lib/glob.c (struct readdir_result): Remove skip_entry member. (readdir_result_skip_entry, D_INO_TO_RESULT): Remove. All uses removed. * modules/glob (Depends-on): Remove d-ino. glob: simplify symlink detection * lib/glob.c (dirent_type): New type. Use uint_fast8_t not uint8_t, as C99 does not require uint8_t. (struct readdir_result): Use it. Do not define skip_entry unless it is needed; this saves a byte on platforms lacking d_ino. (readdir_result_type, readdir_result_skip_entry): New functions, replacing ... (readdir_result_might_be_symlink, readdir_result_might_be_dir): ... these functions, which were removed. This makes the callers easier to read. All callers changed. (D_INO_TO_RESULT): Now empty if there is no d_ino. 2017-08-30 Pádraig Brady fts-tests: tag as a longrunning-test so not included by default * modules/fts-tests: This test takes about 20s on current systems, and uses about 285M of space on ext4. 2017-08-30 Pádraig Brady renameat2: fix compilation on alpine linux * m4/renameat.m4: Check for presence. * lib/renameat2.h: Only include if present. Reported by Assaf Gordon on Alpine Linux. 2017-08-24 Paul Eggert glob: try to port recent changes to MS-Windows Problem reported by Bruno Haible in: http://lists.gnu.org/r/bug-gnulib/2017-08/msg00170.html * lib/glob.c (__glob_pattern_p) [!_LIBC]: Move from here ... * lib/glob.in.h (__glob_pattern_p): ... to here. 2017-08-24 Eric Blake warnings: fix compilation with old autoconf * m4/warnings.m4 (gl_UNKNOWN_WARNINGS_ARE_ERRORS(C)) (gl_UNKNOWN_WARNINGS_ARE_ERRORS(C++)): Use m4_defun rather than AC_DEFUN. * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC(C)) (gl_MANYWARN_ALL_GCC(C++)): Likewise. 2017-08-24 Bruno Haible glob: Fix compilation error on NetBSD 7.0 and OpenBSD 6.0. * modules/glob (Depends-on): Add c99. 2017-08-24 Paul Eggert glob: fix typo that broke platforms lacking d_ino This typo also hurt performance on GNU/Linux and similar hosts. * lib/glob.c (D_INO_TO_RESULT): Fix typo (reversed ifdef) in previous change. 2017-08-23 Paul Eggert glob: merge from glibc with Zanella glob changes Merge glob from glibc, with changes for glob proposed by Adhemerval Zanella in the thread starting here: https://sourceware.org/ml/libc-alpha/2017-08/msg01079.html plus some fixes for this merge. * lib/glob_internal.h, lib/glob_pattern_p.c, lib/globfree.c: New files, ported from glibc. * lib/glob-libc.h (_Restrict_): Remove. All uses replaced with __restrict. (__size_t): Remove. All uses replaced by size_t. (size_t): Define by defining __need_size_t and including . This should work even in non-glibc platforms, where any name pollution is OK. Use __USE_MISC instead of __USE_BSD || __USE_GNU. (struct stat64): Don’t worry about __GLOB_GNULIB. (glob, globfree, glob_pattern_p): Remove macros for __USE_FILE_OFFSET64 && __GNUC__ < 2 && !defined __GLOB_GNULIB case. Remove _GL_ARG_NONNULL as GNU behavior is to accept NULL but set errno. * lib/glob.c (_GL_ARG_NONNULL) [!_LIBC]: Remove. All uses removed since the glibc behavior works on null pointers. Do not include stdio.h; old SunOS is irrelevant now. Do not worry about GLOB_ONLY_P as we now mimic glibc here. Include glob_internal.h. (D_INO_TO_RESULT): Depend on (_LIBC || D_INO_IN_DIRENT), not ((POSIX || WINDOWS32) && !__GNU_LIBRARY__). The latter probably worked only coincidentally. (attribute_hidden, __attribute_noinline__, __glibc_unlikely): Remove macros; now done in glob.in.h. (size_add_wrapv): Do not use __builtin_add_overflow if __ICC. (glob): Properly initialize glob structure with GLOB_BRACE|GLOB_DOOFFS (bug 20707). Remove old code using SHELL since Bash no longer uses this. (glob, prefix_array): Separate MS code better. (glob, glob_in_dir): Use C99 decls before statements when glibc does. (glob_in_dir): Remove old Amiga and VMS code. (globfree, __glob_pattern_type, __glob_pattern_p): Move to separate files. * lib/glob.in.h (attribute_hidden, __attribute_noinline__) (__glibc_unlikely): Move here from glob.c. (__restrict): New macro here, replacing the _Restrict_ in glob.c. (weak_alias): New macro. (__size_t): Remove. All uses replaced by size_t. * modules/d-ino (License): Now LGPLv2+, for compatibility with glob. * modules/glob (Files): Add +lib/glob_internal.h, lib/glob_pattern_p.c, lib/globfree.c. (Depends-on): Remove snippet/arg-nonnull. 2017-08-22 Paul Eggert glob: port to clang's Undefined Sanitizer Problem reported by Tim Rühsen in: http://lists.gnu.org/r/bug-gnulib/2017-08/msg00144.html * lib/glob.c (FLEXIBLE_ARRAY_MEMBER) [_LIBC]: Define to empty. (glob_in_dir): Do not rely on undefined behavior in accessing struct members beyond their bounds. Use a flexible array member instead. 2017-08-21 Paul Eggert vc-list-files: port to Solaris 10 * build-aux/vc-list-files: Don't assume test -e works. 2017-08-21 Karl Berry * doc/posix-functions/srandom.texi (srandom): typo }. 2017-08-20 Paul Eggert git-version-gen: port to Solaris 10 Problem reported by Dagobert Michelsen in: http://lists.gnu.org/r/grep-devel/2017-08/msg00002.html * build-aux/git-version-gen (v_from_git): Use expr instead of shell substitution. 2017-08-19 Bruno Haible host-cpu-c-abi: Improve detection of MIPS ABI. * m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): For MIPS, test the value of _MIPS_SIM. 2017-08-17 Bruno Haible hypot tests: Fix test failure on FreeBSD 11.0/x86. * tests/test-hypot.h (test_function): Declare z as 'volatile'. 2017-08-17 Bruno Haible float: Fix LDBL_MIN value on FreeBSD/x86. * lib/float.in.h (LDBL_MIN) [__FreeBSD__]: Add more precision. 2017-08-17 Bruno Haible random: Fix test compilation failure on Cygwin 1.5.25. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_DECL_INITSTATE, HAVE_DECL_SETSTATE. * m4/random.m4 (gl_FUNC_RANDOM): Test whether initstate and setstate are declared. * modules/stdlib (Makefile.am): Substitute HAVE_DECL_INITSTATE, HAVE_DECL_SETSTATE. * lib/stdlib.in.h (initstate): Declare also if HAVE_DECL_INITSTATE is 0. (setstate): Declare also if HAVE_DECL_SETSTATE is 0. * doc/posix-functions/initstate.texi: Mention the Cygwin 1.5.x problem. * doc/posix-functions/random.texi: Likewise. * doc/posix-functions/setstate.texi: Likewise. * doc/posix-functions/srandom.texi: Likewise. 2017-08-16 Bruno Haible stdnoreturn: Fix test compilation failure on Cygwin. * m4/stdnoreturn.m4 (gl_STDNORETURN_H): On Cygwin, use gnulib's replacement. * lib/stdnoreturn.in.h (noreturn): Treat Cygwin like MSVC. * doc/posix-headers/stdnoreturn.texi: Mention the Cygwin problem. 2017-08-16 Bruno Haible thread: Fix conflict with pthread_sigmask module. * lib/glthread/thread.h (pthread_sigmask): Don't declare it weak if it's defined as a macro. * modules/thread (Depends-on): Add pthread_sigmask. 2017-08-16 Paul Eggert rename: port better to NetBSD * doc/posix-functions/rename.texi (rename): NetBSD 7 does not have the link-count bug. * m4/rename.m4 (gl_FUNC_RENAME): Don’t consider NetBSD to be broken merely because rename ("a", "b") removes "a" when the two names are hard links to the same file. 2017-08-16 Bruno Haible iconv_open, uni*: Add support for VPATH builds with OpenBSD 'make'. * modules/iconv_open (Makefile.am): In the rules that use gperf, prefix the target file names with '$(srcdir)/'. * modules/unicase/locale-language (Makefile.am): Likewise. * modules/unicase/special-casing (Makefile.am): Likewise. * modules/unictype/bidiclass-byname (Makefile.am): Likewise. * modules/unictype/category-byname (Makefile.am): Likewise. * modules/unictype/combining-class-byname (Makefile.am): Likewise. * modules/unictype/joininggroup-byname (Makefile.am): Likewise. * modules/unictype/joiningtype-byname (Makefile.am): Likewise. * modules/unictype/property-byname (Makefile.am): Likewise. * modules/unictype/scripts (Makefile.am): Likewise. * modules/uninorm/composition (Makefile.am): Likewise. 2017-08-16 Bruno Haible nonblocking-socket tests: Fix failure on OpenBSD 6.0. * tests/test-nonblocking-socket.h (SOCKET_DATA_BLOCK_SIZE): Increase value for OpenBSD. 2017-08-16 Bruno Haible rename, renameat: Update doc regarding NetBSD. * doc/posix-functions/rename.texi: Clarify that when using -D_XOPEN_SOURCE=500 on NetBSD 7.0, the hard link bug is gone. * doc/posix-functions/renameat.texi: Be more precise about NetBSD version. 2017-08-15 Paul Eggert renameat2: port better to macOS * lib/renameat2.c (renameat2): Use renameatx_np if available. futimens: don’t assume struct timespec layout * m4/futimens.m4 (gl_FUNC_FUTIMENS): * m4/utimensat.m4 (gl_FUNC_UTIMENSAT): * tests/test-fdutimensat.c (main): * tests/test-futimens.h (test_futimens): * tests/test-lutimens.h (test_lutimens): * tests/test-utimens.h (test_utimens): * tests/test-utimensat.c (main): Don’t assume that struct timespec is a two-member structure in tv_sec, tv_nsec order. Although this is true on all platforms we know about, POSIX does not guarantee it. rename: document+test NetBSD rename Test failure reported by Bruno Haible in: http://lists.gnu.org/r/bug-gnulib/2017-08/msg00104.html This is an area where NetBSD is better-behaved than POSIX, so allow the NetBSD behavior in tests. * doc/posix-functions/rename.texi: * doc/posix-functions/renameat.texi: Document NetBSD behavior. * tests/test-rename.h (test_rename): Allow NetBSD behavior. 2017-08-15 Bruno Haible renameat: Ensure declaration in on NetBSD. * lib/stdio.in.h: Include also on NetBSD. * doc/posix-functions/renameat.texi: Mention this problem. 2017-08-15 Bruno Haible duplocale: Work around NetBSD 7.0 bug. * m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Test against the NetBSD 7.0 bug. * lib/duplocale.c: Add comment about NetBSD problem. * doc/posix-functions/duplocale.texi: Mention the NetBSD problem. 2017-08-15 Bruno Haible duplocale tests: Verify use with *_l functions. * modules/duplocale-tests (configure.ac): Test for uselocale and some *_l functions. * tests/test-duplocale.c (test_with_uselocale): New function, extracted from main. (get_locale_dependent_values_from, test_with_locale_parameter): New functions. (main): Test both test_with_uselocale and test_with_locale_parameter. 2017-08-15 Bruno Haible extensions: Enable NetBSD specific extensions. * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Define _NETBSD_SOURCE. 2017-08-14 Bruno Haible open, openat: Update doc about O_CLOEXEC. * doc/posix-functions/open.texi: More concrete list of platforms. * doc/posix-functions/openat.texi: Likewise. 2017-08-14 Paul Eggert open: support O_CLOEXEC * NEWS, doc/posix-functions/open.texi: * doc/posix-functions/openat.texi: Document this. * lib/fcntl.in.h (O_CLOEXEC): Default to a nonzero value. (GNULIB_defined_O_CLOEXEC): New symbol. * lib/open.c: Include cloexec.h. (open): Support O_CLOEXEC. * lib/openat.c: Include cloexec.h. (rpl_openat): Support O_CLOEXEC. * lib/popen-safer.c: Do not include cloexec.h. (open_noinherit): Remove. (popen_safer): Use O_CLOEXEC instead of set_cloexec_flag. * lib/save-cwd.c: Do not include cloexec.h. (save_cwd): Use O_CLOEXEC instead of set_cloexec_flag. * m4/open-cloexec.m4: New file. * m4/open.m4 (gl_FUNC_OPEN): Require gl_PREPROC_O_CLOEXEC. Replace 'open' if O_CLOEXEC is not present. * m4/openat.m4 (gl_FUNC_OPENAT): Require gl_PREPROC_O_CLOEXEC. Replace 'openat' if O_CLOEXEC is not present. * modules/freopen (Depends-on): Depend on 'open' if replacing freopen. * modules/open (Files): Add m4/open-cloexec.m4. (Depends-on): Depend on cloexec if replacing 'open'. * modules/openat (Files): Add m4/open-cloexec.m4. (Depends-on): Depend on cloexec if replacing openat. * modules/popen-safer (Depends-on): Remove cloexec. * modules/save-cwd (Depends-on): Remove cloexec, and add fd-safer-flag and 'open'. 2017-08-13 Paul Eggert reallocarray: minor fixes * doc/glibc-functions/reallocarray.texi: Update version numbers. * m4/reallocarray.m4 (gl_FUNC_REALLOCARRAY): Don't trust _cv_ contents. * modules/reallocarray (License): Change from GPL to LGPL. * tests/test-reallocarray.c (main): Fix ENOMEM typo. Indent properly and don't use tabs. 2017-08-13 Darshit Shah reallocarray: New module reallocarray is a new function in glibc 2.26 to safely allocate an array of memory locations with integer overflow protection. * MODULES.html.sh: Add reallocarray. * doc/glibc-functions/reallocarray.texi: Documentation for reallocarray. * lib/reallocarray.c: New file to implement module reallocarray. * lib/stdlib.in.h: Add function declarations for reallocarray. * m4/reallocarray.m4: New file. * m4/stdlib_h.m4: Declare reallocarray. * modules/reallocarray: New file. * modules/reallocarray-test: New file. * modules/stdlib: Coerce stdlib.h to export reallocarray. * tests/test-reallocarray.c: New test. 2017-08-12 Paul Eggert dirent-safer: fix cloexec race * lib/opendir-safer.c: Include fcntl.h instead of unistd-safer.h. (opendir_safer): Use F_DUPFD_CLOEXEC. * modules/dirent-safer (Depends-on): Add fcntl. Remove unistd-safer. * tests/test-dirent-safer.c: Do not include unistd-safer.h, as it is no longer a prerequisite. Use F_DUPFD_CLOEXEC instead of dup_safer. fts: fix cloexec races * lib/fts.c [!_LIBC]: Do not include dirent--.h, unistd--.h, cloexec.h. (opendirat, diropen): Use O_CLOEXEC instead of set_cloexec_flag. (fts_build): Use F_DUPD_CLOEXEC rinstad of set_cloexec_flag. (fd_ring_check): Set cloexec flag on new file descriptors. (fts_build, fd_ring_check): While we’re at it, make sure the resulting file descriptor is not 0, 1, or 2, since that is easy. 2017-08-11 Bruno Haible fts tests: Fix link error. Reported by Tom G. Christensen in https://lists.gnu.org/r/bug-gnulib/2017-08/msg00078.html * modules/fts-tests (Makefile.am): Link test-fts against LIBINTL. 2017-08-10 Paul Eggert fts: port recent changes to CentOS 6 Problem reported by Tom G. Christensen in: http://lists.gnu.org/r/bug-gnulib/2017-08/msg00064.html * lib/fts.c (fsword): New type. (struct dev_type, filesystem_type): Use it. * m4/fts.m4 (gl_FUNC_FTS_CORE): Check for __fsword_t. Also, check for f_type only if fstatfs and sys/vfs.h work. 2017-08-09 Paul Eggert tempname: do not depend on secure_getenv Excess dependency noted by Eli Zaretskii (Bug#28023#17). * lib/tempname.c (__secure_getenv) [!_LIBC]: Remove; unused. * modules/tempname (Depends-on): Remove secure_getenv. 2017-08-08 Paul Eggert extensions: add _OPENBSD_SOURCE * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Define _OPENBSD_SOURCE. 2017-08-06 Reuben Thomas Bruno Haible manywarnings: Add support for C++. * build-aux/g++-warning.spec: New file. * m4/manywarnings-c++.m4: New file. * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC(C++)): New macro, that redirects to manywarnings-c++.m4. * modules/manywarnings (Files): Add m4/manywarnings-c++.m4. 2017-08-06 Paul Eggert git-version-gen: another fix for tags with "-" * build-aux/git-version-gen: Improve fix for tags containing "-". Suggested by Markus Armbruster in: http://lists.gnu.org/r/bug-gnulib/2017-08/msg00034.html 2017-08-06 Bruno Haible warnings, manywarnings: Add support for multiple languages, not just C. * warnings.m4 (gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL): Renamed from gl_UNKNOWN_WARNINGS_ARE_ERRORS. (gl_UNKNOWN_WARNINGS_ARE_ERRORS(C)): New macro. (gl_UNKNOWN_WARNINGS_ARE_ERRORS(C++)): New macro. (gl_UNKNOWN_WARNINGS_ARE_ERRORS): Dispatch to gl_UNKNOWN_WARNINGS_ARE_ERRORS(_AC_LANG). (gl_WARN_ADD): Require the gl_UNKNOWN_WARNINGS_ARE_ERRORS specialization of the current language. If C++ is the current language, modify WARN_CXXFLAGS instead of WARN_CFLAGS. * manywarnings.m4 (gl_MANYWARN_ALL_GCC(C)): New macro, extracted from gl_MANYWARN_ALL_GCC. (gl_MANYWARN_ALL_GCC): Dispatch to gl_MANYWARN_ALL_GCC(_AC_LANG). 2017-08-06 Markus Armbruster git-version-gen: Fix for tags containing '-' Really old versions of git-describe (before v1.5.0, Feb 2007) don't have the number of commits in their long format output, i.e. where modern 'git describe --abbrev=4 --match="v*"' prints "v0.1-1494-g124b9", they print "v0.1-1494-g124b9". git-version-gen recognizes both patterns, and normalizes the old format to the new one. Unfortunately, this normalization code gets confused when the tag contains '-'. Reproducer: $ git-tag -m test v0.2-rc1 $ build-aux/git-version-gen .tarball-version; echo build-aux/git-version-gen: WARNING: git rev-list failed UNKNOWN We take exact tag "v0.2-rc1" for the old format, extract the presumed tag "v0.2" from it, then run "git rev-list v0.2..HEAD" to count commits since tha tag. Fails, because tag "v0.2" does not exist. * git-version-gen: We could perhaps drop support for versions from more than a decade ago. But tightening the pattern match is easy enough, so do that. Still breaks when you use version tags ending in something matching -g????, but you arguably get what you deserve then. 2017-08-05 Paul Eggert valgrind-tests: use ls, and cache * m4/valgrind-tests.m4: Test ls, not bash. Problem reported by Reuben Thomas. Also, cache the result so that it can be overridden. 2017-08-04 Paul Eggert manywarnings: port to 64-bit GCC builds of Emacs * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Compute max safe object size rather than hardwiring 2147483647. This is needed to build GNU Emacs, which has one conditional (and used only-in-theory) call to malloc with a literal greater than 2147483647. 2017-08-04 Bruno Haible Relax the license of some modules with no runtime code. * modules/std-gnu11 (License): Set to 'unlimited'. * modules/c99 (License): Likewise. Reported by Reuben Thomas . * modules/d-ino (License): Set to 'LGPL'. * modules/host-os (License): Likewise. * modules/longlong (License): Likewise. 2017-08-03 Paul Eggert renameat2: port to RHEL 7 + NFS * lib/renameat2.c (renameat2) [SYS_renameat2]: Port to RHEL 7 + NFS. Problem reported by Ted Zlatanov in: http://lists.gnu.org/r/emacs-devel/2017-08/msg00082.html 2017-08-02 Paul Eggert renameat2: port to non-renameat platforms Problem reported for MSVC-2015 by Gisle Vanem in: http://lists.gnu.org/r/bug-gnulib/2017-08/msg00001.html * lib/renameat2.c [!HAVE_RENAMEAT]: Include here too. (renameat2) [!HAVE_RENAMEAT]: Fix typo in arg passing. 2017-08-01 Paul Eggert manywarnings: port to 32-bit GCC bug Problem reported by Pino Toscano in: http://lists.gnu.org/r/bug-gnulib/2017-07/msg00150.html * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Use 2**31 - 1, not 2**63 - 1, to work around the following GCC bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81650 2017-07-30 Paul Eggert backupfile: new function to validate backup suffix * lib/backupfile.c (set_simple_backup_suffix): New function. (backupfile_internal): Use it. canonicalize: fix EOVERFLOW commentary Problem reported by Bruno Haible in: http://lists.gnu.org/r/bug-gnulib/2017-07/msg00147.html * lib/canonicalize.c (canonicalize_filename_mode): * lib/canonicalize-lgpl.c (__realpath): Fix comments. Don't interpret EOVERFLOW to mean nonexistence * lib/fts.c (fts_stat): If lstat fails, report its errno, which may be EOVERFLOW; this is likely more useful than reporting the stat errno. * lib/glob.c (link_stat): Rename from link_exists2_p and return -1/0 instead of 0/1. Caller changed. * lib/glob.c (link_exists_p): * lib/renameat2.c (rename_noreplace, renameat2): * lib/tempname.c (try_nocreate): If errno == EOVERFLOW then the directory entry exists, so do not act as if it does not exist. backup-rename: new module It is like backupfile, except it avoids some race conditions, and it does not output to stderr or exit. * MODULES.html.sh: Add backup-rename. * lib/backup-find.c, lib/backup-internal.h, lib/backup-rename.c: * modules/backup-rename: New files. * lib/backupfile.c: Turn this into an internals file, which contains code common to backupfile and backup_rename. Include backupfile-internal.h instead of backupfile.h. Do not include argmatch.h or xalloc.h: include xalloc-oversized.h. Include renameat2.h and fcntl.h. (BACKUP_NOMEM): New constant. (numbered_backup): New args BASE_OFFSET and *DIRPP. Do not exit on memory exhaustion; just return BACKUP_NOMEM. Caller changed. (backupfile_internal): Rename from find_backup_file_name. Support new arg RENAME. (backup_args, backup_types, get_version, xget_version): Move to lib/backup-find.c. * lib/backupfile.h (backup_file_rename): New decl. * modules/backupfile (Files): Add lib/backup-internal.h, lib/backup-find.c. (Depends-on): Add dirfd, fcntl, renameat2. (lib_SOURCES): Add backup-find.c. renameat2: port better to older Solaris * lib/renameat2.c (renameat2): Set ret_val properly on old Solaris. Add goto to use a label, to silence picky compilers. fts-tests: port to gcc -Wwrite-strings * tests/test-fts.c (base, base_d): New static vars. (argv, remove_tree, main): Use them. 2017-07-26 Reuben Thomas relocatable-lib{,-lgpl}: improve documentation * doc/relocatable-maint.texi: Document use of relocatable-lib{,-lgpl}. Various other updates. 2017-07-30 Reuben Thomas Bruno Haible relocatable-lib{,-lgpl}: add Valgrind suppressions * lib/relocatable.valgrind: New file. * modules/relocatable-lib (Files): Add relocatable.valgrind. * modules/relocatable-lib-lgpl: Likewise. 2017-07-26 Reuben Thomas relocatable: Make the license on the sources the GPL. * lib/relocatable.h, lib/relocatable.c: Change the copyright notice from LGPL, which was a special case so that the relocatable source files could be used without gnulib-tool, to GPL. They can still be used under the LGPL, using the --lgpl option to gnulib-tool. 2017-07-30 Bruno Haible host-cpu-c-abi: Detect ILP32 ABI on IA-64 HP-UX. * m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Distinguish ia64-ilp32 from ia64. For arm64, test only __aarch64__, as __ARM_64BIT_STATE and __ARM_PCS_AAPCS64 are not reliable indicators: they are not defined on Ubuntu 14.04 (gcc 4.8.4) and Debian 8 (gcc 4.9.2). 2017-07-27 Paul Eggert faccessat: document AT_SYMLINK_NOFOLLOW issue * doc/posix-functions/faccessat.texi: Modernize platform list. Document AT_SYMLINK_NOFOLLOW limitation. renameat2: port to Solaris 10 * lib/renameat2.c (rename_noreplace): Use lstat, not faccessat with AT_SYMLINK_NOFOLLOW (which is not portable). (renameat): Undef before using, to avoid endless recursion when the replacement renameat calls renameat2 which calls the replacement renameat. (renameat2): Use lstatat, not faccessat with AT_SYMLINK_NOFOLLOW. * modules/renameat2 (Depends-on): Remove faccessat. * modules/renameat-tests (test_renameat_LDADD): * modules/renameat2-tests (test_renameat2_LDADD): Remove $(LIB_EACCESS). renameat2: new module Although the Linux syscall renameat2 is not in glibc (yet?), it is useful to have access to its RENAME_NOREPLACE flag. * MODULES.html.sh (func_all_modules): Add renameat2. * lib/renameat2.c, lib/renameat2.h, modules/renameat2: * modules/renameat2-tests, tests/test-renameat2.c: New files. * lib/renameat.c (renameat): Move most of the implementation to renameat2, and just call renameat2. * modules/renameat (Files): Remove lib/at-func2.c. (Depends-on): Depend only on renameat2. (Include): Remove . * modules/renameat-tests (test_renameat_LDADD): Add $(LIB_EACCESS), since renameat (via renameat2) might use faccessat. 2017-07-27 Erik Skultety (tiny change) vc-list-files: Adjust the script to support git worktrees * build-aux/vc-list-files: Require existence, not directory. 2017-07-26 Paul Eggert doc: bring MODULES.html.sh up to date Somehow a few months ago we stopped updating MODULES.html.sh. I don’t recall explicitly deciding this, so I updated it now. Alternatively I suppose we could remove it. * MODULES.html.sh: Add builtin-expect, c99, ctime, explicit_bzero, localtime, localtime-buffer, noreturn, nstrftime, strftime-fixes, truncate, utime, utime-h, windows-stat-inodes, windows-stat-override, windows-stat-timespec, year2038. Sort. 2017-07-26 Jim Meyering fprintftime: fix build-break caused by recent renaming * lib/fprintftime.c: Include "nstrftime.c", not the now-renamed "strftime.c". * modules/fprintftime: Depend directly on nstrftime. 2017-07-26 Paul Eggert regex: work with GCC7's -Werror=implicit-fallthrough= * lib/regex_internal.h (FALLTHROUGH): New macro. * lib/regcomp.c (peek_token_bracket, parse_expression): * lib/regexec.c (check_node_accept): Use it. 2017-07-24 Paul Eggert fts: simplify fts_build * lib/fts.c (fts_build): Simplify, and be lazier about calling leaf_optimization. fts: three levels of leaf optimization * lib/fts.c (enum leaf_optimization): New type with three values. (S_MAGIC_AFS): New macro. Sort them. (leaf_optimization): Rename from leaf_optimization_applies, and return enum leaf_optimization instead of bool. All uses changed. Add cases for unknown type and for AFS. (fts_build): Don’t rely on link counts if NO_LEAF_OPTIMIZATION. fts: cache dirent_inode_sort_may_be_useful too * lib/fts.c (struct dev_type): New struct. (DEV_TYPE_HT_INITIAL_SIZE): New constant. (dev_type_hash, dev_type_compare, filesystem_type): New functions. (dirent_inode_sort_may_be_useful, leaf_optimization_applies): Now takes FTSENT const *, not int. All uses changed. Use filesystem_type to cache. (link_count_optimize_ok): Remove. Caller changed to use leaf_optimization_applies, which now uses shared cache. fts: introduce MIN_DIR_NLINK * lib/fts.c (MIN_DIR_NLINK): New constant. Use it instead of 2, whenever we are talking about link counts. fts: nlink_t signedness fixups * lib/fts.c (fts_open): Set rootparent n_dirs_remaining to -1 so that root need not be a special case later. (fts_read): Remove now-redundant test for fts_level. Do not assume that nlink_t is signed. (fts_build): Remove useless decrement of nlinks. (fts_stat): Avoid unlikely signed integer overflow later, if nlink_t is signed. fts-tests: new module * modules/fts-tests, tests/test-fts.c: New files. 2017-07-23 Bruno Haible Rename module 'strftime' to 'nstrftime'. * m4/nstrftime.m4: Renamed from m4/strftime.m4. * lib/nstrftime.c: Renamed from lib/strftime.c. * modules/nstrftime: Renamed from modules/strftime. (Files, Makefile.am): Update. * tests/test-nstrftime.c: Renamed from tests/test-strftime.c. Fix comment. * modules/nstrftime-tests: Renamed from modules/strftime-tests. (Files, Makefile.am): Update. * modules/strftime: New file, an obsolete indirection. * doc/posix-functions/strftime.texi: Update reference. * config/srclist.txt: Update info. * NEWS: Mention the change. 2017-07-21 Tim Rühsen malloca: Silence a warning from clang's memory sanitizer. * lib/malloca.c (NO_SANITIZE_MEMORY): New macro. (freea): Use it. 2017-07-18 Bruno Haible host-cpu-c-abi: Fix detection of MIPS ABI. * m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): For MIPS, really test the ABI, not the CPU instruction set. 2017-07-16 Paul Eggert explicit_bzero: new module The explicit_bzero function has been added to glibc. This module is intended to supports its use in GNU programs. * doc/glibc-functions/explicit_bzero.texi, lib/explicit_bzero.c: * m4/explicit_bzero.m4, modules/explicit_bzero: New files. * doc/gnulib.texi (Glibc string.h): Link to new doc. * lib/string.in.h (explicit_bzero): Declare. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Add defaults for it. * modules/string (string.h): Substitute its vars. 2017-07-16 Bruno Haible threadlib: Support static linking. * m4/threadlib.m4 (gl_THREADLIB_BODY): When static linking is in use, set gl_cv_have_weak to 'no'. 2017-07-16 Bruno Haible unicase/locale-language: Fix link dependencies. * modules/unicase/locale-language (Link): New section. * modules/unicase/locale-language-tests (Makefile.am): Link test-locale-language program with $(LIBTHREAD). 2017-07-15 John E. Malmberg sys_socket: Add support for OpenVMS. * lib/sys_socket.in.h [__VMS]: Define CMSG_SPACE, CMSG_LEN. * doc/posix-headers/sys_socket.texi: Mention OpenVMS issues. 2017-07-15 John E. Malmberg sys_resource: Add support for OpenVMS. * lib/resource.in.h [__VMS]: Define RUSAGE_SELF, RUSAGE_CHILDREN. * doc/posix-headers/sys_resource.texi: Mention OpenVMS issues. 2017-07-15 John E. Malmberg Bruno Haible math: Add support for OpenVMS. * lib/math.in.h [__VMS]: Include . * doc/posix-headers/math.texi: Mention OpenVMS issues. 2017-07-15 Bruno Haible getdtablesize: Add minimal support for OpenVMS. Reported by John E. Malmberg . * modules/getdtablesize (Description): Fix. * lib/getdtablesize.c: Fix comment. * m4/getdtablesize.m4 (gl_FUNC_GETDTABLESIZE): Don't replace the getdtablesize() function, even though the test fails. * doc/glibc-functions/getdtablesize.texi: Reference SUSv2. Describe limitation on OpenVMS. 2017-07-13 Bruno Haible Revisit cross-compilation guesses. * m4/wctype_h.m4 (gl_WCTYPE_H): Add comment. 2017-07-13 Bruno Haible Improve cross-compilation guesses for native Windows. * m4/btowc.m4 (gl_FUNC_BTOWC): Add cross-compilation guess for native Windows. * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Likewise. * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Likewise. * m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Likewise. * m4/cbrtf.m4 (gl_FUNC_CBRTF_WORKS): Likewise. * m4/cbrtl.m4 (gl_FUNC_CBRTL, gl_FUNC_CBRTL_WORKS): Likewise. * m4/ceil.m4 (gl_FUNC_CEIL): Likewise. * m4/ceilf.m4 (gl_FUNC_CEILF): Likewise. * m4/ceill.m4 (gl_FUNC_CEILL): Likewise. * m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Likewise. * m4/dup.m4 (gl_FUNC_DUP): Likewise. * m4/expl.m4 (gl_FUNC_EXPL): Likewise. * m4/exp2.m4 (gl_FUNC_EXP2_WORKS): Likewise. * m4/exp2l.m4 (gl_FUNC_EXP2L): Likewise. * m4/expm1.m4 (gl_FUNC_EXPM1): Likewise. * m4/expm1f.m4 (gl_FUNC_EXPM1F_WORKS): Likewise. * m4/exponentl.m4 (gl_LONG_DOUBLE_EXPONENT_LOCATION): Likewise. * m4/fabsl.m4 (gl_FUNC_FABSL_WORKS): Likewise. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Likewise. * m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Likewise. * m4/float_h.m4 (gl_FLOAT_H): Likewise. * m4/floor.m4 (gl_FUNC_FLOOR): Likewise. * m4/floorf.m4 (gl_FUNC_FLOORF): Likewise. * m4/fma.m4 (gl_FUNC_FMA_WORKS): Likewise. * m4/fmaf.m4 (gl_FUNC_FMAF_WORKS): Likewise. * m4/fmal.m4 (gl_FUNC_FMAL_WORKS): Likewise. * m4/fmod.m4 (gl_FUNC_FMOD): Likewise. * m4/fmodf.m4 (gl_FUNC_FMODF): Likewise. * m4/fmodl.m4 (gl_FUNC_FMODL): Likewise. * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Likewise. * m4/frexpf.m4 (gl_FUNC_FREXPF_WORKS): Likewise. * m4/ftello.m4 (gl_FUNC_FTELLO): Likewise. * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY_CLOBBER): Likewise. * m4/hypot.m4 (gl_FUNC_HYPOT): Likewise. * m4/hypotf.m4 (gl_FUNC_HYPOTF, gl_FUNC_HYPOTF_WORKS): Likewise. * m4/hypotl.m4 (gl_FUNC_HYPOTL, gl_FUNC_HYPOTL_WORKS): Likewise. * m4/ilogb.m4 (gl_FUNC_ILOGB_WORKS): Likewise. * m4/ilogbf.m4 (gl_FUNC_ILOGBF_WORKS): Likewise. * m4/isfinite.m4 (gl_ISFINITEL_WORKS): Likewise. * m4/isinf.m4 (gl_ISINFL_WORKS): Likewise. * m4/isnanf.m4 (gl_ISNANF_WORKS): Likewise. * m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Likewise. * m4/ldexpl.m4 (gl_FUNC_LDEXPL_WORKS): Likewise. * m4/log.m4 (gl_FUNC_LOG, gl_FUNC_LOG_WORKS): Likewise. * m4/logf.m4 (gl_FUNC_LOGF, gl_FUNC_LOGF_WORKS): Likewise. * m4/logl.m4 (gl_FUNC_LOGL_WORKS): Likewise. * m4/log10.m4 (gl_FUNC_LOG10, gl_FUNC_LOG10_WORKS): Likewise. * m4/log10f.m4 (gl_FUNC_LOG10F, gl_FUNC_LOG10F_WORKS): Likewise. * m4/log10l.m4 (gl_FUNC_LOG10L_WORKS): Likewise. * m4/log1p.m4 (gl_FUNC_LOG1P): Likewise. * m4/log1pf.m4 (gl_FUNC_LOG1PF, gl_FUNC_LOG1PF_WORKS): Likewise. * m4/log1pl.m4 (gl_FUNC_LOG1PL): Likewise. * m4/log2.m4 (gl_FUNC_LOG2, gl_FUNC_LOG2_WORKS): Likewise. * m4/log2f.m4 (gl_FUNC_LOG2F, gl_FUNC_LOG2F_WORKS): Likewise. * m4/log2l.m4 (gl_FUNC_LOG2L_WORKS): Likewise. * m4/logb.m4 (gl_FUNC_LOGB_WORKS): Likewise. * m4/logbf.m4 (gl_FUNC_LOGBF_WORKS): Likewise. * m4/logbl.m4 (gl_FUNC_LOGBL_WORKS): Likewise. * m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Likewise. * m4/mbrtowc.m4 (gl_MBRTOWC_EMPTY_INPUT, gl_MBRTOWC_C_LOCALE): Likewise. * m4/mkdir.m4 (gl_FUNC_MKDIR): Likewise. * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Likewise. * m4/mktime.m4 (gl_FUNC_MKTIME_WORKS): Likewise. * m4/modf.m4 (gl_FUNC_MODF): Likewise. * m4/modff.m4 (gl_FUNC_MODFF): Likewise. * m4/modfl.m4 (gl_FUNC_MODFL): Likewise. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise. * m4/perror.m4 (gl_FUNC_PERROR): Likewise. * m4/popen.m4 (gl_FUNC_POPEN): Likewise. * m4/posix_spawn.m4 (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE, gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2, gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN): Likewise. * m4/ptsname_r.m4 (gl_PREREQ_PTSNAME_R): Likewise. * m4/putenv.m4 (gl_FUNC_PUTENV): Likewise. * m4/regex.m4 (gl_REGEX): Likewise. * m4/remainder.m4 (gl_FUNC_REMAINDER): Likewise. * m4/remainderf.m4 (gl_FUNC_REMAINDERF, gl_FUNC_REMAINDERF_WORKS): Likewise. * m4/remainderl.m4 (gl_FUNC_REMAINDERL, gl_FUNC_REMAINDERL_WORKS): Likewise. * m4/rename.m4 (gl_FUNC_RENAME): Likewise. * m4/rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Likewise. * m4/rmdir.m4 (gl_FUNC_RMDIR): Likewise. * m4/round.m4 (gl_FUNC_ROUND): Likewise. * m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise. * m4/roundl.m4 (gl_FUNC_ROUNDL): Likewise. * m4/signbit.m4 (gl_SIGNBIT): Likewise. * m4/sleep.m4 (gl_FUNC_SLEEP): Likewise. * m4/sqrtl.m4 (gl_FUNC_SQRTL_WORKS): Likewise. * m4/stdint.m4 (gl_STDINT_H): Likewise. * m4/strerror.m4 (gl_FUNC_STRERROR_0): Likewise. * m4/strncat.m4 (gl_FUNC_STRNCAT): Likewise. * m4/strtod.m4 (gl_FUNC_STRTOD): Likewise. * m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Likewise. * m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Likewise. * m4/trunc.m4 (gl_FUNC_TRUNC): Likewise. * m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise. * m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise. * m4/tsearch.m4 (gl_FUNC_TSEARCH): Likewise. * m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): Likewise. * m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): Likewise. * m4/unlink-busy.m4 (gl_FUNC_UNLINK_BUSY_TEXT): Likewise. * m4/unlink.m4 (gl_FUNC_UNLINK): Likewise. * m4/usleep.m4 (gl_FUNC_USLEEP): Likewise. * m4/utimes.m4 (gl_FUNC_UTIMES): Likewise. * m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise. * m4/wcsrtombs.m4 (gl_WCSRTOMBS_TERMINATION, gl_WCSRTOMBS_NULL): Likewise. * m4/wctob.m4 (gl_FUNC_WCTOB): Likewise. * m4/chown.m4 (AC_FUNC_CHOWN): Add cross-compilation guess for native Windows. Enable also on Autoconf 2.70. * m4/printf.m4 (gl_PRINTF_SIZES_C99, gl_PRINTF_LONG_DOUBLE, gl_PRINTF_INFINITE, gl_PRINTF_INFINITE_LONG_DOUBLE, gl_PRINTF_DIRECTIVE_A, gl_PRINTF_DIRECTIVE_F, gl_PRINTF_DIRECTIVE_N, gl_PRINTF_DIRECTIVE_LS, gl_PRINTF_FLAG_LEFTADJUST, gl_PRINTF_FLAG_ZERO, gl_SNPRINTF_TRUNCATION_C99, gl_SNPRINTF_RETVAL_C99, gl_SNPRINTF_DIRECTIVE_N, gl_SNPRINTF_SIZE1): Add cross-compilation guess for native Windows. (gl_PRINTF_POSITIONS, gl_PRINTF_FLAG_GROUPING, gl_VSNPRINTF_ZEROSIZE_C99): Add comment. 2017-07-13 Bruno Haible Improve cross-compilation guesses for native Windows. * m4/memchr.m4 (gl_FUNC_MEMCHR): Add cross-compilation guess for native Windows. * m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE): Don't use internals of memchr.m4. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Likewise. 2017-07-13 Bruno Haible Improve cross-compilation guesses for native Windows. * m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): Add cross-compilation guess for native Windows. (gl_FUNC_FFLUSH): Update accordingly. * m4/fclose.m4 (gl_FUNC_FCLOSE): Likewise. * m4/fseeko.m4 (gl_FUNC_FFLUSH_STDIN): Likewise. 2017-07-11 Bruno Haible More systematic m4 quoting and indentation. * m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Quote systematically. * m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Likewise. * m4/d-type.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE): Likewise. * m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise. * m4/host-os.m4 (gl_HOST_OS): Likewise. * m4/jm-winsz1.m4 (gl_HEADER_TIOCGWINSZ_IN_TERMIOS_H, gl_WINSIZE_IN_PTEM): Likewise. * m4/mbrtowc.m4 (AC_FUNC_MBRTOWC): Likewise. * m4/physmem.m4 (gl_SYS__SYSTEM_CONFIGURATION): Likewise. * m4/pselect.m4 (gl_FUNC_PSELECT): Likewise. * m4/fchownat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG): Quote systematically. Correct indentation. * m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Likewise. * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise. * m4/jm-winsz2.m4 (gl_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL): Likewise. * m4/rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Likewise. * m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): Likewise. * m4/unlink-busy.m4 (gl_FUNC_UNLINK_BUSY_TEXT): Likewise. 2017-07-10 Bruno Haible round, roundf: Avoid compiler warning in configure test. * m4/round.m4 (gl_FUNC_ROUND): Use 'return' instead of exit(). * m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise. 2017-07-10 Bruno Haible getlogin tests: Avoid #ifdefs when sharing code between modules. * modules/getlogin_r-tests (Files): Add tests/test-getlogin.h. * modules/getlogin-tests (Files): Likewise. Remove tests/test-getlogin_r.c. * tests/test-getlogin.h: Extracted from tests/test-getlogin_r.c. * tests/test-getlogin.c: Extracted from tests/test-getlogin_r.c. * tests/test-getlogin_r.c: Include test-getlogin.h. Omit code that tests getlogin(). 2017-07-10 Paul Eggert getlogin: don’t assume one name per uid Problem reported by Wolfgang F. Muthmann (Bug#27640). * modules/getlogin-tests (Files): Add tests/test-getlogin_r.c. (ttyname): Remove test. * modules/getlogin_r-tests (ttyname): Remove test. * tests/test-getlogin.c: Replace this near-clone of test-getlogin_r.c with ‘#define TEST_LOGIN’ followed by ‘#include "test-getlogin_r.c"’. * tests/test-getlogin_r.c: If TEST_GETLOGIN is defined, test getlogin rather than getlogin_r. This avoids code duplication. (main): Use isatty and fstat rather than ttyname and stat. Use getpwnam instead of getpwuid, to be portable to test platforms that have multiple login names for the same uid. 2017-07-10 Tim Rühsen Bruno Haible glob: Fix more memory leaks. * lib/glob.c (glob): Use 'goto out' in order to free dirname before returning. Reported by Tim Rühsen. 2017-07-10 Bruno Haible Make sure $host and $host_os are defined when used. * m4/argz.m4 (gl_FUNC_ARGZ): Require AC_CANONICAL_HOST. * m4/closedir.m4 (gl_FUNC_CLOSEDIR): Likewise. * m4/csharpexec.m4 (gt_CSHARPEXEC): Likewise. * m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise. * m4/expl.m4 (gl_FUNC_EXPL): Likewise. * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Likewise. * m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Likewise. * m4/opendir.m4 (gl_FUNC_OPENDIR): Likewise. * m4/poll.m4 (gl_FUNC_POLL): Likewise. * m4/pselect.m4 (gl_FUNC_PSELECT): Likewise. * m4/ptsname.m4 (gl_FUNC_PTSNAME): Likewise. * m4/relocatable.m4 (gl_RELOCATABLE_BODY): Likewise. * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Likewise. * m4/ceill.m4 (gl_FUNC_CEILL): Require AC_CANONICAL_HOST outside the m4_ifdef block. 2017-07-09 Bruno Haible *printf: Fix cross-compilation guess for Solaris. * m4/printf.m4 (gl_PRINTF_DIRECTIVE_F): Fix copy-and-paste mistake from 2010-12-21. 2017-07-07 Paul Eggert Bruno Haible vasnprintf: port to macOS 10.13 Problem reported by comex in: http://lists.gnu.org/r/bug-gnulib/2017-07/msg00056.html * lib/vasnprintf.c (VASNPRINTF): Don’t use %n on macOS. 2017-07-06 Bruno Haible imaxdiv tests: Fix logic. * tests/test-imaxdiv.c (main): Use == instead of =. Reported by Coverity. 2017-07-06 Bruno Haible uninorm/filter: Fix use-after-free bug. * lib/uninorm/uninorm-filter.c (uninorm_filter_write): Maintain sortbuf == filter->sortbuf invariant. Reported by Coverity. 2017-07-06 Bruno Haible glob: Fix more memory leaks. * lib/glob.c (glob): Free dirname before returning. Reported by Coverity and Tim Rühsen. 2017-07-06 Paul Eggert parse-datetime: fix uninit var bug Reported by Bruno Haible in: http://lists.gnu.org/r/bug-gnulib/2017-07/msg00038.html * lib/parse-datetime.y (parse_datetime2): Do not use uninitialized. 2017-07-05 Bruno Haible doc: Update for MSVC 14. * doc/posix-headers/*.texi: Add info about MSVC 14. * doc/posix-functions/*.texi: Likewise. * doc/pastposix-functions/*.texi: Likewise. * doc/glibc-headers/*.texi: Likewise. * doc/glibc-functions/*.texi: Likewise. 2017-07-05 Bruno Haible sched: Fix build failure on native Windows (regression from 2017-06-19). * m4/sched_h.m4 (gl_SCHED_H): Set HAVE_STRUCT_SCHED_PARAM always. 2017-07-03 John E. Malmberg stdioext: Port to OpenVMS. * lib/stdio-impl.h: OpenVMS uses struct _iobuf for FILE information. * lib/fpending.c (fpending): Remove non-working VMS specific code. * lib/fbufmode.c (fbufmode): Fix _IOLBF test to use fp_ macro. * lib/fflush.c (clear_ungetc_buffer): Add OpenVMS to comments. * lib/fpurge.c (fpurge): Likewise. * lib/freadable.c (freadable): Likewise. * lib/freadahead.c (freadahead): Likewise. * lib/freading.c (freading): Likewise. * lib/freadptr.c (freadptr): Likewise. * lib/freadseek.c (freadseek): Likewise. * lib/fseeko.c (fseeko): Likewise. * lib/fseterr.c (fseterr): Likewise. * lib/fwritable.c (fwriteable): Likewise. * lib/fwriting.c (fwriting): Likewise. 2017-07-01 Benno Schulenberg glob: Declare variables at the very start of their scope. * lib/glob.c (convert_dirent, convert_dirent64): Give each fragment its separate scope, so the functions will compile on Haiku. 2017-07-01 Bruno Haible logbl: Work around a glibc bug on PowerPC64LE. * m4/logbl.m4 (gl_FUNC_LOGBL_WORKS): Test also negative subnormal numbers. * doc/posix-functions/logbl.texi: Update. 2017-06-29 Bruno Haible stat, fstat: Compile stat-w32.c only on platforms that need it. Suggested by Paul Eggert. * modules/stat (configure.ac): Request stat-w32.o only on native Windows. * modules/fstat (configure.ac): Likewise. 2017-06-25 Bruno Haible stat: Improve last change. * lib/stat-w32.c: Revert last change. Use generic idiom instead. 2017-06-25 Paul Eggert stat: port to xlc 12.01 * lib/stat-w32.c: Always include . Otherwise, xlc 12.01 complains "Compilation unit is empty." 2017-06-24 Paul Eggert xalloc-oversized: port to icc * lib/xalloc-oversized.h (xalloc_oversized): Do not use __builtin_mul_overflow if ICC is defined, as this results in "undefined reference to `__builtin_mul_overflow'" with icc 17.0.2 20170213. 2017-06-19 Bruno Haible classpath: Avoid including config.h twice, as it produces warnings. Reported by John E. Malmberg . * lib/classpath.h: Conditionalize the include of config.h. 2017-06-19 Bruno Haible John E. Malmberg (tiny change) sched: Fix compilation failure on OpenVMS. * m4/sched_h.m4 (gl_SCHED_H): Require AC_CANONICAL_HOST. On OpenVMS, test whether exists and defines struct sched_param. * lib/sched.in.h: On OpenVMS, include . 2017-06-17 Paul Eggert diffseq: port to GCC 7 with --enable-gcc-warnings * lib/diffseq.h (diag): Use an if, not an ifdef, for most of the heuristic check. This way, GCC 7 with --enable-gcc-warnings does not complain about big_snake being defined but not used. 2017-06-15 Bruno Haible gettext-h: Update theoretical condition for use of variable size arrays. Reported by Paul Eggert. * lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS): Extend comment to include the theoretical condition for availability of variable size arrays, if we could trust the value of __STDC_VERSION__. 2017-06-12 Bruno Haible Relicense some modules under LGPLv2+. Daiki Ueno's approval is in https://lists.gnu.org/r/bug-gnulib/2017-06/msg00058.html. * modules/uniwidth/base (License): Change to LGPLv2+. * modules/uniwidth/width (License): Likewise. 2017-06-11 Bruno Haible localename: Fix test failure on DragonFly BSD. * lib/localename.c (gl_locale_name_thread_unsafe): Treat DragonFly BSD like FreeBSD. 2017-06-11 Bruno Haible float: Fix 'float' and 'isinf' failures on DragonFly BSD. * m4/float_h.m4 (gl_FLOAT_H): Treat DragonFly BSD like FreeBSD. * lib/float.in.h: Likewise. * m4/fmal.m4, m4/frexpl.m4, m4/logbl.m4: Update accordingly. 2017-06-11 Bruno Haible gnulib-tool: Clean up after autotools. * gnulib-tool (func_create_testdir, func_create_megatestdir): Remove useless directory left over by the Autotools. 2017-06-11 Paul Eggert getopt-posix: port to glibc 2.25.90 Problem reported by Daniel P. Berrange in: http://lists.gnu.org/r/bug-gnulib/2017-06/msg00003.html * lib/getopt-pfx-core.h (_GETOPT_CORE_H): * lib/getopt-pfx-ext.h (_GETOPT_EXT_H): #undef if __GETOPT_PREFIX is defined. 2017-06-11 Bruno Haible strtod-obsolete: Fix license. * modules/strtod-obsolete (License): Change to LGPL. 2017-06-10 Jim Meyering maint: update to work with GCC7's -Werror=implicit-fallthrough= * lib/savewd.c (FALLTHROUGH): Define. (savewd_save, savewd_restore): Use this, rather than a comment, whenever one switch case falls through into the next. 2017-06-08 Bruno Haible host-cpu-c-abi: Support for aarch64 ILP32 ABI. * m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Recognize the aarch64 ILP32 ABI. Set HOST_CPU_C_ABI=arm64-ilp32 and define __arm64_ilp32__ in this case. 2017-06-08 Paul Eggert doc: remove robots, add prereqs * doc/build-automation.texi, doc/gnulib.texi: Mention prereqs for builds. Simon's robot site does not seem to be up, so remove mentions of it for now. 2017-06-08 Bruno Haible gnulib-tool: Fix bug in func_symlink_if_changed, from 2006-11-13. * gnulib-tool (func_symlink_target): New function, extracted from func_symlink. (func_symlink, func_symlink_if_changed): Use it. 2017-06-08 Bruno Haible gnulib-tool: Fix bug in func_ln_s, from 2016-01-15. * gnulib-tool (func_ln_s): Determine cp_src correctly. 2017-06-07 Bruno Haible canonicalize-lgpl: Avoid conflict with gnulib 'getcwd' module on VMS. Reported by John E. Malmberg in . * lib/canonicalize-lgpl.c (__getcwd): On VMS, when using gnulib's getcwd override, pass 2 arguments to getcwd, not 3. 2017-06-04 Paul Eggert same-inode: port better to VMS 8.2 and later Problem reported by John E. Malmberg in: http://lists.gnu.org/r/bug-gnulib/2017-06/msg00005.html * lib/same-inode.h (SAME_INODE) [__VMS && 80200000 <= __CRTL_VER]: Use the usual POSIX definition. * m4/sys_types_h.m4 (gl_SYS_TYPES_H): Define _USE_STD_STAT. 2017-06-01 Paul Eggert error: fix POSIX violation for va_end Problem reported by Bruno Haible in: http://lists.gnu.org/r/bug-gnulib/2017-06/msg00001.html * lib/error.c (error_tail): Do not call va_end here. (error, error_at_line): Call it here instead. 2017-05-28 Bruno Haible c-strtod: Make it usable in C++ mode. * lib/c-strtod.h: Add 'extern "C"' marker for C++. 2017-05-25 Jim Meyering quotearg: fix compilation failure due to FALLTHROUGH misuse * lib/quotearg.c (quotearg_buffer_restyled): Revert one FALLTHROUGH macro back to /* fall through */ comment. The macro can apply only to a following case statement. Reported by Assaf Gordon. 2017-05-25 Paul Eggert intprops: port to recent icc Port to icc (ICC) 17.0.4 20170411, which defines __GNUC__ to be 5 but does not support __builtin_add_overflow etc. * lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW) [__ICC]: Define to 0. 2017-05-23 Karl Berry * config/srclist.txt (iconv.m4): sync broken, comment out until (hopefully) the next gettext release. 2017-05-22 Bjarni Ingi Gislason Remove repeated words in comments. 2017-05-22 Bernhard Voelker fallthrough: reinstate a FALLTHROUGH instance in quotearg quotearg.c: Reinstate this instance which is significant when the if branch is not taken. 2017-05-21 Bruno Haible gnulib-tool: Add options to create hard links. * gnulib-tool (func_usage): Document options --hardlink, --local-hardlink, --more-hardlinks. (func_symlink): Renamed from func_ln. (func_symlink_if_changed): Renamed from func_ln_if_changed. (func_hardlink): New function. (copymode, lcopymode): New variables. (symbolic, lsymbolic): Remove variables. (Options): Implement options --hardlink, --local-hardlink, --more-hardlinks. (func_should_link): Renamed from func_should_symlink. Set copyaction. (func_add_file, func_update_file): Update invocation of func_should_link. Invoke func_hardlink when appropriate. (func_import): Update comments. (func_create_testdir): Update invocation of func_should_link. Invoke func_hardlink when appropriate. Finally, invoke 'git update-index --refresh' to mitigate the effects of the hard links on git. 2017-05-20 Bruno Haible argp: Simplify bit manipulation. * lib/argp-parse.c (parser_parse_opt): Use &, |, ~ instead of shifts on a signed integer type. 2017-05-20 Bruno Haible Avoid wrong configure results with gcc -fsanitize=address. This completes the work done on 2016-02-06 on this topic. * m4/memmem.m4 (gl_FUNC_MEMMEM): Free allocated memory before returning. * m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Likewise. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise. * m4/strstr.m4 (gl_FUNC_STRSTR): Likewise. * m4/fopen.m4 (gl_FUNC_FOPEN): Close allocated FILE streams before returning. * m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): Likewise. * m4/fpurge.m4 (gl_FUNC_FPURGE): Likewise. * m4/ftello.m4 (gl_FUNC_FTELLO): Likewise. * m4/rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Likewise. * m4/signbit.m4 (gl_FLOATTYPE_SIGN_LOCATION): Likewise. * m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): Likewise. * m4/getdelim.m4 (gl_FUNC_GETDELIM): Close allocated FILE streams and free allocated memory before returning. * m4/getline.m4 (gl_FUNC_GETLINE): Likewise. * m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Close allocated DIR objects before returning. * m4/iconv.m4 (AM_ICONV_LINK): Close allocated iconv_t handles before returning. 2017-05-20 Bruno Haible gnulib-tool: Don't create hard links between gnulib and its testdirs. * gnulib-tool (func_create_testdir): Don't invoke 'ln'. 2017-05-20 Bruno Haible argp, tsearch tests: Fix file list. * modules/argp-tests (Files): Add tests/macros.h. * modules/tsearch-tests (Files): Likewise. 2017-05-20 Bruno Haible getopt-posix tests: Remove redundant include. * tests/test-getopt.h: Don't include "macros.h". It's already included by tests/test-getopt-main.h. 2017-05-19 Jim Meyering dfa: two small simplifications * lib/dfa.c (build_state): Avoid repeating longer expressions. 2017-05-18 Jim Meyering fallthrough: update for GCC 7/8 * lib/quotearg.c (FALLTHROUGH): New macro. Use it whenever one switch case falls through into the next, replacing "/* Fall through */" comments. This exposed one instance of an unwarranted "fall through" comment: unwarranted because it preceded a "goto" label not a case statement. * lib/freopen-safer.c (freopen_safer): Likewise. * lib/fts.c (leaf_optimization_applies): Likewise. * lib/unistr/u8-uctomb-aux.c (u8_uctomb_aux): Likewise. * tests/test-getopt_long.h (getopt_long_loop): Likewise. * tests/test-tsearch.c (mangle_tree): Likewise. Also include tests/macros.h for the definition. * tests/test-argp.c (group1_parser): Likewise. * tests/test-getopt.h (getopt_loop): Likewise. 2017-05-19 Paul Eggert argp: fix shift bug * lib/argp-parse.c (parser_parse_opt): Rework to avoid undefined behavior on shift overflow, caught by gcc -fsanitize=undefined. argp: fix pointer-subtraction bug * lib/argp-help.c (hol_append): Don’t subtract pointers to different arrays, as this can run afoul of -fcheck-pointer-bounds. See the thread containing Bruno Haible’s report in: http://lists.gnu.org/r/bug-gnulib/2017-05/msg00171.html 2017-05-19 Bruno Haible printf-posix tests: Avoid test failure with "gcc --coverage". Reported by Tim Rühsen . * tests/test-printf-posix2.c (main): Test a width of 10000000 rather than 5000000. * tests/test-fprintf-posix2.c (main): Likewise. 2017-05-19 Paul Eggert closeout: don’t close stderr when sanitizing * NEWS: Document this. * lib/closeout.c (__has_feature): New macro, if not already defined. (SANITIZE_ADDRESS): New constant. (close_stdout): Don’t close stderr if sanitizing addresses. 2017-05-19 Bruno Haible get-rusage-data tests: Avoid failure on Linux/glibc. * tests/test-get-rusage-data.c (main): Don't expect a strict increase on glibc systems. 2017-05-18 Bruno Haible localename: Include necessary header files on Cygwin. * lib/localename.c [__CYGWIN__]: Include , since this is where NL_LOCALE_NAME is defined. 2017-05-18 Bruno Haible gettext: Update macros from gettext git. * m4/intldir.m4: Require Autoconf >= 2.60. * m4/progtest.m4: Fix typos in copyright notice. 2017-05-18 Bruno Haible copy-file tests: Fix link error (regression from 2017-05-01). Reported by Tom G. Christensen . * modules/copy-file-tests (Makefile.am): Link test-copy-file with $(LIB_CLOCK_GETTIME). 2017-05-18 Bruno Haible unicase/special-casing: Fix incompatibility with gperf-3.0.4 (regression from 2017-02-13). * lib/unicase/special-casing.in.h: Renamed from lib/unicase/special-casing.h. * modules/unicase/special-casing (Files): Add lib/unicase/special-casing.in.h. Remove lib/unicase/special-casing.h. (Makefile.am): Add rule for generating unicase/special-casing.h. Update BUILT_SOURCES and MOSTLYCLEANFILES accordingly. * lib/unicase/special-casing.c: Include "unicase/special-casing.h", not "special-casing.h". * lib/unicase/u*.c: Likewise. 2017-05-17 Bruno Haible README: Don't ask people to read a TeXinfo file. Reported by Tim Rühsen . * README: Tell people how to read the HTML formatted manual. 2017-05-16 Tim Rühsen parse-datetime: Fix memleak * lib/parse-datetime.y (parse_datetime2): Cleanup on localtime_rz() failure. 2017-05-16 Bruno Haible javacomp: Fix handle leak. Found by Coverity. * lib/javacomp.c (get_classfile_version): Close fd before returning. 2017-05-16 Bruno Haible relocate: Make it easier to reclaim allocated memory. * lib/relocatable.h (relocate2): New declaration/macro. * lib/relocatable.c (relocate2): New function. * doc/relocatable-maint.texi (Supporting Relocation): Mention the relocate2 function. * lib/localcharset.c (relocate2): Define fallback. (get_charset_aliases): Invoke relocate2 instead of relocate. Free the allocated memory. * lib/javaversion.c (relocate2): Define fallback. (javaexec_version): Invoke relocate2 instead of relocate. Free the allocated memory. 2017-05-16 Bruno Haible relocate: Simplify EMX specific code. * lib/relocatable.c (relocate): Assume pathname is non-NULL. Use ISSLASH macro consistently. Avoid dangerous string concatenation idiom. 2017-05-16 Bruno Haible sigpipe tests: Fix file list. * modules/sigpipe-tests (Files): Add tests/macros.h. 2017-05-16 Paul Eggert manywarnings: update for GCC 7 * build-aux/gcc-warning.spec: * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add GCC 7 warnings, notably -Wimplicit-fallthrough=5, which requires a non-comment fallthrough attribute. This is a bit cleaner than the comment versions. * lib/strftime.c, lib/dfa.c, lib/fnmatch.c, lib/mbrtowc.c: * lib/vasnprintf.c, tests/macros.h (FALLTHROUGH): New macro. Use it whenever one switch case falls through into the next. * lib/fnmatch_loop.c, tests/test-mbrtowc.c, tests/test-sigpipe.c: Use FALLTHROUGH macro. 2017-05-15 Bruno Haible gnulib-tool: Fix generated code when libtests contains module 'alloca'. * gnulib-tool (func_emit_tests_Makefile_am): For libtests.a, use @ALLOCA@, not @LTALLOCA@. 2017-05-15 Bruno Haible sys_select: Avoid "was expanded before it was required" warning. * modules/sys_select (configure.ac): Require, not invoke, gl_HEADER_SYS_SELECT. 2017-05-14 Paul Eggert gnulib-tool: improve GNU Make debugging * gnulib-tool (func_emit_lib_Makefile_am): Omit unnecessary echo. Report autoconf diagnostics when it fails, in the output makefile. 2017-05-14 Bruno Haible stat-time tests: Improve comment. * tests/test-stat-time.c: Add hyperlink, from Paul Eggert. 2017-05-14 Bruno Haible same-inode: Adapt for windows-stat-inodes. * lib/same-inode.h: Include . (SAME_INODE) [_GL_WINDOWS_STAT_INODES]: Define specifically. * modules/same-inode (Depends-on): Add sys_types. 2017-05-14 Bruno Haible 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 , 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. 2017-05-14 Bruno Haible stat-time tests: Workaround for native Windows. * tests/test-stat-time.c: Include , . (filename_stamp1, filename_testfile, filename_stamp2, filename_stamp3): New variables. (initialize_filenames): New function. (main): Invoke it. (cleanup, prepare_test): Update. 2017-05-14 Bruno Haible stat-time: Adapt for windows-stat-timespec. * lib/stat-time.h (get_stat_birthtime) [_GL_WINDOWS_STAT_TIMESPEC]: Use entire st_ctim field. 2017-05-13 Jim Meyering 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. 2017-05-13 Bruno Haible Use symbolic values for _WIN32_WINNT. * lib/ftruncate.c (_WIN32_WINNT): Use symbolic value _WIN32_WINNT_WIN2K. * lib/sethostname.c (_WIN32_WINNT): Likewise. 2017-05-13 Bruno Haible year2038: New module. * m4/year2038.m4: New file. * modules/year2038: New file. * doc/year2038.texi: New file. * doc/gnulib.texi: Include it. 2017-05-13 Bruno Haible largefile: Simplify. * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Remove unused definition of _GL_WINDOWS_64_BIT_ST_SIZE. 2017-05-13 Bruno Haible 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. 2017-05-13 Bruno Haible 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. * tests/test-truncate.c: New file. * modules/truncate-tests: New file. 2017-05-13 Bruno Haible 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. 2017-05-13 Bruno Haible 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. 2017-05-13 Bruno Haible fstat: Fix module dependency conditions. * modules/fstat (Depends-on): Fix typo. 2017-05-13 Bruno Haible 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. 2017-05-13 Bruno Haible stat: Complete removal of REPLACE_FUNC_STAT_DIR code. * lib/stat.c: Remove all REPLACE_FUNC_STAT_DIR code. 2017-05-11 Paul Eggert getopt-posix: port to mingw * lib/getopt.c (flockfile, funlockfile): Define on mingw. Problem reported by Daniel P. Berrage in: http://lists.gnu.org/r/bug-gnulib/2017-05/msg00086.html 2017-05-11 Bruno Haible 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. 2017-05-11 Bruno Haible poll: Fix confusion between SOCKETs and FDs on native Windows. Fix proposed by Daniel P. Berrange . * lib/poll.c [WINDOWS_NATIVE]: Undefine select. 2017-05-11 Bruno Haible 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. 2017-05-10 Bruno Haible poll: Fix link error on native Windows. * lib/poll.c [WINDOWS_NATIVE]: Undefine recv. 2017-05-10 Bruno Haible 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. 2017-05-10 Bruno Haible Implement a way to opt out from MSVC support, part 2. * modules/msvc-inval (Include): Document recommended idiom. * modules/msvc-nothrow (Include): Likewise. 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 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 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. 2017-05-10 Bruno Haible wait-process: Adjust native Windows support. * lib/wait-process.c: Use the usual condition for recognizing a native Windows platform. 2017-05-10 Bruno Haible 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. 2017-05-10 Bruno Haible doc: Move section "Library version handling". * doc/gnulib.texi: Move section "Library version handling" from chapter "Miscellaneous Notes" to chapter "Particular Modules". 2017-05-10 Bruno Haible 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". 2017-05-10 Bruno Haible doc: New chapter "Build Infrastructure Modules". * doc/gnulib.texi (Build Infrastructure Modules): New chapter. 2017-05-10 Bruno Haible 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. 2017-05-10 Bruno Haible Fix instructions how to update manual on www.gnu.org. * doc/README: Add -I option, so that texi2dvi finds texinfo.tex. 2017-05-09 Bruno Haible 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. 2017-05-08 Paul Eggert intprops: don’t depend on ‘verify’ Problem reported by Ævar Arnfjörð Bjarmason in: http://lists.gnu.org/r/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’. 2017-05-07 Bruno Haible utimens: On native Windows, support 100ns resolution also if fd < 0. * lib/utime.in.h: Include . (_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'. 2017-05-07 Bruno Haible 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. 2017-05-07 Bruno Haible utime: Handle more Windows error codes. * lib/utime.c (utime): Handle ERROR_BAD_NETPATH. Based on explanations by Billy O'Neal. 2017-05-05 Bruno Haible 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. 2017-05-05 Bruno Haible wctype-h-c++-tests: Update. * tests/test-wctype-h-c++.cc: Reorder to match lib/wchar.in.h. 2017-05-05 Bruno Haible wchar-c++-tests: Update. * tests/test-wchar-c++.cc (wcsftime): Declare, missing since 2017-04-30. 2017-05-05 Bruno Haible 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. 2017-05-05 Bruno Haible 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. 2017-05-05 Bruno Haible 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. 2017-05-05 Bruno Haible 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. 2017-05-05 Bruno Haible 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. 2017-05-05 Bruno Haible string-c++-tests: Update. * tests/test-string-c++.cc (ffsl): Declare, missing since 2011-07-15. (ffsll): Declare, missing since 2011-07-15. 2017-05-05 Bruno Haible 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. 2017-05-05 Bruno Haible stdio-c++-tests: Update. * tests/test-stdio-c++.cc (pclose): Declare, missing since 2011-09-18. 2017-05-05 Bruno Haible signal-h-c++-tests: Update. * tests/test-signal-h-c++.cc (raise): Remove redundant declaration. 2017-05-05 Bruno Haible 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. 2017-05-05 Bruno Haible locale-c++-tests: Update. * tests/test-locale-c++.cc (localeconv): Declare, missing since 2012-03-25. 2017-05-05 Bruno Haible 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. 2017-05-05 Bruno Haible 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. 2017-05-04 Bruno Haible 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 *'. 2017-05-04 Reuben Thomas argp: Fix typo. * lib/argp-help.c (argp_doc): Fix spelling mistake in comment. 2017-05-02 Paul Eggert 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. 2017-05-01 Paul Eggert 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. 2017-05-01 Bruno Haible copy-file: Fix build error on mingw. * modules/copy-file (Depends-on): Add 'close'. 2017-05-01 Bruno Haible 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. 2017-05-01 Bruno Haible mktime: Fix dependencies. * modules/mktime (Depends-on): Add 'time'. 2017-05-01 Bruno Haible 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. 2017-05-01 Bruno Haible copy-file: Preserve sub-second time stamps. * lib/copy-file.c: Include stat-time.h, utimens.h instead of . (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. 2017-05-01 Bruno Haible wctype-t: Fix problems if gets included after . * lib/wctype.in.h: Include not only but also . Do so also on MSVC. Reported by Eli Zaretskii . 2017-05-01 Bruno Haible wchar: Fix compilation error with the original mingw.org mingw. * lib/wchar.in.h (rpl_wint_t): If does not exist, include 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 . 2017-04-30 Bruno Haible utimecmp: Add support for native Windows. * lib/utimecmp.c (SYSCALL_RESOLUTION): Set to 100 on native Windows. 2017-04-30 Bruno Haible utimens: Add support for native Windows. * lib/utimens.c: Include , 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 . 2017-04-30 Bruno Haible 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. 2017-04-30 Bruno Haible 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. 2017-04-30 Bruno Haible 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. 2017-04-30 Bruno Haible 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. 2017-04-30 Bruno Haible 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. 2017-04-30 Bruno Haible gettimeofday: Provide higher resolution on native Windows. * lib/gettimeofday.c: Don't include . (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 and _ftime. 2017-04-30 Bruno Haible 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. 2017-04-30 Bruno Haible utime-tests: New module. * tests/test-utime.c: New file, based on tests/test-utimens.h. * tests/test-utimens-common.h: Include . * modules/utime-tests: New file. 2017-04-29 Bruno Haible 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. 2017-04-29 Bruno Haible utime-h: Modernize handling of 'struct utimbuf'. * lib/utime.in.h: Include next 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. 2017-04-29 Bruno Haible Make use of module 'utime-h'. * modules/copy-file (Depends-on): Add utime-h. * lib/copy-file.c: Assume that exists. * m4/copy-file.m4 (gl_COPY_FILE): Don't test for . * modules/utimens (Depends-on): Add utime-h. * lib/utimens.c: Assume that exists. 2017-04-29 Bruno Haible 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. 2017-04-30 Bruno Haible 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. 2017-04-29 Bruno Haible 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 *'. 2017-04-29 Bruno Haible 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. 2017-04-29 Bruno Haible 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. 2017-04-29 Paul Eggert getopt: port to Solaris 10 with circa-1997 glibc getopt.h Problem reported by Assaf Gordon and Gavin Smith in: http://lists.gnu.org/r/bug-gnulib/2017-04/msg00157.html * lib/getopt-pfx-ext.h (_getopt_internal) [__GETOPT_PREFIX]: #define this, too. 2017-04-29 Bruno Haible strerror_r-posix: Fixes for MSVC 14. * lib/strerror_r.c: Include . (strerror_r): Provide error messages for errno values 100...140. * doc/posix-functions/strerror_r.texi: Mention the MSVC 14 problem. 2017-04-28 Bruno Haible 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. 2017-04-27 Bruno Haible wctype-h: Fix compilation error with the original mingw.org mingw. * m4/wctype_h.m4 (gl_WCTYPE_H): Test for . Set HAVE_CRTDEFS_H. * modules/wctype-h (Makefile.am): Substitute HAVE_CRTDEFS_H. * lib/wctype.in.h (rpl_wint_t): If does not exist, include instead. Reported and proposed by Eli Zaretskii . 2017-04-26 Pádraig Brady nap.h: Fix compilation on non windows platforms * tests/nap.h: Move misplaced endif. 2017-04-26 Pádraig Brady and Paul Eggert time_rz: fix heap buffer overflow vulnerability Reported and analyzed at https://bugzilla.redhat.com/CVE-2017-7476 * lib/time_rz.c (save_abbr): Rearrange the calculation determining whether there is enough buffer space available, 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. 2017-04-26 Paul Eggert xalloc: add missing integer overflow check * lib/xalloc.h (x2nrealloc): Also check for multiplication overflow when P is null. 2017-04-25 Paul Eggert parse-datetime: make it standalone * lib/parse-datetime.y: Include , for va_start etc. (_GL_ATTRIBUTE_FORMAT): New macro. These are needed to get './gnulib-tool --test parse-datetime' to work. 2017-04-23 Bruno Haible 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. 2017-04-23 Bruno Haible nap.h: Fix logic. * tests/nap.h (nap): Avoid signed integer overflow in loop. 2017-04-23 Bruno Haible 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. 2017-04-23 Bruno Haible 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. 2017-04-23 Paul Eggert 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. 2017-04-23 Bruno Haible doc: New section "Modules that modify the way other modules work". * doc/gnulib.texi (Modules that modify the way other modules work): New section. 2017-04-23 Bruno Haible 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. 2017-04-01 Bruno Haible glob: Fix more memory leaks. * lib/glob.c (glob): Free allocated memory before returning. Reported by Coverity via Tim Rühsen. 2017-04-22 Paul Eggert poll: improve fast check for out-of-range NFD * lib/poll.c: Do not include intprops.h. (poll): Compare NFD to INT_MAX, not to TYPE_MAXIMUM (nfds_t) / 2. * modules/poll (Depends-on): Remove intprops. ftoastr: cite a newer paper * lib/ftoastr.c (FTOASTR): In comment, cite Andrysco et al. 2016 instead of Loitsch 2010. 2017-04-22 Bruno Haible poll: Enable argument check also in the Windows implementation. * lib/poll.c (poll) [WINDOWS_NATIVE]: Check value of nfd correctly. Reported by Paul Eggert. 2017-04-22 Bruno Haible getlogin_r: Work around bug in Mac OS X 10.12. * m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Test also against the Mac OS X bug. * lib/getlogin_r.c (getlogin_r): When getlogin_r returns a string of the given size minus 1, call getlogin_r a second time, on a larger buffer. * modules/getlogin_r (Depends-on): Add malloca. * doc/posix-functions/getlogin_r.texi: Mention the Mac OS X bug. 2017-04-22 Paul Eggert parse-datetime: fix %z and prefer signed int %z problem reported by Pádraig Brady in: http://lists.gnu.org/r/bug-gnulib/2017-04/msg00103.html While fixing it, I decided to prefer signed ints to size_t, as they are less error-prone (e.g., ubsan catches overflow). * lib/parse-datetime.y (textint, parser_control, lookup_word, yylex) (parse_datetime2): Prefer ptrdiff_t to size_t for sizes and object counts, since signed integers make for better debugging. (date): Don’t assume %z works in printf formats. (debug_strfdatetime, debug_strfdate, debug_strftime): Use int for sizes of buffers known to be small, e.g., because we’re using snprintf. (parse_datetime2): Simplify call to debug_mktime_not_ok. 2017-04-22 Bruno Haible *printf: Work around rounding bug on Mac OS X. * m4/printf.m4 (gl_PRINTF_DIRECTIVE_A): Test for Mac OS X 10.12 bug. * doc/posix-functions/*printf.texi: Mention the rounding bugs of Mac OS X and FreeBSD. * doc/glibc-functions/*printf.texi: Likewise. 2017-04-22 Bruno Haible vasnprintf tests: Avoid warnings. * tests/test-vasnprintf-posix3.c (test_function, my_asnprintf, test_vasnprintf, test_asnprintf): Don't define if there's nothing to test. 2017-04-22 Bruno Haible sys_file tests: Avoid warning. * tests/test-sys_file.c (main): Add a default clause to the switch statement. 2017-04-22 Bruno Haible sethostname: Update doc. * doc/glibc-functions/sethostname.texi: Mention differing prototype on Mac OS X. 2017-04-22 Bruno Haible quotearg tests: Avoid warnings. * tests/test-quotearg.c: Don't include test-quotearg.h if ENABLE_NLS is false. 2017-04-22 Bruno Haible poll: Enable argument check. * lib/poll.c: Include intprops.h. (poll): Check value of nfd correctly. * modules/poll (Depends-on): Add intprops. 2017-04-22 Bruno Haible get-rusage-data: Avoid warnings on Mac OS X. * lib/get-rusage-data.c: On Mac OS X, don't define get_rusage_data_via_setrlimit nor get_rusage_data_via_iterator. (get_rusage_data) [Mac OS X]: Just return 0. 2017-04-22 Bruno Haible xbinary-io: Fix build error. * modules/xbinary-io (Depends-on): Add gettext-h. * lib/xbinary-io.c: Include gettext.h and define _(). Reported by Gisle Vanem in . 2017-04-22 Paul Eggert parse-datetime: overflow and debug cleanups This long patch was triggered by this bug report from Ruediger Meier: http://lists.gnu.org/r/bug-gnulib/2017-04/msg00028.html I fixed the bug he noted, then found some others nearby, and then still others. Oh my goodness, there were a lot of bugs. I cleaned up some of the code to follow GNU standards while I was at it. * lib/parse-datetime.y (ISDIGIT): Remove; all callers changed to use c_isdigit. (EPOCH_YEAR): Remove; unused. (TM_YEAR_BASE): Now an enum rather than a macro. (HOUR, debug_strfdatetime): Multiply hour by 3600, not 60, to get time zone offset, since timezones now are in terms of seconds and not minutes. (long_time_t): Remove. All uses replaced by time_t or intmax_t as appropriate. Verify that intmax_t is wide enough. (time_overflow, time_zone_str): New functions, used to deal more reliably with overflow. (dbg_printf): Add printf attribute, to help catch integer width errors. (textint, relative_time, parser_control, time_zone_hhmm, set_hhmmss) (%union, to_hour, yylex, parse_datetime2): Use intmax_t instead of long int and/or long_time_t. All uses changed. (DBGBUFSIZE): Move earlier. (relative_time, set_hhmmss, parser_control): Just use int for nanoseconds and for time zones; that’s wide enough. (parser_control): Use bool for members like year_seen that can be booleans instead of counters. All uses changed. Remove debug_default_input_timezone; no longer needed. All uses removed. (apply_relative_time): Return a bool overflow flag. All uses changed to check for overflow. (apply_relative_time, zone, date, relunit, relunit_snumber) (signed_seconds, unsigned_seconds, yylex, parse_datetime2): Check for integer overflow portably. (str_days): Use just int for N, as it’s wide enough. Prefer 2D char arrays to arrays of char * when it looks like 2D is a win on typical platforms. Prefer snprintf to strncpy/strncat, for simplicity; all buffers are smaller than INT_MAX so this is safe. (TIME_ZONE_BUFSiZE, TM_YEAR_BUFSIZE): New constants. (debug_print_current_time): Don’t assume tv_nsec is of type long, as this is not true on x32. Output "." before any nanoseconds. (debug_print_current_time, parse_datetime2): Output local zones using a more-consistent format. (debug_print_current_time, date, parse_datetime2): (main) [TEST]: Don’t assume time_t is the same width as long. (print_rel_part): New function, replacing ... (PRINT_REL_PART): ... this macro, which was removed. All uses changed. (debug_print_relative_time): Use bool for boolean. (local_zone): dsts_seen now counts only tDST instances. (date): Fix printf of size_t to use %z. Do not assume numeric tokens have negative values merely because the context suggests a syntax with "-" separating tokens. (time_zone_hhmm): Return bool success indicator, which checks for overflow. Store result into PC->time_zone instead. All callers changed. (tm_year_str): New function. Return a bool success indicator and store the result into a buffer. All callers changed. Output the numerically correct string even if adding 1900 to the year would overflow. (to_tm_year): New function, replacing the old to_year. All callers changed. (tm_diff): Sync with glibc. (lookup_word): Use to_uchar instead of doing it by hand. (TZBUFSIZE): Now local to the only function that needs it. (debug_strfdatetime): Simplify now that time zones are int seconds. (debug_strfdate): Work even if tm_year + 1900 would overflow. (get_effective_timezone): Remove. All uses removed. (parse_datetime2): Use fprintf in pieces instead of snprintfing to a fixed-size buffer. Don’t assume that gmtime succeeds iff localtime succeeds. Use tm_gmtoff if available. Simplify how ‘goto fail;’ works in conjunction with the ‘ok’ flag. * m4/parse-datetime.m4 (gl_PARSE_DATETIME): Don’t define TIME_T_FITS_IN_LONG_INT, as it is no longer needed. * modules/parse-datetime (Depends-on): Add inttypes. 2017-04-21 Bruno Haible gettext-h: Avoid -Wundef warning. * lib/gettext.h: Test the value of ENABLE_NLS only if it is defined. Reported by Tim Rühsen in . 2017-04-05 Tim Rühsen error: Avoid "function declaration isn't a prototype" warning. * lib/error.c (strerror_r): Turn K&R C prototype to an ANSI C prototype. 2017-04-21 Bruno Haible vasnprintf: Fix for MSVC 14. * lib/vasnprintf.c (USE_MSVC__SNPRINTF): New macro. Everywhere, use !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF instead of !HAVE_SNPRINTF_RETVAL_C99. 2017-04-21 Bruno Haible mbrtowc tests: Fix test failures on MSVC 14. * tests/test-mbrtowc-w32.c (test_one_locale): Accept MSVC's conversion behaviour for invalid input. 2017-04-21 Bruno Haible mbsinit: Fix for MSVC 14. * lib/mbsinit.c (mbsinit): If GNULIB_defined_mbstate_t, provide an implementation that is in sync with mbrtowc.c. On other platforms, use an adequate ad-hoc implementation. 2017-04-21 Bruno Haible Fix test-mbrtowc5.sh failure on native Windows. * lib/setlocale.c (setlocale_unixlike): Accept "POSIX" as an alias for "C". 2017-04-21 Bruno Haible Avoid accidental use of native Windows APIs on Cygwin. * lib/getaddrinfo.c (WINDOWS_NATIVE): Don't define on Cygwin. * lib/localcharset.c (WINDOWS_NATIVE): Likewise. * lib/localename.c (WINDOWS_NATIVE): Likewise. 2017-04-20 Bruno Haible Remove red warnings from the generated MODULES.html. * modules/fcntl (Description): Disambiguate function references. * modules/getcwd-lgpl (Description): Likewise. * modules/hostent (Description): Likewise. * modules/servent (Description): Likewise. * modules/tempname (Description): Likewise. 2017-04-20 Bruno Haible verify tests: Fix spurious failure with parallel make. * gnulib-tool (func_emit_tests_Makefile_am): Emit initialization of EXTRA_PROGRAMS. * tests/test-verify.sh: Build test-verify-try.o, not test-verify.o. * tests/test-verify-try.c: New file. * modules/verify-tests (Files): Add it. (EXTRA_PROGRAMS): Add test-verify-try. (MOSTLYCLEANFILES): Update accordingly. Reported by Adam James Stewart . 2017-04-18 Bruno Haible vma-iter: Fix compilation error on Solaris 7. * lib/vma-iter.c (vma_iterate): Treat missing MAP_ANONYMOUS on Solaris like on IRIX, OSF/1. Reported by Tom G. Christensen . 2017-04-18 Bruno Haible vma-iter: Fix conflict with module 'largefile' on 32-bit Solaris 9. * modules/vma-iter (configure.ac): Test whether can be included. * lib/vma-iter.c: On Solaris, test HAVE_SYS_PROCFS_H before including . * lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Don't define on Solaris when cannot be included. Reported by Tom G. Christensen . 2017-04-18 Bruno Haible getopt-gnu: Add comments. * m4/getopt.m4 (gl_FUNC_GETOPT_GNU): Add comments. * modules/getopt-gnu (configure.ac): Likewise. 2017-04-16 Paul Eggert regex: port better to Solaris 10 Solaris 10 includes , which #defines gettext, and this causes a double #define. Problem reported by Gavin Smith in: http://lists.gnu.org/r/bug-gnulib/2017-04/msg00056.html * lib/regex_internal.h (gettext): #undef before #defining. 2017-04-15 Paul Eggert intprops: improve comments * lib/intprops.h: Improve and shorten commentary. For the record, if we ever run into a pedantic compiler that behaves differently from GCC when converting an out-of-range value to a signed integer, we can work around the problem with something like the following code, where UCT is the signed counterpart of T (UCT is sometimes narrower than UT) and all callers are changed accordingly: #if __SUNPRO_C <= 0x5120 # define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, uct, ut, t) \ ((t) ((ut) (a) op (ut) (b))) #else # define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, uct, ut, t) \ (TYPE_MINIMUM (t) <= (uct) ((ut) (a) op (ut) (b)) \ ? ((t) (uct) (((ut) (a) op (ut) (b)) - TYPE_MINIMUM (t)) \ + TYPE_MINIMUM (t)) \ : (t) (uct) ((ut) (a) op (ut) (b))) #endif 2017-04-14 Paul Eggert intprops: try to avoid tickling similar bugs * lib/intprops.h (_GL_INT_OP_CALC): Document that UT no longer needs to be the same width as T; it can be wider. Change callers so that UT is at least as wide as unsigned int, as I suspect that this is less likely to run into compiler bugs. intprops: port to Oracle Studio 12.3 x86 Problem reported by Gavin Smith in: http://lists.gnu.org/r/bug-gnulib/2017-04/msg00049.html * lib/intprops.h (_GL_INT_OP_WRAPV_VIA_UNSIGNED): Convert unsigned to signed via the usual rather than the standard way, to avoid a compiler bug in Oracle Studio 12.3 x86. 2017-04-08 Paul Eggert getopt: prefer - to _ in new file names * lib/getopt-cdefs.in.h: Rename from lib/getopt_cdefs.in.h. * lib/getopt-core.h: Rename from lib/getopt_core.h. * lib/getopt-ext.h: Rename from lib/getopt_ext.h. * lib/getopt-pfx-core.h: Rename from lib/getopt_pfx_core.h. * lib/getopt-pfx-ext.h: Rename from lib/getopt_pfx_ext.h. All uses changed. getopt: port recent getopt changes to macOS Problem reported by Harald Maier (Bug#26398). The macOS C compiler uses __nonnull for its own purposes and that clashes with glibc's __nonnull. * lib/getopt.in.h: Add comment for _GL_ARG_NONNULL snippet. * lib/getopt_cdefs.in.h (__nonnull): Remove. * lib/getopt_core.h (getopt): * lib/getopt_ext.h (getopt_long, getopt_long_only): Use _GL_ARG_NONNULL, not __nonnull. * lib/unistd.in.h: Move snippet hooks to before where the getopt .h files are included, so that _GL_ARG_NONNULL is defined in time. * modules/getopt-posix (Depends-on): Add snippet/arg-nonnull. (getopt.h): Interpolate _GL_ARG_NONNULL snippet. 2017-04-06 Paul Eggert getopt-gnu: omit some duplicate code * m4/getopt.m4 (gl_FUNC_GETOPT_GNU): Don’t require gl_FUNC_GETOPT_POSIX, as the configure.ac code generated by gnulib-tool already does this. * modules/getopt-gnu (configure.ac): Omit code duplicated from getopt-posix, which we depend on. getopt-posix: use angle-bracket include * lib/getopt1.c: Include , not "config.h". 2017-04-06 Zack Weinberg getopt: annotate files with relationship to glibc As the final act in this patchset, adjust the message at the top of each file to indicate which files are synced with glibc. (This has already been done for most of the headers.) * lib/getopt.c, lib/getopt1.c, lib/getopt_int.h: Mention in top-of-file boilerplate that these files are shared between glibc and gnulib. getopt: split up getopt.in.h and eliminate __need_getopt Over in glibc, all of the __need macros are being phased out in favor of small headers that declare only the necessary components, as this is much simpler and less prone to bugs. As getopt is shared with glibc, gnulib needs to do the same for __need_getopt. __need_getopt is misnamed; what it really means is "we want only the getopt features specified in POSIX, not the GNU extensions". glibc placed the "meat" of getopt.h into getopt_core.h and getopt_ext.h; these files can be shared verbatim with gnulib. The portability wrapper, on the other hand, they have renounced altogether; glibc's getopt.h will no longer be shared with gnulib at all. In exchange, certain glibc-specific quirks (having to do with __posix_getopt) no longer need appear in gnulib's headers at all. This patch merges getopt_core.h and getopt_ext.h from glibc, and splits up the current gnulib-side portability wrapper into three additional headers: getopt_pfx_core.h and getopt_pfx_ext.h handle __GETOPT_PREFIX for their respective headers, getopt_cdefs.in.h handles things like __BEGIN_DECLS and __THROW, and getopt.in.h and unistd.in.h just use them. All new files are clearly marked with whether they are shared with glibc. * lib/getopt.in.h: Eliminate __need_getopt. Break up into ... * lib/getopt_core.h, lib/getopt_ext.h: ... these new files shared with glibc, and ... * lib/getopt_cdefs.in.h, lib/getopt_pfx_core.h * lib/getopt_pfx_ext.h: ... these new files not shared with glibc. * lib/unistd.in.h: Include getopt_cdefs.h and getopt_pfx_core.h, instead of defining __need_getopt and including the full getopt.h. * m4/getopt.m4 (gl_GETOPT_SUBSTITUTE_HEADER): Check for sys/cdefs.h. Define substitution variables GETOPT_CDEFS_H and HAVE_SYS_CDEFS_H. * modules/getopt-posix (Files): Add new headers and sort list. (Depends-on): No longer need snippet/arg-nonnull. (Makefile.am): Generate getopt_cdefs.h. getopt: better handling of ambiguous options glibc's getopt uses alloca to construct a linked list of possibilities for an "ambiguous" long option. In gnulib, malloc should be used instead. Providing for both cases complicates things a fair bit. This patch rewrites ambiguous-option handling to use a boolean vector instead of a linked list. There is then only one allocation that might need freeing; in glibc it can honor __libc_use_alloca as usual, and in gnulib we define __libc_use_alloca to always be false, so we don't need ifdefs in the middle of the function. This should also be slightly more efficient in the normal case of long options being fully spelled out -- I think most people aren't even aware they _can_ sometimes abbreviate long options. One interesting consequence is that the list of possibilities is now printed in exactly the order they appear in the list of long options, instead of the first possibility being shuffled to the end. (The patch looks bigger than it really is because there's a fair bit of reindentation and code rearrangement.) * lib/getopt.c: When used standalone, define __libc_use_alloca as always false and alloca to abort if called. (process_long_option): Rewrite handling of ambiguous long options to use a single boolean vector, not a linked list; use __libc_use_alloca to decide whether to allocate this using alloca. getopt: refactor long-option handling There were two copies of the bulk of the code to handle long options. Now there is only one. This change temporarily removes the logic to avoid using alloca when standalone; the next patch in the series will restore it. * lib/getopt.c (process_long_option): New function split out from _getopt_internal_r. (_getopt_internal_r): Replace both copies of the long-option processing code with calls to process_long_option. getopt: tidy up _getopt_initialize a bit _getopt_data.__posixly_correct is completely redundant to _getopt_data.__ordering, and some work that logically belongs in _getopt_initialize was being done by _getopt_internal_r, making the code harder to understand. As a side effect, getenv will no longer be called if the first character of the options string is '+' or '-', which is probably a Good Thing. (Perhaps we should have a flag character that specifically asks for the permutation behavior?) * lib/getopt_int.h (_getopt_data): Remove __posixly_correct field. * lib/getopt.c (_getopt_internal_r): Move some initialization code... (_getopt_initialize): ...here. Don't set d->__posixly_correct. getopt: merge from glibc: repetition reduction The definitions of the entry point functions 'getopt' and '__posix_getopt' can be made substantially less repetitive with a helper macro. While I was merging the const-correctness changes from gnulib into glibc I noticed there are still some unnecessary casts in _getopt_internal_r. * lib/getopt.c (getopt, __posix_getopt): Eliminate repetition with a macro. Consistently cast 'argv' to 'char **' when calling _getopt_internal. (_getopt_internal_r): Remove unnecessary casts when calling exchange. getopt: clean up error reporting getopt can print a whole bunch of error messages, and when used standalone (from gnulib) it uses fprintf to do that. But fprintf is a cancellation point and getopt isn't, and also applying fprintf to a stream in wide-character mode is not allowed. So every single error reporting case has an #ifdef _LIBC block in which it calls internal libc functions instead. The counterpart patch series in glibc makes it possible to simplify all of that down to a set of #defines at the top of the file; core code is written as if it is safe to just call fprintf, flockfile, and funlockfile. (One caveat: it's *not* safe to call any *other* stdio functions.) * lib/getopt.c: When _LIBC is defined, define fprintf to __fxprintf_nocancel, flockfile to _IO_flockfile, and funlockfile to _IO_funlockfile. When neither _LIBC nor _POSIX_THREAD_SAFE_FUNCTIONS is defined, define flockfile and funlockfile as no-ops. (_getopt_internal_r): Remove all internal #ifdef _LIBC blocks; the standalone error-printing code can now be used for libc as well. Add an flockfile/funlockfile pair around one case where the error message is printed in several chunks. Don't use fputc. getopt: fix fencepost error in ambiguous-W-option handling getopt_long contains an undocumented (AFAICT) feature in which, if you put "W;" in the short-options list, then '-W foo' and '-Wfoo' are treated as equivalent to '--foo'. This is implemented with a partial second copy of the code for handling long options, and that code increments optind one too many times when recovering from an ambiguous abbreviated option, which can cause the main loop to walk past the end of argv and crash. I discovered this while writing a test case that tries to exercise all of getopt's error reporting paths; I wouldn't be surprised to learn that this feature is never used by real applications. * lib/getopt.c (_getopt_internal_r): Don't increment d->optind a second time when reporting ambiguous -W options. getopt: clean up getopt.c and getopt1.c file headers In getopt.c, there is no need to include wchar.h at all, and it is safe nowadays to assume that stdlib.h does declare getenv (several other gnulib modules make this assumption). In getopt1.c, the #ifdef _LIBC block at the top can be simplified by using "" inclusions consistently, and there is no actual need to include stdlib.h (except in the #ifdef TEST block, where it should be unconditional), nor to provide a backup definition of NULL at all. * lib/getopt1.c: Simplify #ifdeffage at top of file. Move inclusion of stdlib.h to #ifdef TEST block and make unconditional. Do not define NULL. * lib/getopt.c: Don't include wchar.h. No need to declare getenv. * m4/getopt.m4 (gl_PREREQ_GETENV): Delete. * modules/getopt-gnu, modules/getopt-posix: Don't call gl_PREREQ_GETENV. getopt: harmonize comments with glibc The comments explaining how the behavior of 'getopt' varies depending on whether it's the standalone version and whether there are special characters at the beginning of the options string were inconsistent between gnulib and glibc, and also out of sync with the code. * lib/getopt.c, lib/getopt_int.h: Harmonize comments with glibc. getopt: remove USE_NONOPTION_FLAGS getopt includes code to parse an environment variable named _XXX_GNU_nonoption_argv_flags_ (where XXX is the current process's PID in decimal); but all of it has been #ifdefed out since 2001, with no official way to turn it back on. According to commentary in glibc's config.h.in, bash version 2.0 set this environment variable to indicate argv elements that were the result of glob expansion and therefore should not be treated as options, but the feature was "disabled later" because "it caused problems". According to bash's CHANGES file, "later" was release 2.01; it gives no more detail about what the problems were. Version 2.0 of bash was released on the last day of 1996, and version 2.01 in June of 1997. Twenty years later, I think it is safe to assume that this environment variable isn't coming back. * lib/getopt_int.h: Remove all #ifdef USE_NONOPTION_FLAGS blocks. * lib/getopt.c: Likewise. Also remove SWAP_FLAGS and the __libc_argc and __libc_argv externs, which were only used by #ifdef USE_NONOPTION_FLAGS blocks. getopt: tabify, in preparation for merge with glibc glibc sticks to the GNU default of indenting with a mix of 8-column tabs and spaces; make the gnulib copy match. getopt.h is not included because it is *not* going to be merged in its present form. * getopt.c, getopt1.c, getopt_int.h: Tabify. 2017-04-02 Bruno Haible relocatable-lib-lgpl: Fix link error (regression from 2011-06-16). * modules/relocatable-lib-lgpl (configure.ac): Add AC_LIBOBJ invocation, like it was done in modules/relocatable-lib on 2011-05-21 and in modules/relocatable-prog on 2011-08-15. Reported by Reuben Thomas . 2017-03-31 Bruno Haible glob: Fix invalid free() call. * lib/glob.c (glob): Reset malloc_home_dir when assigning a pointer to static storage to home_dir. Reported by Coverity via Tim Rühsen. 2017-03-31 Bruno Haible glob: Fix memory leaks. * lib/glob.c (glob): Free allocated memory before returning. Reported by Coverity via Tim Rühsen. 2017-03-31 Bruno Haible md5, sha1, sha256, sha512: Add comments regarding correctness. * lib/md5.h (buflen): Add comments regarding range. * lib/sha1.h (buflen): Likewise. * lib/sha256.h (buflen): Likewise. * lib/sha512.h (buflen): Likewise. * lib/md5.c (md5_process_bytes): Add comment why memmove is not needed. * lib/sha1.c (sha1_process_bytes): Likewise. * lib/sha256.c (sha256_process_bytes): Likewise. * lib/sha512.c (sha512_process_bytes): Likewise. Reported by Coverity via Tim Rühsen. 2017-03-22 Paul Eggert getopt: merge from glibc This does not change anything substantial; it merely simplifies hypothetical merges back to glibc. * lib/getopt.c, lib/getopt.in.h, lib/getopt1.c, lib/getopt_int.h: Change copyright notice to match what is in glibc. * lib/getopt.c: Reorder includes to match glibc. Remove uses of USE_IN_LIBIO. Remove 'register'. In __LIBC code, use __open_memstream rather than open_memstream and __glibc_likely instead of __builtin_expect. * lib/getopt.in.h (__posix_getopt) [!__GETOPT_PREFIX]: New decl. 2017-03-21 Paul Eggert dfa: make [0-9] faster in non-C locales Problem reported by John P. Linderman (Bug#26193). * lib/dfa.c (parse_bracket_exp): Remove redundant assignment. If both ends of the range are ASCII digits, do not worry about multi-character collating sequences and the like. Be consistent about using isalpha as a precondition for setbit_case_fold_c. 2017-03-19 Bruno Haible lock: Fix compilation error with HP-UX IA64 cc. * lib/glthread/lock.h (pthread_rwlockattr_setkind_np): Don't declare weak on non-glibc platforms. 2017-03-19 Paul Eggert stdalign: tweak version# and test for HP-UX IA64 Problems reported by Bruno Haible in: http://lists.gnu.org/r/bug-gnulib/2017-03/msg00078.html * lib/stdalign.in.h (_Alignas): * m4/stdalign.m4 (gl_STDALIGN_H): Use octal, not decimal, for __HP_cc version. Perhaps HP formerly used octal (as that is how they document it), but it is decimal in practice now and the ancient implementations no longer matter. * tests/test-stdalign.c (main) [__HP_cc && __ia64]: Skip test. 2017-03-19 Bruno Haible vma-iter: Add support for Solaris. * lib/vma-iter.c (vma_iterate): On Solaris, use the /proc filesystem approach. * lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define also on Solaris. * lib/get-rusage-as.c: Update comment about Solaris. * lib/get-rusage-data.c: Likewise. 2017-03-19 Bruno Haible vma-iter: Prefer HP-UX specific API on HP-UX. * lib/vma-iter.c (vma_iterate): Move HP-UX specific implementation up. * lib/vma-iter.h: Update. Just in case HP-UX ever implements mquery(). 2017-03-18 Paul Eggert stdalign: restore previous behavior for HP-UX IA64 See Bruno Haible's email in: http://lists.gnu.org/r/bug-gnulib/2017-03/msg00066.html which cites p 150 of a manual saying that 'aligned' works on Itanium. * lib/stdalign.in.h (_Alignas): Assume the '061200' applies to Itanium, not to PA-RISC. * m4/stdalign.m4 (gl_STDALIGN_H): Adjust to match stdalign.in.h. 2017-03-17 Bruno Haible stat-time, timespec: Support use of the header files in C++ mode. * lib/stat-time.h: Add "C" linkage declaration. * lib/timespec.h: Likewise. 2017-03-17 Bruno Haible stdalign: Make it work with HP-UX cc. * lib/stdalign.in.h (_Alignas): Don't define for HP-UX cc. * m4/stdalign.m4 (gl_STDALIGN_H): No need to enable the extra test for HP-UX cc. 2017-03-17 Paul Eggert flexmember: try to detect HP-UX 11.31 cc bug Problem reported by Bruno Haible in: http://lists.gnu.org/r/bug-gnulib/2017-03/msg00066.html * m4/flexmember.m4 (AC_C_FLEXIBLE_ARRAY_MEMBER): Attempt to detect bug in HP-UX 11.31 cc. 2017-03-16 Bruno Haible stdint: Fix test compilation failure with HP-UX 11 cc. * lib/stdint.in.h (_STDINT_MIN): Remove macro. (_STDINT_UNSIGNED_MIN, _STDINT_SIGNED_MIN): New macros. (PTRDIFF_MIN, SIG_ATOMIC_MIN, WCHAR_MIN, WINT_MIN): Define using _STDINT_UNSIGNED_MIN, _STDINT_SIGNED_MIN. 2017-03-14 Bruno Haible gnulib-tool: Don't produce a tests directory with only snippet .h files. * gnulib-tool (func_modules_transitive_closure_separately): If testsrelated_modules ends up with no "real" modules, aside from modules with applicability 'all', set it to empty. 2017-03-14 Bruno Haible vma-iter: Add support for HP-UX. * modules/vma-iter (configure.ac): Check for 'pstat_getprocvm'. * lib/vma-iter.c (vma_iterate): On HP-UX, use pstat_getprocvm(). * lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define also on HP-UX. * lib/get-rusage-as.c: Update comment about HP-UX. * lib/get-rusage-data.c: Likewise. (get_rusage_data): Use get_rusage_data_via_setrlimit. 2017-03-14 Bruno Haible limits-h: Make it work with HP-UX cc. * lib/limits.in.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define if not defined. 2017-03-14 Bruno Haible Fix test failures on DragonFlyBSD. * tests/test-localeconv.c (main): Treat DragonFlyBSD like FreeBSD. * tests/test-select.h (test_bad_fd): Likewise. * tests/test-get-rusage-data.c (main): Treat DragonFlyBSD like OpenBSD. 2017-03-14 Bruno Haible freadahead: Silence warning on DragonFlyBSD. * lib/freadahead.c (__sreadahead): Declare ourselves. 2017-03-14 Bruno Haible vma-iter: Add comment about AIX. * lib/vma-iter.c: Add comment about why this module is not implemented on AIX. 2017-03-14 Paul Eggert snippets: move unadjusted snippet sources to lib Problem reported by Michal Privoznik in: http://lists.gnu.org/r/bug-gnulib/2017-03/msg00039.html * lib/_Noreturn.h: Rename from build-aux/snippet/_Noreturn.h. * lib/arg-nonnull.h: Rename from build-aux/snippet/arg-nonnull.h. * lib/c++defs.h: Rename from build-aux/snippet/c++defs.h. * lib/unused-parameter.h: Rename from build-aux/snippet/unused-parameter.h. * lib/warn-on-use.h: Rename from build-aux/snippet/warn-on-use.h. * modules/snippet/_Noreturn (Files:, _NORETURN_H): * modules/snippet/arg-nonnull (Files:, ARG_NONNULL_H): * modules/snippet/c++defs (Files:, CXXDEFS_H): * modules/snippet/unused-parameter (Files:, UNUSED_PARAMETER_H): * modules/snippet/warn-on-use (Files: WARN_ON_USE_H): Adjust to file renamings. 2017-03-14 Mathieu Lirzin gnulib-tool: don't automatically distribute files from top/ * gnulib-tool (func_get_automake_snippet_unconditional): To be able to not distribute top/README-release by default, don't distribute files from top/ unconditionally. * modules/gnumakefile (Makefile.am): Distribute top/GNUmakefile. * modules/maintainer-makefile (Makefile.am): Distribute top/maint.mk. 2017-03-14 Paul Eggert gnulib-tool: fix typo in comment output * gnulib-tool (func_import): Fix typo with previous change. snippets: work around GNU Make 3.82 VPATH When using 'gnulib-tool --gnu-make' on Emacs, and building the resulting tarball on Solaris 10 which bundles GNU Make 3.82, an out-of-source (VPATH) build failed because the sans-copyright snippet file was not built before the file that used it. Presumably this is some sort of VPATH thing. Work around the problem by using the original snippet, i.e., don’t bother to remove its copyright notice. * modules/snippet/_Noreturn, modules/snippet/link-warning: Don’t assume Automake in comments. Omit long-incorrect comment. * modules/snippet/arg-nonnull (BUILT_SOURCES, arg-nonnull.h) (MOSTLYCLEANFILES): * modules/snippet/c++defs (BUILT_SOURCES, c++defs.h) (MOSTLYCLEANFILES): * modules/snippet/unused-parameter (BUILT_SOURCES, unused-parameter.h) (MOSTLYCLEANFILES): * modules/snippet/warn-on-use (BUILT_SOURCES, warn-on-use.h) (MOSTLYCLEANFILES): Remove. * modules/snippet/arg-nonnull (ARG_NONNULL_H): * modules/snippet/c++defs (CXXDEFS_H): * modules/snippet/unused-parameter (UNUSED_PARAMETER_H): * modules/snippet/warn-on-use (WARN_ON_USE_H): Don’t bother to remove the copyright notice; just use the original snippet as-is. 2017-03-13 Paul Eggert gnulib-tool: minor --gnu-make fixups * gnulib-tool (func_emit_lib_Makefile_am): Remove useless code that was a blind alley during implementation. Problem reported by Thien-Thi Nguyen in: http://lists.gnu.org/r/bug-gnulib/2017-03/msg00029.html (func_import): Note the "--gnu-make" option in the output comment. 2017-03-12 Paul Eggert gnulib-tool: new option --gnu-make This is for applications like GNU Emacs that use GNU Make features instead of Automake. * doc/gnulib-tool.texi (Initial import): Mention --gnu-make. * doc/gnulib.texi (Unit test modules, Build robot for gnulib): Do not assume Automake. * gnulib-tool (func_determine_path_separator) (func_modules_transitive_closure, func_update_file) (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am) (func_import): Add support for --gnu-make. 2017-03-11 Paul Eggert gnulib-common.m4: avoid aclocal.m4 bloat * m4/gnulib-common.m4 (gl_PROG_AR_RANLIB): Hide AM_PROG_AR from aclocal, so that aclocal does not install irrelevant macro definitions into aclocal.m4. 2017-03-10 Bruno Haible vma-iter: Let callers know about error. * lib/vma-iter.h (vma_iterate): Return 'int', not 'void'. * lib/vma-iter.c (vma_iterate): Return -1 in case of error. 2017-03-05 Bruno Haible Fix value of LD for 64-bit compilers on AIX. * m4/lib-ld.m4 (AC_LIB_PROG_LD): For 64-bit compilers on AIX ("gcc -maix64" and "xlc -q64"), add option -b64 to $LD. 2017-03-04 Paul Eggert dtotimespec: simplify * lib/dtotimespec.c (dtotimespec): Simplify. 2017-03-04 Bruno Haible test-calloc-gnu: Reenable test also for GCC 7. * tests/test-calloc-gnu.c (eight): New function. (main): Don't skip test; use eight() instead. 2017-03-04 Jim Meyering test-calloc-gnu: port to GCC7 * tests/test-calloc-gnu.c (main) [__GNUC__ >= 7]: Skip a test that attempts to calloc more than SIZE_MAX bytes, because GCC7 and newer would detect that at compilation time. 2017-03-04 Bruno Haible tests: Avoid compiler warning about uses of null_ptr. * tests/null-ptr.h: New file. * tests/test-canonicalize.c: Include null-ptr.h. (null_ptr): Remove function. * tests/test-canonicalize-lgpl.c: Likewise. * tests/test-memmem.c: Likewise. * tests/test-ptsname_r.c: Likewise. * modules/canonicalize-tests (Files): Add tests/null-ptr.h. * modules/canonicalize-lgpl-tests: Likewise. * modules/memmem-tests: Likewise. * modules/ptsname_r-tests: Likewise. Reported by Jim Meyering. 2017-03-03 Bruno Haible doc: Mention Mac OS X deficiencies regarding semaphores. * doc/posix-functions/sem_init.texi: Mention status on Mac OS X. * doc/posix-functions/sem_destroy.texi: Likewise. * doc/posix-functions/sem_getvalue.texi: Likewise. 2017-03-03 Bruno Haible lock tests: Fix test failure on Mac OS X (regression from 2017-01-05). Reported by Assaf Gordon via Pádraig Brady . * tests/test-lock.c: On Mac OS X, use named semaphores, not unnamed semaphores. (USE_NAMED_SEMAPHORE, USE_UNNAMED_SEMAPHORE): New macros. (atomic_int_semaphore): New macro. 2017-02-28 Bruno Haible perror tests: Tweak for z/OS. Reported by Daniel Richard G. . * tests/test-perror.sh: Don't fail z/OS style perror output. 2017-02-26 Bruno Haible nproc: Refactor large function. * lib/nproc.c (num_processors_ignoring_omp): New function, extracted from num_processors. (num_processors): In this function, only deal with OMP. 2017-02-26 Pádraig Brady nproc: adjust handling of OpenMP environment variables to match the return value from omp_get_num_threads(), i.e.: - honor OMP_THREAD_LIMIT without OMP_NUM_THREADS - Treat 0 as an invalid value and ignore Also remove the call to omp_get_num_threads() because it's ineffective without the omp pragmas in place. * lib/nproc.c (parse_omp_threads): Return 0 if specified, so that it can be ignored. (num_processors): Honor OMP_THREAD_LIMIT even without OMP_NUM_THREADS being set. Also fix a typo in the environment variable being checked, from the previous recent commit. 2017-02-26 Pádraig Brady nproc: support nested OMP_NUM_THREADS, and OMP_THREAD_LIMIT * lib/nproc.c (parse_omp_threads): A new function refactored from num_processors() to support parsing both of the above environment variables. (num_processors): Prefer using omp_get_num_threads() with [_OPENMP] to accurately reflect the current OpenMP nesting level. Also support the OMP_THREAD_LIMIT environment variable to limit the max value determined from OMP_NUM_THREADS. * modules/nproc: Depend on minmax header. Suggested by Oliver Heimlich. 2017-02-25 Bruno Haible maintainer-makefile: Fix AC_PROG_SED with autoconf cache. * m4/gnulib-common.m4 (AC_PROG_SED): Fix AC_CACHE_CHECK invocation. 2017-02-24 Paul Eggert ftoastr: port to -Wdouble-promotion Work around -Wdouble-promotion false alarm in recent GCCs. * lib/ftoastr.c (PROMOTED_FLOAT): New macro. (ftoastr_snprintf, FTOASTR): Use it. 2017-02-21 Bruno Haible lock tests: Fix build failure on GNU/Hurd (regression from 2017-01-05). Reported by Rene Saavedra in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25821 via Paul Eggert. * lib/glthread/lock.h: On glibc systems without PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, use the fallback implementation of rwlocks. * lib/glthread/lock.c: Likewise. 2017-02-20 Bruno Haible lock tests: Fix build failure on z/OS. Reported by Daniel Richard G. . * modules/lock-tests (configure.ac): Test for . * tests/test-lock.c (USE_SEMAPHORE): Don't set if does not exist. 2017-02-19 Bruno Haible havelib: Prefer the search path of /usr/bin/gcc over the one of $CC. This helps when CC=clang. * m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Prefer the search path of /usr/bin/gcc. havelib: Support overriding the result of AC_LIB_PREPARE_MULTILIB. * m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Use AC_CACHE_CHECK. 2017-02-19 Bruno Haible gnulib-tool: Avoid conflict of havelib-tests with --single-configure. * gnulib_tool (func_create_testdir): Avoid havelib-tests when --with-tests --single-configure is specified. 2017-02-16 Tim Rühsen users.txt: Update links, use HTTPS where possible * users.txt: Updated to HTTPS where possible, fixed some links to new locations. 2017-02-16 Bruno Haible xbinary-io: Fix inlining. * lib/xbinary-io.c: Set XBINARY_IO_INLINE, not XSETMODE_INLINE. 2017-02-16 Paul Eggert xbinary-io: rename from xsetmode This patch is taken from suggestions by Bruno Haible in: http://lists.gnu.org/r/bug-gnulib/2017-02/msg00060.html http://lists.gnu.org/r/bug-gnulib/2017-02/msg00061.html * lib/binary-io.c (__gl_setmode_check): Set errno to EINVAL, not ENOTTY, when it is an inappropriate device. * lib/binary-io.h (SET_BINARY): Resurrect. * lib/xbinary-io.c: Rename from lib/xsetmode.c. (xset_binary_mode_error): Rename from xsetmode_error. * lib/xbinary-io.h: Rename from lib/xsetmode.h. (xset_binary_mode): Rename from xsetmode. All uses changed. * modules/xbinary-io: Rename from modules/xsetmode. Update file names. * tests/test-binary-io.sh (tmpfiles): Remove no-longer-used file name. * NEWS: Update to match revised behavior. 2017-02-15 Paul Eggert tests: Adjust to recent SET_BINARY change * tests/test-binary-io.c (main): * tests/test-binary-io.sh: Remove test for SET_BINARY. * tests/test-closein.c, tests/test-fflush2.c, tests/test-ftell.c: * tests/test-ftello.c, tests/test-nonblocking-pipe-child.c: * tests/test-yesno.c: Use set_binary_mode, not SET_BINARY. xsetmode: new module This is to fix a problem noted by Eric Blake. Code was using xfreopen to change files to binary mode, but this fails for stdout when in append mode. Such code should use xsetmode instead. * NEWS: Document incompatible changes to binary-io module. * lib/binary-io.c (__gl_setmode_check) [__DJGPP__ || __EMX__]: New function. * lib/binary-io.h (__gl_setmode): Rename from set_binary_mode. (set_binary_mode): New function, which also checks for tty. * lib/xsetmode.c, lib/xsetmode.h, modules/xsetmode: New files. 2017-02-14 Paul Eggert headers: fix begin-end typos * lib/mbfile.h, lib/se-selinux.in.h: Fix typos by replacing _GL_INLINE_HEADER_BEGIN with _GL_INLINE_HEADER_END. selinux-h: port to PGI 16.10 * lib/se-selinux.in.h: Don't assume that include_next skips over duplicate -I DIR options. argp: port to PGI 16.10 * lib/argp-pin.c (dummy): Declare as needed to make file nonempty. 2017-02-13 Darshit Shah unicase: Update function protoype to match definition. * lib/unicase/special-casing.h (gl_unicase_special_lookup): Gperf 3.1 uses 'size_t' as the datatype for the 'len' parameter in the functions it generates. Update the prototype specified here to match the newly generated function. 2017-02-12 Bruno Haible times test: Avoid gcc warnings on Linux/x32. * tests/test-times.c (main): Really cast printf arguments from clock_t to 'long int'. 2017-02-12 Paul Eggert glob: port better to emscripten Problem reported by Bruno Haible in: http://lists.gnu.org/r/bug-gnulib/2017-02/msg00031.html * lib/glob.c (glob): Don't assume HAVE_GETPWNAM_R || _LIBC. 2017-02-11 Bruno Haible host-cpu-c-abi: Support for 64-bit AIX, 32-bit armhf on arm64, hppa64. * m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Define also HOST_CPU. For the x32 ABI on x86_64, set HOST_CPU_C_ABI to 'x86_64-x32' and define both __x86_64__ and __x86_64_x32__. For the ELFv2 ABI on powerpc64, define both __powerpc64__ and __powerpc64_elfv2__. Recognize 64-bit compilation on AIX. Recognize 32-bit compilation on arm64/Linux. Distinguish hppa64 from hppa. 2017-02-10 Bruno Haible search: Don't assume that tsearch() exists if 'VISIT' is defined. * m4/search_h.m4 (gl_SEARCH_H): Determine HAVE_TYPE_VISIT. * modules/search (Makefile.am): Substitute HAVE_TYPE_VISIT. * lib/search.in.h (VISIT): Define if HAVE_TYPE_VISIT is 0. 2017-02-09 Bruno Haible doc: Don't mention obsolete AC_LIBTOOL_WIN32_DLL macro. * doc/gnulib.texi (Libtool and Windows): Recommend LT_INIT([win32-dll]) instead of AC_LIBTOOL_WIN32_DLL. Reported by Reuben Thomas . 2017-02-08 Paul Eggert stddef-tests: port to SIZE_MAX <= INT_MAX * tests/test-stddef.c: Include , for INT_MAX. Do not assume that INT_MAX < SIZE_MAX. 2017-02-01 Bruno Haible lock tests: Fix link error. * modules/lock-tests (test_rwlock1_LDADD): Add @YIELD_LIB@. Reported by Tom G. Christensen . 2017-01-31 Bruno Haible lock: Fix link error (regression from 2017-01-05). * lib/glthread/lock.h [USE_POSIX_THREADS_WEAK]: Declare also pthread_rwlockattr_init, pthread_rwlockattr_setkind_np, pthread_rwlockattr_destroy weak. Reported by Tom G. Christensen . 2017-01-30 Paul Eggert Port to PGI 16.10 x86-64 This patch fixes one real bug in gl_anylinked_list2.h, along with some minor glitches that are not bugs. It does not silence PGI’s thousands of bogus warnings when compiling test-intprops.c. Fortunately, the warnings do not cause a failure. * lib/c-ctype.h (_C_CTYPE_LOWER_A_THRU_F_N, _C_CTYPE_LOWER_N): Rename parameter to avoid PGI warning about ‘#define f(n) 'n'’. My goodness, PGI goes back a long ways - this predates C89! * lib/gl_anylinked_list2.h (ASYNCSAFE): Fix bug caught by PGI. For example, ASYNCSAFE (const void *) should expand to ‘const void *volatile’, not to ‘volatile const void *’. * lib/spawn.in.h (POSIX_SPAWN_USEVFORK): Don't define if already defined. * lib/verify.h (verify) [!__GNUC__]: Use shorter albeit meaningless string to bypass silly compiler limits. * tests/infinity.h (Infinityf, Infinityd, Infinityl) [__PGI]: * tests/nan.h (NaNf, NaNd, NaNl): Use static functions to avoid misguided compiler diagnostics. Is there some reason we don’t use static functions on all platforms? 2017-01-20 Paul Eggert parse-datetime: handle timezones reentrantly This API change was prompted by a report by Pádraig Brady in: https://bug.debian.org/851934#10 To help fix the bug, make parse_datetime2 more reentrant. * NEWS: Document this incompatible change. * lib/parse-datetime.h, lib/parse-datetime.y (parse_datetime2): Add two arguments, the timezone and the timezone name. All callers changed. If TZ="..." is specified, use it for calculating defaults. * lib/parse-datetime.y: Don't include xalloc.h or use xmalloc, as this code should be usable in a library. (mktime_ok, get_effective_timezone): Accept timezone arg too. All callers changed. (get_tz): Remove. (get_effective_timezone): Check for failures. 2017-01-20 Eric Blake localename: port to cygwin 2.6 * lib/localename.c (gl_locale_name_thread_unsafe): Add clause for Cygwin. * modules/localename (Depends-on): Add extensions, since NL_LOCALE_NAME() is not visible without it. 2017-01-17 Pádraig Brady parse-datetime: fix dependence on AC_PROG_SED * modules/parse-datetime: Use `sed` directly like all other modules. Reported by J William Piggott 2017-01-16 Paul Eggert intprops: update doc URLs * doc/intprops.texi (Integer Range Overflow): Update URLs. 2017-01-16 Bruno Haible host-cpu-c-abi: Add support for armhf, arm64, x32, s390x. * m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Require gl_C_ASM. On x86_64 systems, distinguish x86_64 and x32. On arm systems, distinguish arm, armhf, arm64, and no longer distinguish arm and armel. On s390x systems, distinguish s390 and s390x. * modules/host-cpu-c-abi (Files): Add m4/asm-underscore.m4. * NEWS: Mention the change regarding 'armel'. 2017-01-15 Paul Eggert localeinfo: case_folded_counterparts and WEOF * NEWS: Document this. * lib/localeinfo.c (case_folded_counterparts): First arg is now wint_t, not wchar_t. This generalizes the function to also work on WEOF, where it returns 0. dfa: port to gcc -fsanitize=undefined * lib/dfa.c (copy): Don’t pass NULL with size 0 to memcpy, as this runs afoul of gcc -fsanitize=undefined. 2017-01-14 Paul Eggert strftime: %z is -00 if unknown * lib/strftime.c (DO_TZ_OFFSET): Omit arg 'negative'; it's now the caller's responsibility to set 'negative_number'. All uses changed. (__strftime_internal): Put '-' before a zero UTC offset if the time zone abbreviation starts with "-", which is the recently-introduced tzdb convention for an unknown UTC offset that is arbitrarily set to 0. * tests/test-strftime.c: Test for this. 2017-01-10 Paul Eggert dfa: port to older GCC Problem reported by Assaf Gordon in: http://lists.gnu.org/r/bug-gnulib/2017-01/msg00103.html * modules/c99: New module. This merely attempts to use the latest C version, which should be enough to solve this particular problem. The idea is to document which Gnulib modules assume C99 or later. * modules/dfa (Depends-on): Add it. 2017-01-10 Bruno Haible Update DEPENDENCIES. * DEPENDENCIES: List only https URLs. Update recommended version for autoconf, automake, gperf. 2017-01-10 Jim Meyering maint.mk: enforce spelling of "timestamp" (i.e., no space) * top/maint.mk (prohibit_undesirable_word_seq_RE_): Also disallow /\btime\s+stamps?\b/. Prefer "timestamp". 2017-01-10 Paul Eggert dfa: minor simplification with emptyset * lib/dfa.c (build_state): Simplify by using emptyset. 2017-01-09 Paul Eggert dfa: shrink constraints from 4 bits to 3 * lib/dfa.c (newline_constraint, letter_constraint) (other_constraint, prev_newline_dependent) (prev_letter_dependent, NO_CONSTRAINT, BEGLINE_CONSTRAINT) (ENDLINE_CONSTRAINT, BEGWORD_CONSTRAINT, ENDWORD_CONSTRAINT) (LIMWORD_CONSTRAINT, NOTLIMWORD_CONSTRAINT): Constraints need only 3 bits, not 4. Using smaller integers shrinks the code a bit and makes grep a tad faster on x86-64. dfa: omit unnecessary ptrdiff_t check * lib/dfa.c (alloc_position_set): Do not worry about ptrdiff_t overflow, since xnmalloc does that now. dfa: omit unnecessary allocation * lib/dfa.c (dfaanalyze): Do not allocate follow set, since an all-zero follow set works just fine. dfa: omit unused local * lib/dfa.c (build_state): Fix up recent change. maint: remove stray .texi files Although these were superseded by other files like doc/posix-functions/ctime.texi, the old files were not removed. * doc/ctime.texi, doc/inet_ntoa.texi: Remove. 2017-01-08 Paul Eggert getprogname: fix port to IRIX * lib/getprogname.c (getprogname) [__sgi]: Don't dump core if malloc returns NULL. dfa: fix reallocation bug when matching newlines Problem reported for sed by S. Gilles (Bug#25390). * lib/dfa.c (realloc_trans_if_necessary): Move earlier. (dfastate): Reallocate before moving any newline transition ... (build_state): ... instead of reallocating here, where it is too late. 2017-01-07 Tim Rühsen (tiny change) Avoid -Wundef warning about undefined WINDOWS_SOCKETS. * lib/sockets.h: Test if WINDOWS_SOCKETS is defined. 2017-01-07 Tim Rühsen (tiny change) Avoid -Wundef warning about undefined __USE_FILE_OFFSET64. * lib/glob-libc.h: Test if __USE_FILE_OFFSET64 is defined. 2017-01-07 Bruno Haible stdioext: Port to Minix 3.2 and newer. * lib/stdio-impl.h: Treat __minix like the newest NetBSD. * lib/fseeko.c (fseeko): Likewise. Reported by Nelson Beebe via Paul Eggert. 2017-01-06 Paul Eggert getprogname: port to IRIX * lib/getprogname.c (getprogname): Port to IRIX. Based on an idea by Bastien Roucariès at: http://lists.gnu.org/r/bug-gnulib/2010-12/msg00096.html via code from Bruno Haible at: https://lists.gnu.org/r/bug-gnulib/2010-12/msg00249.html localename-tests: port to NetBSD 7 Problem reported by Nelson H. F. Beebe. * tests/test-localename.c: Test newlocale and uselocale only if both exist. glob, intprops, xalloc: work around Clang bug Work around LLVM bug 16404, which is still not fixed. https://llvm.org/bugs/show_bug.cgi?id=16404 Problem reported by Nelson H. F. Beebe. * lib/glob.c, lib/intprops.h, lib/xalloc-oversized.h (__has_builtin): Remove. * lib/glob.c (size_add_wrapv): * lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW, _GL_HAS_BUILTIN_OVERFLOW_P): * lib/xalloc-oversized.h (xalloc_oversized): Do not use overflow builtins if Clang. dfa: fix 'return' typo Problem reported by Nelson H. F. Beebe. * lib/dfa.c (merge): Fix typo that Sun compilers rejected. 2017-01-05 Pádraig Brady parse-datetime: fix generated paths for coverage files * modules/parse-datetime: Adjust the paths for parse-datetime.y within parse-datetime.c, so that gcc generates appropriate .gcno files, allowing lcov to proceed without error. Previously it would error trying to find "lib/lib/parse-datetime.y". 2017-01-05 Pádraig Brady maint.mk: support parallel execution of coverage * top/maint.mk (coverage): Run dependencies serially, thus supporting parallel processing of each one, particularly build-coverage, which builds and runs tests. 2017-01-05 Bruno Haible lock tests: Prefer semaphore over mutex. * tests/test-lock.c (USE_SEMAPHORE): New constant. (struct atomic_int, init_atomic_int, get_atomic_int_value, set_atomic_int_value) [USE_SEMAPHORE]: Define using a POSIX semaphore. Suggested by Torvald Riegel . 2017-01-05 Bruno Haible lock: Provide guarantee to avoid writer starvation for rwlocks. The rationale is: 1) Read-preferring read-write locks are prone to writer starvation if the number of reader threads multiplied by the percentage of time they have the lock held is too high. 2) Write- preferring read-write locks are the only reliable way to avoid this. 3) There have been reports of 'test-lock' hanging on glibc systems http://lists.gnu.org/r/bug-gnulib/2017-01/msg00009.html, and glibc indeed implements read-preferring rwlocks by default, see http://man7.org/linux/man-pages/man3/pthread_rwlockattr_setkind_np.3.html and https://sourceware.org/bugzilla/show_bug.cgi?id=13701 . * m4/pthread_rwlock_rdlock.m4: New file. * m4/lock.m4 (gl_LOCK): Invoke gl_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER. * lib/glthread/lock.h [USE_POSIX_THREADS]: Test HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER. Use a different implementation of rwlock initialization on glibc systems without HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER. Use a different implementation of rwlocks altogether on non-glibc systems without HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER. [USE_PTH_THREADS]: Use a different implementation of rwlocks altogether. * lib/glthread/lock.c [USE_POSIX_THREADS] (glthread_rwlock_init_for_glibc): New function. [USE_POSIX_THREADS] (glthread_rwlock_rdlock_multithreaded): Update comment. [USE_PTH_THREADS]: New implementation of rwlocks. [USE_WINDOWS_THREADS] (glthread_rwlock_rdlock_func): Prefer writers over readers. * modules/lock (Files): Add m4/pthread_rwlock_rdlock.m4. (Depends-on): Add 'extensions'. * tests/test-rwlock1.c: New file. * lock-tests (Files): Add it. (Depends-on): Add usleep. (Makefile.am): Add test-rwlock1 to the tests. 2017-01-05 Bruno Haible thread: Fix pth port. * lib/glthread/thread.h (pth_init): Declare weak. (glthread_create, glthread_sigmask, glthread_join, gl_thread_self, gl_thread_exit): Make sure Pth is initialized before invoking any Pth function. 2017-01-04 Assaf Gordon parse-datetime: fix debug message on lone year number Input dates such as date -d "Apr 11 22:59:00 2011" are parsed as date (Apr 11, with default year 2016), then time, then a number (2011). Based on the combination of previously seen tokens, 'digits_to_date_time' determines 2011 to be a year value. This fixes the debug messages to correctly show the updated year. Before: $ date --debug -d 'Apr 11 22:59:00 2011' date: parsed date part: (Y-M-D) 2016-04-11 date: parsed time part: 22:59:00 date: parsed number part: today/this/now After: $ ./src/date --debug -d 'Apr 11 22:59:00 2011' date: parsed date part: (Y-M-D) 2016-04-11 date: parsed time part: 22:59:00 date: parsed number part: year: 2011 * lib/parse-datetime.y (struct parser_control): Add 'year_seen', 'debug_year_seen' member fields. (digits_to_date_time): Update 'year_seen' as needed. (debug_print_current_time): Inform about year updates. (parse_datetime2): Initialize year_seen,debug_year_seen member fields. parse-datetime: fix local timezone debug messages "Local timezones" are strings that affect only DST relative to the default timezone. The debug messages in parse-datetime.y printed wrong information when encountering local timezones. Examples: Here EET/EEST are time zones ('zone' token, with values +02:00/+03:00): TZ=Asia/Tokyo ./src/date --debug -d '2011-12-11 EET' TZ=Asia/Tokyo ./src/date --debug -d '2011-06-11 EEST' When the default timezone relates to the zone strings, EET/EEST are parsed as local timezones (tLOCAL_ZONE), and only change the DST value (0/1, respectively): TZ=Europe/Helsinki ./src/date --debug -d '2011-12-11 EET' TZ=Europe/Helsinki ./src/date --debug -d '2011-06-11 EEST' * lib/parse-datetime.y (debug_print_current_time): If local timezone was seen, inform about DST change, don't print actual timezone. (debug_strfdatetime): If local timezone was seen, use default timezone (and adjust as needed) instead of using incorrect timezone. (parse_datetime2): Use correct time-zone source string, and adjust default timezone as needed. parse-datetime: add debug warning about DST changes Incorrect date arithmetic due to daylight saving time (DST) are a common (false) bug report in coreutils. Detect two such cases and print a warning: 1. year/month/day adjustments (performed on 'struct tm'), where 'mktime' returns a different isdst value. 2. hour/minute/seconds/ns adjustments (performed on 'time_t'), where the result of 'localtime(3)' on the value will return a different isdst value. Note: DST changes could be harmless or unnoticeable. Examples (with 'TZ=America/New_York'): Unnoticeable: result is 2016-Dec-14 $ date -d '2016-06-15 EDT + 6 months' +%b Dec Unnoticeable: result is 2016-Dec-15 11:00:00 $ date -d '2016-06-15 12:00:00 EDT + 6 months' +%F 2016-12-15 This is unexpected: $ date -d '2016-06-01 EDT + 6 months' +%F 2016-11-30 The new debug warnings will show: $ ./src/date --debug -d '2016-06-01 EDT + 6 months' +%F ... date: warning: daylight saving time changed after date adjustment ... * lib/parse-datetime.y (parse_datetime2): Detect DST changes, and print an appropriate warning message. parse-datetime: add debug warning about date arithmetic Date arithmetic are done directly on the fields of 'struct tm', which can result in invalid dates. Normalization with 'mktime(3)' will then produce a different date - which might cause unexpected results. Examples: '2016-10-31 - 1 month' => 2016-09-31 normalized to 2016-10-01. '2016-02-29 + 1 year' => 2017-02-29 normalized to 2017-03-01. Note that date normalization is not inherently wrong and not rejected, as it has legitimate uses: '2016-12-29 + 5 days' => 2016-12-34 noramlized to 2017-01-03. If the user asked to adjust months but 'mday' changed, or user asked to adjust years but 'month' changed - warn about it. $ ./src/date --debug -d '2016-10-31 - 1 month' ... date: warning: when adding relative months/years, \ it is recommended to specify the 15th of the month ... date: warning: month/year adjustment resulted in shifted dates: date: adjusted Y M D: 2016 09 31 date: normalized Y M D: 2010 10 01 ... * lib/parse-datetime.y (parse_datetime2): Detect such cases and print a warning message. Improve recommendation of when to use 15 of the month or noon for date arithmetic. parse-datetime: fix debug message of relative part after timezone Relative part (e.g '+8 days') after a timezone string was not reported (was only reported after a timezone number). Due to the parser's structure, timezone strings with numbers were handled separately. before: # Timezone number + relative part: OK $ ./src/date --debug +%F -d '2013-10-30 00:00:00 +00:00 -8 days' ... date: parsed relative part: -8 day(s) # Timezone string + relative part: missing $ ./src/date --debug +%F -d '2013-10-30 00:00:00 UTC -8 days' [ missing message ] After: messages are printed in both cases. * lib/parse-datetime.y ('zone' token): Call debug_print_relative_time. parse-datetime: fix incorrect debug message on lone number A lone number is an absolute value, not a relative time part. before: $ date --debug -d '20130101' date: parsed number part: today/this/now After: $ ./src/date --debug -d '20130101' date: parsed number part: (Y-M-D) 2013-01-01 * lib/parse-datetime.y ('item'/'number' tokens): Call 'debug_print_current_time' instead of 'debug_print_relative_time'. 2017-01-02 Paul Eggert doc: modernize for C11 etc. * doc/gnulib-readme.texi (Portability guidelines): Modernize a bit for C11, MinGW, etc. This responds to Paul Smith's question in: http://lists.gnu.org/r/bug-gnulib/2017-01/msg00014.html dfa: prefer functions to FETCH_WC macro * lib/dfa.c (FETCH_WC): Remove, replacing with ... (fetch_wc, bracket_fetch_wc): ... new functions. These store the wint_t result into DFA->lex.wctok instead of to a separate arg. All callers changed. Move more local decls closer to where they're used. dfa: narrow more local var scopes * lib/dfa.c: Move more local decls to be more local. dfa: remove duplicate assignment Problem reported by Bruno Haible in: http://lists.gnu.org/r/bug-gnulib/2017-01/msg00007.html * lib/dfa.c (parse_bracket_exp): Simplify. 2017-01-01 Paul Eggert dfa: simplify constraint-dependency checking * lib/dfa.c (prev_newline_constraint, prev_letter_constraint) (prev_other_constraint): Remove. (prev_newline_dependent, prev_letter_dependent): Simplify, to avoid an unnecessary bitwise AND operation. dfa: prefer functions and constants to macros * lib/dfa.c: Prefer constants to macros where either will do. (streq, isasciidigit, newline_constraint) (letter_constraint, other_constraint, succeeds_in_context) (prev_newline_constraint, prev_letter_constraint) (prev_other_constraint, prev_newline_dependent) (prev_letter_dependent, accepting, accepts_in_context): Now static functions instead of function-like macros. Use lower-case names accordingly. All uses changed. dfa: narrow more local var scopes * lib/dfa.c: Move some more local decls down to nearer where they're needed. 2016-12-31 Jim Meyering dfa: narrow the scope of many local variables * lib/dfa.c: Now that we are no longer constrained to c89, move declarations of many variables (often indices) "down" into the scope(s) where used or to the point of definition. This is a no-semantic-change diff. 2017-01-01 Paul Eggert version-etc: new year * build-aux/gendocs.sh (version): * doc/gendocs_template: * doc/gendocs_template_min: * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright dates by hand in templates and the like. * all files: Run 'make update-copyright'. 2016-12-31 Eric Blake do-release-commit-and-tag: avoid shell syntax error * build-aux/do-release-commit-and-tag (curr_br): $branch can contain spaces when rebasing. maint.mk: hoist gnulib_dir definition earlier * top/maint.mk (gnulib_dir): Move near top of file. 2016-12-31 Jim Meyering maint.mk: do not always evaluate intprops-related shell * top/maint.mk (_intprops_names): Change := to just "=" to avoid using gnulib_dir undefined (gnulib_dir is defined later in the file, which will be fixed separately), and besides, there is no need to incur the cost of this shell invocation for every single use of this .mk file. Reported by Eric Blake in https://lists.gnu.org/r/bug-gnulib/2016-12/msg00137.html 2016-12-30 Jim Meyering maint.mk: improve sc_prohibit_intprops_without_use * top/maint.mk (_intprops_names): Don't hard-code the list of symbol names. Instead, derive it on the fly. 2016-12-30 Paul Eggert dfa: shorten sbit, success * lib/dfa.c (struct regex_syntax.sbit): (struct dfa.success): Use char, not int, for array elements, since they are all in the range 0..7. dfa: simplify multibyte_prop etc. This follows up on a change made when dfa.c was in grep, namely grep commit c797046c7c13c2647182b919a79a4c5b4ecf82b1 dated 2015-08-12 07:35:03 -0700, which removed unused multibyte support. That earlier simplification allows for some more simplification and trimming down here. * lib/dfa.c (struct mb_char_classes): New member nchars_alloc. (struct lexer_state): New mamber brack. (struct dfa, addtok_mb): multibyte_prop elements are now char, not int, since they must be in the range 0..3 now. Remove members mbcsets, nmbcsets, mbcsets_alloc, since the brack member now supersedes them. (parse_bracket_exp): Update dfa->lex.brack instead of dfa->mbcsets. (addtok): Use dfa->lex.brack instead of dfa->mbcsets. (dfaparse): Remove unnecessary initializations of already-0 storage. (free_mbdata): Free d->lex.brack.chars instead of d->mbcsets. (dfassbuild): No need to clear sup->mbcsets. dfa: minor performance tweak * lib/dfa.c (setbit_wc): Test < 0, not == EOF. dfa: wrap charclass inside a struct On my platform (gcc Ubuntu 5.4.0-6ubuntu1~16.04.4 x86-64, en_US.utf8 locale) this makes 'grep -Fi -f list.txt list.txt >out' about 5% faster, where list.txt is generated by 'aspell dump master | head -n 100000 >list.txt'. See Bug#22239. * lib/dfa.c (charclass): Wrap inside a struct. All uses changed. (CHARCLASS_INIT, tstbit, setbit, clrbit, zeroset, fillset, notset) (equal, emptyset, charclass_index, setbit_wc, setbit_case_fold_c): Adjust to this, e.g., by using charclass * rather than charclass. All callers changed as needed. (copyset): Remove. All uses changed to simple assignment. (parse_bracket_exp): Use zeroset instead of memset. 2016-12-30 Jim Meyering maint.mk: update list of intprops.h symbol names * top/maint.mk (_intprops_names): Regenerate the list of symbol names. This avoids a false failure of the sc_prohibit_intprops_without_use rule in grep. 2016-12-29 Eric Blake getopt: fix parallel test failure * tests/test-getopt-posix.c (TEST_GETOPT_TMP_NAME): Set name. * tests/test-getopt-gnu.c (TEST_GETOPT_TMP_NAME): Likewise. * tests/test-getopt-main.h (main): Use different file names in case test-getopt-gnu and test-getopt-posix run in parallel. 2016-12-29 Paul Eggert xalloc: x2nrealloc check for ptrdiff_t overflow * lib/xalloc.h (x2nrealloc): Check for ptrdiff_t overflow, too. * modules/xalloc, modules/xvasprintf (Depends-on): Add stdint. 2016-12-24 Bruno Haible lock test: Fix performance problem on multi-core machines. * tests/test-lock.c (USE_VOLATILE): New macro. (struct atomic_int): New type. (init_atomic_int, get_atomic_int_value, set_atomic_int_value): New functions. (lock_checker_done, rwlock_checker_done, reclock_checker_done): Define as 'struct atomic_int'. (lock_checker_thread, test_lock, rwlock_checker_thread, test_rwlock, reclock_checker_thread, test_recursive_lock): Use the new functions. Reported by Eric Blake in https://www.redhat.com/archives/libvir-list/2012-March/msg00854.html and by Pádraig Brady in http://lists.gnu.org/r/bug-gnulib/2016-12/msg00117.html. 2016-12-19 Bruno Haible vma-iter: Fix endless loop on 64-bit Windows. * lib/vma-iter.c (vma_iterate): On Windows, use 'uintptr_t' instead of 'unsigned long'. 2016-12-19 Bruno Haible stdint: Fix WINT_MAX to match the gnulib provided wint_t on minw. * m4/wint_t.m4 (gt_TYPE_WINT_T): Define GNULIB_OVERRIDES_WINT_T here. * m4/stdint.m4 (gl_STDINT_H): Don't define GNULIB_OVERRIDES_WINT_T. Invoke gt_TYPE_WINT_T instead. (gl_STDINT_TYPE_PROPERTIES): Test GNULIB_OVERRIDES_WINT_T. * modules/stdint (Files): Add m4/wint_t.m4. * modules/wchar (Makefile.am): Substitute GNULIB_OVERRIDES_WINT_T. * modules/wctype-h (Makefile.am): Likewise. * lib/wchar.in.h (wint_t): Override if GNULIB_OVERRIDES_WINT_T is set, not only on MSVC. * lib/wctype.in.h (wint_t): Likewise. 2016-12-19 Paul Eggert getopt-posix-tests: fix Makefile typo * modules/getopt-posix-tests (test_getopt_posix_LDADD): Fix typo: the last ‘_’ was missing in the name. I suspect that the typo explains this build failure: https://buildfarm.opencsw.org/buildbot/builders/ggrep-solaris10-sparc/builds/39 although I can’t reproduce the problem on Solaris 10 sparc. 2016-12-18 Paul Eggert dfa: improve worst-case 'replace' performance See my note in Bug#22357#71. * lib/dfa.c (insert, delete): Rework to avoid duplicate test. (merge_constrained): New function, which is like the old 'merge' function, except with a new argument C2. Simplify the body by avoiding the need for different sections of code depending on whether one input is exhausted. (merge): Use the new function. (delete): Return the constraint of the deleted position, not the entire position. Caller changed. (replace): Change from O(N*(N + log N)) to O(N log N) algorithm. 2016-12-18 Norihiro Tanaka dfa: performance improvement for removal of epsilon closure See Bug#22357#32. * lib/dfa.c (delete): Use binary search to find deleted index. (replace): New function. It replaces a position with the followed set. (epsclosure): Replace it with a new algorithm. Update caller. 2016-12-18 Bruno Haible Split tests for getopt-posix and getopt-gnu. * tests/test-getopt-posix.c: New file. * tests/test-getopt-gnu.c: New file, with code from test-getopt.c. * tests/test-getopt-main.h: Renamed from tests/test-getopt.c. Remove stuff moved to test-getopt-gnu.c. Test TEST_GETOPT_GNU instead of GNULIB_TEST_GETOPT_GNU. * modules/getopt-posix-tests (Files): Add test-getopt-posix.c, test-getopt-main.h. Remove test-getopt.c, test-getopt_long.h. (Makefile.am): Test test-getopt-posix instead of test-getopt. * modules/getopt-gnu-tests: New file. * modules/getopt-gnu (configure.ac): Don't define GNULIB_TEST_GETOPT_GNU. 2016-12-18 Bruno Haible posix-modules: Add options for specific platforms. * posix-modules (func_usage): Document options --for-mingw, --for-msvc. (exclude_for_mingw, exclude_for_msvc, exclude): New variables. Invoke func_tmpdir. Filter out the excludes. 2016-12-18 Bruno Haible getopt: Fix link error for users of getopt() in . * lib/getopt.in.h (getopt etc.): Do the macro definitions also when __need_getopt is defined. Undefine all macros before defining them. * modules/getopt (Include): Clarify that including is also OK. * tests/test-getopt.c: Add comment. 2016-12-17 Bruno Haible getaddrinfo tests: Avoid compilation error on MSVC. * tests/test-getaddrinfo.c: Don't check the prototypes of freeaddrinfo, getaddrinfo on native Windows. 2016-12-17 Bruno Haible getlogin, getlogin_r: Fix link errors on MSVC. * m4/getlogin.m4 (gl_LIB_GETLOGIN): New macro. * modules/getlogin (configure.ac): Require gl_LIB_GETLOGIN. (Link): New section. * modules/getlogin_r (Files): Add m4/getlogin.m4. (configure.ac): Require gl_LIB_GETLOGIN. (Link): New section. * NEWS: Mention the new link requirements. * modules/getlogin-tests (test_getlogin_LDADD): New variable. * modules/getlogin_r-tests (test_getlogin_r_LDADD): New variable. 2016-12-17 Bruno Haible Un-deprecate the 'progname' module. * NEWS: Describe the appropriate use-cases of 'progname' versus 'getprogname'. Based on discussion summary at http://lists.gnu.org/r/bug-gnulib/2016-10/msg00105.html 2016-12-17 Bruno Haible Reorganize NEWS a bit. * NEWS: Move some not so important changes away from section "Important Notes". 2016-12-17 Bruno Haible tanhf: Avoid redefinition error on MSVC. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_TANHF. * m4/tanhf.m4 (gl_FUNC_TANHF): Set REPLACE_TANHF to 1 if the function may be defined as an inline function. * modules/math (Makefile.am): Substitute REPLACE_TANHF. * lib/math.in.h (tanhf): Override if REPLACE_TANHF is 1. 2016-12-17 Bruno Haible tanf: Avoid redefinition error on MSVC. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_TANF. * m4/tanf.m4 (gl_FUNC_TANF): Set REPLACE_TANF to 1 if the function may be defined as an inline function. * modules/math (Makefile.am): Substitute REPLACE_TANF. * lib/math.in.h (tanf): Override if REPLACE_TANF is 1. 2016-12-17 Bruno Haible sqrtf: Avoid redefinition error on MSVC. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_SQRTF. * m4/sqrtf.m4 (gl_FUNC_SQRTF): Set REPLACE_SQRTF to 1 if the function may be defined as an inline function. * modules/math (Makefile.am): Substitute REPLACE_SQRTF. * lib/math.in.h (sqrtf): Override if REPLACE_SQRTF is 1. 2016-12-17 Bruno Haible sinhf: Avoid redefinition error on MSVC. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_SINHF. * m4/sinhf.m4 (gl_FUNC_SINHF): Set REPLACE_SINHF to 1 if the function may be defined as an inline function. * modules/math (Makefile.am): Substitute REPLACE_SINHF. * lib/math.in.h (sinhf): Override if REPLACE_SINHF is 1. 2016-12-17 Bruno Haible sinf: Avoid redefinition error on MSVC. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_SINF. * m4/sinf.m4 (gl_FUNC_SINF): Set REPLACE_SINF to 1 if the function may be defined as an inline function. * modules/math (Makefile.am): Substitute REPLACE_SINF. * lib/math.in.h (sinf): Override if REPLACE_SINF is 1. 2016-12-17 Bruno Haible logf: Avoid redefinition error on MSVC. * m4/logf.m4 (gl_FUNC_LOGF): Set REPLACE_LOGF to 1 if the function may be defined as an inline function. 2016-12-17 Bruno Haible log10l: Avoid redefinition error on MSVC. * m4/log10l.m4 (gl_FUNC_LOG10L): Set REPLACE_LOG10L to 1 if the function may be defined as an inline function. 2016-12-17 Bruno Haible log10f: Avoid redefinition error on MSVC. * m4/log10f.m4 (gl_FUNC_LOG10F): Set REPLACE_LOG10F to 1 if the function may be defined as an inline function. 2016-12-17 Bruno Haible hypotl: Avoid redefinition error on MSVC. * m4/hypotl.m4 (gl_FUNC_HYPOTL): Set REPLACE_HYPOTL to 1 if the function may be defined as an inline function. 2016-12-17 Bruno Haible hypotf: Avoid redefinition error on MSVC. * m4/hypotf.m4 (gl_FUNC_HYPOTF): Set REPLACE_HYPOTF to 1 if the function may be defined as an inline function. 2016-12-17 Bruno Haible fmodl: Avoid redefinition error on MSVC. * m4/fmodl.m4 (gl_FUNC_FMODL): Set REPLACE_FMODL to 1 if the function may be defined as an inline function. 2016-12-17 Bruno Haible fmodf: Avoid redefinition error on MSVC. * m4/fmodf.m4 (gl_FUNC_FMODF): Set REPLACE_FMODF to 1 if the function may be defined as an inline function. 2016-12-17 Bruno Haible expf: Avoid redefinition error on MSVC. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_EXPF. * m4/expf.m4 (gl_FUNC_EXPF): Set REPLACE_EXPF to 1 if the function may be defined as an inline function. * modules/math (Makefile.am): Substitute REPLACE_EXPF. * lib/math.in.h (expf): Override if REPLACE_EXPF is 1. 2016-12-17 Bruno Haible coshf: Avoid redefinition error on MSVC. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_COSHF. * m4/coshf.m4 (gl_FUNC_COSHF): Set REPLACE_COSHF to 1 if the function may be defined as an inline function. * modules/math (Makefile.am): Substitute REPLACE_COSHF. * lib/math.in.h (coshf): Override if REPLACE_COSHF is 1. 2016-12-17 Bruno Haible cosf: Avoid redefinition error on MSVC. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_COSF. * m4/cosf.m4 (gl_FUNC_COSF): Set REPLACE_COSF to 1 if the function may be defined as an inline function. * modules/math (Makefile.am): Substitute REPLACE_COSF. * lib/math.in.h (cosf): Override if REPLACE_COSF is 1. 2016-12-17 Bruno Haible atan2f: Avoid redefinition error on MSVC. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_ATAN2F. * m4/atan2f.m4 (gl_FUNC_ATAN2F): Set REPLACE_ATAN2F to 1 if the function may be defined as an inline function. * modules/math (Makefile.am): Substitute REPLACE_ATAN2F. * lib/math.in.h (atan2f): Override if REPLACE_ATAN2F is 1. 2016-12-17 Bruno Haible atanf: Avoid redefinition error on MSVC. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_ATANF. * m4/atanf.m4 (gl_FUNC_ATANF): Set REPLACE_ATANF to 1 if the function may be defined as an inline function. * modules/math (Makefile.am): Substitute REPLACE_ATANF. * lib/math.in.h (atanf): Override if REPLACE_ATANF is 1. 2016-12-17 Bruno Haible asinf: Avoid redefinition error on MSVC. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_ASINF. * m4/asinf.m4 (gl_FUNC_ASINF): Set REPLACE_ASINF to 1 if the function may be defined as an inline function. * modules/math (Makefile.am): Substitute REPLACE_ASINF. * lib/math.in.h (asinf): Override if REPLACE_ASINF is 1. 2016-12-17 Bruno Haible acosf: Avoid redefinition error on MSVC. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Define REPLACE_ACOSF. * m4/acosf.m4 (gl_FUNC_ACOSF): Set REPLACE_ACOSF to 1 if the function may be defined as an inline function. * modules/math (Makefile.am): Substitute REPLACE_ACOSF. * lib/math.in.h (acosf): Override if REPLACE_ACOSF is 1. 2016-12-17 Bruno Haible Avoid redefinition errors on MSVC. * m4/snprintf.m4 (gl_REPLACE_SNPRINTF): Set REPLACE_SNPRINTF to 1 if the function may be defined as an inline function. * m4/vsnprintf.m4 (gl_REPLACE_VSNPRINTF): Set REPLACE_VSNPRINTF to 1 if the function may be defined as an inline function. 2016-12-17 Bruno Haible Avoid redefinition errors on MSVC. * lib/stdio.in.h: Include and when necessary. * lib/unistd.in.h: Include when necessary. 2016-12-17 Bruno Haible stdint: Fix WINT_MAX to match the gnulib provided wint_t on MSVC. * m4/stdint.m4 (gl_STDINT_H): Define GNULIB_OVERRIDES_WINT_T. * modules/stdint (Makefile.am): Substitute GNULIB_OVERRIDES_WINT_T. * lib/stdint.in.h [GNULIB_OVERRIDES_WINT_T]: Redefine WINT_MIN and WINT_MAX. 2016-12-17 Bruno Haible Avoid autoconf warning. * modules/frexpl (configure.ac): Require, not invoke, gl_FUNC_FREXPL. * modules/frexp (configure.ac): Require, not invoke, gl_FUNC_FREXP. 2016-12-17 Bruno Haible fpending: Revert workaround against Emacs bug. * lib/stdio-impl.h [__MINGW32__]: Revert conditional. The Emacs bug is fixed by Eli Zaretskii in http://lists.gnu.org/r/emacs-devel/2016-12/msg00715.html 2016-12-17 Bruno Haible getlogin_r tests: Port to mingw. * tests/test-getlogin_r.c: Don't include on native Windows. Fixes regression introduced on 2014-05-19. 2016-12-17 Bruno Haible getlogin: Port to newer mingw. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_DECL_GETLOGIN. * m4/getlogin.m4 (gl_FUNC_GETLOGIN): Set HAVE_DECL_GETLOGIN. * modules/unistd (Makefile.am): Substitute HAVE_DECL_GETLOGIN, not HAVE_GETLOGIN. * lib/unistd.in.h (getlogin): Test HAVE_DECL_GETLOGIN, not HAVE_GETLOGIN. * doc/posix-functions/getlogin.texi: Mention the issue. * tests/test-getlogin.c: Don't include on native Windows. Fixes regression introduced on 2014-05-14. 2016-12-16 Paul Eggert builtin-expect: improve port to IBM XL C Problem reported for z/OS by Daniel Richard G. in: http://lists.gnu.org/r/bug-gnulib/2016-12/msg00079.html * m4/builtin-expect.m4 (gl___BUILTIN_EXPECT): Test for directly. builtin-expect: port to IBM XL C Problem reported for z/OS by Daniel Richard G. in: http://lists.gnu.org/r/bug-gnulib/2016-12/msg00074.html * m4/builtin-expect.m4 (gl___BUILTIN_EXPECT): Also allow __builtin_expect defined via a standard include file. regex: fix dependency Problem reported by Bruno Haible in: http://lists.gnu.org/r/bug-gnulib/2016-12/msg00073.html * modules/regex: Depend on builtin-expect. builtin-expect: new module Fix fnmatch to use it. Problem reported for z/OS by Daniel Richard G. * lib/fnmatch.c (__builtin_expect): * lib/glob.c (__builtin_expect): * lib/grantpt.c (__builtin_expect) [!_LIBC]: * lib/memmem.c (__builtin_expect) [!_LIBC]: * lib/scandir.c (__builtin_expect): * lib/strstr.c (__builtin_expect) [!_LIBC]: Remove macro; config.h now does this. * lib/gl_anytreehash_list1.h (add_to_bucket): * lib/regex_internal.h (BE): Assume __builtin_expect. * m4/builtin-expect.m4, modules/builtin-expect: New files. * modules/avltreehash-list, modules/fnmatch, modules/glob: * modules/grantpt, modules/memmem-simple, modules/rbtreehash-list: * modules/scandir, modules/strstr-simple: Depend on builtin-expect. 2016-12-15 Bruno Haible init.sh: Add possibility to not delete temporary files. * tests/init.sh (remove_tmp_): If the environment variable KEEP is set to yes, don't erase the temporary directory. 2016-12-16 Paul Eggert regex: fix integer-overflow bug in never-used code Problem reported by Clément Pit–Claudel in: http://lists.gnu.org/r/emacs-devel/2016-12/msg00654.html * lib/regex_internal.h: Include intprops.h. * lib/regexec.c (re_search_2_stub): Use it to avoid undefined behavior on integer overflow. * modules/regex (Depends-on): Add intprops. fpending: fix port to MinGW on Emacs * lib/stdio-impl.h [__MINGW32__]: Do not include errno.h. Problem reported by Eli Zaretskii in: http://lists.gnu.org/r/emacs-devel/2016-12/msg00642.html Is Plan 9 still a valid porting target, anyway? 2016-12-15 Paul Eggert safe-alloc: use xalloc-oversized * lib/safe-alloc.c: Include xalloc-oversized.h. (safe_alloc_oversized): Remove. All uses changed to xalloc_oversized. * modules/safe-alloc (Depends-on): Add xalloc-oversized. xalloc: do not exceed PTRDIFF_MAX * lib/xmalloc.c (xcalloc) [HAVE_GNU_CALLOC]: Do not omit xalloc_oversized check, since objects larger than PTRDIFF_MAX bytes have pointer-subtraction problems. malloca: do not exceed PTRDIFF_MAX * lib/malloca.h: Include xalloc-oversized. (nmalloca): Use xalloc_oversized instead of rolling our own. * modules/malloca (Depends-on): * modules/relocatable-prog-wrapper (Depends-on): Add xalloc-oversized. quotearg: pacify GCC better * modules/quotearg (Depends-on): Add minmax, stdint. * lib/quotearg.c: Include minmax.h, stdint.h. (nslots): Now int, as there seems little point to going to extra work merely to support the INT_MAX slot, which nobody ever uses. (quotearg_n_options): Redo size-overflow checks to pacify GCC and to catch (mostly-theoretical) ptrdiff_t problems too. This can be done via one comparison. 2016-12-14 Paul Eggert xalloc-oversized: check for PTRDIFF_MAX too This avoids undefined behavior when subtracting pointers to objects containing more than PTRDIFF_MAX bytes. * lib/xalloc-oversized.h (__xalloc_oversized, xalloc_oversized): Also return 1 if the result would exceed PTRDIFF_MAX> * modules/xalloc-oversized (Depends-on): Add stdint. dfa: fix glitches in previous commit Sorry, I don't know how I managed to commit the wrong version. * lib/dfa.c (MIN): Move up. (xpalloc): Now static. dfa: fix some unlikely integer overflows I found these while reviewing the recent Coverity-related fix. This patch changes part of dfa.c to prefer ptrdiff_t instead of size_t for object counts. Using ptrdiff_t is the style typically used in Emacs; although it wastes a sign bit as sizes can never be negative, it makes -fsanitize=undefined more likely to catch integer overflows in index calculation, and nowadays the upside is typically more important than the downside. Although perhaps the rest of dfa.c should be changed to prefer ptrdiff_t as well (much of dfa.c already does, since it uses state_num which is signed), that is a bigger change and is not needed to fix the bugs I found. * lib/dfa.c: Include stdint.h and intprops.h. (TOKEN_MAX): New macro. (position_set, struct mb_char_classes, struct dfa, maybe_realloc) (charclass_index, parse_bracket_exp, addtok, insert, merge) (realloc_trans_if_necessary, free_mbdata): Use ptrdiff_t instead of size_t for object counts related to xpalloc. This is safe because xpalloc checks that the sizes do not exceed either SIZE_MAX or PTRDIFF_MAX. (xpalloc): New function, mostly taken from Emacs. (maybe_realloc, copy, realloc_trans_if_necessary): Use it. (maybe_realloc): Add NITEMS_MAX to signature. All callers changed. (charclass_index): Check for integer overflow in computing charclass index; it must not exceed TOKEN_MAX - CSET, as CSET is added to it later. (alloc_position_set): Check for integer overflow. On typical platforms this check has zero overhead, since the constant expression is false. (realloc_trans_if_necessary): Remove assertion, which I hope Coverity no longer needs. * modules/dfa (Depends-on): Add intprops, stdint. 2016-12-12 Jim Meyering dfa: add an assertion to avoid coverity false positive * lib/dfa.c (realloc_trans_if_necessary): Otherwise, coverity warned that "newalloc1 - 2" could overflow. 2016-12-13 Arnold D. Robbins dfa: remove DFA_CASE_FOLD flag in favor of RE_ICASE * dfa.h (DFA_CASE_FOLD): Remove. * dfa.c (dfasyntax): Set dfa->syntax.case_fold based on RE_ICASE. 2016-12-13 John W. Eaton link: fix test to declare use of rename() * m4/link.m4 (gl_FUNC_LINK): Include needed with -Werror=implicit-function-declaration 2016-12-12 Bruno Haible fpending: Port to native Windows with MSVC. * lib/fpending.c: Include stdio-impl.h. (__fpending): Include all known implementations. Err out if it's not ported. * m4/fpending.m4 (gl_PREREQ_FPENDING): Remove macro. * modules/fpending (Files): Add lib/stdio-impl.h. (configure.ac): Don't invoke gl_PREREQ_FPENDING. 2016-12-12 Bruno Haible stdioext: Port to native Windows with MSVC. * lib/stdio-impl.h (WINDOWS_OPAQUE_FILE): New macro. (struct _gl_real_FILE): New type. (fp_, _IOREAD, _IOWRT, _IORW, _IOEOF, _IOERR): New macros, for native Windows. * lib/fbufmode.c (fbufmode): Add code for native Windows. * lib/fflush.c (clear_ungetc_buffer): Treat native Windows like the other SystemV derived implementations. * lib/fpurge.c (fpurge): Likewise. * lib/freadable.c (freadable): Likewise. * lib/freadahead.c (freadahead): Likewise. * lib/freading.c (freading): Likewise. * lib/freadptr.c (freadptr): Likewise. * lib/freadseek.c (freadptrinc): Likewise. * lib/fseeko.c (fseeko): Likewise. * lib/fseterr.c (fseterr): Likewise. * lib/fwritable.c (fwritable): Likewise. * lib/fwriting.c (fwriting): Likewise. Reported by Gisle Vanem . 2016-12-11 Jim Meyering non-recursive-gnulib-prefix-hack.m4: remove leading "(" in case stmt * m4/non-recursive-gnulib-prefix-hack.m4: That leading "(" happens to work with most shells, but not with the one provided by many Solaris 10 systems, so running configure with such a /bin/sh evokes e.g., "./configure: syntax error at line 33602: `(' unexpected". Reported by Assaf Gordon in https://lists.gnu.org/r/sed-devel/2016-12/msg00002.html 2016-12-10 Bruno Haible threadlib: Optimize out runtime test on Solaris >= 10. * m4/threadlib.m4 (gl_THREADLIB_BODY): Don't set PTHREAD_IN_USE_DETECTION_HARD if configuring on Solaris 10 or newer. Reported by Peter Felecan at . 2016-12-10 Bruno Haible stdint: Update doc about Solaris 9. * doc/posix-headers/stdint.texi: Add info about Solaris 9. 2016-12-09 Bruno Haible c-ctype tests: Fix link error on Solaris 9. * modules/c-ctype-tests (Depends-on): Add 'isblank'. Reported at . 2016-12-09 Paul Eggert dfa: fix performance bug that recomputes trans * lib/dfa.c (build_state): Fix performance bug introduced in Nov 25 on-demand changes. The bug caused build_state to reset all d->trans elements to -2 even when d->trans was already non-null. Use C99 style decls after statements in this function. same-inode: port to MinGW Here st_ino is always 0, so change the definition of SAME_INODE so that 1 means the two files are the same, 0 with st_ino != 0 means they differ, and 0 with st_ino == 0 means we don’t know. Problem reported by Bruno Haible (Bug#25146). * doc/posix-headers/sys_stat.texi (sys/stat.h): Update. * lib/same-inode.h (SAME_INODE): Return 0 on MinGW. 2016-12-04 Bruno Haible javacomp-script: Support Java 7 and 8. * m4/javacomp.m4 (gt_JAVACOMP): Accept source-version 1.7, 1.8 and target-version 1.7, 1.8. 2016-12-02 Daiki Ueno * gnulib-tool (func_import): Relax the regex used for "LGPLv3+ or GPLv2" rewriting. 2016-12-02 Nikos Mavrogiannopoulos * gnulib-tool (func_import): Adhere to the license guideline when rewriting the license text to "LGPLv3+ or GPLv2": https://www.gnu.org/prep/maintain/maintain.html#Licensing-of-GNU-Packages 2016-12-02 Bruno Haible localcharset: Avoid theoretical buffer overrun. * lib/localcharset.c (locale_charset) [WINDOWS_NATIVE]: Don't use the return value from setlocale if it would lead to a buffer overrun. 2016-12-01 Bruno Haible Relicense some modules under LGPLv2+. Kevin Cernekee's approval is in http://lists.gnu.org/r/bug-gnulib/2016-11/msg00090.html. * modules/fseterr (License): Change to LGPLv2+. * modules/mbchar (License): Likewise. * modules/mbiter (License): Likewise. * modules/mbsnlen (License): Likewise. * modules/wcwidth (License): Likewise. 2016-12-01 KO Myung-Hun scandir: Fix _D_ALLOC_NAMLEN() on OS/2 kLIBC * lib/scandir.c (_D_ALLOC_NAMLEN): Consider the fields after d_name on OS/2 kLIBC. 2016-12-01 KO Myung-Hun alphasort, scandir: Port to OS/2 kLIBC * lib/alphasort.c (alphasort): Implement according to OS/2 kLIBC declaration. * lib/scandir.c (scandir): Add declaration for OS/2 kLIBC. 2016-12-01 KO Myung-Hun relocatable: Fix that /@unixroot prefix is not working on OS/2 kLIBC * lib/relocatable.c (relocate): Do not touch pathname if it is started with '/@unixroot'. 2016-12-01 KO Myung-Hun sys_socket: typedef sa_family_t correctly on OS/2 kLIBC * lib/sys_socket.in.h (sa_family_t): Typedef to unsigned char on OS/2 kLIBC unless TCPV40HDRS is defined. 2016-11-29 Jim Meyering dfa: avoid new infinite loop This would infloop: echo cx | LC_ALL=C grep -E 'c\b[x ]' * lib/dfa.c (dfastate): When constructing a new state table, we could initially declare that we had found a match, and later find that constraints eliminate that possibility, yet continue to use the now stale "matched" indicator. That would lead to an infinite loop. The solution is to update "matched" when necessary. Introduced by commit v0.1-983-g403adf1. 2016-11-27 Norihiro Tanaka dfa: avoid match middle in multibyte character * lib/dfa.c (transit_state): If fails in matching single byte characters on a state including period expression in non-UTF8 multibyte locales, skip trailing bytes. (dfa_supported): Revert previous change. 2016-11-27 Jim Meyering dfa: avoid false match in non-UTF8 multibyte locales * lib/dfa.c (dfa_supported): Treat any non-UTF8 multibyte locale as "not supported" so that callers will resort to using regex-based matcher. This will surely hurt performance, but correctness trumps performance here, and the affected locales are less and less relevant, these days. See grep's bug report https://bugs.gnu.org/24975. 2016-11-27 Mike Frysinger ptsname_r: leverage AC_HEADER_MAJOR to provide major() * lib/ptsname_r.c: Include the appropriate headers. [__sun]: Delete sys/sysmacros.h include. [_AIX || __osf__]: Likewise. * m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): Depend on AC_HEADER_MAJOR. 2016-11-27 Pádraig Brady md4,md5,sha*: allow _STRING_INLINE_unaligned enable unaligned operation * lib/md4.c (md4_process_bytes): The existing define is made internal in recent versions of glibc, so also use this new public define. * lib/md5.c (md5_process_bytes): Likewise. * lib/sha1.c (sha1_process_bytes): Likewise. * lib/sha256.c (sha256_process_bytes): Likewise. * lib/sha512.c (sha512_process_bytes): Likewise. 2016-11-27 Pádraig Brady maint: use a more standard return from mbrtowc test * m4/mbrtowc.m4 (gl_MBRTOWC_C_LOCALE): Don't return 1 from the test program as this often indicates an unhandled case in the test program. (gl_MBRTOWC_INCOMPLETE_STATE): Likewise. (gl_MBRTOWC_SANITYCHECK): Likewise. (gl_MBRTOWC_NULL_ARG2): Likewise. (gl_MBRTOWC_NUL_RETVAL): Likewise. 2016-11-26 Paul Eggert freopen: work around glibc bug with closed fd Work around glibc bug#15589, where freopen mishandles the case where stdin etc. are already closed. * doc/posix-functions/freopen.texi (freopen): Document the bug. * lib/freopen.c (_GL_ALREADY_INCLUDING_STDIO_H): Define this instead of __need_FILE, as the latter does not work with glibc. Include , for open flags. (rpl_freopen): Work around glibc bug. * m4/freopen.m4 (gl_FUNC_FREOPEN): Check for bug. * modules/freopen (Depends-on): Add fcntl-h. * tests/test-freopen.c (main): Test for bug. 2016-11-25 Paul Eggert fnmatch: fix typo introduced on 2016-08-17 This fixes the port to non-GCC compilers that lack __builtin_expect. * lib/fnmatch.c (__builtin_expect): Change A&&B to !A||B. dfa: simplify with new function fillset * lib/dfa.c (fillset): New function. Use it for clarity when applicable. dfa: fix glitches with on-demand states Also, adjust commentary to better match new code. Some of these glitches predate the recent change. * lib/dfa.c (dfaanalyze): Clear trcount here, so that it counts only non-initial states. (dfastate): Rename locals to better match new roles. Move them into nested scopes if this is easy. Omit unnecessary calls to zeroset. Simplify test for whether to throw in the positions of state 0. Omit C99-ism (decl after statement) since Gawk still wants C89. (build_state): Omit unnecessary test and assignment. Fix some confusion that counted transition tables inaccurately and could cause a memory leak. (dfaexec_main): Redo to make it clearer to the compiler that -1 and -2 are the only negative state numbers here. 2016-11-25 Norihiro Tanaka dfa: addition of new state on demand * src/dfa.c (dfastate): Add argument UC, the current input character. Fill only a group including the character in transition table. (realloc_trans_if_necessary): Add the dummy state which means that a transition table is assigned but the next state is not assigned. (build_state): Return the next state. All callers updated. (transit_state_singlebyte): If we get the dummy state, fill the transition table. (dfaexec_main): Handle the dummy state. (free_mbdata, dfafree): Consider the dummy state. 2016-11-24 Daiki Ueno srclist: sync with released gettext * config/srclist.txt: Set "release" option to the files under $GETTEXT. 2016-11-24 Daiki Ueno srclist: add "release" option * config/srclist.txt: Change the format so that the first column of each line points to the top-level directory of the source archive. * config/srclist-update: Accept "release" option that checks files from the most recently tagged revision in the source archive. 2016-11-21 Bruno Haible snippet/c++defs: Simplify _GL_CXXALIAS_* macros. * build-aux/snippet/c++defs.h [__cplusplus && GNULIB_NAMESPACE] (_GL_CXXALIAS_RPL_1, _GL_CXXALIAS_RPL_CAST_1, _GL_CXXALIAS_SYS, _GL_CXXALIAS_SYS_CAST, _GL_CXXALIAS_SYS_CAST2): Inline and remove member function 'rpl ()' of the wrapper struct. 2016-11-20 Paul Eggert dfa: fix logic typo Problem reported by Stephane Chazelas (Bug#24973). * lib/dfa.c (using_simple_locale): Fix typo that caused some non-simple locales like fr_FR to be treated as simple. 2016-11-20 Jim Meyering fix test driver leaks: exclude, malloc, realloc * tests/test-exclude.c (main): Fix trivial leak. * tests/test-malloc-gnu.c (main): Likewise. * tests/test-realloc-gnu.c (main): Likewise. With these changes, grep's tests are now leak free. I.e., running them with ASAN elicits no failure: make CFLAGS='-O0 -ggdb3' AM_CFLAGS=-fsanitize=address \ AM_LDFLAGS='-fsanitize=address -static-libasan' check 2016-11-11 Bruno Haible libunistring: Relicense under dual "LGPLv3+ or GPLv2" license. * modules/libunistring: (License): Change from LGPL to "LGPLv3+ or GPLv2". * modules/libunistring-optional: Likewise. * modules/unicase/*: Likewise. * modules/uniconv/*: Likewise. * modules/unictype/*: Likewise. * modules/unigbrk/*: Likewise. * modules/unilbrk/*: Likewise. * modules/uniname/*: Likewise. * modules/uninorm/*: Likewise. * modules/unistdio/*: Likewise. * modules/unistr/*: Likewise. * modules/uniwbrk/*: Likewise. * modules/uniwidth/*: Likewise. 2016-11-12 Bruno Haible Relicense some modules under LGPLv2+. Paul Eggert's approval is in http://lists.gnu.org/r/bug-gnulib/2016-11/msg00037.html. Eric Blake's approval is in http://lists.gnu.org/r/bug-gnulib/2016-11/msg00042.html. Ludovic Courtès's approval is in http://lists.gnu.org/r/bug-gnulib/2016-11/msg00038.html. * modules/isnand-nolibm (License): Change to LGPLv2+. * modules/isnanf-nolibm (License): Likewise. * modules/isnanl-nolibm (License): Likewise. 2016-11-19 Bruno Haible Relicense some modules under LGPLv2+. lib/float+.h is already under LGPLv2+ since 2007-07-13, per modules/vasnprintf. Paolo Bonzini's approval for lib/frexp.c and lib/frexpl.c is in http://lists.gnu.org/r/bug-gnulib/2016-11/msg00074.html. All other significant changes to the files in lib/ of these modules are from me. * modules/memcmp2 (License): Change to LGPLv2+. * modules/amemxfrm (License): Likewise. * modules/fpieee (License): Likewise. * modules/fpucw (License): Likewise. * modules/frexp-nolibm (License): Likewise. * modules/frexpl-nolibm (License): Likewise. * modules/printf-frexp (License): Likewise. * modules/printf-frexpl (License): Likewise. * modules/printf-safe (License): Likewise. * modules/signbit (License): Likewise. 2016-11-17 Bruno Haible Enable Unicode decoder safety unconditionally. * lib/unistr.in.h (u32_mbtouc_unsafe): Assume CONFIG_UNICODE_SAFETY. * lib/unistr/u8-mblen.c (u8_mblen): Likewise. * lib/unistr/u8-mbtouc-unsafe.c (u8_mbtouc_unsafe): Likewise. * lib/unistr/u8-mbtouc-unsafe-aux.c (u8_mbtouc_unsafe_aux): Likewise. * lib/unistr/u8-prev.c (u8_prev): Likewise. * lib/unistr/u8-strmblen.c (u8_strmblen): Likewise. * lib/unistr/u8-strmbtouc.c (u8_strmbtouc): Likewise. * lib/unistr/u16-mblen.c (u16_mblen): Likewise. * lib/unistr/u16-mbtouc-unsafe.c (u16_mbtouc_unsafe): Likewise. * lib/unistr/u16-mbtouc-unsafe-aux.c (u16_mbtouc_unsafe_aux): Likewise. * lib/unistr/u16-prev.c (u16_prev): Likewise. * lib/unistr/u16-strmblen.c (u16_strmblen): Likewise. * lib/unistr/u16-strmbtouc.c (u16_strmbtouc): Likewise. * lib/unistr/u32-mblen.c (u32_mblen): Likewise. * lib/unistr/u32-mbtouc-unsafe.c (u32_mbtouc_unsafe): Likewise. * lib/unistr/u32-prev.c (u32_prev): Likewise. * lib/unistr/u32-next.c (u32_next): Likewise. * lib/unistr/u32-strmblen.c (u32_strmblen): Likewise. * lib/unistr/u32-strmbtouc.c (u32_strmbtouc): Likewise. * lib/uniconv/u8-conv-to-enc.c (u8_conv_to_encoding): Likewise. * lib/uniconv/u8-strconv-to-enc.c (u8_strconv_to_encoding): Likewise. * tests/unistr/test-u16-prev.c (check_invalid): Enable the CONFIG_UNICODE_SAFETY tests unconditionally. * tests/unistr/test-u32-mblen.c (main): Likewise. * tests/unistr/test-u32-mbtouc.h (test_function): Likewise. * tests/unistr/test-u32-prev.c (check_invalid): Likewise. * tests/unistr/test-u32-next.c (main): Likewise. * tests/unistr/test-u32-strmblen.c (main): Likewise. * tests/unistr/test-u32-strmbtouc.c (main): Likewise. * tests/unistr/test-u32-mbtouc.c (FULL_SAFETY): Remove macro. * lib/unistr/u8-check.c (u8_check): Remove old dead code. * lib/unistr/u8-mbtouc.c (u8_mbtouc): Likewise. * lib/unistr/u8-mbtouc-aux.c (u8_mbtouc_aux): Likewise. * lib/unistr/u8-mbtoucr.c (u8_mbtoucr): Likewise. * lib/unistr/u8-uctomb.c (u8_uctomb): Likewise. * lib/unistr/u8-uctomb-aux.c (u8_uctomb_aux): Likewise. * lib/unistr/u16-check.c (u16_check): Update comment. * NEWS: Mention the changes that callers should be aware of. 2016-11-19 Bruno Haible relocatable-prog-wrapper: Fix breakage on Cygwin. * modules/relocatable-prog-wrapper (Files): Add lib/stat.c, lib/lstat.c. (Depends-on): Remove intprops. * lib/relocwrapper.c: Update dependency tree. (strerror): Undefine. * build-aux/install-reloc (func_create_wrapper): Do not compile strerror.c and strerror-override.c. Erase stat.o and lstat.o. 2016-11-19 Bruno Haible strerror: Make it compile in C++ mode. * lib/strerror.c (strerror): Ignore the return value of memcpy(). 2016-11-15 Pedro Alves sys_time: add gnulib::timeval for C++ * lib/sys_time.in.h [__cplusplus && defined GNULIB_NAMESPACE]: Define "timeval" in the GNULIB_NAMESPACE namespace, and #undef any timeval macro. 2016-11-14 Pedro Alves snippet/c++defs: fix real-floating arg functions in C++ mode Also, define isfinite, isinf, isnan, signbit in the gnulib namespace instead of in the global namespace. * build-aux/snippet/c++defs.h (_GL_BEGIN_NAMESPACE) (_GL_END_NAMESPACE): New. * lib/math.in.h (_GL_MATH_CXX_REAL_FLOATING_DECL_2): Use them. (isfinite, isinf, isnan, signbit) [__cplusplus && GNULIB_NAMESPACE]: Define them in the GNULIB_NAMESPACE namespace instead of in the global namespace. * tests/test-math-c++.cc: Check that the isfinite, isinf, isnan, signbit overloads exist in the GNULIB_NAMESPACE namespace, instead of in the global namespace. 2016-11-13 Jim Meyering strftime: don't use __THROW Each use of __THROW would provoke this from gcc-7-to-be: lib/strftime.c:371:1: warning: '__leaf__' attribute has no effect \ on unit local functions [-Wattributes] static int iso_week_days (int, int) __THROW; ^~~~~~ * lib/strftime.c (__THROW): Don't define. Remove each use of __THROW. * lib/strftime.c (memcpy_lowcase, memcpy_uppcase): Remove __THROW. (tm_diff, iso_week_days, __strftime_internal): Likewise. 2016-11-14 Paul Eggert obstack: port to gcc -fcheck-pointer-bounds Problem found by 'make check' failure on bleeding-edge coreutils on an MPX-enabled CPU (Intel Core i3-7100U) running GCC (Ubuntu 6.2.0-5ubuntu12), configured via "./configure --enable-gcc-warnings CFLAGS='-mmpx -fcheck-pointer-bounds -g3 -O2' LDFLAGS='-static-libmpx -static-libmpxwrappers'". * lib/obstack.h (__FLEXIBLE_ARRAY_MEMBER): New macro, copied from fts_.h. (struct _obstack_chunk.contents): Use it. 2016-11-14 Eric Blake strerror_r-posix: Another fix, for HAVE_DECL_STRERROR_R on mingw. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R, gl_FUNC_STRERROR_R_WORKS): Avoid _ONCE variants, which may supply a conflicting AC_DEFINE(). 2016-11-14 Pádraig Brady strptime: fix compile error in recent change * lib/strptime.c (__strptime_internal): Fix ported code. 2016-11-11 Bruno Haible gnulib-tool: Support for the dual "LGPLv3+ or GPLv2" license. * gnulib-tool (--lgpl): Accept value 3orGPLv2. (func_import): Extend determination of license_incompatibilities. (func_create_testdir): Extend table of license compatibility. Handle also the licenses GPLv3+, GPL, LGPLv3+. 2016-11-12 Paul Eggert strftime: tune %q * lib/strftime.c (__strftime_internal): Assume tp->tm_mon is in range. Merge strftime.c changes from glibc This incorporates: 2007-10-16 [BZ #5184] Add tzset_called argument 2008-06-13 [BZ #6612] pass reference to tzset_called around 2009-10-30 Implement Burmese language locale for Myanmar 2010-01-09 Add support for XPG7 testing 2015-09-26 [BZ #18985] out of range data to strftime() causes a segfault 2015-10-20 Convert miscellaneous function definitions to prototype style * lib/strftime.c: Copy glibc license, since gnulib-tool rewrites it anyway and this lessens the difference between gnulib and glibc. (USE_IN_EXTENDED_LOCALE_MODEL) [_LIBC]: Define. (__THROW): Define if standard headers do not. (LOCALE_PARAM): Rename from LOCALE_PARAM_PROTO. All uses changed. (memcpy_locase, memcpy_uppcase, tm_diff, __strftime_internal): Declare with __THROW. (__strftime_internal): Rename from strftime_case_. Add arg for whether tzset is called. All uses changed. Call tzset at most once. Allow %OC, for Burmese. (a_wkday, f_wkday, a_month, f_month) [_NL_CURRENT]: Don't assume values are in range. 2016-11-12 Eric Blake strerror_r-posix: Fix override of AC_FUNC_STRERROR_R * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): New override. (gl_FUNC_STRERROR_R): Don't reuse AC_DEFINE() with a potentially different value. 2006-11-12 Pedro Alves Fix gnulib C++ namespace support and std::frexp * lib/math.in.h (frexp): Use _GL_CXXALIASWARN1 instead of _GL_CXXALIASWARN. 2006-11-12 Pedro Alves GNULIB_NAMESPACE::func need not pull in rpl_func * build-aux/snippet/c++defs.h [__cplusplus && GNULIB_NAMESPACE] (_GL_CXXALIAS_RPL_1, _GL_CXXALIAS_RPL_CAST_1, _GL_CXXALIAS_SYS) (_GL_CXXALIAS_SYS_CAST, _GL_CXXALIAS_SYS_CAST2): Define a wrapper struct instead of a function pointer. 2016-11-09 Frediano Ziglio manywarnings: fix -Wno-missing-field-initializers detection * m4/manywarnings.m4: Fix -Wno-missing-field-initializers detection to be independent of -Wunused-variable. I.E. ensure the latter warning doesn't occur so that detection of the former is accurate. 2016-11-05 Pádraig Brady strftime,strptime: support %q to represent the quarter * lib/strftime.c (strftime_case_): Add %q case. * lib/strptime.c (__strptime_internal): Likewise. * tests/test-strftime.c (quarter_test): A new test case. 2016-11-03 Eric Blake bootstrap: Fix get_version() for AIX 5.3 * build-aux/bootstrap (get_version): Factor out sed script, since indented comments choke AIX 5.3 sed. Reported-by: Michael Felt 2016-11-03 Paul Eggert intprops: port to older XL C Problem reported by Alexander Samoilov in: http://lists.gnu.org/r/bug-gnulib/2016-10/msg00166.html http://savannah.nongnu.org/bugs/?49448 * lib/intprops.h (_GL_HAVE___TYPEOF__) [__IBM__TYPEOF__]: Define to 1 only for XL C 12.1 or later, since this bug occurs in XL C for AIX 6.0 but not in 12.1. 2016-11-02 Pádraig Brady backupfile: initialize default suffix within the implementation * lib/backupfile.c (find_backup_file_name): Initialize the global variable here, to simplify usage, and to only call getenv() when needed. 2016-11-01 Paul Eggert futimens: remove FIXME for old Linux kernels * m4/futimens.m4 (gl_FUNC_FUTIMENS): Belatedy do a "simplify this in 2012" FIXME, like that for utimensat. utimensat: remove FIXME for old Linux kernels * lib/utimensat.c (rpl_utimensat): Update FIXME comment. * m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Belatedy do a "simplify this in 2012" FIXME, by assuming the file system bug is absent unless demonstrated to be present. We no longer need to worry about Linux kernel 2.6.32 when building with newer kernels. 2016-10-16 Bruno Haible qsort_r: Fix macrology for platforms that lack the function. * m4/stdlib_h.m4 (gl_STDLIB_H): Check for qsort_r. (gl_STDLIB_H_DEFAULTS): Initialize HAVE_QSORT_R. * modules/stdlib (Makefile.am): Substitute HAVE_QSORT_R. * lib/stdlib.in.h (qsort_r): Provide declaration if the function does not exist. * m4/qsort_r.m4 (gl_FUNC_QSORT_R): Use AC_CHECK_FUNCS to test whether the function exists. * modules/qsort_r: Add comments. 2016-10-26 Paul Eggert sys_types: fix Texinfo typos * doc/glibc-functions/gnu_dev_major.texi: * doc/glibc-functions/gnu_dev_makedev.texi: * doc/glibc-functions/gnu_dev_minor.texi: Fix typos. 2016-10-26 John David Anglin getprogname: port to HP-UX See Bug#24805. * lib/getprogname.c (getprogname) [__hpux]: Port. * tests/test-getprogname.c (STREQ) [__hpux]: Special-case for HP-UX limitations on program name length. 2016-10-20 Bruno Haible Update doc about target platforms. * doc/gnulib-intro.texi (Target Platforms): Update list. 2016-10-15 Bruno Haible opendir, readdir, closedir: Relicense under LGPLv2+. * modules/opendir (License): Change to LGPLv2+. * modules/readdir (License): Likewise. * modules/closedir (License): Likewise. 2016-10-16 Bruno Haible Fix conflict between strerror_r-posix module and AC_FUNC_STRERROR_R. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Override the values set by the AC_FUNC_STRERROR_R macro. Define HAVE_DECL_STRERROR_R_ORIG. * lib/strerror_r.c: Use HAVE_DECL_STRERROR_R_ORIG instead of HAVE_DECL_STRERROR_R. 2016-10-16 Bruno Haible Make the 'argp' module work without the 'error' module. * m4/argp.m4 (gl_ARGP): Require AC_FUNC_STRERROR_R. 2016-10-25 Paul Eggert diffseq: restore TOO_EXPENSIVE heuristic * lib/diffseq.h: Problem with diffutils reported by Andreas Schwab (Bug#24715). The simplest solution is to restore the TOO_EXPENSIVE heuristic that I added to GNU diff in 1993, while using a higher threshold to avoid Bug#16848 on smaller files. * lib/diffseq.h (struct context): Restore member too_expensive. (struct partition): Restore members lo_minimal, hi_minimal. (diag, compareseq): Restore arg find_minimal. All uses changed. (diag): Restore the TOO_EXPENSIVE heuristic that I added back in 1993 to make 'diff' run faster (but not as well) on large inputs, but use a threshold of 4096 instead of the old 256. * lib/fstrcmp.c (strcmp_bounded): * lib/git-merge-changelog.c (compute_differences): Adjust to diffseq.h changes. 2016-10-22 Bruno Haible iconv: Avoid compilation error when bootstrapping GNU libiconv. * m4/iconv.m4 (AM_ICONV): When the system does not have an iconv() declaration yet, define ICONV_CONST to empty. 2016-10-15 Bruno Haible Avoid gnulib-tool warnings about the dependencies of 'parse-datetime'. * gnulib-tool (func_get_license): Special-case the 'parse-datetime' module. 2016-10-16 Bruno Haible system-quote tests: Avoid compiler warning on AIX. * tests/test-system-quote-child.c (fopen): Redefine like the system's does. 2016-10-16 Bruno Haible Fix some "gcc -Wall" warnings. * tests/test-ffsl.c (main): Use variable x, not i. * tests/test-posix_spawn3.c (parent_main): Consider the return value of freopen. * tests/test-sethostname1.c (main): Explicitly ignore the return value of sethostname. 2016-10-16 Bruno Haible gnulib-tool: Make --create-testdir on all modules work again. * gnulib-tool (func_create_testdir): Don't include the non-recursive-gnulib-prefix-hack module. 2016-10-21 Daiki Ueno libunistring: change the maintainer to 'all' * modules/gen-uni-tables, modules/libunistring: * modules/ucs4-utf16, modules/ucs4-utf8, modules/unicodeio: * modules/unitypes, modules/utf16-ucs4, modules/utf16-ucs4-unsafe: * modules/utf8-ucs4, modules/utf8-ucs4-unsafe: * modules/unicase/*, modules/uniconv/*, modules/unictype/*: * modules/unilbrk/*, modules/uniname/*, modules/uninorm/*: * modules/unistdio/*, modules/unistr/*, modules/uniwbrk/*: * modules/uniwidth/*: Change the maintainer to 'all'. 2016-10-16 Bruno Haible Simplify "configure: checking ..." messages. * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Use AC_MSG_CHECKING instead of AC_MSG_NOTICE. * m4/getaddrinfo.m4 (gl_GETADDRINFO): Likewise. 2016-10-20 Paul Eggert quotearg-tests: pacify gcc -Wall Problem reported by Bruno Haible in: http://lists.gnu.org/r/bug-gnulib/2016-10/msg00066.html * tests/test-quotearg-simple.c (use_quote_double_quotes): Move here ... * tests/test-quotearg.h: ... from here. 2016-10-20 Pádraig Brady canonicalize-lgpl: fix for missing SIZE_MAX on older systems * lib/canonicalize-lgpl.c [SIZE_MAX]: Define if needed. Needed on Centos <= 4. 2016-10-20 Jim Meyering printf.m4: fix a bug in detecting printf %j support * m4/printf.m4 (gl_PRINTF_SIZES_C99): Fail any system for which uintmax_t is defined in neither stdint.h nor inttypes.h. Before, this macro might have mistakenly set gl_cv_func_printf_sizes_c99=yes on such a system. Spotted by Zev Weiss. 2016-10-19 Paul Eggert sched: substitute HAVE_SYS_CDEFS_H too Problem reported by Tom G. Christensen in: http://lists.gnu.org/r/bug-gnulib/2016-10/msg00084.html * m4/sched_h.m4 (gl_SCHED_H): Set and substitute HAVE_SYS_CDEFS_H. * modules/sched (Depends-on): Substitute HAVE_SYS_CDEFS_H. 2016-10-19 Pádraig Brady quotearg: never write beyond the returned length * lib/quotearg.c (quotearg_buffer_restyled): Switch to a read-only scan of the string when we initially encounter a single quote when shell quoting, so that if we then switch to a more concise quoting method we will not have written beyond that returned length. This is significant for sh-quote, which has separate routines to determine the length and do the actual quoting. * tests/test-quotearg.h: Reinstate the buffer bounds checking now that we never write more than the returned length. 2016-10-18 Bruno Haible getprogname tests: Avoid failure in packages that use libtool. * tests/test-getprogname.c (main): Strip "lt-" prefix. Based on a patch by Jim Meyering. 2016-10-16 Bruno Haible getprogname: Fix test failure on Cygwin. Comments. * lib/getprogname.h: Add comments. * lib/getprogname.c: Add comments. Fix #elif indentation. * tests/test-getprogname.c (main): On Cygwin, expect a result without ".exe" suffix. 2016-10-16 Bruno Haible Make sure the libunistring detection rejects older versions with a known bug. * modules/unistr/u8-strtok (configure.ac): Bump required version. * modules/unistr/u16-strtok (configure.ac): Likewise. * modules/unistr/u32-strtok (configure.ac): Likewise. 2016-10-18 Bruno Haible sh-quote, system-quote: revert regression of unit test. * tests/test-sh-quote.c (check_one): Do detect buffer overruns. * tests/test-system-quote-main.c (check_one): Likewise. 2016-10-16 Pádraig Brady quotearg: fix stale tests * tests/test-quotearg.c [locale_results]: Add the missing str7 entries to the expected results. * tests/test-system-quote-main.c (check_one): Don't enforce that we don't write beyond the returned length, since that's no longer the case if we switch to a more concise quoting style. * tests/test-sh-quote.c (check_one): Likewise. (main): Adjust for the new more concise quoting style. Reported by Bruno Haible. 2016-10-16 Jim Meyering non-recursive-gnulib-prefix-hack: fix inconsequential typo * m4/non-recursive-gnulib-prefix-hack.m4: Change a hard-coded "lib" to "$1". This macro is always invoked with $1 == lib. Spotted by Bruno Haible 2016-10-16 Bruno Haible Fix a test crash. * tests/test-duplocale.c (main): Skip the test if the 'newlocale' call fails. 2016-10-16 Pádraig Brady test-limits-h: suppress -Woverlength-strings * tests/test-limits-h.c [__GNUC__]: Ignore -Woverlength-strings. 2016-10-15 Bruno Haible gettime, timespec, utimens: Relicense under LGPL. * modules/gettime (License): Change to LGPL. * modules/timespec (License): Likewise. * modules/utimens (License): Likewise. 2016-10-14 Bruno Haible Pádraig Brady canonicalize-lgpl: Support the case path_max > INT_MAX. * lib/canonicalize-lgpl.c (__realpath): Declare n as ssize_t, not int. Fix overflow check, for platforms where 'size_t' is larger than 'long'. 2016-10-13 Jim Meyering getprogname: IBM z/OS: avoid NULL-dereference * lib/getprogname.c (getprogname) [__MVS__]: Don't dereference NULL upon strdup failure. 2016-10-12 Jim Meyering test-stdint: use _GL_VERIFY rather than "verify" for some tests * tests/test-stdint.c (verify_width): Implement with _GL_VERIFY and an abbreviated diagnostic rather than verify with the full one, because the full-length strings would evoke warnings from gcc with -Woverlength-strings. 2016-10-13 Paul Eggert stdint: port SIZE_MAX to glibc s390 Problem reported by Eric Blake in: http://lists.gnu.org/r/bug-gnulib/2016-10/msg00031.html * doc/posix-headers/stdint.texi (stdint.h): Document the fix. * m4/stdint.m4 (gl_STDINT_H): Check that SIZE_MAX has the correct type, if possible. 2016-10-13 Daniel Richard G. getprogname: port to IBM z/OS * lib/getprogname.c (getprogname): Use w_getpsent() to get the name. 2016-10-11 Jim Meyering maint: remove stray space after "." in AC_DEFINE comment. * m4/st_dm_mode.m4 (AC_STRUCT_ST_DM_MODE): Remove space-after-".". * m4/utimes.m4 (gl_FUNC_UTIMES): Likewise. 2016-10-05 Jim Meyering long-options: avoid new GCC 7 warning from -Wimplicit-fallthrough * lib/long-options.c (parse_long_options): Add a break statement to avoid this new warning/failure: $ CFLAGS='-O -Werror=implicit-fallthrough' ./gnulib-tool \ --create-testdir --dir=/t/x --with-tests --test long-options ../../gllib/long-options.c: In function 'parse_long_options': ../../gllib/long-options.c:66:12: error: this statement may \ fall through [-Werror=implicit-fallthrough] (*usage_func) (EXIT_SUCCESS); ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ 2016-10-05 Jim Meyering utimecmp: avoid new GCC 7 warning from -Wbool-operation Testing this module would fail when using GCC 7 like this: $ CFLAGS='-O -Werror=bool-operation' ./gnulib-tool --create-testdir \ --dir=/tmp/x --with-tests --test utimecmp ../../gllib/utimecmp.c: In function ‘utimecmp’: ../../gllib/utimecmp.c:291:36: error: ‘~’ on a boolean expression \ [-Werror=bool-operation] time_t s = src_s & ~ (res == 2 * BILLION); ^ ../../gllib/utimecmp.c:370:16: error: ‘~’ on a boolean expression \ [-Werror=bool-operation] src_s &= ~ (res == 2 * BILLION); ^ * lib/utimecmp.c (utimecmp): Do not apply "~" to a boolean. Instead, make it explicit that we intend to apply it to 0 or 1. 2016-10-10 Norihiro Tanaka dfa: save memory for states * src/dfa (dfaexec_main): Beginning of dfa execution, release caches of states if dfa has a lot of caches. 2016-10-10 Eli Zaretskii wchar, wctype-h: fix for MinGW 3.22.2 * lib/wchar.in.h [__MINGW32__]: Add one more condition for special invocation, to fix issues with MinGW 3.22.2 wchar.h when included from . * lib/wctype.in.h [__MINGW32__]: Add special invocation convention for MinGW 3.22.2, to solve issues with their wctype.h when included from . 2016-10-05 Jim Meyering long-options: avoid new GCC 7 warning from -Wimplicit-fallthrough * lib/long-options.c (parse_long_options): Add a break statement to avoid this new warning/failure: $ CFLAGS='-O -Werror=implicit-fallthrough' ./gnulib-tool \ --create-testdir --dir=/t/x --with-tests --test long-options ../../gllib/long-options.c: In function ‘parse_long_options’: ../../gllib/long-options.c:66:12: error: this statement may \ fall through [-Werror=implicit-fallthrough] (*usage_func) (EXIT_SUCCESS); ~^~~~~~~~~~~~~~~~~~~~~~~~~~~ utimecmp: avoid new GCC 7 warning from -Wbool-operation Testing this module would fail when using GCC 7 like this: $ CFLAGS='-O -Werror=bool-operation' ./gnulib-tool --create-testdir \ --dir=/tmp/x --with-tests --test utimecmp ../../gllib/utimecmp.c: In function ‘utimecmp’: ../../gllib/utimecmp.c:291:36: error: ‘~’ on a boolean expression \ [-Werror=bool-operation] time_t s = src_s & ~ (res == 2 * BILLION); ^ ../../gllib/utimecmp.c:370:16: error: ‘~’ on a boolean expression \ [-Werror=bool-operation] src_s &= ~ (res == 2 * BILLION); ^ * lib/utimecmp.c (utimecmp): Do not apply "~" to a boolean. Instead, make it explicit that we intend to apply it to 0 or 1. 2016-10-03 Pádraig Brady quotearg: minimize shell quoting using double quotes * lib/quotearg.c (quotearg_buffer_restyled): If an ASCII single quote in encountered then use double quotes (c style quoting) when possible, as it simplifies the quoting. * tests/test-quotearg-simple.c: Add test cases. * tests/test-quotearg.h (use_quotearg_buffer): Adjust to account for the fact we now may write beyond the returned length. 2016-10-02 Jim Meyering vasnprintf.c: avoid spurious warning from GCC 7 The presence of cpp directives renders this "FALLTHROUGH" comment ineffective, so does not suppress the -Wimplicit-fallthrough warning from GCC 7 built from git on 2016-10-02. * lib/vasnprintf.c (VASNPRINTF): Move comment down past two cpp directives, so that it takes effect once again. This is clearly not a proper change, and I will revert it once this bug is fixed: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77817 2016-10-01 Jim Meyering getprogname: correct the test for a __progname variable * m4/getprogname.m4 (gl_FUNC_GETPROGNAME): Use AC_CACHE_CHECK and AC_LINK_IFELSE to check for a global __progname. If found, define HAVE_VAR___PROGNAME. * lib/getprogname.c (getprogname): Reflect the new name of the feature- checked preprocessor symbol: s/HAVE_DECL___PROGNAME/HAVE_VAR___PROGNAME/ 2016-09-28 Jim Meyering u8-uctomb-aux.c: build: placate GCC 7's new -Wimplicit-fallthrough * lib/unistr/u8-uctomb-aux.c (u8_uctomb_aux): Mark each end of fall-through case with a /* fallthrough */ comment. dfa: build: avoid warning from GCC 7's new -Wimplicit-fallthrough * lib/dfa.c (dfassbuild): Mark the end of this case with a /* fallthrough */ comment. getprogname: avoid __progname vs program_invocation_short_name pitfall I.e., don't let the OpenBSD 5.1 fix induce failure when using newer glibc. Would have caused failure with Fedora 25's glibc-2.24-3, but not with Fedora 24's glibc-2.23.1-10. * lib/getprogname.c (__progname): Move this declaration down... (getprogname): ... into the #elif block where used, and make it explicitly "extern". getprogname: port to OpenBSD 5.1 * lib/getprogname.c (__progname) [HAVE_DECL___PROGNAME]: Declare. (getprogname) [HAVE_DECL___PROGNAME]: Return __progname or "?". * modules/getprogname (configure.ac): Move most of this code... * m4/getprogname.m4 (gl_FUNC_GETPROGNAME): ... to this function, increment serial number, and add a test for __progname. https://bugs.gnu.org/24562 Reported by Nelson H. F. Beebe. 2016-09-24 Paul Eggert sched: port to GCC 6.2.1 on macOS Sierra Problem reported by Denis Davydov in: http://lists.gnu.org/r/bug-gnulib/2016-09/msg00056.html * lib/sched.in.h [HAVE_SYS_CDEFS_H]: Include before . * m4/nproc.m4 (gl_PREREQ_NPROC): Include errno.h before sched.h, so that we needn’t worry about the sched.h include bug here. * m4/sched_h.m4 (gl_SCHED_H): Check for sys/cdefs.h, and include it before if it exists, when checking for . tests/init.sh: port Alpine fix to AIX 7.1 * tests/init.sh (compare_): When attempting to use diff -U3, prefer diff -u to -U3 to -c to plain diff. Do not insist on diff -u not outputting a space after leading '+', as the users of 'compare' should not be that picky about its output format. In the AIX 7.1 case, return with diff exit status (or with 2 if trouble), instead of some random nonzero exit status. * tests/test-init.sh (test_compare): Remove space after leading '+', so that AIX 7.1 'diff' passes the test. 2016-09-22 Paul Eggert nl_langinfo: pacify GCC * lib/nl_langinfo.c (ctype_codeset): Remove unused local. (rpl_nl_langinfo): Cast string literals to char *, to pacify GCC. stdint: also set GL_GENERATE_LIMITS_H Problem reported by Jim Meyering in: http://lists.gnu.org/r/bug-gnulib/2016-09/msg00052.html * m4/stdint.m4 (gl_STDINT_H): Also redo the AM_CONDITIONAL. limits-h, stdint: Don't assume extensions, fix typo * m4/limits-h.m4 (gl_LIMITS_H): * m4/stdint.m4 (gl_STDINT_H): Don't assume AC_USE_SYSTEM_EXTENSIONS. * m4/stdint.m4 (gl_STDINT_H): Fix typo in setting of LIMITS_H, reported by Jim Meyering in: http://lists.gnu.org/r/bug-gnulib/2016-09/msg00050.html 2016-09-21 Jim Meyering getprogname: port to AIX * lib/getprogname.c (getprogname) [_AIX]: Use getpid, getprocs64 and strdup to obtain a short program name string. Using code from Bruno Haible and an idea from Bastien ROUCARIÈS, in https://lists.gnu.org/r/bug-gnulib/2010-12/msg00249.html Assaf Gordon reported that this new file would fail to compile on AIX-7.1 32bit. 2016-09-16 Paul Eggert extensions: fix typo in comment * m4/extensions.m4: Sync from Autoconf master. stdint: support new _WIDTH macros * doc/posix-headers/stdint.texi: Document this. * lib/stdint.in.h: Add support for INTMAX_WIDTH. etc. * m4/stdint.m4 (gl_STDINT_H): Require gl_LIMITS_H. Check for support for INTMAX_WIDTH, etc. as well as for support for just C99. * modules/stdint (Depends-on): Add limits-h. (Makefile.am): Substitute HAVE_C99_STDINT_H. * modules/stdint-tests (Depends-on): Add extensions, so that INTMAX_MAX etc. are defined. * tests/test-stdint.c: Verify the new macros. limits-h: new module This adds ISO/IEC TS 18661-1:2014 support to limits.h. * MODULES.html.sh: Add limits-h,and move size_max to stdint section. * doc/posix-headers/limits.texi: Document new module. * lib/limits.in.h, m4/limits-h.m4, modules/limits-h: * modules/limit-h-tests, tests/test-limits-h.c: New files. stdio: don't redefine __USE_MINGW_ANSI_STDIO * m4/stdio_h.m4 (gl_STDIO_H): Don't define __USE_MINGW_ANSI_STDIO if it is already defined. Apparently GNU Emacs relies on this. See: http://lists.gnu.org/r/emacs-devel/2016-09/msg00416.html 2016-09-15 Eric Blake sys_types: avoid glibc 2.25 warnings about major() * m4/sys_types_h.m4 (AC_HEADER_MAJOR): Replace broken version in older autoconf. * doc/posix-headers/sys_types.texi (sys/types.h): Document fix. * doc/glibc-functions/gnu_dev_major.texi (gnu_dev_major): Likewise. * doc/glibc-functions/gnu_dev_makedev.texi (gnu_dev_makedev): Likewise. * doc/glibc-functions/gnu_dev_minor.texi (gnu_dev_minor): Likewise. mountlist: include sysmacros.h for glibc * m4/mountlist.m4 (gl_PREREQ_MOUTLIST_EXTRA): Include AC_HEADER_MAJOR. * lib/mountlist.c (includes): Use correct headers. 2016-09-15 Paul Eggert extensions: port to more ISO C TSes * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Sync from Autoconf master, to add support for more recent ISO C TRs and TSes. 2016-09-13 Paul Eggert intprops: new macro TYPE_WIDTH * lib/intprops.h (TYPE_WIDTH): New macro. (TYPE_MAXIMUM, _GL_SIGNED_INT_MAXIMUM, INT_STRLEN_BOUND): * lib/ftoastr.h (_GL_FLOAT_DIG_BITS_BOUND): * lib/parse-datetime.y (parse_datetime2): Use it. extensions: port to recent ISO C TRs * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Sync from Autoconf master, to add support for recent ISO C TRs. * m4/stdio_h.m4 (gl_STDIO_H): Define __USE_MINGW_ANSI_STDIO here, since AC_USE_SYSTEM_EXTENSIONS no longer does that as the MinGW option is not an extension. 2016-09-11 Paul Eggert dfa: port to Solaris 9 Problems reported by Tom G. Christensen in: http://lists.gnu.org/r/bug-gnulib/2016-09/msg00031.html * modules/dfa (Depends-on): Add isblank. * modules/dfa-tests (dfa_match_aux_LDADD): Rename from test_stat_LDADD, to fix typo. * tests/dfa-match.sh: Don't require 'timeout'; use it if available. 2016-09-10 Jim Meyering strverscmp: avoid link failure on OS X * lib/strverscmp.c [!weak_alias]: Define __strverscmp to strverscmp. Reported by Assaf Gordon in https://bugs.gnu.org/24256#26 2016-08-16 Jim Meyering dfa: new module, importing grep's DFA matcher Since grep's DFA matcher is now being used by two gnulib-enabled projects, grep and sed, it makes sense to version-control its sources and unit tests in one place: here. * modules/dfa: New module. * modules/dfa-tests: New file. * lib/dfa.c: New file, from grep. * lib/dfa.h: Likewise. * lib/localeinfo.c: Likewise. * lib/localeinfo.h: Likewise. * tests/dfa-match-aux.c: Likewise. * tests/dfa-invalid-char-class.sh: Likewise. * tests/dfa-match.sh: Likewise, with minor changes. * MODULES.html.sh (Misc): Add "dfa" to this list. 2016-09-09 Jim Meyering getprogname-tests: don't depend on assert-h * modules/getprogname-tests (Depends-on): Remove assert-h. It was not needed, and in fact would cause build failure for coreutils on some systems. Reported by Assaf Gordon in https: //lists.gnu.org/r/coreutils/2016-09/msg00016.html 2016-09-07 Jim Meyering getprogname-tests: work also when EXEEXT is nonempty * modules/getprogname-tests (Makefile.am): Define EXEEXT. * tests/test-getprogname.c (main): Use it. Suggested by Gisle Vanem. 2016-09-07 Gisle Vanem getprogname: fix errors in previous change * lib/getprogname.c (getprogname) [HAVE_GETEXECNAME]: s/program_invocation_name/base/ [HAVE_DECL___ARGV]: Handle NULL __argv or __argv[0]. 2016-09-08 Pádraig Brady parse-datetime: restrict debug output to input string * lib/parse-datetime.y (parse_datetime2): If we parse all of the input but determine it's invalid, ensure we don't output the now invalid input pointer. This issue was seen with `date -d 'now +1'`. 2016-09-07 Paul Eggert flexmember: new macro FLEXALIGNOF * lib/flexmember.h: Include , for offsetof. (FLEXALIGNOF): Rename from _GL_XALLOC_ALIGNOF, as Emacs can use this macro. Update comments. 2016-09-07 Jim Meyering getprogname: port to systems with __argv (mingw, msvc) * lib/getprogname.c (getprogname): Include "dirname.h" and use last_component: more general than open coding it with hard-coded "/". * lib/getprogname.h (getprogname): Prefer "char const *" consistently. * modules/getprogname (Depends-on): Add dirname-lgpl. (configure.ac): Check for __argv in . * modules/getprogname-tests: New file. * tests/test-getprogname.c: New file. Suggested by Gisle Vanem in https://lists.gnu.org/r/bug-gnulib/2016-09/msg00014.html 2016-09-07 Paul Eggert flexmember: port better to GCC + valgrind With a char[] flexible array member in a struct with nontrivial alignment, GCC-generated code can access past the end of the array, because GCC assumes there are padding bytes to get the struct aligned. So the common idiom of malloc (offsetof (struct s, m), n) does not properly allocate an n-byte trailing member, as malloc’s argument should be the next multiple of alignof (struct s). See GCC Bug#66661: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66661 Although C11 apparently permits this GCC optimization (i.e., there was a bug in Gnulib not in GCC), possibly this is a defect in C11. See the thread containing: https://gcc.gnu.org/ml/gcc-patches/2016-09/msg00317.html * lib/flexmember.h: New file. * lib/fnmatch.c, lib/fts.c, lib/glob.c, lib/idcache.c: * lib/localename.c, lib/time_rz.c: Include flexmember.h. * lib/fnmatch_loop.c (struct patternlist): * lib/localename.c (struct hash_node): Use FLEXIBLE_ARRAY_MEMBER. * lib/fnmatch_loop.c (EXT): * lib/fts.c (fts_alloc): * lib/glob.c (glob_in_dir): * lib/idcache.c (getuser, getuidbyname, getgroup, getgidbyname): * lib/localename.c (gl_lock_define_initialized): * lib/time_rz.c (tzalloc): Use FLEXSIZEOF instead of offsetof. * m4/flexmember.m4 (AC_C_FLEXIBLE_ARRAY_MEMBER): Check that the size of the struct can be taken. * modules/flexmember (Files): Add lib/flexmember.h. * modules/fnmatch, modules/glob, modules/localename (Depends-on): Add flexmember. 2016-09-06 Paul Eggert getprogname: port to Solaris 10 * lib/getprogname.c: Include stdlib.h, for getexecname decl. (getprogname) [HAVE_GETEXECNAME]: Use that, for Solaris 10. * m4/getprogname.m4 (gl_FUNC_GETPROGNAME): Check for getexecname. stdalign: correct mistake in alignof doc Problem reported by Joseph Myers in: https://gcc.gnu.org/ml/gcc-patches/2016-09/msg00340.html * doc/posix-headers/stdalign.texi: Do not imply that C11 prohibits alignof(S) where S is a structure containing a flexible array member. The Gnulib substitute does not support this, but C11 does. 2016-08-18 Pino Toscano main.mk: remove sc_program_name, since there is no more need to use set_program_name in tools (getprogname is enough for most of the cases). * cfg.mk (local-checks-to-skip): Remove sc_program_name. * top/maint.mk (sc_program_name): Remove. 2016-08-18 Pino Toscano Port tests away from progname, since modules that need the program name already depend on getprogname. * modules/acl-tests (Depends-on): Remove progname. * modules/argmatch (Depends-on): Likewise. * modules/argmatch-tests (Depends-on): Likewise. * modules/argp-tests (Depends-on): Likewise. * modules/argp-version-etc-tests (Depends-on): Likewise. * modules/array-list-tests (Depends-on): Likewise. * modules/array-oset-tests (Depends-on): Likewise. * modules/avltree-list-tests (Depends-on): Likewise. * modules/avltree-oset-tests (Depends-on): Likewise. * modules/avltreehash-list-tests (Depends-on): Likewise. * modules/carray-list-tests (Depends-on): Likewise. * modules/copy-file-tests (Depends-on): Likewise. * modules/exclude-tests (Depends-on): Likewise. * modules/fchownat-tests (Depends-on): Likewise. * modules/fdopendir-tests (Depends-on): Likewise. * modules/filenamecat-tests (Depends-on): Likewise. * modules/fstatat-tests (Depends-on): Likewise. * modules/fstrcmp-tests (Depends-on): Likewise. * modules/linked-list-tests (Depends-on): Likewise. * modules/linkedhash-list-tests (Depends-on): Likewise. * modules/mkdirat-tests (Depends-on): Likewise. * modules/nonblocking-pipe-tests (Depends-on): Likewise. * modules/nonblocking-socket-tests (Depends-on): Likewise. * modules/obstack-printf-tests (Depends-on): Likewise. * modules/openat-tests (Depends-on): Likewise. * modules/parse-datetime-tests (Depends-on): Likewise. * modules/pipe-filter-gi-tests (Depends-on): Likewise. * modules/pipe-filter-ii-tests (Depends-on): Likewise. * modules/quotearg-simple-tests (Depends-on): Likewise. * modules/quotearg-tests (Depends-on): Likewise. * modules/rbtree-list-tests (Depends-on): Likewise. * modules/rbtree-oset-tests (Depends-on): Likewise. * modules/rbtreehash-list-tests (Depends-on): Likewise. * modules/spawn-pipe-tests (Depends-on): Likewise. * modules/system-quote-tests (Depends-on): Likewise. * modules/uniname/uniname-tests (Depends-on): Likewise. * modules/uninorm/nfc-tests (Depends-on): Likewise. * modules/uninorm/nfd-tests (Depends-on): Likewise. * modules/uninorm/nfkc-tests (Depends-on): Likewise. * modules/uninorm/nfkd-tests (Depends-on): Likewise. * modules/unistdio/u16-vsnprintf-tests (Depends-on): Likewise. * modules/unistdio/u16-vsprintf-tests (Depends-on): Likewise. * modules/unistdio/u32-vsnprintf-tests (Depends-on): Likewise. * modules/unistdio/u32-vsprintf-tests (Depends-on): Likewise. * modules/unistdio/u8-vsnprintf-tests (Depends-on): Likewise. * modules/unistdio/u8-vsprintf-tests (Depends-on): Likewise. * modules/unistdio/ulc-vsnprintf-tests (Depends-on): Likewise. * modules/unistdio/ulc-vsprintf-tests (Depends-on): Likewise. * modules/unlinkat-tests (Depends-on): Likewise. * modules/version-etc-tests (Depends-on): Likewise. * modules/xalloc-die-tests (Depends-on): Likewise. * modules/xmemdup0-tests (Depends-on): Likewise. * modules/xprintf-posix-tests (Depends-on): Likewise. * modules/xvasprintf-tests (Depends-on): Likewise. * tests/test-argmatch.c: Do not include progname.h. (main) Stop calling set_program_name. * tests/test-argp-version-etc.c: Likewise. * tests/test-argp.c: Likewise. * tests/test-argv-iter.c: Likewise. * tests/test-array_list.c: Likewise. * tests/test-array_oset.c: Likewise. * tests/test-avltree_list.c: Likewise. * tests/test-avltree_oset.c: Likewise. * tests/test-avltreehash_list.c: Likewise. * tests/test-carray_list.c: Likewise. * tests/test-copy-acl.c: Likewise. * tests/test-copy-file.c: Likewise. * tests/test-exclude.c: Likewise. * tests/test-fchownat.c: Likewise. * tests/test-fdopendir.c: Likewise. * tests/test-filenamecat.c: Likewise. * tests/test-fstatat.c: Likewise. * tests/test-fstrcmp.c: Likewise. * tests/test-linked_list.c: Likewise. * tests/test-linkedhash_list.c: Likewise. * tests/test-mkdirat.c: Likewise. * tests/test-nonblocking-pipe-main.c: Likewise. * tests/test-nonblocking-socket-main.c: Likewise. * tests/test-obstack-printf.c: Likewise. * tests/test-openat.c: Likewise. * tests/test-parse-datetime.c: Likewise. * tests/test-pipe-filter-gi1.c: Likewise. * tests/test-pipe-filter-gi2-main.c: Likewise. * tests/test-pipe-filter-ii1.c: Likewise. * tests/test-pipe-filter-ii2-main.c: Likewise. * tests/test-quotearg-simple.c: Likewise. * tests/test-quotearg.c: Likewise. * tests/test-rbtree_list.c: Likewise. * tests/test-rbtree_oset.c: Likewise. * tests/test-rbtreehash_list.c: Likewise. * tests/test-sameacls.c: Likewise. * tests/test-set-mode-acl.c: Likewise. * tests/test-spawn-pipe-main.c: Likewise. * tests/test-system-quote-main.c: Likewise. * tests/test-unlinkat.c: Likewise. * tests/test-version-etc.c: Likewise. * tests/test-xalloc-die.c: Likewise. * tests/test-xfprintf-posix.c: Likewise. * tests/test-xmemdup0.c: Likewise. * tests/test-xprintf-posix.c: Likewise. * tests/test-xvasprintf.c: Likewise. * tests/uniname/test-uninames.c: Likewise. * tests/uninorm/test-u32-nfc-big.c: Likewise. * tests/uninorm/test-u32-nfd-big.c: Likewise. * tests/uninorm/test-u32-nfkc-big.c: Likewise. * tests/uninorm/test-u32-nfkd-big.c: Likewise. * tests/unistdio/test-u16-vsnprintf1.c: Likewise. * tests/unistdio/test-u16-vsprintf1.c: Likewise. * tests/unistdio/test-u32-vsnprintf1.c: Likewise. * tests/unistdio/test-u32-vsprintf1.c: Likewise. * tests/unistdio/test-u8-vsnprintf1.c: Likewise. * tests/unistdio/test-u8-vsprintf1.c: Likewise. * tests/unistdio/test-ulc-vsnprintf1.c: Likewise. * tests/unistdio/test-ulc-vsprintf1.c: Likewise. * tests/test-c-stack.c: (program_name): Do not define. (main): Do not set program_name. * tests/test-closein.c: Likewise. * tests/test-xstrtol.c: Likewise. * tests/test-yesno.c: Likewise. 2016-08-18 Pino Toscano Port modules to use getprogname explicitly, instead of requiring progname to be used (or program_name to be provided). * lib/argmatch.c: Do not include progname.h. [TEST] (program_name): Do not define. [TEST] (main): Call getprogname instead of using program_name. * lib/c-stack.c: Do not include progname.h. (program_name): Do not define. (die): Call getprogname instead of using program_name. * lib/chdir-long.c: Do not include progname.h. [TEST_CHDIR] (main): Do not set program_name. * lib/error.c [!_LIBC]: Include progname.h. [!_LIBC] (program_name): Define using getprogname. * lib/euidaccess.c: Do not include progname.h. [TEST] (main): Do not set program_name. * lib/git-merge-changelog.c: Include getprogname.h instead of progname.h. (usage): Call getprogname instead of using program_name. (main): Likewise. Stop calling set_program_name. * lib/group-member.c: Do not include progname.h. [TEST] (main): Do not set program_name. * modules/argmatch (Depends-on): Add getprogname. * modules/c-stack (Depends-on): Likewise. * modules/error (Depends-on): Likewise. * modules/git-merge-changelog (Depends-on): Likewise. Also remove progname. 2016-09-05 Pino Toscano * NEWS: Document the deprecation of the 'progname' module. 2016-08-18 Pino Toscano getprogname: new module This provides a LGPL module for getting the name of the current program, using the same API found on *BSD systems. * lib/getprogname.c, lib/getprogname.h, m4/getprogname.m4: * modules/getprogname: New files. * MODULES.html.sh (Misc): Add getprogname. 2016-09-02 Jim Meyering manywarnings: add -fno-common * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -fno-common to the list. Quoting the manual, "Compiling with -fno-common is useful on targets for which it provides better performance, or if you wish to verify that the program will work on other systems that always treat uninitialized variable declarations this way [putting it in the data section]." If diffutils had been using this sooner, it would have prevented this duplicate declaration issue: http://git.sv.gnu.org/cgit/diffutils.git/commit/?id=v3.4-10-gc2dc91f 2016-08-31 Simon Josefsson parse-datetime: Fix typo. * lib/parse-datetime.y (parse_datetime2): Fix typo. 2016-08-30 Paul Eggert intprops: tune INT_NEGATE_OVERFLOW for GCC 5 and 6 * lib/intprops.h (INT_NEGATE_OVERFLOW): Tune for platforms like GCC 5 and 6 that have __builtin_sub_overflow but not __builtin_sub_overflow_p. With the recent changes, these platforms are a tiny bit faster with the INT_NEGATE_RANGE_OVERFLOW implementation than with INT_SUBTRACT_OVERFLOW implementation, since the former needs just one runtime comparison whereas the latter needs two. strverscmp: sync with glibc Although this doesn't exactly synchronize with glibc byte-for-byte, it makes the code behave the same as glibc. * lib/strverscmp.c (S_I, S_F, S_Z): Now masks, not powers of 2. (ISDIGIT): Remove, as glibc is sticking with isdigit, and the difference shouldn't matter in practical use. All uses changed back to isdigit. (__strverscmp, strverscmp): Use new glibc method for weak aliases. (next_state): Now unsigned char array; redo elements. (result_type): Now signed char array; redo elements. (__strverscmp): Fix glibc bug 9913 by using new states. * tests/test-strverscmp.c (main): Test glibc bug 9913. 2016-08-29 Jim Meyering xalloc-oversized.h: port __builtin_mul_overflow change to GCC 6.2.0 * lib/xalloc-oversized.h: Port this change to GCC 6.2.0, too, similarly to how it was done to intprops.h. 2016-08-29 Paul Eggert intprops.h: port recent changes to GCC 6.2.0 * lib/intprops.h (__has_builtin): Move earlier. (_GL_HAS_BUILTIN_OVERFLOW): Rename from _GL_HAS_BUILTIN_OVERFLOW_WITH_NULL and don't worry about whether the last argument can be null. All uses changed. (_GL_HAS_BUILTIN_OVERFLOW_P): Also test __has_builtin. (_GL_ADD_OVERFLOW, _GL_SUBTRACT_OVERFLOW, _GL_MULTIPLY_OVERFLOW): Don't try to use 3rd arg null, as this doesn't work on GCC 6.2.0 and it's not clear which GCC versions it works for. (_GL_INT_OP_WRAPV): Use _GL_HAS_BUILTIN_OVERFLOW instead of its definiens. intprops.h: use __typeof__ with GCC 7 * lib/intprops.h (_GL_ADD_OVERFLOW, _GL_SUBTRACT_OVERFLOW) (_GL_MULTIPLY_OVERFLOW): Use __typeof__ as in the GCC manual. This avoids computing the expression's value (which might overflow!). 2016-08-29 Jim Meyering intprops.h, xalloc-oversized.h: work with gcc 7 In gcc 6, __builtin_add_overflow, __builtin_sub_overflow and __builtin_mul_overflow each accept a NULL pointer as the third argument. However in gcc 7, that is no longer accepted. Instead, one must use the "_p"-suffixed names, with which, the third parameter is no longer a pointer. * lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW_WITH_NULL): Correct the definition: not true for gcc 7 and subsequent. (_GL_HAS_BUILTIN_OVERFLOW_P): Define. (_GL_ADD_OVERFLOW, _GL_SUBTRACT_OVERFLOW, _GL_MULTIPLY_OVERFLOW): Provide new definitions for gcc 7 and subsequent. * lib/xalloc-oversized.h (xalloc_oversized): Provide a definition that works with gcc-7. intprops.h: fix missing-backslash problems * lib/intprops.h (_GL_ADD_OVERFLOW): Add backslash. (_GL_SUBTRACT_OVERFLOW,_GL_MULTIPLY_OVERFLOW): Likewise. 2016-08-24 Paul Eggert intprops: fix paren typo on old platforms Problem reported by John E. Malmberg in: https://bugs.gnu.org/24300#13 * lib/intprops.h (_GL_INT_OP_WRAPV_LONGISH) [__GNUC__ < 5 && !__has_builtin (__builtin_add_overflow) && (__STDC_VERSION__ < 201112 || _GL__GENERIC_BOGUS) && !defined LLONG_MAX]: Remove stray paren. intprops: port to OpenVMS Problem reported by John E. Malmberg in: https://bugs.gnu.org/24300 * doc/posix-headers/limits.texi: Document the problem. * lib/intprops.h (LLONG_MAX, LLONG_MIN) [__INT64_MAX]: Define if not already defined. 2016-08-19 Assaf Gordon parse-datetime: improve debug implementation Follow-up to commit 12ad79069 ("add optional debug printing"). Improve parse-datetime's debug implementation: remove macros, replace global debug flag variable with a function parameter, use nstrftime for formatting. See: https://lists.gnu.org/r/bug-gnulib/2016-08/msg00021.html * lib/parse-datetime.h: (parse_datetime_debug): Remove global extern. (parse_datetime2): New function, accepts 'flags' parameter, supporting debug flag. Existing interface 'parse_datetime' left unmodified. * lib/parse-datetime.c: (parse_datetime_debug): Remove global variable. (struct parser_control): add 'parse_datetime_debug' member variable. (parse_datetime): Call new function 'parse_datetime2' without debug. (parse_datetime2): Adapted from previous 'parse_datetime', initialize pc.parse_datetime_debug variable as needed. (to_year): Accept new flags parameter, instead of using global variable. (debug_print_current_time,debug_print_relative_time,debug_mktime_not_ok): use struct 'debug' variable instead of global variable. (DEBUG,DEBUG_PRINT_CURRENT_TIME,DEBUG_PRINT_RELATIVE_TIME, DEBUG_MKTIME_NOT_OK,PROGRESS,PROGRESS0): Remove macros. Call correspnding functions directly instead of using macros. * modules/parse-datetime: Add gnulib's strftime module. 2016-08-19 Daniel Richard G. c-strcase-tests: port to EBCDIC * tests/test-c-strncasecmp.c: Allow two c_strncasecmp calls which assume ASCII encoding semantics to run only in ASCII mode, as they fail in EBCDIC. sigpipe-tests: fix typo * tests/test-sigpipe.sh: C, not B. 2016-08-18 Paul Eggert canonicalize-lgpl: fix errno after malloca fails This fixes a typo I recently introduced. Suggested by Bruno Haible in: http://lists.gnu.org/r/bug-gnulib/2016-08/msg00039.html * lib/canonicalize-lgpl.c (__realpath): Don't assume malloca sets errno on failure. 2016-08-17 Paul Eggert strtod: port errno handling to z/OS * lib/strtod.c (strtod): Save and restore errno more reliably. 2016-08-17 Daniel Richard G. strtod: port to z/OS * lib/strtod.c (strtod): Address a couple quirks in the z/OS implementation. 2016-08-17 Paul Eggert strtod: port to z/OS * lib/strtod.c (strtod): Address a couple quirks in the z/OS implementation. regex, string: rename to avoid '__string' * lib/regex.h, lib/string.in.h: Do not use the identifier '__string', as it is effectively reserved by string.h on z/OS. c-strcase-tests, wcwidth-tests: depend on c-ctype * modules/c-strcase-tests, modules/wcwidth-tests (Depends-on): Add c-ctype. 2016-08-17 Daniel Richard G. thread: port to z/OS * lib/glthread/thread.c, lib/glthread/thread.h: Rudimentary gl_thread support for z/OS. maint: port tests to z/OS errno behavior * tests/test-nonblocking-reader.h: * tests/test-nonblocking-writer.h: Accommodate z/OS errno code preferences. (I believe this should still be within spec; IBM is good at following the letter if not the spirit of such things.) maint: preprocessor changes to support z/OS * lib/alloca.in.h, lib/fnmatch.c, lib/get-rusage-as.c: * lib/glob.c, lib/math.in.h, lib/ptsname_r.c: * tests/infinity.h, tests/nan.h, tests/test-canonicalize-lgpl.c: * tests/test-nonblocking-pipe.h: fclose, strstr-simple, wchar: port to z/OS * m4/fclose.m4, m4/strstr.m4, m4/wchar_h.m4: Changes to the Autoconf M4 code to support z/OS. Note that fclose() is broken in a different way on z/OS than it is on other systems, thus the special-case in fclose.m4. iconv_open-utf-tests, iconv-tests: port to EBCDIC * tests/test-iconv-utf.c, tests/test-iconv.c: Added appropriately conditional #pragmas so that the test strings in test-iconv-utf.c are correctly interpreted in ASCII instead of EBCDIC (i.e. 'J' == 0x4A and not 0xD1). This issue could be addressed in a more portable way by simply rewriting all the ASCII literal characters as octal escapes, but then you would lose the partial readability that the strings have now. Also, iconv_open() on z/OS does not recognize "ISO-8859-1", but "ISO8859-1" works. c-strcase-tests, wcwidth-tests: port to EBCDIC * tests/test-c-strcasecmp.c: Include c-ctype.h. (main) [!C_CTYPE_ASCII]: Skip tests that assume ASCII. * tests/test-wcwidth.c: Likewise. 2016-08-17 Paul Eggert stdbool: don't require _Bool for C++ Problem reported by David Seifert in: http://lists.gnu.org/r/bug-gnulib/2016-06/msg00005.html * NEWS, doc/posix-headers/stdbool.texi (stdbool.h): Document this. * m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Make the check more-forgiving for C++, in that it requires only 'bool'. Be a bit stricter about checking that bool and _Bool are compatible in C. 2016-08-16 Paul Eggert getdelim: remove dependency on realloc-posix * lib/canonicalize-lgpl.c (alloc_failed) [!FUNC_REALPATH_WORKS || defined _LIBC]: New function, (__realpath) [!FUNC_REALPATH_WORKS || defined _LIBC]: Use it. Use __set_errno where needed, for consistency. * lib/getdelim.c (alloc_failed): New function. (getdelim): Use it. 2016-08-09 Assaf Gordon parse-datetime: add optional debug printing Print parsing information, warnings, and errors to stderr. * lib/parse-datetime.h (parse_datetimte_debug): New global variable. * lib/parse-datetime.y: (DEBUG_*): Macros calling debug functions if debugging is enabled. (PROGRESS*): Same as DEBUG, for progress reporting. (dbg_printf): Print message to stderr, with 'date' prefix. (struct parser_control): Add 'debug_*_seen' variables. (str_days): Converts day ordinal/number to string (e.g. 'last wed'). (debug_print_current_time, debug_print_relateive_time): Prints the current/relative date/time value of parser_control. (YACC parser syntax): Print parsed parts with DEBUG_* macros. (to_year): Warn about 2-digit year parsing. (yylex): Warn about unrecognized words. (get_effective_timezone): Returns current timezone in minutes. (debug_strf{time,date,datetime}): Convert 'struct tm' to string as clearly and unambigiously as possible. (debug_mktime_not_ok): Print detailed information about failed date/time values. (parse_datetime): Add DEBUG messages for failures, warnings. Add PROGRESS messages for status messages. * modules/parse-datetime: Add 'timegm', 'gettext-h' dependencies. 2016-08-06 Jim Meyering tests/init.sh: exclude dash with bad "local" semantics * tests/init.sh (gl_shell_test_script_): Add a function to eliminate a shell like "dash" (unlike bash, zsh) that has surprising/risky "local var='...'" semantics. Inspired by the problem and discussion in https://bugs.gnu.org/24116#11. 2016-08-02 Ján Tomko maint.mk: expand the prohibit_doubled_word regex This check has a static list of words that are checked for repetitions. Expand it before running the perl script to avoid using expensive captures. This decreases the cost for libvirt from 1.66s to 0.66s. * top/maint.mk (prohibit_doubled_word_expanded_): Define. (sc_prohibit_doubled_word): Use it. 2016-07-26 Ján Tomko useless-if-before-free: skip non-matching lines early * build-aux/useless-if-before-free: First match each line with the simple/quick /\bif\b/ and reject if there is no match. This often saves the cost of the much more involved regular expression. For libvirt, this decreases the cost from 1.44s to 1.02s. 2016-07-26 Ján Tomko maint.mk: speed up sc_po_check sc_po_check would skip files based on their names, or on the existence of files with derived names. Rewrite it to use perl instead of shell to make the check faster. * top/maint.mk (perl_translatable_files_list_): Define. (sc_po_check): Use it. 2016-07-30 Ján Tomko maint.mk: speed up require_config_h_first Instead of spawning three processes per file, rewrite the check in perl and run it once for all the files. * top/maint.mk (perl_config_h_first_): Define. (sc_require_config_h_first): Use it in place of shell code. 2016-07-26 Ján Tomko maint.mk: speed up sc_po_check sc_po_check would skip files based on their names, or on the existence of files with derived names. Rewrite it to use perl instead of shell to make the check faster. * top/maint.mk (perl_translatable_files_list_): Define. (sc_po_check): Use it. 2016-07-15 Paul Eggert obstack: pacify GCC 6 with -Wnull-dereference Problem reported by Assaf Gordon in: http://lists.gnu.org/r/bug-gnulib/2016-07/msg00028.html * lib/obstack.c, lib/obstack.h (obstack_alloc_failed_handler): Declare with __attribute_noreturn__. * lib/obstack.h (__attribute_noreturn__): New macro. 2016-07-13 Eric Blake doc: mention glibc, OS X, Cygwin [S]SIZE_MAX buglet * doc/posix-headers/stdint.texi (stdint.h): Document the bugs. * doc/posix-headers/limits.texi (limits.h): Document the bugs. 2016-07-13 Paul Eggert doc: mention glibc SSIZE_MAX buglet * doc/posix-headers/limits.texi (limits.h): Document the bug. 2016-07-04 Martin Kletzander printf-posix: Fix mingw build Commit 54615b95ff238e235e806855efc46a9abad09f2e changed the regular expression for detecting C symbol prefixes but forgot to qoute square brackets in the command line arguments for grep. That way when building with mingw the condition was false although it ought to be true instead. In particular scenarios this led to the following compile error: Cannot export rpl_printf: symbol not found Cannot export rpl_scanf: symbol not found collect2: error: ld returned 1 exit status Fix this by properly quoting square brackets. 2016-07-03 Paul Eggert mktime: call tzset as per POSIX Problem reported by Ludovic Courtès in: http://lists.gnu.org/r/bug-gnulib/2016-06/msg00068.html * lib/mktime.c (mktime) [!_LIBC && HAVE_TZSET]: Call tzset. * m4/mktime.m4 (gl_FUNC_MKTIME): Check for tzset. 2016-06-26 Pádraig Brady fts: handle readdir() errors * lib/fts.c (fts_build): readdir(3) returns NULL when finished, but also upon error when it will also set errno. Therefore flag the error case from readdir(). We treat the case where no items are read the same as if the dir can't be accessed, i.e. by setting fts_errno to FTS_DNR. 2016-06-24 Paul Eggert intprops: port better to GCC 7 GCC 7 __builtin_add_overflow supports a new usage form, where the last argument is a null pointer, and which merely returns 1 if an overflow would occur. This is a constant expression if all arguments are constants, and should generate faster code when code needs to be generated. * lib/intprops.h (_GL_HAS_BUILTIN_OVERFLOW_WITH_NULL): New macro. (_GL_ADD_OVERFLOW, _GL_SUBTRACT_OVERFLOW, _GL_MULTIPLY_OVERFLOW): Use builtin operations if available. (INT_NEGATE_OVERFLOW): Prefer INT_SUBTRACT_OVERFLOW if builtin operations are available, as it's almost surely faster. 2016-06-23 Paul Eggert intprops-test: port to GCC 6 * tests/test-intprops.c: Ignore -Woverflow if any GCC version, since the bug is not fixed in GCC 6.1. 2016-06-13 Paul Eggert xalloc-oversized: port to GCC 7; fewer warnings GCC 7 will have a better way to deal with integer overflow. Plus, fix a warnings problem reported by Tim Ruehsen in: http://lists.gnu.org/r/bug-gnulib/2016-06/msg00022.html * lib/xalloc-oversized.h (__xalloc_oversized): New macro. (xalloc_oversized): Use plain __builtin_mul_overflow if GCC 7 or later. For GCC 5, use __xalloc_oversized if both args are constants, or if pedantic. 2016-06-08 Paul Eggert regex: port to Sun C Reported by Daiki Ueno. * lib/regcomp.c (regcomp, regerror): Use _Restrict_, not __restrict, in prototype. This fixes a problem I introduced in the 2016-02-19 merge from glibc. 2016-05-31 Paul Eggert stdbool: Restore __bool_true_false_are_defined check * m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): __bool_true_false_are_defined is still defined, even with C++11. 2016-05-31 David Seifert (tiny change) stdbool: Port AC_CHECK_HEADER_STDBOOL to C++11 * m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Port to C++11. 2016-05-30 Paul Eggert Use GCC_LINT, not lint FreeBSD and Cygwin #define _Noreturn to empty if 'lint' is defined. Problem reported by Ken Brown in: http://bugs.gnu.org/23640 * doc/posix-headers/stdnoreturn.texi (stdnoreturn.h): Document problem with lint and _Noreturn. * lib/diffseq.h (IF_LINT, IF_LINT2): * lib/fts.c (sccsid): * lib/getndelim2.c (IF_LINT): * lib/gl_anylinked_list2.h (gl_linked_iterator) (gl_linked_iterator_from_to): * lib/gl_anytree_list2.h (gl_tree_iterator) (gl_tree_iterator_from_to): * lib/gl_anytree_oset.h (gl_tree_iterator): * lib/gl_array_list.c (gl_array_iterator) (gl_array_iterator_from_to): * lib/gl_array_oset.c (gl_array_iterator): * lib/gl_carray_list.c (gl_carray_iterator) (gl_carray_iterator_from_to): * lib/idcache.c: * lib/inet_ntop.c (IF_LINT): * lib/regcomp.c (build_charclass_op, create_tree): * lib/regex_internal.c (re_acquire_state) (re_acquire_state_context): * lib/trigl.c (rcsid): * lib/trim.c (IF_LINT): * lib/vasnprintf.c (IF_LINT): * lib/verify.h (assume): Treat GCC_LINT like lint. 2016-05-29 Bruno Haible secure_getenv: Port to many more platforms. * m4/secure_getenv.m4 (gl_PREREQ_SECURE_GETENV): Also check for get*id functions. * lib/secure_getenv.c (secure_getenv): Add alternate implementations for non-BSD Unix platforms and for native Windows. * doc/glibc-functions/secure_getenv.texi: Remove known issue. Prompted by a request from Nikos Mavrogiannopoulos. 2016-05-27 Eric Blake canonicalize: Fix broken probe for realpath. * m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Fix regression in logic introduced in 54615b95. 2016-05-26 Eric Blake unsetenv: relax to LGPLv2+ * modules/unsetenv (License): Match setenv license. 2016-05-20 Ludovic Courtès gendocs.sh: Set default TOP_NODE_UP_URL in HTML output. Suggested by Gavin Smith . Reported by myglc2 in . * build-aux/gendocs.sh (MANUAL_TITLE, PACKAGE, EMAIL) (commonarg, dirargs, dirs, infoarg, generate_ascii) (generate_html, generate_info, generate_tex, outdir) (source_extra, split, srcfile, texarg): Move above 'version'. (htmlarg): Likewise, and add "-c TOP_NODE_UP_URL=/manual". 2016-05-17 Paul Eggert manywarnings: update for GCC 6.1 * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add GCC 6.1 options that apply to C. * build-aux/gcc-warning.spec: Add GCC 6.1 options that do not apply to C, are obsolescent, etc. 2016-05-12 Paul Eggert glob: size_t overflow checks * lib/glob.c (__has_builtin): New macro. (size_add_wrapv, glob_use_alloca): New static functions. (glob, glob_in_dir): Check for size_t overflow in several places, and fix some size_t checks that were not quite right. glob: don't assume INT_MAX < SIZE_MAX * lib/glob.c (glob): Prefer SIZE_MAX to ~((size_t) 0), as the latter is not portable to (probably theoretical) hosts where SIZE_MAX <= INT_MAX. 2016-05-09 Bruno Haible Fix undefined behaviour in gettext.h. * lib/gettext.h (dcpgettext_expr, dcnpgettext_expr): Avoid accessing a pointer's value after the storage it points to has been freed. Reported by Michael Pyne in https://savannah.gnu.org/bugs/?47847. Spotted by Coverity. 2016-05-08 Paul Eggert git-version-gen: avoid undefined shift Problem reported by Mosè Giordano in: http://lists.gnu.org/r/bug-gnulib/2016-05/msg00012.html * build-aux/git-version-gen: Avoid undefined behavior if invoked with --prefix or --fallback but without a later argument. While we're at it, omit unnecessary quotes. 2016-05-04 Paul Eggert glob: merge glibc changes into lib/glob.c * lib/glob.c (glob_in_dir): Sync with glibc/posix/glob.c, dated 2016-05-04 12:09:35 2016 +0200. Here are the changes: 2016-05-04 CVE-2016-1234: glob: Do not copy d_name field of struct dirent [BZ #19779] 2016-04-29 glob: Simplify the interface for the GLOB_ALTDIRFUNC callback gl_readdir 2015-10-20 Convert miscellaneous function definitions to prototype style 2015-10-20 Convert 113 more function definitions to prototype style (files with assertions) 2015-06-12 Fix getlogin_r namespace (bug 18527). 2014-02-10 Use glibc_likely instead __builtin_expect. 2013-10-20 When glob pattern contains a trailing slash match only directories. Fixes bug 10278. 2013-09-04 glob: silence -Wattribute warnings 2013-06-07 Avoid use of "register" as optimization hint. 2012-09-25 Use size_t instead of int for internal variables in glob (bug 14621) 2011-07-20 Check for overflows in expressions 2011-05-28 Remove unused variable 2011-05-22 Add a few more alloca size checks 2010-03-27 Whitespace fixes 2010-03-27 Fix one more issue with the glob patch 2010-03-24 Fix glob with empty pattern 2008-05-27 Remove useless more "if" tests before "free" * modules/glob (Depends-on): Add stdint. 2016-05-01 Paul Eggert mktime: port to stricter signed overflow checking * lib/mktime.c: Omit 'pragma GCC optimize ("wrapv")'. (long_int): Require width for INT_MAX * 3 * (seconds per year), instead of merely for INT_MAX * 2. In practice platforms that do the latter also do the former. (TIME_T_MIN, TIME_T_MAX, TIME_T_MIDPOINT, SHR): Remove. (shr): New static function, replacing SHR. All uses changed. (mktime_min, mktime_max): New constants, replacing TIME_T_MIN and TIME_T_MAX. All uses changed. (ydhms_diff, guess_time_tm, ranged_convert, __mktime_internal): Use long_int, not time_t. (long_int_avg): New static function, replacing time_t_avg. All uses changed. Round toward positive infinity, as that generates slightly better code. (time_t_add_ok, time_t_int_add_ok): Remove. All uses replaced by INT_ADD_WRAPV. (guess_time_tm): Accept time, not a pointer to it. All uses changed. (convert_time): New static function. (ranged_convert): Use it (ranged_convert): Check for *T out of [mktime_min, mktime_max] range. Use simpler test for loop exit. (__mktime_internal): Store negative of guessed offset, to simplify overflow checking. Remove no-longer-needed test for small time_t overflows. mktime: speed up DEBUG_MKTIME benchmarks Call tzset just once, at the start, rather than for every test case. This lets us measure the CPU cost of mktime as opposed to that of tzset. This is relevant when TZ is not set and glibc is being used. This speeds up tests by a factor of 40 on my Fedora 23 x86-64 platform. * lib/mktime.c (main) [DEBUG_MKTIME]: Call localtime at the start, to call tzset and as a sanity check. Later on, use localtime_r instead of localtime. mktime: resurrect DEBUG_MKTIME testing * lib/mktime.c [DEBUG_MKTIME]: Do not include . Include , for strcmp. mktime: simplify DEBUG_MKTIME * lib/mktime.c (DEBUG_MKTIME): Define to 0 if not defined. Simplify later usage accordingly. Port mktime_internal offset to unsigned time_t This avoids some assumptions about wraparound arithmetic on signed integer overflow. * lib/mktime-internal.h (mktime_offset_t): New type. (mktime_internal): Use it in decl. * lib/mktime.c, lib/timegm.c (mktime_offset_t) [_LIBC]: New type. * lib/mktime.c (__mktime_internal, localtime_offset): * lib/timegm.c (timegm): Use it. * m4/mktime.m4 (gl_TIME_T_IS_SIGNED): New macro. (gl_FUNC_MKTIME): Require it. 2016-04-27 Paul Eggert xstrtol: prohibit monstrosities like "1bB" Problem reported by Young Mo Kang in: http://bugs.gnu.org/23388 * lib/xstrtol.c (__xstrtol): Allow trailing second suffixes like "B" only if the first suffix needs a base. * tests/test-xstrtol.sh: Test this. 2016-04-21 Pádraig Brady xstrtod: reinstate setting of *result upon ERANGE * lib/xstrtod.c (XSTRTOD): The user may decide to use the returned limits upon ERANGE, so allow and document that. 2016-04-20 Tino Calancha (tiny change) xstrtod: modify *result only if no errors * lib/xstrtod.c (XSTRTOD). 2016-04-19 Paul Eggert btowc: document problems in C locale * doc/posix-functions/btowc.texi (btowc): Mention incompatibility with mbrtowc. See: http://bugs.gnu.org/23269#32 2016-04-13 Paul Eggert mktime: improve integer overflow checking * lib/mktime.c: Include stdbool.h, intprops.h, verify.h. (WRAPV): Remove; no longer needed. (verify): Remove. Replace all uses with call to verify.h 'verify'. (TYPE_IS_INTEGER, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Remove. Use intprops.h defns instead. (leapyear, isdst_differ, time_t_add_ok, time_t_int_ok): Use bool for Boolean, for clarity. (time_t_add_ok, time_t_int_add_ok): Use INT_ADD_WRAPV to detect integer overflow. * modules/mktime (Depends-on): Add intprops, stdbool, verify. intprops: check two's complement assumption Suggested by Eric Blake in: http://lists.gnu.org/r/bug-gnulib/2016-04/msg00016.html * lib/intprops.h: Include . Verify that signed char, short, int, long, and (if available) long long are two's complement. * modules/intprops (Depends-on): Add 'verify'. intprops, mktime, strtol: assume two's complement These macros were not portable to every conforming C11 ones' complement platform. It's not worth the hassle of porting to some platforms that use ones' complement or signed magnitude, as such platforms are almost purely theoretical nowadays and porting even to some of them makes the code harder to review for little practical benefit. Problem reported by Florian Weimer in: https://sourceware.org/ml/libc-alpha/2016-04/msg00295.html * lib/intprops.h (TYPE_TWOS_COMPLEMENT, TYPE_ONES_COMPLEMENT) (TYPE_SIGNED_MAGNITUDE, _GL_INT_TWOS_COMPLEMENT): * lib/mktime.c (TYPE_TWOS_COMPLEMENT): * lib/strtol.c (TYPE_TWOS_COMPLEMENT, TYPE_ONES_COMPLEMENT) (TYPE_SIGNED_MAGNITUDE): Remove. All uses rewritten to assume two's complement, which is all we can reasonably test nowadays anyway. * top/maint.mk (_intprops_names): Remove the removed macros. 2016-04-11 Paul Eggert stdint: port to strict C11 left shift * lib/stdint.in.h (_STDINT_MIN, _STDINT_MAX): Pacify clang -Wshift-negative-value, which should be an issue only on clang setups where stdint.h does not conform to C11 or to C++11. Problem reported by Philipp Stephani in: http://bugs.gnu.org/23261 2016-04-09 Paul Eggert mbrtowc: work around glibc bug#19932 Fix mbrtowc so that it never returns -1 in the C locale, as this conflicts with a future version of POSIX http://austingroupbugs.net/view.php?id=663#c2738 and causes problems with GNU grep: http://bugs.gnu.org/23234 See glibc bug 19932: https://sourceware.org/bugzilla/show_bug.cgi?id=19932 * doc/posix-functions/mbrlen.texi (mbrlen): * doc/posix-functions/mbrtowc.texi (mbrtowc): Document the glibc bug. * lib/mbrtowc.c [C_LOCALE_MAYBE_EILSEQ]: Include hard-locale.h, locale.h. (rpl_mbrtowc): Work around the C_LOCALE_MAYBE_EILSEQ bug, if the bug is possible. * m4/mbrtowc.m4 (gl_MBRTOWC_C_LOCALE): New macro. (gl_FUNC_MBRTOWC): Use it, and define C_LOCALE_MAYBE_EILSEQ as needed. * modules/hard-locale (License): Now LGPLv2+, for mbrtowc. * modules/mbrtowc (Depends-on): Add hard-locale. * modules/mbrtowc-tests (Files, TESTS): Add tests/test-mbrtowc5.sh. * tests/test-mbrtowc.c (main): Test for bug fix if arg is '5'. * tests/test-mbrtowc5.sh: New file. 2016-04-03 Pedro Alves stdint: detect good enough pre-C++11 stdint.h in C++ mode When gnulib is configured in C++ mode for a system with a working C99 implementation of stdint.h that predates C++11, gnulib ends up substituting stdint.h anyway. This works on most targets, but on e.g., 64-bit MinGW, it doesn't, as gnulib's substitute assumes LP64, while MinGW is LLP64. Instead of trying to detect the right types, detect good-enough-pre-C++11 stdint.h and in such case define __STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS in config.h. * m4/stdint.m4 (gl_STDINT_H): Always define __STDC_CONSTANT_MACROS / __STDC_LIMIT_MACROS while checking whether the system stdint.h conforms to C99. If it does, check whether it hides symbols behind the __STDC_{CONSTANT|LIMIT}_MACROS macros. Then if it does, define those macros in config.h. 2016-04-03 Paul Eggert argp: merge changes from glibc Among other things, this should fix problems found by a Coverity scan and reported by Andrei Borzenkov: http://lists.gnu.org/r/bug-gnulib/2016-01/msg00015.html http://lists.gnu.org/r/bug-gnulib/2016-01/msg00016.html * lib/argp-ba.c, lib/argp-fmtstream.c, lib/argp-fmtstream.h: * lib/argp-fs-xinl.c, lib/argp-help.c, lib/argp-namefrob.h: * lib/argp-parse.c, lib/argp-pv.c, lib/argp-pvh.c, lib/argp-xinl.c: * lib/argp.h: Merge changes from glibc. * tests/test-argp-2.sh: Adjust to match new behavior. 2016-04-01 Paul Eggert stddef: support configuring with g++ Problem reported by Ángel González in: http://lists.gnu.org/r/bug-gnulib/2016-04/msg00003.html * lib/stddef.in.h (_GL_STDDEF_ALIGNAS, max_align_t): Do not define if _GCC_MAX_ALIGN_T is defined. 2016-03-25 Paul Eggert test-framework-sh: minor cleanups * tests/init.sh (testdir_prefix_): Output a trailing newline, since strictly speaking POSIX requires this. (setup_): Do not use the variable 'fail', as that makes the trace output harder to read ('fail' is typically used by tests to mean the test failed). Treat // portably. Check that new directory is not merely a sibling of the tmp dir. Avoid unnecessary invocation of tr. test-framework-sh: revert port to NetBSD 7.0 It was a false alarm; I misinterpreted Assaf Gordon's report. * tests/init.sh (testdir_prefix_, pfx_, template_length_): Restore. (test_dir_): Adjust to mktempd_ change. (mktempd_): Restore 2nd arg. Use -t again. (base_template_, template_, nx_): Resurrect old code. Port better to Alpine Linux Its diff implementation does not support -c, but does support -U3. Problem reported by Assaf Gordon in: http://bugs.gnu.org/23107#13 * tests/init.sh (diff_opt_): New var. (compare_): Prefer diff -U3 to diff -c to plain diff. 2016-03-24 Paul Eggert test-framework-sh: port to NetBSD 7.0 Problem reported by Assaf Gordon in: http://bugs.gnu.org/23107#13 * tests/init.sh (testdir_prefix_, pfx_, template_length_): Remove. All uses removed. (test_dir_): Adjust to mktempd_ change. (mktempd_): Omit 2nd arg. Stop using -t, as it is not portable. (base_template_, template_, nx_): Simplify by hardcoding. 2016-03-22 Paul Eggert gitlog-to-changelog: suppress ignored chatter * build-aux/gitlog-to-changelog: Do not warn about skipping an SHA if it would have been ignored anyway. 2016-03-22 Geert Janssens setlocale: add "sv" to Windows language table * lib/setlocale.c (language_table) [W32]: Add "sv". Reported in . 2016-03-21 Paul Eggert sys_select: port to new Cygwin Problem reported by Ken Brown in: https://lists.gnu.org/r/bug-gnulib/2016-03/msg00054.html * lib/sys_select.in.h [__CYGWIN__]: Avoid "unknown type name" diagnostics. 2016-03-17 Jim Meyering test-userspec.c: do not trigger gcc's new -Wmisleading-indentation * tests/test-userspec.c (main): Remove unnecessary braces and fix misleading indentation. Here is the diagnostic gcc-6.0-to-be issued: test-userspec.c:176:9: error: statement is indented as if it were \ guarded by... [-Werror=misleading-indentation] { ^ test-userspec.c:173:7: note: ...this 'if' clause, but it is not if (!diag && !T[i].result) ^~ 2016-03-15 Paul Eggert time_rz: port to clang -Wunused-const-variable * lib/time_rz.c (TZ): Remove. All uses removed. std-gnu11: improve clang support * m4/std-gnu11.m4: Sync with autoconf, incorporating: 2016-03-15 Also try clang 2016-03-15 Port C11 and C++11 testing to clang select: port more to Intel 2016.1.150 compiler Problem reported by Balázs Hajgató in: http://lists.gnu.org/r/bug-gnulib/2016-03/msg00036.html * m4/select.m4 (gl_FUNC_SELECT): Require AC_C_RESTRICT. 2016-03-14 Paul Eggert select: try to port to 2016.1.150 compiler Problem reported by Balázs Hajgató in: http://lists.gnu.org/r/bug-gnulib/2016-03/msg00026.html * lib/sys_select.in.h (select): Use 'restrict' on arguments where POSIX specifies 'restrict'. 2016-03-13 Paul Eggert localename-tests: memory allocation fixes * tests/test-localename.c (test_locale_name) (test_locale_name_thread): Don't call freelocale on a locale that was the base of a successful newlocale, as that results in a double free. Problem reported by Assaf Gordon. (test_locale_name_thread): Free saved names after use, to pacify gcc -fsanitize=address. 2016-03-08 Paul Eggert intprops: make .h file license match module * lib/intprops.h: Change the license wording to match glibc format. This is what is in modules/intprops anyway. See: https://sourceware.org/bugzilla/show_bug.cgi?id=19738#c8 2016-03-08 Eric Blake acl: fix missing return on Cygwin * lib/set-permissions.c (set_acls) [HAVE_FACL && GETACL]: Don't fall off end of function. Fixes http://bugs.gnu.org/22949 2016-03-05 Bruno Haible extern-inline: port to PGI CC * m4/extern-inline.m4 (gl_EXTERN_INLINE): For PGI CC, don't use the keyword 'inline'. Reported by Adam James Stewart in: http://lists.gnu.org/r/bug-gnulib/2016-03/msg00006.html 2016-02-20 Paul Eggert signbit: port back to pre-C++11 GCC * lib/math.in.h (signbit): Do previous change only if __cplusplus < 201103. See Jonathan Wakely in: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/UY3VX3W7XEXYTUKHG5BALU4ACUD7ZLGE/ 2016-02-19 Kamil Dudka mountlist: recognize autofs-mounted remote file systems, too Originally reported at: https://bugzilla.redhat.com/1309247 * lib/mountlist.c (ME_REMOTE): Return true if a file system is named "-hosts" because it is used by autofs to mount remote file systems. 2016-02-19 Paul Eggert signbit: port to C++ with GCC 6 * lib/math.in.h (signbit) [__cplusplus]: Do not replace with GCC builtin. Reported by Orion Poplawski in: http://lists.gnu.org/r/bug-gnulib/2016-02/msg00005.html * lib/regex_internal.h (IDX_MAX) [_REGEX_LARGE_OFFSETS]: Now SSIZE_MAX. regex: make it closer to libc Make Idx a signed type, rather than possibly unsigned. The unsignedness was not really buying us anything, since the code overflows for other reasons before getting to PTRDIFF_MAX. Making it signed allows us to use -1 and -2 with abandon, like libc does, thus lessening the number of differences between gnulib and libc. Also, it should help avoid gratuitous warnings like the one reported by Nelson H. F. Beebe in: http://bugs.gnu.org/22702 * lib/regex.h (__re_idx_t): Remove. All uses changed to regoff_t. regex: merge patches from libc 2015-10-21 Joseph Myers 2015-10-20 Joseph Myers Convert miscellaneous function definitions to prototype style. * lib/regcomp.c (re_compile_pattern, re_set_syntax) (re_compile_fastmap, regcomp, regerror, regfree, re_comp): * lib/regexec.c (regexec, re_match, re_search, re_match_2, re_search_2) (re_search_2_stub, re_search_stub, re_set_registers, re_exec) (re_search_internal): Convert to prototype-style function definition. Use internal_function for internal functions. 2016-02-10 Paul Eggert stdalign: port to older HP and IBM cc * lib/stdalign.in.h (_Alignas): Port better to older HP and IBM C compilers, by checking their version numbers. These version numbers appear in MariaDB and in Qt code that dates way back and that conditiionally uses the 'aligned' attribute. 2016-02-09 Paul Eggert stdalign: port to clang 3.7.0 Problem reported by Herbert J. Skuhra in: http://lists.gnu.org/r/emacs-devel/2016-02/msg00476.html * lib/stdalign.in.h (alignas): Fix typo that prevented 'alignas' from being defined on clang 3.7.0, which has a buggy stdalign.h. See: https://llvm.org/bugs/show_bug.cgi?id=26547 2016-02-08 Paul Eggert readdir_r: now obsolescent * doc/posix-functions/readdir_r.texi (readdir_r): Now obsolescent. * lib/mountlist.c (read_file_system_list): Add a FIXME. 2016-02-06 Paul Eggert misc: port better to gcc -fsanitize=address Without these patches, ./configure CFLAGS='-fsanitize=address' would compute incorrect values. This patch fixes some (but not all) test failures with recent glibc, with this configuration. * m4/acl.m4 (gl_ACL_GET_FILE): * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): * m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): * m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): * m4/duplocale.m4 (gl_FUNC_DUPLOCALE): * m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): * m4/getdelim.m4 (gl_FUNC_GETDELIM): * m4/getgroups.m4 (gl_FUNC_GETGROUPS): * m4/getline.m4 (gl_FUNC_GETLINE): * m4/malloc.m4 (_AC_FUNC_MALLOC_IF): * m4/realloc.m4 (_AC_FUNC_REALLOC_IF): * m4/regex.m4 (gl_REGEX): * m4/strndup.m4 (gl_FUNC_STRNDUP): * tests/test-calloc-gnu.c (main): * tests/test-duplocale.c (main): * tests/test-getgroups.c (main): * tests/test-getline.c (main): * tests/test-inttostr.c (main): * tests/test-localename.c (test_locale_name) (test_locale_name_thread, test_locale_name_environ) (test_locale_name_default): * tests/test-regex.c (main): * tests/test-setlocale1.c (main): * tests/test-stat.h (test_stat_func): Free heap-allocated storage before exiting. * m4/asm-underscore.m4 (gl_ASM_SYMBOL_PREFIX): Don't match *_foo symbols inserted by AddressSanitizer. * tests/test-regex.c, tests/test-stat.c: Include stdlib.h, for 'free'. 2016-02-02 Jim Meyering verify-tests: also remove stray test-verify.Tpo * modules/verify-tests (Makefile.am): Arrange for "make clean" to remove the test-verify.Tpo file that is left behind by the automake-generated rule upon compilation failure. Otherwise, that .Tpo file would cause a failed "make distcheck" at least for grep. 2016-02-02 Paul Eggert std-gnu11: new module This makes it easier for applications to prefer C11 and C++11 to older variants, when compiling C and C++ code. Unlike most m4/*.m4 files, m4/std-gnu11.m4 is GPLed, as it copies a nontrivial chunk of GPLed Autoconf source code. * COPYING: Mention the m4/*.m4 copyright situation. * MODULES.html.sh (std-gnu11): New module. * m4/std-gnu11.m4, modules/std-gnu11: New files. 2016-01-25 Paul Eggert get-permissions, strftime: fix grammar in comments * lib/get-permissions.c, lib/strftime.c: Merge into the comments some grammar fixes Alan Mackenzie made to GNU Emacs. 2016-01-25 Daiki Ueno gettext: mark as obsolete Suggested by Paul Eggert in: https://lists.gnu.org/r/bug-gnulib/2016-01/msg00101.html * modules/gettext (Status): Mark as obsolete. (Notice): Suggest to use 'gettext-h' instead. * modules/gettext-h (Description): Suggest GNU gettext, instead of the 'gettext' module. 2016-01-24 Paul Eggert gnulib-tool: don't give up on ln -s so easily * gnulib-tool (func_ln_s): Don't give up on a later ln -s merely because an earlier one failed. The targets could be on different file systems. Problem reported by KO Myung-Hun in: http://lists.gnu.org/r/bug-gnulib/2016-01/msg00081.html closedir: fix OS/2-related typos Problem reported by KO Myung-Hun in: http://lists.gnu.org/r/bug-gnulib/2016-01/msg00107.html * m4/closedir.m4 (gl_FUNC_CLOSEDIR): Fix a couple of typos in the last couple of changes. 2016-01-24 KO Myung-Hun openat_proc_name: fix that last '/' is overwritten on OS/2 kLIBC * lib/openat-proc.c (openat_proc_name): Increase dirlen by 1 after copying a directory. 2016-01-24 Paul Eggert regex: treat [x] as x if x is a unibyte encoding error Problem reported by Aharon Robbins in: http://lists.gnu.org/r/bug-gnulib/2016-01/msg00091.html * lib/regcomp.c (parse_byte) [!_LIBC && RE_ENABLE_I18N]: New function. (build_range_exp) [!_LIBC && RE_ENABLE_I18N]: Use it. closedir, dirfd, opendir: port to OpenSolaris 5.10 * m4/closedir.m4 (gl_FUNC_CLOSEDIR): * m4/dirfd.m4 (gl_FUNC_DIRFD): * m4/opendir.m4 (gl_FUNC_OPENDIR): Don't use ${word##pat} substitution, as it doesn't work in OpenSolaris 5.10 /bin/sh. Problem reported by Assaf Gordon in: http://bugs.gnu.org/22443#11 2016-01-23 Paul Eggert bootstrap: use American spelling * build-aux/bootstrap: Honor American spelling. 2016-01-22 Karl Berry * doc/posix-functions/localtime.texi, * doc/posix-functions/localtime_r.texi: @item needed for @itemize text. 2016-01-21 Bruno Haible hash-pjw-bare: fix comment * lib/hash-pjw-bare.h (hash_pjw_bare): Fix comment. wcwidth: Replace also on OpenBSD 5.8 * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Check the value of wcwidth(0xFF1A). * doc/posix-functions/wcwidth.texi: Update. 2016-01-20 Pádraig Brady gnu-web-doc-update: fix addition of new files If there were already added (emnpty) dirs, then cvs aborts the add with the message: cvs [add aborted]: there is a version in <./dirname> already * build-aux/gnu-web-doc-update: Add directories separately to the addition of files, to avoid the above issue impacting the addition of files. 2016-01-19 Daiki Ueno utimens-tests: avoid pulling gettext .m4 files Although this is not the right fix to the original problem: http://lists.gnu.org/r/bug-gnulib/2013-01/msg00086.html it makes it possible again for consumer projects to use arbitrary version of gettext, through the steps described at: http://www.gnu.org/software/gnulib/manual/html_node/gettextize-and-autopoint.html See here for details: https://lists.gnu.org/r/bug-gnulib/2016-01/msg00079.html * modules/futimens-tests (Depends-on): Add 'gettext-h' in place of 'gettext'. * modules/utimens-tests (Depends-on): Add 'gettext-h' in place of 'gettext'. 2016-01-18 Paul Eggert regex: pacify static checkers Problem and draft fix reported by Aharon Robbins in: http://lists.gnu.org/r/bug-gnulib/2016-01/msg00082.html * lib/regcomp.c (build_charclass_op, create_tree) [lint]: Clear memory to pacify static checkers. regex: fix [ diagnostic Problem and fix reported by Aharon Robbins in: http://lists.gnu.org/r/bug-gnulib/2016-01/msg00082.html * lib/regcomp.c (REG_EBRACK_IDX): Fix misleading diagnostic about [. regex: fix memory leaks Problem and draft fix reported by Aharon Robbins in: http://lists.gnu.org/r/bug-gnulib/2016-01/msg00082.html * lib/regcomp.c (build_range_exp, build_charclass_op) * lib/regex_internal.c (re_dfa_add_node): Fix memory leak on failure. 2016-01-18 Pádraig Brady fts: don't unconditionally use leaf optimization for NFS NFS st_nlink are not accurate on all implementations, leading to aborts() if that assumption is made. See * lib/fts.c (leaf_optimization_applies): Remove NFS from the white list, and document the issue. 2016-01-15 Paul Eggert KO Myung-Hun gnulib-tool: don't assume ln -s works * gnulib-tool (func_ln_s): New function. (func_ln): Use it. 2016-01-15 KO Myung-Hun utimes: detect utimes() correctly on OS/2 kLIBC utimes() of OS/2 kLIBC has some limitations. 1. OS/2 itself supports a file date since 1980 year in local time. 2. OS/2 itself supports only even seconds for a file time. 3. utimes() of OS/2 kLIBC does not work on an opened file. * m4/utimes.m4: Detect utimes() correctly on OS/2 kLIBC. * doc/posix-functions/utimes.texi: Document the above limitations of utimes() on OS/2 kLIBC. 2016-01-15 Paul Eggert KO Myung-Hun openat_proc_name: port to OS/2 kLIBC OS/2 kLIBC provides a function to retrive a path from a fd. Use it instead of /proc/self/fd. * lib/openat-proc.c (openat_proc_name): Don't assume file name length is less than INT_MAX. Port to OS/2 kLIBC with __libc_Back_ioFHToPath(). 2016-01-14 KO Myung-Hun stdint: check _INTPTR_T_DECLARED for intptr_t etc. OS/2 kLIBC's stdint.h defines _INTPTR_T_DECLARED and needs its own definitions of intptr_t and uintptr_t (which use int and unsigned) to avoid clashes with declarations of system functions like sbrk. * lib/stdint.in.h (intptr_t, uintptr_t): Check _INTPTR_T_DECLARED before defining them. opendir, closedir, dirfd, fdopendir: port to OS/2 kLIBC * lib/closedir.c (closedir): Unregister fd if closedir() succeeds. * lib/dirent.in.h (_gl_register_dirp_fd, _gl_unregister_dirp_fd): Declare on kLIBC. * lib/dirfd.c (struct dirp_fd_list): New. Structures to keep track of fd associated with dirp. (_gl_register_dirp_fd): New. Register fd associated with dirp to dirp_fd_list. (_gl_unregister_dirp_fd): New. Unregister fd with closing it. (dirfd): Implemented for kLIBC. * lib/fdopendir.c (fdopendir): Implemented for kLIBC. * lib/opendir.c (opendir): New. Register fd and dirp pair if open() succeeds. * m4/closedir.m4 (gl_FUNC_CLOSEDIR): Replace if OS/2. * m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise. (REPLACE_DIRFD): Define to 1 if replaced. * m4/opendir.m4 (gl_FUNC_OPENDIR): Likewise. * modules/closedir (Depends-on): Add dirfd. * modules/dirfd (Depends-on): Add 'test $REPLACE_DIRFD = 1' to errno condition. (configure.ac): Add dirfd to LIBOBJS if $REPLACE_DIRFD = 1 as well. * modules/opendir (Depends-on): Add dirfd. dup, dup2, fcntl: support a directory fd on OS/2 kLIBC On OS/2 kLIBC, dup(), dup2() and fcntl() do not work on a directory fd. * lib/dup.c (dup_nothrow): New. * lib/dup2.c (klibc_dup2dirfd): New. dup2() for a directory fd. (klibc_dup2): New. * lib/fcntl.c (klibc_fcntl): New. * m4/dup.m4 (gl_FUNC_DUP): Check if dup() works on a directory fd. * m4/dup2.m4 (gl_FUNC_DUP2): Check if dup2() works on a directory fd. * m4/fcntl.m4 (gl_FUNC_FCNTL): Check if F_DUPFD works on a directory fd. pipe_filter_ii_execute: port to OS/2 kLIBC Pipes on kLIBC do not support O_NONBLOCK like Win32. * lib/pipe-filter-ii.c (start_wrapper, _beginthreadex, CloseHandle, WaiForSingleObject, WaitForMultipleObjects): New on OS/2 kLIBC. Reuse Win32 code on OS/2 kLIBC. * lib/spawn-pipe.c: Reuse Win32 code on OS/2 kLIBC. * lib/w32spawn.h: Do not include windows.h on OS/2 kLIBC. wchar: fix "conflicting types" error for __wcwidth on OS/2 kLIBC On OS/2 kLIBC, wcwidth is a macro that expands to the name of a static inline function. The implementation of wcwidth in wcwidth.c causes a "conflicting types" error. * lib/wchar.in.h: Undefine wcwidth on OS/2 kLIBC. w32spawn: clear SHELL_SPECIAL_CHARS and SHELL_SPACE_CHAR on OS/2 kLIBC spawn() on OS/2 kLIBC is not silly like one on Windows * libc/w32spawn.h (SHELL_SPECIAL_CHARS, SHELL_SPACE_CHAR): Set both to empty string on OS/2 kLIBC. pipe-filter-aux: undefine HAVE_SELECT on KLIBC On OS/2 kLIBC, select() works only on sockets. * lib/pipe-filter-aux.h (HAVE_SELECT): Undefine on OS/2 kLIBC. binary-io: don't put fd in binary mode if it is a console on EMX * lib/binary-io.h (SET_BINARY): Don't put fd in binary mode if it is a console on EMX. 2016-01-15 Pádraig Brady doc: mention unfixed issues with unsupported localtime() values * doc/posix-functions/localtime.texi: Mention that FreeBSD 10 returns nonsense for localtime(2^56). * doc/posix-functions/localtime_r.texi: Likewise. 2016-01-14 Pádraig Brady doc: mention setlocale() issues on OpenBSD * doc/posix-functions/setlocale.texi: Mention setlocale(LC_ALL,"") never fails, and the need to check categories individually. 2016-01-14 Pádraig Brady sig2str: list all signals on FreeBSD >= 7 FreeBSD >= 7 is contravening POSIX by not defining NSIG to the maximal statically defined signal value. It does define _SIG_MAXSIG though, so base SIGNUM_BOUND on that. * lib/sig2str.h (SIGNUM_BOUND): Define to (_SIG_MAXSIG - 2) where available, even when NSIG is defined. 2016-01-13 Paul Eggert acl-permissions: port to USE_ACL==0 platforms I ran into this problem when building bleeding-edge GNU Emacs with gcc -fsanitize=address on Fedora 23. On this platform the ACL library does not pass the 'configure' test and Emacs then does not build due in part to what appear to be typos in the ACL part of Gnulib. * lib/acl-internal.c (free_permission_context): * lib/acl-internal.h (struct permission_context): Test whether USE_ACL is nonzero, not whether it is defined. 2016-01-12 Martin Sebor mktime: rename macro to avoid glibc clash * lib/mktime.c [DEBUG] (DEBUG): Rename to DEBUG_MKTIME. See: https://sourceware.org/ml/libc-alpha/2016-01/msg00267.html 2016-01-12 Paul Eggert Port "$@" to OpenIndiana ksh93 In http://lists.gnu.org/r/bug-autoconf/2015-12/msg00000.html Pavel Raiskup reports that ${1+"$@"} runs afoul of a bug in /bin/sh (derived from ksh 93t+ 2010-03-05). ${1+"$@"} works around an ancient bug long-dead shells, so remove the workaround. * build-aux/announce-gen, build-aux/do-release-commit-and-tag: * build-aux/gitlog-to-changelog, build-aux/gnu-web-doc-update: * build-aux/prefix-gnulib-mk, build-aux/update-copyright: * build-aux/useless-if-before-free, tests/test-update-copyright.sh: Use "$@" instead of ${1+"$@"}. Port Universal Time settings to strict POSIX * build-aux/announce-gen, build-aux/bootstrap: * build-aux/do-release-commit-and-tag, build-aux/git-version-gen: * build-aux/gitlog-to-changelog, build-aux/gnu-web-doc-update: * build-aux/gnupload, build-aux/mkinstalldirs: * build-aux/move-if-change, build-aux/prefix-gnulib-mk: * build-aux/update-copyright, build-aux/useless-if-before-free: * build-aux/vc-list-files, tests/test-strftime.c: Use TZ="UTC0", not TZ="UTC". Either works on GNU platforms, but POSIX says the behavior of TZ="UTC" is undefined. 2016-01-02 Paul Eggert msvc-inval: fix problem with unset shell var Problem reported by Karl Berry in: http://lists.gnu.org/r/bug-gnulib/2016-01/msg00004.html * modules/msvc-inval (Depends-on): AC_REQUIRE gl_MSVC_INVAL instead of merely calling it. * modules/msvc-nothrow (Depends-on): Likewise for gl_MSVC_NOTHROW. 2016-01-01 Pádraig Brady tests: for compare_(), use cmp -s where available * tests/init.sh (compare_): Only fall back to cmp without the POSIX defined -s option, where this is not available. 2016-01-01 Paul Eggert version-etc: new year * build-aux/gendocs.sh (version): * doc/gendocs_template: * doc/gendocs_template_min: * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright dates by hand in templates and the like. * all files: Run 'make update-copyright'. 2015-12-31 Paul Eggert human: fix output buffer overrun by 1 * lib/human.c (human_readable): Fix off-by-one typo in buffer calculation that could lead to a one-byte buffer overrun. 2015-12-28 Daiki Ueno maint: fix operator precedence in mbrtowc test This is a fix for test breakage introduced by commit 45228d96; the equality expression must be parenthesized when negated with '!', otherwise we always get: test-mbrtowc.c:49: assertion 'ret == (size_t)(-2)' failed * m4/mbrtowc.m4 (gl_MBRTOWC_EMPTY_INPUT): Negate the entire expression. * m4/mbrlen.m4 (gl_MBRLEN_EMPTY_INPUT): Likewise. 2015-12-23 James Youngman regexprops-generic: update from regex.h * doc/regexprops-generic.texi: update by running the regexprops binary from findutils (the command line is 'regexprops "Regular Expressions" generic'). The recent (ish) change (5a5a9388) to regex.h aligning gnulib with GNU grep had made this document out-of-date. 2015-12-23 Pádraig Brady strftime-tests: avoid false failure on OS X * tests/test-strftime.c (struct localtime_rz_test): Add an ahistorical member which is used to warn rather than fail when tm_isdst isn't set for such entries. This is the case for "1970-01-01 13:00:00 +1300 (NZDT)" on Darwin 13/14 at least. 2015-12-20 Kamil Dudka fts: ensure leaf optimization is used for NFS NFS provides usable dirent.d_type but not necessarily for all entries of large directories. See * lib/fts.c (leaf_optimization_applies): Append NFS on the white list. 2015-12-20 Pádraig Brady fts: enable leaf optimization for XFS XFS provides usable dirent.d_type only for DT_DIR, but the noleaf optimization still applies. * lib/fts.c (leaf_optimization_applies): Add XFS to the white list. 2015-12-17 Paul Eggert intprops: comment fix * lib/intprops.h: Fix comment. Reported by Pádraig Brady in: http://lists.gnu.org/r/bug-gnulib/2015-12/msg00013.html intprops-test: work around GCC bug 68971 Problem reported by Pádraig Brady in: http://lists.gnu.org/r/bug-gnulib/2015-12/msg00011.html * tests/test-intprops.c: Ignore -Woverflow in GCC 6 and earlier. (main): Add a case that better tests 64-bit long in this area. 2015-12-09 Pavel Raiskup gnulib-tool: allow multiple --local-dir usage * gnulib-tool: Use --local-dir to construct compound $local_gnulib_path path instead of $local_gnulib_dir. Determine PATH_SEPARATOR early. (local_gnulib_dir): Rename into $local_gnulib_path everywhere. (func_gnulib_dir): Cut out PATH_SEPARATOR detection code into func_determine_path_separator because that needs to be detected earlier now. (func_determine_path_separator): New function. (func_path_foreach, func_path_foreach_inner): New functions. (func_path_prepend, func_path_append): Likewise. (func_lookup_local_file, func_lookup_local_file_cb): Likewise. (func_lookup_file, func_all_modules): Use new functions to work with local_gnulib_path. (func_modules_in_dir, func_exists_module): New callbacks for func_path_foreach. (func_exists_module, func_get_tests_module): Likewise. (func_is_local_file, func_should_symlink): New helper methods. (func_add_file, func_update_file): Use new func_should_symlink instead, DRY. (func_reconstruct_cached_local_gnulib_path): New helper. (func_reconstruct_cached_dir): New callback. (func_import): The cached_local_gnulib_dir renamed to cached_local_gnulib_path similarly to local_gnulib_dir. Use new func_reconstruct_cached_local_gnulib_path. (func_count_relative_local_gnulib_path): New sub-method. (func_create_testdir): Use func_should_symlink, DRY. (func_create_megatestdir): Use new functions to work with local_gnulib_path correctly. (func_append_local_dir): New helper. 2015-12-08 Pádraig Brady fix freadptr to work with ungetc on all uClibc configs Reported at https://bugs.busybox.net/show_bug.cgi?id=4099 where GNU coreutils cut(1) generates invalid output on uClibc when __UCLIBC_HAS_STDIO_GETC_MACRO__ is not defined. * lib/freadptr.c (freadptr): Return NULL if there are ungotten chars. In this case freadseek() will iterate again to process the ungotten character. 2015-11-13 Paul Eggert xalloc-oversized: improve performance with GCC 5 * lib/xalloc-oversized.h (xalloc_oversized): Improve performance with GCC 5 by using __builtin_mul_overflow. 2015-11-10 Paul Eggert intprops: new public macro EXPR_SIGNED Emacs can use this macro, so make it public. * doc/intprops.texi (Arithmetic Type Properties): Rename from 'Integer Type Determination', since some of these macros apply to non-integer types. Clarify what kinds of constant expressions these macros return. Say when the arguments can be non-integers. Mention newly published macro EXPR_SIGNED. * lib/intprops.h (EXPR_SIGNED): Rename from _GL_INT_SIGNED, to make it public. All uses changed. intprops: fix typo in clang port * lib/intprops.h (_GL_INT_OP_WRAPV): Fix misspelling of '__builtin_add_overflow' that is not caught by compiler. 2015-11-05 Paul Eggert test-timespec: fix typo in previous change * tests/test-timespec.c (main): Fix typo that reduced test quality. timespec-sub: fix overflow bug; add tests * lib/timespec-add.c (timespec_add): * lib/timespec-sub.c (timespec_sub): Work even if time_t is narrower than int (a theoretical possibility). Redo code for a bit more clarity. * lib/timespec-sub.c (timespec_sub): Fix off-by-2 bug if a.tv_sec == TYPE_MINIMUM (time_t) and 0 < b.tv_sec. * modules/timespec-tests, tests/test-timespec.c: New files. intprops-test: suppress -Woverlength-strings Problem reported by Pádraig Brady in: http://lists.gnu.org/r/bug-gnulib/2015-11/msg00008.html It is not worth the hassle to port this test to compilers that cannot handle long strings in diagnostics. * tests/test-intprops.c [__GNUC__]: Ignore -Woverlength-strings. 2015-11-03 Pádraig Brady quotearg: add quotearg_n_style_colon() This quotes with default options of the specified style, but with quoting enabled for instances of ':'. * lib/quotearg.h (quotearg_n_style_colon): Description and declaration. * lib/quotearg.c (quotearg_n_style_colon): New function implementation. 2015-11-04 Paul Eggert intprops: revise _WRAPV macros, revert _OVERFLOW The incompatible changes to the _OVERFLOW macros were too much of a hassle in practice, so revert them. Instead, change the new _WRAPV macros to make them closer in behavior to GCC 5's new builtin_add_overflow etc. functions. No other software was using these newly-added macros yet, so this should be OK. * NEWS: Revert previous change, since the incompatible change has been reverted, and nobody used the incompatible version. * doc/intprops.texi (Wraparound Arithmetic, Integer Type Overflow): Document revised behavior. (Integer Range Overflow): Adjust example to match above revisions. * lib/intprops.h (INT_ADD_OVERFLOW, INT_SUBTRACT_OVERFLOW) (INT_MULTIPLY_OVERFLOW): Revert previous change, so that these can be used in integer constant expressions again. (INT_CONST_ADD_OVERFLOW, INT_CONST_SUBTRACT_OVERFLOW) (INT_CONST_MULTIPLY_OVERFLOW): Remove, as these are no longer needed. (INT_CONST_ADD_WRAPV, INT_CONST_SUBTRACT_WRAPV) (INT_NEGATE_WRAPV, INT_CONST_MULTIPLY_WRAPV, INT_DIVIDE_WRAPV) (INT_REMAINDER_WRAPV, INT_LEFT_SHIFT_WRAPV): Remove, as they did not seem that useful. (INT_ADD_WRAPV, INT_SUBTRACT_WRAPV, INT_MULTIPLY_WRAPV) (_GL_INT_OP_WRAPV, _GL_INT_OP_WRAPV_LONGISH) (_GL_INT_OP_WRAPV_VIA_UNSIGNED): Support new semantics. (__has_builtin): New macro, if not alreay defined. (_GL__GENERIC_BOGUS, _GL_INT_OP_CALC, _GL_INT_OP_CALC1): New macros. * tests/test-intprops.c (INT_CONST_DIVIDE_OVERFLOW) (INT_CONST_REMAINDER_OVERFLOW, INT_CONST_LEFT_SHIFT_OVERFLOW) (INT_CONST_DIVIDE_WRAPV, INT_CONST_REMAINDER_WRAPV) (INT_CONST_LEFT_SHIFT_WRAPV): Remove. (CHECK_SBINOP, CHECK_SSUM, CHECK_SUM1, CHECK_SSUM1) (CHECK_SDIFFERENCE, CHECK_SPRODUCT, CHECK_PRODUCT1, CHECK_SPRODUCT1): New macros. (CHECK_BINOP, CHECK_UNOP, main, CHECK_SUM): Test new behavior. 2015-11-03 Jim Meyering intprops: add parentheses for when OP has precedence lower than "-" * lib/intprops.h (_GL_INT_OP_WRAPV_VIA_UNSIGNED): In "a OP b - c", "a OP b" must be parenthesized for when OP is like "<<", which has lower precedence than the following "-". Reported by Pádraig Brady. 2015-11-03 Pádraig Brady quotearg: constify get_quoting_style parameters * lib/quotearg.h (get_quoting_style): Mark parameter as const. * lib/quotearg.c (get_quoting_style): Likewise. 2015-11-02 Pádraig Brady quotearg: add support for $'' shell escaping * lib/quotearg.h: Add "shell-escape" and "shell-escape-always" items and descriptions. * lib/quotearg.c (quotearg_buffer_restyled): Add support for the above types by quoting like "shell", but using $'...' syntax for non printable characters, which should provide unambiguous printable output for any input. * tests/test-quotearg-simple.c: Update accordingly. 2015-11-02 Pádraig Brady maint: use a more standard return from mbrtowc test * m4/mbrtowc.m4 (gl_MBRTOWC_EMPTY_INPUT): Don't return 1 from the test program as this is non standard and often indicates an unhandled case in the test program. * m4/mbrlen.m4 (gl_MBRLEN_EMPTY_INPUT): Likewise. 2015-10-30 Paul Eggert intprops: add WRAPV and const flavors for GCC 5 If available, use GCC 5's builtin functions for efficient integer overflow checking. Also, add macros like INT_ADD_WRAPV efficently and safely compute the low-order bits of the correct answer. A downside of these efficient functions is that they cannot be used in constant expressions, so add macros like INT_CONST_ADD_OVERFLOW and INT_CONST_ADD_WRAPV that can be used even in constant expressions. * NEWS: Document the incompatible changes to INT_ADD_OVERFLOW etc. * doc/intprops.texi (Integer Properties, Integer Type Overflow): Document the changes. (Wraparound Arithmetic): New section. (Integer Range Overflow): Put this subsection last, since it's least useful. * lib/intprops.h (INT_CONST_ADD_OVERFLOW) (INT_CONST_SUBTRACT_OVERFLOW, INT_CONST_MULTIPLY_OVERFLOW): New macros, with the meaning that INT_ADD_OVERFLOW etc. used to have. (INT_CONST_ADD_WRAPV, INT_CONST_SUBTRACT_WRAPV) (INT_NEGATE_WRAPV, INT_CONST_MULTIPLY_WRAPV, INT_DIVIDE_WRAPV) (INT_REMAINDER_WRAPV, _GL_INT_OP_WRAPV, _GL_EXPR_CAST) (_GL_INT_OP_WRAPV_LONGISH, INT_ADD_WRAPV, INT_SUBTRACT_WRAPV) (INT_MULTIPLY_WRAPV, _GL_OP_OVERFLOW, _GL_OP_WRAPV, _GL_OP_WRAPV_GENSYM): New macros. (INT_ADD_OVERFLOW, INT_SUBTRACT_OVERFLOW, INT_MULTIPLY_OVERFLOW): Generate calls to GCC builtins if available, for speed. * tests/test-intprops.c (INT_CONST_DIVIDE_OVERFLOW) (INT_CONST_REMAINDER_OVERFLOW, INT_CONST_LEFT_SHIFT_OVERFLOW) (INT_CONST_DIVIDE_WRAPV, INT_CONST_REMAINDER_WRAPV) (INT_CONST_LEFT_SHIFT_WRAPV): New macros. (main, CHECK_BINOP, CHECK_UNOP, CHECK_SUM, CHECK_PRODUCT) (CHECK_QUOTIENT, CHECK_REMAINDER): Test WRAPV and CONST flavors (when available) too. 2015-10-30 Pádraig Brady doc: use extended timezone format in iso-8601 example * doc/parse-datetime.texi: The standard states that extended format is to be used consistently throughout. Note that lib/parse-datetime.y can handle either tz format. 2015-10-25 Paul Eggert stdalign: port to Sun C 5.9 * doc/posix-headers/stdalign.texi: Document this. * lib/stdalign.in.h (_Alignas): Sun C 5.9 also supports __attribute__ ((__aligned__ (...))). 2015-10-20 Paul Eggert time_rz: fix comment about tzalloc * lib/time_rz.c (tzalloc): Fix comment. 2015-10-18 Paul Eggert stdalign: work around pre-4.9 GCC x86 bug * lib/stdalign.in.h (_Alignof): Work around bug in pre-4.9 GCC on x86, when -std=gnu11 is used. Problem reported by Jim Meyering in: http://lists.gnu.org/r/bug-gnulib/2015-10/msg00038.html 2015-10-18 Pádraig Brady maint.mk: sc_tight_scope: remove extraneous expressions * top/maint.mk (tight_scope): This is not really required since commit 3ef58f46 as sed_wrap ensures we don't get an empty expression that matches all nm entries. But it does remove extraneous entries that may be confusing or cause issue in future maintenance. 2015-10-18 Paul Eggert time_rz: return NULL if localtime_r fails * lib/time_rz.c (localtime_rz): Return NULL if localtime_r fails, while still attempting to pacify bleeding-edge GCC. fts: port to C11 alignof * doc/posix-headers/stdalign.texi (stdalign.h): Document the C11 restriction. * lib/fts.c: Include stddef.h, for max_align_t. (fts_alloc): Align using max_align_t, not FTSENT. * modules/fts (Depends-on): Add stddef. 2015-10-18 Jim Meyering time_rz: avoid warning from bleeding-edge gcc's -Wnonnull Compiling with gcc version 6.0.0 20151017 (experimental) (GCC), I would see this: lib/time_rz.c: In function 'localtime_rz': lib/time_rz.c:292:15: error: nonnull argument 'tm' compared to NULL \ [-Werror=nonnull] if (tm && !save_abbr (tz, tm)) ^ That was complaining about "tm" because it is a parameter that was declared with the __nonnull__ attribute. * lib/time_rz.c (localtime_rz): Don't bother setting "tm" to the result of localtime_r. 2015-10-17 Jim Meyering maint.mk: _gl_TS_function_match: fix "extern" name extracting regexp * top/maint.mk (_gl_TS_function_match): This heuristic extern-function- name-extraction regexp mistakenly used \S+, and would mistakenly extract "*F" from "extern int *F()" rather than the desired "F". Use \w+ instead. 2015-10-17 Jim Meyering maint.mk: sc_tight_scope: factor and support OS X * top/maint.mk (_gl_tight_scope): Address three issues: - factor out four instances of code that wraps a string in "^...$" - allow nm-reported symbol names to have an optional leading "_" - add "main" to the list of ignored variable names, because on os x, "main" has nm-reported type "S" in the variable-checking section. 2015-10-16 Dmitry Smirnov safe-alloc-tests: fix typo in license header * tests/test-safe-alloc.c: Mention LGPL 2.1, not 3.1 2015-10-15 Simon Reinhardt copy-file: fix mem leak in error case * lib/copy-file.c (qcopy_file_preserving): Free the 32KiB buffer upon error opening or performing I/O to the src and dest files. 2015-10-15 Mike Frysinger localename: control langinfo.h inclusion This header is only used to work around buggy behavior in old versions of glibc, so do not include it all the time. Otherwise we get build failures on systems that do not provide langinfo.h. * lib/localename.c: Wrap langinfo.h include with same ifdefs used in the source later on. The patch was originally submitted to gettext as: https://lists.gnu.org/r/bug-gettext/2015-10/msg00011.html 2015-10-13 Paul Eggert binary-io, math, pthread, sys_socket, u64, unistd: port to strict C * lib/binary-io.c, lib/math.c, lib/pthread.c, lib/sys_socket.c: * lib/u64.c, lib/unistd.c: Append 'typedef int dummy;', to pacify compilers that are picky about empty translation units. 2015-10-12 Pino Toscano accept4-tests: fix to avoid non portable flags * tests/test-accept4.c (main): Pass only SOCK_* flags to accept4(), as they are the only documented ones, and passing others may trigger EINVAL (seen on FreeBSD 10.1-RELEASE). * doc/glibc-functions/accept4.texi: Mention that we don't provide the SOCK_CLOEXEC or SOCK_NONBLOCK defines. 2015-10-06 Pavel Raiskup gnulib-tool: fix tests of 'extensions' module This complements f8fe25fab60e3c687a124 commit. * gnulib-tool (func_emit_pre_early_macros): New function, it wraps emitting of initial gl_EARLY macros. (func_import, func_create_testdir): All dumps of gl_PROG_AR_RANLIB replaced with func_emit_pre_early_macros call. 2015-10-06 Paul Eggert unicase/locale-language: fix typo in utf-8 cookie * lib/unicase/locale-languages.gperf: Fix gperf input file format. Problem reported by Zbigniew Jędrzejewski-Szmek. 2015-10-02 Paul Eggert xalloc: do not worry about GCC 5 warning on 32 bit * lib/xalloc.h: Revert previous change. I found a better way to fix this in coreutils. 2015-10-02 Pádraig Brady xalloc: avoid GCC 5.1 warning on 32 bit * lib/xalloc.h: Disable -Wstrict-overflow for uses of xalloc_oversized(), which was seen to give this warning on GCC 5.1 on 32 bit: "assuming signed overflow does not occur when simplifying conditional". 2015-10-02 Daiki Ueno uniname/uniname-tests: avoid compiler warnings * tests/uniname/test-uninames.c (fill_names, fill_aliases): Remove unused local variables. (test_alias_lookup): Fix alias name display in failure cases. 2015-09-26 Paul Eggert c-ctype: do not worry about EBCDIC + char signed Drop support for EBCDIC with char being signed, as this breaks too many programs. Problem reported by Ben Pfaff in: http://lists.gnu.org/r/bug-gnulib/2015-09/msg00053.html * lib/c-ctype.h: Verify that we are not using EBCDIC with char being signed. (_C_CTYPE_LOWER_A_THRU_F_N): New macro. (_C_CTYPE_LOWER_N, _C_CTYPE_A_THRU_F): Use it. (_C_CTYPE_DIGIT, _C_CTYPE_LOWER, _C_CTYPE_PUNCT, _C_CTYPE_UPPER): (c_isascii, c_isgraph, c_isprint, c_ispunct, c_tolower, c_toupper): * tests/test-c-ctype.c (test_all): Simplify by assuming standard char values cannot be negative. * tests/test-c-ctype.c (NCHARS, to_char): Remove; all uses removed. 2015-09-25 Paul Eggert c-ctype: port better to z/OS EBCDIC Problems reported by Daniel Richard G. in: http://lists.gnu.org/r/bug-gnulib/2015-09/msg00050.html * lib/c-ctype.h (_C_CTYPE_CNTRL): Rewrite in terms of the C standard escapes and _C_CTYPE_OTHER_CNTRL. (_C_CTYPE_OTHER_CNTRL): New macro. * tests/test-c-ctype.c (test_all): Test from CHAR_MIN, not from SCHAR_MIN, as the functions are defined only from values promoted from char or from unsigned char, not necessarily from signed char. 2015-09-25 Pavel Raiskup gnulib-common.m4: fix gl_PROG_AR_RANLIB/AM_PROG_AR clash The gl_PROG_AR_RANLIB (it is always called by gl_EARLY) sets AR and ARFLAGS variables. Doing this unconditionally could break later Automake's AM_PROG_AR invocation (at least it's AC_CHECK_TOOLS call to detect correct 'ar' binary). Original purpose of the gl_PROG_AR_RANLIB was only to handle the Amsterdam Compiler Kit, so make the previous code to have effects only on ACK, and rather automatically call the Automake's AM_PROG_AR as soon as possible to decide other cases. References: http://lists.gnu.org/r/bug-gnulib/2015-07/msg00001.html * m4/gnulib-common.m4 (gl_PROG_AR_RANLIB): AC_BEFORE AM_PROG_AR. Set the AR/ARFLAGS to ACK defaults OR call AM_PROG_AR. If neither is possible, keep setting AR/ARFLAGS to reasonable defaults. * gnulib-tool (func_import): Put the gl_USE_SYSTEM_EXTENSIONS right before gl_PROG_AR_RANLIB into gnulib-comp.m4 (if the 'extensions' module is used. * modules/extensions (configure.ac-early): Remove as this snippet is added to gnulib-comp.m4 earlier anyway. 2015-09-25 Paul Eggert sockets: MS Windows initalization fixes Problem reported by Test User in: http://lists.gnu.org/r/help-shishi/2015-09/msg00001.html * lib/sockets.h (SOCKETS_1_0, SOCKETS_2_0, SOCKETS_2_1): Correct the endianness. * lib/sockets.c (gl_sockets_startup): Return 2 on any version number mismatch, not just on <. Cleanup before any such failure. 2015-09-25 Mats Erik Andersson gc: fix detection of installed libgcrypt version * m4/gc.m4: Use AM_PATH_LIBCRYPT to test for libcrypt versions at least as recent as 1.4.4. The previously used macro is not available now, since modules were removed in version 1.6.0. 2015-09-25 Paul Eggert c-ctype: rewrite to use inline functions This simplifies maintenance, since it makes for just one implementation of each function, letting the compiler have the fun of optimization. In practice this works well nowadays with GCC. E.g., c_isascii might need only three instructions even though the source code lists every ASCII character individually in a large switch statement. Also, fix some z/OS porting bugs reported by Daniel Richard G. in: http://lists.gnu.org/r/bug-gnulib/2015-09/msg00037.html * NEWS: Document the API change. * lib/c-ctype.c: Drastically simplify, since this now just expands inline functions. * lib/c-ctype.h: Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. (C_CTYPE_INLINE): New macro. (C_CTYPE_CONSECUTIVE_DIGITS, C_CTYPE_CONSECUTIVE_LOWERCASE) (C_CTYPE_CONSECUTIVE_UPPERCASE): Remove. Verify that either ASCII or EBCDIC is being used. (_C_CTYPE_SIGNED_EBCDIC, _C_CTYPE_CNTRL, _C_CTYPE_A_THRU_F_N) (_C_CTYPE_DIGIT_N, _C_CTYPE_LOWER_N, _C_CTYPE_UPPER_N) (_C_CTYPE_CASES, _C_CTYPE_A_THRU_F, _C_CTYPE_DIGIT, _C_CTYPE_LOWER) (_C_CTYPE_UPPER, _C_CTYPE_PUNCT_PLAIN): New private macros. (_C_CTYPE_CNTRL): In EBCDIC, '\x07' is a control, not '\xff'. (c_isalnum, c_isalpha, c_isascii, c_isblank, c_iscntrl, c_isdigit) (c_isgraph, c_islower, c_isprint, c_ispunct, c_isspace, c_isupper) (c_isxdigit, c_tolower, c_toupper): Now inline functions. (c_tolower, c_toupper): When converting, return the unsigned char, as that is what z/OS does. * lib/c-strcaseeq.h (CASEEQ): Simplify in the light of the removal of some c-ctype.h macros. * modules/c-ctype (Depends-on): Add extern-inline; remove verify. * tests/test-c-ctype.c (test_all): Fix test for c_toupper and c_tolower promotion to be compatible with z/OS. 2015-09-24 Pavel Raiskup gitlog-to-changelog: trim only trailing whitespaces This is fix for --format regression introduced by commit 2b93079a5d1baa4d; it caused that --format='%s%n%n%b%n' (see the doubled %n string) had no effect anymore. This format specification has been used e.g. by GNU paxuitils (commit edfd8bcc3). * build-aux/gitlog-to-changelog (main): Stop squashing multiple newlines in commmit messages. 2015-09-23 Paul Eggert Test that c_iscntrl agrees with iscntrl, etc. Suggested by Daniel Richard G. in: http://lists.gnu.org/r/bug-gnulib/2015-09/msg00034.html * modules/c-ctype-tests (Depends-on): Add ctype. * tests/test-c-ctype.c: Include . (NCHARS): New constant. (test_agree_with_C_locale): New function. (main): Use it. (test_all): Use named constants. c-ctype: improve c_isascii testing * tests/test-c-ctype.c (test_all): Port c_isascii test to EBCDIC. Add a test to count the number of ASCII characters. 2015-09-22 Paul Eggert savewd: remove SAVEWD_CHDIR_READABLE It was problematic in the light of file systems that ignore umask. Problem reported by Sebastian Unger in: http://bugs.gnu.org/21534 * NEWS: Document this. * lib/mkancesdirs.c (mkancesdirs): MAKE_DIR now returns 0 if successful, -1 (setting errno) on failure, rather than something more complicated than that. * lib/mkdir-p.c (make_dir_parents): Do not use SAVEWD_CHDIR_READABLE. * lib/savewd.c (savewd_chdir): Remove support for SAVEWD_CHDIR_READABLE. * lib/savewd.h (SAVEWD_CHDIR_READABLE): Remove. c-ctype: port better to EBCDIC Problems reported by Daniel Richard G. in http://lists.gnu.org/r/bug-gnulib/2015-09/msg00020.html * lib/c-ctype.c: Include , for CHAR_MIN and CHAR_MAX. Include "verify.h". (C_CTYPE_ASCII, C_CTYPE_CONSECUTIVE_DIGITS) (C_CTYPE_CONSECUTIVE_LOWERCASE, C_CTYPE_CONSECUTIVE_UPPERCASE): Define as enum constants with value false, if not defined, so that code can use 'if' instead of 'ifdef'. Using 'if' helps make the code more portable, as both branches of the 'if' are compiled on all platforms. (C_CTYPE_EBCDIC): New constant. Verify that the character set is either ASCII or EBCDIC. (to_char): New static function. (c_isascii, c_iscntrl): Assume standard control-character assignments for EBCDIC. (c_isalnum, c_isalpha, c_isdigit, c_islower, c_isgraph, c_isprint) (c_ispunct, c_isupper, c_isxdigit, c_tolower, c_toupper): Rewrite to use 'if' instead of 'ifdef'. Use to_char if non-ASCII. Prefer <= to >=. Prefer true and false to 1 and 0, for booleans. (c_iscntrl): Use 'if', not 'ifdef'. * modules/c-ctype (Depends-on): Add verify. * tests/test-c-ctype.c: Include , for CHAR_MIN (to_char): New function. (test_all): Port to EBCDIC. Add some more tests, e.g., for c_ispunct. 2015-09-21 Pádraig Brady nanosleep: fix return code for interrupted replacement * lib/nanosleep.c (nanosleep): In the replaced nanosleep, ensure that we return -1 in the case the call is interrupted by a signal, rather than the current value of 1. Diagnosed and tested by Daniel Richard G. 2015-09-19 Paul Eggert Diagnose ERE '()|\1' Problem reported by Hanno Böck in: http://bugs.gnu.org/21513 * lib/regcomp.c (parse_reg_exp): While parsing alternatives, keep track of the set of previously-completed subexpressions available before the first alternative, and restore this set just before parsing each subsequent alternative. This lets us diagnose the invalid back-reference in the ERE '()|\1'. regex: merge patches from libc 2015-09-08 Joseph Myers Move bits/libc-lock.h and bits/libc-lockP.h out of bits/ (bug 14912). * lib/regex_internal.h: Include instead of . 2015-06-09 Joseph Myers Fix regcomp wcscoll, wcscmp namespace (bug 18497). * lib/regcomp.c (build_range_exp): Call __wcscoll instead of wcscoll. * lib/regexec.c (check_node_accept_bytes): Likewise. 2015-06-05 Joseph Myers Fix regex wcrtomb namespace (bug 18496). * lib/regex_internal.c (build_wcs_upper_buffer): Call __wcrtomb instead of wcrtomb. 2015-06-05 Joseph Myers Fix regex wctype namespace (bug 18495). * lib/regcomp.c (re_compile_fastmap_iter): Call __towlower instead of towlower. * lib/regex_internal.c (build_wcs_upper_buffer): Call __iswlower instead of iswlower. Call __towupper instead of towupper. * lib/regex_internal.h (IS_WIDE_WORD_CHAR): Call __iswalnum instead of iswalnum. 2015-01-07 Chris Metcalf * lib/regcomp.c (parse_bracket_exp): Initialize type to COLL_SYM in a couple of places to avoid uninitialized variable wanings on tilegx gcc 4.8.2. 2014-11-24 Siddhesh Poyarekar * lib/regex_internal.h: Remove NOT_IN_libc. 2014-11-17 Andreas Schwab * lib/regex_internal.h: Don't include . 2014-09-11 Roland McGrath Move findidx nested functions to top-level. * lib/regcomp.c [_LIBC]: #include . (build_equiv_class) [_LIBC]: Don't #include it inside the function. Pass new arguments to findidx. * lib/regexec.c [RE_ENABLE_I18N] [_LIBC]: #include . [RE_ENABLE_I18N] (check_node_accept_bytes) [_LIBC]: Don't #include it inside the function. Pass new arguments to findidx. * lib/regex_internal.h: [!NOT_IN_libc] [_LIBC]: #include . (re_string_elem_size_at): Don't #include it inside the function. Pass new arguments to findidx. 2014-08-01 Siddhesh Poyarekar Check if DEBUG is defined in regex_internal.c * lib/regex_internal.c: Check if DEBUG is defined and is set. 2015-09-08 Assaf Gordon ceill: detect buggy OpenBSD implementation * m4/ceill.m4 (gl_FUNC_CEILL): Detect buggy openBSD implementation which returns zero for small values. Discussed here: http://lists.gnu.org/r/bug-gnulib/2015-08/msg00010.html 2015-09-08 Dave Chiluk mountlist: add me_mntroot field on Linux machines * lib/mountlist.c (read_file_system_list): Populate me_mntroot in mount_entry so Linux machines based on /proc/self/mountinfo can distinguish between bind mounts and original mounts. In reality bind mounts aren't treated differently than mountroot=/ mounts by the kernel, but the user often wants these bind mounts distinguished. * lib/mountlist.h (struct mount_entry): Add me_mntroot element. More details at https://pad.lv/1432871 2015-09-08 Christian Egli doc: Describe to use multiple instances of gnulib * doc/gnulib-tool.texi: Add a section to the manual outlining how two instances of gnulib with different modules can be used, for example one for a lib and another one for associated tools. 2015-09-01 Pádraig Brady base32: mark function as __attribute__ const * lib/base32.h (isbase32): Mark __attribute__ const as suggested by GCC, and consistent with the base64 module. 2015-08-20 Daiki Ueno gnulib-tool: don't transform binary files with sed * gnulib-tool (func_add_or_update): Don't apply sed_transform_* to .mo and .class files. Reported by Denis Denisov. 2015-08-10 Daiki Ueno gperf: respect silent rules * modules/gperf (Makefile.am): Define V_GPERF, V_GPERF_, and V_GPERF_0 for silent rules. * modules/iconv_open (Makefile.am): Use V_GPERF. * modules/unicase/locale-language (Makefile.am): Likewise. * modules/unicase/special-casing (Makefile.am): Likewise. * modules/unictype/category-byname (Makefile.am): Likewise. * modules/unictype/combining-class-byname (Makefile.am): Likewise. * modules/unictype/joininggroup-byname (Makefile.am): Likewise. * modules/unictype/joiningtype-byname (Makefile.am): Likewise. * modules/unictype/property-byname (Makefile.am): Likewise. * modules/unictype/scripts (Makefile.am): Likewise. * modules/uninorm/composition (Makefile.am): Likewise. 2015-08-03 Paul Eggert Improve port of stdalign to C++11 Problem reported by Sundaram in: http://lists.gnu.org/r/bug-gnulib/2015-08/msg00003.html * lib/stdalign.in.h (alignof, alignas): Don't define if C++11 or newer. (__alignas_is_defined): Define if C++11 or newer. 2015-08-01 Assaf Gordon (tiny change) pmccabe2html: fix gawk regex escaping * build-aux/pmccabe2html: Add one more backslash to properly escape the gsub replacement value. Fixes this error: gawk: ./build-aux/pmccabe2html:425: \ warning: escape sequence `\&' treated as plain `&' 2015-07-29 Paul Eggert time_rz: port to pedantic memcpy * lib/time_rz.c (tzalloc): Pacify pedantic memcpy implementations that reject memcpy (..., NULL, 0). 2015-07-27 Paul Eggert time_rz: port better to MinGW Don't change tzname, as this makes MinGW dump core (Bug#21020). Instead, store the tzname copy in the struct tm_zone object. Problem reported by Eli Zaretskii in: http://bugs.gnu.org/21020#48 * lib/strftime.c [!_LIBC]: * lib/time_rz.c: Include time-internal.h. * lib/strftime.c (strftime_case_) [!HAVE_TM_ZONE]: Infer the zone name from *TZ rather than from TZNAME, doable because *TZ now has a tzname_copy member. * lib/time-internal.h: New file, with contents taken from lib/time_rz.c. It's separate because strftime.c now accesses struct tm_zone members. (struct tm_zone) [HAVE_TZNAME && !HAVE_TM_ZONE]: New member tzname_copy. * lib/time_rz.c (struct tm_zone): Move to time-internal.h. (tzalloc) [HAVE_TZNAME && !HAVE_TM_ZONE]: Initialize tzname_copy member. (save_abbr) [HAVE_TZNAME && !HAVE_TM_ZONE]: Save abbreviation in tzname_copy member. (revert_tz) [HAVE_TZNAME]: Remove no-longer-needed tzname saving. (restore_tzname): Remove; no longer needed. All calls removed. * modules/time_rz (Files): Add lib/time-internal.h. time: port __need_time_t to MinGW * lib/time.in.h (__need_time_t): Do not treat specially on MinGW. Fix reported by Eli Zaretskii in: http://bugs.gnu.org/21020#36 2015-07-25 Paul Eggert strftime: fix newly-introduced bug on Solaris * lib/strftime.c (strftime_case_): Set the local variable 'zone' consistently at the start, rather than doing some of the setup at the start and some in the %Z format spec. This is cleaner, and works better with time_rz on platforms like Solaris where struct tm lacks a tm_zone member, as when !HAVE_TM_GMTOFF %z's calls to mktime_z and localtime_rz can mess up the tzname cache. test-strftime: test for Solaris bug * modules/strftime-tests (Depends-on): Add strerror. * tests/test-strftime.c: Include . (posixtm_test): New function, containing the old 'main'. (struct tzalloc_test, struct localtime_rz_test): New types. (TZ, LT): New static vars. (tzalloc_test): New function. (main): Rewrite in terms of posixtm_test and tzalloc_test. time_rz: port to Solaris etc. Works around a tzname problem on platforms like Solaris that have tzname but not tm_zone, by setting tzname at the appropriate time and restoring it later. * lib/time_rz.c (tzname_address, tzname_value) [HAVE_TZNAME]: New static vars. (save_abbr) [HAVE_TZNAME]: Set them. (revert_tz) [HAVE_TZNAME]: Clear or use them. (restore_tzname): New function. (localtime_rz, mktime_z): Use it. time_rz: now LGPL * modules/time_rz (License): Now LGPL, because strftime depends on it. time_rz: make a constant 'const' * lib/time_rz.c (local_tz): Now const. time_rz: fix off-by-one typo * lib/time_rz.c (extend_abbrs): Fix off-by-one typo. 2015-07-23 Paul Eggert fprintftime, strftime: use timezone_t args * NEWS: Document the change. * lib/fprintftime.h (fprintftime): * lib/strftime.c (extra_args) [my_strftime]: * lib/strftime.h (nstrftime): Time zone arg is now of type timezone_t, not int. * lib/strftime.c (mktime_z) [_LIBC]: New macro. (__gmtime_r, __localtime_r) [!HAVE_TM_GMTOFF]: Remove; no longer used. (my_strftime) [emacs && !my_strftime]: (emacs_strftimeu) [emacs && !FPRINTFTIME]: Remove; Emacs doesn't need this any more. (HAVE_TZSET) [my_strftime]: Unset, since we no longer want fprintftime and nstrftime to call tzset. (ut) [!my_strftime]: Remove, replacing with ... (tz) [!my_stftime]: ... this new macro. All uses changed. (strftime_case_): Use localtime_rz and mktime_z instead of localtime_r and mktime. * modules/fprintftime (Depends-on): Add time_rz. * modules/strftime (Depends-on): Add time_rz. Remove time_r. * tests/test-strftime.c (main): Adjust to new nstrftime API. time_rz: new module * MODULES.html.sh: Add time_rz. * lib/time_rz.c, m4/time_rz.m4, modules/time_rz: New files. * lib/time.in.h (timezone_t, tzalloc, tzfree, localtime_rz, mktime_z): New decls if _GNU_SOURCE && @GNULIB_TIME_RZ@ && ! @HAVE_TIMEZONE_T@. * m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_DEFAULTS): New var HAVE_TIMEZONE_T (default 0). * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): New var GNULIB_TIME_RZ (default 0). * modules/time (time.h): Substitute the new vars. flexmember: license is now unlimited * modules/flexmember (License): Change to unlimited, since its only source file gives an unlimited license. 2015-07-15 Eric Blake maint: update copyright paper procedures * config/srclist.txt: Drop outdated files. * doc/Copyright/conditions.txt: Update to latest. * doc/Copyright/assign.changes.manual: Delete. * doc/Copyright/assign.future.manual: Likewise. * doc/Copyright/assign.manual: Likewise. * doc/Copyright/assign.translation.manual: Likewise. * doc/Copyright/disclaim.changes.manual: Likewise. * doc/Copyright/disclaim.manual: Likewise. * doc/Copyright/disclaim.program: Likewise. 2015-07-07 Daiki Ueno localename: fix link error on Illumos Illumos defines __sun, but does not have getlocalename_l nor the equivalent. This partially reverts commit 387c214. * m4/localename.m4 (gl_LOCALENAME): Check if getlocalename_l is available, as well as uselocale. * lib/localename.c [HAVE_USELOCALE && __sun]: Don't fallback to use getlocalename_l if it is not available. 2015-07-07 Daiki Ueno unistr/uN-strtok-tests: avoid a trivial leak * tests/unistr/test-u-strtok.h (test_u_strtok): Untabify. Free input and delim after the multibyte delimiter tests. 2015-07-04 Paul Eggert file-has-acl, acl-permissions: fix HP-UX typos Problem reported by John David Anglin in: http://bugs.gnu.org/20979 * lib/file-has-acl.c (file_has_acl): * lib/set-permissions.c (context_acl_from_mode) (context_aclv_from_mode, set_acls): Fix some obvious typos when HAVE_GETCL /* HP-UX */. They were introduced by the recent ACL changes. regex: match current GNU grep behavior These symbols have not matched GNU grep behavior for quite some time. Fix prompted by Balazs Kezes bug report at: http://bugs.gnu.org/20974 * lib/regex.h (RE_SYNTAX_GREP, RE_SYNTAX_EGREP): Change to match current GNU behavior. Simplify by expressing it as differences from POSIX BREs and EREs. (RE_SYNTAX_POSIX_EGREP): No longer differs from GNU behavior. 2015-07-03 Jim Meyering set-permissions.c: adjust acl_from_mode's cpp guard * lib/set-permissions.c (acl_from_mode): Guard with #ifdef directives identical to those guarding the sole use. Otherwise, on some systems, we'd get a warning about the function being defined but not used. Also, filter through cppi to correct misleading indentation of cpp directives. 2015-07-03 Pádraig Brady tests: restrict shells to those that support 'local' The local keyword is very widely supported and used in tests in coreutils and grep at least. Therefore restrict to testing with shells that support it. This mainly excludes /bin/sh on Solaris. * tests/init.sh (gl_shell_test_script_): Add a test for 'local'. 2015-07-03 Seiya Kawashima (tiny change) and Daiki Ueno unistr/uN-strtok: handle multibyte delimiters Previously, uN_strtok moved PTR to the next unit to the token end. When DELIM contained a multibyte character, the new position could be a middle of a multibyte character. * lib/unistr/u-strtok.h (FUNC): Place PTR at the next character after the token. * lib/unistr/u8-strtok.c (U_STRMBLEN): New macro. * lib/unistr/u16-strtok.c (U_STRMBLEN): New macro. * lib/unistr/u32-strtok.c (U_STRMBLEN): New macro. * modules/unistr/u8-strtok (Depends-on): Depend on unistr/u8-strmblen. * modules/unistr/u16-strtok (Depends-on): Depend on unistr/u16-strmblen. * modules/unistr/u32-strtok (Depends-on): Depend on unistr/u32-strmblen. * tests/unistr/test-u-strtok.h: New file. * tests/unistr/test-u8-strtok.c: New file. * tests/unistr/test-u16-strtok.c: New file. * tests/unistr/test-u32-strtok.c: New file. * modules/unistr/u8-strtok-tests: New file. * modules/unistr/u32-strtok-tests: New file. * modules/unistr/u16-strtok-tests: New file. 2015-07-02 Friedrich Haubensak update-copyright: fix test failure with perl >= 5.22 (trivial) * build-aux/update-copyright: Escape a literal left curly bracket, required with perl >= 5.22 2015-07-02 Daiki Ueno u{16,32}-strstr-tests: relax timeout condition On slower platforms (e.g., Solaris 10/SPARC), u{16,32}-strstr tests can take longer than 5 seconds to complete. Reported by Dagobert Michelsen in: https://lists.gnu.org/r/bug-libunistring/2015-06/msg00006.html * tests/unistr/test-u16-strstr.c (main): Increase timeout from 5 seconds to 10 seconds. * tests/unistr/test-u32-strstr.c (main): Likewise. 2015-07-01 Pavel Raiskup gnulib-common.m4: change the ARFLAGS default to 'cr' In some GNU/Linux distributions people started to compile 'ar' binary with --enable-deterministic-archives (binutils project). That, however, in combination with previous autotools long time working default AR{_,}FLAGS=cru causes warnings on such installations: ar: `u' modifier ignored since `D' is the default (see `U') * m4/gnulib-common.m4 (gl_PROG_AR_RANLIB): Set ARFLAGS='cr' if not set already. 2015-07-01 Pavel Raiskup selinux-h: avoid double free after *getfilecon() Originally reported by Ben Shelton on bug-tar: http://lists.gnu.org/r/bug-tar/2015-04/msg00009.html * lib/getfilecon.c (map_to_failure): Set the already freed '*con' pointer to NULL. Man getfilecon(3) says that any non-NULL '*con' param should be freed by freecon(3) (regardless the return value). 2015-07-01 Pavel Fedin fix pty related tests issues on Windows (trivial) * lib/grantpt.c (grantpt): grantpt.c seems to be never used on Windows, however it's still present in tests/ subdirectory of the final project. Therefore avoid it to pass `make check`. * tests/test-openpty.c (main): Windows has no PTYs and gnulib's openpty() will just return -ENOSYS, so avoid this non applicable test allowing the build to proceed. 2015-07-01 Pádraig Brady acl: fix definition of acl_from_mode on FreeBSD This was causing basic coreutils copy operations to fail with ENOTSUP or ENOENT error messages. * lib/acl-internal.h (acl_from_mode): Only define when ! defined HAVE_ACL_FROM_TEXT. That allows the version of acl_from_mode() defined in lib/set-permissions.c to be used on FreeBSD at least. * lib/set-permissions.c: Fix up comment spelling, and a redundant variable assignment; noticed in passing. 2015-06-30 Pádraig Brady readutmp: port to FreeBSD >= 9 * lib/readutmp.h: Map utmpxname() to setutxdb(). With that coreutils who(1) and pinky(1) tests pass. 2015-06-30 Paul Eggert mgetgroups: port to strict OS X The previous fix wasn't working, so use a bigger hammer (Bug#20923). * lib/mgetgroups.c: Ignore -Wpointer-sign diagnostics. (getgrouplist_gids) [HAVE_GETGROUPLIST]: Remove. All uses removed. * m4/mgetgroups.m4 (gl_MGETGROUPS): Revert recent changes. 2015-06-29 Paul Eggert mgetgroups: port to strict OS X * doc/glibc-functions/getgrouplist.texi (getgrouplist): Document the getgrouplist problem. * lib/mgetgroups.c (getgrouplist_gids) [HAVE_GETGROUPLIST]: New macro. (mgetgroups): Use it. * m4/mgetgroups.m4 (gl_MGETGROUPS): Check for OS X signature for getgrouplist. 2015-06-29 Jim Meyering linkat: fix invalid definition of LINKAT_SYMLINK_NOTSUP on OS X It started like this when building coreutils' latest on OS X, invoking ./configure with a nonempty --cache=.cache: lib/linkat.c:46:42: error: operator '||' has no right operand lib/linkat.c: In function 'rpl_linkat': lib/linkat.c:330:27: error: #if with no expression Here's linkat.c's line 46: #if !HAVE_LINKAT || LINKAT_SYMLINK_NOTSUP Here's some context: $ grep linkat_nofoll .cache gl_cv_func_linkat_nofollow=${gl_cv_func_linkat_nofollow=no} $ grep LINKAT_SYM lib/config.h #define LINKAT_SYMLINK_NOTSUP The problem is that m4/linkat.m4's gl_FUNC_LINKAT uses AC_CACHE_CHECK to set LINKAT_SYMLINK_NOTSUP, but that violates a tenet of AC_CACHE_CHECK: it must have no side effect other than setting its cache variable. What happens is that when the cache is set, we'd skip the code in that AC_CACHE_CHECK call, and leave LINKAT_SYMLINK_NOTSUP defined to whatever value it happened to have in configure's environment. In my case, it was not defined, so this later code: AC_DEFINE_UNQUOTED([LINKAT_SYMLINK_NOTSUP], [$LINKAT_SYMLINK_NOTSUP], [Define to 1 if linkat can create hardlinks to symlinks]) would emit code with an empty RHS. * m4/linkat.m4 (gl_FUNC_LINKAT): Move the setting of $LINKAT_SYMLINK_NOTSUP out of the AC_CACHE_CHECK code block. 2015-06-28 Jim Meyering mountlist: avoid an unused-label warning on OS X * lib/mountlist.c (read_file_system_list) [MOUNTED_GETMNTINFO]: Building on OS X, I saw a warning about the "free_then_fail" label being unused. Give it the _GL_UNUSED_LABEL attribute. error.c: correct printf-style format: %d -> %u * lib/error.c (error_at_line): Correct __fxprintf format to use %u, rather than %d, to match the type of "line_number", unsigned int. 2015-06-25 Pádraig Brady fts: avoid reading beyond the heap allocation GCC 5.1.1 with -O2 and -fsanitize=address reports a read of size 4 from a heap object of size 3 is indeed invalid, though this may be due to incorrect padding assumptions by GCC, see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66661 * lib/fts.c (fts_alloc): Increase allocation to alignof(FTSENT). * modules/fts: Depend on stdalign. 2015-06-24 Pádraig Brady savedir: avoid undefined behavior in qsort call GCC 5.1.1 -fsanitize=undefined with glibc 2.21 is returning: "runtime error: null pointer passed as argument 1, which is declared to never be null" * lib/savedir.c (streamsavedir): Avoid the call with no entries. 2015-06-24 Pádraig Brady userspec: avoid undefined behavior in gettext call GCC 5.1.1 -fsanitize=undefined with glibc 2.21 is returning: "runtime error: null pointer passed as argument 2, which is declared to never be null" * lib/userspec.c (parse_with_separator): Avoid passing NULL to gettext() 2015-06-20 Glenn Morris gitlog-to-changelog: improve gitmerge.el commits Let the Emacs ChangeLog generation process exclude "skipped" messages from merge commits (Bug#20717). * build-aux/gitlog-to-changelog: Handle gitmerge.el skipped commits. 2015-06-20 Paul Eggert wchar: fix MinGW compilation warnings This lets Texinfo compile cleanly. See Eli Zaretskii in: http://lists.gnu.org/r/bug-gnulib/2015-06/msg00050.html * lib/wchar.in.h: Do not use special invocation convention on MinGW. 2015-06-20 Daiki Ueno uniname/uniname-tests: use pristine data files For copyright and maintenance reasons, use the data files from UCD without modification. * tests/uniname/test-uninames.c (FIELDLEN): Remove. (getfield): Remove. (aliases_count): New global variable. (fill_names): Skip comments and empty lines in the input. Don't use getfield. (fill_aliases): Likewise. (main): Change the expected command line arguments to: NAMES... ["--" ALIASES...]. * tests/uniname/test-uninames.sh: Adjust to the change in test-uninames.c. * tests/uniname/UnicodeDataNames.txt: Remove. * tests/uniname/UnicodeData.txt: New file, from Unicode 8.0.0. * tests/uniname/NameAliases.txt: Use the pristine copy of the data file from Unicode 8.0.0. 2015-06-19 Pádraig Brady linked-list, linkedhash-list: avoid compiler warnings * lib/gl_anytree_list2.h: Add _GL_ATTRIBUTE_PURE to avoid -Werror=suggest-attribute=pure (from GCC 5.1.1). 2015-06-19 Daiki Ueno libunistring: bump minimum version to 0.9.6 * all modules depending on updated Unicode data: Regenerate. The modules are listed by a script that does: - for each file listed by: git show --oneline --name-only 705f4efc - deduce the containing modules, based on "Files:" - deduce the modules which depend on the containing modules, based on "Depends-on:" 2015-06-18 Daiki Ueno uniname/uniname: update to Unicode 8.0.0 * lib/uniname/uninames.h: Regenerate. * tests/uniname/NameAliases.txt: Update from Unicode 8.0.0. * tests/uniname/UnicodeDataNames.txt: Update from Unicode 8.0.0. 2015-06-18 Daiki Ueno libunistring: update to Unicode 8.0.0 * lib/gen-uni-tables.c (SIZEOF): New macro. (output_numeric): Increase the maximum number of fractions from 128 to 160. Increase the level3 value width from 7 bits to 8 bits. Use SIZEOF instead of a hard-coded integer. (output_blocks): Decrease the cut-off threshold from 0x30000 to 0x28000. (fill_blocks): Increase the maximum number of blocks from 256 to 384. Use SIZEOF instead of a hard-coded integer. (get_lbp): Adjust to new characters added in Unicode 8.0.0. * lib/unictype/numeric.c (uc_numeric_value): Adjust the level3 value width. * lib/unilbrk/lbrktables.c (unilbrk_table): Implement LBP21b and a new case added to LBP22. * lib/uniwidth/width.c (nonspacing_table_data): Add U+08E3, U+A69E, U+FE2E..U+FE2F, U+111CA..U+111CC, U+11300, U+115DC..U+115DD, U+1171D..U+1171F, U+11722..U+11725, U+11727..U+1172B, U+1DA00..U+1DA36, U+1DA3B..U+1DA6C, U+1DA75, U+1DA84, U+1DA9B..U+1DA9F, and U+1DAA1..U+1DAAF. * tests/uniwidth/test-uc_width2.sh: Same updates as in lib/uniwidth/width.c. * all generated files under lib/uni* and tests/uni*: Regenerate. 2015-06-16 Pádraig Brady gnu-web-doc-update: add --mirror to remove stale files * build-aux/gnu-web-doc-update: Add a --mirror option to remove out of date files from the CVS server. Since this is usually appropriate, a prompt is given when the option is not specified, along with the `cvs remove` command that would be run. 2015-06-06 Paul Eggert acl-permissions: pacify -Wsuggest-attribute=const Problem reported by Masanari Iida in: http://bugs.gnu.org/20753 * lib/acl-internal.h (free_permission_context): Declare with attribute const if ! (defined USE_ACL && (HAVE_ACL_GET_FILE || defined GETACL)). fsync: document AIX misbehavior * doc/posix-functions/fsync.texi (fsync): Document failure on AIX with read-only file descriptor. 2015-06-05 Jonathan Perkin (tiny change) stdio: Don't redefine gets when using C++ * lib/stdio.in.h (gets): Disable warning on C++. 2015-06-05 Paul Eggert acl-permissions: port to AIX, C89 HP-UX Problems reported by Michael Felt. * lib/file-has-acl.c (file_has_acl) [HAVE_STATACL]: * lib/get-permissions.c (get_permissions) [USE_ACL && HAVE_STATACL]: * lib/readutmp.c (read_utmp) [UTMP_NAME_FUNCTION]: * lib/set-permissions.c (set_acls) [HAVE_ACLX_GET && ACL_AIX_WIP]: Add cast for AIX, whose system calls are declared to accept char * even though the arguments are really char const *. * lib/get-permissions.c (get_permissions): If USE_ACL && HAVE_GETACL /* HP-UX */, don't assume C99. If USE_ACL && HAVE_STATACL /* older AIX */, add missing decl that broke a build. * lib/mountlist.c (read_file_system_list) [MOUNTED_VMOUNT]: Rework types to pacify xlc. 2015-06-03 Pádraig Brady vasprintf-posix: avoid compiling vasnprintf where possible * modules/vasprintf-posix: Avoid compiling the large vasnprintf module where not required. For example on a GNU/Linux system when gnulib-tool is run with the --conditional-dependencies option. 2015-06-02 Pádraig Brady file-has-acl: fix build on Mac OS X 10 This reverts commit f1b37e3a which doesn't work on Mac OS X >= 10.4 which has an incompatible 6 parameter getxattr() call. * doc/glibc-functions/getxattr.texi: Mention the divergent getxattr() call on Mac OS X >= 10.4. * doc/glibc-functions/fgetxattr.texi: Likewise. * lib/file-has-acl.c: Revert to more complete combined check. * m4/acl.m4 (gl_FILE_HAS_ACL): Likewise. Reported by Jack Howarth. 2015-06-02 Pádraig Brady prefix-gnulib-mk: remove no longer needed special case * build-aux/prefix-gnulib-mk (prefix): Since commit e3704b9c, continued lib_SOURCES lines are no longer present, so special case handling of such entries is not required. 2015-06-01 Pádraig Brady acl: don't depend on the deprecated qacl module * modules/acl (Depends-on): Use q{copy,set}-acl instead. 2015-06-01 Pádraig Brady gnulib-tool: concatenate lib_SOURCES to a single line * gnulib-tool: Refactor the line merging sed logic, and use that to output a single lib_SOURCES line for each module. gnulib using projects often postprocess this output to prepend subdir paths to each item, and having a single line simplifies this processing allowing better decoupling from the gnulib-tool output. 2015-06-01 Pavel Fedin pthread_sigmask: discount system version if a simple macro (trivial) MinGW64 has: #define pthread_sigmask(H, S1, S2) 0 * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Call the function to ensure it's available. 2015-05-31 Pádraig Brady readlinkat: avoid OS X 10.10 trailing slash bug * doc/posix-functions/readlink.texi: Mention that OS X 10.10 has this bug. * doc/posix-functions/readlinkat.texi: Likewise. Also mention that OS X 10.10 has this function. * lib/readlinkat.c (rpl_readlinkat): Handle the trailing slash bug, as done for readlink(). * m4/readlinkat.m4 (gl_FUNC_READLINKAT): Check for the readlink() trailing slash bug, and assume readlinkat() has the same issue. Also fix a typo where $gl_cv_decl_readlink_works was tested, rather than the correct $gl_cv_decl_readlinkat_works. 2015-05-29 Andreas Gruenbacher acl-permissions: Fix build on Mac OS X and older AIX (Bug#20681) * lib/set-permissions.c (set_acls): Fix more errors introduced in the acl module rewrite. acl-permissions: Fix build on Solaris and Cygwin Reported by Tom G. Christensen : * lib/set-permissions.c (set_acls): The count, entries, ace_count, and ace_entries variables have moved into struct permission_context but they were still accessed as local variables here. 2015-05-29 Pádraig Brady linkat: avoid OS X 10.10 trailing slash with symlink bug On Darwin 14.3.0 linkat(,"path1",,"dangling_symlink/",) causes the symlink to be dereferenced, and if it points to a non existent file, that file will be created as a hard link to "path1". This fixes a test failure in test-linkat.c. * m4/linkat.m4 (gl_FUNC_LINKAT): Augment the test with this case. The existing workaround in linkat.c for trailing slash issues, suffices for this case. * doc/posix-functions/linkat.texi: Add OS X 10.10 to the list of platforms with trailing slash issues. 2015-05-28 Pádraig Brady unlinkat: handle ignoring of ".." on Darwin 14 * lib/unlinkat.c: unlinkat() has the same bug as unlink() on Mac OS X 10.10, where it ignores paths with a trailing "..", so handle in the same manner. * m4/unlinkat.m4: Comment on this Darwin issue. * doc/posix-functions/unlink.texi: Update the latest version where the issue was seen. * doc/posix-functions/unlinkat.texi: Mention this issue. Fixes a test failure in test-unlinkat.c. 2015-05-27 Paul Eggert qacl: split into qcopy-acl and qset-acl Emacs needs the former, but not the latter. * modules/acl-permissions: New file, containing most of the old qacl. * modules/file-has-acl (Depends-on): Depend on acl-permissions, not qacl. * modules/qacl: Now merely depends on qcopy-acl and qset-acl. * modules/qcopy-acl, modules/qset-acl: New files. * MODULES.html.sh (File system functions): Mention the new modules, and mention qacl while we're at it. 2015-05-27 Glenn Morris gitlog-to-changelog: new option --ignore-line (This patch is imported from the GNU Emacs master.) This option ignores individual commit lines matching a pattern. * build-aux/gitlog-to-changelog: Add --ignore-line option. 2015-05-27 Andreas Gruenbacher qacl: Reimplement qset_acl and qcopy_acl (Bug#20666) Implement get_permissions and set_permissions primitives for getting all the permissions of a file, storing them, and later setting them. (In the minimal case, the permissions consist only of a file mode.) Reimplement qset_acl and qcopy_acl based on these new primitives: this avoids code duplication and makes error handling more consistent. The Solaris and Cygwin code still uses duplicate code paths for setting a file mode while making sure that no acls exist and setting an explicit acl; this is no worse than before, but could be cleaned up. The AIX code still doesn't read ACLs, it only makes sure that acls don't get in the way when setting a file mode. * lib/acl-internal.h (struct permission_context): New data structure. (get_permissions, set_permissions, free_permission_context): Declare. * lib/acl-internal.c (free_permission_context): New helper function. * lib/get-permissions.c (get_permissions): New helper function split off from qcopy_acl. * lib/set-permissions.c: (set_acls_from_mode): On Solaris, Cygwin, and AIX, set a file's permissions based only on a file mode. (acl_from_mode, context_acl_from_mode, context_aclv_from_mode): All other platforms construct a temporary acl from the file mode and set that acl in the same way as setting an acl read from the source file. This should help avoid code duplication and inconsistent / buggy behavior. (set_acls): New helper function Split off from qcopy_acl. (chmod_or_fchmod): Moved here from qset-acl.c. (set_permissions): New helper function. * lib/qcopy-acl.c (qcopy_acl): Rewrite using get_permissions and set_permissions. * lib/qset-acl.c (qset_acl): Rewrite using set_permissions. * modules/qacl: Add get-permissions.c and set-permissions.c. file-has-acl: Split feature tests again (Bug#20667) * lib/file-has-acl.c: Instead of testing for XATTR_NAME_POSIX_ACL_ACCESS and XATTR_NAME_POSIX_ACL_DEFAULT, define them when needed. * m4/acl.m4 (gl_FILE_HAS_ACL): With that, Paul's GETXATTR_WITH_POSIX_ACLS change shouldn't be needed anymore. 2015-05-27 Pádraig Brady string: fix build failure on BSD/OSX with FORTIFY_SOURCE This avoids a conflict with "FORTIFY_SOURCE" variants of the string functions when they're replaced on NetBSD-6.0.1 and Darwin-14.3.0 at least. * lib/string.in.h: Avoid including our "lib/string.h" while including the system . 2015-05-26 Eric Blake stdio: limit __gnu_printf__ witness to gcc 4.4+ * lib/error.h (_GL_ATTRIBUTE_SPEC_PRINTF): Move gcc version probe... * m4/stdio_h.m4 (gl_STDIO_H): ...here. error: use correct printf attributes on mingw * lib/stdio.in.h (_GL_ATTRIBUTE_SPEC_PRINTF): New define. inttypes: force correct mingw PRIdMAX even without * modules/inttypes (Depends-on): Require extensions, so that mingw always uses GNU style inttypes. * lib/inttypes.in.h: On mingw, include . stdio: fix probe on mingw under gcc 5.1 * m4/stdio_h.m4 (gl_STDIO_H): Change to compile test, to work around new gcc preprocessor rules. 2015-05-07 Glenn Morris gitlog-to-changelog: parse "Tiny-change" * build-aux/gitlog-to-changelog: Treat "Tiny-change" like "Copyright-paperwork-exempt". (Bug#20324) 2015-05-06 Pádraig Brady doc: document glibc posix_fallocate() issues * doc/posix-functions/posix_fallocate.texi: Mention the glibc efficiency problems and issues with NFS. 2015-05-05 Karl Berry * build-aux/gendocs.sh (usage): document new css default for HTML (--htmlarg). 2015-04-29 Paul Eggert extern-inline: no need for workaround in GCC 5.1 * doc/extern-inline.texi (extern inline): * m4/extern-inline.m4 (gl_EXTERN_INLINE): GCC bugs 54113 and 63877 are fixed in GCC 5.1, so don't work around these bugs in GCC 5.1 and later. Maybe in a decade or two we can remove these workarounds. 2015-04-28 Pádraig Brady eealloc, pagealign_alloc, xalloc: avoid clang warnings Avoid [-Wunknown-attributes] warnings like: warning: unknown attribute '__alloc_size__' ignored * lib/xalloc.h: Don't use the __alloc_size__ attribute with clang, as support has been fully removed as of clang 3.5: https://github.com/llvm-mirror/clang/commit/c047507a * lib/eealloc.h: Likewise. * lib/pagealign_alloc.h: Likewise. 2015-04-27 Paul Eggert tests: pacify GCC 5.1's stricter printf checking * tests/test-dirname.c (main): * tests/test-getaddrinfo.c (simple): * tests/test-getlogin.c (main): * tests/test-getndelim2.c (main): * tests/test-inttostr.c (CK): * tests/test-md5.c (main): * tests/test-read-file.c (main): * tests/test-sha1.c (main): Fix mismatches between printf format and value signedness. * tests/test-inttostr.c (FMT, CAST_VAL, V_min, V_max): Remove, as CAST_VAL always returned a value of type uintmax_t. fts: port to GCC 5.1 with --enable-gcc-warnings Without this fix, GCC 5.1 (correctly) warns about a subscript error on the fts_name component of FTSENT. It's actually a flexible member, so define it that way on C99 or later hosts. * lib/fts.c (fts_alloc): Use offsetof, not sizeof, for a structure that now has a flexible array member. * lib/fts_.h (__FLEXIBLE_ARRAY_MEMBER): New macro. (FTSENT): fts_name is now flexible on C99-or-later platforms. * modules/fts (Depends-on): Add flexmember. 2015-04-26 Paul Eggert file-has-acl: port to CentOS 6 Problem reported by Tom G. Christensen in: http://lists.gnu.org/r/bug-gnulib/2015-04/msg00074.html * lib/file-has-acl.c: Use GETXATTR_WITH_POSIX_ACLS instead of a combination of HAVE_SYS_XATTR_H, HAVE_LINUX_XATTR_H, and HAVE_GETXATTR. * m4/acl.m4 (gl_FILE_HAS_ACL): Test fot the entire combination of linux/xattr.h, sys/xattr.h, getxattr, XATTR_NAME_POSIX_ACL_ACCESS, and XATTR_NAME_POSIX_ACL_DEFAULT, since that's what file-has-acl.c actually needs. 2015-04-26 Pádraig Brady file-has-acl: always return false when ACLs aren't supported * lib/file-has-acl.c (file_has_acl): Consistent with other paths, change the GNU/Linux getxattr path, to transform "not supported" errors to a false return rather than an error. This is handled within file_has_acl() due to the platform specific tests to determine if ACLs are not supported. 2015-04-25 Paul Eggert gettext: propagate po/Makefile.in.in too * build-aux/po/Makefile.in.in: Copy from latest gettext. * config/srclist.txt: In build-aux/po, copy Makefile.in.in and remove-potcdate.sin from $GETTEXT. This fixes a version mismatch between Makefile.in.in and the gettext-runtime m4 files. 2015-04-24 Paul Eggert file-has-acl: new module, split from acl And add a new module file-has-acl-tests to match. I ran into a problem with the recent changes to the acl module, as they introduced a typo 'test use_xattrs = 0' into 'configure'. When using the fixed version with Emacs, I discovered that file-has-acl wasn't separated out well enough for Emacs (e.g., it had multiple libraries, but needed only one), so I fixed that too. * NEWS: Document this incompatible change. * modules/file-has-acl, modules/file-has-acl-tests: New files. * m4/acl.m4 (gl_FUNC_ACL_ARG): New macro, split from gl_FUNC_ACL. Initialize gl_need_lib_has_acl. (gl_FUNC_ACL): Require it. Simplify use of 'test'. Set LIB_HAS_ACL if gl_need_lib_has_acl. Move the file-has-acl.c-relevant stuff to ... (gl_FILE_HAS_ACL): ... this new macro. Rewrite to fix 'test use_xattrs = 0' typo, and omit some needless work. Set gl_need_lib_has_acl=1 if we'll need LIB_HAS_ACL to be set when gl_FUNC_ACL is called. * modules/acl (Files, lib_SOURCES): Remove lib/file-has-acl.c. (Link): Remove $(LIB_HAS_ACL). * modules/acl-tests (Files, Depends-on, configure.ac, TESTS) (check_PROGRAMS): Move stuff relevant to file-has-acl to modules/file-has-acl-tests. (test_file_has_acl_LDADD): Move to modules/file-has-acl-tests. manywarnings: add GCC 5.1 warnings * build-aux/gcc-warning.spec: Add -Wabi=, -Warray-bounds, -Warray-bounds=, -Wc++14-compat, -Wc90-c99-compat, -Wc99-c11-compat, -Wshadow-ivar, -Wsized-deallocation, -Wsuggest-override, -Wuse-without-only. Change -Wnormalized=... operands to match 5.1. * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wbool-compare, -Wchkp, -Wdesignated-init, -Wdiscarded-array-qualifiers, -Wdiscarded-qualifiers, -Wformat-signedness, -Wincompatible-pointer-types, -Wint-conversion, -Wlogical-not-parentheses, -Wmemset-transposed-args, -Wodr, -Wshift-count-negative, -Wshift-count-overflow, -Wsizeof-array-argument, -Wsuggest-final-methods, -Wsuggest-final-types, -Wswitch-bool. Remove -Warray-bounds, and add -Warray-bounds=2 as a special case. 2015-04-21 Simon Josefsson doc: update FDL template to match FDL examples. * doc/alloca-opt.texi: * doc/alloca.texi: * doc/c-ctype.texi: * doc/c-strcase.texi: * doc/c-strcaseeq.texi: * doc/c-strcasestr.texi: * doc/c-strstr.texi: * doc/c-strtod.texi: * doc/c-strtold.texi: * doc/ctime.texi: * doc/error.texi: * doc/gcd.texi: * doc/gnulib-tool.texi: * doc/inet_ntoa.texi: * doc/intprops.texi: * doc/lib-symbol-visibility.texi: * doc/maintain.texi: * doc/parse-datetime.texi: * doc/quote.texi: * doc/regexprops-generic.texi: * doc/standards.texi: Remove spurious 'with' in FDL license template. 2015-04-21 Paul Eggert lstat: fix cross-compilation 'ln -s' problem * m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Have the test program call 'symlink' rather than a separate script run 'ln -s'; this is more likely to work in cross-compilation environments. Reported by Pavel Fedin in: http://lists.gnu.org/r/bug-gnulib/2015-04/msg00060.html 2015-04-16 Ludovic Courtès gendocs.sh: default to a common CSS style sheet for HTML output * build-aux/gendocs.sh (htmlarg): Change default value. 2015-04-15 Mats Erik Andersson gnulib-tool: output bold attribute more portably * gnulib-tool (func_show_module_list): Change hexadecimal numbers to octal in BOLD_ON and BOLD_OFF. The use of hex encoded numbers as arguments to `printf' is not portable, and is not claimed by POSIX. This is the case with FreeBSD. 2015-04-15 Andreas Gruenbacher qacl: Simplify HP-UX acl_nontrivial check * lib/acl-internal.c: Remove struct stat parameter from HP-UX's version of acl_nontrivial. Check if the acl has at most three entries instead (it must have exactly three entries according to the HP-UX documentation). Ignore uids and gids as long as an entry is either for a user (i.e., the owner), a group (i.e., the owning group), or others. * lib/acl-internal.h: Change HP-UX's acl_nontrivial prototype. * lib/qcopy-acl.c (qcopy_acl): With that, we no longer need to stat the file. 2015-04-15 Andreas Gruenbacher acl: On Linux, check for acls without libacl On Linux, use the getxattr syscall instead of the acl_extended_file libacl library function to check for the presence of acls, avoiding a library. * lib/file-has-acl.c: Include xattr headers if we have them. (file_has_acl): On Linux, use getxattr(). * m4/acl.m4 (gl_FUNC_ACL): Define LIB_HAS_ACL as the libraries to link with for file_has_acl(). Check for xattr headers and getxattr(). 2015-04-14 Ángel González tempname: avoid unused parameter warnings (trivial) * lib/tempname.c (try_dir): Tag with __GL_UNUSED. (try_nocreate): Likewise. 2015-04-14 HIRAMATSU Yoshifumi fseeko: fix build failure on NetBSD >= 6 (trivial) * lib/fseeko.c (feeko): NetBSD 6 changed the definition of _offset from 'fpos_t struct' to __off_t, which is a typedef of __int64_t. 2015-04-09 Paul Eggert gitlog-to-changelog: port to MS-Windows * build-aux/gitlog-to-changelog (git_dir_option): Use strftime with "%Y-%m-%d", not "%F", to avoid a bug in MS-Windows Perl. Reported by Eli Zaretskii in: http://lists.gnu.org/r/emacs-devel/2015-04/msg00504.html 2015-04-07 Karl Berry gendocs: new option --tex for passing args to texi2dvi. * build-aux/gendocs.sh: new option --tex, default -t @finalout. (TEXI2DVI): cut to just command name. (usage): mention new option, and update copyright. : use it. 2015-04-07 Karl Berry * config/srclistvars.sh (GETTEXT): new definition. * config/srclist.txt: use it for gettext .m4 files. Thread starting at http://lists.gnu.org/r/bug-gnulib/201 and confirmed at http://lists.gnu.org/r/bug-gnulib/2015-02/msg00146.html and continuing into April. 2015-04-07 Daiki Ueno uniname/uniname-tests: fix failure due to alias Reported by Jack Howarth in: . * tests/uniname/test-uninames.c (name_has_alias): New function. (test_inverse_lookup): Exclude character name with valid alias, from randomly generated character names. (main): Fill unicode_aliases before calling test functions. 2015-04-03 Giuseppe Scrivano hash: remove deprecated hash_insert0 function * lib/hash.h (hash_insert0): Remove deprecated function. * lib/hash.c (hash_insert0): Likewise. 2015-04-02 Pádraig Brady mountlist: remove dependency on libmount * lib/mountlist.c (read_file_system_list): Parse /proc/self/mountinfo directly, rather than depending on libmount, which has many dependencies due to its dependence on libselinux, as detailed at: http://lists.gnu.org/r/bug-gnulib/2015-01/msg00063.html Note we restrict this to __linux__ as that's probably where this interface will remain. If ever porting, it would be best to first pull the makedev() wrapper from coreutils to a gnulib module. Note also we don't add a getline dependency to the mountlist module, as all Linux versions are sufficient. 2015-04-02 Paul Eggert stddef: port to pre-C11 GCC on x86 On this platform, max_align_t should have an alignment of 8 even though the storage alignments of double, long, etc. max out at 4. Inspired by a comment of Andreas Schwab's here: https://sourceware.org/ml/libc-alpha/2015-04/msg00017.html * lib/stddef.in.h (_GL_STDDEF_ALIGNAS) [!HAVE_MAX_ALIGN_T]: New macro. (max_align_t) [!HAVE_MAX_ALIGN_T]: Use it. * tests/test-stddef.c: Test __alignof__ too, if available. 2015-03-24 Pádraig Brady quotearg-simple-tests: add missing gl_FUNC_MMAP_ANON dependency * modules/quotearg-simple-tests: Reference m4/mmap-anon.m4 2015-03-24 Tobias Stoeckmann yesno: make EOL optional in ENABLE_NLS case also (trival) * lib/yesno.c (yesno): Check for EOL before replacing. * tests/test-yesno.sh: Add a test case (test along with gettext). 2015-03-22 Paul Eggert fdopendir-tests: test it does not close its arg * tests/test-fdopendir.c (main): Test that fdopendir does not close its argument. From a suggestion by David Grayson in: http://lists.gnu.org/r/bug-gnulib/2015-03/msg00039.html 2015-03-20 Paul Eggert gitlog-to-changelog: trim trailing white space * build-aux/gitlog-to-changelog (main): Trim trailing white space from commit message lines. This is helpful for processing the GNU Emacs repository, which dates back to 1985 and contains a lot of such lines. gitlog-to-changelog: new option --ignore-matching * build-aux/gitlog-to-changelog (usage, git_dir_option, main): Support new option --ignore-matching=PAT, which ignores all commit messages whose first line matches PAT. 2015-03-19 Paul Eggert fdopendir: port better to MinGW * lib/fdopendir.c (fd_clone_opendir) [REPLACE_FCHDIR]: Use 'dup' if dirfd fails. Suggested by Eli Zaretskii in: http://lists.gnu.org/r/bug-gnulib/2015-03/msg00033.html * modules/fdopendir (Depends-on): Add dirfd. 2015-03-18 Paul Eggert fdopendir: fix typo in comment * lib/fdopendir.c (fdopendir_with_dup): REPLACE_FCHDIR was misspelled. 2015-03-09 Eric Blake error: document all entry points provided * doc/glibc-functions/error_print_progname.texi (error_print_progname): Mention the error module. * doc/glibc-functions/error_at_line.texi (error_at_line): Likewise. * doc/glibc-functions/error_message_count.texi (error_message_count): Likewise. * doc/glibc-functions/error_one_per_line.texi (error_one_per_line): Likewise. 2015-03-03 Paul Eggert vasnprintf: pacify clang 3.5.0 Problem reported by Werner Lemberg in: http://lists.gnu.org/r/bug-gnulib/2015-03/msg00000.html * lib/vasnprintf.c (VASNPRINTF): Omit casts that clang objects to. The casts aren't needed, since the characters in question are ASCII. 2015-02-24 Paul Eggert glob, etc.: port to MSVC v18 on MS-Windows 8.1 * lib/dirent--.h (GNULIB_defined_opendir): * lib/dirent.in.h (GNULIB_defined_opendir) (GNULIB_defined_closedir): * lib/getcwd.c, lib/glob.c, lib/mountlist.c (opendir, closedir): #undef only if Gnulib defined it. poll: port to MSVC v18 on MS-Windows 8.1 Problem reported by Gisle Vanem in: http://lists.gnu.org/r/bug-gnulib/2015-02/msg00139.html * lib/poll.c: Always include and . * modules/poll (Depends-on) [!HAVE_POLL || REPLACE_POLL]: Add sys_socket. 2015-02-24 Pádraig Brady tests: support stderr verification with returns_() * tests/init.sh (returns_): Disable tracing for this wrapper function, so that stderr of the wrapped command is unchanged, allowing for verification of the contents. 2015-02-24 Pavel Hrdina passfd: avoid valgrind uninitalised data warning * lib/passfd.c (sendfd): Reset the msg_controllen of msghdr, to include just the fd we've initialized, rather than including the extra space used for alignment. 2015-02-23 Paul Eggert uniwbrk/u32-wordbreaks-tests: fix copyright * tests/uniwbrk/test-uc-wordbreaks.c: Fix copyright date. dup2: doc and test for Android bug Reported by Kevin Cernekee in: http://lists.gnu.org/r/bug-gnulib/2015-02/msg00125.html * doc/posix-functions/dup2.texi (dup2): Document the bug. * m4/dup2.m4 (gl_FUNC_DUP2): Test for the bug. 2015-02-23 Kevin Cernekee Replace dup2() on Android * m4/dup2.m4 (gl_FUNC_DUP2): Android implements dup2() using dup3(). Since dup3(fd, fd) fails but dup2(fd, fd) should pass, test-dup2 fails. Using rpl_dup2() fixes this because it has an explicit test for this condition. 2015-02-22 Paul Eggert Android doesn't define RLIM_SAVED_* Portability problem reported by Kevin Cernekee in: http://lists.gnu.org/r/bug-gnulib/2015-02/msg00122.html * doc/posix-headers/sys_resource.texi (sys/resource.h): Mention the portability problem. * lib/getdtablesize.c (RLIM_SAVED_CUR, RLIM_SAVED_MAX): Define if not defined. * m4/dup2.m4 (gl_FUNC_DUP2): * m4/fcntl.m4 (gl_FUNC_FCNTL): Likewise. 2015-02-21 Paul Eggert vasnprintf-posix-tests: use consistent test * tests/test-vasnprintf-posix.c (test_function): Use "<" in assert instead of "<=", for consistency with other tests. 2015-02-20 Paul Eggert printf, isinf, etc.: noncanonical != NaN Do not require that isinf, printf, etc. treat noncanonical values as NaNs. Instead, require only that they do not crash. Problem reported by Joseph Myers in: https://sourceware.org/ml/libc-alpha/2015-02/msg00244.html * doc/posix-functions/dprintf.texi (dprintf): * doc/posix-functions/fprintf.texi (fprintf): * doc/posix-functions/isfinite.texi (isfinite): * doc/posix-functions/isinf.texi (isinf): * doc/posix-functions/isnan.texi (isnan): * doc/posix-functions/printf.texi (printf): * doc/posix-functions/snprintf.texi (snprintf): * doc/posix-functions/sprintf.texi (sprintf): * doc/posix-functions/vdprintf.texi (vdprintf): * doc/posix-functions/vfprintf.texi (vfprintf): * doc/posix-functions/vprintf.texi (vprintf): * doc/posix-functions/vsnprintf.texi (vsnprintf): * doc/posix-functions/vsprintf.texi (vsprintf): Document this. * m4/isfinite.m4 (gl_ISFINITEL_WORKS): * m4/isinf.m4 (gl_ISINFL_WORKS): * m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): * m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): * tests/test-isfinite.c (test_isfinitel): * tests/test-isinf.c (test_isinfl): * tests/test-isnan.c (test_long_double): * tests/test-isnanl.h (main): * tests/test-snprintf-posix.h (test_function): * tests/test-sprintf-posix.h (test_function): * tests/test-vasnprintf-posix.c (test_function): * tests/test-vasprintf-posix.c (test_function): Test only that noncanonical values do not cause crashes, not that they are treated as NaNs. In some cases this means a larger output buffer is needed. 2015-02-20 Jaroslav Skarvada fts: remove redundant close() (trivial) * lib/fts.c (fts_read): Remove redundant call to close(). Spotted by coverity. 2015-02-20 Paul Eggert getdtablesize: port better for Android Problem reported by Kevin Cernekee in: http://lists.gnu.org/r/bug-gnulib/2015-02/msg00112.html * doc/glibc-functions/getdtablesize.texi (getdtablesize): Mention bug. * lib/getdtablesize.c (getdtablesize): Don't fall back on _SC_OPEN_MAX. Instead, just use getrlimit, taking care to avoid Cygwin bug. poll: fixes for large fds * lib/poll.c (poll): Don't check directly for NFD too large. Don't rely on undefined behavior in FD_SET when an arg exceeds FD_SETSIZE. Always set revents afterwards, even if to zero. * tests/test-poll.c (poll1): Set revents to -1 instead of 0, as that makes the test a bit stricter. 2015-02-19 Kevin Cernekee fcntl: Fix cross compiling * m4/fcntl.m4 (gl_FUNC_FCNTL): Assign the guessed result to the correct variable name (gl_cv_func_fcntl_f_dupfd_works). 2015-02-18 Paul Eggert dup2, fcntl: cross-compile better for Android Problem reported by Kevin Cernekee in: http://lists.gnu.org/r/bug-gnulib/2015-02/msg00109.html * m4/dup2.m4 (gl_FUNC_DUP2): Don't guess no when cross-compiling for a Linux kernel. That kernel bug was fixed on 2009-05-11, and there's little need to cross-compile for older kernels nowadays. * m4/fcntl.m4 (gl_FUNC_FCNTL): When cross-compiling, guess no only for systems where the bug is known to occur (AIX, Cygwin, Haiku). 2015-02-18 Pádraig Brady getopt: don't crash on memory exhaustion * lib/getopt.c (_getopt_internal_r): Use degraded diagnostics on memory exhaustion. In the _LIBC case we use alloca() as is already done in glibc, so we don't need to consider the separate error path in that awkward case. Also fix a memory leak when ambiguous options are present. Reported by Tobias Stoeckmann 2015-02-17 Mike Miller tempname: allow compilation with C++ (trivial) * lib/tempname.h [C++]: Specify extern "C" linkage. * lib/tempname.h (try_tempname): * lib/tempname.c (__try_tempname, __gen_tempname): Rename 'try' to 'tryfunc'. 2015-02-17 Paul Eggert dup2, fcntl: port to AIX * m4/dup2.m4 (gl_FUNC_DUP2): * m4/fcntl.m4 (gl_FUNC_FCNTL): Prefer getrusage (RLIM_NOFILE ...)/rlim_cur to sysconf (_SC_OPEN_MAX). The former works on AIX 7.1 but the latter does not. Also, this may work better with Android; see: http://lists.gnu.org/r/bug-gnulib/2015-02/msg00100.html 2015-02-16 Paul Eggert getdtablesize, dup2, fcntl: port to Android Problem reported by Kevin Cernekee in: http://lists.gnu.org/r/bug-gnulib/2015-02/msg00092.html * doc/glibc-functions/getdtablesize.texi (getdtablesize): Mention that getdtablesize doesn't work on Android. * lib/getdtablesize.c: Use getrlimit substitute only if getdtablesize is declared. This should suffice for Cygwin while not breaking Android. * m4/dup2.m4 (gl_FUNC_DUP2): * m4/fcntl.m4 (gl_FUNC_FCNTL): Prefer sysconf (_SC_OPEN_MAX) to getdtablesize, as the former is standardized but the latter is not, and sysconf works on Android. * m4/getdtablesize.m4 (gl_FUNC_GETDTABLESIZE): Also check that getdtablesize is declared. This removes the need for a special case for Android. 2015-02-16 Kevin Cernekee localename: Implement gl_locale_name_thread_unsafe for Android * lib/localename.c: Android API level >= 21 supports two hardcoded locales: C (POSIX) and C.UTF-8. Distinguish them by checking the internal __locale_t struct. 2015-02-16 Kamil Dudka fts: avoid crash when a cycle is added while traversing This could be triggered by auto-mounting a recursive bind mount. Reported by Michael Chapman in: https://bugzilla.redhat.com/1188498 * lib/fts.c (fts_read): Avoid removing the original hash table item when leaving a directory that caused a cycle, and preserve the FTS_DC flag. 2015-02-16 Daiki Ueno uniname/uniname: support character alias * lib/uniname/gen-uninames.lisp (main): New argument ALIASFILE. Generate one-way mapping from aliases to codepoints in the generated tables. Special case variation selectors to reduce table size. * lib/uniname/uniname.c (unicode_character_name): Special case variation selectors. (unicode_name_character): Special case variation selectors and their aliases. * lib/uniname/uninames.h: Regenerate. * tests/uniname/NameAliases.txt: New file, taken from UCD 7.0.0. * modules/uniname/uniname-tests (Files): Add tests/uniname/NameAliases.txt. * tests/uniname/test-uninames.c: Mark as static. (ALIASLEN): Define. (struct unicode_alias): New struct. (unicode_aliases): New variable. (fill_aliases): New function. (test_alias_lookup): New test function. (main): Run the 'test_alias_lookup' test if the second argument is given. * tests/uniname/test-uninames.sh: Supply NameAliases.txt as the second argument. 2015-02-11 Kevin Cernekee Fix FILE struct compatibility with Android API level >= 21 * lib/stdio-impl.h: Test explicitly for __ANDROID__ instead of __sferror. Recent versions of Bionic's stdio.h no longer define __sferror. * lib/fbufmode.c: Likewise. * lib/fflush.c: Likewise. * lib/fpurge.c: Likewise. * lib/freadable.c: Likewise. * lib/freadahead.c: Likewise. * lib/freading.c: Likewise. * lib/freadptr.c: Likewise. * lib/freadseek.c: Likewise. * lib/fseeko.c: Likewise. * lib/fseterr.c: Likewise. * lib/fwritable.c: Likewise. Assume unbroken ungetc() on Android * m4/ungetc.m4: Add Android case to host OS check. The ungetc() test case passed when running on an Android host, and the code hasn't really changed since 2009. getdtablesize: Fix Android build * m4/getdtablesize.m4: Add Android case to host OS check. Recent NDK versions have this symbol in the .so library (at least 32-bit platforms) but are missing the declaration in the header file, causing the m4 logic to guess incorrectly. localename: Fix Android build * modules/localename (Depends-on): Add langinfo. getugroups: Fix Android build * lib/getugroups.c: Don't reference unsupported {get,set,end}grent functions. euidaccess: Fix Android build * modules/euidaccess (Depends-on): Add fcntl-h to ensure that AT_EACCESS gets declared. linkat_nofollow: Add fallback case for cross compiling * m4/linkat.m4: Guess no for Darwin, yes otherwise. net_if: Handle content-free system headers * m4/net_if_h.m4: Check to make sure actually defines struct if_nameindex. If not, enable the replacement header. signal_h: Fix Android build * lib/signal.in.h: Add Android to the list of platforms that declare pthread_sigmask() in instead of . duplocale: Fix Android build of duplocale-tests * modules/duplocale-tests (Depends-on): Add langinfo, as the header is included by test-duplocale.c (but not by duplocale.c). * modules/duplocale-tests (configure.ac): Check for monetary.h. * tests/test-duplocale.c: Skip test if monetary.h is absent. * doc/posix-headers/monetary.texi: Add Android to the list of platforms missing monetary.h. 2015-02-11 Pádraig Brady tests: avoid recent -Werror=unused-variable regression in test-locale * tests/test-locale.c (main): Reference the variable to avoid the "unused variable" warning. 2015-02-11 Pádraig Brady maint: various whitespace cleanups in tempname * lib/tempname.c: Normalize spacing and line length. * lib/tempname.h: Likewise. * modules/tempname: Likewise. 2015-02-11 Pádraig Brady tests: provide returns_() to simplify exit status checking * tests/init.sh (returns_): A new function for use in tests, to allow for easier checking of return values, where you expect a command to exit with failure status. By checking for a particular exit code, you don't hide any crashes for example. 2015-02-11 Pádraig Brady mountlist: only use libmount when specified There are currently many shared libs dependencies introduced by libmount with associated runtime and virt mem overhead. Therefore don't enable by default. * m4/ls-mntd-fs.m4: Use --with-libmount to enable at build time. 2015-02-08 Daiki Ueno uniname/unimame-tests: don't link with -lunistring * modules/uniname/uniname-tests (Makefile.am): Don't link against $(LIBUNISTRING). Document the rationale why we need to conditionalize the test. 2015-02-07 Paul Eggert fstrcmp: don't assume strlen < INT_MAX * lib/fstrcmp.c: Include stddef.h and stdint.h. (uintptr_t): Remove, as we're now assuming stdint. (OFFSET, EXTRA_CONTEXT_FIELDS, fstrcmp_bounded): Prefer ptrdiff_t to int when the value could exceed INT_MAX if the input string is long. (fstrcmp_bounded): Check for size-calculation overflow. Prefer uintptr_t to size_t when the underlying value is a pointer casted to an unsigned integer. Avoid unnecessary 'buffer != NULL' test. * modules/fstrcmp (Depends-on): Add stdint. diffseq: prefer ptrdiff_t to ssize_t * lib/diffseq.h: In commentary, prefer ptrdiff_t to ssize_t. ptrdiff_t is the natural type for signed indexes. On a few older platforms, ssize_t is narrower than size_t. xalloc: fix typo that suppressed warnings * lib/xalloc.h: Add missing _GL_INLINE_HEADER_END. This typo, introduced a couple of years ago, mistakenly suppressed some -Wsuggest-attribute=const, -Wmissing-prototypes, and -Wmissing-declarations warnings. full-read: fix license notice typo * lib/full-read.h: Remove a stray line in the license notice. Reported by Sam Ellis in: http://bugs.gnu.org/19808 crypto/gc: fix a -Wswitch warning Reported by Bruce Korb in: http://lists.gnu.org/r/bug-gnulib/2015-02/msg00046.html * lib/gc-gnulib.c (gc_hash_open): Fail faster if MODE is nonzero. 2015-02-03 Pádraig Brady gnulib-tool: fix handling of patch(1) diagnostics * gnulib-tool: Send diagnostics from patch(1) to stderr, as otherwise gnulib-tool will reparse that output and attempt to lookup modules. 2015-02-03 Pádraig Brady bootstrap: exit immediately upon gnulib-tool failure * build-aux/bootstrap: Exit immediately if gnulib-tool fails. This was noticed when gnulib-tool exited early due to failure to apply a patch in coreutils at http://hydra.nixos.org/eval/1172233, but various confusing errors were then given as the build proceeded. 2015-02-02 Andreas Gruenbacher symlinkat: include all required header files * lib/symlinkat.c (HAVE_SYMLINK_AT): Add for fstatat(), and string.h for strlen(), required at least on OS X 10.10 (Yosemite). Reported at https://savannah.gnu.org/bugs/index.php?44151 and by Jack Howarth. 2015-01-29 Pádraig Brady localename: support Solaris 12 and illumos * lib/localename.c (gl_locale_name_thread_unsafe): call getlocalename_l() on newer __sun platforms. Reported by Alexander Pyhalov. Fix suggested by Rich Burridge. 2015-01-29 Alexander Pyhalov locale: fix tests on illumos (trivial) * tests/test-locale.c: LC_GLOBAL_LOCALE is a function call on illumos, so move from global scope to main(). 2015-01-24 Daiki Ueno unictype: avoid undefined left-shift behavior * lib/unictype/bidi_of.c (uc_bidi_class): Building libunistring with gcc's -fsanitize=shift and running its tests triggered: unictype/bidi_of.c:43:60: runtime error: left shift of 40167 by 16 \ places cannot be represented in type 'int' Cast LHS to 'unsigned int' after integer promotion. * lib/unictype/categ_of.c (lookup_withtable): Likewise. * lib/unictype/joininggroup_of.c (uc_joining_group): Likewise. 2015-01-20 Daiki Ueno libunistring: bump version of unitypes dependants Due to the header file search order, all the headers which depend on unitypes.h need to be generated, when the preinstalled libunistring is older. * modules/unicase/base (configure.ac): Bump minimum version to 0.9.4. * modules/uniconv/base (configure.ac): Likewise. * modules/unilbrk/base (configure.ac): Likewise. * modules/uninorm/base (configure.ac): Likewise. * modules/unistdio/base (configure.ac): Likewise. * modules/unistr/base (configure.ac): Likewise. * modules/uniwbrk/base (configure.ac): Likewise. * modules/uniwidth/base (configure.ac): Likewise. 2015-01-20 Daiki Ueno unictype/category-none: fix link with libunistring Since _UC_CATEGORY_NONE is not a public symbol, it will be prefixed with "libstring_" when compiled as part of libunistring. To avoid undefined symbol at link time, increase the minimum version when the dependant modules are updated. * modules/unictype/category-none (configure.ac): Bump minimum version to 0.9.5. 2015-01-20 Daiki Ueno unitypes: fix build with installed libunistring The minimum version has not bumped after _UC_ATTRIBUTE_CONST and _UC_ATTRIBUTE_PURE were added to unitypes.in.h. * modules/unitypes (configure.ac): Bump minimum version to 0.9.4. 2015-01-15 Paul Eggert time: port to MinGW32 3.21 Problem reported by Eli Zaretskii in: http://lists.gnu.org/r/bug-gnulib/2015-01/msg00042.html * lib/time.in.h: * m4/time_h.m4 (gl_CHECK_TYPE_STRUCT_TIMESPEC): * modules/time (Depends-on): Fall back on unistd.h if the other include files don't define struct timespec. update-copyright: apply to self * build-aux/update-copyright: Fix copyright date. How ironic! 2015-01-15 Daiki Ueno libunistring: update to Unicode 7.0.0 * lib/unictype/joininggroup_byname.gperf: Add Straight Waw and Manichaean names. * lib/unictype/joininggroup_name.h: Likewise. * lib/unictype.in.h (UC_JOINING_GROUP_STRAIGHT_WAW) (UC_JOINING_GROUP_MANICHAEAN_ALEPH): New enumeration values. * lib/gen-uni-tables.c (UC_JOINING_GROUP_STRAIGHT_WAW) (UC_JOINING_GROUP_MANICHAEAN_*): New enumeration values. (fill_arabicshaping, joining_group_as_c_identifier): Support those enum values. (is_property_alphabetic): Accept newly added characters to cuneiform numeric signs. (is_property_default_ignorable_code_point): Reject U+0605. (FIELDLEN): Increase from 120 to 160. * lib/uniwidth/width.c (nonspacing_table_data): Add U+0605, U+08FF, U+0C00, U+0C81, U+0D01, U+1AB0..U+1ABE, U+1BAC..U+1BAD, U+1CF8..U+1CF9, U+1DE7..U+1DF5, U+A9E5, U+AA7C, U+FE27..U+FE2D, U+102E0, U+10376..U+1037A, U+10AE5..U+10AE6, U+1107F, U+11173, U+1122F..U+11231, U+11234, U+11236..U+11237, U+112DF, U+112E3..U+112EA, U+11301, U+1133C, U+11340, U+11366..U+1136C, U+11370..U+11374, U+114B3..U+114B8, U+114BA, U+114BF..U+114C0, U+114C2..U+114C3, U+115B2..U+115B5, U+115BC..U+115C0, U+11633..U+1163A, U+1163D, U+1163F..U+11640, U+16AF0..U+16AF4, U+16B30..U+16B36, U+1BC9D..U+1BC9E, U+1BCA0..U+1BCA3, and U+1E8D0..U+1E8D6. (uc_width): Adjust nonspacing_table_ind boundary from 240 to 248. * tests/uniwidth/test-uc_width2.sh: Same updates as in lib/uniwidth/width.c. * all generated files under lib/uni* and tests/uni*: Regenerate. 2015-01-14 Daiki Ueno libunistring: update to Unicode 6.3.0 * lib/uniwbrk.in.h (WBP_DQ, WBP_SQ, WBP_HL): New enumeration values. * lib/uniwbrk/u-wordbreaks.h (FUNC): Support WB7a, WB7b, and WB7c. Update WB5, WB6, WB7, WB9, WB11, WB12, WB13a, and WB13b. * lib/uniwbrk/wbrktable.h (uniwbrk_table): Adjust table size. * lib/uniwbrk/wbrktable.c (uniwbrk_table): Support rule WB7a. Update WB5, WB9, WB10, WB13a, and WB13b. * tests/uniwbrk/test-uc-wordbreaks.c (wordbreakproperty_to_string): Support WBP_DQ, WBP_SQ, and WBP_HL. * lib/gen-uni-tables.c (UC_BIDI_LRI, UC_BIDI_RLI, UC_BIDI_FSI) (UC_BIDI_PDI): New enumeration values. (bidi_category_byname): Support those enum values. (is_WBP_MIDNUMLET): Exclude 0x0027 (SINGLE QUOTE), which is now a dedicated property assigned. (is_property_case_ignorable): Check 0x0027. (WBP_DQ, WBP_SQ, WBP_HL): New enumeration values. (get_wbp, debug_output_wbp, fill_org_wbp, debug_output_org_wbp) (output_wbp): Support those enum values. * lib/unictype.in.h (UC_BIDI_LRI, UC_BIDI_RLI, UC_BIDI_FSI) (UC_BIDI_PDI): New enumeration values. * lib/unictype/bidi_byname.gperf: Add those property names. * lib/uniwidth/width.c (nonspacing_table_data): Add U+061C, U+180E, U+1A1B, and U+2066..U+2069. * tests/uniwidth/test-uc_width2.sh: Same updates as in lib/uniwidth/width.c. * all generated files under lib/uni* and tests/uni*: Regenerate. 2015-01-14 Daiki Ueno libunistring: update to Unicode 6.2.0 * lib/unilbrk/lbrktables.h (LBP_RI): New enumeration value. (unilbrk_table): Adjust table size. * lib/unilbrk/lbrktables.c (unilbrk_table): Add a row and column for LBP_RI. * lib/uniwbrk.in.h (WBP_RI): New enumeration value. * lib/uniwbrk/u-wordbreaks.h (FUNC): Support rule WB13c. Normalize table index skipping ignored properties. * lib/uniwbrk/wbrktable.c (uniwbrk_table): Support WBP_RI. Remove WBP_EXTEND and WBP_FORMAT, which are now computed without using the table. * lib/uniwbrk/wbrktable.h: Adjust table size. * lib/unigbrk.in.h (GBP_RI): New enumeration value. * lib/unigbrk/uc-is-grapheme-break.c (UC_IS_GRAPHEME_BREAK): Support rule GB8a. (UC_GRAPHEME_BREAKS_FOR, gb_table): Support GBP_RI. * tests/unigbrk/test-uc-is-grapheme-break.c (graphemebreakproperty_to_string): Support GBP_RI. * tests/uniwbrk/test-uc-wordbreaks.c (wordbreakproperty_to_string): Support WBP_RI. * lib/gen-uni-tables.c (LBP_RI): New enumeration value. (get_lbp, debug_output_lbp, fill_org_lbp, debug_output_org_lbp) (output_lbp): Support LBP_RI. Adjust some characters changed from LBP_AL to LBP_ID. (output_lbp): Support LBP_RI. (WBP_RI): New enumeration value. (debug_output_wbp, fill_org_wbp, debug_output_org_wbp) (output_wbp): Support WBP_RI. (GBP_RI): New enumeration value. (output_gbp_test, fill_org_gbp): Support GBP_RI. * all generated files under lib/uni* and tests/uni*: Regenerate. 2015-01-14 Daiki Ueno libunistring: update to Unicode 6.1.0 * lib/gen-uni-tables.c (output_joining_group): Switch to 3-level table to accommodate joining groups defined with higher codepoint value. Since there are only 88 groups defined in Unicode 7.0.0, use 7-bit packed format for level3 entries. (get_lbp): Update for Unicode 6.1.0. * lib/unictype/joininggroup_of.c (uc_joining_group): Adjust to use 3-level table. * lib/unictype/joininggroup_byname.gperf: Add Rohingya Yeh joining group name. * lib/unictype/joininggroup_name.h: Likewise. * lib/unilbrk/lbrktables.h (LBP_HL): New enumeration value. (unilbrk_table): Adjust table size. * lib/unilbrk/lbrktables.c (unilbrk_table): Add a row and column for LBP_HL. * lib/uniwidth/width.c (nonspacing_table_data): Add U+0604, U+08E4..U+08FE, U+1BAB, U+1CF4, U+A674..U+A67B, U+A69F, U+AAEC..U+AAED, U+AAF6, U+11100..U+11102, U+11127..U+1112B, U+1112D..U+11134, U+11180..U+11181, U+111B6..U+111BE, U+116AB, U+116AD, U+116B0..U+116B5, U+116B7, U+16F8F..U+16F92. Remove U+302E..U+302F. * tests/uniwidth/test-uc_width2.sh: Same updates as in lib/uniwidth/width.c. * all generated files under lib/uni* and tests/uni*: Regenerate. * modules/uni*/* (configure.ac): Bump minimum version to 0.9.5. 2015-01-15 Daiki Ueno uniwbrk/u32-wordbreaks-tests: add conformance test * modules/uniwbrk/u32-wordbreaks-tests (Files): Add tests/uniwbrk/test-uc-wordbreaks.c, tests/uniwbrk/test-uc-wordbreaks.sh, and tests/uniwbrk/WordBreakTest.txt. (Makefile.am): Add uniwbrk/test-uc-wordbreaks.sh to $(TESTS), add test-uc-wordbreaks to $(check_PROGRAMS), and define test_uc_wordbreaks_SOURCES and test_uc_wordbreaks_LDADD. * tests/uniwbrk/test-uc-wordbreaks.sh: New file. * tests/uniwbrk/test-uc-wordbreaks.c: New file. 2015-01-15 Daiki Ueno uniwbrk: ignore Extended/Format characters at BOL not BOS * lib/uniwbrk/u-wordbreaks.h (FUNC): Ignore Extend and Format characters if the previous character property is one of WBP_NEWLINE, WBP_CR, and WBP_LF. 2015-01-11 Jim Meyering test-strstr.c: avoid a trivial leak * tests/test-strstr.c (main): Free haystack. update-copyright: recognize groff's \(co marker * build-aux/update-copyright (circle_c_re): Also accept uses of \(co, as found in gzip.1. 2015-01-08 Pádraig Brady maint.mk: fix compatibility with OS X nm * top/maint.mk (_gl_tight_scope): Use the -g option to show exported items rather than the -e option which is ignored on all platforms except OS X where it gives an error. Reported by Assaf Gordon. 2015-01-07 KO Myung-Hun localcharset: improve charset detection on OS/2 Use system codepage when appropriate. Map OS/2 codepages to GNU canonical charset names if possible. * lib/config.charset: Don't output aliases if "$os" is os2*. * lib/localcharset.c (get_charset_aliases) [OS2]: Hardcode the result for OS/2. (locale_charset) [OS2]: Use system codepage if codeset is omitted from the locale name which is neither "C" nor "POSIX". 2015-01-06 Paul Eggert count-leading-zeros: use 64-bit intrinsics on 32-bit Windows This reverts the last patch but one, as it shouldn't be needed now that the typo is fixed. * lib/count-leading-zeros.h (count_leading_zeros_ll): * lib/count-trailing-zeros.h: * lib/count-one-bits.h: Go back to using 64-bit intrinsics. count-leading-zeros: fix pragma typos * lib/count-leading-zeros.h (_BitScanReverse, _BitScanReverse64): Fix typos in declaration of intrinsics when _MSC_VER. 2015-01-06 Pádraig Brady count-leading-zeros: avoid 64-bit intrinsics on 32-bit Windows * lib/count-leading-zeros.h (count_leading_zeros_ll): Use 32 bit intrinsics in this case. * lib/count-trailing-zeros.h: Likewise. * lib/count-one-bits.h: Likewise. 2015-01-06 Daiki Ueno uniname/uniname: update to Unicode 7.0.0 To accommodate new characters added since Unicode 5.1.0, this changes the internal representation of codepoint ranges. Previously, we grouped codepoint ranges by manually assigned 4-bit tag, which only allowed 16 groups. This removes the limitation by switching to binary search on a table. For the detail rationale and the benchmark results, see: https://lists.gnu.org/r/bug-libunistring/2014-06/msg00001.html * lib/uniname/gen-uninames.lisp (unicode-char): Rename CODE member to INDEX, as it no longer represents a codepoint. (range): New struct. (main): Switch to intervals list from a bit-pattern based classification. * lib/uniname/uninames.h: Regenerate. * tests/uniname/UnicodeDataNames.txt: Update to Unicode 7.0.0. * modules/uniname/base (configure.ac): Bump minimum version to 0.9.5. * modules/uniname/uniname (configure.ac): Bump minimum version to 0.9.5. 2015-01-05 Eric Blake doc: update INSTALL from autoconf * doc/install.texi: Resync from autoconf. * doc/INSTALL: Reflect recent autoconf update. * doc/INSTALL.ISO: Likewise. * doc/INSTALL.UTF-8: Likewise. stdio: fix use of PRIdMAX on modern mingw * m4/stdio_h.m4 (gl_STDIO_H): Probe for printf flavor via inttypes. * lib/stdio.in.h (_GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM): Use result to work with modern mingw. 2015-01-05 Daniel P. Berrange (tiny change) pthread: detect git mingw builds with only partial pollution * m4/pthread.m4 (gl_PTHREAD_CHECK): Check for additional pollution, as seen temporarily in Fedora 21. 2015-01-04 Paul Eggert lib-symbol-versions: cache script check * m4/ld-version-script.m4 (gl_LD_VERSION_SCRIPT): Cache the check for linker version scripts. From a suggestion by Christophe Curis in: http://lists.gnu.org/r/bug-gnulib/2015-01/msg00011.html 2015-01-04 Benno Schulenberg maint: fix grammar nits in propername (trivial change) * lib/propername.h: Remove a mistaken comma and a duplicate "from", and use an adequate verb and tense. 2015-01-02 Ludovic Courtès Suggested by Paul Eggert . * module/gendocs: Add 'doc/gendocs_template_min'. * build-aux/gendocs.sh: Change email addresses and upstream URLs from to Gnulib's. (scripturl, templateurl): Adjust accordingly. 2015-01-01 Paul Eggert gendocs: copyright date and version fix Reported by Karl Berry in: http://lists.gnu.org/r/bug-gnulib/2015-01/msg00002.html * build-aux/gendocs.sh, doc/gendocs_template, doc/gendocs_template_min: Fix copyright date. * build-aux/gendocs.sh (scriptversion): Update. 2015-01-01 Karl Berry * doc/install.texi, * build-aux/mdate-sh, * build-aux/depcomp, * build-aux/config.guess, * build-aux/config.sub, * build-aux/ar-lib, * build-aux/compile: revert copyright updates (some from last year) in slaved files. 2015-01-01 Paul Eggert version-etc: new year * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright date. * all files: Run 'make update-copyright'. 2014-12-30 Pádraig Brady xstrtol: ensure errno is reset Since commit 3bf75404, on 26-09-1998, errno may not have been reset. Noticed with a spurious coreutils test failure on Darwin 14.0.0. * lib/xstrtol.c (__xstrtol): Always reset errno before returning. 2014-12-28 Paul Eggert utimens: fix dependency typo * modules/utimens (Depends-on): Remove 'assure'. This bug was introduced in the recent 'assure' patch. 2014-12-22 Eric Blake docs: mention why libgen.h is bad * doc/posix-headers/libgen.texi (libgen.h): Refer to dirname module. 2014-12-20 Paul Eggert assure: new module This works better than 'assert' when compiling with -DNDEBUG, as it avoids some compiler diagnostics in that case. Reported by Norihiro Tanaka in: http://lists.gnu.org/r/bug-gnulib/2014-12/msg00215.html * MODULES.html.sh (func_all_modules): Add 'assure'. * lib/assure.h, modules/assure: New files. * lib/chdir-long.c, lib/cycle-check.c, lib/fchdir.c, lib/fts.c: * lib/poll.c, lib/savewd.c, lib/xstrtol.c: Prefer 'assure' to 'assert'. * lib/utimens.c: Stop using 'assert'; it wasn't helpful. * modules/chdir-long, modules/cycle-check, modules/fchdir: * modules/poll, modules/savewd, modules/utimens, modules/xstrtol: Depend on 'assure'. 2014-12-16 Paul Eggert stdalign: port better to HP compilers * m4/stdalign.m4 (gl_STDALIGN_H): Try the test if __HP_cc or __HP_aCC are nonzero, to be consistent with the 2014-01-20 patch. stdalign: work around Apple GCC 4.0 bug Reported by David Fang in: http://lists.gnu.org/r/bug-gnulib/2014-12/msg00194.html * lib/stdalign.in.h (_Alignas): * m4/stdalign.m4 (gl_STDALIGN_H): Do not use aligned attribute with GCC 4.0 on Apple. 2014-12-16 Pádraig Brady getcwd: fix test failure on OS X 10.9 * m4/getcwd-path-max.m4: Avoid the replacement if it won't be effective due to the PATH_MAX limitation of lstat(). (gl_cv_func_getcwd_path_max): Adjust to indicate this case. * m4/getcwd.m4 (gl_FUNC_GETCWD): Define HAVE_GETCWD_SHORTER for this case for use in tests, and also exclude this case when setting REPLACE_GETCWD. * tests/test-getcwd.c (test_long_name): Restrict the tested path length so that lstat() will not be passed a path greater than PATH_MAX. Also key a test condition on HAVE_OPENAT_SUPPORT rather than AT_FDCWD, since the latter is set unconditionally since Sep 2009 in commit 52c658e9. 2014-12-14 Tim Rühsen parse-datetime: avoid a compiler warning with byacc (trivial) * lib/parse-datetime.y (yylex): Use the same prototype in the function definition as the declaration, to avoid a -Wstrict-prototypes warning seen when using byacc. 2014-12-12 Daiki Ueno unicase/locale-language-tests: fix LOCALE_FR test * tests/unicase/test-locale-language.sh: Really use $LOCALE_FR for a French locale with traditional encoding. Reported by umerqayam in: http://lists.gnu.org/r/bug-libunistring/2014-12/msg00000.html 2014-12-12 Paul Eggert stddef: support C11's max_align_t * doc/posix-headers/stddef.texi (stddef.h): Document max_align_t. * lib/stddef.in.h (_@GUARD_PREFIX@_STDDEF_H) [__need_wint_t]: Do not undef, as that might cause max_align_t to be defined twice. Instead, change use to check for _GL_STDDEF_WINT_T too. (max_align_t) [!HAVE_MAX_ALIGN_T]: New decl. * m4/stddef_h.m4 (gl_STDDEF_H, gl_STDDEF_H_DEFAULTS): Check for max_align_t. * modules/stddef (stddef.h): Substitute HAVE_MAX_ALIGN_T. * modules/stddef-tests (Depends-on): Add stdalign. * tests/test-stddef.c: Test max_align_t. 2014-12-11 Daiki Ueno unistd: fix iOS check conditional On Mac OS X 10.8, the TARGET_* macros are unconditonally defined as 0 or 1 in , and the previous check always yielded true on non-iOS environment. * lib/unistd.in.h (environ) [__APPLE__]: Check the values of TARGET_OS_IPHONE and TARGET_IPHONE_SIMULATOR, instead of whether they are defined. 2014-12-09 Paul Eggert posixtm: avoid compiler warning in a better way * lib/posixtm.c (IF_LINT): Remove. (year, posix_time_parse): Return true (not 0) if successful. All callers changed. (posix_time_parse): Simplify to pacify GCC without need for IF_LINT. 2014-12-08 KO Myung-Hun * lib/relocatable.c (relocate): Prepend $UNIXROOT to pathname if it is started with '/' on EMX. 2014-12-08 KO Myung-Hun freopen: workaround freopen() on OS/2 kLIBC * lib/freopen.c (rpl_freopen): Workaround. * m4/freopen.m4: Add os2* case. get_shared_library_fullname: port to EMX * lib/relocatable.c: Define strcmp and strncmp to stricmp and strnicmp on EMX, respectively. (_DLL_InitTerm): New on EMX. (get_shared_library_fullname): Implement on EMX. find_executable: port to EMX * lib/progreloc.c (find_executable): Implement on EMX. sched: check struct sched_param in spawn.h as well * lib/sched.in.h: Include spawn.h on kLIBC. * lib/sched_h.m4: Check struct sched_param in spawn.h as well. 2014-12-08 Martin Kletzander (tiny change) bootstrap: Allow perl modules in $buildreq * build-aux/bootstrap: Add case for perl modules. 2014-12-08 Pádraig Brady apply _GL_ATTRIBUTE_PURE to some inline functions clang 3.4.2 flagged these inline functions as pure * lib/savewd.h (savewd_errno): Set _GL_ATTRIBUTE_PURE. * lib/sig-handler.h (get_handler): Likewise. * lib/stat-time.h (get_stat_{a,c,m,birth}time{,_ns}): Likewise. * lib/timespec.h (timespec_cmp, timespec_sign): Likewise. 2014-12-06 Pádraig Brady vasnprintf: fix potential use after free * lib/vasnprintf.c (VASNPRINTF): Fix free-memory read, flagged by clang-analyzer 3.4.2. 2014-12-05 Pádraig Brady filevercmp, posixtm: avoid compiler warnings with -O3 * lib/filevercmp.h (filevercmp): Tag with _GL_ATTRIBUTE_PURE * lib/posixtm.c: (IF_LINT): Define. (posix_time_parse): Use it to void a "may be used uninitialized" warning, seen only with -O3. 2014-12-05 Bruno Haible Fix LDBL80_WORDS macro on big endian platforms. * m4/isfinite.m4 (gl_ISFINITEL_WORKS): Add missing parenthesis in LDBL80_WORDS macro. * m4/isinf.m4 (gl_ISINFL_WORKS): Likewise. * m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Likewise. * tests/test-isfinite.c (test_isfinitel): Likewise. * tests/test-isinf.c (test_isinfl): Likewise. * tests/test-isnan.c (test_long_double): Likewise. * tests/test-isnanl.h (main): Likewise. * tests/test-snprintf-posix.h (LDBL80_WORDS): Add missing parenthesis. * tests/test-sprintf-posix.h (LDBL80_WORDS): Likewise. * tests/test-vasnprintf-posix.c (LDBL80_WORDS): Likewise. * tests/test-vasprintf-posix.c (LDBL80_WORDS): Likewise. Reported by Pádraig Brady. 2014-12-02 KO Myung-Hun git-version-gen: do not print new line characters * build-aux/git-version-gen: Use printf instead of echo and tr. gnulib-tool: recognize x:* as an absolute path * gnulib-tool (func_gnulib_dir): Add ?:* case. (func_relconcat): Likewise. 2014-12-02 Andrei Borzenkov argp: avoid extraneous translation and mem leak with empty pre doc * lib/argp-help.c (argp_doc): Never translate the empty string, when "\v" is the first or last character of the string, as that has a reserved meaning to return the header info from a po file. This also fixes a small memory leak in the !post case. The issue can be seen with this command for example: LC_MESSAGES=en_US grub2-mknetdir --help 2014-11-27 Daiki Ueno uniname/uniname-tests: skip if system's libunistring is used * modules/uniname/uniname-tests (Makefile.am): Skip test if uniname/uniname module is not compiled. 2014-11-27 Pádraig Brady printf: fix configure check on big endian systems * m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Add missing bracket. 2014-11-22 Daiki Ueno pipe-filter-gi, pipe-filter-ii: port to AIX On AIX 7.1, 'select' is defined as static and cannot be referred to from inline function. * lib/pipe-filter-aux.h (nointr_select): Remove, manually expand the definition... * lib/pipe-filter-gi.c (filter_loop): ...here, and... * lib/pipe-filter-ii.c (pipe_filter_ii_execute): ...here. 2014-11-20 Paul Eggert gitlog-to-changelog: add --until * build-aux/gitlog-to-changelog: Support new --until option. Need described by Eli Zaretskii in: http://bugs.gnu.org/19113 2014-11-14 Paul Eggert extern-inline: update commentary about GCC bugs * m4/extern-inline.m4: Add another GCC bug number to comments. 2014-11-13 Daiki Ueno gen-uni-tables: untabify * lib/gen-uni-tables.c: Untabify. 2014-11-13 Daiki Ueno gen-uni-tables: check out-of-range values added to 3-level tables * lib/gen-uni-tables.c (output_category, output_bidi_category) (output_joining_type, output_ident_category): Check out-of-range values added to 3-level tables. 2014-11-13 Daiki Ueno gen-uni-tables: utilize 'assert' * lib/gen-uni-tables.c: Include . (output_category, output_combclass, output_decimal_digit_test) (output_decimal_digit, output_digit_test, output_digit) (output_numeric, get_mirror_value, fill_properties) (fill_property30, is_property_alphabetic) (is_property_default_ignorable_code_point) (is_property_uppercase, is_property_lowercase) (is_property_cased, is_property_case_ignorable) (is_property_changes_when_lowercased, is_property_iso_control) (is_property_math, fill_arabicshaping, output_joining_group) (fill_scripts, fill_blocks, output_lbp, fill_org_wbp) (output_wbp, fill_org_gbp, get_decomposition) (output_decomposition, fill_composition_exclusions) (debug_output_composition_tables, output_composition_tables) (redistribute_casefolding_rules, output_casing_rules): Use 'assert (EXPR);' instead of 'if (!EXPR) abort ();' for better error reporting. 2014-11-13 Daiki Ueno gen-uni-tables: cosmetic improvements * lib/gen-uni-tables.c: Escape newlines in the Emacs file local variables specification. (is_outdigit): Remove unused function. 2014-11-12 Jeroen Roovers (tiny change) fcntl-h-tests: port to PA-RISC GNU/Linux * tests/test-fcntl-h.c (main): Check O_SYNC is different from O_DSYNC. 2014-11-10 Paul Eggert fts: port to C89 Problem reported for MSVC 16 by Gisle Vanem in: http://lists.gnu.org/r/bug-gnulib/2014-11/msg00027.html * lib/fts.c (fts_build): Avoid declaration before statement. 2014-11-06 Paul Eggert unistd: port to iOS Problem reported by André Klitzing in: http://lists.gnu.org/r/bug-gnulib/2014-11/msg00013.html * lib/unistd.in.h (environ): Do not include crt_externs.h on iOS. 2014-11-05 Paul Eggert obstack: do not reject malloc-style obstack_chunkfun, obstack_freefun Problem reported by Alan Modra in: http://lists.gnu.org/r/bug-gnulib/2014-11/msg00007.html * lib/obstack.h (obstack_chunkfun, obstack_freefun): Always cast the function arg, reverting this part of the previous change. 2014-11-04 Paul Eggert obstack: avoid potentially-nonportable function casts * lib/obstack.c (CALL_CHUNKFUN, CALL_FREEFUN): Remove, replacing with ... (call_chunkfun, call_freefun): New static functions. All uses changed. Avoid potentially-nonportable casts. (chunkfun_type, freefun_type): Remove typedefs; no longer used. (_obstack_begin_worker): Omit last two args, since they rely on potentially-nonportable casts. All callers changed. * lib/obstack.h (_OBSTACK_CAST): New macro. Use it everywhere the old API used a potentially-nonportable cast. The new API doesn't cast. (struct obstack): Use unions rather than requiring potentially-nonportable casts. (obstack_chunkfun, obstack_freefun): Return void. 2014-11-03 Alan Modra obstack: fix macro return values * lib/obstack.h (obstack_next_free): Return void *. (obstack_1grow_fast, obstack_blank_fast): Return void. For __GNUC__ macros: (obstack_1grow, obstack_blank): Remove now unnecessary (void) 0. For !__GNUC__ macros: (obstack_make_room, obstack_grow, obstack_grow0) (obstack_ptr_grow_fast, obstack_int_grow_fast): Return void. 2014-11-03 Paul Eggert obstack: do not assume system-supplied obstack is size_t safe * m4/obstack.m4: New file. * modules/obstack (Files): Add it. obstack: port to platforms that #define __alignof__ * lib/obstack.c: Include if !defined __alignof__, not if !_LIBC. We don't know of any platforms that #define __alignof__, but it might be useful in tests. Conversely, glibc assumes GCC. 2014-11-03 Pádraig Brady linkat: don't unconditionally replace on GNU/Linux * m4/linkat.m4 (gl_FUNC_LINKAT): The compile check for AT_SYMLINK_FOLLOW was redundant for a few reasons. It was present to support compiling on new systems but running on the old narrow window of Linux 2.6.1[67]. It setup and cleaned up test files which weren't actually used. On non __linux__ it compile tested AT_SYMLINK_FOLLOW, but that is implicit in the following check. 2014-11-03 Pádraig Brady linkat: wrap to handle symlinks on OS X 10.10 * m4/linkat.m4 (gl_FUNC_LINKAT): linkat() is available on Yosemite but not usable because it doesn't support creating hardlinks to symlinks. Therefore add a generic test for this capability and fallback to our emulation if linkat() fails with ENOTSUP. 2014-11-02 Paul Eggert open, openat: document nonstandard FreeBSD, NetBSD O_NOFOLLOW errno * doc/posix-functions/open.texi (open): * doc/posix-functions/openat.texi (openat): Document that these functions do not set errno to ELOOP when a symlink is opened with O_NOFOLLOW. 2014-10-31 Paul Eggert obstack: add NEWS entry for recent incompatible changes * NEWS: Describe recent changes. 2014-10-30 Pádraig Brady mountlist: don't use libmount to decide on dummy/remote * lib/mountlist.c (read_file_system_list): Don't use the libmount routines to determine whether a file system is dummy or remote, as they're not currently compatible. For example the remoteness is determined on file system type (for which the list seems incomplete), rather than simply checking for a ':' in the device name. Also libmount currently determines that 'tmpfs' is a dummy file system even though it has associated storage. 2014-10-29 Paul Eggert obstack: prefer __alignof__ to alignof This is for portability to pre-4.7 GCC when compiling glibc. See Joseph S. Myers in: http://sourceware.org/ml/libc-alpha/2014-10/msg00703.html * lib/obstack.c (__alignof__) [!_LIBC && !__GNUC__]: New macro, defined by including and using . (MAX): New macro. (DEFAULT_ALIGNMENT, DEFAULT_ROUNDING): Redefine in terms of these. Do not use enums as they are not portable to some broken compilers. * modules/obstack (Depends-on): Depend on alignof, not stdalign. obstack: prefer alignof to calculating alignments by hand * lib/obstack.c: Include . (struct fooalign): Remove. (DEFAULT_ALIGNMENT): Use alignof rather than the old offsetof hack. * modules/obstack (Depends-on): Add stdalign. 2014-10-28 Paul Eggert obstack: use size_t alignments and check for overflow * lib/obstack.c, lib/obstack.h (_obstack_begin, _obstack_begin_1): * lib/obstack.c (_obstack_begin_worker, _obstack_newchunk): * lib/obstack.h (struct obstack.alignment_mask): Use _OBSTACK_SIZE_T, not int, for alignments. * lib/obstack.c (_obstack_newchunk): Fail if the size calculation overflows, e.g., when adding the alignment. 2014-10-29 Alan Modra obstack: 64-bit obstack support, part 3 This finally enables full 64-bit obstack support. The glibc shared library specific code is removed from obstack.c too, and the error handling code conditionally compiled under control of another macro, _OBSTACK_NO_ERROR_HANDLER. * lib/obstack.h: Include string.h earlier. (_OBSTACK_INTERFACE_VERSION): Define. (_OBSTACK_SIZE_T, _CHUNK_SIZE_T): Define as size_t for version 2. * lib/obstack.c: Don't include shlib-compat.h. (OBSTACK_INTERFACE_VERSION): Delete. (_OBSTACK_ELIDE_CODE): Rename from ELIDE_CODE. Define when version 1 glibc code is compatible with version 2. Don't include stdio.h for __GNU_LIBRARY. (obstack_exit_failure, print_and_abort, obstack_alloc_failed_handler): Omit when _OBSTACK_NO_ERROR_HANDLER defined. Include stdio.h here. (_obstack_compat, _obstack, _obstack_newchunk, obstack_free): Delete glibc shared library specific source. obstack: 64-bit obstack support, part 2 This gets us 4G obstack support, without changing ABI compatibility, apart from possibly introducing some signed/unsigned comparison warnings in code that uses obstack.h. a) Replace "int" size parameters, return values, and macro local vars with _OBSTACK_SIZE_T, an "unsigned int" for now. b) Make obstack.chunk_size a _CHUNK_SIZE_T, an "unsigned long" for now. c) Make all obstack macros checking available room use obstack_room. "next_free + desired > chunk_limit" may wrap the lhs for chunks allocated near the top of memory. d) Use unsigned comparisons, and macro locals to support >2G on 32-bit. * lib/obstack.h (_OBSTACK_SIZE_T): Define. Use throughout in place of "int" size parameters, return values and local vars. (_CHUNK_SIZE_T): Define. (struct obstack): Make chunk_size a _CHUNK_SIZE_T. Make temp union use an _OBSTACK_SIZE_T integer type. For __GNUC__ versions of the following macros... (obstack_room): Rename local var. (obstack_make_room): Use obstack_room. (obstack_grow, obstack_grow0, obstack_1grow, obstack_ptr_grow, obstack_int_grow, obstack_blank): Likewise. (obstack_finish): Use unsigned comparison when comparing aligned next_free against chunk_limit. (obstack_free): Cast OBJ to remove possible const qualifier. For !__GNUC__ versions of the following macros... (obstack_make_room): Use obstack_room. (obstack_grow, obstack_grow0, obstack_1grow, obstack_ptr_grow, obstack_int_grow, obstack_blank): Likewise. (obstack_finish): Use unsigned comparision when comparing aligned next_free against chunk_limit. (obstack_free): Use temp.p and same comparisons as __GNUC__ version. * lib/obstack.c (_obstack_begin_worker): Make "size" parameter _OBSTACK_SIZE_T. (_obstack_begin, _obstack_begin_1): Likewise. (_obstack_newchunk): Likewise for length parameter. Use size_t locals. (_obstack_memory_used): Return and use _OBSTACK_SIZE_T local. obstack: 64-bit obstack support, part 1 a) Correct calls to alloc function, to use a size_t arg. "long" is just wrong on targets like x86_64-mingw64 where "long" is 32 bits and "size_t" 64 bits. b) Consolidate _obstack_begin and _obstack_begin1 code. * lib/obstack.h (struct obstack ): Correct prototype to use "size_t" rather than "long". (_obstack_begin, _obstack_begin1): Likewise. (obstack_init, obstack_begin, obstack_specify_allocation_with_arg, obstack_chunkfun): Update alloc function casts. * lib/obstack.c (CALL_CHUNKFUN): Update chunkfun cast. (chunkfun_type, freefun_type): New typdefs. (_obstack_begin_worker): Split out from .. (_obstack_begin, _obstack_begin_1): ..here. obstack: tidy part 2 a) Don't be concerned about "not polluting the namespace with stddef.h symbols" in obstack.h, since gnulib string.h includes stddef.h anyway, and it seems unlikely that anyone would care. b) Don't roll our own slow memcpy in _obstack_newchunk. c) Rename obstack_free to _obstack_free. This makes the naming consistent with other obstack functions and obviates the need for __obstack_free. Ancient obstack.c defined both obstack_free and _obstack_free. We continue to do that for _LIBC via an alias. d) Miscellaneous macro fixes. The expression used to test for gcc-2.8 is clever, but nowadays gcc warns on undefined macros. You'll get an undefined macro warning if simulating an old gcc with -U__GNUC__ -U__GNUC_MINOR__ -D__GNUC__=1. * lib/obstack.h: Include stddef.h unconditionally. Formatting fixes. (PTR_INT_TYPE): Delete, replace with ptrdiff_t. (__obstack_free): Delete, update refs. (_obstack_free): Rename from obstack_free. (__extension__): Avoid undefined macro warning for __GNUC_MINOR__. (obstack_object_size, obstack_room): Parenthesise !__GNUC__ versions. * lib/obstack.c: Don't include stddef.h. (COPYING_UNIT): Delete. (_obstack_begin): Formatting fix. (_obstack_newchunk): Use memcpy to move existing object to new chunk. (_obstack_free): Rename from __obstack_free, update alias. Move undef of obstack_free to where it is needed. obstack: tidy part 1 a) Rename temp fields. temp.tempint and temp.tempptr just looks ugly to me, and result in overlong lines after later patches. b) Move error handling code, to avoid a forward declaration and to simplify later patches in this series. * lib/obstack.h (struct obstack ): Rename fields of union and update all uses. * lib/obstack.c: Include stdlib.h earlier. (obstack_exit_failure, obstack_alloc_failed_handler): Move later in file. (print_and_abort): Remove now redundant forward declaration. 2014-10-24 Paul Eggert socketlib, sockets, sys_socket: Use AC_REQUIRE to pacify autoconf. Without this change, in bleeding-edge fileutils Autoconf complains that gl_SOCKETLIB etc. are AC_REQUIREd after being invoked. * modules/socketlib (configure.ac): AC_REQUIRE gl_SOCKETLIB. * modules/sockets (configure.ac): AC_REQUIRE gl_SOCKETS. * modules/sys_socket (configure.ac): AC_REQUIRE gl_HEADER_SYS_SOCKET. 2014-10-24 Daiki Ueno iconv: avoid false detection of non-working iconv The INBUF arguments of iconv can be either 'const char **' or 'char **'. If CC is g++, the difference causes a compile error and thus leads to a false detection of non-working iconv. Reported by Eli Zaretskii and Werner LEMBERG in: . * m4/iconv.m4 (AM_ICONV_LINK): Try all possible argument types of iconv. Bump serial number. 2014-10-23 Pádraig Brady bootstrap: print more diagnostics for missing programs * build-aux/bootstrap: only suppress stderr when checking for alternative program names. This supports programs issuing non standard error messages. 2014-10-23 Pádraig Brady bootstrap: only update the gnulib submodule * build-aux/bootstrap: Restrict the "submodule update" command to the gnulib path. 2014-10-18 Paul Eggert symlinkat: port to AIX 7.1 * doc/posix-functions/symlinkat.texi (symlinkat): Mention AIX porting problem. * lib/symlinkat.c: Always include errno.h. (rpl_symlinkat) [HAVE_SYMLINKAT]: New function. * lib/unistd.in.h (symlinkat): Add replacement machinery. * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Check symlinkat behavior. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add REPLACE_SYMLINKAT. * modules/symlinkat (Depends-on): Add fstatat if REPLACE_SYMLINKAT. (configure.ac): Also compile replacement if REPLACE_SYMLINKAT. * modules/unistd (unistd.h): Substitute REPLACE_SYMLINKAT. readlinkat: port to AIX 7.1 * doc/posix-functions/readlink.texi (readlink): * doc/posix-functions/readlinkat.texi (readlinkat): Mention AIX porting problem. * lib/readlinkat.c (rpl_readlinkat) [HAVE_READLINKAT]: New function. * lib/unistd.in.h (readlinkat): Add replacement machinery. * m4/readlinkat.m4 (gl_FUNC_READLINKAT): Check readlinkat signature. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add REPLACE_READLINKAT. * modules/readlinkat (configure.ac): Also compile replacement if REPLACE_READLINKAT. * modules/unistd (unistd.h): Substitute REPLACE_READLINKAT. 2014-10-12 Karl Berry * doc/posix-functions/dirname.texi: remove spurious {. 2014-09-28 Ben Pfaff basename, dirname: Improve documentation. * doc/posix-functions/basename.texi: Mention dirname module and base_name() function. * doc/posix-functions/dirname.texi: Mention dir_name() and mdir_name() functions. Suggested by Werner LEMBERG . 2014-09-24 Jim Meyering exclude: declare exclude_patopts static * lib/exclude.c (exclude_patopts): Declare static, to avoid triggering a -Wmissing-prototypes warning. The alternative (declaring it in the .h file) would require publicizing the private "struct patopts". 2014-09-21 Werner Lemberg dirname: support compilation with C++ * lib/dirname.h: Add necessary C linkage declarations. 2014-09-16 Paul Eggert qsort_r: include Problem reported by Tom G. Christensen in: http://lists.gnu.org/r/bug-gnulib/2014-09/msg00071.html * lib/qsort.c [!_LIBC]: Include first. 2014-09-16 Dylan Cali avltree-list: avoid compiler warnings (trivial) * lib/gl_anytree_list2.h: Add _GL_ATTRIBUTE_PURE to avoid -Werror=suggest-attribute=pure. * lib/gl_array_list.c: Likewise. * lib/gl_avltree_list.c (gl_avltree_list_check_invariants): Add extern declaration to avoid -Werror=missing-prototypes. This is not added to a header as only exported for tests. Add (void) to the check_invariants() call to indicate we're discarding the result in this context which avoids -Werror=unused-value. Note we don't use ignore_value here to avoid a dependency as we know we'll not be adding __attribute__((warn_unused_result)) to check_invariants(). Add _GL_ATTRIBUTE_CONST to avoid -Werror=suggest-attribute=const. 2014-09-15 Paul Eggert qsort_r: new module, for GNU-style qsort_r * m4/qsort_r.m4: New file. Forgot to add this earlier. 2014-09-15 Werner LEMBERG strerror_r-posix: support compilation with C++ * lib/strerror_r.c: Add necessary C linkage declarations. 2014-09-11 Johannes Zarl fcntl-h: fix compilation with Intel C++ compiler (trivial) * lib/fcntl.in.h: ICC has the same issue as GCC <= 4.2. 2014-09-09 Fridolin Pokorny mountlist: use /proc/self/mountinfo when available Use libmount to propagate device IDs provided by Linux in /proc/self/mountinfo. This will give more accurate output when using df in chroot'ed environments as the device IDs are not determined by stat() which may be inaccurate within the chroot. * lib/mountlist.c (read_file_system_list): Use the libmount routines from util-linux to parse "/proc/self/mountinfo" or fall back to standard getmntent() processing. * m4/ls-mntd-fs.m4: Check for libmount only when 1-argument getmntent() is used, as is the case on GNU/Linux. 2014-09-07 Eric Wong users.txt: add cmogstored cmogstored has used gnulib since the beginning in 2012 to support GNU/Linux, FreeBSD, and GNU/kFreeBSD. 2014-09-05 Mathieu Anquetin Trivial change. * gnulib-tool: Use same options as build-aux/bootstrap to download PO files. 2014-09-05 Mathieu Anquetin Trivial change. * gnulib-tool: Fallback to wget when rsync of PO files fails. 2014-09-04 Eric Blake maintainer-makefile: add syntax check for useless ';;' * top/maint.mk (sc_prohibit_double_semicolon): New rule. 2014-09-04 Paul Eggert pthread, pthread_sigmask, threadlib: port to Ubuntu 14.04 Problem reported by Assaf Gordon in: http://lists.gnu.org/r/bug-gnulib/2014-09/msg00023.html Apparently Ubuntu is doing some fancy link-time optimization that doesn't work with -lpthread but does work with -pthread. Work around the bug by preferring -pthread to -lpthread. * m4/pthread.m4 (gl_PTHREAD_CHECK): * m4/threadlib.m4 (gl_THREADLIB_BODY): Prefer -pthread to -lpthread. * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Treat -pthread like -lpthread. 2014-09-04 Eric Blake error: drop spurious semicolon * lib/error.c (__error_at_line): Fix ';;'. 2014-09-02 Paul Eggert gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++ * m4/gnulib-common.m4 (AC_C_RESTRICT): Override AC_C_RESTRICT unconditionally. Update from autoconf, incorporating: 2014-09-02 autoconf: port 'restrict' to GCC 4.2.1 2009-01-28 Fix AC_C_RESTRICT for Sun Studio 12 C++. 2014-09-01 Paul Eggert manywarnings: add GCC 4.9 warnings Also, make it easier to maintain this in the future. * build-aux/gcc-warning.spec: Add -Wabi-tag, -Wconditionally-supported, -Wdelete-incomplete, -Winherited-variadic-ctor, -Wvirtual-move-assign, -Wzerotrip. Remove duplicates. Use tabs uniformly, as that's what 'cut' wants. * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wdate-time, -Wopenmp-simd. Use -fdiagnostics-show-option and -funit-at-a-time only for older GCC versions that need them. Handle -Wnormalized=nfc specially, so that the 'comm' command used for maintenance doesn't get confused. 2014-08-31 Paul Eggert vasnprintf: fix bugs in width computation * lib/vasnprintf.c (VASNPRINTF): Rework previous change, which introduced a bug, to avoid the warning in a different way. Avoid undefined behavior if the width arg is less than -INT_MAX. Avoid unnecessary use of HAS_WIDTH local. 2014-08-31 Thien-Thi Nguyen (tiny change) vasnprintf: Avoid signed/unsigned comparison warning. * lib/vasnprintf.c (VASNPRINTF): To calculate padding, compare end addr of generated string w/ maximum end addr. 2013-08-30 Mats Erik Andersson (tiny change) parse-datetime: Avoid pointer difference. * lib/parse-datetime.y (yylex): Compare pointer to end of buffer, instead of calculating difference of pointers. This removes an annoying warning, devoid of any use. 2014-08-29 Paul Eggert qsort_r: new module, for GNU-style qsort_r This works even on FreeBSD, which has an incompatible qsort_r API. * MODULES.html.sh: Add it. * doc/glibc-functions/qsort_r.texi: It's now supported. * lib/qsort.c: New file, taken from glibc with minor changes inside "#ifndef _LIBC" and with an unnecessary "#include " removed. * lib/qsort_r.c: New file, compiled only on FreeBSD. * lib/stdlib.in.h (qsort_r): Declare in the usual way. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): * modules/qsort_r, modules/qsort_r-tests: New files. * modules/stdlib (Makefile): Set up its defaults. * tests/test-qsort_r.c: New file. 2014-08-08 Paul Eggert vla: new module GNU RCS can use this, mostly for documentation I expect. See: http://lists.gnu.org/r/bug-gnulib/2014-08/msg00025.html * MODULES.html.sh: Add vla. * lib/vla.h, modules/vla: New files. 2014-08-07 Daiki Ueno localename: make gl_locale_name_thread really thread-safe on Windows * lib/localename.c [WINDOWS_NATIVE && !IN_LIBINTL]: Include "glthread/lock.h". (get_lcid_lock) [WINDOWS_NATIVE]: New variable. (get_lcid) [WINDOWS_NATIVE]: Lock while looking for an LCID. 2014-08-07 Paul Eggert getpass: don't assume struct termios Problem report and trivial fix by Jonas 'Sortie' Termansen in: http://lists.gnu.org/r/bug-gnulib/2014-08/msg00015.html * lib/getpass.c (getpass): Port to systems lacking struct termios. getdtablesize: fall back on sysconf (_SC_OPEN_MAX) Problem reported by Jonas 'Sortie' Termansen in: http://lists.gnu.org/r/bug-gnulib/2014-08/msg00023.html * lib/getdtablesize.c (getdtablesize) [_SC_OPEN_MAX]: Implement via sysconf for platforms that lack getdtablesize. vararrays: modernize AC_C_VARARRAYS for C11 This backports a change I recently made to Autoconf. * m4/vararrays.m4 (AC_C_VARARRAYS): Define __STDC_NO_VLA__ if VLAs are not supported, as this is what C11 does. The old macro HAVE_C_VARARRAYS is still defined if they are supported, but is now obsolescent. Also, check for VLA bug in GCC 3.4.3. 2014-08-07 Alessandro Degano (tiny change) relocatable-prog-wrapper: port gettext to OS X 10.8 + GCC 4.8.1 * build-aux/install-reloc (func_create_wrapper): Also wrap strerror-override, stat, stat. 2014-08-05 Paul Eggert sys_select: fix FD_ZERO problem on Solaris 10 * lib/sys_select.in.h: Fix Solaris 10 bug where "#include " followed by "#include " caused FD_ZERO to expand to an expression that invoked memset without necessarily including . The problem was that the first include defined _SYS_TIME_H, causing the second include to short-circuit. Fix a similar problem with followed by . Also, fix what appears to be a cut-and-paste typo, by replacing _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H with _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TYPES_H. accept: document Solaris 10 type glitch * doc/posix-functions/accept.texi (accept): Mention that Solaris 10 'accept' takes void * last arg, not socklen_t *. 2014-08-04 Paul Eggert extern-inline: port to FreeBSD, DragonFly * m4/extern-inline.m4 (gl_EXTERN_INLINE): Also assume the bug is present if either __DragonFly__ or __FreeBSD__ is defined. FreeBSD problem reported by Andrey Borzenkov in: http://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html Also, worry about __APPLE__ only if __MACH__ is also defined, as this is more consistent with the rest of gnulib. (_GL_EXTERN_INLINE_STDHEADER_BUG): Rename this internal macro from _GL_EXTERN_INLINE_APPLE_BUG, since the bug is not limited to Apple. 2014-08-01 Siddhesh Poyarekar regex: Make #if/#ifdef usage consistent for DEBUG * lib/regex_internal.c: Use "#if defined DEBUG && DEBUG" instead of the inconsistent usage of #if and #ifdef as that works with both Glibc and Gnulib's style. 2014-07-31 Eric Blake openat-die: use _Noreturn markup * modules/openat-die (Depends-on): Add snippet/_Noreturn. * lib/openat-die.c (openat_save_fail, openat_restore_fail): Mark _Noreturn. 2014-07-30 Eric Blake test-open: port to cygwin, which lacks Fortify * tests/test-open.h (ALWAYS_INLINE): New macro. (__always_inline): Don't abuse internal symbol on non-glibc. 2014-07-19 Eli Zaretskii localename: Enforce declarations before statements. * localename.c (gl_locale_name_thread): Declare 'lcid' before the first statement. 2014-07-18 Jim Meyering test-userspec: don't look up numeric user names * tests/test-userspec.c: I found a system for which getpwnam("0") returned a pointer to a non-root user's entry, and that made the test fail. (T): Prefix each numeric input with "+", to inhibit lookup. 2014-07-15 Eli Zaretskii localcharset, localename: MS-Windows support for non-default locales * lib/localcharset.c (locale_charset) [WINDOWS_NATIVE]: Before falling back on the default system codepage, try extracting the codepage from what 'setlocale' returns. This allows to take into account changes of the codeset due to non-default locale set by a previous call to 'setlocale'. * lib/localename.c (LOCALE_NAME_MAX_LENGTH) [WINDOWS_NATIVE]: Define if not already defined. (enum_locales_fn, get_lcid) [WINDOWS_NATIVE]: New functions. (gl_locale_name_thread) [WINDOWS_NATIVE]: Produce the current locale by calling 'setlocale', then converting the locale name into LCID by calling 'get_lcid'. This allows to take into account changes in the current locale from the default one, in contrast to GetThreadLocale. 2014-07-14 Daiki Ueno announce-gen: avoid failure when Digest::SHA is installed When Digest::SHA is available, Digest::SHA1 is not loaded and thus Digest::SHA1->new in print_checksums fails. * build-aux/announce-gen (digest_classes): New associative array for available message digest implementations. (print_locations): Use it. 2014-07-13 Pádraig Brady gettext: revert "update macros to version 0.19" This reverts commit 9b9370ca, as it currently requires that developers of any project that explicitly uses the gettext module or implicitly uses it through the utimens-tests or futimens-tests modules, use gettext >= 0.19. However there are some stability and availablity issues with that version at present. We can reinstate this soon, when stability is addressed and packages are more readily available. 2014-07-12 Jim Meyering regex: don't deref NULL upon heap allocation failure * lib/regcomp.c (parse_dup_op): Handle duplicate_tree failure in one more place. To trigger the segfault, configure grep -with-included-regex, build it, and run these commands: ( ulimit -v 300000; echo a|src/grep -E a+++++++++++++++++++++ ) I discovered this while replying to a private report from Jens Schleusener about excessive memory consumption by grep when using a regular expression like the one above. 2014-07-11 Paul Eggert regex: fix memory leak in compiler Fix by Andreas Schwab in: https://sourceware.org/ml/libc-alpha/2014-06/msg00503.html * lib/regcomp.c (parse_reg_exp): Deallocate partially constructed tree before returning error. 2014-07-10 Assaf Gordon announce-gen: avoid perl warnings * build-aux/announce-gen: add two minor checks to avoid "use of uninitialized value" warnings when command-line parameters are missing. 2014-07-10 Assaf Gordon localename: avoid -Wsuggest-attribute={const,pure} warnings * lib/localename.c (string_has): Tag internal function as pure. * lib/localename.h (gl_locale_name_default): Tag extern declaration as const when appropriate. 2014-07-10 Eli Zaretskii nl_langinfo: Fix last change. * lib/nl_langinfo.c (includes): Drop redundant include. 2014-07-10 Siddhesh Poyarekar error: Fix -Wundef warnings in glibc * lib/error.c [_LIBC]: Define default macros for glibc. (print_errno_message) [defined HAVE_STRERROR_R || _LIBC]: Check _LIBC before STRERROR_R_CHAR_P. error: Sync from glibc master * lib/error.c [_LIBC]: Remove INTUSE usage. (error_tail): Remove unused macro ALLOCA_LIMIT. Fix potential buffer overflow. Fix potential NULL dereference in strcmp. 2014-07-09 Pavel Hrdina (tiny change) nl_langinfo: fix build under mingw * lib/nl_langinfo.c (includes): Pick up for GetACP(). 2014-07-09 Andrew D Warshall mountlist: do not classify a bind-mounted dir entry as "dummy" * m4/ls-mntd-fs.m4: Check for hasmntopt() on platforms with 1-argument getmntent() (instead of assuming absence). 2014-07-08 Eric Blake maint.mk: less syntax-check noise when SIGPIPE is ignored * top/maint.mk (_sc_header_without_use) (sc_require_config_h_first): Parse full list. 2014-07-07 Eli Zaretskii Paul Eggert nl_langinfo: CODESET on MS-Windows and more items from localeconv * lib/langinfo.in.h (DECIMAL_POINT, THOUSANDS_SEP, GROUPING) (CURRENCY_SYMBOL, INT_CURR_SYMBOL, MON_DECIMAL_POINT) (MON_THOUSANDS_SEP, MON_GROUPING, POSITIVE_SIGN, NEGATIVE_SIGN) (FRAC_DIGITS, INT_FRAC_DIGITS, P_CS_PRECEDES, N_CS_PRECEDES) (P_SEP_BY_SPACE, N_SEP_BY_SPACE, P_SIGN_POSN, N_SIGN_POSN): Define. * lib/nl_langinfo.c: Include and early. Include if Microsoft Windows. Include if !REPLACE_NL_LANGINFO. (ctype_codeset): New function, taken from rpl_nl_langinfo, and with improvements for Microsoft Windows. (rpl_nl_langinfo): Use it. (nl_langinfo) [!REPLACE_NL_LANGINFO]: Likewise. Compute the values of RADIXCHAR, THOUSEP, GROUPING, CRNCYSTR, INT_CURR_SYMBOL, MON_DECIMAL_POINT, MON_THOUSANDS_SEP, MON_GROUPING, POSITIVE_SIGN, NEGATIVE_SIGN, FRAC_DIGITS, INT_FRAC_DIGITS, P_CS_PRECEDES, N_CS_PRECEDES, P_SEP_BY_SPACE, N_SEP_BY_SPACE, P_SIGN_POSN, and N_SIGN_POSN from the corresponding values returned by 'localeconv'. Compute the values of AM_STR, PM_STR, DAY_n, ABDAY_n, MON_n, and ABMON_n by calling 'strftime' with a suitable struct tm value. 2014-07-05 Paul Eggert Bruno Haible has stepped down as maintainer. See Karl Berry in: http://lists.gnu.org/r/bug-gnulib/2014-07/msg00004.html Daiki Ueno has volunteered to maintain libunistring; see: http://lists.gnu.org/r/bug-gnulib/2014-07/msg00005.html * modules/gen-uni-tables, modules/libunistring: * modules/libunistring-optional, modules/ucs4-utf16, modules/ucs4-utf8: * modules/unicase/base, modules/unicase/cased: * modules/unicase/empty-prefix-context: * modules/unicase/empty-suffix-context, modules/unicase/ignorable: * modules/unicase/locale-language, modules/unicase/special-casing: * modules/unicase/tocasefold, modules/unicase/tolower: * modules/unicase/totitle, modules/unicase/toupper: * modules/unicase/u16-casecmp, modules/unicase/u16-casecoll: * modules/unicase/u16-casefold, modules/unicase/u16-casemap: * modules/unicase/u16-casexfrm, modules/unicase/u16-ct-casefold: * modules/unicase/u16-ct-tolower, modules/unicase/u16-ct-totitle: * modules/unicase/u16-ct-toupper, modules/unicase/u16-is-cased: * modules/unicase/u16-is-casefolded, modules/unicase/u16-is-invariant: * modules/unicase/u16-is-lowercase, modules/unicase/u16-is-titlecase: * modules/unicase/u16-is-uppercase, modules/unicase/u16-prefix-context: * modules/unicase/u16-suffix-context, modules/unicase/u16-tolower: * modules/unicase/u16-totitle, modules/unicase/u16-toupper: * modules/unicase/u32-casecmp, modules/unicase/u32-casecoll: * modules/unicase/u32-casefold, modules/unicase/u32-casemap: * modules/unicase/u32-casexfrm, modules/unicase/u32-ct-casefold: * modules/unicase/u32-ct-tolower, modules/unicase/u32-ct-totitle: * modules/unicase/u32-ct-toupper, modules/unicase/u32-is-cased: * modules/unicase/u32-is-casefolded, modules/unicase/u32-is-invariant: * modules/unicase/u32-is-lowercase, modules/unicase/u32-is-titlecase: * modules/unicase/u32-is-uppercase, modules/unicase/u32-prefix-context: * modules/unicase/u32-suffix-context, modules/unicase/u32-tolower: * modules/unicase/u32-totitle, modules/unicase/u32-toupper: * modules/unicase/u8-casecmp, modules/unicase/u8-casecoll: * modules/unicase/u8-casefold, modules/unicase/u8-casemap: * modules/unicase/u8-casexfrm, modules/unicase/u8-ct-casefold: * modules/unicase/u8-ct-tolower, modules/unicase/u8-ct-totitle: * modules/unicase/u8-ct-toupper, modules/unicase/u8-is-cased: * modules/unicase/u8-is-casefolded, modules/unicase/u8-is-invariant: * modules/unicase/u8-is-lowercase, modules/unicase/u8-is-titlecase: * modules/unicase/u8-is-uppercase, modules/unicase/u8-prefix-context: * modules/unicase/u8-suffix-context, modules/unicase/u8-tolower: * modules/unicase/u8-totitle, modules/unicase/u8-toupper: * modules/unicase/ulc-casecmp, modules/unicase/ulc-casecoll: * modules/unicase/ulc-casexfrm, modules/unicodeio: * modules/uniconv/base, modules/uniconv/u16-conv-from-enc: * modules/uniconv/u16-conv-to-enc: * modules/uniconv/u16-strconv-from-enc: * modules/uniconv/u16-strconv-from-locale: * modules/uniconv/u16-strconv-to-enc: * modules/uniconv/u16-strconv-to-locale: * modules/uniconv/u32-conv-from-enc, modules/uniconv/u32-conv-to-enc: * modules/uniconv/u32-strconv-from-enc: * modules/uniconv/u32-strconv-from-locale: * modules/uniconv/u32-strconv-to-enc: * modules/uniconv/u32-strconv-to-locale: * modules/uniconv/u8-conv-from-enc, modules/uniconv/u8-conv-to-enc: * modules/uniconv/u8-strconv-from-enc: * modules/uniconv/u8-strconv-from-locale: * modules/uniconv/u8-strconv-to-enc: * modules/uniconv/u8-strconv-to-locale, modules/unictype/base: * modules/unictype/bidicategory-all: * modules/unictype/bidicategory-byname: * modules/unictype/bidicategory-name, modules/unictype/bidicategory-of: * modules/unictype/bidicategory-test, modules/unictype/bidiclass-all: * modules/unictype/bidiclass-byname: * modules/unictype/bidiclass-longname, modules/unictype/bidiclass-name: * modules/unictype/bidiclass-of, modules/unictype/bidiclass-test: * modules/unictype/block-all, modules/unictype/block-list: * modules/unictype/block-of, modules/unictype/block-test: * modules/unictype/category-C, modules/unictype/category-Cc: * modules/unictype/category-Cf, modules/unictype/category-Cn: * modules/unictype/category-Co, modules/unictype/category-Cs: * modules/unictype/category-L, modules/unictype/category-LC: * modules/unictype/category-Ll, modules/unictype/category-Lm: * modules/unictype/category-Lo, modules/unictype/category-Lt: * modules/unictype/category-Lu, modules/unictype/category-M: * modules/unictype/category-Mc, modules/unictype/category-Me: * modules/unictype/category-Mn, modules/unictype/category-N: * modules/unictype/category-Nd, modules/unictype/category-Nl: * modules/unictype/category-No, modules/unictype/category-P: * modules/unictype/category-Pc, modules/unictype/category-Pd: * modules/unictype/category-Pe, modules/unictype/category-Pf: * modules/unictype/category-Pi, modules/unictype/category-Po: * modules/unictype/category-Ps, modules/unictype/category-S: * modules/unictype/category-Sc, modules/unictype/category-Sk: * modules/unictype/category-Sm, modules/unictype/category-So: * modules/unictype/category-Z, modules/unictype/category-Zl: * modules/unictype/category-Zp, modules/unictype/category-Zs: * modules/unictype/category-all, modules/unictype/category-and: * modules/unictype/category-and-not, modules/unictype/category-byname: * modules/unictype/category-longname, modules/unictype/category-name: * modules/unictype/category-none, modules/unictype/category-of: * modules/unictype/category-or, modules/unictype/category-test: * modules/unictype/category-test-withtable: * modules/unictype/combining-class: * modules/unictype/combining-class-all: * modules/unictype/combining-class-byname: * modules/unictype/combining-class-longname: * modules/unictype/combining-class-name, modules/unictype/ctype-alnum: * modules/unictype/ctype-alpha, modules/unictype/ctype-blank: * modules/unictype/ctype-cntrl, modules/unictype/ctype-digit: * modules/unictype/ctype-graph, modules/unictype/ctype-lower: * modules/unictype/ctype-print, modules/unictype/ctype-punct: * modules/unictype/ctype-space, modules/unictype/ctype-upper: * modules/unictype/ctype-xdigit, modules/unictype/decimal-digit: * modules/unictype/digit, modules/unictype/joininggroup-all: * modules/unictype/joininggroup-byname: * modules/unictype/joininggroup-name, modules/unictype/joininggroup-of: * modules/unictype/joiningtype-all: * modules/unictype/joiningtype-byname: * modules/unictype/joiningtype-longname: * modules/unictype/joiningtype-name, modules/unictype/joiningtype-of: * modules/unictype/mirror, modules/unictype/numeric: * modules/unictype/property-all, modules/unictype/property-alphabetic: * modules/unictype/property-ascii-hex-digit: * modules/unictype/property-bidi-arabic-digit: * modules/unictype/property-bidi-arabic-right-to-left: * modules/unictype/property-bidi-block-separator: * modules/unictype/property-bidi-boundary-neutral: * modules/unictype/property-bidi-common-separator: * modules/unictype/property-bidi-control: * modules/unictype/property-bidi-embedding-or-override: * modules/unictype/property-bidi-eur-num-separator: * modules/unictype/property-bidi-eur-num-terminator: * modules/unictype/property-bidi-european-digit: * modules/unictype/property-bidi-hebrew-right-to-left: * modules/unictype/property-bidi-left-to-right: * modules/unictype/property-bidi-non-spacing-mark: * modules/unictype/property-bidi-other-neutral: * modules/unictype/property-bidi-pdf: * modules/unictype/property-bidi-segment-separator: * modules/unictype/property-bidi-whitespace: * modules/unictype/property-byname: * modules/unictype/property-case-ignorable: * modules/unictype/property-cased: * modules/unictype/property-changes-when-casefolded: * modules/unictype/property-changes-when-casemapped: * modules/unictype/property-changes-when-lowercased: * modules/unictype/property-changes-when-titlecased: * modules/unictype/property-changes-when-uppercased: * modules/unictype/property-combining: * modules/unictype/property-composite: * modules/unictype/property-currency-symbol: * modules/unictype/property-dash: * modules/unictype/property-decimal-digit: * modules/unictype/property-default-ignorable-code-point: * modules/unictype/property-deprecated: * modules/unictype/property-diacritic: * modules/unictype/property-extender: * modules/unictype/property-format-control: * modules/unictype/property-grapheme-base: * modules/unictype/property-grapheme-extend: * modules/unictype/property-grapheme-link: * modules/unictype/property-hex-digit: * modules/unictype/property-hyphen: * modules/unictype/property-id-continue: * modules/unictype/property-id-start: * modules/unictype/property-ideographic: * modules/unictype/property-ids-binary-operator: * modules/unictype/property-ids-trinary-operator: * modules/unictype/property-ignorable-control: * modules/unictype/property-iso-control: * modules/unictype/property-join-control: * modules/unictype/property-left-of-pair: * modules/unictype/property-line-separator: * modules/unictype/property-logical-order-exception: * modules/unictype/property-lowercase, modules/unictype/property-math: * modules/unictype/property-non-break: * modules/unictype/property-not-a-character: * modules/unictype/property-numeric: * modules/unictype/property-other-alphabetic: * modules/unictype/property-other-default-ignorable-code-point: * modules/unictype/property-other-grapheme-extend: * modules/unictype/property-other-id-continue: * modules/unictype/property-other-id-start: * modules/unictype/property-other-lowercase: * modules/unictype/property-other-math: * modules/unictype/property-other-uppercase: * modules/unictype/property-paired-punctuation: * modules/unictype/property-paragraph-separator: * modules/unictype/property-pattern-syntax: * modules/unictype/property-pattern-white-space: * modules/unictype/property-private-use: * modules/unictype/property-punctuation: * modules/unictype/property-quotation-mark: * modules/unictype/property-radical: * modules/unictype/property-sentence-terminal: * modules/unictype/property-soft-dotted: * modules/unictype/property-space: * modules/unictype/property-terminal-punctuation: * modules/unictype/property-test, modules/unictype/property-titlecase: * modules/unictype/property-unassigned-code-value: * modules/unictype/property-unified-ideograph: * modules/unictype/property-uppercase: * modules/unictype/property-variation-selector: * modules/unictype/property-white-space: * modules/unictype/property-xid-continue: * modules/unictype/property-xid-start: * modules/unictype/property-zero-width, modules/unictype/scripts: * modules/unictype/scripts-all, modules/unictype/syntax-c-ident: * modules/unictype/syntax-c-whitespace: * modules/unictype/syntax-java-ident: * modules/unictype/syntax-java-whitespace, modules/unigbrk/base: * modules/unigbrk/u16-grapheme-breaks: * modules/unigbrk/u16-grapheme-next, modules/unigbrk/u16-grapheme-prev: * modules/unigbrk/u32-grapheme-breaks: * modules/unigbrk/u32-grapheme-next, modules/unigbrk/u32-grapheme-prev: * modules/unigbrk/u8-grapheme-breaks, modules/unigbrk/u8-grapheme-next: * modules/unigbrk/u8-grapheme-prev, modules/unigbrk/uc-gbrk-prop: * modules/unigbrk/uc-is-grapheme-break: * modules/unigbrk/ulc-grapheme-breaks, modules/unilbrk/base: * modules/unilbrk/tables, modules/unilbrk/u16-possible-linebreaks: * modules/unilbrk/u16-width-linebreaks: * modules/unilbrk/u32-possible-linebreaks: * modules/unilbrk/u32-width-linebreaks: * modules/unilbrk/u8-possible-linebreaks: * modules/unilbrk/u8-width-linebreaks, modules/unilbrk/ulc-common: * modules/unilbrk/ulc-possible-linebreaks: * modules/unilbrk/ulc-width-linebreaks, modules/uniname/base: * modules/uniname/uniname, modules/uninorm/base: * modules/uninorm/canonical-decomposition: * modules/uninorm/compat-decomposition, modules/uninorm/composition: * modules/uninorm/decompose-internal, modules/uninorm/decomposing-form: * modules/uninorm/decomposition, modules/uninorm/decomposition-table: * modules/uninorm/filter, modules/uninorm/nfc, modules/uninorm/nfd: * modules/uninorm/nfkc, modules/uninorm/nfkd: * modules/uninorm/u16-normalize, modules/uninorm/u16-normcmp: * modules/uninorm/u16-normcoll, modules/uninorm/u16-normxfrm: * modules/uninorm/u32-normalize, modules/uninorm/u32-normcmp: * modules/uninorm/u32-normcoll, modules/uninorm/u32-normxfrm: * modules/uninorm/u8-normalize, modules/uninorm/u8-normcmp: * modules/uninorm/u8-normcoll, modules/uninorm/u8-normxfrm: * modules/unistdio/base, modules/unistdio/u-printf-args: * modules/unistdio/u16-asnprintf, modules/unistdio/u16-asprintf: * modules/unistdio/u16-printf-parse, modules/unistdio/u16-snprintf: * modules/unistdio/u16-sprintf, modules/unistdio/u16-u16-asnprintf: * modules/unistdio/u16-u16-asprintf, modules/unistdio/u16-u16-snprintf: * modules/unistdio/u16-u16-sprintf: * modules/unistdio/u16-u16-vasnprintf: * modules/unistdio/u16-u16-vasprintf: * modules/unistdio/u16-u16-vsnprintf: * modules/unistdio/u16-u16-vsprintf, modules/unistdio/u16-vasnprintf: * modules/unistdio/u16-vasprintf, modules/unistdio/u16-vsnprintf: * modules/unistdio/u16-vsprintf, modules/unistdio/u32-asnprintf: * modules/unistdio/u32-asprintf, modules/unistdio/u32-printf-parse: * modules/unistdio/u32-snprintf, modules/unistdio/u32-sprintf: * modules/unistdio/u32-u32-asnprintf: * modules/unistdio/u32-u32-asprintf, modules/unistdio/u32-u32-snprintf: * modules/unistdio/u32-u32-sprintf: * modules/unistdio/u32-u32-vasnprintf: * modules/unistdio/u32-u32-vasprintf: * modules/unistdio/u32-u32-vsnprintf: * modules/unistdio/u32-u32-vsprintf, modules/unistdio/u32-vasnprintf: * modules/unistdio/u32-vasprintf, modules/unistdio/u32-vsnprintf: * modules/unistdio/u32-vsprintf, modules/unistdio/u8-asnprintf: * modules/unistdio/u8-asprintf, modules/unistdio/u8-printf-parse: * modules/unistdio/u8-snprintf, modules/unistdio/u8-sprintf: * modules/unistdio/u8-u8-asnprintf, modules/unistdio/u8-u8-asprintf: * modules/unistdio/u8-u8-snprintf, modules/unistdio/u8-u8-sprintf: * modules/unistdio/u8-u8-vasnprintf, modules/unistdio/u8-u8-vasprintf: * modules/unistdio/u8-u8-vsnprintf, modules/unistdio/u8-u8-vsprintf: * modules/unistdio/u8-vasnprintf, modules/unistdio/u8-vasprintf: * modules/unistdio/u8-vsnprintf, modules/unistdio/u8-vsprintf: * modules/unistdio/ulc-asnprintf, modules/unistdio/ulc-asprintf: * modules/unistdio/ulc-fprintf, modules/unistdio/ulc-printf-parse: * modules/unistdio/ulc-snprintf, modules/unistdio/ulc-sprintf: * modules/unistdio/ulc-vasnprintf, modules/unistdio/ulc-vasprintf: * modules/unistdio/ulc-vfprintf, modules/unistdio/ulc-vsnprintf: * modules/unistdio/ulc-vsprintf, modules/unistr/base: * modules/unistr/u16-check, modules/unistr/u16-chr: * modules/unistr/u16-cmp, modules/unistr/u16-cmp2: * modules/unistr/u16-cpy, modules/unistr/u16-cpy-alloc: * modules/unistr/u16-endswith, modules/unistr/u16-mblen: * modules/unistr/u16-mbsnlen, modules/unistr/u16-mbtouc: * modules/unistr/u16-mbtouc-unsafe, modules/unistr/u16-mbtoucr: * modules/unistr/u16-move, modules/unistr/u16-next: * modules/unistr/u16-prev, modules/unistr/u16-set: * modules/unistr/u16-startswith, modules/unistr/u16-stpcpy: * modules/unistr/u16-stpncpy, modules/unistr/u16-strcat: * modules/unistr/u16-strchr, modules/unistr/u16-strcmp: * modules/unistr/u16-strcoll, modules/unistr/u16-strcpy: * modules/unistr/u16-strcspn, modules/unistr/u16-strdup: * modules/unistr/u16-strlen, modules/unistr/u16-strmblen: * modules/unistr/u16-strmbtouc, modules/unistr/u16-strncat: * modules/unistr/u16-strncmp, modules/unistr/u16-strncpy: * modules/unistr/u16-strnlen, modules/unistr/u16-strpbrk: * modules/unistr/u16-strrchr, modules/unistr/u16-strspn: * modules/unistr/u16-strstr, modules/unistr/u16-strtok: * modules/unistr/u16-to-u32, modules/unistr/u16-to-u8: * modules/unistr/u16-uctomb, modules/unistr/u32-check: * modules/unistr/u32-chr, modules/unistr/u32-cmp: * modules/unistr/u32-cmp2, modules/unistr/u32-cpy: * modules/unistr/u32-cpy-alloc, modules/unistr/u32-endswith: * modules/unistr/u32-mblen, modules/unistr/u32-mbsnlen: * modules/unistr/u32-mbtouc, modules/unistr/u32-mbtouc-unsafe: * modules/unistr/u32-mbtoucr, modules/unistr/u32-move: * modules/unistr/u32-next, modules/unistr/u32-prev: * modules/unistr/u32-set, modules/unistr/u32-startswith: * modules/unistr/u32-stpcpy, modules/unistr/u32-stpncpy: * modules/unistr/u32-strcat, modules/unistr/u32-strchr: * modules/unistr/u32-strcmp, modules/unistr/u32-strcoll: * modules/unistr/u32-strcpy, modules/unistr/u32-strcspn: * modules/unistr/u32-strdup, modules/unistr/u32-strlen: * modules/unistr/u32-strmblen, modules/unistr/u32-strmbtouc: * modules/unistr/u32-strncat, modules/unistr/u32-strncmp: * modules/unistr/u32-strncpy, modules/unistr/u32-strnlen: * modules/unistr/u32-strpbrk, modules/unistr/u32-strrchr: * modules/unistr/u32-strspn, modules/unistr/u32-strstr: * modules/unistr/u32-strtok, modules/unistr/u32-to-u16: * modules/unistr/u32-to-u8, modules/unistr/u32-uctomb: * modules/unistr/u8-check, modules/unistr/u8-chr: * modules/unistr/u8-cmp, modules/unistr/u8-cmp2, modules/unistr/u8-cpy: * modules/unistr/u8-cpy-alloc, modules/unistr/u8-endswith: * modules/unistr/u8-mblen, modules/unistr/u8-mbsnlen: * modules/unistr/u8-mbtouc, modules/unistr/u8-mbtouc-unsafe: * modules/unistr/u8-mbtoucr, modules/unistr/u8-move: * modules/unistr/u8-next, modules/unistr/u8-prev: * modules/unistr/u8-set, modules/unistr/u8-startswith: * modules/unistr/u8-stpcpy, modules/unistr/u8-stpncpy: * modules/unistr/u8-strcat, modules/unistr/u8-strchr: * modules/unistr/u8-strcmp, modules/unistr/u8-strcoll: * modules/unistr/u8-strcpy, modules/unistr/u8-strcspn: * modules/unistr/u8-strdup, modules/unistr/u8-strlen: * modules/unistr/u8-strmblen, modules/unistr/u8-strmbtouc: * modules/unistr/u8-strncat, modules/unistr/u8-strncmp: * modules/unistr/u8-strncpy, modules/unistr/u8-strnlen: * modules/unistr/u8-strpbrk, modules/unistr/u8-strrchr: * modules/unistr/u8-strspn, modules/unistr/u8-strstr: * modules/unistr/u8-strtok, modules/unistr/u8-to-u16: * modules/unistr/u8-to-u32, modules/unistr/u8-uctomb, modules/unitypes: * modules/uniwbrk/base, modules/uniwbrk/table: * modules/uniwbrk/u16-wordbreaks, modules/uniwbrk/u32-wordbreaks: * modules/uniwbrk/u8-wordbreaks, modules/uniwbrk/ulc-wordbreaks: * modules/uniwbrk/wordbreak-property, modules/uniwidth/base: * modules/uniwidth/u16-strwidth, modules/uniwidth/u16-width: * modules/uniwidth/u32-strwidth, modules/uniwidth/u32-width: * modules/uniwidth/u8-strwidth, modules/uniwidth/u8-width: * modules/uniwidth/width, modules/utf16-ucs4: * modules/utf16-ucs4-unsafe, modules/utf8-ucs4: * modules/utf8-ucs4-unsafe: Change maintainer from Bruno Haible to Daiki Ueno. This is my guess at the libunistring modules; please feel free to fix if I guessed incorrectly. * modules/accept4, modules/acl, modules/acos, modules/acosf: * modules/alignof, modules/amemxfrm, modules/ansi-c++-opt: * modules/areadlink, modules/array-list, modules/array-mergesort: * modules/array-oset, modules/asin, modules/asinf, modules/astrxfrm: * modules/atan, modules/atan2, modules/atan2f, modules/atanf: * modules/avltree-list, modules/avltree-oset, modules/avltreehash-list: * modules/binary-io, modules/bison-i18n, modules/btowc: * modules/c-ctype, modules/c-strcase, modules/c-strcaseeq: * modules/c-strcasestr, modules/c-strstr, modules/calloc-posix: * modules/canonicalize-lgpl, modules/careadlinkat, modules/carray-list: * modules/cbrt, modules/cbrt-ieee, modules/cbrtf, modules/cbrtf-ieee: * modules/cbrtl, modules/cbrtl-ieee, modules/ceil, modules/ceil-ieee: * modules/ceilf, modules/ceilf-ieee, modules/ceill, modules/ceill-ieee: * modules/chdir, modules/classpath, modules/clean-temp, modules/close: * modules/closedir, modules/concat-filename, modules/copy-file: * modules/copysign, modules/copysignf, modules/copysignl, modules/cos: * modules/cosf, modules/cosh, modules/coshf, modules/csharpcomp: * modules/csharpcomp-script, modules/csharpexec: * modules/csharpexec-script, modules/ctype, modules/diffseq: * modules/dprintf, modules/dprintf-posix, modules/dup: * modules/dup2-obsolete, modules/dup3, modules/duplocale: * modules/eealloc, modules/environ, modules/erf, modules/erfc: * modules/errno, modules/execute, modules/exp, modules/exp-ieee: * modules/exp2, modules/exp2-ieee, modules/exp2f, modules/exp2f-ieee: * modules/exp2l, modules/exp2l-ieee, modules/expf, modules/expf-ieee: * modules/expl, modules/expl-ieee, modules/expm1, modules/expm1-ieee: * modules/expm1f, modules/expm1f-ieee, modules/expm1l: * modules/expm1l-ieee, modules/fabs, modules/fabs-ieee, modules/fabsf: * modules/fabsf-ieee, modules/fabsl, modules/fabsl-ieee: * modules/fatal-signal, modules/fbufmode, modules/fchdir: * modules/fclose, modules/fd-hook, modules/fdopen, modules/filename: * modules/findprog, modules/findprog-lgpl, modules/floor: * modules/floor-ieee, modules/floorf, modules/floorf-ieee: * modules/floorl, modules/floorl-ieee, modules/fma, modules/fma-ieee: * modules/fmaf, modules/fmaf-ieee, modules/fmal, modules/fmal-ieee: * modules/fmod, modules/fmod-ieee, modules/fmodf, modules/fmodf-ieee: * modules/fmodl, modules/fmodl-ieee, modules/fopen, modules/fpieee: * modules/fprintf-posix, modules/fpucw, modules/fpurge: * modules/freadable, modules/freadahead, modules/freadptr: * modules/freadseek, modules/freopen, modules/frexp: * modules/frexp-ieee, modules/frexp-nolibm, modules/frexpf: * modules/frexpf-ieee, modules/frexpl, modules/frexpl-ieee: * modules/frexpl-nolibm, modules/fseek, modules/fseeko: * modules/fseterr, modules/fstat, modules/fstrcmp, modules/ftell: * modules/ftello, modules/full-read, modules/full-write: * modules/fwritable, modules/fwriteerror, modules/gcd: * modules/get-rusage-as, modules/get-rusage-data: * modules/getdtablesize, modules/getrusage, modules/gettext: * modules/gettext-h, modules/git-merge-changelog, modules/gperf: * modules/grantpt, modules/havelib, modules/host-cpu-c-abi: * modules/hostent, modules/hypot, modules/hypot-ieee, modules/hypotf: * modules/hypotf-ieee, modules/hypotl, modules/hypotl-ieee: * modules/iconv, modules/iconv-h, modules/iconv_open: * modules/iconv_open-utf, modules/idpriv-drop, modules/idpriv-droptemp: * modules/ilogb, modules/ilogbf, modules/ilogbl, modules/imaxabs: * modules/imaxdiv, modules/integer_length, modules/integer_length_l: * modules/integer_length_ll, modules/ioctl, modules/isatty: * modules/isblank, modules/isnand, modules/isnand-nolibm: * modules/isnanf, modules/isnanf-nolibm, modules/isnanl: * modules/isnanl-nolibm, modules/iswblank, modules/iswctype: * modules/j0, modules/j1, modules/javacomp, modules/javacomp-script: * modules/javaexec, modules/javaexec-script, modules/javaversion: * modules/jn, modules/langinfo, modules/ldd, modules/ldexp: * modules/ldexp-ieee, modules/ldexpf, modules/ldexpf-ieee: * modules/ldexpl, modules/ldexpl-ieee, modules/lgamma: * modules/lib-symbol-visibility, modules/libsigsegv: * modules/linked-list, modules/linkedhash-list, modules/list: * modules/localcharset, modules/locale, modules/localeconv: * modules/localename, modules/lock, modules/log, modules/log-ieee: * modules/log10, modules/log10-ieee, modules/log10f: * modules/log10f-ieee, modules/log10l, modules/log10l-ieee: * modules/log1p, modules/log1p-ieee, modules/log1pf: * modules/log1pf-ieee, modules/log1pl, modules/log1pl-ieee: * modules/log2, modules/log2-ieee, modules/log2f, modules/log2f-ieee: * modules/log2l, modules/log2l-ieee, modules/logb, modules/logb-ieee: * modules/logbf, modules/logbf-ieee, modules/logbl, modules/logbl-ieee: * modules/logf, modules/logf-ieee, modules/login_tty: * modules/logl-ieee, modules/malloc-posix, modules/malloca: * modules/mbchar, modules/mbfile, modules/mbiter, modules/mbmemcasecmp: * modules/mbmemcasecoll, modules/mbrlen, modules/mbrtowc: * modules/mbscasecmp, modules/mbscasestr, modules/mbschr: * modules/mbscspn, modules/mbsinit, modules/mbslen: * modules/mbsncasecmp, modules/mbsnlen, modules/mbsnrtowcs: * modules/mbspbrk, modules/mbspcasecmp, modules/mbsrchr: * modules/mbsrtowcs, modules/mbssep, modules/mbsspn, modules/mbsstr: * modules/mbstok_r, modules/mbswidth, modules/mbtowc, modules/mbuiter: * modules/memchr-obsolete, modules/memcmp2, modules/minmax: * modules/mkdtemp, modules/mkostemp, modules/mktime-internal: * modules/modf, modules/modf-ieee, modules/modff, modules/modff-ieee: * modules/modfl, modules/modfl-ieee, modules/msvc-inval: * modules/msvc-nothrow, modules/multiarch, modules/nextafter: * modules/nl_langinfo, modules/no-c++, modules/nocrash: * modules/nonblocking, modules/open, modules/opendir, modules/openmp: * modules/oset, modules/pclose, modules/pipe, modules/pipe-filter-gi: * modules/pipe-filter-ii, modules/pipe2, modules/poll-h: * modules/posix_spawn, modules/posix_spawn-internal: * modules/posix_spawn_file_actions_addclose: * modules/posix_spawn_file_actions_adddup2: * modules/posix_spawn_file_actions_addopen: * modules/posix_spawn_file_actions_destroy: * modules/posix_spawn_file_actions_init: * modules/posix_spawnattr_destroy, modules/posix_spawnattr_getflags: * modules/posix_spawnattr_getpgroup: * modules/posix_spawnattr_getschedparam: * modules/posix_spawnattr_getschedpolicy: * modules/posix_spawnattr_getsigdefault: * modules/posix_spawnattr_getsigmask, modules/posix_spawnattr_init: * modules/posix_spawnattr_setflags, modules/posix_spawnattr_setpgroup: * modules/posix_spawnattr_setschedparam: * modules/posix_spawnattr_setschedpolicy: * modules/posix_spawnattr_setsigdefault: * modules/posix_spawnattr_setsigmask, modules/posix_spawnp: * modules/pow, modules/powf, modules/printf-frexp: * modules/printf-frexpl, modules/printf-posix, modules/printf-safe: * modules/progname, modules/propername, modules/pselect: * modules/pthread_sigmask, modules/ptsname, modules/ptsname_r: * modules/qacl, modules/quotearg-simple, modules/raise, modules/random: * modules/rbtree-list, modules/rbtree-oset, modules/rbtreehash-list: * modules/read, modules/readdir, modules/readlink: * modules/realloc-posix, modules/regex-quote, modules/relocatable-lib: * modules/relocatable-lib-lgpl, modules/relocatable-perl: * modules/relocatable-prog, modules/relocatable-prog-wrapper: * modules/relocatable-script, modules/remainder: * modules/remainder-ieee, modules/remainderf, modules/remainderf-ieee: * modules/remainderl, modules/remainderl-ieee, modules/rewinddir: * modules/rint, modules/rint-ieee, modules/rintf, modules/rintf-ieee: * modules/rintl, modules/rintl-ieee, modules/round-ieee: * modules/roundf-ieee, modules/roundl-ieee, modules/safe-read: * modules/safe-write, modules/sched, modules/servent, modules/setenv: * modules/setlocale, modules/sh-quote, modules/shutdown: * modules/signal, modules/signbit, modules/sigpipe: * modules/sigpipe-die, modules/sigprocmask, modules/sin, modules/sinf: * modules/sinh, modules/sinhf, modules/size_max, modules/sleep: * modules/snippet/arg-nonnull, modules/snippet/c++defs: * modules/snippet/link-warning, modules/snippet/unused-parameter: * modules/snprintf, modules/snprintf-posix, modules/spawn: * modules/spawn-pipe, modules/sprintf-posix, modules/sqrt: * modules/sqrt-ieee, modules/sqrtf, modules/sqrtf-ieee: * modules/sqrtl-ieee, modules/stdalign, modules/stdarg: * modules/stdbool, modules/stpcpy, modules/stpncpy, modules/strcase: * modules/strcasestr, modules/strcasestr-simple, modules/strcspn: * modules/streq, modules/strerror_r-posix, modules/striconv: * modules/striconveh, modules/striconveha, modules/strncat: * modules/strnlen1, modules/strpbrk, modules/strtod-obsolete: * modules/sublist, modules/sys_resource, modules/sys_utsname: * modules/sys_wait, modules/system-posix, modules/system-quote: * modules/tan, modules/tanf, modules/tanh, modules/tanhf: * modules/tcgetsid, modules/termios, modules/threadlib, modules/tls: * modules/tmpdir, modules/towctrans, modules/trunc, modules/trunc-ieee: * modules/truncf, modules/truncf-ieee, modules/truncl: * modules/truncl-ieee, modules/ttyname_r, modules/uname: * modules/unlockpt, modules/unsetenv, modules/vasnprintf: * modules/vasnprintf-posix, modules/vasprintf, modules/vasprintf-posix: * modules/vdprintf, modules/vdprintf-posix, modules/vfprintf-posix: * modules/vfscanf, modules/vma-iter, modules/vprintf-posix: * modules/vscanf, modules/vsnprintf-posix, modules/vsprintf-posix: * modules/wait-process, modules/waitpid, modules/wcpcpy: * modules/wcpncpy, modules/wcrtomb, modules/wcscasecmp, modules/wcscat: * modules/wcschr, modules/wcscmp, modules/wcscoll, modules/wcscpy: * modules/wcscspn, modules/wcsdup, modules/wcslen, modules/wcsncasecmp: * modules/wcsncat, modules/wcsncmp, modules/wcsncpy, modules/wcsnlen: * modules/wcsnrtombs, modules/wcspbrk, modules/wcsrchr: * modules/wcsrtombs, modules/wcsspn, modules/wcsstr, modules/wcstok: * modules/wcswidth, modules/wcsxfrm, modules/wctob, modules/wctomb: * modules/wctrans, modules/wctype, modules/wcwidth, modules/wmemchr: * modules/wmemcmp, modules/wmemcpy, modules/wmemmove, modules/wmemset: * modules/write, modules/xconcat-filename, modules/xlist: * modules/xmalloca, modules/xoset, modules/xprintf-posix: * modules/xreadlink, modules/xsetenv, modules/xsize, modules/xstriconv: * modules/xstriconveh, modules/xsublist, modules/xvasprintf-posix: * modules/y0, modules/y1, modules/yn: Remove Bruno Haible as maintainer; if he's the sole maintainer, change the maintainer to 'all'. Let's hope someone volunteers. 2014-06-27 Paul Eggert mktime: merge #if/#ifdef usage from glibc * lib/mktime.c: Use "#if defined DEBUG && DEBUG", not "#if DEBUG", as that works with both Glibc's and Gnulib's style. See thread starting at Siddhesh Poyarekar's bug report at: http://lists.gnu.org/r/bug-gnulib/2014-06/msg00102.html 2014-06-20 Alfred M. Szmidt git-version-gen: improve option descriptions * build-aux/git-version-gen: Mention that --prefix and --fallback have a mandatory argument. 2014-06-19 Paul Eggert regex: fix memory leak in compiler Fix by Andreas Schwab in: https://sourceware.org/ml/libc-alpha/2014-06/msg00462.html * lib/regcomp.c (parse_expression): Deallocate partially constructed tree before returning error. regex: merge patch from libc 2014-02-12 Joseph Myers Combine __USE_BSD and __USE_SVID into __USE_MISC. * lib/regex.h [__USE_BSD]: Change condition to [__USE_MISC]. 2014-06-17 Paul Eggert acl: port to gcc -Wredundant-decls From a request by Dmitry Antipov in: http://lists.gnu.org/r/emacs-devel/2014-06/msg00263.html * lib/acl.h (_GL_ACL_H): New macro. Protect entire contents with "#ifndef _GL_ACL_H". 2014-06-11 Bruce Korb Jim Meyering parse-duration: eliminate 68-year duration limit * lib/parse-duration.c: Include "intprops.h". (TIME_MAX): Rename to MAX_DURATION and define to TYPE_MAXIMUM(time_t). * modules/parse-duration (Depends-on): Add intprops. Reported by Jonas 'Sortie' Termansen. 2014-06-14 Paul Eggert pthread: don't assume AC_CANONICAL_HOST, port better to Solaris, etc. * modules/pthread (Depends-on): Add 'extensions', as it defines _POSIX_PTHREAD_SEMANTICS, which is needed on Solaris. (configure.ac-early): New section. * m4/pthread.m4 (gl_PTHREAD_CHECK): Revert previous change, as it is no longer needed. 2014-06-14 Pádraig Brady pthread: define thread-safe macros on some platforms * m4/pthread.m4 (gl_PTHREAD_CHECK): Define macros needed for thread-safe operation on some platforms. 2014-06-13 Paul Eggert regex: don't be multithreaded if USE_UNLOCKED_IO. Problem reported by Michael Felt in: http://bugs.gnu.org/17773 * lib/regex_internal.h: Do not use multithreaded version if USE_UNLOCKED_IO is defined. This is a hack, but it works around a porting bug with coreutils 8.22 on AIX 7.1. 2014-06-11 Daiki Ueno gettext: update macros to version 0.19 * m4/intl.m4, m4/po.m4: Update from gettext-0.19. In particular, depend on gl_EXTERN_INLINE and drop support for older Bison versions. 2014-06-10 Pádraig Brady select,poll: fix console handle check on windows 8 lib/poll.c (IsConsoleHandle): Change from testing the lower 2 bits of the handle to the more expensive but accurate syscall. lib/select.c: Likewise. 2014-06-10 Eli Zaretskii select: fix waiting on anonymous pipes on MS-Windows * lib/select.c (rpl_select): Fall back to polling when select() indicates there is nothing to check, while due to the timeout not expiring, activity is indicated on one of the handles. Also clear the TIMEOUT argument if the timer does expire. 2014-06-10 Eli Zaretskii times: fix to return non constant value on MS-Windows * lib/times.c (times): Don't use the process creation time, rather clock() which on windows returns the number of clock ticks since the process started. 2014-06-09 Michael Goffioul isatty: fix to work on windows 8 * lib/isatty.c (IsConsoleHandle): Change from testing the lower 2 bits of the handle to the more expensive but accurate syscall. 2014-06-07 Paul Eggert maint: fix typo in fdl.texi * doc/fdl.texi: Fix typo (missing '@'). Somehow this was in fdl.texi but not fdl-1.3.texi. 2014-06-06 Ben Walton mountlist: avoid hasmntopt const type warning on solaris * lib/mountlist.c: Solaris defines the OPT param of hasmntopt() with char * instead of const char *. Passing the constant string "ignore" generates a compiler warning. For Solaris cast MNT_IGNORE to avoid the warning. 2014-06-04 Eric Blake maintainer-makefile: delete obsolete code * top/maint.mk (build_aux): Drop old code, as threatened. maintainer-makefile: avoid spurious error messages * top/maint.mk (syntax-check): Guard definition and use of $(shell) by whether Makefile is present. 2014-06-03 Ben Walton rename: avoid unused-but-set-variable compiler warning * lib/rename.c (rpl_rename): In the non-Win32 variant of rpl_rename, it is possible that dst_exists may be set but not used. Mark it with the unused attribute to avoid compiler warnings. 2014-06-02 Ben Walton rename: mark a label as potentially unused * lib/rename.c (rpl_rename): Avoid compiler warnings seen on Solaris, by marking the out label as potentially unused. * m4/gnulib-common.m4: Mention the need for the trailing ; for C++. 2014-06-01 Paul Eggert gnulib-common.m4: Fix typo in _GL_UNUSED_LABEL. * m4/gnulib-common.m4 (_GL_UNUSED_LABEL): Omit trailing semicolon. 2014-06-02 Ben Walton acl: apply pure attribute to two functions * lib/acl-internal.h (acl_nontrivial, acl_ace_nontrivial): Mark as "pure" as flagged by gcc 4.9 on Solaris 10. 2014-06-01 Pádraig Brady gnulib-common.m4: add _GL_UNUSED_LABEL * m4/gnulib-common.m4: Add _GL_UNUSED_LABEL which is similar to _GL_UNUSED, but handles g++ < 4.5 not supporting this syntax. 2014-05-31 Paul Eggert dup2, fcntl, fcntl-h: port to AIX 7.1 This fixes some porting problems discovered when testing the latest grep snapshot on AIX 7.1. I don't think if fixes any bugs in grep but it could be important for other applications. * doc/posix-functions/dup2.texi: * doc/posix-functions/fcntl.texi: * doc/posix-headers/fcntl.texi: Document AIX bugs. * lib/fcntl.in.h (O_CLOEXEC, O_NOFOLLOW, O_TTY_INIT) [_AIX]: Define to 0 if outside 'int' range. * m4/dup2.m4 (gl_FUNC_DUP2): * m4/fcntl.m4 (gl_FUNC_FCNTL): Check for getdtablesize. If it's available, test a value just outside its range instead of testing 1000000. When cross-compiling, guess that AIX will fail this improved test. 2014-05-30 Paul Eggert printf, config.rpath: Port to FreeBSD 10. Problem reported by Tijl Coosemans in: http://lists.gnu.org/r/bug-gnulib/2014-05/msg00078.html * build-aux/config.rpath (hardcode_libdir_flag_spec) (hardcode_direct): Simplify FreeBSD configuration. (library_names_spec): Don't mishandle FreeBSD 10+. * m4/printf.m4 (gl_PRINTF_SIZES_C99, gl_PRINTF_LONG_DOUBLE) (gl_PRINTF_INFINITE_LONG_DOUBLE, gl_PRINTF_DIRECTIVE_F) (gl_SNPRINTF_TRUNCATION_C99, gl_SNPRINTF_RETVAL_C99) (gl_SNPRINTF_DIRECTIVE_N, gl_VSNPRINTF_ZEROSIZE_C99): Don't mishandle FreeBSD 10+ when cross-compiling. ftoastr: work around compiler bug in IBM xlc 12.1 * lib/ftoastr.h (_GL_FLT_PREC_BOUND, _GL_DBL_PREC_BOUND) (_GL_LDBL_PREC_BOUND): Make these macros, not enums, to work around a compiler bug in IBM xlc 12.1.0.0: it complains '"ftoastr.c", line 80.37: 1506-045 (S) Undeclared identifier _GL_FLT_PREC_BOUND.' 2014-05-30 Kieran Colford valgrind-tests: fixed misleading help message * m4/valgrind-tests.m4: The help message generated by configure implied that valgrind was disabled by default, which it wasn't. Adjusted the help message using s/enable/disable/ to clarify. 2014-05-30 Ulrich Weigand isfinite, isinf, isnan tests: fix for little-endian PowerPC * tests/test-isfinite.c (test_isfinitel): Only manipulate the first double of a PowerPC "double double" pair. * tests/test-isinf.c (test_isinfl): Likewise. * tests/test-isnan.c (test_long_double): Likewise. * tests/test-isnanl.h (main): Likewise. * tests/test-signbit.c (test_signbitl): Likewise. 2014-05-29 Paul Eggert exclude-tests: port to AIX 7.1 * modules/exclude-tests (test_exclude_LDADD): Add $(LIBTHREAD). Needed on AIX 7.1 with xlc V12.1, otherwise it won't link because the regex code uses locks. 2014-05-28 Paul Eggert pthread_sigmask, timer-time: use gl_THREADLIB only if needed Without this fix, Emacs would sometimes call sigprocmask instead of pthread_sigmask, which is a no-no in multithreaded applications. Problem reported by Jorgen Schaefer in . * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Suppress check for pthread_sigmask working without -lpthread if the application always links with -lpthread. Do not link with $LIBMULTITHREAD if gl_THREADLIB is not defined. * m4/timer_time.m4 (gl_TIMER_TIME): Require gl_THREADLIB only if it is defined. Do not append $LIBMULTITHREAD to LIB_TIMER_TIME if gl_THREADLIB is not defined. 2014-05-27 Sylvain Beucler . gnulib-tool: wget translations using --no-verbose rather than --quiet This allows the user to see error messages if any (--quiet hides them) * gnulib-tool: Invoke wget with --no-verbose, rather than --quiet. 2014-05-27 Sylvain Beucler gnulib-tool: adjust translation wget to avoid a https redirection Context: http://translationproject.org/latest/gnulib redirects to https://translationproject.org/latest/gnulib/ Rationale: if the user falls back to wget, she doesn't have rsync and is probably in a minimal build environment, where packages such as 'ca-certificates' are missing as well, resulting in a failed (and difficult to detect since ignored) translation initial fetch. Consequently let's avoid https if possible, and add the missing trailing slash. This also avoids an unnecessary 302 redirection. * gnulib-tool: Add trailing slash to gnulib URL. 2014-05-22 Pádraig Brady getlogin_r-tests: check return value rather than errno * tests/test-getlogin_r.c (main): As per POSIX we should be verifying the return value from getlogin_r() rather than errno. 2014-05-22 Pádraig Brady getlogin_r-tests: fix various issues in recent change * tests/test-getlogin_r.c: Include required headers that were missed in recent commit eec20b4e. Also consistently check the errno rather than the return value from getlogin_r as POSIX only specifies that non zero is returned on error. * modules/getlogin_r-tests (configure.ac): Add the check for ttyname(). 2014-05-21 Paul Eggert fchdir: port 'open' and 'close' redefinitions to AIX 7.1 * lib/chown.c, lib/clean-temp.c, lib/copy-file.c, lib/execute.c: * lib/fsusage.c, lib/gc-gnulib.c, lib/javacomp.c, lib/mountlist.c: * lib/openat-proc.c, lib/pagealign_alloc.c, lib/progreloc.c: * lib/spawn-pipe.c: Do not #undef 'open' and 'close'. AIX 7 does '#define open open64' and then 'int open64(const char *, int, ...);', which means the declaration for 'open' gets lost if we later '#undef open'. Discovered while building grep pretest 2.18.151-1c770 on AIX 7.1, where the compilation reported the non-fatal error "In function 'openat_proc_name' ... warning: implicit declaration of function 'open'". In this case the error is relatively harmless, but in other cases it might not be so minor. 2014-05-20 Paul Eggert xalloc: don't potentially generate invalid code for xmemdup calls * lib/xalloc.h (xmemdup): Do not mark with _GL_ATTRIBUTE_ALLOC, as this function can initialize the newly-allocated storage with new pointers, which means this function is not malloc-like. See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56955 2014-05-19 Pádraig Brady getlogin_r-tests: avoid false failure under sudo/ssh etc. * tests/test-getlogin_r.c (main): Sync up with test-getlogin.c changes from commit 97249cf29 to not depend on environment variables. 2014-05-18 Pádraig Brady getlogin-tests: avoid false failure under cron * tests/test-getlogin.c (main): Avoid verifying errnos from ttyname() since that's not what's under test. Centos 6 was seen to return EINVAL for ttyname() when run from cron. 2014-05-16 Jim Meyering mbrtowc.m4: fix a comment typo * m4/mbrtowc.m4 (gl_FUNC_MBRTOWC): Fix typo s/2/-2/ in emitted documentation string. 2014-05-16 Paul Eggert mbrlen, mbrtowc: fix bug with empty input * lib/mbrtowc.c (rpl_mbrtowc) [MBRTOWC_EMPTY_INPUT_BUG]: Fix the bug. * m4/mbrlen.m4 (gl_MBRLEN_EMPTY_INPUT): New macro. It's not used, so this is mainly for documentation. * m4/mbrtowc.m4 (gl_MBRTOWC_EMPTY_INPUT): New macro. (gl_FUNC_MBRTOWC): Use it. * tests/test-mbrtowc.c (main): Test for the bug. 2014-05-15 Paul Eggert doc: document mbrtowc and mbrlen problem with empty input * doc/posix-functions/mbrlen.texi (mbrlen): * doc/posix-functions/mbrtowc.texi (mbrtowc): Document portability problem when the input string is empty. See: https://sourceware.org/bugzilla/show_bug.cgi?id=16950 doc: document exec* = spawn+exit bug with non-Cygwin Windows platforms Problem reported by Eli Zaretskii in: http://lists.gnu.org/r/bug-grep/2014-05/msg00118.html * doc/posix-functions/execl.texi (execl): * doc/posix-functions/execle.texi (execle): * doc/posix-functions/execlp.texi (execlp): * doc/posix-functions/execv.texi (execv): * doc/posix-functions/execve.texi (execve): * doc/posix-functions/execvp.texi (execvp): Mention spawn+exit problem on non-Cygwin Windows platforms. 2014-05-14 Guilherme de Almeida Suckevicz getlogin-tests: avoid false failure under sudo/ssh etc. * modules/getlogin-tests (configure.ac): Check for ttyname(). * tests/test-getlogin.c (main): Don't depend on environment variables to correlate with getlogin(), since sudo and ssh etc. can tamper with the LOGNAME and USER env vars. Instead lookup the name from the uid associated with the stdin tty. 2014-05-11 Paul Eggert mbsstr, quotearg, xstrtol: pacify IRIX 6.5 cc These were found when building the latest grep snapshot on IRIX 6.5. * lib/mbsstr.c (knuth_morris_pratt_multibyte): Break "a=b=c;" into "b=c; a=b;", since IRIX 6.5 cc complains about the former if b is never used later. * lib/quotearg.c (quoting_options_from_style): * lib/xstrtol.c (__xstrtol): Use enum instead of 0, to pacify IRIX 6.5 cc. 2014-04-18 Pádraig Brady gitlog-to-changelog: revert inclusion of git-log-fix file * build-aux/git-log-fix: Delete dummy file. * modules/gitlog-to-changelog: Don't reference (overwrite) the project specific git-log-fix file. 2014-04-18 Assaf Gordon maint.mk: Relax the copyright check to cater for non FSF projects * top/maint.mk (sc_copyright_check): Relax the check for $PACKAGE.texi to not require the "Free" suffix after the copyright years. 2014-04-18 Natanael Copa physmem: use sysinfo on linux-gnu if _SC_PHYS_PAGES unavailable * lib/physmem.c (physmem_total): Some systems like musl libc don't yet support _SC_PHYS_PAGES. Use the linux syscall sysinfo as fallback if _SC_PHYS_PAGES or _SC_PAGESIZE fails. (physmem_available): Likewise for _SC_AVPHYS_PAGES. 2014-04-18 Paul Eggert exclude: port to strict C99 Strict C does not allow converting a function pointer to void * and vice versa. Pass a pointer to a function pointer instead. * lib/exclude.c (add_exclude_file): Pass the address of the function pointer. (call_addfn): And deference the address here, to match. 2014-04-17 Paul Eggert regex: do not depend on malloc-gnu * modules/regex (Depends-on): Remove malloc-gnu. It's no longer needed, because of the 2012-12-29 patch "regex: port to hosts where malloc (0) == NULL". Reported by Nathan Kennedy in: http://lists.gnu.org/r/bug-gnulib/2014-04/msg00026.html 2014-04-16 Assaf Gordon expl: avoid incorrect expl(small_value) on OpenBSD 5.4 * m4/expl.m4 (gl_FUNC_EXPL): Add a check for this condition. * doc/posix-functions/expl.texi: Mention the workaround. 2014-04-12 Paul Eggert xalloc: allow x2nrealloc (P, PN, S) where P && !*PN * lib/xalloc.h (x2nrealloc): Extend slightly, to allow the current size to be zero even when the pointer is nonnull. This accommodates the use case where P is malloc (0) and *PN is 0 on a host where malloc (0) yields nonnull. 2014-04-09 Eric Blake fts: avoid unnecessary strlen calls * lib/fts.c (_D_EXACT_NAMLEN): Restore definition when needed. 2014-04-09 Paul Eggert fts: avoid unnecessary strlen calls * lib/fts.c (fts_build): Go back to using _D_EXECT_NAMLEN when that can be faster than strlen. 2014-03-26 Bernhard Voelker fts: avoid unnecessary strlen calls * lib/fts.c (_D_EXACT_NAMLEN): Remove macro. (fts_build): Store the length of the dp->d_name entry in a local variable instead of calling strlen() several times via the above, removed macro. For 'rm -rf some-dir' with e.g. 1M directory entries, this speeds up the run by ~4%, yet this reduces the execution time by about a third if run via "ltrace -c rm -rf some-dir". 2014-03-27 Paul Eggert obstack: Remove ancient NeXTSTEP gcc support conditional This change will ease merging with glibc. The "#if ... __NEXT__" causes a warning with -Wundef which glibc now enables by default. Problem reported by Will Newton in . glibc now uses __extension__ for GCC 2.8 or later, so go with that. * lib/obstack.h (__extension__): 2014-03-27 Paul Eggert obstack: merge with glibc changes * lib/obstack.c, lib/obstack.h: Merge from glibc. This is mostly indenting and commentary changes. Instances of 'register' have been removed. 2014-03-26 Bernhard Voelker strftime: wrap macros in "do {...} while(0)" * lib/strftime.c (DO_NUMBER): Wrap multi-statement code block of this macro in "do {...} while(0)" to prevent false use as a single statement, e.g., in an un-braced "{}" else-block. (DO_SIGNED_NUMBER, DO_TZ_OFFSET, DO_NUMBER_SPACEPAD): Likewise. (strftime_case_): Remove 'else' after 'goto' - which was the only non-fatal, un-braced use of one of the above macros. Spotted by coverity (NESTING_INDENT_MISMATCH). 2014-03-26 Bernhard Voelker modechange: avoid memory leaks for invalid octal modes * lib/modechange.c (mode_compile): During the parsing of notations like +40, free the 'mc' buffer for invalid mode strings like +17777 (greater than the maximum octal mode), =18 (bad octal mode characters) or u=1 ('affected' with octal modes). Reproducer, e.g.: $ valgrind --leak-check=full chmod +17777 file Introduced via the 2012-03-09 commit, 4730c3e3, "modechange: add notations +40, 00440, etc.". Spotted by coverity (RESOURCE_LEAK). 2014-03-24 Paul Eggert gitlog-to-changelog: include a dummy git-log-fix file Problem reported by Nathan Stratton Treadway in: http://lists.gnu.org/r/bug-tar/2014-03/msg00082.html * build-aux/git-log-fix: New file. 2014-03-13 Jim Meyering gitlog-to-changelog: also include the file, git-log-fix * modules/gitlog-to-changelog (Files): Add git-log-fix. Reported by Assaf Gordon. 2014-03-06 Paul Eggert regex: port to OS X 10.8.5 en_US.UTF-8 locale This fixes a bug when ignoring case and when comparing the titlecase letter 'Lj' (U+01C8 LATIN CAPITAL LETTER L WITH SMALL LETTER J) to the corresponding uppercase letter 'LJ' (U+01C7 LATIN CAPITAL LETTER LJ). In the OS X 10.8.5 en_US.UTF-8 locale, the titlecase letter is neither lowercase nor uppercase, but uppercasing the titlecase letter (via towupper) yields the uppercase letter, so the two letters should match when ignoring case. Problem reported by Jim Meyering in . * lib/regex_internal.c (build_wcs_upper_buffer, build_upper_buffer): Don't test whether a character is lowercase before uppercasing it. 2014-03-04 Kevin Cernekee stdint, read-file: fix missing SIZE_MAX on Android (tiny change) This is basically one of the options Bruno Haible proposed in: http://lists.gnu.org/r/bug-gnulib/2012-01/msg00282.html * lib/sys_types.in.h (_GL_INCLUDING_UNISTD_H): New macro. * lib/stdint.in.h: Use it. * modules/stdint (Depends-on): Add sys_types. 2014-02-26 Pádraig Brady parse-datetime: fix crash or infloop in TZ="" parsing * lib/parse-datetime.y (parse_datetime): Break out of the TZ="" parsing loop once the second significant " is found. Also skip over any subsequent whitespace to be consistent with the non TZ= case. * tests/test-parse-datetime.c: Add test cases for TZ="" parsing. 2014-02-26 Paul Eggert savedir: new symbol for fast-read version * lib/savedir.h (SAVEDIR_SORT_FASTREAD): New symbol, for programs like GNU cp that want to use SAVEDIR_SORT_INODE if available, SAVEDIR_SORT_NONE otherwise. Problem reported by Bernhard Voelker in: http://lists.gnu.org/r/coreutils/2014-02/msg00037.html 2014-02-25 Paul Eggert unistd: port readlink to Mac OS X 10.3.9 * lib/unistd.in.h (_GL_INCLUDING_UNISTD_H): New macro, to work around self-include problem in Mac OS X 10.3.9 when combined with readlink module. Problem reported by Klaus Zietler in . 2014-02-23 Paul Eggert diffseq: remove TOO_EXPENSIVE heuristic Problem with diffutils reported by Vincent Lefevre in . The simplest solution is to remove the TOO_EXPENSIVE heuristic that I added to GNU diff in 1993. Although appropriate for circa-1993 hardware, these days the heuristic seems to be more trouble than it's worth. * lib/diffseq.h: Modernize citations. (struct context): Remove member too_expensive. All uses changed. (struct partition): Remove members lo_minimal, hi_minimal. All uses changed. (diag, compareseq): Remove arg find_minimal. All uses changed. (diag): Remove the TOO_EXPENSIVE heuristic that I added back in 1993 to make 'diff' run faster (but not as well) on large inputs. These days, computers are fast enough that it's typically better to run slower but more accurately. * lib/fstrcmp.c: Remove duplicate comment. * lib/fstrcmp.c (strcmp_bounded): * lib/git-merge-changelog.c (compute_differences): Adjust to diffseq.h changes. * NEWS: Document the change. savedir: simplify by using stpcpy * lib/savedir.c (direntry_t): Remove size member. All uses removed. (streamsavedir): Use stpcpy instead. * modules/savedir (Depends-on): Add stpcpy. 2014-02-21 Pádraig Brady spawn: fix link error on uclibc * m4/spawn_h.m4 (gl_HAVE_POSIX_SPAWN): use AC_SEARCH_LIBS, to incorporate -lrt if needed (on uclibc for example). * modules/posix_spawn: Reference the substituted LIB. 2014-02-21 Thomas Petazzoni (tiny change) timer: fix uClibc detection of threading * m4/time_time.m4 (gl_TIMER_TIME): Detect whether threads are enabled in uClibc. 2014-02-21 Eric Blake maintainer-makefiles: provide AC_PROG_SED for older autoconf * m4/gnulib-common.m4 (AC_PROG_SED): Copy from newer autoconf. 2014-02-21 Sergey Poznyakoff exclude: add support for posix regexps This commit adds support for POSIX extended regular expressions and fixes a long-standing memory leak (pattern buffer was never freed). It also implements a new interface function to read exclude patterns from a FILE, which passes an additional parameter to its callback function, thereby allowing to preserve its state between invocations. * lib/exclude.c (struct patopts): Pack regex and pattern into union. (pattern_buffer): New struct. (exclude): New member patbuf. (exclude_add_pattern_buffer): New function. (free_exclude_segment): Free regexps. (free_exclude): Free allocated pattern buffers. (exclude_patopts): New function. (file_pattern_matches): Use exclude_patopts. (add_exclude): support regexps. (add_exclude_fp): New function. (add_exclude_file): Rewrite using add_exclude_fp. (fnmatch_pattern_has_wildcards): Support posix extended regexps. * lib/exclude.h (EXCLUDE_REGEX, EXCLUDE_ALLOC): New flags. (add_exclude_fp) (add_exclude_file): Rewrite using add_exclude_fp. (fnmatch_pattern_has_wildcards): Support posix extended regexps. * lib/exclude.h (EXCLUDE_REGEX, EXCLUDE_ALLOC): New flags. (add_exclude_fp) (exclude_add_pattern_buffer): New prototypes. * modules/exclude: Depends on regex and filename. 2014-02-20 Eric Blake maintainer-makefiles: use $(SED) for syntax check * modules/maintainer-makefile (configure.ac): Check for sane sed. * top/maint.mk: Change sed to $(SED). 2014-02-11 Sergey Poznyakoff Paul Eggert savedir: add sorting arg to savedir, streamsavedir; remove fdsavedir Patch based on an idea by Dick Streefland in . * NEWS: Document this. * lib/savedir.c (NAME_SIZE_DEFAULT): Remove. (direntry_t, comparison_function): New types. (direntry_cmp_name): New function. (direntry_cmp_inode) [D_INO_IN_DIRENT]: New function. (streamsavedir, savedir): New arg OPTION. (streamsavedir): Simplify memory allocation. (fdsavedir): Remove. * lib/savedir.h (enum savedir_option): New type. (streamsavedir, savedir): New arg OPTION. (fdsavedir): Remove. 2014-02-05 Paul Eggert file-type: add support for doors and other less-common file types Problem with S_ISDOOR reported by Rich Burridge. * lib/file-type.c (file_type): Do S_ISLNK early too. Do S_TYPEIS* macros before the rest. Add S_ISCTG, S_ISDOOR, S_ISMPB, S_ISMPC, S_ISMPX, S_ISNAM, S_ISNWK, S_ISOFD, S_ISOFL, S_ISPORT, S_ISWHT. 2014-01-23 Eric Blake pthread: work around winpthread header pollution on mingw * lib/time.in.h: Move pthread workarounds... * lib/pthread.in.h: ...here. * m4/pthread.m4 (gl_PTHREAD_CHECK): Also build pthread.h when we detect macro pollution on mingw. * doc/posix-headers/pthread.texi (pthread.h): Document the problems. 2014-01-22 Paul Eggert qacl: check for fchmod * m4/acl.m4 (gl_FUNC_ACL): Check for fchmod, since acl-internal.h and qset-acl.c both use HAVE_FCHMOD. 2014-01-20 Paul Eggert fdopen-tests: port to Tru64 * tests/test-fdopen.c (main): Don't invoke fdopen on a file descriptor that is not open, as POSIX doesn't specify the resulting behavior and the test does not work on Tru64. Problem reported by Steven M. Schweda in: http://lists.gnu.org/r/bug-gnulib/2014-01/msg00079.html stdalign: port to HP-UX compilers * lib/stdalign.in.h (_Alignas): Use __attribute__ (__aligned__ (x)) if __HP_cc or __HP_aCC are nonzero. 2014-01-16 Paul Eggert strtoimax: port to platforms lacking 'long long' VMS's pre-C99 compiler lacks 'long long', so 'configure' doesn't check whether strtoll is declared, which causes the C file to wrongly report an error. Problem reported by Steven M. Schweda in: http://lists.gnu.org/r/bug-diffutils/2014-01/msg00003.html * lib/strtoimax.c (strtoull): Declare only if HAVE_UNSIGNED_LONG_LONG_INT. (strtoll): Declare only if HAVE_LONG_LONG_INT. 2014-01-16 Daniel Albers (tiny change) relocatable-perl: fix texi syntax * doc/relocatable-maint.texi: Escape braces. 2014-01-09 Reuben Thomas relocatable-perl: like relocatable-script, but for Perl scripts * build-aux/relocatable.pl.in: Add. * doc/relocatable-maint.texi: Add documentation. * modules/relocatable-perl: Add. 2014-01-07 Paul Eggert tests: fix export bug in previous patch Problem reported by Jim Meyering. * tests/init.sh (re_shell): New var, which is exported instead of re_shell_. tests: simplify porting to Solaris 10 /bin/sh Some test cases in 'grep' need a shell that groks '$('; export re_shell_ for their benefit. Problem reported for 'grep' by Dagobert Michelsen in . * tests/init.sh (re_shell_): Export if it's used. 2014-01-06 Eric Blake md5, sha1, sha256, sha512: support older autoconf * m4/00gnulib.m4 (m4_divert_push): Wrap diversion stack for autoconf < 2.63b. include_next: port to autoconf 2.63 * m4/gnulib-common.m4 (AS_VAR_COPY): Define if missing. 2014-01-04 Jim Meyering maint: add a gnulib-local rule to keep non-ascii out of .texi files * cfg.mk (sc_keep_gnulib_texi_files_mostly_ascii): New rule, so that "make sc_maint" will ding anyone who puts non-ascii in any of gnulib's .texi files. 2014-01-03 Jim Meyering freadable, fwritable, fwriting: declare with the "pure" attribute * lib/freadable.h (freadable): Declare with the "pure" attribute. * lib/fwritable.h (fwritable): Likewise. * lib/fwriting.h (fwriting): Likewise. Suggested by Bruno Haible. maint.mk: adapt openat.h-include-without-use test * top/maint.mk (sc_prohibit_openat_without_use): Also check for FCHMODAT_INLINE, FCHOWNAT_INLINE and STATAT_INLINE, to avoid failing on gnulib's own lib/{chmod,chown,stat}at.c files. With this change, running "make sc_maint" in gnulib's top-level directory now passes for me. 2014-01-03 Paul Eggert doc: use ASCII in .texi files where UTF-8 isn't needed * doc/posix-functions/crypt.texi, doc/posix-functions/encrypt.texi: * doc/posix-functions/setkey.texi, doc/regex.texi: Use ASCII input, not UTF-8. 2014-01-02 Jim Meyering freading: declare with the "pure" attribute * lib/freading.h (freading): Declare with the "pure" attribute. manywarnings: remove -Wmudflap * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Remove -Wmudflap, since it is no longer supported in gcc-4.9-to-be. 2014-01-01 Paul Eggert relocatable-script: remove unused code Problem reported by Reuben Thomas in: http://lists.gnu.org/r/bug-gnulib/2013-12/msg00117.html * build-aux/relocatable.sh.in (func_tmpdir): Remove unused function. 2014-01-01 Jim Meyering maint: fix public-submodule-commit to work with newer git * top/maint.mk (public-submodule-commit): Remove excess quoting. We were over-quoting the test arguments, and somewhere prior to version 1.8.5.2.229, git stopped removing those excess quotes, which made the test fail, since the unexpanded strings would always differ; using GIT_TRACE=1 confirmed that the git merge-base command wasn't even being run. 2014-01-01 Paul Eggert doc: update main copyright year * doc/gnulib.texi: Update copyright date. 2014-01-01 Eric Blake version-etc: new year * lib/version-etc.c (COPYRIGHT_YEAR): Bump to 2014. * all files: run 'make update-copyright' 2013-12-24 Eric Blake passfd: give nicer error for recvfd at eof * lib/passfd.c (recvfd): Fake ENOTCONN if other end closes early. * tests/test-passfd.c (main): Enhance test to cover this. 2013-12-17 Paul Eggert gettimeofday: port recent C++ fix to Emacs Without this further patch, Emacs won't build due to the portcheck failing. Also, this simplifies the patch a bit. * lib/time.in.h (localtime, gmtime): Don't replace unless GNULIB_GETTIMEOFDAY. Treat them more like mktime. * lib/time.in.h (localtime, gmtime): * m4/gettimeofday.m4 (gl_GETTIMEOFDAY_REPLACE_LOCALTIME): * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): * modules/time (time.h): Don't worry about the possibility of localtime and gmtime being absent; they're present in all C libraries we know about. * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Don't assume sys_time is present and has been initialized. Instead, use a hack that should work even if it hasn't been. Don't use a portcheck for gmtime or localtime; this supports the hack. * modules/time (time.h): Substitute GNULIB_GETTIMEOFDAY. 2013-12-17 John W. Eaton gettimeofday: fix C++ crosscompilation Never replace gmtime and localtime by macros when compiling with C++, this prevents from being included. * m4/gettimeofday.m4 (gl_GETTIMEOFDAY_REPLACE_LOCALTIME): Do not define gmtime and localtime as preprocessor macros. Instead define some HAVE_GMTIME, HAVE_LOCALTIME, REPLACE_GMTIME, and REPLACE_LOCALTIME substitutions. * lib/time.in.h: Declare gmtime and localtime when needed. * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): AC_SUBST HAVE_GMTIME, HAVE_LOCALTIME, REPLACE_GMTIME, and REPLACE_LOCALTIME. * modules/time: Depend on gettimeofday, and substitute the above variables in time.h. 2013-12-17 Paul Eggert qacl: port to Windows better See Eli Zaretskii in . * lib/file-has-acl.c (acl_access_nontrivial): Return -1 and set errno if !HAVE_ACL_FIRST_ENTRY && !HAVE_ACL_TO_SHORT_TEXT && !HAVE_ACL_FREE_TEXT. 2013-12-12 Alexander V. Lukyanov md5, sha1, sha256, sha512: fix (trivial) compile error in c++ mode. * lib/gl_openssl.h: Cast void pointers to a specific type. 2013-12-07 Pádraig Brady open-tests: fix build failure with -Werror=old-style-declaration * tests/test-open.h: Reorder the inline to avoid the issue. 2013-12-07 Pádraig Brady md5, sha1, sha256, sha512: fix link error with partial libcrypto * m4/gl-openssl.m4 (gl_CRYPTO_CHECK): Only clear LIB_CRYPTO at init time, so that if early checks find crypto routines, while the last does not, then @LIB_CRYPTO@ is replaced correctly, avoiding link failures. 2013-12-07 Paul Eggert md5, sha1, sha256, sha512: add gl_SET_CRYPTO_CHECK_DEFAULT This provides a new way to specify the default for gl_CRYPTO_CHECK, one that is reflected in the --help message. Emacs uses this, as well as the old way. This attempts to implement a suggestion by Pádraig Brady in . * m4/gl-openssl.m4(gl_SET_CRYPTO_CHECK_DEFAULT): New macro. (gl_CRYPTO_CHECK): Use it. Mention the default in --help output. md5, sha1, sha256, sha512: add 'auto', and a way to specify default * m4/gl-openssl.m4 (gl_CRYPTO_CHECK): Add support for a new option, --with-openssl=auto, which causes the library to be used if available and silently ignored if not. Add support to allow configure.ac to specify its own default, by setting with_openssl_default before invoking gl_INIT. 2013-12-05 Paul Eggert open-tests: port to glibc with _FORTIFY_SOURCE and -O1 Problem reported by Daiki Ueno in: http://lists.gnu.org/r/bug-gnulib/2013-06/msg00052.html * tests/test-open.h (__always_inline): New macro, if not already defined. (test_open): Use it. 2013-12-04 Eric Blake include_next: minimize code duplication * modules/include_next (Depends-on): Add absolute-header. * m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): Reuse gl_ABSOLUTE_HEADER_ONE instead of open-coding it. 2013-12-04 Pádraig Brady getcwd: fix compile error in configure check * m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Include errno.h 2013-12-04 Pádraig Brady regex: suppress core dumps from detection code * m4/regex.m4 (gl_REGEX): Catch the SIGABRT and convert to SIGTERM to suppress core dumps that may well occur on glibc systems. These core dumps might not be cleaned up automatically, or could trigger some system core dump handling logic. 2013-12-03 Pádraig Brady md5, sha1, sha256, sha512: support mandating use of openssl * m4/gl-openssl.m4 (gl_crypto_check): Adjust the --with-openssl description, to list the now 3 separate options. also don't mention the default=no, since this is implicit given the option is described as --with-openssl rather than --without-openssl. If projects change the default they're free to document that. with --with-openssl[=yes] we now error out when the specified hash algorithm is not available in libcrypto. 2013-12-03 Ivailo test-xvasprintf: (trivial) fix to disable some -Wformat-security diags * tests/test-xvasprintf.c: Disable -Wformat-zero-length and -Wformat-nonliteral checks, as these edge cases are part of the test. 2013-12-03 Eric Blake regex: avoid glibc deadlock during configure * m4/regex.m4 (gl_REGEX): Avoid recursive malloc deadlock when glibc bug 15078 in turn triggers bug 16159. Reported by Michal Privoznik. 2013-12-02 Pádraig Brady md5, sha1, sha256, sha512: use openssl routines if available. --with-openssl the libcrypto md5, sha1, sha224, sha256, sha384, sha256 routines will be used if available, requiring apps to link @LIB_CRYPTO@ * lib/gl_openssl.h: Provide wrappers for specified openssl hash. * m4/gl-openssl.m4 (gl_CRYPTO_CHECK): New function to lookup libcrypto in the standard system location. * m4/sha1.m4: Call gl_CRYPTO_CHECK() for SHA1. * m4/sha256.m4: Likewise with SHA256. * m4/sha512.m4: Likewise with SHA512. * m4/md5.m4: Likewise with MD5. * m4/gc.m4: Ensure @LIB_CRYPTO@ set for tests. * lib/sha1.h: Include wrappers if HAVE_OPENSSL_SHA1. * lib/sha256.h: Likewise with SHA256. * lib/sha512.h: Likewise with SHA512. * lib/md5.h: Likewise with MD5. * lib/sha1.c: Exlude functionality if HAVE_OPENSSL_SHA1. * lib/sha256.c: Likewise with SHA256. * lib/sha512.c: Likewise with SHA512. * lib/md5.c: Likewise with MD5. * modules/crypto/sha1 (Link:): Add the new optional lib. (Depends-on:): Add dependency on extern-inline. * modules/crypto/sha256: Likewise. * modules/crypto/sha512: Likewise. * modules/crypto/md5: Likewise. * modules/crypto/sha1-tests: Reference the lib here too. * modules/crypto/md5-tests: Likewise. * modules/crypto/gc-des-tests: Likewise. * modules/crypto/gc-hmac-md5-tests: Likewise. * modules/crypto/gc-hmac-sha1-tests: Likewise. * modules/crypto/gc-hmac-sha256-tests: Likewise. * modules/crypto/gc-hmac-sha512-tests: Likewise. * modules/crypto/gc-md5-tests: Likewise. * modules/crypto/gc-pbkdf2-sha1-tests: Likewise. * modules/crypto/gc-sha1-tests: Likewise. * modules/crypto/gc-tests: Likewise. * modules/crypto/hmac-md5-tests: Likewise. * modules/crypto/hmac-sha1-tests: Likewise. * modules/crypto/hmac-sha256-tests: Likewise. * modules/crypto/hmac-sha512-tests: Likewise. 2013-11-29 RV1971 base64: (trivial) fix compilation regression on some compilers * lib/base64.c: Don't return the void function, instead split to a separate return statement. 2013-11-28 Paul Eggert ignore-value: revert previous code change * lib/ignore-value.h (ignore_value): Use __extension__ and __typeof__ only for GCC 3.4 and later. Reported by Eric Blake in . Change the comment to try to explain this better. 2013-11-27 Pádraig Brady selinux-h: improve stub types and add more stub functions * lib/se-selinux.in.h: Change security_context_t to a typedef rather than a define, as it's a pointer type and so is better as a typedef to avoid issues declaring multiple variables with the comma operator. Also add stub for string_to_security_class(). * lib/se-context.in.h: Add stub functions for context_{type,range,role,user}_get(). 2013-11-27 Paul Eggert ignore-value: prefer GCC version back through 2.0 The code didn't match the comments, so I did a bit of software archaeology. GCC 2.0 seems to support __extension__ and __typeof__, so fix both code and comments to use 2.0. * lib/ignore-value.h (ignore_value): Use __extension__ and __typeof__ for GCC 2.0 through 3.3, too. 2013-11-25 Mats Erik Andersson pty: Activate the signature wrapper of forkpty. The intended preprocessor macro HAVE_FORKPTY is never defined, yet `lib/forkpty.c' depends on it. * m4/pty.m4 (gl_FUNC_FORKPTY): At completed analysis, apply AC_DEFINE_UNQUOTED to HAVE_FORKPTY with value $HAVE_FORKPTY for access to wrapper in `lib/forkpty.c'. 2013-11-18 Jim Meyering and Paul Eggert quotearg: don't attempt to store 1 << 31 into an "int" * lib/quotearg.c (quotearg_buffer_restyled): Building coreutils with gcc's new -fsanitize=undefined and running its tests triggered some new test failures due to undefined behavior, all with this diagnostic: lib/quotearg.c:629:62: runtime error: left shift of 1 by 31 places \ cannot be represented in type int Rather than shifting "1" left to form a mask, shift the bits right and simply use "1" as the mask. 2013-11-21 Paul Eggert error: depend on stdio Problem reported by Nikos Mavrogiannopoulos in * modules/error (Depends-on): Add stdio. 2013-11-18 Ben Pfaff * doc/relocatable-maint.texi (Supporting Relocation): Improve wording. Reported by Reuben Thomas . 2013-11-13 Paul Eggert * lib/getgroups.c (posix_getgroups, getgroups) [__APPLE__]: New function and macro, to work around _DARWIN_C_SOURCE problem. Reported by Jack Howarth in . 2013-11-11 Pádraig Brady base64: provide a fast path for encoding well sized buffers Avoid conditionals in the base64 encoding loop, which was seen to give 60% better throughput. * lib/base64.c (base64_encode_fast): A new function to be called when we don't want to NUL terminate, and we have enough space in the output to encode the given input. (base64_encode): Call the _fast() version when appropriate. Also remove a redundant mask with 0x3F on the first encoded byte. 2013-11-08 Paul Eggert extern-inline: port better to OS X 10.9 * m4/extern-inline.m4: Omit serial number; this file doesn't use them. (gl_EXTERN_INLINE): Do not suppress the use of extern inline on OS X 10.9, except for g++ where the bug is still present. See . 2013-11-08 Eric Blake fpending: fix regression on DragonFly BSD * m4/fpending.m4 (gl_FUNC_FPENDING): Check for declaration. * lib/fpending.h (__fpending): Don't declare twice. Reported by GW in 2013-11-05 Jim Meyering hash: relax license to LGPLv2+, for libguestfs * modules/hash (License): Change from GPL to LGPLv2+. 2013-11-03 Paul Eggert intprops: port to Oracle Studio c99 * lib/intprops.h (_GL_HAVE___TYPEOF__) [__SUNPRO_C && __STDC__]: Define to 0, to avoid diagnostics when Oracle Studio is pedantic. 2013-10-31 Paul Eggert obstack: pacify HP C * lib/obstack.h (obstack_free) [!__GNUC__]: Rewrite to avoid warning "conversion from pointer to smaller integer" from HP C-ANSI-C - cc version B9007AA/B3910B A.06.26. It's safe to assume C89 or later nowadays, so cast to void instead of int. Privately reported by H.Merijn Brand. Also, change header to match glibc's, to make checking against glibc easier. 2013-10-29 Jim Meyering maint.mk: prefer gpgv2 over gpgv * top/maint.mk (gpgv): Use gpgv2 if present, else gpgv. (gpg_key_ID): Use $(gpgv), rather than hard-coding "gpgv". Reported by Gary Vaughan. 2013-10-30 Paul Eggert isnan: port to VAX Reported by John Klos for NetBSD-5/VAX in . * lib/isnan.c (IEEE_FLOATING_POINT): New macro, stolen from Emacs. (FUNC): Use it. 2013-10-28 Jim Meyering gnulib-tool: protect against CDPATH * gnulib-tool: Many "cd" built-in functions print a directory name to stdout when CDPATH is set, e.g., $ bash -c 'CDPATH=/; cd tmp' /tmp Unset it, when possible. Prompted by a comment from Bruce Korb. maint.mk: restore functionality removed by recent change... Sunday's change, v0.0-8062-g6b24f60, may have appeared correct from the context of a shallow-cloned gnulib repository: "git describe" would fail in such a directory. However, that change made it so the reported gnulib revision no longer includes the version number or a commit count, even when run from a full clone. * top/maint.mk (gnulib-version): Use the full "git describe" output when possible, e.g., the form above, rather than the abbreviated, no-tag, no-commit-count string, and fall back to using a 10-byte hash, rather than the default minimal-length hash prefix, since while the minimal-length one may be fine today, it is likely not to be unique for very long. 2013-10-26 Jim Meyering maint.mk: fix "release" target to build _version This fixes a bug in README-release whereby following the outlined steps, one would publish a tarball whose programs would report --version output not consistent with the package version number. This bug caused grep-2.15 to produce a grep program whose --version option made it print 2.14.56-1e3d rather than 2.15. * top/maint.mk (release): Making this target build "_version" ensures that the new version number is reflected in configure. 2013-10-21 Ben Pfaff install-reloc: Support multi-binary installation. * build-aux/install-reloc: Support installing multiple programs in one invocation, as done by Automake starting with commit 4295fe33eb23f (Multi-file install for PROGRAMS.). From Bruno Haible , archived at http://lists.debian.org/debian-bsd/2012/05/msg00032.html. Reported by Sylvain . 2013-10-21 Michael Haubenwallner selinux-h: Really build without selinux when library is missing. * m4/selinux-selinux-h.m4: When the selinux library is missing, really continue without selinux, as already told in the warning message. 2013-10-21 Jim Meyering regex: also remove dependency on HAVE_WCSCOLL * lib/regex_internal.h: Remove final vestige of the wcscoll dependency. 2013-10-21 Reuben Thomas xfreopen: Fix typo. s/frepoen/freopen/ * lib/xfreopen.c: Fix description. * modules/xfreopen: Likewise. 2013-10-21 Jim Meyering regex: don't depend on wcscoll * m4/regex.m4 (gl_PREREQ_REGEX): Don't check for wcscoll. It is no longer used. 2013-10-20 Jim Meyering error: add the printf attribute to a static function * lib/error.c (error_tail): Add the printf attribute, to placate gcc's -Werror=suggest-attribute=format option. 2013-09-30 Jim Meyering fpending, obstack, strerror-override: use pure+const function attrs * lib/fpending.h (__fpending): Declare with the "pure" attribute. * lib/obstack.c (_obstack_allocated_p): Likewise. * lib/obstack.h (_obstack_memory_used): Likewise. (_obstack_memory_used): Likewise. * lib/strerror-override.h (strerror_override): Declare with the "const" attribute. 2013-10-18 Eric Blake extern-inline: make safe for -Wundef usage Reported by Vladimir 'phcoder' Serbinenko in https://lists.gnu.org/r/bug-gnulib/2013-10/msg00078.html * m4/extern-inline.m4 (gl_EXTERN_INLINE): Port to older gcc. 2013-10-16 Paul Eggert mkfifo-tests, etc.: allow HP-UX 11.11 bug Problem reported by Daniel Richard G. in . * doc/posix-functions/mkfifo.texi (mkfifo): * doc/posix-functions/mkfifoat.texi (mkfifoat): * doc/posix-functions/mknod.texi (mknod): * doc/posix-functions/mknodat.texi (mknodat): Document the HP-UX 11.11 bug. * tests/test-mkfifo.h (test_mkfifo): Allow the HP-UX 11.11 bug. 2013-10-14 Paul Eggert acl: allow cross-compilation to Gentoo Problem reported by Gabriel Marcano in . * m4/acl.m4 (gl_ACL_GET_FILE): When cross-compiling, test only whether it links. 2013-10-13 Paul Eggert mgetgroups: remove dependency on realloc-gnu The dependency violates the comment in realloc-gnu, which says that tests can't depend on realloc-gnu; some tests depend on mgetgroups, so mgetgroups can't depend on realloc-gnu. Problem reported by Daniel Richard G. in . * lib/mgetgroups.c (mgetgroups): Don't call realloc (NULL, 0). * modules/mgetgroups (Depends-on): Depend on realloc-posix, not realloc-gnu. 2013-10-12 Paul Eggert regex-tests: port to HP-UX 11.11 Problem reported by Daniel Richard G. in . * modules/regex-tests (test_regex_LDADD): Add LIBTHREAD, LIB_PTHREAD. 2013-10-10 Paul Eggert verify: document some 'assume' pitfalls * doc/verify.texi (Compile-time Assertions): Mention that 'assume (E)' can sometimes slow things down. Use CHAR_MAX + 1, not UCHAR_MAX + 1. 2013-10-10 Eric Blake strtoumax: fix typo in previous commit. * modules/strtoumax (Depends-on): Fix typo. * modules/strtoimax (Depends-on): Likewise. 2013-10-10 Paul Eggert strtoumax: port to Solaris 8 This problem was introduced in the recent HP-UX patch. Reported by Tom G. Christensen in . * modules/strtoumax (Depends-on): Test HAVE_STRTOUMAX and REPLACE_STRTOUMAX rather than ac_cv_func_strtoumax. 2013-10-09 Paul Eggert strtoimax, strtoumax: port to HP-UX 11.11 Problem reported by Daniel Richard G. in . * lib/inttypes.in.h (strtoumax): Replace strtoumax if REPLACE_STRTOUMAX, thus treating it consistently with strtoimax. * m4/inttypes.m4 (gl_INTTYPES_H_DEFAULTS): Add default for REPLACE_STRTOUMAX. * m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): * m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Replace the function if defined as a macro but not as a function. * modules/inttypes-incomplete (inttypes.h): Substitute REPLACE_STRTOUMAX. * modules/strtoumax (configure.ac): Replace strtoumax if REPLACE_STRTOUMAX. 2013-10-08 Paul Eggert strtoimax: port to HP-UX 11.11 Problem reported by Daniel Richard G. * lib/strtoimax.c (Strtoimax, Strtol, Strtoll): New macros. (strtoimax, strtol, strtoll) [UNSIGNED]: Remove, since they might clash with inttypes.h. 2013-10-06 Paul Eggert New module 'count-trailing-zeros'. * MODULES.html.sh: Mention it. * lib/count-trailing-zeros.c, lib/count-trailing-zeros.h: * m4/count-trailing-zeros.m4, modules/count-trailing-zeros: * modules/count-trailing-zeros-tests: * tests/test-count-trailing-zeros.c: New files. count-leading-zeros: port to MSC; support types wider than 64 bits The ideas behind the MSC port are stolen from Emacs. * lib/count-leading-zeros.h: Don't include verify.h: it's no longer needed, as types wider than 64 bits are now supported. (COUNT_LEADING_ZEROS): New arg MSC_BUILTIN, for better performance with MSC. All uses changed. Do not assume that TYPE has at most 64 bits. (count_leading_zeros_32): Assume 0 < X < 2**32, for speed. All uses changed. Fold the subtraction from 31 into the table. count-one-bits: port to MSC; support types wider than 64 bits The ideas behind the MSC port are stolen from Emacs. * lib/count-one-bits.c (popcount_support) [_MSC_VER]: New variable. * lib/count-one-bits.h: Include limits.h, for CHAR_BIT. Don't include verify.h: it's no longer needed, as types wider than 64 bits are now supported. (COUNT_ONE_BITS_GENERIC): New macro. (popcount_supported) [_MSC_VER]: New inline function. (COUNT_ONE_BITS): Use it. New arg MSC_BUILTIN, for better performance with MSC. All uses changed. Do not assume that TYPE has at most 64 bits. * modules/count-one-bits (Depends-on): Do not depend on 'verify'. 2013-10-06 Andrew Borodin mountlist: fix resource leak with MOUNTED_INTERIX_STATVFS * lib/mountlist.c (read_file_system_list): fix leak of directory streams in case of #ifdef MOUNTED_INTERIX_STATVFS. 2013-10-06 Paul Eggert tests: improve diagnostic when an assertion fails * tests/macros.h (ASSERT): Report the assertion that failed. 2013-10-02 Paul Eggert verify: new macro 'assume' This is taken from Emacs, and should be generally useful. * doc/verify.texi (assume): Document it. * lib/verify.h (assume): New macro. (__has_builtin): Expand to 0 if not defined. 2013-09-26 Eric Blake dup2, dup3: work around another cygwin crasher * m4/dup2.m4 (gl_FUNC_DUP2): Expose the bug. * m4/dup3.m4 (gl_FUNC_DUP3): Likewise. * tests/test-dup2.c (main): Likewise. * lib/dup2.c (rpl_dup2): Use setdtablesize to avoid it. * lib/dup3.c (dup3): Likewise. * doc/posix-functions/dup2.texi (dup2): Document it. * doc/glibc-functions/dup3.texi (dup3): Likewise. getdtablesize: work around cygwin issue * m4/getdtablesize.m4 (gl_FUNC_GETDTABLESIZE): Detect problem. * modules/getdtablesize (configure.ac): Build replacement. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Set up a witness. * modules/unistd (Makefile.am): Expose the witness. * lib/unistd.in.h (getdtablesize): Declare replacement. * lib/getdtablesize.c (rpl_getdtablesize): Work around it. * tests/test-getdtablesize.c (main): Test it. * doc/glibc-functions/getdtablesize.texi (getdtablesize): Document it. 2013-09-25 Mats Erik Andersson pmccabe2html: escaping of special characters Escape all '<', '>', and '&' in HTML output. * build-aux/pmccabe2html (html_fnc): Call gsub() instead of sub() to capture all '<', '>', and '&'. Neither of '<' and '>' is special in a regexp, so first arguments to gsub() are corrected. Also, in replacement strings, ampersand must be escaped. Finally, '&' must be handled first, then '<' and '>'. 2013-09-24 Eric Blake manywarnings: enable nicer gcc warning messages * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Older gcc requires some -f options for optimal warnings. 2013-09-21 Jim Meyering timespec: use the new TIMESPEC_RESOLUTION in a few more places * lib/timespec-add.c (timespec_add): Also replace 999999999 with TIMESPEC_RESOLUTION - 1. * lib/timespec-sub.c (timespec_sub): Likewise. 2013-09-23 Paul Eggert warnings: port --enable-gcc-warnings to Solaris Studio 12.3 Problem reported by Dagobert Michelsen via Eric Blake in . * m4/warnings.m4 (gl_COMPILER_OPTION_IF): Use AC_LINK_IFELSE, not AC_COMPILE_IFELSE. 2013-09-23 Eric Blake configmake: support new --runstatedir option * m4/configmake.m4 (gl_CONFIGMAKE_PREP): Substitute runstatedir even if autoconf was too old to provide the command line option. * modules/configmake (Makefile.am): Propagate it to .h file. 2013-09-22 Paul Eggert ctype, string: depend on extern-inline This is needed to complete the recent OS X fixes. Also, fix related documentation as suggested by Eric Blake. * doc/posix-functions/isalnum.texi, doc/posix-functions/isalpha.texi: * doc/posix-functions/isascii.texi, doc/posix-functions/iscntrl.texi: * doc/posix-functions/isdigit.texi, doc/posix-functions/isgraph.texi: * doc/posix-functions/islower.texi, doc/posix-functions/isprint.texi: * doc/posix-functions/ispunct.texi, doc/posix-functions/isspace.texi: * doc/posix-functions/isupper.texi, doc/posix-functions/isxdigit.texi: * doc/posix-functions/toascii.texi, doc/posix-functions/tolower.texi: * doc/posix-functions/toupper.texi: List the 'ctype' gnulib module. * doc/posix-functions/strcat.texi, doc/posix-functions/strcpy.texi: * doc/posix-functions/strncpy.texi: List the 'string' gnulib module. * modules/memcpy, modules/memmove, modules/memset (Depends-on): Add string. * modules/ctype, modules/string (Depends-on): Add extern-inline. 2013-09-19 Pádraig Brady userspec: support optional parameters to parse_user_spec() * lib/userspec.c (parse_user_spec): If the GID param is NULL, then avoid group processing and treat the full spec as a user. (parse_with_separator): Allow the USERNAME and GROUPNAME to be optional params (NULL), in which case they're ignored. 2013-09-19 Paul Eggert timespec: new function make_timespec, and new constants * lib/timespec.h: Incorporate recent changes on the Emacs trunk. (TIMESPEC_RESOLUTION, LOG10_TIMESPEC_RESOLUTION): New constants. (make_timespec): New function. * lib/dtotimespec.c (dtotimespec): * lib/timespec-add.c (timespec_add): * lib/timespec-sub.c (timespec_sub): * lib/utimens.c (validate_timespec): * lib/utimensat.c (rpl_utimensat): Use these new constants and functions. stdio: OS X port of putc_unlocked + extern inline * lib/stdio.in.h (putc_unlocked): #undef on problematic Apple platforms. * doc/posix-functions/putc_unlocked.texi: * doc/posix-functions/putchar_unlocked.texi: Document this portability problem. signal: OS X port of sigaddset etc. + extern inline * lib/signal.in.h (sigaddset, sigdelset, sigemptyset, sigfillset) (sigismember): #undef on problematic Apple platforms. * doc/posix-functions/sigaddset.texi: * doc/posix-functions/sigdelset.texi: * doc/posix-functions/sigemptyset.texi: * doc/posix-functions/sigfillset.texi: * doc/posix-functions/sigismember.texi: Document this portability problem. extern-inline: do not always suppress extern inline on OS X * m4/extern-inline.m4 (gl_EXTERN_INLINE): Suppress the use of extern inline on Apple only if the particular compile-time configuration is known to have the problem. (_GL_EXTERN_INLINE_APPLE_BUG): New private macro, to implement this. (_GL_EXTERN_INLINE_IN_USE): New macro, intended for use by other Gnulib modules. extern-inline: document fixes for ctype and wctype macros * doc/posix-functions/isalnum.texi, doc/posix-functions/isalpha.texi: * doc/posix-functions/isascii.texi, doc/posix-functions/isblank.texi: * doc/posix-functions/iscntrl.texi, doc/posix-functions/isdigit.texi: * doc/posix-functions/isgraph.texi, doc/posix-functions/islower.texi: * doc/posix-functions/isprint.texi, doc/posix-functions/ispunct.texi: * doc/posix-functions/isspace.texi, doc/posix-functions/isupper.texi: * doc/posix-functions/iswalnum.texi, doc/posix-functions/iswalpha.texi: * doc/posix-functions/iswcntrl.texi, doc/posix-functions/iswctype.texi: * doc/posix-functions/iswdigit.texi, doc/posix-functions/iswgraph.texi: * doc/posix-functions/iswlower.texi, doc/posix-functions/iswprint.texi: * doc/posix-functions/iswpunct.texi, doc/posix-functions/iswspace.texi: * doc/posix-functions/iswupper.texi, doc/posix-functions/iswxdigit.texi: * doc/posix-functions/isxdigit.texi, doc/posix-functions/toascii.texi: * doc/posix-functions/memcpy.texi, doc/posix-functions/memmove.texi: * doc/posix-functions/memset.texi, doc/posix-functions/stpcpy.texi: * doc/posix-functions/stpncpy.texi, doc/posix-functions/strcat.texi: * doc/posix-functions/strcpy.texi, doc/posix-functions/strncat.texi: * doc/posix-functions/strncpy.texi: * doc/posix-functions/tolower.texi, doc/posix-functions/toupper.texi: * doc/posix-functions/towlower.texi, doc/posix-functions/towupper.texi: Document that Gnulib fixes portability problems with these functions on OS X 10.8 and earlier when called from plain inline or extern inline functions. 2013-09-17 Kevin Cernekee fflush, freadahead, fseeko: Fix for Android Suggested by Bruno Haible in: * lib/stdio-impl.h: Use local __sfileext definition. 2013-09-17 Mats Erik Andersson pmccabe2html: Portability to other awk versions. The functions systime() and strftime() are available in Gawk only. Properly close two HTML-tags 'style' and 'span'. * build-aux/pmccabe2html (BEGIN): Store timing strings in EPOCH_TIME and CHRONOS_TIME. Replace systime() in HTML_COMMENT. (html_header): Correctly close tag 'style'. (END): Replace strftime() by CHRONOS_TIME. Close tag 'span' correctly, not as 'div'. 2013-09-17 Mats Erik Andersson (tiny change) getgroups: statement without effect * lib/getgroups.c (rpl_getgroups) [HAVE_GETGROUPS]: Change equality conditional to expected assignment. 2013-09-09 Eric Blake glob: fix compilation * lib/glob.in.h (__THROW): Fix missing line in previous commit. 2013-09-07 Eric Blake glob: fix build for platforms without __THROW * lib/glob.in.h (__THROW): Add definition again. 2013-09-04 Anton Ovchinnikov (tiny change) regex-quote: fix buffer access out of bounds http://lists.gnu.org/r/bug-gnulib/2013-09/msg00001.html * lib/regex-quote.c (regex_quote_spec_pcre): Fix typo that resulted in an out-of-bounds read. 2013-09-04 Eric Blake glob: avoid -Wattribute warnings on glibc * lib/glob.c (next_brace_sub, prefix_array, collated_compare): Use __THROWNL, not __THROW, on static functions. * lib/glob.in.h (__THROW): Adjust... (__THROWNL): ...accordingly. 2013-08-28 Paul Eggert headers: check that _GL_INLINE_HEADER_BEGIN is defined Suggested by Bruce Korb in: http://lists.gnu.org/r/bug-gnulib/2013-08/msg00070.html * doc/extern-inline.texi (extern inline): Suggest checking that _GL_INLINE_HEADER_BEGIN is defined. * lib/acl-internal.h, lib/argp-fmtstream.h, lib/argp.h: * lib/binary-io.h, lib/bitrotate.h, lib/count-leading-zeros.h: * lib/count-one-bits.h, lib/eealloc.h, lib/execinfo.in.h: * lib/gethrxtime.h, lib/gl_list.h, lib/gl_oset.h, lib/gl_xlist.h: * lib/gl_xoset.h, lib/gl_xsublist.h, lib/glthread/cond.h: * lib/glthread/thread.h, lib/math.in.h, lib/mbchar.h, lib/mbfile.h: * lib/mbiter.h, lib/mbuiter.h, lib/openat.h, lib/pipe-filter-aux.h: * lib/priv-set.h, lib/pthread.in.h, lib/savewd.h, lib/se-context.in.h: * lib/se-selinux.in.h, lib/sig-handler.h, lib/stat-time.h: * lib/sys_socket.in.h, lib/timespec.h, lib/u64.h, lib/unistd.in.h: * lib/utimens.h, lib/wctype.in.h, lib/xalloc.h, lib/xsize.h: * lib/xtime.h: Check that _GL_INLINE_HEADER_BEGIN is defined. 2013-08-29 Pádraig Brady bootstrap: remove the --version requirement from ancillary tools * build-aux/bootstrap (check_exists): A new refactored function to determine if a command exists. (find_tool): Use the new function which does not require the --version option to be supported. (check_versions): Use the new function. 2013-08-26 Simon Josefsson gc: support HMAC-SHA256 and HMAC-SHA512. * lib/gc.h: Add gc_hmac_sha256 and gc_hmac_sha512. * lib/gc-libgcrypt.c (gc_hmac_sha256, gc_hmac_sha512): New functions. (gc_hmac_md5): Use symbolic constant. * lib/gc-gnulib.c: Include hmac.h for HMAC-SHA256/512 too. (gc_hmac_sha256, gc_hmac_sha512): New functions. * lib/hmac.h: Add hmac_sha256 and hmac_sha512 prototypes. * m4/sha256.m4: Protect against empty expansion. * m4/sha512.m4: Likewise. * lib/hmac-sha256.c: New file. * lib/hmac-sha512.c: Likewise. * m4/gc-hmac-sha256.m4: Likewise. * m4/gc-hmac-sha512.m4: Likewise. * m4/gc-sha256.m4: Likewise. * m4/gc-sha512.m4: Likewise. * modules/crypto/gc-hmac-sha256: Likewise. * modules/crypto/gc-hmac-sha256-tests: Likewise. * modules/crypto/gc-hmac-sha512: Likewise. * modules/crypto/gc-hmac-sha512-tests: Likewise. * modules/crypto/hmac-sha256: Likewise. * modules/crypto/hmac-sha256-tests: Likewise. * modules/crypto/hmac-sha512: Likewise. * modules/crypto/hmac-sha512-tests: Likewise. * tests/test-gc-hmac-sha256.c: Likewise. * tests/test-gc-hmac-sha512.c: Likewise * tests/test-hmac-sha256.c: Likewise. * tests/test-hmac-sha512.c: Likewise 2013-08-24 Daiki Ueno * m4/intl.m4: Update from gettext-0.18.3.1, which fixes a misuse of AC_CHECK_DECLS. 2013-08-23 Paul Eggert selinux-at: omit unnecessary include * lib/selinux-at.c: Don't include dosname.h; not needed, since this source file doesn't use its macros, and subsidiary files that use the macros already include it. 2013-08-21 Eric Blake d-ino: avoid false negative on symlink * m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Use lstat. Reported by Stephane Chazelas. 2013-08-12 Mike Miller (tiny change) bootstrap: port to OpenBSD sed * build-aux/bootstrap (insert_if_absent): Port to OpenBSD sed which does not interpret `-' as a file argument to mean stdin. 2013-08-15 Eric Blake warnings: minor optimization * m4/warnings.m4 (gl_COMPILER_OPTION_IF): Use fewer processes. warnings: check -Wfoo rather than -Wno-foo * m4/warnings.m4 (gl_COMPILER_OPTION_IF): If name begins with -Wno-, test if the compiler recognizes the positive form instead. 2013-08-15 Karl Berry * config/srclist-update: add option "doclicense" to placate pulling *.texi files from Emacs. Write terse usage documentation at the top. 2013-08-13 Paul Eggert xvasprintf-tests: port to GCC with hardening flags * tests/test-xvasprintf.c (test_xasprintf): Pass another arg to xasprintf, to pacify GCC. Reported by Santiago Vila in: http://lists.gnu.org/r/bug-diffutils/2013-08/msg00002.html 2013-08-11 Paul Eggert fpending: port to recent Cygwin change to stdio_ext.h Reported by LRN in . * lib/fpending.h: Don't worry about HAVE_DECL___FPENDING; just declare __fpending unless it's a macro. A duplicate decl shouldn't hurt. * m4/fpending.m4 (gl_FUNC_FPENDING): Check that an __fpending call compiles and links, instead of separately checking for decl and lib function. * modules/fpending (configure-ac): Adjust to fpending.m4's renaming of shell variable. 2013-08-10 Paul Eggert sys_time: port to OpenBSD * lib/sys_time.in.h: Simply delegate to the system's header in the BSDish cases as well. Problem reported by Mike Miller in . * tests/test-sys_select.c, tests/test-sys_time.c (verify_tv_sec_type): Allow platforms like 64-bit OpenBSD where timeval's tv_sec is wider than time_t. 2013-08-09 Pádraig Brady bootstrap: support checksum utils having -c but not --status * build-aux/bootstrap: Only look for sha1sum if updating po files. Add sha1 to the list of supported checksum utils since it's now supported through adjustments below. (update_po_files): Remove the use of --status in a way that will suppress all error messages, but since this is only used to minimize updates, it shouldn't cause an issue. Exit early if there is a problem updating the po file checksums. (find_tool): Remove the check for --version support as this is optional as per commit 86186b17. Don't even check for the presence of the command as if that is needed, it's supported through configuring prerequisites in bootstrap.conf. Prompt that when a tool isn't found, one can define an environment variable to add to the hardcoded search list. 2013-08-05 Jim Meyering regex: port to non-glibc/lock-using systems Since 29-05-2013 commit, 55ba71f4, compilation on a non-glibc system with GNULIB_LOCK would fail due to absence of the included "glthread/lock.h". This would affect any package for which the "lock" module is used only by the regex module, and not explicitly used. * m4/regex.m4 (gl_PREREQ_REGEX): Require gl_GLIBC21. * modules/regex (Depends-on) [!GLIBC && $ac_use_included_regex]: Add a dependency on the "lock" module. 2013-07-20 Daiki Ueno localecharset: make locale_charset thread-safe on Mac OS X * lib/localcharset.c (locale_charset) [DARWIN7]: Use MB_CUR_MAX_L instead of MB_CUR_MAX. 2013-07-20 Daiki Ueno gettext: update to version 0.18.3 * m4/intl.m4, m4/po.m4: Update from gettext-0.18.3. In particular, require AC_PROG_SED to allow user to specify custom sed command when generating en@quot PO file. 2013-07-18 Werner Lemberg (tiny change) bootstrap: use correct source when copying build-aux files * build-aux/bootstrap (gnulib_extra_files): This variable is relative to upstream gnulib layout, not downstream. 2013-07-17 Paul Eggert tmpdir: fix bug in VMS port * lib/tmpdir.c (path_search) [__VMS]: Never add slash. See Steven M. Schweda in . 2013-07-15 Paul Eggert tmpdir: port to VMS, to // != /, and to long dirs * lib/tmpdir.c (__libc_secure_getenv) [!_LIBC]: Rename from __secure_getenv, so that we're more like the glibc version. All uses changed. (path_search): Don't put slash after directory if __VMS. Problem reported by Steven M. Schweda in . Simplify code to add slash; no need for a loop. Do not remove trailing slash from "//". Do not assume dlen <= INT_MAX. 2013-07-09 Paul Eggert regex: port to --with-included-regex --enable-gcc-warnings non-threaded * lib/regex_internal.h (lock_fini, lock_lock): Rework to avoid gcc warnings in the non-threaded case. Reported by Charlie Brown in . accept4, dup3, pipe2: port to Cygwin Problem reported for Emacs by Ken Brown in . * lib/accept4.c (accept4) [O_BINARY]: * lib/dup3.c (dup3) [O_BINARY]: * lib/pipe2.c (pipe2) [O_BINARY]: Use set_binary_mode, not setmode. * lib/pipe2.c [!GNULIB_BINARY_IO]: Include binary-io.h. * modules/binary-io (Depends-on): Remove module indicator. These last two bits undo the previous change to pipe2 and binary-io. 2013-07-09 Pádraig Brady mountlist: add support for deallocating returned list entries * lib/mountlist.c (free_mount_entry): A new exported function to deallocate a mount list entry. (read_file_system_list): Refactor to use the new deallocation function. Suggested by Anton Ovchinnikov. 2013-07-07 Paul Eggert stdalign, verify: port to FreeBSD 9.1, to C11, and to C++11 Problem reported by Ulrich Mueller in . * lib/stdalign.in.h (_Alignas, _Alignof): Port to FreeBSD 9.1, and to C11 and C++11. (_Alignas): Also support ICC. * lib/verify.h (_Static_assert): Undef if defines it. * m4/stdalign.m4 (gl_STDALIGN_H): Port to ICC and to C++11. 2013-07-06 Paul Eggert fnmatch: don't goto over declaration * lib/fnmatch_loop.c (FCT): Hoist local up one level, to avoid undefined behavior for goto over a declaration. Problem reported by Charlie Brown in . pipe2: decouple from binary-io a bit This is for Emacs, which needs pipe2 but not binary-io. * lib/pipe2.c [!GNULIB_BINARY_IO]: Don't include binary-io.h. * modules/binary-io (Depends-on): Add module indicator. 2013-07-03 Eric Blake mgetgroups: relax license to LGPLv2+ * modules/getugroups (License): Change from GPLv3+. * modules/mgetgroups (License): Likewise. * modules/getgroups (License): Change from LGPLv3+. xalloc-oversized: relax license to LGPLv2+ * modules/xalloc-oversized (License): Change from GPLv3+. nproc: relax license to LGPLv2+ * modules/nproc (License): Change from LGPLv3+. bootstrap: honor --no-git * build-aux/bootstrap: Don't even try to use git when user is pointing to a static checkout. 2013-06-23 Paul Eggert ignore-value: port to gcc -pedantic * lib/ignore-value.h (ignore_value): Port to gcc -pedantic, by using __extension__. Reindent as per usual gnulib style nowadays. Simplify GCC version check. 2013-06-21 Paul Eggert extern-inline: port to gcc -std=c89 * m4/extern-inline.m4 (gl_EXTERN_INLINE): Do not use __gnu_inline__ if pedantic and pre-C99. 2013-06-18 Paul Eggert doc: document extern-inline * doc/extern-inline.texi: New file. * doc/gnulib.texi (alloca-opt): Include it. * m4/extern-inline.m4: Move some comments to documentation, and others closer to what they describe. doc: chatter less * doc/Makefile (NEWEST_GNULIB_TEXI_FILE): New macro. (updated-stamp): Use it. This causes 'make' to output just one file name rather than zillions. fflush, fseeko: port to musl cross-compiles * lib/fseeko.c (fseeko): Assume that fflushing stdin works if on some implementation that (1) is not known to be buggy, (2) claims conformance to POSIX.1-2008 or later, and (3) is being cross-compiled to so we can't easily check for lack of conformance. This is for cross-compiling to musl. Reported by Rich Felker in . * m4/fclose.m4 (gl_FUNC_FCLOSE): * m4/fflush.m4 (gl_FUNC_FFLUSH): * m4/fseeko.m4 (gl_FUNC_FSEEKO): Adjust to above change. * m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): Set gl_cv_func_fflush_stdin to 'cross', not to 'no', when cross-compiling. AC_DEFINE FUNC_FFLUSH_STDIN to 1, 0, -1 if fflushing stdin is known to work, known not to work, or unknown. 2013-06-15 Paul Eggert msvc-inval: port to mingw-w64 * lib/msvc-inval.c (gl_msvc_invalid_parameter_handler): Use __cdecl, not cdecl, for mingw-w64. Reported by LRN in . 2013-06-11 Paul Eggert getcwd-lgpl: port to Tru64 * lib/getcwd-lgpl.c: Include , for malloc etc. Problem reported by Steven M. Schweda in . tests: port large-fd POSIX spawn tests to OS X Problem reported by Daiki Ueno in . * tests/test-posix_spawn_file_actions_addclose.c: * tests/test-posix_spawn_file_actions_adddup2.c: * tests/test-posix_spawn_file_actions_addopen.c: Include , for OPEN_MAX, if available. (big_fd): New static function. (main): Use it. 2013-06-04 Bernhard Voelker tests/nap.h: use an adaptive delay to avoid ctime update issues The recent change in nap.h (5191133e) decreased the probability of lost races to about a third, however such problems could still be observed in virtual machines and openSUSE's OBS. Before, nap() detected the needed time once empirically and then used that delay (together with a small correction multiplier) in further calls. This problem has been reported and discussed several times, including guesses about possible kernel issues: https://lists.gnu.org/r/bug-gnulib/2013-04/msg00071.html http://lists.gnu.org/r/coreutils/2012-03/msg00088.html https://lists.gnu.org/r/bug-gnulib/2011-11/msg00226.html http://bugs.gnu.org/12820 https://lists.gnu.org/r/bug-gnulib/2010-11/msg00113.html https://lists.gnu.org/r/bug-gnulib/2009-11/msg00007.html Now, nap() avoids the race alltogether by verifying on a reference file whether a timestamp difference has happened. * tests/nap.h (nap_fd): Define file descriptor variable for the witness file. (nap_works): Change return value to bool. Change passing the old file's status by value instead of by reference as this function does no longer update that timestamp; rename the function argument from st to old_st. Remove the local variables cdiff and mdiff because that function now returns true/false instead of the precise delay. (guess_delay): Remove function. (clear_tmp_file): Add new function to close and unlink the witness file. (nap): Instead of re-using the delay which has been calculated during the first call, avoid the race by actually verifying that a timestamp difference can be observed on the current file system. Use an adaptive approach for the delay to minimize execution time. Assert that the maximum delay is <= ~2 seconds, more precisely sum(2^n) from 0 to 30 = 2^31 - 1 = 2.1s. Use atexit to call clear_tmp_file when the process terminates. 2013-06-02 Paul Eggert sig2str: port to C++ * lib/sig2str.h (sig2str, str2sig): Declare as extern "C". Reported by Daniel J Sebald in . 2013-05-30 Eric Blake docs: mention cygwin shortcoming in * doc/posix-headers/sys_un.texi (sys/un.h): Mention problem. vasnprintf: silence mingw compiler warning * lib/vasnprintf.c (VASNPRINTF): Avoid unused variable warning. 2013-05-29 Paul Eggert c-ctype, regex, verify: port to gcc -std=c90 -pedantic Avoid constructions that are rejected by gcc -std=c90 -pedantic. This fixes a porting bug I recently reintroduced in regex, and some other instances that I discovered while testing the fix. * lib/c-ctype.h [__STRICT_ANSI__]: Avoid ({ ... }). * lib/regcomp.c (utf8_sb_map) [__STRICT_ANSI__]: Avoid [0 ... N] = E. * lib/regex_internal.h [!_LIBC && GNULIB_LOCK]: Do not use a macro with an empty argument if this is a pedantic pre-C99 GCC. * lib/verify.h: Do not use _Static_assert if this is a pedantic pre-C11 GCC. regex: adapt to locking regime instead of depending on pthread Instead of depending on pthread, adapt to whatever thread modules are in use. Problem reported by Ludovic Courtès in and by Mats Erik Andersson in . * lib/regex_internal.h (lock_define, lock_init, lock_fini): Support either the 'lock' module, or the 'pthread' module, or no module. (lock_lock, lock_unlock): New macros. * lib/regexec.c (regexec, re_search_stub): Use the new macros. * modules/lock, modules/pthread (configure.ac): Add module indicator. * modules/regex (Depends-on): Remove pthread. 2013-05-22 Eric Blake getgroups: document portability issues * doc/glibc-functions/initgroups.texi (initgroups): Mention multithread safety. * doc/posix-functions/getpwuid.texi (getpwuid): Likewise. * doc/posix-functions/getpwuid_r.texi (getpwuid_r): Likewise. * doc/glibc-functions/getgrouplist.texi (getgrouplist): Mention getugroups. * doc/posix-functions/getgroups.texi (getgroups): Mention multithread safety and mgetgroups. 2013-05-22 Bernhard Voelker test-lchown, test-chown: also skip test if chown fails with EPERM * tests/test-lchown.h (test_lchown): Add EPERM to the condition to skip this test, to handle FAT file systems. * tests/test-chown.h (test_chown): Likewise. 2013-05-19 Paul Eggert regex: fix dfa race in multithreaded uses Problem reported by Ludovic Courtès in . * lib/regex_internal.h (lock_define, lock_init, lock_fini): New macros. All uses of __libc_lock_define, __libc_lock_init changed to use the first two of these. (__libc_lock_lock, __libc_lock_unlock): New macros, for non-glibc platforms. (struct re_dfa_t): Define the lock unconditionally. * lib/regexec.c (regexec, re_search_stub): Remove some now-incorrect '#ifdef _LIBC"s. * modules/regex (Depends-on): Add pthread, if we use the included regex. * lib/regcomp.c: Do actions that are not needed for glibc, but may be needed elsewhere. (regfree, re_compile_internal): Destroy the lock. (re_compile_internal): Check for lock-initialization failure. malloca: port to compilers that reject size-zero arrays This fixes a bug introduced in my previous patch. * lib/malloca.c (struct preliminary_header): Use an int rather than a character array of size int; that's simpler. (struct header): Remove, replacing with ... (union header): New type. This avoids the need for declaring a character array of size zero, which is not allowed on some platforms. All uses changed. 2013-05-18 Paul Eggert parse-datetime, tests: don't use "string" + int Recent versions of 'clang' complain about C source code that uses expressions of the form '"string literal" + integer', I guess on the theory that it's confusing for readers who are used to C++. On those grounds I suppose it's OK to make this minor style change. * lib/parse-datetime.y (parse_datetime): * tests/test-fchdir.c (main): * tests/test-snprintf-posix.h (test_function): * tests/test-snprintf.c (main): * tests/test-vasnprintf-posix.c (test_function): * tests/test-vasnprintf.c (test_function): * tests/test-vsnprintf.c (main): * tests/unistdio/test-ulc-asnprintf1.h (test_function): Rewrite '"str" + E' to '&"str"[E]'. 2013-05-17 Alexandre Duret-Lutz argmatch: port to C++ * lib/argmatch.h [__cplusplus]: Add extern "C". argp: typo fix * lib/argp-help.c: Typo in comment. 2013-05-15 Paul Eggert manywarnings: update for GCC 4.8.0 * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Waggressive-loop-optimizations, -Wreturn-local-addr, which are new to GCC 4.8. Remove -Wformat=2, -Wmissing-format-attribute, -Wmissing-noreturn, as they are duplicates of other warnings. Remove -Wunreachable-code, as it is removed in GCC 4.8 and was documented to be flaky in earlier versions of GCC. spawn-tests, sys_socket-tests, sys_wait-tests: port to clang * tests/test-spawn.c (main): * tests/test-sys_socket.c (main): * tests/test-sys_wait.c (main): Don't have a switch value that isn't covered by a case. getaddrinfo-tests: port --enable-gcc-warnings to clang * tests/test-getaddrinfo.c (simple): Avoid casts from looser to stricter-aligned pointers. thread: port --enable-gcc-warnings to clang * lib/glthread/thread.h [__clang__ && USE_POSIX_THREADS_WEAK]: Include , to pacify a warning about pthread_sigmask. stdio: use __REDIRECT for fwrite, fwrite_unlocked * lib/stdio.in.h (fwrite): When working around bug 11959, use __REDIRECT rather than '#define fwrite(...) ... fwrite (...) ...'. This is a more-targeted way to fix the -Wunused-value issue with clang, and it works with GCC too. Problem with targeting reported by Eric Blake in . (fwrite_unlocked): Treat like fwrite. I ran into this issue while debugging the fwrite issue. stdio: port --enable-gcc-warnings to clang * lib/stdio.in.h (fwrite) [__clang__]: Ignore -Wunused-value entirely, since the GCC workaround for fwrite does not pacify clang. sig2str: port --enable-gcc-warnings to clang * lib/sig2str.c (sig2str): Avoid warning about unused printf argument. obstack: port --enable-gcc-warnings to clang * lib/obstack.h (obstack_ptr_grow_fast, obstack_int_grow_fast): Avoid casts from looser to stricter-aligned pointers. memchr2: port --enable-gcc-warnings to clang * lib/memchr2.c (memchr2): Avoid casts from looser to stricter-aligned pointers. mbsstr: port --enable-gcc-warnings to clang * lib/mbsstr.c (knuth_morris_pratt_multibyte): Avoid casts from looser to stricter-aligned pointers. malloca: port --enable-gcc-warnings to clang * lib/malloca.c (struct header): New member 'magic', to avoid casts. (mmalloca): Avoid casts from looser to stricter-aligned pointers. inttostr: port --enable-gcc-warnings to clang * lib/anytostr.c [__clang__]: Ignore -Wtautological-compare. warnings: port to clang Problem reported by Daniel P. Berrange via Eric Blake in . * m4/warnings.m4 (gl_UNKNOWN_WARNINGS_ARE_ERRORS): New macro. (gl_WARN_ADD): Use it. 2013-05-11 Jim Meyering quotearg: do not read beyond end of buffer * lib/quotearg.c (quotearg_buffer_restyled): Do not read beyond the end of an ARG for which no length was specified. With an N-byte quote string, (e.g., N is 3 in the fr_FR.UTF-8 locale), this function would read N-2 bytes beyond ARG's trailing NUL. This was triggered via coreutils' misc/sort-debug-keys.sh test and detected by running the test against a binary compiled with gcc-4.8.0's -fsanitize=address. * tests/test-quotearg-simple.c (main): Add a test to trigger the bug. * modules/quotearg-simple-tests (Files): Add tests/zerosize-ptr.h. Introduced via the 2000-01-15 commit, c4b7f3f8, "Quote multibyte characters correctly." 2013-05-11 Daiki Ueno lock: work around pthread recursive mutexes bug in Mac OS X 10.6 * m4/lock.m4: Don't define HAVE_PTHREAD_MUTEX_RECURSIVE if the compilation target is Mac OS X 10.6. Problem reported by parafin and Andoni Morales in and . 2013-05-11 Paul Eggert mkdir-p: remove assumptions about umask and mode * lib/mkdir-p.c (make_dir_parents): Do not assume that the current umask is 0, or that MODE is a subset of MODE_BITS. 2013-05-10 Eric Blake maint.mk: catch more abuse of HAVE_DECL in syntax-check * top/maint.mk (sc_prohibit_defined_have_decl_tests): Relax regex. 2013-05-10 Stefano Lattarini deps: require Automake >= 1.9.6 in generated Makefile fragments That is the same minimal version required in the DEPENDENCIES file. Moreover, the old code generated a requirement of Automake >= 1.5, and that is an insanely outdated version. * gnulib-tool: Bump minimal version requirement in AUTOMAKE_OPTIONS. * tests/havelib/rpathlx/Makefile.am: Likewise. * tests/havelib/rpathly/Makefile.am: Likewise. * tests/havelib/rpathlyx/Makefile.am: Likewise. * tests/havelib/rpathlz/Makefile.am: Likewise. * tests/havelib/rpathlzyx/Makefile.am: Likewise. * tests/havelib/rpathx/Makefile.am: Likewise. * tests/havelib/rpathy/Makefile.am: Likewise. * tests/havelib/rpathz/Makefile.am: Likewise. 2013-05-08 Eric Blake bootstrap: AC_INIT may have more than four parameters * build-aux/bootstrap (extract_package_name): Correctly extract non-empty tarname field. Avoid range in regex. Based on a report by Sami Kerola . 2013-05-07 Paul Eggert qacl: port to MS-Windows port of GNU Emacs * lib/acl-errno-valid.c (acl_errno_valid) [ENOTSUP == ENOSYS]: Omit the duplicate ENOTSUP case. Needed for the MS-Windows port of GNU Emacs. Problem reported by Eli Zaretskii in . 2013-05-07 Mike Frysinger acl: include quote.h * lib/copy-acl.c: Include quote.h. * lib/set-acl.c: Likewise. 2013-05-06 Mike Frysinger fchownat, renameat, unlinkat: update statat dependencies These modules use statat and lstatat, not fstatat; so depend on the statat module, which was split out recently from fstatat. * modules/fchownat, modules/unlinkat: Change fstatat to statat. * modules/renameat: Likewise. Also delete fstat. URL: http://bugs.gentoo.org/468790 2013-05-04 Stefano Lattarini Assume gnulib is checked out from Git, not CVS In fact, access to the gnulib repository through CVS has been disabled, or more precisely, got broken and was never restored; see: Note that support for CVS is not removed completely and unthinkingly by this change: only support for CVS checkouts of gnulib itself is removed. For example, the 'bootstrap' script still cater to .cvsingore files and CVS directories, for the benefit of those poor gnulib clients still stuck with CVS. Ditto for the 'gnulib-tool' script itself. * gnulib-tool: Simplify accordingly. * posix-modules: Likewise. * MODULES.html.sh: Likewise. * doc/gnulib.texi: No longer mention the decommissioned CVS gnulib repository. * doc/gnulib-intro.texi: Likewise. * doc/gnulib-readme.texi: Likewise. * doc/gnulib-tool.texi: In the examples and explanations, refer to a sample '.gitignore' file rather than a sample '.cvsignore'. * NEWS: Update. * m4/extensions.m4: While at it, remove a comment mistakenly referring to "CVS Autoconf" rather than "git Autoconf". 2013-04-30 Paul Eggert utimensat-tests, etc.: try to fix some races Problem reported by Bernhard Voelker in . I don't know whether this patch fixes that race condition, but it fixes *some* race conditions, so it should be a win. * modules/chown-tests (Depends-on): * modules/fchownat-tests (Depends-on): * modules/fdutimensat-tests (Depends-on): * modules/futimens-tests (Depends-on): * modules/lchown-tests (Depends-on): * modules/stat-time-tests (Depends-on): * modules/utimens-tests (Depends-on): * modules/utimensat-tests (Depends-on): Depend on nanosleep, not usleep. * modules/chown-tests (test_chown_LDADD): * modules/lchown-tests (test_lchown_LDADD): * modules/stat-time-tests (test_stat_time_LDADD): New macro. * modules/fchownat-tests (test_fchownat_LDADD): * modules/fdutimensat-tests (test_fdutimensat_LDADD): * modules/futimens-tests (test_futimens_LDADD): * modules/utimens-tests (test_utimens_LDADD): * modules/utimensat-tests (test_utimensat_LDADD): Add $(LIB_NANOSLEEP). * modules/stat-time-tests (Files): Add tests/nap.h. * tests/nap.h: Include , for INT_MAX. (lt_mtime): Remove. (diff_timespec): New function. (get_stat): Rename from get_mtime. All callers changed. (nap_works): Determine the needed delay by inspecting the file system's timestamp jumps; this should be more reliable. Look at both mtime and ctime, and take the maximum of the two jumps. (nap_works, guess_delay): Return a nanosecond count, not a microsecond count. All callers changed. (nap_works, nap): Use nanosleep, not usleep. Check for nanosleep failure. (nap): Multiply the guess by 1.125, to accommodate the case where the file system's clock is a bit slower than nanosleep's clock. * tests/test-stat-time.c (BASE): New macro. Include nap.h. (nap): Remove; nap.h now defines this. This removes a duplicate implementation of 'nap'. utimens, utimensat: work around Solaris UTIME_OMIT bug Solaris 11.1 and Solaris 10 have the same UTIME_OMIT bug that Linux kernel 2.6.32 does. Work around it in the same way. * doc/posix-functions/futimens.texi (futimens): * doc/posix-functions/utimensat.texi (utimensat): Document the bug. * lib/utimens.c (fdutimens, lutimens): * lib/utimensat.c (rpl_utimensat): Work around the bug. gettext: now it's your responsibility to add -I$(top_builddir)/intl Formerly, it was your responsibility to do this for all Makefile.ams other than Gnulib's. Now it's your responsibility to do it for Gnulib's Makefile.am, too. * NEWS: Document this. * modules/gettext (AM_CPPFLAGS): Don't append -$(top_builddir)/intl. acl: include errno.h to get errno Reported by Daiki Ueno in . * lib/copy-acl.c, lib/set-acl.c: Include errno.h. 2013-04-29 Paul Eggert tests: don't assume getdtablesize () <= 10000000 * modules/cloexec-tests: * modules/dup2-tests: * modules/dup3-tests: * modules/nonblocking-tests: * modules/posix_spawn_file_actions_addclose-tests: * modules/posix_spawn_file_actions_adddup2-tests: * modules/posix_spawn_file_actions_addopen-tests: * modules/unistd-safer-tests: Depend on the getdtablesize module. * tests/test-cloexec.c: * tests/test-dup-safer.c: * tests/test-dup2.c: * tests/test-dup3.c: * tests/test-fcntl.c: * tests/test-nonblocking.c: * tests/test-posix_spawn_file_actions_addclose.c: * tests/test-posix_spawn_file_actions_adddup2.c: * tests/test-posix_spawn_file_actions_addopen.c: Don't assume getdtablesize () <= 10000000. 2013-04-28 Paul Eggert extern-inline: work around bug in Sun c99 * m4/extern-inline.m4 (_GL_INLINE, _GL_EXTERN_INLINE): Work around bug in Sun C 5.12 c99's implementation of 'inline'. 2013-04-27 Paul Eggert qacl: new module, broken out from the acl module This is for GNU Emacs, which wants the acl functions but does not want 'error' invoked when they fail. * lib/acl-internal.h: Do not include error.h, quote.h. (ENOSYS, ENOTSUP): Remove; no longer needed. (ACL_NOT_WELL_SUPPORTED): Remove; replaced by acl_errno_valid. * lib/acl.h: Include . (acl_errno_valid): New function. * lib/copy-acl.c, lib/set-acl.c: Include errno,h, not acl-internal.h. * lib/copy-acl.c (qcopy_acl): Move to lib/qcopy-acl.c. * lib/set-acl.c: Rename from lib/set-mode-acl.c. (chmod_or_fchmod, qset_acl): Move to lib/qset-acl.c. (ACL_INTERNAL_INLINE): Remove; no longer needed. * lib/file-has-acl.c (file_has_acl): * lib/qcopy-acl.c (qcopy_acl): * lib/qset-acl.c (qset_acl): Use acl_errno_valid instead of ACL_NOT_WELL_SUPPORTED. * modules/acl (Files): Move lib/acl.h, lib/acl-internal.h, lib/acl_entries.c, lib/set-mode-acl.c (renamed to lib/set-acl.c), lib/file-has-acl.c, m4/acl.m4 to qacl module. Add lib/set-acl.c. (Depends-on): Move extern-inline, fstat, sys_stat to qacl module. Add qacl. (configure.ac): Move gl_FUNC_ACL to qacl module. (lib_SOURCES): Remove file-has-acl.c (moved to qacl module). Rename set-mode-acl.c to set-acl.c. * lib/acl-errno-valid.c: New file. * lib/qcopy-acl.c: New file, moved from the old lib/copy-acl.c; the copy_acl function remains in copy-acl.c. * lib/qcopy-acl.c, lib/qset-acl.c: Do not include gettext.h. (_): Remove; not needed. * lib/qset-acl.c: New file, moved from the old lib/set-mode-acl.c; the set_acl function remains in set-acl.c (renamed from set-mode-acl.c). * modules/qacl: New file, moved from the old modules/acl. (Files, lib_SOURCES): Add acl-errno-valid.c, qcopy-acl.c, qset-acl.c. Remove set-mode-acl.c, copy-acl.c. (Depends-on): Remove error, gettext-h, quote. Add stdbool. alignof, intprops, malloca: port better to IBM's C compiler * lib/alignof.h (alignof_type) [__IBM_ALIGNOF__]: Use __alignof__. * lib/intprops.h (_GL_HAVE___TYPEOF__) [__IBM_TYPEOF__]: Now 1. * lib/malloca.h (sa_alignof): [__IBM_ALIGNOF__]: Use __alignof__. 2013-04-25 Daiki Ueno wctype-h: fix gettext link error on mingw Reported by Josue Andrade Gomes and Takayuki Tsunakawa in . * lib/wctype.in.h [__MINGW32__]: Include before defining rpl_towupper and rpl_towupper. 2013-04-11 Dmitry V. Levin regex-tests, regex: allow glibc re_search behavior * tests/test-regex.c (main): In test for glibc bug 15078, reformat re_search input data to make the multi-character collating element in it clearly visible, and treat re_search return code 0 as valid. * m4/regex.m4 (gl_REGEX): Likewise. 2013-03-30 Paul Eggert stdalign: doc fix * doc/posix-headers/stdalign.texi (stdalign.h): Gnulib doesn't support '_Alignof expr'. 2013-03-29 Paul Eggert stdalign: port to stricter ISO C11 ISO C11 says that _Alignof's operand must be a parenthesized type. Problem reported by Eli Zaretskii in . * doc/posix-headers/stdalign.texi (stdalign.h): Document this. * m4/stdalign.m4 (gl_STDALIGN_H): Don't use _Alignof (expr). 2013-03-21 Paul Eggert sys_select, sys_time: port 2013-01-30 Solaris 2.6 fix to Cygwin Problem reported by Marco Atzeri in . * lib/sys_select.in.h [HAVE_SYS_SELECT_H && _CYGWIN_SYS_TIME_H]: Simply delegate to the system in this case too. Also, pay attention to _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H only if OSF/1, since otherwise Cygwin breaks, and it doesn't seem to be needed on Solaris either. * lib/sys_time.in.h [_CYGWIN_SYS_TIME_H]: Simply delegate to the system in this case. 2013-03-19 Karl Berry * build-aux/gnupload: check for erroneous (with gnupload) use of ftp-upload.gnu.org, tweak help. 2013-03-19 Paul Eggert copy-file, rpmatch: fix problems found by cppcheck Reported by Arno Onken in . * lib/rpmatch.c (try): Fix memory leak. * lib/copy-file.c: Include "ignore-value.h". (qcopy_file_preserving): Ignore chown value. * modules/copy-file (Depends-on): Add ignore-value. 2013-01-27 Jim Meyering prefix-gnulib-mk: give better diagnostics * build-aux/prefix-gnulib-mk: Don't just "die". Give better diagnostics upon failure. 2013-03-13 Paul Eggert putenv: port to Solaris 10 * lib/putenv.c (_unsetenv, putenv): Use HAVE_DECL__PUTENV, not HAVE__PUTENV. Solaris 10 has a _putenv that's not declared and is not what is wanted here. * m4/putenv.m4 (gl_PREREQ_PUTENV): Check for _putenv's declaration, not for its existence. 2013-03-12 Paul Eggert mktime: fix configure typo * m4/mktime.m4 (gl_FUNC_MKTIME): Fix typo in previous change. 2013-03-12 Eric Blake regex-tests: skip UTF-8 test on mingw * modules/regex-tests (Depends-on): Add localcharset. * tests/test-regex.c (main): Use it to skip test on mingw. 2013-03-11 Eric Blake tests: make it easier to bypass alarm time in debugger * tests/test-file-has-acl.c (main): Allow gdb to override alarm. * tests/test-memmem.c (main): Likewise. * tests/test-passfd.c (main): Likewise. * tests/test-ptsname.c (main): Likewise. * tests/test-ptsname_r.c (main): Likewise. * tests/test-strcasestr.c (main): Likewise. * tests/test-strstr.c (main): Likewise. regex: port to mingw's recent addition of undeclared alarm * doc/posix-functions/alarm.texi (alarm): Document that alarm exists but still doesn't work in newer mingw. * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Check for alarm declaration, not existence. Ensure SIGALRM is not trapped. * m4/mktime.m4 (gl_FUNC_MKTIME): Likewise. * m4/regex.m4 (gl_REGEX): Likewise. * m4/remainderf.m4 (gl_FUNC_REMAINDERF_WORKS): Likewise. * tests/test-regex.c (main): Use correct probe for alarm. putenv: avoid compilation warning on mingw * lib/putenv.c (_unsetenv): Protect variable declaration. (putenv): Fix indentation. 2013-03-11 Gary V. Vaughan unistd: don't prevent Tru64 Unix from using gnulib strtod. * lib/unistd.in.h: be careful not to include un-needed system stdlib.h from here, because that prevents gnulib stdlib.h from defining rpl_strtod correctly. 2013-03-09 Gary V. Vaughan vasprintf-posix-tests: allow rounding 1.51 to 1, per the previous changesets, but for the 'precision 0' test. * tests/test-vasprintf-posix.c (test_function): Don't insist on round-to-even, since POSIX says rounding is implementation-defined and OS X 10.8.2 rounds 1.51 to 1 here. vasprintf-posix-tests: allow rounding 1.5 to 1, per the previous changeset. * tests/test-vasprintf-posix.c (test_function): Don't insist on round-to-even, since POSIX says rounding is implementation-defined and OS X 10.8.2 rounds 1.5 to 1 here. 2013-03-08 Paul Eggert vasnprintf-posix-tests: allow rounding 1.5 to 1 * tests/test-vasnprintf-posix.c (test_function): Don't insist on round-to-even, since POSIX says rounding is implementation-defined and OS X 10.8.2 rounds 1.5 to 1 here. Reported by Gary V. Vaughan in . bootstrap: port to FreeBSD * build-aux/bootstrap (bootstrap_sync): Port sh -c usage to shells that treat '--' differently. Reported by Mats Erik Andersson in . 2013-03-08 Gary V. Vaughan regex: rename remaining __attribute calls to __attribute__. 2012-02-25 changed definition of __attribute, but left some uses unchanged, preventing compilation of regex module on most non-gcc environments. * lib/regcomp.c (re_set_fastmap, seek_collating_symbol_entry) (lookup_collation_sequence_value, build_range_exp) (build_collating_symbol): Set attributes with newly renamed __attribute__ decorator. * lib/regex_internal.c (re_string_peek_byte_case) (re_node_set_compare, re_node_set_contains): Likewise. * lib/regexec.c (acquire_init_state_context): Likewise. 2013-03-06 Bruno Haible execute: Revert last change, but use a different condition. * lib/execute.c (nonintr_close, nonintr_open): Reintroduce, but only on Windows. 2013-03-05 Eric Blake execute: drop dead code * lib/execute.c (nonintr_close, nonintr_open): Delete. 2013-03-04 Paul Eggert non-recursive-gnulib-prefix-hack: port coreutils 8.21 to HP NonStop * m4/non-recursive-gnulib-prefix-hack.m4 (gl_NON_RECURSIVE_GNULIB_PREFIX_HACK): Don't mess with ALLOCA. Problem reported for HP NonStop + coreutils 8.21 by Joachim Schmitz in . 2013-03-04 Eric Blake test-getsockopt: avoid compiler warning * tests/test-getsockopt.c (includes): Ensure close is declared. 2013-03-02 Bruno Haible sys_types: Avoid autoconf warning about gl_SYS_TYPES_H. * m4/sys_types_h.m4 (gl_SYS_TYPES_H): Define through AC_DEFUN_ONCE. 2013-03-02 Bruno Haible gettext: Update to version 0.18.2. * m4/intl.m4, m4/po.m4: Update from gettext-0.18.2. In particular: 2012-12-07 Stefano Lattarini * intl.m4, po.m4: Bump requirement in AC_PREREQ to 2.60. 2013-02-25 Paul Eggert regex: merge patches from libc 2013-02-26 Siddhesh Poyarekar * lib/regex_internal.h (__attribute__): Rename from __attribute. All uses changed. (bitset_not, bitset_merge, bitset_mask, re_string_char_size_at) (re_string_wchar_at, re_string_elem_size_at): Mark function as possibly unused. 2013-02-12 Andreas Schwab [BZ #11561] * lib/regcomp.c (parse_bracket_exp) [_LIBC]: When looking up collating elements compare against the byte sequence of it, not its name. 2013-02-21 Paul Eggert putenv: port better to native Windows * lib/putenv.c [(_WIN32 || __WIN32__) && ! __CYGWIN__]: Define WIN32_LEAN_AND_MEAN and include . (_unsetenv): Use _putenv if available. (putenv): Temporarily set NAME=' ' rather than NAME='x' as that's a bit less likely to cause damage. (putenv) [(_WIN32 || __WIN32__) && ! __CYGWIN__]: Fix the wrong value with SetEnvironmentVariable. (putenv) [!HAVE__PUTENV]: Simplify and match the HAVE__PUTENV code better. 2013-02-20 Paul Eggert regex: ignore old-style-definition warnings * lib/regex.c: Add pragma to ignore these warnings. Problem reported for GNU tar by Pavel Raiskup. 2013-02-19 Paul Eggert getcwd: support coreutils better Like strtod, getcwd incorrectly referred to HAVE_RAW_DECL_GETCWD, but this might not be correct in coreutils, which disables the raw decl checks. Problem reported by Nagendra in . * lib/getcwd.c (__getcwd): Do not depend on HAVE_RAW_DECL_GETCWD. * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Test the getcwd function, not any macro, since getcwd.c wants the function. * m4/getcwd.m4 (gl_FUNC_GETCWD): Don't define HAVE_MINIMALLY_WORKING_GETCWD if the code doesn't compile, as might happen if there's a macro but no function. strtod: support coreutils better * lib/strtod.c (underlying_strtod): Just invoke the underlying strtod. HAVE_RAW_DECL_STRTOD might not be correct in coreutils, which disables the raw decl checks. This assumes there is an underlying strtod, but that's a safe assumption these days. (HAVE_RAW_DECL_STRTOD): Remove; no longer used. mountlist: port to HP NonStop Reported by Joachim Schmitz in . * lib/mountlist.c (hasmntopt) [!HAVE_HASMNTOPT]: New function. (MNT_IGNORE) [MNTOPT_IGNORE]: Use it. 2013-02-18 Paul Eggert extern-inline: avoid compilation error with HP-UX cc Reported by Richard Lloyd in . * m4/extern-inline.m4 (_GL_INLINE, _GL_EXTERN_INLINE): Suppress extern inline with HP-UX cc. This should be safe, though it may hurt performance. Perhaps someone with some HP-UX experience can come up with a higher-performance fix. 2013-02-14 Paul Eggert putenv: fix heap corruption with mixed putenv/_putenv Problem reported by Michael Goffioul in . * lib/putenv.c (putenv) [HAVE__PUTENV]: Rely on _putenv to allocate the new environment. * m4/putenv.m4 (gl_PREREQ_PUTENV): New macro. * modules/putenv (configure.ac): Use it. 2013-02-11 Paul Eggert unsetenv etc.: port to Solaris 11 + GNU Emacs * lib/canonicalize-lgpl.c, lib/getaddrinfo.c, lib/getdelim.c: * lib/glob.c, lib/random_r.c, lib/setenv.c, lib/tsearch.c: * lib/unsetenv.c (_GL_ARG_NONNULL): Define before including . GNU Emacs's includes (which is not a great idea but is too painful to fix right now), and without this gnulib change was defining _GL_ARG_NONNULL incorrectly when compiling unsetenv.c on Solaris 11. Fix the problem for unsetenv.c, and fix other similar occurrences. 2013-02-09 Paul Eggert secure_getenv: fix C++ declaration typo * lib/stdlib.in.h (secure_getenv): Fix typo with return type in _GL_CXXALIAS_SYS macro. Reported by John W. Eaton in . 2013-02-08 Paul Eggert careadlinkat: stop exporting careadlinkatcwd Only Emacs used it directly, and Emacs no longer needs it. * NEWS: Document this simplification. * lib/areadlink.c (careadlinkatcwd): Move here from careadlinkat.c, and make it static. Include , for abort, and unistd.h, for readlink. * lib/careadlinkat.c (careadlinkatcwd): Move to areadlink.c. Don't include stdlib.h; no longer needed. * lib/careadlinkat.h (careadlinkatcwd): Remove decl. * lib/relocwrapper.c: Adjust comment to match new dependencies. * modules/areadlink (Depends-on): Add readlink. (Maintainer): Add self. * modules/careadlinkat (Depends-on): Remove readlink. extensions: port better to HP-UX This is merged from git Autoconf. * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): On hosts that need _XOPEN_SOURCE, define it when configuring, too, so that it's compatible with the value used when compiling. openpty: fix bug where HAVE_OPENPTY is mistakenly 1 Problem reported by Mats Erik Andersson in . * m4/pty.m4 (gl_FUNC_OPENPTY): Define HAVE_OPENPTY when the openpty function exists, not merely when we intend to replace it. This corrects the 2013-01-31 patch, which mistakenly defined HAVE_OPENPTY even on hosts that lacked it. 2013-02-07 Paul Eggert secure_getenv: fix include typo * lib/secure_getenv.c: Include config.h. Somehow I forgot! secure_getenv: port better to FreeBSD and Solaris * lib/secure_getenv.c [!HAVE___SECURE_GETENV]: Include unistd.h if HAVE_ISSETUGID, otherwise define a dummy issetugid. (secure_getenv) [!HAVE___SECURE_GETENV]: Use getenv if not issetugid. This works better on BSDish platforms. * m4/secure_getenv.m4 (gl_PREREQ_SECURE_GETENV): Test for issetugid if __secure_getenv is missing. 2013-02-06 Paul Eggert extensions: port better to MINIX 3, HP-UX, autoheader 2.62 Some of these changes are merged in from git Autoconf. * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): When deciding whether to define _XOPEN_SOURCE, inspect the preprocessor macro __hpux instead of the more-heavyweight operation of requiring AC_CANONICAL_HOST. Define _NETBSD_HOST on MINIX, for MINIX 3. Use USE_SYSTEM_EXTENSIONS, not __EXTENSIONS__, as the key for __EXTENSIONS__. unistd: avoid namespace pollution on non-glibc systems * lib/unistd.in.h: #define __need_getopt before including . This avoids namespace pollution on non-glibc systems, by causing gnulib unistd.h to behave more like glibc unistd.h. I also hope that this fixes a bug on FreeBSD, reported by Mats Erik Andersson in . 2013-02-04 Paul Eggert tmpdir: use secure_getenv * lib/tmpdir.c (__secure_getenv) [!LIBC]: Define to secure_getenv, not getenv. * m4/tmpdir.m4 (gt_TMPDIR): Don't check for __secure_getenv, as that's now secure_getenv's job. * modules/tmpdir (Depends-on): Add secure_getenv. tempname: use secure_getenv * lib/tempname.c (__secure_getenv) [!_LIBC]: Define to secure_getenv, not getenv. * modules/tempname (Depends-on): Add secure_getenv. secure_getenv: new module * MODULES.html.sh (Extra functions based on ANSI C 89): Add secure_getenv. * doc/glibc-functions/secure_getenv.texi: New file. * doc/gnulib.texi: Include it. * lib/secure_getenv.c, m4/secure_getenv.m4, modules/secure_getenv: New files. * lib/stdlib.in.h (secure_getenv): New decl. * m4/stdlib_h.m4 (gl_STDLIB_H, gl_STDLIB_H_DEFAULTS): * modules/stdlib (stdlib.h): Add secure_getenv checks. 2013-02-03 Paul Eggert getcwd: break fdopendir + save_cwd recursive loop (Bug#13516) Reported for OS X 10.8.2 by Assaf Gordon in . * lib/getcwd.c (HAVE_OPENAT_SUPPORT): Do not define if !HAVE_OPENAT && !HAVE_FDOPENDIR. * m4/getcwd-abort-bug.m4: Reformat to match test-getcwd.c so that they can be kept in sync more easily. Avoid PATH_MAX test on the Hurd. Sync from test-getcwd.c for errno tests after mkdir or chdir failure. * tests/test-getcwd.c (HAVE_OPENAT_SUPPORT): New macro, from lib/getcwd.c. (test_abort_bug): Do not test for the deep directory bug unless we have openat support. Avoid PATH_MAX test on the Hurd. regex-tests, regex: fix bug: memset undeclared * tests/test-regex.c: Don't include regex.h twice. Include string.h, to declare memset. Christensen's report also mentioned this issue. * m4/regex.m4 (gl_REGEX): Keep test program more in sync with test-regex.c, to avoid future problems like this. Remove AC_INCLUDES_DEFAULT. Include . Don't include twice. regex-tests: fix link errors on older Solaris These need to link with @LIBINTL@ to get libintl_gettext. Problem reported by Tom G. Christensen in . * modules/regex-tests (test_regex_LDADD): New macro. 2013-01-31 Paul Eggert regex-tests: new module * modules/regex-tests, tests/test-regex.c: New files. regex: fix off-by-one error in configure test * m4/regex.m4 (gl_REGEX): Test should return 21, not 20. 2013-01-31 Eric Blake regex: avoid infinite configure test * m4/regex.m4 (gl_REGEX): Add an alarm escape hatch. 2013-01-31 Reuben Thomas openpty: fix bug where HAVE_OPENPTY wasn't defined See the thread starting at: http://lists.gnu.org/r/bug-gnulib/2013-01/msg00185.html * m4/pty.m4 (gl_FUNC_OPENPTY): Define HAVE_OPENPTY when the openpty function exists, not merely when we intend to replace it. 2013-01-30 Paul Eggert sys_time: port to Solaris 2.6 There is a circularity problem on Solaris 2.6, where includes for struct timespec. The include nesting is gnulib , system , gnulib , system , gnulib , system , gnulib , gnulib , system , system ; the last, innermost file needs struct timestruc_t, which is defined in , which has not been fully parsed. Problem reported by Tom G. Christensen in . * lib/sys_select.in.h: Treat Solaris 2.6's problem with and like OSF/1's similar problem. * lib/sys_time.in.h: Redo to resemble sys_select.in.h, which uses split double-inclusion guards. 2013-01-29 Paul Eggert regex: test for buffer overrun * m4/regex.m4 (gl_REGEX): Add test case, by Andreas Schwab, for the just-fixed regex bug. 2013-01-29 Andreas Schwab regex: fix buffer overrun in regexp matcher [BZ #15078] * lib/regexec.c (extend_buffers): Add parameter min_len. (check_matching): Pass minimum needed length. (clean_state_log_if_needed): Likewise. (get_subexp): Likewise. 2013-01-28 Pádraig Brady mountlist: don't consider "devtmpfs" as dummy * lib/mountlist.c (ME_DUMMY_0): Remove "devtmpfs" as there is storage associcated with it. 2013-01-27 Paul Eggert futimens-tests, utimens-tests: Depend on gettext. This works around a problem introduced in my 2013-01-12 patch, which added @LIBINTL@ to these modules. * modules/futimens-tests (Depends-on): * modules/utimens-tests (Depends-on): Add gettext. 2013-01-26 Eric Blake test-getpeername: fix typo * tests/test-getpeername.c: Fix typo introduced in fd cleanup. 2013-01-20 Bernhard Voelker bootstrap: remove the need for a sorted .gitignore file * build-aux/bootstrap (insert_sorted_if_absent): Adjust and rename to insert_if_absent(), so that we don't need or generate a sorted .gitignore file. We do require a .gitignore with no existing duplicate entries and enforce that. (sort_patterns): Remove this function as we now use the simpler technigue of inserting blacklist entries at the top of the file, assuming gnulib won't be inserting !whitelist entries. 2013-01-23 Paul Eggert readlinkat: don't depend on gl_FUNC_OPENAT * m4/readlinkat.m4 (gl_FUNC_READLINKAT): Don't require gl_FUNC_OPENAT. Perhaps a similar change needs to be made for linkat.m4, mkfifoat.m4, renameat.m4, symlinkat.m4; but one thing at a time. statat: new module, split out from fstatat GNU Emacs needs the POSIX-specified fstatat, but not the gnulib-specified statat and lstat. Split the latter two into a new module 'statat'. * lib/openat.h: Depend on GNULIB_STATAT, not GNULIB_FSTATAT. * lib/openat.h, lib/statat.c (STATAT_INLINE): Rename from FSTATAT_INLINE. All uses changed. * modules/fstatat (Files): Remove lib/statat.c. (gl_MODULE_INDICATOR([fstatat])): Remove. (lib_SOURCES): Remove. (Maintainer): Add self. * modules/statat, modules/statat-tests, tests/test-statat.c: New files. * tests/test-fstatat.c (BASE): Don't define if already defined. (do_stat, do_lstat) [!TEST_STATAT]: Test fstatat instead. 2013-01-22 Paul Eggert tests: don't assume fd 99 is closed * tests/test-accept.c, tests/test-accept4.c, tests/test-bind.c: * tests/test-close.c, tests/test-connect.c, tests/test-dprintf.c: * tests/test-dup.c, tests/test-dup2.c, tests/test-faccessat.c: * tests/test-fchdir.c, tests/test-fchmod.c, tests/test-fchmodat.c: * tests/test-fchown.c, tests/test-fchownat.c, tests/test-fclose.c: * tests/test-fdatasync.c, tests/test-fdopen.c, tests/test-fdopendir.c: * tests/test-fflush.c, tests/test-fgetc.c, tests/test-fputc.c: * tests/test-fread.c, tests/test-freopen.c, tests/test-fseeko4.c: * tests/test-fstat.c, tests/test-fstatat.c, tests/test-fsync.c: * tests/test-ftello4.c, tests/test-ftruncate.c, tests/test-futimens.h: * tests/test-fwrite.c, tests/test-getpeername.c: * tests/test-getsockname.c, tests/test-getsockopt.c: * tests/test-grantpt.c, tests/test-ioctl.c, tests/test-isatty.c: * tests/test-linkat.c, tests/test-listen.c, tests/test-lseek.c: * tests/test-mkdirat.c, tests/test-mkfifoat.c, tests/test-openat.c: * tests/test-pread.c, tests/test-pwrite.c, tests/test-read.c: * tests/test-readlinkat.c, tests/test-recv.c, tests/test-recvfrom.c: * tests/test-renameat.c, tests/test-select.h, tests/test-send.c: * tests/test-sendto.c, tests/test-setsockopt.c, tests/test-shutdown.c: * tests/test-symlinkat.c, tests/test-ttyname_r.c: * tests/test-unlinkat.c, tests/test-unlockpt.c: * tests/test-utimensat.c, tests/test-vdprintf.c, tests/test-write.c: Close file descriptor 99, instead of assuming it's already closed. 2013-01-21 Paul Eggert stpncpy: port to OS X 10.8 * lib/stpncpy.c (__stpncpy): Parenthesize name when defining function. Problem reported by Assaf Gordon in . 2013-01-16 Paul Eggert unistd: port to recent mingw * lib/unistd.in.h: Remove special invocation convention for mingw, which breaks for the latest mingw version. See John W. Eaton in . largefile: port better to Mac OS X 10.5 This patch is backported from Autoconf git. * m4/largefile.m4 (AC_SYS_LARGEFILE): Use AC_DEFINE, not AH_VERBATIM, to define _DARWIN_USE_64_BIT_INODE, to avoid problems with ino_t size being different for configuration time versus build/run time. Problem reported by PHO in . 2013-01-15 Paul Eggert doc: clarify -Werror * doc/warnings.texi (warnings): -Werror is not always a bad idea; clarify that it's intended for developers, not for ordinary builds, and mention --enable-gcc-warnings as one possible use. 2013-01-15 Andoni Morales Alastruey (tiny change) stdint: fix build with Android's Bionic fox x86 * lib/stdint.in.h: fix check to test if included-fixed/sys/types.h was already included as _SSIZE_T_DEFINED_ might also be defined in include/machine/_types.h, which is included by stdio.h 2013-01-13 Paul Eggert net_if-tests: port to Solaris 7 + GCC 3.4.6 Problem reported by Tom G. Christensen in . * tests/test-net_if.c (ni): Move to next the code that uses it, so that it's declared only if needed. 2013-01-12 Paul Eggert net_if-tests: port to older Solaris Problem reported by Tom G. Christensen in . * modules/net_if-tests (NET_IF_LIB): New substitution. (test_net_if_LDADD): New makefile macro, which uses NET_IF_LIB. (HAVE_IF_NAMEINDEX): New C macro. * tests/test-net_if.c: Bypass most of the test if !HAVE_IF_NAMEINDEX. system-quote-tests: port to older Solaris Problem reported by Tom G. Christensen in . * tests/test-system-quote-child.c (fopen, fread): Undef. c-xvasprintf etc.: fix link errors on older Solaris These need to link with @LIBINTL@ to get libintl_gettext. Problem reported by Tom G. Christensen in . * modules/c-xvasprintf-tests (test_c_xvasprintf_LDADD): * modules/readtokens-tests (test_readtokens_LDADD): New macros. * modules/futimens-tests (test_futimens_LDADD): * modules/utimens-tests (test_utimens_LDADD): Add @LIBINTL@. 2013-01-10 Paul Eggert locale: port to Solaris 2.6 and 7 + GNU gettext * lib/locale.in.h: Just include_next when being invoked recursively. This prevents problems on Solaris 2.6 and 7 when combining the localename module with GNU gettext 0.18.2. Problem reported by Tom G. Christensen in . 2013-01-09 Paul Eggert stdlib: port to Solaris 2.6 Also, the code worked on Solaris 7 through 9 only by accident. Problem reported by Tom G. Christensen in . * lib/stdlib.in.h: If __need_system_stdlib_h is defined, simply include the system stdlib.h. * lib/getopt.in.h (__need_system_stdlib_h): * lib/pthread.in.h (__need_system_stdlib_h): * lib/unistd.in.h (__need_system_stdlib_h) [!__GLIBC__]: Define when including , to avoid problems at least for the pthread case on Solaris 2.6 and 7. These .h files can get by with the system stdlib.h. 2013-01-06 Paul Eggert doc: update main copyright year * doc/gnulib.texi: Update copyright date. doc: improve ISO 8601 discussion * doc/parse-datetime.texi (Combined date and time of day items): Specify more carefully what formats are supported and what is done with excess precision. 2013-01-05 Paul Eggert doc: avoid small caps * doc/parse-datetime.texi, doc/regex.texi: Don't use small caps; they're more trouble than they're worth. Suggested by Karl Berry in . regex: conform to strict C * lib/regcomp.c (parse_bracket_exp): Add cast to conform to strict C. From Aharon Robbins. gnulib-tool: fix incompatibility with autopoint 0.18.2 * gnulib-tool: Don't indent AM_GNU_GETTEXT_VERSION line. Problem reported by Tom G. Christensen in . 2013-01-04 Paul Eggert fprintftime: bring back and reword fwrite comment * lib/strftime.c (cpy) [FPRINTFTIME]: Re-add reworded comment. stdio: remove now-unnecessary stdio.c Since stdio.in.h no longer uses inline functions, we no longer need to compile the extern versions. * lib/stdio.c: Remove. * modules/stdio (Files): Remove lib/stdio.c. (lib_SOURCES): Remove. unicodeio: depend on stdio, not ignore-value * lib/unicodeio.c: Do not include ignore-value.h. (fwrite_success_callback): Use plain fwrite, not ignore_value + fwrite. * modules/unicodeio (Depends-on): Depend on stdio, not ignore-value. fprintftime: depend on stdio, not ignore-value * lib/strftime.c [FPRINTFTIME]: Do not include ignore-value.h. (cpy) [FPRINTFTIME]: Use plain fwrite, not ignore_value of fwrite, since the stdio module arranges to silence that warning now. * modules/fprintftime (Depends-on): Depend on stdio, not ignore-value. 2012-10-04 Simon Josefsson stdint-tests: Fix expanded-before-required-warning. * modules/stdint-tests (Depends-on): Use AC_REQUIRE. 2013-01-03 Paul Eggert fwrite: silence __wur only for older glibc versions * lib/stdio.in.h (fwrite): Limit workaround to glibc 2.4 through 2.15. This will help us remove this workaround some time in the far future. 2013-01-03 Eric Blake fwrite: silence __wur without using inline * lib/stdio.in.h (fwrite): Limit warn_unused_result workaround to just gcc, and in a way that avoids inline issues. * modules/stdio (Depends-on): Drop extern-inline. 2013-01-03 Jim Meyering update-copyright: avoid copyright notice date corruption Given a sequence of copyright year numbers in which the final one was a two-digit number that happened to be a substring of a preceding four-digit year number, we would mistakenly update the substring (from two- to four-digit) rather than the two-digit number at the end, which, combined with the addition of the current 4-digit year number would yield two 5-digit year numbers, e.g., here, it would convert the first "99" to "1999, 2013" rather than the final one: 1991, 99 11999, 20131, 1999 * build-aux/update-copyright: Tighten a regexp. * tests/test-update-copyright.sh: Add a test case to trigger the bug. Reported by Joseph Myers in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/32281 2013-01-01 Paul Eggert regex: omit needless signed-pointer casts * lib/regcomp.c (build_charclass, build_charclass_op): Use char *, not unsigned char *, for class name and extra. The char values are always nonnegative so there's no need to insist on unsigned char * here, and using char * removes the need for casts. Reported by Aharon Robbins in . regex: support Gawk, which never uses alloca * lib/regex_internal.h [!_LIBC && !HAVE_ALLOCA]: Do not include in this case. Gawk doesn't supply a substitute alloca.h and doesn't need one. regex: port __libc_lock_define usage to C89 * lib/regex_internal.h (__libc_lock_define) [!_LIBC]: Remove. (struct re_dfa_t): Use #ifdef instead. '__libc_lock_define (, lock)' does not conform to C89, as it has an empty macro argument. Reported by Aharon Robbins in . 2013-01-01 Eric Blake maint: update all copyright year number ranges Run "make update-copyright". version-etc: bump copyright year reported in --version * lib/version-etc.c (COPYRIGHT_YEAR): Update to 2013. 2012-12-31 Eric Blake sigprocmask-tests: skip test if pid is unexpectedly large * tests/test-sigprocmask.c (main): Add range check. git-version-gen: avoid test -z portability glitch * build-aux/git-version-gen: Prefer portable test spelling, since git-version-gen is run on more than just developer machines. 2012-12-31 Peter Rosin (tiny change) git-version-gen: add --fallback option to use if git is not present * build-aux/git-version-gen: Add support for the new option --fallback, which comes into play when there is no $tarball_version_file and git is not working. (scriptversion): Update. maint.mk: handle missing git with more grace * top/maint.mk (no-submodule-changes, public-submodule-commit): Quietly proceed if git is not present. 2012-12-31 Eric Blake dup2: work around cygwin bug * m4/dup2.m4 (gl_FUNC_DUP2): Flush out cygwin core dump. * lib/dup2.c (rpl_dup2): Work around it. * doc/posix-functions/dup2.texi (dup2): Document it. 2012-12-30 Paul Eggert regex: remove unnecessary dependency on localcharset.h * lib/regex_internal.h [!_LIBC]: Don't include localcharset.h; hasn't been needed for years. * modules/regex (Depends-on): Remove localcharset. regex: revert single-byte change * lib/regexec.c (check_node_accept_bytes): Revert previous change to this function. This was alredy fixed in a different way, at bdb56bacd57070eced9998569ffe3f3c37ef5964 in the glibc git; see and . regex: simplify based on Gawk version * lib/regex_internal.c (re_dfa_add_node): Simplify. Reported by Aharon Robbins in . 2012-12-29 Paul Eggert regex: check that pattern char is single-byte Reported by Aharon Robbins in . * lib/regexec.c (check_node_accept_bytes): Return 0 if the pattern string has a multibyte character here. regex: implement rational ranges Reported by Aharon Robbins in . * lib/regcomp.c (build_range_exp) [!_LIBC]: * lib/regexec.c (check_node_accept_bytes) [!_LIBC]: Implement rational ranges. regex: avoid redefining __wctype Reported by Aharon Robbins in . * lib/regex_internal.h (__wctype, __iswctype) [!_LIBC]: #undef before defining. regex: port to hosts where malloc (0) == NULL Reported by Aharon Robbins in . * lib/regex_internal.c (re_node_set_alloc): Don't assume that malloc (0) yields nonnull. * lib/regex_internal.h (MALLOC_0_IS_NONNULL): New macro. * m4/regex.m4 (gl_PREREQ_REGEX): Require gl_EEMALLOC. * modules/regex (Files): Add m4/eealloc.m4. regex: port to C89 Reported by Aharon Robbins in . * lib/regcomp.c (init_word_char): Declaration before statement. regex: merge glibc changes Also, copy the license wording from glibc. This simplifies merging changes. gnulib-tool will change the wording to GPL as appropriate, when importing it to other packages. The only glibc change made since the last merge, which needs merging, is: 2012-05-24 Andreas Schwab * lib/regex_internal.h (gettext): Remove use of INTUSE. * users.txt: Add Emacs. doc: omit mention of version when not needed * doc/gnulib-intro.texi (Portability and Application Code): * doc/gnulib.texi (Brief Overview, Legacy Function Substitutes): Don't mention particular dates or versions when not necessary, so that the documentation won't go out of date so quickly. * doc/intprops.texi (Integer Properties): Fix Texinfo typo. 2012-12-28 Akim Demaille bootstrap: pass --force to autoreconf. * build-aux/bootstrap (AUTORECONFFLAGS): New. Add "--force" so that Automake's ylwrap and other such tools be updated at each bootstrap invocation. Use it. 2012-12-27 Paul Eggert argp: fix port of port new 'inline' approach to Sun C 5.12 + Solaris 10 The earlier patch forgot to update one of the #if conditions, causing a problem on Debian testing i386 reported by Mats Erik Andersson . * lib/argp-fmtstream.h (__argp_fmtstream_putc, argp_fmtstream_putc) (__argp_fmtstream_puts, argp_fmtstream_puts) (__argp_fmtstream_write, argp_fmtstream_write) [!_LIBC && !__OPTIMIZE__]: Declare as ARGP_FS_EI, not as extern. * doc/gnulib-readme.texi: Minor fixups. (Portability guidelines): Modernize URLs. Remove some repetition. (Indent with spaces not TABs): Reword to avoid too-long lines. Remove some '@ifset standalone' stuff that isn't used. * doc/gnulib-readme.texi (Portability guidelines): ctype.h, not ctime.h. Correct name of POSIX.1-2001. * doc/posix-functions/fgetc.texi (fgetc): * doc/posix-functions/fgets.texi (fgets): * doc/posix-functions/fread.texi (fread): * doc/posix-functions/fscanf.texi (fscanf): * doc/posix-functions/getc.texi (getc): * doc/posix-functions/getchar.texi (getchar): * doc/posix-functions/scanf.texi (scanf): POSIX.1-2001, not POSIX-2001. doc: move README into manual * README: Move contents to new file doc/gnulib-readme.texi. Replace with a one-line summary. * doc/gnulib.texi (Brief Overview): New section, with old intro preface. Include gnulib-readme.texi for contents. (Philosophy): Rename from "Introduction", since this section no longer introduces the rest. Write a new preface. * doc/gnulib-readme.texi: New file, with the old contents of README texinfo-ized. This way, the README info appears in the online and printed manual. 2012-12-25 Ben Pfaff c-xvasprintf: Fix "implicit declaration of function" GCC warning. * lib/c-xvasprintf.c: Add missing #include "c-vasprintf.h", for c_vasprintf() prototype. 2012-12-24 Ben Pfaff c-vasprintf: Fix "empty declaration" warning reported by GCC. * lib/c-vasprintf.h: Remove stray semicolon. 2012-12-23 Paul Eggert gettext: avoid obsolete macro AM_PROG_MKDIR_P It is obsolete and is planned to be removed from Automake 1.14; see . * build-aux/po/Makefile.in.in (install-data, install-data-yes) (installdirs-data, installdirs-data-yes): Use $(MKDIR_P), not $(mkdir_p). * m4/intl.m4 (AM_INTL_SUBDIR): * m4/po.m4 (AM_PO_SUBDIRS): Require AC_PROG_MKDIR_P, not AM_PROG_MKDIR_P. 2012-12-22 Paul Eggert argp: port new 'inline' approach to Sun C 5.12 + Solaris 10 On this platform, we are not optimizing but we are using the substitute for extern inlines, so compile as if C99-style extern inline, or a substitute, is available. * lib/argp-fmtstream.h (argp_fmtstream_set_lmargin) (__argp_fmtstream_set_lmargin, argp_fmtstream_set_rmargin) (__argp_fmtstream_set_rmargin, argp_fmtstream_set_wmargin) (__argp_fmtstream_set_wmargin, argp_fmtstream_point) (__argp_fmtstream_point) [!_LIBC && !__OPTIMIZE__]: Declare as ARGP_FS_EI, not as extern. * lib/argp.h (argp_usage, __argp_usage, _option_is_short) (__option_is_short, _option_is_end, __option_is_end) [!_LIBC && __USE_EXTERN_INLINES]: Declare as ARGP_EI, not as extern. 2012-12-21 Paul Eggert AC_PROG_MKDIR_P: port workaround to pre-2.62 Autoconf * m4/gnulib-common.m4 (AC_PROG_MKDIR_P, AC_C_RESTRICT): Use m4_ifndef([AC_AUTOCONF_VERSION], ...), not m4_if(m4_version_compare(m4_defn([AC_AUTOCONF_VERSION]),[2.62]),[-1], ...), as the latter is fatal with older Autoconfs. Problem reported and fix suggested by Eric Blake in thread starting at . 2012-12-20 Paul Eggert AC_PROG_MKDIR_P: don't workaround if not buggy * m4/gnulib-common.m4 (AC_PROG_MKDIR_P): Define only for Autoconf versions before 2.62. (AC_C_RESTRICT): Use documented AC_AUTOCONF_VERSION, not undocumented m4_PACKAGE_VERSION, for consistency with the abovementioned change to AC_PROG_MKDIR_P. This should suffice since we're checking for 2.62 or later, and AC_AUTOCONF_VERSION was introduced in 2.62. 2012-12-15 Ben Pfaff New 'c-*printf' modules for formatted output in C locale. New module 'c-vasnprintf'. * modules/c-vasnprintf: New file. * lib/c-vasnprintf.c: New file. * lib/c-vasnprintf.h: New file. New module 'c-snprintf'. * modules/c-snprintf: New file. * modules/c-snprintf-tests: New file. * lib/c-snprintf.c: New file. * lib/c-snprintf.h: New file. * tests/test-c-snprintf.c: New file. * tests/test-c-snprintf.sh: New file. New module 'c-vsnprintf'. * modules/c-vsnprintf: New file. * modules/c-vsnprintf-tests: New file. * lib/c-vsnprintf.c: New file. * lib/c-vsnprintf.h: New file. * tests/test-c-vsnprintf.c: New file. * tests/test-c-vsnprintf.sh: New file. New module 'c-vasprintf'. * modules/c-vasprintf: New file. * modules/c-vasprintf-tests: New file. * lib/c-asprintf.c: New file. * lib/c-vasprintf.c: New file. * lib/c-vasprintf.h: New file. * tests/test-c-vasprintf.c +: New file. * tests/test-c-vasprintf.sh: New file. New module 'c-xvasprintf'. * modules/c-xvasprintf: New file. * modules/c-xvasprintf-tests: New file. * lib/c-xasprintf.c: New file. * lib/c-xvasprintf.c: New file. * lib/c-xvasprintf.h: New file. * tests/test-c-xvasprintf.c: New file. * tests/test-c-xvasprintf.sh: New file. 2012-12-18 Paul Eggert argp: better 'inline' Use extern-inline module to declare extern inline functions. This avoids some bogus warning diagnostics. Problem discovered when modifying GNU tar to use the manywarnings module. * lib/argp.h, lib/argp-xinl.c (ARGP_EI) [!_LIBC]: * lib/argp-fmtstream.h, lib/argp-fs-xinl.c (ARGP_FS_EI) [!_LIBC]: Define based on extern-inline. * modules/argp (Depends-on): Add extern-inline. 2012-12-17 Paul Eggert filemode, sys_stat: Handle MPX files a la AIX. * lib/filemode.c (ftypelet): Report 'm' for MPX files. * lib/sys_stat.in.h (S_ISMPX): New macro. * tests/test-sys_stat.c: Add tests for MPX files. 2012-12-16 Alexandre Duret-Lutz x-to-1: honor $PERL * build-aux/x-to-1.in: Run $HELP2MAN via $PERL so that the user gets a chance to use his preferred version of Perl. This is typically required by Darwin users whose default /usr/bin/perl does not have all the libraries required by help2man, and who need to use their MacPorts installation of Perl instead. 2012-12-16 Akim Demaille gnu-web-doc-update: add all the new files, even in new directories See http://lists.gnu.org/r/bug-gnulib/2012-12/msg00057.html * build-aux/gnu-web-doc-update (--dry-run, $dryrun): New. Use it. (main): Don't use cvsutils to get the list of unknown files, just add all the existing files and directories. 2012-12-16 Akim Demaille gnu-web-doc-update: improve --help * build-aux/gnu-web-doc-update: Move comments into --help. 2012-12-07 Eric Wong mountlist: recognize more "dummy" file systems * lib/mountlist.c (ME_DUMMY_0): Add these dummy FS names to the list: - "debugfs" virtual filesystem for kernel debugging - "devpts" PTY slave filesystem - "devtmpfs" device filesystem on top of tmpfs/ramfs - "fusectl" control filesystem for FUSE - "mqueue" enumerates POSIX message queues - "rpc_pipefs" kernel <-> userspace bridge for NFS - "sysfs" is for exporting kernel objects - "devfs" device filesystem for Linux 2.4 and FreeBSD 2012-12-11 Paul Eggert extern-inline: avoid incompatibility with Darwin Libc * m4/extern-inline.m4 (_GL_INLINE, _GL_EXTERN_INLINE): Do not use extern inline if __APPLE__. Use _GL_UNUSED in the non-inline branch. Problem reported by Akim Demaille in . 2012-12-11 Simon Josefsson gnupload: Work with GnuPG using gpg-agent (for smartcards). * build-aux/gnupload: If GnuPG is configured to use gpg-agent, let it handle password prompting. 2012-12-10 Eli Zaretskii canonicalize, canonicalize-lgpl: Microsoft Windows prefix fixes * lib/canonicalize.c (canonicalize_filename_mode): * lib/canonicalize-lgpl.c (__realpath): Recompute prefix_len after fetching the current directory. Don't overrun the beginning of rpath if there's no slashes after the MS-Windows drive letter. 2012-12-08 Stefano Lattarini maint.mk: avoid extra forks * top/maint.mk (_cfg_mk): The GNU make manual documents that "$(wildcard FILE)" expands to empty if FILE doesn't exist. So use that instead of "$(shell test -f FILE && echo FILE)". 2012-12-07 Paul Eggert vasnprintf: fix ASCII_ONLY typo * lib/unistdio/u8-vasnprintf.c (FCHAR_T_ONLY_ASCII): * lib/unistdio/u16-vasnprintf.c (FCHAR_T_ONLY_ASCII): * lib/unistdio/u32-vasnprintf.c (FCHAR_T_ONLY_ASCII): New macro, replacing ASCII_ONLY. This fixes a typo. See thread at . 2012-12-05 Paul Eggert list, oset, xlist, xoset: fix extern inline issue with C99 This was introduced by my recent changes for 'inline'. Problem reported for gettext by Daiki Ueno in . * lib/gl_list.h (gl_list_nx_create_empty, gl_list_create) (gl_list_nx_create, gl_list_size, gl_list_node_value) (gl_list_node_set_value, gl_list_node_nx_set_value, gl_list_next_node) (gl_list_previous_node, gl_list_get_at) (gl_list_nx_set_at, gl_list_search, gl_list_search_from) (gl_list_search_from_to, gl_list_indexof, gl_list_indexof_from) (gl_list_indexof_from_to, gl_list_nx_add_first, gl_list_nx_add_last) (gl_list_nx_add_before, gl_list_nx_add_after, gl_list_nx_add_at) (gl_list_remove_node, gl_list_remove_at, gl_list_remove, gl_list_free) (gl_list_iterator, gl_list_iterator_from_to, gl_list_iterator_next) (gl_list_iterator_free, gl_sortedlist_search) (gl_sortedlist_search_from_to, gl_sortedlist_indexof) (gl_sortedlist_indexof_from_to, gl_sortedlist_add, gl_sortedlist_nx_add) (gl_sortedlist_remove): * lib/gl_oset.h (go_oset_nx_create_empty, gl_oset_size, gl_oset_search) (gl_oset_search_atleast, gl_oset_nx_add, gl_oset_remove, gl_oset_free) (gl_oset_iterator, gl_oset_iterator_next, gl_oset_iterator_free): * lib/gl_xlist.h (gl_list_create_empty, gl_list_create) (gl_list_node_set_value, gl_list_set_at, gl_list_add_first) (gl_list_add_last, gl_list_add_before, gl_list_add_after) (gl_list_add_at, gl_sortedlist_add): * lib/gl_xoset.h (gl_oset_create_empty, gl_oset_add): Wrap these extern decls inside "#if 0", because they are implemented as inline functions, and extern inline is not what's wanted here. It would simplify these .h files to remove the extern decls entirely, although a downside would be less-clear separation between specification and implementation. 2012-11-29 Paul Eggert sys_stat: no 'static inline' * lib/sys_stat.in.h (rpl_mkdir): Now static, not static inline. * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Do not require AC_C_INLINE. extern-inline: no 'static inline' * m4/extern-inline.m4 (gl_EXTERN_INLINE): Do not require AC_C_INLINE. (_GL_INLINE, _GL_EXTERN_INLINE): Define as 'static', not as 'static inline', for older compilers. snippet/warn-on-use: no 'static inline' * build-aux/snippet/warn-on-use.h: Remove unnecessary 'inline' in comment. rbtree-list, rbtreehash-list: no 'static inline' * lib/gl_anyrbtree_list2.h (rotate_left, rotate_right): * lib/gl_anytree_list2.h (node_at): * lib/gl_anytreehash_list1.h (hash_resize_after_add) (gl_oset_first, add_nodes_to_buckets): Now static, not static inline. regex: no 'static inline' * lib/regex_internal.c (calc_state_hash): * lib/regex_internal.h (bitset_set, bitset_clear, bitset_contain) (bitset_empty, bitset_set_all, bitset_copy, bitset_not, bitset_merge) (bitset_mask, re_string_char_size_at, re_string_wchar_at): Now static, not static inline. (inline) [__GNUC__ < 3 && _LIBC]: Remove macro; no longer needed. xvasprintf: no 'static inline' * lib/xvasprintf.c (xstrcat): Now static, not static inline. * m4/xvasprintf.m4 (gl_XVASPRINTF): Do not require AC_C_INLINE. parse-datetime, parse-duration: no 'static inline' * lib/parse-datetime.y (to_uchar): * lib/parse-duration.c (str_const_to_ul, str_const_to_l) (scale_n_add): Now static, not static inline. * m4/parse-datetime.m4 (gl_PARSE_DATETIME): * modules/parse-duration (configure.ac): Do not require AC_C_INLINE. getaddrinfo: no 'static inline' * lib/getaddrinfo.c (validate_family): Now static, not static inline. * m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Do not require AC_C_INLINE. ftruncate, fts, lstat, openat, raise: no 'static inline' * lib/ftruncate.c (chsize_nothrow): * lib/fts.c (opendirat, diropen): * lib/lstat.c (orig_lstat): * lib/openat.c (orig_openat): * lib/raise.c (raise_nothrow): Now static, not static inline. * m4/ftruncate.m4 (gl_PREREQ_FTRUNCATE): * m4/fts.m4 (gl_FUNC_FTS_CORE): * m4/lstat.m4 (gl_PREREQ_LSTAT): * m4/openat.m4 (gl_PREREQ_OPENAT): * m4/raise.m4 (gl_PREREQ_RAISE): Do not require AC_C_INLINE. fflush, stat: no 'static inline' * lib/fflush.c (clear_ungetc_buffer_preserving_position) (clear_ungetc_buffer, disable_seek_optimization) (restore_seek_optimization, update_fpos_cache): * lib/stat.c (orig_stat): Now static, not static inline. * lib/fflush.c (disable_seek_optimization, restore_seek_optimization) (update_fpos_cache): Define only if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1). * m4/fflush.m4 (gl_PREREQ_FFLUSH): * m4/stat.m4 (gl_PREREQ_STAT): Do not require AC_C_INLINE. error, filevercmp: no 'static inline' * lib/error.c (is_open, flush_stdout): * lib/filevercmp.c (order): Now static, not static inline. * m4/error.m4 (gl_PREREQ_ERROR): * modules/filevercmp (configure.ac): Do not require AC_C_INLINE. dup, execute, fatal-signal, etc.: no 'static inline' * lib/dup.c (dup_nothrow): * lib/execute.c (nonintr_close, nonintr_open): * lib/fatal-signal.c (uninstall_handlers, install_handlers): * lib/fopen.c (orig_fopen): * lib/freadseek.c (freadptrinc): * lib/freopen.c (orig_freopen): * lib/fstat.c (orig_fstat, fstat_nothrow): * lib/get-rusage-as.c (get_rusage_as_via_setrlimit) (get_rusage_as_via_iterator): * lib/get-rusage-data.c (get_rusage_data_via_setrlimit): * lib/getdtablesize.c (_setmaxstdio_nothrow): * lib/isatty.c (_isatty_nothrow): * lib/open.c (orig_open): * lib/read.c (read_nothrow): * lib/sigprocmask.c (signal_nothrow): * lib/spawn-pipe.c (nonintr_close, nonintr_open): * lib/vasnprintf.c (MAX_ROOM_NEEDED): * lib/wait-process.c (unregister_slave_subprocess): * lib/write.c (write_nothrow): Now static, not static inline. * lib/spawn-pipe.c (nonintr_open): Define only if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__. * m4/dup.m4 (gl_PREREQ_DUP): * m4/execute.m4 (gl_EXECUTE): * m4/fatal-signal.m4 (gl_FATAL_SIGNAL): * m4/fopen.m4 (gl_PREREQ_FOPEN): * m4/freadseek.m4 (gl_FUNC_FREADSEEK): * m4/freopen.m4 (gl_PREREQ_FREOPEN): * m4/fstat.m4 (gl_PREREQ_FSTAT): * m4/getdtablesize.m4 (gl_PREREQ_GETDTABLESIZE): * m4/isatty.m4 (gl_PREREQ_ISATTY): * m4/open.m4 (gl_PREREQ_OPEN): * m4/read.m4 (gl_PREREQ_READ): * m4/signalblocking.m4 (gl_PREREQ_SIGPROCMASK): * m4/spawn-pipe.m4 (gl_SPAWN_PIPE): * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF): * m4/wait-process.m4 (gl_WAIT_PROCESS): * m4/write.m4 (gl_PREREQ_WRITE): * modules/get-rusage-as, modules/get-rusage-data (configure.ac): Do not require AC_C_INLINE. c-strtod, memcoll, readutmp: no 'static inline' * lib/c-strtod.c (c_locale): * lib/memcoll.c (strcoll_loop): * lib/readutmp.c (desirable_utmp_entry): Now static, not static inline. * m4/c-strtod.m4 (gl_C_STRTOD, gl_C_STRTOLD): * m4/memcoll.m4 (gl_MEMCOLL): * m4/readutmp.m4 (gl_READUTMP): Do not require AC_C_INLINE. arctwo, md4, md5, sha1, sha256, sha512: no 'static inline' * lib/arctwo.c (to_uchar): * lib/md4.c (set_uint32): * lib/md5.c (set_uint32): * lib/sha1.c (set_uint32): * lib/sha256.c (set_uint32): * lib/sha512.c (set_uint64): Now static, not static inline. This is a bit simpler, and doesn't affect performance with GCC and default optimization. * m4/arctwo.m4 (gl_ARCTWO): * m4/md4.m4 (gl_MD4): * m4/md5.m4 (gl_MD5): * m4/sha1.m4 (gl_SHA1): * m4/sha256.m4 (gl_SHA256): * m4/sha512.m4 (gl_SHA512): Do not require AC_C_INLINE. cond, lock, thread: better 'inline' * lib/glthread/cond.c, lib/glthread/cond.h (_GLTHREAD_COND_INLINE): * lib/glthread/thread.c, lib/glthread/thread.h (_GLTHREAD_THREAD_INLINE): New macros. Use them instead of static inline, for header functions. * lib/glthread/cond.c (gl_waitqueue_init, gl_waitqueue_remove) (gl_waitqueue_notify_first, gl_waitqueue_notify_all): * lib/glthread/lock.c (gl_waitqueue_init) (gl_waitqueue_notify_first, gl_waitqueue_notify_all): * lib/glthread/thread.c (get_current_thread_handle): Change 'static inline' to 'inline'. * lib/glthread/cond.h, lib/glthread/thread.h: Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * m4/cond.m4 (gl_COND): * m4/lock.m4 (gl_PREREQ_LOCK): * m4/thread.m4 (gl_THREAD): Do not require AC_C_INLINE. * modules/cond, modules/thread (Depends-on): Add extern-inline. chdir-long, cycle-check, savewd: better 'inline' * lib/chdir-long.c (cdb_init, cdb_fchdir, cdb_free) (find_non_slash): * lib/cycle-check.c (is_zero_or_power_of_two): * lib/savewd.c (savewd_delegating): Change 'static inline' to 'inline'. * lib/savewd.c, lib/savewd.h (SAVEWD_INLINE): New macro. Replace all remaining uses of 'static inline' with it. * lib/savewd.h: Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * m4/chdir-long.m4 (gl_PREREQ_CHDIR_LONG): * m4/cycle-check.m4 (gl_CYCLE_CHECK): * m4/savewd.m4 (gl_SAVEWD): Do not require AC_C_INLINE. * modules/savewd (Depends-on): Add extern-inline. base32, base64: no need for 'inline' * lib/base32.c (to_uchar, get_8, decode_8): * lib/base64.c (to_uchar, get_4, decode_4): Change 'static inline' to 'inline'. * m4/base32.m4 (gl_PREREQ_BASE32): * m4/base64.m4 (gl_PREREQ_BASE64): Do not require AC_C_INLINE. array-oset, linkedhash-list, rbtree-oset: no need for 'inline' * lib/gl_array_oset.c (gl_array_nx_add_at): (gl_array_remove_at): * lib/gl_linkedhash_list.c (hash_resize_after_add) (add_to_bucket, remove_from_bucket): * lib/gl_rbtree_oset.c (rotate_left, rotate_right): Change 'static inline' to 'static', as it's simpler to omit 'inline' unless there's a significant performance advantage. list, oset, xlist, xoset, xsublist: simplify via extern inline * lib/gl_list.h, lib/gl_list.c (GL_LIST_INLINE): * lib/gl_oset.c, lib/gl_oset.h (GL_OSET_INLINE): * lib/gl_xlist.c, lib/gl_xlist.h (GL_XLIST_INLINE): * lib/gl_xoset.c, lib/gl_xoset.h (GL_XOSET_INLINE): * lib/gl_xsublist.c, lib/gl_xsublist.h (GL_XSUBLIST_INLINE): New macro. Replace all uses of 'static inline' with it. [HAVE_INLINE]: Implement functions as *_INLINE functions, instead of as macros FOO that are defined to static inline functions FOO_inline. * lib/gl_list.c, lib/gl_oset.c, lib/gl_xlist.c, lib/gl_xoset.c: * lib/gl_xsublist.c: Reimplement from scratch, by defining the corresponding *_INLINE macro and including the corresponding .h file. This is simpler. * modules/list, modules/oset, modules/xlist, modules/xoset: (Files): Remove m4/gl_list.m4. (configure.ac): Remove gl_LIST. * m4/gl_list.m4: Remove. * modules/list, modules/oset, modules/xlist, modules/xoset: * modules/xsublist: (Depends-on): Depend on extern-inline, not inline. xalloc: better 'inline' * lib/xmalloc.c, lib/xalloc.h (XALLOC_INLINE): New macro. Replace all uses of 'static inline' with it. (static_inline): Remove. * lib/xalloc.h (xnmalloc, xnrealloc, x2nrealloc, xcharalloc): Let 'extern inline' do the work automatically, instead of doing it by hand. * m4/xalloc.m4 (gl_PREREQ_XALLOC, gl_PREREQ_XMALLOC): Remove. All uses removed. * modules/xalloc (Depends-on): Remove 'inline'. Add 'extern-inline'. gethrxtime: better 'inline' * lib/xtime.c: New file. * lib/gethrxtime.c, lib/gethrxtime.h (GETHRXTIME_INLINE): * lib/xtime.h (XTIME_INCLUDE): New macros. Replace all uses of 'static inline' with them. * lib/gethrxtime.c (gethrxtime): Define only if ! (HAVE_ARITHMETIC_HRTIME_T && HAVE_DECL_GETHRTIME), since this source file is now always compiled, because of the extern inline. * lib/gethrxtime.h, lib/xtime.h: Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * m4/gethrxtime.m4 (gl_GETHRXTIME): Do not check for clock macros if gethrtime works, as they're not needed in that case. (gl_XTIME): Do not require AC_C_INLINE. (gl_PREREQ_GETHRXTIME): Remove; all uses removed, as it's always compiled now. Move the check into gl_GETHRXTIME. * modules/gethrxtime (Files, lib_SOURCES): Add lib/xtime.c. (Depends-on): Add extern-inline. (configure.ac): gethrxtime is always compiled now. (lib_SOURCES): Add gethrxtime.c. wctype-h: better 'inline' * lib/wctype-h.c: New file. * lib/wctype.in.h (_GL_WCTYPE_INLINE): New macro. Replace all uses of 'static inline' with it. Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * m4/wctype_h.m4 (gl_WCTYPE_H): Do not require AC_C_INLINE. * modules/wctype-h (Files, lib_SOURCES): Add lib/wctype-h.c. (Depends-on): Add extern-inline. unistd: better 'inline' * lib/unistd.c: New file. * lib/unistd.in.h (_GL_UNISTD_INLINE): New macro. Replace all uses of 'static inline' with it. Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * m4/unistd_h.m4 (gl_UNISTD_H): Do not require AC_C_INLINE. * modules/unistd (Files, lib_SOURCES): Add lib/unistd.c. (Depends-on): Add extern-inline. sys_socket: better 'inline' * lib/sys_socket.c: New file. * lib/sys_socket.in.h (_GL_SYS_SOCKET_INLINE): New macro. Replace all uses of 'static inline' with it. Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Do not require AC_C_INLINE. * modules/sys_socket (Files, lib_SOURCES): Add lib/sys_socket.c. (Depends-on): Add extern-inline. stdio: better 'inline' * lib/stdio.c: New file. * lib/stdio.in.h (_GL_STDIO_INLINE): New macro. Replace all uses of 'static inline' with it. Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * m4/stdio_h.m4 (gl_STDIO_H): Do not require AC_C_INLINE. * modules/stdio (Files, lib_SOURCES): Add lib/stdio.c. (Depends-on): Add extern-inline. sigaction: better 'inline' * lib/sig-handler.c: New file. * lib/sig-handler.h (SIG_HANDLER_INLINE): New macro. Replace all uses of 'static inline' with it. Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * m4/sigaction.m4 (gl_PREREQ_SIG_HANDLER_H): Do not require AC_C_INLINE. * modules/sigaction (Files, lib_SOURCES): Add lib/sig-handler.c. (Depends-on): Add extern-inline. selinux-h: better 'inline' * lib/se-context.c, lib/se-selinux.c: New files. * lib/getfilecon.c (map_to_failure): Omit 'inline' for static function. * lib/se-context.in.h (SE_CONTEXT_INLINE): New macro. Replace all uses of 'static inline' with it. Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * lib/se-selinux.in.h (SE_SELINUX_INLINE): New macro. Replace all uses of 'static inline' with it. Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * modules/selinux-h (Files, lib_SOURCES): Add lib/se-context.c, lib/se-selinux.c. (Depends-on): Add extern-inline. (configure.ac): Do not require AC_C_INLINE. pthread: better 'inline' * lib/pthread.c: New file. * lib/pthread.in.h (_GL_PTHREAD_INLINE): New macro. Replace all uses of 'static inline' with it. Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * m4/pthread.m4 (gl_PTHREAD_CHECK): Add AC_LIBOBJ([pthread]). Do not require AC_C_INLINE. * modules/pthread (Files): Add lib/pthread.c. (Depends-on): Add extern-inline. math: better 'inline' * lib/math.c: New file. * lib/math.in.h (_GL_MATH_INLINE): New macro. Replace all uses of 'static inline' with it. Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * m4/math_h.m4 (gl_MATH_H): Do not require AC_C_INLINE. * modules/math (Files, lib_SOURCES): Add lib/math.c. (Depends-on): Add extern-inline. count-one-bits: better 'inline' * lib/count-one-bits.c: New file. * lib/count-one-bits.h (COUNT_ONE_BITS_INLINE): New macro. Replace all uses of 'static inline' with it. Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * m4/count-one-bits.m4 (gl_COUNT_ONE_BITS): Do not require AC_C_INLINE. * modules/count-one-bits (Files, lib_SOURCES): Add lib/count-one-bits.c. (Depends-on): Add extern-inline. count-leading-zeros: better 'inline' * lib/count-leading-zeros.c: New file. * lib/count-leading-zeros.h (COUNT_LEADING_ZEROS_INLINE): New macro. Replace all uses of 'static inline' with it. Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * m4/count-leading-zeros.m4 (gl_COUNT_LEADING_ZEROS): Do not require AC_C_INLINE. * modules/count-leading-zeros (Files, lib_SOURCES): Add lib/count-leading-zeros.c. (Depends-on): Add extern-inline. bitrotate: better 'inline' * lib/bitrotate.c: New file. * lib/bitrotate.h (BITROTATE_INLINE): New macros. Replace all uses of 'static inline' with them. Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * modules/bitrotate (Files, lib_SOURCES): Add lib/bitrotate.c. (Depends-on): Add extern-inline. (configure.ac): Do not require AC_C_INLINE. 2012-11-20 Theophile Ranquet maint.mk: avoid gratuitous failure Reported by Stefano Lattarini in * top/maint.mk (public-submodule-commit): Quote more safely. 2012-11-20 Eli Zaretskii canonicalize, canonicalize-lgpl: support MS-Windows file names See for test cases, which it'd be nice to add at some point. * lib/canonicalize.c, lib/canonicalize-lgpl.c: Include dosname.h. * lib/canonicalize.c (canonicalize_filename_mode): * lib/canonicalize-lgpl.c (__realpath): Use FILE_SYSTEM_PREFIX_LEN instead of assuming that the first slash is at the beginning of the file name. Use ISSLASH, instead of a literal '/'. Use IS_ABSOLUTE_FILE_NAME instead of comparing the first character with '/'. Test for DOUBLE_SLASH_IS_DISTINCT_ROOT only if the file name does not begin with a drive letter. * lib/canonicalize.c (SLASHES): New macro. (canonicalize_filename_mode): Use SLASHES instead of a literal "/". 2012-11-17 Dmitry V. Levin fts: introduce FTS_VERBATIM * lib/fts_.h (FTS_VERBATIM): New bit flag. (FTS_OPTIONMASK, FTS_NAMEONLY, FTS_STOP): Adjust. * lib/fts.c (fts_open): Honor it. 2012-11-09 Pádraig Brady getlogin-tests: allow errno == ENXIO * tests/test-getlogin.c (main): Skip tests if getlogin fails with errno == ENXIO (No controlling tty). getlogin_r-tests: Likewise. Also allow errno == ENOENT * tests/test-getlogin_r.c (main): Skip tests if getlogin_r fails with errno == ENOENT. This was reported to happen in various situations on GNU/Linux. 2012-11-09 Paul Eggert getlogin-tests: allow errno == ENOENT * tests/test-getlogin.c (main): Skip tests if getlogin fails with errno == ENOENT. This happened to me on Ubuntu 12.04.1 x86, when running a test in an Emacs shell buffer. 2012-11-08 Jim Meyering tests/nap.h: avoid warning about unused variable * tests/nap.h (nap_works): Remove now-unused declaration of "result". prefix-gnulib-mk: avoid overzealous "lib/"-prefix addition * build-aux/prefix-gnulib-mk (prefix): Tighten a regexp to require white space before each of the special-cased file names, to avoid adding "lib/" after $(libdir)/. Reported by Matias A. fonzo in http://bugs.gnu.org/12830. 2012-11-08 Paul Eggert fcntl-h: default O_SEARCH, O_EXEC back to O_RDONLY O_PATH doesn't work with Linux kernel 3.6.5, as fchmod (fd, ...) fails with errno == EBADF when fd is opened with O_PATH. Reported by Jim Meyering in . * doc/posix-headers/fcntl.texi (fcntl.h): Document this. * lib/fcntl.in.h (O_EXEC, O_SEARCH) [O_PATH]: Default back to O_RDONLY. 2012-11-07 Paul Eggert test-utimens: speed up by taking shorter naps * tests/nap.h (lt_mtime, get_mtime, nap_works, guess_delay): New functions. (nap): Use them, to do a better job of guessing the delay. On Fedora 17 with ext4 atop md atop hard disks, this made test-utimens run 10x faster, because the test napped for 1 ms at a time rather than 20 ms. Reported by Stefano Lattarini in . 2012-11-07 Jim Meyering mountlist.c: fix a compilation failure * lib/mountlist.c (read_file_system_list): Fix a compilation failure I introduced while transforming commit v0.0-7683-g613bcb6 2012-11-05 Paul Eggert errno: port to LynxOS 178 2.2.2 Problem reported by Joel Brobecker in . * doc/posix-headers/errno.texi (errno.h): Document this. * lib/errno.in.h (EILSEQ, GNULIB_defined_EILSEQ) [!EILSEQ]: New macros. * lib/strerror-override.c, lib/strerror-override.h (strerror_override): Supply a string for EILSEQ. * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Check for EILSEQ. 2012-11-05 Paul Eggert fcntl-h: default O_SEARCH, O_EXEC to O_PATH if available Linux kernel 2.6.39 introduced O_PATH (see ) and this is a better fallback for O_SEARCH and O_EXEC than O_RDONLY, if O_PATH is available. * doc/posix-headers/fcntl.texi (fcntl.h): Document this. * lib/fcntl.in.h (O_EXEC, O_SEARCH) [O_PATH]: Default to O_PATH. * lib/fcntl.in.h (O_ACCMODE): * tests/test-fcntl-h.c (main): Do not reject O_ACCMODE merely because it has more than the minimal number of bits, as POSIX allows extensions here. 2012-11-04 Andrew Warshall (tiny change) mountlist: do not classify a bind-mounted dir entry as "dummy" * lib/mountlist.c (ME_DUMMY_0): Rename from ME_DUMMY, but omit the "none"-testing clause. (ME_DUMMY) [MOUNTED_GETMNTENT1]: New macro to encapsulate the exception for bind-mounted directories. 2012-11-01 Akim Demaille quote: provide a means to escape strings with nul characters * lib/quote.h, lib/quotearg.c (quote_mem, quote_n_mem): New functions. (quote, quote_n): Rename formal arguments for consistency with quotearg. 2012-10-30 Paul Eggert test-raise: don't assume 199 is an invalid signal * tests/test-raise.c (main): Don't assume 199 is not a signal number. sh-quote-tests: port to Solaris 9 * modules/sh-quote-tests (test_sh_quote_LDADD): Add @LIBINTL@. Problem reported by Dagobert Michelsen in . 2012-10-28 Jim Meyering maint.mk: rename a new configurable variable * top/maint.mk (_gl_translatable_string_re): Rename from translation-markers: _gl_ prefix to insulate from user Makefile code, and the _re suffix to inform that it's a regular expression. 2012-10-26 Eric Blake maint.mk: let packages tweak sc_po_check pattern * top/maint.mk (sc_po_check): Add translation-markers, to allow finding files with other translation markers. 2012-10-16 Paul Eggert euidaccess: speed up 'configure' on GNU hosts * m4/euidaccess.m4 (gl_FUNC_NONREENTRANT_EUIDACCESS): Check for setregid here, not in gl_PREREQ_EUIDACCESS, since it's needed only in this case. Use AC_CHECK_DECLS, not AC_CHECK_DECLS_ONCE. (gl_PREREQ_EUIDACCESS): Do not use AC_CHECK_HEADERS_ONCE libgen.h or AC_REQUIRE for AC_FUNC_GETGROUPS. * lib/regexec.c (re_search_internal): Fix grammar in comment. 2012-10-15 Paul Eggert fchmodat, fchownat, fstatat: port to non-inlining compilers Problem reported for FreeBSD 9 by Jim Meyering in . * lib/chmodat.c, lib/chownat.c, lib/statat.c: New files, which define FCHMODAT_INLINE etc. * lib/fchmodat.c (FCHMODAT_INLINE): * lib/fchownat.c (FCHOWNAT_INLINE): * lib/fstatat.c (FSTATAT_INLINE): Remove, as chmodat.c etc. now do this. * modules/fchmodat (Files): Add lib/chmodat.c. * modules/fchownat (Files): Add lib/chownat.c. * modules/fstatat (Files): Add lib/statat.c. 2012-10-15 Jim Meyering fchmodat.c, fchownat.c: compile-impeding typos * lib/fchmodat.c (FCHMODAT_INLINE): Fix typo: s/#include/#define/ * lib/fchownat.c (FCHOWNAT_INLINE): Likewise. Introduced in commit v0.0-7636-gd202279. 2012-10-15 Paul Eggert fcntl-h: support GNU flags like O_IGNORE_CTTY * doc/posix-headers/fcntl.texi (fcntl.h): Support O_IGNORE_CTTY, O_NOLINK, and O_NOTRANS. These flags are nonzero on GNU/Hurd systems. Discovered when using fcntl-h with GNU Emacs, which uses O_IGNORE_CTTY. Fix misspelling of F_SETLKW. * lib/fcntl.in.h (O_IGNORE_CTTY, O_NOLINK, O_NOTRANS): Define to 0 if not already defined. * tests/test-fcntl-h.c: Test these new flags. 2012-10-14 Paul Eggert faccessat, etc.: support AT_FDCWD-only use * lib/at-func.c: If GNULIB_SUPPORT_ONLY_AT_FDCWD, then support this function only if its first argument is AT_FDCWD. Emacs wants faccessat for AT_EACCESS but not for any first-arg values other than AT_FDCWD, so it doesn't want all the openat machinery with fchdir etc. * modules/faccessat, modules/fchmodat, modules/fchownat (Files): * modules/fstatat, modules/mkdirat, modules/openat (Files): * modules/unlinkat (Files): Remove lib/openat-priv.h, as at-internal supplies this file. Removing this file here allows us to support programs like Emacs that avoid at-internal. faccessat: speed up 'configure' on mainstream hosts * m4/faccessat.m4 (gl_PREREQ_FACCESSAT): Use AT_CHECK_FUNCS for 'access', not AC_CHECK_FUNCS_ONCE, since it's only on unusual platforms that we need to check for 'access', and it's better not to slow 'configure' down on all platforms. faccessat: port to Solaris 10 * lib/faccessat.c: Include , for AT_EACCESS. Needed on Solaris 10, which doesn't have AT_EACCESS, so we need the Gnulib fcntl.h, which defines it. 2012-10-14 Pádraig Brady canonicalize: fix C89 compilation * lib/canonicalize.c (canonicalize_filename_mode): Swap order of declarations so C89 is supported. Also remove the comment referencing memorty allocation as the suggested feature could not be implemented as suggested. Reported by Michael Goffioul. 2012-10-12 Paul Eggert group-member: omit unnecessary dependencies This is for Emacs, which has its own allocator and where we don't want to use xalloc. * lib/group-member.c: Include xalloc-oversized.h, not xalloc.h, since we no longer use xmalloc. Do not include stdbool.h, since the changes below happen to remove the only use of bool. (GROUPBUF_SIZE): New constant. (struct group_info): Remove n_groups member. Add groupbuf member. This lets us get the groups without using malloc, usually. (free_group_info, get_group_info): Adjust to this. (get_group_info): Return the number of groups found, or -1 on error. Use plain malloc not xmalloc, and treat its failure as if there are no groups, as the user already loses in case of error. (group_member): Simplify, based on changes to get_group_info. * modules/group-member (Depends-on): Remove dependencies on xalloc and stdbool. Add dependency on xalloc-oversized. 2012-10-08 Alexandre Duret-Lutz (tiny change) gethrxtime: port to C++ * lib/gethrxtime.h, lib/xtime.h [__cplusplus]: Add extern "C". 2012-10-04 Paul Eggert ptsname: fix macro-name typo * lib/stdlib.in.h (ptsname): Fix misspelling of GNULIB_NAMESPACE. 2012-10-03 Simon Josefsson inttostr: Relax license. * modules/inttostr (License): Change from LGPL to LGPLv2+. 2012-10-03 Eric Blake ptsname_r: support ptys returned by FreeBSD posix_openpt * lib/ptsname_r.c (__ptsname_r): Don't munge name if it already lives in /dev/pts/. 2012-10-02 Eric Blake pselect: reject invalid file descriptors * m4/pselect.m4 (gl_FUNC_PSELECT): Probe for FreeBSD bug. * lib/pselect.c (rpl_pselect) [!win32]: Work around it. * modules/pselect (Depends-on): Add dup2. * doc/posix-functions/pselect.texi (pselect): Document this. select: reject invalid file descriptors * m4/select.m4 (gl_FUNC_SELECT): Probe for FreeBSD bug. * lib/select.c (rpl_select) [!win32]: Work around it. * modules/select (Depends-on): Add dup2. * doc/posix-functions/select.texi (select): Document this. select: enhance test * tests/test-select.h (do_select_bad_nfd_nowait, test_bad_nfd): New functions. (test_function): Enhance test. (do_select_bad_fd): Avoid any stale errno values. ptsname: reject invalid file descriptors http://www.austingroupbugs.net/view.php?id=503 * m4/ptsname.m4 (gl_FUNC_PTSNAME): Probe for FreeBSD bug. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Add new witness. * modules/stdlib (Makefile.am): Replace witness. * lib/stdlib.in.h (ptsname): Allow for replacement. * modules/ptsname (configure.ac): Trigger replacement. * doc/posix-functions/ptsname.texi (ptsname): Document this. 2012-10-02 Nikos Mavrogiannopoulos (tiny change) hash-pjw-bare: new module * lib/hash-pjw-bare.c: New file, very much like hash-pjw.c. * lib/hash-pjw-bare.h: Likewise. * modules/hash-pjw-bare: New file. * MODULES.html.sh (Misc): Add it. 2012-10-02 Eric Blake manywarnings: cater to more gcc infelicities * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add test for -Wuninitialized without -O. 2012-10-01 Ed Maste (tiny change) select, poll tests: Make setsockopt invocation effective. * tests/test-poll.c (open_server_socket): Move setsockopt() call before the bind() call. * tests/test-select.h (open_server_socket): Likewise. 2012-09-30 Paul Eggert sockets, sys_stat: restore AC_C_INLINE This undoes the 2012-09-22 patch. * m4/sockets.m4 (gl_SOCKETS): * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Restore AC_C_INLINE, since MSVC requires __inline or _inline and does not support plain 'inline'. Reported by Bruno Haible in . 2012-09-30 Bruno Haible localeconv tests: Avoid test failure on OpenIndiana. * tests/test-localeconv.c (main): On OpenIndiana (a Solaris 11 variant) skip the 'grouping' and 'mon_grouping' tests. Reported by Jim Meyering. 2012-09-30 Bruno Haible havelib: Follow libtool developments. * m4/lib-ld.m4: Rebase on libtool.m4 from libtool-2.4. Suggested by Simon Josefsson. 2012-09-29 Jim Meyering fstatat.c: fix a compile-impeding typo * lib/fstatat.c (FSTATAT_INLINE): Fix typo: s/#include/#define/ Introduced in commit v0.0-7636-gd202279. Mats Erik Andersson reported the resulting OpenBSD compilation failure. 2012-09-28 Akim Demaille extern-inline: provide a -Wundef safe config.h * m4/extern-inline.m4 (gl_EXTERN_INLINE): Protect "#if __GNUC_STDC_INLINE__" with "defined __GNUC_STDC_INLINE__" to produce a -Wundef warning free config.h. 2012-09-26 Paul Eggert hash-pjw: relax license to LGPLv2+ * modules/hash-pjw (License): Relax, with consent of author. 2012-09-25 Akim Demaille maint.mk: fix strict vs. lazy variable issues with RELEASE * top/maint.mk (_equal): New function. (member_check): Strip the result to avoid spurious spaces. (url_dir_list): Do not use ifeq, which is strict, as it will require RELEASE_TYPE to be defined. (announcement_Cc_, announcement_mail_headers_): Likewise: instead of relying on ifeq, use $(release_type) to dispatch (lazily) onto... (announcement_Cc_alpha,announcement_mail_headers_alpha) (announcement_Cc_beta,announcement_mail_headers_beta) (announcement_Cc_stable,announcement_mail_headers_stable): these. (release): Do not depend on $(release-type), as it forces its evaluation. Bounce to it. 2012-09-25 Akim Demaille maint.mk: formatting changes * top/maint.mk: Indent bodies of if's. 2012-09-21 Akim Demaille maint.mk: factor the validation of RELEASE_TYPE With help from Jim Meyering. http://lists.gnu.org/r/bug-gnulib/2012-09/msg00132.html * top/maint.mk (_empty, _sp): Move their definition earlier. (member-check, release-type): New. Use the latter instead of $(RELEASE_TYPE). Remove now useless local checks. 2012-09-20 Akim Demaille maint.mk: provide "make upload" to ease uploading See . Do not depend simply on the current $(VERSION), as there may have been new commits since the tarball generation. Rather, rely on $(RELEASE), as "make release-commit" already does. For consistency, add "make release RELEASE='X.Y TYPE'" as an alias for "make TYPE". * top/maint.mk (upload_command, upload, release): New. (RELEASE_TYPE): If undefined, default to the second word of $(RELEASE). (VERSION): first word of $(RELEASE) is always right. (emit_upload_commands): Adjust. * top/README-release: Update. 2012-09-20 Akim Demaille maint.mk: silent rules With help from Stefano Lattarini. * top/maint.mk (writable-files): Use $(AM_V_GEN). (announcement): Use $(AM_V_at). 2012-09-24 Paul Eggert localename: port gl_locale_name_thread_unsafe to FreeBSD * lib/localename.c (gl_locale_name_thread_unsafe): Port to FreeBSD, and use the simpler FreeBSD implementation on Mac OS X as well. Original idea suggested by Ed Maste in . 2012-09-22 Paul Eggert binary-io, eealloc, mbfile, mbiter, mbutil, xsize: better 'inline' * lib/binary-io.c, lib/eealloc.c, lib/mbfile.c, lib/mbiter.c: * lib/mbuiter.c, lib/xsize.c: New files. * lib/binary-io.h (BINARY_IO_INLINE): * lib/eealloc.h (EEALLOC_INLINE): * lib/mbfile.h (MBFILE_INLINE): * lib/mbiter.h (MBITER_INLINE): * lib/mbuiter.h (MBUITER_INLINE): * lib/xsize.h (XSIZE_INLINE): New macros. Replace all uses of 'static inline' with them. Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * m4/eealloc.m4 (gl_EEALLOC): * m4/mbfile.m4 (gl_MBFILE): * m4/mbiter.m4 (gl_MBITER): * m4/xsize.m4 (gl_XSIZE): Do not require AC_C_INLINE. * modules/binary-io (Files, lib_SOURCES): Add lib/binary-io.c * modules/eealloc (Files, lib_SOURCES): Add lib/eealloc.c. * modules/mbfile (Files, lib_SOURCES): Add lib/mbfile.c. * modules/mbiter (Files, lib_SOURCES): Add lib/mbiter.c. * modules/mbuiter (Files, lib_SOURCES): Add lib/mbuiter.c. * modules/xsize (Files, lib_SOURCES): Add lib/xsize.c. * modules/binary-io, modules/eealloc, modules/mbfile: * modules/mbiter, modules/mbuiter: (Depends-on): Add extern-inline. pipe-filter-gi, pipe-filter-ii: better use of 'inline' * lib/pipe-filter-aux.c: New file. * lib/pipe-filter-aux.h (PIPE_FILTER_AUX_INLINE): New macro. Replace all uses of 'static inline' with it. Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * lib/pipe-filter-gi.c (filter_init, filter_cleanup) (filter_retcode): No real need for inline here. * modules/pipe-filter-gi, modules/pipe-filter-ii: (Files): Add lib/pipe-filter-aux.c. (Depends-on): Add extern-inline. (configure.ac): Do not require AC_C_INLINE. (lib_SOURCES): Add pipe-filter-aux.c. fdutimensat: omit unnecessary AC_C_INLINE * modules/fdutimensat (configure.ac): Remove AC_C_INLINE. fchmodat, fchownat, fstatat: use extern-inline * lib/fchmodat.c, lib/openat.h (FCHMODAT_INLINE): * lib/fchownat.c, lib/openat.h (FCHOWNAT_INLINE): * lib/fstatat.c, lib/openat.h (FSTATAT_INLINE): New macros. * lib/openat.h: Replace all uses of 'static inline' with them. Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * modules/fchmodat, modules/fchownat, modules/fstatat: * modules/openat-h: (Depends-on): Add extern-inline. (configure.ac): Remove AC_C_INLINE. acl, mbchar, priv-set: use extern-inline * lib/set-mode-acl.c, lib/acl-internal.h (ACL_INTERNAL_INLINE): * lib/mbchar.c, lib/mbchar.h (MBCHAR_INLINE): * lib/priv-set.c, lib/priv-set.h (PRIV_SET_INLINE): New macros. * lib/acl-internal.h, lib/mbchar.h, lib/priv-set.h: Replace all uses of 'static inline' with it. Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. * m4/acl.m4 (gl_FUNC_ACL): * m4/mbchar.m4 (gl_MBCHAR): * m4/priv-set.m4 (gl_PRIV_SET): Remove AC_C_INLINE, since 'inline' is no longer used directly. * modules/acl, modules/mbchar, modules/priv-set (Depends-on): Add extern-inline. sockets, sys_stat: remove AC_C_INLINE in MSVC-only cases * m4/sockets.m4 (gl_SOCKETS): * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Remove AC_C_INLINE. Here, 'inline' is used only in MSVC environments where it's already guaranteed to work, so we needn't check for it at 'configure'-time. tls-tests: omit unnecessary 'inline' * tests/test-tls.c (perhaps_yield): No longer inline. Simplicity and portability trump efficiency in test cases. utimens-tests: avoid unnecessary 'inline' * modules/fdutimensat-tests (configure.ac): * modules/futimens-tests (configure.ac): * modules/utimens-tests (configure.ac): * modules/utimensat-tests (configure.ac): Remove AC_C_INLINE. * tests/test-utimens-common.h (ctime_compare): No longer inline. Simplicity and portability trump efficiency here. misc: don't limit commentary to inline functions * lib/binary-io.h, lib/malloca.h, lib/safe-alloc.c: * lib/xalloc-oversized.h, lib/xsize.h: Contrast macros to functions in general, not just to inline functions, when the commentary does not apply only to inline functions. 2012-09-20 Jim Meyering non-recursive-gnulib-prefix-hack: new module * build-aux/prefix-gnulib-mk: Copied from coreutils, derived from the file that originated in Bison. * m4/non-recursive-gnulib-prefix-hack.m4: Likewise, this code is largely copied from a snippet that resided in bison's configure.ac. * modules/non-recursive-gnulib-prefix-hack: New file. * MODULES.html.sh (Support for maintaining and releasing projects): Add it. 2012-09-18 Jim Meyering maint.mk: generalize _gl_tight_scope for non-recursive make * top/maint.mk (_gl_tight_scope): Remove a hard-coded assumption that *.h would describe additional .h files in the directory specified by $(_gl_TS_dir). I.e., add this... (_gl_TS_other_headers): New variable. maint.mk: exempt trailing blanks found in "binary" files * top/maint.mk (sc_trailing_blank): Filter out any matches found in "binary" files, as reported by grep. Suggested by Richard W.M. Jones in http://thread.gmane.org/gmane.comp.emulators.guestfs/1902 2012-09-17 Jim Meyering maint.mk: sc_prohibit_path_max_allocation: don't FP for UNIX_PATH_MAX * top/maint.mk (sc_prohibit_path_max_allocation): Avoid false-positive match for symbols like UNIX_PATH_MAX. Reported by Richard W.M. Jones in http://thread.gmane.org/gmane.comp.emulators.guestfs/1902 2012-09-17 Jim Meyering maint.mk: teach sc_prohibit_magic_number_exit to accept 77 * top/maint.mk (sc_prohibit_magic_number_exit): Do not complain about uses like "exit (77)". "77" is automake's "skip this test" exit code. It is not in the same category as "exit (0)" or "exit (1)", and besides, I know of no symbolic name for that 77. Reported by Richard W.M. Jones in http://thread.gmane.org/gmane.comp.emulators.guestfs/1902 2012-09-17 Jim Meyering maint.mk: relax sc_prohibit_strcmp, to avoid a false positive * top/maint.mk (sc_prohibit_strcmp): Relax regexp, so as to match all uses of #define, not just those that start in column 1. Richard W.M. Jones reported a false positive in http://thread.gmane.org/gmane.comp.emulators.guestfs/1902 2012-09-16 Paul Eggert localcharset: work around Mac OS X bug with UTF-8 and MB_CUR_MAX * lib/localcharset.c (locale_charset) [DARWIN7]: Return "ASCII" if the system reports "UTF-8" and MB_CUR_MAX <= 1, as these two values are incompatible. Problem reported by Max Horn. For more discussion, please see . doc: document sticky-EOF issue * doc/posix-functions/fgetc.texi (fgetc): * doc/posix-functions/fgets.texi (fgets): * doc/posix-functions/fread.texi (fread): * doc/posix-functions/fscanf.texi (fscanf): * doc/posix-functions/getc.texi (getc): * doc/posix-functions/getchar.texi (getchar): * doc/posix-functions/scanf.texi (scanf): Mention that glibc and default Solaris do not conform to C99 and POSIX-2001 or later, with respect to how getchar etc. behave when feof reports nonzero. 2012-09-13 Joachim Schmitz (tiny change) poll: fix poll(0, NULL, msec) * lib/poll.c: don't exit early if NULL is the 1st arg to poll(), but nfd is 0. In that case poll should behave like select. 2012-09-13 Joachim Schmitz (tiny change) Paolo Bonzini poll: fix for systems that can't recv() on a non-socket * lib/poll.c: if recv returns ENOTSOCK, assume the descriptor is readable. In this case POLLHUP will not be supported. * doc/posix-functions/poll.texi: Document this. 2012-09-13 Paolo Bonzini poll/select: document portability problems not fixed by Gnulib. * doc/posix-functions/poll.texi: poll does not work well on pipes under Windows. It has the same limitations as select on BeOS. * doc/posix-functions/select.texi: select does not work well on pipes under Windows. 2012-09-10 Paul Eggert fcntl-h: check for AIX 7.1 bug with O_NOFOLLOW and O_CREAT * m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Check for AIX 7.1 bug that caused a GNU tar test failure. Problem reported by Jez Wain; see . 2012-09-06 Eric Blake net_if: give more details about the bug being fixed * doc/posix-headers/net_if.texi: Add clarification. 2012-09-05 Eric Blake net_if: new module * modules/net_if: New module, borrowing ideas from netinet_in. * m4/net_if_h.m4: New file. * lib/net_if.in.h: Likewise. * doc/posix-headers/net_if.texi (net/if.h): Document it. * MODULES.html.sh (lacking POSIX:2008): Likewise. * tests/test-net_if.c: Make function checks conditional. Reported by Jasper Lievisse Adriaanse . 2012-09-05 Mats Erik Andersson (tiny change) readutmp: fix non-portable UT_PID use * lib/readutmp.c (desirable_utmp_entry) : Use `UT_PID (u) > 0' as absolute condition. 2012-09-04 Jim Meyering fts: reduce two or more trailing spaces to just one, usually * lib/fts.c (fts_open): Upon initialization, if a name ends in two or more slashes, trim all but the final one. But if a name consists solely of two slashes, don't modify it. If it consists solely of three or more slashes, strip all but one. This is part of the solution to a minor problem with rm: it would print a bogus ELOOP diagnostic when failing to remove the slash-decorated name of a symlink-to-directory: $ mkdir d && ln -s d s && env rm -r s/ rm: cannot remove 's': Too many levels of symbolic links With the change below and a trivial don't-trim-trailing-slashes adjustment to remove.c, it does this: $ env rm -r s/ rm: cannot remove 's/': Not a directory Improved by: Eric Blake fts: when there is no risk of overlap, use memcpy, not memmove * lib/fts.c (fts_alloc): Fix unjustified memcopy: s/memmove/memcpy/ 2012-08-29 Paul Eggert stdbool: be more compatible with mixed C/C++ compiles * lib/stdbool.in.h (_Bool, true, false) [__cplusplus]: Define to bool, true, false, respectively, as GCC's builtin stdbool.h does. Problem reported by Michael Goffioul in . 2012-08-28 Jim Meyering revert last change: it was not needed * tests/test-vc-list-files-git.sh: There's already a test for a working git, just below. 2012-08-28 Jim Meyering tests: test-vc-list-files-git.sh: skip if git is not available * tests/test-vc-list-files-git.sh: Skip this test when git is not available. 2012-08-26 Bruno Haible gnulib-tool: Remove no-op option --no-changelog. * gnulib-tool (func_usage): Don't mention --no-changelog. (do_changelog): Remove variable. Reported by Dmitriy Selyutin . 2012-08-24 Paul Eggert doc: remove fdl-1.2.texi It is no longer used or maintained, and its use of @acronym is problematic. See the thread containing . * config/srclist.txt: Remove doc/old-licenses/fdl-1.2.texi. * doc/old-licenses/fdl-1.2.texi: Remove. execinfo: port to FreeBSD * m4/execinfo.m4 (gl_EXECINFO_H): Set LIB_EXECINFO to -lexecinfo if needed, as in FreeBSD. Reported by Bastien Roucariès in . * modules/execinfo (Link): Add $(LIB_EXECINFO). 2012-08-23 Jim Meyering xstrtol.h: avoid "_Noreturn is not at beginning of declaration" warning * lib/xstrtol.h: Put "_Noreturn" before "void" in declaration, to placate gcc's -Wold-style-declaration. 2012-08-24 Paul Eggert doc: do not use @acronym * doc/inet_ntoa.texi (inet_ntoa): * doc/parse-datetime.texi (Seconds since the Epoch) (Specifying time zone rules): * doc/posix-functions/inet_ntoa.texi (inet_ntoa): Don't use @acronym. Problem reported by John Darlington in . 2012-08-23 Paul Eggert stdnoreturn: port to newer GCCs * m4/stdnoreturn.m4 (gl_STDNORETURN_H): Avoid problems with bleeding-edge GCC that complains about 'int _Noreturn foo (void);'. Problem reported by Jim Meyering in . Also, rename the 'test' function to a void a clash with the already-supplied 'main' function; this fixes a bug that incorrectly rejected GCC 4.7.1's . * doc/posix-headers/stdnoreturn.texi (stdnoreturn.h): Document GCC problem. 2012-08-22 Reuben Thomas pipe-filter: fix comment typo * lib/pipe-filter.h: Mention correct function. 2012-08-22 Paul Eggert execinfo: new module This is for Emacs. Currently, it provides a no-effect stub on all platforms where it does not already work. It already works on glibc-based systems, and on Solaris 11. * lib/execinfo.c, lib/execinfo.in.h, m4/execinfo.m4, modules/execinfo: New files. * doc/glibc-headers/execinfo.texi (execinfo.h): * MODULES.html.sh (Misc): Document it. 2012-08-20 Paul Eggert extern-inline: support old GCC 'inline' * m4/extern-inline.m4 (gl_EXTERN_INLINE): Use pre-C99 GCC 'inline' if available. This applies to GCC versions 2.7 through 4.2, or when newer GCC is using -fgnu89-inline. The goal is to address some of the performance issues mentioned by Bruno Haible in . 2012-08-20 Eric Blake maint.mk: avoid redundant file name in message * top/maint.mk (sc_prohibit_strcmp, sc_unmarked_diagnostics) (sc_prohibit_defined_have_decl_tests, sc_const_long_option) (sc_makefile_path_separator_check): Remove bogus $(ME). 2012-08-20 Mike Frysinger timer-time: fix link order when static linking on glibc * m4/timer_time.m4 (LIB_TIMER_TIME): Add -lpthread _after_ -lrt so that it's significant. 2012-08-19 Paul Eggert timespec: omit unnecessary AC_C_INLINE * m4/timespec.m4 (gl_TIMESPEC): Do not require AC_C_INLINE. stat-time: omit unnecessary AC_C_INLINE * m4/stat-time.m4 (gl_STAT_TIME, gl_STAT_BIRTHTIME): Do not require AC_C_INLINE. ignore-value: omit unnecessary AC_C_INLINE * modules/ignore-value (configure.ac): Do not require AC_C_INLINE. sys_select: avoid 'static inline' * lib/sys_select.in.h (rpl_fd_isset): Now static, not static inline. mktime: avoid 'static inline' * lib/mktime.c (leapyear, ydhms_diff): Now static, not static inline. * m4/mktime.m4 (gl_PREREQ_MKTIME): Do not require AC_C_INLINE. 2012-08-19 Bruno Haible gnulib-tool: Improve coding style. * gnulib-tool (func_emit_tests_Makefile_am): Set perhapsLT, like in func_emit_lib_Makefile_am. Reported and fix suggested by Dmitriy Selyutin . 2012-08-19 Bruno Haible gnulib-tool: Fix indentation. * gnulib-tool (func_import): Fix indentation. 2012-08-19 Bruno Haible gnulib-tool: Remove old file names from .cvsignore, .gitignore. * gnulib-tool (func_update_ignorelist): Don't use 'join -v 1' command on the list of removed files. 2012-08-17 Paul Eggert test-parse-datetime: avoid glibc leap-second glitch * tests/test-parse-datetime.c (main): Set TZ to US Eastern time with the 2012 rules. Problem reported by Bruce Dubbs in . 2012-08-14 Bruno Haible gnulib-tool: Fix indentation of generated gnulib-comp.m4 file. * gnulib-tool (func_emit_autoconf_snippet): Initialize indentation from argument. Reported and fix suggested by Dmitriy Selyutin . 2012-08-14 Eric Blake ldexp: relax license * modules/ldexp (License): Trivial relax, since the module only provides a permissively licensed m4 file. 2012-08-13 Bruno Haible gnulib-tool: Fix persistence of --witness-c-macro option. * gnulib-tool (func_import): Fix typo in emit of gl_WITNESS_C_MACRO. Reported by Dmitriy Selyutin . 2012-08-11 Eric Blake count-leading-zeros: use a lookup table on non-gcc compilers * lib/count-leading-zeros.h (count_leading_zeros_32): Use an alternate implementation, suggested by Jim Meyering. 2012-08-10 Eric Blake count-leading-zeros: new module * modules/count-leading-zeros: New module. * m4/count-leading-zeros.m4: New file. * lib/count-leading-zeros.h: Likewise. * modules/count-leading-zeros-tests: New test. * tests/test-count-leading-zeros.c: New file. * MODULES.html.sh (Integer arithmetic functions): Document it. 2012-08-07 Simon Josefsson Jim Meyering maintainer-makefile: Fix syntax error with dash. * top/maint.mk (sc_vulnerable_makefile_CVE-2009-4029): Quote arguments. (sc_vulnerable_makefile_CVE-2012-3386): Likewise. 2012-08-05 Jim Meyering extern-inline: also ignore -Wmissing-declarations * m4/extern-inline.m4: Also ignore -Wmissing-declarations, required with gcc-4.8.0-to-be. maint.mk: sc_prohibit_magic_number_exit: avoid new false positives * top/maint.mk (sc_prohibit_magic_number_exit): Also filter out matches for /error ?([^,]*)/. This avoids false-positives for strings like "Unknown error (252)", introduced via commit v0.0-7538-g92875a6. 2012-08-02 Stefano Lattarini gnumakefile: better interaction with Automake-NG * modules/gnumakefile [Makefile.am]: The makefiles generated by Automake-NG always contain a definition of VPATH, even in non-VPATH builds (its value being simply '.' in that case). So, in the 'clean-GNUmakefile' rule, to determine whether running under a VPATH setup, compare '$(srcdir)' to '.' rather than checking whether '$(VPATH)' expands to the empty string. 2012-08-02 Carlo de Falco (tiny change) base64: Use extern C scope in header file, for C++. * lib/base64.h: Add C++ namespace protection. 2012-08-02 Paul Eggert stat-time, timespec, u64: support naive out-of-dir builds * lib/stat-time.c, lib/timespec.c, lib/u64.c: Use '#include "foo.h"', not '#include ', when including one's own interface. This works better when configuring with out-of-directory builds, since packages need not add an otherwise-unnecessary -I$(topdir_src)/lib to DEFAULT_INCLUDES. 2012-08-01 Paul Eggert utimens: use extern-inline * lib/utimens.c (_GL_UTIMENS_INLINE): Define when including utimens.h. * lib/utimens.h: Add copyright notice, since this is now large enough to copyright. Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. (_GL_UTIMENS_INLINE): New macro. Use it instead of 'static inline'. * modules/utimens (Depends-on): Add extern-inline. u64: use extern-inline * lib/u64.c: New file. * lib/u64.h: Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. (_GL_U64_INLINE): New macro. Use it instead of 'static inline'. * modules/u64 (Files): Add lib/u64.c. (Depends-on): Add extern-inline. (configure.ac): No need to require AC_C_INLINE, since extern-inline does that now. (lib_SOURCES): Add u64.c. timespec: use extern-inline * lib/timespec.c: New file. * lib/timespec.h: Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. (_GL_TIMESPEC_INLINE): New macro. Use it instead of 'static inline'. * modules/timespec (Files): Add lib/timespec.c. (Depends-on): Add extern-inline. (lib_SOURCES): Add timespec.c. stat-time: use extern-inline * lib/stat-time.c: New file. * lib/stat-time.h: Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. (_GL_STAT_TIME_INLINE): New macro. Use it instead of 'static inline'. * modules/stat-time (Files): Add lib/stat-time.c. (Depends-on): Add extern-inline. (lib_SOURCES): Add stat-time.c. extern-inline: new module * modules/extern-inline, m4/extern-inline.m4: New files. This is for better support of 'extern inline' a la ISO C99, with a portable alternative on compilers that do not support C99-style 'extern inline'. Using 'extern inline' shrinks the size of the Emacs executable, when compiled with debugging disabled, which is a typical way that Emacs is built while developing. 2012-08-01 Akim Demaille maint.mk: a "release-commit" wrapper to do-release-commit-and-tag * build-aux/do-release-commit-and-tag: Move variable definitions together. ($branch): Instead of defaulting to "master", default to the current branch (as gnu-web-doc-update does). (help): Display the current values of the option arguments. * top/maint.mk (release-commit): New. * top/README-release: Simplify the corresponding step. 2012-07-30 Eric Blake passfd: fix comment on recvfd * lib/passfd.c (recvfd): Fix comment. Reported by Jann Horn . 2012-07-30 Jim Meyering maint.mk: avoid a sub-shell * top/maint.mk (release-prep): Remove unneeded sub-shell. 2012-07-30 Akim Demaille maint.mk: use silent-rules support from Automake * top/maint.mk (news-check, vc-diff-check, announcement) (no-submodule-changes, alpha beta stable, release-prep) (web-manual, update-copyright): Use $(AM_V_GEN) and $(AM_V_at). 2012-07-30 Akim Demaille maint.mk: provide a web-manual-update target * top/maint.mk: here. * top/README-release: Use it to simplify the web manual update step. 2012-07-30 Akim Demaille README-release: shorten the circuit to post a news * top/README-release: Point directly to the news submission form. 2012-07-30 Akim Demaille gnu-web-doc-update: fix --help * build-aux/gnu-web-doc-update: The information "top level" was written twice. 2012-07-30 Akim Demaille maint.mk: absolute VPATH issue * top/maint.mk (release-prep): Help Git find .git/. From Jim Meyering. 2012-07-29 Akim Demaille gitlog-to-changelog: fix previous change * build-aux/gitlog-to-changelog: Fix condition. Add missing ";". 2012-07-29 Akim Demaille gitlog-to-changelog: don't expect .git to be in $srcdir Reported by Bruno Haible. * build-aux/gitlog-to-changelog (&git_dir_option): New. Use it. 2012-07-29 Akim Demaille maint.mk: absolute VPATH build fix * top/maint.mk (gpg_key_ID): Help git find .git when, for instance, $(srcdir) is not a parent of $(builddir). 2012-07-28 John Darrington clean-temp: Fix memory leak. * lib/clean-temp.c (cleanup_temp_dir): Free also the 'subdirs' and 'files' members of tmpdir. 2012-07-27 Jim Meyering maint.mk: new rule: refresh-gnulib-patches I noticed that 8 of coreutils' 9 gl/**/*.diff files were stale. Use this rule to refresh them. * top/maint.mk (refresh-gnulib-patches): New rule. 2012-07-24 Bruno Haible gnulib-tool: Fix handling of inctests variable. * gnulib-tool: Canonicalize $inctests also in 'update' mode. Reported by Nick Bowler . 2012-07-22 Bruno Haible getpass: Assume AC_CHECK_DECLS_ONCE invocation, like in getpass.m4. * lib/getpass.h: Assume HAVE_DECL_GETPASS is defined. * cfg.mk (exclude_file_name_regexp--sc_prohibit_defined_have_decl_tests): Remove exemption for getpass.h. Suggested by Eric Blake. 2012-07-20 Eric Blake verify: document conflict with -Wnested-externs * lib/verify.h: Give hint about usage when gcc warnings are enabled. maint.mk: forbid exit(-1) * top/maint.mk (sc_prohibit_magic_number_exit): Detect negatives. 2012-07-20 Paul Eggert fsusage: port back to Solaris * lib/fsusage.c (get_fs_usage): Fix busted logic causing compile-time error (fsd not declared) on Solaris 10. Reported privately by Andrew Borodin. 2012-07-19 Akim Demaille gnu-web-doc-update: fix error messages * build-aux/gnu-web-doc-update: Don't pass $ME to die. gnu-web-doc-update: check the requirements. * build-aux/gnu-web-doc-update (find_tool): Import from bootstrap. ($CVS, $CVSU, $GIT, $RSYNC, $XARGS): New. * build-aux/bootstrap (find_tool): Comment change. 2012-07-17 Akim Demaille maint.mk: minor simplication. * top/maint.mk (_sc_excl): Use $(or...) instead of $(if...) for default values. 2012-07-15 Akim Demaille gitlog-to-changelog: VPATH build issues If builddir is not a subdirectory of srcdir, running git from it will fail. * build-aux/gitlog-to-changelog (--srcdir): New option. 2012-07-15 Bruno Haible fpending: Assume AC_CHECK_DECLS_ONCE invocation, like in fpending.m4. * lib/fpending.h: Assume HAVE_DECL___FPENDING is defined. * cfg.mk (exclude_file_name_regexp--sc_prohibit_defined_have_decl_tests) Remove exemption for fpending.h. Suggested by Eric Blake. 2012-07-15 Paul Eggert pthread_sigmask: fix bug on FreeBSD 9 * lib/pthread_sigmask.c [PTHREAD_SIGMASK_INEFFECTIVE]: Include string.h. (pthread_sigmask) [PTHREAD_SIGMASK_INEFFECTIVE]: When calling pthread_sigmask (1729, NEW, OLD), specify non-null NEW; this avoids a bug on FreeBSD 9, where pthread_sigmask is effective but pthread_sigmask (1729, NULL, NULL) returns zero. See . Avoid the need to call pthread_sigmask (1729, ...) in most cases, by inspecting whether the main call changed the old mask. 2012-07-15 Reuben Thomas README-release: make it more legible * top/README-release: Improve typography slightly. 2012-07-15 Jim Meyering maint: require that each sc_... command start with "@" * Makefile (sc_prohibit_sc_omitted_at): New rule so that "make sc_maint" helps us avoid this nit. 2012-07-15 Jim Meyering maint.mk: add leading "@" to quiet new "make syntax-check" rule * top/maint.mk (sc_prohibit_defined_have_decl_tests): Add "@". 2012-07-13 Eric Blake maint.mk: new syntax check for HAVE_DECL checks * top/maint.mk (sc_prohibit_defined_have_decl_tests): New rule. * cfg.mk (exclude_file_name_regexp--sc_prohibit_defined_have_decl_tests): Exempt some false positives. Based on a report by Karel Zak. argp: make HAVE_DECL usage consistent * lib/argp-parse.c (__argp_parse): Check contents of HAVE_DECL macros, not whether they are defined. * m4/argp.m4 (gl_ARGP): Always define HAVE_DECL_* macros, per convention with other declaration checks. Reported by Karel Zak, with suggestions from Paul Eggert. stat-time: relax license to LGPLv2+ * modules/stat-time (License): Relax, with consent of all authors. strndup: fix m4 usage error * m4/strndup.m4 (gl_FUNC_STRNDUP): HAVE_DECL_STRNDUP is always defined, to either 0 or 1. Reported by Karel Zak. 2012-07-11 Jim Meyering maint: enable the sc_avoid_if_before_free syntax-check rule * cfg.mk (local-checks-to-skip): Enable sc_avoid_if_before_free. (if_before_free_offenders_): Define. (if_before_free_basename_re_): Define. Exempt current files with useless if-before-free. 2012-07-11 Paul Eggert gettext: do not assume '#define ... defined ...' behavior * lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS): Do not use '#define FOO ... defined BAR ...', as the C standard says it's not portable to expect that this works after macro expansion. Problem reported for gzip by Steven M. Schweda in . 2012-07-10 Paul Eggert getloadavg: clean out old Emacs and Autoconf cruft See Glenn Morris in . * lib/getloadavg.c: Include , always. Include if HAVE_SYS_PARAM_H, not if unix or __unix. (LDAV_CVT): Remove no-longer-used LOAD_AVE_CVT hook. * m4/getloadavg.m4 (gl_PREREQ_GETLOADAVG): Check for . 2012-07-10 Akim Demaille bootstrap: let warn be like tests/init.sh's warn_ Reported by Jim Meyering. * build-aux/bootstrap (warn): Remove, replaced by... (warnf_, warn_): these. Adjust callers. Shorten messages that no longer fit in 80 columns. 2012-07-09 Bruno Haible getopt: Simplify after Emacs changed. * m4/getopt.m4 (gl_FUNC_GETOPT_POSIX): Inline gl_GETOPT_IFELSE. (gl_GETOPT_IFELSE): Remove macro. 2012-07-09 Jim Meyering maint.mk: add sc_vulnerable_makefile_CVE-2012-3386 * top/maint.mk (sc_vulnerable_makefile_CVE-2012-3386): New rule. maint.mk: _sc_search_regexp, sc_vulnerable_makefile_CVE-2009-4029: fix Bugs in both of those conspired to make the sc_vulnerable_makefile_CVE-2009-4029 rule 99% useless. _sc_search_regexp's handling of non-empty $in_files would filter out any offending file names. sc_vulnerable_makefile_CVE-2009-4029's choice of in_files value meant there would be no match in most projects, due to the presence of two or more Makefile.in files. * top/maint.mk (_sc_search_regexp) [in_vc_files,in_files]: Clarify. Fix a bug in how a non-empty $$in_files was processed: (sc_vulnerable_makefile_CVE-2009-4029): Fix erroneous use of in_files: in spite of the name, it's a regexp, not a list of file names. 2012-07-09 Paul Eggert getloadavg, getopt: fix commentary re configure.in Autoconf is deprecating the name 'configure.in', so change it to to the new name 'configure.ac' in a couple of places. * lib/getloadavg.c: configure.in -> configure.ac, in comment. * m4/getopt.m4 (gl_GETOPT_IFELSE, gl_GETOPT_SUBSTITUTE_HEADER) (gl_PREREQ_GETOPT): Remove obsolete commentary re Emacs configure.in. Emacs has renamed it to configure.ac, and it no longer refers to these macros anyway. timespec: mark functions with const attributes * lib/timespec.h (timespec_add, timespec_sub, dtotimespec): Mark with _GL_ATTRIBUTE_CONST. 2012-07-07 Ludovic Courtès canonicalize[-lgpl]: handle "guessing" values when cross-building * m4/canonicalize.m4 (gl_FUNC_CANONICALIZE_FILENAME_MODE) (gl_CANONICALIZE_LGPL): Check whether $gl_cv_func_realpath_works matches "*yes" instead of just "yes". Regression introduced in commit e0bcf6626cde8dad4bfbdc4045c744f0cd8b9e24. 2012-07-07 Ludovic Courtès Bruno Haible canonicalize: make the right guess when cross-compiling to GNU * m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Match also "gnu*" to determine whether cross-compiling to glibc systems, so as to include GNU/Hurd. 2012-07-06 Paul Eggert timespec-sub: avoid duplicate include * lib/timespec-sub.c: Do not include twice. Reported by Juanma Barranquero. 2012-07-06 Akim Demaille bootstrap: use a more consistent error reporting scheme * build-aux/bootstrap (warn, die): New. Use them. 2012-07-05 Paul Eggert sys_time: allow too-wide tv_sec * m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Allow struct timeval even if tv_sec is wider than time_t. This allows OpenBSD 5.1 amd64 and fixes an Emacs porting glitch with utimens.c, as without this patch gnulib replaces struct timeval and OpenBSD futimes therefore has a type mismatch. * doc/posix-headers/sys_time.texi: Mention this. pthread: check for both pthread_create and pthread_join * m4/pthread.m4 (gl_PTHREAD_CHECK): Revert previous change, but alter the check so that it tests for both pthread_create and pthread_join. This should be more portable to hosts like OSF/1 5.1. Suggested by Bruno Haible and Richard Yao in . parse-datetime: doc tuneup * doc/parse-datetime.texi: Index "leap seconds" and fix minor spacing issues. 2012-07-05 Akim Demaille do-release-commit-and-tag: fix the previous commit * build-aux/do-release-commit-and-tag: Actually the test was right, but the comment and the error message were misleading. Fix comment, and improve error message. Perform check first, so that NEWS is not modified uselessly. do-release-commit-and-tag: fix typo * build-aux/do-release-commit-and-tag: Be sure that NEWS does _not_ start with a stub. 2012-07-04 Paul Eggert pthread: check for pthread_create, not pthread_join * m4/pthread.m4 (gl_PTHREAD_CHECK): Check for pthread_create, not pthread_join. On FreeBSD 9, pthread_create is in libpthread but pthread_join in libc. I hope this removes the need for all the OSF/1 5.1 pthread_join business. Reported by Richard Yao in . 2012-07-04 Jim Meyering parse-datetime: fix failure to diagnose invalid input date -d "$(printf '\xb0')" would print 00:00:00 with today's date rather than diagnosing the invalid input. Now it reports this: date: invalid date '\260' * lib/parse-datetime.y (to_uchar): Define. (yylex): Don't sign-extend "other" bytes. * m4/parse-datetime.m4: Require AC_C_INLINE for first use of "inline". Thanks to Bruno Haible for the patch to this file. * tests/test-parse-datetime.c (main): Add a test to trigger the bug. Peter Evans reported the bug in GNU date: http://bugs.gnu.org/11843 2012-07-03 Jim Meyering bootstrap: do not require now-removed build-aux/missing Now that build-aux/missing is, er, missing, bootstrap would silently fail. * build-aux/bootstrap (gnulib_extra_files): Remove $build_aux/missing from the list, now that (since commit v0.0-7489-gd0f486f) the file is no longer part of gnulib. Diagnose the failure. 2012-07-03 Paul Eggert alloca: add support for HP NonStop TNS/E native * lib/alloca.in.h (alloca): Support the new host. From a suggestion by Joachim Schmitz in . 2012-07-02 Pádraig Brady fsusage: remove code not needed on non GNU/Linux systems. * lib/fsusage.c [STAT_STATVFS || STAT_STATVFS64]: Don't include headers no longer needed in this case. * lib/fsusage.c [STAT_STATVFS && ! (__linux__ && (__GLIBC__||__UCLIBC__))]: Undefine STAT_STATFS2_FRSIZE to exclude code not used in this case. 2012-07-02 Paul Eggert fsusage: include files needed for glibc 2.6 fallback * lib/fsusage.c [STAT_STATVFS || STAT_STATVFS64]: Include , , as they are needed for the 2.6 < glibc/Linux < 2.6.36 fallback. Problem reported by Ludovic Courtès in . fsusage: avoid needless check on GNU/Linux * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Omit STAT_STATFS3_OSF1 check on GNU/Linux systems, since it can't possibly work. 2012-07-01 Bruno Haible log: Fix an autoconf >= 2.64 warning. * modules/log (configure.ac): Require, not invoke, gl_FUNC_LOG. Reported by Carlos O'Donell . 2012-06-28 Bruno Haible log10f: Fix possible configuration problem. * m4/log10f.m4 (gl_FUNC_LOG10F): Augment LIBS by $LOG10F_LIBM, not $LOGF_LIBM. Reported by Carlos O'Donell . 2012-06-28 Bruno Haible remove: No longer override on all platforms. Fixes bug from 2010-03-20. * m4/remove.m4 (gl_FUNC_REMOVE): Test gl_cv_func_unlink_honors_slashes, not gl_cv_func_unlink_works. Reported by Carlos O'Donell . 2012-06-27 Eric Blake config: drop scripts that automake says are not independent * config/srclist.txt: Drop elisp-comp, missing, and ylwrap. * build-aux/elisp-comp: Delete. * build-aux/missing: Likewise. * build-aux/ylwrap: Likewise. * modules/elisp-comp: Likewise. * MODULES.html.sh: Drop mention of elisp-comp. * NEWS: Mention this. 2012-06-26 Paul Eggert root-uid: new module This is for portability to Tandem's NonStop Kernel. * lib/root-uid.h, modules/root-uid: New files. * lib/euidaccess.c, lib/pt_chown.c, lib/unlinkdir.c: * lib/write-any-file.c, tests/test-sethostname2.c: Include "root-uid.h". * lib/euidaccess.c (euidaccess): * lib/pt_chown.c (main): * lib/unlinkdir.c (cannot_unlink_dir): * lib/write-any-file.c (can_write_any_file): * m4/mknod.m4 (gl_FUNC_MKNOD): * tests/test-sethostname2.c (geteuid, main): Don't assume ROOT_UID == 0. * modules/euidaccess (Depends-on): * modules/pt_chown (Depends-on): * modules/sethostname-tests (Depends-on): * modules/unlinkdir (Depends-on): * modules/write-any-file (Depends-on): Add root-uid. regex: use locale-independent comparison for codeset name See Bruno Haible's comment in . * lib/regcomp.c (init_dfa): Use just ASCII case comparison for codeset name. * lib/regex_internal.h: Do not include , since we no longer use strcasecmp. * modules/regex (Depends-on): Remove strcase. 2012-06-23 Bruno Haible getopt-posix: No longer guarantee that option processing is resettable. * doc/posix-functions/getopt.texi: Drop description of problem with internal state. Fix info about mingw and msvc9. * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Don't require a resettable option processing by getopt(). Run three test programs instead of one. Simplify cross-compilation guess. * NEWS: Mention the change. Reported by Rich Felker . 2012-06-26 Bruno Haible argp, regex: Ensure strcasecmp gets declared. * lib/argp-help.c: Include . * lib/regex_internal.h: Likewise. Reported and suggested by Joachim Schmitz . 2012-06-24 Bruno Haible ptsname_r: Make it consistent with ptsname on AIX. * lib/ptsname_r.c (__ptsname_r): For AIX, use nearly the same implementation as for OSF/1. * tests/test-ptsname_r.c (main) [AIX]: Use the modern way of opening a pty master. ptsname_r: Make it consistent with ptsname on OSF/1. * lib/ptsname_r.c (__ptsname_r): Add a different implementation for OSF/1. 2012-06-24 Bruno Haible ttyname_r: Fix result on OSF/1, Solaris. * lib/ttyname_r.c (ttyname_r): Produce a NUL-terminated result. 2012-06-24 Bruno Haible ptsname_r: Add support for Solaris. * lib/ptsname_r.c (__ptsname_r): Add a different implementation for Solaris. ptsname_r: Fix test failure on native Windows. * modules/ptsname_r (Depends-on): Add isatty. ptsname_r: Fix test failures on IRIX, Solaris. * m4/ptsname_r.m4 (gl_PREREQ_PTSNAME_R): Test whether isatty sets errno when it fails. Define ISATTY_FAILS_WITHOUT_SETTING_ERRNO accordingly. * lib/ptsname_r.c: Include . (__ptsname_r): When isatty returned false, then on IRIX, Solaris set errno if fd is invalid. * tests/test-isatty.c (main): Update comments. 2012-06-24 Bruno Haible ptsname test: Extend test. * tests/test-ptsname.c: Include . (main): Test behaviour with invalid file descriptor. 2012-06-23 Paul Eggert time: fix obsolete comment * m4/time_h.m4 (gl_CHECK_TYPE_STRUCT_TIMESPEC): Remove obsolete reference to HAVE_STRUCT_TIMESPEC in comment. 2012-06-23 Bruno Haible getopt-gnu: Handle suboptimal getopt_long's abbreviation handling. * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): If getopt_long exists but does not handle abbreviated long options with equivalent disambiguations, set gl_replace_getopt to yes. * doc/posix-functions/getopt.texi: Mention the OpenBSD 5.0 problem. 2012-06-22 Paul Eggert time_r: fix typo that always overrode localtime_r decl * m4/time_r.m4 (gl_TIME_R): Use AC_CHECK_DECLS, not AC_CHECK_DECLS_ONCE, since localtime_r is declared in , not in a standard include. 2012-06-22 Bruno Haible Write "Mac OS X" instead of "MacOS X". * README: Write "Mac OS X" instead of "MacOS X". * build-aux/bootstrap: Likewise. * build-aux/install-reloc: Likewise. * lib/acl-internal.h: Likewise. * lib/acl_entries.c: Likewise. * lib/argp-ba.c: Likewise. * lib/argp-pv.c: Likewise. * lib/config.charset: Likewise. * lib/copy-acl.c: Likewise. * lib/csharpexec.c: Likewise. * lib/euidaccess.c: Likewise. * lib/fbufmode.c: Likewise. * lib/fflush.c: Likewise. * lib/file-has-acl.c: Likewise. * lib/filemode.h: Likewise. * lib/fpurge.c: Likewise. * lib/freadable.c: Likewise. * lib/freadahead.c: Likewise. * lib/freading.c: Likewise. * lib/freadptr.c: Likewise. * lib/freadseek.c: Likewise. * lib/fseeko.c: Likewise. * lib/fseterr.c: Likewise. * lib/fsusage.c: Likewise. * lib/fwritable.c: Likewise. * lib/fwriting.c: Likewise. * lib/get-rusage-as.c: Likewise. * lib/get-rusage-data.c: Likewise. * lib/getdomainname.c: Likewise. * lib/idpriv-drop.c: Likewise. * lib/idpriv-droptemp.c: Likewise. * lib/localcharset.c: Likewise. * lib/locale.in.h: Likewise. * lib/localename.c: Likewise. * lib/mbsrtowcs-state.c: Likewise. * lib/nproc.c: Likewise. * lib/passfd.c: Likewise. * lib/posix_openpt.c: Likewise. * lib/printf-parse.c: Likewise. * lib/progreloc.c: Likewise. * lib/safe-read.h: Likewise. * lib/safe-write.h: Likewise. * lib/sched.in.h: Likewise. * lib/set-mode-acl.c: Likewise. * lib/signal.in.h: Likewise. * lib/stdint.in.h: Likewise. * lib/stdio-impl.h: Likewise. * lib/stdlib.in.h: Likewise. * lib/strtod.c: Likewise. * lib/sys_select.in.h: Likewise. * lib/tcgetsid.c: Likewise. * lib/unistd.in.h: Likewise. * lib/unlockpt.c: Likewise. * lib/vasnprintf.c: Likewise. * lib/vma-iter.c: Likewise. * lib/wcsrtombs-state.c: Likewise. * m4/acl.m4: Likewise. * m4/acosl.m4: Likewise. * m4/asinl.m4: Likewise. * m4/atanl.m4: Likewise. * m4/c-stack.m4: Likewise. * m4/cosl.m4: Likewise. * m4/expl.m4: Likewise. * m4/extensions.m4: Likewise. * m4/fdatasync.m4: Likewise. * m4/fmal.m4: Likewise. * m4/frexp.m4: Likewise. * m4/frexpf.m4: Likewise. * m4/frexpl.m4: Likewise. * m4/fsusage.m4: Likewise. * m4/getdomainname.m4: Likewise. * m4/getloadavg.m4: Likewise. * m4/getopt.m4: Likewise. * m4/gettext.m4: Likewise. * m4/gnulib-common.m4: Likewise. * m4/intdiv0.m4: Likewise. * m4/intlmacosx.m4: Likewise. * m4/largefile.m4: Likewise. * m4/ldexpl.m4: Likewise. * m4/link-follow.m4: Likewise. * m4/locale-ar.m4: Likewise. * m4/locale-fr.m4: Likewise. * m4/locale-ja.m4: Likewise. * m4/locale-tr.m4: Likewise. * m4/locale-zh.m4: Likewise. * m4/locale_h.m4: Likewise. * m4/lock.m4: Likewise. * m4/logl.m4: Likewise. * m4/mathfunc.m4: Likewise. * m4/minus-zero.m4: Likewise. * m4/mktime.m4: Likewise. * m4/mmap-anon.m4: Likewise. * m4/multiarch.m4: Likewise. * m4/nanosleep.m4: Likewise. * m4/nocrash.m4: Likewise. * m4/poll.m4: Likewise. * m4/printf-frexpl.m4: Likewise. * m4/printf.m4: Likewise. * m4/signbit.m4: Likewise. * m4/sinl.m4: Likewise. * m4/sqrtl.m4: Likewise. * m4/strerror_r.m4: Likewise. * m4/tanl.m4: Likewise. * m4/threadlib.m4: Likewise. * m4/ttyname_r.m4: Likewise. * m4/unlink.m4: Likewise. * m4/visibility.m4: Likewise. * m4/wcwidth.m4: Likewise. * tests/minus-zero.h: Likewise. * tests/test-alloca-opt.c: Likewise. * tests/test-copy-acl.sh: Likewise. * tests/test-copy-file.sh: Likewise. * tests/test-fdatasync.c: Likewise. * tests/test-file-has-acl.sh: Likewise. * tests/test-flock.c: Likewise. * tests/test-fsync.c: Likewise. * tests/test-localename.c: Likewise. * tests/test-malloca.c: Likewise. * tests/test-nonblocking-pipe.h: Likewise. * tests/test-nonblocking-socket.h: Likewise. * tests/test-openpty.c: Likewise. * tests/test-posix_openpt.c: Likewise. * tests/test-ptsname.c: Likewise. * tests/test-ptsname_r.c: Likewise. * tests/test-sameacls.c: Likewise. * tests/test-select.h: Likewise. * tests/test-set-mode-acl.sh: Likewise. * tests/test-snprintf-posix.h: Likewise. * tests/test-sprintf-posix.h: Likewise. * tests/test-strtod.c: Likewise. * tests/test-time.c: Likewise. * tests/test-vasnprintf-posix.c: Likewise. * tests/test-vasprintf-posix.c: Likewise. * doc/acl-resources.txt: Likewise. * doc/**/*.texi: Likewise. Reported by Max Horn . 2012-06-22 Bruno Haible grantpt: Relax requirement regarding invalid file descriptors. * lib/grantpt.c: Don't include . (grantpt): Don't verify the validity of the file descriptor. * modules/grantpt (Depends-on): Remove fcntl-h. * tests/test-grantpt.c (main): Allow grantpt to succeed for invalid file descriptors. * doc/posix-functions/grantpt.texi: Document more platforms on which grantpt succeeds for invalid file descriptors. Reported by Rich Felker . 2012-06-22 Bruno Haible fbufmode test: Don't test unportable behaviour. * tests/test-fbufmode.c (test_mode): New function, extracted from main. (main): Invoke it three times. Reported by Szabolcs Nagy and Rich Felker . 2012-06-21 Bruno Haible gnulib-tool: Refactor inctests variable. * gnulib-tool: Normalize inctests to 'true' or 'false', not ''. (func_modules_transitive_closure, func_modules_transitive_closure_separately, func_import, func_create_testdir): Update. gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests. * gnulib-tool: Accept option --without-tests. (func_usage): Document --without-tests option. Rearrange. (inctests): Normalize according to the mode. * NEWS: Mention the change. Suggested by Simon Josefsson. 2012-06-21 Bruce Korb parse-duration test: Avoid spurious output. * tests/test-parse-duration.sh: Reindent with leading tabs. 2012-06-21 Jim Meyering maint: disable the strncpy prohibition * cfg.mk: Do not prohibit strncpy here. 2012-06-21 Bruno Haible nonblocking: Avoid compilation error on mingw64. * m4/stdio_h.m4 (gl_STDIO_H): Invoke gl_MODULE_INDICATOR for scanf, fscanf. * modules/vscanf (configure.ac): Invoke gl_MODULE_INDICATOR. * modules/vfscanf (configure.ac): Likewise. * lib/stdio-read.c (scanf, fscanf, vscanf, vfscanf): Enable function definition only if stdio.h has prepared it. Reported by Daniel P. Berrange . 2012-06-20 Bernd Jendrissek (tiny change) gnulib-tool: Use readlink if it is available. * gnulib-tool (func_readlink): Choose function more appropriately. 2012-06-21 Paul Eggert posixtm-tests: port to buggy compiler Problem reported by Simon Josefsson in . * modules/posixtm-tests (Depends-on): Add stdint. * tests/test-posixtm.c (struct posixtm_test.t_expected): Now of type int_least64_t, not int64_t, both because that's what INT64_C returns and because int_least64_t works even on 72-bit hosts. (T): Use INT64_C on constants outside the traditional int range, to work around compiler bug noted by Simon. mktime: fix integer overflow in 'configure'-time test * m4/mktime.m4 (gl_FUNC_MKTIME): Do not rely on undefined behavior after integer overflow. Problem reported by Rich Felker in . Also, don't look for further instances of a bug if we've already found one instance; this helps 'configure' run faster. 2012-06-20 John Darrington (tiny change) tmpfile, clean-temp: Fix invocation of GetVersionEx. * lib/tmpfile.c (supports_delete_on_close): Initialize parameter for GetVersionEx correctly. * lib/clean-temp.c (supports_delete_on_close): Likewise. 2012-06-20 Bruno Haible fdopen: Allow implementations that don't reject invalid fd arguments. * m4/fdopen.m4 (gl_FUNC_FDOPEN): Let the test pass if fdopen(-1,...) succeeds. Reported by Rich Felker . 2012-06-20 Simon Josefsson * modules/parse-duration-tests (test_parse_duration_LDADD): Don't bring in LIBINTL. 2012-06-20 Paul Eggert init.sh: do not rely on autoupated PWD This addresses symptoms of the problem reported by Nelson H.F. Beebe in . Although Nelson's bug was not necessarily fixed by this patch, it seems wise to make the change for safety. * tests/init.sh (path_prepend_): Do not rely on PWD updating automagically after 'cd'; this is not reliable on older shells. (setup_): Fail if we cannot cd to temporary directory. 2012-06-19 Bruno Haible stat, fstat: Avoid warnings on mingw64. * lib/stat.c (stat) [_GL_WINDOWS_64_BIT_ST_SIZE]: Undefine before redefining. * lib/fstat.c (stat, fstat) [_GL_WINDOWS_64_BIT_ST_SIZE]: Likewise. Reported by Daniel P. Berrange . 2012-06-19 Bruno Haible stdioext: Add support for musl libc. * m4/fbufmode.m4 (gl_FUNC_FBUFMODE): Test whether __fbufsize exists. * lib/fbufmode.c (fbufmode): Add conditional code for musl. * m4/fseterr.m4: New file. * lib/fseterr.h (fseterr): Define as an alias of __fseterr if that function exists. * modules/fseterr (Files): Add m4/fseterr.m4. (configure.ac): Invoke gl_FUNC_FSETERR. Compile fseterr.c if __fseterr does not exist. (Makefile.am): Remove fseterr.c from lib_SOURCES. * lib/freadable.h: Update comment. * lib/fwritable.h: Update comment. * lib/freading.h: Update comment. * lib/fwriting.h: Update comment. * m4/freadahead.m4: New file. * lib/freadahead.h (freadahead): Define as an alias of __freadahead if that function exists. * modules/freadahead (Files): Add m4/freadahead.m4. (configure.ac): Invoke gl_FUNC_FREADAHEAD. Compile freadahead.c if __freadahead does not exist. (Makefile.am): Remove freadahead.c from lib_SOURCES. * m4/freadptr.m4: New file. * lib/freadptr.h (freadptr): Define as an alias of __freadptr if that function exists. * modules/freadptr (Files): Add m4/freadptr.m4. (configure.ac): Invoke gl_FUNC_FREADPTR. Compile freadptr.c if __freadptr does not exist. (Makefile.am): Remove freadptr.c from lib_SOURCES. * m4/freadseek.m4: New file. * lib/freadseek.c (freadptrinc): Use __freadptrinc if that function exists. * modules/freadseek (Files): Add m4/freadseek.m4. (configure.ac): Invoke gl_FUNC_FREADSEEK. * lib/fpurge.c (fpurge): Update comment. Reported by and with help from Rich Felker . 2012-06-19 Bruno Haible *printf-posix: Put more info into config.log. * m4/printf.m4 (gl_PRINTF_ENOMEM): Emit conftest's error output and exit code into config.log. 2012-06-19 Bruno Haible getopt-gnu: Fix exit code overflow in autoconf test. * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Squash exit code values, to keep them below < 128. 2012-06-17 Jim Meyering maint.mk: fix typo in code to derive GPG key at release time * top/maint.mk (gpg_key_ID): Fix typo: $3 -> $$3 2012-06-17 Paul Eggert regex: avoid warning when pointers are not long * lib/regcomp.c (parse_dup_op, mark_opt_subexp): Cast between void * and uintptr_t, not long, for portability to hosts where pointers and long have different sizes. Issue noted by Daniel P. Berrange in and fix suggested by Bruno Haible in . 2012-06-17 Bruno Haible dummy: Relicense into the public domain. * modules/dummy (License): Set to "public domain". Suggested by Reuben Thomas. 2012-06-12 Akim Demaille announce-gen: VPATH issues * build-aux/announce-gen (--srcdir): New option, used to trim the $srcdir part of the path from $builddir to NEWS. * top/maint.mk (announcement): Adjust. 2012-06-12 Akim Demaille gnu-web-doc-update: VPATH builds * build-aux/gnu-web-doc-update (--builddir): New option. Revamp the handling of options. Prefer $(...) to `...`. Don't pass --tmpdir=. to mktemp, it is useless given that we specify the template, and it is GNU mktemp specific. Prefer set -e to long series of &&. Restore the initial git branch, not "master". Properly initialize submodules (don't rely only on bootstrap). Do not reconfigure blindly, use config.status. * top/README-release: Update instructions for gnu-web-doc-update. 2012-06-11 Jim Meyering maint.mk: revert most of the previous change re "all these" * top/maint.mk (prohibit_undesirable_word_seq_RE_): Remove that pair. For rationale, see the discussion at http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/30912 2012-06-10 Karl Berry * build-aux/gnupload: with --dry-run, do not ask for gpg pw. * build-aux/gnupload: implement --replace, ftp-upload protocol v1.2. 2012-06-10 Bruce Korb parse-duration: Relicense under LGPLv2+. * modules/parse-duration (License): Change to LGPLv2+. 2012-06-10 Jim Meyering maint.mk: prohibit common grammar error: "all these" * top/maint.mk (prohibit_undesirable_word_seq_RE_): Add "all these" to the list of prohibited word sequences. It should be "all of these". * lib/tempname.c (__gen_tempname): Fix one of them. 2012-06-07 Akim Demaille do-release-commit-and-tag: support VPATH builds * build-aux/do-release-commit-and-tag: Prefer $(...) to `...`. (noteworthy): Defined earlier to factor its value. (noteworthy_stub): New. Use it to factor. (help_version): Split into... (help, version): these. Adjust the option processing part. Support "--option=value" in addition to "--option value". (builddir): New. (--builddir): New option. * top/README-release: Document this. Reword slightly so that the reader cannot understand that he has to do these steps before calling do-release-commit-and-tag. 2012-06-07 Akim Demaille readme-release: also require announce-gen and maintainer-makefile * modules/readme-release (Depends-on): here. * modules/announce-gen, modules/do-release-commit-and-tag, modules/gnu-web-doc-update, modules/maintainer-makefile (Description): Point to readme-release. 2012-06-07 Akim Demaille maint.mk: fix VPATH issues. * top/maint.mk (news-check): GNU Make understand $< very well. (release-prep): NEWS is in $(srcdir). 2012-06-05 Akim Demaille readme-release: require the promoted modules. * modules/readme-release (Depends-on): Add do-release-commit-and-tag, gnupload, and gnu-web-doc-update, used in this text. 2012-05-21 Paolo Bonzini Bruno Haible error, strerror-override: Support mingw64 from Fedora 17. * lib/errno.in.h (GNULIB_defined_ESTREAMS): Use a different indicator for ETXTBSY, ENODATA, ENOSR, ENOSTR, ETIME, EOTHER, compared to EINPROGRESS. * lib/strerror-override.h (strerror_override): Test it. * lib/strerror-override.c (strerror_override): Likewise. * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Test also ETXTBSY. 2012-05-21 Paolo Bonzini Bruno Haible error, strerror-override: Support mingw64 from Fedora 17. * lib/errno.in.h (GNULIB_defined_ENOTRECOVERABLE): Use a different indicator for ENOTRECOVERABLE, compared to EOWNERDEAD. * lib/strerror-override.h (strerror_override): Test it. * lib/strerror-override.c (strerror_override): Likewise. 2012-06-03 Bruno Haible error, strerror-override: Support new errno values from POSIX:2008. * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Test also EOWNERDEAD and ENOTRECOVERABLE. * lib/errno.in.h (EOWNERDEAD, ENOTRECOVERABLE): Define on all platforms. * lib/strerror-override.c (strerror_override): Conditionalize the EOWNERDEAD, ENOTRECOVERABLE handling on GNULIB_defined_EOWNERDEAD. * lib/strerror-override.h (strerror_override): Declare also if GNULIB_defined_EOWNERDEAD is defined. * tests/test-errno.c (e130, e131): New variables. * doc/posix-headers/errno.texi: Mention the status for EOWNERDEAD, ENOTRECOVERABLE. Reported by Paolo Bonzini. 2012-05-31 Jim Meyering savewd: add missing dependency on sys_wait module * modules/savewd (Depends-on): Add sys_wait, needed at least for MSVC. Report and suggested change by Michael Goffioul. 2012-05-29 Paul Eggert system-quote-tests: port to CentOS 5 Problem reported by Tom G. Christensen in . * tests/test-system-quote-child.c (fclose, fprintf): Undef. 2012-05-29 Jim Meyering maint: fix typos in comments and ChangeLog Culprits identified and fixed mostly automatically using these commands: git ls-files | misspellings -f - |grep -v '^ERROR:' |perl -pe \ 's/^(.*?)\[(\d+)\]: (\w+) -> "(.*?)"$/sed -i '\''${2}s!$3!$4!'\'' $1/' using http://github.com/lyda/misspell-check * ChangeLog: Fix typos. * doc/solaris-versions: Likewise. * lib/regexec.c (re_search_stub): Likewise. * m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Likewise. 2012-05-27 Paul Eggert manywarnings: remove duplicate -Wmultichar entry * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Remove duplicate entry for -Wmultichar. -Wno-multichar is in the GCC 4.7.0 manual, so keep the entry marked as documented. 2012-05-27 Karl Berry * config/srclist.txt (mktime.c): remove last libc sync, perhaps just temporarily. 2012-05-26 Paul Eggert regex: don't assume uint64_t or uint32_t * lib/regcomp.c (init_word_char): Don't assume that the types uint64_t and uint32_t exist. The C standard doesn't guarantee them, and on some 32-bit compilers there is no uint64_t. Problem reported by Gianluigi Tiesi in . 2012-05-25 Jim Meyering maint.mk: add strncpy-prohibiting syntax-check rule * top/maint.mk (sc_prohibit_strncpy): New rule, from coreutils. 2012-05-24 Jim Meyering maint.mk: compute $(gpg_key_ID) more portably * top/maint.mk (gpg_key_ID): Use awk in place of sed '{...;...;}'. That use of sed is not portable to some fringe systems. Reported by Paul Eggert in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/30793/focus=30802 2012-05-23 Paul Eggert mktime: sync from glibc * config/srclist.txt: Uncomment mktime.c. * lib/mktime.c: Sync from glibc master. This incorporates 3 changes. First, indent with tabs, since glibc uses tabs and doesn't want to change and we'd rather be identical to glibc. Also, two small coding changes: (isdst_differ): Use &&, not &, as && is the usual style. (__mktime_internal): Rename local var from abs_diff to approx_abs_diff for clarity. 2012-05-23 Akim Demaille announce-gen: du -h is more portable than du --human * build-aux/announce-gen (sizes): Invoke du with -h instead of --human. Accept leading white space in its output. 2012-05-23 Akim Demaille announce-gen: Improve diagnostics. * build-aux/announce-gen: When parsing command line options, prefer "announce-gen: option --release-type requires an argument" to "Option release-type requires an argument". 2012-05-23 Akim Demaille maint.mk: gpg_key_ID: use sed more portably * top/maint.mk (gpg_key_ID): End sed block with a semicolon before the closing brace. (refresh-po): Fuse two sed invocations into one. 2012-05-15 Akim Demaille gitlog-to-changelog: support the log message format used in Bison. * build-aux/gitlog-to-changelog: Support --strip-tab and --strip-cherry-picked. 2012-05-21 Paolo Bonzini poll/select: prevent busy-waiting. SwitchToThread() only gives away the rest of the current time slice to another thread in the current process. So if the thread that feeds the file decscriptor we're polling is not in the current process, we get busy-waiting. * lib/poll.c: Use SleepEx(1, TRUE) instead of SwitchToThread(). Patch from Theodore Leblond. * lib/select.c: Split polling out of the loop that sets the output fd_sets. Check for zero result and loop if the wait timeout is infinite. 2012-05-21 Simon Josefsson select: Fix build error on IRIX 6.5. * lib/select.c: Include stddef.h for NULL. 2012-05-21 Simon Josefsson gc: fix libgcrypt detection on older machines. * m4/gc.m4: Reject libgcrypt earlier than 1.4.4. Collapse copyright years because the file has been distributed every year since it was created. 2012-05-18 Paul Eggert crypto: fix bug in large buffer handling Problem reported by Serge Belyshev for glibc in and for gnulib in . * lib/md4.c (md4_process_block): * lib/md5.c (md5_process_block): * lib/sha1.c (sha1_process_block): * lib/sha256.c (sha256_process_block): Don't assume the buffer length is less than 2**32. * lib/sha512.c (sha512_process_block): Likewise. Here, the bug is present only in the rare case where the host does not support uint64_t or where size_t is wider than 64 bits. Use u64size to work around the problems. * lib/u64.h (u64size): New macro. 2012-05-15 Pádraig Brady fsusage: fix block size returned on older Linux 2.6 * lib/fsusage.c: Fall back to (struct statfs).f_frsize which is available since Linux 2.6. * m4/fsusage.m4 (STAT_STATFS2_FRSIZE): Always define when the member is available so it can be used as a fallback. * doc/posix-functions/statvfs.texi: Mention the hang issue on Linux < 2.6.36. 2012-05-14 Paul Eggert bootstrap: suppress stderr chatter * build-aux/bootstrap (insert_sorted_if_absent, main program): Omit unnecessary chatter to stderr. The main program chatter was there only inadvertantly. bootstrap: .gitignore files created by autopoint, libtool I ran into this problem when bootstrapping the latest diffutils. After './bootstrap', 'git status' reported lots of untracked files m4/codeset.m4, m4/gettext.m4, etc. These files were created by autopoint and do not need to be version-controlled. * build-aux/bootstrap: Put into .gitignore the files that autopoint and libtool create, by keeping track of files that exist after but not before these programs are run. (version_controlled_file): Move up. 2nd arg is now full file name, not base name; this is more convenient. Put CVS at the end, as it's now somewhat deprecated. 2012-05-14 Jim Meyering ignore-value.h: remove unused _GL_ATTRIBUTE_DEPRECATED definition * lib/ignore-value.h (_GL_ATTRIBUTE_DEPRECATED): Remove now-unused definition. Reported by Bruno Haible. 2012-05-13 Bruno Haible Paul Eggert binary-io: Define set_binary_mode function. * lib/binary-io.h (set_binary_mode): New function. (SET_BINARY): Define in terms of set_binary_mode. * modules/binary-io (configure.ac): Require AC_C_INLINE. * tests/test-binary-io.c (main): Accept an argument, and test either set_binary_mode or SET_BINARY depending on the argument. * tests/test-binary-io.sh: Invoke test-binary-io twice, with an argument. Clean up also t-bin-out0.tmp. 2012-05-13 Stefano Lattarini bootstrap: take advantage of POSIX shell features The 'bootstrap' script offered by Gnulib script already uses POSIX shell features (like $((...)) arithmetic expansions) that are not supported by legacy Bourne shells like Solaris 10 /bin/sh. This means that bootstrap must already be run using a proper POSIX shell, which will thus provide more features, like ${var#pattern} parameter expansion or inversion of a command exit status with '!'. We can thus use these features to improve the clarity and the performances of the bootstrap script. Suggested by Eric Blake. * build-aux/bootstrap: Prefer xpg4 parameter expansions over use of sed/expr plus command substitutions, to save some forks. While we are at it, prefer the POSIX $(...) form of command substitution, rather than the legacy form `...` (since the former is visually clearer and interacts better with quoting), and prefer the idiom: "if ! CMD; then ACTION ..." over the idiom: "if CMD; then :; else ACTION ..." which was required by legacy Bourne shells not supporting '!'. 2012-05-12 Bruno Haible system-quote: Add more comments. * lib/system-quote.h: Add more comments about wilcards and limitations. Suggested by Eli Zaretskii . sh-quote, system-quote: Add comments about wildcards. * lib/sh-quote.h: Clarify what happens with wildcard characters. * lib/system-quote.h: Likewise. Reported by Eli Zaretskii . 2012-05-11 Paul Eggert fsusage: check for GNU/Linux statvfs problem dynamically * lib/fsusage.c [STAT_STATVFS && __linux__ && (__GLIBC__||__UCLIBC__)]: Define STAT_STATFS2_BSIZE too, since in this case the code now checks dynamically whether statvfs is reliable, falling back on Linux-style statfs otherwise. (statvfs_works): New function, for dynamically testing statvfs. (get_fs_usage) [STAT_STATVFS]: Use it. * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Remove static check for statvfs on GNU/Linux hosts, since it's now done dynamically. 2012-05-10 Bruno Haible system-quote, execute, spawn-pipe: Escape '?' on Windows. * lib/system-quote.c (SHELL_SPECIAL_CHARS, CMD_SPECIAL_CHARS): Add the '?' character. * lib/w32spawn.h (SHELL_SPECIAL_CHARS): Likewise. * tests/test-system-quote-main.c (check_all): Check also strings like "??????????". Reported by Eli Zaretskii . 2012-05-10 Paul Eggert _Noreturn: port config.h to gcc -Wundef * m4/gnulib-common.m4 (gl_COMMON_BODY): Check that __STDC_VERSION__ is defined before using it, for gcc -Wundef. Reported by Akim Demaille in . 2012-05-10 Bruno Haible system-quote: Refactor. * lib/system-quote.h (system_quote_copy): Fix comment. * lib/system-quote.c (windows_createprocess_quote, windows_cmd_quote): New functions, extracted from system_quote_copy. (system_quote_length, system_quote_copy): Use these functions. Reported by Paul Eggert. 2012-05-08 Bruno Haible execute, spawn-pipe: Escape '*' characters in arguments on Windows. * lib/w32spawn.h (SHELL_SPECIAL_CHARS): Add the '*' character. 2012-05-08 Bruno Haible Tests for module 'system-quote'. * modules/system-quote-tests: New file. * tests/test-system-quote.sh: New file. * tests/test-system-quote-main.c: New file. * tests/test-system-quote-child.c: New file. New module 'system-quote'. * lib/system-quote.h: New file. * lib/system-quote.c: New file. * modules/system-quote: New file. 2012-05-08 Bruno Haible sh-quote: Make C++ safe and allow multiple inclusion. * lib/sh-quote.h: Add double-inclusion guard. For C++, wrap function declarations in extern "C". 2012-05-08 Bruno Haible sh-quote tests: Make tests stricter. * tests/test-sh-quote.c (check_one): Check the return value of shell_quote_copy. (main): Check a string with a CR character. Check a string that contains UCHAR_MAX. 2012-05-08 Akim Demaille warnings.m4: provide a means to specify the program to compile. * m4/warnings.m4 (gl_COMPILER_OPTION_IF): New, extracted from... (gl_WARN_ADD): here. Use gl_AS_VAR_APPEND. Support an argument to specify the program to compile. (gl_WARN_ADD): Accept an argument to specify the program to compile. AC_SUBST the WARN_CFLAGS when they are used. * modules/warnings (configure.ac): Don't AC_SUBST WARN_CFLAGS, leave this to gl_WARN_ADD. 2012-05-08 Eric Blake doc: recommendations on gettext version * doc/gnulib-tool.texi (gettextize and autopoint): Document the choice between versions. * DEPENDENCIES (gettext): Cover both approaches. 2012-05-08 Jim Meyering init.sh: explain why EXEEXT support uses aliases rather than functions * tests/init.sh: Add a comment. init.sh: don't let bash aliases interfere with tests * tests/init.sh: Undefine any pre-defined aliases if the selected shell is bash. This avoids problems for those who alias standard commands to non-conforming uses, like those reported in http://bugs.gnu.org/11256. Suggested by Tim Mooney . 2012-05-07 Paul Eggert stdint: be more consistent with glibc, SunOS libc * lib/stdint.in.h (gl_int_fast8_t, gl_uint_fast8_t) (gl_int_fast16_t, gl_uint_fast16_t) (gl_int_fast32_t, gl_uint_fast32_t) (INT_FAST8_MIN, INT_FAST8_MAX, UINT_FAST8_MAX) (INT_FAST16_MIN, INT_FAST16_MAX, UINT_FAST16_MAX) (INT_FAST32_MIN, INT_FAST32_MAX, UINT_FAST32_MAX): Be consistent with glibc by default, and with SunOS 5.10 and later if __sun is defined. This lessens the likelihood of clashes if code compiled for older hosts is combined with code compiled for newer ones. Problem reported by Niels Möller in . 2012-05-07 Eric Blake isatty: relax license to LGPLv2+ * modules/isatty (License): Relax license. 2012-05-06 Paul Eggert stat-size: comment fix * lib/stat-size.h: Remove obsolete comment about indenting. 2012-05-06 Bruno Haible Tests for module 'sh-quote'. * modules/sh-quote-tests: New file. * tests/test-sh-quote.c: New file. 2012-05-06 Bruno Haible sh-quote: Improve shell_quote_argv's signature. * lib/sh-quote.h (shell_quote_argv): Make argument array a 'const *'. * lib/sh-quote.c (shell_quote_argv): Likewise. 2012-05-06 Paul Eggert stdint: document issues with int_fast8_t etc. * doc/posix-headers/stdint.texi (stdint.h): Say that other stdint.h substitutes may define these types differently. See . 2012-05-05 Bruno Haible nanosleep: Avoid guessing wrong when cross-compiling to Linux. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Require AC_CANONICAL_HOST. When cross-compiling, set gl_cv_func_nanosleep to either 'guessing no' or 'guessing no (mishandles large arguments)'. 2012-05-05 Bruno Haible link-follow: Avoid guessing wrong when cross-compiling to glibc/Linux. * m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK): Require AC_CANONICAL_HOST. When cross-compiling to a glibc/Linux platform, set gl_cv_func_link_follows_symlink to "guessing no". 2012-05-05 Bruno Haible tzset: Avoid guessing wrong when cross-compiling to glibc systems. * m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): Require AC_CANONICAL_HOST. When cross-compiling to a glibc platform, set gl_cv_func_tzset_clobber to "guessing no". * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): Update. 2012-05-05 Bruno Haible d-ino: Avoid guessing "no" when cross-compiling to glibc/Linux systems. * m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Require AC_CANONICAL_HOST. When cross-compiling to a glibc/Linux platform, set gl_cv_struct_dirent_d_ino to "guessing yes". 2012-05-05 Bruno Haible fseeko-tests, ftello-tests: Avoid "guessing no" when cross-compiling. * m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): Require AC_CANONICAL_HOST. When cross-compiling to a glibc platform, set gl_cv_func_ungetc_works to "guessing yes". 2012-05-05 Bruno Haible signbit: Avoid "guessing no" when cross-compiling to glibc systems. * m4/signbit.m4 (gl_SIGNBIT): Require AC_CANONICAL_HOST. When cross- compiling to a glibc system, set gl_cv_func_signbit and gl_cv_func_signbit_gcc to "guessing yes". 2012-05-05 Bruno Haible strerror: Avoid "guessing no" when cross-compiling to glibc systems. * m4/strerror.m4 (gl_FUNC_STRERROR): Require AC_CANONICAL_HOST. When cross-compiling to a glibc platform, set gl_cv_func_working_strerror to "guessing yes". (gl_FUNC_STRERROR_0): Require AC_CANONICAL_HOST. When cross-compiling to a glibc platform, set gl_cv_func_strerror_0_works to "guessing yes". 2012-05-05 Bruno Haible canonicalize[-lgpl]: Avoid "guessing no" when cross-compiling to glibc. * m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Require AC_CANONICAL_HOST. When cross-compiling to a glibc system, set gl_cv_func_realpath_works to "guessing yes". 2012-05-05 Bruno Haible gettimeofday: Avoid bad guess when cross-compiling to glibc systems. * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY_CLOBBER): Require AC_CANONICAL_HOST. When cross-compiling, guess no on glibc platforms. 2012-05-04 Bruno Haible Tweak last commit. * m4/off_t.m4 (gl_TYPE_OFF_T): Tweak comments. * m4/unistd_h.m4 (gl_UNISTD_H): Likewise. 2012-05-04 Paul Eggert unistd_h: make it easier to avoid sys_types_h This is useful for Emacs, which has its own method of porting to Windows, and which therefore does not need the sys_types_h module. * m4/off_t.m4: New file, defining gl_TYPE_OFF_T, which contains code moved here from gl_SYS_TYPES_H. * m4/sys_types_h.m4 (gl_SYS_TYPES_H): Require it instead of using the code directly. * m4/unistd_h.m4 (gl_UNISTD_H): Require gl_TYPE_OFF_T, not gl_SYS_TYPES_H. * modules/sys_types (Files): * modules/unistd (Files): Add m4/off_t.m4. 2012-05-03 Bruno Haible lstat: Avoid "guessing no" when cross-compiling to glibc systems. * m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): When cross- compiling, set gl_cv_func_lstat_dereferences_slashed_symlink to "guessing yes" or "guessing no". (gl_FUNC_LSTAT): Update. * m4/fstatat.m4 (gl_FUNC_FSTATAT): Update. * m4/openat.m4 (gl_FUNC_OPENAT): Update. * m4/unlinkat.m4 (gl_FUNC_UNLINKAT): Update. 2012-05-03 Bruno Haible *alloc-gnu, eealloc: Avoid "guessing no" when cross-compiling to glibc. * m4/malloc.m4 (_AC_FUNC_MALLOC_IF): Override in autoconf < 2.70. * m4/realloc.m4 (_AC_FUNC_REALLOC_IF): Override in autoconf < 2.70. * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Require AC_CANONICAL_HOST. When cross-compiling, choose the first alternative on glibc systems. * modules/eealloc (Files): Add m4/malloc.m4, m4/realloc.m4. 2012-05-03 Bruno Haible getgroups: Avoid "guessing no" when cross-compiling to glibc systems. * m4/getgroups.m4 (AC_FUNC_GETGROUPS): Override in autoconf < 2.70. (gl_FUNC_GETGROUPS): Adapt to change of ac_cv_func_getgroups_works. 2012-05-03 Bruno Haible chown: Avoid "guessing no" when cross-compiling to glibc systems. * m4/chown.m4 (AC_FUNC_CHOWN): Override in autoconf < 2.70. 2012-05-03 Bruno Haible Avoid "guessing no" guesses when cross-compiling to glibc systems. * m4/cbrtl.m4 (gl_FUNC_CBRTL): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_cbrtl_ieee to "guessing yes". * m4/ceil.m4 (gl_FUNC_CEIL): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_ceil_ieee to "guessing yes". * m4/ceilf.m4 (gl_FUNC_CEILF): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_ceilf_ieee to "guessing yes". * m4/ceill.m4 (gl_FUNC_CEILL): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_ceill_ieee to "guessing yes". * m4/chown.m4 (gl_FUNC_CHOWN): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_chown_slash_works, gl_cv_func_chown_ctime_works to "guessing yes". * m4/lchown.m4 (gl_FUNC_LCHOWN): Update. * m4/exp2l.m4 (gl_FUNC_EXP2L): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_exp2l_ieee to "guessing yes". * m4/expm1.m4 (gl_FUNC_EXPM1): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_expm1_ieee to "guessing yes". * m4/fchdir.m4 (gl_FUNC_FCHDIR): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_open_directory_works to "guessing yes". * m4/fstat.m4 (gl_FUNC_FSTAT): Update. * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Require AC_CANONICAL_HOST. When cross-compiling to glibc systems, set gl_cv_func_fdopendir_works to "guessing yes". * m4/floor.m4 (gl_FUNC_FLOOR): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_floor_ieee to "guessing yes". * m4/floorf.m4 (gl_FUNC_FLOORF): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_floorf_ieee to "guessing yes". * m4/fmod.m4 (gl_FUNC_FMOD): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_fmod_ieee to "guessing yes". * m4/fmodf.m4 (gl_FUNC_FMODF): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_fmodf_ieee to "guessing yes". * m4/fmodl.m4 (gl_FUNC_FMODL): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_fmodl_ieee to "guessing yes". * m4/getgroups.m4 (gl_FUNC_GETGROUPS): Require AC_CANONICAL_HOST. When cross-compiling to glibc systems, set gl_cv_func_getgroups_works to "guessing yes". * m4/hypot.m4 (gl_FUNC_HYPOT): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_hypot_ieee to "guessing yes". * m4/hypotf.m4 (gl_FUNC_HYPOTF): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_hypotf_ieee to "guessing yes". * m4/hypotl.m4 (gl_FUNC_HYPOTL): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_hypotl_ieee to "guessing yes". * m4/link.m4 (gl_FUNC_LINK): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_link_works to "guessing yes". * m4/log.m4 (gl_FUNC_LOG): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_log_ieee to "guessing yes". * m4/logf.m4 (gl_FUNC_LOGF): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_logf_ieee to "guessing yes". * m4/log10.m4 (gl_FUNC_LOG10): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_log10_ieee to "guessing yes". * m4/log10f.m4 (gl_FUNC_LOG10F): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_log10f_ieee to "guessing yes". * m4/log1p.m4 (gl_FUNC_LOG1P): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_log1p_ieee to "guessing yes". * m4/log1pf.m4 (gl_FUNC_LOG1PF): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_log1pf_ieee to "guessing yes". * m4/log1pl.m4 (gl_FUNC_LOG1PL): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_log1pl_ieee to "guessing yes". * m4/log2.m4 (gl_FUNC_LOG2): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_log2_ieee to "guessing yes". * m4/log2f.m4 (gl_FUNC_LOG2F): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_log2f_ieee to "guessing yes". * m4/mkdir.m4 (gl_FUNC_MKDIR): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_mkdir_trailing_slash_works, gl_cv_func_mkdir_trailing_dot_works to "guessing yes". * m4/mkfifo.m4 (gl_FUNC_MKFIFO): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_mkfifo_works to "guessing yes". * m4/mknod.m4 (gl_FUNC_MKNOD): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_mknod_works to "guessing yes". * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Require AC_CANONICAL_HOST. When cross-compiling to glibc systems, set gl_cv_func_working_mkstemp to "guessing yes". * m4/modf.m4 (gl_FUNC_MODF): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_modf_ieee to "guessing yes". * m4/modff.m4 (gl_FUNC_MODFF): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_modff_ieee to "guessing yes". * m4/modfl.m4 (gl_FUNC_MODFL): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_modfl_ieee to "guessing yes". * m4/putenv.m4 (gl_FUNC_PUTENV): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_svid_putenv to "guessing yes". * m4/readlink.m4 (gl_FUNC_READLINK): Require AC_CANONICAL_HOST. When cross-compiling to glibc systems, set gl_cv_func_readlink_works to "guessing yes". * m4/remainder.m4 (gl_FUNC_REMAINDER): Require AC_CANONICAL_HOST. When cross-compiling to glibc systems, set gl_cv_func_remainder_ieee to "guessing yes". * m4/remainderf.m4 (gl_FUNC_REMAINDERF): Require AC_CANONICAL_HOST. When cross-compiling to glibc systems, set gl_cv_func_remainderf_ieee to "guessing yes". * m4/remainderl.m4 (gl_FUNC_REMAINDERL): Require AC_CANONICAL_HOST. When cross-compiling to glibc systems, set gl_cv_func_remainderl_ieee to "guessing yes". * m4/rmdir.m4 (gl_FUNC_RMDIR): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_rmdir_works to "guessing yes". * m4/unlink.m4 (gl_FUNC_UNLINK): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_unlink_honors_slashes, gl_cv_func_unlink_parent_fails to "guessing yes". * m4/remove.m4 (gl_FUNC_REMOVE): Update. * m4/rename.m4 (gl_FUNC_RENAME): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_rename_slash_dst_works, gl_cv_func_rename_slash_src_works, gl_cv_func_rename_link_works, gl_cv_func_rename_dest_works to "guessing yes". * m4/round.m4 (gl_FUNC_ROUND): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_round_ieee to "guessing yes". * m4/roundf.m4 (gl_FUNC_ROUNDF): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_roundf_ieee to "guessing yes". * m4/roundl.m4 (gl_FUNC_ROUNDL): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_roundl_ieee to "guessing yes". * m4/setenv.m4 (gl_FUNC_SETENV): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_setenv_works to "guessing yes". (gl_FUNC_UNSETENV): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_unsetenv_works to "guessing yes". * m4/sleep.m4 (gl_FUNC_SLEEP): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_sleep_works to "guessing yes". * m4/stat.m4 (gl_FUNC_STAT): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_stat_file_slash to "guessing yes". * m4/symlink.m4 (gl_FUNC_SYMLINK): Require AC_CANONICAL_HOST. When cross-compiling to glibc systems, set gl_cv_func_symlink_works to "guessing yes". * m4/trunc.m4 (gl_FUNC_TRUNC): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_trunc_ieee to "guessing yes". * m4/truncf.m4 (gl_FUNC_TRUNCF): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_truncf_ieee to "guessing yes". * m4/truncl.m4 (gl_FUNC_TRUNCL): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_truncl_ieee to "guessing yes". * m4/usleep.m4 (gl_FUNC_USLEEP): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_usleep_works to "guessing yes". * m4/utimens.m4 (gl_UTIMENS): Require AC_CANONICAL_HOST. When cross- compiling to glibc systems, set gl_cv_func_futimesat_works to "guessing yes". 2012-05-03 Bruno Haible Say "guessing yes" or "guessing no" when cross-compiling. * m4/dup2.m4 (gl_FUNC_DUP2): When cross-compiling, set gl_cv_func_dup2_works to "guessing yes" or "guessing no". * m4/getdelim.m4 (gl_FUNC_GETDELIM): When cross-compiling, set gl_cv_func_working_getdelim to "guessing yes" or "guessing no". * m4/getline.m4 (gl_FUNC_GETLINE): When cross-compiling, set am_cv_func_working_getline to "guessing yes" or "guessing no". * m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): When cross-compiling, set gl_cv_func_memmem_works_always to "guessing yes" or "guessing no". (gl_FUNC_MEMMEM): When cross-compiling, set gl_cv_func_memmem_works_fast to "guessing yes" or "guessing no". * m4/stpncpy.m4 (gl_FUNC_STPNCPY): When cross-compiling, set gl_cv_func_stpncpy to "guessing yes" or "guessing no". * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): When cross-compiling, set gl_cv_func_strcasestr_works_always to "guessing yes" or "guessing no". (gl_FUNC_STRCASESTR): When cross-compiling, set gl_cv_func_strcasestr_linear to "guessing yes" or "guessing no". * m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE): When cross-compiling, set gl_cv_func_strstr_works_always to "guessing yes" or "guessing no". (gl_FUNC_STRSTR): When cross-compiling, set gl_cv_func_strstr_linear to "guessing yes" or "guessing no". * m4/strtod.m4 (gl_FUNC_STRTOD): When cross-compiling, set gl_cv_func_strtod_works to "guessing yes" or "guessing no". * m4/wctype_h.m4 (gl_WCTYPE_H): When cross-compiling, set gl_cv_func_iswcntrl_works to "guessing yes" or "guessing no". 2012-05-01 Bruno Haible relocatable-prog: Enable ELF ORIGIN trick also on GNU/kFreeBSD. * m4/relocatable.m4 (gl_RELOCATABLE_BODY): Treat kFreeBSD like Linux. * build-aux/reloc-ldflags: Likewise. Suggested by Steven Chamberlain . 2012-05-01 Bruno Haible gnulib-tool: Remove transitional code. * gnulib-tool: Don't warn about --import with 0 arguments any more. Reported by Dmitriy Selyutin . 2012-05-01 Bruno Haible getcwd: Fix misindentation. * m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Fix indentation. 2012-04-29 Paul Eggert exclude: process exclude and include directives in order This restores the pre-2009 behavior, and is part of a fix of a grep bug reported by Quentin Arce in . * lib/exclude.c (struct exclude): Remove 'tail' member. (new_exclude_segment): Prepend the new segment instead of appending. Return void, since that's now more convenient. (file_pattern_matches): Renamed from excluded_file_pattern_p. (file_name_matches): Renamed from excluded_file_name_p. (file_pattern_matches, file_name_matches): Return true if the pattern matches, not if it excludes. All callers changed. (excluded_file_name): Process the list in reverse order; since the list is now reversed this restores the pre-2009 behavior. (add_exclude): Adjust to new reversed-order list. Use local var rather than macro, for clarity. * tests/test-exclude7.sh: Adjust to corrected behavior. exclude: handle wildcards with FNM_NOESCAPE and with trailing \ * lib/exclude.c (unescape_pattern): Don't worry about unescaped [; it's not possible here. Handle the case of \ at end of pattern without dumping core. (add_exclude): Do not unescape the pattern if FNM_NOESCAPE is used. _Noreturn: future-proof non-GNU and non-MSVC compilers * build-aux/snippet/_Noreturn.h (_Noreturn): * m4/gnulib-common.m4 (gl_COMMON_BODY): Do not define _Noreturn if __STDC_VERSION__ indicates this is C11 or later. This is more likely to work with random future C compilers that are neither GNUish nor MSVCish. See Vincent Lefevre in . exclude: handle wildcards with FNM_EXTMATCH * lib/exclude.c (fnmatch_pattern_has_wildcards): Also treat '+(', '+@', '!(' as wildcards, if FNM_EXTMATCH. Make it clear in a comment that "has wildcards" really means "has or may have wildcards". Simplify by avoiding the need to call strcspn. 2012-04-29 Bruno Haible gnulib-tool: Fix list of authors. * gnulib-tool (func_version): Add Paul Eggert to list of authors. 2012-04-26 Stefano Lattarini bootstrap: support Automake-NG in $buildreq * bootstrap (check_versions): Handle automake and aclocal from Automake-NG specially. They can be specified as respectively the "automake-ng" and "aclocal-ng" requirements. 2012-04-25 Eric Blake bootstrap: only force latest Makefile.in.in for gettext module * build-aux/bootstrap (with_gettext): Only install latest Makefile.in.in for projects requesting bleeding edge gettext. 2012-04-22 Bruno Haible doc: Mention reason for replacement on glibc/Linux systems. * doc/posix-functions/dprintf.texi: Mention the problem with special 'long double' values. * doc/posix-functions/fprintf.texi: Likewise. * doc/posix-functions/printf.texi: Likewise. * doc/posix-functions/snprintf.texi: Likewise. * doc/posix-functions/sprintf.texi: Likewise. * doc/posix-functions/vdprintf.texi: Likewise. * doc/posix-functions/vfprintf.texi: Likewise. * doc/posix-functions/vprintf.texi: Likewise. * doc/posix-functions/vsnprintf.texi: Likewise. * doc/posix-functions/vsprintf.texi: Likewise. * doc/posix-functions/fcntl.texi: Add glibc/Linux to the list of platforms with F_DUPFD_CLOEXEC problems. * doc/posix-functions/glob.texi: Mention which platforms are affected by the problem with symbolic links. * doc/posix-functions/linkat.texi: Mention the problem with AT_SYMLINK_FOLLOW on Linux. 2012-04-22 Bruno Haible pwrite: Don't replace on all platforms. * m4/pwrite.m4 (gl_FUNC_PWRITE): Fix syntax error in test program. 2012-04-22 Bruno Haible rint* tests: Avoid gcc warnings. * tests/test-rint.c (INFINITY, NAN): Undefine before redefining. * tests/test-rintf.c (INFINITY, NAN): Likewise. * tests/test-rintl.c (INFINITY, NAN): Likewise. 2012-04-21 Bruno Haible users.txt: Update. * users.txt: Add freedink, wdiff. Update URLs for projects that have switched from CVS to git, bzr, or svn. 2012-04-21 Bruno Haible Large File Support for native Windows platforms. * m4/largefile.m4 (gl_LARGEFILE): New macro. * modules/largefile (configure.ac): Require gl_LARGEFILE. * lib/sys_types.in.h (off_t) [WINDOWS_64_BIT_OFF_T]: Define to a 64-bit type. * m4/sys_types_h.m4 (gl_SYS_TYPES_H): Set WINDOWS_64_BIT_OFF_T. * modules/sys_types (Makefile.am): Substitute WINDOWS_64_BIT_OFF_T. * doc/posix-headers/sys_types.texi: Mention the effect of the 'largefile' module. * lib/fcntl.in.h: Add comments about off_t. * modules/fcntl-h (Depends-on): Add sys_types. * lib/unistd.in.h [WINDOWS_64_BIT_OFF_T]: Include . (ftruncate): Replace it if REPLACE_FTRUNCATE is 1. * m4/unistd_h.m4 (gl_UNISTD_H): Require gl_SYS_TYPES_H. (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_FTRUNCATE. * modules/unistd (Depends-on): Add sys_types. (Makefile.am): Substitute WINDOWS_64_BIT_OFF_T, REPLACE_FTRUNCATE. * lib/lseek.c (rpl_lseek) [_GL_WINDOWS_64_BIT_OFF_T]: Use _lseeki64 instead of lseek. * m4/lseek.m4 (gl_FUNC_LSEEK): Require gl_SYS_TYPES_H. Set REPLACE_LSEEK if WINDOWS_64_BIT_OFF_T is 1. * modules/lseek (Depends-on): Add sys_types. * lib/ftruncate.c: Put under GPLv3+. Include , msvc-nothrow.h. (SetFileSize): New function. (ftruncate) [_GL_WINDOWS_64_BIT_OFF_T]: New implementation. * m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): Set REPLACE_FTRUNCATE on Windows if Large File Support is requested. * modules/ftruncate (configure.ac): Consider REPLACE_FTRUNCATE. (Depends-on): Add sys_types, msvc-nothrow. Update conditions. * lib/stdio.in.h: Add comments about off_t. * modules/stdio (Depends-on): Add sys_types. * lib/ftello.c [_GL_WINDOWS_64_BIT_OFF_T]: Use _ftelli64 or ftello64 instead of ftello. * m4/ftello.m4 (gl_FUNC_FTELLO): Require gl_SYS_TYPES_H. Set REPLACE_FTELLO if WINDOWS_64_BIT_OFF_T is 1. (gl_PREREQ_FTELLO): New macro. * modules/ftello (Depends-on): Add sys_types. (configure.ac): Incoke gl_PREREQ_FTELLO. * lib/fseeko.c [_GL_WINDOWS_64_BIT_OFF_T]: Use _fseeki64 or fseeko64 instead of fseeko. * m4/fseeko.m4 (gl_FUNC_FSEEKO): Require gl_SYS_TYPES_H. Set REPLACE_FSEEKO if WINDOWS_64_BIT_OFF_T is 1. (gl_PREREQ_FSEEKO): New macro. * modules/fseeko (Depends-on): Add sys_types. (configure.ac): Invoke gl_PREREQ_FSEEKO. * lib/sys_stat.in.h: Add comments about off_t. (stat, fstat) [WINDOWS_64_BIT_ST_SIZE]: Define to variants that use a 64-bit integer for st_size in 'struct stat'. * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Set WINDOWS_64_BIT_ST_SIZE. Define _GL_WINDOWS_64_BIT_ST_SIZE. * modules/sys_stat (Depends-on): Add sys_types. (Makefile.am): Substitute WINDOWS_64_BIT_ST_SIZE. * lib/stat.c (stat) [_GL_WINDOWS_64_BIT_ST_SIZE]: Define to _stati64 instead of stat or _stat. * lib/fstat.c [_GL_WINDOWS_64_BIT_ST_SIZE]: Use _fstati64 and 'struct _stati64' instead of fstat and 'struct stat'. * m4/fstat.m4 (gl_FUNC_FSTAT): Require gl_HEADER_SYS_STAT_H. Set REPLACE_FSTAT if WINDOWS_64_BIT_ST_SIZE is 1. Reported by Ray Satiro . 2012-04-19 Eric Blake bootstrap: accommodate older libtool * build-aux/bootstrap (use_libtool): Cater to libtool 1.5.22. Reported by Daniel P. Berrange. 2012-04-19 Jim Meyering announce-gen: avoid failure due to lack of Digest::SHA1 Even with the preferred Digest::SHA available, this script would fail when the backup module, Digest::SHA1, was not installed. * build-aux/announce-gen: Quote the conditional use of "use". Reported by Reuben Thomas in: http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/30444 bootstrap: don't let a user's CDPATH setting affect this script When CDPATH is set, cd will sometimes generate output. When "cd" is run in a subshell whose output matters, that surprising-to-some output can cause malfunction. Unsetting CDPATH turns off this shell "feature." * build-aux/bootstrap (CDPATH): Unset. Reported by Reuben Thomas in: http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/30435 and inspired by his patch here: http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/30440 2012-04-16 Akim Demaille and Jim Meyering maint.mk: catch "see @xref{}" and similar * top/maint.mk (prohibit_undesirable_word_seq_RE_): Also prohibit "See also @xref{", "Also see @pxref{", and similar. 2012-04-16 Jim Meyering bootstrap: really use gnulib's po/Makefile.in.in * build-aux/bootstrap: Correct the source file name in previous change. Reported by Akim Demaille. configmake: correct minor inconsistency in Makefile rule * modules/configmake (Makefile.am): All other rules like this one run the final "mv -f ..." in the same backslash-continued command as the one that does everything else. This one put the mv -f ... command on a separate, non-backslash-continued line. Make it like the others. bootstrap: use gnulib's po/Makefile.in.in, not the one from gettext * build-aux/bootstrap: Use gnulib's po/Makefile.in.in, not the one from gettext. Reported by Akim Demaille. 2012-04-16 Joel E. Denny Fix recursion of install-* into po directories. Bison's install-pdf bug reported by Hans Aberg at . * build-aux/po/Makefile.in.in (install-dvi, install-html) (install-info, install-pdf, install-ps): New targets. 2012-04-16 Jim Meyering maint: avoid spurious "make sc_maint" failure * cfg.mk (exclude_file_name_regexp--sc_trailing_blank): Also exempt all *.class file names, for lib/javaversion.class. 2012-04-15 Bruno Haible lseek: Make configure test independent of environment. * m4/lseek.m4 (gl_FUNC_LSEEK): Require AC_CANONICAL_HOST. On native Windows, we know that lseek() on pipes is broken; skip the runtime test. 2012-04-14 Bruno Haible stat: Bypass buggy override in mingw64. * m4/stat.m4 (gl_FUNC_STAT): Update comments. * lib/stat.c (stat) [mingw64]: Define to _stat. * doc/posix-functions/stat.texi: Mention mingw64 bug. 2012-04-14 Bruno Haible pathmax: Fix compilation error on MSVC 9. * modules/pathmax (Depends-on): Add unistd. 2012-04-12 Paul Eggert README: document pointer comparison assumption * README (Portability guidelines): Document assumption about pointer comparisons, in response to a recent bug-gnulib comment by Jeffrey Kegler. 2012-04-12 Bruno Haible Tests for module 'getrusage'. * modules/getrusage-tests: New file. * tests/test-getrusage.c: New file. New module 'getrusage'. * lib/sys_resource.in.h: Include arg-nonnull.h, c++defs.h, warn-on-use.h. (getrusage): New declaration. * lib/getrusage.c: New file. * m4/getrusage.m4: New file. * m4/sys_resource_h.m4 (gl_HEADER_SYS_RESOURCE): Test whether getrusage is declared. (gl_SYS_RESOURCE_H_DEFAULTS): Initialize GNULIB_GETRUSAGE, HAVE_GETRUSAGE. * modules/sys_resource (Depends-on): Add snippet/arg-nonnull, snippet/c++defs, snippet/warn-on-use. (Makefile.am): Update generation of sys/resource.h. Substitute GNULIB_GETRUSAGE, HAVE_GETRUSAGE. * modules/getrusage: New file. * doc/posix-functions/getrusage.texi: Mention the new module. 2012-04-12 Bruno Haible Tests for module 'sys_resource'. * modules/sys_resource-tests: New file. * tests/test-sys_resource.c: New file. New module 'sys_resource'. * lib/sys_resource.in.h: New file. * m4/sys_resource_h.m4: New file. * modules/sys_resource: New file. * doc/posix-headers/sys_resource.texi: Mention the new module. 2012-04-12 LRN (tiny change) ioctl: Fix compilation error on mingw. * lib/ioctl.c: Include . Also reported by Ray Satiro . 2012-04-04 Jim Meyering regex: correct #pragma guard expression * lib/regex.c: -Wsuggest-attribute=pure was introduced in gcc-4.6, not 4.3. Correct its cpp guard expression. 2012-04-04 Paul Eggert regex: remove unnecessary type punning Problem reported by Vladimir Serbinenko in . * lib/regex.h (struct re_pattern_buffer): Change the type of __REPB_PREFIX(buffer) from unsigned char * to struct re_dfa_t *. Fix comment to match code. * lib/regcomp.c (re_compile_fastmap, re_compile_fastmap_iter, regfree) (re_compile_internal, free_workarea_compile, analyze, lower_subexp) (parse, parse_reg_exp, parse_branch, parse_expression, parse_sub_exp): * lib/regexec.c (regexec, re_search_stub, re_search_internal) (set_regs): Omit no-longer-necessary casts. 2012-04-03 Bruno Haible Tests for module 'ilogbl'. * modules/ilogbl-tests: New file. * tests/test-ilogbl.c: New file. New module 'ilogbl'. * lib/math.in.h (ilogbl): New declaration. * lib/ilogbl.c: New file. * m4/ilogbl.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether ilogbl is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_ILOGBL, HAVE_ILOGBL. * modules/math (Makefile.am): Substitute GNULIB_ILOGBL, HAVE_ILOGBL. Split sed invocation, to avoid the limit of 100 substitutions of HP-UX 'sed'. * modules/ilogbl: New file. * tests/test-math-c++.cc: Check the declaration of ilogbl. * doc/posix-functions/ilogbl.texi: Mention the new module. 2012-04-03 Bruno Haible Tests for module 'ilogbf'. * modules/ilogbf-tests: New file. * tests/test-ilogbf.c: New file. New module 'ilogbf'. * lib/math.in.h (ilogbf): New declaration. * lib/ilogbf.c: New file. * m4/ilogbf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether ilogbf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_ILOGBF, HAVE_ILOGBF, REPLACE_ILOGBF. * modules/math (Makefile.am): Substitute GNULIB_ILOGBF, HAVE_ILOGBF, REPLACE_ILOGBF. * modules/ilogbf: New file. * tests/test-math-c++.cc: Check the declaration of ilogbf. * doc/posix-functions/ilogbf.texi: Mention the new module. 2012-04-03 Bruno Haible Tests for module 'ilogb'. * modules/ilogb-tests: New file. * tests/test-ilogb.c: New file. * tests/test-ilogb.h: New file, based on tests/test-logb.h and tests/test-logb-ieee.h. New module 'ilogb'. * lib/math.in.h (ilogb): New declaration. * lib/ilogb.c: New file. * m4/ilogb.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether ilogb is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_ILOGB, HAVE_ILOGB, REPLACE_ILOGB. * modules/math (Makefile.am): Substitute GNULIB_ILOGB, HAVE_ILOGB, REPLACE_ILOGB. * modules/ilogb: New file. * tests/test-math-c++.cc: Check the declaration of ilogb. * doc/posix-functions/ilogb.texi: Mention the new module. 2012-04-03 Bruno Haible math: Provide FP_ILOGB0 and FP_ILOGBNAN. * lib/math.in.h (FP_ILOGB0, FP_ILOGBNAN): Define fallback. * tests/test-math.c: Check that FP_ILOGB0, FP_ILOGBNAN are defined. (main): Check their values. * doc/posix-headers/math.texi: Mention the FP_ILOGB0, FP_ILOGBNAN problem. 2012-04-03 Bruno Haible Tests for module 'logbl-ieee'. * modules/logbl-ieee-tests: New file. * tests/test-logbl-ieee.c: New file. New module 'logbl-ieee'. * modules/logbl-ieee: New file. Tests for module 'logb-ieee'. * modules/logb-ieee-tests: New file. * tests/test-logb-ieee.c: New file. New module 'logb-ieee'. * modules/logb-ieee: New file. Tests for module 'logbf-ieee'. * modules/logbf-ieee-tests: New file. * tests/test-logbf-ieee.c: New file. * tests/test-logb-ieee.h: New file. New module 'logbf-ieee'. * modules/logbf-ieee: New file. 2012-04-03 Bruno Haible Tests for module 'logbl'. * modules/logbl-tests: New file. * tests/test-logbl.c: New file. New module 'logbl'. * lib/math.in.h (logbl): New declaration. * lib/logbl.c: New file. * m4/logbl.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether logbl is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_LOGBL, HAVE_LOGBL, REPLACE_LOGBL. * modules/math (Makefile.am): Substitute GNULIB_LOGBL, HAVE_LOGBL, REPLACE_LOGBL. * modules/logbl: New file. * tests/test-math-c++.cc: Check the declaration of logbl. * doc/posix-functions/logbl.texi: Mention the new module. 2012-04-02 Bruno Haible Tests for module 'logbf'. * modules/logbf-tests: New file. * tests/test-logbf.c: New file. New module 'logbf'. * lib/math.in.h (logbf): New declaration. * lib/logbf.c: New file. * m4/logbf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether logbf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_LOGBF, HAVE_LOGBF, REPLACE_LOGBF. * modules/math (Makefile.am): Substitute GNULIB_LOGBF, HAVE_LOGBF, REPLACE_LOGBF. * modules/logbf: New file. * tests/test-math-c++.cc: Check the declaration of logbf. * doc/posix-functions/logbf.texi: Mention the new module. 2012-04-02 Bruno Haible logb tests: More tests. * tests/test-logb.h: New file, based on tests/test-logb.c and tests/test-frexp.h. * tests/test-logb.c: Include minus-zero.h, test-logb.h. (main): Just invoke test_function. * modules/logb-tests (Files): Add tests/test-logb.h, tests/minus-zero.h, tests/randomd.c. (Makefile.am): Add randomd.c to test_logb_SOURCES. logb: Provide replacement and workarounds. * lib/math.in.h (logb): Ensure declaration. Replace if REPLACE_LOGB is 1. * lib/logb.c: New file. * m4/logb.m4 (gl_FUNC_LOGB_WORKS): New macro. (gl_FUNC_LOGB): Invoke it. Set HAVE_LOGB, REPLACE_LOGB. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOGB. * modules/math (Makefile.am): Substitute REPLACE_LOGB. * modules/logb (Files): Add lib/logb.c. (Depends-on): Add isfinite, frexp, isnand. (configure.ac): Compile the replacement code logb.c if needed. * tests/test-math-c++.cc: Check the declaration of logb. * doc/posix-functions/logb.texi: Mention the replacement and the bug with subnormal numbers. 2012-04-02 Bruno Haible log10* tests: Speed up. * tests/test-log10.h (test_function): Reduce amount of random numbers to test. 2012-04-01 Bruno Haible logf-ieee: Fix test whether logf works. * m4/logf.m4 (gl_FUNC_LOGF): Fix typo in test program. 2012-04-01 Bruno Haible log10l: Work around log10l-ieee test failure on IRIX 6.5. * lib/log10l.c: Include (log10l): On IRIX, normalize the +Infinity value. * modules/log10l (Depends-on): Add 'float'. * doc/posix-functions/log10l.texi: Mention the IRIX problem with +Infinity. log10f-ieee: Work around test failure on NetBSD 5.1. * m4/log10f-ieee.m4: New file. * m4/log10f.m4 (gl_FUNC_LOG10F): If gl_FUNC_LOG10F_IEEE is present, test whether log10f works with a negative argument. Replace it if not. * lib/log10f.c (log10f): For negative arguments, return NaN. * modules/log10f-ieee (Files): Add m4/log10f-ieee.m4. (configure.ac): Invoke gl_FUNC_LOG10F_IEEE. * doc/posix-functions/log10f.texi: Mention the log10f-ieee module. log10f-ieee: Work around test failure on Solaris 9. * modules/log10f-ieee (Depends-on): Add log10-ieee. (configure.ac): Require gl_FUNC_LOG10F. log10-ieee: Work around test failure on NetBSD 5.1 and Solaris 11. * m4/log10-ieee.m4: New file. * m4/log10.m4 (gl_FUNC_LOG10): If gl_FUNC_LOG10_IEEE is present, test whether log10 works with a negative argument. Replace it if not. * lib/log10.c (log10): For negative arguments, return NaN. * modules/log10-ieee (Files): Add m4/log10-ieee.m4. (configure.ac): Invoke gl_FUNC_LOG10_IEEE. * doc/posix-functions/log10.texi: Mention the log10-ieee module. Tests for module 'log10l-ieee'. * modules/log10l-ieee-tests: New file. * tests/test-log10l-ieee.c: New file. New module 'log10l-ieee'. * modules/log10l-ieee: New file. Tests for module 'log10-ieee'. * modules/log10-ieee-tests: New file. * tests/test-log10-ieee.c: New file. New module 'log10-ieee'. * modules/log10-ieee: New file. Tests for module 'log10f-ieee'. * modules/log10f-ieee-tests: New file. * tests/test-log10f-ieee.c: New file. * tests/test-log10-ieee.h: New file. New module 'log10f-ieee'. * modules/log10f-ieee: New file. 2012-04-01 Bruno Haible log10l: Work around AIX 5.1, IRIX 6.5, OSF/1 5.1 bug. * lib/math.in.h (log10l): Override if REPLACE_LOG10L is 1. * lib/log10l.c (log10l): If log10l exists, use it and provide just the workaround. * m4/log10l.m4 (gl_FUNC_LOG10L_WORKS): New macro. (gl_FUNC_LOG10L): Invoke it. Set REPLACE_LOG10L. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOG10L. * modules/math (Makefile.am): Substitute REPLACE_LOG10L. * modules/log10l (configure.ac): Consider REPLACE_LOG10L. (Depends-on): Update conditions. * doc/posix-functions/log10l.texi: Mention the MSVC9, AIX 5.1, IRIX 6.5, OSF/1 5.1 problems. 2012-04-01 Bruno Haible log10f: Work around OSF/1 5.1 bug. * lib/math.in.h (log10f): Override if REPLACE_LOG10F is 1. * lib/log10f.c (log10f): If logf exists, use it and provide just the workaround. * m4/log10f.m4 (gl_FUNC_LOG10F_WORKS): New macro. (gl_FUNC_LOG10F): Invoke it. Set REPLACE_LOG10F. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOG10F. * modules/math (Makefile.am): Substitute REPLACE_LOG10F. * modules/log10f (configure.ac): Consider REPLACE_LOG10F. (Depends-on): Update conditions. * doc/posix-functions/log10f.texi: Mention the OSF/1 5.1 problem. 2012-04-01 Bruno Haible log10: Work around OSF/1 5.1 bug. * lib/math.in.h (log10): New declaration. * lib/log10.c: New file. * m4/log10.m4 (gl_FUNC_LOG10_WORKS): New macro. (gl_FUNC_LOG10): Invoke it. Set REPLACE_LOG10. * m4/math_h.m4 (gl_MATH_H): Test whether log10 is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG10, REPLACE_LOG10. * modules/math (Makefile.am): Substitute GNULIB_LOG10, REPLACE_LOG10. * modules/log10 (Files): Add lib/log10.c. (Depends-on): Add math. (configure.ac): If REPLACE_LOG10 is 1, compile an override. * tests/test-math-c++.cc: Check the declaration of log10. * doc/posix-functions/log10.texi: Mention the OSF/1 5.1 problem. 2012-03-31 Bruno Haible log10l tests: More tests. * modules/log10l-tests (Files): Add tests/test-log10l.h, tests/minus-zero.h, tests/randoml.c. (Makefile.am): Add randoml.c to test_log10l_SOURCES. * tests/test-log10l.c: Include , minus-zero.h, test-log10l.h. (main): Invoke test_function. log10f tests: More tests. * modules/log10f-tests (Files): Add tests/test-log10.h, tests/minus-zero.h, tests/randomf.c. (Makefile.am): Add randomf.c to test_log10f_SOURCES. * tests/test-log10f.c: Include , minus-zero.h, test-log10.h. (main): Invoke test_function. log10 tests: More tests. * tests/test-log10.h: New file. * modules/log10-tests (Files): Add tests/test-log10.h, tests/minus-zero.h, tests/randomd.c. (Makefile.am): Add randomd.c to test_log10_SOURCES. * tests/test-log10.c: Include , minus-zero.h, test-log10.h. (main): Invoke test_function. 2012-03-31 Simon Josefsson fflush: Fix syntax error. * lib/fflush.c: Include unused-parameter.h, needed for _GL_UNUSED_PARAMETER. * modules/fflush (Depends-on): Add snippet/unused-parameter. 2012-03-30 Paul Eggert regex: pacify GCC when compiling GRUB * lib/regcomp.c (init_dfa): Make a pointer 'const', to avoid a diagnostic. Reported by Vladimir Serbinenko in . 2012-03-29 Eric Blake stdio: don't assume gets any more * m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets support. * modules/stdio (Makefile.am): Likewise. * lib/stdio-read.c (gets): Likewise. * tests/test-stdio-c++.cc: Likewise. * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment. * lib/stdio.in.h (gets): Make warning occur in more places. * doc/posix-functions/gets.texi (gets): Update documentation. Reported by Christer Solskogen. maint.mk: fix syntax checks without exclusions * top/maint.mk (_sc_search_regexp): Allow for empty variable. Reported by Daniel P. Berrange. strerror_r: avoid compiler warning * lib/strerror_r.c (strerror_r): Hoist extern declaration to top level. fflush: avoid compiler warning * lib/fflush.c (update_fpos_cache): Mark variables that are potentially unused. 2012-03-25 Bruno Haible Tests for module 'localeconv'. * modules/localeconv-tests: New file. * tests/test-localeconv.c: New file. New module 'localeconv'. * lib/locale.in.h (localeconv): New declaration. * lib/localeconv.c: New file. * m4/localeconv.m4: New file. * m4/locale_h.m4 (gl_LOCALE_H_DEFAULTS): Initialize GNULIB_LOCALECONV, REPLACE_LOCALECONV. * modules/locale (Makefile.am): Substitute GNULIB_LOCALECONV, REPLACE_LOCALECONV. * modules/localeconv: New file. * modules/nl_langinfo (Depends-on): Add localeconv. * modules/human (Depends-on): Likewise. * doc/posix-functions/localeconv.texi: Mention the new module. 2012-03-25 Bruno Haible locale: Provide a complete 'struct lconv'. * m4/locale_h.m4 (gl_LOCALE_H): Set REPLACE_STRUCT_LCONV to 1 if 'struct lconv' does not contain int_p_cs_precedes. * tests/test-locale.c (main): Check that 'struct lconv' is complete. * doc/posix-headers/locale.texi: Update. locale: Provide a complete 'struct lconv' on Solaris 10, 11. * m4/locale_h.m4 (gl_LOCALE_H): On Solaris, define _LCONV_C99. * doc/posix-headers/locale.texi: Update. locale: Provide a working 'struct lconv'. * lib/locale.in.h (lconv): Override if REPLACE_STRUCT_LCONV is 1. * m4/locale_h.m4 (gl_LOCALE_H): Set REPLACE_STRUCT_LCONV to 1 if 'struct lconv' does not even contain decimal_point. (gl_LOCALE_H_DEFAULTS): Initialize REPLACE_STRUCT_LCONV. * modules/locale (Makefile.am): Substitute REPLACE_STRUCT_LCONV. * tests/test-locale.c (main): Check that 'struct lconv' is complete. * doc/posix-headers/locale.texi: Mention the problems with 'struct lconv'. Reported by Gianluigi Tiesi . 2012-03-24 Bruno Haible Enable common subexpression optimization in GCC. * lib/unitypes.in.h (_UC_ATTRIBUTE_CONST, _UC_ATTRIBUTE_PURE): New macros. * lib/unicase.in.h (uc_toupper, uc_tolower, uc_totitle): Declare with GCC attribute 'const'. (uc_locale_language): Declare with GCC attribute 'pure'. * lib/unicase/caseprop.h (uc_is_cased, uc_is_case_ignorable): Declare with GCC attribute 'const'. * lib/unictype.in.h (uc_is_general_category_withtable, uc_combining_class, uc_combining_class_name, uc_combining_class_long_name, uc_bidi_class_name, uc_bidi_category_name, uc_bidi_class_long_name, uc_bidi_class, uc_bidi_category, uc_is_bidi_class, uc_is_bidi_category, uc_decimal_value, uc_digit_value, uc_numeric_value, uc_joining_type_name, uc_joining_type_long_name, uc_joining_type, uc_joining_group_name, uc_joining_group, uc_is_property_*, uc_script, uc_block, uc_is_c_whitespace, uc_is_java_whitespace, uc_c_ident_category, uc_java_ident_category, uc_is_alnum, uc_is_alpha, uc_is_cntrl, uc_is_digit, uc_is_graph, uc_is_lower, uc_is_print, uc_is_punct, uc_is_space, uc_is_upper, uc_is_xdigit, uc_is_blank): Declare with GCC attribute 'const'. (uc_general_category_name, uc_general_category_long_name, uc_general_category_byname, uc_general_category, uc_is_general_category, uc_combining_class_byname, uc_bidi_class_byname, uc_bidi_category_byname, uc_joining_type_byname, uc_joining_group_byname, uc_script_byname, uc_is_script, uc_is_block): Declare with GCC attribute 'pure'. * lib/unigbrk.in.h (uc_graphemeclusterbreak_property, uc_is_grapheme_break, u8_grapheme_next, u16_grapheme_next, u32_grapheme_next, u8_grapheme_prev, u16_grapheme_prev, u32_grapheme_prev, lib/uniname.in.h (unicode_name_character): Declare with GCC attribute 'pure'. * lib/uninorm.in.h (uc_composition): Declare with GCC attribute 'const'. (uninorm_decomposing_form): Declare with GCC attribute 'pure'. * lib/unistr.in.h (): Declare with GCC attribute 'const'. (u8_check, u16_check, u32_check, u8_mblen, u16_mblen, u32_mblen, u8_cmp, u16_cmp, u32_cmp, u8_cmp2, u16_cmp2, u32_cmp2, u8_chr, u16_chr, u32_chr, u8_mbsnlen, u16_mbsnlen, u32_mbsnlen, u8_strmblen, u16_strmblen, u32_strmblen, u8_strlen, u16_strlen, u32_strlen, u8_strnlen, u16_strnlen, u32_strnlen, u8_strcmp_gnu, u8_strcmp, u16_strcmp, u32_strcmp, u8_strncmp, u16_strncmp, u32_strncmp, u8_strchr, u16_strchr, u32_strchr, u8_strrchr, u16_strrchr, u32_strrchr, u8_strcspn, u16_strcspn, u32_strcspn, u8_strspn, u16_strspn, u32_strspn, u8_strpbrk, u16_strpbrk, u32_strpbrk, u8_strstr, u16_strstr, u32_strstr, u8_startswith, u16_startswith, u32_startswith, u8_endswith, u16_endswith, u32_endswith): Declare with GCC attribute 'pure'. * lib/uniwbrk.in.h (uc_wordbreak_property): Declare with GCC attribute 'const'. * lib/uniwidth.in.h (uc_width): Simplify declaration. (u8_width, u16_width, u32_width, u8_strwidth, u16_strwidth, u32_strwidth): Declare with GCC attribute 'pure'. Enable common subexpression optimization in GCC. * lib/dirent.in.h (_GL_ATTRIBUTE_PURE): Define, like in string.in.h. (alphasort): Declare with GCC attribute 'pure'. * lib/stdlib.in.h (_GL_ATTRIBUTE_PURE): Define, like in string.in.h. (atoll): Declare with GCC attribute 'pure'. * lib/string.in.h (mbslen, mbsnlen, mbschr, mbsrchr, mbsstr, mbscasecmp, mbsncasecmp, mbspcasecmp, mbscasestr, mbscspn, mbspbrk, mbsspn, strverscmp): Declare with GCC attribute 'pure'. * lib/wchar.in.h (_GL_ATTRIBUTE_PURE): Define, like in string.in.h. (btowc, wctob, wcwidth, wmemchr, wmemcmp, wcslen, wcsnlen, wcscmp, wcsncmp, wcscasecmp, wcsncasecmp, wcschr, wcsrchr, wcscspn, wcsspn, wcspbrk, wcsstr, wcswidth): Declare with GCC attribute 'pure'. 2012-03-24 Bruno Haible gnulib-tool: Avoid unintended error output from 'cmp'. * gnulib-tool (func_add_file, func_update_file, func_import): Use "cmp -s", not "cmp > /dev/null". 2012-03-23 Stefano Lattarini gnulib-tool: fix imprecise comments w.r.t. an automake bug It's not just Automake versions < 1.9b that creates an empty pkgdatadir at installation time if pkgdata_DATA is specified to empty; modern automake versions do this as well, at least until automake 1.11.4 (not yet released at the moment of writing, but soon to appear). That behaviour was generally considered a feature rather than a bug, at least until this discussion: See also automake bugs #10997 and #11030. * gnulib-tool (func_emit_lib_Makefile_am): Adjust comments. Add reference to relevant automake bug numbers. (func_emit_tests_Makefile_am): Likewise. 2012-03-20 Reuben Thomas announce-gen: use Digest::SHA when possible * build-aux/announce-gen: Use Digest::SHA when possible, falling back to Digest::SHA1 if necessary. 2012-03-20 Jim Meyering tests: avoid gcc warnings about argv vs. const initializers * tests/test-posix_spawn1.c (main): Cast to "(char *)" to avoid two warnings about discarding 'const' qualifier from pointer target type. * tests/test-posix_spawn2.c (main): Likewise. 2012-03-20 Reuben Thomas README-release: simplify slightly * top/README-release: Run "git checkout master" only once. 2012-03-15 Mark Wielaard git-merge-changelog: add specific example on how to use with hg. * lib/git-merge-changelog.c: Add example on how to use in .hgrc. 2012-03-18 Mark Wielaard lib/git-merge-changelog.c (status): Report bugs to bug-gnulib@gnu.org. 2012-03-18 Andreas Oberritter git-version-gen: don't let "prefix" envvar cause trouble * build-aux/git-version-gen (prefix): Initialize properly, so as not to use a value specified via the environment. Details here: http://thread.gmane.org/gmane.comp.gnu.parted.bugs/10810 2012-03-16 Paul Eggert regex: diagnose too-large repeat counts in EREs Previously, the code did not diagnose the too-large repeat count in EREs like 'b{1000000000}'; instead, it silently treated the ERE as if it were 'b\{1000000000}', which is unexpected. * lib/regcomp.c (parse_dup_op): Fail with REG_ESIZE if a repeat count is too large. REG_ESIZE is used nowhere else, and the diagnostic is a reasonable one for this problem. Another option would be to create a new REG_OVERFLOW error for repeat counts that are too large. (fetch_number): Return RE_DUP_MAX + 1, not REG_ERROR, if the repeat count is too large, so that the caller can distinguish the two cases. * lib/regex.h (_REG_ESIZE): Document that this is now a generic "Too large" return code, and that repeat counts are one example of this. 2012-03-16 Paul Eggert doc: some glibc x32 integer width issues * doc/posix-headers/sys_types.texi (sys/types.h): * doc/posix-headers/time.texi (time.h): Mention that glibc x32 does not conform to POSIX in a couple of areas related to integer widths. 2012-03-15 Bruno Haible fmal: Avoid test failure on OpenBSD 5.1/SPARC64. * lib/fma.c (VOLATILE): New macro. (FUNC): Use it to work around a GCC compiler bug. 2012-03-13 Bruno Haible hypotl: Bypass broken implementation in OpenBSD 5.1/SPARC. * m4/hypotl.m4 (gl_FUNC_HYPOTL_WORKS): New macro. (gl_FUNC_HYPOTL): Invoke it. If the function does not work, set REPLACE_HYPOTL to 1. * doc/posix-functions/hypotl.texi: Mention the OpenBSD 5.1/SPARC bug. 2012-03-13 Bruno Haible remainderl: Bypass broken implementation in OpenBSD 5.1/SPARC. * m4/remainderl.m4 (gl_FUNC_REMAINDERL_WORKS): New macro. (gl_FUNC_REMAINDERL): Invoke it. If the function does not work, set REPLACE_REMAINDERL to 1. * doc/posix-functions/remainderl.texi: Mention the OpenBSD 5.1/SPARC bug. 2012-03-13 Bruno Haible sqrtl: Bypass broken implementation in OpenBSD 5.1/SPARC. * lib/math.in.h (sqrtl): Replace it if REPLACE_SQRTL is 1. * m4/sqrtl.m4 (gl_FUNC_SQRTL_WORKS): New macro. (gl_FUNC_SQRTL): Invoke it. Set REPLACE_SQRTL to 1 if sqrtl() produces too big rounding errors. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_SQRTL. * modules/math (Makefile.am): Substitute REPLACE_SQRTL. * modules/sqrtl (configure.ac): Consider REPLACE_SQRTL. (Depends-on): Update conditions. * tests/test-sqrtl.c (my_ldexpl): New function. (main): Add test of a particular value. * doc/posix-functions/sqrtl.texi: Mention the OpenBSD 5.1/SPARC bug. 2012-03-13 Pádraig Brady doc: Update timer_* platform portability notes. * doc/posix-functions/timer_create.texi: Add platforms (OpenBSD 4.9) that always return ENOSYS. * doc/posix-functions/timer_delete.texi: Likewise. * doc/posix-functions/timer_gettime.texi: Likewise. * doc/posix-functions/timer_settime.texi: Likewise. 2012-03-13 Bruno Haible cbrtl: Bypass broken implementation in OpenBSD 5.1/SPARC. * m4/cbrtl.m4 (gl_FUNC_CBRTL_WORKS): New macro. (gl_FUNC_CBRTL): Invoke it. If the function does not work, set REPLACE_CBRTL to 1. * doc/posix-functions/cbrtl.texi: Mention the OpenBSD 5.1/SPARC bug. 2012-03-13 Bruno Haible remainderl: Avoid compilation error on AIX >= 5.2. * lib/math.in.h (remainderl): Undefine macro from the system header. 2012-03-13 Bruno Haible Avoid compilation errors with MSVC option -fp:strict. * lib/cbrt.c: Use MSVC specific pragma fenv_access. * lib/cbrtf.c: Likewise. Reported by Michael Goffioul . 2012-03-12 Bruno Haible uninorm: Don't crash in out-of-memory conditions. * lib/uninorm/u-normalize-internal.h (FUNC): Handle malloc() failure gracefully. * lib/uninorm/uninorm-filter.c (uninorm_filter_write): Likewise. Based on a report and patch by Stephen Gallagher . 2012-03-13 Akim Demaille quote: fix syntax-check * top/maint.mk (sc_prohibit_quote_without_use): quote.h also exports quote_quoting_options. 2012-03-12 Simon Josefsson Collapse list of copyright years to ranges. See . * build-aux/bootstrap.conf, build-aux/csharpcomp.sh.in, build-aux/csharpexec.sh.in, build-aux/gnupload, build-aux/install-reloc, build-aux/javacomp.sh.in, build-aux/javaexec.sh.in, build-aux/ldd.sh.in, build-aux/move-if-change, build-aux/reloc-ldflags, build-aux/relocatable.sh.in, build-aux/x-to-1.in: Fix copyright. 2012-03-11 Bruno Haible log2f-ieee: Work around test failure on NetBSD 5.1 and Solaris 10. * m4/log2f-ieee.m4: New file. * m4/log2f.m4 (gl_FUNC_LOG2F): If gl_FUNC_LOG2F_IEEE is present, test whether log2f works with a minus zero argument. Replace it if not. * modules/log2f-ieee (Files): Add m4/log2f-ieee.m4. (Depends-on): Add log2-ieee. (configure.ac): Invoke gl_FUNC_LOG2F_IEEE. * doc/posix-functions/log2f.texi: Mention the log2f-ieee module. log2-ieee: Work around test failure on NetBSD 5.1 and Solaris 10. * m4/log2-ieee.m4: New file. * m4/log2.m4 (gl_FUNC_LOG2): If gl_FUNC_LOG2_IEEE is present, test whether log2 works with a minus zero argument. Replace it if not. * modules/log2-ieee (Files): Add m4/log2-ieee.m4. (configure.ac): Invoke gl_FUNC_LOG2_IEEE. * doc/posix-functions/log2.texi: Mention the log2-ieee module. Tests for module 'log2l-ieee'. * modules/log2l-ieee-tests: New file. * tests/test-log2l-ieee.c: New file. New module 'log2l-ieee'. * modules/log2l-ieee: New file. Tests for module 'log2-ieee'. * modules/log2-ieee-tests: New file. * tests/test-log2-ieee.c: New file. New module 'log2-ieee'. * modules/log2-ieee: New file. Tests for module 'log2f-ieee'. * modules/log2f-ieee-tests: New file. * tests/test-log2f-ieee.c: New file. * tests/test-log2-ieee.h: New file. New module 'log2f-ieee'. * modules/log2f-ieee: New file. 2012-03-11 Bruno Haible Tests for module 'log2l'. * modules/log2l-tests: New file. * tests/test-log2l.c: New file. New module 'log2l'. * lib/math.in.h (log2l): New declaration. * lib/log2l.c: New file. * m4/log2l.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether log2l is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG2L, HAVE_DECL_LOG2L, REPLACE_LOG2L. * modules/math (Makefile.am): Substitute GNULIB_LOG2L, HAVE_DECL_LOG2L, REPLACE_LOG2L. * modules/log2l: New file. * tests/test-math-c++.cc: Check the declaration of log2l. * doc/posix-functions/log2l.texi: Mention the new module and the IRIX and OSF/1 problems. 2012-03-11 Bruno Haible Tests for module 'log2f'. * modules/log2f-tests: New file. * tests/test-log2f.c: New file. New module 'log2f'. * lib/math.in.h (log2f): New declaration. * lib/log2f.c: New file. * m4/log2f.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether log2f is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG2F, HAVE_DECL_LOG2F, REPLACE_LOG2F. * modules/math (Makefile.am): Substitute GNULIB_LOG2F, HAVE_DECL_LOG2F, REPLACE_LOG2F. * modules/log2f: New file. * tests/test-math-c++.cc: Check the declaration of log2f. * doc/posix-functions/log2f.texi: Mention the new module and the IRIX and OSF/1 and Cygwin problems. 2012-03-11 Bruno Haible Tests for module 'log2'. * modules/log2-tests: New file. * tests/test-log2.c: New file. * tests/test-log2.h: New file. New module 'log2'. * lib/math.in.h (log2): New declaration. * lib/log2.c: New file. * m4/log2.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether log2 is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG2, HAVE_DECL_LOG2, REPLACE_LOG2. * modules/math (Makefile.am): Substitute GNULIB_LOG2, HAVE_DECL_LOG2, REPLACE_LOG2. * modules/log2: New file. * tests/test-math-c++.cc: Check the declaration of log2. * doc/posix-functions/log2.texi: Mention the new module and the IRIX and OSF/1 and Cygwin problems. 2012-03-11 Bruno Haible exp2* tests: More tests. * tests/test-exp2.h (test_function): Test all integral arguments that don't need to overflow or denormalized numbers. * tests/test-exp2.c (MAX_EXP, MIN_EXP): New macros. * tests/test-exp2f.c (MAX_EXP, MIN_EXP): Likewise. * tests/test-exp2l.c (MAX_EXP, MIN_EXP): Likewise. 2012-03-10 Bruno Haible log1pl-ieee: Work around test failure on AIX 7.1. * modules/log1pl-ieee (Depends-on): Add log1p-ieee. log1pl-ieee: Work around test failure on IRIX 6.5. * m4/log1pl-ieee.m4: New file. * m4/log1pl.m4 (gl_FUNC_LOG1PL): If gl_FUNC_LOG1PL_IEEE is present, test whether log1pl works with a minus zero argument. Replace it if not. * lib/math.in.h (log1pl): Override if REPLACE_LOG1PL is 1. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOG1PL. * modules/math (Makefile.am): Substitute REPLACE_LOG1PL. * modules/log1pl (configure.ac): Consider REPLACE_LOG1PL. (Depends-on): Update conditions. * modules/log1pl-ieee (Files): Add m4/log1p-ieee.m4, m4/minus-zero.m4, m4/signbit.m4. (configure.ac): Invoke gl_FUNC_LOG1PL_IEEE. * doc/posix-functions/log1pl.texi: Mention the log1pl-ieee module. log1pf-ieee: Work around test failure on OpenBSD 4.9 and AIX 7.1. * m4/log1pf-ieee.m4: New file. * m4/log1pf.m4 (gl_FUNC_LOG1PF): If gl_FUNC_LOG1PF_IEEE is present, test whether log1pf works with a minus zero argument. Replace it if not. * modules/log1pf-ieee (Files): Add m4/log1pf-ieee.m4, m4/minus-zero.m4, m4/signbit.m4. (configure.ac): Invoke gl_FUNC_LOG1PF_IEEE. * doc/posix-functions/log1pf.texi: Mention the log1pf-ieee module. log1pf-ieee: Work around test failure on AIX 5.1 and HP-UX 11. * modules/log1pf-ieee (Depends-on): Add log1p-ieee. (configure.ac): Require gl_FUNC_LOG1PF. log1p-ieee: Work around test failure on AIX 7.1 and HP-UX 11. * m4/log1p-ieee.m4: New file. * m4/log1p.m4 (gl_FUNC_LOG1P): If gl_FUNC_LOG1P_IEEE is present, test whether log1p works with a minus zero argument. Replace it if not. * lib/math.in.h (log1p): Override if REPLACE_LOG1P is 1. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOG1P. * modules/math (Makefile.am): Substitute REPLACE_LOG1P. * modules/log1p (configure.ac): Consider REPLACE_LOG1P. (Depends-on): Update conditions. * modules/log1p-ieee (Files): Add m4/log1p-ieee.m4, m4/minus-zero.m4, m4/signbit.m4. (configure.ac): Invoke gl_FUNC_LOG1P_IEEE. * doc/posix-functions/log1p.texi: Mention the log1p-ieee module. Tests for module 'log1pl-ieee'. * modules/log1pl-ieee-tests: New file. * tests/test-log1pl-ieee.c: New file. New module 'log1pl-ieee'. * modules/log1pl-ieee: New file. Tests for module 'log1p-ieee'. * modules/log1p-ieee-tests: New file. * tests/test-log1p-ieee.c: New file. New module 'log1p-ieee'. * modules/log1p-ieee: New file. Tests for module 'log1pf-ieee'. * modules/log1pf-ieee-tests: New file. * tests/test-log1pf-ieee.c: New file. * tests/test-log1p-ieee.h: New file. New module 'log1pf-ieee'. * modules/log1pf-ieee: New file. 2012-03-10 Bruno Haible Tests for module 'log1pl'. * modules/log1pl-tests: New file. * tests/test-log1pl.c: New file. New module 'log1pl'. * lib/math.in.h (log1pl): New declaration. * lib/log1pl.c: New file. * m4/log1pl.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether log1pl is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG1PL, HAVE_LOG1PL. * modules/math (Makefile.am): Substitute GNULIB_LOG1PL, HAVE_LOG1PL. * modules/log1pl: New file. * tests/test-math-c++.cc: Check the declaration of log1pl. * doc/posix-functions/log1pl.texi: Mention the new module. 2012-03-10 Bruno Haible Tests for module 'log1pf'. * modules/log1pf-tests: New file. * tests/test-log1pf.c: New file. New module 'log1pf'. * lib/math.in.h (log1pf): New declaration. * lib/log1pf.c: New file. * m4/log1pf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether log1pf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG1PF, HAVE_LOG1PF, REPLACE_LOG1PF. * modules/math (Makefile.am): Substitute GNULIB_LOG1PF, HAVE_LOG1PF, REPLACE_LOG1PF. * modules/log1pf: New file. * tests/test-math-c++.cc: Check the declaration of log1pf. * doc/posix-functions/log1pf.texi: Mention the new module. 2012-03-10 Bruno Haible log1p tests: More tests. * tests/test-log1p.h: New file. * modules/log1p-tests (Files): Add tests/test-log1p.h, tests/randomd.c. (Makefile.am): Add randomd.c to test_log1p_SOURCES. * tests/test-log1p.c: Include and test-log1p.h. (main): Invoke test_function. log1p: Provide replacement for Minix and MSVC. * lib/math.in.h (log1p): New declaration. * lib/log1p.c: New file. * m4/log1p.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether log1p is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG1P, HAVE_LOG1P. * modules/math (Makefile.am): Substitute GNULIB_LOG1P, HAVE_LOG1P. * modules/log1p (Files): Add lib/log1p.c, m4/log1p.m4. (Depends-on): Add math, isnand, log, round. (configure.ac): Invoke gl_FUNC_LOG1P. Arrange to compile replacement if HAVE_LOG1P is 0. * tests/test-math-c++.cc: Check the declaration of log1p. * doc/posix-functions/log1p.texi: Mention the replacement. 2012-03-10 Bruno Haible math tests: Small simplification. * tests/test-exp.h (test_function): Use the same err_bound for 'double' on platforms with sizeof (long double) == sizeof (double) than on platforms with sizeof (long double) > sizeof (double). * tests/test-exp2.h (test_function): Likewise. * tests/test-expm1.h (test_function): Likewise. * tests/test-log.h (test_function): Likewise. 2012-03-10 Bruno Haible Fix some comments. * lib/expl.c: Fix an ambiguous comment. * lib/expm1.c: Likewise. * lib/expm1l.c: Likewise. * lib/exp2.c: Likewise. * lib/exp2l.c: Likewise. 2012-03-10 Paul Eggert regex: allow inclusion of before Without this patch, portable programs had to include before if they wanted a consistent value for RE_DUP_MAX. I ran into this problem with a test version of GNU grep on Solaris 8. * lib/regex.h: Include if _REGEX_INCLUDE_LIMITS_H. This is done conditionally so that this change can be merged back to glibc. * m4/regex.m4 (gl_REGEX): Define _REGEX_INCLUDE_LIMITS_H if using the included regex. fts: depend on fdopendir * modules/fts (Depends-on): Depend on fdopendir. This is needed on Solaris 8, at least, since it lacks fdopendir. Evidently the problem was introduced when fdopendir was split out. 2012-03-10 Bruno Haible Remove unused variables. * m4/fmodf.m4 (gl_FUNC_FMODF): Remove unused variable 'i'. * m4/remainderf.m4 (gl_FUNC_REMAINDERF): Likewise. 2012-03-10 Bruno Haible isnanf-nolibm: Fix last commit. * lib/isnanf-nolibm.h [IRIX]: Don't include . Declare isnanf. isnanf-nolibm: Make it work on IRIX 6.5 with cc. * lib/isnanf-nolibm.h [IRIX]: Include . 2012-03-10 Bruno Haible logf-ieee: Work around test failure on NetBSD 5.1. * m4/logf-ieee.m4: New file. * m4/logf.m4 (gl_FUNC_LOGF): If gl_FUNC_LOGF_IEEE is present, test whether logf works with a negative argument. Replace it if not. * lib/logf.c (logf): For negative arguments, return NaN. * modules/logf-ieee (Files): Add m4/logf-ieee.m4. (configure.ac): Invoke gl_FUNC_LOGF_IEEE. * doc/posix-functions/logf.texi: Mention the logf-ieee module. logf-ieee: Work around test failure on Solaris 9. * modules/logf-ieee (Depends-on): Add log-ieee. (configure.ac): Require gl_FUNC_LOGF. log-ieee: Work around test failure on NetBSD 5.1 and Solaris 11. * m4/log-ieee.m4: New file. * m4/log.m4 (gl_FUNC_LOG): If gl_FUNC_LOG_IEEE is present, test whether log works with a negative argument. Replace it if not. * lib/log.c (log): For negative arguments, return NaN. * modules/log-ieee (Files): Add m4/log-ieee.m4. (configure.ac): Invoke gl_FUNC_LOG_IEEE. * doc/posix-functions/log.texi: Mention the log-ieee module. Tests for module 'logl-ieee'. * modules/logl-ieee-tests: New file. * tests/test-logl-ieee.c: New file. New module 'logl-ieee'. * modules/logl-ieee: New file. Tests for module 'log-ieee'. * modules/log-ieee-tests: New file. * tests/test-log-ieee.c: New file. New module 'log-ieee'. * modules/log-ieee: New file. Tests for module 'logf-ieee'. * modules/logf-ieee-tests: New file. * tests/test-logf-ieee.c: New file. * tests/test-log-ieee.h: New file. New module 'logf-ieee'. * modules/logf-ieee: New file. 2012-03-10 Bruno Haible log: Fix bug introduced on 2012-03-09. * m4/log.m4 (gl_FUNC_LOG): Require gl_MATH_H_DEFAULTS. 2012-03-10 Pádraig Brady timer-time: link explicitly with pthreads on glibc * m4/timer_time.m4 (LIB_TIMER_TIME): Add -lpthread to support static linking, when newer glibc is detected, as that contains pthread emulation of POSIX timer functions where required. * modules/timer-time: Depend on threadlib to pull in the appropriate library to link. 2012-03-10 Bruno Haible log* tests: More tests. * tests/test-log.h: New file. * tests/test-log.c: Include , minus-zero.h, test-log.h. (main): Invoke test_function. * tests/test-logf.c: Include , minus-zero.h, test-log.h. (main): Invoke test_function. * tests/test-logl.c: Include , minus-zero.h, test-log.h. (main): Invoke test_function. * modules/log-tests (Files): Add tests/test-log.h, tests/minus-zero.h, tests/randomd.c. (Makefile.am): Add randomd.c to test_log_SOURCES. * modules/logf-tests (Files): Add tests/test-log.h, tests/minus-zero.h, tests/randomf.c. (Makefile.am): Add randomf.c to test_logf_SOURCES. * modules/logl-tests (Files): Add tests/test-log.h, tests/minus-zero.h, tests/randoml.c. (Depends-on): Add 'float'. (Makefile.am): Add randoml.c to test_logl_SOURCES. 2012-03-09 Bruno Haible logl: Work around OSF/1 5.1 bug. * lib/math.in.h (logl): Override if REPLACE_LOGL is 1. * lib/logl.c (logl): If logl exists, use it and provide just the workaround. * m4/logl.m4 (gl_FUNC_LOGL_WORKS): New macro. (gl_FUNC_LOGL): Invoke it. Set REPLACE_LOGL. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOGL. * modules/math (Makefile.am): Substitute REPLACE_LOGL. * modules/logl (configure.ac): Consider REPLACE_LOGL. (Depends-on): Update conditions. * doc/posix-functions/logl.texi: Mention the OSF/1 5.1 problem. 2012-03-09 Bruno Haible logf: Work around OSF/1 5.1 bug. * lib/math.in.h (logf): Override if REPLACE_LOGF is 1. * lib/logf.c (logf): If logf exists, use it and provide just the workaround. * m4/logf.m4 (gl_FUNC_LOGF_WORKS): New macro. (gl_FUNC_LOGF): Invoke it. Set REPLACE_LOGF. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_LOGF. * modules/math (Makefile.am): Substitute REPLACE_LOGF. * modules/logf (configure.ac): Consider REPLACE_LOGF. (Depends-on): Update conditions. * doc/posix-functions/logf.texi: Mention the OSF/1 5.1 problem. 2012-03-09 Bruno Haible log: Work around OSF/1 5.1 bug. * lib/math.in.h (log): New declaration. * lib/log.c: New file. * m4/log.m4 (gl_FUNC_LOG_WORKS): New macro. (gl_FUNC_LOG): Invoke it. Set REPLACE_LOG. * m4/math_h.m4 (gl_MATH_H): Test whether log is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG, REPLACE_LOG. * modules/math (Makefile.am): Substitute GNULIB_LOG, REPLACE_LOG. * modules/log (Files): Add lib/log.c. (Depends-on): Add math. (configure.ac): If REPLACE_LOG is 1, compile an override. * tests/test-math-c++.cc: Check the declaration of log. * doc/posix-functions/log.texi: Mention the OSF/1 5.1 problem. 2012-03-09 Jim Meyering readtokens.c: adjust wording in a comment * lib/readtokens.c: Insert omitted "that" in a comment. 2012-03-08 Paul Eggert modechange: add notations +40, 00440, etc. * lib/modechange.c (mode_compile): Support new notations +40, -40, =440, 00440. See . 2012-03-08 Bruno Haible exp2l-ieee: Work around test failure on OpenBSD 4.9 and IRIX 6.5. * m4/exp2l-ieee.m4: New file. * m4/exp2l.m4 (gl_FUNC_EXP2L): If gl_FUNC_EXP2L_IEEE is present, test whether exp2l works with a NaN argument and with a negative infinity argument. Replace it if not. * lib/math.in.h (exp2l): Override if REPLACE_EXP2L is 1. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_EXP2L. * modules/math (Makefile.am): Substitute REPLACE_EXP2L. * modules/exp2l (configure.ac): Consider REPLACE_EXP2L. (Depends-on): Update conditions. * modules/exp2l-ieee (Files): Add m4/exp2l-ieee.m4. (configure.ac): Invoke gl_FUNC_EXP2L_IEEE. * doc/posix-functions/exp2l.texi: Mention the exp2l-ieee module. Tests for module 'exp2l-ieee'. * modules/exp2l-ieee-tests: New file. * tests/test-exp2l-ieee.c: New file. New module 'exp2l-ieee'. * modules/exp2l-ieee: New file. Tests for module 'exp2-ieee'. * modules/exp2-ieee-tests: New file. * tests/test-exp2-ieee.c: New file. New module 'exp2-ieee'. * modules/exp2-ieee: New file. Tests for module 'exp2f-ieee'. * modules/exp2f-ieee-tests: New file. * tests/test-exp2f-ieee.c: New file. * tests/test-exp2-ieee.h: New file. New module 'exp2f-ieee'. * modules/exp2f-ieee: New file. 2012-03-08 Bruno Haible Tests for module 'exp2l'. * modules/exp2l-tests: New file. * tests/test-exp2l.c: New file. New module 'exp2l'. * lib/math.in.h (exp2l): New declaration. * lib/exp2l.c: New file. * lib/expl-table.c: New file, extracted from lib/expl.c. * lib/expl.c (gl_expl_table): New declaration. (expl): Remove expl_table. Update reference. * m4/exp2l.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether exp2l is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_EXP2L, HAVE_DECL_EXP2L. * modules/math (Makefile.am): Substitute GNULIB_EXP2L, HAVE_DECL_EXP2L. * modules/exp2l: New file. * modules/expl (Files): Add lib/expl-table.c. (configure.ac): Compile also expl-table.c. * tests/test-math-c++.cc: Check the declaration of exp2l. * doc/posix-functions/exp2l.texi: Mention the new module and the IRIX problem. 2012-03-08 Bruno Haible Tests for module 'exp2f'. * modules/exp2f-tests: New file. * tests/test-exp2f.c: New file. New module 'exp2f'. * lib/math.in.h (exp2f): New declaration. * lib/exp2f.c: New file. * m4/exp2f.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether exp2f is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_EXP2F, HAVE_DECL_EXP2F. * modules/math (Makefile.am): Substitute GNULIB_EXP2F, HAVE_DECL_EXP2F. * modules/exp2f: New file. * tests/test-math-c++.cc: Check the declaration of exp2f. * doc/posix-functions/exp2f.texi: Mention the new module and the IRIX problem. 2012-03-08 Bruno Haible Tests for module 'exp2'. * modules/exp2-tests: New file. * tests/test-exp2.c: New file. * tests/test-exp2.h: New file. New module 'exp2'. * lib/math.in.h (exp2): New declaration. * lib/exp2.c: New file. * m4/exp2.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether exp2 is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_EXP2, HAVE_DECL_EXP2, REPLACE_EXP2. * modules/math (Makefile.am): Substitute GNULIB_EXP2, HAVE_DECL_EXP2, REPLACE_EXP2. * modules/exp2: New file. * tests/test-math-c++.cc: Check the declaration of exp2. * doc/posix-functions/exp2.texi: Mention the new module and the IRIX and OpenBSD problems. 2012-03-08 Paul Eggert savedir: fix comment typo * lib/savedir.c (savedirstream): Fix typo in comment. 2012-03-08 Bruno Haible test-readtokens.c: use const; remove unwarranted cast * tests/test-readtokens.c: Declare delim to be const, to avoid a cast. 2012-03-08 Bruno Haible fmal: Avoid compilation error on AIX. * lib/math.in.h (fmal): Undefine macro before declaration. Needed on AIX 5.2..7.1. 2012-03-08 Bruno Haible fma, fmaf, fmal: Override undeclared system functions on IRIX 6.5. * m4/fma.m4 (gl_FUNC_FMA): If fma() exists but is not declared, arrange to set REPLACE_FMA=1, not HAVE_FMA=0. * m4/fmaf.m4 (gl_FUNC_FMAF): If fmaf() exists but is not declared, arrange to set REPLACE_FMAF=1, not HAVE_FMAF=0. * m4/fmal.m4 (gl_FUNC_FMAL): If fmal() exists but is not declared, arrange to set REPLACE_FMAL=1, not HAVE_FMAL=0. 2012-03-08 Bruno Haible remainderf: Override buggy system function on IRIX 6.5. * m4/remainderf.m4 (gl_FUNC_REMAINDERF_WORKS): New macro. (gl_FUNC_REMAINDERF): Invoke it. Don't assume remainderf() is declared when it exists. * doc/posix-functions/remainderf.texi: Mention the IRIX problems. 2012-03-08 Jim Meyering test-readtokens.c: avoid const-related compilation warnings * tests/test-readtokens.c: Avoid const-related compilation warnings. 2012-03-07 Jim Meyering Bruno Haible frexp-nolibm, frexpl-nolibm tests: Fix bug introduced on 2012-03-03. * modules/frexp-nolibm-tests (Files): Add tests/test-frexp.h, tests/randomd.c. (Makefile.am): Add randomd.c to test_frexp_nolibm_SOURCES. * modules/frexpl-nolibm-tests (Files): Add tests/test-frexp.h, tests/randoml.c. (Makefile.am): Add randoml.c to test_frexpl_nolibm_SOURCES. 2012-03-07 Bruno Haible expm1l: Avoid compilation error on AIX. * lib/math.in.h (expm1l): Undefine macro before declaration. Needed on AIX 5.2..7.1. 2012-03-07 Bruno Haible expm1l: Don't override undeclared system function on IRIX 6.5. * lib/math.in.h (expm1l): Test HAVE_DECL_EXPM1L, not HAVE_EXPM1L. * m4/expm1l.m4 (gl_FUNC_EXPM1L): Don't assume expm1l() is declared when it exists. Set HAVE_DECL_EXPM1L. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize HAVE_DECL_EXPM1L, not HAVE_EXPM1L. * modules/math (Makefile.am): Substitute HAVE_DECL_EXPM1L, not HAVE_EXPM1L. * doc/posix-functions/expm1l.texi: Mention missing declaration problem. 2012-03-07 Bruno Haible remainderl: Don't override undeclared system function on IRIX 6.5. * lib/math.in.h (remainderl): Test HAVE_DECL_REMAINDERL, not HAVE_REMAINDERL. * m4/remainderl.m4 (gl_FUNC_REMAINDERL): Don't assume remainderl() is declared when it exists. Set HAVE_DECL_REMAINDERL. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize HAVE_DECL_REMAINDERL, not HAVE_REMAINDERL. * modules/math (Makefile.am): Substitute HAVE_DECL_REMAINDERL, not HAVE_REMAINDERL. * doc/posix-functions/remainderl.texi: Mention missing declaration problem. 2012-03-07 Bruno Haible rintf: Don't override undeclared system function on IRIX 6.5. * lib/math.in.h (rintf): Test HAVE_DECL_RINTF, not HAVE_RINTF. * m4/rintf.m4 (gl_FUNC_RINTF): Don't assume rintf() is declared when it exists. Set HAVE_DECL_RINTF. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize HAVE_DECL_RINTF, not HAVE_RINTF. * modules/math (Makefile.am): Substitute HAVE_DECL_RINTF, not HAVE_RINTF. * doc/posix-functions/rintf.texi: Mention missing declaration problem. 2012-03-07 Bruno Haible roundl: Avoid compilation error on AIX. * lib/math.in.h (roundl): Undefine macro before declaration. Needed on AIX 5.2..7.1. 2012-03-07 Bruno Haible roundl: Don't override undeclared system function on IRIX 6.5. * m4/roundl.m4 (gl_FUNC_ROUNDL): Search for roundl() in the libraries also when it is not declared. Set HAVE_ROUNDL. For replacement code, test HAVE_ROUNDL, not HAVE_DECL_ROUNDL. * modules/roundl (configure.ac): For replacement code, test HAVE_ROUNDL, not HAVE_DECL_ROUNDL. (Depends-on): Update conditions. * doc/posix-functions/roundl.texi: Mention the IRIX problem. 2012-03-07 Bruno Haible roundf: Don't override undeclared system function on IRIX 6.5. * m4/roundf.m4 (gl_FUNC_ROUNDF): Search for roundf() in the libraries also when it is not declared. Set HAVE_ROUNDF. For replacement code, test HAVE_ROUNDF, not HAVE_DECL_ROUNDF. * modules/roundf (configure.ac): For replacement code, test HAVE_ROUNDF, not HAVE_DECL_ROUNDF. (Depends-on): Update conditions. * modules/roundf-ieee (Depends-on): Update conditions. * doc/posix-functions/roundf.texi: Mention the IRIX problem. 2012-03-07 Bruno Haible round: Don't override undeclared system function on IRIX 6.5. * m4/check-math-lib.m4 (gl_CHECK_MATH_LIB): Accept an optional third argument. * m4/round.m4 (gl_FUNC_ROUND): Search for round() in the libraries also when it is not declared. Set HAVE_ROUND. For replacement code, test HAVE_ROUND, not HAVE_DECL_ROUND. * modules/round (configure.ac): For replacement code, test HAVE_ROUND, not HAVE_DECL_ROUND. (Depends-on): Update conditions. * modules/round-ieee (Depends-on): Update conditions. * doc/posix-functions/round.texi: Mention the IRIX problem. 2012-03-07 Bruno Haible copysignf: Don't override undeclared system function on IRIX 6.5. * lib/math.in.h (copysignf): Test HAVE_DECL_COPYSIGNF, not HAVE_COPYSIGNF. * m4/copysignf.m4 (gl_FUNC_COPYSIGNF): Don't assume copysignf() is declared when it exists. Set HAVE_DECL_COPYSIGNF. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize HAVE_DECL_COPYSIGNF, not HAVE_COPYSIGNF. * modules/math (Makefile.am): Substitute HAVE_DECL_COPYSIGNF, not HAVE_COPYSIGNF. * doc/posix-functions/copysignf.texi: Mention missing declaration problem. 2012-03-07 Jim Meyering readtokens: add tests * modules/readtokens-tests: New file. * tests/test-readtokens.c: New file. 2012-03-07 Jim Meyering quotearg: the module must now include quote.h With commit v0.0-7133-g6417476, quotearg.c includes "quote.h". So must the module. * modules/quotearg (Files): Add quote.h. 2012-03-06 Paul Eggert readtokens: avoid core dumps with unusual calling patterns Reported by Xu Zhongxing in . * lib/readtokens.c: Include limits.h. (word, bits_per_word, get_nth_bit, set_nth_bit): New. (readtoken): Don't cache the delimiters; the cache code was buggy if !delim && saved_delim, or if the new n_delim differs from the old. Also, it wasn't thread-safe. 2012-03-07 Bruno Haible quote: Adhere to common module description layout. * modules/quote (Makefile.am): Add back empty section. 2012-03-06 Akim Demaille quote: fuse into quotearg This patch is made for the benefit of Bison. quote does not leave the choice of the quoting style to the user. quoting_style provides poor customizability, yet quoting_options, which is very rich, is hidden inside quotearg.c. So in order to allow quote customization, move its implementation to quotearg.c. * lib/quote.c: Remove. * modules/quote: Adjust. * lib/quotearg.c (quoting_options_from_style): Fix a compiler warning: provide all the members of literal structs. (quote_quoting_options): New. (quote, quote_n): Import implementation from quote.c. * lib/quote.h: Import the comments from quote.c. (quote_quoting_options): New. 2012-03-06 Bruno Haible Tests for module 'expm1l-ieee'. * modules/expm1l-ieee-tests: New file. * tests/test-expm1l-ieee.c: New file. New module 'expm1l-ieee'. * modules/expm1l-ieee: New file. Tests for module 'expm1f-ieee'. * modules/expm1f-ieee-tests: New file. * tests/test-expm1f-ieee.c: New file. New module 'expm1f-ieee'. * modules/expm1f-ieee: New file. Tests for module 'expm1-ieee'. * modules/expm1-ieee-tests: New file. * tests/test-expm1-ieee.c: New file. * tests/test-expm1-ieee.h: New file. New module 'expm1-ieee'. * modules/expm1-ieee: New file. * m4/expm1-ieee.m4: New file. * m4/expm1.m4 (gl_FUNC_EXPM1): If gl_FUNC_EXPM1_IEEE is present, test whether expm1 works with a minus zero argument. Replace it if not. * lib/math.in.h (expm1): Override if REPLACE_EXPM1 is 1. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_EXPM1. * modules/math (Makefile.am): Substitute REPLACE_EXPM1. * modules/expm1 (configure.ac): Consider REPLACE_EXPM1. (Depends-on): Update conditions. * doc/posix-functions/expm1.texi: Mention the expm1-ieee module and the AIX problem. 2012-03-06 Bruno Haible Work around expm1f bug on IRIX 6.5. * lib/math.in.h (expm1f): Override if REPLACE_EXPM1F is 1. * m4/expm1f.m4 (gl_FUNC_EXPM1F_WORKS): New macro. (gl_FUNC_EXPM1F): Invoke it. Set REPLACE_EXPM1F to 1 if expm1f() does not work. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_EXPM1F. * modules/math (Makefile.am): Substitute REPLACE_EXPM1F. * modules/expm1f (configure.ac): Consider REPLACE_EXPM1F. (Depends-on): Update conditions. * doc/posix-functions/expm1f.texi: Mention the IRIX 6.5 bug. 2012-03-06 Bruno Haible Tests for module 'expm1l'. * modules/expm1l-tests: New file. * tests/test-expm1l.c: New file. New module 'expm1l'. * lib/math.in.h (expm1l): New declaration. * lib/expm1l.c: New file. * m4/expm1l.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether expm1l is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_EXPM1L, HAVE_EXPM1L. * modules/math (Makefile.am): Substitute GNULIB_EXPM1L, HAVE_EXPM1L. * modules/expm1l: New file. * tests/test-math-c++.cc: Check the declaration of expm1l. * doc/posix-functions/expm1l.texi: Mention the new module. 2012-03-06 Bruno Haible Tests for module 'expm1f'. * modules/expm1f-tests: New file. * tests/test-expm1f.c: New file. New module 'expm1f'. * lib/math.in.h (expm1f): New declaration. * lib/expm1f.c: New file. * m4/expm1f.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether expm1f is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_EXPM1F, HAVE_EXPM1F. * modules/math (Makefile.am): Substitute GNULIB_EXPM1F, HAVE_EXPM1F. * modules/expm1f: New file. * tests/test-math-c++.cc: Check the declaration of expm1f. * doc/posix-functions/expm1f.texi: Mention the new module. 2012-03-06 Bruno Haible Tests for module 'expm1'. * modules/expm1-tests: New file. * tests/test-expm1.c: New file. * tests/test-expm1.h: New file. New module 'expm1'. * lib/math.in.h (expm1): New declaration. * lib/expm1.c: New file. * m4/expm1.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether expm1 is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_EXPM1, HAVE_EXPM1. * modules/math (Makefile.am): Substitute GNULIB_EXPM1, HAVE_EXPM1. * modules/expm1: New file. * tests/test-math-c++.cc: Check the declaration of expm1. * doc/posix-functions/expm1.texi: Mention the new module. 2012-03-06 Bruno Haible math: Ensure declarations of math functions. * modules/acosf (Depends-on): Add 'extensions'. * modules/asinf (Depends-on): Likewise. * modules/atan2f (Depends-on): Likewise. * modules/atanf (Depends-on): Likewise. * modules/cbrt (Depends-on): Likewise. * modules/cbrtf (Depends-on): Likewise. * modules/cbrtl (Depends-on): Likewise. * modules/copysignf (Depends-on): Likewise. * modules/copysignl (Depends-on): Likewise. * modules/cosf (Depends-on): Likewise. * modules/coshf (Depends-on): Likewise. * modules/expf (Depends-on): Likewise. * modules/fabsf (Depends-on): Likewise. * modules/fabsl (Depends-on): Likewise. * modules/fmaf (Depends-on): Likewise. * modules/fmal (Depends-on): Likewise. * modules/fmodf (Depends-on): Likewise. * modules/fmodl (Depends-on): Likewise. * modules/frexpf (Depends-on): Likewise. * modules/frexpl (Depends-on): Likewise. * modules/hypot (Depends-on): Likewise. * modules/hypotf (Depends-on): Likewise. * modules/hypotl (Depends-on): Likewise. * modules/ldexpf (Depends-on): Likewise. * modules/ldexpl (Depends-on): Likewise. * modules/log10f (Depends-on): Likewise. * modules/log10l (Depends-on): Likewise. * modules/log1p (Depends-on): Likewise. * modules/logb (Depends-on): Likewise. * modules/logf (Depends-on): Likewise. * modules/modff (Depends-on): Likewise. * modules/modfl (Depends-on): Likewise. * modules/powf (Depends-on): Likewise. * modules/remainderf (Depends-on): Likewise. * modules/remainderl (Depends-on): Likewise. * modules/rintf (Depends-on): Likewise. * modules/rintl (Depends-on): Likewise. * modules/sinf (Depends-on): Likewise. * modules/sinhf (Depends-on): Likewise. * modules/sqrtf (Depends-on): Likewise. * modules/tanf (Depends-on): Likewise. * modules/tanhf (Depends-on): Likewise. * m4/acosf.m4 (gl_FUNC_ACOSF): Require gl_USE_SYSTEM_EXTENSIONS. * m4/asinf.m4 (gl_FUNC_ASINF): Likewise. * m4/atan2f.m4 (gl_FUNC_ATAN2F): Likewise. * m4/atanf.m4 (gl_FUNC_ATANF): Likewise. * m4/cbrt.m4 (gl_FUNC_CBRT): Likewise. * m4/cbrtf.m4 (gl_FUNC_CBRTF): Likewise. * m4/cbrtl.m4 (gl_FUNC_CBRTL): Likewise. * m4/copysignf.m4 (gl_FUNC_COPYSIGNF): Likewise. * m4/copysignl.m4 (gl_FUNC_COPYSIGNL): Likewise. * m4/cosf.m4 (gl_FUNC_COSF): Likewise. * m4/coshf.m4 (gl_FUNC_COSHF): Likewise. * m4/expf.m4 (gl_FUNC_EXPF): Likewise. * m4/fabsf.m4 (gl_FUNC_FABSF): Likewise. * m4/fabsl.m4 (gl_FUNC_FABSL): Likewise. * m4/fmaf.m4 (gl_FUNC_FMAF): Likewise. * m4/fmal.m4 (gl_FUNC_FMAL): Likewise. * m4/fmodf.m4 (gl_FUNC_FMODF): Likewise. * m4/fmodl.m4 (gl_FUNC_FMODL): Likewise. * m4/frexpf.m4 (gl_FUNC_FREXPF): Likewise. * m4/frexpl.m4 (gl_FUNC_FREXPL): Likewise. * m4/hypot.m4 (gl_FUNC_HYPOT): Likewise. * m4/hypotf.m4 (gl_FUNC_HYPOTF): Likewise. * m4/hypotl.m4 (gl_FUNC_HYPOTL): Likewise. * m4/ldexpf.m4 (gl_FUNC_LDEXPF): Likewise. * m4/ldexpl.m4 (gl_FUNC_LDEXPL): Likewise. * m4/log10f.m4 (gl_FUNC_LOG10F): Likewise. * m4/log10l.m4 (gl_FUNC_LOF10L): Likewise. * m4/logb.m4 (gl_FUNC_LOGB): Likewise. * m4/logf.m4 (gl_FUNC_LOGF): Likewise. * m4/modff.m4 (gl_FUNC_MODFF): Likewise. * m4/modfl.m4 (gl_FUNC_MODFL): Likewise. * m4/powf.m4 (gl_FUNC_POWF): Likewise. * m4/remainderf.m4 (gl_FUNC_REMAINDERF): Likewise. * m4/remainderl.m4 (gl_FUNC_REMAINDERL): Likewise. * m4/rintf.m4 (gl_FUNC_RINTF): Likewise. * m4/rintl.m4 (gl_FUNC_RINTL): Likewise. * m4/sinf.m4 (gl_FUNC_SINF): Likewise. * m4/sinhf.m4 (gl_FUNC_SINHF): Likewise. * m4/sqrtf.m4 (gl_FUNC_SQRTF): Likewise. * m4/tanf.m4 (gl_FUNC_TANF): Likewise. * m4/tanhf.m4 (gl_FUNC_TANHF): Likewise. 2012-03-06 Bruno Haible math: Update module names in warnings. * lib/math.in.h (acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl): Use specific module name in warn-on-use warning. 2012-03-06 Bruno Haible expl: Simplify computation. * lib/expl.c (expl): Simplify computation of exp_y. Fix comment. 2012-03-05 Bruno Haible exp* tests: More tests. * tests/test-exp.h: New file. * tests/test-exp.c: Include and test-exp.h. (main): Invoke test_function. * tests/test-expf.c: Include and test-exp.h. (main): Invoke test_function. * tests/test-expl.c: Include and test-exp.h. (main): Invoke test_function. * modules/exp-tests (Files): Add tests/test-exp.h, tests/randomd.c. (Makefile.am): Add randomd.c to test_exp_SOURCES. * modules/expf-tests (Files): Add tests/test-exp.h, tests/randomf.c. (Makefile.am): Add randomf.c to test_expf_SOURCES. * modules/expl-tests (Files): Add tests/test-exp.h, tests/randoml.c. (Depends-on): Add 'float'. (Makefile.am): Add randoml.c to test_expl_SOURCES. expl: Fix precision of computed result. * lib/expl.c: Completely rewritten. * modules/expl (Depends-on): Add isnanl, roundl, ldexpl. Remove floorl. (Maintainer): Add me. * m4/expl.m4 (gl_FUNC_EXPL): Update computation of EXPL_LIBM. 2012-03-05 Bruno Haible cbrt* tests: More tests. * tests/test-cbrt.h: New file. * tests/test-cbrt.c: Include and test-cbrt.h. (main): Invoke test_function. * tests/test-cbrtf.c: Include and test-cbrt.h. (main): Invoke test_function. * tests/test-cbrtl.c: Include and test-cbrt.h. (main): Invoke test_function. * modules/cbrt-tests (Files): Add tests/test-cbrt.h, tests/randomd.c. (Makefile.am): Add randomd.c to test_cbrt_SOURCES. * modules/cbrtf-tests (Files): Add tests/test-cbrt.h, tests/randomf.c. (Makefile.am): Add randomf.c to test_cbrtf_SOURCES. * modules/cbrtl-tests (Files): Add tests/test-cbrt.h, tests/randoml.c. (Depends-on): Add 'float'. (Makefile.am): Add randoml.c to test_cbrtl_SOURCES. 2012-03-05 Bruno Haible hypot* tests: More tests. * tests/test-hypot.h: New file, partially extracted from tests/test-hypotl.c. * tests/test-hypot.c: Include test-hypot.h. (main): Invoke test_function. * tests/test-hypotf.c: Include test-hypot.h. (main): Invoke test_function. * tests/test-hypotl.c: Include fpucw.h and test-hypot.h. (main): Invoke BEGIN_LONG_DOUBLE_ROUNDING and test_function. * modules/hypot-tests (Files): Add tests/test-hypot.h, tests/randomd.c. (Makefile.am): Add randomd.c to test_hypot_SOURCES. * modules/hypotf-tests (Files): Add tests/test-hypot.h, tests/randomf.c. (Makefile.am): Add randomf.c to test_hypotf_SOURCES. * modules/hypotl-tests (Files): Add tests/test-hypot.h, tests/randoml.c. (Depends-on): Add 'fpucw', 'float'. (Makefile.am): Add randoml.c to test_hypotl_SOURCES. 2012-03-05 Bruno Haible fpucw: Doc about FreeBSD. * lib/fpucw.h: Mention FreeBSD in comments. 2012-03-04 Bruno Haible sqrt* tests: More tests. * tests/test-sqrt.h: New file. * tests/test-sqrt.c: Include and test-sqrt.h. (main): Invoke test_function. * tests/test-sqrtf.c: Include and test-sqrt.h. (main): Invoke test_function. * tests/test-sqrtl.c: Include and test-sqrt.h. (main): Invoke test_function. * modules/sqrt-tests (Files): Add tests/test-sqrt.h, tests/randomd.c. (Makefile.am): Add randomd.c to test_sqrt_SOURCES. * modules/sqrtf-tests (Files): Add tests/test-sqrt.h, tests/randomf.c. (Makefile.am): Add randomf.c to test_sqrtf_SOURCES. * modules/sqrtl-tests (Files): Add tests/test-sqrt.h, tests/randoml.c. (Depends-on): Add 'float'. (Makefile.am): Add randoml.c to test_sqrtl_SOURCES. 2012-03-04 Bruno Haible remainder* tests: More tests. * tests/test-remainder.h: New file, based on tests/test-fmod.h. * tests/test-remainder.c: Include and test-remainder.h. (main): Invoke test_function. * tests/test-remainderf.c: Include and test-remainder.h. (main): Invoke test_function. * tests/test-remainderl.c: Include and test-remainder.h. (main): Invoke test_function. * modules/remainder-tests (Files): Add tests/test-remainder.h, tests/randomd.c. (Makefile.am): Add randomd.c to test_remainder_SOURCES. * modules/remainderf-tests (Files): Add tests/test-remainder.h, tests/randomf.c. (Makefile.am): Add randomf.c to test_remainderf_SOURCES. * modules/remainderl-tests (Files): Add tests/test-remainder.h, tests/randoml.c. (Depends-on): Add 'float'. (Makefile.am): Add randoml.c to test_remainderl_SOURCES. 2012-03-04 Bruno Haible remainder, remainderf, remainderl: Fix computation for large quotients. * lib/remainder.c: Completely rewritten. * lib/remainderf.c (remainderf): Use implementation of remainder.c with USE_FLOAT. * lib/remainderl.c (remainderl): Use implementation of remainder.c with USE_LONG_DOUBLE. * modules/remainder (Depends-on): Add isfinite, signbit, fabs, fmod, isnand, isinf. Remove round, fma. * modules/remainderf (Files): Add lib/remainder.c. (Depends-on): Add isfinite, signbit, fabsf, fmodf, isnanf, isinf. Remove roundf, fmaf. * modules/remainderl (Files): Add lib/remainder.c. (Depends-on): Add float, isfinite, signbit, fabsl, fmodl, isnanl, isinf. Remove roundl, fmal. * m4/remainder.m4 (gl_FUNC_REMAINDER): Update computation of REMAINDER_LIBM. * m4/remainderf.m4 (gl_FUNC_REMAINDERF): Update computation of REMAINDERF_LIBM. * m4/remainderl.m4 (gl_FUNC_REMAINDERL): Update computation of REMAINDERL_LIBM. 2012-03-04 Bruno Haible fmod* tests: More tests. * tests/test-fmod.h (my_ldexp): New function. (test_function): Reduce amount of random numbers to test. Add tests of very large quotients x / y. * tests/test-fmod.c (MAX_EXP): New macro. * tests/test-fmodf.c (MAX_EXP): Likewise. * tests/test-fmodl.c (MAX_EXP): Likewise. 2012-03-04 Bruno Haible fmod, fmodl: Fix computation for large quotients x / y. * lib/fmod.c: Completely rewritten. * lib/fmodl.c (fmodl): Use implementation of fmod.c with USE_LONG_DOUBLE. * modules/fmod (Depends-on): Add isfinite, signbit, fabs, frexp, ldexp, isnand. Remove fma. * modules/fmodl (Files): Add lib/fmod.c. (Depends-on): Add float, isfinite, signbit, fabsl, frexpl, ldexpl, isnanl. Remove fma. * m4/fmod.m4 (gl_FUNC_FMOD): Update computation of FMOD_LIBM. * m4/fmodl.m4 (gl_FUNC_FMODL): Update computation of FMODL_LIBM. 2012-03-03 Bruno Haible fmod* tests: More tests. * tests/test-fmod.h: New file. * tests/test-fmod.c: Include and test-fmod.h. (main): Invoke test_function. * tests/test-fmodf.c: Include and test-fmod.h. (main): Invoke test_function. * tests/test-fmodl.c: Include and test-fmod.h. (main): Invoke test_function. * modules/fmod-tests (Files): Add tests/test-fmod.h, tests/randomd.c. (Makefile.am): Add randomd.c to test_fmod_SOURCES. * modules/fmodf-tests (Files): Add tests/test-fmod.h, tests/randomf.c. (Makefile.am): Add randomf.c to test_fmodf_SOURCES. * modules/fmodl-tests (Files): Add tests/test-fmod.h, tests/randoml.c. (Depends-on): Add 'float'. (Makefile.am): Add randoml.c to test_fmodl_SOURCES. 2012-03-03 Bruno Haible rint* tests: More tests. * tests/test-rint.h: New file, partially extracted from tests/test-rintl.c. * tests/test-rint.c: Include test-rint.h. (main): Invoke test_function. * tests/test-rintf.c: Include test-rint.h. (main): Invoke test_function. * tests/test-rintl.c: Include test-rint.h. (main): Invoke test_function. * modules/rint-tests (Files): Add tests/test-rint.h, tests/randomd.c. (Makefile.am): Add randomd.c to test_rint_SOURCES. * modules/rintf-tests (Files): Add tests/test-rint.h, tests/randomf.c. (Makefile.am): Add randomf.c to test_rintf_SOURCES. * modules/rintl-tests (Files): Add tests/test-rint.h, tests/randoml.c. (Makefile.am): Add randoml.c to test_rintl_SOURCES. 2012-03-03 Bruno Haible modf* tests: More tests. * tests/test-modf.h: New file. * tests/test-modf.c: Include and test-modf.h. (main): Invoke test_function. * tests/test-modff.c: Include and test-modf.h. (main): Invoke test_function. * tests/test-modfl.c: Include and test-modf.h. (main): Invoke test_function. * modules/modf-tests (Files): Add tests/test-modf.h, tests/randomd.c. (Makefile.am): Add randomd.c to test_modf_SOURCES. * modules/modff-tests (Files): Add tests/test-modf.h, tests/randomf.c. (Makefile.am): Add randomf.c to test_modff_SOURCES. * modules/modfl-tests (Files): Add tests/test-modf.h, tests/randoml.c. (Depends-on): Add 'float'. (Makefile.am): Add randoml.c to test_modfl_SOURCES. 2012-03-03 Bruno Haible fabs* tests: More tests. * tests/test-fabs.h: New file, partially extracted from tests/test-fabsl.c. * tests/test-fabs.c (RANDOM): New macro. * tests/test-fabsf.c (RANDOM): New macro. * tests/test-fabsl.c (RANDOM): New macro. * modules/fabs-tests (Files): Add tests/randomd.c. (Makefile.am): Add randomd.c to test_fabs_SOURCES. * modules/fabsf-tests (Files): Add tests/randomf.c. (Makefile.am): Add randomf.c to test_fabsf_SOURCES. * modules/fabsl-tests (Files): Add tests/randoml.c. (Makefile.am): Add randoml.c to test_fabsl_SOURCES. 2012-03-03 Bruno Haible ldexp* tests: More tests. * tests/test-ldexp.h (test_function): Add some pseudo-randomized tests. * tests/test-ldexp.c (RANDOM): New macro. * tests/test-ldexpf.c (RANDOM): New macro. * tests/test-ldexpl.c (RANDOM): New macro. * modules/ldexp-tests (Files): Add tests/randomd.c. (Makefile.am): Add randomd.c to test_ldexp_SOURCES. * modules/ldexpf-tests (Files): Add tests/randomf.c. (Makefile.am): Add randomf.c to test_ldexpf_SOURCES. * modules/ldexpl-tests (Files): Add tests/randoml.c. (Makefile.am): Add randoml.c to test_ldexpl_SOURCES. 2012-03-03 Bruno Haible frexp* tests: More tests. * tests/test-frexp.h (test_function): Add some pseudo-randomized tests. * tests/test-frexp.c (RANDOM): New macro. * tests/test-frexpf.c (RANDOM): New macro. * tests/test-frexpl.c (RANDOM): New macro. * modules/frexp-tests (Files): Add tests/randomd.c. (Makefile.am): Add randomd.c to test_frexp_SOURCES. * modules/frexpf-tests (Files): Add tests/randomf.c. (Makefile.am): Add randomf.c to test_frexpf_SOURCES. * modules/frexpl-tests (Files): Add tests/randoml.c. (Makefile.am): Add randoml.c to test_frexpl_SOURCES. 2012-03-03 Bruno Haible Support for pseudo-random numbers in tests. * tests/randomf.c: New file. * tests/randomd.c: New file. * tests/randoml.c: New file. * tests/macros.h (randomf, randomd, randoml): New declarations. 2012-03-03 Bruno Haible frexp* tests: Refactor. * tests/test-frexp.h: New file, extracted from tests/test-frexpl.c. * tests/test-frexp.c: Include and use it. * tests/test-frexpf.c: Likewise. * tests/test-frexpl.c: Likewise. * modules/frexp-tests (Files): Add tests/test-frexp.h. * modules/frexpf-tests (Files): Likewise. * modules/frexpl-tests (Files): Likewise. 2012-03-02 Jim Meyering maint: don't specify XZ_OPT=-9ev in dist-related rule Using xz's -9 option is warranted only if you have a very large tarball (see xz's documentation for the sizes vs. presets), and requires 64MiB of memory at decompression time. * top/maint.mk (alpha beta stable): Don't specify XZ_OPT=-9ev. Automake's default of just "-e" is fine. Override on a per-package basis by setting XZ_OPT e.g., in cfg.mk. 2012-03-01 Eric Blake maint.mk: allow announcement for non-gnulib project * maint.mk (announcement): Skip gnulib version if not used. 2012-03-01 Jim Meyering maint.mk: avoid spurious failure of _sc_search_regexp-using tests * top/maint.mk: Initialize _sc_search_regexp parameters, so that envvar settings cannot interfere. Otherwise, setting envvars like prohibit=foo require=bar, etc. would cause spurious test failures. 2012-03-01 Eric Blake maint.mk: add per-line exclusions to prohibitions * maint.mk (_sc_search_regexp): Add $exclude parameter. (sc_prohibit_strcmp, sc_unmarked_diagnostics) (sc_const_long_option): Use it. 2012-03-01 Bruno Haible Tests for module 'expl-ieee'. * modules/expl-ieee-tests: New file. * tests/test-expl-ieee.c: New file. New module 'expl-ieee'. * modules/expl-ieee: New file. Tests for module 'exp-ieee'. * modules/exp-ieee-tests: New file. * tests/test-exp-ieee.c: New file. New module 'exp-ieee'. * modules/exp-ieee: New file. Tests for module 'expf-ieee'. * modules/expf-ieee-tests: New file. * tests/test-expf-ieee.c: New file. * tests/test-exp-ieee.h: New file. New module 'expf-ieee'. * modules/expf-ieee: New file. 2012-02-29 Bruno Haible cbrtl-ieee: Work around test failure on IRIX 6.5. * m4/cbrtl-ieee.m4: New file. * m4/cbrtl.m4 (gl_FUNC_CBRTL): If gl_FUNC_CBRTL_IEEE is present, test whether cbrtl works with a minus zero argument. Replace it if not. * lib/math.in.h (cbrtl): Override if REPLACE_CBRTL is 1. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_CBRTL. * modules/math (Makefile.am): Substitute REPLACE_CBRTL. * modules/cbrtl (configure.ac): Consider REPLACE_CBRTL. (Depends-on): Update conditions. * modules/cbrtl-ieee (Files): Add m4/cbrtl-ieee.m4, m4/minus-zero.m4, m4/signbit.m4. (configure.ac): Invoke gl_FUNC_CBRTL_IEEE. * lib/cbrtl.c (cbrtl) [IRIX]: Avoid an unnecessary addition. * doc/posix-functions/cbrtl.texi: Mention the cbrtl-ieee module. Tests for module 'cbrtl-ieee'. * modules/cbrtl-ieee-tests: New file. * tests/test-cbrtl-ieee.c: New file. New module 'cbrtl-ieee'. * modules/cbrtl-ieee: New file. Tests for module 'cbrt-ieee'. * modules/cbrt-ieee-tests: New file. * tests/test-cbrt-ieee.c: New file. New module 'cbrt-ieee'. * modules/cbrt-ieee: New file. Tests for module 'cbrtf-ieee'. * modules/cbrtf-ieee-tests: New file. * tests/test-cbrtf-ieee.c: New file. * tests/test-cbrt-ieee.h: New file. New module 'cbrtf-ieee'. * modules/cbrtf-ieee: New file. 2012-02-29 Bruno Haible cbrtf: Work around bug in IRIX 6.5 system function. * lib/math.in.h (cbrtf): Override if REPLACE_CBRTF is 1. * m4/cbrtf.m4 (gl_FUNC_CBRTF_WORKS): New macro. (gl_FUNC_CBRTF): Invoke it. Set REPLACE_CBRTF to 1 if cbrtf() does not work. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_CBRTF. * modules/math (Makefile.am): Substitute REPLACE_CBRTF. * modules/cbrtf (configure.ac): Consider REPLACE_CBRTF. (Depends-on): Update conditions. * doc/posix-functions/cbrtf.texi: Mention the IRIX 6.5 problem. 2012-02-29 Bruno Haible Tests for module 'cbrtl'. * modules/cbrtl-tests: New file. * tests/test-cbrtl.c: New file. New module 'cbrtl'. * lib/math.in.h (cbrtl): New declaration. * lib/cbrtl.c: New file. * m4/cbrtl.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether cbrtl is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_CBRTL, HAVE_CBRTL, HAVE_DECL_CBRTL. * modules/math (Makefile.am): Substitute GNULIB_CBRTL, HAVE_CBRTL, HAVE_DECL_CBRTL. * modules/cbrtl: New file. * tests/test-math-c++.cc: Check the declaration of cbrtl. * doc/posix-functions/cbrtl.texi: Mention the new module. 2012-02-29 Bruno Haible Tests for module 'cbrtf'. * modules/cbrtf-tests: New file. * tests/test-cbrtf.c: New file. New module 'cbrtf'. * lib/math.in.h (cbrtf): New declaration. * lib/cbrtf.c: New file. * m4/cbrtf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether cbrtf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_CBRTF, HAVE_CBRTF, HAVE_DECL_CBRTF. * modules/math (Makefile.am): Substitute GNULIB_CBRTF, HAVE_CBRTF, HAVE_DECL_CBRTF. * modules/cbrtf: New file. * tests/test-math-c++.cc: Check the declaration of cbrtf. * doc/posix-functions/cbrtf.texi: Mention the new module. 2012-02-29 Bruno Haible cbrt: Provide replacement on MSVC and Minix. * lib/math.in.h (cbrt): New declaration. * lib/cbrt.c: New file. * m4/cbrt.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether cbrt is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_CBRT, HAVE_CBRT. * modules/math (Makefile.am): Substitute GNULIB_CBRT, HAVE_CBRT. * modules/cbrt (Files): Add lib/cbrt.c, m4/cbrt.m4. (Depends-on): Add dependencies. (configure.ac): Arrange to compile replacement if HAVE_CBRT is 0. * tests/test-math-c++.cc: Check the declaration of cbrt. * doc/posix-functions/cbrt.texi: Mention that the module provides a replacement. 2012-02-29 Bruno Haible hypotl-ieee: Work around test failure on OSF/1 and native Windows. * m4/hypotl-ieee.m4: New file. * m4/hypotl.m4 (gl_FUNC_HYPOTL): If gl_FUNC_HYPOTL_IEEE is present, test whether hypotl works with mixed NaN and Infinity arguments. Replace it if not. * lib/math.in.h (hypotl): Override if REPLACE_HYPOTL is 1. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_HYPOTL. * modules/math (Makefile.am): Substitute REPLACE_HYPOTL. * modules/hypotl (configure.ac): Consider REPLACE_HYPOTL. (Depends-on): Update conditions. * modules/hypotl-ieee (Files): Add m4/hypotl-ieee.m4. (Depends-on): Add hypot-ieee. (configure.ac): Invoke gl_FUNC_HYPOTL_IEEE. * doc/posix-functions/hypotl.texi: Mention the hypotl-ieee module. hypotf-ieee: Work around test failure on OSF/1 and native Windows. * m4/hypotf-ieee.m4: New file. * m4/hypotf.m4 (gl_FUNC_HYPOTF): If gl_FUNC_HYPOTF_IEEE is present, test whether hypotf works with mixed NaN and Infinity arguments. Replace it if not. * modules/hypotf-ieee (Files): Add m4/hypotf-ieee.m4. (Depends-on): Add hypot-ieee. (configure.ac): Invoke gl_FUNC_HYPOTF_IEEE. * doc/posix-functions/hypotf.texi: Mention the hypotf-ieee module. hypot-ieee: Work around test failure on OSF/1 and native Windows. * lib/math.in.h (hypot): New declaration. * lib/hypot.c: New file. * m4/hypot-ieee.m4: New file. * m4/hypot.m4 (gl_FUNC_HYPOT): If gl_FUNC_HYPOT_IEEE is present, test whether hypot works with mixed NaN and Infinity arguments. Replace it if not. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_HYPOT, REPLACE_HYPOT. * modules/math (Makefile.am): Substitute GNULIB_HYPOT, REPLACE_HYPOT. * modules/hypot (Files): Add lib/hypot.c. (Depends-on): Add dependencies. (configure.ac): Arrange to compile replacement if REPLACE_HYPOT is 1. * modules/hypot-ieee (Files): Add m4/hypot-ieee.m4. (configure.ac): Invoke gl_FUNC_HYPOT_IEEE. * tests/test-math-c++.cc: Check the declaration of hypot. * doc/posix-functions/hypot.texi: Mention the hypot-ieee module. Tests for module 'hypotl-ieee'. * modules/hypotl-ieee-tests: New file. * tests/test-hypotl-ieee.c: New file. New module 'hypotl-ieee'. * modules/hypotl-ieee: New file. Tests for module 'hypot-ieee'. * modules/hypot-ieee-tests: New file. * tests/test-hypot-ieee.c: New file. New module 'hypot-ieee'. * modules/hypot-ieee: New file. Tests for module 'hypotf-ieee'. * modules/hypotf-ieee-tests: New file. * tests/test-hypotf-ieee.c: New file. * tests/test-hypot-ieee.h: New file. New module 'hypotf-ieee'. * modules/hypotf-ieee: New file. 2012-02-29 Bruno Haible Remove unused variables. * m4/fmod.m4 (gl_FUNC_FMOD): Remove unused variable 'i'. * m4/fmodl.m4 (gl_FUNC_FMODL): Likewise. * m4/remainder.m4 (gl_FUNC_REMAINDER): Likewise. * m4/remainderl.m4 (gl_FUNC_REMAINDERL): Likewise. 2012-02-29 Eric Blake termios: fix pid_t always, not just for tcgetsid * doc/posix-headers/termios.texi (termios.h): Mention problem. * lib/termios.in.h (include): Ensure pid_t on all platforms, not just when building tcgetsid. 2012-02-29 Bruno Haible Tests for module 'hypotl'. * modules/hypotl-tests: New file. * tests/test-hypotl.c: New file. New module 'hypotl'. * lib/math.in.h (hypotl): New declaration. * lib/hypotl.c: New file. * m4/hypotl.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether hypotf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_HYPOTL, HAVE_HYPOTL. * modules/math (Makefile.am): Substitute GNULIB_HYPOTL, HAVE_HYPOTL. * modules/hypotl: New file. * tests/test-math-c++.cc: Check the hypotl declaration. * doc/posix-functions/hypotl.texi: Mention the new module. 2012-02-29 Eric Blake tcgetsid: fix cygwin header bug * lib/termios.in.h (includes) [Cygwin]: Ensure pid_t is defined. docs: update cygwin progress * doc/posix-functions/llround.texi (llround): Added in cygwin 1.7.8. * doc/posix-functions/llroundf.texi (llroundf): Likewise. * doc/glibc-functions/program_invocation_name.texi (program_invocation_name): Likewise. * doc/glibc-functions/program_invocation_short_name.texi (program_invocation_short_name): Likewise. * doc/glibc-functions/madvise.texi (madvise): Likewise. * doc/glibc-functions/pthread_yield.texi (pthread_yield): Likewise. * doc/posix-functions/pthread_spin_destroy.texi (pthread_spin_destroy): Added in cygwin 1.7.10. * doc/posix-functions/pthread_spin_init.texi (pthread_spin_init): Likewise. * doc/posix-functions/pthread_spin_lock.texi (pthread_spin_lock): Likewise. * doc/posix-functions/pthread_spin_trylock.texi (pthread_spin_trylock): Likewise. * doc/posix-functions/pthread_spin_unlock.texi (pthread_spin_unlock): Likewise. * doc/posix-functions/pthread_setschedprio.texi (pthread_setschedprio): Likewise. * doc/posix-functions/pthread_attr_getstack.texi (pthread_attr_getstack): Likewise. * doc/pastposix-functions/pthread_attr_getstackaddr.texi (pthread_attr_getstackaddr): Likewise. * doc/glibc-functions/pthread_getattr_np.texi (pthread_getattr_np): Likewise. * doc/glibc-functions/sys_siglist.texi (sys_siglist): Likewise. * doc/glibc-functions/sysinfo.texi (sysinfo): Likewise. * doc/posix-functions/clock_settime.texi (clock_settime): Likewise. * doc/posix-functions/pthread_attr_getguardsize.texi (pthread_attr_getguardsize): Likewise. * doc/posix-functions/pthread_attr_setguardsize.texi (pthread_attr_setguardsize): Likewise. * doc/posix-functions/pthread_attr_setstack.texi (pthread_attr_setstack): Likewise. * doc/pastposix-functions/pthread_attr_setstackaddr.texi (pthread_attr_setstackaddr): Likewise. * doc/posix-functions/clock_getcpuclockid.texi (clock_getcpuclockid): Likewise. * doc/posix-functions/pthread_getcpuclockid.texi (pthread_getcpuclockid): Likewise. * doc/glibc-functions/error.texi (error): Likewise. * doc/glibc-functions/error_at_line.texi (error_at_line): Likewise. * doc/glibc-functions/error_message_count.texi (error_message_count): Likewise. * doc/glibc-functions/error_one_per_line.texi (error_one_per_line): Likewise. * doc/glibc-functions/error_print_progname.texi (error_print_progname): Likewise. * doc/posix-functions/pthread_condattr_getclock.texi (pthread_condattr_getclock): Likewise. * doc/posix-functions/pthread_condattr_setclock.texi (pthread_condattr_setclock): Likewise. * doc/posix-functions/clock_nanosleep.texi (clock_nanosleep): Likewise. * doc/glibc-functions/getgrouplist.texi (getgrouplist): Likewise. * doc/glibc-functions/getpt.texi (getpt): Likewise. * doc/glibc-functions/get_current_dir_name.texi (get_current_dir_name): Likewise. * doc/glibc-functions/pthread_sigqueue.texi (pthread_sigqueue): Likewise. * doc/posix-functions/tcgetsid.texi (tcgetsid): Likewise, but with wrong return type. * doc/glibc-functions/scandirat.texi (scandirat): Added in cygwin 1.7.11. 2012-02-29 Bruno Haible Tests for module 'hypotf'. * modules/hypotf-tests: New file. * tests/test-hypotf.c: New file. New module 'hypotf'. * lib/math.in.h (hypotf): New declaration. * lib/hypotf.c: New file. * m4/hypotf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether hypotf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_HYPOTF, HAVE_HYPOTF, REPLACE_HYPOTF. * modules/math (Makefile.am): Substitute GNULIB_HYPOTF, HAVE_HYPOTF, REPLACE_HYPOTF. * modules/hypotf: New file. * tests/test-math-c++.cc: Check the hypotf declaration. * doc/posix-functions/hypotf.texi: Mention the new module. hypot: Prepare for hypotf module. * m4/hypot.m4: New file. * modules/hypot (Files): Add m4/hypot.m4. (configure.ac): Invoke gl_FUNC_HYPOT. 2012-02-29 Bruno Haible hypot tests: More tests. * tests/test-hypot.c: Include . (main): Add tests about overflow and underflow. 2012-02-29 Bruno Haible math code: Add comments. * lib/acosl.c: Add comment about related glibc source files. * lib/asinl.c: Likewise. * lib/atanl.c: Likewise. * lib/expl.c: Likewise. * lib/logl.c: Likewise. * lib/sincosl.c: Likewise. * lib/sinl.c: Likewise. * lib/tanl.c: Likewise. * lib/trigl.c: Likewise. * lib/cosl.c: Likewise. Fix comments. 2012-02-28 Bruno Haible math: Ensure HUGE_VAL, HUGE_VALF, HUGE_VALL are defined. * lib/math.in.h (HUGE_VAL, HUGE_VALF, HUGE_VALL): Define fallbacks. * tests/test-math.c: Include macros.h. Check that HUGE_VAL, HUGE_VALF, HUGE_VALL are defined. (numeric_equald): Renamed from numeric_equal. (numeric_equalf, numeric_equall): New functions. (main): Check also HUGE_VALF, HUGE_VALL. * modules/math-tests (Files): Add tests/macros.h. * doc/posix-headers/math.texi: Document the problems with HUGE_VALF and HUGE_VALL. 2012-02-28 Bruno Haible doc: Move ISO C11 feature notes into POSIX chapters. * doc/posix-functions/aligned_alloc.texi: Renamed from doc/glibc-functions/aligned_alloc.texi. * doc/posix-functions/quick_exit.texi: Renamed from doc/glibc-functions/quick_exit.texi. * doc/posix-headers/uchar.texi: Renamed from doc/glibc-headers/uchar.texi. * doc/posix-functions/c16rtomb.texi: Renamed from doc/glibc-functions/c16rtomb.texi. * doc/posix-functions/c32rtomb.texi: Renamed from doc/glibc-functions/c32rtomb.texi. * doc/posix-functions/mbrtoc16.texi: Renamed from doc/glibc-functions/mbrtoc16.texi. * doc/posix-functions/mbrtoc32.texi: Renamed from doc/glibc-functions/mbrtoc32.texi. * doc/gnulib.texi: Update. (Glibc uchar.h): Remove section. Suggested by Eric Blake. 2012-02-29 Paul Eggert stdnoreturn: port to MSVC better MSVC standard headers use __declspec(noreturn), so #define noreturn to empty on that platform. Reported by Bruno Haible in . * lib/stdnoreturn.in.h (noreturn): Define to empty on MSVC. * doc/posix-headers/stdnoreturn.texi (stdnoreturn.h): Document this. 2012-02-28 Bruno Haible doc: Mention new glibc headers and functions. * doc/glibc-headers/uchar.texi: New file. * doc/glibc-functions/aligned_alloc.texi: New file. * doc/glibc-functions/c16rtomb.texi: New file. * doc/glibc-functions/c32rtomb.texi: New file. * doc/glibc-functions/clock_adjtime.texi: New file. * doc/glibc-functions/fanotify_init.texi: New file. * doc/glibc-functions/fanotify_mark.texi: New file. * doc/glibc-functions/inet6_opt_append.texi: New file. * doc/glibc-functions/inet6_opt_find.texi: New file. * doc/glibc-functions/inet6_opt_finish.texi: New file. * doc/glibc-functions/inet6_opt_get_val.texi: New file. * doc/glibc-functions/inet6_opt_init.texi: New file. * doc/glibc-functions/inet6_opt_next.texi: New file. * doc/glibc-functions/inet6_opt_set_val.texi: New file. * doc/glibc-functions/inet6_rth_add.texi: New file. * doc/glibc-functions/inet6_rth_getaddr.texi: New file. * doc/glibc-functions/inet6_rth_init.texi: New file. * doc/glibc-functions/inet6_rth_reverse.texi: New file. * doc/glibc-functions/inet6_rth_segments.texi: New file. * doc/glibc-functions/inet6_rth_space.texi: New file. * doc/glibc-functions/login.texi: New file. * doc/glibc-functions/mbrtoc16.texi: New file. * doc/glibc-functions/mbrtoc32.texi: New file. * doc/glibc-functions/name_to_handle_at.texi: New file. * doc/glibc-functions/ntp_gettimex.texi: New file. * doc/glibc-functions/open_by_handle_at.texi: New file. * doc/glibc-functions/prlimit.texi: New file. * doc/glibc-functions/process_vm_readv.texi: New file. * doc/glibc-functions/process_vm_writev.texi: New file. * doc/glibc-functions/recvmmsg.texi: New file. * doc/glibc-functions/scandirat.texi: New file. * doc/glibc-functions/sendmmsg.texi: New file. * doc/glibc-functions/setns.texi: New file. * doc/glibc-functions/timespec_get.texi: New file. * doc/gnulib.texi: Include them. (Glibc sys/fanotify.h, Glibc sys/resource.h, Glibc uchar.h): New sections. Reported by Eric Blake. 2012-02-28 Bruno Haible Avoid compilation errors with MSVC option -fp:strict. * lib/floor.c: Use MSVC specific pragma fenv_access. * lib/ceil.c: Likewise. * lib/trunc.c: Likewise. * lib/round.c: Likewise. * lib/rint.c: Likewise. * lib/fma.c: Likewise. * lib/integer_length.c: Likewise. * m4/round.m4 (gl_FUNC_ROUND): Likewise. * m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise. * tests/test-floor2.c: Likewise. * tests/test-floorf2.c: Likewise. * tests/test-ceil2.c: Likewise. * tests/test-ceilf2.c: Likewise. * tests/test-trunc2.c: Likewise. * tests/test-truncf2.c: Likewise. Reported by Michael Goffioul . 2012-02-27 Bruno Haible Tests for module 'sqrtl-ieee'. * modules/sqrtl-ieee-tests: New file. * tests/test-sqrtl-ieee.c: New file. New module 'sqrtl-ieee'. * modules/sqrtl-ieee: New file. Tests for module 'sqrt-ieee'. * modules/sqrt-ieee-tests: New file. * tests/test-sqrt-ieee.c: New file. New module 'sqrt-ieee'. * modules/sqrt-ieee: New file. Tests for module 'sqrtf-ieee'. * modules/sqrtf-ieee-tests: New file. * tests/test-sqrtf-ieee.c: New file. * tests/test-sqrt-ieee.h: New file. New module 'sqrtf-ieee'. * modules/sqrtf-ieee: New file. 2012-02-27 Bruno Haible remainderl-ieee: Work around test failure on OSF/1. * m4/remainderl-ieee.m4: New file. * m4/remainderl.m4 (gl_FUNC_REMAINDERL): If gl_FUNC_REMAINDERL_IEEE is present, test whether remainderl works with a zero second argument. Replace it if not. * lib/math.in.h (remainderl): Override if REPLACE_REMAINDERL is 1. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_REMAINDERL. * modules/math (Makefile.am): Substitute REPLACE_REMAINDERL. * modules/remainderl (configure.ac): Consider REPLACE_REMAINDERL. (Depends-on): Update conditions. * modules/remainderl-ieee (Files): Add m4/remainderl-ieee.m4. (Depends-on): Add remainder-ieee. (configure.ac): Invoke gl_FUNC_REMAINDERL_IEEE. * doc/posix-functions/remainderl.texi: Mention the remainderl-ieee module. remainderf-ieee: Work around test failure on OSF/1. * m4/remainderf-ieee.m4: New file. * m4/remainderf.m4 (gl_FUNC_REMAINDERF): If gl_FUNC_REMAINDERF_IEEE is present, test whether remainderf works with a zero second argument. Replace it if not. * lib/math.in.h (remainderf): Override if REPLACE_REMAINDERF is 1. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_REMAINDERF. * modules/math (Makefile.am): Substitute REPLACE_REMAINDERF. * modules/remainderf (configure.ac): Consider REPLACE_REMAINDERF. (Depends-on): Update conditions. * modules/remainderf-ieee (Files): Add m4/remainderf-ieee.m4. (Depends-on): Add remainder-ieee. (configure.ac): Invoke gl_FUNC_REMAINDERF_IEEE. * doc/posix-functions/remainderf.texi: Mention the remainderf-ieee module. remainder-ieee: Work around test failure on OSF/1. * m4/remainder-ieee.m4: New file. * m4/remainder.m4 (gl_FUNC_REMAINDER): If gl_FUNC_REMAINDER_IEEE is present, test whether remainder works with a zero second argument. Replace it if not. * lib/math.in.h (remainder): Override if REPLACE_REMAINDER is 1. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_REMAINDER. * modules/math (Makefile.am): Substitute REPLACE_REMAINDER. * modules/remainder (configure.ac): Consider REPLACE_REMAINDER. (Depends-on): Update dependencies. * modules/remainder-ieee (Files): Add m4/remainder-ieee.m4. (configure.ac): Invoke gl_FUNC_REMAINDER_IEEE. * doc/posix-functions/remainder.texi: Mention the remainder-ieee module. Tests for module 'remainderl-ieee'. * modules/remainderl-ieee-tests: New file. * tests/test-remainderl-ieee.c: New file. New module 'remainderl-ieee'. * modules/remainderl-ieee: New file. Tests for module 'remainder-ieee'. * modules/remainder-ieee-tests: New file. * tests/test-remainder-ieee.c: New file. New module 'remainder-ieee'. * modules/remainder-ieee: New file. Tests for module 'remainderf-ieee'. * modules/remainderf-ieee-tests: New file. * tests/test-remainderf-ieee.c: New file. * tests/test-remainder-ieee.h: New file. New module 'remainderf-ieee'. * modules/remainderf-ieee: New file. 2012-02-27 Bruno Haible modff, modfl: Fix configure syntax error. * m4/modff.m4 (gl_FUNC_MODFF): Insert ':' command in 'if'. * m4/modfl.m4 (gl_FUNC_MODFL): Likewise. 2012-02-27 Bruno Haible fmodl-ieee: Work around test failures on OSF/1, MSVC 9. * m4/fmodl-ieee.m4: New file. * m4/fmodl.m4 (gl_FUNC_FMODL): If gl_FUNC_FMODL_IEEE is present, test whether fmodl works with zero arguments. Replace it if not. * modules/fmodl-ieee (Files): Add m4/fmodl-ieee.m4. (Depends-on): Add fmod-ieee. (configure.ac): Invoke gl_FUNC_FMODL_IEEE. * doc/posix-functions/fmodl.texi: Mention the fmodl-ieee module. fmodf-ieee: Work around test failure on OSF/1. * m4/fmodf-ieee.m4: New file. * m4/fmodf.m4 (gl_FUNC_FMODF): If gl_FUNC_FMODF_IEEE is present, test whether fmodf works with zero arguments. Replace it if not. * lib/math.in.h (fmodf): Override if REPLACE_FMODF is 1. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_FMODF. * modules/math (Makefile.am): Substitute REPLACE_FMODF. * modules/fmodf (configure.ac): Consider REPLACE_FMODF. (Depends-on): Update dependencies. * modules/fmodf-ieee (Files): Add m4/fmodf-ieee.m4. (configure.ac): Invoke gl_FUNC_FMODF_IEEE. * doc/posix-functions/fmodf.texi: Mention the problem on OSF/1. fmodf-ieee: Work around test failure on MSVC 9. * modules/fmodf-ieee (Depends-on): Add fmod-ieee. * doc/posix-functions/fmodf.texi: Mention the fmodf-ieee module. fmod-ieee: Work around test failures on OSF/1, mingw. * m4/fmod-ieee.m4: New file. * m4/fmod.m4 (gl_FUNC_FMOD): If gl_FUNC_FMOD_IEEE is present, test whether fmod works with zero arguments. Replace it if not. * lib/math.in.h (fmod): New declaration. * lib/fmod.c: New file. * m4/math_h.m4 (gl_MATH_H): Test whether fmod is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_FMOD, REPLACE_FMOD. * modules/math (Makefile.am): Substitute GNULIB_FMOD, REPLACE_FMOD. * modules/fmod (Files): Add lib/fmod.c. (Depends-on): Add math, isinf, trunc, fma. (configure.ac): Arrange to compile lib/fmod.c if needed. * modules/fmod-ieee (Files): Add m4/fmod-ieee.m4, m4/minus-zero.m4, m4/signbit.m4. (configure.ac): Invoke gl_FUNC_FMOD_IEEE. * tests/test-math-c++.cc: Check the declaration of fmod. * doc/posix-functions/fmod.texi: Mention the fmod-ieee module. fmodl-ieee: Fix test failures. * lib/fmodl.c (fmodl): Treat Inf specially. * modules/fmodl (Depends-on): Add isinf. Tests for module 'fmodl-ieee'. * modules/fmodl-ieee-tests: New file. * tests/test-fmodl-ieee.c: New file. New module 'fmodl-ieee'. * modules/fmodl-ieee: New file. Tests for module 'fmod-ieee'. * modules/fmod-ieee-tests: New file. * tests/test-fmod-ieee.c: New file. New module 'fmod-ieee'. * modules/fmod-ieee: New file. Tests for module 'fmodf-ieee'. * modules/fmodf-ieee-tests: New file. * tests/test-fmodf-ieee.c: New file. * tests/test-fmod-ieee.h: New file. New module 'fmodf-ieee'. * modules/fmodf-ieee: New file. 2012-02-27 Bruno Haible Tests for module 'rintl-ieee'. * modules/rintl-ieee-tests: New file. * tests/test-rintl-ieee.c: New file. New module 'rintl-ieee'. * modules/rintl-ieee: New file. Tests for module 'rint-ieee'. * modules/rint-ieee-tests: New file. * tests/test-rint-ieee.c: New file. New module 'rint-ieee'. * modules/rint-ieee: New file. Tests for module 'rintf-ieee'. * modules/rintf-ieee-tests: New file. * tests/test-rintf-ieee.c: New file. * tests/test-rint-ieee.h: New file. New module 'rintf-ieee'. * modules/rintf-ieee: New file. 2012-02-26 Paul Eggert regex: re_search etc. should return -2 when memory exhausted This bug was uncovered when testing 'grep'. Without the fix, re_search and friends return -1 when memory is exhausted, but -1 means no match, and this causes grep to falsely report no-match instead of memory-exhaustion. See . * lib/regexec.c (re_search_stub): Return -2 (not -1) if there is trouble; this can occur if re_search_internal ran out of memory. 2012-02-26 Bruno Haible modfl-ieee: Work around test failures on IRIX, OSF/1, mingw. * m4/modfl-ieee.m4: New file. * m4/modfl.m4 (gl_FUNC_MODFL): If gl_FUNC_MODFL_IEEE is present, test whether modfl works with Inf. Replace it if not. * lib/math.in.h (modfl): Override if REPLACE_MODFF is 1. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_MODFL. * modules/math (Makefile.am): Substitute REPLACE_MODFL. * modules/modfl (configure.ac): Consider REPLACE_MODFL. (Depends-on): Update dependencies. * modules/modfl-ieee (Files): Add m4/modfl-ieee.m4, m4/minus-zero.m4, m4/signbit.m4. (configure.ac): Invoke gl_FUNC_MODFL_IEEE. * doc/posix-functions/modfl.texi: Mention the modfl-ieee module. modfl-ieee: Fix dependencies. * modules/modfl-ieee (Depends-on): Add modf-ieee. modfl-ieee: Fix test failures. * lib/modfl.c (modfl): Treat NaN and Inf specially. * modules/modfl (Depends-on): Add isfinite, isinf. modff-ieee: Work around test failures on *BSD, IRIX, OSF/1, etc. * m4/modff-ieee.m4: New file. * m4/modff.m4 (gl_FUNC_MODFF): If gl_FUNC_MODFF_IEEE is present, test whether modff works with NaN and Inf. Replace it if not. * lib/math.in.h (modff): Override if REPLACE_MODFF is 1. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_MODFF. * modules/math (Makefile.am): Substitute REPLACE_MODFF. * modules/modff (configure.ac): Consider REPLACE_MODFF. (Depends-on): Update dependencies. * modules/modff-ieee (Files): Add m4/modff-ieee.m4, m4/minus-zero.m4, m4/signbit.m4. (Depends-on): Add modf-ieee. (configure.ac): Invoke gl_FUNC_MODFF_IEEE. * doc/posix-functions/modff.texi: Mention the modff-ieee module. modf-ieee: Work around test failures on *BSD, IRIX, OSF/1, Cygwin. * m4/modf-ieee.m4: New file. * m4/modf.m4 (gl_FUNC_MODF): If gl_FUNC_MODF_IEEE is present, test whether modf works with NaN and Inf. Replace it if not. * lib/math.in.h (modf): New declaration. * lib/modf.c: New file. * m4/math_h.m4 (gl_MATH_H): Test whether modf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_MODF, REPLACE_MODF. * modules/math (Makefile.am): Substitute GNULIB_MODF, REPLACE_MODF. * modules/modf (Files): Add lib/modf.c. (Depends-on): Add math, isfinite, trunc, isinf. (configure.ac): Addrange to compile lib/modf.c if needed. * modules/modf-ieee (Files): Add m4/modf-ieee.m4, m4/minus-zero.m4, m4/signbit.m4. (configure.ac): Invoke gl_FUNC_MODF_IEEE. * tests/test-math-c++.cc: Check the declaration of modf. * doc/posix-functions/modf.texi: Mention the modf-ieee module. Tests for module 'modfl-ieee'. * modules/modfl-ieee-tests: New file. * tests/test-modfl-ieee.c: New file. New module 'modfl-ieee'. * modules/modfl-ieee: New file. Tests for module 'modf-ieee'. * modules/modf-ieee-tests: New file. * tests/test-modf-ieee.c: New file. New module 'modf-ieee'. * modules/modf-ieee: New file. Tests for module 'modff-ieee'. * modules/modff-ieee-tests: New file. * tests/test-modff-ieee.c: New file. * tests/test-modf-ieee.h: New file. New module 'modff-ieee'. * modules/modff-ieee: New file. 2012-02-26 Bruno Haible Tests for module 'fabsl-ieee'. * modules/fabsl-ieee-tests: New file. * tests/test-fabsl-ieee.c: New file. New module 'fabsl-ieee'. * modules/fabsl-ieee: New file. Tests for module 'fabs-ieee'. * modules/fabs-ieee-tests: New file. * tests/test-fabs-ieee.c: New file. New module 'fabs-ieee'. * modules/fabs-ieee: New file. Tests for module 'fabsf-ieee'. * modules/fabsf-ieee-tests: New file. * tests/test-fabsf-ieee.c: New file. * tests/test-fabs-ieee.h: New file. New module 'fabsf-ieee'. * modules/fabsf-ieee: New file. 2012-02-26 Bruno Haible Tests for module 'fmal-ieee'. * modules/fmal-ieee-tests: New file. * tests/test-fmal-ieee.c: New file. New module 'fmal-ieee'. * modules/fmal-ieee: New file. Tests for module 'fma-ieee'. * modules/fma-ieee-tests: New file. * tests/test-fma-ieee.c: New file. New module 'fma-ieee'. * modules/fma-ieee: New file. Tests for module 'fmaf-ieee'. * modules/fmaf-ieee-tests: New file. * tests/test-fmaf-ieee.c: New file. * tests/test-fma-ieee.h: New file. New module 'fmaf-ieee'. * modules/fmaf-ieee: New file. 2012-02-26 Bruno Haible Tests for module 'ldexpl-ieee'. * modules/ldexpl-ieee-tests: New file. * tests/test-ldexpl-ieee.c: New file. New module 'ldexpl-ieee'. * modules/ldexpl-ieee: New file. Tests for module 'ldexp-ieee'. * modules/ldexp-ieee-tests: New file. * tests/test-ldexp-ieee.c: New file. New module 'ldexp-ieee'. * modules/ldexp-ieee: New file. Tests for module 'ldexpf-ieee'. * modules/ldexpf-ieee-tests: New file. * tests/test-ldexpf-ieee.c: New file. * tests/test-ldexp-ieee.h: New file. New module 'ldexpf-ieee'. * modules/ldexpf-ieee: New file. 2012-02-26 Bruno Haible Refactor frexp*-ieee tests. * tests/test-frexp-ieee.h: New file. * tests/test-frexpf-ieee.c: Include test-frexp-ieee.h. (main): Just call test_function. * tests/test-frexp-ieee.c: Include test-frexp-ieee.h. (main): Just call test_function. * tests/test-frexpl-ieee.c: Include test-frexp-ieee.h. (main): Just call test_function. * modules/frexpf-ieee-tests (Files): Add tests/test-frexp-ieee.h. * modules/frexp-ieee-tests (Files): Likewise. * modules/frexpl-ieee-tests (Files): Likewise. Tests for module 'frexpl-ieee'. * modules/frexpl-ieee-tests: New file. * tests/test-frexpl-ieee.c: New file. New module 'frexpl-ieee'. * modules/frexpl-ieee: New file. Tests for module 'frexp-ieee'. * modules/frexp-ieee-tests: New file. * tests/test-frexp-ieee.c: New file. New module 'frexp-ieee'. * modules/frexp-ieee: New file. Tests for module 'frexpf-ieee'. * modules/frexpf-ieee-tests: New file. * tests/test-frexpf-ieee.c: New file. New module 'frexpf-ieee'. * modules/frexpf-ieee: New file. 2012-02-26 Bruno Haible roundl-ieee tests: More tests. * tests/test-roundl-ieee.c: Include isnanl-nolibm.h, infinity.h, nan.h. (main): Add tests for [MX] shaded specification in POSIX. * modules/roundl-ieee-tests (Files): Add tests/infinity.h, tests/nan.h. (Depends-on): Add isnanl-nolibm. round-ieee tests: More tests. * tests/test-round-ieee.c: Include isnand-nolibm.h, infinity.h, nan.h. (main): Add tests for [MX] shaded specification in POSIX. * modules/round-ieee-tests (Files): Add tests/infinity.h, tests/nan.h. (Depends-on): Add isnand-nolibm. roundf-ieee tests: More tests. * tests/test-roundf-ieee.c: Include isnanf-nolibm.h, infinity.h, nan.h. (main): Add tests for [MX] shaded specification in POSIX. * modules/roundf-ieee-tests (Files): Add tests/infinity.h, tests/nan.h. (Depends-on): Add isnanf-nolibm. truncl-ieee tests: More tests. * tests/test-truncl-ieee.c: Include isnanl-nolibm.h, infinity.h, nan.h. (main): Add tests for [MX] shaded specification in POSIX. * modules/truncl-ieee-tests (Files): Add tests/infinity.h, tests/nan.h. (Depends-on): Add isnanl-nolibm. trunc-ieee tests: More tests. * tests/test-trunc-ieee.c: Include isnand-nolibm.h, infinity.h, nan.h. (main): Add tests for [MX] shaded specification in POSIX. * modules/trunc-ieee-tests (Files): Add tests/infinity.h, tests/nan.h. (Depends-on): Add isnand-nolibm. truncf-ieee tests: More tests. * tests/test-truncf-ieee.c: Include isnanf-nolibm.h, infinity.h, nan.h. (main): Add tests for [MX] shaded specification in POSIX. * modules/truncf-ieee-tests (Files): Add tests/infinity.h, tests/nan.h. (Depends-on): Add isnanf-nolibm. ceill-ieee tests: More tests. * tests/test-ceill-ieee.c: Include isnanl-nolibm.h, infinity.h, nan.h. (main): Add tests for [MX] shaded specification in POSIX. * modules/ceill-ieee-tests (Files): Add tests/infinity.h, tests/nan.h. (Depends-on): Add isnanl-nolibm. ceil-ieee tests: More tests. * tests/test-ceil-ieee.c: Include isnand-nolibm.h, infinity.h, nan.h. (main): Add tests for [MX] shaded specification in POSIX. * modules/ceil-ieee-tests (Files): Add tests/infinity.h, tests/nan.h. (Depends-on): Add isnand-nolibm. ceilf-ieee tests: More tests. * tests/test-ceilf-ieee.c: Include isnanf-nolibm.h, infinity.h, nan.h. (main): Add tests for [MX] shaded specification in POSIX. * modules/ceilf-ieee-tests (Files): Add tests/infinity.h, tests/nan.h. (Depends-on): Add isnanf-nolibm. floorl-ieee tests: More tests. * tests/test-floorl-ieee.c: Include isnanl-nolibm.h, infinity.h, nan.h. (main): Add tests for [MX] shaded specification in POSIX. * modules/floorl-ieee-tests (Files): Add tests/infinity.h, tests/nan.h. (Depends-on): Add isnanl-nolibm. floor-ieee tests: More tests. * tests/test-floor-ieee.c: Include isnand-nolibm.h, infinity.h, nan.h. (main): Add tests for [MX] shaded specification in POSIX. * modules/floor-ieee-tests (Files): Add tests/infinity.h, tests/nan.h. (Depends-on): Add isnand-nolibm. floorf-ieee tests: More tests. * tests/test-floorf-ieee.c: Include isnanf-nolibm.h, infinity.h, nan.h. (main): Add tests for [MX] shaded specification in POSIX. * modules/floorf-ieee-tests (Files): Add tests/infinity.h, tests/nan.h. (Depends-on): Add isnanf-nolibm. 2012-02-26 Bruno Haible fpieee: More comments. * m4/fpieee.m4 (gl_FP_IEEE): Add more comments. 2012-02-25 Bruno Haible Tests for module 'log10l'. * modules/log10l-tests: New file. * tests/test-log10l.c: New file. * tests/test-math-c++.cc: Check the declaration of log10l. New module 'log10l'. * lib/math.in.h (log10l): New declaration. * lib/log10l.c: New file. * m4/log10l.m4: New file. * modules/log10l: New file. * m4/math_h.m4 (gl_MATH_H): Test whether log10l is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG10L, HAVE_LOG10L, HAVE_DECL_LOG10L. * modules/math (Makefile.am): Substitute GNULIB_LOG10L, HAVE_LOG10L, HAVE_DECL_LOG10L. * doc/posix-functions/log10l.texi: Mention the new module. 2012-02-25 Bruno Haible fmodl, remainder*: Avoid wrong results due to rounding errors. * lib/fmodl.c (fmodl): Correct the result if it is not within the expected bounds. * lib/remainderf.c (remainderf): Likewise. * lib/remainder.c (remainder): Likewise. * lib/remainderl.c (remainderl): Likewise. 2012-02-25 Bruno Haible Tests for module 'remainderl'. * modules/remainderl-tests: New file. * tests/test-remainderl.c: New file. * tests/test-math-c++.cc: Check the declaration of remainderl. New module 'remainderl'. * lib/math.in.h (remainderl): New declaration. * lib/remainderl.c: New file. * m4/remainderl.m4: New file. * modules/remainderl: New file. * m4/math_h.m4 (gl_MATH_H): Test whether remainderl is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_REMAINDERL, HAVE_REMAINDERL. * modules/math (Makefile.am): Substitute GNULIB_REMAINDERL, HAVE_REMAINDERL. * doc/posix-functions/remainderl.texi: Mention the new module. 2012-02-25 Bruno Haible Tests for module 'remainderf'. * modules/remainderf-tests: New file. * tests/test-remainderf.c: New file. * tests/test-math-c++.cc: Check the declaration of remainderf. New module 'remainderf'. * lib/math.in.h (remainderf): New declaration. * lib/remainderf.c: New file. * m4/remainderf.m4: New file. * modules/remainderf: New file. * m4/math_h.m4 (gl_MATH_H): Test whether remainderf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_REMAINDERF, HAVE_REMAINDERF. * modules/math (Makefile.am): Substitute GNULIB_REMAINDERF, HAVE_REMAINDERF. * doc/posix-functions/remainderf.texi: Mention the new module. 2012-02-25 Bruno Haible remainder: Support for MSVC. * lib/math.in.h (remainder): New declaration. * lib/remainder.c: New file. * m4/remainder.m4: New file. * modules/remainder (Files): Add lib/remainder.c, m4/remainder.m4. (Depends-on): Add math, round, fma. (configure.ac): Use results of gl_FUNC_REMAINDER. * m4/math_h.m4 (gl_MATH_H): Test whether remainder is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_REMAINDER, HAVE_REMAINDER, HAVE_DECL_REMAINDER. * modules/math (Makefile.am): Substitute GNULIB_REMAINDER, HAVE_REMAINDER, HAVE_DECL_REMAINDER. * tests/test-math-c++.cc: Check the declaration of remainder. * doc/posix-functions/remainder.texi: Mention that the MSVC and IRIX 5 problems are fixed. 2012-02-25 Bruno Haible Tests for module 'fmodl'. * modules/fmodl-tests: New file. * tests/test-fmodl.c: New file. * tests/test-math-c++.cc: Check the declaration of fmodl. New module 'fmodl'. * lib/math.in.h (fmodl): New declaration. * lib/fmodl.c: New file. * m4/fmodl.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether fmodl is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_FMODL, HAVE_FMODL, REPLACE_FMODL. * modules/math (Makefile.am): Substitute GNULIB_FMODL, HAVE_FMODL, REPLACE_FMODL. * modules/fmodl: New file. * doc/posix-functions/fmodl.texi: Mention the new module. 2012-02-25 Bruno Haible Tests for module 'modfl'. * modules/modfl-tests: New file. * tests/test-modfl.c: New file. * tests/test-math-c++.cc: Check the declaration of modfl. New module 'modfl'. * lib/math.in.h (modfl): New declaration. * lib/modfl.c: New file. * m4/modfl.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether modfl is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_MODFL, HAVE_MODFL. * modules/math (Makefile.am): Substitute GNULIB_MODFL, HAVE_MODFL. * modules/modfl: New file. * doc/posix-functions/modfl.texi: Mention the new module. 2012-02-25 Bruno Haible Tests for module 'fabsl'. * modules/fabsl-tests: New file. * tests/test-fabsl.c: New file. * tests/test-math-c++.cc: Check the declaration of fabsl. New module 'fabsl'. * lib/math.in.h (fabsl): New declaration. * lib/fabsl.c: New file. * m4/fabsl.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether fabsl is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_FABSL, HAVE_FABSL, REPLACE_FABSL. * modules/math (Makefile.am): Substitute GNULIB_FABSL, HAVE_FABSL, REPLACE_FABSL. * modules/fabsl: New file. * doc/posix-functions/fabsl.texi: Mention the new module. 2012-02-25 Bruno Haible fabs tests: More tests. * tests/test-fabs.c: Include , minus-zero.h. (zero): New variable. (main): Add tests for signed zero. * modules/fabs-tests (Files): Add tests/minus-zero.h. fabsf tests: More tests. * tests/test-fabsf.c: Include , minus-zero.h. (zero): New variable. (main): Add tests for signed zero. * modules/fabsf-tests (Files): Add tests/minus-zero.h. 2012-02-24 Bruno Haible atanl: Provide function definition on MSVC. * m4/atanl.m4 (gl_FUNC_ATANL): Test also whether atanl can be used as a function pointer. * lib/math.in.h (atanl): Undefine if it does not exist as a function. 2012-02-24 Bruno Haible acosl: Provide function definition on MSVC. * m4/acosl.m4 (gl_FUNC_ACOSL): Test also whether acosl can be used as a function pointer. * lib/math.in.h (acosl): Undefine if it does not exist as a function. 2012-02-24 Bruno Haible asinl: Provide function definition on MSVC. * m4/asinl.m4 (gl_FUNC_ASINL): Test also whether asinl can be used as a function pointer. * lib/math.in.h (asinl): Undefine if it does not exist as a function. 2012-02-24 Bruno Haible tanl: Provide function definition on MSVC. * m4/tanl.m4 (gl_FUNC_TANL): Test also whether tanl can be used as a function pointer. * lib/math.in.h (tanl): Undefine if it does not exist as a function. 2012-02-24 Bruno Haible cosl: Provide function definition on MSVC. * m4/cosl.m4 (gl_FUNC_COSL): Test also whether cosl can be used as a function pointer. * lib/math.in.h (cosl): Undefine if it does not exist as a function. 2012-02-24 Bruno Haible sinl: Provide function definition on MSVC. * m4/sinl.m4 (gl_FUNC_SINL): Test also whether sinl can be used as a function pointer. * lib/math.in.h (sinl): Undefine if it does not exist as a function. 2012-02-24 Bruno Haible logl: Provide function definition on MSVC. * m4/logl.m4 (gl_FUNC_LOGL): Test also whether logl can be used as a function pointer. * lib/math.in.h (logl): Undefine if it does not exist as a function. 2012-02-24 Bruno Haible expl: Provide function definition on MSVC. * m4/expl.m4 (gl_FUNC_EXPL): Test also whether expl can be used as a function pointer. * lib/math.in.h (expl): Undefine if it does not exist as a function. 2012-02-24 Bruno Haible sqrtl: Provide function definition on MSVC. * m4/sqrtl.m4 (gl_FUNC_SQRTL): Test also whether sqrtl can be used as a function pointer. * lib/math.in.h (sqrtl): Undefine if it does not exist as a function. 2012-02-24 Bruno Haible ceill: Provide function definition on MSVC. * m4/ceill.m4 (gl_FUNC_CEILL_LIBS): Test also whether ceill can be used as a function pointer. * lib/math.in.h (ceill): Undefine if it is not declared as a function. 2012-02-24 Bruno Haible floorl: Provide function definition on MSVC. * m4/floorl.m4 (gl_FUNC_FLOORL_LIBS): Test also whether floorl can be used as a function pointer. * lib/math.in.h (floorl): Undefine if it is not declared as a function. 2012-02-24 Bruno Haible ceilf: Provide function definition on MSVC. * m4/ceilf.m4 (gl_FUNC_CEILF_LIBS): Test also whether ceilf can be used as a function pointer. * lib/math.in.h (ceilf): Undefine if it is not declared as a function. 2012-02-24 Bruno Haible floorf: Provide function definition on MSVC. * m4/floorf.m4 (gl_FUNC_FLOORF_LIBS): Test also whether floorf can be used as a function pointer. * lib/math.in.h (floorf): Undefine if it is not declared as a function. 2012-02-24 Paul Eggert stdnoreturn: new module This implements a replacement for C11's . * doc/gnulib.texi (Header File Substitutes): Add stdnoreturn. * doc/posix-headers/stdnoreturn.texi, lib/stdnoreturn.in.h: * m4/stdnoreturn.m4, modules/stdnoreturn, modules/stdnoreturn-tests: * tests/test-stdnoreturn.c: New files. 2012-02-24 Stanislav Brabec (tiny change) regex: fix false multibyte matches in some regular expressions See and . * lib/regex_internal.c (re_string_skip_chars): Fix miscomputation of remain_len that may cause incomplete multi-byte character and false match. 2012-02-24 Jim Meyering maint.mk: tell sc_prohibit_strcmp to ding "0 == strcmp (...)", too * top/maint.mk (sc_prohibit_strcmp): Also prohibit uses of strcmp uses with "==" *before* the call, e.g., 0 == strcmp (...) Remove now-unnecessary str''cmp obfuscation. Suggested by Akim Demaille. 2012-02-24 Bruno Haible streq: Rename macro. * lib/streq.h (STREQ_OPT): Renamed from STREQ. * NEWS: Mention the change. * lib/mbrtowc.c (mbrtowc): Update. * lib/uniwidth/cjk.h (is_cjk_encoding): Update. * lib/wcwidth.c (wcwidth): Update. Suggested by Akim Demaille and Jim Meyering. 2012-02-20 Paul Eggert regex: fix typo in definition of MIN * lib/regex_internal.h (MIN): Fix typo. Problem reported by Thomas Schwinge in . 2012-02-19 Paul Eggert Bruno Haible acl: Don't use ACL_CNT and similar ops, since they are unreliable. * lib/file-has-acl.c (file_has_acl) [HP-UX, NonStop Kernel]: Read the entries into a stack-allocated buffer directly. * lib/copy-acl.c (qcopy_acl) [HP-UX, NonStop Kernel]: Likewise. 2012-02-19 Paul Eggert Bruno Haible acl: Don't use GETACLCNT and similar ops, since they are unreliable. - There were several instances of this pattern: for (;;) { n = acl (f, GETACLCNT, 0, NULL); [ allocate an array A of size N ] if (acl (f, GETACL, n, a) == n) break; } This loop might never terminate if some other process is constantly manipulating the file's ACL. The loop should be rewritten to terminate. - The acl (... GETACLNT ...) call is merely an optimization; its value is merely a hint as to how big to make the array. A better optimization is to avoid the acl (... GETACLNT ...) call entirely, and just guess a reasonably-big size, growing the size and trying again if it's not large enough. This guarantees termination, and saves a system call. * lib/acl-internal.h: Include . (MIN, SIZE_MAX): New macros. * lib/file-has-acl.c (file_has_acl) [Solaris]: Read the entries into a stack-allocated buffer, and use malloc if it does not fit. Don't use GETACLCNT. * lib/set-mode-acl.c (qset_acl) [Solaris]: Likewise. 2012-02-19 Bruno Haible acl: Fix endless loop on Solaris with vxfs. * lib/file-has-acl.c (file_has_acl) [Solaris]: Treat a failing acl()/facl() call for ACE_GETACL like a failing call for ACE_GETACLCNT. * lib/set-mode-acl.c (qset_acl) [Solaris]: Likewise. * lib/copy-acl.c (qcopy_acl)[Solaris]: Likewise. * tests/test-sameacls.c (main)[Solaris]: Likewise. Reported by Bill Jones in , via Paul Eggert. 2012-02-19 Bruno Haible acl: Fix copy-acl test failure on Solaris 11.0. * lib/file-has-acl.c (NEW_ACE_WRITEA_DATA): New macro. (acl_ace_nontrivial): Relax the restrictions on access_masks[] so that this function returns 0 in some more cases. 2012-02-19 Bruno Haible acl: Update doc references. * doc/acl-resources.txt: Update links to Solaris documentation. 2012-02-19 Bruno Haible Fix test failure in many locales on Solaris 11. * tests/test-pipe-filter-gi1.c (main): Don't use range expression in 'tr' arguments. * tests/test-pipe-filter-ii1.c (main): Likewise. * build-aux/bootstrap (check_versions): Run 'tr' command with range expressions in the C locale. * m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Likewise. * m4/host-os.m4 (gl_HOST_OS): Likewise. 2012-02-19 Bruno Haible gnulib-tool: Improve usage message. * gnulib-tool (func_usage): Move doc of --help and --version to the section "Operation modes". 2012-02-18 Reuben Thomas README-release: make it easier to execute commands * top/README-release: break commands out on to separate lines. 2012-02-16 Stefano Lattarini GNUmakefile: simplify detection of unconfigured trees * top/GNUmakefile: Use $(wildcard) instead of $(shell) to determine whether the tree make is being run from is already configured or not. Related simplifications. 2012-02-13 Simon Josefsson * gnulib-tool (func_usage): Document --help and --version. 2012-02-11 Jim Meyering bootstrap: don't exit 0 upon gnulib-tool failure * build-aux/bootstrap (gnulib_tool): If gnulib-tool fails, exit with its exit status, not 0. 2011-12-19 Reuben Thomas README-release: various improvements * top/README-release: Give a command to push changes for the release. Add "distcheck" to list of other pre-release checks. Fix instance of "make stable" which should be "make TYPE". 2012-02-09 Paul Eggert maint: replace FSF snail-mail addresses with URLs * config/argz.mk, lib/accept4.c, lib/alignof.h, lib/alloca.in.h: * lib/alphasort.c, lib/arcfour.c, lib/arcfour.h, lib/arctwo.c: * lib/arctwo.h, lib/argz.c, lib/arpa_inet.in.h, lib/asnprintf.c: * lib/asprintf.c, lib/assert.in.h, lib/base32.c, lib/base32.h: * lib/base64.c, lib/base64.h, lib/c-ctype.c, lib/c-ctype.h: * lib/c-strcase.h, lib/c-strcasecmp.c, lib/c-strncasecmp.c: * lib/check-version.c, lib/check-version.h, lib/config.charset: * lib/ctype.in.h, lib/des.c, lib/des.h, lib/dup3.c, lib/errno.in.h: * lib/float+.h, lib/fnmatch.c, lib/fnmatch.in.h, lib/fnmatch_loop.c: * lib/fseeko.c, lib/gai_strerror.c, lib/gc-gnulib.c: * lib/gc-libgcrypt.c, lib/gc-pbkdf2-sha1.c, lib/gc.h: * lib/getaddrinfo.c, lib/getdelim.c, lib/getfilecon.c, lib/getline.c: * lib/getlogin_r.c, lib/getpass.c, lib/getpass.h, lib/gettext.h: * lib/gettimeofday.c, lib/glob.in.h, lib/glthread/cond.c: * lib/glthread/cond.h, lib/glthread/lock.c, lib/glthread/lock.h: * lib/glthread/thread.c, lib/glthread/thread.h: * lib/glthread/threadlib.c, lib/glthread/yield.h, lib/hmac-md5.c: * lib/hmac-sha1.c, lib/hmac.h, lib/iconv.c, lib/iconv.in.h: * lib/iconv_close.c, lib/iconv_open.c, lib/inet_ntop.c, lib/isfinite.c: * lib/isinf.c, lib/iswblank.c, lib/langinfo.in.h, lib/link.c: * lib/localcharset.c, lib/localcharset.h, lib/lseek.c, lib/malloc.c: * lib/malloca.c, lib/malloca.h, lib/md2.c, lib/md2.h, lib/md4.c: * lib/md4.h, lib/md5.c, lib/md5.h, lib/memmem.c, lib/mempcpy.c: * lib/memset.c, lib/memxor.c, lib/memxor.h, lib/minmax.h, lib/mktime.c: * lib/msvc-inval.c, lib/msvc-inval.h, lib/msvc-nothrow.c: * lib/msvc-nothrow.h, lib/netdb.in.h, lib/netinet_in.in.h, lib/nproc.c: * lib/nproc.h, lib/obstack_printf.c, lib/pathmax.h, lib/pipe.c: * lib/pipe2.c, lib/poll.c, lib/poll.in.h, lib/printf-args.c: * lib/printf-args.h, lib/printf-parse.c, lib/printf-parse.h: * lib/pselect.c, lib/pthread.in.h, lib/pty-private.h, lib/pty.in.h: * lib/read-file.c, lib/read-file.h, lib/ref-add.sin, lib/ref-del.sin: * lib/regcomp.c, lib/regex.c, lib/regex.h, lib/regex_internal.c: * lib/regex_internal.h, lib/regexec.c, lib/rijndael-alg-fst.c: * lib/rijndael-alg-fst.h, lib/rijndael-api-fst.c: * lib/rijndael-api-fst.h, lib/rint.c, lib/rintf.c, lib/rintl.c: * lib/round.c, lib/roundf.c, lib/roundl.c, lib/scandir.c, lib/select.c: * lib/sha1.c, lib/sha1.h, lib/size_max.h, lib/snprintf.c: * lib/stdalign.in.h, lib/stdarg.in.h, lib/stdbool.in.h: * lib/stddef.in.h, lib/stdint.in.h, lib/stdio.in.h, lib/str-kmp.h: * lib/str-two-way.h, lib/strcasecmp.c, lib/strcasestr.c, lib/strdup.c: * lib/striconv.c, lib/striconv.h, lib/string.in.h, lib/strings.in.h: * lib/strncasecmp.c, lib/strndup.c, lib/strnlen.c, lib/strpbrk.c: * lib/strptime.c, lib/strsep.c, lib/strstr.c, lib/strverscmp.c: * lib/sys_file.in.h, lib/sys_ioctl.in.h, lib/sys_select.in.h: * lib/sys_socket.in.h, lib/sys_stat.in.h, lib/sys_time.in.h: * lib/sys_times.in.h, lib/sys_types.in.h, lib/sys_uio.in.h: * lib/sys_utsname.in.h, lib/sys_wait.in.h, lib/tcgetsid.c: * lib/termios.in.h, lib/time.in.h, lib/time_r.c, lib/timegm.c: * lib/times.c, lib/unictype/3level.h, lib/unictype/3levelbit.h: * lib/unistd.in.h, lib/vasnprintf.c, lib/vasnprintf.h, lib/vasprintf.c: * lib/vsnprintf.c, lib/waitpid.c, lib/wchar.in.h, lib/wctype.in.h: * lib/xsize.h, tests/test-closein.c, tests/test-des.c: * tests/test-fclose.c, tests/test-fgetc.c, tests/test-filevercmp.c: * tests/test-fputc.c, tests/test-fread.c, tests/test-fwrite.c: * tests/test-gc-arcfour.c, tests/test-gc-arctwo.c, tests/test-gc-des.c: * tests/test-gc-hmac-md5.c, tests/test-gc-hmac-sha1.c: * tests/test-gc-md2.c, tests/test-gc-md4.c, tests/test-gc-md5.c: * tests/test-gc-pbkdf2-sha1.c, tests/test-gc-rijndael.c: * tests/test-gc-sha1.c, tests/test-gc.c, tests/test-getdelim.c: * tests/test-getline.c, tests/test-getndelim2.c, tests/test-md2.c: * tests/test-md4.c, tests/test-parse-datetime.c, tests/test-perror.c: * tests/test-perror2.c, tests/test-pipe.c, tests/test-pipe2.c: * tests/test-poll.c, tests/test-quotearg-simple.c: * tests/test-quotearg.c, tests/test-quotearg.h: * tests/test-round-ieee.c, tests/test-round1.c: * tests/test-roundf-ieee.c, tests/test-roundf1.c: * tests/test-roundl-ieee.c, tests/test-roundl.c: * tests/test-safe-alloc.c, tests/test-sigpipe.c: * tests/test-spawn-pipe-child.c, tests/test-spawn-pipe-main.c: * tests/test-strerror.c, tests/test-strerror_r.c: * tests/test-strsignal.c, tests/test-strverscmp.c: * tests/test-xmemdup0.c: Replace FSF snail mail addresses with URLs, as per GNU coding standards. See glibc bug . 2011-12-22 Reuben Thomas README-release: capitalize a word and split a line * top/README-release: Fix punctuation and spacing. 2012-02-08 Akim Demaille fatal-signal: use C prototypes (with explicit void). * lib/fatal-signal.c (uninstall_handlers, install_handlers) (init_fatal_signal_set, block_fatal_signals): Fix signatures. 2012-02-07 Paul Eggert regex: spelling fix * lib/regexec.c: spelling fix regex: rely on stdint.h for SIZE_MAX * lib/regex_internal.h (SIZE_MAX): Remove; stdint.h supplies this now. 2012-02-07 Paul Eggert regex: merge glibc changes * lib/regcomp.c (init_dfa): Tighten overflow checks to test for IDX_MAX too, since IDX_MAX can be much less than SIZE_MAX. (init_word_char): Work even if bitset words are not exactly 32 or 64 bits wide. Don't assume there are no padding bits. * lib/regex.c [_LIBC]: Do not include . [!_LIBC]: Add pragmas to ignore -Wsuggest-attributes=pure and -Wtype-limits. * lib/regex.h (__USE_GNU): Renamed from __USE_GNU_REGEX, to avoid needless disagreement with glibc. All uses changed. Define it to 1 only if _GNU_SOURCE, to match glibc. (_REG_RM_NAME): Remove; no longer needed, since the names in question are now all protected by __USE_GNU. (_REG_RE_NAME): Remove; replaced by glibc's __REPB_PREFIX. (REG_TRANSLATE_TYPE): Remove; replaced by glibc's __RE_TRANSLATE_TYPE. * lib/regex_internal.h (MIN): New macro. 2012-01-03 Ulrich Drepper * lib/regcomp.c (init_word_char): Optimize regex a bit. 2011-12-30 Jakub Jelinek * lib/regex_internal.c (re_string_fetch_byte_case): Fix up regcomp/regexec. The problem is that parse_bracket_symbol is miscompiled, and it turns out it is because of an incorrect attribute on re_string_fetch_byte_case. Unlike re_string_peek_byte_case, this one is really not pure, it modifies memory (increments pstr->cur_idx), and with the pure attribute GCC assumed it doesn't and it cached the presumed value of regexp->cur_idx in a variable across the for (;; ++i) { if (i >= BRACKET_NAME_BUF_SIZE) return REG_EBRACK; if (token->type == OP_OPEN_CHAR_CLASS) ch = re_string_fetch_byte_case (regexp); else ch = re_string_fetch_byte (regexp); if (re_string_eoi(regexp)) return REG_EBRACK; if (ch == delim && re_string_peek_byte (regexp, 0) == ']') break; elem->opr.name[i] = ch; } 2011-11-29 Andreas Schwab * lib/regcomp.c (build_equiv_class): Fix access after end of search string in regex matcher. 2011-11-12 Ulrich Drepper * lib/regex_internal.c, lib/regex_internal.h: Fix warnings in regex. 2011-10-12 Ulrich Drepper * lib/regcomp.c (parse_branch): One more regex memory leak fixed. 2011-10-11 Ulrich Drepper * lib/regcomp.c (parse_branch, parse_sub_exp): More regex memory leak fixes and tests. (parse_sub_exp, parse_bracket_exp): Fix memory leak for some invalid regular expressions. 2011-05-28 Ulrich Drepper * lib/regex_internal.c, lib/regexec.c: Fix unnecessary overallocation due to incomplete character. When incomplete characters are found at the end of a string the code ran amok and allocated lots of memory. Stricter limits are now in place. 2011-05-20 Reuben Thomas * lib/regex.h: Update documentation. 2011-05-16 Aharon Robbins * lib/regex.h: Update RE_SYNTAX*_AWK constants. 2010-05-05 Andreas Schwab * lib/regexec.c (find_collation_sequence_value): Fix lookup of collation sequence value during regexp matching. 2010-01-22 Ulrich Drepper * lib/regex_internal.c (re_dfa_add_node): Extend overflow detection. 2008-01-16 Ulrich Drepper * lib/regex.h: Cleanup namespace. 2007-11-26 Ulrich Drepper * lib/regex.h (REG_ENOSYS): Define REG_ENOSYS also for __USE_XOPEN2K. 2007-08-26 Ulrich Drepper * lib/regex_internal.h: Prevent some declarations and definitions to be seen when used in tests. 2005-05-06 Ulrich Drepper * lib/regex_internal.h: Include bits/libc-lock.h or define dummy __libc_lock_* macros if not _LIBC. (struct re_dfa_t): Add lock. 2012-02-07 Eric Blake maint.mk: also prohibit lower-case @var@ * top/maint.mk (sc_makefile_at_at_check): Enhance check to cover lower case, like @top_srcdir@. 2012-02-04 Eric Blake canonicalize: avoid uninitialized memory use * lib/canonicalize-lgpl.c (__realpath): Avoid possibility of random '/' left in dest. * lib/canonicalize.c (canonicalize_filename_mode): Likewise. 2012-02-04 Bruno Haible isatty: Fix test failure of ptsname_r on native Windows. * lib/isatty.c (_isatty_nothrow): Upon exception, return 0, not -1, and don't set errno. (isatty): Test first whether fd is valid. Set errno when returning 0. 2012-02-04 Bruno Haible spawn-pipe tests: Fix a NULL program name in a diagnostic. * tests/test-spawn-pipe-main.c: Include progname.h. (main): Invoke set_program_name. * modules/spawn-pipe-tests (Depends-on): Add progname. nonblocking-socket tests: Fix a NULL program name in a diagnostic. * tests/test-nonblocking-socket-main.c: Include progname.h. (main): Invoke set_program_name. * modules/nonblocking-socket-tests (Depends-on): Add progname. nonblocking-pipe tests: Fix a NULL program name in a diagnostic. * tests/test-nonblocking-pipe-main.c: Include progname.h. (main): Invoke set_program_name. * modules/nonblocking-pipe-tests (Depends-on): Add progname. 2012-02-04 Eric Blake canonicalize-lgpl: fix // handling * lib/canonicalize-lgpl.c (__realpath): Don't convert /// to //. canonicalize: fix // handling * lib/canonicalize.c (canonicalize_filename_mode): Don't convert /// to //, since only // is special. 2012-02-04 Bruno Haible ioctl: Fix test failure on native Windows. * lib/ioctl.c: Include msvc-nothrow.h. (primary_ioctl): If fd is not a valid handle, set errno to EBADF. 2012-02-04 Bruno Haible fsync: Avoid test failure on native Windows. * lib/fsync.c (fsync) [Windows]: Don't fail if the handle is merely read-only. 2012-02-04 Bruno Haible sys_select: Avoid syntax error on OpenBSD 5.0. * lib/sys_select.in.h [OpenBSD]: When /usr/include/pthread.h is currently being included, just include the system's . 2012-02-04 Bruno Haible sys_select: Avoid syntax error on OpenBSD 5.0. * lib/sys_select.in.h: Include only after the include_next , not before. Reported by Jiri B . 2012-02-04 Bruno Haible get-rusage-as, get-rusage-data tests: Avoid test failure with gcc-4.7. * tests/test-get-rusage-as.c (main): Assign the malloc() results to global variables. * tests/test-get-rusage-data.c (main): Likewise. Reported by Jim Meyering. 2012-02-04 Bruno Haible stdioext: Fix last commit. * lib/fwritable.c [EPLAN9]: Include . 2012-02-03 Bruno Haible stdioext: Add tentative support for Plan9. * lib/stdio-impl.h: Include . * lib/fseterr.c (fseterr) [EPLAN9]: Add conditional code. * lib/freadable.c (freadable): Likewise. * lib/fwritable.c (fwritable): Likewise. * lib/fbufmode.c (fbufmode): Likewise. * lib/freading.c (freading): Likewise. * lib/fwriting.c (fwriting): Likewise. * lib/freadptr.c (freadptr): Likewise. * lib/freadseek.c (freadptrinc): Likewise. * lib/freadahead.c (freadahead): Likewise. * lib/fpurge.c (fpurge): Likewise. * lib/fseeko.c (rpl_fseeko): Likewise. * m4/fpending.m4 (gl_PREREQ_FPENDING): Add a variant for Plan9. Reported by Jens Staal . 2012-02-02 Jim Meyering file-has-acl: suppress a warning from gcc -Wsuggest-attribute=const * lib/file-has-acl.c (file_has_acl): This function (for some #ifdefs) would evoke a new gcc warning. Given all of the #ifdefs, it is better not even to try to add the attribute. Instead, add a pragma to suppress the suggestion/warning. 2012-01-31 Karl Berry setstate doc: typo. * doc/posix-functions/setstate.texi (setstate): { not (. 2012-01-31 Bruno Haible popen: Make more robust on Windows. * lib/popen.c: On native Windows, use the _popen based code even if HAVE_POPEN is set. * doc/posix-functions/popen.texi: Mention necessity of COMSPEC environment variable on native Windows. 2012-01-30 Bruno Haible pclose: Fix typo. * lib/stdio.in.h (pclose): Fix typo in warning message. 2012-01-30 Bruno Haible doc about getlogin_r, setstate. * doc/posix-functions/getlogin_r.texi: List the incompatible declaration problem under "not fixed by gnulib". * doc/posix-functions/setstate.texi: Mention incompatible declaration problem on Solaris 11 and other platforms. 2012-01-30 Chuanchang Jia (tiny change) Bruno Haible poll tests: Make test more robust. * tests/test-poll.c: Include macros.h. (test_accept_first, test_pair, test_socket_pair, test_pipe): Verify return value of various I/O operations. * modules/poll-tests (Files): Add tests/macros.h. 2012-01-30 Bruno Haible sys_stat: Fix support for mingw64 and MSVC. * lib/sys_stat.in.h (stat) [AIX]: Don't redefine 'stat' if the system header files already do it. (stat) [mingw, msvc]: Redefine the symbol to which stat is defined, not stat itself. Reported by Marc-André Lureau . 2012-01-30 Bruno Haible wcwidth: Work around bug in UTF-8 locale on OpenBSD 5.0. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Test also wcwidth of U+05B0. * doc/posix-functions/wcwidth.texi: Mention the OpenBSD 5.0 bug. 2012-01-29 Bruno Haible quotearg: Fix test failure on MacOS X 10.5. * tests/test-quotearg-simple.c: Include localcharset.h. (main): If the locale encoding is not ASCII, bypass the tests of locale_quoting_style and clocale_quoting_style. * modules/quotearg-tests (Depends-on): Add 'localcharset'. 2012-01-29 Jim Meyering maint.mk: sc_prohibit_canonicalize_without_use: avoid false positive * top/maint.mk (sc_prohibit_canonicalize_without_use): Also detect uses of canonicalize_file_name. 2012-01-28 Bruno Haible test-framework-sh: Fix test failure with AIX 7.1 diff. * tests/init.sh (compare_): Don't use 'diff -u' if it inserts a space in column 1, like 'diff -c' does. * tests/test-init.sh (test_compare): Don't repeat the test from init.sh whether 'diff -u' is used. Instead, test whether the output contains some '@' character. 2012-01-28 Paul Eggert strtoimax: eliminate need for stdint.h, inttypes.h checks * m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Don't use gl_AC_HEADER_STDINT_H or gl_AC_HEADER_INTTYPES_H. This reduces the prerequisites for a recently-introduced strtoimax test. I guess this might cause strtoimax to be replaced when not strictly necessary on older hosts, but this shouldn't introduce any bugs and it should make Emacs 'configure' faster on typical modern hosts. Problem discovered when importing the latest gnulib to an Emacs test version. * modules/strtoimax (Files): Remove m4/stdint_h.m4, m4/inttypes_h.m4. 2012-01-28 Bruno Haible sys_time: Override 'struct timeval' on some native Windows platforms. * m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Test whether tv_sec has the right type. Set REPLACE_STRUCT_TIMEVAL if not. (gl_HEADER_SYS_TIME_H_DEFAULTS): Initialize REPLACE_STRUCT_TIMEVAL. * lib/sys_time.in.h: Include also when 'struct timeval' needs to be overridden. (timeval): Override if REPLACE_STRUCT_TIMEVAL is set. * modules/sys_time (Makefile.am): Substitute REPLACE_STRUCT_TIMEVAL. * tests/test-sys_select.c: Check that the tv_sec member has the same size as a 'time_t'. * tests/test-sys_time.c: Likewise. * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): If REPLACE_STRUCT_TIMEVAL is set, set also REPLACE_GETTIMEOFDAY. * lib/gettimeofday.c (gettimeofday): If 'struct timeval' is overridden, convert the resulting 'struct timeval' before returning. * lib/select.c: Include . (select, timeval): Undefine at the right place. * modules/select (Depends-on): Add sys_time. * doc/posix-headers/sys_time.texi: Mention the problem with tv_sec on some Windows platforms. Reported by Marc-André Lureau . 2012-01-28 Marc-André Lureau (tiny change) accept4, fcntl, socket modules: Avoid warnings on x86_64 mingw64. * lib/accept4.c (accept4): Use intptr_t to convert handle pointer to an integer. * lib/fcntl.c (dupfd): Likewise. * lib/w32sock.h (SOCKET_TO_FD): Likewise. 2012-01-28 Bruno Haible fcntl: Avoid compilation error on native Windows. * modules/fcntl (Depends-on): Add 'close'. 2012-01-28 Marc-André Lureau (tiny change) select, poll, isatty: Avoid warnings on x86_64 mingw64. * lib/select.c (IsConsoleHandle): Use intptr_t to convert handle pointer to an integer. * lib/poll.c (IsConsoleHandle): Likewise. * lib/isatty.c (IsConsoleHandle): Likewise. 2012-01-28 Jim Meyering doc: clarify README-release * top/README-release: Clarify: you should make a point to have the latest stable versions of build tools in your PATH, and the reference to buildreq is solely for its list of tool names, not for its minimal-functional version numbers. Prompted by discussion with Reuben Thomas and Gary V. Vaughan. maint.mk: use more readable (yet functionally equivalent) quoting It is common to quote a single quote in a single quoted string like this: '...'\''...'. Unless you know the idiom, that looks like gibberish, so prefer to double-quote the string when possible. Then you can use a more readable, lone single quote: "...'..." * top/maint.mk (sc_cast_of_argument_to_free): Quoting like this "don't" is more readable than the equivalent 'don'\''t'. (sc_cast_of_x_alloc_return_value): Likewise. (sc_cast_of_alloca_return_value): Likewise. (sc_makefile_path_separator_check): Similar: use ":" in '...', rather than '\'':'\''. 2012-01-27 Paul Eggert stdalign: relax _Alignof and tighten _Alignas test * m4/stdalign.m4 (gl_STDALIGN_H): Relax the _Alignof test, as it was too strict: alignof must divide offsetof, but it need not equal offsetof. Inspired by Joseph S. Myers's comment . Conversely, tighten the _Alignas test a bit, as the resulting alignment must be exactly 8. 2012-01-27 Bruno Haible stdalign: Document the last change. * doc/posix-headers/stdalign.texi: Mention GCC bug 52023. 2012-01-27 Paul Eggert stdalign: check that alignof and offsetof are consistent * m4/stdalign.m4 (gl_STDALIGN_H): Check for GCC bug 52023. Problem reported for gnulib by Richard W.M. Jones in . 2012-01-27 Jim Meyering update-copyright: accept new option: UPDATE_COPYRIGHT_USE_INTERVALS=2 * build-aux/update-copyright: When UPDATE_COPYRIGHT_USE_INTERVALS=2, convert a sequence with gaps to the minimal containing range. For example, convert 2000, 2004-2007, 2009 to 2000-2009. * tests/test-update-copyright.sh: Test for this. The FSF confirmed it is ok to do this, assuming there is at least one significant change per year in the affected range: http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/29554/focus=29860 2012-01-26 Bruno Haible pipe2: refine doc about thread-safety * doc/glibc-functions/pipe2.texi: Clarify the extent of the multithread-safety problem. * doc/glibc-functions/accept4.texi: Likewise. 2012-01-26 Bruno Haible posix_spawn_file_actions_addopen: Fix 2012-01-08 commit. * m4/posix_spawn.m4 (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN): In the test program, include , for O_RDONLY. 2012-01-26 Eric Blake pipe2: document lack of thread-safety in replacement * doc/glibc-functions/pipe2.texi (pipe2): Mention thread safety issue in replacement. * doc/glibc-functions/accept4.texi (accept4): Likewise. Based on a report by Eric Wong. 2012-01-24 Marc-André Lureau (tiny change) Bruno Haible malloca: Avoid warnings on x86_64 mingw64. * lib/malloca.c: Include . (mmalloca, freea): Use uintptr_t to convert pointers to integers. * modules/malloca (Depends-on): Add stdint. * modules/relocatable-prog-wrapper (Depends-on): Likewise. 2012-01-25 Paul Eggert obstack: remove __STDC__ conditionals * lib/obstack.h: Remove __STDC__ conditionals, as suggested by Joseph S. Myers in . This leaves lib/localcharset.c, m4/iconv.m4, and a confusing comment in m4/include_next.m4 as the only gnulib-maintained places that still refer to __STDC__. 2012-01-24 Bruno Haible havelib: Modern quoting. * build-aux/config.rpath: Quote 'like this', not `like this', as per the recent change to the GNU coding standards. 2012-01-24 Bruno Haible stdint: Improve support for Android. * lib/stdint.in.h: Test __ANDROID__, not __BIONIC__. Reported by Simon Josefsson . 2012-01-23 Paul Eggert doc: omit trailing empty lines from INSTALL etc. * doc/Makefile (INSTALL): Omit trailing empty lines. (INSTALL.ISO, INSTALL.UTF-8): Build from INSTALL, so that these also omit trailing empty lines. This simplifies the build procedure. 2012-01-23 Jim Meyering tests: avoid spurious warnings about gl_sockets_startup Fedora rawhide's gcc version 4.7.0 20120119 with -Wunused-value would warn about every use of "gl_sockets_startup (SOCKETS_1_1);" reporting a "statement with no effect". * tests/test-accept.c (main): Mark as "(void)". * tests/test-accept4.c (main): Likewise. * tests/test-bind.c (main): Likewise. * tests/test-connect.c (main): Likewise. * tests/test-getpeername.c (main): Likewise. * tests/test-getsockname.c (main): Likewise. * tests/test-getsockopt.c (main): Likewise. * tests/test-listen.c (main): Likewise. * tests/test-recv.c (main): Likewise. * tests/test-recvfrom.c (main): Likewise. * tests/test-send.c (main): Likewise. * tests/test-sendto.c (main): Likewise. * tests/test-setsockopt.c (main): Likewise. * tests/test-shutdown.c (main): Likewise. 2012-01-21 Bruno Haible locale-fr.m4: Fix for Android. * m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): Avoid compilation failure of the test program on Bionic libc. 2012-01-21 Jim Meyering bootstrap: fail when bootstrap_post_import_hook fails Otherwise, it's far too easy to miss diagnostics emitted between gnulib-tool's output and that of running configure. * build-aux/bootstrap: Fail when bootstrap_post_import_hook fails. 2012-01-17 Jim Meyering maint: enable sc_trailing_blank * build-aux/pmccabe.css: Remove trailing blanks. * doc/acl-cygwin.txt: Likewise. * doc/gnu-oids.texi: Likewise * cfg.mk: Enable sc_trailing_blank. Exempt build-aux/texinfo.tex and doc/Copyright/assign.future.manual. 2012-01-17 Jim Meyering maint: enable sc_prohibit_openat_without_use * cfg.mk: Enable sc_prohibit_openat_without_use. Exempt lib/selinux-at.c. 2012-01-17 Jim Meyering maint: enable sc_prohibit_cloexec_without_use * cfg.mk: Enable sc_prohibit_cloexec_without_use. * lib/dup-safer-flag.c: Don't include "cloexec.h". Not needed. 2012-01-17 Jim Meyering maint: enable sc_prohibit_intprops_without_use * cfg.mk: Enable sc_prohibit_intprops_without_use * tests/test-nanosleep.c: Don't include "intprops.h". Not needed. 2012-01-17 Jim Meyering maint: enable sc_prohibit_hash_pjw_without_use * cfg.mk: Enable sc_prohibit_hash_pjw_without_use. * top/maint.mk (sc_prohibit_hash_pjw_without_use): Adjust regexp to match any use of \, i.e., not necessarily with a following " (". 2012-01-17 Jim Meyering maint: enable double-word-prohibiting rule * cfg.mk (local-checks-to-skip): Enable sc_prohibit_doubled_word. Exempt three files. 2012-01-17 Jim Meyering maint: remove empty lines at EOF, but excluding modules/* Apply syntax rules at home as well as abroad. Most changes were induced by running this: make srcdir=. _build-aux=build-aux -f top/maint.mk \ sc_prohibit_empty_lines_at_EOF | grep -v modules/ \ | xargs perl -pi -0777 -e 's/\n\n+$/\n/' * cfg.mk (local-checks-to-skip): Enable sc_prohibit_empty_lines_at_EOF. Exempt modules/* and two binary files. Also exempt doc/INSTALL*, per request from Bruno Haible. * doc/regexprops-generic.texi: *Add* a newline at EOF. There was none. * doc/Copyright/assign.translation.manual: Remove empty lines at EOF. * doc/Copyright/request-assign.future: Likewise. * doc/Copyright/request-disclaim.changes: Likewise. * doc/INSTALL: Likewise. * doc/INSTALL.ISO: Likewise. * doc/INSTALL.UTF-8: Likewise. * doc/acl-cygwin.txt: Likewise. * doc/acl-resources.txt: Likewise. * doc/fdl-1.2.texi: Likewise. * doc/fdl-1.3.texi: Likewise. * doc/fdl.texi: Likewise. * lib/argp-pin.c: Likewise. * lib/round.c: Likewise. * lib/unicase/u16-totitle.c: Likewise. * lib/unictype/block_test.c: Likewise. * lib/uninorm/canonical-decomposition.c: Likewise. * m4/README: Likewise. * m4/relocatable-lib.m4: Likewise. * tests/test-isnand-nolibm.c: Likewise. * tests/test-isnand.c: Likewise. * tests/uninorm/NormalizationTest.txt: Likewise. 2012-01-17 Jim Meyering maint: add framework to run syntax-check rules against gnulib sources * cfg.mk: New file, to disable all currently-failing tests. We'll enable them one by one, as they are made to pass. * Makefile (sc_maint): New rule. 2012-01-21 Bruno Haible stdint: Add support for Android. * lib/stdint.in.h: When included from Bionic , just include the system's . Reported by Simon Josefsson . 2012-01-19 Jim Meyering bootstrap: add bootstrap_post_import_hook Bison does still need something like the gnulib_mk_hook whose invocation I had to remove along with slurp in commit 767ccd40. Technically, we could get along without it, but doing so would have required living with a warning and a mandatory post-bootstrap automake rerun. * build-aux/bootstrap (gnulib_mk_hook): Remove definition, too. (bootstrap_post_import_hook): New function. Invoke it after gnulib-tool --import and before autoreconf. 2012-01-18 Jim Meyering gitlog-to-changelog: don't use "no_"-prefixed variable name * build-aux/gitlog-to-changelog (main): Use getopt's "!" attribute to enable both --cluster and --no-cluster. Change variable name, s/\$no_cluster/$cluster/, and reverse usage to match. gitlog-to-changelog: use "||", not "or" in expressions * build-aux/gitlog-to-changelog (main): Use "||", not "or" in expressions. 2012-01-17 Joel E. Denny gitlog-to-changelog: new option --no-cluster * build-aux/gitlog-to-changelog: New option --no-cluster, disables clustering of adjacent commit messages. 2012-01-17 Jim Meyering maint: spell file systems with two words, not one * m4/ls-mntd-fs.m4 (MOUNTED_INTERIX_STATVFS): Spell file systems with two words, not one. 2012-01-16 Jim Meyering bootstrap: add a FIXME comment to ensure we eventually remove the hack * build-aux/bootstrap (gnulib_tool_options): Add comment. 2012-01-16 Eric Blake bootstrap: cater to autoconf 2.59 * build-aux/bootstrap (AUTORECONF): Work even when --no-recursive is not available. bootstrap: properly check for libtool * build-aux/bootstrap (libtoolize): Also run libtool when older usage is detected. 2012-01-15 Bruno Haible Improve support for MSVC 9. * lib/unistd.in.h: Include when needed to avoid redefinition clashes on MSVC. * lib/fcntl.in.h: Likewise. * lib/stdlib.in.h: Likewise. * lib/sys_stat.in.h: Likewise. 2011-01-15 Stefano Lattarini gnupload: we hold the master copy of this script now For motivation and more information, see: * build-aux/gnupload: Make it clear in the heading comments that the master copy of this file is maintained by gnulib. Since we are at it, bump its copyright year and ... ($scriptversion): ... the date in its version. ($usage): Patches and bug reports should be sent to the gnulib list, not the automake one. * config/srclist.txt: Don't try to sync 'gnupload' from automake anymore. 2012-01-15 Bruno Haible Fix module 'random'. * m4/stdlib_h.m4 (gl_STDLIB_H): Test whether random, srandom, initstate, setstate are declared. 2012-01-14 Bruno Haible Tests for module 'random'. * modules/random-tests: New file. * tests/test-random.c: New file, based on tests/test-random_r.c. New module 'random'. * lib/stdlib.in.h (random, srandom, initstate, setstate): New declarations. * lib/random.c: New file, based on glibc/stdlib/random.c. * m4/random.m4: New file. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_RANDOM, HAVE_RANDOM. * modules/stdlib (Makefile.am): Substitute GNULIB_RANDOM, HAVE_RANDOM. * modules/random: New file. * config/srclist.txt: Add an entry for random.c. * doc/posix-functions/random.texi: Mention the 'random' module. * doc/posix-functions/initstate.texi: Likewise. * doc/posix-functions/setstate.texi: Likewise. * doc/posix-functions/srandom.texi: Likewise. 2012-01-12 Bruno Haible random_r: Use common idioms. * lib/random_r.c: Include first. random_r: Override incompatible API on AIX, OSF/1. * lib/stdlib.in.h (random_r, srandom_r, initstate_r, setstate_r): Override the system function if REPLACE_RANDOM_R is 1. * m4/random_r.m4 (gl_FUNC_RANDOM_R): Require AC_CANONICAL_HOST. On AIX and OSF/1, set REPLACE_RANDOM_R. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_RANDOM_R. * modules/stdlib (Makefile.am): Substitute REPLACE_RANDOM_R. * modules/random_r (configure.ac): Test REPLACE_RANDOM_R. * doc/glibc-functions/initstate_r.texi: Mention the AIX, OSF/1 problem. * doc/glibc-functions/random_r.texi: Likewise. * doc/glibc-functions/setstate_r.texi: Likewise. random_r: Support for MSVC 9. * lib/random_r.c: Include stdint.h, not inttypes.h. 2012-01-12 Eric Blake inet_ntop: guard extra work by IF_LINT * lib/inet_ntop.c (inet_ntop6): Mark spurious initialization, for better code generation when not checking for warnings. Suggested by Paul Eggert and Jim Meyering. strptime: fix regression on mingw * lib/strptime.c (__strptime_internal) [!_LIBC && !HAVE_TM_GMTOFF]: Fix regression. Reported by Bruno Haible. 2012-01-11 Reuben Thomas Bruno Haible copy-file: add error-code-returning variant. * lib/copy-file.h (GL_COPY_ERR_*): New enumeration items. (qcopy_file_preserving): New declaration. * lib/copy-file.c (qcopy_file_preserving): Renamed from copy_file_preserving. Change return type to 'int'. Don't emit an error message here. (copy_file_preserving): New function. * tests/test-copy-file.c: Include . (main): Test qcopy_file_preserving if the environment variable NO_STDERR_OUTPUT is set. * tests/test-copy-file-1.sh: Invoke test-copy-file.sh a second time, with NO_STDERR_OUTPUT * tests/test-copy-file-2.sh: Likewise. 2012-01-10 Bruno Haible copy-file: Use 'quote' module consistently. * lib/copy-file.c (copy_file_preserving): Use quote(). copy-file: Refactor. * lib/copy-file.c: Include quote.h. (copy_file_preserving): Call qcopy_acl instead of copy_acl. Emit error message here. * modules/copy-file (Depends-on): Add quote. acl: Export qcopy_acl. * lib/acl.h (qcopy_acl): New declaration. * lib/copy-acl.c (qcopy_acl): Make non-static. acl: Rename a local variable. * lib/set-mode-acl.c (set_acl): Use same variable name as in copy_acl. acl: Align return values of copy_acl and qcopy_acl. * lib/copy-acl.c (copy_acl): Return the same value as qcopy_acl, maybe < -1. 2012-01-11 Eric Blake strptime: silence gcc warnings * lib/strptime.c (__strptime_internal) [!_NL_CURRENT], [!_LIBC && !HAVE_TM_GMTOFF]: Avoid unused variables. Reported by Daniel P. Berrange. inet_ntop: silence gcc warning * lib/inet_ntop.c (inet_ntop6): Initialize best.base. Reported by Daniel P. Berrange. 2012-01-11 Dmitry V. Levin getloadavg test: skip the test on GNU/Linux without /proc mounted GNU libc implements getloadavg(3) on Linux by parsing /proc/loadavg file. When /proc is not mounted, it always fails with ENOENT. * tests/test-getloadavg.c (main): Treat ENOENT return code from getloadavg(3) the same way as ENOSYS and ENOTSUP. 2012-01-10 Bruno Haible regex: Avoid link error on MSVC 9. * modules/regex (Depends-on): Add wctype. 2012-01-10 Bruno Haible doc: Mention --with-tests option. * gnulib-tool (func_usage): Suggest --with-tests for --test etc. * doc/gnulib.texi (Extra tests modules): Mention the need to pass --with-tests. Reported by Reuben Thomas. 2012-01-10 Reuben Thomas users.txt: order package names lexicographically. * users.txt: Order package names lexicographically. 2012-01-10 Jim Meyering maint.mk: fix description in comment * top/maint.mk (require_exactly_one_NL_at_EOF_): Fix comment. ignore-value: remove deprecated ignore_ptr function * lib/ignore-value.h (ignore_ptr): Remove deprecated function. * NEWS: Note this. 2012-01-09 Jim Meyering test-init.sh: avoid a subshell * tests/test-init.sh: Remove protective subshell. Suggested by Bernhard Voelker. While a subshell is normally required to protect against older shells (Solaris, FreeBSD) that warn about a missing program before performing redirection, the shell-selection tests performed by init.sh probably exclude any offending shell. 2012-01-08 Bruno Haible setlocale tests: Avoid test failure on Solaris 11.0. * tests/test-setlocale2.sh: Use 'env' to set the LC_ALL environment variable. 2012-01-08 Bruno Haible posix_spawn_file_actions_addopen: Work around Solaris 11.0 bug. * m4/spawn_h.m4 (gl_SPAWN_H_DEFAULTS): Initialize REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN. * m4/posix_spawn.m4 (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN): New macro. * lib/spawn.in.h (posix_spawn_file_actions_addopen): Test REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN, not REPLACE_POSIX_SPAWN. * lib/spawn_faction_addopen.c: Add workaround implementation if HAVE_WORKING_POSIX_SPAWN. * modules/spawn (Makefile): Substitute REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN. * modules/posix_spawn_file_actions_addopen (configure.ac): Invoke gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN. Test REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN, not REPLACE_POSIX_SPAWN. (Depends-on): Update conditions. * doc/posix-functions/posix_spawn_file_actions_addopen.texi: Mention the Solaris 11 bug. 2012-01-08 Bruno Haible posix_spawn_file_actions_adddup2: Work around Solaris 11.0 bug. * m4/spawn_h.m4 (gl_SPAWN_H_DEFAULTS): Initialize REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2. * m4/posix_spawn.m4 (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2): New macro. * lib/spawn.in.h (posix_spawn_file_actions_adddup2): Test REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2, not REPLACE_POSIX_SPAWN. * lib/spawn_faction_adddup2.c: Add workaround implementation if HAVE_WORKING_POSIX_SPAWN. * modules/spawn (Makefile): Substitute REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2. * modules/posix_spawn_file_actions_adddup2 (configure.ac): Invoke gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2. Test REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2, not REPLACE_POSIX_SPAWN. (Depends-on): Update conditions. * doc/posix-functions/posix_spawn_file_actions_adddup2.texi: Mention the Solaris 11 bug. 2012-01-08 Bruno Haible posix_spawn_file_actions_addclose: Work around Solaris 11.0 bug. * m4/spawn_h.m4 (gl_SPAWN_H_DEFAULTS): Initialize REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE. * m4/posix_spawn.m4 (gl_POSIX_SPAWN_BODY): Define HAVE_WORKING_POSIX_SPAWN. (gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE): New macro. * lib/spawn.in.h (posix_spawn_file_actions_addclose): Test REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE, not REPLACE_POSIX_SPAWN. * lib/spawn_faction_addclose.c: Add workaround implementation if HAVE_WORKING_POSIX_SPAWN. * modules/spawn (Makefile): Substitute REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE. * modules/posix_spawn_file_actions_addclose (configure.ac): Invoke gl_FUNC_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE. Test REPLACE_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE, not REPLACE_POSIX_SPAWN. (Depends-on): Update conditions. * doc/posix-functions/posix_spawn_file_actions_addclose.texi: Mention the Solaris 11 bug. 2012-01-08 Bruno Haible doc: Update for Solaris 11.0. * doc/*/*.texi: Mention Solaris 11.0 where appropriate. * m4/printf.m4: Update comments. 2012-01-08 Bruno Haible mktime: Avoid compilation error on Solaris 11. * lib/mktime.c (WRAPV): Define to 0 on all non-glibc systems. 2012-01-08 Bruno Haible doc: Small fix. * doc/posix-headers/nl_types.texi: Correct platforms list. 2012-01-08 Simon Josefsson Add lgpl-3.0 module. * MODULES.html.sh (Support for building documentation): Add lgpl-3.0. * modules/lgpl-3.0: New file. 2012-01-08 Jim Meyering select.c: indent with spaces, not TABs * lib/select.c (windows_poll_handle): Indent with spaces, not TABs. 2012-01-07 Paolo Bonzini quotearg: do not use grave accent for left quote * lib/quotearg.c (gettext_quote): Map "`" to "'" for locale_quoting_style. (quotearg_buffer_restyled): Fix example. * tests/test-quotearg-simple.c (results_g): Adjust test vectors. 2012-01-07 Paolo Bonzini quotearg: fall back to Unicode single quotes in UTF-8, GB-18030 locales Most programs do not have translation catalogs for English and much less separate catalogs for British and American English. Drop the suggestion to translators about these two, and provide it automatically for Unicode locales. Like most programs, even those using American English, we use single quotation marks. This conflicts with the American typographic convention, but works better when you cite the entire error message within double quotes. It also tries not to clash with established practice and with what non-gnulib programs will usually do. * lib/quotearg.c (gettext_quote): Hard-code U+2018 and U+2019 when using an UTF-8 or GB-18030 locale. The list of other locales with quotes was provided by Bruno Haible. (quotearg_buffer_restyled): Adjust instructions to translators. * lib/quotearg.h (locale_quoting_style): Do not put an example in the text, since this would be wrong when using Unicode. * modules/quotearg: Depend on c-strcaseeq. 2012-01-07 Paolo Bonzini quotearg: fix Wikipedia link * lib/quotearg.c (quotearg_buffer_restyled): Fix link to Wikipedia. 2012-01-07 Simon Josefsson Fix for mingw with MSVC9. * m4/ld-version-script.m4: Check that compiler rejects version scripts with syntax errors. Reported by Bruno Haible . 2012-01-06 Bruno Haible Talk about "native Windows API", not "Woe32". * lib/accept4.c: Update comments to mention native Windows. * lib/execute.c: Likewise. * lib/fatal-signal.c: Likewise. * lib/localcharset.c: Likewise. * lib/nanosleep.c: Likewise. * lib/nl_langinfo.c: Likewise. * lib/pclose.c: Likewise. * lib/pipe-filter-gi.c: Likewise. * lib/pipe-filter-ii.c: Likewise. * lib/pipe.c: Likewise. * lib/pipe2.c: Likewise. * lib/popen.c: Likewise. * lib/progreloc.c: Likewise. * lib/relocatable.c: Likewise. * lib/sigaction.c: Likewise. * lib/sigprocmask.c: Likewise. * lib/spawn-pipe.h: Likewise. * lib/spawn-pipe.c: Likewise. * lib/spawni.c: Likewise. * lib/stat-time.h: Likewise. * lib/w32spawn.h: Likewise. * tests/test-isatty.c: Likewise. * lib/config.charset: More comments. * doc/gnulib-intro.texi: Mention native Windows. * doc/posix-functions/_Exit_C99.texi: Likewise. * doc/posix-headers/fcntl.texi: Likewise. 2012-01-06 Guillem Jover (tiny change) argp: Avoid crash if translator uses % characters in a translation. * lib/argp-parse.c (argp_version_parser): Use a "%s" format string. Reported by Mats Erik Andersson . 2012-01-06 Paul Eggert doc: C11 and C++11 are now official * doc/posix-headers/assert.texi, doc/posix-headers/stdalign.texi: * doc/verify.texi, stdalign.in.h, verify.h, m4/gnulib-common.m4: * m4/stdalign.m4, modules/assert-h, modules/snippet/_Noreturn: * modules/stdalign: Replace references to draft C1X to C11, and to draft C++0X to C++11. 2012-01-06 Bruno Haible uc-is-grapheme-break tests: Tweak. * tests/unigbrk/test-uc-is-grapheme-break.c (main): Fix an error message. 2012-01-06 Bruno Haible test-init.sh: correct the test for diff -u * tests/test-init.sh: Also redirect stdout to /dev/null. 2012-01-05 Paul Eggert Use ', not `, for quoting output. * build-aux/announce-gen (usage, sizes, print_news_deltas) (print_changelog_deltas, get_tool_versions, main program): * build-aux/git-version-gen: * build-aux/gitlog-to-changelog (usage, parse_amend_file): * build-aux/move-if-change (help): * build-aux/useless-if-before-free (usage, main program): * check-module (parse_module_file, usage) (find_included_lib_files, check_module): * lib/argmatch.c (main) [TEST]: * lib/argp-help.c (_help): * lib/getopt1.c (main) [TEST]: * lib/git-merge-changelog.c (usage): * lib/xstrtol-error.c (xstrtol_error): * m4/alloca.m4 (_AC_LIBOBJ_ALLOCA): * m4/argz.m4 (gl_FUNC_ARGZ): * m4/bison.m4 (gl_BISON): * m4/calloc.m4 (gl_FUNC_CALLOC_GNU): * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): * m4/flexmember.m4 (AC_C_FLEXIBLE_ARRAY_MEMBER): * m4/fpending.m4 (gl_PREREQ_FPENDING): * m4/gc-random.m4 (gl_GC_RANDOM): * m4/intl.m4 (gt_CHECK_DECL): * m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK): * m4/longlong.m4 (AC_TYPE_LONG_LONG_INT) (AC_TYPE_UNSIGNED_LONG_LONG_INT): * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): * m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): * m4/onceonly.m4 (AC_CHECK_FUNCS_ONCE): * m4/posixver.m4 (gl_DEFAULT_POSIX2_VERSION): * tests/test-dirname.c (main): * tests/test-getpass.c (main): * tests/test-iconvme.c (main): * tests/test-parse-datetime.c (LOG): * tests/test-xstrtoimax.sh: * tests/test-xstrtol.sh: * tests/test-xstrtoll.sh: * tests/test-xstrtoumax.sh: * tests/unigbrk/test-uc-is-grapheme-break.c (main): * top/GNUmakefile (abort-due-to-no-makefile): Quote 'like this', not `like this', as per the recent change to the GNU coding standards. 2012-01-05 Bruno Haible strtoimax: Don't force a replacement on systems where intmax_t is int. * m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Use a different test if 'intmax_t' is not larger than 'int'. Reported by Pádraig Brady . 2012-01-05 Bruno Haible doc: Mention NetBSD bugs. * doc/posix-functions/*printf.texi: Mention a NetBSD 5.1 bug. * doc/posix-functions/nl_langinfo.texi: Mention another NetBSD 5.1 bug. 2012-01-05 Bruno Haible strtoumax tests: Enhance tests. * tests/test-strtoumax.c (main): Add tests for large values. 2012-01-05 Bruno Haible strtoimax: Work around AIX 5.1 bug. * lib/inttypes.in.h (strtoimax): Allow overriding the system's definition. * m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Check against the AIX 5.1 bug. Set HAVE_STRTOIMAX. * m4/inttypes.m4 (gl_INTTYPES_H_DEFAULTS): Initialize REPLACE_STRTOIMAX. * modules/inttypes-incomplete (Makefile.am): Substitute REPLACE_STRTOIMAX. * modules/strtoimax (Files): Add m4/stdint_h.m4, m4/inttypes_h.m4. (configure.ac): Test HAVE_STRTOIMAX, REPLACE_STRTOIMAX. (Depends-on): Update conditions. * tests/test-strtoimax.c (main): Add tests for large values. * doc/posix-functions/strtoimax.texi: Mention the AIX 5.1 bug. 2012-01-05 Bruno Haible inttypes: Modernize. * lib/inttypes.in.h (strtoimax, strtoumax): Use the C++ safe idioms. * modules/inttypes-incomplete (Depends-on): Add snippet/c++defs. (Makefile.am): Update inttypes.h rule. 2012-01-05 Jim Meyering init.sh: don't waste a subshell just to redirect stderr * tests/init.sh: In testing for diff -u and diff -c, use a stderr-redirecting exec inside `...` rather than a subshell. test-init.sh: avoid failure on HP-UX 11.00 * tests/test-init.sh: Skip "diff -u"-comparing step when compare resolves to diff -c or cmp. Reported by Bruno Haible. 2012-01-05 Bruno Haible Tests for module 'strtoull'. * modules/strtoull-tests: New file. * tests/test-strtoull.c: New file, based on tests/test-strtoumax.c. 2012-01-05 Bruno Haible Tests for module 'strtoll'. * modules/strtoll-tests: New file. * tests/test-strtoll.c: New file, based on tests/test-strtoimax.c. 2012-01-05 Bruno Haible Tests for module 'strtoul'. * modules/strtoul-tests: New file. * tests/test-strtoul.c: New file, based on tests/test-strtoumax.c. 2012-01-05 Bruno Haible Tests for module 'strtol'. * modules/strtol-tests: New file. * tests/test-strtol.c: New file, based on tests/test-strtoimax.c. 2012-01-04 Jim Meyering test-init.sh: accommodate Solaris 5.10's different diff -u output * tests/test-init.sh: Also exempt @@ lines from the comparison of diff output, since Solaris 5.10 and GNU diff formats differ. Reported by Stefano Lattarini. 2012-01-04 Paul Eggert test-posixtm: don't assume signed integer wraparound * tests/test-posixtm.c (main): Don't assume wraparound semantics after signed integer overflow. Inspired by (though it may not fix) Bruno Haible's bug report in . Spell out "Windows 9x" and "Windows XP". * lib/poll.c, lib/select.c: In comments, replace "Win9x" with "Windows 9x" and "WinXP" with "Windows XP". 2012-01-04 Jim Meyering test-vc-list-files-cvs.sh: remove obsolete comment * tests/test-vc-list-files-cvs.sh: Remove obsolete comment about double exit. Now that's all encapsulated via skip_ and Exit. 2012-01-04 Bruno Haible Talk about "native Windows API", not "Win32". * lib/classpath.c: Update comments to mention native Windows. * lib/csharpexec.c: Likewise. * lib/dup2.c: Likewise. * lib/error.c: Likewise. * lib/fcntl.c: Likewise. * lib/filename.h: Likewise. * lib/findprog.c: Likewise. * lib/get-rusage-as.c: Likewise. * lib/get-rusage-data.c: Likewise. * lib/getpagesize.c: Likewise. * lib/javaexec.c: Likewise. * lib/msvc-inval.c: Likewise. * lib/msvc-nothrow.c: Likewise. * lib/nanosleep.c: Likewise. * lib/nonblocking.c: Likewise. * lib/printf-parse.c: Likewise. * lib/setlocale.c: Likewise. * lib/sigaction.c: Likewise. * lib/strerror_r.c: Likewise. * lib/tmpdir.c: Likewise. * lib/vasnprintf.c: Likewise. * lib/w32spawn.h: Likewise. * lib/waitpid.c: Likewise. * lib/stdio.in.h (fdopen, fopen, freopen): Likewise. * m4/locale-ar.m4: Likewise. * m4/locale-fr.m4: Likewise. * m4/locale-ja.m4: Likewise. * m4/locale-tr.m4: Likewise. * m4/locale-zh.m4: Likewise. * m4/printf.m4: Likewise. * tests/test-cloexec.c: Likewise. * tests/test-copy-acl.sh: Likewise. * tests/test-copy-file.sh: Likewise. * tests/test-file-has-acl.sh: Likewise. * tests/test-set-mode-acl.sh: Likewise. * tests/test-dup-safer.c: Likewise. * tests/test-dup2.c: Likewise. * tests/test-dup3.c: Likewise. * tests/test-fcntl.c: Likewise. * tests/test-nonblocking-pipe.h: Likewise. * tests/test-nonblocking-socket.h: Likewise. * tests/test-pipe.c: Likewise. * tests/test-pipe2.c: Likewise. * tests/test-spawn-pipe-child.c: Likewise. * doc/acl-resources.txt: Likewise. * lib/getaddrinfo.c (WINDOWS_NATIVE): Renamed from WIN32_NATIVE. * tests/test-poll.c (WINDOWS_NATIVE): Likewise. * tests/test-select.h (WINDOWS_NATIVE): Likewise. * lib/localcharset.c: Update comments to mention native Windows. (WINDOWS_NATIVE): Renamed from WIN32_NATIVE. * lib/localename.c: Likewise. * lib/progreloc.c: Likewise. * lib/relocatable.c: Likewise. * lib/poll.c (WINDOWS_NATIVE): Renamed from WIN32_NATIVE. (windows_compute_revents): Renamed from win32_compute_revents. (windows_compute_revents_socket): Renamed from win32_compute_revents_socket. * lib/select.c: Update comments to mention native Windows. (windows_poll_handle): Renamed from win32_poll_handle. * m4/threadlib.m4: Update comments to mention native Windows. (gl_THREADLIB_EARLY_BODY, gl_THREADLIB_BODY): Expect --enable-threads=windows instead of --enable-threads=win32. Set USE_WINDOWS_THREADS, not USE_WIN32_THREADS. * lib/glthread/lock.h: Update comments to mention native Windows. (USE_WINDOWS_THREADS): Renamed from USE_WIN32_THREADS. * lib/glthread/lock.c (USE_WINDOWS_THREADS): Renamed from USE_WIN32_THREADS. * lib/glthread/cond.h (USE_WINDOWS_THREADS): Likewise. * lib/glthread/cond.c (USE_WINDOWS_THREADS): Likewise. * lib/glthread/thread.h (USE_WINDOWS_THREADS): Likewise. * lib/glthread/thread.c (USE_WINDOWS_THREADS): Likewise. * lib/glthread/tls.h (USE_WINDOWS_THREADS): Likewise. * lib/glthread/tls.c (USE_WINDOWS_THREADS): Likewise. * lib/glthread/yield.h (USE_WINDOWS_THREADS): Likewise. * tests/test-cond.c (USE_WINDOWS_THREADS): Likewise. * tests/test-thread_create.c (USE_WINDOWS_THREADS): Likewise. * tests/test-lock.c (USE_WINDOWS_THREADS): Likewise. (TEST_WINDOWS_THREADS): Renamed from TEST_WIN32_THREADS. * tests/test-tls.c: Likewise. Rationale: Microsoft renamed the "Win32 API" to "Windows API", as it is available on both 32-bit and 64-bit Windows systems. But in gnulib, we treat Cygwin like a Unix platform, therefore the main line of distinction is between "native Windows" on one side and Unix/ POSIX systems on the other side. More details in . Suggested by Paul Eggert. 2012-01-03 Bruno Haible isatty: Support for MSVC 9. * doc/posix-functions/isatty.texi: Mention the MSVC problem. * lib/isatty.c: Include , msvc-inval.h. (_isatty_nothrow): New function. (isatty): Use it instead of _isatty. (IsConsoleHandle): Add comment, from Paolo Bonzini. * lib/poll.c (IsConsoleHandle): Likewise. * lib/select.c (IsConsoleHandle): Likewise. * m4/isatty.m4 (gl_FUNC_ISATTY): Fix comment. Reported by Eli Zaretskii. (gl_PREREQ_ISATTY): New macro. * modules/isatty (Depends-on): Add msvc-inval. (configure.ac): Invoke gl_PREREQ_ISATTY. 2012-01-03 Jim Meyering maint.mk: remove temporary transition aid from over 1.5 years ago * top/maint.mk (_prohibit_regexp): Remove definition whose sole purpose was to aid in the transition (avoiding silent malfunction) from that old name to the new _sc_search_regexp. This shim was added by commit 219c504b. init.sh: do not try to accommodate compare arguments starting with "-" * tests/init.sh (compare_dev_null_): Do not try to accommodate compare arguments that start with "-". Besides, we do not worry about this when invoking diff or cmp; why start now with sed? Using "--" to separate options from argument would trigger sed failure in at least Solaris 7, HP-UX 11.00, IRIX 6.5, FreeBSD 6.4, OpenBSD 4.9 and NetBSD 5.1. Reported by Bruno Haible. 2012-01-02 Bruno Haible Enhance tests for module 'isatty'. * modules/isatty-tests (Depends-on): Add pipe-posix. * tests/test-isatty.c: Include . (DEV_NULL): New macro. (main): Test the resut of isatty() also on regular files, pipes, and /dev/null. New module 'isatty'. * lib/unistd.in.h (isatty): New declaration. * lib/isatty.c: New file, based on an idea of Bastien Roucariès . * m4/isatty.m4: New file. * m4/unistd_h.m4 (gl_UNISTD_H): Test whether isatty is declared. (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_ISATTY, REPLACE_ISATTY. * modules/unistd (Makefile.am): Substitute GNULIB_ISATTY, REPLACE_ISATTY. * modules/isatty: New file. * doc/posix-functions/isatty.texi: Mention the new module. Suggested by Paolo Bonzini. 2012-01-02 Bruno Haible canonicalize: Tweak 2011-12-29 commit. * lib/canonicalize.c (canonicalize_filename_mode): Fix typo in comment. * lib/canonicalize.h (canonicalize_filename_mode): Update specification. 2012-01-02 Jim Meyering gitlog-to-changelog: describe input syntax in --help output * build-aux/gitlog-to-changelog (usage) [SPECIAL SYNTAX]: New section. gitlog-to-changelog: fix typo in --help: show backslash before email @ * build-aux/gitlog-to-changelog (usage): An "@" was backslash-escaped in sources, but not in actual output. 2011-12-30 Jim Meyering gitlog-to-changelog: don't malfunction when name contains %-directive * build-aux/gitlog-to-changelog (main): Don't let a %-directive in a name string cause trouble. E.g., with a user name of "%s", gitlog-to-changelog would fail with "Missing argument in sprintf at..." 2011-12-30 Gary V. Vaughan gitlog-to-changelog: Copyright-paperwork-exempt: yes == (tiny change) * build-aux/gitlog-to-changelog (main): Map the string, at beginning of line in a git commit log, "Copyright-paperwork-exempt: yes", to the " (tiny change)" notation that is appended to the standard ChangeLog "date name email" header line. 2012-01-01 Jim Meyering test-framework-sh: init.sh: fix "make dist" failure When using gnulib-tool's --with-tests option and any module that depends on test-framework-sh, "make dist" would fail due to the lack of init.sh *in lib/*. The EXTRA_DIST += init.sh is required in the gltests directory, and not in the gllib/ directory. One way to work around that is to move the EXTRA_DIST += init.sh from the primary module to the -tests one: * modules/test-framework-sh-tests (EXTRA_DIST): Add init.sh here, ... * modules/test-framework-sh (Makefile.am): ...not here. Reported by Tom G. Christensen in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/29519 version-etc: update copyright year reported by --version * lib/version-etc.c (COPYRIGHT_YEAR): Update to 2012. 2011-12-31 Pádraig Brady canonicalize: only stat() if required * lib/canonicalize.c (canonicalize_filename_mode): Avoid calling l?stat() when both CAN_MISSING, and CAN_NOLINKS are set, as we neither need to resolve symlinks or test component existence. 2011-12-31 Paul Eggert doc: cover st_ino issues once; add OpenVMS etc. * doc/posix-functions/stat.texi (stat): * doc/posix-functions/lstat.texi (lstat): * doc/posix-functions/fstatat.texi (fstatat): * doc/posix-functions/fstat.texi (fstat): Move general 'struct stat' stuff to sys_stat.texi, leaving behind a pointer. * doc/posix-headers/sys_stat.texi (sys/stat.h): Merge duplicate info about 'struct stat' problems into here. Mention issues with OpenVMS, GNU/Linux NFS, NetApp, ClearCase, and suggest partial workarounds. same-inode: port to OpenVMS * lib/same-inode.h (SAME_INODE): Port to OpenVMS by checking all three st_ino values. 2011-12-30 Pádraig Brady canonicalize: fix references to stat() and lstat() * lib/canonicalize.c (canonicalize_filename_mode): Ensure references always resolve to a replacement function if required (even via a macro). 2011-12-30 Jim Meyering gitlog-to-changelog: remove a little duplication * build-aux/gitlog-to-changelog (main): Grep @lines once, rather than twice. 2011-12-29 Pádraig Brady canonicalize: add support for not resolving symlinks * lib/canonicalize.h: Add the CAN_NOLINKS flag to indicate we don't want to follow symlinks. Also provide CAN_MODE_MASK to aid setting these existing mutually exclusive values. * lib/canonicalize.c (canonicalize_filename_mode): Extract the flags from can_mode parameter, which are currently just used to select between stat() and lstat(). Also ensure that mutually exclusive values are flagged immediately as invalid. * tests/test-canonicalize.c: Verify symlinks are not followed, and that invalid flag combinations are diagnosed. 2011-12-25 Jim Meyering gitlog-to-changelog: do not clump multi-paragraph entries Identical header lines (date,name,email+coauthors) are suppressed, thus putting all entries with those same characteristics under a single header. However, when a log entry consists of two or more paragraphs, it may not be clear where it starts and ends. This change makes it so that such an entry is always separated from others by a header line, even when that header would otherwise be suppressed. * build-aux/gitlog-to-changelog: Implement the above. Inspired by a related request from Stefano Lattarini in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/29456 2011-12-25 Paul Eggert announce-gen: fix `cmd' typo in diagnostic * build-aux/announce-gen (print_changelog_deltas): Fix typo in diagnostic: a missing '$' meant that the command was not output. 2011-12-23 Jim Meyering test-framework-sh: distribute init.sh * modules/test-framework-sh (EXTRA_DIST): Append init.sh. Otherwise, "make -C gnulib-tests check" (at least in grep) would fail due to the lack of init.sh. maint: remove explicit Files: tests/init.sh; depend on test-framework-sh * modules/atexit-tests: Rather than listing tests/init.sh, now that there's a module for it, simply depend on that new module. * modules/closein-tests: Likewise. * modules/exclude-tests: Likewise. * modules/getcwd-tests: Likewise. * modules/perror-tests: Likewise. * modules/pread-tests: Likewise. * modules/pwrite-tests: Likewise. * modules/vc-list-files-tests: Likewise. * modules/verify-tests: Likewise. * modules/xalloc-die-tests: Likewise. * modules/xstrtoimax-tests: Likewise. * modules/xstrtol-tests: Likewise. * modules/xstrtoll-tests: Likewise. * modules/xstrtoumax-tests: Likewise. * modules/yesno-tests: Likewise. 2011-12-22 Jim Meyering test-framework-sh: add minimal tests of init.sh's compare function * modules/test-framework-sh-tests: New file. * tests/test-init.sh: New file. test-framework-sh: new module * modules/test-framework-sh: New file. * MODULES.html.sh (Support for maintaining and releasing projects): List it. init.sh: do not emit simulated diff output to stderr * tests/init.sh (compare_dev_null_): Print to stdout, not stderr. 2011-12-22 Reuben Thomas .gitignore: ignore gnulib.dvi and regex.info * doc/.gitignore:add gnulib.dvi and regex.info 2011-12-22 Jim Meyering init.sh: correct previous change * tests/init.sh (compare): My previous change was wrong. Don't clobber "$?". Spotted by Stefano Lattarini and Pádraig Brady. init.sh: avoid unwarranted test failure when using "set -e" * tests/init.sh (compare): Ignore nonzero exit from compare_dev_null_. Otherwise, in a test script that uses "set -e" (like many in vc-dwim) a use like "compare exp out" would get evoke an unconditional failure. 2011-12-21 Alfred M. Szmidt bootstrap: fix it to honor $ACLOCAL_FLAGS once again The 2011-12-17 change, commit 767ccd40, replaced a manual invocation of aclocal that used explicit $ACLOCAL_FLAGS with an invocation of autoreconf that did not. * build-aux/bootstrap: Use $ACLOCAL_FLAGS when invoking autoreconf. Reported by Mats Erik Andersson . 2011-12-17 Jim Meyering bootstrap: remove some now-unneeded code This script arose back when gnulib-tool was young. Since then, it has seen improvements that render much of this script unnecessary. In particular, it can now make symlinks to the files it uses. Also, I no longer see as much value in marking files as read-only via comments. If you relied on the symlink-creation feature of the preceding version of this script, you can get most of that functionality by adding the --symlink option to the definition of gnulib_tool_option_extras in your bootstrap.conf file. * build-aux/bootstrap (AUTOPOINT, AUTORECONF): Factor out definitions. Run autopoint and libtoolize *before* gnulib-tool. After it, run an abbreviated autoreconf, rather than a loop around all tools. (slirp, bt_mark_as_generated): Remove functions. 2011-12-18 Paul Eggert ftoastr: fix typo * lib/ftoastr.h: Fix misspelling in comment. 2011-12-18 Reuben Thomas * top/README-release: fix punctuation. 2011-12-17 Jim Meyering bootstrap: correct the recent buildreq change The 2011-12-07 commit, 39f5f1e4, omitted some '*'s, and thus had no effect. * build-aux/bootstrap (buildreq): Bracket each search term with "*...*", so that the shell "case" statement works as intended. Add comments. 2011-12-17 Bernhard Voelker build: let bootstrap resort to wget when downloading .po files * build-aux/bootstrap (download_po_files): Fallback to wget when downloading the .po files via rsync fails. This is necessary to bootstrap from behind a strict firewall. 2011-12-15 Paul Eggert stdint: don't assume C++11 when compiling with g++ Problem reported for glibc 2.14 and g++ by Alexander V. Lukyanov in . * m4/stdint.m4 (gl_STDINT_H): Don't go to extra work to make it work also in C++ before C++11, as that improperly inhibits generating a substitute stdint.h for that case. 2011-12-15 Paul Eggert alloca: protect comment from gnulib-tool * lib/alloca.c: Change "GCC version 2" to "GCC 2" in comment, so that gnulib-tool doesn't think it's a license, and munge it to say "GCC version 3". 2011-12-15 Ludovic Courtès (tiny change) localcharset: Use an absolute path in TESTS_ENVIRONMENT. * modules/localcharset (LOCALCHARSET_TESTS_ENVIRONMENT): Use $(abs_top_builddir) instead of $(top_builddir). 2011-12-14 Alex Nelson (tiny change) strftime-tests: also test nanoseconds * tests/test-strftime.c (T): Add a test of %N. 2011-12-13 Paul Eggert inttypes, stdint: add C++11 support C++11 says there's no need to define __STDC_CONSTANT_MACROS etc. when including inttypes.h and stdint.h. Support this change to the standard. * doc/posix-headers/inttypes.texi (inttypes.h): * doc/posix-headers/stdint.texi (stdint.h): Document this. * lib/inttypes.in.h (__STDC_FORMAT_MACROS) [! __cplusplus]: Define if not defined already, for the benefit of pre-C++11 hosts. Define the standard format macros (e.g., PRId8) always. * lib/stdint.in.h (__STDC_CONSTANT_MACROS, __STDC_LIMIT_MACROS): Likewise, if __cpluspus. Define the standard constant and limit macros (e.g., INT8_C, INT8_MAX) always. * m4/inttypes.m4 (gl_INTTYPES_INCOMPLETE): Do not define GL_TRIGGER_STDC_LIMIT_MACROS or __STDC_LIMIT_MACROS; no longer needed. * m4/stdint.m4 (gl_STDINT_H): Update comments about these macros. * tests/test-inttypes.c (__STDC_LIMIT_MACROS, __STDC_CONSTANT_MACROS) (__STDC_FORMAT_MACROS): Do not define, since we assume C++11 API now. * tests/test-stdint.c (__STDC_LIMIT_MACROS, __STDC_CONSTANT_MACROS): Likewise. 2011-12-12 Paul Eggert nonblocking tests: Fix test failure on Linux/PPC. Suggested by Prerna Saxena in . * tests/test-nonblocking-pipe.h (PIPE_DATA_BLOCK_SIZE) [Linux/PPC64]: Set to 1100000. 2011-12-12 Jim Meyering argmatch: don't hard-code `' when listing valid option arguments * lib/argmatch.c (argmatch_valid): Don't hard-code `%s'. Instead, use the quote function to add quotes. Use fputs rather than fprintf for the format string with no format directive. 2011-12-07 Eric Blake bootstrap: detect tools required by gnulib-tool * build-aux/bootstrap (buildreq): Provide minimum implicit dependencies. * DEPENDENCIES: Mention patch as a prereq. 2011-12-04 Bruno Haible sethostname: Port to Windows platforms. * lib/sethostname.c: Provide an alternate implementation for Windows platforms. * tests/test-sethostname2.c (geteuid): Redefine on Cygwin. (main): Skip the test if sethostname() fails with EPERM. On Windows platforms, don't check the result of gethostname(). 2011-12-04 Bruno Haible Jim Meyering tests: Avoid spurious error message on platforms without mktemp program. * tests/init.sh (mktempd_): Run mktemp in a subcommand. 2011-12-04 Bruno Haible sethostname: Fix documentation. * doc/glibc-functions/sethostname.texi: Move the Solaris problem to the "not fixed" section. 2011-12-03 Bruno Haible gnulib-tool: Verify that the License field is present and non-empty. * gnulib-tool (func_get_license_raw): New function, extracted from func_get_license. (func_get_license): Use it. Warn if the module is not a test module and has no license. Suggested by Jim Meyering. 2011-12-03 Bruno Haible sethostname tests: Fix link error on mingw. * tests/test-sethostname1.c: New file, extracted from tests/test-sethostname.c. * tests/test-sethostname2.c: New file, extracted from tests/test-sethostname.c. * tests/test-sethostname.c: Remove file. * modules/sethostname-tests (Files): Add tests/test-sethostname1.c, tests/test-sethostname2.c. Remove tests/test-sethostname.c. (Depends-on): Add gethostname. (Makefile.am): Compile both test-sethostname1 and test-sethostname2. Link the latter with $(GETHOSTNAME_LIB). sethostname tests: Fix compilation error on mingw. * tests/test-sethostname.c: Don't include . (geteuid): Use a dummy value without uid_t. * modules/sethostname-tests (Depends-on): Remove sys_types. sethostname tests: Avoid a gcc warning. * tests/test-sethostname.c (main): Remove an unused variable. Tweak last commit. * modules/sethostname-tests (Files): Sort by decreasing importance. (configure.ac): Check for geteuid. * tests/test-sethostname.c (main): Emit error messages to stderr. Skip the test when there's nothing to test. Drop an unnecessary cast. Improve an error message. Verify that the final sethostname() call succeeds. 2011-12-01 Ben Walton Add a test suite for the sethostname module. * modules/sethostname-tests: New file. A test program for the sethostname module. * tests/test-sethostname.c: Likewise. 2011-12-03 Bruno Haible Tweak last commit. * lib/unistd.in.h (sethostname): Keep declarations in alphabetic order. Fix preprocessor directives indentation. Fix typos. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Keep alphabetic order. * modules/unistd (Makefile): Likewise. 2011-12-01 Ben Walton Integrate the sethostname module into unistd. * lib/unistd.in.h: Integrate the SETHOSTNAME preprocessor handling into the unistd.h header. * m4/unistd_h.m4: Setup the autoconf handling for the SETHOSTNAME preprocessor directives. * modules/unistd: Setup the Makefile substitutions of the SETHOSTNAME preprocessor directives. 2011-12-03 Bruno Haible Tweak last commit. * lib/sethostname.c: Don't include . (sethostname): No need to copy the argument string to the stack. Don't call clearerr. Preserve errno when fprintf failed. * m4/sethostname.m4 (gl_FUNC_SETHOSTNAME): Comment about HOST_NAME_MAX. Don't invoke AC_REPLACE_FUNCS. * modules/sethostname (Link): Remove empty section. * doc/glibc-functions/sethostname.texi: Gnulib does not fix the ENOSYS failure problem. 2011-12-01 Ben Walton New module 'sethostname'. * lib/sethostname.c (sethostname): New file. Provide sethostname for systems that lack it. * m4/sethostname.m4 (gl_FUNC_SETHOSTNAME): New file. Detection of sethostname declaration and function. * modules/sethostname: New file. Define the sethostname module. 2011-12-03 Bruno Haible Tweak last commit. * m4/gethostname.m4 (gl_PREREQ_HOST_NAME_MAX): Trim blank line. 2011-12-01 Ben Walton Split the HOST_NAME_MAX detection into a separate m4 macro. * m4/gethostname.m4 (gl_PREREQ_HOST_NAME_MAX): Make this a separate macro so it can be used by the pending sethostname module. 2011-12-03 Bruno Haible Fix module descriptions syntax. * modules/argv-iter (License): Fix syntax. * modules/di-set (License): Likewise. * modules/ino-map (License): Likewise. Reported by Stefano Lattarini . 2011-12-02 Paul Eggert stdalign: port to Clang 3.0 Problem reported by Simon Josefsson in . * doc/posix-headers/stdalign.texi (stdalign.h): Mention Clang 3.0, which has but which does not define alignof. * m4/stdalign.m4 (gl_STDALIGN_H): Check for Clang 3.0's problem. 2011-12-01 Eric Blake mktempd: silence dd usage * build-aux/mktempd (rand_bytes): Silence dd. 2011-11-30 Simon Josefsson manywarnings: Don't mention gcc version in docstring. * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Doc fix. Suggested by Jim Meyering . 2011-11-30 Jim Meyering hash: mark a few floating point constants with "f" suffix * lib/hash.c (DEFAULT_GROWTH_THRESHOLD, DEFAULT_GROWTH_FACTOR) (DEFAULT_SHRINK_THRESHOLD, DEFAULT_SHRINK_FACTOR): Mark literal floating point constants with "f", since they're destined to be saved/used as "float"s. 2011-11-29 Paolo Bonzini float tests: Correct and re-enable assertion about LDBL_MIN_EXP. * tests/test-float.c (test_long_double): Correct and re-enable the assertion about LDBL_MIN_EXP that was disabled on 2011-08-31. 2011-11-29 Matthew Wala (tiny change) Avoid subtracting two pointers that don't point into the same block. * lib/argp-help.c (hol_append): Reorder pointer subtractions so that only pointers into the same memory block are subtracted. We cannot assume that sizeof (ptrdiff_t) == sizeof (void *). 2011-11-29 Eric Blake maint.mk: add syntax check for use of compare from init.sh * top/maint.mk (sc_prohibit_reversed_compare_failure): New rule, moved here from coreutils. manywarnings: drop -Wunsuffixed-float-constants * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): C99 does not allow '1.0D', which is the only way to silence this warning for 'double'. 2011-11-29 Jim Meyering hash: mark compute_bucket_size with the pure attribute * lib/hash.c (compute_bucket_size): Use _GL_ATTRIBUTE_PURE. quotearg, propername: correct pragma guard expression * lib/quotearg.c: Enable pragma for gcc-4.6 and newer, not 4.3 and newer. * lib/propername.c: Likewise. Reported by Bernhard Voelker. 2011-11-28 Jim Meyering propername: do not mark proper_name with the const attribute * lib/propername.h (proper_name): Do *not* mark as _GL_ATTRIBUTE_CONST, since it examines data pointed to by its parameter. * lib/propername.c (proper_name): Instead, add a pragma to suppress the suggestion from -Wsuggest-attribute=const. propername: mark one more function as const * lib/propername.h (proper_name): Mark as _GL_ATTRIBUTE_CONST. 2011-11-27 Jim Meyering mark functions with const and pure attributes Mark functions per suggestions from gcc-4.6 when using these options: -Wsuggest-attribute=pure -Wsuggest-attribute=const. Use gnulib's _GL_ATTRIBUTE_PURE and _GL_ATTRIBUTE_CONST macros. Follow these guidelines: when possible, apply the attribute to an extern declaration, not to its definition. Apply it to the definition only when the definition is static. * lib/argmatch.h (argmatch, argmatch_to_argument): Mark. * lib/argv-iter.h (argv_iter_n_args): Likewise. * lib/base64.h (isbase64): Likewise. * lib/basename-lgpl.c (last_component, base_len): Likewise. * lib/c-ctype.h (c_isascii, c_isalnum, c_isalpha): Likewise. (c_isblank, c_iscntrl, c_isdigit, c_islower, c_isgraph): Likewise. (c_isprint, c_ispunct, c_isspace, c_isupper, c_isxdigit): Likewise. (c_tolower, c_toupper): Likewise. * lib/c-strcase.h (c_strcasecmp, c_strncasecmp): Likewise. * lib/chdir-long.c (find_non_slash): Likewise. * lib/dirname.h (base_len, dir_len, last_component): Likewise. * lib/exclude.h (fnmatch_pattern_has_wildcards): Likewise. * lib/file-type.h (file_type): Likewise. * lib/filenamecat-lgpl.c (longest_relative_suffix): Likewise. * lib/filevercmp.c (verrevcmp): Likewise. * lib/freadahead.h (freadahead): Likewise. * lib/fts.c (fts_maxarglen): Likewise. * lib/hash-pjw.h (hash_pjw): Likewise. * lib/hash-triple.h (triple_hash_no_name, triple_compare_ino_str): * lib/hash.c (is_prime, next_prime): Likewise. * lib/hash.c (hash_get_n_buckets, hash_get_n_buckets_used): Likewise. (hash_get_n_entries, hash_get_max_bucket_length): Likewise. (hash_table_ok, hash_get_first, hash_string): Likewise. (compute_bucket_size): Likewise. * lib/i-ring.h (i_ring_empty): Likewise. * lib/isnan.c (isnanl): Likewise. * lib/math.h (isnanl, rpl_isnanl): Likewise. * lib/memcasecmp.h (memcasecmp): Likewise. * lib/memchr2.h (memchr2): Likewise. * lib/memcmp2.h (memcmp2): Likewise. * lib/parse-datetime.y (lookup_zone): Likewise. * lib/sockets.h (gl_sockets_startup, gl_sockets_cleanup) [!WINDOWS_SOCKETS]: Likewise. * lib/strnlen1.h (strnlen1): Likewise. * lib/uniwidth.in.h (uc_width): Likewise. * lib/quotearg.c: Add pragma to avoid unwarranted suggestion from gcc's -Wsuggest-attribute=pure for quoting_options_from_style. (quoting_options_from_style): Add a comment. * lib/propername.h (proper_name): Add a comment. 2011-11-27 Bruno Haible Remove unused macros from !_LIBC code in glibc-borrowed files. * lib/fnmatch.c (STRCOLL): Remove macro. * lib/fnmatch_loop.c (STRCOLL): Remove undef. * lib/glob.c (__stat, __readdir64): Remove macros. * lib/tempname.c (__open64, __xstat64): Remove macros. Suggested by Paul Eggert. 2011-11-27 Bruno Haible getcwd: Fix link error on MSVC 9. * modules/getcwd (Depends-on): Add readdir, rewinddir. 2011-11-27 Bruno Haible Don't set REPLACE_FOO to 1 if HAVE_FOO is 0. * m4/opendir.m4 (gl_FUNC_OPENDIR): Don't set REPLACE_OPENDIR to 1 if HAVE_OPENDIR is 0. * m4/closedir.m4 (gl_FUNC_CLOSEDIR): Don't set REPLACE_CLOSEDIR to 1 if HAVE_CLOSEDIR is 0. * m4/dup2.m4 (gl_FUNC_DUP2): Don't set REPLACE_DUP2 to 1 if HAVE_DUP2 is 0. * m4/dup3.m4 (gl_FUNC_DUP3): Update comments. 2011-11-27 Bruno Haible getcwd: Fix bug from 2011-08-17. * m4/getcwd.m4 (gl_FUNC_GETCWD): Set REPLACE_GETCWD to 1 only on platforms that need it. * m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Consider a return code of 4 to be a failure, not a success. This ensures that REPLACE_GETCWD becomes 1 on OpenBSD 4.9 and NetBSD 5.1. 2011-11-27 Bruno Haible binary-io tests: Avoid test failure on mingw when libtool is used. * tests/test-binary-io.c (main): Don't remove t-bin-out2.tmp here. Don't verify the size of t-bin-out1.tmp here. * tests/test-binary-io.sh: Verify it here. Reported by Simon Josefsson. 2011-11-26 Bruno Haible Fix conflict between two instantiations of module 'unistd'. * gnulib-tool (func_emit_autoconf_snippet): Substitute ${include_guard_prefix} also in the autoconf snippet. * m4/getopt.m4 (gl_FUNC_GETOPT_POSIX): Don't set GNULIB_UNISTD_H_GETOPT. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Don't initialize GNULIB_UNISTD_H_GETOPT. * modules/getopt-posix (configure.ac): Set the GNULIB_${gl_include_guard_prefix}_UNISTD_H_GETOPT variable. * modules/getopt-gnu (configure.ac): Likewise. * modules/unistd (Makefile.am): Change the substitution value of GNULIB_UNISTD_H_GETOPT to depend on the include guard prefix. Reported by Simon Josefsson. 2011-11-25 Bruno Haible pagealign_alloc: Doc and comments. * doc/posix-functions/posix_memalign.texi: Refer to the pagealign_alloc module. * lib/pagealign_alloc.c (pagealign_alloc): Add comment. 2011-11-25 Jim Meyering test-update-copyright.sh: avoid false-positive failure * tests/test-update-copyright.sh: Use $TMP.? (not $TMP.*), to work around false positive failure on Cygwin/Windows. The latter was matching erroneously-created files with names like update-copyright.test-ex.4.bak. Reported by Simon Josefsson. 2011-11-25 Simon Josefsson valgrind-tests.m4: Avoid breakage if valgrind on bash fails. * m4/valgrind-tests.m4: Check that the parameters that will be used works, not just a subset of them. Reported by Bruno Haible . 2011-11-24 Jim Meyering test-stdalign.c: comment out long double tests * tests/test-stdalign.c: Don't try to reduce alignment of long double variables. That provokes errors like this from gcc-4.7.0 20111124: error: '_Alignas' specifiers cannot reduce alignment of \ 'static_longdouble_alignas'. 2011-11-22 Jim Meyering init.sh: make "compare /dev/null FILE" output more readable * tests/init.sh (compare_): Document the preferred order of arguments. (emit_diff_u_header_): New function. (compare_dev_null_): Emit a simulated diff, rather than just the contents of the unexpected file. Suggestion from Bruno Haible. 2011-11-21 Jim Meyering Eric Blake init.sh: work around OSF/1 5.1's mishandling of /dev/null * tests/init.sh: Make our compare function slightly more portable. Reported by Bruno Haible in http://thread.gmane.org/gmane.comp.gnu.grep.bugs/4020 2011-11-21 Simon Josefsson * m4/gnulib-common.m4 (_Noreturn): Check that _MSC_VER is defined before using it, in code that ends up in config.h. 2011-11-20 Bruno Haible getcwd: Work around getcwd bug on AIX 5..7. * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Require AC_CANONICAL_HOST. Assign exit code 31 to the bug seen on AIX 5.1..7.1. Use a different value for gl_cv_func_getcwd_path_max. Move the definition of HAVE_PARTLY_WORKING_GETCWD from here... * m4/getcwd.m4 (gl_FUNC_GETCWD): ... to here. Invoke gl_FUNC_GETCWD_PATH_MAX also when $gl_cv_func_getcwd_null is 'no'. Define HAVE_MINIMALLY_WORKING_GETCWD. * lib/getcwd.c (__getcwd): Don't use the system's getcwd on platforms where it is not even minimally working, that is, on AIX. * tests/test-getcwd.c (test_long_name): Distinguish the same cases as m4/getcwd-path-max.m4. (main): Update exit code computation. * doc/posix-functions/getcwd.texi: Mention list of platforms where getcwd does not handle long file names. 2011-11-20 Bruno Haible getcwd: Fix bug from 2009-09-10. * m4/getcwd.m4 (gl_FUNC_GETCWD): Treat "guessing yes" like "yes", not like "no". 2011-11-20 Simon Josefsson * m4/manywarnings.m4: Add more warnings from gcc 4.6.2. 2011-11-20 Bruno Haible fma tests: Avoid shadowing local variables. * tests/test-fma2.h (test_function): Reduce scope of x, y, z, result, expected. 2011-11-20 Bruno Haible copysignf tests: Fix. * tests/test-copysignf.c: Fix signature check. 2011-11-20 Bruno Haible fma: Remove unused code. * lib/fma.c (DECL_ROUNDING, BEGIN_ROUNDING, END_ROUNDING): Remove unused macros. 2011-11-20 Bruno Haible sethostname: Fix doc about AIX. * doc/glibc-functions/sethostname.texi: Drop mention that AIX 5.1 lacks sethostname; it has it. sethostname: Mention more portability problems. * doc/glibc-functions/sethostname.texi: Mention the missing declaration problem. Reported by Ben Walton . 2011-11-19 Bruno Haible Depend on module fcntl-h when AT_FDCWD is used. * modules/utimens (Depends-on): Add fcntl-h. * modules/areadlinkat (Depends-on): Likewise. * modules/areadlinkat-with-size (Depends-on): Likewise. * modules/faccessat (Depends-on): Likewise. * modules/fchmodat (Depends-on): Likewise. * modules/fchownat (Depends-on): Likewise. * modules/getcwd (Depends-on): Likewise. * modules/mkdirat (Depends-on): Likewise. * modules/mkfifoat (Depends-on): Likewise. * modules/readlinkat (Depends-on): Likewise. * modules/symlinkat (Depends-on): Likewise. * modules/dup2-tests (Depends-on): Likewise. * modules/fdutimensat-tests (Depends-on): Likewise. * modules/futimens-tests (Depends-on): Likewise. 2011-11-19 Bruno Haible euidaccess: Update a comment. * lib/euidaccess.c: Update comment about platforms with faccessat. 2011-11-19 Bruno Haible openat: Fix file list. * modules/openat (Files): Remove lib/at-func.c. 2011-11-19 Bruno Haible fstatat: Simplify. * lib/fstatat.c (AT_FUNC_NAME): Define as fstatat. On platforms where gnulib should define rpl_fstatat, there is a "#define fstatat rpl_fstatat" in . 2011-11-19 Bruno Haible Ensure 'inline' can be used in tests/test-utimens-common.h. * modules/fdutimensat-tests (configure.ac): Require AC_C_INLINE. * modules/futimens-tests (configure.ac): Likewise. * modules/utimens-tests (configure.ac): Likewise. * modules/utimensat-tests (configure.ac): Likewise. 2011-11-19 Simon Josefsson * lib/hash.c (hash_insert): Use hash_insert_if_absent, not hash_insert0. (hash_insert_if_absent): Doc fix. 2011-11-19 Simon Josefsson * m4/readline.m4 (gl_FUNC_READLINE): Check for readline/history.h. 2011-11-18 Paul Eggert test-getcwd: disambiguate exit status * tests/test-getcwd.c (test_long_name): Return 0..7. (main): Exit with an unambiguous exit status. The old code yielded a mysterious mixture of two failure codes. fstatat: fix configuration bug on mingw, OpenBSD 4, Solaris 8 * lib/fstatat.c (AT_FUNC_NAME): Use HAVE_FSTAT, not HAVE_WORKING_FSTATAT_ZERO_FLAG, to decide whether to define rpl_fstatat or fstatat. This should fix the other problem reported by Kai Habel in . A similar problem was reported for OpenBSD 4.6 by Mats Erik Andersson and I reproduced it on a Solaris 8 host we still have in production. 2011-11-18 Jim Meyering hash: deprecate poorly-named hash_insert0: use hash_insert_if_absent * lib/hash.c (hash_insert_if_absent): Rename from hash_insert0. Add a sentence to the comment. (hash_insert0): New function that simply calls hash_insert_if_absent. * lib/hash.h (hash_insert_if_absent): Declare it. (hash_insert0): Add deprecation attribute. (_GL_ATTRIBUTE_DEPRECATED): Define. * lib/di-set.c (di_set_insert): Use hash_insert_if_absent, not hash_insert0. * NEWS: Mention it, even though it's not really an incompatible change. 2011-11-18 Dagobert Michelsen (tiny change) openat: avoid compilation failure due to lack of inclusion * lib/openat.c: Include . 2011-11-17 Paul Eggert * modules/getcwd (Depends-on): Add fdopendir. This fixes one of the two problems reported by Kai Habel in . modules/crypto/gc-*: simplify dependencies and fix stdalign.h bug stdalign problem reported by Ian Beckwith in . * modules/crypto/gc-arcfour (Depends-on): Depend conditionally on crypto/arcfour. * modules/crypto/gc-arctwo (Depends-on): Depend conditionally on crypto/arctwo. * modules/crypto/gc-des (Depends-on): Depend conditionally on crypto/des. * modules/crypto/gc-hmac-md5 (Depends-on): Depend conditionally on crypto/hmac-md5. * modules/crypto/gc-hmac-sha1 (Depends-on): Depend conditionally on crypto/hmac-sha1. * modules/crypto/gc-md2 (Depends-on): Remove stdint, minmax. * modules/crypto/gc-md4 (Depends-on): Depend conditionally on crypto/md4. * modules/crypto/gc-md5 (Depends-on): Depend conditionally on crypto/md5. * modules/crypto/gc-rijndael (Depends-on): Depend conditionally on crypto/rijndael. * modules/crypto/gc-sha1 (Depends-on): Depend conditionally on crypto/sha1. * modules/crypto/gc-arcfour: * modules/crypto/gc-arctwo: * modules/crypto/gc-des: * modules/crypto/gc-hmac-md5: * modules/crypto/gc-hmac-sha1: * modules/crypto/gc-md2: * modules/crypto/gc-md4: * modules/crypto/gc-md5: * modules/crypto/gc-rijndael: * modules/crypto/gc-sha1: (Files, Depends-on, configure.ac): Remove now-unnecessary stuff, now that the conditional dependencies do the work for us. 2011-11-17 Jim Meyering tests: factor st_ctime-comparison out of two headers * tests/test-utimens-common.h (ctime_compare): Define. * tests/test-futimens.h (test_futimens): Replace open-coded equivalent. * tests/test-lutimens.h (test_lutimens): Likewise. * tests/test-utimens.h (test_utimens): Likewise. test-getcwd: don't leave behind a confdir3/ directory upon interrupt Invoke the test program via an init.sh-using wrapper. * tests/test-getcwd.sh: New file. * modules/getcwd-tests (Files): Add it. (Makefile.am) [TESTS]: Invoke the shell script wrapper. 2011-11-01 Gary V. Vaughan gitlog-to-changelog: support multi-author commits. The FSF cares about keeping track of all authors of patches to its projects, but Git doesn't provide obvious support for multi-author changesets. Consensus seems to be forming around the use of extra Signed-off-by inspired lines in the log message formatted as `Co-authored-by: A U Thor ' for round-tripping multi-author commits between version control systems. * gitlog-to-changelog: Extract `Co-authored-by:' lines from the git log message and output in standard ChangeLog multi-author format. Reported by Peter Rosin 2011-11-15 Ben Walton (tiny change) Bruno Haible Fix some modules' file list. * modules/fstatat (Files): Add m4/lstat.m4. * modules/openat (Files): Likewise. * modules/unlinkat (Files): Likewise. 2011-11-15 Gary V. Vaughan maint.mk: fix tight-scope.mk generation in VPATH builds. * top/maint.mk (tight-scope.mk): Make sure to prefix file reference with $(srcdir) so that the file is found correctly even when running `make syntax-check' in a VPATH build. 2011-11-13 Bruno Haible Jim Meyering Silence successful tests that use 'compare' on AIX, HP-UX, Solaris. * tests/init.sh (compare): Remove "No differences encountered" or synonymous output from the 'diff' program. 2011-11-13 Bruno Haible Makefile: Tweak indentation. * Makefile: Use tab as first character in every line that contains rule commands. 2011-11-13 Bruno Haible Syntax check for copyright statements. * check-copyright: New file. * Makefile (sc_check_copyright): New rule. 2011-11-13 Simon Josefsson * build-aux/git-version-gen: Add --prefix to configure the tag match string. 2011-11-13 Simon Josefsson * build-aux/git-version-gen: Add --help and --version. 2011-11-12 Jim Meyering revamp the other test-exclude?.sh scripts to use init.sh, too * tests/test-exclude1.sh: Use init.sh. * tests/test-exclude2.sh: Likewise. * tests/test-exclude3.sh: Likewise. * tests/test-exclude4.sh: Likewise. * tests/test-exclude5.sh: Likewise. * tests/test-exclude6.sh: Likewise. * tests/test-exclude7.sh: Likewise. * tests/test-exclude8.sh: Likewise. * modules/exclude-tests (Files): List init.sh. test-exclude2.sh, test-exclude5.sh: fail if test-exclude fails These shell scripts ignored failure of the binary test-exclude, so making the latter return 77 didn't cause them to be skipped. * tests/test-exclude5.sh: Exit with test-exclude's error status when that program fails. Revamp to use init.sh. * tests/test-exclude2.sh: Likewise. test-exclude: fix a typo * tests/test-exclude.c (main): Test for "leading_dir", not "leading-dir". 2011-11-11 Bruno Haible obstack: Fix compilation error on MSVC 9. * lib/obstack.c (print_and_abort): Declare with _Noreturn specifier. 2011-11-11 Jim Meyering test-exclude: skip tests rather than failing on deficient systems * tests/test-exclude.c (main): Skip tests that use FNM_CASEFOLD and FNM_LEADING_DIR on systems that lack the definitions. This affects at least Solaris 9. Reported and diagnosed by Dagobert Michelsen in http://thread.gmane.org/gmane.comp.gnu.grep.bugs/3947/focus=3950 2011-11-10 Bruno Haible ptsname_r test: Avoid gcc warning on glibc systems. * tests/test-ptsname_r.c (null_ptr): New function. (test_errors): Use it. 2011-11-10 Bruno Haible ptsname_r: Avoid compilation error on OSF/1 5.1. * lib/stdlib.in.h (ptsname_r): Override if REPLACE_PTSNAME_R is 1. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_PTSNAME_R. * m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): Set REPLACE_PTSNAME_R if the function is not declared or incompatibly declared. * modules/stdlib (Makefile.am): Substitute REPLACE_PTSNAME_R. * modules/ptsname_r (Depends-on, configure.ac): Update. * doc/glibc-functions/ptsname_r.texi: Mention the OSF/1 problems. 2011-11-10 Bruno Haible fstatat: Make cross-compilation guess succeed everywhere except on AIX. * m4/fstatat.m4 (gl_FUNC_FSTATAT): Require AC_CANONICAL_HOST. When cross-compiling, guess yes on all platforms except AIX. Reported by Ludovic Courtès . 2011-11-09 Bruno Haible ptsname_r tests: Fix bugs. * tests/test-ptsname_r.c (test_errors): Change return type to 'void'. Fix ptsname_r calls. Reduce loop rounds to a reasonable amount. 2011-11-09 Paul Eggert fstatat: work with cross-compilation Problem reported by Ludovic Courtès in . * m4/fstatat.m4 (gl_FUNC_FSTATAT): When cross-compiling, report "cross-compiling" and assume the bug is present. Replace FSTATAT_ZERO_FLAG_BROKEN with HAVE_WORKING_FSTATAT_ZERO_FLAG with an inverted sense, to be more conservative about our assumptions. * lib/fstatat.c (rpl_fstatat): Adjust to renamed macro. 2011-11-09 Bruno Haible Improve MODULES.html output. * modules/mkfifoat (Description): Use the word "function". * modules/readlinkat (Description): Likewise. * modules/symlinkat (Description): Likewise. 2011-11-09 Eric Blake ptsname_r-tests: new test module * modules/ptsname_r-tests: New module. * tests/test-ptsname_r.c: New file. ptsname_r: new module * modules/ptsname_r: New module. * m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): New file. * lib/ptsname.c (__ptsname_r): Split... * lib/ptsname_r.c: ...into new file. * m4/stdlib_h.m4 (gl_STDLIB_H): Check for decl. (gl_STDLIB_H_DEFAULTS): Set witness defaults. * modules/stdlib (Makefile.am): Substitute witnesses. * lib/stdlib.in.h (ptsname_r): Declare it. * doc/glibc-functions/ptsname_r.texi (ptsname_r): Document it. * MODULES.html.sh (Misc): Likewise. * modules/ptsname (Depends-on): Alter dependency. * doc/posix-functions/ptsname.texi (ptsname): Mention new module. 2011-11-09 Jim Meyering announce-gen: be more concise when there's only one URL+tarball * build-aux/announce-gen (get_tool_versions): When you distribute only one type of tarball, combine the first two "Here are..." sections and make the key-checking grammar independent of how many tarballs there are. 2011-11-09 Eric Blake openpty: provide a stub on mingw * lib/pty.in.h (includes): Provide forward declarations. * lib/openpty.c (openpty) [mingw]: Provide ENOSYS stub. raise: fix mingw handling of SIGPIPE * lib/sigprocmask.c (_gl_raise_SIGPIPE): Provide a return value. 2011-11-08 Bruno Haible More conditional dependencies. * modules/faccessat (Depends-on): Add conditions. * modules/fchmodat (Depends-on): Likewise. * modules/fchownat (Depends-on): Likewise. * modules/fstatat (Depends-on): Likewise. * modules/mkfifoat (Depends-on): Likewise. * modules/readlinkat (Depends-on): Likewise. * modules/symlinkat (Depends-on): Likewise. * modules/unlinkat (Depends-on): Likewise. * modules/utimensat (Depends-on): Likewise. * modules/mkdirat (Depends-on): Add sys_stat. Add conditions. * modules/linkat (Depends-on): Refine the conditions. * modules/renameat (Depends-on): Likewise. 2011-11-08 Bruno Haible faccessat: Move AC_LIBOBJ invocation to module description. * m4/faccessat.m4 (gl_PREREQ_FACCESSAT): New macro. (gl_FUNC_FACESSAT): Don't test for access() here. Move AC_LIBOBJ invocation from here... * modules/faccessat (configure.ac): ... to here. Invoke gl_PREREQ_FACCESSAT. 2011-11-08 Bruno Haible faccessat: Simplify autoconf macro. * m4/faccessat.m4 (gl_FUNC_FACCESSAT): Don't require gl_FUNC_OPENAT, gl_FUNC_EUIDACCESS. 2011-11-08 Bruno Haible renameat: Fix dependencies. * modules/renameat (Depends-on): Add stdbool. 2011-11-08 Bruno Haible mkfifoat: Fix module description. * modules/mkfifoat (configure.ac): Invoke gl_SYS_STAT_MODULE_INDICATOR, not gl_UNISTD_MODULE_INDICATOR. 2011-11-08 Bruno Haible fstatat: Remove unused dependency. * modules/fstatat (Depends-on): Remove fstat. 2011-11-08 Simon Josefsson GNUmakefile: behave when Makefile is missing. * top/GNUmakefile: Always initialize _build-aux and _autoreconf. 2011-11-08 Bruno Haible openat: Conditionalize dependencies. * lib/openat.c: Reduce the scope of some #includes. * modules/openat (Depends-on): Add conditions. 2011-11-07 Jim Meyering maint.mk: extract GPG key ID without using a temporary file * top/maint.mk (gpg_key_ID): Extract GPG key ID from signed tag, but without using a temporary file. Based on a suggestion from Werner Koch in http://thread.gmane.org/gmane.comp.encryption.gpg.devel/16496 2011-11-07 Eric Blake grantpt: fix typo * lib/stdlib.in.h (grantpt): Check correct function. maint.mk: silence new syntax check * top/maint.mk (sc_prohibit_dirent_without_use): Add missing @. 2011-11-06 Bruno Haible Doc about floating-point and math API. * doc/posix-headers/float.texi: Mention problem with FLT_ROUNDS. * doc/posix-headers/math.texi: Mention problem with math_errhandling. 2011-11-06 Bruno Haible stdalign tests: Skip the test when compiled by Sun C. * tests/test-stdalign.c (main): Skip the test on Sun C. 2011-11-06 Bruno Haible ansi-c++-opt: Complete the 2011-06-05 change. * m4/ansi-c++.m4 (gl_PROG_ANSI_CXX): When a C++ compiler is found but does not support namespaces, set the variable to "no", not to ":". 2011-11-06 Paul Eggert * doc/posix-headers/stdalign.texi (stdalign.h): Mention Sun review ID. 2011-11-06 Bruno Haible copysignl: Fix result for zero argument on HP-UX 11 with HP C. * lib/copysignl.c (compute_minus_zerol) [HP-UX]: New function. (minus_zerol) [HP-UX]: New macro. (unary_minus) [HP-UX]: New function. (copysignl) [HP-UX]: Use unary_minus function. 2011-11-06 Bruno Haible ldexp, ldexpf, ldexpl: Enhance tests. * tests/test-ldexp.h: New file, combining code from tests/test-ldexp.c and tests/test-ldexpl.c. * tests/test-ldexpl.c: (DOUBLE, ISNAN, INFINITY, NAN, L_, MINUS_ZERO, LDEXP, MIN_EXP, MAX_EXP): New macros. Include test-ldexp.h. (main): Just call test_function. * tests/test-ldexp.c: Include float.h, isnand-nolibm.h, minus-zero.h, infinity.h, nan.h. (DOUBLE, ISNAN, INFINITY, NAN, L_, MINUS_ZERO, LDEXP, MIN_EXP, MAX_EXP): New macros. Include test-ldexp.h. (x, y): Remove variables. (main): Just call test_function. * tests/test-ldexpf.c: Include float.h, isnanf-nolibm.h, minus-zero.h, infinity.h, nan.h. (DOUBLE, ISNAN, INFINITY, NAN, L_, MINUS_ZERO, LDEXP, MIN_EXP, MAX_EXP): New macros. Include test-ldexp.h. (x, y): Remove variables. (main): Just call test_function. * modules/ldexpl-tests (Files): Add tests/test-ldexp.h. * modules/ldexp-tests (Files): Add tests/test-ldexp.h, tests/minus-zero.h, tests/infinity.h, tests/nan.h. (Depends-on): Add isnand-nolibm, signbit, float. * modules/ldexpf-tests (Files): Add tests/test-ldexp.h, tests/minus-zero.h, tests/infinity.h, tests/nan.h. (Depends-on): Add isnanf-nolibm, signbit, float. 2011-11-06 Bruno Haible math tests: Cosmetics. * tests/test-math-c++.cc: Reorder declarations. 2011-11-05 Bruno Haible fma*: Simplify test. * tests/test-fma2.h (FORGIVE_GLIBC_BUG): Remove macro. (test_function): Remove all if (FORGIVE_GLIBC_BUG) statements. Tests for module 'fmal'. * modules/fmal-tests: New file. * tests/test-fmal1.c: New file. * tests/test-fmal2.c: New file. New module 'fmal'. * lib/math.in.h (fmal): New declaration. * lib/fmal.c: New file. * m4/fmal.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whethern fmal is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_FMAL, HAVE_FMAL, REPLACE_FMAL. * modules/math (Makefile.am): Substitute GNULIB_FMAL, HAVE_FMAL, REPLACE_FMAL. * modules/fmal: New file. * doc/posix-functions/fmal.texi: Mention the new module and the various bugs. Tests for module 'fmaf'. * modules/fmaf-tests: New file. * tests/test-fmaf1.c: New file. * tests/test-fmaf2.c: New file. New module 'fmaf'. * lib/math.in.h (fmaf): New declaration. * lib/fmaf.c: New file. * m4/fmaf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whethern fmaf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_FMAF, HAVE_FMAF, REPLACE_FMAF. * modules/math (Makefile.am): Substitute GNULIB_FMAF, HAVE_FMAF, REPLACE_FMAF. * modules/fmaf: New file. * doc/posix-functions/fmaf.texi: Mention the new module and the various bugs. Tests for module 'fma'. * modules/fma-tests: New file. * tests/test-fma1.c: New file. * tests/test-fma1.h: New file. * tests/test-fma2.c: New file. * tests/test-fma2.h: New file. New module 'fma'. * lib/math.in.h (fma): New declaration. * lib/fma.c: New file. * m4/fma.m4: New file. * m4/fegetround.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whethern fma is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_FMA, HAVE_FMA, REPLACE_FMA. * modules/math (Makefile.am): Substitute GNULIB_FMA, HAVE_FMA, REPLACE_FMA. * modules/fma: New file. * doc/posix-functions/fma.texi: Mention the new module and the various bugs. Extend gl_MATHFUNC. * m4/mathfunc.m4 (gl_MATHFUNC): Accept an 4th parameter of INCLUDES. Support 'void' as argument type. * m4/rint.m4 (gl_FUNC_RINT): Update gl_MATHFUNC invocation. 2011-11-05 Jim Meyering maint.mk: also prohibit inclusion of dirent.h without use * top/maint.mk (sc_prohibit_dirent_without_use): New rule. 2011-11-05 Bruno Haible ldexpl tests: Avoid test failure on MSVC 9. * tests/test-ldexpl.c (main): Use a temporary variable for the expected value. Needed in order to enforce the conversion from a value greater than LDBL_MAX to Infinity. 2011-11-05 Bruno Haible New modules 'at-internal', 'openat-h', split off from module 'openat'. * modules/at-internal: New file, extracted from modules/openat. * modules/openat-h: New file. * m4/openat.m4 (gl_FUNC_OPENAT): Don't set GNULIB_OPENAT. Don't invoke gl_PREREQ_OPENAT and gl_MODULE_INDICATOR. * modules/openat (Description): Add reference to POSIX function. (Files): Remove lib/openat.h, lib/openat-proc.c. (Depends-on): Add at-internal, openat-h. Remove fdopendir, gettext-h, intprops, unistd. (configure.ac): Remove AC_LIBOBJ of openat-proc. Invoke gl_PREREQ_OPENAT, gl_MODULE_INDICATOR here. Invoke gl_FCNTL_MODULE_INDICATOR. (Include): Remove unistd.h, openat.h. * modules/areadlinkat (Files): Add lib/at-func.c. (Depends-on): Add at-internal, dosname, errno, extensions, fchdir, openat-die, openat-h, save-cwd. * modules/areadlinkat-with-size (Files): Add lib/at-func.c. (Depends-on): Add at-internal, dosname, errno, extensions, fchdir, openat-die, openat-h, save-cwd, unistd. * modules/faccessat (Files): Add lib/at-func.c, lib/openat-priv.h. (Depends-on): Add at-internal, dosname, errno, fchdir, openat-die, openat-h, save-cwd. Remove fcntl-h, openat. * modules/fchmodat (Files): Remove lib/openat.h. (Depends-on): Add at-internal, openat-h. Remove dirent, fcntl-h, openat, stdbool, unistd. * modules/fchownat (Files): Remove lib/openat.h. (Depends-on): Add at-internal, openat-h. Remove dirent, fcntl-h, openat, stdbool, sys_stat. * modules/fdopendir (Files): Remove lib/openat-priv.h, lib/openat-proc.c. (Depends-on): Add at-internal. (condigure.ac): Remove AC_LIBOBJ of openat-proc. * modules/fstatat (Files): Remove lib/openat.h. (Depends-on): Add at-internal, openat-h. Remove dirent, openat, stdbool, unistd. * modules/fts (Depends-on): Add openat-h. * modules/linkat (Depends-on): Add at-internal, openat-h. Remove openat. * modules/mkdirat (Files): Remove lib/openat.h. (Depends-on): Add at-internal, openat-h. Remove dirent, fcntl-h, openat, stdbool, sys_stat. * modules/mkfifoat (Files): Add lib/at-func.c. (Depends-on): Add at-internal, dosname, errno, fchdir, openat-die, openat-h, save-cwd. Remove fcntl-h, openat. * modules/openat-die (Depends-on): Add openat-h. Remove openat. * modules/readlinkat (Files): Add lib/at-func.c. (Depends-on): Add at-internal, dosname, errno, fchdir, openat-die, openat-h, save-cwd. Remove fcntl-h, openat. * modules/renameat (Depends-on): Add at-internal, openat-h. Remove openat. * modules/selinux-at (Files): Add lib/at-func.c. (Depends-on): Add at-internal, dosname, errno, extensions, fchdir, fcntl-h, openat-die, openat-h, save-cwd, unistd. Remove openat. * modules/symlinkat (Files): Add lib/at-func.c. (Depends-on): Add at-internal, dosname, errno, fchdir, openat-die, openat-h, save-cwd. Remove fcntl-h, openat. * modules/unlinkat (Files): Remove lib/openat.h. (Depends-on): Add at-internal, openat-h. Remove dirent, openat, stdbool. * modules/utimensat (Files): Add lib/at-func.c. (Depends-on): Add at-internal, dosname, errno, fchdir, fcntl-h, openat-die, openat-h, save-cwd. * modules/fchownat-tests (Depends-on): Add openat-h. Remove openat. * modules/fdutimensat-tests (Depends-on): Add openat. * modules/fstatat-tests (Depends-on): Add openat-h. * modules/readlinkat-tests (Depends-on): Add openat. * modules/symlinkat-tests (Depends-on): Add openat. 2011-11-05 Bruno Haible openat: Include . * lib/openat.c: Include . 2011-11-04 Bruno Haible fchownat, renameat, unlinkat: Fix dependencies. * modules/fchownat (Depends-on): Add fstatat. * modules/renameat (Depends-on): Likewise. * modules/unlinkat (Depends-on): Likewise. 2011-11-04 Paul Eggert openat: remove direct dependency on dirent * lib/openat.h: Don't include ; it's no longer needed, and hasn't been needed ever since fdopendir was split into its own module on 2009-08-31. * modules/openat (Depends-on): Remove dirent. 2011-11-04 Bruno Haible renameat: Optimize code size. * modules/renameat (configure.ac): Don't compile at-func2.c if REPLACE_RENAMEAT is 1. 2011-11-04 Bruno Haible openat tests: Fix file list. * modules/openat-tests (Files): Add tests/test-open.h. 2011-11-04 Bruno Haible openat, fchmodat, fchownat, linkat, renameat: Fix dependencies. * modules/fchmodat (Depends-on): Add openat-die. * modules/fchownat (Depends-on): Likewise. * modules/linkat (Depends-on): Likewise. * modules/renameat (Depends-on): Likewise. * modules/openat (Depends-on): Add dirent. 2011-11-04 Jim Meyering at-func*.c: fix comments * lib/at-func2.c: Correct/improve first-line comment. * lib/at-func.c: Correct grammar in first-line comment. 2011-11-04 Bruno Haible New module 'mkdirat', split off from module 'openat'. * m4/mkdirat.m4: New file. extracted from m4/openat.m4. * m4/openat.m4 (gl_FUNC_OPENAT): Don't require gl_SYS_STAT_H_DEFAULTS. Don't test for mkdirat. Don't set GNULIB_MKDIRAT, HAVE_MKDIRAT. * modules/mkdirat: New file, extracted from modules/openat. * modules/openat (Files): Remove lib/mkdirat.c. (Depends-on): Remove mkdir. (configure.ac): Remove AC_LIBOBJ of mkdirat. (Include): Remove . * modules/mkdirat-tests: New file, extracted from modules/openat-tests. * modules/openat-tests (Files): Remove tests/test-mkdirat.c, tests/test-mkdir.h. (Depends-on): Remove ignore-value. (Makefile.am): Remove rules for test-mkdirat. * doc/posix-functions/mkdirat.texi: Mention module 'mkdirat' instead of module 'openat'. * NEWS: Mention the change. 2011-11-04 Bruno Haible closedir: Avoid warning on mingw. * lib/closedir.c: Include . 2011-11-04 Bruno Haible New module 'fstatat', split off from module 'openat'. * lib/openat.h (statat, lstatat): Enable only if GNULIB_FSTATAT is defined. * m4/fstatat.m4: New file. extracted from m4/openat.m4. * m4/openat.m4 (gl_FUNC_OPENAT): Don't set GNULIB_FSTATAT. Don't invoke gl_FUNC_FSTATAT. (gl_FUNC_FSTATAT): Moved to m4/fstatat.m4. * modules/fstatat: New file, extracted from modules/openat. * modules/openat (Files): Remove lib/fstatat.c. (Depends-on): Remove lstat. (configure.ac): Remove AC_LIBOBJ of fstatat. * modules/fstatat-tests: New file, extracted from modules/openat-tests. * modules/openat-tests (Files): Remove tests/test-fstatat.c, tests/test-lstat.h, tests/test-stat.h. (Depends-on): Remove getcwd-lgpl. (Makefile.am): Remove rules for test-fstatat. * doc/posix-functions/fstatat.texi: Mention module 'fstatat' instead of module 'openat'. * NEWS: Mention the change. * modules/getcwd (Depends-on): Add fstatat. * modules/linkat (Depends-on): Likewise. * modules/mkfifoat-tests (Depends-on): Likewise. * modules/utimensat (Depends-on): Add fstatat. Remove openat. 2011-11-03 Bruno Haible New module 'unlinkat', split off from module 'openat'. * m4/unlinkat.m4: New file, extracted from m4/openat.m4. * m4/openat.m4 (gl_FUNC_OPENAT): Don't set GNULIB_UNLINKAT, REPLACE_UNLINKAT, HAVE_UNLINKAT. Don't test for unlinkat. * modules/unlinkat: New file, extracted from modules/openat. Correct the dependency conditions. * modules/openat (Files): Remove lib/unlinkat.c. (Depends-on): Remove rmdir, unlink. (configure.ac): Remove AC_LIBOBJ of unlinkat. * modules/unlinkat-tests: New file, extracted from modules/openat-tests. * modules/openat-tests (Files): Remove tests/test-unlinkat.c, tests/test-rmdir.h, tests/test-unlink.h. (Depends-on): Remove unlinkdir. (Makefile.am): Remove rules for test-unlinkat. * doc/posix-functions/unlinkat.texi: Mention module 'unlinkat' instead of module 'openat'. * NEWS: Mention the change. * modules/linkat-tests (Depends-on): Add unlinkat. * modules/mkfifoat-tests (Depends-on): Likewise. * modules/readlinkat-tests (Depends-on): Likewise. 2011-11-02 Bruno Haible New module 'fchmodat', split off from module 'openat'. * lib/openat.h (chmodat, lchmodat): Enable only if GNULIB_FCHMODAT is defined. * m4/fchmodat.m4: New file, extracted from m4/openat.m4. * m4/openat.m4 (gl_FUNC_OPENAT): Don't set GNULIB_FCHMODAT. Don't test for fchmodat, lchmod. Don't set HAVE_FCHMODAT. * modules/fchmodat: New file, extracted from modules/openat. * modules/openat (Files): Remove lib/fchmodat.c. (configure.ac): Remove AC_LIBOBJ of fchmodat. * modules/fchmodat-tests: New file, extracted from modules/openat-tests. * modules/openat-tests (Files): Remove tests/test-fchmodat.c. (Makefile.am): Remove rules for test-fchmodat. * doc/posix-functions/fchmodat.texi: Mention module 'fchmodat' instead of module 'openat'. * NEWS: Mention the change. 2011-11-02 Jim Meyering putenv: indent #definition of "environ" to placate cppi * lib/putenv.c (environ): Make indentation reflect cpp nesting. gitlog-to-changelog: provide a ChangeLog-repair mechanism Git logs are often treated as immutable, because editing them changes the SHA1 checksums of all descendants. Thus, errors in git logs tend to stay there forever. However, when we generate a ChangeLog file -- typically for distribution -- from that git log, we can actually make corrections in the generated file. The key lies in recording in machine-readable/applicable form the desired corrections. See --help for description and an example. * build-aux/gitlog-to-changelog (parse_amend_file): New function. (usage): Describe it; alphabetize option descriptions. (main): Honor the new option, carefully. 2011-11-01 Jim Meyering gitlog-to-changelog: avoid an infloop * build-aux/gitlog-to-changelog: Don't infloop for a commit log that ends up being empty. 2011-11-01 Paul Eggert * MODULES.html.sh: Fix sed-script shell quoting and locale issues. (func_module): Replace foo=` ... sed -e COMPLICATED ... ` with bar=COMPLICATED; foo=` ... sed -e "$bar" ... ` when COMPLICATED contains (possibly-quoted) backslashes. This should avoid all-too-common shell bugs if COMPLICATED contains backslashes in the "wrong" places. Reported by David Evans in . When 'sed' uses character ranges like A-Z, invoke it in the C locale, because we want ASCII ranges. Is there some reason we don't use the C locale everywhere in this script? (func_module, top level): Avoid unwanted pathname expansion when $repo_url_prefix or $repo_url_suffix_repl contain shell metacharacters like '?' and '*'. 2011-11-01 Bruno Haible fchownat: Improve description. * modules/fchownat (Description): Add link to function. 2011-11-01 Paul Eggert * tests/test-stdalign.c (TEST_ALIGNMENT): Shrink back to 8. mingw supports alignments only up to 8 (!). Reported by Bruno Haible in . * doc/posix-headers/stdalign.texi (stdalign.h): Document this. 2011-11-01 Bruno Haible alignof: Avoid collision with stdalign module. * lib/alignof.h (alignof): Remove macro. * NEWS: Mention the change. Reported by Paul Eggert. 2011-11-01 Bruno Haible New module 'fchownat', split off from module 'openat'. * lib/openat.h (chownat, lchownat): Enable only if GNULIB_FCHOWNAT is defined. * m4/fchownat.m4: New file, extracted from m4/openat.m4. * m4/openat.m4 (gl_FUNC_OPENAT): Don't set GNULIB_FCHOWNAT. Don't invoke gl_FUNC_FCHOWNAT. (gl_FUNC_FCHOWNAT_DEREF_BUG, gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG, gl_FUNC_FCHOWNAT): Moved to m4/fchownat.m4. * modules/fchownat: New file, extracted from modules/openat. * modules/openat (Files): Remove lib/fchownat.c. (Depends-on): Remove lchown. (configure.ac): Remove AC_LIBOBJ of fchownat. * modules/fchownat-tests: New file, extracted from modules/openat-tests. * modules/openat-tests (Files): Remove tests/test-fchownat.c, tests/test-chown.h, tests/test-lchown.h, tests/nap.h. (Depends-on): Remove mgetgroups, usleep, stat-time. (configure.ac): Remove test for getegid. (Makefile.am): Remove rules for test-fchownat. * doc/posix-functions/fchownat.texi: Mention module 'fchownat' instead of module 'openat'. * NEWS: Mention the change. 2011-10-31 Paul Eggert stdalign: port better to MSVC and to Sun C 5.11 This fixes some of the problems reported by Bruno Haible in . * doc/posix-headers/stdalign.texi (stdalign.h): Document more shortcomings of MSVC and of Sun C 5.11. * lib/stdalign.in.h (_Alignas): Omit bogus extra parenthesis around __declspec arg. * modules/stdalign-tests (Files): Add tests/macros.h. * tests/test-stdalign.c: Do not include ; no longer needed. Include macros.h, for ASSERT. (DECLARE_ALIGNED): Remove. (TEST_ALIGNMENT): Define to 16 if alignment is supported (more likely to catch bug), and to 1 if not (simplifies the rest of the code). (CHECK_STATIC): Always declare the alignment test vars; that's simpler. (CHECK_AUTO): Remove. (CHECK_ALIGNED): Check only the alignment of the static vars, since auto var alignment isn't supported by Sun C 5.11. (CHECK_TYPES): Remove. All uses replaced by inline code, so that ASSERT failures are easier to diagnose. 2011-10-31 Bruno Haible doc about some IRIX 5.3 problems. * doc/posix-functions/getpwnam_r.texi: Mention incompatible declaration on IRIX 5.3. * doc/posix-headers/poll.texi: Mention missing nfds_t on IRIX 5.3. * doc/posix-functions/ptsname.texi: Mention missing declaration on IRIX 5.3. * doc/posix-functions/grantpt.texi: Likewise. * doc/posix-functions/unlockpt.texi: Likewise. * doc/posix-functions/lgamma.texi: Likewise. * doc/posix-functions/nextafter.texi: Likewise. * doc/posix-functions/remainder.texi: Likewise. * doc/posix-functions/select.texi: Mention misplaced declaration on IRIX 5.3. Reported by Tom G. Christensen . 2011-10-31 Dmitry V. Levin gitlog-to-changelog: fix git-log invocation. git-log mishandles date strings before 1970-01-01 UTC, and there is no use to specify --since=1970-01-01 by default anyway. * build-aux/gitlog-to-changelog: By default, when no --since option was given, do not specify explicit --since option to git-log. 2011-10-30 Dmitry V. Levin gitlog-to-changelog: new option --append-dot. * build-aux/gitlog-to-changelog: New option --append-dot, makes the first non-blank line of each commit message terminated with a dot. 2011-10-30 Bruno Haible ffsl, ffsll: Avoid compilation error due to 'restrict'. * lib/ffsl.h: Include . Suggested by Tom G. Christensen . 2011-10-30 Jim Meyering GNUmakefile: reenable "make syntax-check" for most projects Since Friday's commit 05e2d798, "maint.mk: don't maintain a second build-aux variable", "syntax-check" would do nothing but succeed with the "No version control files detected..." diagnostic (unless you happened to override _build-aux via cfg.mk). * top/GNUmakefile (_autoreconf, _build-aux): Move default definitions to precede inclusion of maint.mk. Otherwise, these variables would be used undefined in any project that does not override the default. 2011-10-29 Dmitry V. Levin gitlog-to-changelog: treat a message with only blank lines as empty. * build-aux/gitlog-to-changelog: Move the code that removes leading and trailing blank lines before the code that issues a warning about an empty commit message. 2011-10-30 Jim Meyering test-parse-datetime.c: avoid new DST-related false positive test failure * tests/test-parse-datetime.c (gmt_offset): Determine the "gmt_offset" based on the time/date we'll convert, not the current time. Otherwise, the moment we cross a DST boundary like today's in Europe, (CEST to CET), that offset ends up being one hour off. 2011-10-27 Bruno Haible fstat: Tweak documentation. * modules/fstat (Description): More precise description. 2011-10-27 Bruno Haible Update documentation regarding 'largefile' module. * doc/posix-functions/fstat.texi: Tweak wording. * doc/posix-functions/opendir.texi: Mention that the module fixes the problems with huge directories and/or small ino_t types. * doc/posix-functions/readdir.texi: Likewise. * doc/posix-functions/rewinddir.texi: Likewise. 2011-10-28 Gary V. Vaughan maint.mk: don't maintain a second build-aux variable. * maint.mk (build_aux): Removed. The maintainer-makefile module depends on GNUmakefile, which already maintains a cfg.mk overridable $(_build-aux) for projects with a non-standard build-aux directory location, although without the $(srcdir) prefix. Use that variable consistently instead of introducing a second one. Adjust all call sites. 2011-10-27 Paul Eggert Add stdalign module and use it in other modules. This is based on a previous proposal by Bruno Haible . stdalign: new module * doc/posix-headers/stdalign.texi, lib/stdalign.in.h, m4/stdalign.m4: * modules/stdalign: New files. * MODULES.html.sh (c1x_core_properties): Add stdalign. * doc/gnulib.texi (Header File Substitutes): Add stdalign. stdalign-tests: new module * modules/stdalign-tests, tests/test-stdalign.c: New files. argp: use stdalign * lib/argp-parse.c: Include . (alignof): Remove. * modules/argp (Depends-on): Add stdalign. crypto libraries: use stdalign * lib/md4.c, lib/md5.c, lib/sha1.c, lib/sha256.c, lib/sha512.c: Include and . Do not include . Do not include twice, in md4.c. (UNALIGNED_P): Simplify by using alignof. Use uintptr_t, not size_t, because we are accessing a pointer's bit-pattern, not a size. * modules/crypto/gc-md4 (Depends-on): Add stdalign. * modules/crypto/gc-md5, modules/crypto/gc-sha1, modules/crypto/md4: * modules/crypto/md5, modules/crypto/sha1, modules/crypto/sha256: * modules/crypto/sha512: Likewise. sys_socket: use stdalign, not alignof * lib/sys_socket.in.h: Include instead of . * modules/sys_socket (Depends-on): Depend on stdalign, not alignof. 2011-10-27 Bruno Haible raise test: Avoid a test failure on Linux/MIPS. * tests/test-raise.c (main): Try raising signal 199, not 99. Needed because 99 is a valid signal on Linux/MIPS. 2011-10-27 Bruno Haible nonblocking tests: Fix test failure on Linux/MIPS. * tests/test-nonblocking-pipe.h (PIPE_DATA_BLOCK_SIZE) [Linux/MIPS]: Set to 270000. 2011-10-27 Bruno Haible utimensat: Work around problem on Linux/hppa. * lib/utimensat.c (rpl_utimensat) [Linux/hppa]: Reject invalid tv_nsec values. * doc/posix-functions/utimensat.texi: Mention the problem on Linux/hppa. 2011-10-25 Jim Meyering maint.mk: fix a bug in sc_prohibit_stddef_without_use * top/maint.mk (sc_prohibit_stddef_without_use): Don't require / *\(/ after symbols like NULL, size_t, etc. Reported by Alfred M. Szmidt. maint.mk: exempt ENODATA from a syntax-check rule * top/maint.mk (gl_extract_significant_defines_): Also exempt ENODATA from the sc_prohibit_always-defined_macros syntax-check rule. Add a comment. See this for more details: http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28739/focus=28795 2011-10-23 Jim Meyering fts: close parent dir FD before returning from post-traversal fts_read The problem: the fts-using "mkdir -p A/B; rm -rf A" would attempt to unlink A, even though an FD open on A remained. This is suboptimal (holding a file descriptor open longer than needed), but otherwise not a problem on Unix-like kernels. However, on Cygwin with certain Novell file systems, (see http://cygwin.com/ml/cygwin/2011-10/msg00365.html), that represents a real problem: it causes the removal of A to fail with e.g., "rm: cannot remove `A': Device or resource busy" fts visits each directory twice and keeps a cache (fts_fd_ring) of directory file descriptors. After completing the final, FTS_DP, visit of a directory, RESTORE_INITIAL_CWD intended to clear the FD cache, but then proceeded to add a new FD to it via the subsequent FCHDIR (which calls cwd_advance_fd and i_ring_push). Before, the final file descriptor would be closed only via fts_close's call to fd_ring_clear. Now, it is usually closed earlier, via the final FTS_DP-returning fts_read call. * lib/fts.c (restore_initial_cwd): New function, converted from the macro. Call fd_ring_clear *after* FCHDIR, not before it. Update callers. Reported by Franz Sirl via the above URL, with analysis by Eric Blake in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28739 2011-10-23 Gary V. Vaughan Bruno Haible Jim Meyering readme-release: improve safety of release prep instructions. * README-release: Don't git pull all branches when only master is needed for the release process. Run make maintainer-clean before changing trees and merging. Don't try to run ./configure right after git pull in case files that influence the bootstrap process have changed, move the ./configure step to after running ./bootstrap. Don't bootstrap "one last time"... it's the first time! 2011-10-22 Bruno Haible errno, strerror-override: Support for MSVC 10. * lib/errno.in.h (GNULIB_defined_ETXTBSY): Remove macro. (ENOMSG, EIDRM, ENOLINK, EPROTO, EBADMSG, EOVERFLOW, ENOTSUP, ENETRESET, ECONNABORTED, ECANCELED, EINPROGRESS, EALREADY, ENOTSOCK, EDESTADDRREQ, EMSGSIZE, EPROTOTYPE, ENOPROTOOPT, EPROTONOSUPPORT, EOPNOTSUPP, EAFNOSUPPORT, EADDRINUSE, EADDRNOTAVAIL, ENETDOWN, ENETUNREACH, ECONNRESET, ENOBUFS, EISCONN, ENOTCONN, ETIMEDOUT, ECONNREFUSED, ELOOP, EHOSTUNREACH, EWOULDBLOCK, ETXTBSY) [Win32]: Assign values compatible with MSVC 10. (ENODATA, ENOSR, ENOSTR, ENOTRECOVERABLE, EOWNERDEAD, ETIME, EOTHER): New macros. (GNULIB_defined_EWINSOCK): New macro. * lib/strerror-override.c (strerror_override): Update accordingly. * lib/strerror-override.h: Likewise. * lib/w32sock.h (set_winsock_errno): Map those WSA* values that are no longer equal to the corresponding errno value. Reported by Michael Goffioul . 2011-10-22 Bruno Haible perror: Recognize when test program crashes. * m4/perror.m4 (gl_FUNC_PERROR): If the test program crashes due to strerror, set gl_cv_func_perror_works to no. Reported by Daniel Richard G. . perror: Fix indentation. * m4/perror.m4 (gl_FUNC_PERROR): Fix indentation. 2011-10-22 Bruno Haible isfinite, isinf, isnan, signbit: Don't define as a macro in C++. * lib/math.in.h (_GL_MATH_CXX_REAL_FLOATING_DECL_1, _GL_MATH_CXX_REAL_FLOATING_DECL_2): nEW MACROS. (isfinite, isinf, isnan, signbit): In C++, define as overloaded functions, not as a macro. * tests/test-math-c++.cc (REAL_FLOATING_CHECK, OVERLOADED_CHECK): New macros. (isfinite, isinf, isnan, signbit): Check overloaded functions and absence of macro. Suggested by Eric Blake. Reported by Michael Goffioul . 2011-10-21 Bruno Haible relocatable-prog-wrapper: Don't leave object files behind. * build-aux/install-reloc: Re-synchronize list of .o files to be removed with list of compilation units. 2011-10-20 Bruno Haible openpty, posix_openpt: Remove code duplication. * lib/posix_openpt.c: Add comments about platforms, from lib/openpty.c. * lib/openpty.c: Include . (openpty): Use posix_openpt on all platforms except IRIX. * modules/openpty (Depends-on): Add posix_openpt. Add conditions. 2011-10-20 Bruno Haible unlockpt: Detect invalid argument. * lib/unlockpt.c: Include . (unlockpt): Check whether fd is valid, using fcntl(). * modules/unlockpt (Depends-on): Add fcntl-h. 2011-10-20 Bruno Haible openpty: Avoid compilation error on AIX 6.1. * lib/pty.in.h [AIX]: Include , for 'struct winsize'. 2011-10-20 Bruno Haible posix_openpt: Support for OpenBSD. * lib/posix_openpt.c [OpenBSD]: Include , . (posix_openpt) [OpenBSD]: New code. * lib/grantpt.c: Include . (grantpt) [OpenBSD]: Only test whether fd is valid, nothing else. * modules/grantpt (Depends-on): Add fcntl-h. 2011-10-20 Bruno Haible posix_openpt test: Coding style. * tests/test-posix_openpt.c: Use GNU coding style. 2011-10-20 Bruno Haible grantpt: Support --avoid=pt_chown. * modules/grantpt (Files): Add lib/pty-private.h. 2011-10-20 Bruno Haible posix_openpt: Fix autoconf macro. * m4/posix_openpt.m4 (gl_FUNC_POSIX_OPENPT): Fix variable name. Remove unneeded check for _getpty. 2011-10-20 Bruno Haible openpty: Update comments. * lib/openpty.c: Add comments about Minix. 2011-10-19 Eric Blake openpty: relax license * modules/openpty (License): Change from LGPLv3+ to LGPLv2+. pt_chown: use configmake to simplify build * modules/pt_chown (Makefile.am): Drop line guaranteed by configmake. ptsname and others: relax license * modules/grantpt (License): Change from LGPLv3+ to LGPLv2+. * modules/unlockpt (License): Likewise. * modules/pt_chown (License): Likewise. * modules/ptsname (License): Likewise. * modules/ttyname_r (License): Likewise. 2011-10-19 Jim Meyering posix_openpt: remove spurious #endif * lib/posix_openpt.c (posix_openpt): Remove spurious #endif. 2011-10-19 Gary V. Vaughan maint.mk: Respect $(build_aux) in web-manual rule. * top/maint.mk (web-manual): Find gen-announce script in user's $(build_aux) directory instead of hard-coding 'build-aux'. 2011-10-19 Bruno Haible posix_openpt: Fix compilation error. * lib/posix_openpt.c (posix_openpt): Renamed from posix_openpty. * doc/posix-functions/posix_openpt.texi: Mention ENOENT error code. Mention the openpty module as an alternative. 2011-10-19 Bruno Haible Support for old NeXTstep 3.3 frexp(). * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Check for alarm. Limit the execution time of the test to 5 seconds. Reported by Daniel Richard G. . 2011-10-19 Bruno Haible Support for old NeXTstep 3.3 sed. * m4/absolute-header.m4 (gl_ABSOLUTE_HEADER_ONE): In the sed address part, use /.../, not \|...|. Escape periods in the header file name. * m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): Likewise. Reported by Daniel Richard G. . 2011-10-18 Daniel Richard G. (tiny change) Support for old NeXTstep 3.3 gcc. * lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS): Write 'defined __STRICT_ANSI__', not '__STRICT_ANSI__'. * lib/math.in.h (_GL_NUM_UINT_WORDS etc.): Likewise. * lib/spawn.in.h (_Restrict_arr_): Likewise. * lib/regex.h (_Restrict_arr_): Likewise. * lib/regex_internal.h (re_token_t): Likewise. * lib/regexec.c (check_node_accept_bytes): Likewise. * tests/test-printf-posix.c (func1, func2, func3, func4): Likewise. 2011-10-18 Eric Blake posix_openpt: new module * modules/posix_openpt: New module. * m4/posix_openpt.m4: New file. * lib/posix_openpt.c: Likewise. * m4/stdlib_h.m4 (gl_STDLIB_H): Check for decl. (gl_STDLIB_H_DEFAULTS): Set defaults. * modules/stdlib (Makefile.am): Substitute macros. * lib/stdlib.in.h (posix_openpt): Declare. * MODULES.html.sh (systems lacking POSIX:2008): Document it. * doc/posix-functions/posix_openpt.texi (posix_openpt): Likewise. * modules/posix_openpt-tests: New test module. * tests/test-posix_openpt.c: New test. 2011-10-15 Bruno Haible xstrtoll: Fix compilation failure. * lib/xstrtol.c (ULLONG_MAX, LLONG_MAX, LLONG_MIN): New macros, taken from lib/strtol.c. * doc/posix-headers/limits.texi: Mention missing numerical limits on some platforms. Reported by Tom G. Christensen . 2011-10-15 Bruno Haible vasnprintf: Optimize bit search operation. * lib/vasnprintf.c (divide): Use optimizations from integer_length.c. * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF): Require gl_DOUBLE_EXPONENT_LOCATION. * modules/vasnprintf (Files): Add m4/exponentd.m4. * modules/unistdio/u8-vasnprintf (Files): Likewise. * modules/unistdio/u8-u8-vasnprintf (Files): Likewise. * modules/unistdio/u16-vasnprintf (Files): Likewise. * modules/unistdio/u16-u16-vasnprintf (Files): Likewise. * modules/unistdio/u32-vasnprintf (Files): Likewise. * modules/unistdio/u32-u32-vasnprintf (Files): Likewise. * modules/unistdio/ulc-vasnprintf (Files): Likewise. * m4/isnand.m4 (gl_PREREQ_ISNAND): Use AC_REQUIRE. 2011-10-15 Bruno Haible vasnprintf: Fix comments. * lib/vasnprintf.c (decode_long_double, decode_double): Fix comments. 2011-10-14 Bruno Haible Tests for module 'integer_length_ll'. * modules/integer_length_ll-tests: New file. * tests/test-integer_length_ll.c: New file. New module 'integer_length_ll'. * lib/integer_length_ll.c: New file. * modules/integer_length_ll: New file. 2011-10-14 Bruno Haible Tests for module 'integer_length_l'. * modules/integer_length_l-tests: New file. * tests/test-integer_length_l.c: New file. New module 'integer_length_l'. * lib/integer_length_l.c: New file. * modules/integer_length_l: New file. 2011-10-14 Bruno Haible Tests for module 'integer_length'. * modules/integer_length-tests: New file. * tests/test-integer_length.c: New file. New module 'integer_length'. * lib/integer_length.h: New file. * lib/integer_length.c: New file. * modules/integer_length: New file. 2011-10-14 Daniel Richard G. (tiny change) popen: Fix dependency conditions. * modules/popen (Depends-on, configure.ac): Fix shell syntax error. 2011-10-14 Daniel Richard G. (tiny change) perror: Fix autoconf test. * m4/perror.m4 (gl_FUNC_PERROR): In the test program, include and . 2011-10-14 Bruno Haible ffsl: Optimize on 64-bit platforms. * lib/ffsl.h (FUNC): Omit a test from the last loop round. Do loop unrolling. 2011-10-13 Bruno Haible ffsl: Optimize on 32-bit platforms. * lib/ffsl.h (FUNC): If TYPE has the same representation as 'int', just use ffs() without a loop. ffsl, ffsll: Optimize for GCC. * lib/ffsl.h (FUNC): Use GCC_BUILTIN if defined. * lib/ffsl.c (GCC_BUILTIN): New macro. * lib/ffsll.c (GCC_BUILTIN): Likewise. 2011-10-13 Bruno Haible ffs, bcopy, memset: Support symbol renaming via config.h. * lib/ffs.c: Include . * lib/bcopy.c: Likewise. * lib/memset.c: Likewise. 2011-10-10 Bruno Haible atanl: Simplify for platforms where 'long double' == 'double'. * lib/atanl.c (atanl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative implementation. * m4/atanl.m4 (gl_FUNC_ATANL): Require gl_LONG_DOUBLE_VS_DOUBLE. Determine ATANL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. * modules/atanl (Depends-on): Add atan. Update conditions. 2011-10-10 Bruno Haible acosl: Simplify for platforms where 'long double' == 'double'. * lib/acosl.c (acosl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative implementation. * m4/acosl.m4 (gl_FUNC_ACOSL): Require gl_LONG_DOUBLE_VS_DOUBLE. Determine ACOSL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. * modules/acosl (Depends-on): Add acos. Update conditions. 2011-10-10 Bruno Haible asinl: Simplify for platforms where 'long double' == 'double'. * lib/asinl.c (asinl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative implementation. * m4/asinl.m4 (gl_FUNC_ASINL): Require gl_LONG_DOUBLE_VS_DOUBLE. Determine ASINL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. * modules/asinl (Depends-on): Add asin. Update conditions. 2011-10-10 Bruno Haible tanl: Simplify for platforms where 'long double' == 'double'. * lib/tanl.c (tanl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative implementation. * m4/tanl.m4 (gl_FUNC_TANL): Require gl_LONG_DOUBLE_VS_DOUBLE. Determine TANL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. * modules/tanl (Depends-on): Add tan. Update conditions. (configure.ac): Don't compile trigl.c if HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. 2011-10-10 Bruno Haible cosl: Simplify for platforms where 'long double' == 'double'. * lib/cosl.c (cosl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative implementation. * m4/cosl.m4 (gl_FUNC_COSL): Require gl_LONG_DOUBLE_VS_DOUBLE. Determine COSL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. * modules/cosl (Depends-on): Add cos. Update conditions. (configure.ac): Don't compile sincosl.c and trigl.c if HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. 2011-10-10 Bruno Haible sinl: Simplify for platforms where 'long double' == 'double'. * lib/sinl.c (sinl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative implementation. * m4/sinl.m4 (gl_FUNC_SINL): Require gl_LONG_DOUBLE_VS_DOUBLE. Determine SINL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. * modules/sinl (Depends-on): Add sin. Update conditions. (configure.ac): Don't compile sincosl.c and trigl.c if HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. 2011-10-10 Bruno Haible logl: Simplify for platforms where 'long double' == 'double'. * lib/logl.c (logl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative implementation. * m4/logl.m4 (gl_FUNC_LOGL): Require gl_LONG_DOUBLE_VS_DOUBLE. Determine LOGL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. * modules/logl (Depends-on): Add log. Update conditions. 2011-10-10 Bruno Haible expl: Simplify for platforms where 'long double' == 'double'. * lib/expl.c (expl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative implementation. * m4/expl.m4 (gl_FUNC_EXPL): Require gl_LONG_DOUBLE_VS_DOUBLE. Determine EXPL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. * modules/expl (Depends-on): Add exp. Update conditions. 2011-10-10 Bruno Haible sqrtl: Simplify for platforms where 'long double' == 'double'. * lib/sqrtl.c (sqrtl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative implementation. * m4/sqrtl.m4 (gl_FUNC_SQRTL): Require gl_LONG_DOUBLE_VS_DOUBLE. Determine SQRTL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. * modules/sqrtl (Depends-on): Update conditions. 2011-10-10 Bruno Haible ldexpl: Simplify for platforms where 'long double' == 'double'. * lib/ldexpl.c (ldexpl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative implementation. * m4/ldexpl.m4 (gl_FUNC_LDEXPL): Require gl_LONG_DOUBLE_VS_DOUBLE. Determine LDEXPL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. * modules/ldexpl (Depends-on): Add ldexp. Update conditions. 2011-10-10 Tom G. Christensen (tiny change) ffsll: set correct witness * modules/ffsll (configure.ac): Fix typo. 2011-10-10 Bruno Haible printf-frexpl: Simplify for platforms where 'long double' == 'double'. * lib/printf-frexpl.c: Include . (printf_frexpl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function. * lib/printf-frexp.c [!USE_LONG_DOUBLE]: Don't include a second time. * m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Require gl_LONG_DOUBLE_VS_DOUBLE. * modules/printf-frexpl (Depends-on): Add printf-frexp. Update conditions. 2011-10-10 Bruno Haible frexpl: Simplify for platforms where 'long double' == 'double'. * lib/frexpl.c: Include . (frexpl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function. * lib/frexp.c [!USE_LONG_DOUBLE]: Don't include a second time. * m4/frexpl.m4 (gl_FUNC_FREXPL): Require gl_LONG_DOUBLE_VS_DOUBLE. Determine FREXPL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. (gl_FUNC_FREXPL_NO_LIBM): Require gl_LONG_DOUBLE_VS_DOUBLE. * modules/frexpl (Depends-on): Add frexp. Update conditions. * modules/frexpl-nolibm (Depends-on): Add frexp-nolibm. Update conditions. 2011-10-10 Jim Meyering test-renameat: don't leave behind a temporary file * tests/test-renameat.c (main): Don't forget to remove a temporary file. ERROR: files left in build directory after distclean: ./gltests/test-renameat.too make[1]: *** [distcleancheck] Error 1 Reported by Tom G. Christensen. 2011-10-09 Bruno Haible rint: Determine RINT_LIBM correctly on AIX 7. * m4/mathfunc.m4 (gl_MATHFUNC): Try to invoke the function also directly, not only through a function pointer. Also accept an optional 4th argument with extra code. * m4/rint.m4 (gl_FUNC_RINT): Pass an extra code that gets turned into a rintf() call by gcc when optimizing. mathfunc.m4: Refactor. * m4/mathfunc.m4 (gl_MATHFUNC): Assign the argument list to a temporary m4 variable. 2011-10-09 Bruno Haible rintl: Simplify for platforms where 'long double' == 'double'. * lib/rintl.c: Include . (rintl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function. * lib/rint.c [!USE_LONG_DOUBLE]: Don't include a second time. * m4/rintl.m4 (gl_FUNC_RINTL): Require gl_LONG_DOUBLE_VS_DOUBLE. Determine RINTL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. * modules/rintl (Depends-on): Add rint. Update conditions. 2011-10-09 Bruno Haible roundl: Simplify for platforms where 'long double' == 'double'. * lib/roundl.c: Include . (roundl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function. * lib/round.c [!USE_LONG_DOUBLE]: Don't include a second time. * m4/roundl.m4 (gl_FUNC_ROUNDL): Require gl_LONG_DOUBLE_VS_DOUBLE. Determine ROUNDL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. * modules/roundl (Depends-on): Add round. Update conditions. 2011-10-09 Bruno Haible truncl: Simplify for platforms where 'long double' == 'double'. * lib/truncl.c: Include . (truncl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function. * lib/trunc.c [!USE_LONG_DOUBLE]: Don't include a second time. * m4/truncl.m4 (gl_FUNC_TRUNCL): Require gl_LONG_DOUBLE_VS_DOUBLE. Determine TRUNCL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. * modules/truncl (Depends-on): Add trunc. Update conditions. 2011-10-09 Bruno Haible ceill: Simplify for platforms where 'long double' == 'double'. * lib/ceill.c: Include . (ceill) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function. * lib/ceil.c [!USE_LONG_DOUBLE]: Don't include a second time. * m4/ceill.m4 (gl_FUNC_CEILL): Require gl_LONG_DOUBLE_VS_DOUBLE. Determine CEILL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. * modules/ceill (Depends-on): Add ceil. Update conditions. 2011-10-09 Bruno Haible floorl: Simplify for platforms where 'long double' == 'double'. * lib/floorl.c: Include . (floorl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New function. * lib/floor.c [!USE_LONG_DOUBLE]: Don't include a second time. * m4/floorl.m4 (gl_FUNC_FLOORL): Require gl_LONG_DOUBLE_VS_DOUBLE. Determine FLOORL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. * modules/floorl (Depends-on): Add floor. Update conditions. 2011-10-09 Bruno Haible rint: Fix ordering constraints. * m4/rint.m4 (gl_FUNC_RINT): Require gl_MATH_H_DEFAULTS. * m4/rintf.m4 (gl_FUNC_RINTF): Likewise. * m4/rintl.m4 (gl_FUNC_RINTL): Likewise. 2011-10-09 Bruno Haible copysignl: Simplify for platforms where 'long double' == 'double'. * lib/copysignl.c (copysignl) [HAVE_SAME_LONG_DOUBLE_AS_DOUBLE]: New alternative. * m4/copysignl.m4 (gl_FUNC_COPYSIGNL): Require gl_LONG_DOUBLE_VS_DOUBLE. Determine COPYSIGNL_LIBM according to HAVE_SAME_LONG_DOUBLE_AS_DOUBLE. * modules/copysignl (Depends-on): Add copysign. Update conditions. 2011-10-09 Bruno Haible Tests for module 'rintl'. * modules/rintl-tests: New file. * tests/test-rintl.c: New file. New module 'rintl'. * lib/math.in.h (rintl): New declaration. * lib/rintl.c: New file. * m4/rintl.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether rintl is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_RINTL, HAVE_RINTL. * modules/math (Makefile.am): Substitute GNULIB_RINTL, HAVE_RINTL. * modules/rintl: New file. * tests/test-math-c++.cc: Check the declaration of rintl. * modules/math-c++-tests (Makefile.am): Link test-math-c++ against $(RINTL_LIBM). Needed on IRIX 6.5 with cc. * doc/posix-functions/rintl.texi: Mention the new module. 2011-10-09 Bruno Haible Tests for module 'rintf'. * modules/rintf-tests: New file. * tests/test-rintf.c: New file. New module 'rintf'. * lib/math.in.h (rintf): New declaration. * lib/rintf.c: New file. * m4/rintf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether rintf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_RINTF, HAVE_RINTF. * modules/math (Makefile.am): Substitute GNULIB_RINTF, HAVE_RINTF. * modules/rintf: New file. * tests/test-math-c++.cc: Check the declaration of rintf. * doc/posix-functions/rintf.texi: Mention the new module. 2011-10-09 Bruno Haible rint: Support for MSVC. * lib/math.in.h (rint): New declaration. * lib/rint.c: New file. * m4/rint.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether rint is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_RINT, HAVE_RINT. * modules/math (Makefile.am): Substitute GNULIB_RINT, HAVE_RINT. * modules/rint (Description): Fix. (Files): Add lib/rint.c, m4/rint.m4. (Depends-on): Add math. (configure.ac): Invoke gl_FUNC_RINT, AC_LIBOBJ, gl_MATH_MODULE_INDICATOR. * tests/test-math-c++.cc: Check the declaration of rint. * modules/math-c++-tests (Makefile.am): Link test-math-c++ against $(RINT_LIBM). Needed on IRIX 6.5 with cc. * doc/posix-functions/rint.texi: Mention the replacement provided by the module. rint tests: More tests. * tests/test-rint.c: Include , , isnand-nolibm.h, minus-zero.h, infinity.h, nan.h. (main): Skip the test if the current rounding mode is not standard. Add tests for negative numbers, minus zero, infinity, NaN. * modules/rint-tests (Files): Add tests/minus-zero.h, tests/infinity.h, tests/nan.h. (Depends-on): Add isnand-nolibm. 2011-10-09 Bruno Haible Tests for module 'copysignl'. * modules/copysignl-tests: New file. * tests/test-copysignl.c: New file. New module 'copysignl'. * lib/math.in.h (copysignl): New declaration. * lib/copysignl.c: New file. * m4/copysignl.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether copysignl is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_COPYSIGNL, HAVE_COPYSIGNL. * modules/math (Makefile.am): Substitute GNULIB_COPYSIGNL, HAVE_COPYSIGNL. * modules/copysignl: New file. * tests/test-math-c++.cc: Check the declaration of copysignl. * modules/math-c++-tests (Makefile.am): Link test-math-c++ against $(COPYSIGNL_LIBM). Needed on IRIX 6.5 with cc. * doc/posix-functions/copysignl.texi: Mention the new module. 2011-10-09 Bruno Haible Tests for module 'copysignf'. * modules/copysignf-tests: New file. * tests/test-copysignf.c: New file. New module 'copysignf'. * lib/math.in.h (copysignf): New declaration. * lib/copysignf.c: New file. * m4/copysignf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether copysignf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_COPYSIGNF, HAVE_COPYSIGNF. * modules/math (Makefile.am): Substitute GNULIB_COPYSIGNF, HAVE_COPYSIGNF. * modules/copysignf: New file. * tests/test-math-c++.cc: Check the declaration of copysignf. * doc/posix-functions/copysignf.texi: Mention the new module. 2011-10-09 Bruno Haible Ensure that HAVE_* variables are set to 1 before they are set to 0. * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Require gl_DIRENT_H_DEFAULTS. * m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): Require gl_ARPA_INET_H_DEFAULTS. * m4/inet_pton.m4 (gl_FUNC_INET_PTON): Likewise. * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Require gl_SIGNAL_H_DEFAULTS. 2011-10-09 Bruno Haible poll: Make macro safer. * m4/poll.m4 (gl_FUNC_POLL): Complain if, after invoking gl_POLL_H, ac_cv_header_poll_h is not set. 2011-10-09 Bruno Haible copysign: Provide replacement. * lib/math.in.h (copysign): New declaration. * lib/copysign.c: New file. * m4/copysign.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether copysign is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_COPYSIGN, HAVE_COPYSIGN. * modules/math (Makefile.am): Substitute GNULIB_COPYSIGN, HAVE_COPYSIGN. * modules/copysign (Description): Clarify. (Files): Add lib/copysign.c, m4/copysign.m4. (Depends-on): Add math, signbit. (configure.ac): Invoke gl_FUNC_COPYSIGN, AC_LIBOBJ, gl_MATH_MODULE_INDICATOR. * tests/test-math-c++.cc: Check the declaration of copysign. * doc/posix-functions/copysign.texi: Mention the effects of the module on Minix and MSVC. 2011-10-09 Bruno Haible isinf: Ensure macro on AIX 5.1. * m4/isinf.m4 (gl_ISINF): Also test whether isinf is defined as a macro. * doc/posix-functions/isinf.texi: Mention also AIX 5.1 as deficient. 2011-10-09 Bruno Haible *printf-posix tests: Fix for platforms where 'long double' == 'double'. * modules/snprintf-posix-tests (configure.ac): Require gl_LONG_DOUBLE_VS_DOUBLE. * modules/sprintf-posix-tests (configure.ac): Likewise. * modules/vasnprintf-posix-tests (configure.ac): Likewise. * modules/vasprintf-posix-tests (configure.ac): Likewise. * modules/vsnprintf-posix-tests (configure.ac): Likewise. * modules/vsprintf-posix-tests (configure.ac): Likewise. * tests/test-snprintf-posix.h (test_function): Avoid 80-bit long double tests on platforms where 'long double' is the same as 'double'. * tests/test-sprintf-posix.h (test_function): Likewise. * tests/test-vasnprintf-posix.c (test_function): Likewise. * tests/test-vasprintf-posix.c (test_function): Likewise. *printf: Fix for platforms where 'long double' == 'double'. * m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Require gl_LONG_DOUBLE_VS_DOUBLE. Don't blindly assume 80-bit 'long double'. * modules/dprintf-posix (Files): Add m4/math_h.m4. * modules/fprintf-posix (Files): Likewise. * modules/obstack-printf-posix (Files): Likewise. * modules/snprintf-posix (Files): Likewise. * modules/sprintf-posix (Files): Likewise. * modules/vasnprintf (Files): Likewise. * modules/vasnprintf-posix (Files): Likewise. * modules/vasprintf-posix (Files): Likewise. * modules/vdprintf-posix (Files): Likewise. * modules/vfprintf-posix (Files): Likewise. * modules/vsnprintf-posix (Files): Likewise. * modules/vsprintf-posix (Files): Likewise. * modules/unistdio/u8-vasnprintf (Files): Likewise. * modules/unistdio/u8-u8-vasnprintf (Files): Likewise. * modules/unistdio/u16-vasnprintf (Files): Likewise. * modules/unistdio/u16-u16-vasnprintf (Files): Likewise. * modules/unistdio/u32-vasnprintf (Files): Likewise. * modules/unistdio/u32-u32-vasnprintf (Files): Likewise. * modules/unistdio/ulc-vasnprintf (Files): Likewise. isnanl[-nolibm]: Fix for platforms where 'long double' == 'double'. * lib/isnan.c (rpl_isnanl): Don't blindly assume 80-bit 'long double'. * m4/isnanl.m4 (gl_PREREQ_ISNANL): Require gl_LONG_DOUBLE_VS_DOUBLE. (gl_FUNC_ISNANL_WORKS): Likewise. Don't blindly assume 80-bit 'long double'. * modules/isnanl-nolibm (Files): Add m4/math_h.m4. isinf: Fix for platforms where 'long double' == 'double'. * m4/isinf.m4 (gl_ISINFL_WORKS): Require gl_LONG_DOUBLE_VS_DOUBLE. Don't blindly assume 80-bit 'long double'. isfinite: Fix for platforms where 'long double' == 'double'. * m4/isfinite.m4 (gl_ISFINITEL_WORKS): Require gl_LONG_DOUBLE_VS_DOUBLE. Don't blindly assume 80-bit 'long double'. isfinite, isinf, isnan tests: Avoid syntax error on MSVC 9. * m4/math_h.m4 (gl_LONG_DOUBLE_VS_DOUBLE): New macro. * modules/isfinite-tests (configure.ac): Require gl_LONG_DOUBLE_VS_DOUBLE. * modules/isinf-tests (configure.ac): Likewise. * modules/isnan-tests (configure.ac): Likewise. * modules/isnanl-tests (configure.ac): Likewise. * modules/isnanl-nolibm-tests (configure.ac): Likewise. * tests/test-isfinite.c (test_isfinitel): Avoid 80-bit long double tests on platforms where 'long double' is the same as 'double'. * tests/test-isinf.c (test_isinfl): Likewise. * tests/test-isnan.c (test_long_double): Likewise. * tests/test-isnanl.h (main): Likewise. 2011-10-08 Bruno Haible Tests for module 'tanhf'. * modules/tanhf-tests: New file. * tests/test-tanhf.c: New file. New module 'tanhf'. * lib/math.in.h (tanhf): New declaration. * lib/tanhf.c: New file. * m4/tanhf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether tanhf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_TANHF, HAVE_TANHF. * modules/math (Makefile.am): Substitute GNULIB_TANHF, HAVE_TANHF. * modules/tanhf: New file. * tests/test-math-c++.cc: Check the declaration of tanhf. * doc/posix-functions/tanhf.texi: Mention the new module. tanh: Use a .m4 file. * m4/tanh.m4: New file. * modules/tanh (Files): Add it. (configure.ac): Just invoke gl_FUNC_TANH. 2011-10-08 Bruno Haible Tests for module 'coshf'. * modules/coshf-tests: New file. * tests/test-coshf.c: New file. New module 'coshf'. * lib/math.in.h (coshf): New declaration. * lib/coshf.c: New file. * m4/coshf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether coshf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_COSHF, HAVE_COSHF. * modules/math (Makefile.am): Substitute GNULIB_COSHF, HAVE_COSHF. * modules/coshf: New file. * tests/test-math-c++.cc: Check the declaration of coshf. * doc/posix-functions/coshf.texi: Mention the new module. cosh: Use a .m4 file. * m4/cosh.m4: New file. * modules/cosh (Files): Add it. (configure.ac): Just invoke gl_FUNC_COSH. 2011-10-08 Bruno Haible Tests for module 'sinhf'. * modules/sinhf-tests: New file. * tests/test-sinhf.c: New file. New module 'sinhf'. * lib/math.in.h (sinhf): New declaration. * lib/sinhf.c: New file. * m4/sinhf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether sinhf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_SINHF, HAVE_SINHF. * modules/math (Makefile.am): Substitute GNULIB_SINHF, HAVE_SINHF. * modules/sinhf: New file. * tests/test-math-c++.cc: Check the declaration of sinhf. * doc/posix-functions/sinhf.texi: Mention the new module. sinh: Use a .m4 file. * m4/sinh.m4: New file. * modules/sinh (Files): Add it. (configure.ac): Just invoke gl_FUNC_SINH. 2011-10-08 Bruno Haible Tests for module 'atan2f'. * modules/atan2f-tests: New file. * tests/test-atan2f.c: New file. New module 'atan2f'. * lib/math.in.h (atan2f): New declaration. * lib/atan2f.c: New file. * m4/atan2f.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether atan2f is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_ATAN2F, HAVE_ATAN2F. * modules/math (Makefile.am): Substitute GNULIB_ATAN2F, HAVE_ATAN2F. * modules/atan2f: New file. * tests/test-math-c++.cc: Check the declaration of atan2f. * doc/posix-functions/atan2f.texi: Mention the new module. atan2: Use a .m4 file. * m4/atan2.m4: New file. * modules/atan2 (Files): Add it. (configure.ac): Just invoke gl_FUNC_ATAN2. 2011-10-08 Bruno Haible Tests for module 'atanf'. * modules/atanf-tests: New file. * tests/test-atanf.c: New file. New module 'atanf'. * lib/math.in.h (atanf): New declaration. * lib/atanf.c: New file. * m4/atanf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether atanf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_ATANF, HAVE_ATANF. * modules/math (Makefile.am): Substitute GNULIB_ATANF, HAVE_ATANF. * modules/atanf: New file. * tests/test-math-c++.cc: Check the declaration of atanf. * doc/posix-functions/atanf.texi: Mention the new module. atan: Use a .m4 file. * m4/atan.m4: New file. * modules/atan (Files): Add it. (configure.ac): Just invoke gl_FUNC_ATAN. 2011-10-08 Bruno Haible Tests for module 'acosf'. * modules/acosf-tests: New file. * tests/test-acosf.c: New file. New module 'acosf'. * lib/math.in.h (acosf): New declaration. * lib/acosf.c: New file. * m4/acosf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether acosf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_ACOSF, HAVE_ACOSF. * modules/math (Makefile.am): Substitute GNULIB_ACOSF, HAVE_ACOSF. * modules/acosf: New file. * tests/test-math-c++.cc: Check the declaration of acosf. * doc/posix-functions/acosf.texi: Mention the new module. acos: Use a .m4 file. * m4/acos.m4: New file. * modules/acos (Files): Add it. (configure.ac): Just invoke gl_FUNC_ACOS. 2011-10-08 Bruno Haible Tests for module 'asinf'. * modules/asinf-tests: New file. * tests/test-asinf.c: New file. New module 'asinf'. * lib/math.in.h (asinf): New declaration. * lib/asinf.c: New file. * m4/asinf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether asinf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_ASINF, HAVE_ASINF. * modules/math (Makefile.am): Substitute GNULIB_ASINF, HAVE_ASINF. * modules/asinf: New file. * tests/test-math-c++.cc: Check the declaration of asinf. * doc/posix-functions/asinf.texi: Mention the new module. asin: Use a .m4 file. * m4/asin.m4: New file. * modules/asin (Files): Add it. (configure.ac): Just invoke gl_FUNC_ASIN. 2011-10-08 Bruno Haible Tests for module 'tanf'. * modules/tanf-tests: New file. * tests/test-tanf.c: New file. New module 'tanf'. * lib/math.in.h (tanf): New declaration. * lib/tanf.c: New file. * m4/tanf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether tanf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_TANF, HAVE_TANF. * modules/math (Makefile.am): Substitute GNULIB_TANF, HAVE_TANF. * modules/tanf: New file. * tests/test-math-c++.cc: Check the declaration of tanf. * doc/posix-functions/tanf.texi: Mention the new module. tan: Use a .m4 file. * m4/tan.m4: New file. * modules/tan (Files): Add it. (configure.ac): Just invoke gl_FUNC_TAN. 2011-10-08 Bruno Haible Tests for module 'cosf'. * modules/cosf-tests: New file. * tests/test-cosf.c: New file. New module 'cosf'. * lib/math.in.h (cosf): New declaration. * lib/cosf.c: New file. * m4/cosf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether cosf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_COSF, HAVE_COSF. * modules/math (Makefile.am): Substitute GNULIB_COSF, HAVE_COSF. * modules/cosf: New file. * tests/test-math-c++.cc: Check the declaration of cosf. * doc/posix-functions/cosf.texi: Mention the new module. cos: Use a .m4 file. * m4/cos.m4: New file. * modules/cos (Files): Add it. (configure.ac): Just invoke gl_FUNC_COS. 2011-10-08 Bruno Haible Tests for module 'sinf'. * modules/sinf-tests: New file. * tests/test-sinf.c: New file. New module 'sinf'. * lib/math.in.h (sinf): New declaration. * lib/sinf.c: New file. * m4/sinf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether sinf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_SINF, HAVE_SINF. * modules/math (Makefile.am): Substitute GNULIB_SINF, HAVE_SINF. * modules/sinf: New file. * tests/test-math-c++.cc: Check the declaration of sinf. * doc/posix-functions/sinf.texi: Mention the new module. sin: Use a .m4 file. * m4/sin.m4: New file. * modules/sin (Files): Add it. (configure.ac): Just invoke gl_FUNC_SIN. 2011-10-08 Bruno Haible Tests for module 'powf'. * modules/powf-tests: New file. * tests/test-powf.c: New file. New module 'powf'. * lib/math.in.h (powf): New declaration. * lib/powf.c: New file. * m4/powf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether powf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_POWF, HAVE_POWF. * modules/math (Makefile.am): Substitute GNULIB_POWF, HAVE_POWF. * modules/powf: New file. * tests/test-math-c++.cc: Check the declaration of powf. * doc/posix-functions/powf.texi: Mention the new module. pow: Use a .m4 file. * m4/pow.m4: New file. * modules/pow (Files): Add it. (configure.ac): Just invoke gl_FUNC_POW. 2011-10-08 Bruno Haible Tests for module 'log10f'. * modules/log10f-tests: New file. * tests/test-log10f.c: New file. New module 'log10f'. * lib/math.in.h (log10f): New declaration. * lib/log10f.c: New file. * m4/log10f.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether log10f is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_LOG10F, HAVE_LOG10F. * modules/math (Makefile.am): Substitute GNULIB_LOG10F, HAVE_LOG10F. * modules/log10f: New file. * tests/test-math-c++.cc: Check the declaration of log10f. * doc/posix-functions/log10f.texi: Mention the new module. log10: Use a .m4 file. * m4/log10.m4: New file. * modules/log10 (Files): Add it. (configure.ac): Just invoke gl_FUNC_LOG10. 2011-10-08 Bruno Haible Tests for module 'logf'. * modules/logf-tests: New file. * tests/test-logf.c: New file. New module 'logf'. * lib/math.in.h (logf): New declaration. * lib/logf.c: New file. * m4/logf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether logf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_LOGF, HAVE_LOGF. * modules/math (Makefile.am): Substitute GNULIB_LOGF, HAVE_LOGF. * modules/logf: New file. * tests/test-math-c++.cc: Check the declaration of logf. * doc/posix-functions/logf.texi: Mention the new module. log: Use a .m4 file. * m4/log.m4: New file. * modules/log (Files): Add it. (configure.ac): Just invoke gl_FUNC_LOG. 2011-10-08 Bruno Haible Tests for module 'expf'. * modules/expf-tests: New file. * tests/test-expf.c: New file. New module 'expf'. * lib/math.in.h (expf): New declaration. * lib/expf.c: New file. * m4/expf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether expf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_EXPF, HAVE_EXPF. * modules/math (Makefile.am): Substitute GNULIB_EXPF, HAVE_EXPF. * modules/expf: New file. * tests/test-math-c++.cc: Check the declaration of expf. * doc/posix-functions/expf.texi: Mention the new module. exp: Use a .m4 file. * m4/exp.m4: New file. * modules/exp (Files): Add it. (configure.ac): Just invoke gl_FUNC_EXP. 2011-10-08 Bruno Haible Tests for module 'sqrtf'. * modules/sqrtf-tests: New file. * tests/test-sqrtf.c: New file. New module 'sqrtf'. * lib/math.in.h (sqrtf): New declaration. * lib/sqrtf.c: New file. * m4/sqrtf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether sqrtf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_SQRTF, HAVE_SQRTF. * modules/math (Makefile.am): Substitute GNULIB_SQRTF, HAVE_SQRTF. * modules/sqrtf: New file. * tests/test-math-c++.cc: Check the declaration of sqrtf. * doc/posix-functions/sqrtf.texi: Mention the new module. 2011-10-08 Bruno Haible Tests: Avoid link failures w.r.t. libintl. * modules/faccessat-tests (Makefile.am): Link test-faccessat against $(LIBINTL). * modules/fchdir-tests (Makefile.am): Link test-fchdir against $(LIBINTL). * modules/getcwd-lgpl-tests (Makefile.am): Link test-getcwd-lgpl against $(LIBINTL). * modules/getcwd-tests (Makefile.am): Link test-getcwd against $(LIBINTL). * modules/openat-tests (Makefile.am): Link test-fchmodat against $(LIBINTL). * modules/stat-tests (Makefile.am): Link test-stat against $(LIBINTL). 2011-10-08 Bruno Haible pow tests: Defeat compiler optimizations. * tests/test-pow.c (main): Assign arguments to x and y before use. 2011-10-08 Bruno Haible gnulib-tool: Improve last commit. * gnulib-tool (func_modules_transitive_closure): Simplify code. (func_emit_autoconf_snippets): Instead of invoking func_acceptable, ignore dependencies that are not among the modules list. 2011-10-07 Paul Eggert gnulib-tool: don't follow dependencies to avoided modules This fixes a bug that is related to the previous one. * gnulib-tool (func_modules_transitive_closure) (func_emit_autoconf_snippets): Check whether a dependency is acceptable before using it. (--extract-dependencies): Report an error if --avoid is also used, since this combination of options is not yet supported. gnulib-tool: fix typo that broke Emacs on powerpc-apple-darwin9.8.0. Problem reported by Peter Dyballa in . * gnulib-tool (func_emit_autoconf_snippets): Quote with "", not '', when echoing "$condition". 2011-10-07 Bruno Haible Fix documentation about math functions on MacOS X. * doc/posix-functions/exp2.texi: Don't say the function is missing on MacOS X 10.5. * doc/posix-functions/fdim.texi: Likewise. * doc/posix-functions/feclearexcept.texi: Likewise. * doc/posix-functions/fegetenv.texi: Likewise. * doc/posix-functions/fegetround.texi: Likewise. * doc/posix-functions/feholdexcept.texi: Likewise. * doc/posix-functions/feraiseexcept.texi: Likewise. * doc/posix-functions/fesetenv.texi: Likewise. * doc/posix-functions/fesetround.texi: Likewise. * doc/posix-functions/fetestexcept.texi: Likewise. * doc/posix-functions/feupdateenv.texi: Likewise. * doc/posix-functions/fmax.texi: Likewise. * doc/posix-functions/fmin.texi: Likewise. * doc/posix-functions/log2.texi: Likewise. * doc/posix-functions/modff.texi: Likewise. * doc/posix-functions/nan.texi: Likewise. * doc/posix-functions/nanf.texi: Likewise. * doc/posix-functions/nextafterf.texi: Likewise. * doc/posix-functions/remquo.texi: Likewise. 2011-10-07 Bruno Haible modff: Drop assumption about library that defines modff. * m4/modff.m4 (gl_FUNC_MODFF): Use gl_MATHFUNC macro instead of AC_CHECK_FUNCS. * modules/modff (Files): Add m4/mathfunc.m4. 2011-10-07 Bernhard Voelker raise tests: Avoid a GCC warning. * tests/test-raise.c (handler): Use _Noreturn. 2011-10-07 Bruno Haible Tests for module 'ldexpf'. * modules/ldexpf-tests: New file. * tests/test-ldexpf.c: New file. New module 'ldexpf'. * lib/math.in.h (ldexpf): New declaration. * lib/ldexpf.c: New file. * m4/ldexpf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether ldexpf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_LDEXPF, HAVE_LDEXPF. * modules/math (Makefile.am): Substitute GNULIB_LDEXPF, HAVE_LDEXPF. * modules/ldexpf: New file. * tests/test-math-c++.cc: Check the declaration of ldexpf. * doc/posix-functions/ldexpf.texi: Mention the new module. 2011-10-06 Bruno Haible frexpf: Work around problems on IRIX and mingw. * lib/math.in.h (frexpf): Consider also REPLACE_FREXPF. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_FREXPF. * m4/frexpf.m4 (gl_FUNC_FREXPF_WORKS): New macro. (gl_FUNC_FREXPF): Invoke it. Set REPLACE_FREXPF. * modules/frexpf (Depends-on, configure.ac): Consider REPLACE_FREXPF. * modules/math (Makefile.am): Substitute REPLACE_FREXPF. * doc/posix-functions/frexpf.texi: Mention the IRIX and mingw problems. 2011-10-06 Bruno Haible fabsf: Drop assumption about library that defines fabsf. * m4/fabsf.m4 (gl_FUNC_FABSF): Use gl_MATHFUNC macro instead of AC_CHECK_FUNCS. * modules/fabsf (Files): Add m4/mathfunc.m4. 2011-10-06 Bruno Haible frexpf: Drop assumption about library that defines frexpf. * m4/mathfunc.m4 (gl_MATHFUNC): Support also the argument types 'int *', 'float *', 'long double *', 'float', 'long double'. * m4/frexpf.m4 (gl_FUNC_FREXPF): Use gl_MATHFUNC macro instead of AC_CHECK_FUNCS. * modules/frexpf (Files): Add m4/mathfunc.m4. Tests for module 'frexpf'. * modules/frexpf-tests: New file. * tests/test-frexpf.c: New file. New module 'frexpf'. * lib/math.in.h (frexpf): New declaration. * lib/frexpf.c: New file. * m4/frexpf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether frexpf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_FREXPF, HAVE_FREXPF. * modules/math (Makefile.am): Substitute GNULIB_FREXPF, HAVE_FREXPF. * modules/frexpf: New file. * tests/test-math-c++.cc: Check the declaration of frexpf. * doc/posix-functions/frexpf.texi: Mention the new module. 2011-10-06 Bruno Haible math: Sort function declarations of math.in.h. * lib/math.in.h (frexp, logb): Move declarations. 2011-10-05 Bruno Haible Tests for module 'modff'. * modules/modff-tests: New file. * tests/test-modff.c: New file. New module 'modff'. * lib/math.in.h (modff): New declaration. * lib/modff.c: New file. * m4/modff.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether modff is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_MODFF, HAVE_MODFF. * modules/math (Makefile.am): Substitute GNULIB_MODFF, HAVE_MODFF. * modules/modff: New file. * tests/test-math-c++.cc: Check the declaration of modff. * doc/posix-functions/modff.texi: Mention the new module. modf tests: Make test sharper. * tests/test-modf.c (main): Strengthen upper bound. modf: Use a .m4 file. * m4/modf.m4: New file. * modules/modf (Files): Add it. (configure.ac): Just invoke gl_FUNC_MODF. 2011-10-05 Bruno Haible Tests for module 'fmodf'. * modules/fmodf-tests: New file. * tests/test-fmodf.c: New file. New module 'fmodf'. * lib/math.in.h (fmodf): New declaration. * lib/fmodf.c: New file. * m4/fmodf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether fmodf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_FMODF, HAVE_FMODF. * modules/math (Makefile.am): Substitute GNULIB_FMODF, HAVE_FMODF. * modules/fmodf: New file. * tests/test-math-c++.cc: Check the declaration of fmodf. * doc/posix-functions/fmodf.texi: Mention the new module. fmod: Use a .m4 file. * m4/fmod.m4: New file. * modules/fmod (Files): Add it. (configure.ac): Just invoke gl_FUNC_FMOD. 2011-10-05 Bruno Haible Tests for module 'fabsf'. * modules/fabsf-tests: New file. * tests/test-fabsf.c: New file. New module 'fabsf'. * lib/math.in.h (fabsf): New declaration. * lib/fabsf.c: New file. * m4/fabsf.m4: New file. * m4/math_h.m4 (gl_MATH_H): Test whether fabsf is declared. (gl_MATH_H_DEFAULTS): Initialize GNULIB_FABSF, HAVE_FABSF. * modules/math (Makefile.am): Substitute GNULIB_FABSF, HAVE_FABSF. * modules/fabsf: New file. * tests/test-math-c++.cc: Check the declaration of fabsf. * doc/posix-functions/fabsf.texi: Mention the new module. fabs: Use a .m4 file. * m4/fabs.m4: New file. * modules/fabs (Files): Add it. (configure.ac): Just invoke gl_FUNC_FABS. 2011-10-05 Jim Meyering file-has-acl: revert both recent changes, 80af92af and 95f7c57f * lib/file-has-acl.c: While the 2011-10-03 change does fix the ls -lL regression introduced in coreutils-8.12, it does so at the cost of an additional stat call in the common case. Besides, now that the kernel change that prompted commit 95f7c57f has been reverted (see https://bugzilla.redhat.com/show_bug.cgi?id=720325#c24) we have no use for commit 95f7c57f, "file-has-acl: use acl_extended_file_nofollow if available". 2011-10-03 Kamil Dudka file-has-acl: revert unintended change in behavior of ls -L * lib/file-has-acl.c (acl_extended_file_wrap): New function, derived from... (file_has_acl): ...code here. Call it. This problem was introduced with 2011-07-22 commit 95f7c57f, "file-has-acl: use acl_extended_file_nofollow if available". See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/28538 2011-10-03 Bruno Haible poll: Avoid link errors on MSVC. * m4/poll.m4 (gl_FUNC_POLL): Determine LIB_POLL. * modules/poll (Depends-on): Add sockets. (Link): New section. * NEWS: Mention the change. * modules/poll-tests (Makefile.am): Link test-poll against $(LIB_POLL). * modules/poll-h-c++-tests (Makefile.am): Link test-poll-h-c++ against $(LIB_POLL) instead of $(LIBSOCKET). 2011-10-03 Bruno Haible sys_select tests: Fix link error on MSVC 9. * modules/sys_select-c++-tests (Makefile.am): Link test-sys_select-c++ with $(LIB_SELECT) instead of $(LIBSOCKET). 2011-10-03 Bruno Haible sys_select: Fix compilation error on mingw. * lib/sys_select.in.h: On native Windows, include . 2011-10-03 Bruno Haible wmemset: Support for MSVC. * m4/wmemset.m4 (gl_FUNC_WMEMSET): Use a small test program to test whether wmemset() exists. 2011-10-03 Bruno Haible wmemmove: Support for MSVC. * m4/wmemmove.m4 (gl_FUNC_WMEMMOVE): Use a small test program to test whether wmemmove() exists. 2011-10-03 Bruno Haible wmemcpy: Support for MSVC. * m4/wmemcpy.m4 (gl_FUNC_WMEMCPY): Use a small test program to test whether wmemcpy() exists. 2011-10-03 Bruno Haible wmemcmp: Support for MSVC. * m4/wmemcmp.m4 (gl_FUNC_WMEMCMP): Use a small test program to test whether wmemcmp() exists. 2011-10-03 Bruno Haible wmemchr: Support for MSVC. * m4/wmemchr.m4 (gl_FUNC_WMEMCHR): Use a small test program to test whether wmemchr() exists. 2011-10-03 Bruno Haible glthread/*, strsignal: Support for MSVC. * lib/glthread/cond.h: Define WIN32_LEAN_AND_MEAN, so as to avoid including on MSVC 9. * lib/glthread/lock.h: Likewise. * lib/glthread/thread.h: Likewise. * lib/glthread/tls.h: Likewise. * lib/glthread/yield.h: Likewise. * lib/strsignal.c: Include first. Don't include if HAVE_UNISTD_H is false. * m4/strsignal.m4 (gl_PREREQ_STRSIGNAL): Test for . 2011-10-03 Bruno Haible nonblocking tests: Fix test failure on OpenBSD/SPARC64. * tests/test-nonblocking-socket.h (SOCKET_DATA_BLOCK_SIZE) [OpenBSD]: Set to 100000. 2011-10-03 Bruno Haible acl: Fix specification. * lib/file-has-acl.c (file_has_acl): Fix specification. 2011-10-03 Bruno Haible relocatable-lib[-lgpl]: Avoid expensive /proc access on Linux, Cygwin. * lib/relocatable.c (ENABLE_COSTLY_RELOCATABLE): New macro. (compute_curr_prefix, shared_library_fullname, find_shared_library_fullname, get_shared_library_fullname, relocate): Use it together with PIC && INSTALLDIR. Reported by via Charles Wilson . 2011-10-01 Jim Meyering maint.mk: adjust a release-related rule not to require use of gzip * top/maint.mk (writable-files): Don't hard-code use of .tar.gz. Instead, check each file in $(DIST_ARCHIVES). This is better for projects that build only .tar.xz files. Also fix an erroneous test. test-linkat: don't leave behind a temporary file * tests/test-linkat.c (main): Don't forget to remove a temporary file. Otherwise, coreutils' "make distcheck" would fail with this: Only in /c/cu/tests/torture/coreutils/test/\ coreutils-8.13.22-d5caf.old/gnulib-tests: test-linkat.too make[2]: *** [my-distcheck] Error 1 float, math: add omitted file * lib/itold.c: Add file, required for yesterday's float change. 2011-10-01 Bruno Haible isinf: Fix for OpenBSD/x86. * m4/isinf.m4 (gl_ISINFL_WORKS): Also test the behaviour of isinf on pseudo-NaNs, pseudo-Infinities, and other non-IEEE values. * doc/posix-functions/isinf.texi: Mention the problem on OpenBSD/x86. 2011-10-01 Bruno Haible isfinite: Fix syntax error in configure test. * m4/isfinite.m4 (gl_ISFINITEL_WORKS): Fix syntax error. isfinite: Fix typo. * m4/isfinite.m4 (gl_ISFINITEL_WORKS): When cross-compiling, set gl_cv_func_isfinitel_works, not gl_cv_func_isnanl_works. 2011-10-01 Bruno Haible nonblocking tests: Fix test failure on Linux/IA-64. * tests/test-nonblocking-pipe.h (PIPE_DATA_BLOCK_SIZE) [Linux/IA-64]: Set to 270000. 2011-10-01 Bruno Haible mkfifoat tests: Fix a test failure on mingw. * tests/test-mkfifoat.c (main): Allow mkfifoat or test_mknodat to fail with error ENOSYS. 2011-09-30 Bruno Haible float, math: Fix 'int' to 'long double' conversion on Linux/SPARC64. * m4/float_h.m4 (gl_FLOAT_H): Test conversion from 'int' to 'long double'. Set REPLACE_ITOLD. * lib/float.in.h (_Qp_itoq, _gl_float_fix_itold): New declarations. * lib/math.in.h (_Qp_itoq, _gl_math_fix_itold): New declarations. * lib/itold.c: New file. * modules/float (Files): Add lib/itold.c. (configure.ac): When REPLACE_ITOLD is 1, arrange to compile itold.c. (Makefile.am): Substitute REPLACE_ITOLD. * modules/math (Depends-on): Add float. (Makefile.am): Substitute REPLACE_ITOLD. * doc/posix-headers/float.texi: Mention problem on Linux/SPARC64. * doc/posix-headers/math.texi: Likewise. * doc/posix-functions/logl.texi: Likewise. 2011-09-30 Bruno Haible nonblocking tests: Fix test failure on Linux/SPARC (32-bit and 64-bit). * tests/test-nonblocking-pipe.h (PIPE_DATA_BLOCK_SIZE) [Linux/SPARC]: Set to 140000. 2011-09-30 Bruno Haible gnulib-tool: Improve suggestion where to put gl_EARLY invocation. * gnulib-tool (func_import): If the configure.ac has an AC_PROG_CC_STDC invocation, say "right after AC_PROG_CC_STDC", not "right after AC_PROG_CC". Reported by Gary V. Vaughan . 2011-09-30 Bruno Haible Centralize C99 requirement. * m4/gnulib-common.m4 (gl_PROG_CC_C99): New macro. * modules/stdarg (configure.ac-early): Invoke it instead of AC_PROG_CC_STDC. Reported by Gary V. Vaughan and Paul Eggert. 2011-09-29 Bruno Haible float: Fix LDBL_MAX value on Linux/PowerPC. * m4/float_h.m4 (gl_FLOAT_H): Set FLOAT_H and REPLACE_FLOAT_LDBL also on Linux/PowerPC. * lib/float.in.h (LDBL_MAX): Redefine also on Linux/PowerPC. * lib/float.c (gl_LDBL_MAX): Also define on Linux/PowerPC. * doc/posix-headers/float.texi: Mention Linux/PowerPC as an affected platform. Reported by Andreas Metzler . 2011-09-29 Bruno Haible doc: Improve doc about gl_EARLY. * doc/gnulib-tool.texi (Initial import): Mention where to place an AC_PROG_CC_STDC invocation. Reported by Gary V. Vaughan . 2011-09-28 Bruno Haible fgetc, fputc, fread, fwrite tests: Fix link error. * tests/test-fgetc.c (main): Don't invoke gl_msvc_inval_ensure_handler on non-MSVC platforms. * tests/test-fputc.c (main): Likewise. * tests/test-fread.c (main): Likewise. * tests/test-fwrite.c (main): Likewise. Reported by Jim Meyering. 2011-09-27 Bruno Haible fputc, fwrite tests: Avoid test failure on MSVC. * tests/test-fgetc.c: Include msvc-inval.h. (main): Invoke gl_msvc_inval_ensure_handler. * tests/test-fputc.c: Include msvc-inval.h. (main): Invoke gl_msvc_inval_ensure_handler. * tests/test-fread.c: Include msvc-inval.h. (main): Invoke gl_msvc_inval_ensure_handler. * tests/test-fwrite.c: Include msvc-inval.h. (main): Invoke gl_msvc_inval_ensure_handler. * modules/fgetc-tests (Depends-on): Add msvc-inval. * modules/fputc-tests (Depends-on): Likewise. * modules/fread-tests (Depends-on): Likewise. * modules/fwrite-tests (Depends-on): Likewise. 2011-09-27 Bruno Haible raise: Fix double declaration with modules 'sigprocmask' and 'sigpipe'. * lib/signal.in.h (GNULIB_defined_signal_blocking): New macro. (raise): Remove older, duplicated declaration. (_gl_raise_SIGPIPE): New declaration. * lib/sigprocmask.c (_gl_raise_SIGPIPE): New function. (rpl_raise): Remove function. * lib/raise.c (rpl_raise, raise): Merge into a single function. Handle a gnulib-defined SIGPIPE here. * m4/raise.m4 (gl_FUNC_RAISE): Set REPLACE_RAISE also if the module 'sigprocmask' has detected missing signal-blocking and the module 'sigpipe' is enabled. Reported by Tatsuro MATSUOKA . 2011-09-26 Gijs van Tulder base64-tests: avoid memory leak * tests/test-base64.c (main): Plug memory leak. base32: new module * modules/base32: New module. * lib/base32.c: New file. * lib/base32.h: Likewise. * m4/base32.m4: Likewise. * modules/base32-tests: New test. * tests/test-base32.c: Likewise. * MODULES.html.sh (Misc): Mention it. 2011-09-26 Paul Eggert gnulib: use more-standard license notice wording * gnulib-tool (func_emit_copyright_notice): When emitting a license notice into a file, use the standard wording as suggested by the current information for GNU maintainers, except say "file" rather than "program". The new wording gives a license version number, which addresses an issue raised by Glenn Morris in . * m4/onceonly.m4: Use that same wording here, too. dup2: minor simplification * m4/dup2.m4 (gl_PREREQ_DUP2): Don't require AC_C_INLINE, as lib/dup2.c no longer uses 'inline'. 2011-09-25 Bruno Haible strings: Fix compilation error on MSVC. * lib/strings.in.h: Include for size_t. 2011-09-25 Bruno Haible fflush et al.: Document limitation on MSVC. * doc/posix-functions/fflush.texi: Document possible crash in handling mode other than DEFAULT_HANDLING. * doc/posix-functions/fgetc.texi: Likewise. * doc/posix-functions/fputc.texi: Likewise. * doc/posix-functions/fread.texi: Likewise. * doc/posix-functions/fwrite.texi: Likewise. 2011-09-25 Bruno Haible msvc-inval: Allow three invalid parameter handling modes. * lib/msvc-inval.h: Don't include here. (DEFAULT_HANDLING, HAIRY_LIBRARY_HANDLING, SANE_LIBRARY_HANDLING): New macros. (gl_msvc_inval_ensure_handler, TRY_MSVC_INVAL, CATCH_MSVC_INVAL, DONE_MSVC_INVAL): Implement DEFAULT_HANDLING. Treat SANE_LIBRARY_HANDLING as a no-op. * lib/msvc-inval.c: Treat SANE_LIBRARY_HANDLING as a no-op. Include . (gl_msvc_invalid_parameter_handler): Implement DEFAULT_HANDLING. 2011-09-25 Bruno Haible msvc-inval: Make handler multithread-safe. * lib/msvc-inval.h (struct gl_msvc_inval_per_thread): New type. (gl_msvc_inval_restart, gl_msvc_inval_restart_valid): Remove declarations. (gl_msvc_inval_current): New declaration. (TRY_MSVC_INVAL, CATCH_MSVC_INVAL, DONE_MSVC_INVAL) [!_MSC_VER]: Operate on the structure returned by gl_msvc_inval_current(). * lib/msvc-inval.c (gl_msvc_inval_restart, gl_msvc_inval_restart_valid): Remove varaiables. (tls_index, tls_initialized): New variables. (not_per_thread): New variable. (gl_msvc_inval_current): New function. (gl_msvc_invalid_parameter_handler) [!_MSC_VER]: Use the structure returned by gl_msvc_inval_current(). 2011-09-25 Bruno Haible msvc-inval: Install handler globally. * lib/msvc-inval.h (STATUS_GNULIB_INVALID_PARAMETER): Define also for !_MSC_VER. (gl_msvc_invalid_parameter_handler): Remove declaration. (gl_msvc_inval_restart_valid, gl_msvc_inval_ensure_handler): New declarations. (TRY_MSVC_INVAL, CATCH_MSVC_INVAL, DONE_MSVC_INVAL) [!_MSC_VER]: Install the handler globally, don't uninstall it. * lib/msvc-inval.c (gl_msvc_inval_restart_valid): New variable. (gl_msvc_invalid_parameter_handler): Make static. If the restart is not currently valid, call RaiseException instead. (gl_msvc_inval_initialized, gl_msvc_inval_ensure_handler): Define also for !_MSC_VER. 2011-09-25 Bruno Haible strerror_r-posix: Fix for MSVC 9. * lib/strerror_r.c (local_snprintf): New function. (snprintf): Define to local_snprintf, not to _snprintf. 2011-09-25 Bruno Haible ftruncate: Support for MSVC 9. * lib/ftruncate.c: Include errno.h, msvc-inval.h. (chsize_nothrow): New function. (chsize): Redefine as a macro. * m4/ftruncate.m4 (gl_PREREQ_FTRUNCATE): Require AC_C_INLINE. * modules/ftruncate (Depends-on): Add msvc-inval. 2011-09-25 Bruno Haible New module 'fstat'. * lib/sys_stat.in.h (fstat): Declare only if GNULIB_FSTAT is set. * lib/fstat.c: New file, based on a piece of lib/fchdir.c. * lib/fchdir.c (rpl_fstat): Remove function. * m4/fstat.m4: New file. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't set REPLACE_FSTAT. * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Test whether fstat is declared. (gl_SYS_STAT_H_DEFAULTS): Initialize GNULIB_FSTAT. * modules/sys_stat (Makefile.am): Substitute GNULIB_FSTAT. * modules/fstat: New file. * modules/sys_stat-tests (Depends-on): Remove fstat-tests. * tests/test-sys_stat-c++.cc (fstat): Check only if GNULIB_TEST_FSTAT is set. * doc/posix-functions/fstat.texi: Mention the new module and the problem on MSVC. * NEWS: Mention the change. * modules/acl (Depends-on): Add fstat. * modules/chdir-safer (Depends-on): Likewise. * modules/chown (Depends-on): Likewise. * modules/copy-file (Depends-on): Likewise. * modules/fchdir (Depends-on): Likewise. * modules/fdopendir (Depends-on): Likewise. * modules/fopen (Depends-on): Likewise. * modules/fts (Depends-on): Likewise. * modules/getcwd (Depends-on): Likewise. * modules/isapipe (Depends-on): Likewise. * modules/linkat (Depends-on): Likewise. * modules/lseek (Depends-on): Likewise. * modules/mkdir-p (Depends-on): Likewise. * modules/open (Depends-on): Likewise. * modules/openat (Depends-on): Likewise. * modules/read-file (Depends-on): Likewise. * modules/renameat (Depends-on): Likewise. * modules/utimens (Depends-on): Likewise. 2011-09-25 Bruno Haible linkat: Fix compilation on MSVC 9. * lib/linkat.c: Don't include . 2011-09-25 Bruno Haible fclose: Support for MSVC 9. * lib/fclose.c: Include msvc-inval.h. (fclose_nothrow): New function. (rpl_fclose): Use it. * modules/fclose (Depends-on): Add msvc-inval. * doc/posix-functions/fclose.texi: Mention the problem on MSVC. 2011-09-24 Paul Eggert dup2: minor simplifications * lib/dup2.c (ms_windows_dup2): Omit 'inline' as it's not clear that it's a performance win. (rpl_dup2): Change "if !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)" to "ifdef F_GETFL". 2011-09-24 Jim Meyering test-futimens: avoid a warning from gcc -Wshadow * tests/test-futimens.h (test_futimens): Rename inner local, s/fd/fd0/ to avoid a shadowing warning. 2011-09-24 Bruno Haible fdopen: Support for MSVC 9. * m4/fdopen.m4 (gl_FUNC_FDOPEN): Set REPLACE_FDOPEN also if HAVE_MSVC_INVALID_PARAMETER_HANDLER is 1. * lib/fdopen.c: Include msvc-inval.h. (fdopen_nothrow): New function. (rpl_fdopen): Use it. * modules/fdopen (Depends-on): Add msvc-inval. * modules/fclose-tests (Depends-on): Add fdopen. * modules/fflush-tests (Depends-on): Likewise. * modules/fgetc-tests (Depends-on): Likewise. * modules/fputc-tests (Depends-on): Likewise. * modules/fread-tests (Depends-on): Likewise. * modules/freopen-tests (Depends-on): Likewise. * modules/fseeko-tests (Depends-on): Likewise. * modules/ftello-tests (Depends-on): Likewise. * modules/fwrite-tests (Depends-on): Likewise. * doc/posix-functions/fdopen.texi: Mention the problem on MSVC. 2011-09-24 Bruno Haible fgetc, fputc, fread, fwrite tests: Avoid compilation error on MSVC. * modules/fgetc-tests (Depends-on): Add unistd. * modules/fputc-tests (Depends-on): Likewise. * modules/fread-tests (Depends-on): Likewise. * modules/fwrite-tests (Depends-on): Likewise. 2011-09-24 Bruno Haible dup: Simplify autoconf test. * m4/dup.m4 (gl_FUNC_DUP): Don't run a test program. Instead, just rely on gl_MSVC_INVAL's result. 2011-09-24 Bruno Haible Tests for function fwrite(). * modules/fwrite-tests: New file. * tests/test-fwrite.c: New file. * modules/stdio-tests (Depends-on): Add fwrite-tests. Tests for function fread(). * modules/fread-tests: New file. * tests/test-fread.c: New file. * modules/stdio-tests (Depends-on): Add fread-tests. Activate fputc tests. * modules/stdio-tests (Depends-on): Add fputc-tests. Enhance fgetc, fputc tests. * tests/test-fgetc.c (main): Also test the stream's error indicator. * tests/test-fputc.c (main): Likewise. 2011-09-24 Bruno Haible write: Support for MSVC 9. * lib/unistd.in.h (write): Replace also when GNULIB_UNISTD_H_NONBLOCKING is not 1. * lib/write.c (write_nothrow): New function. (rpl_write): Define also when GNULIB_NONBLOCKING or GNULIB_SIGPIPE is not 1. Use write_nothrow. * m4/write.m4 (gl_FUNC_WRITE): Replace read if the platform has an invalid parameter handler. (gl_PREREQ_WRITE): New macro. * modules/write (Depends-on): Add msvc-inval. (configure.ac): Invoke gl_PREREQ_WRITE. * doc/posix-functions/write.texi: Mention the problem on MSVC. 2011-09-24 Bruno Haible read: Fix last commit. * lib/read.c (read_nothrow): Change return type to 'ssize_t'. 2011-09-24 Bruno Haible dup2: Fix last commit. * lib/dup2.c: Restore comments. Treat Cygwin like Unix. (rpl_dup2): Disable fcntl workaround on native Windows. sigprocmask: Make code safer. * lib/sigprocmask.c: Move '#include "msvc-inval.h"' before the code section that changes macro definitions for this compilation unit. 2011-09-23 Paul Eggert dup2: clarify by coalescing Windows-specific material * lib/dup2.c: Move '#include "msvc-inval.h"' and '#include "msvc-nothrow.h"' to the Windows-specific section, so that the Emacs source need not contain these include files. (ms_windows_dup2): Rename from dup2_nothrow, and move all the Windows-specific fixes into this function rather than just the nothrow fix, as this shortens and clarifies the code. Always define as a function, as that's a bit cleaner than having it be sometimes a function and sometimes a macro. (rpl_dup2): Move the Windows-specific stuff out of here and into ms_windows_dup2. Don't protect the Haiku-related fix with "#if !defined __linux__", as the same code also works around a Linux kernel bug, and it doesn't add any system calls on any platform. Add comment about FreeBSD 6.1. sigprocmask: move #include directive * lib/sigprocmask.c: Move '#include "msvc-inval.h"' to the Windows-specific section, so that the Emacs source need not contain msvc-inval.h. 2011-09-23 Bruno Haible read: Support for MSVC 9. * lib/unistd.in.h (read): Replace also when GNULIB_UNISTD_H_NONBLOCKING is not 1. * lib/read.c (read_nothrow): New function. (rpl_read): Define also when GNULIB_NONBLOCKING is not 1. Use read_nothrow. * m4/read.m4 (gl_FUNC_READ): Replace read if the platform has an invalid parameter handler. (gl_PREREQ_READ): New macro. * modules/read (Depends-on): Add msvc-inval. (configure.ac): Invoke gl_PREREQ_READ. * doc/posix-functions/read.texi: Mention the problem on MSVC. 2011-09-23 Bruno Haible close: Support for MSVC 9. * lib/close.c: Include , msvc-inval.h. (close_nothrow): New function. (rpl_close): Use it. * m4/close.m4 (gl_FUNC_CLOSE): Replace close if the platform has an invalid parameter handler. * modules/close (Depends-on): Add msvc-inval. * modules/dup2-tests (Depends-on): Add close. * modules/dup3-tests (Depends-on): Likewise. * modules/fcntl-tests (Depends-on): Likewise. * modules/spawn-pipe-tests (Depends-on): Likewise. * modules/unistd-safer-tests (Depends-on): Likewise. * doc/posix-functions/close.texi: Mention the problem on MSVC. 2011-09-23 Bruno Haible New module 'dup'. * lib/unistd.in.h (dup): Declare only if the 'dup' module is in use. Allow replacement. * lib/dup.c: New file. * lib/fchdir.c (rpl_dup): Remove function. * m4/dup.m4: New file. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't set REPLACE_DUP here. * m4/unistd_h.m4 (gl_UNISTD_H): Test whether 'dup' is declared. (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_DUP. * modules/unistd (Makefile.am): Substitute GNULIB_DUP. * modules/dup: New file. * tests/test-unistd-c++.cc: Check the signature of 'dup' only if the 'dup' module is in use. * modules/fdopendir (Depends-on): Add dup. * modules/fdutimensat-tests (Depends-on): Likewise. * modules/fts (Depends-on): Likewise. * modules/futimens-tests (Depends-on): Likewise. * modules/posix_spawnp-tests (Depends-on): Likewise. * modules/unistd-safer-tests (Depends-on): Likewise. * modules/utimens-tests (Depends-on): Likewise. * doc/posix-functions/dup.texi: Mention the new module and the problem on MSVC. 2011-09-23 Bruno Haible getdtablesize: Support for MSVC 9. * lib/getdtablesize.c: Include msvc-inval.h. (_setmaxstdio_nothrow): New function. (_setmaxstdio): Redefine it. * m4/getdtablesize.m4 (gl_PREREQ_GETDTABLESIZE): New macro. * modules/getdtablesize (Depends-on): Add msvc-inval. (configure.ac): Invoke gl_PREREQ_GETDTABLESIZE. 2011-09-23 Bruno Haible signal-h: Rename from signal. * modules/signal-h: Renamed from modules/signal. * modules/pthread_sigmask (Depends-on): Update. * modules/raise (Depends-on): Likewise. * modules/sigaction (Depends-on): Likewise. * modules/sigpipe (Depends-on): Likewise. * modules/sigprocmask (Depends-on): Likewise. * modules/sys_select (Depends-on): Likewise. * modules/signal-h-tests: Renamed from modules/signal-tests. (Files, Depends-on, Makefile.am): Update. * tests/test-signal-h.c: Renamed from tests/test-signal.c. * modules/signal-h-c++-tests: Renamed from modules/signal-c++-tests. (Files, Makefile.am): Update. * tests/test-signal-h-c++.cc: Renamed from tests/test-signal-c++.cc. * tests/test-signal-h-c++2.cc: Renamed from tests/test-signal-c++2.cc. * modules/signal: New placeholder file. * MODULES.html.sh (Support for systems lacking POSIX:2008): Update. * doc/posix-headers/signal.texi: Update. * NEWS: Mention the change. 2011-09-23 Bruno Haible sigprocmask: Avoid crashes through signal() on MSVC 9. * lib/sigprocmask.c: Include msvc-inval.h. (signal_nothrow): New function. (signal): Redefine it. * m4/signalblocking.m4 (gl_PREREQ_SIGPROCMASK): Require AC_C_INLINE. * modules/sigprocmask (Depends-on): Add msvc-inval. * doc/posix-functions/signal.texi: Mention the problem on MSVC. 2011-09-23 Bruno Haible Tests for module 'raise'. * modules/raise-tests: New file. * tests/test-raise.c: New file. raise: Support for MSVC. * lib/signal.in.h (raise): New declaration. * lib/raise.c (raise_nothrow, rpl_raise): New alternate implementation for native Windows platforms. * m4/raise.m4: New file. * m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Initialize GNULIB_RAISE, HAVE_RAISE, REPLACE_RAISE. * modules/signal (Makefile.am): Substitute GNULIB_RAISE, HAVE_RAISE, REPLACE_RAISE. * modules/raise (Status, Notice): Remove fields. (Files): Add m4/raise.m4. (Depends-on): Add signal, msvc-inval. (configure.ac): Use the common idioms. (Maintainer): Add me. * tests/test-signal-c++.cc: Check the signature of raise. * doc/posix-functions/raise.texi: Mention the problem on MSVC. 2011-09-23 Bruno Haible pipe2: Fix compilation on pre-C99 compilers. * lib/pipe2.c (pipe2): Surround verify(...) declaration with braces. 2011-09-23 Bruno Haible New module 'msvc-nothrow'. Makes _get_osfhandle safe on MSVC 9. * lib/msvc-nothrow.h: New file. * lib/msvc-nothrow.c: New file. * m4/msvc-nothrow.m4: New file. * modules/msvc-nothrow: New file. * lib/dup2.c: Include msvc-nothrow.h. (rpl_dup2): No need to protect _get_osfhandle call here. * lib/accept4.c: Include msvc-nothrow.h. * lib/error.c: Likewise. * lib/fcntl.c: Likewise. * lib/lseek.c: Likewise. * lib/nonblocking.c: Likewise. * lib/poll.c: Likewise. * lib/read.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/write.c: Likewise. * lib/w32sock.h: Likewise. * lib/w32spawn.h: Likewise. * lib/flock.c: Include msvc-nothrow.h instead of . * lib/fsync.c: Likewise. * lib/isapipe.c: Likewise. * modules/dup2 (Depends-on): Add msvc-nothrow. * modules/accept4 (Depends-on): Likewise. * modules/error (Depends-on): Likewise. * modules/fcntl (Depends-on): Likewise. * modules/lseek (Depends-on): Likewise. * modules/nonblocking (Depends-on): Likewise. * modules/poll (Depends-on): Likewise. * modules/read (Depends-on): Likewise. * modules/select (Depends-on): Likewise. * modules/sockets (Depends-on): Likewise. * modules/sigpipe (Depends-on): Likewise. * modules/write (Depends-on): Likewise. * modules/accept (Depends-on): Likewise. * modules/bind (Depends-on): Likewise. * modules/connect (Depends-on): Likewise. * modules/gethostname (Depends-on): Likewise. * modules/getpeername (Depends-on): Likewise. * modules/getsockname (Depends-on): Likewise. * modules/getsockopt (Depends-on): Likewise. * modules/ioctl (Depends-on): Likewise. * modules/listen (Depends-on): Likewise. * modules/recv (Depends-on): Likewise. * modules/recvfrom (Depends-on): Likewise. * modules/send (Depends-on): Likewise. * modules/sendto (Depends-on): Likewise. * modules/setsockopt (Depends-on): Likewise. * modules/shutdown (Depends-on): Likewise. * modules/socket (Depends-on): Likewise. * modules/execute (Depends-on): Likewise. * modules/spawn-pipe (Depends-on): Likewise. * modules/flock (Depends-on): Likewise. * modules/fsync (Depends-on): Likewise. * modules/isapipe (Depends-on): Likewise. * tests/test-cloexec.c: Include msvc-nothrow.h. * 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. * modules/cloexec-tests (Depends-on): Add msvc-nothrow. * modules/unistd-safer-tests (Depends-on): Likewise. * modules/dup2-tests (Depends-on): Likewise. * modules/dup3-tests (Depends-on): Likewise. * modules/fcntl-tests (Depends-on): Likewise. * modules/pipe-posix-tests (Depends-on): Likewise. * modules/pipe2-tests (Depends-on): Likewise. 2011-09-23 Bruno Haible dup2: Make code more maintainable. * lib/dup2.c (dup2_nothrow): New function, extracted from rpl_dup2. (rpl_dup2): Use it. * m4/dup2.m4 (gl_PREREQ_DUP2): New macro. * modules/dup2 (configure.ac): Invoke it. Reported by Paul Eggert. 2011-09-23 Bruno Haible msvc-inval: Fix compilation error. * lib/msvc-inval.h: Include . 2011-09-23 Bruno Haible mkdir: Tweak for MSVC 9. * lib/sys_stat.in.h: Update comments. * doc/posix-functions/mkdir.texi: Mention problem on MSVC 9. Tests for module 'chdir'. * modules/chdir-tests: New file. * tests/test-chdir.c: New file. New module 'chdir'. * modules/chdir: New file. * lib/unistd.in.h: Include , also for chdir. (chdir): New declaration. * m4/unistd_h.m4 (gl_UNISTD_H): Test whether chdir is declared. (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_CHDIR. * modules/unistd (Makefile.am): Substitute GNULIB_CHDIR. * tests/test-unistd-c++.cc: Check signature of chdir. * doc/posix-functions/chdir.texi: Mention problem on native Windows. * modules/chdir-long (Depends-on): Add chdir. * modules/fchdir (Depends-on): Likewise. * modules/rename (Depends-on): Likewise. * modules/savewd (Depends-on): Likewise. rmdir: Support for mingw, MSVC 9. * lib/unistd.in.h: Include and also for rmdir. * doc/posix-functions/getcwd.texi: Mention problem on native Windows. getcwd: Tweak for MSVC 9. * lib/unistd.in.h: Update comments. * doc/posix-functions/getcwd.texi: Mention problem on MSVC 9. 2011-09-22 Bruno Haible strerror_r-posix: Avoid a link error on MSVC. * m4/strerror_r.m4 (gl_PREREQ_STRERROR_R): Check for snprintf. * lib/strerror_r.c (snprintf): Define to _snprintf if it doesn't exist. 2011-09-22 Bruno Haible select: Avoid link errors on MSVC. * m4/select.m4 (gl_FUNC_SELECT): Determine LIB_SELECT. * modules/select (Link): Replace $(LIBSOCKET) with $(LIB_SELECT). * modules/pselect (Link): Likewise. * NEWS: Mention the change. * modules/select-tests (Makefile.am): Link test-select, test-select-fd, test-select-stdin against $(LIB_SELECT). * modules/pselect-tests (Makefile.am): Link test-pselect against $(LIB_SELECT). 2011-09-22 Bruno Haible select: Avoid compilation error on MSVC. * lib/select.c: Don't include . 2011-09-21 Bruno Haible Consolidate all uses of PATH_MAX in *.m4 files. * m4/pathmax.m4 (gl_PATHMAX_SNIPPET, gl_PATHMAX_SNIPPET_PREREQ): New macros. * m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Use gl_PATHMAX_SNIPPET_PREREQ and gl_PATHMAX_SNIPPET. * m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Likewise. * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise. * modules/chdir-long (Files): Add m4/pathmax.m4. * modules/getcwd (Files): Likewise. 2011-09-21 Bruno Haible ftruncate: Un-deprecate, concentrate on Win32 support. * modules/ftruncate (Status, Notice): Remove sections. (Depends-on): Add largefile. * m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): Drop failure message on non-mingw platforms. * lib/ftruncate.c: Remove code for the older platforms. For Win32, include . * modules/perror-tests (Depends-on): Add ftruncate. * doc/posix-functions/ftruncate.texi: Mention the MSVC problem and the 'ftruncate' module. 2011-09-21 Bruno Haible Add dependencies to new dirent related modules. * modules/opendir (Depends-on): Add closedir. * modules/getcwd (Depends-on): Add opendir, closedir. * modules/dirent-safer-tests (Depends-on): Likewise. * modules/fdopendir-tests (Depends-on): Likewise. * modules/rename-tests (Depends-on): Add opendir, readdir, closedir. * modules/renameat-tests (Depends-on): Likewise. 2011-09-21 Bruno Haible opendir: Avoid compilation error on mingw. * lib/opendir.c: Include always. Include as well. * modules/opendir (Depends-on): Add unistd. 2011-09-21 Bruno Haible ftruncate tests: Avoid a test failure on mingw. * tests/test-ftruncate.c (main): Allow a failure with EACCES. 2011-09-21 Bruno Haible select tests: Avoid test failures on OSF/1 5.1 and mingw. * tests/test-select.h (test_bad_fd): Disable all tests on OSF/1 and native Windows. 2011-09-21 Bruno Haible New module 'fdopen'. * lib/stdio.in.h (fdopen): New declaration. * lib/fdopen.c: New file. * m4/fdopen.m4: New file. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize GNULIB_FDOPEN, REPLACE_FDOPEN. * modules/stdio (Makefile.am): Substitute GNULIB_FDOPEN, REPLACE_FDOPEN. * modules/fdopen: New file. * modules/stdio-tests (Depends-on): Remove fdopen-tests. * tests/test-stdio-c++.cc: Check signature of fdopen. * doc/posix-functions/fdopen.texi: Mention the new module. 2011-09-21 Bruno Haible unlockpt tests: Avoid test failure on NetBSD 5.1. * tests/test-unlockpt.c (main): Skip the EBADF tests on NetBSD. * doc/posix-functions/unlockpt.texi: Mention the bug on NetBSD. 2011-09-21 Bruno Haible getlogin, getlogin_r tests: Avoid test failure on Linux/SPARC. * tests/test-getlogin.c (main): Allow a failure with EINVAL. * tests/test-getlogin_r.c (main): Likewise. 2011-09-20 Bruno Haible time tests: Don't require pid_t. * doc/posix-headers/time.texi: Revert last change. * m4/time_h.m4 (gl_HEADER_TIME_H_BODY): Revert last change. * tests/test-time.c: Comment out the check for pid_t. 2011-09-20 Bruno Haible fsync tests: Avoid a test failure on mingw. * tests/test-fsync.c (main): Allow a failure with EIO. 2011-09-20 Bruno Haible euidaccess: Update comments. * m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Update comments. 2011-09-20 Bruno Haible Ensure EBADF returns for socket functions on mingw. * lib/accept.c (rpl_accept): Fail with error EBADF if the file descriptor is invalid. * lib/bind.c (rpl_bind): Likewise. * lib/connect.c (rpl_connect): Likewise. * lib/getpeername.c (rpl_getpeername): Likewise. * lib/getsockname.c (rpl_getsockname): Likewise. * lib/getsockopt.c (rpl_getsockopt): Likewise. * lib/listen.c (rpl_listen): Likewise. * lib/recv.c (rpl_recv): Likewise. * lib/recvfrom.c (rpl_recvfrom): Likewise. * lib/send.c (rpl_send): Likewise. * lib/sendto.c (rpl_sendto): Likewise. * lib/setsockopt.c (rpl_setsockopt): Likewise. * lib/shutdown.c (rpl_shutdown): Likewise. 2011-09-20 Bruno Haible select tests: EBADF tests. * tests/test-select.h (do_select_bad_fd, do_select_bad_fd_nowait, test_bad_fd): New functions. (test_function): Invoke also test_bad_fd. 2011-09-20 Bruno Haible Tests for module 'posix_spawn_file_actions_addopen. * modules/posix_spawn_file_actions_addopen-tests: New file. * tests/test-posix_spawn_file_actions_addopen.c: New file. Tests for module 'posix_spawn_file_actions_adddup2'. * modules/posix_spawn_file_actions_adddup2-tests: New file. * tests/test-posix_spawn_file_actions_adddup2.c: New file. Tests for module 'posix_spawn_file_actions_addclose'. * modules/posix_spawn_file_actions_addclose-tests: New file. * tests/test-posix_spawn_file_actions_addclose.c: New file. 2011-09-20 Bruno Haible Tests for module 'unlockpt'. * modules/unlockpt-tests: New file. * tests/test-unlockpt.c: New file. * doc/posix-functions/unlockpt.texi: Mention the Cygwin 1.7 problem. Tests for module 'grantpt'. * modules/grantpt-tests: New file. * tests/test-grantpt.c: New file. * doc/posix-functions/grantpt.texi: Mention the Cygwin 1.7 problem. 2011-09-20 Bruno Haible freopen tests: EBADF tests. * tests/test-freopen.c: Include errno.h, unistd.h. (main): Add tests for EBADF, commented out for the moment. fclose tests: EBADF tests. * tests/test-fclose.c (main): Add tests for EBADF. fflush tests: EBADF tests. * tests/test-fflush.c: Include errno.h, macros.h. (main): Add tests for EBADF. ftello tests: EBADF tests. * tests/test-ftello4.sh: New file. * tests/test-ftello4.c: New file. * modules/ftello-tests (Files): Add them. (Makefile.am): Arrange to compile test-ftello4 and run test-ftello4.sh. fseeko tests: EBADF tests. * tests/test-fseeko4.sh: New file. * tests/test-fseeko4.c: New file. * modules/fseeko-tests (Files): Add them. (Makefile.am): Arrange to compile test-fseeko4 and run test-fseeko4.sh. Tests for function fputc(). * modules/fputc-tests: New file. * tests/test-fputc.c: New file. * modules/stdio-tests (Depends-on): Add fputc-tests. Tests for function fgetc(). * modules/fgetc-tests: New file. * tests/test-fgetc.c: New file. * modules/stdio-tests (Depends-on): Add fgetc-tests. Tests for function fdopen(). * modules/fdopen-tests: New file. * tests/test-fdopen.c: New file. * modules/stdio-tests (Depends-on): Add fdopen-tests. Tests for module 'vdprintf'. * modules/vdprintf-tests: New file. * tests/test-vdprintf.c: New file. Tests for module 'dprintf'. * modules/dprintf-tests: New file. * tests/test-dprintf.c: New file. 2011-09-20 Bruno Haible Tests for module 'ioctl'. * modules/ioctl-tests: New file. * tests/test-ioctl.c: New file. 2011-09-20 Bruno Haible fcntl tests: EBADF tests. * tests/test-fcntl.c (main): Add more tests for EBADF. 2011-09-20 Bruno Haible utimensat tests: EBADF tests. * tests/test-utimensat.c (main): Add tests for EBADF. renameat tests: EBADF tests. * tests/test-renameat.c (main): Add tests for EBADF. mkfifoat tests: EBADF tests. * tests/test-mkfifoat.c (main): Add tests for EBADF. readlinkat tests: EBADF tests. * tests/test-readlinkat.c (main): Add tests for EBADF. symlinkat tests: EBADF tests. * tests/test-symlinkat.c (main): Add tests for EBADF. linkat tests: EBADF tests. * tests/test-linkat.c (main): Add tests for EBADF. Tests for module 'faccessat'. * modules/faccessat-tests: New file. * tests/test-faccessat.c: New file. fdopendir tests: EBADF tests. * tests/test-fdopendir.c (main): Add more tests for EBADF. openat tests: EBADF tests. * tests/test-fchownat.c (main): Add tests for EBADF. * tests/test-fstatat.c (main): Likewise. * tests/test-mkdirat.c (main): Likewise. * tests/test-openat.c (main): Likewise. * tests/test-unlinkat.c (main): Likewise. * tests/test-fchmodat.c: New file. * modules/openat-tests (Files): Add tests/test-fchmodat.c. (Makefile.am): Also run 'test-fchmodat'. 2011-09-20 Bruno Haible utimens, futimens, fdutimensat tests: EBADF tests. * tests/test-futimens.h (test_futimens): Add more tests for EBADF. Tests for function fstat(). * modules/fstat-tests: New file. * tests/test-fstat.c: New file. * modules/sys_stat-tests (Depends-on): Add fstat-tests. 2011-09-20 Bruno Haible test-ttyname_r tests: EBADF tests. * tests/test-ttyname_r.c (main): Add tests for EBADF. Tests for module 'isatty'. * modules/isatty-tests: New file. * tests/test-isatty.c: New file. Tests for module 'write'. * modules/write-tests: New file. * tests/test-write.c: New file. Tests for module 'read'. * modules/read-tests: New file. * tests/test-read.c: New file. pwrite tests: EBADF tests. * tests/test-pwrite.c (main): Add tests for EBADF. pread tests: EBADF tests. * tests/test-pread.c (main): Add tests for EBADF. lseek tests: EBADF tests. * tests/test-lseek.c (main): Add more tests for EBADF. Tests for module 'ftruncate'. * modules/ftruncate-tests: New file. * tests/test-ftruncate.sh: New file. * tests/test-ftruncate.c: New file. fsync tests: EBADF tests. * tests/test-fsync.c (main): Add more tests for EBADF. fdatasync tests: EBADF tests. * tests/test-fdatasync.c (main): Add more tests for EBADF. Tests for module 'fchown'. * modules/fchown-tests: New file. * tests/test-fchown.c: New file. Tests for module 'fchmod'. * modules/fchmod-tests: New file. * tests/test-fchmod.c: New file. fchdir tests: EBADF tests. * tests/test-fchdir.c (main): Add more tests for EBADF. dup2 tests: EBADF tests. * tests/test-dup2.c (main): Add more tests for EBADF. Tests for module 'dup'. * modules/dup-tests: New file. * tests/test-dup.c: New file. Tests for module 'close'. * modules/close-tests: New file. * tests/test-close.c: New file. 2011-09-20 Bruno Haible Tests for module 'shutdown'. * modules/shutdown-tests: New file. * tests/test-shutdown.c: New file. Tests for module 'setsockopt'. * modules/setsockopt-tests: New file. * tests/test-setsockopt.c: New file. Tests for module 'sendto'. * modules/sendto-tests: New file. * tests/test-sendto.c: New file. Tests for module 'send'. * modules/send-tests: New file. * tests/test-send.c: New file. Tests for module 'recvfrom'. * modules/recvfrom-tests: New file. * tests/test-recvfrom.c: New file. Tests for module 'recv'. * modules/recv-tests: New file. * tests/test-recv.c: New file. Tests for module 'listen'. * modules/listen-tests: New file. * tests/test-listen.c: New file. Tests for module 'getsockopt'. * modules/getsockopt-tests: New file. * tests/test-getsockopt.c: New file. Tests for module 'getsockname'. * modules/getsockname-tests: New file. * tests/test-getsockname.c: New file. Tests for module 'getpeername'. * modules/getpeername-tests: New file. * tests/test-getpeername.c: New file. Tests for module 'connect'. * modules/connect-tests: New file. * tests/test-connect.c: New file. Tests for module 'bind'. * modules/bind-tests: New file. * tests/test-bind.c: New file. accept4 tests: Fix for native Windows. * tests/test-accept4.c: Include sockets.h. (main): Invoke gl_sockets_startup. * modules/accept4-tests (Depends-on): Add sockets. accept tests: Fix for native Windows. * tests/test-accept.c: Include sockets.h. (main): Invoke gl_sockets_startup. * modules/accept-tests (Depends-on): Add sockets. 2011-09-19 Bruno Haible msvc-inval: Require a semicolon after DONE_MSVC_INVAL. * lib/msvc-inval.h (TRY_MSVC_INVAL, DONE_MSVC_INVAL): Wrap in a do...while(0). * lib/dup2.c (rpl_dup2): Add a semicolon after DONE_MSVC_INVAL. Suggested by Paul Eggert. 2011-09-19 Bruno Haible sched: Ensure pid_t is defined. * m4/sched_h.m4 (gl_SCHED_H): Arrange to override if it does not define pid_t. * lib/sched.in.h: Include . * doc/posix-headers/sched.texi: Mention the pid_t problem. Reported by Tom G. Christensen . 2011-09-19 Bruno Haible msvc-inval: Ensure the entire expansion is a single statement. * lib/msvc-inval.h (TRY_MSVC_INVAL, DONE_MSVC_INVAL): Add an extra pair of braces. 2011-09-19 Jim Meyering tests: use printf, not echo in init.sh's warn_ function * tests/init.sh (warn_): Use printf, not echo. The latter would misbehave when given strings containing a backslash or starting with e.g., -n. James Youngman suggested setting IFS. 2011-09-19 Eric Blake futimens: enhance test * tests/test-futimens.h (test_futimens): Also check for EBADF on closed non-negative fd. date: accept 'hence' as opposite of 'ago' * lib/parse-datetime.y (relative_time_table): Add 'hence'. * tests/test-parse-datetime.c (main): Enhance test. Suggested by Jesse Wilson. 2011-09-19 Jim Meyering getcwd: don't fail in a deep directory on a system without openat Before this change, getcwd would fail when called from a directory of depth PATH_MAX / 3 or greater. That was due to the fact that the non-openat implementation used "..", "../..", "../../..", etc. to access ancestor directories. With too many, that string would be longer than PATH_MAX. * lib/getcwd.c (HAVE_OPENAT_SUPPORT): Define also when we are using gnulib's openat replacement. * m4/openat.m4: Set GNULIB_OPENAT, so getcwd.c knows when we're using the replacement function. 2011-09-14 Martin von Gagern maint.mk: avoid warnings from perl about missing files * top/maint.mk (def_sym_regex): Ignore files listed in $(gl_other_headers_) that do not exist, say because a project does not use a corresponding module. 2011-09-18 Paul Eggert stat: use pathmax.h only if needed * lib/stat.c: Include pathmax.h only if REPLACE_FUNC_STAT_DIR. This is better for Emacs, which does not have a mingw port and therefore can avoid the pathmax module. utimens: remove dependency on dup2 * lib/utimens.c (fdutimens): Don't invoke dup2; it's not needed to work around the Linux kernel bug. * modules/utimens (Depends-on): Remove dup2. 2011-09-18 Bruno Haible inet_ntop, inet_pton: Look for it also in libresolv. * m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): If the function was not found in libnsl, search for it in libresolv. * m4/inet_pton.m4 (gl_FUNC_INET_PTON): Likewise. Needed on Solaris 7. 2011-09-18 Bruno Haible accept, accept4 tests: Avoid link error on Solaris. * modules/accept-tests (Makefile.am): Link test-accept against $(LIBSOCKET). * modules/accept4-tests (Makefile.am): Link test-accept4 against $(LIBSOCKET). accept4: Avoid link error on Solaris. * modules/accept4 (Link): New section. socket functions: Avoid link errors on Solaris. * modules/accept (Depends-on): Add socketlib. (Link): New section. * modules/bind (Depends-on): Add socketlib. (Link): New section. * modules/connect (Depends-on): Add socketlib. (Link): New section. * modules/getpeername (Depends-on): Add socketlib. (Link): New section. * modules/getsockname (Depends-on): Add socketlib. (Link): New section. * modules/getsockopt (Depends-on): Add socketlib. (Link): New section. * modules/listen (Depends-on): Add socketlib. (Link): New section. * modules/recv (Depends-on): Add socketlib. (Link): New section. * modules/recvfrom (Depends-on): Add socketlib. (Link): New section. * modules/send (Depends-on): Add socketlib. (Link): New section. * modules/sendto (Depends-on): Add socketlib. (Link): New section. * modules/setsockopt (Depends-on): Add socketlib. (Link): New section. * modules/shutdown (Depends-on): Add socketlib. (Link): New section. * modules/socket (Depends-on): Add socketlib. (Link): New section. 2011-09-18 Bruno Haible ptsname tests: Let the test fail rather than hang (e.g. on AIX 5.1). * tests/test-ptsname.c (main): Terminate the test if it takes longer than 5 seconds. * modules/ptsname-tests (configure.ac): Test for alarm. 2011-09-18 Bruno Haible posix_spawn_file_actions_add*: Fix module dependencies. * modules/posix_spawn_file_actions_addclose (Dependencies): Add posix_spawn_file_actions_init. * modules/posix_spawn_file_actions_adddup2 (Dependencies): Likewise. * modules/posix_spawn_file_actions_addopen (Dependencies): Likewise. 2011-09-18 Bruno Haible rename, renameat tests: Avoid test failures on FreeBSD 6.4. * tests/test-rename.h (test_rename): Allow error code EEXIST. * tests/test-renameat.c (main): Likewise. 2011-09-18 Bruno Haible Tests for module 'accept4'. * modules/accept4-tests: New file. * tests/test-accept4.c: New file. 2011-09-18 Bruno Haible Tests for module 'accept'. * modules/accept-tests: New file. * tests/test-accept.c: New file. 2011-09-18 Bruno Haible dup2: Support for MSVC. * lib/dup2.c: Include msvc-inval.h. (rpl_dup2): Handle invalid parameter notifications during dup2 and _get_osfhandle calls. * modules/dup2 (Depends-on): Add msvc-inval. * doc/posix-functions/dup2.texi: Mention problem on MSVC. New module 'msvc-inval'. * lib/msvc-inval.h: New file. * lib/msvc-inval.c: New file. * m4/msvc-inval.m4: New file. * modules/msvc-inval: New file. 2011-09-17 Bruno Haible Tests for module 'pclose'. * modules/pclose-tests: New file. New module 'pclose'. * lib/stdio.in.h (pclose): New declaration. * lib/pclose.c: New file. * m4/pclose.m4: New file. * m4/stdio_h.m4 (gl_STDIO_H): Test whether pclose is declared. (gl_STDIO_H_DEFAULTS): Initialize GNULIB_PCLOSE, HAVE_PCLOSE. * modules/stdio (Makefile.am): Substitute GNULIB_PCLOSE, HAVE_PCLOSE. * modules/pclose: New file. * modules/popen-tests (Depends-on): Add pclose. * modules/popen-safer-tests (Depends-on): Likewise. * doc/posix-functions/pclose.texi: Mention the new module. 2011-09-17 Bruno Haible popen: Support for MSVC. * lib/stdio.in.h (popen): Declare it if the system lacks this function. * lib/popen.c (popen): Provide alternate definition for native Windows. * m4/popen.m4 (gl_FUNC_POPEN): Test if popen exists. Set HAVE_POPEN. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize HAVE_POPEN. * modules/popen (Depends-on, configure.ac): Update condition. * modules/stdio (Makefile.am): Substitute HAVE_POPEN. * doc/posix-functions/popen.texi: Mention that the MSVC problem is fixed. 2011-09-17 Bruno Haible isnanl, isnand, isnanf: Work around MSVC bug. * lib/isnan.c (FUNC): Use alternate ways of computing NaN and Infinity. 2011-09-17 Bruno Haible sys_socket tests: Fix recent mistake. * tests/test-sys_socket.c (t1): Avoid collision of identifiers. 2011-09-17 Bruno Haible putenv: Support for MSVC. * modules/putenv (Depends-on): Add environ. * lib/putenv.c (environ): Disable declaration. * lib/unistd.in.h: Update comment. 2011-09-17 Bruno Haible math: Avoid macro redefinition warnings on MSVC. * lib/math.in.h (ceilf, ceill, floorf, floorl, frexpl, ldexpl): Undefine before redefining. 2011-09-17 Bruno Haible doc: Mention functions which are declared as macros. * doc/posix-functions/*[fl].texi: Mention that some functions are defined as macros with arguments only. 2011-09-17 Bruno Haible Add dependencies to new dirent related modules. * modules/backupfile (Depends-on): Add opendir, readdir, closedir. * modules/fts (Depends-on): Likewise. * modules/glob (Depends-on): Likewise. * modules/savedir (Depends-on): Likewise. * modules/scandir (Depends-on): Likewise. * modules/dirent-safer (Depends-on): Add opendir, closedir. * modules/fdopendir (Depends-on): Add opendir. 2011-09-17 Bruno Haible inet_pton: Support for MSVC on Windows Vista or newer. * lib/arpa_inet.in.h (inet_pton): Also consider REPLACE_INET_PTON. * lib/inet_pton.c (rpl_inet_pton): Use a simple wrapper if HAVE_DECL_INET_PTON is defined. * m4/inet_pton.m4 (gl_FUNC_INET_PTON): Invoke gl_PREREQ_SYS_H_WINSOCK2. On platforms with , test whether inet_pton is declared in . If so, arrange to replace it. * m4/arpa_inet_h.m4 (gl_ARPA_INET_H_DEFAULTS): Initialize REPLACE_INET_PTON. * modules/arpa_inet (Makefile.am): Substitute REPLACE_INET_PTON. * modules/inet_pton (Files): Add m4/sys_socket_h.m4. (Depends-on, configure.ac): Update condition. * doc/posix-functions/inet_pton.texi: Mention the MSVC problem. 2011-09-17 Bruno Haible inet_ntop: Support for MSVC on Windows Vista or newer. * lib/arpa_inet.in.h (inet_ntop): Also consider REPLACE_INET_NTOP. * lib/inet_ntop.c (rpl_inet_ntop): Use a simple wrapper if HAVE_DECL_INET_NTOP is defined. * m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): Invoke gl_PREREQ_SYS_H_WINSOCK2. On platforms with , test whether inet_ntop is declared in . If so, arrange to replace it. * m4/arpa_inet_h.m4 (gl_ARPA_INET_H_DEFAULTS): Initialize REPLACE_INET_NTOP. * modules/arpa_inet (Makefile.am): Substitute REPLACE_INET_NTOP. * modules/inet_ntop (Files): Add m4/sys_socket_h.m4. (Depends-on, configure.ac): Update condition. * doc/posix-functions/inet_ntop.texi: Mention the MSVC problem. 2011-09-16 Eric Blake test-fsync: yet another enhancement * tests/test-fsync.c (main): Also test behavior on read-only text file. 2011-09-16 Bruno Haible Enhance fsync, fdatasync tests. * tests/test-fsync.c (main): Test both STDIN_FILENO and STDOUT_FILENO. * tests/test-fdatasync.c (main): Likewise. 2011-09-16 Bruno Haible Support for MSVC compiler: Ensure mode_t gets defined. * m4/fcntl_h.m4 (gl_FCNTL_H): Require AC_TYPE_MODE_T. * m4/spawn_h.m4 (gl_SPAWN_H): Likewise. * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Likewise. * m4/sys_types_h.m4 (gl_SYS_TYPES_H): Likewise. * tests/test-fcntl-h.c: Check that mode_t is defined. * tests/test-sys_stat.c: Likewise. * tests/test-sys_types.c: Likewise. * doc/posix-headers/fcntl.texi: Mention the missing mode_t problem. * doc/posix-headers/sys_stat.texi: Likewise. * doc/posix-headers/sys_types.texi: Likewise. 2011-09-16 Bruno Haible sys_stat: Support for MSVC. * lib/sys_stat.in.h (S_IFIFO): Define to _S_IFIFO if that exists. * tests/test-sys_stat.c: Don't assume that S_IFBLK exists. * doc/posix-headers/sys_stat.texi: Mention missing S_IFIFO, S_IFBLK on MSVC. 2011-09-16 Bruno Haible Support for MSVC compiler: Ensure off_t gets defined. * lib/unistd.in.h: Include . * tests/test-fcntl-h.c: Check that off_t is defined. * tests/test-sys_stat.c: Likewise. * tests/test-sys_types.c: Likewise. 2011-09-16 Eric Blake fdatasync: port to Solaris * m4/fdatasync.m4 (gl_FUNC_FDATASYNC): Set LIB_FDATASYNC. * modules/fdatasync (Link): Document it. * modules/fdatasync-tests (test_fdatasync_LDADD): Link with it. fdatasync: port to MacOS X 10.7 * m4/fdatasync.m4 (gl_FUNC_FDATASYNC): Check for present but not declared. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Another default. * modules/unistd (Makefile.am): Substitute it. * lib/unistd.in.h (fdatasync): Declare on MacOS. * doc/posix-functions/fdatasync.texi (fdatasync): Document it. fdatasync: minor improvements * modules/fdatasync (Depends-on): Add condition for fsync. * lib/fdatasync.c (fdatasync): Add comment. * tests/test-unistd-c++.cc: Test fdatasync. unistd: update refs to newer POSIX * lib/unistd.in.h: Prefer POSIX 2008 over 2001. Suggested by Bruno Haible. fdatasync: new module * modules/fsync (Description): Document difference to fdatasync. * modules/fdatasync: New module. * m4/fdatasync.m4 (gl_FUNC_FDATASYNC): New file. * lib/fdatasync.c (fdatasync): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H, gl_UNISTD_H_DEFAULTS): Set up defaults. * modules/unistd (Makefile.am): Set witnesses. * lib/unistd.in.h (fdatasync): Declare. * MODULES.html.sh: Document it. * doc/posix-functions/fdatasync.texi (fdatasync): Likewise. * modules/fdatasync-tests: New test. * tests/test-fdatasync.c: Likewise. 2011-09-16 Eric Blake test-fsync: enhance tests * modules/fsync-tests (Depends-on): Add errno, for mingw. * tests/test-fsync.c (main): Enhance test. 2011-09-15 Bruno Haible Support for MSVC compiler: Ensure ssize_t gets defined. * doc/posix-headers/sys_types.texi: Mention the missing ssize_t problem. * doc/posix-headers/stdio.texi: Likewise. * modules/stdio (Depends-on): Add ssize_t. * modules/sys_socket (Depends-on): Likewise. * modules/sys_types (Depends-on): Likewise. * modules/sys_uio (Depends-on): Likewise. * modules/unistd (Depends-on): Likewise. * tests/test-sys_socket.c: Check that size_t and ssize_t are defined. * tests/test-sys_types.c: Check that ssize_t is defined. 2011-09-14 Bruno Haible Avoid using #, the m4 comment starter character, near brackets. * m4/absolute-header.m4 (gl_ABSOLUTE_HEADER_ONE): Use |, not #, as delimiter character in sed expressions. * m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): Likewise. Suggested by Eric Blake. Properly quote AC_CHECK_DECLS' 4th argument. * m4/c-stack.m4 (gl_PREREQ_C_STACK): Double-quote AC_CHECK_DECLS' 4th argument. * m4/ceilf.m4 (gl_FUNC_CEILF): Likewise. * m4/ceill.m4 (gl_FUNC_CEILL): Likewise. * m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise. * m4/floorf.m4 (gl_FUNC_FLOORF): Likewise. * m4/floorl.m4 (gl_FUNC_FLOORL): Likewise. * m4/fnmatch.m4 (gl_PREREQ_FNMATCH): Likewise. * m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Likewise. * m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME): Likewise. * m4/gethrxtime.m4 (gl_GETHRXTIME): Likewise. * m4/getpass.m4 (gl_PREREQ_GETPASS): Likewise. * m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): Likewise. * m4/inet_pton.m4 (gl_FUNC_INET_PTON): Likewise. * m4/isfinite.m4 (gl_ISFINITE): Likewise. * m4/isinf.m4 (gl_ISINF): Likewise. * m4/logb.m4 (gl_FUNC_LOGB): Likewise. * m4/readutmp.m4 (gl_READUTMP): Likewise. * m4/regex.m4 (gl_PREREQ_REGEX): Likewise. * m4/round.m4 (gl_FUNC_ROUND): Likewise. * m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise. * m4/roundl.m4 (gl_FUNC_ROUNDL): Likewise. * m4/signbit.m4 (gl_SIGNBIT): Likewise. * m4/sleep.m4 (gl_FUNC_SLEEP): Likewise. * m4/strsignal.m4 (gl_PREREQ_STRSIGNAL): Likewise. * m4/trunc.m4 (gl_FUNC_TRUNC): Likewise. * m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise. * m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise. * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF): Likewise. * m4/wctob.m4 (gl_FUNC_WCTOB): Likewise. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise. Reported by Eric Blake. Properly quote AC_CHECK_DECL's 4th argument. * m4/acosl.m4 (gl_FUNC_ACOSL): Double-quote AC_CHECK_DECL's 4th argument. * m4/argp.m4 (gl_ARGP): Likewise. * m4/asinl.m4 (gl_FUNC_ASINL): Likewise. * m4/atanl.m4 (gl_FUNC_ATANL): Likewise. * m4/cosl.m4 (gl_FUNC_COSL): Likewise. * m4/expl.m4 (gl_FUNC_EXPL): Likewise. * m4/frexpl.m4 (gl_FUNC_FREXPL, gl_FUNC_FREXPL_NO_LIBM): Likewise. * m4/getloadavg.m4 (gl_GETLOADAVG): Likewise. * m4/ldexpl.m4 (gl_FUNC_LDEXPL): Likewise. * m4/logl.m4 (gl_FUNC_LOGL): Likewise. * m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Likewise. * m4/sinl.m4 (gl_FUNC_SINL): Likewise. * m4/sqrtl.m4 (gl_FUNC_SQRTL): Likewise. * m4/tanl.m4 (gl_FUNC_TANL): Likewise. Reported by Eric Blake. 2011-09-14 Eric Blake opendir: avoid compile warning * lib/opendir.c (includes): Always include errno.h. Reported by Tatsuro MATSUOKA. 2011-09-14 Jim Meyering maint.mk: sc_tight_scope: propagate failure from sub-make * top/maint.mk (sc_tight_scope): Actually initialize and use $fail. Reported by Martin von Gagern. 2011-09-13 Bruno Haible tempname: Support for MSVC. * doc/posix-headers/fcntl.texi: Document the problem with O_ACCMODE on MSVC. * modules/tempname (Depends-on): Add fcntl-h. 2011-09-13 Bruno Haible sys_time: Support for MSVC. * m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Invoke gl_PREREQ_SYS_H_WINSOCK2. When testing for 'struct timeval', also include . * lib/sys_time.in.h: On MSVC, include and hide its function declarations that collide with POSIX. * modules/sys_time (Files): Add m4/sys_socket_h.m4. (Makefile.am): Substitute HAVE_WINSOCK2_H. 2011-09-13 Bruno Haible stat: Support for MSVC. * lib/stat.c: Include pathmax.h. * modules/stat (Depends-on): Add pathmax. pathmax: Support for native Windows. * lib/pathmax.h (PATH_MAX): Define to 260 on native Windows. 2011-09-12 Bruno Haible New modules 'opendir', 'readdir', 'rewinddir', 'closedir'. * lib/dirent.in.h (struct dirent): New type. (DT_UNKNOWN, DT_FIFO, DT_CHR, DT_DIR, DT_BLK, DT_REG, DT_LNK, DT_SOCK, DT_WHT): New macros. (DIR): New type. (opendir, closedir): Declare only if the module 'opendir' is enabled. (readdir, rewinddir): New declarations. * lib/dirent-private.h: New file. * lib/opendir.c: New file. * lib/readdir.c: New file. * lib/rewinddir.c: New file. * lib/closedir.c: New file. * lib/fchdir.c (rpl_closedir, rpl_opendir): Remove functions. * m4/opendir.m4: New file. * m4/readdir.m4: New file. * m4/rewinddir.m4: New file. * m4/closedir.m4: New file. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't set REPLACE_OPENDIR, REPLACE_CLOSEDIR here. * m4/dirent_h.m4 (gl_DIRENT_H): Also check whether closedir, opendir, readdir, rewinddir are declared. (gl_DIRENT_H_DEFAULTS): Initialize GNULIB_OPENDIR, GNULIB_READDIR, GNULIB_REWINDDIR, GNULIB_CLOSEDIR, HAVE_OPENDIR, HAVE_READDIR, HAVE_REWINDDIR, HAVE_CLOSEDIR. * modules/dirent (Makefile.am): Substitute GNULIB_OPENDIR, GNULIB_READDIR, GNULIB_REWINDDIR, GNULIB_CLOSEDIR, HAVE_OPENDIR, HAVE_READDIR, HAVE_REWINDDIR, HAVE_CLOSEDIR. * modules/opendir: New file. * modules/readdir: New file. * modules/rewinddir: New file. * modules/closedir: New file. * doc/posix-functions/opendir.texi: Mention the 'opendir' module. * doc/posix-functions/readdir.texi: Mention the 'readdir' module. * doc/posix-functions/rewinddir.texi: Mention the 'rewinddir' module. * doc/posix-functions/closedir.texi: Mention the 'closedir' module. * NEWS: Mention the 'fchdir' change. 2011-09-11 Bruno Haible asm-underscore.m4: Support for MSVC. * m4/asm-underscore.m4 (gl_C_ASM): New macro. (gl_ASM_SYMBOL_PREFIX): Require it. Use its results. 2011-09-11 Reuben Thomas Doc about crypt functions. * doc/posix-functions/crypt.texi: Expand range of glibc versions needing for _GNU_SOURCE to get crypt. * doc/posix-functions/encrypt.texi: Likewise. * doc/posix-functions/setkey.texi: Likewise. 2011-09-11 Bruno Haible doc: Update regarding MSVC 9. * doc/gnulib-intro.texi (Target Platforms): Classify MSVC as "rarely tested". * doc/posix-functions/*.texi: Update with info about MSVC 9. * doc/posix-headers/*.texi: Likewise. * doc/pastposix-functions/*.texi: Likewise. * doc/glibc-functions/*.texi: Likewise. * doc/glibc-headers/*.texi: Likewise. 2011-09-11 Bruno Haible unistd et al.: Don't assume exists. * m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Don't include if it does not exist. * m4/environ.m4 (gl_ENVIRON): Don't include if it does not exist. But include . * m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): If does not exist, include and instead. Don't test symbolink links if symlink() does not exist. * m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): If does not exist, include instead. * m4/free.m4 (gl_FUNC_FREE): Assume free(NULL) works on native Windows. * m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): If does not exist, include instead. * m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): Likewise. * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise. * m4/lseek.m4 (gl_FUNC_LSEEK): If does not exist, include instead. * m4/rename.m4 (gl_FUNC_RENAME): Assume rename() manages hard links correctly if the system does not have hard links. * m4/rmdir.m4 (gl_FUNC_RMDIR): If does not exist, include instead. * m4/unistd_h.m4 (gl_UNISTD_H): If does not exist, bypass it when looking for function declarations. * m4/unlink.m4 (gl_FUNC_UNLINK): If does not exist, include and instead. * doc/posix-headers/unistd.texi: More details about MSVC problem. 2011-09-11 Bruno Haible strcase: Support for MSVC. * modules/strcase (Status, Notice): Remove obsoletion mark. * doc/posix-functions/strcasecmp.texi: Mention MSVC problem. * doc/posix-functions/strncasecmp.texi: Likewise. strings: Don't assume exists. * lib/strings.in.h: Include only if HAVE_STRINGS_H is 1. * m4/strings_h.m4 (gl_HEADER_STRINGS_H_BODY): Set HAVE_STRINGS_H. * modules/strings (Makefile.am): Substitute HAVE_STRINGS_H. * doc/posix-headers/strings.texi: Mention the MSVC problem. 2011-09-11 Bruno Haible dirent: Don't assume exists. * lib/dirent.in.h: Include only if HAVE_DIRENT_H is 1. * m4/dirent_h.m4 (gl_DIRENT_H): Set HAVE_DIRENT_H. * modules/dirent (Makefile.am): Substitute HAVE_DIRENT_H. * doc/posix-headers/dirent.texi: Mention the MSVC problem. 2011-09-11 Bruno Haible Fix wint_t on MSVC. * lib/wchar.in.h (wint_t): On MSVC, override it. * lib/wctype.in.h (wint_t): Likewise. * m4/stdint.m4 (gl_STDINT_TYPE_PROPERTIES): Override BITSIZEOF_WINT_T on MSVC. * doc/posix-headers/wchar.texi: Mention the problem with wint_t on MSVC. * doc/posix-headers/wctype.texi: Likewise. 2011-09-11 Bruno Haible sys_types: Fix typo. * lib/sys_types.in.h: Fix typo in comment. Reported by Paul Eggert. Support for MSVC compiler: Ensure size_t gets defined. * modules/strings (Depends-on): Add 'sys_types'. * modules/sys_uio (Depends-on): Likewise. * lib/sys_uio.in.h: Update comment. C++ tests for module 'sys_types'. * modules/sys_types-c++-tests: New file. * tests/test-sys_types-c++.cc: New file. Tests for module 'sys_types'. * modules/sys_types-tests: New file. * tests/test-sys_types.c: New file. New module 'sys_types'. * lib/sys_types.in.h: New file. * m4/sys_types_h.m4: New file. * modules/sys_types: New file. * doc/posix-headers/sys_types.texi: Mention the new module and the size_t problem on MSVC 9. 2011-09-11 Bruno Haible Support for MSVC compiler: Avoid division by a literal 0. * lib/math.in.h (NAN): Define through a function call also on MSVC. * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Divide by 'zero' instead of 0.0. * m4/printf.m4 (gl_PRINTF_INFINITE, gl_PRINTF_DIRECTIVE_A, gl_PRINTF_DIRECTIVE_F, gl_PRINTF_FLAG_ZERO): Likewise. (gl_PRINTF_INFINITE_LONG_DOUBLE): Divide by 'zeroL' instead of 0.0L. * tests/infinity.h: New file. * tests/nan.h (NaNf, NaNd, NaNl): Define through a function call also on MSVC. * tests/test-ceilf1.c: Include infinity.h. (main): Use Infinityf. * tests/test-ceil1.c: Include infinity.h. (main): Use Infinityd. * tests/test-ceill.c: Include infinity.h. (main): Use Infinityl. * tests/test-dprintf-posix.c: Include infinity.h. (test_function): Use Infinityd. * tests/test-floorf1.c: Include infinity.h. (main): Use Infinityf. * tests/test-floor1.c: Include infinity.h. (main): Use Infinityd. * tests/test-floorl.c: Include infinity.h. (main): Use Infinityl. * tests/test-fprintf-posix.c: Include infinity.h. (test_function): Use Infinityd. * tests/test-frexp.c: Include infinity.h. (main): Use Infinityd. * tests/test-frexpl.c: Include infinity.h. (main): Use Infinityl. * tests/test-isfinite.c: Include infinity.h. (test_isfinitef): Use Infinityf. (test_isfinited): Use Infinityd. (test_isfinitel): Use Infinityl. * tests/test-isinf.c: Include infinity.h. (test_isinff): Use Infinityf. (test_isinfd): Use Infinityd. (test_isinfl): Use Infinityl. * tests/test-isnan.c: Include infinity.h. (test_float): Use Infinityf. (test_double): Use Infinityd. (test_long_double): Use Infinityl. * tests/test-isnanf.h: Include infinity.h. (main): Use Infinityf. * tests/test-isnand.h: Include infinity.h. (main): Use Infinityd. * tests/test-isnanl.h: Include infinity.h. (main): Use Infinityl. * tests/test-ldexpl.c: Include infinity.h. (main): Use Infinityl. * tests/test-printf-posix.h: Include infinity.h. (test_function): Use Infinityd. * tests/test-roundf1.c: Include infinity.h. (main): Use Infinityf. * tests/test-round1.c: Include infinity.h. (main): Use Infinityd. * tests/test-roundl.c: Include infinity.h. (main): Use Infinityl. * tests/test-signbit.c: Include infinity.h. (test_signbitf): Use Infinityf. (test_signbitd): Use Infinityd. (test_signbitl): Use Infinityl. * tests/test-snprintf-posix.h: Include infinity.h. (test_function): Use Infinityd, Infinityl. * tests/test-sprintf-posix.h: Include infinity.h. (test_function): Use Infinityd, Infinityl. * tests/test-truncf1.c: Include infinity.h. (main): Use Infinityf. * tests/test-trunc1.c: Include infinity.h. (main): Use Infinityd. * tests/test-truncl.c: Include infinity.h. (main): Use Infinityl. * tests/test-vasnprintf-posix.c: Include infinity.h. (test_function): Use Infinityd, Infinityl. * tests/test-vasprintf-posix.c: Include infinity.h. (test_function): Use Infinityd, Infinityl. * modules/ceilf-tests (Files): Add tests/infinity.h. * modules/ceil-tests (Files): Likewise. * modules/ceill-tests (Files): Likewise. * modules/dprintf-posix-tests (Files): Likewise. * modules/floorf-tests (Files): Likewise. * modules/floor-tests (Files): Likewise. * modules/floorl-tests (Files): Likewise. * modules/fprintf-posix-tests (Files): Likewise. * modules/frexp-tests (Files): Likewise. * modules/frexp-nolibm-tests (Files): Likewise. * modules/frexpl-tests (Files): Likewise. * modules/frexpl-nolibm-tests (Files): Likewise. * modules/isfinite-tests (Files): Likewise. * modules/isinf-tests (Files): Likewise. * modules/isnan-tests (Files): Likewise. * modules/isnanf-tests (Files): Likewise. * modules/isnanf-nolibm-tests (Files): Likewise. * modules/isnand-tests (Files): Likewise. * modules/isnand-nolibm-tests (Files): Likewise. * modules/isnanl-tests (Files): Likewise. * modules/isnanl-nolibm-tests (Files): Likewise. * modules/ldexpl-tests (Files): Likewise. * modules/printf-posix-tests (Files): Likewise. * modules/roundf-tests (Files): Likewise. * modules/round-tests (Files): Likewise. * modules/roundl-tests (Files): Likewise. * modules/signbit-tests (Files): Likewise. * modules/snprintf-posix-tests (Files): Likewise. * modules/sprintf-posix-tests (Files): Likewise. * modules/truncf-tests (Files): Likewise. * modules/trunc-tests (Files): Likewise. * modules/truncl-tests (Files): Likewise. * modules/vasnprintf-posix-tests (Files): Likewise. * modules/vasprintf-posix-tests (Files): Likewise. * modules/vdprintf-posix-tests (Files): Likewise. * modules/vfprintf-posix-tests (Files): Likewise. * modules/vprintf-posix-tests (Files): Likewise. * modules/vsnprintf-posix-tests (Files): Likewise. * modules/vsprintf-posix-tests (Files): Likewise. * modules/xprintf-posix-tests (Files): Likewise. 2011-09-11 Bruno Haible Ensure pid_t gets defined. * m4/fcntl_h.m4 (gl_FCNTL_H): Require AC_TYPE_PID_T. * m4/sched_h.m4 (gl_SCHED_H): Likewise. * m4/signal_h.m4 (gl_SIGNAL_H): Likewise. * m4/spawn_h.m4 (gl_SPAWN_H): Likewise. * m4/sys_wait_h.m4 (gl_SYS_WAIT_H): Likewise. * m4/termios_h.m4 (gl_TERMIOS_H): Likewise. * m4/time_h.m4 (gl_HEADER_TIME_H_BODY): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H): Likewise. * tests/test-fcntl-h.c: Check that pid_t is defined. * tests/test-sched.c: Likewise. * tests/test-termios.c: Likewise. * tests/test-time.c: Likewise. * doc/posix-headers/fcntl.texi: Mention lack of pid_t on MSVC platform. * doc/posix-headers/signal.texi: Likewise. * doc/posix-headers/sys_types.texi: Likewise. * doc/posix-headers/time.texi: Likewise. 2011-09-11 Bruno Haible acl: Fix compilation on Solaris 10 (older version). * lib/file-has-acl.c (acl_ace_nontrivial): Use NEW_ACE_EVERYONE instead of ACE_EVERYONE. * lib/set-mode-acl.c (qset_acl): Likewise. Reported by Christian Jullien . 2011-09-10 Bruno Haible iconv, unsetenv: Add support for MSVC compiler. * m4/iconv.m4 (AM_ICONV): Use ISO C declaration syntax on MSVC. * m4/setenv.m4 (gl_FUNC_UNSETENV): Drop support for K&R C compilers. 2011-09-10 Bruno Haible *printf: Add support for MSVC compiler. * m4/printf.m4 (gl_PRINTF_DIRECTIVE_N): On MSVC, install a handler that handles the exception caused by the %n directive. When cross-compiling, guess no on native Windows. (gl_SNPRINTF_TRUNCATION_C99, gl_SNPRINTF_RETVAL_C99, gl_SNPRINTF_DIRECTIVE_N, gl_SNPRINTF_SIZE1): When snprintf is missing, emulate it through vsnprintf. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Update comment. * doc/posix-functions/dprintf.texi: Update documentation regarding MSVC 9. * doc/posix-functions/fprintf.texi: Likewise. * doc/posix-functions/printf.texi: Likewise. * doc/posix-functions/snprintf.texi: Likewise. * doc/posix-functions/sprintf.texi: Likewise. * doc/posix-functions/swprintf.texi: Likewise. * doc/posix-functions/vdprintf.texi: Likewise. * doc/posix-functions/vfprintf.texi: Likewise. * doc/posix-functions/vprintf.texi: Likewise. * doc/posix-functions/vsnprintf.texi: Likewise. * doc/posix-functions/vsprintf.texi: Likewise. * doc/glibc-functions/asprintf.texi: Likewise. * doc/glibc-functions/obstack_printf.texi: Likewise. * doc/glibc-functions/obstack_vprintf.texi: Likewise. * doc/glibc-functions/vasprintf.texi: Likewise. 2011-09-10 Bruno Haible nocrash: Add support for native Windows. * m4/nocrash.m4 (GL_NOCRASH): Avoid a crash also on native Windows. 2011-09-10 Michael Goffioul (tiny change) Bruno Haible absolute-header, include-next: Add support for MSVC compiler. * m4/absolute-header.m4 (gl_ABSOLUTE_HEADER_ONE): Require AC_CANONICAL_HOST. On native Windows, recognize also backslash as directory separator in #line directives. * m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): On native Windows, recognize also backslash as directory separator in #line directives. 2011-09-08 Jim Meyering maint.mk: mark the post-release commit log with "maint: " prefix * top/maint.mk (emit-commit-log): Add "maint: " prefix to the one-line commit-log summary. 2011-09-08 Reuben Thomas Bruno Haible Doc about crypt functions. * doc/posix-functions/crypt.texi: Mention need for _GNU_SOURCE on glibc systems. * doc/posix-functions/encrypt.texi: Likewise. * doc/posix-functions/setkey.texi: Likewise. 2011-09-08 Simon Josefsson * lib/gc.h: Fix copyright header. 2011-09-07 Bruno Haible pthread: Determine $(LIB_PTHREAD) correctly on OSF/1 5.1. * m4/pthread.m4 (gl_PTHREAD_CHECK): Use AC_CACHE_CHECK and AC_LINK_IFELSE instead of AC_SEARCH_LIBS. 2011-09-07 Bruno Haible openat: Work around compilation error with OSF/1 5.1 DTK cc. * lib/fopen.c: Use different syntax for include of . * lib/freopen.c: Likewise. * lib/fstatat.c: Use different syntax for include of . * lib/lstat.c: Likewise. * lib/stat.c: Likewise. * lib/open.c: Use different syntax for include of . * lib/openat.c: Include fcntl.h again, explicitly. 2011-09-04 J.T. Conklin parse-datetime: document the newly accepted format * doc/parse-datetime.texi (Combined date and time of day items): New section. 2011-09-06 Bruno Haible acl: Fix a test failure on newer Solaris 10 with ZFS. * tests/test-sameacls.c (main): Interpret acl GETACLCNT failure with ENOSYS as no ACL. Reported by Jim Meyering. 2011-09-06 Bruno Haible acl: Update for AIX >= 5.3 with NFS. * lib/file-has-acl.c (file_has_acl): Interpret aclx_get failure with ENOSYS as no ACL. acl: Fix a test failure on AIX >= 5.3 with NFS. * tests/test-sameacls.c (main): Interpret aclx_get failure with ENOSYS as no ACL. 2011-09-06 Bruno Haible acl: Fix a test failure on IRIX 6.5 with NFS. * lib/acl-internal.h (MODE_INSIDE_ACL): Define to 0 on IRIX. * lib/set-mode-acl.c (qset_acl): Test !HAVE_ACL_TYPE_EXTENDED instead of MODE_INSIDE_ACL. If !MODE_INSIDE_ACL, do a chmod_or_fchmod always. * lib/copy-acl.c (qcopy_acl): Likewise. 2011-09-05 Paul Eggert openat: port to AIX 7.1 with large files AIX 7.1 does a "#define openat open64at" if large files are in use, so we can't simply #undef openat. Use the orig_openat trick (similar to orig_open in lib/open.c) to work around the problem. Problem reported by Kevin Brott for GNU tar, in the thread containing . * lib/openat.c (__need_system_fcntl_h): Define first. Include and before undefining. (orig_openat) [HAVE_OPENAT]: New inline function. (openat) [HAVE_OPENAT]: Do not undef. (rpl_openat): Use orig_openat, not openat. 2011-09-05 Joachim Schmitz (tiny change) Bruno Haible acl: Avoid errors on NonStop Kernel. * lib/file-has-acl.c (file_has_acl) [NonStop Kernel]: Ignore ENOSYS and ENOTSUP errors. 2011-09-05 Bruno Haible acl: Clean up Solaris code. * lib/acl-internal.h: Remove no-op #if. * lib/file-has-acl.c: Likewise. * lib/set-mode-acl.c (qset_acl): Remove unused Solaris code. * lib/copy-acl.c (qcopy_acl): Likewise. 2011-09-05 Bruno Haible acl: Fix a bug with NFSv4 ACLs on Solaris 10 (newer version) in binaries built on the original Solaris 10. * lib/file-has-acl.c (file_has_acl): ACLs with 4..6 ACEs can be trivial. 2011-09-05 Bruno Haible acl: Improve support of NFSv4 ACLs on Solaris 10 (newer version). * lib/acl-internal.h (acl_nontrivial): Declare also on newer Solaris 10. * lib/file-has-acl.c (acl_nontrivial): Define also on newer Solaris 10. (acl_ace_nontrivial): Likewise. Recognize the trivial ACLs with 6 ACEs. * lib/copy-acl.c (qcopy_acl): On newer Solaris 10, use acl or facl instead of acl_get, facl_get, acl_set, facl_set. 2011-09-05 Bruno Haible copy-file: Try unit tests on more file systems. * tests/test-copy-file-1.sh: New file. * tests/test-copy-file-2.sh: New file. * modules/copy-file-tests (Files): Add them. (Makefile.am): Add them to TESTS. acl: Try unit tests on more file systems. * tests/test-file-has-acl-1.sh: New file. * tests/test-file-has-acl-2.sh: New file. * tests/test-set-mode-acl-1.sh: New file. * tests/test-set-mode-acl-2.sh: New file. * tests/test-copy-acl-1.sh: New file. * tests/test-copy-acl-2.sh: New file. * modules/acl-tests (Files): Add them. (Makefile.am): Add them to TESTS. 2011-09-04 Bruno Haible acl: Improve support of NFSv4 ACLs on Solaris 10 (newer version). * lib/acl-internal.h (ACE_*, NEW_ACE_*): Define also on newer Solaris 10. (OLD_ALLOW, OLD_DENY): New macros. (NEW_ACE_ACCESS_ALLOWED_ACE_TYPE): Renamed from ACE_ACCESS_ALLOWED_ACE_TYPE. (NEW_ACE_ACCESS_DENIED_ACE_TYPE): Renamed from ACE_ACCESS_DENIED_ACE_TYPE. (OLD_ACE_OWNER, OLD_ACE_GROUP, OLD_ACE_OTHER): New macros. (NEW_ACE_EXECUTE): Fix value. (NEW_ACE_APPEND_DATA, NEW_ACE_READ_NAMED_ATTRS, NEW_ACE_WRITE_NAMED_ATTRS, NEW_ACE_DELETE_CHILD, NEW_ACE_READ_ATTRIBUTES, NEW_ACE_WRITE_ATTRIBUTES, NEW_ACE_DELETE, NEW_ACE_READ_ACL, NEW_ACE_WRITE_ACL, NEW_ACE_WRITE_OWNER, NEW_ACE_SYNCHRONIZE): New macros. * lib/set-mode-acl.c (qset_acl): On newer Solaris 10, use acl or facl instead of acl_fromtext, acl_set, facl_set. Fixes a coreutils/tests/cp/perm failure. 2011-09-03 Paul Eggert openat: test for fstatat (..., 0) bug Further testing with tar suggests that fstatat (..., 0) does not work in general, on AIX 7.1; see . So, give up entirely on AIX 7.1's fstatat, and fall back on our replacement fstatat (which is what older AIX releases were using anyway). * lib/fstatat.c (fstatat) [HAVE_FSTATAT]: Do not undef. The only use is now changed to orig_fstatat. This was probably the right thing to do anyway. (FSTATAT_AT_FDCWD_0_BROKEN): Remove; no longer used. (rpl_fstatat) [FSTATAT_ZERO_FLAG_BROKEN]: Remove. (rpl_fstatat): Simplify, assuming !FSTATAT_ZERO_FLAG_BROKEN. (AT_FUNC_NAME) [FSTATAT_ZERO_FLAG_BROKEN]: Now rpl_fstatat. * m4/openat.m4 (gl_FUNC_FSTATAT): Test for the more-general bug and define FSTATAT_ZERO_FLAG_BROKEN, not FSTATAT_AT_FDCWD_0_BROKEN, if the bug is found. openat: test for fstatat (AT_FDCWD, ..., 0) bug This tests for another fstatat bug on AIX 7.1: fstatat (AT_FDCWD, ..., 0) does not work. See . * lib/fstatat.c (FSTATAT_AT_FDCWD_0_BROKEN) (LSTAT_FOLLOWS_SLASHED_SYMLINK): Default to 0. (rpl_fstatat): Adjust so that it works around either (or both) bugs if present. * m4/openat.m4 (gl_FUNC_FSTATAT): Test for this fstatat bug. 2011-09-03 Karl Berry * doc/regex.texi (Character Class Operators): Avoid literal ":" in index entries. 2011-09-02 Bruno Haible Allow the user to override the choice of AR, ARFLAGS, RANLIB. * m4/gnulib-common.m4 (gl_PROG_AR_RANLIB): Don't override the given values of AR, ARFLAGS, RANLIB. Reported by John W. Eaton for Octave. 2011-09-02 Bruno Haible Find 'ar' program that fits with --host argument. * m4/gnulib-common.m4 (gl_PROG_AR_RANLIB): Use AC_CHECK_TOOL. 2011-09-02 Bruno Haible tests: init.sh: Support any non-GNU diff. * tests/init.sh (compare): If "diff -c" is supported but "diff -u" is not, use "diff -c". Useful on AIX 6.1, HP-UX 11.31, OSF/1 5.1, Solaris 8. 2011-09-02 Bruno Haible tests: init.sh: work also with any non-GNU diff that supports -u * tests/init.sh: Relax check for diff -u support. Rather than checking for GNU diff via --version, simply check for support for -u itself. Useful at least on OpenBSD 4.9, AIX 7.1, IRIX 6.5, and Solaris 10. 2011-09-01 Bruno Haible strtoimax, strtoumax: Document problem on HP-UX 11. * doc/posix-functions/strtoimax.texi: Mention HP-UX 11.11 problem. * doc/posix-functions/strtoumax.texi: Likewise. 2011-09-01 Bruno Haible strtoumax: Avoid link error on OSF/1 with DTK cc. * m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Always test whether strtoumax is defined as a function. * modules/strtoumax (Depends-on, configure.ac): Test only whether strtoumax is defined, not whether it is declared. 2011-09-01 Bruno Haible strtoimax: Avoid link error on OSF/1 with DTK cc. * m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Always test whether strtoimax is defined as a function. * modules/strtoimax (Depends-on, configure.ac): Test only whether strtoimax is defined, not whether it is declared. 2011-09-01 Bruno Haible imaxdiv: Avoid link error on OSF/1 with DTK cc. * m4/imaxdiv.m4 (gl_FUNC_IMAXDIV): Also test whether imaxdiv is defined as a function. * modules/imaxdiv (configure.ac): Test whether imaxdiv is defined, not whether it is declared. 2011-09-01 Bruno Haible imaxabs: Avoid link error on OSF/1 with DTK cc. * m4/imaxabs.m4 (gl_FUNC_IMAXABS): Also test whether imaxabs is defined as a function. * modules/imaxabs (configure.ac): Test whether imaxabs is defined, not whether it is declared. 2011-09-01 Bruno Haible Tests for module 'strtoumax'. * modules/strtoumax-tests: New file. * tests/test-strtoumax.c: New file. Tests for module 'strtoimax'. * modules/strtoimax-tests: New file. * tests/test-strtoimax.c: New file. Tests for module 'imaxdiv'. * modules/imaxdiv-tests: New file. * tests/test-imaxdiv.c: New file. Tests for module 'imaxabs'. * modules/imaxabs-tests: New file. * tests/test-imaxabs.c: New file. 2011-09-01 Bruno Haible pthread: Determine $(LIB_PTHREAD) correctly on IRIX 6.5. * m4/pthread.m4 (gl_PTHREAD_CHECK): Check for pthread_join, not pthread_create. 2011-09-01 Paul Eggert openat: work around AIX 7.1 fstatat issue This should fix the problem that was not properly fixed in the previous change, dated 2011-08-30. * lib/fstatat.c: Include twice, the first with __need_system_stat_h defined. (orig_fstatat) [HAVE_FSTATAT]: New function. (rpl_fstatat): Go back to the old way of doing things, except call orig_fstatat instead of fstatat. * m4/openat.m4 (gl_FUNC_FSTATAT): Remove unnecessary check for openat. Remove unnecessary check whether fstatat fills in st_size etc. 2011-09-01 Bruno Haible sys_select: Avoid a syntax error regarding timespec_t on IRIX 6.5. * lib/sys_select.in.h [__sgi]: When included from , just include the system's header. 2011-08-31 Jim Meyering tests: avoid spurious assertion failure in test-float.c on ppc64 * tests/test-float.c (test_long_double): Comment out an assertion, LDBL_MIN_EXP <= DBL_MIN_EXP, that is failing at least on PowerPC-64 with gcc-4.4.4. maint: indent with spaces, not TABs I need to get in the habit of running gnulib's "make check". Both of these would have been caught. * m4/largefile.m4: Indent with spaces, not TABs. * lib/parse-datetime.y (iso_8601_time): Likewise. Spotted by Pádraig Brady. test-parse-datetime.c: accommodate a relatively strict gcc warning * tests/test-parse-datetime.c (gmt_offset): Declare function "static", to avoid a warning from gcc's -Werror=missing-declarations. Insert a few spaces-before-funcall-parenthesis. 2011-08-17 J.T. Conklin parse-datetime: accept ISO 8601 date and time rep with "T" separator The parser now accepts ISO 8601 date-time strings with "T" as the separator. It has long parsed dates like "2004-02-29 16:21:42" with a space between the date and time strings. Now it also parses "2004-02-29T16:21:42" and fractional-second and time-zone-annotated variants like "2004-02-29T16:21:42.333-07:00" * lib/parse-datetime.y: Parse ISO 8601 extended date and time of day representation using the 'T' separator character. * doc/parse-datetime.texi (General date syntax): replace use of deprecated --iso-8601 option with --rfc-3339 in example of date command output formats that can be parsed. * tests/test-parse-datetime.c (tm_diff): New function, taken from lib/parse-datetime.y. (gmt_offset): New function. (main): Add additional test cases to validate ISO8601 extended date and time of day parsing. 2011-08-31 Bruno Haible freopen: Documentation. * doc/posix-functions/freopen.texi: Document the bug with the NULL file name. Reported by Claudio Bley . 2011-08-31 Claudio Bley (tiny change) freopen: Don't crash if the filename argument is NULL. * lib/freopen.c (rpl_freopen): Don't compare the filename if it is NULL. 2011-08-30 Paul Eggert openat: work around AIX 7.1 fstatat bug Problem reported by Kevin Brott for GNU tar, in the thread containing . * lib/fstatat.c (rpl_fstatat): Do not invoke underlying fstatat if FSTATAT_ST_SIZE_ETC_BROKEN. (fstatat) [FSTATAT_ST_SIZE_ETC_BROKEN && HAVE_FSTATAT]: #define to rpl_fstatat. * m4/openat.m4 (gl_FUNC_FSTATAT): New macro, with the fstatat-relevant part of gl_FUNC_OPENAT. Also, check for the AIX 7.1 bug, and use AC_CHECK_FUNCS_ONCE for fstatat. (gl_FUNC_OPENAT): Use it. Use AC_CHECK_FUNCS_ONCE for fchmodat, mkdirat, openat and unlinkat. 2011-08-30 Bruno Haible Avoid endless recursions if config.h includes some header files. * lib/fopen.c (__need_FILE): Define already before including config.h. * lib/freopen.c (__need_FILE): Likewise. * lib/open.c (__need_system_fcntl_h): Likewise. * lib/stat.c (__need_system_sys_stat_h): Likewise. * lib/lstat.c (__need_system_sys_stat_h): Likewise. Reported by Michael Goffioul . 2011-08-25 Karl Berry * config/srclist.txt (ylwrap): new try. * build-aux/ylwrap: new file. 2011-08-23 Bruno Haible tmpdir: Use a good default directory on native Windows. * lib/tmpdir.c: Include , pathmax.h. (P_tmpdir): Default to _P_tmpdir on native Windows. (path_search): On native Windows, try the value returned by GetTempPath before trying P_tmpdir. * modules/tmpdir (Depends-on): Add pathmax. Suggested by John Darrington . 2011-08-20 Reuben Thomas doc: fix typo in README-release * top/README-release: Capitalize first word of a sentence. 2011-08-19 Jim Meyering fts: do not exhaust memory when processing million-entry directories Before this change, traversing (via rm -rf, find, du, etc.) an N-entry directory would require about 256*N bytes of memory. Thus, it was easy to construct a directory too large to be processed by any of those tools. With this change, fts' maximum memory utilization is now limited to around 30MB. * lib/fts.c (FTS_MAX_READDIR_ENTRIES): Define. (fts_read): When we've processed the final entry (i.e., when ->fts_link is NULL) and fts_dirp is non-NULL, call fts_build using the parent entry to read any remaining entries. Dispatch depending on what fts_build returns: - NULL+stop, aka failure: stop - NULL otherwise: move up in the dir hierarchy - non-NULL: handle this new entry (fts_build): Declare and use new local, continue_readdir. Prepare to be called from fts_read, when the entries from a partially-read directory have just been exhausted. In that case, we'll skip the opendir and instead use the parent's fts_dirp and derive dir_fd from that. Finally, in the readdir loop, if we read max_entries entries, exit the loop ensuring *not* to call closedir. This is required so that fts_dirp can be reused on a subsequent call. Prompted by Ben England's report of memory exhaustion in find and rm -rf vs. NFS: https://bugzilla.redhat.com/719749. maint: fts: move decl of `dp' down into while loop; split a long line * lib/fts.c (fts_build): No semantic change. fts: add/use new struct member, fts_dirp We are about to use this to manage any directory with too many entries to read all of them into memory at once. To do that, we'll need to save the DIR* pointer in each affected FTSENT struct. * lib/fts_.h: Include . (struct FTSENT) [fts_dirp]: New member. * lib/fts.c (closedir_and_clear): Define. Use it in place of closedir so that we are sure to clear the new fts_dirp member when done with it. (fts_alloc): Initialize the new member. (fts_lfree): Free, if needed. maint: fts: give __opendir2 a new parameter and rename * lib/fts.c (__opendir2): Give it a new parameter, Pdir_fd, rather than surreptitiously using sole caller's "dir_fd". (fts_opendir): Rename from __opendir2. maint: fts.c: remove __opendir2's now-unused parameter, oflag * lib/fts.c (__opendir2): Remove unused parameter, oflag. maint: fts.c: correct off-by-one indentation * lib/fts.c (fts_build): Correct indentation, change style of a couple of block comments, and bracing style. maint: fts.c: move __opendir2 #define "up" out of function body * lib/fts.c (__opendir2): Move "up". No semantic change. maint: fts.c: remove #if-0'd FTS_WHITEOUT code * lib/fts.c: Remove #if-0'd FTS_WHITEOUT code. It's been #if-0'd out for a long time and besides was useful only on BSD systems. 2011-08-18 Paul Eggert regex: port to Stratus OpenVOS * lib/regex_internal.h (internal_function) [!_LIBC]: Simply define to empty, rather than attempting nonportable optimizations. Problem reported by Paul Green in: http://lists.gnu.org/r/bug-diffutils/2011-08/msg00047.html and fix suggested by Eric Blake in: http://lists.gnu.org/r/bug-gnulib/2011-08/msg00143.html 2011-08-17 Eric Blake getcwd: fix test failures on mingw * lib/getcwd.c (__getcwd): Early exit for ERANGE. * tests/test-getcwd.c (test_abort_bug, test_long_name): Don't fail test if long directory cannot be created, and allow mingw errno. getcwd-lgpl: fix m4 to match relaxed test for BSD * m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Relax probe. (gl_FUNC_GETCWD_SIGNATURE): New macro. (gl_FUNC_GETCWD_LGPL, gl_FUNC_GETCWD): Use it. * doc/posix-functions/getcwd.texi (getcwd): Tweak mentions of signature problem. getcwd: fix compilation on mingw64 * lib/unistd.in.h (includes) [mingw]: Include for getcwd. Reported by Marc-André Lureau. pipe2: silence compiler warning * lib/pipe2.c (pipe2): Hide label if it is not used. 2011-08-15 Ben Pfaff relocatable-prog: fix link error * modules/relocatable-prog (configure.ac) [RELOCATABLE]: Also invoke AC_LIBOBJ([relocatable]). This invocation was previously in the gl_RELOCATABLE_LIBRARY macro. That invocation was moved into modules/relocatable-lib without noticing that modules/relocatable-prog also invokes gl_RELOCATABLE_LIBRARY and also needs to build relocatable.c. 2011-08-12 Paul Eggert getaddrinfo: fix sh typo in gai_strerrorA decl checking * m4/getaddrinfo.m4 (gl_GETADDRINFO): Fix typo in the generated shell code: it contained a 'break' that was not in a loop. Apparently the macro assumed that AC_CHECK_DECLS is implemenented via a shell-language loop; this may have been true in old Autoconf versions, but it's not true in Autoconf 2.68. I found this bug when testing coreutils git on Solaris 8, whose shell complains about the syntax error. 2011-08-12 Simon Josefsson * lib/base64.c: Fix comment to reference RFC 4648. Suggested by Bruno Haible and Gijs van Tulder . 2011-08-11 Paul Eggert * build-aux/bootstrap (slurp): Remove obsolescent gettext.m4 patch. po/Makefile.in.in: fix make -q problem * build-aux/po/Makefile.in.in (check-macro-version): Remove this rule, since there's no file named 'check-macro-version' and its use as a file breaks make -q. (all): Don't depend on check-macro-version. (CHECK_MACRO_VERSION): New macro. (stamp-po): Use it. configmake: fix make -q problem * modules/configmake (configmake.h): Update configmake.h's time stamp even if the file does not change. Otherwise, 'make -q' fails. Problem reported by Simon Josefsson in . 2011-08-11 Jim Meyering git-version-gen: correct the advice in a comment * build-aux/git-version-gen: Correct comment. Don't recommend to list .tarball-version in .gitignore. 2011-08-10 Paul Eggert base64: fix off-by-one buffer size bug Problem and (trivial) fix reported by Gijs van Tulder in . * lib/base64.c (base64_decode_alloc_ctx): Allocate one more byte. * tests/test-base64.c (main): Catch the bug. 2011-08-10 Eric Blake closein: correct comments * lib/closein.c (close_stdin): Improve comments. 2011-08-09 Bruno Haible More tests for 'fseeko'. * tests/test-fseeko3.c: New file, from Eric Blake. * tests/test-fseeko3.sh: New file. * modules/fseeko-tests (Files): Add them. (TESTS): Add test-fseeko3.sh. (check_PROGRAMS): Add test-fseeko3. 2011-08-09 Eric Blake fseeko: remove unneeded hack * lib/fseeko.c (fseeko): Don't special-case SEEK_END. fseeko: fix bug on glibc * lib/fseeko.c (fseeko): Set stream offset to match fd offset. Reported by John W. Eaton. 2011-08-08 Bruno Haible unictype/base: Fix interoperability with preinstalled libunistring. * modules/unictype/base (configure.ac): Bump minimum version to 0.9.4. Reported by Simon Josefsson. 2011-08-08 Bruno Haible iswblank: Detect declaration correctly. * m4/iswblank.m4 (gl_FUNC_ISWBLANK): Use correct headers in AC_CHECK_DECLS invocation. 2011-08-08 Bruno Haible tcgetsid: Detect declaration correctly. * m4/tcgetsid.m4 (gl_FUNC_TCGETSID): Use correct headers in AC_CHECK_DECLS invocation. Reported by Simon Josefsson. 2011-08-08 Eric Blake largefile: fix typo that regressed large file support * modules/largefile (configure.ac-early): Fix section name. 2011-08-06 Karl Berry * MODULES.html.sh (func_all_files): _Noreturn is no longer a separate module. 2011-08-05 Simon Josefsson openat: Fix warnings and commens when building unlinkat.c on Hurd. * lib/unlinkat.c: Mention Hurd in comments. Include stdlib.h to get prototype for free. 2011-08-04 Bruno Haible Tests for module 'pathmax'. * modules/pathmax-tests: New file. * tests/test-pathmax.c: New file. canonicalize-lgpl: Support larger filenames on the Hurd. * lib/canonicalize-lgpl.c (__realpath): Bump path_max fallback to 8192. Reported by Paul Eggert. pathmax: Leave PATH_MAX undefined on the Hurd, and a constant otherwise. * lib/pathmax.h (PATH_MAX): Leave it undefined on GNU/Hurd. * lib/chdir-long.h: Include pathmax.h. * lib/clean-temp.c (PATH_MAX): Remove code that is done by pathmax.h. * lib/getcwd.c: Include pathmax.h instead of . (PATH_MAX): Remove code that is done by pathmax.h. * lib/canonicalize.c (PATH_MAX): Provide a fallback value. * lib/tmpfile.c: Add a comment. * m4/pathmax.m4 (gl_PATHMAX): Don't test for pathconf. * modules/chdir-long (Depends-on): Add pathmax. * modules/getcwd (Depends-on): Add pathmax. * tests/test-getcwd.c (test_abort_bug): Avoid syntax error when PATH_MAX is not defined. * doc/posix-headers/limits.texi: Mention the pathmax module. * NEWS: Mention the change. 2011-08-02 Bruno Haible pthread_sigmask: Actually use results of gl_THREADLIB. * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Test and require gl_THREADLIB, not gl_[]THREADLIB. Reported by Eric Blake. 2011-08-02 Jim Meyering maint.mk: relax the default _gl_TS_function_match regexp * top/maint.mk (_gl_TS_function_match): Don't require at least one space between function name and "(" in an "extern" declaration. That would fail to match a decl with no space there: extern void foo(); 2011-07-31 Iain Nicol git-version-gen: document that EXTRA_DIST must include .version * build-aux/git-version-gen: In the how-to-use comment, document that EXTRA_DIST must include .version. Otherwise, "make distcheck" will fail when run from an unpacked distribution tarball. 2011-08-01 Bruno Haible wctype-h: Fix last change. * m4/wctype_h.m4 (gl_WCTYPE_H): If towlower is defined, set REPLACE_TOWLOWER to 0. Reported by Sam Steingold . 2011-07-31 Bruno Haible frexpl: Update autoconf test. * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Update overrides of , according to changes of 2011-06-20. 2011-07-31 Bruno Haible sys_utsname: Add support for Minix. * lib/sys_utsname.in.h [Minix]: Include before . * m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H): Likewise. * doc/posix-headers/sys_utsname.texi: Document the Minix problem. 2011-07-31 Bruno Haible strings: Add support for Minix. * lib/strings.in.h [Minix]: Include before . * m4/strings_h.m4 (gl_HEADER_STRINGS_H_BODY): Likewise. * doc/posix-headers/strings.texi: Document the Minix problem. 2011-07-31 Bruno Haible wctype-h: Add support for Minix. * m4/wctype_h.m4 (gl_WCTYPE_H): Test whether towlower is declared. Set REPLACE_TOWLOWER. * modules/wctype-h (Makefile.am): Substitute REPLACE_TOWLOWER. * lib/wctype.in.h (towlower, towupper): Test REPLACE_TOWLOWER, not REPLACE_ISWCNTRL. 2011-07-31 Paul Eggert * lib/xalloc.h (DEFAULT_MXFAST): Track 64-bit glibc. This is a performance improvement for 64-bit hosts: it causes the value of DEFAULT_MXFAST to track what's in glibc on such hosts. 2011-07-31 Bruno Haible stdioext: Add support for Minix. * lib/fbufmode.c (fbufmode) [__minix]: Add conditional code. * lib/fpurge.c (fpurge): Likewise. * lib/freadahead.c (freadahead): Likewise. * lib/freadable.c (freadable): Likewise. * lib/freading.c (freading): Likewise. * lib/freadptr.c (freadptr): Likewise. * lib/freadseek.c (freadptrinc): Likewise. * lib/fseeko.c (rpl_fseeko): Likewise. * lib/fseterr.c (fseterr): Likewise. * lib/fwritable.c (fwritable): Likewise. * lib/fwriting.c (fwriting): Likewise. * lib/fflush.c (clear_ungetc_buffer): Update comment. * m4/fpending.m4 (gl_PREREQ_FPENDING): Add a variant for Minix. 2011-07-31 Bruno Haible errno: Port to Minix. * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Test also whether ENETRESET and ECONNABORTED are defined. * lib/errno.in.h (ENETRESET, GNULIB_defined_ENETRESET, ECONNABORTED, GNULIB_defined_ECONNABORTED): New macros. * lib/strerror-override.h (strerror_override): Test also GNULIB_defined_ENETRESET, GNULIB_defined_ECONNABORTED. * lib/strerror-override.c (strerror_override): Handle also ENETRESET, ECONNABORTED. * doc/posix-headers/errno.texi: Mention the Minix problem. 2011-07-31 Bruno Haible Work around declaration collisions on Minix. * m4/mbsinit.m4 (gl_FUNC_MBSINIT): If mbsinit is declared but not defined, set REPLACE_MBSINIT. * m4/mbrtowc.m4 (gl_FUNC_MBRTOWC): If mbrtowc is declared but not defined, set REPLACE_MBRTOWC. * m4/mbrlen.m4 (gl_FUNC_MBRLEN): If mbrlen is declared but not defined, set REPLACE_MBRLEN. * m4/mbsrtowcs.m4 (gl_FUNC_MBSRTOWCS): If mbsrtowcs is declared but not defined, set REPLACE_MBSRTOWCS. * m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): If wcrtomb is declared but not defined, set REPLACE_WCRTOMB. * m4/wcsrtombs.m4 (gl_FUNC_WCSRTOMBS): If wcsrtombs is declared but not defined, set REPLACE_WCSRTOMBS. 2011-07-31 Bruno Haible Add support for Minix with ACK compiler. * m4/gnulib-common.m4 (gl_PROG_AR_RANLIB): New macro. * gnulib-tool (func_import, func_create_testdir): Emit invocation of gl_PROG_AR_RANLIB instead of AC_PROG_RANLIB. 2011-07-31 Bruno Haible Documentation about Minix. * doc/posix-headers/*.texi: Add info about Minix 3.1.8. * doc/glibc-headers/*.texi: Likewise. * doc/posix-functions/*.texi: Likewise. * doc/glibc-functions/*.texi: Likewise. 2011-07-31 Bruno Haible snippet/warn-on-use: Fix indentation. * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix indentation. 2011-07-25 Jim Meyering tests: test-update-copyright.sh: remove unnecessary "rm" commands * tests/test-update-copyright.sh: Remove unused rm -f $TMP.*.bak commands. 2011-07-27 Jim Meyering maint.mk: avoid sc_prohibit_always-defined_macros failure in coreutils * top/maint.mk (gl_extract_significant_defines_): Now that SA_RESETHAND and SA_RESTART are #defined (albeit conditionally) in gnulib/lib/signal.in.h, and now that we recommend to define-if-undefined those two symbols in application code, we must filter them out of the "significant" list. This avoids a "make syntax-check" failure in coreutils. 2011-07-26 Eric Blake warnings: add comments about previous patch * m4/absolute-header.m4: Document AS_VAR_PUSHDEF limitation. * m4/include_next.m4: Likewise. * m4/warn-on-use.m4: Likewise. * m4/warnings.m4: Likewise, and simplify use. Suggested by Stefano Lattarini. include-next, warnings: support older autoconf * m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): Use AS_VAR_PUSHDEF in a way that works with older autoconf. * m4/warnings.m4 (gl_WARN_ADD): Likewise. Reported by Daniel P. Berrange. 2011-07-25 Bruno Haible fseek, ftell: Fix doc. * doc/posix-functions/fseek.texi: Reword statement about AC_SYS_LARGEFILE. * doc/posix-functions/ftell.texi: Likewise. 2011-07-25 Paul Eggert Bruno Haible Add dependencies to the 'largefile' module. * modules/fopen (Depends-on): Add 'largefile'. * modules/freopen (Depends-on): Likewise. * modules/fseeko (Depends-on): Likewise. * modules/ftello (Depends-on): Likewise. * modules/glob (Depends-on): Likewise. * modules/lseek (Depends-on): Likewise. * modules/lstat (Depends-on): Likewise. * modules/mkostemp (Depends-on): Likewise. * modules/mkostemps (Depends-on): Likewise. * modules/mkstemp (Depends-on): Likewise. * modules/mkstemps (Depends-on): Likewise. * modules/open (Depends-on): Likewise. * modules/openat (Depends-on): Likewise. * modules/pread (Depends-on): Likewise. * modules/pwrite (Depends-on): Likewise. * modules/scandir (Depends-on): Likewise. * modules/stat (Depends-on): Likewise. * modules/tmpfile (Depends-on): Likewise. * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Do not require AC_SYS_LARGEFILE, since the containing module now depends on the largefile module. * m4/tempname.m4 (gl_FUNC_GEN_TEMPNAME): Likewise. * doc/posix-functions/fopen.texi: Mention that the problem of 32-bit off_t is fixed by gnulib. * doc/posix-functions/freopen.texi: Likewise. * doc/posix-functions/fseeko.texi: Likewise. * doc/posix-functions/fstatat.texi: Likewise. * doc/posix-functions/ftello.texi: Likewise. * doc/posix-functions/glob.texi: Likewise. * doc/posix-functions/lseek.texi: Likewise. * doc/posix-functions/lstat.texi: Likewise. * doc/posix-functions/mkstemp.texi: Likewise. * doc/posix-functions/open.texi: Likewise. * doc/posix-functions/openat.texi: Likewise. * doc/posix-functions/pread.texi: Likewise. * doc/posix-functions/pwrite.texi: Likewise. * doc/posix-functions/scandir.texi: Likewise. * doc/posix-functions/stat.texi: Likewise. * doc/posix-functions/tmpfile.texi: Likewise. * doc/glibc-functions/mkostemp.texi: Likewise. * doc/glibc-functions/mkostemps.texi: Likewise. * doc/glibc-functions/mkstemps.texi: Likewise. 2011-07-25 Bruno Haible fcntl: Move AC_LIBOBJ invocation to module description. * m4/fcntl.m4 (gl_REPLACE_FCNTL): Don't invoke AC_LIBOBJ. * modules/fcntl (configure.ac): Invoke AC_LIBOBJ. fcntl: Remove call-in from fchdir.m4. * m4/fcntl.m4 (gl_FUNC_FCNTL): Conditionally invoke gl_TEST_FCHDIR. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't invoke gl_REPLACE_FCNTL. dup3: Remove potential call-in from fchdir.m4. * m4/dup3.m4 (gl_FUNC_DUP3): Add comment about fchdir. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Remove comment about dup3. dup2: Move AC_LIBOBJ invocation to module description. * m4/dup2.m4 (gl_REPLACE_DUP2): Remove macro. (gl_FUNC_DUP2): Instead of gl_REPLACE_DUP2, just set REPLACE_DUP2 to 1. Don't invoke AC_LIBOBJ. * modules/dup2 (configure.ac): Invoke AC_LIBOBJ. dup2: Remove call-in from fchdir.m4. * m4/dup2.m4 (gl_FUNC_DUP2): Conditionally invoke gl_TEST_FCHDIR. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't invoke gl_REPLACE_DUP2. fclose: Move AC_LIBOBJ invocation to module description. * m4/fclose.m4 (gl_REPLACE_FCLOSE): Remove macro. (gl_FUNC_FCLOSE): Instead of gl_REPLACE_FCLOSE, just set REPLACE_FCLOSE to 1. * modules/fclose (configure.ac): Invoke AC_LIBOBJ. fclose: Remove call-in from close.m4. * m4/fclose.m4 (gl_FUNC_FCLOSE): Invoke gl_FUNC_CLOSE. * m4/close.m4 (gl_FUNC_CLOSE): Don't invoke gl_REPLACE_FCLOSE. close: Move AC_LIBOBJ invocation to module description. * m4/close.m4 (gl_REPLACE_CLOSE): Remove macro. (gl_FUNC_CLOSE): Instead of gl_REPLACE_CLOSE, just set REPLACE_CLOSE to 1. * modules/close (configure.ac): Invoke AC_LIBOBJ. close: Remove call-in from fchdir.m4. * m4/close.m4 (gl_FUNC_CLOSE): Conditionally invoke gl_TEST_FCHDIR. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't invoke gl_REPLACE_CLOSE. open: Move AC_LIBOBJ invocation to module description. * m4/open.m4 (gl_REPLACE_OPEN): Remove macro. (gl_FUNC_OPEN): Instead of gl_REPLACE_OPEN, just set REPLACE_OPEN to 1. * modules/open (configure.ac): Invoke AC_LIBOBJ and gl_PREREQ_OPEN. open: Remove call-in from fchdir.m4. * m4/open.m4 (gl_FUNC_OPEN): Conditionally invoke gl_TEST_FCHDIR. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't invoke gl_REPLACE_OPEN. fchdir: Start to remove gl_REPLACE_* idiom. * m4/fchdir.m4 (gl_TEST_FCHDIR): New macro. (gl_FUNC_FCHDIR): Invoke it. 2011-07-25 Paul Eggert * lib/ftell.c (ftell): Comment out cast. close: use gl_REPLACE_FCLOSE only if defined * m4/close.m4 (gl_REPLACE_CLOSE): Use gl_REPLACE_FCLOSE only if it is defined. The close module doesn't depend on the fclose module any more, so gl_REPLACE_CLOSE's existence cannot be assumed. See . I reproduced the problem with "./gnulib-tool --test close sys_socket". 2011-07-24 Jim Meyering test-select.h: avoid warning when using gcc's -Wmissing-declarations * tests/test-select.h (test_function): Declare as "static". 2011-07-24 Bruno Haible doc: Mention the effects of AC_SYS_LARGEFILE. * doc/posix-functions/aio_cancel.texi: Mention the effects of AC_SYS_LARGEFILE on this function. * doc/posix-functions/aio_error.texi: Likewise. * doc/posix-functions/aio_fsync.texi: Likewise. * doc/posix-functions/aio_read.texi: Likewise. * doc/posix-functions/aio_return.texi: Likewise. * doc/posix-functions/aio_suspend.texi: Likewise. * doc/posix-functions/aio_write.texi: Likewise. * doc/posix-functions/fgetpos.texi: Likewise. * doc/posix-functions/fopen.texi: Likewise. * doc/posix-functions/freopen.texi: Likewise. * doc/posix-functions/fsetpos.texi: Likewise. * doc/posix-functions/fstatvfs.texi: Likewise. * doc/posix-functions/ftruncate.texi: Likewise. * doc/posix-functions/ftw.texi: Likewise. * doc/posix-functions/getrlimit.texi: Likewise. * doc/posix-functions/glob.texi: Likewise. * doc/posix-functions/lio_listio.texi: Likewise. * doc/posix-functions/lockf.texi: Likewise. * doc/posix-functions/mkstemp.texi: Likewise. * doc/posix-functions/mmap.texi: Likewise. * doc/posix-functions/nftw.texi: Likewise. * doc/posix-functions/openat.texi: Likewise. * doc/posix-functions/opendir.texi: Likewise. * doc/posix-functions/posix_fadvise.texi: Likewise. * doc/posix-functions/posix_fallocate.texi: Likewise. * doc/posix-functions/pread.texi: Likewise. * doc/posix-functions/pwrite.texi: Likewise. * doc/posix-functions/readdir.texi: Likewise. * doc/posix-functions/readdir_r.texi: Likewise. * doc/posix-functions/rewinddir.texi: Likewise. * doc/posix-functions/scandir.texi: Likewise. * doc/posix-functions/seekdir.texi: Likewise. * doc/posix-functions/setrlimit.texi: Likewise. * doc/posix-functions/statvfs.texi: Likewise. * doc/posix-functions/telldir.texi: Likewise. * doc/posix-functions/tmpfile.texi: Likewise. * doc/posix-functions/truncate.texi: Likewise. * doc/glibc-functions/fallocate.texi: Likewise. * doc/glibc-functions/fstatfs.texi: Likewise. * doc/glibc-functions/fts_children.texi: Likewise. * doc/glibc-functions/fts_read.texi: Likewise. * doc/glibc-functions/getdirentries.texi: Likewise. * doc/glibc-functions/mkostemp.texi: Likewise. * doc/glibc-functions/mkostemps.texi: Likewise. * doc/glibc-functions/mkstemps.texi: Likewise. * doc/glibc-functions/preadv.texi: Likewise. * doc/glibc-functions/pwritev.texi: Likewise. * doc/glibc-functions/sendfile.texi: Likewise. * doc/glibc-functions/statfs.texi: Likewise. 2011-07-24 Bruno Haible doc: Fix typo. * doc/posix-functions/fstat.texi: Talk about fstat, not stat. 2011-07-24 Bruno Haible doc: Mention fsusage. * doc/posix-functions/statvfs.texi: Mention the fsusage module. 2011-07-24 Bruno Haible doc: Mention new glibc headers and functions. * doc/glibc-headers/gshadow.texi: New file. * doc/glibc-functions/endsgent.texi: New file. * doc/glibc-functions/fgetsgent.texi: New file. * doc/glibc-functions/fgetsgent_r.texi: New file. * doc/glibc-functions/getsgent.texi: New file. * doc/glibc-functions/getsgent_r.texi: New file. * doc/glibc-functions/getsgnam.texi: New file. * doc/glibc-functions/getsgnam_r.texi: New file. * doc/glibc-functions/putsgent.texi: New file. * doc/glibc-functions/setsgent.texi: New file. * doc/glibc-functions/sgetsgent.texi: New file. * doc/glibc-functions/sgetsgent_r.texi: New file. * doc/glibc-functions/malloc_info.texi: New file. * doc/glibc-functions/preadv.texi: New file. * doc/glibc-functions/pwritev.texi: New file. * doc/glibc-functions/register_printf_modifier.texi: New file. * doc/glibc-functions/register_printf_specifier.texi: New file. * doc/glibc-functions/register_printf_type.texi: New file. * doc/glibc-functions/pthread_attr_getaffinity_np.texi: New file. * doc/glibc-functions/pthread_attr_setaffinity_np.texi: New file. * doc/glibc-functions/pthread_getaffinity_np.texi: New file. * doc/glibc-functions/pthread_getname_np.texi: New file. * doc/glibc-functions/pthread_mutex_consistent_np.texi: New file. * doc/glibc-functions/pthread_mutexattr_getrobust_np.texi: New file. * doc/glibc-functions/pthread_mutexattr_setrobust_np.texi: New file. * doc/glibc-functions/pthread_setaffinity_np.texi: New file. * doc/glibc-functions/pthread_setname_np.texi: New file. * doc/glibc-functions/pthread_sigqueue.texi: New file. * doc/glibc-functions/pthread_timedjoin_np.texi: New file. * doc/glibc-functions/pthread_tryjoin_np.texi: New file. * doc/glibc-functions/qsort_r.texi: New file. * doc/glibc-functions/quick_exit.texi: New file. * doc/glibc-functions/syncfs.texi: New file. * doc/gnulib.texi: Include them. (Glibc gshadow.h, Glibc sys/uio.h): New sections. * doc/posix-functions/psiginfo.texi: Fix info about glibc version. * doc/posix-functions/pthread_mutex_consistent.texi: Likewise. * doc/posix-functions/pthread_mutexattr_getrobust.texi: Likewise. * doc/posix-functions/pthread_mutexattr_setrobust.texi: Likewise. * doc/glibc-functions/execvpe.texi: Likewise. 2011-07-24 Paul Eggert ftell: don't include * lib/ftell.c: Don't include . is now guaranteed to define off_t, and the ftell module depends on the stdio module. ftell: do not assume wraparound signed arithmetic * lib/ftell.c: Include . (ftell): Don't assume wraparound signed arithmetic. 2011-07-24 Bruno Haible close: No longer depend on module 'fclose'. * modules/close (Depends-on): Remove fclose. * NEWS: Mention the change. Suggested by Sam Steingold . 2011-07-24 Bruno Haible fsusage: Enable large volume support on AIX >= 5.2. * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): If 'struct statvfs64' has a larger f_blocks field than 'struct statvfs', define STAT_STATVFS64 instead of STAT_STATVFS. * lib/fsusage.c (get_fs_usage) [STAT_STATVFS64]: Use statvfs64. fsusage: Restore previous behaviour on AIX, Cygwin, Interix. * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Enforce a 64-bit struct statvfs f_blocks field only on MacOS X. fsusage: Support large volumes on glibc/Hurd, HP-UX, Solaris, MacOS X. * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Require AC_SYS_LARGEFILE. * modules/fsusage (Depends-on): Add largefile. 2011-07-24 Paul Eggert * README: Modernize discussion of signed integers. Assuming overflow wraparound is no longer safe. Mention ones' complement and signed magnitude. 2011-07-22 Bruno Haible select tests, pselect tests: Refactor. * tests/test-select.h: New file, extracted from tests/test-select.c. (select_fn): New type. (test, do_select, do_select_nowait, do_select_wait, test_tty, test_connect_first, test_accept_first, test_pair, test_socket_pair, test_pipe): Add my_select argument. (test_function): Renamed from main. Add my_select argument. * tests/test-select.c: Move most code to tests/test-select.h. Include test-select.h. * modules/select-tests (Files): Add tests/test-select.h. * tests/test-pselect.c: Include test-select.h instead of test-select.c. (my_select, main): New functions. * modules/pselect-tests (Files): Add tests/test-select.h, tests/macros.h, tests/signature.h. (Depends-on): Remove select-tests. Add dependencies of test-select.h. (configure.ac): Check for . 2011-07-22 Bruno Haible sys_select tests: Check the signature of FD_*. * tests/test-select.c (FD_CLR, FD_ISSET, FD_SET, FD_ZERO): Move signature tests from here... * tests/test-sys_select.c (FD_CLR, FD_ISSET, FD_SET, FD_ZERO): ... to here. * modules/sys_select-tests (Files): Add tests/signature.h. 2011-07-22 Paul Eggert largefile: new module, replacing large-inode Pádraig Brady suggested this in . * MODULES.html.sh: Add largefile, remove large-inode. * modules/largefile, m4/largefile.m4: New files. * modules/large-inode, m4/large-inode.m4: Remove. fsusage: port to MacOS X 10.7 with 4 TiB file systems * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Reject statvfs implementations that use only 32 bits to count blocks. On typical hosts with 1024-byte blocks, this fails with file systems as small as 4 TiB. Problem reported by Herb Wartens and this should also fix a similar problem reported by Tim Spriggs . large-inode: New module * MODULES.html.sh: Add it. * modules/large-inode, m4/large-inode.m4: New files. extensions: Enable extensions on MacOS X 10.5 and later. * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Define _DARWIN_C_SOURCE. 2011-07-22 Kamil Dudka file-has-acl: use acl_extended_file_nofollow if available * lib/acl-internal.h (HAVE_ACL_EXTENDED_FILE): New macro. (acl_extended_file): New macro. * lib/file-has-acl.c (file_has_acl): Use acl_extended_file_nofollow. * m4/acl.m4 (gl_FUNC_ACL): Check for acl_extended_file_nofollow. 2011-07-21 Bruno Haible Declare system functions in a way that works with C++. * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR) [C++]: In the test program, declare fdopendir as extern "C". * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS) [C++]: In the test program, declare frexpl as extern "C". * m4/getaddrinfo.m4 (gl_GETADDRINFO) [C++]: In the test program, declare gai_strerror as extern "C". * m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME) [C++]: In the test programs, declare gai_strerror as extern "C". * m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R) [C++]: In the test program, declare getlogin_r as extern "C". * m4/ioctl.m4 (gl_FUNC_IOCTL) [C++]: In the test program, declare ioctl as extern "C". * m4/ldexpl.m4 (gl_FUNC_LDEXPL_WORKS) [C++]: In the test program, declare ldexpl as extern "C". * m4/logb.m4 (gl_FUNC_LOGB) [C++]: In the test programs, declare logb as extern "C". * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS) [C++]: In the test program, declare getmntinfo as extern "C". * m4/stpncpy.m4 (gl_FUNC_STPNCPY) [C++]: In the test program, declare stpncpy as extern "C". * m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS) [C++]: In the test program, declare __xpg_strerror_r as extern "C". * m4/strndup.m4 (gl_FUNC_STRNDUP) [C++]: In the test program, declare strndup as extern "C". * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT) [C++]: In the test program, declare memset and bzero as extern "C". Reported by Sam Steingold . 2011-07-12 Jim Meyering maint.mk: prohibit inclusion of "verify.h" without use * top/maint.mk (sc_prohibit_verify_without_use): New rule. 2011-07-19 Pádraig Brady timer-time: A new module to check for timer_settime() * m4/timer_time.m4: Check for the posix function. * modules/timer-time: Add the new module. * MODULES.html.sh (Compat checks for POSIX:2008 functions): Mention it. 2011-07-19 Paul Eggert Bruno Haible pthread_sigmask: assume POSIX threads if --avoid=threadlib * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): If gl_THREADLIB is not defined, assume POSIX threads and look for pthread_sigmask in $LIBS, without changing $CPPFLAGS. 2011-07-19 Bruno Haible strstr: Update cross-compilation guess. * m4/strstr.m4 (gl_FUNC_STRSTR): On glibc > 2.12 with x86 or x86_64 CPUs, guess no, in view of glibc BZ #12100 . Suggested by Eric Blake. Reported by Reuben Thomas. 2011-07-19 Pádraig Brady getopt-gnu: suppress core dumps from detection code * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Use the nocrash module to suppress core dumps that may well occur on glibc systems. * modules/getopt-gnu: Depend on nocrash. 2011-07-16 Paul Eggert pthread_sigmask: ensure usleep is declared * lib/pthread_sigmask.c [PTHREAD_SIGMASK_UNBLOCK_BUG]: Include , to declare usleep. Needed on Solaris 8, 2011-07-15 Paul Eggert doc: Document NonStop portability issues. * doc/posix-functions/sigaction.texi (sigaction): * doc/posix-headers/signal.texi (signal.h): Document NonStop. See Joachim Schmitz in http://lists.gnu.org/r/bug-coreutils/2011-07/msg00062.html 2011-07-15 Bruno Haible ffsl, ffsll: Avoid unportable behaviour. * lib/ffsl.h (FUNC): Use 'unsigned int' instead of 'int'. 2011-07-15 Bruno Haible ffs: More tests. * tests/test-ffs.c (NBITS): New macro. (main): Add more tests. * tests/test-ffsl.c (NBITS): New macro. (main): Add more tests. * tests/test-ffsll.c (NBITS): New macro. (main): Add more tests. 2011-07-15 Eric Blake ffsl, ffsll: new modules * modules/ffsl: New file. * modules/ffsll: Likewise. * m4/ffsl.m4: Likewise. * m4/ffsll.m4: Likewise. * lib/ffsl.c: Likewise. * lib/ffsl.h: Likewise. * lib/ffsll.c: Likewise. * m4/string_h.m4 (gl_HEADER_STRING_H_BODY) (gl_HEADER_STRING_H_DEFAULTS): Add defaults. * modules/string (Makefile.am): Substitute witnesses. * lib/strings.in.h (ffsl, ffsll): Declare. * modules/ffsl-tests: New test file. * modules/ffsll-tests: Likewise. * tests/test-ffsl.c: Likewise. * tests/test-ffsll.c: Likewise. * MODULES.html.sh (Integer arithmetic functions): Mention it. * doc/glibc-functions/ffsl.texi (ffsl): Likewise. * doc/glibc-functions/ffsll.texi (ffsll): Likewise. ffs: fix m4 prerequisite * m4/ffs.m4 (gl_FUNC_FFS): Require strings.h defaults. ffs: avoid undefined behavior * lib/ffs.c (ffs): Provide fallback for non-32-bit int. * tests/test-ffs.c (naive, main): Avoid signed shifts. Reported by Bruno Haible. 2011-07-12 Bruno Haible pthread_sigmask: Rely on module 'threadlib'. * modules/pthread_sigmask (Depends-on): Add threadlib. * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Assume gl_THREADLIB is defined. 2011-07-12 Bruno Haible regex: Depend on module 'strcase'. * modules/regex (Depends-on): Add strcase, for strcasecmp(). 2011-07-12 Jim Meyering warn-on-use: fix typo in file name * modules/snippet/warn-on-use (Files): Correct file name: include /snippet/ component in "build-aux/snippet/warn-on-use.h". 2011-07-12 Bruno Haible strings: Document module. * doc/posix-headers/strings.texi: Mention module 'strings'. 2011-07-12 Bruno Haible Rename module '_Noreturn' to 'snippet/_Noreturn'. * modules/snippet/_Noreturn: Renamed from modules/_Noreturn. (Files, Makefile.am): Update. * build-aux/snippet/_Noreturn.h: Renamed from build-aux/_Noreturn.h. * modules/stdlib (Depends-on): Update. 2011-07-12 Bruno Haible * NEWS: Mention the changes. Rename module 'warn-on-use' to 'snippet/warn-on-use'. * modules/snippet/warn-on-use: Renamed from modules/warn-on-use. (Files, Makefile.am): Update. * build-aux/snippet/warn-on-use.h: Renamed from build-aux/warn-on-use.h. * modules/arpa_inet (Depends-on): Update. * modules/ctype (Depends-on): Update. * modules/dirent (Depends-on): Update. * modules/fcntl-h (Depends-on): Update. * modules/glob (Depends-on): Update. * modules/iconv-h (Depends-on): Update. * modules/inttypes-incomplete (Depends-on): Update. * modules/langinfo (Depends-on): Update. * modules/locale (Depends-on): Update. * modules/math (Depends-on): Update. * modules/netdb (Depends-on): Update. * modules/poll-h (Depends-on): Update. * modules/pty (Depends-on): Update. * modules/search (Depends-on): Update. * modules/signal (Depends-on): Update. * modules/spawn (Depends-on): Update. * modules/stdio (Depends-on): Update. * modules/stdlib (Depends-on): Update. * modules/string (Depends-on): Update. * modules/strings (Depends-on): Update. * modules/sys_file (Depends-on): Update. * modules/sys_ioctl (Depends-on): Update. * modules/sys_select (Depends-on): Update. * modules/sys_socket (Depends-on): Update. * modules/sys_stat (Depends-on): Update. * modules/sys_time (Depends-on): Update. * modules/sys_times (Depends-on): Update. * modules/sys_utsname (Depends-on): Update. * modules/sys_wait (Depends-on): Update. * modules/termios (Depends-on): Update. * modules/time (Depends-on): Update. * modules/unistd (Depends-on): Update. * modules/wchar (Depends-on): Update. * modules/wctype-h (Depends-on): Update. * MODULES.html.sh (Support for building libraries and executables): Update. Rename module 'unused-parameter' to 'snippet/unused-parameter'. * modules/snippet/unused-parameter: Renamed from modules/unused-parameter. (Files, Makefile.am): Update. * build-aux/snippet/unused-parameter.h: Renamed from build-aux/unused-parameter.h. * modules/selinux-h (Depends-on): Update. * modules/unistr/base (Depends-on): Update. * MODULES.html.sh (Core language properties): Update. Rename module 'link-warning' to 'snippet/link-warning'. * modules/snippet/link-warning: Renamed from modules/link-warning. (Files, Makefile.am): Update. * build-aux/snippet/link-warning.h: Renamed from build-aux/link-warning.h. * MODULES.html.sh (Support for building libraries and executables): Update. Rename module 'c++defs' to 'snippet/c++defs'. * modules/snippet/c++defs: Renamed from modules/c++defs. (Files, Makefile.am): Update. * build-aux/snippet/c++defs.h: Renamed from build-aux/c++defs.h. * modules/arpa_inet (Depends-on): Update. * modules/ctype (Depends-on): Update. * modules/dirent (Depends-on): Update. * modules/fcntl-h (Depends-on): Update. * modules/glob (Depends-on): Update. * modules/iconv-h (Depends-on): Update. * modules/langinfo (Depends-on): Update. * modules/locale (Depends-on): Update. * modules/math (Depends-on): Update. * modules/netdb (Depends-on): Update. * modules/poll-h (Depends-on): Update. * modules/pty (Depends-on): Update. * modules/search (Depends-on): Update. * modules/signal (Depends-on): Update. * modules/spawn (Depends-on): Update. * modules/stdio (Depends-on): Update. * modules/stdlib (Depends-on): Update. * modules/string (Depends-on): Update. * modules/strings (Depends-on): Update. * modules/sys_ioctl (Depends-on): Update. * modules/sys_select (Depends-on): Update. * modules/sys_socket (Depends-on): Update. * modules/sys_stat (Depends-on): Update. * modules/sys_time (Depends-on): Update. * modules/sys_wait (Depends-on): Update. * modules/termios (Depends-on): Update. * modules/time (Depends-on): Update. * modules/unistd (Depends-on): Update. * modules/wchar (Depends-on): Update. * modules/wctype-h (Depends-on): Update. Rename module 'arg-nonnull' to 'snippet/arg-nonnull'. * modules/snippet/arg-nonnull: Renamed from modules/arg-nonnull. (Files, Makefile.am): Update. * build-aux/snippet/arg-nonnull.h: Renamed from build-aux/arg-nonnull.h. * modules/argv-iter (Depends-on): Update. * modules/arpa_inet (Depends-on): Update. * modules/dirent (Depends-on): Update. * modules/fcntl-h (Depends-on): Update. * modules/fnmatch (Depends-on): Update. * modules/getopt-posix (Depends-on): Update. * modules/glob (Depends-on): Update. * modules/iconv-h (Depends-on): Update. * modules/inttypes-incomplete (Depends-on): Update. * modules/locale (Depends-on): Update. * modules/math (Depends-on): Update. * modules/netdb (Depends-on): Update. * modules/search (Depends-on): Update. * modules/signal (Depends-on): Update. * modules/spawn (Depends-on): Update. * modules/stdio (Depends-on): Update. * modules/stdlib (Depends-on): Update. * modules/string (Depends-on): Update. * modules/strings (Depends-on): Update. * modules/sys_socket (Depends-on): Update. * modules/sys_stat (Depends-on): Update. * modules/sys_time (Depends-on): Update. * modules/sys_times (Depends-on): Update. * modules/sys_utsname (Depends-on): Update. * modules/time (Depends-on): Update. * modules/unistd (Depends-on): Update. * modules/wchar (Depends-on): Update. * MODULES.html.sh (Support for building libraries and executables): Update. 2011-07-12 Paul Eggert Improvements on _Noreturn and related modules. modules/_Exit-tests: test _Noreturn too * tests/test-_Exit.c (MTA, Charlie): New functions, taken from the old tests/test-stdnoreturn.c. This tests the _Noreturn keyword a bit. (main): Use them. stdnoreturn, stdnoreturn-tests: remove modules They're not needed here and a bit premature for use elsewhere. See . * m4/stdnoreturn.m4, modules/stdnoreturn, modules/stdnoreturn-tests: * tests/test-stdnoreturn.c: Remove files. * MODULES.html.sh (_Noreturn ): Remove section. * lib/openat.h, lib/sigpipe-die.h, lib/xalloc.h, lib/xmemdup0.h: * lib/xstrtol.h: Use _Noreturn rather than including and using noreturn. * modules/openat, modules/sigpipe-die, modules/xalloc: * modules/xmemdup0, modules/xstrtol: Remove dependency on stdnoreturn. _Noreturn: Ignore __STDC_VERSION__; observe _MSC_VER. * build-aux/_Noreturn.h (_Noreturn): Ignore __STDC_VERSION__. Reparenthesize to avoid GCC warning. Support Microsoft's syntax. * m4/gnulib-common.m4 (gl_COMMON_BODY): Likewise. _Noreturn-tests: remove module * modules/_Noreturn-tests: Remove. * modules/stdnoreturn-tests (Files): Remove tests/test-_Noreturn.c. * tests/test-_Noreturn.c: Remove. * tests/test-stdnoreturn.c: Merge from the old tests/test-_Noreturn.c, testing both noreturn and _Noreturn. 2011-07-12 Paul Eggert _Noreturn, stdnoreturn, and related modules. * top/maint.mk: Adjust to new noreturn support. (gl_extract_significant_defines_): Omit pattern ATTRIBUTE_NORETURN. (def_sym_regex): Do not remove ATTRIBUTE_NORETURN. xalloc: use stdnoreturn.h * lib/xalloc.h: Include . (_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn. * modules/xalloc (Depends-on): Add stdnoreturn. xstrtol: use stdnoreturn.h * lib/xstrtol.h: Include . (_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn. * modules/xstrtol (Depends-on): Add stdnoreturn. xmemdup0: use stdnoreturn.h * lib/xmemdup0.h: Include . (_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn. * modules/xmemdup0 (Depends-on): Add stdnoreturn. sigpipe-die: use stdnoreturn.h * lib/sigpipe-die.h: Include . (_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn. * modules/sigpipe-die (Depends-on): Add stdnoreturn. openat: use stdnoreturn.h * lib/openat.h: Include . (_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn. * modules/openat (Depends-on): Add stdnoreturn. * lib/openat-die.c (openat_save_fail): Modernize comment. * lib/xalloc-die.c (xalloc_die): Modernize comment. * lib/glthread/thread.h: Modernize comment. obstack: use _Noreturn * lib/obstack.c (__attribute__): Remove macro. (print_and_abort): Use _Noreturn. c-stack: use _Noreturn * lib/c-stack.c (die, overflow_handler, segv_handler): Use _Noreturn rather than __attribute__((noreturn)). argmatch-tests, exclude_tests: use _Noreturn * tests/test-argmatch.c, tests/test-exclude.c (_GL_ATTRIBUTE_NORETURN): Remove. (ARGMATCH_DIE_DECL): Use _Noreturn instead. stdlib: use _Noreturn * lib/stdlib.in.h (_GL_ATTRIBUTE_NORETURN): Remove. (_Exit): Use _Noreturn rather than _GL_ATTRIBUTE_NORETURN. * modules/stdlib (Depends-on): Add _Noreturn. (stdlib.h): Depend on $(_NORETURN_H), and copy it in. stdnoreturn-tests: new module * modules/stdnoreturn-tests, tests/test-stdnoreturn.c: New files. stdnoreturn: new module * MODULES.html.sh (Noreturn ): New section. * m4/stdnoreturn.m4, modules/stdnoreturn: New files. _Noreturn-tests: new module * modules/_Noreturn-tests, tests/test-_Noreturn.c: New files. _Noreturn: new module * MODULES.html.sh (Support for systems lacking draft ISO C 1X): New section, mentioning it. * build-aux/_Noreturn.h, modules/_Noreturn: New files. * m4/gnulib-common.m4 (gl_COMMON_BODY): Add _Noreturn. 2011-07-11 Eric Blake ffs: new module * modules/ffs: New file. * m4/ffs.m4: Likewise. * lib/ffs.c: Likewise. * m4/strings_h.m4 (gl_HEADER_STRINGS_H_DEFAULTS): Add default. * modules/strings (Makefile.am): Substitute witness. (Depends-on): Add c++defs. * lib/strings.in.h (ffs): Declare. * modules/ffs-tests: New test file. * tests/test-ffs.c: Test new module. * MODULES.html.sh (Integer arithmetic functions): Mention it. * doc/posix-functions/ffs.texi (ffs): Likewise. regex: avoid compiler warning * lib/regex.c (includes): Include , for use of strcasecmp in regcomp.c. Reported by Joachim Schmitz. 2011-07-09 Paul Eggert stdint: respect system's intmax_t if INTMAX_MAX * lib/stdint.in.h (intmax_t, uintmax_t): If the system defines INTMAX_MAX, assume its intmax_t is OK. Similarly for and uintmax_t. This is for some Mac OS X builds, where intmax_t is long but int64_t is long long, and where we will clash with the system intmax_t if we override it. See . (INTMAX_C, UINTMAX_C): For consistency, respect the system's INTMAX_C if INTMAX_MAX and INTMAX_C are both defined, and similarly for UINTMAX_C. 2011-07-08 Bruno Haible pthread_sigmask tests: Avoid a compiler warning. * tests/test-pthread_sigmask1.c (main): Complain if system() returns non-zero. sigprocmask tests: A better way to avoid a compiler warning. * tests/test-sigprocmask.c: Don't include "ignore-value.h". (main): Complain if system() returns non-zero. * modules/sigprocmask-tests (Depends-on): Remove ignore-value. 2011-07-08 Bruno Haible pthread_sigmask: Work around IRIX bug. * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Test for the IRIX bug. * lib/pthread_sigmask.c (pthread_sigmask): usleep for some time when there may be unblocked pending signals. * doc/posix-functions/pthread_sigmask.texi: Mention the IRIX bug. 2011-07-08 Bruno Haible pthread_sigmask: Work around Cygwin bug. * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Test for the Cygwin bug. * lib/pthread_sigmask.c (pthread_sigmask): Fix the return value from the system's pthread_sigmask function. * doc/posix-functions/pthread_sigmask.texi: Mention the Cygwin bug. 2011-07-08 Bruno Haible pthread_sigmask: Work around bug in single-threaded implementation. * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Test for the FreeBSD, HP-UX, Solaris bug. (gl_PREREQ_PTHREAD_SIGMASK): New macro. * lib/pthread_sigmask.c: Include . (pthread_sigmask): If HAVE_PTHREAD_SIGMASK, define as a wrapper around the system's pthread_sigmask function. * modules/pthread_sigmask (configure.ac): Invoke gl_PREREQ_PTHREAD_SIGMASK. * doc/posix-functions/pthread_sigmask.texi: Mention bug on FreeBSD, HP-UX, Solaris. 2011-07-08 Eric Blake test-sigprocmask: avoid compiler warning * modules/sigprocmask-tests (Depends-on): Add ignore-value. * tests/test-sigprocmask.c (main): Use it to silence warning. Reported by Jim Meyering. test-snprintf: avoid compiler warning * tests/test-snprintf.c (main): Avoid shadowed declaration. * tests/test-vsnprintf.c (main): Likewise. Reported by Jim Meyering. 2011-07-08 Bruno Haible Tests for module 'pthread_sigmask'. * modules/pthread_sigmask-tests: New file. * tests/test-pthread_sigmask1.c: New file, based on tests/test-sigprocmask.c. * tests/test-pthread_sigmask2.c: New file. 2011-07-08 Jim Meyering test-getopt.h: avoid warning about an unused variable * tests/test-getopt.h (test_getopt): Remove unused variable, "c". 2011-07-07 Jim Meyering maint: reduce list of files exempt from sc_prohibit_leading_TABs * Makefile (sc_prohibit_leading_TABs): Don't exempt m4/po.m4, now that it no longer contains leading TABs. Remove unused "url=FIXME" statement. 2011-07-08 Paul Eggert pthread_sigmask: Assume POSIX when not gl_THREADLIB. * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): When gl_THREADLIB is not in use, assume that the POSIX sematics are desired. This is better for Emacs, which uses POSIX semantics on GNUish and/or POSIXish platforms, and does not use threads at all otherwise. pthread_sigmask: fix typo when testing for libraries * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): AC_LINK_IFELSE, not AC_COMPILE_IFELSE. 2011-07-08 Eric Blake fts: introduce FTS_NOATIME * lib/fts_.h (FTS_NOATIME): New bit flag. (FTS_OPTIONMASK): Adjust. * lib/fts.c (diropen, fts_open, fts_build): Honor it. (fd_ring_check): Debug code unconditionally uses O_NOATIME. 2011-07-08 Bruno Haible Tests for module 'thread'. * modules/thread-tests: New file. * tests/test-thread_self.c: New file. * tests/test-thread_create.cc: New file. 2011-07-08 Bruno Haible thread: Avoid gcc warnings when using gl_thread_self(). * lib/glthread/thread.h (gl_thread_self): Return a pthread_t, not a 'void *'. (gl_thread_self_pointer): Update. 2011-07-07 Bruno Haible signal-c++-tests: Check declaration of pthread_sigmask. * tests/test-signal-c++.cc: Check declaration of pthread_sigmask. * modules/signal-c++-tests (Makefile.am): Link test-signal-c++ against $(LIB_PTHREAD_SIGMASK). 2011-07-07 Bruno Haible pthread_sigmask: Fix link requirements on OSF/1 5.1 and with pth. * lib/signal.in.h (pthread_sigmask): Override if REPLACE_PTHREAD_SIGMASK is 1. * m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Initialize REPLACE_PTHREAD_SIGMASK. * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Set also REPLACE_PTHREAD_SIGMASK. Set and substitute LIB_PTHREAD_SIGMASK. * modules/signal (Makefile.am): Substitute REPLACE_PTHREAD_SIGMASK. * modules/pthread_sigmask (Depends-on, configure.ac): Update condition. (Link): Set to $(LIB_PTHREAD_SIGMASK), not $(LIBMULTITHREAD). 2011-07-07 Bruno Haible pthread_sigmask: Ensure declaration in . * lib/signal.in.h: On MacOS X, FreeBSD, OpenBSD, OSF/1, Solaris 2.6, include . * doc/posix-functions/pthread_sigmask.texi: Mention the header file problem. 2011-07-07 Bruno Haible pthread_sigmask: Document the module. * doc/posix-functions/pthread_sigmask.texi: Mention the new module. 2011-07-07 Bruno Haible pthread_sigmask: Follow gnulib conventions. * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Renamed from gl_PTHREAD_SIGMASK. * modules/pthread_sigmask (configure.ac): Update. 2011-07-07 Bruno Haible pthread_sigmask: Make declaration C++ safe. * lib/signal.in.h: In two special conditions, just do an #include_next. (pthread_sigmask): Test HAVE_PTHREAD_SIGMASK, not REPLACE_PTHREAD_MASK. Invoke _GL_CXXALIAS_SYS and _GL_CXXALIASWARN. * m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Initialize HAVE_PTHREAD_SIGMASK, not REPLACE_PTHREAD_MASK. * m4/pthread_sigmask.m4 (gl_PTHREAD_SIGMASK): Set HAVE_PTHREAD_SIGMASK, not REPLACE_PTHREAD_MASK. * modules/signal (Makefile.am): Substitute HAVE_PTHREAD_SIGMASK, not REPLACE_PTHREAD_MASK. * modules/pthread_sigmask (Depends-on, configure.ac): Update condition. 2011-07-07 Bruno Haible pthread_sigmask: Fix return value. * lib/signal.in.h (pthread_sigmask): Declare. Don't define as a macro. * lib/pthread_sigmask.c: New file. * modules/pthread_sigmask (Files): Add it. (configure.ac): Invoke AC_LIBOBJ. 2011-07-07 Eric Blake getopt: more portable argv creation * m4/getopt.m4 (gl_GETOPT_CHECK_HEADRS): Rather than casting away const, use char arrays rather than strings. Suggested by Paul Eggert. 2011-07-07 Bruno Haible Tests for module 'sigprocmask'. * modules/sigprocmask-tests: New file. * tests/test-sigprocmask.c: New file. 2011-07-07 Bruno Haible float tests: Tweak. * tests/test-float.c (main): Tweak skip message. 2011-07-07 Eric Blake getopt: avoid compiler warning during configure * m4/getopt.m4 (gl_GETOPT_CHECK_HEADRS): Avoid problems with assigning string literals to non-const pointer. getopt-gnu: avoid crash in glibc getopt * m4/getopt.m4 (gl_GETOPT_CHECK_HEADRS): Detect the problem. * tests/test-getopt.h (test_getopt): Enhance test. * tests/test-getopt_long.h (test_getopt_long): Likewise. * doc/posix-functions/getopt.texi (getopt): Document it. * doc/glibc-functions/getopt_long.texi (getopt_long): Likewise. * doc/glibc-functions/getopt_long_only.texi (getopt_long_only): Likewise. 2011-07-07 Ulrich Drepper getopt: handle W; without long options in getopt [BZ #12922] * lib/getopt.c (_getopt_internal_r): When "W;" is in short options but no long options are defined, just return 'W'. 2011-07-07 Bruno Haible Avoid literal tabs. * m4/po,m4 (AM_PO_SUBDIRS, AM_POSTPROCESS_PO_MAKEFILE): Use a shell variable containing a tab instead of a literal tab. Reported by Jim Meyering. 2011-07-07 Bruno Haible Comments. * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Update comments about mingw. 2011-07-06 Bruno Haible sys_select: Fix compilation error on mingw, introduced on 2011-06-30. * lib/sys_select.in.h: Don't include . Instead, include . (rpl_fd_isset, FD_ISSET): New definitions, copied from lib/sys_socket.in.h. (close, gethostname): Hide declarations from . (socket, connect, accept, bind, getpeername, getsockname, getsockopt, listen, recv, send, recvfrom, sendto, setsockopt, shutdown): Likewise. * lib/sys_socket.in.h (close, gethostname): Tweak indentation. (select): Don't override if gnulib's was already included. * lib/unistd.in.h (socket, connect, accept, bind, getpeername, getsockname, getsockopt, listen, recv, send, recvfrom, sendto, setsockopt, shutdown, select): Tweak indentation. 2011-07-06 Paul Eggert * modules/pthread_sigmask (configure.ac): gl_SIGNAL_MODULE_INDICATOR and not gl_SYS_SELECT_MODULE_INDICATOR, fixing a typo exposed in an application that does not use the sys_select module. 2011-07-06 Erik Faye-Lund poll: do not return 0 on timeout=-1 * lib/poll.c: Loop with yield if no events occurred. 2011-07-06 Eric Blake pthread_sigmask: always replace when not using pthread * m4/pthread_sigmask.m4 (gl_PTHREAD_SIGMASK): Force sigprocmask replacement when using some threading other than pthread. Fix logic bug. 2011-07-06 Bruno Haible Comments. * m4/printf.m4: Update comments about mingw. 2011-07-06 Paul Eggert sys_select: define sigset_t more portably * lib/sys_select.in.h: Always include , since we now need sigset_t and mingw defines it there. Include before split inclusion guard, to avoid mishaps on Solaris, whose eventually includes us. * m4/signal_h.m4 (gl_SIGNAL_H): Require gl_CHECK_TYPE_SIGSET_T. (gl_CHECK_TYPE_SIGSET_T): New macro, most of the contents of which come from ... * m4/signalblocking.m4 (gl_SIGNALBLOCKING): Require gl_CHECK_TYPE_SIGSET_T. (gl_PREREQ_SIGPROCMASK): Now a no-op, since gl_CHECK_TYPE_SIGSET_T does the real work. * modules/sys_select (Depends-on): Add 'signal'. * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Poison pselect. Suggested by Bruno Haible. pselect: Use pthread_sigmask, not sigprocmask. * lib/pselect.c (pselect): Use pthread_sigmask, as it supports multithreaded apps better than sigprocmask does. * modules/pselect (Depends-on): Depend on pthread_sigmask, not sigprocmask directly. 2011-07-05 Paul Eggert * lib/pselect.c (pselect): Use plain name, without "rpl_". Don't #undef, since we don't need any underlying pselect. * modules/pselect (configure.ac): Use our pselect.o if !HAVE_PSELECT. (Depends-on): Add select. (Link): Add $(LIBSOCKET). These changes suggested by Bruno Haible. pselect: document better * MODULES.html.sh (Support for systems lacking POSIX:2008): Add it. * doc/posix-functions/pselect.texi (pselect): Document new module. pthread_sigmask: new module * MODULES.html.sh (Support for systems lacking POSIX:2008): Add it. * doc/posix-functions/pthread_sigmask.texi: Document new module. * lib/signal.in.h (pthread_sigmask): Arrange for replacement. This is done only as a macro; I don't know how well that'll work for C++. Move include before the include_next, to avoid mishap on Solaris. * m4/signal_h.m4 (gl_SIGNAL_H, gl_SIGNAL_H_DEFAULTS): Check for it. * modules/signal (Makefile.am): Substitute the check's results. * modules/pthread_sigmask, m4/pthread_sigmask.m4: New files. test-pselect: new module * modules/pselect-tests, tests/test-pselect.c: New files. * tests/test-select.c, tests/test-sys_select-c++.cc: If TEST_PSELECT is defined, test pselect instead of testing select. * tests/test-sys_select.c (sigset_t): Test for it, too. Suggested by Bruno Haible. 2011-07-05 Eric Blake snprintf: guarantee %1$d, for libintl * m4/snprintf.m4 (gl_FUNC_SNPRINTF): Require %1$d support. * m4/vsnprintf.m4 (gl_FUNC_VSNPRINTF): Likewise. * doc/posix-functions/snprintf.texi (snprintf): Update. * doc/posix-functions/vsnprintf.texi (vsnprintf): Likewise. * tests/test-snprintf.c (main): Enhance test. * tests/test-vsnprintf.c (main): Likewise. 2011-07-05 Jim Meyering maint: exempt stdio-read.c and stdio-write.c from the cppi check * Makefile (sc_cpp_indent_check): Exempt stdio-read.c and stdio-write.c per Bruno's request, to accommodate this idiom (no space after "#") even when the function is inside an #if block: char * gets (char *s) #undef gets { ... } 2011-07-04 Jim Meyering maint: indent with spaces, not TABs, and add a rule to check this * tests/test-userspec.c: Indent with spaces, not TABs. * tests/test-argp.c: Likewise. * tests/test-c-stack2.sh: Likewise. * tests/test-parse-duration.sh: Likewise * m4/strtod.m4: Likewise. * m4/alloca.m4: Likewise. * m4/pselect.m4: Likewise. * Makefile (sc_prohibit_leading_TABs): Prohibit leading TABs. 2011-07-03 Jim Meyering maint.mk: correct omissions in prohibit_argmatch_without_use check This rule would mistakenly report that argmatch.h is included without use even when both the argmatch and invalid_arg macro were used. * top/maint.mk (sc_prohibit_argmatch_without_use): Also detect uses of argmatch and invalid_arg. 2011-07-03 Bruno Haible Comments about EINTR. * lib/safe-read.h: Explain the purpose of this module. * lib/safe-write.h: Likewise. * doc/posix-functions/read.texi: Mention EINTR and the 'safe-read' module. * doc/posix-functions/write.texi: Mention EINTR and the 'safe-write' module. Reported by Ralf Wildenhues . 2011-06-30 Paul Eggert xnanosleep: Rewrite to use new dtotimespec module. It has the conversion code that used to be in xnanosleep. * lib/xnanosleep.c: Do not include limits.h, stdbool.h, stdio.h, assert.h, sys/types.h, or intprops.h. Include timespec.h instead. (TIME_T_MAX): Remove. (xnanosleep): Rewrite in terms of dtotimespec. * modules/xnanosleep (Depends-on): Add dtotimespec. Remove intprops, stdbool. timespec-add, timespec-sub: new modules * lib/timespec.h (timespec_add, timespec_sub): New decls. * lib/timespec-add.c, lib/timespec-sub.c: * modules/timespec-add, modules/timespec-sub: New files. dtotimespec: new module * lib/timespec.h (dtotimespec): New decl. * lib/dtotimespec.c, modules/dtotimespec: New files. * lib/timespec.h (timespec_sign, timespectod): New inline functions. pselect: new module * lib/sys_select.in.h: Include , for 'sigset_t'. (pselect): New decls. * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Require AC_C_RESTRICT, since the standard pselect decl uses 'restrict'. (gl_SYS_SELECT_H_DEFAULTS): Add defaults for GNULIB_PSELECT, HAVE_PSELECT, REPLACE_PSELECT. * modules/sys_select (sys/select.h): Substitute GNULIB_PSELECT, HAVE_PSELECT, REPLACE_PSELECT. * lib/pselect.c, m4/pselect.m4, modules/pselect: New files. sys_select: don't depend on sys_socket This is so that Emacs doesn't have to drag in m4/sockpfaf.m4 etc; see . This fix works on GNU and GNU-like platforms, but has not been tested on native Windows. * lib/sys_select.in.h: Include only if native Windows. * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Do not require gl_HEADER_SYS_SOCKET. * modules/sys_select (Files): Add m4/sys_socket_h.m4, for gl_PREREQ_SYS_H_WINSOCK2. 2011-06-29 Eric Blake pipe2: fix C89 compile problem * lib/pipe2.c (pipe2): Avoid C99 array initialization. Reported by Bruno Haible. pipe, pipe2: don't corrupt fd on error * lib/pipe.c (pipe): Leave fd unchanged on error. * lib/pipe2.c (pipe2): Likewise. * doc/posix-functions/pipe.texi (pipe): Document cygwin issue. * doc/glibc-functions/pipe2.texi (pipe2): Likewise. 2011-06-27 Paolo Bonzini mmap-anon: do not use regular expressions inadvertently * m4/mmap-anon.m4: Remove trailing period from strings sought in the output. 2011-06-25 Paul Eggert nanosleep: fix integer overflow problem * lib/nanosleep.c (my_usleep): Don't assume signed integer arithmetic wraps around on overflow. nanosleep: simplify carrying * lib/nanosleep.c (nanosleep): Use the requested tv_nsec for the first call to the underyling nanosleep, not for the last one. This doesn't fix any bugs, but it simplifies the computation of the remaining delay. Found while auditing integer overflow issues. dup2: remove test for existence of fcntl * m4/dup2.m4 (gl_FUNC_DUP2): Use "#ifdef FD_CLOEXEC", not "#if HAVE_FCNTL", in the configure-time test program. This removes the need for the AC_CHECK_FUNCS_ONCE([fcntl]), and therefore speeds up "configure" a bit. Found while adding the dup2 module to Emacs. 2011-06-24 Eric Blake maint.mk: enhance useless header checks * top/maint.mk (_sc_header_without_use): Check both include styles. (sc_prohibit_assert_without_use) (sc_prohibit_close_stream_without_use) (sc_prohibit_getopt_without_use) (sc_prohibit_quotearg_without_use) (sc_prohibit_quote_without_use) (sc_prohibit_long_options_without_use) (sc_prohibit_inttostr_without_use) (sc_prohibit_ignore_value_without_use) (sc_prohibit_error_without_use, sc_prohibit_xalloc_without_use) (sc_prohibit_hash_without_use, sc_prohibit_cloexec_without_use) (sc_prohibit_posixver_without_use, sc_prohibit_same_without_use) (sc_prohibit_hash_pjw_without_use) (sc_prohibit_safe_read_without_use) (sc_prohibit_argmatch_without_use) (sc_prohibit_canonicalize_without_use) (sc_prohibit_root_dev_ino_without_use) (sc_prohibit_openat_without_use) (sc_prohibit_c_ctype_without_use) (sc_prohibit_signal_without_use) (sc_prohibit_stdio--_without_use) (sc_prohibit_stdio-safer_without_use) (sc_prohibit_strings_without_use) (sc_prohibit_intprops_without_use) (sc_prohibit_stddef_without_use) (sc_prohibit_xfreopen_without_use): Update clients. 2011-06-24 Jim Meyering syntax-check: keep one maint.mk rule in sync with its header * Makefile (sc_check_sym_list): Add a rule to prevent a repeat of the bug Eric has just fixed, with today's commit 25e4c2ec. I prefer to avoid temporary files here, so use <(...), but that is not supported by /bin/sh, so... (SHELL): Define to /bin/bash. 2011-06-24 Eric Blake maint.mk: update sc_prohibit_intprops_without_use * top/maint.mk (_intprops_names): Match recent changes. 2011-06-24 Bruno Haible strerror-override: No-op tweak. * lib/strerror-override.h (strerror_override): Reorder conditions, for consistency with lib/strerror-override.c. 2011-06-23 Eric Blake maint.mk: test further PATH_MAX issues * top/maint.mk (sc_prohibit_path_max_array): Rename... (sc_prohibit_path_max_allocation): ...and also test alloca. Suggested by Jim Meyering. 2011-06-22 Eric Blake maint.mk: add syntax-check to avoid char[PATH_MAX] * top/maint.mk (sc_prohibit_path_max_array): New rule. stat: be robust to PATH_MAX definition * lib/stat.c (rpl_stat): Require reasonable PATH_MAX. * modules/stat (Depends-on): Add verify. link: work around IRIX bug * m4/link.m4 (gl_FUNC_LINK): Expose the bug. * lib/link.c (rpl_link): Work around it. * tests/test-link.h (test_link): Enhance test. * doc/posix-functions/link.texi (link): Document the bug. getopt: silence clang warning * lib/getopt.c (_getopt_internal_r): Avoid unlikely NULL dereference. Reported by Gustavo Martin Domato. 2011-06-22 Jim Meyering bootstrap: do not insert a blank line into each .gitignore file * build-aux/bootstrap (sort_patterns): Filter out blank lines. 2011-06-21 Eric Blake perror: test for output mismatch * m4/perror.m4 (gl_FUNC_PERROR): Add test, in order to replace perror on IRIX. strerror_r: fix OpenBSD behavior on out-of-range * lib/strerror_r.c (strerror_r): Always use maximal string. * doc/posix-functions/strerror_r.texi (strerror_r): Document it. strerror_r: fix OpenBSD behavior on 0 * lib/strerror-override.c (strerror_override): Also override 0 when needed. * lib/strerror-override.h (strerror_override): Likewise. * lib/strerror.c (strerror): Simplify, now that 0 override is done earlier. * lib/strerror_r.c (strerror_r): Likewise. * m4/strerror.m4 (gl_FUNC_STRERROR): Split detection of 0 behavior... (gl_FUNC_STRERROR_0): ...into new macro. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Replace strerror_r if 0 is overridden. (gl_FUNC_STRERROR_R_WORKS): Avoid extra tests if 0 is broken. * modules/strerror-override (Files): Add strerror.m4. (configure.ac): Also provide override for 0 when needed. * doc/posix-functions/strerror.texi (strerror): Document this. * doc/posix-functions/perror.texi (perror): Likewise. perror: adjust array size * modules/perror (Depends-on): Add strerror-override. * lib/perror.c (perror): Use it to avoid magic number. strerror-override: reduce size * lib/strerror-override.c (strerror_override): Use fewer lines. 2011-06-20 Bruno Haible pathmax: Ensure correct value for PATH_MAX on HP-UX. * lib/pathmax.h (PATH_MAX) [HP-UX]: Define to 1024. 2011-06-20 Paul Eggert alloca: port to compilers that can optimize like GCC 4.6.0 * lib/alloca.c (find_stack_direction): New signature, taken from Autoconf git. This works with GCC 4.6.0. This code should never be used with GCC 4.6.0 itself, as GCC has alloca, but it might be used with other compilers that optimize as well as GCC 4.6.0 does. (alloca): Adjust to new signature. * m4/alloca.m4 (__AC_LIBOBJ_ALLOCA) [Autoconf version < 2.69]: New macro, which patches Autoconf in a similar way. c-stack: stop worrying about stack direction * lib/c-stack.c (find_stack_direction): Remove. (segv_handler): Don't worry about stack direction growth, as it's too much of a pain to configure this correctly, given how compilers are optimizing-away our stack-growth detection code. Instead, assume that any access to just before or just after the stack is OK. * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Don't require AC_FUNC_ALLOCA; no longer needed. 2011-06-20 Eric Blake test-stat: don't allocate PATH_MAX bytes * tests/test-stat.h (test_stat_func): Don't stack-allocate a PATH_MAX-sized buffer. * modules/openat-tests (Depends-on): Add getcwd-lgpl, drop pathmax. * modules/stat-tests (Depends-on): Likewise. * tests/test-fstatat.c (includes): Drop pathmax.h. * tests/test-stat.c (includes): Likewise. Reported by Bruno Haible. 2011-06-20 Bruno Haible float: Work around bugs on FreeBSD/x86, AIX with GCC, IRIX. * lib/float.in.h: Add workarounds for FreeBSD/x86, AIX with GCC, IRIX. * lib/float.c: New file. * m4/float_h.m4 (gl_FLOAT_H): Also handle FreeBSD, AIX, IRIX. Set REPLACE_FLOAT_LDBL. * modules/float (Files): Add lib/float.c. (configure.ac): Invoke AC_LIBOBJ. * doc/posix-headers/float.texi: Mention problems on FreeBSD, AIX, IRIX. 2011-06-20 Bruno Haible Tests for module 'float'. * modules/float-tests: New file. * tests/test-float.c: New file. 2011-06-19 Bruno Haible isinf: Coding style. * lib/isinf.c: Use GNU coding style. 2011-06-19 Bruno Haible linkat test: Avoid test failure on AIX 7.1. * tests/test-linkat.c (main): Allow EINVAL as alternate error value. * tests/test-link.h (test_link): Likewise. 2011-06-19 Bruno Haible pread test: Avoid test failure on OpenBSD 4.9. * tests/test-pread.c (main): Allow EFBIG instead of EINBAL. 2011-06-19 Bruno Haible sprintf-posix: Fix test failure on AIX 7.1. * m4/printf.m4 (gl_PRINTF_PRECISION): Test against AIX bug. * doc/posix-functions/dprintf.texi: Mention limited precision problem on AIX. * doc/posix-functions/fprintf.texi: Likewise. * doc/posix-functions/printf.texi: Likewise. * doc/posix-functions/snprintf.texi: Likewise. * doc/posix-functions/sprintf.texi: Likewise. * doc/posix-functions/vdprintf.texi: Likewise. * doc/posix-functions/vfprintf.texi: Likewise. * doc/posix-functions/vprintf.texi: Likewise. * doc/posix-functions/vsnprintf.texi: Likewise. * doc/posix-functions/vsprintf.texi: Likewise. 2011-06-19 Bruno Haible roundl-ieee: Fix test failure on AIX 7.1. * m4/roundl.m4 (gl_FUNC_ROUNDL): Test also the sign of roundl (-0.3L). * doc/posix-functions/roundl.texi: Mention problem with negative arguments. 2011-06-19 Bruno Haible round-ieee: Fix test failures on AIX 7.1 and OSF/1 5.1. * modules/round-ieee (Depends-on): Add floor-ieee, ceil-ieee. * doc/posix-functions/round.texi: Mention problem with negative arguments. * doc/posix-functions/ceil.texi: Mention problem on OSF/1 5.1. 2011-06-19 Bruno Haible roundf-ieee: Fix test failures on AIX 7.1 and OSF/1 5.1. * m4/roundf.m4 (gl_FUNC_ROUNDF): Test also the sign of roundf (-0.3f). * modules/roundf-ieee (Depends-on): Add floorf-ieee, ceilf-ieee. * doc/posix-functions/roundf.texi: Mention problem with negative arguments. * doc/posix-functions/ceilf.texi: Mention problem on OSF/1 5.1. 2011-06-19 Bruno Haible ceilf-ieee: Work around bug on MacOS X 10.5. * doc/posix-functions/ceilf.texi: Mention the MacOS X 10.5 problem. floor*-ieee, ceil*-ieee, trunc*-ieee, round*-ieee: More robust checks. * m4/floorf.m4 (gl_FUNC_FLOORF): In the test whether the function is IEEE compliant, avoid compiler optimizations. * m4/floor.m4 (gl_FUNC_FLOOR): Likewise. * m4/ceilf.m4 (gl_FUNC_CEILF): Likewise. * m4/ceil.m4 (gl_FUNC_CEIL): Likewise. * m4/ceill.m4 (gl_FUNC_CEILL): Likewise. * m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise. * m4/trunc.m4 (gl_FUNC_TRUNC): Likewise. * m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise. * m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise. * m4/round.m4 (gl_FUNC_ROUND): Likewise. * m4/roundl.m4 (gl_FUNC_ROUNDL): Likewise. 2011-06-19 Bruno Haible ceilf-ieee: Work around bug on AIX 7.1. * m4/ceilf.m4 (gl_FUNC_CEILF): Test also the sign of ceilf (-0.3f). * doc/posix-functions/ceilf.texi: Mention the AIX 7.1 problem. 2011-06-19 Bruno Haible ceil-ieee: Work around bug on AIX 7.1. * m4/ceil.m4 (gl_FUNC_CEIL): Test also the sign of ceil (-0.3). * doc/posix-functions/ceil.texi: Mention the AIX 7.1 problem. 2011-06-18 Bruno Haible fsync test: Avoid test failure on MacOS X and AIX. * tests/test-fsync.c (fsync): Allow ENOTSUP and EBADF instead of EINVAL. 2011-06-18 Bruno Haible openat, fdopendir tests: Fix link errors. * modules/openat-tests (Depends-on): Add progname. * modules/fdopendir-tests (Depends-on): Likewise. * tests/test-fchownat.c: Include progname.h. (main): Call set_program_name. * tests/test-fstatat.c: Include progname.h. (main): Call set_program_name. * tests/test-mkdirat.c: Include progname.h. (main): Call set_program_name. * tests/test-openat.c: Include progname.h. (main): Call set_program_name. * tests/test-unlinkat.c: Include progname.h. (main): Call set_program_name. * tests/test-fdopendir.c: Include progname.h. (main): Call set_program_name. 2011-06-18 Bruno Haible Doc update. * doc/posix-functions/pthread_attr_getstack.texi: Update info regarding HP-UX. * doc/posix-functions/pthread_attr_setstack.texi: Likewise. 2011-06-18 Bruno Haible getcwd tests: Avoid compilation error on HP-UX 11.31. * modules/getcwd-tests (Depends-on): Add pathmax. * tests/test-getcwd.c: Include pathmax.h. 2011-06-18 Bruno Haible isfinite, isinf: Fix link error on AIX 6 and 7. * m4/isfinite.m4 (gl_ISFINITE): When determining whether libm is needed, also test the macro with a 'float' argument. * m4/isinf.m4 (gl_ISINF): Likewise. 2011-06-18 Bruno Haible getloadavg: Don't clobber LIBS. Regression from previous commit. * m4/getloadavg.m4 (gl_PREREQ_GETLOADAVG): Move tests that use AC_CHECK_LIB from here... (gl_GETLOADAVG): ... to here, inside the experiment with LIBS. (gl_GETLOADAVG, gl_PREREQ_GETLOADAVG): Rename gl_have_func to gl_func_getloadavg_done. Reported by Tom G. Christensen . 2011-06-18 Bruno Haible clean-temp: Improve documentation. * lib/clean-temp.h: Explain better how to use this module. Reported by John Darrington . 2011-06-17 Bruno Haible pread, pwrite: Avoid cc warning on AIX. * lib/unistd.in.h (pread): Undefine before defining as a macro. (pwrite): Likewise. 2011-06-17 Bruno Haible spawn-pipe tests: Fix link error. * tests/test-spawn-pipe-child.c: Undefine fprintf. Reported by Tom G. Christensen . 2011-06-17 Bruno Haible Tests: Remove unnecessary dependency. * modules/canonicalize-tests (Depends-on): Remove progname. * modules/chown-tests (Depends-on): Likewise. * modules/dirname-tests (Depends-on): Likewise. * modules/fdopendir-tests (Depends-on): Likewise. * modules/fdutimensat-tests (Depends-on): Likewise. * modules/hash-tests (Depends-on): Likewise. * modules/lchown-tests (Depends-on): Likewise. * modules/linkat-tests (Depends-on): Likewise. * modules/renameat-tests (Depends-on): Likewise. * modules/spawn-pipe-tests (Depends-on): Likewise. * modules/utimensat-tests (Depends-on): Likewise. 2011-06-17 Bruno Haible spawn-pipe tests: Fix link error. * tests/test-spawn-pipe-child.c: Undefine fflush. 2011-06-17 Bruno Haible Fix tests link errors. * modules/ceil-ieee-tests (Makefile.am): Use CEIL_LIBM, not FLOOR_LIBM. * modules/chown-tests (Makefile.am): Don't link test-chown with LIBINTL. * modules/lchown-tests (Makefile.am): Don't link test-lchown with LIBINTL. * modules/utimens-tests (Makefile.am): Don't link test-utimens with LIBINTL. * modules/futimens-tests (Makefile.am): Don't link test-futimens with LIBINTL. 2011-06-16 Bruno Haible crypto/gc-sha1: Fix recent regression. * modules/crypto/gc-sha1 (configure.ac): Invoke AC_LIBOBJ here. * m4/gc-sha1.m4 (gl_GC_SHA1): Don't invoke gl_SHA1. crypto/gc-md5: Fix recent regression. * modules/crypto/gc-md5 (configure.ac): Invoke AC_LIBOBJ here. crypto/gc-md4: Fix recent regression. * modules/crypto/gc-md4 (configure.ac): Invoke AC_LIBOBJ here. * m4/md4.m4 (gl_MD4): Ensure the expansion is non-empty. crypto/gc-arctwo: Fix recent regression. * modules/crypto/gc-arctwo (configure.ac): Invoke AC_LIBOBJ here. * m4/arctwo.m4 (gl_ARCTWO): Ensure the expansion is non-empty. crypto/gc-rijndael: Fix recent regression. * modules/crypto/gc-rijndael (Files): Remove m4/rijndael.m4. (configure.ac): Invoke AC_LIBOBJ here. * m4/gc-rijndael.m4 (gl_GC_RIJNDAEL): Don't invoke gl_RIJNDAEL. Reported by Tom G. Christensen . crypto/gc-hmac-sha1: Fix recent regression. * modules/crypto/gc-hmac-sha1 (Files): Remove m4/hmac-sha1.m4. (configure.ac): Invoke AC_LIBOBJ here. * m4/gc-hmac-sha1.m4 (gl_GC_HMAC_SHA1): Don't invoke gl_HMAC_SHA1. Reported by Tom G. Christensen . crypto/gc-hmac-md5: Fix recent regression. * modules/crypto/gc-hmac-md5 (Files): Remove m4/hmac-md5.m4. (configure.ac): Invoke AC_LIBOBJ here. * m4/gc-hmac-md5.m4 (gl_GC_HMAC_MD5): Don't invoke gl_HMAC_MD5. Reported by Tom G. Christensen . crypto/gc-des: Fix recent regression. * modules/crypto/gc-des (Files): Remove m4/des.m4. (configure.ac): Invoke AC_LIBOBJ here. * m4/gc-des.m4 (gl_GC_DES): Don't invoke gl_DES. Reported by Tom G. Christensen . crypto/gc-arcfour: Fix recent regression. * modules/crypto/gc-arcfour (Files): Remove m4/arcfour.m4. (configure.ac): Invoke AC_LIBOBJ here. * m4/gc-arcfour.m4 (gl_GC_ARCFOUR): Don't invoke gl_ARCFOUR. Reported by Tom G. Christensen . 2011-06-16 Paul Eggert * m4/lstat.m4 (gl_FUNC_LSTAT): Fix typo in prerequisite. After the 2011-05-21 change, this macro requires gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK, not AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK. 2011-06-16 Bruno Haible fprintftime: Move AC_LIBOBJ invocations to module description. * m4/fprintftime.m4: Remove file. * modules/fprintftime (Files): Remove m4/fprintftime.m4. (configure.ac): Remove gl_FPRINTFTIME call. (Makefile.am): Augment lib_SOURCES. Reported by Jim Meyering. 2011-06-16 Bruno Haible tmpfile-safer: Finish 2011-05-23 commit. * m4/stdio-safer.m4: Really remove file. Reported by Jim Meyering. 2011-06-16 Bruno Haible syntax-check: Fix typo. * Makefile (allow_AC_LIBOBJ): Mention printf-posix-rpl.m4, not printf-posix.m4. Reported by Jim Meyering. 2011-06-13 Jim Meyering syntax-check: add a rule to help enforce the no-AC_LIBOBJ-in-m4/ policy * Makefile (sc_prohibit_AC_LIBOBJ_in_m4): New rule. 2011-05-23 Bruno Haible yesno: Move AC_LIBOBJ invocations to module description. * m4/yesno.m4 (gl_YESNO): Remove AC_LIBOBJ invocation. * modules/yesno (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible xstrtol: Move AC_LIBOBJ invocations to module description. * m4/xstrtol.m4 (gl_XSTRTOL): Remove AC_LIBOBJ invocations. * modules/xstrtol (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible xstrtold: Move AC_LIBOBJ invocations to module description. * m4/xstrtod.m4 (gl_XSTRTOLD): Remove AC_LIBOBJ invocation. * modules/xstrtold (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible xstrtod: Move AC_LIBOBJ invocations to module description. * m4/xstrtod.m4 (gl_XSTRTOD): Remove AC_LIBOBJ invocation. * modules/xstrtod (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible xnanosleep: Move AC_LIBOBJ invocations to module description. * m4/xnanosleep.m4 (gl_XNANOSLEEP): Remove AC_LIBOBJ invocation. * modules/xnanosleep (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible xgetcwd: Move AC_LIBOBJ invocations to module description. * m4/xgetcwd.m4 (gl_XGETCWD): Remove AC_LIBOBJ invocation. * modules/xgetcwd (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible xalloc: Move AC_LIBOBJ invocations to module description. * m4/xalloc.m4 (gl_XALLOC): Remove AC_LIBOBJ invocation. * modules/xalloc (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible write-any-file: Move AC_LIBOBJ invocations to module description. * m4/write-any-file.m4 (gl_WRITE_ANY_FILE): Remove AC_LIBOBJ invocation. * modules/write-any-file (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible utimens: Move AC_LIBOBJ invocations to module description. * m4/utimens.m4 (gl_UTIMENS): Remove AC_LIBOBJ invocation. * modules/utimens (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible utimecmp: Move AC_LIBOBJ invocations to module description. * m4/utimecmp.m4 (gl_UTIMECMP): Remove AC_LIBOBJ invocation. * modules/utimecmp (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible userspec: Move AC_LIBOBJ invocations to module description. * m4/userspec.m4 (gl_USERSPEC): Remove AC_LIBOBJ invocation. * modules/userspec (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible unlinkdir: Move AC_LIBOBJ invocations to module description. * m4/unlinkdir.m4 (gl_UNLINKDIR): Remove AC_LIBOBJ invocation. * modules/unlinkdir (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible unistd-safer: Move AC_LIBOBJ invocations to module description. * m4/unistd-safer.m4 (gl_UNISTD_SAFER): Remove AC_LIBOBJ invocations. * modules/unistd-safer (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible tempname: Move AC_LIBOBJ invocations to module description. * m4/tempname.m4 (gl_FUNC_GEN_TEMPNAME): Remove AC_LIBOBJ invocation. * modules/tempname (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible strftime: Move AC_LIBOBJ invocations to module description. * m4/strftime.m4 (gl_FUNC_STRFTIME): Remove AC_LIBOBJ invocation. * modules/strftime (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible stdlib-safer: Move AC_LIBOBJ invocations to module description. * m4/stdlib-safer.m4: Remove file. * modules/stdlib-safer (Files): Remove m4/stdlib-safer.m4. (configure.ac): Remove gl_STDLIB_SAFER call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible tmpfile-safer: Move AC_LIBOBJ invocations to module description. * m4/stdio-safer.m4: Remove file. * modules/tmpfile-safer (Files): Remove m4/stdio-safer.m4. (configure.ac): Remove gl_TMPFILE_SAFER call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible popen-safer: Move AC_LIBOBJ invocations to module description. * m4/stdio-safer.m4 (gl_POPEN_SAFER): Remove macro. * modules/popen-safer (Files): Remove m4/stdio-safer.m4. (configure.ac): Remove gl_POPEN_SAFER call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible freopen-safer: Move AC_LIBOBJ invocations to module description. * m4/stdio-safer.m4 (gl_FREOPEN_SAFER): Remove macro. * modules/freopen-safer (Files): Remove m4/stdio-safer.m4. (configure.ac): Remove gl_FREOPEN_SAFER call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible fopen-safer: Move AC_LIBOBJ invocations to module description. * m4/stdio-safer.m4 (gl_FOPEN_SAFER): Remove macro. * modules/fopen-safer (Files): Remove m4/stdio-safer.m4. (configure.ac): Remove gl_FOPEN_SAFER call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible crypto/sha512: Move AC_LIBOBJ invocations to module description. * m4/sha512.m4 (gl_SHA512): Remove AC_LIBOBJ invocation. * modules/crypto/sha512 (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible crypto/sha256: Move AC_LIBOBJ invocations to module description. * m4/sha256.m4 (gl_SHA256): Remove AC_LIBOBJ invocation. * modules/crypto/sha256 (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible crypto/sha1: Move AC_LIBOBJ invocations to module description. * m4/sha1.m4 (gl_SHA1): Remove AC_LIBOBJ invocation. * modules/crypto/sha1 (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible settime: Move AC_LIBOBJ invocations to module description. * m4/settime.m4 (gl_SETTIME): Remove AC_LIBOBJ invocation. * modules/settime (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible savedir: Move AC_LIBOBJ invocations to module description. * m4/savedir.m4 (gl_SAVEDIR): Remove AC_LIBOBJ invocation. * modules/savedir (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible save-cwd: Move AC_LIBOBJ invocations to module description. * m4/save-cwd.m4 (gl_SAVE_CWD): Remove AC_LIBOBJ invocation. * modules/save-cwd (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible same: Move AC_LIBOBJ invocations to module description. * m4/same.m4 (gl_SAME): Remove AC_LIBOBJ invocation. * modules/same (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible safe-write: Move AC_LIBOBJ invocations to module description. * m4/safe-write.m4 (gl_SAFE_WRITE): Remove macro. * modules/safe-write (configure.ac): Invoke gl_PREREQ_SAFE_WRITE instead of gl_SAFE_WRITE. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible safe-read: Move AC_LIBOBJ invocations to module description. * m4/safe-read.m4 (gl_SAFE_READ): Remove macro. * modules/safe-read (configure.ac): Invoke gl_PREREQ_SAFE_READ instead of gl_SAFE_READ. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible safe-alloc: Move AC_LIBOBJ invocations to module description. * m4/safe-alloc.m4 (gl_SAFE_ALLOC): Remove AC_LIBOBJ invocation. * modules/safe-alloc (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible crypto/rijndael: Move AC_LIBOBJ invocations to module description. * m4/rijndael.m4: Remove file. * modules/crypto/rijndael (Files): Remove it. (configure.ac): Remove gl_RIJNDAEL call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible readtokens: Move AC_LIBOBJ invocations to module description. * m4/readtokens.m4 (gl_READTOKENS): Remove AC_LIBOBJ invocation. * modules/readtokens (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible read-file: Move AC_LIBOBJ invocations to module description. * m4/read-file.m4 (gl_FUNC_READ_FILE): Remove macro. * modules/read-file (configure.ac): Invoke gl_PREREQ_READ_FILE instead of gl_FUNC_READ_FILE. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible quotearg: Move AC_LIBOBJ invocations to module description. * m4/quotearg.m4 (gl_QUOTEARG): Remove AC_LIBOBJ invocation. * modules/quotearg (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible quote: Move AC_LIBOBJ invocations to module description. * m4/quote.m4 (gl_QUOTE): Remove AC_LIBOBJ invocation. * modules/quote (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible posixver: Move AC_LIBOBJ invocations to module description. * m4/posixver.m4 (gl_POSIXVER): Remove AC_LIBOBJ invocation. * modules/posixver (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible posixtm: Move AC_LIBOBJ invocations to module description. * m4/posixtm.m4 (gl_POSIXTM): Remove AC_LIBOBJ invocation. * modules/posixtm (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible physmem: Move AC_LIBOBJ invocations to module description. * m4/physmem.m4 (gl_PHYSMEM): Remove AC_LIBOBJ invocation. * modules/physmem (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible pagealign_alloc: Move AC_LIBOBJ invocations to module description. * m4/pagealign_alloc.m4 (gl_PAGEALIGN_ALLOC): Remove AC_LIBOBJ invocation. * modules/pagealign_alloc (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible mpsort: Move AC_LIBOBJ invocations to module description. * m4/mpsort.m4 (gl_MPSORT): Remove AC_LIBOBJ invocation. * modules/mpsort (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible modechange: Move AC_LIBOBJ invocations to module description. * m4/modechange.m4 (gl_MODECHANGE): Remove AC_LIBOBJ invocation. * modules/modechange (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible mkdir-p: Move AC_LIBOBJ invocations to module description. * m4/mkdir-p.m4 (gl_MKDIR_PARENTS): Remove AC_LIBOBJ invocations. * modules/mkdir-p (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible mkancesdirs: Move AC_LIBOBJ invocations to module description. * m4/mkancesdirs.m4 (gl_MKANCESDIRS): Remove AC_LIBOBJ invocation. * modules/mkancesdirs (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible mgetgroups: Move AC_LIBOBJ invocations to module description. * m4/mgetgroups.m4 (gl_MGETGROUPS): Remove AC_LIBOBJ invocation. * modules/mgetgroups (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible memxor: Move AC_LIBOBJ invocations to module description. * m4/memxor.m4 (gl_MEMXOR): Remove AC_LIBOBJ invocation. * modules/memxor (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible memcoll: Move AC_LIBOBJ invocations to module description. * m4/memcoll.m4 (gl_MEMCOLL): Remove AC_LIBOBJ invocation. * modules/memcoll (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible memcasecmp: Move AC_LIBOBJ invocations to module description. * m4/memcasecmp.m4 (gl_MEMCASECMP): Remove AC_LIBOBJ invocation. * modules/memcasecmp (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible crypto/md5: Move AC_LIBOBJ invocations to module description. * m4/md5.m4 (gl_MD5): Remove AC_LIBOBJ invocation. * modules/crypto/md5 (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible crypto/md4: Move AC_LIBOBJ invocations to module description. * m4/md4.m4 (gl_MD4): Remove AC_LIBOBJ invocation. * modules/crypto/md4 (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible crypto/md2: Move AC_LIBOBJ invocations to module description. * m4/md2.m4: Remove file. * modules/crypto/md2 (Files): Remove it. (configure.ac): Remove gl_MD2 call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible long-options: Move AC_LIBOBJ invocations to module description. * m4/long-options.m4: Remove file. * modules/long-options (Files): Remove it. (configure.ac): Remove gl_LONG_OPTIONS call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible i-ring: Move AC_LIBOBJ invocations to module description. * m4/i-ring.m4 (gl_I_RING): Remove AC_LIBOBJ invocation. * modules/i-ring (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible idcache: Move AC_LIBOBJ invocations to module description. * m4/idcache.m4 (gl_IDCACHE): Remove AC_LIBOBJ invocation. * modules/idcache (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible human: Move AC_LIBOBJ invocations to module description. * m4/human.m4 (gl_HUMAN): Remove AC_LIBOBJ invocation. * modules/human (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible crypto/hmac-sha1: Move AC_LIBOBJ invocations to module description. * m4/hmac-sha1.m4: Remove file. * modules/crypto/hmac-sha1 (Files): Remove it. (configure.ac): Remove gl_HMAC_SHA1 call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible crypto/hmac-md5: Move AC_LIBOBJ invocations to module description. * m4/hmac-md5.m4: Remove file. * modules/crypto/hmac-md5 (Files): Remove it. (configure.ac): Remove gl_HMAC_MD5 call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible hash: Move AC_LIBOBJ invocations to module description. * m4/hash.m4: Remove file. * modules/hash (Files): Remove it. (configure.ac): Remove gl_HASH call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible hard-locale: Move AC_LIBOBJ invocations to module description. * m4/hard-locale.m4 (gl_HARD_LOCALE): Remove AC_LIBOBJ invocation. * modules/hard-locale (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible getugroups: Move AC_LIBOBJ invocations to module description. * m4/getugroups.m4 (gl_GETUGROUPS): Remove AC_LIBOBJ invocation. * modules/getugroups (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible gettime: Move AC_LIBOBJ invocations to module description. * m4/gettime.m4 (gl_GETTIME): Remove AC_LIBOBJ invocation. * modules/gettime (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible getndelim2: Move AC_LIBOBJ invocations to module description. * m4/getndelim2.m4 (gl_GETNDELIM2): Remove AC_LIBOBJ invocation. * modules/getndelim2 (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible crypto/gc-pbkdf2-sha1: Move AC_LIBOBJ invocations to module description. * m4/gc-pbkdf2-sha1.m4: Remove file. * modules/crypto/gc-pbkdf2-sha1 (Files): Remove it. (configure.ac): Remove gl_GC_PBKDF2_SHA1 call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible fts: Move AC_LIBOBJ invocations to module description. * m4/fts.m4 (gl_FUNC_FTS_CORE): Move AC_LIBOBJ invocation from here... * modules/fts (configure.ac): ... to here. 2011-05-23 Bruno Haible file-type: Move AC_LIBOBJ invocations to module description. * m4/file-type.m4: Remove file. * modules/file-type (Files): Remove it. (configure.ac): Remove gl_FILE_TYPE call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible filenamecat*: Respect rules for use of AC_LIBOBJ. * m4/filenamecat.m4 (gl_FILE_NAME_CONCAT, gl_FILE_NAME_CONCAT_LGPL): Remove AC_LIBOBJ invocation. * modules/filenamecat (Makefile.am): Augment lib_SOURCES. * modules/filenamecat-lgpl (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible filemode: Move AC_LIBOBJ invocations to module description. * m4/filemode.m4 (gl_FILEMODE): Remove AC_LIBOBJ invocation. * modules/filemode (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible openat-safer: Move AC_LIBOBJ invocations to module description. * m4/fcntl-safer.m4 (gl_OPENAT_SAFER): Remove AC_LIBOBJ invocation. * modules/openat-safer (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible fcntl-safer: Move AC_LIBOBJ invocations to module description. * m4/fcntl-safer.m4 (gl_FCNTL_SAFER): Remove AC_LIBOBJ invocations. * modules/fcntl-safer (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible exclude: Move AC_LIBOBJ invocations to module description. * m4/exclude.m4: Remove file. * modules/exclude (Files): Remove it. (configure.ac): Remove gl_EXCLUDE call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible dirname*: Respect rules for use of AC_LIBOBJ. * m4/dirname.m4 (gl_DIRNAME, gl_DIRNAME_LGPL): Remove AC_LIBOBJ invocations. * modules/dirname (Makefile.am): Augment lib_SOURCES. * modules/dirname-lgpl (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible dirent-safer: Move AC_LIBOBJ invocations to module description. * m4/dirent-safer.m4 (gl_DIRENT_SAFER): Remove AC_LIBOBJ invocation. * modules/dirent-safer (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible crypto/des: Move AC_LIBOBJ invocations to module description. * m4/des.m4: Remove file. * modules/crypto/des (Files): Remove it. (configure.ac): Remove gl_DES call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible cycle-check: Move AC_LIBOBJ invocations to module description. * m4/cycle-check.m4 (gl_CYCLE_CHECK): Remove AC_LIBOBJ invocation. * modules/cycle-check (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible c-strtold: Move AC_LIBOBJ invocations to module description. * m4/c-strtod.m4 (gl_C_STRTOLD): Remove AC_LIBOBJ invocation. * modules/c-strtold (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible c-strtod: Move AC_LIBOBJ invocations to module description. * m4/c-strtod.m4 (gl_C_STRTOD): Remove AC_LIBOBJ invocation. * modules/c-strtod (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible crc: Move AC_LIBOBJ invocations to module description. * m4/crc.m4: Remove file. * modules/crc (Files): Remove it. (configure.ac): Remove gl_CRC call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible close-stream: Move AC_LIBOBJ invocations to module description. * m4/close-stream.m4 (gl_CLOSE_STREAM): Remove AC_LIBOBJ invocation. * modules/close-stream (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible closeout: Move AC_LIBOBJ invocations to module description. * m4/closeout.m4 (gl_CLOSEOUT): Remove AC_LIBOBJ invocation. * modules/closeout (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible closein: Move AC_LIBOBJ invocations to module description. * m4/closein.m4 (gl_CLOSEIN): Remove AC_LIBOBJ invocation. * modules/closein (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible cloexec: Move AC_LIBOBJ invocations to module description. * m4/cloexec.m4: Remove file. * modules/cloexec (Files): Remove it. (configure.ac): Remove gl_CLOEXEC call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible check-version: Move AC_LIBOBJ invocations to module description. * m4/check-version.m4: Remove file. * modules/check-version (Files): Remove it. (configure.ac): Remove gl_CHECK_VERSION call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible chdir-safer: Move AC_LIBOBJ invocations to module description. * m4/chdir-safer.m4 (gl_CHDIR_SAFER): Remove AC_LIBOBJ invocation. * modules/chdir-safer (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible canonicalize: Move AC_LIBOBJ invocations to module description. * m4/canonicalize.m4 (gl_FUNC_CANONICALIZE_FILENAME_MODE): Remove AC_LIBOBJ invocation. * modules/canonicalize (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible canon-host: Move AC_LIBOBJ invocations to module description. * m4/canon-host.m4 (gl_CANON_HOST): Remove macro. * modules/canon-host (configure.ac): Invoke gl_PREREQ_CANON_HOST instead of gl_CANON_HOST. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible backupfile: Move AC_LIBOBJ invocations to module description. * m4/backupfile.m4 (gl_BACKUPFILE): Remove AC_LIBOBJ invocation. * modules/backupfile (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible argmatch: Move AC_LIBOBJ invocations to module description. * m4/argmatch.m4: Remove file. * modules/argmatch (Files): Remove it. (configure.ac): Remove gl_ARGMATCH call. (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible crypto/arctwo: Move AC_LIBOBJ invocations to module description. * m4/arctwo.m4 (gl_ARCTWO): Remove AC_LIBOBJ invocation. * modules/crypto/arctwo (Makefile.am): Augment lib_SOURCES. 2011-05-23 Bruno Haible crypto/arcfour: Move AC_LIBOBJ invocations to module description. * m4/arcfour.m4: Remove file. * modules/crypto/arcfour (Files): Remove it. (configure.ac): Remove gl_ARCFOUR call. (Makefile.am): Augment lib_SOURCES. 2011-05-22 Bruno Haible write: Move AC_LIBOBJ invocations to module description. * m4/write.m4 (gl_FUNC_WRITE): Move AC_LIBOBJ invocation from here... * modules/write (configure.ac): ... to here. 2011-05-22 Bruno Haible wmemset: Move AC_LIBOBJ invocations to module description. * m4/wmemset.m4 (gl_FUNC_WMEMSET): Move AC_LIBOBJ invocation from here... * modules/wmemset (configure.ac): ... to here. 2011-05-22 Bruno Haible wmemmove: Move AC_LIBOBJ invocations to module description. * m4/wmemmove.m4 (gl_FUNC_WMEMMOVE): Move AC_LIBOBJ invocation from here... * modules/wmemmove (configure.ac): ... to here. 2011-05-22 Bruno Haible wmemcpy: Move AC_LIBOBJ invocations to module description. * m4/wmemcpy.m4 (gl_FUNC_WMEMCPY): Move AC_LIBOBJ invocation from here... * modules/wmemcpy (configure.ac): ... to here. 2011-05-22 Bruno Haible wmemcmp: Move AC_LIBOBJ invocations to module description. * m4/wmemcmp.m4 (gl_FUNC_WMEMCMP): Move AC_LIBOBJ invocation from here... * modules/wmemcmp (configure.ac): ... to here. 2011-05-22 Bruno Haible wmemchr: Move AC_LIBOBJ invocations to module description. * m4/wmemchr.m4 (gl_FUNC_WMEMCHR): Move AC_LIBOBJ invocation from here... * modules/wmemchr (configure.ac): ... to here. 2011-05-22 Bruno Haible wcswidth: Move AC_LIBOBJ invocations to module description. * m4/wcswidth.m4 (gl_FUNC_WCSWIDTH): Move AC_LIBOBJ invocation from here... * modules/wcswidth (configure.ac): ... to here. 2011-05-22 Bruno Haible wcwidth: Respect rules for use of AC_LIBOBJ. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Set HAVE_WCWIDTH. Move AC_LIBOBJ invocation from here... * modules/wcwidth (configure.ac): ... to here. (Depends-on): Update conditions. 2011-05-22 Bruno Haible wctype: Move AC_LIBOBJ invocations to module description. * m4/wctype.m4 (gl_FUNC_WCTYPE): Set HAVE_WCTYPE. Move AC_LIBOBJ invocation from here... * modules/wctype (configure.ac): ... to here. (Depends-on): Update conditions. 2011-05-22 Bruno Haible wctrans: Move AC_LIBOBJ invocations to module description. * m4/wctrans.m4 (gl_FUNC_WCTRANS): Set HAVE_WCTRANS. Move AC_LIBOBJ invocation from here... * modules/wctrans (configure.ac): ... to here. 2011-05-22 Bruno Haible wctomb: Move AC_LIBOBJ invocations to module description. * m4/wctomb.m4 (gl_FUNC_WCTOMB): Move AC_LIBOBJ and gl_PREREQ_WCTOMB invocations from here... * modules/wctomb (configure.ac): ... to here. 2011-05-22 Bruno Haible wctob: Move AC_LIBOBJ invocations to module description. * m4/wctob.m4 (gl_FUNC_WCTOB): Set HAVE_WCTOB. Move AC_LIBOBJ and gl_PREREQ_WCTOB invocations from here... * modules/wctob (configure.ac): ... to here. (Depends-on): Update conditions. 2011-05-22 Bruno Haible wcsxfrm: Move AC_LIBOBJ invocations to module description. * m4/wcsxfrm.m4 (gl_FUNC_WCSXFRM): Move AC_LIBOBJ invocation from here... * modules/wcsxfrm (configure.ac): ... to here. 2011-05-22 Bruno Haible wcstok: Move AC_LIBOBJ invocations to module description. * m4/wcstok.m4 (gl_FUNC_WCSTOK): Move AC_LIBOBJ invocation from here... * modules/wcstok (configure.ac): ... to here. 2011-05-22 Bruno Haible wcsstr: Move AC_LIBOBJ invocations to module description. * m4/wcsstr.m4 (gl_FUNC_WCSSTR): Move AC_LIBOBJ invocation from here... * modules/wcsstr (configure.ac): ... to here. 2011-05-22 Bruno Haible wcsspn: Move AC_LIBOBJ invocations to module description. * m4/wcsspn.m4 (gl_FUNC_WCSSPN): Move AC_LIBOBJ invocation from here... * modules/wcsspn (configure.ac): ... to here. 2011-05-22 Bruno Haible wcsrtombs: Move AC_LIBOBJ invocations to module description. * m4/wcsrtombs.m4 (gl_FUNC_WCSRTOMBS): Move AC_LIBOBJ and gl_PREREQ_WCSRTOMBS invocations from here... * modules/wcsrtombs (configure.ac): ... to here. 2011-05-22 Bruno Haible wcsrchr: Move AC_LIBOBJ invocations to module description. * m4/wcsrchr.m4 (gl_FUNC_WCSRCHR): Move AC_LIBOBJ invocation from here... * modules/wcsrchr (configure.ac): ... to here. 2011-05-22 Bruno Haible wcspbrk: Move AC_LIBOBJ invocations to module description. * m4/wcspbrk.m4 (gl_FUNC_WCSPBRK): Move AC_LIBOBJ invocation from here... * modules/wcspbrk (configure.ac): ... to here. 2011-05-22 Bruno Haible wcsnrtombs: Move AC_LIBOBJ invocations to module description. * m4/wcsnrtombs.m4 (gl_FUNC_WCSNRTOMBS): Move AC_LIBOBJ and gl_PREREQ_WCSNRTOMBS invocations from here... * modules/wcsnrtombs (configure.ac): ... to here. 2011-05-22 Bruno Haible wcsnlen: Move AC_LIBOBJ invocations to module description. * m4/wcsnlen.m4 (gl_FUNC_WCSNLEN): Move AC_LIBOBJ invocation from here... * modules/wcsnlen (configure.ac): ... to here. 2011-05-22 Bruno Haible wcsncpy: Move AC_LIBOBJ invocations to module description. * m4/wcsncpy.m4 (gl_FUNC_WCSNCPY): Move AC_LIBOBJ invocation from here... * modules/wcsncpy (configure.ac): ... to here. 2011-05-22 Bruno Haible wcsncmp: Move AC_LIBOBJ invocations to module description. * m4/wcsncmp.m4 (gl_FUNC_WCSNCMP): Move AC_LIBOBJ invocation from here... * modules/wcsncmp (configure.ac): ... to here. 2011-05-22 Bruno Haible wcsncat: Move AC_LIBOBJ invocations to module description. * m4/wcsncat.m4 (gl_FUNC_WCSNCAT): Move AC_LIBOBJ invocation from here... * modules/wcsncat (configure.ac): ... to here. 2011-05-22 Bruno Haible wcsncasecmp: Move AC_LIBOBJ invocations to module description. * m4/wcsncasecmp.m4 (gl_FUNC_WCSNCASECMP): Move AC_LIBOBJ invocation from here... * modules/wcsncasecmp (configure.ac): ... to here. 2011-05-22 Bruno Haible wcslen: Move AC_LIBOBJ invocations to module description. * m4/wcslen.m4 (gl_FUNC_WCSLEN): Move AC_LIBOBJ invocation from here... * modules/wcslen (configure.ac): ... to here. 2011-05-22 Bruno Haible wcsdup: Move AC_LIBOBJ invocations to module description. * m4/wcsdup.m4 (gl_FUNC_WCSDUP): Move AC_LIBOBJ invocation from here... * modules/wcsdup (configure.ac): ... to here. 2011-05-22 Bruno Haible wcscspn: Move AC_LIBOBJ invocations to module description. * m4/wcscspn.m4 (gl_FUNC_WCSCSPN): Move AC_LIBOBJ invocation from here... * modules/wcscspn (configure.ac): ... to here. 2011-05-22 Bruno Haible wcscpy: Move AC_LIBOBJ invocations to module description. * m4/wcscpy.m4 (gl_FUNC_WCSCPY): Move AC_LIBOBJ invocation from here... * modules/wcscpy (configure.ac): ... to here. 2011-05-22 Bruno Haible wcscoll: Move AC_LIBOBJ invocations to module description. * m4/wcscoll.m4 (gl_FUNC_WCSCOLL): Move AC_LIBOBJ invocation from here... * modules/wcscoll (configure.ac): ... to here. 2011-05-22 Bruno Haible wcscmp: Move AC_LIBOBJ invocations to module description. * m4/wcscmp.m4 (gl_FUNC_WCSCMP): Move AC_LIBOBJ invocation from here... * modules/wcscmp (configure.ac): ... to here. 2011-05-22 Bruno Haible wcschr: Move AC_LIBOBJ invocations to module description. * m4/wcschr.m4 (gl_FUNC_WCSCHR): Move AC_LIBOBJ invocation from here... * modules/wcschr (configure.ac): ... to here. 2011-05-22 Bruno Haible wcscat: Move AC_LIBOBJ invocations to module description. * m4/wcscat.m4 (gl_FUNC_WCSCAT): Move AC_LIBOBJ invocation from here... * modules/wcscat (configure.ac): ... to here. 2011-05-22 Bruno Haible wcscasecmp: Move AC_LIBOBJ invocations to module description. * m4/wcscasecmp.m4 (gl_FUNC_WCSCASECMP): Move AC_LIBOBJ invocation from here... * modules/wcscasecmp (configure.ac): ... to here. 2011-05-22 Bruno Haible wcrtomb: Move AC_LIBOBJ invocations to module description. * m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Move AC_LIBOBJ and gl_PREREQ_WCRTOMB invocations from here... * modules/wcrtomb (configure.ac): ... to here. 2011-05-22 Bruno Haible wcpncpy: Move AC_LIBOBJ invocations to module description. * m4/wcpncpy.m4 (gl_FUNC_WCPNCPY): Move AC_LIBOBJ invocation from here... * modules/wcpncpy (configure.ac): ... to here. 2011-05-22 Bruno Haible wcpcpy: Move AC_LIBOBJ invocations to module description. * m4/wcpcpy.m4 (gl_FUNC_WCPCPY): Move AC_LIBOBJ invocation from here... * modules/wcpcpy (configure.ac): ... to here. 2011-05-22 Bruno Haible waitpid: Move AC_LIBOBJ invocations to module description. * m4/waitpid.m4 (gl_FUNC_WAITPID): Set HAVE_WAITPID. Move AC_LIBOBJ invocation from here... * modules/waitpid (configure.ac): ... to here. 2011-05-22 Bruno Haible utimensat: Move AC_LIBOBJ invocations to module description. * m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Move AC_LIBOBJ invocations from here... * modules/utimensat (configure.ac): ... to here. 2011-05-22 Bruno Haible usleep: Move AC_LIBOBJ invocations to module description. * m4/usleep.m4 (gl_FUNC_USLEEP): Move AC_LIBOBJ invocations from here... * modules/usleep (configure.ac): ... to here. 2011-05-22 Bruno Haible unlockpt: Move AC_LIBOBJ invocations to module description. * m4/unlockpt.m4 (gl_FUNC_UNLOCKPT): Move AC_LIBOBJ and gl_PREREQ_UNLOCKPT invocations from here... * modules/unlockpt (configure.ac): ... to here. 2011-05-22 Bruno Haible unlink: Respect rules for use of AC_LIBOBJ. * m4/unlink.m4 (gl_FUNC_UNLINK): Move AC_LIBOBJ invocation from here... * modules/unlink (configure.ac): ... to here. 2011-05-22 Bruno Haible uname: Move AC_LIBOBJ invocations to module description. * m4/uname.m4 (gl_FUNC_UNAME): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_UNAME invocations from here... * modules/uname (configure.ac): ... to here. 2011-05-22 Bruno Haible ttyname_r: Move AC_LIBOBJ invocations to module description. * m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Move AC_LIBOBJ and gl_PREREQ_TTYNAME_R invocations from here... * modules/ttyname_r (configure.ac): ... to here. 2011-05-22 Bruno Haible tsearch: Move AC_LIBOBJ invocations to module description. * m4/tsearch.m4 (gl_FUNC_TSEARCH): Move AC_LIBOBJ and gl_PREREQ_TSEARCH invocations from here... * modules/tsearch (configure.ac): ... to here. 2011-05-22 Bruno Haible towctrans: Move AC_LIBOBJ invocations to module description. * m4/towctrans.m4 (gl_FUNC_TOWCTRANS): Set HAVE_TOWCTRANS. Move AC_LIBOBJ invocation from here... * modules/towctrans (configure.ac): ... to here. 2011-05-22 Bruno Haible tmpfile: Move AC_LIBOBJ invocations to module description. * m4/tmpfile.m4 (gl_FUNC_TMPFILE): Move AC_LIBOBJ and gl_PREREQ_TMPFILE invocations from here... * modules/tmpfile (configure.ac): ... to here. 2011-05-22 Bruno Haible times: Move AC_LIBOBJ invocations to module description. * m4/times.m4 (gl_FUNC_TIMES): Move AC_LIBOBJ invocation from here... * modules/times (configure.ac): ... to here. 2011-05-22 Bruno Haible time_r: Move AC_LIBOBJ invocations to module description. * m4/time_r.m4 (gl_TIME_R): Move AC_LIBOBJ and gl_PREREQ_TIME_R invocations from here... * modules/time_r (configure.ac): ... to here. 2011-05-22 Bruno Haible timegm: Move AC_LIBOBJ invocations to module description. * m4/timegm.m4 (gl_FUNC_TIMEGM): Move AC_LIBOBJ and gl_PREREQ_TIMEGM invocations from here... * modules/timegm (configure.ac): ... to here. 2011-05-22 Bruno Haible tcgetsid: Move AC_LIBOBJ invocations to module description. * m4/tcgetsid.m4 (gl_FUNC_TCGETSID): Set HAVE_TCGETSID. Move AC_LIBOBJ and gl_PREREQ_TCGETSID invocations from here... * modules/tcgetsid (configure.ac): ... to here. (Depends-on): Update conditions. 2011-05-22 Bruno Haible symlinkat: Move AC_LIBOBJ invocations to module description. * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Move AC_LIBOBJ invocation from here... * modules/symlinkat (configure.ac): ... to here. 2011-05-22 Bruno Haible symlink: Move AC_LIBOBJ invocations to module description. * m4/symlink.m4 (gl_FUNC_SYMLINK): Move AC_LIBOBJ invocations from here... * modules/symlink (configure.ac): ... to here. 2011-05-22 Bruno Haible strverscmp: Move AC_LIBOBJ invocations to module description. * m4/strverscmp.m4 (gl_FUNC_STRVERSCMP): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRVERSCMP invocations from here... * modules/strverscmp (configure.ac): ... to here. 2011-05-22 Bruno Haible strtok_r: Move AC_LIBOBJ invocations to module description. * m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Set HAVE_STRTOK_R. Move AC_LIBOBJ and gl_PREREQ_STRTOK_R invocations from here... * modules/strtok_r (configure.ac): ... to here. (Depends-on): Update conditions. 2011-05-22 Bruno Haible strtoumax: Move AC_LIBOBJ invocations to module description. * m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRTOUMAX invocations from here... * modules/strtoumax (configure.ac): ... to here. 2011-05-22 Bruno Haible strtoimax: Move AC_LIBOBJ invocations to module description. * m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRTOIMAX invocations from here... * modules/strtoimax (configure.ac): ... to here. 2011-05-22 Bruno Haible strtoull: Move AC_LIBOBJ invocations to module description. * m4/strtoull.m4 (gl_FUNC_STRTOULL): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRTOULL invocations from here... * modules/strtoull (configure.ac): ... to here. 2011-05-22 Bruno Haible strtoll: Move AC_LIBOBJ invocations to module description. * m4/strtoll.m4 (gl_FUNC_STRTOLL): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRTOLL invocations from here... * modules/strtoll (configure.ac): ... to here. 2011-05-22 Bruno Haible strtoul: Move AC_LIBOBJ invocations to module description. * m4/strtoul.m4 (gl_FUNC_STRTOUL): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ invocation from here... * modules/strtoul (configure.ac): ... to here. 2011-05-22 Bruno Haible strtol: Move AC_LIBOBJ invocations to module description. * m4/strtol.m4 (gl_FUNC_STRTOL): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ invocation from here... * modules/strtol (configure.ac): ... to here. 2011-05-22 Bruno Haible strtod: Move AC_LIBOBJ invocations to module description. * m4/strtod.m4 (gl_FUNC_STRTOD): Move AC_LIBOBJ and gl_PREREQ_STRTOD invocations from here... * modules/strtod (configure.ac): ... to here. 2011-05-22 Bruno Haible strstr*: Move AC_LIBOBJ invocations to module description. * m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE, gl_FUNC_STRSTR): Move AC_LIBOBJ invocations from here... * modules/strstr-simple (configure.ac): ... to here. * modules/strstr (configure.ac): ... and here. 2011-05-22 Bruno Haible strsignal: Move AC_LIBOBJ invocations to module description. * m4/strsignal.m4 (gl_FUNC_STRSIGNAL): Set HAVE_STRSIGNAL. Move AC_LIBOBJ and gl_PREREQ_STRSIGNAL invocations from here... * modules/strsignal (configure.ac): ... to here. (Depends-on): Update conditions. 2011-05-22 Bruno Haible strsep: Move AC_LIBOBJ invocations to module description. * m4/strsep.m4 (gl_FUNC_STRSEP): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRSEP invocations from here... * modules/strsep (configure.ac): ... to here. 2011-05-22 Bruno Haible strptime: Move AC_LIBOBJ invocations to module description. * m4/strptime.m4 (gl_FUNC_STRPTIME): Move AC_LIBOBJ and gl_PREREQ_STRPTIME invocations from here... * modules/strptime (configure.ac): ... to here. 2011-05-22 Bruno Haible strpbrk: Move AC_LIBOBJ invocations to module description. * m4/strpbrk.m4 (gl_FUNC_STRPBRK): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRPBRK invocations from here... * modules/strpbrk (configure.ac): ... to here. 2011-05-22 Bruno Haible strnlen: Move AC_LIBOBJ invocations to module description. * m4/strnlen.m4 (gl_FUNC_STRNLEN): Move AC_LIBOBJ and gl_PREREQ_STRNLEN invocations from here... * modules/strnlen (configure.ac): ... to here. 2011-05-22 Bruno Haible strndup: Move AC_LIBOBJ invocations to module description. * m4/strndup.m4 (gl_FUNC_STRNDUP): Set HAVE_STRNDUP. Move AC_LIBOBJ invocations from here... * modules/strndup (configure.ac): ... to here. (Depends-on): Update conditions. 2011-05-22 Bruno Haible strncat: Move AC_LIBOBJ invocations to module description. * m4/strncat.m4 (gl_FUNC_STRNCAT): Move AC_LIBOBJ and gl_PREREQ_STRNCAT invocations from here... * modules/strncat (configure.ac): ... to here. 2011-05-22 Bruno Haible strdup, strdup-posix: Move AC_LIBOBJ invocations to module description. * m4/strdup.m4 (gl_FUNC_STRDUP): Move AC_LIBOBJ and gl_PREREQ_STRDUP invocations from here... * modules/strdup (configure.ac): ... to here. * modules/strdup-posix (configure.ac): ... and here. 2011-05-22 Bruno Haible strcspn: Move AC_LIBOBJ invocations to module description. * m4/strcspn.m4 (gl_FUNC_STRCSPN): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRCSPN invocations from here... * modules/strcspn (configure.ac): ... to here. 2011-05-22 Bruno Haible strchrnul: Move AC_LIBOBJ invocations to module description. * m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Move AC_LIBOBJ and gl_PREREQ_STRCHRNUL invocations from here... * modules/strchrnul (configure.ac): ... to here. 2011-05-22 Bruno Haible strcasestr*: Move AC_LIBOBJ invocations to module description. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE, gl_FUNC_STRCASESTR): Move AC_LIBOBJ and gl_PREREQ_STRCASESTR invocations from here... * modules/strcasestr-simple (configure.ac): ... to here. * modules/strcasestr (configure.ac): ... and here. 2011-05-22 Bruno Haible strcase: Move AC_LIBOBJ invocations to module description. * m4/strcase.m4 (gl_FUNC_STRNCASECMP): Set HAVE_STRNCASECMP. (gl_FUNC_STRCASECMP, gl_FUNC_STRNCASECMP): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ, gl_PREREQ_STRCASECMP, gl_PREREQ_STRNCASECMP invocations from here... * modules/strcase (configure.ac): ... to here. 2011-05-22 Bruno Haible stpncpy: Move AC_LIBOBJ invocations to module description. * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Move AC_LIBOBJ invocations from here... * modules/stpncpy (configure.ac): ... to here. 2011-05-22 Bruno Haible stpcpy: Move AC_LIBOBJ invocations to module description. * m4/stpcpy.m4 (gl_FUNC_STPCPY): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STPCPY invocations from here... * modules/stpcpy (configure.ac): ... to here. 2011-05-21 Bruno Haible stat: Move AC_LIBOBJ invocations to module description. * m4/stat.m4 (gl_PREREQ_STAT): New macro, extracted from gl_FUNC_STAT. (gl_FUNC_STAT): Move AC_LIBOBJ and gl_PREREQ_STAT invocations from here... * modules/stat (configure.ac): ... to here. 2011-05-21 Bruno Haible sleep: Move AC_LIBOBJ invocations to module description. * m4/sleep.m4 (gl_FUNC_SLEEP): Move AC_LIBOBJ invocations from here... * modules/sleep (configure.ac): ... to here. 2011-05-21 Bruno Haible signbit: Move AC_LIBOBJ invocations to module description. * m4/signbit.m4 (gl_SIGNBIT): Move AC_LIBOBJ invocations from here... * modules/signbit (configure.ac): ... to here. 2011-05-21 Bruno Haible sigprocmask: Move AC_LIBOBJ invocations to module description. * m4/signalblocking.m4 (gl_SIGNALBLOCKING): Move AC_LIBOBJ and gl_PREREQ_SIGPROMASK invocations from here... * modules/sigprocmask (configure.ac): ... to here. 2011-05-21 Bruno Haible sigaction: Move AC_LIBOBJ invocations to module description. * m4/sigaction.m4 (gl_SIGACTION): Move AC_LIBOBJ and gl_PREREQ_SIGACTION invocations from here... * modules/sigaction (configure.ac): ... to here. 2011-05-21 Bruno Haible sig2str: Move AC_LIBOBJ invocations to module description. * m4/sig2str.m4 (gl_FUNC_SIG2STR): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_SIG2STR invocations from here... * modules/sig2str (configure.ac): ... to here. 2011-05-21 Bruno Haible setlocale: Move AC_LIBOBJ invocations to module description. * m4/setlocale.m4 (gl_FUNC_SETLOCALE): Move AC_LIBOBJ and gl_PREREQ_SETLOCALE invocations from here... * modules/setlocale (configure.ac): ... to here. 2011-05-21 Bruno Haible unsetenv: Move AC_LIBOBJ invocations to module description. * m4/setenv.m4 (gl_FUNC_UNSETENV): Set HAVE_UNSETENV. Move AC_LIBOBJ and gl_PREREQ_UNSETENV invocations from here... * modules/unsetenv (configure.ac): ... to here. (Depends-on): Update. 2011-05-21 Bruno Haible setenv: Move AC_LIBOBJ invocations to module description. * m4/setenv.m4 (gl_FUNC_SETENV): Move AC_LIBOBJ invocations from here... * modules/setenv (configure.ac): ... to here. 2011-05-21 Bruno Haible selinux-h: Move AC_LIBOBJ invocations to module description. * m4/selinux-selinux-h.m4 (gl_HEADERS_SELINUX_SELINUX_H): Move AC_LIBOBJ invocation from here... * modules/selinux-h (configure.ac): ... to here. 2011-05-21 Bruno Haible select: Respect rules for use of AC_LIBOBJ. * m4/select.m4 (gl_FUNC_SELECT): Move AC_LIBOBJ invocations from here... * modules/select (configure.ac): ... to here. 2011-05-21 Bruno Haible scandir: Move AC_LIBOBJ invocations to module description. * m4/scandir.m4 (gl_FUNC_SCANDIR): Move AC_LIBOBJ and gl_PREREQ_SCANDIR invocations from here... * modules/scandir (configure.ac): ... to here. 2011-05-21 Bruno Haible rpmatch: Move AC_LIBOBJ invocations to module description. * m4/rpmatch.m4 (gl_FUNC_RPMATCH): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_RPMATCH invocations from here... * modules/rpmatch (configure.ac): ... to here. 2011-05-21 Bruno Haible rmdir: Respect rules for use of AC_LIBOBJ. * m4/rmdir.m4 (gl_FUNC_RMDIR): Move AC_LIBOBJ invocation from here... * modules/rmdir (configure.ac): ... to here. 2011-05-21 Bruno Haible renameat: Move AC_LIBOBJ invocations to module description. * m4/renameat.m4 (gl_FUNC_RENAMEAT): Move AC_LIBOBJ invocations from here... * modules/renameat (configure.ac): ... to here. 2011-05-21 Bruno Haible rename: Respect rules for use of AC_LIBOBJ. * m4/rename.m4 (gl_FUNC_RENAME): Move AC_LIBOBJ invocations from here... * modules/rename (configure.ac): ... to here. 2011-05-21 Bruno Haible remove: Move AC_LIBOBJ invocations to module description. * m4/remove.m4 (gl_FUNC_REMOVE): Move AC_LIBOBJ invocations from here... * modules/remove (configure.ac): ... to here. 2011-05-21 Bruno Haible relocatable-lib: Move AC_LIBOBJ invocations to module description. * m4/relocatable-lib.m4 (gl_RELOCATABLE_LIBRARY_SEPARATE): Remove macro. (gl_RELOCATABLE_LIBRARY): Move AC_LIBOBJ invocation from here... * modules/relocatable-lib (configure.ac): ... to here. * modules/relocatable-prog-wrapper (configure.ac): Invoke gl_RELOCATABLE_LIBRARY instead of gl_RELOCATABLE_LIBRARY_SEPARATE. 2011-05-21 Bruno Haible relocatable-prog: Move AC_LIBOBJ invocations to module description. * m4/relocatable.m4 (gl_RELOCATABLE): Move AC_LIBOBJ invocation from here... * modules/relocatable-prog (configure.ac): ... to here. 2011-05-21 Bruno Haible regex: Move AC_LIBOBJ invocations to module description. * m4/regex.m4 (gl_REGEX): Move AC_LIBOBJ and gl_PREREQ_REGEX invocations from here... * modules/regex (configure.ac): ... to here. 2011-05-21 Bruno Haible realloc-*: Move AC_LIBOBJ invocations to module description. * m4/realloc.m4 (gl_REPLACE_REALLOC): Remove macro. (gl_FUNC_REALLOC_GNU, gl_FUNC_REALLOC_POSIX): Inline it here. Move AC_LIBOBJ invocations from here... * modules/realloc-gnu (configure.ac): ... to here. * modules/realloc-posix (configure.ac): ... and here. 2011-05-21 Bruno Haible readutmp: Move AC_LIBOBJ invocations to module description. * m4/readutmp.m4 (gl_READUTMP): Move AC_LIBOBJ invocation from here... * modules/readutmp (configure.ac): ... to here. 2011-05-21 Bruno Haible readlinkat: Move AC_LIBOBJ invocations to module description. * m4/readlinkat.m4 (gl_FUNC_READLINKAT): Move AC_LIBOBJ invocation from here... * modules/readlinkat (configure.ac): ... to here. 2011-05-21 Bruno Haible readlink: Move AC_LIBOBJ invocations to module description. * m4/readlink.m4 (gl_FUNC_READLINK): Move AC_LIBOBJ and gl_PREREQ_READLINK invocations from here... * modules/readlink (configure.ac): ... to here. 2011-05-21 Bruno Haible readline: Move AC_LIBOBJ invocations to module description. * m4/readline.m4 (gl_FUNC_READLINE): Move AC_LIBOBJ and gl_PREREQ_READLINE invocations from here... * modules/readline (configure.ac): ... to here. 2011-05-21 Bruno Haible read: Move AC_LIBOBJ invocations to module description. * m4/read.m4 (gl_FUNC_READ): Move AC_LIBOBJ invocation from here... * modules/read (configure.ac): ... to here. 2011-05-21 Bruno Haible rawmemchr: Move AC_LIBOBJ invocations to module description. * m4/rawmemchr.m4 (gl_FUNC_RAWMEMCHR): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_RAWMEMCHR invocations from here... * modules/rawmemchr (configure.ac): ... to here. 2011-05-21 Bruno Haible random_r: Move AC_LIBOBJ invocations to module description. * m4/random_r.m4 (gl_FUNC_RANDOM_R): Move AC_LIBOBJ and gl_PREREQ_RANDOM_R invocations from here... * modules/random_r (configure.ac): ... to here. 2011-05-21 Bruno Haible pwrite: Move AC_LIBOBJ invocations to module description. * m4/pwrite.m4 (gl_FUNC_PWRITE): Move AC_LIBOBJ invocation from here... * modules/pwrite (configure.ac): ... to here. 2011-05-21 Bruno Haible putenv: Move AC_LIBOBJ invocations to module description. * m4/putenv.m4 (gl_FUNC_PUTENV): Move AC_LIBOBJ invocation from here... * modules/putenv (configure.ac): ... to here. 2011-05-21 Bruno Haible login_tty: Move AC_LIBOBJ invocations to module description. * m4/pty.m4 (gl_FUNC_LOGIN_TTY): Move AC_LIBOBJ invocation from here... * modules/login_tty (configure.ac): ... to here. 2011-05-21 Bruno Haible openpty: Move AC_LIBOBJ invocations to module description. * m4/pty.m4 (gl_FUNC_OPENPTY): Move AC_LIBOBJ invocations from here... * modules/openpty (configure.ac): ... to here. 2011-05-21 Bruno Haible forkpty: Move AC_LIBOBJ invocations to module description. * m4/pty.m4 (gl_FUNC_FORKPTY): Move AC_LIBOBJ invocations from here... * modules/forkpty (configure.ac): ... to here. 2011-05-21 Bruno Haible ptsname: Move AC_LIBOBJ invocations to module description. * m4/ptsname.m4 (gl_FUNC_PTSNAME): Move AC_LIBOBJ and gl_PREREQ_PTSNAME invocations from here... * modules/ptsname (configure.ac): ... to here. 2011-05-21 Bruno Haible pread: Move AC_LIBOBJ invocations to module description. * m4/pread.m4 (gl_FUNC_PREAD): Move AC_LIBOBJ invocation from here... * modules/pread (configure.ac): ... to here. 2011-05-21 Bruno Haible posix_spawn*: Move AC_LIBOBJ invocations to module description. * m4/posix_spawn.m4 (gl_PREREQ_POSIX_SPAWN_INTERNAL): Renamed from gl_POSIX_SPAWN_INTERNAL. Move AC_LIBOBJ invocation from here... * modules/posix_spawn (configure.ac): ... to here. * modules/posix_spawnp (configure.ac): ... and here. 2011-05-21 Bruno Haible popen: Move AC_LIBOBJ invocations to module description. * m4/popen.m4 (gl_FUNC_POPEN): Move AC_LIBOBJ and gl_PREREQ_POPEN invocations from here... * modules/popen (configure.ac): ... to here. 2011-05-21 Bruno Haible poll: Move AC_LIBOBJ invocations to module description. * m4/poll.m4 (gl_FUNC_POLL): Move AC_LIBOBJ and gl_PREREQ_POLL invocations from here... * modules/poll (configure.ac): ... to here. 2011-05-21 Bruno Haible pipe-posix: Move AC_LIBOBJ invocations to module description. * m4/pipe.m4 (gl_FUNC_PIPE): Move AC_LIBOBJ invocation from here... * modules/pipe-posix (configure.ac): ... to here. 2011-05-21 Bruno Haible openat: Respect rules for use of AC_LIBOBJ. * m4/openat.m4 (gl_FUNC_OPENAT): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ invocations from here... * modules/openat (configure.ac): ... to here. 2011-05-21 Bruno Haible obstack-printf*: Move AC_LIBOBJ invocations to module description. * m4/obstack-printf.m4 (gl_REPLACE_OBSTACK_PRINTF): Move AC_LIBOBJ invocation from here... * modules/obstack-printf (configure.ac): ... to here. * modules/obstack-printf-posix (configure.ac): ... and here. 2011-05-21 Bruno Haible nl_langinfo: Move AC_LIBOBJ invocations to module description. * m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Move AC_LIBOBJ invocations from here... * modules/nl_langinfo (configure.ac): ... to here. 2011-05-21 Bruno Haible nanosleep: Move AC_LIBOBJ invocations to module description. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Move AC_LIBOBJ and gl_PREREQ_NANOSLEEP invocations from here... * modules/nanosleep (configure.ac): ... to here. 2011-05-21 Bruno Haible mountlist: Move AC_LIBOBJ invocations to module description. * m4/mountlist.m4 (gl_MOUNTLIST): Move AC_LIBOBJ and gl_PREREQ_MOUNTLIST_EXTRA invocations from here... * modules/mountlist (configure.ac): ... to here. 2011-05-21 Bruno Haible mktime: Respect rules for use of AC_LIBOBJ. * m4/mktime.m4 (AC_FUNC_MKTIME): Remove macro. (gl_FUNC_MKTIME): Inline it here. Set gl_cv_func_working_mktime. Move AC_LIBOBJ and gl_PREREQ_MKTIME invocations from here... (gl_FUNC_MKTIME_INTERNAL): ... and here... * modules/mktime (configure.ac): ... to here. * modules/mktime-internal (configure.ac): ... and here. * m4/timegm.m4 (gl_FUNC_TIMEGM): Update. 2011-05-21 Bruno Haible mkstemps: Move AC_LIBOBJ invocations to module description. * m4/mkstemps.m4 (gl_FUNC_MKSTEMPS): Move AC_LIBOBJ invocation from here... * modules/mkstemps (configure.ac): ... to here. 2011-05-21 Bruno Haible mkstemp: Move AC_LIBOBJ invocations to module description. * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Move AC_LIBOBJ and gl_PREREQ_MKSTEMP invocations from here... * modules/mkstemp (configure.ac): ... to here. 2011-05-21 Bruno Haible mkostemps: Move AC_LIBOBJ invocations to module description. * m4/mkostemps.m4 (gl_FUNC_MKOSTEMPS): Move AC_LIBOBJ invocation from here... * modules/mkostemps (configure.ac): ... to here. 2011-05-21 Bruno Haible mkostemp: Move AC_LIBOBJ invocations to module description. * m4/mkostemp.m4 (gl_FUNC_MKOSTEMP): Move AC_LIBOBJ and gl_PREREQ_MKOSTEMP invocations from here... * modules/mkostemp (configure.ac): ... to here. 2011-05-21 Bruno Haible mknod: Move AC_LIBOBJ invocations to module description. * m4/mknod.m4 (gl_FUNC_MKNOD): Move AC_LIBOBJ invocations from here... * modules/mknod (configure.ac): ... to here. 2011-05-21 Bruno Haible mkfifoat: Move AC_LIBOBJ invocations to module description. * m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Move AC_LIBOBJ invocations from here... * modules/mkfifoat (configure.ac): ... to here. 2011-05-21 Bruno Haible mkfifo: Respect rules for use of AC_LIBOBJ. * m4/mkfifo.m4 (gl_FUNC_MKFIFO): Move AC_LIBOBJ invocations from here... * modules/mkfifo (configure.ac): ... to here. 2011-05-21 Bruno Haible mkdtemp: Move AC_LIBOBJ invocations to module description. * m4/mkdtemp.m4 (gl_FUNC_MKDTEMP): Move AC_LIBOBJ and gl_PREREQ_MKDTEMP invocations from here... * modules/mkdtemp (configure.ac): ... to here. 2011-05-21 Bruno Haible mkdir: Move AC_LIBOBJ invocations to module description. * m4/mkdir.m4 (gl_FUNC_MKDIR): Move AC_LIBOBJ invocations from here... * modules/mkdir (configure.ac): ... to here. 2011-05-21 Bruno Haible memset: Move AC_LIBOBJ invocations to module description. * m4/memset.m4 (gl_FUNC_MEMSET): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_MEMSET invocations from here... * modules/memset (configure.ac): ... to here. 2011-05-21 Bruno Haible memrchr: Move AC_LIBOBJ invocations to module description. * m4/memrchr.m4 (gl_FUNC_MEMRCHR): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_MEMRCHR invocations from here... * modules/memrchr (configure.ac): ... to here. 2011-05-21 Bruno Haible mempcpy: Move AC_LIBOBJ invocations to module description. * m4/mempcpy.m4 (gl_FUNC_MEMPCPY): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_MEMPCPY invocations from here... * modules/mempcpy (configure.ac): ... to here. 2011-05-21 Bruno Haible memmove: Move AC_LIBOBJ invocations to module description. * m4/memmove.m4 (gl_FUNC_MEMMOVE): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_MEMMOVE invocations from here... * modules/memmove (configure.ac): ... to here. 2011-05-21 Bruno Haible memmem*: Move AC_LIBOBJ invocations to module description. * m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Set HAVE_MEMMEM. Move AC_LIBOBJ invocations from here... (gl_FUNC_MEMMEM): ... and here... * modules/memmem-simple (configure.ac): ... to here. * modules/memmem (configure.ac): ... and here. 2011-05-21 Bruno Haible memcpy: Move AC_LIBOBJ invocations to module description. * m4/memcpy.m4 (gl_FUNC_MEMCPY): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_MEMCPY invocations from here... * modules/memcpy (configure.ac): ... to here. 2011-05-21 Bruno Haible memcmp: Simplify autoconf macro. * m4/memcmp.m4 (gl_FUNC_MEMCMP): Merge the cross-compilation code into the AC_RUN_IFELSE invocation. Set gl_func_memcmp. * modules/memcmp (Depends-on, configure.ac): Test gl_func_memcmp. 2011-05-21 Bruno Haible memcmp: Move AC_LIBOBJ invocations to module description. * m4/memcmp.m4 (AC_FUNC_MEMCMP): Remove macro. (gl_FUNC_MEMCMP): Inline it here. Set gl_cv_func_memcmp_working. Move AC_LIBOBJ and gl_PREREQ_MEMCMP invocations from here... * modules/memcmp (configure.ac): ... to here. (Depends-on): Update conditions. 2011-05-21 Bruno Haible memchr: Respect rules for use of AC_LIBOBJ. * m4/memchr.m4 (gl_FUNC_MEMCHR): Move AC_LIBOBJ and gl_PREREQ_MEMCHR invocations from here... * modules/memchr (configure.ac): ... to here. 2011-05-21 Bruno Haible mbtowc: Move AC_LIBOBJ invocations to module description. * m4/mbtowc.m4 (gl_FUNC_MBTOWC): Move AC_LIBOBJ and gl_PREREQ_MBTOWC invocations from here... * modules/mbtowc (configure.ac): ... to here. 2011-05-21 Bruno Haible mbsrtowcs: Move AC_LIBOBJ invocations to module description. * m4/mbsrtowcs.m4 (gl_FUNC_MBSRTOWCS): Move AC_LIBOBJ and gl_PREREQ_MBSRTOWCS invocations from here... * modules/mbsrtowcs (configure.ac): ... to here. 2011-05-21 Bruno Haible mbsnrtowcs: Move AC_LIBOBJ invocations to module description. * m4/mbsnrtowcs.m4 (gl_FUNC_MBSNRTOWCS): Move AC_LIBOBJ and gl_PREREQ_MBSNRTOWCS invocations from here... * modules/mbsnrtowcs (configure.ac): ... to here. 2011-05-21 Bruno Haible mbsinit: Move AC_LIBOBJ invocations to module description. * m4/mbsinit.m4 (gl_FUNC_MBSINIT): Move AC_LIBOBJ and gl_PREREQ_MBSINIT invocations from here... * modules/mbsinit (configure.ac): ... to here. 2011-05-21 Bruno Haible mbrlen: Move AC_LIBOBJ invocations to module description. * m4/mbrlen.m4 (gl_FUNC_MBRLEN): Move AC_LIBOBJ and gl_PREREQ_MBRLEN invocations from here... * modules/mbrlen (configure.ac): ... to here. 2011-05-21 Bruno Haible mbrtowc: Respect rules for use of AC_LIBOBJ. * m4/mbrtowc.m4 (gl_FUNC_MBRTOWC): Move AC_LIBOBJ and gl_PREREQ_MBRTOWC invocations from here... * modules/mbrtowc (configure.ac): ... to here. 2011-05-21 Bruno Haible malloc-*: Move AC_LIBOBJ invocations to module description. * m4/malloc.m4 (gl_REPLACE_MALLOC): Remove macro. (gl_FUNC_MALLOC_GNU, gl_FUNC_MALLOC_POSIX): Inline it here. Move AC_LIBOBJ invocations from here... * modules/malloc-gnu (configure.ac): ... to here. * modules/malloc-posix (configure.ac): ... and here. 2011-05-21 Bruno Haible lstat, openat: Respect rules for use of AC_LIBOBJ. * m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Renamed from AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK. Set variable gl_cv_func_lstat_dereferences_slashed_symlink. Don't invoke AC_LIBOBJ. (gl_PREREQ_LSTAT): New macro, extracted from gl_FUNC_LSTAT. (gl_FUNC_LSTAT): Update. Remove gl_PREREQ_LSTAT code. * modules/lstat (configure.ac): Invoke AC_LIBOBJ and gl_PREREQ_LSTAT here. * m4/openat.m4 (gl_FUNC_OPENAT): Update. 2011-05-21 Bruno Haible lseek: Move AC_LIBOBJ invocations to module description. * m4/lseek.m4 (gl_REPLACE_LSEEK): Remove macro. (gl_FUNC_LSEEK): Inline it here. Move AC_LIBOBJ invocation from here... * modules/lseek (configure.ac): ... to here. 2011-05-21 Bruno Haible linkat: Move AC_LIBOBJ invocations to module description. * m4/linkat.m4 (gl_FUNC_LINKAT): Move AC_LIBOBJ invocations from here... * modules/linkat (configure.ac): ... to here. 2011-05-21 Bruno Haible link: Respect rules for use of AC_LIBOBJ. * m4/link.m4 (gl_FUNC_LINK): Move AC_LIBOBJ invocations from here... * modules/link (configure.ac): ... to here. 2011-05-21 Bruno Haible lchown: Move AC_LIBOBJ invocations to module description. * m4/lchown.m4 (gl_FUNC_EUIDACCESS): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ invocations from here... * modules/lchown (configure.ac): ... to here. 2011-05-21 Bruno Haible iswctype: Move AC_LIBOBJ invocations to module description. * m4/iswctype.m4 (gl_FUNC_ISWCTYPE): Move AC_LIBOBJ invocation from here... * modules/iswctype (configure.ac): ... to here. 2011-05-21 Bruno Haible iswblank: Move AC_LIBOBJ invocations to module description. * m4/iswblank.m4 (gl_FUNC_ISWBLANK): Move AC_LIBOBJ invocation from here... * modules/iswblank (configure.ac): ... to here. 2011-05-21 Bruno Haible atanl: Move AC_LIBOBJ invocations to module description. * m4/atanl.m4 (gl_FUNC_ATANL): Move AC_LIBOBJ invocation from here... * modules/atanl (configure.ac): ... to here. 2011-05-21 Bruno Haible acosl: Move AC_LIBOBJ invocations to module description. * m4/acosl.m4 (gl_FUNC_ACOSL): Move AC_LIBOBJ invocation from here... * modules/acosl (configure.ac): ... to here. 2011-05-21 Bruno Haible asinl: Respect rules for use of AC_LIBOBJ. * m4/asinl.m4 (gl_FUNC_ASINL): Move AC_LIBOBJ invocation from here... * modules/asinl (configure.ac): ... to here. 2011-05-21 Bruno Haible tanl: Move AC_LIBOBJ invocations to module description. * m4/tanl.m4 (gl_FUNC_TANL): Move AC_LIBOBJ invocations from here... * modules/tanl (configure.ac): ... to here. 2011-05-21 Bruno Haible cosl: Move AC_LIBOBJ invocations to module description. * m4/cosl.m4 (gl_FUNC_COSL): Move AC_LIBOBJ invocations from here... * modules/cosl (configure.ac): ... to here. 2011-05-21 Bruno Haible sinl: Move AC_LIBOBJ invocations to module description. * m4/sinl.m4 (gl_FUNC_SINL): Move AC_LIBOBJ invocations from here... * modules/sinl (configure.ac): ... to here. 2011-05-21 Bruno Haible logl: Move AC_LIBOBJ invocations to module description. * m4/logl.m4 (gl_FUNC_LOGL): Move AC_LIBOBJ invocation from here... * modules/logl (configure.ac): ... to here. 2011-05-21 Bruno Haible expl: Move AC_LIBOBJ invocations to module description. * m4/expl.m4 (gl_FUNC_EXPL): Move AC_LIBOBJ invocation from here... * modules/expl (configure.ac): ... to here. 2011-05-21 Bruno Haible roundl: Move AC_LIBOBJ invocations to module description. * m4/roundl.m4 (gl_FUNC_ROUNDL): Move AC_LIBOBJ invocation from here... * modules/roundl (configure.ac): ... to here. 2011-05-21 Bruno Haible round: Move AC_LIBOBJ invocations to module description. * m4/round.m4 (gl_FUNC_ROUND): Move AC_LIBOBJ invocation from here... * modules/round (configure.ac): ... to here. 2011-05-21 Bruno Haible roundf: Move AC_LIBOBJ invocations to module description. * m4/roundf.m4 (gl_FUNC_ROUNDF): Move AC_LIBOBJ invocation from here... * modules/roundf (configure.ac): ... to here. 2011-05-21 Bruno Haible truncl: Move AC_LIBOBJ invocations to module description. * m4/truncl.m4 (gl_FUNC_TRUNCL): Move AC_LIBOBJ invocation from here... * modules/truncl (configure.ac): ... to here. 2011-05-21 Bruno Haible trunc: Move AC_LIBOBJ invocations to module description. * m4/trunc.m4 (gl_FUNC_TRUNC): Move AC_LIBOBJ invocation from here... * modules/trunc (configure.ac): ... to here. 2011-05-21 Bruno Haible truncf: Move AC_LIBOBJ invocations to module description. * m4/truncf.m4 (gl_FUNC_TRUNCF): Move AC_LIBOBJ invocation from here... * modules/truncf (configure.ac): ... to here. 2011-05-21 Bruno Haible ceill: Move AC_LIBOBJ invocations to module description. * m4/ceill.m4 (gl_FUNC_CEILL): Move AC_LIBOBJ invocation from here... * modules/ceill (configure.ac): ... to here. 2011-05-21 Bruno Haible ceil: Move AC_LIBOBJ invocations to module description. * m4/ceil.m4 (gl_FUNC_CEIL): Move AC_LIBOBJ invocation from here... * modules/ceil (configure.ac): ... to here. 2011-05-21 Bruno Haible ceilf: Move AC_LIBOBJ invocations to module description. * m4/ceilf.m4 (gl_FUNC_CEILF): Move AC_LIBOBJ invocation from here... * modules/ceilf (configure.ac): ... to here. 2011-05-21 Bruno Haible floorl: Respect rules for use of AC_LIBOBJ. * m4/floorl.m4 (gl_FUNC_FLOORL): Move AC_LIBOBJ invocation from here... * modules/floorl (configure.ac): ... to here. 2011-05-21 Bruno Haible floor: Respect rules for use of AC_LIBOBJ. * m4/floor.m4 (gl_FUNC_FLOOR): Move AC_LIBOBJ invocation from here... * modules/floor (configure.ac): ... to here. 2011-05-21 Bruno Haible floorf: Move AC_LIBOBJ invocations to module description. * m4/floorf.m4 (gl_FUNC_FLOORF): Move AC_LIBOBJ invocation from here... * modules/floorf (configure.ac): ... to here. 2011-05-20 Bruno Haible sqrtl: Respect rules for use of AC_LIBOBJ. * m4/sqrtl.m4 (gl_FUNC_SQRTL): Move AC_LIBOBJ invocation from here... * modules/sqrtl (configure.ac): ... to here. 2011-05-20 Bruno Haible ldexpl: Respect rules for use of AC_LIBOBJ. * m4/ldexpl.m4 (gl_FUNC_LDEXPL): Move AC_LIBOBJ invocation from here... * modules/ldexpl (configure.ac): ... to here. 2011-05-20 Bruno Haible frexpl*: Respect rules for use of AC_LIBOBJ. * m4/frexpl.m4 (gl_FUNC_FREXPL, gl_FUNC_FREXPL_NO_LIBM): Move AC_LIBOBJ invocation from here... * modules/frexpl (configure.ac): ... to here. * modules/frexpl-nolibm (configure.ac): ... and here. 2011-05-20 Bruno Haible frexp, frexp-nolibm: Move AC_LIBOBJ invocations to module description. * m4/frexp.m4 (gl_FUNC_FREXP, gl_FUNC_FREXP_NO_LIBM): Move AC_LIBOBJ invocation from here... * modules/frexp (configure.ac): ... to here. * modules/frexp-nolibm (configure.ac): ... and here. 2011-05-20 Bruno Haible isnan: Respect rules for use of AC_LIBOBJ. * m4/isnan.m4 (gl_ISNAN): Don't do the AC_LIBOBJ and gl_PREREQ_ISNAN* invocations here. * modules/isnanf (configure.ac): Require gl_ISNAN if it exists. Test REPLACE_ISNAN. * modules/isnand (configure.ac): Likewise. * modules/isnanl (configure.ac): Likewise. 2011-05-20 Bruno Haible isnanl*: Respect rules for use of AC_LIBOBJ. * m4/isnanl.m4 (gl_FUNC_ISNANL, gl_FUNC_ISNANL_NO_LIBM): Move AC_LIBOBJ invocation from here... * modules/isnanl (configure.ac): ... to here. * modules/isnanl-nolibm (configure.ac): ... and here. 2011-05-20 Bruno Haible isnand*: Move AC_LIBOBJ invocations to module description. * m4/isnand.m4 (gl_FUNC_ISNAND, gl_FUNC_ISNAND_NO_LIBM): Move AC_LIBOBJ invocation from here... * modules/isnand (configure.ac): ... to here. * modules/isnand-nolibm (configure.ac): ... and here. 2011-05-20 Bruno Haible isnanf*: Move AC_LIBOBJ invocations to module description. * m4/isnanf.m4 (gl_FUNC_ISNANF, gl_FUNC_ISNANF_NO_LIBM): Move AC_LIBOBJ invocation from here... * modules/isnanf (configure.ac): ... to here. * modules/isnanf-nolibm (configure.ac): ... and here. 2011-05-20 Bruno Haible isnan*: Separate the AC_LIBOBJ invocations. * m4/isnanf.m4 (gl_PREREQ_ISNANF): Renamed from gl_BUILD_ISNANF. Remove AC_LIBOBJ invocation. (gl_FUNC_ISNANF, gl_FUNC_ISNANF_NO_LIBM): Update. Invoke AC_LIBOBJ here. * m4/isnand.m4 (gl_PREREQ_ISNAND): Renamed from gl_BUILD_ISNAND. Remove AC_LIBOBJ invocation. (gl_FUNC_ISNAND, gl_FUNC_ISNAND_NO_LIBM): Update. Invoke AC_LIBOBJ here. * m4/isnanl.m4 (gl_PREREQ_ISNANL): Renamed from gl_BUILD_ISNANL. Remove AC_LIBOBJ invocation. (gl_FUNC_ISNANL, gl_FUNC_ISNANL_NO_LIBM): Update. Invoke AC_LIBOBJ here. * m4/isnan.m4 (gl_ISNAN): Update. Invoke AC_LIBOBJ here. 2011-05-08 Bruno Haible isinf: Move AC_LIBOBJ invocations to module description. * m4/isinf.m4 (gl_ISINF): Move AC_LIBOBJ invocation from here... * modules/isinf (configure.ac): ... to here. 2011-05-08 Bruno Haible isfinite: Move AC_LIBOBJ invocations to module description. * m4/isfinite.m4 (gl_ISFINITE): Move AC_LIBOBJ invocation from here... * modules/isfinite (configure.ac): ... to here. 2011-05-08 Bruno Haible isblank: Move AC_LIBOBJ invocations to module description. * m4/isblank.m4 (gl_FUNC_ISBLANK): Move AC_LIBOBJ invocation from here... * modules/isblank (configure.ac): ... to here. 2011-05-08 Bruno Haible isapipe: Move AC_LIBOBJ invocations to module description. * m4/isapipe.m4 (gl_ISAPIPE): Set HAVE_ISAPIPE. Move AC_LIBOBJ and gl_PREREQ_ISAPIPE invocations from here... * modules/isapipe (configure.ac): ... to here. (Depends-on): Update condition. 2011-05-08 Bruno Haible ioctl: Move AC_LIBOBJ invocations to module description. * m4/ioctl.m4 (gl_FUNC_IOCTL): Set HAVE_IOCTL. Move AC_LIBOBJ invocations from here... * modules/ioctl (configure.ac): ... to here. (Depends-on): Update condition. 2011-05-08 Bruno Haible imaxdiv: Move AC_LIBOBJ invocations to module description. * m4/imaxdiv.m4 (gl_FUNC_IMAXDIV): Move AC_LIBOBJ and gl_PREREQ_IMAXDIV invocations from here... * modules/imaxdiv (configure.ac): ... to here. 2011-05-08 Bruno Haible imaxabs: Move AC_LIBOBJ invocations to module description. * m4/imaxabs.m4 (gl_FUNC_IMAXABS): Move AC_LIBOBJ and gl_PREREQ_IMAXABS invocations from here... * modules/imaxabs (configure.ac): ... to here. 2011-05-08 Bruno Haible getaddrinfo: Move AC_LIBOBJ invocations to module description. * m4/getaddrinfo.m4 (gl_GETADDRINFO): Set HAVE_GETADDRINFO, Move AC_LIBOBJ invocations from here... * modules/getaddrinfo (configure.ac): ... to here. (Depends-on): Add conditions. 2011-05-08 Bruno Haible inet_pton. getaddrinfo: Respect rules for use of AC_LIBOBJ. * m4/inet_pton.m4 (gl_FUNC_INET_PTON): Set HAVE_INET_PTON. Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Don't invoke gl_PREREQ_INET_PTON. Move tests for declaration of inet_pton here... (gl_PREREQ_INET_PTON): ... from here. * modules/inet_pton (configure.ac): Invoke AC_LIBOBJ and gl_PREREQ_INET_PTON here. (Depends-on): Update condition. 2011-05-08 Bruno Haible inet_ntop. getaddrinfo: Respect rules for use of AC_LIBOBJ. * m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): Set HAVE_INET_NTOP. Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Don't invoke gl_PREREQ_INET_NTOP. Move tests for declaration of inet_ntop here... (gl_PREREQ_INET_NTOP): ... from here. * modules/inet_ntop (configure.ac): Invoke AC_LIBOBJ and gl_PREREQ_INET_NTOP here. (Depends-on): Update condition. 2011-05-08 Bruno Haible iconv_open: Move AC_LIBOBJ invocations to module description. * m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN, gl_REPLACE_ICONV_OPEN): Move AC_LIBOBJ invocations from here... * modules/iconv_open (configure.ac): ... to here. 2011-05-08 Bruno Haible iconv_open, iconv_open-utf: Respect rules for use of AC_LIBOBJ. If module 'iconv_open' is among the main modules and module 'iconv_open-utf' is among the tests dependencies, then REPLACE_ICONV_UTF will be defined to 1, hence iconv_open() in lib may return the special iconv_t values. Therefore iconv() and iconv_close() must support these special iconv_t values, already in lib, not only in tests. * m4/iconv_open-utf.m4: New file, extracted from m4/iconv_open.m4. * m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): Invoke gl_FUNC_ICONV_OPEN_UTF_SUPPORT if present. (gl_FUNC_ICONV_OPEN_UTF): Remove macro. * modules/iconv_open (Files): Add lib/iconv.c, lib/iconv_close.c. (Depends-on): Add the dependencies of iconv_open-utf. * modules/iconv_open-utf (Files): Add m4/iconv_open-utf.m4. Remove m4/iconv_open.m4, lib/iconv.c, lib/iconv_close.c. (Depends-on): Remove modules needed by lib/iconv.c, lib/iconv_close.c. 2011-05-08 Bruno Haible group-member: Move AC_LIBOBJ invocations to module description. * m4/group-member.m4 (gl_FUNC_GROUP_MEMBER): Move AC_LIBOBJ and gl_PREREQ_GROUP_MEMBER invocations from here... * modules/group-member (configure.ac): ... to here. 2011-05-08 Bruno Haible grantpt: Move AC_LIBOBJ invocations to module description. * m4/grantpt.m4 (gl_FUNC_GRANTPT): Move AC_LIBOBJ and gl_PREREQ_GRANTPT invocations from here... * modules/grantpt (configure.ac): ... to here. 2011-05-08 Bruno Haible glob: Move AC_LIBOBJ invocations to module description. * m4/glob.m4 (gl_GLOB): Move AC_LIBOBJ and gl_PREREQ_GLOB invocations from here... * modules/glob (configure.ac): ... to here. 2011-05-08 Bruno Haible getusershell: Move AC_LIBOBJ invocations to module description. * m4/getusershell.m4 (gl_FUNC_GETUSERSHELL): Set HAVE_GETUSERSHELL. Move AC_LIBOBJ invocation from here... * modules/getusershell (configure.ac): ... to here. (Depends-on): Update condition. 2011-05-08 Bruno Haible gettimeofday: Move AC_LIBOBJ invocations to module description. * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY, gl_GETTIMEOFDAY_REPLACE_LOCALTIME): Move AC_LIBOBJ and gl_PREREQ_GETTIMEOFDAY invocations from here... * modules/gettimeofday (configure.ac): ... to here. 2011-05-08 Bruno Haible gettimeofday, tzset: Respect rules for use of AC_LIBOBJ. * modules/tzset (configure.ac): Don't invoke gl_FUNC_TZSET_CLOBBER, just gl_FUNC_TZSET. * m4/tzset.m4 (gl_FUNC_TZSET): New macro. (gl_FUNC_TZSET_CLOBBER): Remove actions. * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): Invoke gl_FUNC_TZSET_CLOBBER and its actions here, if present. 2011-05-08 Bruno Haible getsubopt: Move AC_LIBOBJ invocations to module description. * m4/getsubopt.m4 (gl_FUNC_GETSUBOPT): Move AC_LIBOBJ and gl_PREREQ_GETSUBOPT invocations from here... * modules/getsubopt (configure.ac): ... to here. 2011-05-08 Bruno Haible getpass-gnu: Move AC_LIBOBJ invocations to module description. * m4/getpass.m4 (gl_FUNC_GETPASS_GNU): Set REPLACE_GETPASS. Move AC_LIBOBJ and gl_PREREQ_GETPASS invocations from here... * modules/getpass-gnu (configure.ac): ... to here. 2011-05-08 Bruno Haible getpass: Move AC_LIBOBJ invocations to module description. * m4/getpass.m4 (gl_FUNC_GETPASS): Set HAVE_GETPASS. Move AC_LIBOBJ and gl_PREREQ_GETPASS invocations from here... * modules/getpass (configure.ac): ... to here. 2011-05-08 Bruno Haible getpagesize: Move AC_LIBOBJ invocations to module description. * m4/getpagesize.m4 (gl_FUNC_GETPAGESIZE): Move AC_LIBOBJ invocation from here... * modules/getpagesize (configure.ac): ... to here. 2011-05-08 Bruno Haible getopt: Move AC_LIBOBJ invocations to module description. * m4/getopt.m4 (gl_REPLACE_GETOPT): Remove macro. (gl_FUNC_GETOPT): Inline it here. Move AC_LIBOBJ and gl_PREREQ_GETOPT invocations from here... * modules/getopt-gnu (configure.ac): ... to here. * modules/getopt-posix (configure.ac): ... and here. (Depends-on): Update condition. 2011-05-08 Bruno Haible getopt, argp: Respect rules for use of AC_LIBOBJ. * m4/argp.m4 (gl_ARGP): Don't invoke gl_REPLACE_GETOPT. (gl_REPLACE_GETOPT_ALWAYS): New macro. * m4/getopt.m4 (gl_FUNC_GETOPT_POSIX): Test whether gl_REPLACE_GETOPT_ALWAYS is defined. Set REPLACE_GETOPT. 2011-05-08 Bruno Haible getlogin_r: Move AC_LIBOBJ invocations to module description. * m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Move AC_LIBOBJ and gl_PREREQ_GETLOGIN_R invocations from here... * modules/getlogin_r (configure.ac): ... to here. 2011-05-08 Bruno Haible getlogin: Move AC_LIBOBJ invocations to module description. * m4/getlogin.m4 (gl_FUNC_GETLOGIN): Move AC_LIBOBJ invocation from here... * modules/getlogin (configure.ac): ... to here. 2011-05-08 Bruno Haible getloadavg: Move AC_LIBOBJ invocations to module description. * m4/getloadavg.m4 (gl_FUNC_GETDELIM): Set HAVE_GETLOADAVG. Move AC_LIBOBJ and gl_PREREQ_GETLOADAVG invocations from here... * modules/getloadavg (configure.ac): ... to here. 2011-05-08 Bruno Haible gethrxtime: Move AC_LIBOBJ invocations to module description. * m4/gethrxtime.m4 (gl_PREREQ_GETHRXTIME): Move code that determines LIB_GETHRXTIME from here... (gl_GETHRXTIME): ... to here. Move AC_LIBOBJ and gl_PREREQ_GETHRXTIME invocations from here... * modules/gethrxtime (configure.ac): ... to here. 2011-05-08 Bruno Haible gethostname: Move AC_LIBOBJ invocations to module description. * m4/gethostname.m4 (gl_FUNC_GETHOSTNAME): Move AC_LIBOBJ and gl_PREREQ_GETHOSTNAME invocations from here... * modules/gethostname (configure.ac): ... to here. 2011-05-08 Bruno Haible getgroups: Move AC_LIBOBJ invocations to module description. * m4/getgroups.m4 (gl_FUNC_GETGROUPS): Move AC_LIBOBJ invocations from here... * modules/getgroups (configure.ac): ... to here. 2011-05-08 Bruno Haible getdtablesize: Move AC_LIBOBJ invocations to module description. * m4/getdtablesize.m4 (gl_FUNC_GETDTABLESIZE): Move AC_LIBOBJ invocation from here... * modules/getdtablesize (configure.ac): ... to here. 2011-05-08 Bruno Haible getdomainname: Move AC_LIBOBJ invocations to module description. * m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME): Move AC_LIBOBJ and gl_PREREQ_GETDOMAINNAME invocations from here... * modules/getdomainname (configure.ac): ... to here. 2011-05-08 Bruno Haible getline: Move AC_LIBOBJ invocations to module description. * m4/getline.m4 (gl_FUNC_GETLINE): Move AC_LIBOBJ and gl_PREREQ_GETLINE invocations from here... * modules/getline (configure.ac): ... to here. 2011-05-08 Bruno Haible getline: Simplify. * m4/getline.m4 (gl_PREREQ_GETLINE): Don't invoke gl_FUNC_GETDELIM. It's already handled through the module dependency. 2011-05-08 Bruno Haible getdelim: Move AC_LIBOBJ invocations to module description. * m4/getdelim.m4 (gl_FUNC_GETDELIM): Set HAVE_GETDELIM. Move AC_LIBOBJ and gl_PREREQ_GETDELIM invocations from here... * modules/getdelim (configure.ac): ... to here. (Depends-on): Fix condition. 2011-05-08 Bruno Haible getcwd: Move AC_LIBOBJ invocations to module description. * m4/getcwd.m4 (gl_FUNC_GETCWD): Move AC_LIBOBJ and gl_PREREQ_GETCWD invocations from here... * modules/getcwd (configure.ac): ... to here. 2011-05-08 Bruno Haible getcwd-lgpl: Move AC_LIBOBJ invocations to module description. * m4/getcwd.m4 (gl_FUNC_GETCWD_LGPL): Move AC_LIBOBJ invocation from here... * modules/getcwd-lgpl (configure.ac): ... to here. 2011-05-07 Bruno Haible crypto/gc: Move AC_LIBOBJ invocations to module description. * m4/gc.m4 (gl_GC): Move AC_LIBOBJ invocations from here... * modules/crypto/gc (configure.ac): ... to here. 2011-05-07 Bruno Haible fwriting: Move AC_LIBOBJ invocations to module description. * m4/fwriting.m4 (gl_FUNC_FWRITINT): Move AC_LIBOBJ invocation from here... * modules/fwriting (configure.ac): ... to here. 2011-05-07 Bruno Haible fwritable: Move AC_LIBOBJ invocations to module description. * m4/fwritable.m4 (gl_FUNC_FWRITABLE): Move AC_LIBOBJ invocation from here... * modules/fwritable (configure.ac): ... to here. 2011-05-07 Bruno Haible futimens: Move AC_LIBOBJ invocations to module description. * m4/futimens.m4 (gl_FUNC_FUTIMENS): Move AC_LIBOBJ invocations from here... * modules/futimens (configure.ac): ... to here. 2011-05-07 Bruno Haible ftruncate: Move AC_LIBOBJ invocations to module description. * m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): Move AC_LIBOBJ and gl_PREREQ_FTRUNCATE invocations from here... * modules/ftruncate (configure.ac): ... to here. 2011-05-07 Bruno Haible fsync: Move AC_LIBOBJ invocations to module description. * m4/fsync.m4 (gl_FUNC_FSYNC): Move AC_LIBOBJ and gl_PREREQ_FSYNC invocations from here... * modules/fsync (configure.ac): ... to here. 2011-05-07 Bruno Haible fsusage: Move AC_LIBOBJ invocations to module description. * m4/fsusage.m4 (gl_FUNC_FREOPEN): Move AC_LIBOBJ and gl_PREREQ_FSUSAGE_EXTRA invocations from here... * modules/fsusage (configure.ac): ... to here. 2011-05-07 Bruno Haible freopen: Move AC_LIBOBJ invocations to module description. * m4/freopen.m4 (gl_FUNC_FREOPEN): Move AC_LIBOBJ and gl_PREREQ_FREOPEN invocations from here... * modules/freopen (configure.ac): ... to here. 2011-05-07 Bruno Haible free: Move AC_LIBOBJ invocations to module description. * m4/free.m4 (gl_FUNC_FREE): Move AC_LIBOBJ and missing gl_PREREQ_FREE invocations from here... * modules/free (configure.ac): ... to here. 2011-05-07 Bruno Haible freadable: Move AC_LIBOBJ invocations to module description. * m4/freadable.m4 (gl_FUNC_FREADABLE): Move AC_LIBOBJ invocation from here... * modules/freadable (configure.ac): ... to here. 2011-05-07 Bruno Haible fpurge: Move AC_LIBOBJ invocations to module description. * m4/fpurge.m4 (gl_FUNC_FPURGE): Set HAVE_FPURGE. Move AC_LIBOBJ invocations from here... * modules/fpurge (configure.ac): ... to here. 2011-05-07 Bruno Haible fpending: Move AC_LIBOBJ invocations to module description. * m4/fpending.m4 (gl_PREREQ_FPENDING): New macro, extracted from gl_FUNC_FPENDING. (gl_FUNC_FPENDING): Move AC_LIBOBJ and gl_PREREQ_FPENDING invocations from here... * modules/fpending (configure.ac): ... to here. 2011-05-07 Bruno Haible fopen: Move AC_LIBOBJ invocations to module description. * m4/fopen.m4 (gl_FUNC_FOPEN): Move AC_LIBOBJ and gl_PREREQ_FOPEN invocations from here... * modules/fopen (configure.ac): ... to here. 2011-05-07 Bruno Haible fnmatch, fnmatch-gnu: Move AC_LIBOBJ invocations to module description. * m4/fnmatch.m4 (gl_PREREQ_FNMATCH): New macro, extracted from gl_FUNC_FNMATCH_POSIX. (gl_FUNC_FNMATCH_POSIX): Move AC_LIBOBJ and gl_PREREQ_FNMATCH invocations from here... * modules/fnmatch (configure.ac): ... to here. * modules/fnmatch-gnu (configure.ac): ... and here. 2011-05-07 Bruno Haible flock: Move AC_LIBOBJ invocations to module description. * m4/flock.m4 (gl_FUNC_FLOCK): Move AC_LIBOBJ and gl_PREREQ_FLOCK invocations from here... * modules/flock (configure.ac): ... to here. 2011-05-07 Bruno Haible fileblocks: Move AC_LIBOBJ invocations to module description. * m4/fileblocks.m4 (gl_FILEBLOCKS): Move AC_LIBOBJ and gl_PREREQ_FILEBLOCKS invocations from here... * modules/fileblocks (configure.ac): ... to here. 2011-05-06 Bruno Haible fflush: Move AC_LIBOBJ invocations to module description. * m4/fflush.m4 (gl_REPLACE_FFLUSH): Remove macro. (gl_FUNC_FFLUSH): Inline it here. Move AC_LIBOBJ and gl_PREREQ_FFLUSH invocations from here... * modules/fflush (configure.ac): ... to here. 2011-05-06 Bruno Haible fdopendir: Move AC_LIBOBJ invocations to module description. * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Move AC_LIBOBJ invocations from here... * modules/fdopendir (configure.ac): ... to here. (Depends-on): Improve conditions. 2011-05-06 Bruno Haible _Exit: Move AC_LIBOBJ invocations to module description. * m4/_Exit.m4 (gl_FUNC__EXIT): Move AC_LIBOBJ and gl_PREREQ__EXIT invocations from here... * modules/_Exit (configure.ac): ... to here. 2011-05-21 Bruno Haible euidaccess: Respect rules for use of AC_LIBOBJ. * m4/euidaccess.m4 (gl_FUNC_EUIDACCESS): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_EUIDACCESS invocations from here... * modules/euidaccess (configure.ac): ... to here. 2011-05-06 Bruno Haible error: Move AC_LIBOBJ invocations to module description. * m4/error.m4 (gl_ERROR): Inline AC_FUNC_ERROR_AT_LINE. Remove AC_LIBSOURCES invocation. Move AC_LIBOBJ and gl_PREREQ_ERROR invocations from here... * modules/error (configure.ac): ... to here. 2011-05-06 Bruno Haible duplocale: Move AC_LIBOBJ invocations to module description. * m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Move AC_LIBOBJ and gl_PREREQ_DUPLOCALE invocations from here... * modules/duplocale (configure.ac): ... to here. 2011-05-05 Bruno Haible dirfd: Move AC_LIBOBJ invocations to module description. * m4/dirfd.m4 (gl_PREREQ_DIRFD): New macro, extracted from gl_FUNC_DIRFD. (gl_FUNC_DIRFD): Move AC_LIBOBJ and gl_PREREQ_DIRFD invocations from here... * modules/dirfd (configure.ac): ... to here. (Depends-on): Fix condition. 2011-05-05 Bruno Haible chown: Respect rules for use of AC_LIBOBJ. * m4/chown.m4 (gl_FUNC_CHOWN): Move AC_LIBOBJ invocations from here... * modules/chown (configure.ac): ... to here. 2011-05-05 Bruno Haible chdir-long: Move AC_LIBOBJ invocations to module description. * m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Move AC_LIBOBJ and gl_PREREQ_CHDIR_LONG invocations from here... * modules/chdir-long (configure.ac): ... to here. 2011-05-05 Bruno Haible canonicalize-lgpl: Move AC_LIBOBJ invocations to module description. * m4/canonicalize.m4 (gl_CANONICALIZE_LGPL): Move AC_LIBOBJ invocation from here... * modules/canonicalize-lgpl (configure.ac): ... to here. 2011-05-05 Bruno Haible calloc-posix, calloc-gnu: Move AC_LIBOBJs to module description. * m4/calloc.m4 (gl_REPLACE_CALLOC): Remove macro. (gl_FUNC_CALLOC_GNU, gl_FUNC_CALLOC_POSIX): Instead, just set REPLACE_CALLOC. * modules/calloc-posix (configure.ac): Invoke AC_LIBOBJ here. * modules/calloc-gnu (configure.ac): Likewise. 2011-05-05 Bruno Haible btowc: Move AC_LIBOBJ invocations to module description. * m4/btowc.m4 (gl_FUNC_BTOWC): Move AC_LIBOBJ and gl_PREREQ_BTOWC invocations from here... * modules/btowc (configure.ac): ... to here. 2011-05-21 Bruno Haible atexit: Move AC_LIBOBJ invocations to module description. * m4/atexit.m4 (gl_FUNC_ATEXIT): Call AC_CHECK_FUNCS instead of AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_ATEXIT invocations from here... * modules/atexit (configure.ac): ... to here. 2011-05-05 Bruno Haible atoll: Move AC_LIBOBJ invocations to module description. * m4/atoll.m4 (gl_FUNC_ATOLL): Move AC_LIBOBJ and gl_PREREQ_ATOLL invocations from here... * modules/atoll (configure.ac): ... to here. 2011-05-05 Bruno Haible argz: Move AC_LIBOBJ invocations to module description. * m4/argz.m4 (gl_FUNC_ARGZ): Move AC_LIBOBJ invocation from here... * modules/argz (configure.ac): ... to here. 2011-05-05 Bruno Haible alphasort: Move AC_LIBOBJ invocations to module description. * m4/alphasort.m4 (gl_FUNC_ALPHASORT): Move AC_LIBOBJ and gl_PREREQ_ALPHASORT invocations from here... * modules/alphasort (configure.ac): ... to here. 2011-06-15 Paul Eggert verify: new macro verify_expr; verify_true deprecated * NEWS: Mention this. * doc/verify.texi (Compile-time Assertions): Document this. * lib/verify.h (verify_true): Deprecate. (verify_expr): New macro. * tests/test-verify.c (function): Test verify_expr. 2011-06-14 Jim Meyering init.sh: give more portable redirection-related advice in a comment * tests/init.sh (stderr_fileno_): Update the advice in comments. See http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/22488 for lots of discussion. Stefano Lattarini suggested the solution of putting "9>&2" after the command. Reported by Bruno Haible. 2011-06-13 Bruno Haible locale-zh: Reject zh_CN.GB18030 locale on Solaris 8. * m4/locale-zh.m4 (gt_LOCALE_ZH_CN): On Solaris 8, set LOCALE_ZH_CN to 'none'. 2011-06-13 Paul Eggert ftoastr: use strtof only if HAVE_STRTOF This is needed on HP-UX 11.11 with GCC 4.2.4; see Bruno Haible's report . * lib/ftoastr.c (STRTOF) [LENGTH == 1]: Use strtof only if HAVE_STRTOF. * modules/ftoastr (configure.ac): Check for strtof. 2011-06-13 Bruno Haible gnulib-tool: Addendum to 2011-06-08 commit. * gnulib-tool (func_emit_lib_Makefile_am): If options --makefile-name and --witness-c-macro have been given, augment AM_CPPFLAGS. 2011-06-13 Bruno Haible fseeko: Provide a non-inline replacement of fseek(). * lib/stdio.in.h (fseek): Don't provide if module 'fseek' is not used. * modules/fseeko (Depends-on): Add fseek. * modules/fseek (License): Change to LGPLv2+. 2011-06-13 Bruno Haible ftello: Provide a non-inline replacement of ftell(). * lib/stdio.in.h (ftell): Don't provide if module 'ftell' is not used. * m4/ftell.m4 (gl_FUNC_FTELL): Replace ftell also if the system does not have ftello() (such as on mingw). * modules/ftello (Depends-on): Add ftell. * modules/ftell (License): Change to LGPLv2+. 2011-05-07 Bruno Haible ftell: Move AC_LIBOBJ invocations to module description. * m4/ftell.m4 (gl_FUNC_FTELL): Move AC_LIBOBJ invocation from here... * modules/ftell (configure.ac): ... to here. 2011-05-07 Bruno Haible ftello: Respect rules for use of AC_LIBOBJ. * m4/ftello.m4 (gl_REPLACE_FTELLO): Remove macro. (gl_FUNC_FTELLO): Inline it here. Move AC_LIBOBJ invocation from here... * modules/ftello (configure.ac): ... to here. 2011-05-07 Bruno Haible fseeko: Simplify. * m4/fseeko.m4 (gl_HAVE_FSEEKO): Remove macro. (gl_FUNC_FSEEKO): Inline it here. 2011-05-07 Bruno Haible fseek: Move AC_LIBOBJ invocations to module description. * m4/fseek.m4 (gl_REPLACE_FSEEK): Remove macro. (gl_FUNC_FSEEK): Inline it here. Move AC_LIBOBJ invocation from here... * modules/fseek (configure.ac): ... to here. 2011-05-07 Bruno Haible fseek: Respect rules for use of AC_LIBOBJ. * m4/fseeko.m4 (gl_FUNC_FSEEKO): Move gl_REPLACE_FSEEK invocation from here... * m4/fseek.m4 (gl_FUNC_FSEEK): ... to here. 2011-05-07 Bruno Haible fseeko: Respect rules for use of AC_LIBOBJ. * m4/fseeko.m4 (gl_REPLACE_FSEEKO): Remove macro. (gl_FUNC_FSEEKO): Inline it here. Move AC_LIBOBJ invocation from here... * modules/fseeko (configure.ac): ... to here. 2011-06-13 Bruno Haible gnulib-tool: Allow comments in the 'Depends-on' section. * doc/gnulib.texi (Module description): Mention comment syntax in the Depends-on section. * gnulib-tool (func_get_dependencies): Filter out comment lines. 2011-06-13 Bruno Haible file-set.h: guard __attibute__ use, now that it's not always defined * lib/file-set.h (record_file): Use __attribute__ only with compiler versions that support it. This fixes a coreutils build failure with the vendor cc on HP-UX 11.31. 2011-06-12 Bruno Haible acl: Add support for HP-UX >= 11.11 JFS ACLs. * doc/acl-resources.txt: Add info about the ACL APIs on HP-UX. * m4/acl.m4 (gl_FUNC_ACL): Also test for HP-UX 11.11 API. * lib/acl-internal.h [HP-UX 11.11]: Include . (acl, aclsort): New declarations. (aclv_nontrivial): New declaration. * lib/file-has-acl.c (aclv_nontrivial) [HP-UX 11.11]: New function. (file_has_acl): Read also the second kind of HP-UX ACLs. * lib/set-mode-acl.c (qset_acl) [HP-UX 11.11]: Try to set the second kind of HP-UX ACLs if the first kind fails. * lib/copy-acl.c (qcopy_acl) [HP-UX 11.11]: Read and set also the second kind of HP-UX ACLs. * tests/test-sameacls.c [HP-UX 11.11]: Include . (main) [HP-UX 11.11]: Test also whether the second kind of HP-UX ACLs agree. * tests/test-file-has-acl.sh (acl_flavor) [HP-UX 11.11]: Set to hpuxjfs. Handle hpuxjfs. * tests/test-set-mode-acl.sh (acl_flavor) [HP-UX 11.11]: Set to hpuxjfs. Handle hpuxjfs. * tests/test-copy-acl.sh (acl_flavor) [HP-UX 11.11]: Set to hpuxjfs. (func_test_same_acls): Use both lsacl and getacl. Handle hpuxjfs. * tests/test-copy-file.sh (acl_flavor) [HP-UX 11.11]: Set to hpuxjfs. (func_test_same_acls): Use both lsacl and getacl. Handle hpuxjfs. 2011-06-12 Bruno Haible acl: Complete the 2010-08-10 fix. * lib/file-has-acl.c (file_has_acl) [HP-UX]: Also test against ENOTSUP. * lib/set-mode-acl.c (qset_acl) [HP-UX]: Likewise. * lib/copy-acl.c (qcopy_acl) [HP-UX]: Test for the errno values explicitly. * tests/test-sameacls.c (main) [HP-UX]: Also test against ENOTSUP. Reported in . 2011-06-12 Bruno Haible spawn-pipe tests: Comments. * tests/test-spawn-pipe-child.c (main): Update comment. Reported by James Youngman . 2011-06-11 James Youngman New module 'stat-size'. * modules/stat-size: New module. Provides macros for accessing file size information in instances of struct stat. Depends on the fileblocks module because it calls st_blocks. * lib/stat-size.h: New file, adapted from coreutils' system.h. * doc/gnulib.texi: Include stat-size.texi. * doc/stat-size.texi: Documentation for this module. * m4/stat-size.m4: New file; defines gl_STAT_SIZE. * m4/fileblocks.m4: Mention that stat-size depends on the call to AC_STRUCT_ST_BLOCKS. 2011-06-09 Bruno Haible thread: Support pthreads-win32. * lib/glthread/thread.h (gl_thread_self): Define differently on pthreads-win32. (gl_null_thread): New declaration. (gl_thread_self_pointer): New macro. * lib/glthread/thread.c (gl_null_thread): New constant. * tests/test-lock.c: Use gl_thread_self_pointer instead of gl_thread_self. * tests/test-tls.c: Likewise. Suggested by Paul Eggert. Reported by Eric Blake. 2011-06-09 Bruno Haible thread: Fix confusion between NULL and 0. * lib/glthread/thread.h (gl_thread_self): Use NULL and 0 appropriately. Reported by Paul Eggert. 2011-06-09 Bruno Haible spawn-pipe tests: Avoid test failure on HP-UX 11. * tests/test-spawn-pipe-child.c (main) [HP-UX]: Don't assert that fd 2 is closed. 2011-06-09 Bruno Haible acl tests: Fix compilation error on HP-UX 11. * tests/test-sameacls.c: Include also on HP-UX. 2011-06-09 Bruno Haible rmdir: Avoid test failure on HP-UX 10.20. * tests/test-rmdir.h (test_rmdir_func): Accept ENOTEMPTY error, like EEXIST. 2011-06-08 Eric Blake perror: fix test on mingw * modules/perror-tests (Depends-on): Add dup2. strerror_r-posix: fix on MacOS * m4/strerror.m4 (gl_FUNC_STRERROR): Flush out MacOS bug. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS): Likewise, and fix logic bug. * lib/strerror_r.c (strerror_r): Fix the bug. * lib/strerror.c (strerror): Likewise. * doc/posix-functions/strerror_r.texi (strerror_r): Document the problem. * doc/posix-functions/strerror.texi (strerror): Likewise. * doc/posix-functions/perror.texi (perror): Likewise. * tests/test-strerror.c (main): Enhance test. * tests/test-strerror_r.c (main): Likewise. 2011-06-08 Bruno Haible gnulib-tool: Better isolation between different gnulib-tool invocations. * gnulib-tool: New option --witness-c-macro. (witness_c_macro): New variable. (func_emit_lib_Makefile_am): If --witness-c-macro was specified, let AM_CPPFLAGS define it as a C macro. (func_emit_tests_Makefile_am): Likewise. (func_import): Store witness_c_macro setting in gnulib-cache.m4 and read it from there. * m4/gnulib-common.m4 (gl_MODULE_INDICATOR_CONDITION): Define through m4_define, not AC_DEFUN. (gl_MODULE_INDICATOR_SET_VARIABLE_AUX, gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR): New macros. (gl_MODULE_INDICATOR_SET_VARIABLE): Use them. * modules/arpa_inet (Makefile.am): Use sed expression s/.../.../, not s|...|...|, to substitute the values of the GNULIB_* module indicator variables. * modules/dirent (Makefile.am): Likewise. * modules/fcntl-h (Makefile.am): Likewise. * modules/iconv-h (Makefile.am): Likewise. * modules/langinfo (Makefile.am): Likewise. * modules/locale (Makefile.am): Likewise. * modules/math (Makefile.am): Likewise. * modules/netdb (Makefile.am): Likewise. * modules/poll-h (Makefile.am): Likewise. * modules/pty (Makefile.am): Likewise. * modules/search (Makefile.am): Likewise. * modules/signal (Makefile.am): Likewise. * modules/spawn (Makefile.am): Likewise. * modules/stdio (Makefile.am): Likewise. * modules/stdlib (Makefile.am): Likewise. * modules/string (Makefile.am): Likewise. * modules/sys_ioctl (Makefile.am): Likewise. * modules/sys_select (Makefile.am): Likewise. * modules/sys_socket (Makefile.am): Likewise. * modules/sys_stat (Makefile.am): Likewise. * modules/sys_times (Makefile.am): Likewise. * modules/sys_utsname (Makefile.am): Likewise. * modules/sys_wait (Makefile.am): Likewise. * modules/termios (Makefile.am): Likewise. * modules/time (Makefile.am): Likewise. * modules/unistd (Makefile.am): Likewise. * modules/wchar (Makefile.am): Likewise. 2011-06-08 Eric Blake strerror: simplify replacement * m4/strerror.m4 (gl_PREREQ_STRERROR): Delete. * modules/strerror (configure.ac): No prereqs needed here... * modules/strerror-override (configure.ac): ...but this needs it. (Files): Add file for needed prereq macro. 2011-06-08 Bruno Haible strerror_r-posix: Tweaks. * m4/strerror.m4 (gl_FUNC_STRERROR): Omit the code that tests gl_cv_func_strerror_r_works if gl_FUNC_STRERROR_R_WORKS is not present. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS): Fix AC_CACHE_CHECK message. Move gl_HEADER_STRING_H_DEFAULTS invocation from here... (gl_FUNC_STRERROR_R): ... to here. (gl_PREREQ_STRERROR_R): Test for __xpg_strerror_r. 2011-06-07 Eric Blake perror: document fixed bugs * doc/posix-functions/perror.texi (perror): Document recent patches. 2011-06-07 Paul Eggert stat-time: get_stat_birthtime failure is better-defined * lib/stat-time.h (get_stat_birthtime): If the time is not available, return a timestamp whose tv_sec and tv_nsec values are both -1. Previously, the spec said only that the tv_nsec value was negative. This upward-compatible change simplifies GNU tar a bit. 2011-06-07 Eric Blake strerror_r-posix: work around cygwin 1.7.9 * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Split... (gl_FUNC_STRERROR_R_WORKS): ...into new macro, to detect Cygwin bug without replacing strerror_r. * m4/strerror.m4 (gl_FUNC_STRERROR): Replace strerror if strerror_r is buggy, but without requiring strerror_r compilation. * doc/posix-functions/strerror_r.texi (strerror_r): Fix docs. test-perror: relax test to ignore cygwin bug * tests/test-perror2.c (main): Relax test on requiring detection of stream errors, and use unbuffered stream. * doc/posix-functions/dprintf.texi (dprintf): Document bug. * doc/posix-functions/fprintf.texi (fprintf): Likewise. * doc/posix-functions/fputc.texi (fputc): Likewise. * doc/posix-functions/fputs.texi (fputs): Likewise. * doc/posix-functions/fputws.texi (fputws): Likewise. * doc/posix-functions/fwprintf.texi (fwprintf): Likewise. * doc/posix-functions/fwrite.texi (fwrite): Likewise. * doc/posix-functions/getopt.texi (getopt): Likewise. * doc/posix-functions/perror.texi (perror): Likewise. * doc/posix-functions/printf.texi (printf): Likewise. * doc/posix-functions/psiginfo.texi (psiginfo): Likewise. * doc/posix-functions/psignal.texi (psignal): Likewise. * doc/posix-functions/putc.texi (putc): Likewise. * doc/posix-functions/putc_unlocked.texi (putc_unlocked): Likewise. * doc/posix-functions/putchar.texi (putchar): Likewise. * doc/posix-functions/putchar_unlocked.texi (putchar_unlocked): Likewise. * doc/posix-functions/puts.texi (puts): Likewise. * doc/posix-functions/putwc.texi (putwc): Likewise. * doc/posix-functions/putwchar.texi (putwchar): Likewise. * doc/posix-functions/vdprintf.texi (vdprintf): Likewise. * doc/posix-functions/vfprintf.texi (vfprintf): Likewise. * doc/posix-functions/vfwprintf.texi (vfwprintf): Likewise. * doc/posix-functions/vprintf.texi (vprintf): Likewise. * doc/posix-functions/vwprintf.texi (vwprintf): Likewise. * doc/posix-functions/wordexp.texi (wordexp): Likewise. * doc/posix-functions/wprintf.texi (wprintf): Likewise. 2011-05-22 Bruno Haible strerror: Move AC_LIBOBJ invocations to module description. * m4/strerror.m4 (gl_FUNC_STRERROR): Move AC_LIBOBJ and gl_PREREQ_STRERROR invocations from here... * modules/strerror (configure.ac): ... to here. 2011-05-21 Bruno Haible perror: Use common idiom. * modules/perror (configure.ac): Reorder statements. 2011-06-07 Stefano Lattarini tests: fix usage message in 'mktempd_' * tests/init.sh (mktempd_): In the usage message, use literal 'mktempd_', not '$ME' (which is even undefined), as the name of the subroutine. 2011-06-07 Stefano Lattarini tests init: new function 'fatal_', for hard errors Before this patch, the only way offered by tests/init.sh to properly signal a hard error was the `framework_failure_' function. But the error message issued by that function, as its name would suggest, refers to a set-up failure in the testsuite, while hard errors can obviously also be due to other reasons. The best way to fix this inconsistency is to introduce a new function with a more general error message. * tests/init.sh (fatal_): New function. 2011-06-06 Eric Blake canonicalize-lgpl: use common idiom * m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Prefer older rm -rf over newer POSIX -Rf. Reported by Bruno Haible. canonicalize-lgpl: work around AIX realpath bug * m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Expose AIX bug. * doc/posix-functions/realpath.texi (realpath): Document it. Reported by Bruno Haible. strerror: work around FreeBSD bug * lib/strerror.c (strerror): Special case 0. Reported by Bruno Haible. strerror-override: avoid bloating errno module * modules/errno (Files, configure.ac): Move replacement strings... * modules/strerror-override: ...to new module. * modules/strerror (Depends-on): Add strerror-override. * modules/strerror_r-posix (Depends-on): Likewise. * MODULES.html.sh: Document new module. Reported by Bruno Haible. 2011-06-06 Bruno Haible spawn-pipe tests: Rename program. * tests/test-spawn-pipe-main.c: Renamed from tests/test-spawn-pipe.c. * tests/test-spawn-pipe-child.c: Update comment. * tests/test-spawn-pipe.sh: Update. * modules/spawn-pipe-tests (Files, Makefile.am): Update. spawn-pipe tests: Link the child program only against libc. * tests/test-spawn-pipe-child.c: New file, extracted from tests/test-spawn-pipe.c. (main): Expect only one argument. (is_open): New function, copied from tests/test-pipe.c. * tests/test-spawn-pipe.c: Don't include . (child_main): Remove function. (test_pipe): Pass only one argument to the child program. (main): Remove child process code. Expect the child program's name as first argument. * tests/test-spawn-pipe.sh: Pass the child program's name as first argument. * modules/spawn-pipe-tests (Files): Add tests/test-spawn-pipe-child.c. (Makefile.am): Add test-spawn-pipe-child to check_PROGRAMS. Link test-spawn-pipe-child against no libraries. 2011-06-06 Bruno Haible careadlinkat: Avoid mismatch between ssize_t and int. * lib/careadlinkat.h (careadlinkatcwd): Declare as a function always. * lib/careadlinkat.c (careadlinkatcwd): Define always. 2011-06-06 Jim Meyering gnulib-common.m4: add _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE * m4/gnulib-common.m4 (gl_COMMON): Emit definitions of _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE. 2011-06-05 Bruno Haible ansi-c++-opt: Interoperability with libtool. * m4/ansi-c++.m4 (gl_PROG_ANSI_CXX): When a C++ compiler is not found, set the variable to "no", not to ":". * NEWS: Mention the change. 2011-06-05 Bruno Haible acl: Fix test failure on AIX 7. * tests/test-sameacls.c (main) [AIX]: Fix aclx_printStr invocation. Based on a patch by Jørn Amundsen . 2011-06-05 Bruno Haible pipe-filter-ii: Fix test failure on AIX and IRIX. * lib/pipe-filter-ii.c (pipe_filter_ii_execute): When write() fails with EAGAIN, retry with a smaller buffer size. 2011-06-05 Bruno Haible localename: Fix link dependencies. * modules/localename (Link): Mention $(LIBTHREAD) or $(LTLIBTHREAD). * modules/localename-tests (Makefile.am): Link test-localename with $(LIBTHREAD). 2011-06-05 Bruno Haible error: Avoid gcc warning. * lib/error.c (strerror_r): Declare also when its return type is 'int'. 2011-06-05 Bruno Haible unsetenv: Avoid gcc warning. * lib/unsetenv.c (unsetenv): Provide declaration if system lacks it. 2011-06-05 Bruno Haible setenv: Avoid gcc warning. * lib/setenv.c (setenv): Provide declaration if system lacks it. 2011-06-05 Bruno Haible sys_select: Ensure memset is declared also on AIX 7. * lib/sys_select.in.h: Include also on AIX. * doc/posix-headers/sys_select.texi: Mention that is not self-contained also on AIX 7.1. 2011-06-04 Jim Meyering maint.mk: sc_unmarked_diagnostics: don't hard-code "error" * top/maint.mk (sc_unmarked_diagnostics): Don't hard-code the function name, "error". (_gl_translatable_diag_func_re): New configurable variable. 2011-06-04 Bruno Haible getopt: Avoid gcc warning. * lib/getopt.c (_getopt_internal_r): Remove unused variable 'ambig'. 2011-06-04 Bruno Haible strerror_r: Fix comments. * lib/strerror_r.c (strerror_r): Update comments after 2011-06-01 commit. 2011-06-04 Bruno Haible perror: Fix compilation error. * lib/perror.c: Don't include intprops.h, verify.h, strerror-impl.h. Undefine fprintf, not sprintf. * modules/perror (Depends-on): Remove intprops, verify. 2011-06-04 Bruno Haible setlocale: Enable replacement on Cygwin 1.5. * m4/setlocale.m4 (gl_FUNC_SETLOCALE): Set REPLACE_SETLOCALE also on Cygwin 1.5.x. * doc/posix-functions/setlocale.texi: Mention that the problem with the LC_CTYPE category also exists on Cygwin 1.5.x. 2011-06-04 Bruno Haible strerror-override: Don't disable symbol renamings. * lib/strerror-override.h: Include errno.h and stddef.h, not string.h. * lib/strerror-override.c: Include config.h. (strerror_override): Don't undefine. 2011-06-03 Bruno Haible Copyright: Use LGPL 2.1 instead of LGPL 2.0. * lib/localename.h: Update copyright header. * lib/localename.c: Likewise. * lib/relocatable.h: Likewise. * lib/relocatable.c: Likewise. 2011-06-02 Bruno Haible doc: Fix a module name. * doc/posix-functions/open.texi: Fix module name 'nonblocking'. 2011-06-02 Bruno Haible pipe2: Remove dependency on 'nonblocking' module. * lib/pipe2.c: Include verify.h. Include nonblocking.h only if O_NONBLOCK is defined by gnulib. (pipe2) [WIN32]: If O_NONBLOCK is not defined by gnulib, verify that it is zero. * modules/pipe2 (Depends-on): Add verify. Remove nonblocking. * tests/test-pipe2.c: Include nonblocking.h only if O_NONBLOCK is defined by gnulib. (get_nonblocking_flag): New function. (main): Test O_NONBLOCK flag only if it is nonzero. * doc/glibc-functions/pipe2.texi: Mention the 'nonblocking' module. 2011-06-03 Jim Meyering maint: three new prohibit-header-without-use rules Prohibit use of cloexec.h, posixver.h, same.h without use. * top/maint.mk (sc_prohibit_cloexec_without_use): New rule. (sc_prohibit_posixver_without_use): Likewise. (sc_prohibit_same_without_use): Likewise. 2011-06-02 Paul Eggert allocator: 'die' routine is now given requested size * lib/allocator.h (struct allocator.die): New size arg. * lib/careadlinkat.c (careadlinkat): Pass size to 'die' function. If the actual problem is an ssize_t limitation, not a size_t or malloc failure, fail with errno==ENAMETOOLONG instead of calling 'die'. 2011-06-01 Eric Blake strerror: drop strerror_r dependency * lib/strerror_r.c (strerror_r): Move gnulib replacement strings... * lib/strerror-override.c (strerror_override): ...to new file. * lib/strerror-override.h: Add prototype. * lib/strerror-impl.h: Delete. * lib/strerror.c (strerror): New implementation. * modules/errno (Files): Add new files. (configure.ac): Compile new file as appropriate. * modules/strerror (Files): Drop unused file. (Depends-on): Drop strerror_r-posix. * MODULES.html.sh: Document strerror_r-posix. Requested by Sam Steingold. perror: call strerror_r directly * modules/perror (Files): Drop strerror-impl.h. * lib/perror.c (perror): Use our own stack buffer, rather than calling a wrapper that uses static storage. * doc/posix-functions/perror.texi (perror): Document a limitation of our replacement. strerror_r: fix includes for FreeBSD * lib/strerror_r.c (includes): Use unconditionally, since we use abort on some platforms. Reported by Matthias Bolte. 2011-05-31 Bruno Haible Fix link errors in tests: openat-die uses gettext-h. * modules/areadlinkat-tests (Makefile.am): Link test-areadlinkat against $(LIBINTL). * modules/dirent-safer-tests (Makefile.am): Link test-dirent-safer against $(LIBINTL). * modules/fdopendir-tests (Makefile.am): Link test-fdopendir against $(LIBINTL). * modules/fdutimensat-tests (Makefile.am): Link test-fdutimensat against $(LIBINTL). * modules/linkat-tests (Makefile.am): Link test-linkat against $(LIBINTL). * modules/mkfifoat-tests (Makefile.am): Link test-mkfifoat against $(LIBINTL). * modules/openat-safer-tests (Makefile.am): Link test-openat-safer against $(LIBINTL). * modules/openat-tests (Makefile.am): Link test-fchownat, test-fstatat, test-mkdirat, test-openat, test-unlinkat against $(LIBINTL). * modules/readlinkat-tests (Makefile.am): Link test-readlinkat against $(LIBINTL). * modules/symlinkat-tests (Makefile.am): Link test-symlinkat against $(LIBINTL). * modules/utimensat-tests (Makefile.am): Link test-utimensat against $(LIBINTL). Reported by Tom G. Christensen . 2011-05-31 Bruno Haible Fix link errors in tests: wait-process uses gettext-h. * modules/nonblocking-pipe-tests (Makefile.am): Set test_nonblocking_pipe_main_LDADD. * modules/nonblocking-socket-tests (Makefile.am): Link test-nonblocking-socket-main against $(LIBINTL). Reported by Tom G. Christensen . 2011-05-29 Paul Eggert assert-h: work around 'verify' incompatibility * lib/verify.h: Use @...@ directives, not ifdef. * modules/assert-h (assert.h): Implement the directives. (assert.h): Substitute the symbol-prefix more consistently. 2011-05-29 Jim Meyering trim: remove three superfluous assignments * lib/trim.c (trim2): Remove three superfluous assignments and correct brace positioning. 2011-05-29 Bruno Haible wctype-h: Avoid namespace pollution on Solaris 2.6. * lib/wctype.in.h: On Solaris, undefine 'multibyte' and a few other identifiers. * doc/posix-headers/wctype.texi: Mention the problem. Reported by Tom G. Christensen . 2011-05-28 Jim Meyering parse-datetime.y: accommodate -Wstrict-overflow * lib/parse-datetime.y (yylex): Rearrange pointer arithmetic to placate -Wstrict-overflow. trim: avoid a warning from -O2 -Wstrict-overflow * lib/trim.c (trim2): Declare local to be "unsigned int", not "int". 2011-05-29 Bruno Haible gnulib-tool: Fix bug in yesterday's commit. * gnulib-tool (func_create_testdir): Don't add gltests to $subdirs twice. 2011-05-29 Bruno Haible Allow multiple gnulib generated include files to be combined. * gnulib-tool (func_compute_include_guard_prefix): New function. (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Resolve also ${gl_include_guard_prefix} references. (func_import, func_create_testdir): Invoke func_compute_include_guard_prefix. * lib/arpa_inet.in.h: Use the @GUARD_PREFIX@ placeholder. * lib/ctype.in.h: Likewise. * lib/dirent.in.h: Likewise. * lib/errno.in.h: Likewise. * lib/fcntl.in.h: Likewise. * lib/float.in.h: Likewise. * lib/getopt.in.h: Likewise. * lib/iconv.in.h: Likewise. * lib/langinfo.in.h: Likewise. * lib/locale.in.h: Likewise. * lib/math.in.h: Likewise. * lib/netdb.in.h: Likewise. * lib/netinet_in.in.h: Likewise. * lib/poll.in.h: Likewise. * lib/pthread.in.h: Likewise. * lib/pty.in.h: Likewise. * lib/sched.in.h: Likewise. * lib/se-selinux.in.h: Likewise. * lib/search.in.h: Likewise. * lib/signal.in.h: Likewise. * lib/spawn.in.h: Likewise. * lib/stdarg.in.h: Likewise. * lib/stddef.in.h: Likewise. * lib/stdint.in.h: Likewise. * lib/stdio.in.h: Likewise. * lib/stdlib.in.h: Likewise. * lib/string.in.h: Likewise. * lib/strings.in.h: Likewise. * lib/sys_file.in.h: Likewise. * lib/sys_ioctl.in.h: Likewise. * lib/sys_select.in.h: Likewise. * lib/sys_socket.in.h: Likewise. * lib/sys_stat.in.h: Likewise. * lib/sys_time.in.h: Likewise. * lib/sys_times.in.h: Likewise. * lib/sys_uio.in.h: Likewise. * lib/sys_utsname.in.h: Likewise. * lib/sys_wait.in.h: Likewise. * lib/sysexits.in.h: Likewise. * lib/termios.in.h: Likewise. * lib/time.in.h: Likewise. * lib/unistd.in.h: Likewise. * lib/wchar.in.h: Likewise. * lib/wctype.in.h: Likewise. * modules/arpa_inet (Makefile.am): Substitute @GUARD_PREFIX@. * modules/ctype (Makefile.am): Likewise. * modules/dirent (Makefile.am): Likewise. * modules/errno (Makefile.am): Likewise. * modules/fcntl-h (Makefile.am): Likewise. * modules/float (Makefile.am): Likewise. * modules/getopt-posix (Makefile.am): Likewise. * modules/iconv-h (Makefile.am): Likewise. * modules/langinfo (Makefile.am): Likewise. * modules/locale (Makefile.am): Likewise. * modules/math (Makefile.am): Likewise. * modules/netdb (Makefile.am): Likewise. * modules/netinet_in (Makefile.am): Likewise. * modules/poll-h (Makefile.am): Likewise. * modules/pthread (Makefile.am): Likewise. * modules/pty (Makefile.am): Likewise. * modules/sched (Makefile.am): Likewise. * modules/search (Makefile.am): Likewise. * modules/selinux-h (Makefile.am): Likewise. * modules/signal (Makefile.am): Likewise. * modules/spawn (Makefile.am): Likewise. * modules/stdarg (Makefile.am): Likewise. * modules/stddef (Makefile.am): Likewise. * modules/stdint (Makefile.am): Likewise. * modules/stdio (Makefile.am): Likewise. * modules/stdlib (Makefile.am): Likewise. * modules/string (Makefile.am): Likewise. * modules/strings (Makefile.am): Likewise. * modules/sys_file (Makefile.am): Likewise. * modules/sys_ioctl (Makefile.am): Likewise. * modules/sys_select (Makefile.am): Likewise. * modules/sys_socket (Makefile.am): Likewise. * modules/sys_stat (Makefile.am): Likewise. * modules/sys_time (Makefile.am): Likewise. * modules/sys_times (Makefile.am): Likewise. * modules/sys_uio (Makefile.am): Likewise. * modules/sys_utsname (Makefile.am): Likewise. * modules/sys_wait (Makefile.am): Likewise. * modules/sysexits (Makefile.am): Likewise. * modules/termios (Makefile.am): Likewise. * modules/time (Makefile.am): Likewise. * modules/unistd (Makefile.am): Likewise. * modules/wchar (Makefile.am): Likewise. * modules/wctype-h (Makefile.am): Likewise. * modules/assert-h (Makefile.am): Replace _GL_VERIFY_H specially. 2011-05-29 Bruno Haible assert-h: Allow multiple gnulib generated replacements to coexist. * lib/verify.h (struct _gl_verify_type): Avoid identical redefinition. 2011-05-29 Bruno Haible argp: Allow coexistence with strerror_r-posix module. * lib/argp-help.c (__argp_failure): If strerror_r is defined as a macro (either to __xpg_strerror_r by glibc's or to rpl_strerror_r by gnulib's replacement), assume it has the POSIX signature, not the glibc signature. 2011-05-28 Bruno Haible gnulib-tool: Alternative structure of testdirs, similar to --import. * gnulib-tool: New option --single-configure. (func_usage): Document it. (single_configure): New variable. (func_modules_transitive_closure_separately, func_modules_transitive_closure_separately, func_determine_use_libtests, func_modules_add_dummy_separately, func_modules_to_filelist_separately): New functions, extracted from func_import. (func_emit_tests_Makefile_am): Handle $single_configure = true case. (func_import): Use the new functions. (func_create_testdir): Set final_modules. Handle $single_configure = true case. 2011-05-28 Bruno Haible getloadavg: Remove an unreliable safety check. * m4/getloadavg.m4 (gl_GETLOADAVG): Drop argument. Remove test whether getloadavg.c is in place. * modules/getloadavg (configure.ac): Drop argument of gl_GETLOADAVG. Reported by Sam Steingold . 2011-05-28 Bruno Haible doc: Cleanup yet another file produced by texinfo.tex. * doc/Makefile (mostlyclean): Remove also gnulib.cn. 2011-05-28 Bruno Haible Finish the conditional dependencies mechanism. * gnulib-tool: New option --no-conditional-dependencies. (func_usage): Document it. Don't mark --conditional-dependencies as experimental. (cond_dependencies): The possible values can now be true, false, empty. (func_modules_transitive_closure, func_emit_autoconf_snippets): Update. (func_import): Store setting in gnulib-cache.m4 and read it from there. * doc/gnulib-tool.texi (Conditional dependencies): New section. 2011-05-28 Bruno Haible doc: Use a recent texinfo.tex. * doc/Makefile (tex_opts): New variable. (%.dvi, %.pdf): Pass it to texi2dvi and texi2pdf. 2011-05-28 Jim Meyering intprops.h: adjust comment to match code change * lib/intprops.h (_GL_INT_CONVERT): Adjust comment: now that E is used only once, it *may* have side effects. Also fix an unrelated typo. (_GL_INT_SIGNED): Likewise. 2011-05-26 Simon Josefsson * lib/gen-uni-tables.c: Say "gen-uni-tables.c" consistently. 2011-05-26 Bruno Haible mbsrchr: Avoid collision with system function on Interix. * lib/string.in.h (mbsrchr): Define as rpl_mbsrchr also on Interix. Reported by Markus Duft . 2011-05-15 James Youngman getopt: for ambiguous options, enumerate the possibilities. * lib/getopt.c (_getopt_internal_r): Merge glibc change printing the ambiguous options when an ambiguous prefix is given. This was http://sourceware.org/bugzilla/show_bug.cgi?id=7101. The merged glibc change was http://sourceware.org/git/?p=glibc.git;a=commit;h=bd25564e1e98910ed69043ed6a6f884ce60e5780. 2011-05-25 Eric Blake getcwd: work around mingw bug * lib/getcwd-lgpl.c (rpl_getcwd): Guarantee correct error. * doc/posix-functions/getcwd.texi (getcwd): Document it. Reported by Matthias Bolte. 2011-05-24 Paul Eggert test-intprops: disable -Wtype-limits diagnostics * tests/test-intprops.c: Use a pragma to ignore -Wtype-limits diagnostics. Otherwise, the integer overflow macros generate many diagnostics. Reported by Jim Meyering in . intprops: shorten, to pacify gcc -Woverlength-strings * lib/intprops.h (_GL_INT_CONVERT, _GL_INT_NEGATE_CONVERT): (_GL_BINARY_OP_OVERFLOW): Say "0 * (x)" rather than "(x) - (x)", so that, for example, verify (INT_MULTIPLY_OVERFLOW (...)) is less likely to run afoul of C compiler limits for string constant lengths. See . 2011-05-24 Eric Blake docs: document recently fixed glibc printf bug * doc/posix-functions/fprintf.texi (fprintf): Document it. * doc/posix-functions/printf.texi (printf): Likewise. * doc/posix-functions/vfprintf.texi (vfprintf): Likewise. * doc/posix-functions/vprintf.texi (vprintf): Likewise. closein-tests: convert to init.sh * modules/closein-tests (Files): Add init.sh * tests/test-closein.sh Use it. yesno-tests: convert to init.sh * modules/yesno-tests (Files): Add init.sh. * tests/test-yesno.sh: Use it. atexit-tests: ensure reliable exit status * tests/test-atexit.sh: Prefer 'Exit' over 'exit'. Reported by Bruno Haible. 2011-05-24 Bruno Haible strerror_r-posix: Respect rules for use of AC_LIBOBJ. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Move AC_LIBOBJ and gl_PREREQ_STRERROR_R invocations from here... * modules/strerror_r-posix (configure.ac): ... to here. 2011-05-24 Eric Blake strerror_r: fix missing header * lib/strerror_r.c: Avoid compiler warning about snprintf. strerror_r: fix AIX test failures * lib/strerror_r.c (strerror_r): Convert silent truncation to ERANGE failure. strerror_r: fix Solaris test failures * lib/strerror_r.c (strerror_r): Partially populate buf on ERANGE failures. * doc/posix-functions/strerror_r.texi (strerror_r): Document this. strerror_r: enforce POSIX recommendations * lib/strerror_r.c (safe_copy): New helper method. (strerror_r): Guarantee a non-empty string. * tests/test-strerror_r.c (main): Enhance tests to incorporate recent POSIX rulings and to match our strerror guarantees. * doc/posix-functions/strerror_r.texi (strerror_r): Document this. 2011-05-24 Jim Meyering test-perror2.c: avoid warning about unused variable * tests/test-perror2.c (main): Remove declaration of unused "fp". 2011-05-24 Eric Blake perror: avoid spurious test failure on HP-UX * tests/test-perror.sh: Use Exit to avoid wrong exit status. tests: fix logic bug in init.sh * tests/init.sh: (gl_set_x_corrupts_stderr_): Clear for successful shell. 2011-05-24 Jim Meyering utimensat: do not reference an out-of-scope buffer Otherwise, with __linux__ defined, "times" would point to a buffer, "ts" declared in an inner scope, yet "times" would be dereferenced outside the scope in which "ts" was valid. * lib/utimensat.c (rpl_utimensat) [__linux__]: Move the declaration of ts[2] "out/up", so that the use of aliased "times" (via "times = ts;") does not end up referencing an out-of-scope "ts" opendir-safer.c: don't clobber errno; don't close negative FD * lib/opendir-safer.c (opendir_safer): [HAVE_FDOPENDIR || GNULIB_FDOPENDIR]: Don't close a negative file descriptor, and more importantly, don't clobber the offending errno value with EINVAL. Before, upon failure of dup_safer, we would pass the negative file descriptor to fdopendir, which would clobber errno. 2011-05-23 Bruno Haible idcache: Fix module description. * modules/idcache (Include): Set to "idcache.h". 2011-05-23 Paul Eggert gnulib-tool: fix portability problem with MacOS sed A sed command like "/x/{s/a/b/}" is not portable; a newline is needed before the "}". Problem reported by Leo in . * gnulib-tool (func_modules_transitive_closure): Insert newlines in sed_extract_condition1, sed_extract_condition2. 2011-05-23 Bruno Haible hash: Simplify autoconf macro. * m4/hash.m4 (gl_HASH): Don't require AM_STDBOOL_H. 2011-05-23 Bruno Haible getugroups: Fix module description. * modules/getugroups (Include): Set to "getugroups.h". 2011-05-23 Bruno Haible linkat: Simplify autoconf macro. * m4/linkat.m4 (gl_FUNC_LINKAT): Don't require gl_FUNC_LINK. 2011-05-23 Bruno Haible Eric Blake linkat, renameat: Update dependencies. * modules/renameat (Depends-on): Add dosname, save-cwd. Remove stpcpy. * modules/linkat (Depends-on): Likewise. Remove also readlink, symlinkat. 2011-05-23 Jim Meyering maint.mk: more tight_scope improvements * top/maint.mk: (_gl_TS_var_match): Use $(_gl_TS_extern) here, too. (_gl_TS_headers): Define only in if-0'd block. (_gl_TS_dir): Omit the $(srcdir)/ prefix. Sometimes we need it, sometimes we must *not* use it. Adjust uses accordingly. (sc_tight_scope): Use much simpler grep-based test to determine whether we skip this rule. maint.mk: generalize/improve the tight-scope rule * top/maint.mk: Emit a warning when the test is skipped. (_gl_TS_dir): Add $(srcdir)/ prefix. (_gl_TS_function_match): Simplify, rather than trying to enumerate common types. Otherwise, it would fail to match an "extern unsigned char const *" declaration in idutils. (_gl_TS_extern): Do not endorse use of "XTERN", but do provide a way to support use of that type of macro. (_gl_TS_var_match): Simplify regexp. (_gl_TS_obj_files): New configurable variable. (_gl_TS_headers): Likewise. 2011-05-22 Paul Eggert verify: fix bug when gnulib is also included * lib/verify.h (verify, verify_true): Define if _GL_VERIFY_H is defined, not if _GL_STATIC_ASSERT_H is not defined. Perhaps there's a better way, but this fixes the immediate problem. Problem reported by Bruno Haible in . 2011-05-22 Bruno Haible xgetcwd: Simplify autoconf macro. * m4/xgetcwd.m4 (gl_XGETCWD): Don't require gl_FUNC_GETCWD. 2011-05-22 Bruno Haible New module 'mktime-internal'. * modules/mktime-internal: New file. * m4/timegm.m4 (gl_PREREQ_TIMEGM): Move contents to ... * m4/mktime.m4 (gl_FUNC_MKTIME_INTERNAL): New macro. Define mktime_internal as a C macro if libc has __mktime_internal. * modules/timegm (Depends-on): Add mktime-internal. Remove mktime. Add conditions. * MODULES.html.sh (Date and time ): Add mktime-internal. 2011-05-22 Bruno Haible timegm: Correct mktime replacement statements. * m4/timegm.m4 (gl_PREREQ_TIMEGM): Set REPLACE_MKTIME, instead of defining mktime as a C macro. This completes a 2009-07-28 commit. 2011-05-22 Bruno Haible timegm: Simplify autoconf macro. * m4/timegm.m4 (gl_PREREQ_TIMEGM): Don't require gl_TIME_R. 2011-05-21 Paul Eggert clock-time: change to LGPLv2+. * modules/clock-time: Change from GPL to LGPLv2+. Actually, it's BSD-like but we have no mark for that; this is good enough for now. 2011-05-21 Bruno Haible strerror_r: Fix comments. * lib/strerror_r.c (strerror_r): Fix comment about Cygwin and sys_nerr. 2011-05-21 Bruno Haible relocatable-prog-wrapper: Fix possible link error. * m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Move determination of HAVE_SETENV and REPLACE_SETENV and AC_LIBOBJ invocation from here... (gl_FUNC_SETENV): ... to here. * m4/canonicalize.m4 (gl_CANONICALIZE_LGPL_SEPARATE): Update comment. * m4/readlink.m4 (gl_FUNC_READLINK_SEPARATE): Likewise. 2011-05-21 Bruno Haible relocatable-prog-wrapper: Assume strerror() exists. * modules/relocatable-prog-wrapper (Files): Remove lib/strerror.c, m4/strerror.m4. (configure.ac): Don't invoke gl_FUNC_STRERROR_SEPARATE. * lib/relocwrapper.c: Remove mention of strerror module. * lib/strerror.c: Assume REPLACE_STRERROR is 1. * m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): Remove macro. (gl_FUNC_STRERROR): Inline it here. Don't define REPLACE_STRERROR as a C macro. 2011-05-21 Bruno Haible select: Simplify replacement idiom. * m4/select.m4 (gl_FUNC_SELECT): Set REPLACE_SELECT also on native Win32 platforms. * lib/sys_select.in.h (select): Simplify accordingly. * modules/select (Depends-on): Likewise. 2011-05-21 Bruno Haible mkdir-p: Simplify autoconf macro. * m4/mkdir-p.m4 (gl_MKDIR_PARENTS): Don't require gl_FUNC_LCHMOD, gl_FUNC_LCHOWN. 2011-05-21 Eric Blake strerror_r: avoid clobbering strerror on cygwin * lib/strerror_r.c (strerror_r): Don't use cygwin's strerror_r; fall back instead to sys_errlist. * modules/strerror (configure.ac): Add witness. * tests/test-strerror_r.c (main): Enhance test. * doc/posix-functions/strerror_r.texi (strerror_r): Document it. * tests/test-perror2.c (main): Free memory before exit. 2011-05-21 Bruno Haible mkdtemp: Use gnulib naming conventions. * m4/mkdtemp.m4 (gl_FUNC_MKDTEMP): Renamed from gt_FUNC_MKDTEMP. * modules/mkdtemp (configure.ac): Update. 2011-05-20 Eric Blake strerror_r: avoid corrupting errno on Solaris * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Check for Solaris behavior. * doc/posix-functions/strerror_r.texi (strerror_r): Document it. strerror_r: avoid compiler warning * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Don't return a char*. strerror_r: simplify AIX code * lib/strerror_r.c (strerror_r): Filter out buflen of 1 up front. test-perror: avoid spurious failure on FreeBSD * modules/perror-tests (Depends-on): Add strerror, now that strerror_r no longer pulls it in. 2011-05-20 Bruno Haible strerror_r-posix: Remove unused dependencies. * modules/strerror_r-posix (Depends-on): Remove strerror. Reported by Eric Blake. 2011-05-20 Paul Eggert intprops: remove assumption about A|B representation * lib/intprops.h (_GL_BINARY_OP_OVERFLOW): Do not assume that A|B is a valid integer if both A and B are. Although this is true for all known practical hosts, the C standard doesn't guarantee it, and the code need not assume it. Also, this change may work around HP-UX 11.23 and IRIX 6.5 cc bugs reported by Bruno Haible in . 2011-05-20 Eric Blake perror: work around FreeBSD bug * m4/perror.m4 (gl_FUNC_PERROR): Also replace perror if strerror_r is broken. Move AC_LIBOBJ... * modules/perror (configure.ac): Here. * doc/posix-functions/perror.texi (perror): Document this. * tests/test-perror2.c (main): Enhance test. test-perror: check for strerror interactions * tests/macros.h (STREQ): Add macro. * modules/perror-tests (Files): Add second test. * tests/test-perror2.c (main): New file. * doc/posix-functions/perror.texi (perror): Document glibc bug. test-perror: rewrite to use init script * modules/perror-tests (Files): Add init.sh. * tests/test-perror.sh: Use temporary directory. 2011-05-20 Jim Meyering maint: replace misused "a" with "an" * doc/intprops.texi: "a integer" * doc/regex.texi: "a explanation" * lib/alignof.h: "a object" * lib/argmatch.h: "a explanation" * lib/argp-help.c: "a option" and "a OPTION_DOC" * lib/stdint.in.h: "a integer" * lib/userspec.c: "a owner" * doc/gnulib.texi: Fix "a idea", and reword. 2011-05-19 Jim Meyering maint: correct misuse of "a" and "an" * doc/regex.texi (Collating Symbol Operators): s/an close.../a close/ * lib/argp-help.c: "an docum...": s/an/a/ * lib/argp-parse.c: "An vector": s/An/A/ * lib/execute.c: "an native": s/an/a/ * lib/spawn-pipe.c: Likewise. * lib/gc.h: "an Gc_rc": s/an/a/ * lib/unigbrk.in.h: "an grapheme": s/an/a/ * lib/fts.c: "an stat.st_dev": s/an/a/ 2011-05-19 Paul Eggert intprops-tests: work around HP-UX 11.23 cc bug with constants * tests/test-intprops.c (VERIFY): New macro. (main): Use it, instead of verify, to work around the compiler bug; see . intprops: work around IRIX 6.5 cc bug with 0u - 0u + -1 See http://lists.gnu.org/r/bug-gnulib/2011-05/msg00406.html * lib/intprops.h (_GL_INT_NEGATE_CONVERT): New macro. (_GL_INT_SIGNED, _GL_INT_MAXIMUM, _GL_DIVIDE_OVERFLOW): (_GL_REMAINDER_OVERFLOW): Use it. intprops-tests: revert unsigned part of previous change * tests/test-intprops.c (UINT_MAX, ULONG_MAX, UINTMAX_MAX, U0, U1): Remove; they weren't actually needed. All uses of U0 and U1 removed, and other casts to 'unsigned int' reverted to 'u' suffixes. See . 2011-05-19 Bruno Haible strerror_r: Work around strerror_r() change in Cygwin 1.7.8. * lib/strerror_r.c (strerror_r) [CYGWIN]: Recognize when the system's strerror_r() returned without filling the buffer. Reported by Eric Blake. 2011-05-19 Eric Blake strerror_r: guarantee unchanged errno * lib/strerror_r.c (strerror_r): Guarantee unchanged errno. * lib/strerror-impl.h (strerror): Set errno to match strerror_r failure. * tests/test-strerror_r.c (main): Enhance test. 2011-05-19 Bruno Haible strerror_r: Reorder #if blocks. * lib/strerror_r.c (strerror_r): Reorder conditionals in the function for consistency with the previous commit. 2011-05-19 Bruno Haible perror: Avoid clobbering the strerror buffer when possible. * lib/strerror-impl.h: New file, extracted from lib/strerror.c. * lib/strerror.c: Include it. * modules/strerror (Files): Add lib/strerror-impl.h. * lib/perror.c: Include , intprops.h, verify.h. (my_strerror): New function, defined through lib/strerror-impl.h. (perror): Use it instead of strerror. * modules/perror (Files): Add lib/strerror-impl.h. (Depends-on): Remove strerror. Add intprops, verify, strerror_r-posix. 2011-05-19 Eric Blake strerror_r: fix on newer cygwin * lib/strerror_r.c (strerror_r): Cygwin now has __xpg_strerror_r, use it. 2011-05-19 Bruno Haible strerror_r: Avoid clobbering the strerror buffer when possible. * lib/strerror.c: Define _NETBSD_SOURCE. Include . (sys_nerr, sys_errlist): New declarations. (strerror_r): Be careful not to clobber the strerror buffer on NetBSD, HP-UX, native Win32, IRIX, and 32-bit Solaris. * m4/strerror_r.m4 (gl_PREREQ_STRERROR_R): Test whether catgets exists. 2011-05-19 Bruno Haible strerror_r: Fix test failure on mingw. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Don't define EXTEND_STRERROR_R. * lib/strerror_r.c (strerror_r): Test the various GNULIB_defined_* macros from errno.in.h instead. 2011-05-19 Eric Blake strerror: relax test for Solaris * tests/test-strerror.c (main): Permit Solaris behavior. * tests/test-strerror_r.c (main): Likewise. strerror: enforce POSIX ruling on strerror(0) * m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): Expose BSD bug. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Likewise. * lib/strerror_r.c (rpl_strerror_r): Work around it. * doc/posix-functions/strerror.texi (strerror): Document it. * doc/posix-functions/strerror_r.texi (strerror_r): Likewise. * tests/test-strerror.c (main): Strengthen test. * tests/test-strerror_r.c (main): Likewise. 2011-05-19 Paul Eggert intprop-tests: port to older and more-pedantic compilers * modules/intprops-tests (Files): Add tests/macros.h. * tests/test-intprops.c: Include macros.h. (TYPE_IS_INTEGER): Use ASSERT, not verify, to test this macro, as it's no longer documented to expand to an integer constant expression. (TYPE_SIGNED): Use ASSERT, not verify, to test this macro when the argument is floating point, as it's no longer documented to expand to an integer constant expression in that case. (UINT_MAX, ULONG_MAX, UINTMAX_MAX): Redefine to work around compiler bugs reported by Bruno Haible. See . (U0, U1): New constants, to work around the same bugs. Also, in tests, use e.g., "(unsigned int) 39" rather than "39u". intprops: work around C compiler bugs * lib/intprops.h (INT_MULTIPLY_RANGE_OVERFLOW): Work around compiler bug in Sun C 5.11 2010/08/13 and other compilers; see . intprops: TYPE_IS_INTEGER, TYPE_SIGNED not integer constant exprs * doc/intprops.texi (Integer Type Determination): Fix documentation for TYPE_IS_INTEGER: it returns an constant expression, not an integer constant expression. Fix doc for TYPE_SIGNED: it returns an integer constant expression only if its argument is an integer type. (TYPE_IS_INTEGER is the same, but is hardly worth documented that way....) 2011-05-18 Bruno Haible strerror_r: Avoid clobbering the strerror buffer when possible. * lib/strerror_r.c (strerror_r): Merge the three implementations. Handle gnulib defined errno values here. When strerror() returns NULL or an empty string, return EINVAL. * lib/strerror.c (strerror): Always call strerror_r. Don't handle gnulib defined errno values here. * modules/strerror (Depends-on): Add verify, strerror_r-posix. 2011-05-18 Eric Blake fnmatch: avoid compiler warning * lib/fnmatch_loop.c (FCT): Use correct type. Reported by Matthias Bolte. 2011-05-13 Jim Meyering maint.mk: three new prohibit__without_use rules * top/maint.mk (sc_prohibit_stdio--_without_use): New rule. (sc_prohibit_stdio-safer_without_use): Likewise. (sc_prohibit_xfreopen_without_use): Likewise. 2011-05-17 Jim Meyering announce-gen: fail if the NEWS delta is empty If there's nothing noteworthy in NEWS, then either you forgot or you shouldn't be releasing. * build-aux/announce-gen: Die if the NEWS delta is effectively empty. 2011-05-17 Pádraig Brady * top/maint.mk (_gl_tight_scope:): Automatically exclude compiler reserved symbols starting with double underscore from the check. 2011-05-17 Paul Eggert intprops: add doc * doc/intprops.texi: New file, documenting intprops. * doc/gnulib.texi (Particular Modules): Include it. verify: add doc to gnulib manual and fix example * doc/gnulib.texi (Compile-time Assertions): New node, for 'verify'. * doc/verify.texi (Compile-time Assertions): Update 'assert' doc. (Compile-time Assertions): Fix example so it can't overflow. 2011-05-17 Jim Meyering warnings.m4: don't usurp save_CPPFLAGS variable name * m4/warnings.m4: Prefix local temporary variable name with gl_. doc: fix typo * doc/gnulib-intro.texi (Target Platforms): s/is/are/ 2011-05-16 Paul Eggert Bruno Haible doc: Tweak recent change. * README (Portability guidelines): Tweak new text. * doc/gnulib-intro.texi (Target Platforms): Likewise. Mention Interix 6.1. 2011-05-16 Eric Blake inttypes: avoid autoconf warning * m4/inttypes.m4 (gl_INTTYPES_INCOMPLETE): Only expand once. * m4/stdint.m4 (gl_STDINT_H): Likewise. 2011-05-16 Sam Steingold and Eric Blake vc-list-files: accept multiple directory operands * build-aux/vc-list-files: Iterate over all remaining operands. 2011-05-16 Bruno Haible Fix confusion regarding deprecated modules. * modules/calloc (Status, Notice): Mark module as deprecated, not obsolete. * modules/fnmatch-posix (Status, Notice): Likewise. * modules/getdate (Status, Notice): Likewise. * modules/getopt (Status, Notice): Likewise. * modules/malloc (Status, Notice): Likewise. * modules/pipe (Status, Notice): Likewise. * modules/realloc (Status, Notice): Likewise. * modules/rename-dest-slash (Status, Notice): Likewise. * modules/unictype/bidicategory-all (Status, Notice): Likewise. * modules/unictype/bidicategory-byname (Status, Notice): Likewise. * modules/unictype/bidicategory-name (Status, Notice): Likewise. * modules/unictype/bidicategory-of (Status, Notice): Likewise. * modules/unictype/bidicategory-test (Status, Notice): Likewise. 2011-05-16 Bruno Haible doc: List the target platforms. * doc/gnulib-intro.texi (Target Platforms): New section. * doc/gnulib.texi (Introduction): Update menu. * README (Portability guidelines): Refer to the new section. Update statement about oldest supported environment. Remove rationale why , , are assumed. Update example of an unportable C89 function. Reported by Bastien Roucariès and Charles Wilson . Feedback from Paul Eggert. 2011-05-16 Paul Eggert * build-aux/bootstrap (gnulib_tool): Handle symlink timestamps better. 2011-05-13 Paul Eggert intprops-tests: new module * modules/intprops-tests, tests/test-intprops.c: New files. intprops: add safe, portable integer overflow checking * lib/intprops.h (_GL_INT_CONVERT, _GL_INT_TWOS_COMPLEMENT): (_GL_INT_SIGNED, _GL_INT_MINIMUM, _GL_INT_MAXIMUM): (_GL_SIGNED_INT_MINIMUM, INT_ADD_RANGE_OVERFLOW): (INT__SUBTRACT__RANGE_OVERFLOW, INT_NEGATE_RANGE_OVERFLOW): (INT_MULTIPLY_RANGE_OVERFLOW, INT_REMAINDER_RANGE_OVERFLOW): (INT_LEFT_SHIFT_RANGE_OVERFLOW, _GL_ADD_OVERFLOW): (_GL__SUBTRACT__OVERFLOW, _GL_MULTIPLY_OVERFLOW, _GL_DIVIDE_OVERFLOW): (_GL_REMAINDER_OVERFLOW, _GL_UNSIGNED_NEG_MULTIPLE, INT_ADD_OVERFLOW): (INT__SUBTRACT__OVERFLOW, INT_NEGATE_OVERFLOW, INT_MULTIPLY_OVERFLOW): (INT_DIVIDE_OVERFLOW, INT_REMAINDER_OVERFLOW): (INT_LEFT_SHIFT_OVERFLOW, _GL_BINARY_OP_OVERFLOW): New macros. 2011-05-12 James Youngman Add a test for glibc's Bugzilla bug #12378. * m4/fnmatch.m4: Use gnulib's fnmatch if the system fnmatch doesn't allow the literal matching of a lone "[" (which is required by POSIX). * tests/test-fnmatch.c (main): Check that "[/b" matches itself. 2011-05-11 Ulrich Drepper Sync glibc change fixing Bugzilla bug #12378. * lib/fnmatch_loop.c (FCT): When matching '[' keep track of beginning and fall back to matching as normal character if the string ends before the matching ']' is found. This is what POSIX requires. 2011-05-13 Eric Blake getcwd-lgpl: relax test for FreeBSD * doc/posix-functions/getcwd.texi (getcwd): Document portability issue. * tests/test-getcwd-lgpl.c (main): Relax test. Reported by Matthias Bolte. 2011-05-11 Eric Blake test-fflush: silence compiler warning * tests/test-fflush.c (main): Don't fclose a NULL pointer. 2011-05-11 Bruno Haible canonicalize, canonicalize-lgpl: Avoid crash dialog on MacOS X. * m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Add GL_NOCRASH code. * modules/canonicalize (Depends-on): Add 'nocrash'. * modules/canonicalize-lgpl (Depends-on): Likewise. * doc/posix-functions/realpath.texi: Update platforms list. Reported by Ryan Schmidt . 2011-05-11 Bruno Haible group-member: Declare function in . * lib/unistd.in.h (group_member): New declaration. * lib/group-member.h: Remove file. * lib/group-member.c: Include instead of group-member.h. * tests/test-unistd-c++.cc: Check signature of group_member. * m4/group-member.m4 (gl_FUNC_GROUP_MEMBER): Require gl_UNISTD_H_DEFAULTS. Set HAVE_GROUP_MEMBER. * m4/unistd_h.m4 (gl_UNISTD_H): Check whether group_member is declared. (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GROUP_MEMBER, HAVE_GROUP_MEMBER. * modules/group-member (Files): Remove lib/group-member.h. (Depends-on): Add unistd. Specify conditions. (configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR. (Include): Change to . * modules/unistd (Makefile.am): Substitute GNULIB_GROUP_MEMBER, HAVE_GROUP_MEMBER. * NEWS: Mention the change. * lib/euidaccess.c: Don't include group-member.h. 2011-05-11 Bruno Haible group-member: Document module. * doc/glibc-functions/group_member.texi: Mention the 'group-member' module. 2011-05-11 Bruno Haible fclose: Fix mistake earlier today. * lib/fclose.c (rpl_fclose): Don't assume that EOF < 0. 2011-05-11 Eric Blake fclose: preserve fflush errors * lib/fclose.c (rpl_fclose): Don't lose fflush errors. Reported by Jim Meyering. bootstrap: support a prereq of 'rpcgen -' on RHEL5 * build-aux/bootstrap (check_versions): When no specific version is required, merely check that the app produces an exit status that indicates its existence. maint.mk: drop redundant check * top/maint.mk (sc_the_the): Delete; sc_prohibit_doubled_word does the same but better. 2011-05-11 Bruno Haible fclose: Fix possible link error. * lib/fclose.c (rpl_fclose): Invoke _gl_unregister_fd, not unregister_shadow_fd. Improve comments. * lib/sockets.c (close_fd_maybe_socket): Add comments. Reported by Eric Blake. 2011-05-11 Jim Meyering maint.mk: improve "can not" detection and generalize rule name * top/maint.mk (sc_prohibit_undesirable_word_seq): Renamed from sc_prohibit_can_not, since we'll probably add a few more word pairs here. Use the same technique as in sc_prohibit_doubled_word, so that we recognize "can not" also when the words are separated by a newline. Suggested by Eric Blake. (perl_filename_lineno_text_): Define. Factored out of... (prohibit_doubled_word_): ...here. Use the new definition. (prohibit_undesirable_word_seq_): New var. Use it here, too. (prohibit_undesirable_word_seq_RE_): New overridable variable. (ignore_undesirable_word_sequence_RE_): New overridable variable. 2011-05-10 Eric Blake fclose: avoid double close race when possible * lib/fclose.c (rpl_fclose): Rewrite to avoid double-close race on all but WINDOWS_SOCKETS. 2011-05-10 Bastien Roucariès openat: correct new comment * lib/openat-proc.c (openat_proc_name): Correct the comment. 2011-05-10 Jim Meyering openat: add comments * lib/openat-proc.c (openat_proc_name): Add comments, mostly from Eric Blake. 2011-05-09 Eric Blake openat: reduce syscalls in first probe of /proc * lib/openat-proc.c (openat_proc_name): Require that /proc/self/fd be a directory. Simplify the probe for .. bugs. * modules/openat (Depends-on): Drop same-inode. Reported by Bastien ROUCARIES. 2011-05-09 Jim Meyering maint.mk: change semantics/name of tight_scope variables * top/maint.mk (_gl_TS_var_match, _gl_TS_function_match): Rename variables to align with semantics that make them more useful. maint.mk: tweak new rule's name not to impinge * top/maint.mk (_gl_tight_scope): Rename from sc_tight_scope-0. (sc_tight_scope): Use new rule name rather than $@-0. maint.mk: add a syntax-check rule to ensure tightly-scoped symbols * top/maint.mk (sc_tight_scope): New rule. (sc_tight_scope-0): New rule, ifdef'd out. (_gl_TS_dir): Default. (_gl_TS_unmarked_extern_functions, _gl_TS_function_regex): Define. (_gl_TS_unmarked_extern_vars, _gl_TS_var_regex): Define. 2011-05-09 Simon Josefsson * m4/gc.m4: Remove gl_PREREQ_GC (not used). Reported by Bruno Haible . 2011-05-08 Bruno Haible Comments. * m4/isnanf.m4: Add comment. * m4/isnanl.m4: Likewise. 2011-05-08 Bruno Haible glob: Remove obsolete macro. * m4/glob.m4 (gl_GLOB_SUBSTITUTE): Remove macro. 2011-05-08 Paul Eggert intprops: Sun C 5.11 supports __typeof__ * lib/intprops.h (_GL_HAVE___TYPEOF__): New macro, which is set for either GCC 2 or later, as before, or for Sun C 5.11 or later, which is new. (_GL_SIGNED_TYPE_OR_EXPR): Use it. intprops: switch to usual gnulib indenting and naming * lib/intprops.h (_GL_INTPROPS_H): Rename from GL_INTPROPS_H. (_GL_SIGNED_TYPE_OR_EXPR): Rename from signed_type_or_expr__. * tests/test-inttostr.c (IS_TIGHT): Adjust to above renaming. 2011-05-08 Jim Meyering maint.mk: suppress "Entering/Leaving directory" diag in announcement * top/maint.mk (release-prep): Use make's --no-print-directory option when generating the announcement. This eliminates the pesky "make[2]: Entering/Leaving directory" diagnostics in the generated announcement template. 2011-05-08 Bruno Haible tzset: Fix gettimeofday wrapper on Solaris 2.6. * m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): When invoking gl_GETTIMEOFDAY_REPLACE_LOCALTIME, also set REPLACE_GETTIMEOFDAY. 2011-05-07 Paul Eggert ignore-value, verify: Omit include files from lib_SOURCES. * modules/ignore-value, modules/verify (Makefile.am): Don't put ignore-value.h, or verify.h, into lib_SOURCES, as that leads Automake to duplicate use of am__objects_... variables in Makefile.in. See . 2011-05-07 Bruno Haible fclose: Simplify autoconf macro. * m4/fclose.m4 (gl_FUNC_FCLOSE): Assume gl_FUNC_FFLUSH_STDIN is defined. 2011-05-07 Bruno Haible canonicalize-lgpl: Fix autoconf macro ordering bug. * m4/canonicalize.m4 (gl_CANONICALIZE_LGPL): Require gl_STDLIB_H_DEFAULTS. 2011-05-06 Eric Blake maintainer-makefile: make sc_po_check easier to tune * top/maint.mk (sc_po_check): Allow overriding which non-VC files to probe for strings, such as an alternate location for gnulib. fclose: guarantee behavior on seekable stdin * modules/fclose (Depends-on): Add fflush. * doc/posix-functions/fclose.texi (fclose): Document this. * tests/test-fclose.c (main): Make test for this unconditional. 2011-05-06 Bruno Haible fflush, fpurge: Relicense under LGPLv2+. * modules/fflush (License): Change from LGPLv3+ to LGPLv2+. * modules/fpurge (License): Likewise. With permission from Eric Blake and Jim Meyering. Suggested by Eric Blake. 2011-05-06 Karl Berry * MODULES.html.sh (func_all_modules): remove exit. 2011-05-06 Jim Meyering maint.mk: use info-gnu@ as the default only for a stable release * top/maint.mk: Don't default to info-gnu for alpha or beta releases. For those, just use $(PACKAGE_BUGREPORT), in which case we don't have to set the Mail-Followup-To header. Prompted by Reuben Thomas in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/26488 2011-05-05 Paul Eggert assert-h: new module, which supports C1X-style static_assert * lib/assert.in.h, m4/assert_h.m4, modules/assert-h: New files. * lib/verify.h: Revamp so that this can be copied into assert.h, while retaining the ability to use it standalone as before. Rename private identifiers so as not to encroach on the standard C namespace, since this is now used by assert.h. (_GL_VERIFY_TYPE): New macro, factoring out differing parts of the old verify_true. (_GL_VERIFY_TRUE): New macro, with much of the contents of the old verify_true. Use _GL_VERIFY_TYPE. (_GL_VERIFY): New macro, with much of the contents of the old verify. (static_assert): New macro, if _GL_STATIC_ASSERT_H is defined and static_assert is not; _GL_STATIC_ASSERT_H is defined when this file is copied into the replacement assert.h. (_Static_assert): New macro, if _GL_STATIC_ASSERT_H is defined and _Static_assert is not built in. (verify_true, verify): Define only if _GL_STATIC_ASSERT_H is not defined, and use the new macros mentioned above. * doc/posix-headers/assert.texi: Document this. 2011-05-05 Bruno Haible fclose, fflush: Respect rules for use of AC_LIBOBJ. * m4/fflush.m4 (gl_FUNC_FFLUSH): Don't invoke gl_REPLACE_FCLOSE. * m4/fclose.m4 (gl_FUNC_FCLOSE): Invoke gl_FUNC_FFLUSH_STDIN and gl_REPLACE_FCLOSE here. * modules/fflush (Depends-on): Remove fclose. * doc/posix-functions/fclose.texi: Mention module 'fflush' only in combination with module 'fclose'. 2011-05-05 Bruno Haible fflush, fseeko: Respect rules for use of AC_LIBOBJ. * m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): New macro, extracted from gl_FUNC_FFLUSH. (gl_FUNC_FFLUSH): Use it. (gl_REPLACE_FFLUSH): Don't invoke gl_REPLACE_FSEEKO. * m4/fseeko.m4 (gl_FUNC_FSEEKO): Invoke gl_FUNC_FFLUSH_STDIN and gl_REPLACE_FSEEKO here. 2011-05-05 Bruno Haible tzset: Relicense under LGPL. * modules/tzset (License): Change to LGPL. No agreement needed; it's a no-op. strtoimax, strtoumax: Relicense under LGPL. * modules/strtoimax (License): Change to LGPL. * modules/strtoumax (License): Likewise. With permission from Jim Meyering, Paul Eggert: getgroups: Relicense under LGPL. * modules/getgroups (License): Change to LGPL. With permission from Jim Meyering, Paul Eggert, Eric Blake: nanosleep: Relicense under LGPL. * modules/nanosleep (License): Change to LGPL. With permission from Jim Meyering, Paul Eggert, Eric Blake, Bruno Haible: futimens: Relicense under LGPL. * modules/futimens (License): Change to LGPL. With permission from Eric Blake: fflush: Relicense under LGPL. * modules/fflush (License): Change to LGPL. With permission from Eric Blake, Bruno Haible, Jim Meyering: tmpfile: Relicense under LGPL. * modules/tmpfile (License): Change to LGPL. With permission from Ben Pfaff: isfinite: Relicense under LGPL. * modules/isfinite (License): Change to LGPL. With permission from Ben Pfaff, Bruno Haible: acosl..tanl: Relicense under LGPL. * modules/acosl (License): Change to LGPL. * modules/asinl (License): Likewise. * modules/atanl (License): Likewise. * modules/cosl (License): Likewise. * modules/expl (License): Likewise. * modules/logl (License): Likewise. * modules/sinl (License): Likewise. * modules/sqrtl (License): Likewise. * modules/tanl (License): Likewise. Source code originally from glibc and Paolo Bonzini. Agreements: 2011-05-05 Bruno Haible signal: Define sighandler_t. * lib/signal.in.h (sighandler_t): New type. * m4/signal_h.m4 (gl_SIGNAL_H): Require AC_USE_SYSTEM_EXTENSIONS. Test whether sighandler_t is defined. (gl_SIGNAL_H_DEFAULTS): Initialize HAVE_SIGHANDLER_T. * modules/signal (Depends-on): Add extensions. (Makefile.am): Substitute HAVE_SIGHANDLER_T. * doc/posix-headers/signal.texi: Mention the problem with sighandler_t. Suggested by Markus Steinborn . 2011-05-05 Eric Blake maint: remove useless REPLACE_*_H macros * m4/arpa_inet_h.m4 (gl_REPLACE_ARPA_INET_H): Delete. * m4/dirent_h.m4 (gl_REPLACE_DIRENT_H): Likewise. * m4/locale_h.m4 (gl_REPLACE_LOCALE_H): Likewise. * m4/poll_h.m4 (gl_REPLACE_POLL_H): Likewise. * m4/spawn_h.m4 (gl_REPLACE_SPAWN_H): Likewise. * m4/sys_ioctl_h.m4 (gl_REPLACE_SYS_IOCTL_H): Likewise. * m4/wchar_h.m4 (gl_REPLACE_WCHAR_H): Likewise. * m4/btowc.m4: Update callers. * m4/dirfd.m4: Likewise. * m4/duplocale.m4: Likewise. * m4/fchdir.m4: Likewise. * m4/fdopendir.m4: Likewise. * m4/inet_ntop.m4: Likewise. * m4/inet_pton.m4: Likewise. * m4/ioctl.m4: Likewise. * m4/mbrlen.m4: Likewise. * m4/mbrtowc.m4: Likewise. * m4/mbsinit.m4: Likewise. * m4/mbsnrtowcs.m4: Likewise. * m4/mbsrtowcs.m4: Likewise. * m4/poll.m4: Likewise. * m4/setlocale.m4: Likewise. * m4/wcrtomb.m4: Likewise. * m4/wcsnrtombs.m4: Likewise. * m4/wcsrtombs.m4: Likewise. * m4/wctob.m4: Likewise. * m4/wcwidth.m4: Likewise. * modules/posix_spawn: Likewise. * modules/posix_spawn_file_actions_addclose: Likewise. * modules/posix_spawn_file_actions_adddup2: Likewise. * modules/posix_spawn_file_actions_addopen: Likewise. * modules/posix_spawn_file_actions_destroy: Likewise. * modules/posix_spawn_file_actions_init: Likewise. * modules/posix_spawnattr_destroy: Likewise. * modules/posix_spawnattr_getflags: Likewise. * modules/posix_spawnattr_getpgroup: Likewise. * modules/posix_spawnattr_getschedparam: Likewise. * modules/posix_spawnattr_getschedpolicy: Likewise. * modules/posix_spawnattr_getsigdefault: Likewise. * modules/posix_spawnattr_getsigmask: Likewise. * modules/posix_spawnattr_init: Likewise. * modules/posix_spawnattr_setflags: Likewise. * modules/posix_spawnattr_setpgroup: Likewise. * modules/posix_spawnattr_setschedparam: Likewise. * modules/posix_spawnattr_setschedpolicy: Likewise. * modules/posix_spawnattr_setsigdefault: Likewise. * modules/posix_spawnattr_setsigmask: Likewise. * modules/posix_spawnp: Likewise. 2011-05-04 Reuben Thomas Add option to do-release-commit-and-tag to specify branch. * build-aux/do-release-commit-and-tag: Add --branch. 2011-05-03 Bruno Haible Avoid unnecessary compilation units, through conditional dependencies. * modules/accept (Depends-on): Add conditions to the dependencies. * modules/acosl (Depends-on): Likewise. * modules/argz (Depends-on): Likewise. * modules/asinl (Depends-on): Likewise. * modules/atanl (Depends-on): Likewise. * modules/atoll (Depends-on): Likewise. * modules/bind (Depends-on): Likewise. * modules/btowc (Depends-on): Likewise. * modules/canonicalize-lgpl (Depends-on): Likewise. * modules/ceil (Depends-on): Likewise. * modules/ceilf (Depends-on): Likewise. * modules/ceill (Depends-on): Likewise. * modules/chdir-long (Depends-on): Likewise. * modules/chown (Depends-on): Likewise. * modules/close (Depends-on): Likewise. * modules/connect (Depends-on): Likewise. * modules/cosl (Depends-on): Likewise. * modules/dirfd (Depends-on): Likewise. * modules/dprintf (Depends-on): Likewise. * modules/dprintf-posix (Depends-on): Likewise. * modules/error (Depends-on): Likewise. * modules/euidaccess (Depends-on): Likewise. * modules/expl (Depends-on): Likewise. * modules/faccessat (Depends-on): Likewise. * modules/fchdir (Depends-on): Likewise. * modules/fclose (Depends-on): Likewise. * modules/fcntl (Depends-on): Likewise. * modules/fdopendir (Depends-on): Likewise. * modules/fflush (Depends-on): Likewise. * modules/floor (Depends-on): Likewise. * modules/floorf (Depends-on): Likewise. * modules/floorl (Depends-on): Likewise. * modules/fnmatch (Depends-on): Likewise. * modules/fopen (Depends-on): Likewise. * modules/fprintf-posix (Depends-on): Likewise. * modules/frexp (Depends-on): Likewise. * modules/frexp-nolibm (Depends-on): Likewise. * modules/frexpl (Depends-on): Likewise. * modules/frexpl-nolibm (Depends-on): Likewise. * modules/fseek (Depends-on): Likewise. * modules/fsusage (Depends-on): Likewise. * modules/ftell (Depends-on): Likewise. * modules/ftello (Depends-on): Likewise. * modules/futimens (Depends-on): Likewise. * modules/getcwd (Depends-on): Likewise. * modules/getcwd-lgpl (Depends-on): Likewise. * modules/getdelim (Depends-on): Likewise. * modules/getdomainname (Depends-on): Likewise. * modules/getgroups (Depends-on): Likewise. * modules/gethostname (Depends-on): Likewise. * modules/getline (Depends-on): Likewise. * modules/getlogin_r (Depends-on): Likewise. * modules/getopt-posix (Depends-on): Likewise. * modules/getpeername (Depends-on): Likewise. * modules/getsockname (Depends-on): Likewise. * modules/getsockopt (Depends-on): Likewise. * modules/getsubopt (Depends-on): Likewise. * modules/getusershell (Depends-on): Likewise. * modules/glob (Depends-on): Likewise. * modules/grantpt (Depends-on): Likewise. * modules/iconv_open (Depends-on): Likewise. * modules/iconv_open-utf (Depends-on): Likewise. * modules/inet_ntop (Depends-on): Likewise. * modules/inet_pton (Depends-on): Likewise. * modules/ioctl (Depends-on): Likewise. * modules/isapipe (Depends-on): Likewise. * modules/isfinite (Depends-on): Likewise. * modules/isinf (Depends-on): Likewise. * modules/lchown (Depends-on): Likewise. * modules/ldexpl (Depends-on): Likewise. * modules/link (Depends-on): Likewise. * modules/linkat (Depends-on): Likewise. * modules/listen (Depends-on): Likewise. * modules/logl (Depends-on): Likewise. * modules/lstat (Depends-on): Likewise. * modules/mbrlen (Depends-on): Likewise. * modules/mbrtowc (Depends-on): Likewise. * modules/mbsinit (Depends-on): Likewise. * modules/mbsnrtowcs (Depends-on): Likewise. * modules/mbsrtowcs (Depends-on): Likewise. * modules/mbtowc (Depends-on): Likewise. * modules/memcmp (Depends-on): Likewise. * modules/mkdir (Depends-on): Likewise. * modules/mkdtemp (Depends-on): Likewise. * modules/mkfifo (Depends-on): Likewise. * modules/mkfifoat (Depends-on): Likewise. * modules/mknod (Depends-on): Likewise. * modules/mkostemp (Depends-on): Likewise. * modules/mkostemps (Depends-on): Likewise. * modules/mkstemp (Depends-on): Likewise. * modules/mkstemps (Depends-on): Likewise. * modules/mktime (Depends-on): Likewise. * modules/nanosleep (Depends-on): Likewise. * modules/open (Depends-on): Likewise. * modules/openat (Depends-on): Likewise. * modules/perror (Depends-on): Likewise. * modules/poll (Depends-on): Likewise. * modules/popen (Depends-on): Likewise. * modules/posix_spawn (Depends-on): Likewise. * modules/posix_spawn_file_actions_addclose (Depends-on): Likewise. * modules/posix_spawn_file_actions_adddup2 (Depends-on): Likewise. * modules/posix_spawn_file_actions_addopen (Depends-on): Likewise. * modules/posix_spawnp (Depends-on): Likewise. * modules/pread (Depends-on): Likewise. * modules/printf-posix (Depends-on): Likewise. * modules/ptsname (Depends-on): Likewise. * modules/putenv (Depends-on): Likewise. * modules/pwrite (Depends-on): Likewise. * modules/readline (Depends-on): Likewise. * modules/readlink (Depends-on): Likewise. * modules/readlinkat (Depends-on): Likewise. * modules/recv (Depends-on): Likewise. * modules/recvfrom (Depends-on): Likewise. * modules/regex (Depends-on): Likewise. * modules/remove (Depends-on): Likewise. * modules/rename (Depends-on): Likewise. * modules/renameat (Depends-on): Likewise. * modules/rmdir (Depends-on): Likewise. * modules/round (Depends-on): Likewise. * modules/roundf (Depends-on): Likewise. * modules/roundl (Depends-on): Likewise. * modules/rpmatch (Depends-on): Likewise. * modules/select (Depends-on): Likewise. * modules/send (Depends-on): Likewise. * modules/sendto (Depends-on): Likewise. * modules/setenv (Depends-on): Likewise. * modules/setlocale (Depends-on): Likewise. * modules/setsockopt (Depends-on): Likewise. * modules/shutdown (Depends-on): Likewise. * modules/sigaction (Depends-on): Likewise. * modules/signbit (Depends-on): Likewise. * modules/sigprocmask (Depends-on): Likewise. * modules/sinl (Depends-on): Likewise. * modules/sleep (Depends-on): Likewise. * modules/snprintf (Depends-on): Likewise. * modules/snprintf-posix (Depends-on): Likewise. * modules/socket (Depends-on): Likewise. * modules/sprintf-posix (Depends-on): Likewise. * modules/sqrtl (Depends-on): Likewise. * modules/stat (Depends-on): Likewise. * modules/strchrnul (Depends-on): Likewise. * modules/strdup-posix (Depends-on): Likewise. * modules/strerror (Depends-on): Likewise. * modules/strerror_r-posix (Depends-on): Likewise. * modules/strndup (Depends-on): Likewise. * modules/strnlen (Depends-on): Likewise. * modules/strptime (Depends-on): Likewise. * modules/strsep (Depends-on): Likewise. * modules/strsignal (Depends-on): Likewise. * modules/strstr-simple (Depends-on): Likewise. * modules/strtod (Depends-on): Likewise. * modules/strtoimax (Depends-on): Likewise. * modules/strtok_r (Depends-on): Likewise. * modules/strtoumax (Depends-on): Likewise. * modules/symlink (Depends-on): Likewise. * modules/symlinkat (Depends-on): Likewise. * modules/tanl (Depends-on): Likewise. * modules/tcgetsid (Depends-on): Likewise. * modules/tmpfile (Depends-on): Likewise. * modules/trunc (Depends-on): Likewise. * modules/truncf (Depends-on): Likewise. * modules/truncl (Depends-on): Likewise. * modules/uname (Depends-on): Likewise. * modules/unlink (Depends-on): Likewise. * modules/unlockpt (Depends-on): Likewise. * modules/unsetenv (Depends-on): Likewise. * modules/usleep (Depends-on): Likewise. * modules/utimensat (Depends-on): Likewise. * modules/vasprintf (Depends-on): Likewise. * modules/vdprintf (Depends-on): Likewise. * modules/vdprintf-posix (Depends-on): Likewise. * modules/vfprintf-posix (Depends-on): Likewise. * modules/vprintf-posix (Depends-on): Likewise. * modules/vsnprintf (Depends-on): Likewise. * modules/vsnprintf-posix (Depends-on): Likewise. * modules/vsprintf-posix (Depends-on): Likewise. * modules/wcrtomb (Depends-on): Likewise. * modules/wcscasecmp (Depends-on): Likewise. * modules/wcscspn (Depends-on): Likewise. * modules/wcsdup (Depends-on): Likewise. * modules/wcsncasecmp (Depends-on): Likewise. * modules/wcsnrtombs (Depends-on): Likewise. * modules/wcspbrk (Depends-on): Likewise. * modules/wcsrtombs (Depends-on): Likewise. * modules/wcsspn (Depends-on): Likewise. * modules/wcsstr (Depends-on): Likewise. * modules/wcstok (Depends-on): Likewise. * modules/wcswidth (Depends-on): Likewise. * modules/wctob (Depends-on): Likewise. * modules/wctomb (Depends-on): Likewise. * modules/wctype (Depends-on): Likewise. * modules/wcwidth (Depends-on): Likewise. * modules/write (Depends-on): Likewise. 2011-05-03 Bruno Haible Support for conditional dependencies. * doc/gnulib.texi (Module description): Document the syntax of conditional dependencies. * gnulib-tool: New option --conditional-dependencies. (func_usage): Document it. (cond_dependencies): New variable. (func_get_automake_snippet_conditional, func_get_automake_snippet_unconditional): New functions, extracted from func_get_automake_snippet. (func_get_automake_snippet): Use them. (sed_first_32_chars): New variable. (func_module_shellfunc_name): New function. (func_module_shellvar_name): New function. (func_module_conditional_name): New function. (func_uncond_add_module, func_conddep_add_module, func_cond_module_p, func_cond_module_condition): New functions. (func_modules_transitive_closure): Add support for conditional dependencies. (func_emit_lib_Makefile_am): For a conditional module, enclose the conditional automake snippet in an automake conditional. (func_emit_autoconf_snippets): Emit shell functions that contain the code for conditional modules. (func_import, func_create_testdir): Update specification. 2011-05-03 Eric Blake test-getaddrinfo: report error information * tests/test-getaddrinfo.c (simple): Use err outside of dbprintf. 2011-05-03 Jim Meyering bootstrap: avoid build failure when $GZIP is set * build-aux/bootstrap (check_versions): Do not treat $GZIP as a program name. If defined at all, it is supposed to list gzip options. Reported by Alan Curry in http://debbugs.gnu.org/8609 2011-05-03 Reuben Thomas readme-release: new module with release instructions * modules/readme-release: New module. * top/README-release: New file, from coreutils, grep, diffutils. * MODULES.html.sh (Support for maintaining and releasing): Add it. 2011-05-02 Eric Blake fflush: also replace fclose when fixing fflush * modules/fflush (Depends-on): Add fclose. * m4/fflush.m4 (gl_FUNC_FFLUSH): Also replace fclose. * lib/fclose.c (rpl_fclose): Don't cause spurious failures on memstreams with no backing fd. * doc/posix-functions/fclose.texi (fclose): Document the use of fflush module to fix the bug. * tests/test-fclose.c (main): Relax test when fclose is used in isolation. fclose: add some tests * modules/fclose-tests: New test module. * tests/test-fclose.c: New file. * doc/posix-functions/fclose.texi (fclose): Document the bug. fclose: reduced dependencies * modules/fclose (Depends-on): Switch from fflush/fseeko to simpler lseek. * lib/fclose.c (rpl_fclose): Likewise. Reported by Simon Josefsson. exit: drop remaining clients * modules/argmatch (Depends-on): Replace exit with stdlib. * modules/copy-file (Depends-on): Likewise. * modules/execute (Depends-on): Likewise. * modules/exitfail (Depends-on): Likewise. * modules/obstack (Depends-on): Likewise. * modules/pagealign_alloc (Depends-on): Likewise. * modules/pipe-filter-gi (Depends-on): Likewise. * modules/pipe-filter-ii (Depends-on): Likewise. * modules/savewd (Depends-on): Likewise. * modules/spawn-pipe (Depends-on): Likewise. * modules/wait-process (Depends-on): Likewise. * modules/xsetenv (Depends-on): Likewise. * modules/chdir-long (Depends-on): Add stdlib, for EXIT_FAILURE. * modules/git-merge-changelog (Depends-on): Likewise. * modules/long-options (Depends-on): Likewise. * modules/pt_chown (Depends-on): Likewise. * modules/sysexits (Depends-on): Likewise. freading: relax license from LGPLv3+ to LGPLv2+ * modules/freading (License): Relax LGPL version. 2011-05-02 Bruno Haible fchdir: Remove unused dependencies. * modules/fchdir (Depends-on): Remove include_next. 2011-05-02 Bruno Haible gnulib-tool: Refactor. * gnulib-tool (func_emit_autoconf_snippet): New function, extracted from func_emit_autoconf_snippets. (func_emit_autoconf_snippets): Use it. 2011-05-02 Simon Josefsson * NEWS: Document removal of 'exit'. * modules/exit: Remove file. 2011-05-01 Bruno Haible Update DEPENDENCIES. * DEPENDENCIES (gettext): Recommend the newest release. Reported by Simon Josefsson. 2011-05-01 Bruno Haible gnulib-tool: Reduce code duplication. * gnulib-tool (func_emit_autoconf_snippets): New function. (func_import, func_create_testdir): Use it. 2011-04-30 Eric Blake fclose: don't fail on non-seekable input stream * modules/fclose (Depends-on): Add freading, fflush, fseeko. * lib/fclose.c (rpl_fclose): Skip fflush for non-seekable input, since fflush is allowed to fail in that case. 2011-04-30 Bruno Haible dup3: cleanup * lib/dup3.c: Remove old code, leftover from 2009-12-16. 2011-04-30 Bruno Haible netdb: Make it work in C++ mode. * lib/netdb.in.h (struct addrinfo): In C++, define as a C struct. (getaddrinfo, freeaddrinfo, getnameinfo): Use macros from c++defs module. * m4/netdb_h.m4 (gl_NETDB_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR_FOR_TESTS. * modules/netdb-tests (Depends-on): Add netdb-c++-tests. * modules/netdb-c++-tests: New file. * tests/test-netdb-c++.cc: New file. 2011-04-30 Bruno Haible New modules 'vfscanf', 'vscanf'. * modules/vfscanf: New file. * modules/vscanf: New file. * m4/stdio_h.m4 (gl_STDIO_H): Don't set GNULIB_VFSCANF, GNULIB_VSCANF here. * doc/posix-functions/vfscanf.texi: Mention module 'vfscanf'. * doc/posix-functions/vscanf.texi: Mention module 'vscanf'. 2011-04-30 Bruno Haible passfd: Add comments. * lib/passfd.c: Add comments about platforms. 2011-04-30 Bruno Haible sys_uio: Make self-contained. * lib/sys_uio.in.h: Include before . * doc/posix-headers/sys_uio.texi: Mention the OpenBSD problem. 2011-04-30 Bruno Haible sys_socket: Ensure 'struct iovec' definition. * lib/sys_socket.in.h: Include also on platforms that have . * doc/posix-headers/sys_socket.texi: Mention the OpenBSD problem. 2011-04-30 Bruno Haible sys_uio: Protect definition of 'struct iovec'. * lib/sys_uio.in.h (struct iovec): Avoid redefinition. In C++, define it as a C struct. 2011-04-30 Bruno Haible manywarnings: fix indentation * m4/manywarnings.m4: Indent by 2 spaces consistently. 2011-04-30 Pádraig Brady manywarnings: add -Wno-missing-field-initializers if needed. * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add the above option if it's needed to allow initialization with { 0, } 2011-04-29 Reuben Thomas announce-gen: cosmetic improvement * build-aux/announce-gen: Strip any leading ./ from the NEWS file name. 2011-04-29 Jim Meyering vc-list-files: indent with spaces, not TABs * build-aux/vc-list-files: Convert leading TABs to spaces, to match the style of most other files in gnulib. announce-gen: indent with spaces, not TABs * build-aux/announce-gen: Convert all TABs to spaces, to match the style of most other files in gnulib. 2011-04-29 Eric Blake quotearg: avoid uninitialized variable use * lib/quotearg.c (quoting_options_from_style): Initialize remaining fields, and ensure that custom styles are only used via quoting_options rather than quoting_style. 2011-04-29 Jim Meyering maint.mk: remove unused VC-tag variable * top/maint.mk (VC-tag): Remove unused variable. 2011-04-29 Bruno Haible netdb: fix gai_strerror replacements * lib/netdb.in.h: Add _GL_FUNCDECL_RPL definitions. * modules/netdb: Substitute it. 2011-04-29 Jim Meyering test-getcwd.c: avoid new set-but-not-used warning * tests/test-getcwd.c (test_abort_bug): Exit nonzero for any problem, not just the glibc/abort one that getcwd-abort-bug.m4 detects. * m4/getcwd-abort-bug.m4: Update this now-duplicated code to match, and adjust the code that sets gl_cv_func_getcwd_abort_bug accordingly. test-hash.c: avoid a new shadowing warning * tests/test-hash.c (main): Don't shadow "dup". 2011-04-28 Eric Blake getaddrinfo: fix gai_strerror signature * m4/getaddrinfo.m4 (gl_GETADDRINFO): Detect broken signatures, and work around mingw with UNICODE defined. (gl_PREREQ_GETADDRINFO): Drop redundant decl check. * m4/netdb_h.m4 (gl_NETDB_H_DEFAULTS): Add witness. * modules/netdb (Makefile.am): Substitute it. * lib/netdb.in.h (gai_strerror): Declare replacement. * lib/gai_strerror.c (rpl_gai_strerror): Fix signature. * doc/posix-functions/gai_strerror.texi (gai_strerror): Document the fix. getsockopt: avoid compiler warning * lib/getsockopt.c (rpl_getsockopt): Add a cast for mingw. Reported by Matthias Bolte. tests: drop unused link dependency * modules/areadlinkat-tests (Makefile.am): Drop stale LDADD. * modules/dirent-safer-tests (Makefile.am): Likewise. * modules/fdopendir-tests (Makefile.am): Likewise. * modules/mkfifoat-tests (Makefile.am): Likewise. * modules/openat-safer-tests (Makefile.am): Likewise. * modules/openat-tests (Makefile.am): Likewise. * modules/readlinkat-tests (Makefile.am): Likewise. * modules/symlinkat-tests (Makefile.am): Likewise. * modules/linkat-tests (Makefile.am): Likewise. (Depends-on): Switch to filenamecat-lgpl. * modules/fdutimensat-tests (test_fdutimensat_LDADD): Drop unused LIBINTL. * modules/utimensat-tests (test_utimensat_LDADD): Likewise. * tests/test-linkat.c (main): Don't require xalloc. hash, mgetgroups: drop xalloc dependency * lib/hash.c (includes): Adjust includes. * lib/mgetgroups.c (includes): Likewise. (xgetgroups): Move... * lib/xgetgroups.c: ...to new file. * lib/mgetgroups.h (xgetgroups): Make declaration conditional. * modules/xgetgroups: New file, split from... * modules/mgetgroups: ...here. (Depends-on): Add xalloc-oversized. * modules/hash (Depends-on): Likewise. * modules/hash-tests (Depends-on): Drop xalloc. (test_hash_LDADD): Drop unused library. * tests/test-hash.c (main): Break xalloc dependency. (includes): Drop unused include. xalloc-oversized: new module * modules/xalloc-oversized: New module. * modules/xalloc (Depends-on): Add it. * lib/xalloc.h (xalloc_oversized): Move... * lib/xalloc-oversized.h: ...into new file. utimecmp: drop dependency on xmalloc * lib/utimecmp.c (utimecmp): Work even if hash table cache fails due to memory pressure. * modules/utimecmp (Depends-on): Drop xalloc. 2011-04-27 Eric Blake getcwd: fix mingw bugs * m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Detect one mingw bug. * doc/posix-functions/getcwd.texi (getcwd): Document the problems. * lib/getcwd-lgpl.c (rpl_getcwd): Fix return type. 2011-04-27 Bruno Haible mkstemps: Ensure declaration on MacOS X 10.5. * lib/stdlib.in.h: Include when mkstemps is requested. * doc/glibc-functions/mkstemps.texi: Document header file problem on MacOS X. 2011-04-27 Bruno Haible mkstemp: More documentation. * doc/posix-functions/mkstemp.texi: Document header file problem on MacOS X. 2011-04-27 Bruno Haible mkstemp: Tweak configure message when cross-compiling. * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): When cross-compiling, qualify the result as a guess. 2011-04-27 Bruno Haible clean-temp: Clarify what it does. * lib/clean-temp.h: Add more comments. * doc/posix-functions/mkstemp.texi: Tweak reference to 'clean-temp' module. * doc/glibc-functions/mkostemp.texi: Mention 'clean-temp' here too. * doc/glibc-functions/mkstemps.texi: Likewise. * doc/glibc-functions/mkostemps.texi: Likewise. 2011-04-27 Eric Blake fchdir: avoid extra chdir and fix test * modules/fchdir (Depends-on): Add dosname, filenamecat-lgpl, getcwd-lgpl. * lib/fchdir.c (get_name): Any absolute name will do; it does not have to be canonical. (canonicalize_file_name): Drop unused macro. * m4/dup2.m4 (gl_REPLACE_DUP2): Ensure dup2 is replaced. filenamecat-lgpl: fix licence * modules/filenamecat-lgpl (License): Mark as LGPLv2+, as intended when it was first created. linkat, renameat: add missing dependency * modules/linkat (Depends-on): Require getcwd-lgpl. * modules/renameat (Depends-on): Likewise. tests: reduce dependencies * tests/test-linkat.c (main): Use lighter-weight getcwd. * tests/test-renameat.c (main): Likewise. * modules/linkat-tests (Depends-on): Relax dependency. * modules/renameat-tests (Depends-on): Likewise. * modules/fchdir-tests (Depends-on): Likewise. Also make cloexec dependency explicit. save-cwd: reduce default dependency * modules/save-cwd (Depends-on): Use getcwd-lgpl. * lib/save-cwd.c: Update comments. * NEWS: Document the semantic change. getcwd: enhance tests * tests/test-getcwd-lgpl.c: New file, taken from... * tests/test-getcwd.c: ...old contents. Rewrite this file to repeat long path stress tests from m4 probe. * modules/getcwd-lgpl-tests: New module. * modules/getcwd-tests (Depends-on): Depend on lgpl tests. * m4/getcwd-abort-bug.m4: Update comment. * m4/getcwd-path-max.m4: Likewise. getcwd-lgpl: new module * modules/getcwd-lgpl: New module. * lib/getcwd-lgpl.c: New file. * doc/posix-functions/getcwd.texi (getcwd): Document it. * MODULES.html.sh (lacking POSIX:2008): Likewise. * modules/getcwd (configure.ac): Set C witness. * m4/getcwd.m4 (gl_FUNC_GETCWD_LGPL): New macro. getcwd: tweak comments * m4/getcwd-abort-bug.m4: Fix comments. * m4/getcwd-path-max.m4: Likewise. * m4/getcwd.m4: Likewise. 2011-04-27 Reuben Thomas and Eric Blake mkstemp: replace if system version uses wrong permissions * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Add test for non-owner read/write mode bits set in file created by mkstemp. * doc/posix-functions/mkstemp.texi (mkstemp): Document the fix. 2011-04-27 Eric Blake passfd: avoid compiler warning * lib/passfd.c (sendfd, recvfd): Avoid shadowing names. Reported by Laine Stump. 2011-04-27 J.T. Conklin (tiny change) * gnulib-tool: change "join -a 2" to "join -a2", the latter is required by the NetBSD (and perhaps other 4.4BSD derived) join. 2011-04-27 Reuben Thomas and Eric Blake mkstemp: mention clean-temp module * lib/mkstemp.c: Add comment. * doc/posix-functions/mkstemp.texi (mkstemp): Likewise. 2011-04-26 Paul Eggert inttypes: also provide default values for 32-bit tests * m4/inttypes.m4 (gl_INTTYPES_H_DEFAULTS): Also provide default values for INT32_MAX_LT_INTMAX_MAX and for UINT32_MAX_LT_UINTMAX_MAX. 2011-04-25 Paul Eggert strtoumax: remove dependency on strtoimax This is like the strtoull change of yesterday. * modules/strtoumax (Files): Add lib/strtoimax.c. (Depends-on): Remove strtoimax and add verify. inttypes-incomplete: new module * m4/inttypes.m4 (gl_INTTYPES_INCOMPLETE): New macro, containing all but the PRI* and SCN* parts of gl_INTTYPES_H. (gl_INTTYPES_PRI_SCN): New macro, containing the PRI* and SCN* parts of gl_INTTYPES_H. (gl_INTTYPES_H): Rewrite in terms of these new macros. (gl_INTTYPES_H_DEFAULTS): Provide defaults for the PRI* and SCN* parts, in case gl_INTTYPE_PRI_SCN is not invoked. * modules/imaxabs, modules/imaxdiv, modules/strtoimax (Depends-on): * modules/strtoumax, modules/xstrtol (Depends-on): Depend on inttypes-incomplete, not inttypes. * modules/inttypes-incomplete: New module, containing the contents of the old modules/inttypes module, except that the Files: section omits m4/inttypes-pri.m4, and the configure.ac section invokes gl_INTTYPES_INCOMPLETE rather than gl_INTTYPES_H. * modules/inttypes (Files): Remove lib/inttypes.in.h, m4/inttypes.m4. (Depends-on): Depend only on inttypes-incomplete. (Makefile.am): Remove everything; this is now in inttypes-incomplete. inttypes: omit now-redundant strtoimax and strtoumax work * m4/inttypes.m4 (gl_INTTYPES_H): Do not check for strtoimax and strtoumax decls; gl_FUNC_STRTOIMAX and gl_FUNC_STRTOUMAX now do this. strtoimax, strtoumax: simplify, port to HP-UX 11.00 64-bit This supports apps that need pointers to strtoimax and strtoumax, and ports to HP-UX 11.00 64.bit, which has macros that expand to nonexistent functions. See et seq. * lib/inttypes.in.h (strtoimax, strtoumax): #undef before declaring. * m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Don't check whether it's a macro. * m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Likewise. 2011-04-25 Simon Josefsson * modules/gnumakefile (configure.ac): Replace TAB with SPCs. 2011-04-25 Bruno Haible strtol, strtoul: Mark modules as obsolete. * modules/strtol (Status, Notice): New sections. * modules/strtoul (Status, Notice): New sections. 2011-04-25 Bruno Haible strtod: Remove check for strtod, unless supporting old platforms. * modules/strtod-obsolete: New file. * m4/strtod-obsolete.m4: New file. * m4/strtod.m4 (gl_FUNC_STRTOD): Don't check whether strtod is declared if gl_FUNC_STRTOD_OBSOLETE is not also defined. * modules/strtod (Depends-on): Add strtod-obsolete. * doc/posix-functions/strtod.texi: Mention module strtod-obsolete. 2011-04-25 Bruno Haible strcase: Make module obsolete. * modules/strcase (Status, Notice): New sections. 2011-04-25 Bruno Haible dup2: Remove check for dup2, unless supporting old obsolete platforms. * modules/dup2-obsolete: New file. * m4/dup2-obsolete.m4: New file. * m4/dup2.m4 (gl_FUNC_DUP2): Don't check whether dup2 exists if gl_FUNC_DUP2_OBSOLETE is not also defined. * modules/dup2 (Depends-on): Add dup2-obsolete. * doc/posix-functions/dup2.texi: Mention module dup2-obsolete. 2011-04-25 Bruno Haible strnlen: Avoid memchr related link error on old obsolete platforms. * modules/memchr-obsolete: New file. * m4/memchr-obsolete.m4: New file. * m4/memchr.m4 (gl_FUNC_MEMCHR): Don't check whether memchr exists if gl_FUNC_MEMCHR_OBSOLETE is not also defined. * modules/memchr (Depends-on): Add memchr-obsolete. * modules/strnlen (Depends-on): Likewise. * doc/posix-functions/memchr.texi: Mention module memchr-obsolete. 2011-04-25 Jim Meyering maint.mk: makefile_at_at_check extend and clean up * top/maint.mk (sc_makefile_at_at_check): Check *.mk files in addition to */Makefile.am. Exempt legitimate uses of @VAR@ notation, e.g., MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@ Remove obsolete coreutils-specific comment. Prompted by discussion here: http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/26074 2011-04-24 Paul Eggert strtoul: remove dependency on strtol This is so that 'configure' need not check for strtol merely because the application needs strtoul. * modules/strtoul (Files): Add lib/strtol.c. (Depends-on): Remove strtol. strtoull: remove dependency on strtoul This is like the strtoll change. * modules/strtoull (Files): Add lib/strtol.c, lib/strtoul.c. (Depends-on): Remove strtoul. strtoll: remove dependency on strtol This is so that 'configure' need not check for strtol merely because the application needs strtoll. * modules/strtoll (Files): Add lib/strtol.c. (Depends-on): Remove strtol. 2011-04-22 Paul Eggert inttypes: Move some configure check to module 'imaxdiv'. * m4/imaxdiv.m4 (gl_FUNC_IMAXDIV): Require gl_INTTYPES_H_DEFAULTS instead of gl_INTTYPES_H. Check for imaxdiv decl here. * m4/inttypes.m4 (gl_INTTYPES_H): Don't check for imaxdiv decl here. 2011-04-22 Paul Eggert inttypes: Move some configure check to module 'imaxabs'. * m4/imaxabs.m4 (gl_FUNC_IMAXABS): Require gl_INTTYPES_H_DEFAULTS instead of gl_INTTYPES_H. Check for imaxabs decl here. * m4/inttypes.m4 (gl_INTTYPES_H): Don't check for imaxabs decl here. 2011-04-22 Paul Eggert inttypes: Remove configure tests that are not needed since 2009-12-31. * m4/inttypes.m4 (gl_INTTYPES_H): Remove determination of gl_cv_header_working_inttypes_h. 2011-04-22 Paul Eggert * modules/strnlen (Depends-on): Remove memchr. The strnlen implementation doesn't need the memchr module's fixes; see . strtol: remove dependency on wchar * lib/strtol.c: Include only if USE_WIDE_CHAR is defined. * modules/strtol (Depends-on): Remove wchar. 2011-04-21 Eric Blake passfd: fix test regression on Linux * modules/passfd-tests (configure.ac): Correct socketpair check. passfd: speed up configure and drop unused code * m4/afunix.m4 (gl_SOCKET_AFUNIX): Rename... * m4/passfd.m4 (gl_PASSFD): ...to something more fitting of its use. Drop test for setting unused HAVE_UNIXSOCKET_SCM_RIGHTS. Instead of probing at configure for unix_scm_rights_bsd44_way, instead probe for CMSG_FIRSTHDR at compile time. Simplify BSD 4.3 check to a struct member probe. * lib/passfd.c (includes): Nothing here requires . (sendfd, recvfd): Update preprocessor checks. * modules/passfd (Files): Reflect rename, and drop unused file. (Depends-on): Drop unused dependency. passfd: allow compilation on mingw * modules/sys_socket (Depends-on): Add sys_uio. * lib/sys_socket.in.h [!@HAVE_SYS_SOCKET_H@]: Use it for struct iovec and a minimal struct msghdr. * m4/afunix.m4 (gl_SOCKET_AFUNIX): Detect recvmsg/sendmsg. * tests/test-sys_socket.c (main): Enhance test. * lib/passfd.c (include): Drop ; is guaranteed to provide what we need. (sendmsg, recvmsg): Declare fallbacks if we lack sendmsg. * modules/passfd-tests (Depends-on): Add sys_wait. * tests/test-passfd.c (main): Skip test on mingw, for now. * doc/posix-headers/sys_socket.texi (sys/socket.h): Document the partial 'struct msghdr' implementation. sys_uio: new module * modules/sys_uio: New module. * modules/sys_uio-tests: Likewise. * lib/sys_uio.in.h: New file. * m4/sys_uio_h.m4: Likewise. * tests/test-sys_uio.c: Likewise. * doc/posix-headers/sys_uio.texi (sys/uio.h): Document it. * MODULES.html.sh (systems lacking POSIX:2008): Likewise. 2011-04-20 Jim Meyering useless-if-before-free: avoid false-positive * build-aux/useless-if-before-free: Adjust regexp for the non-brace disjunct so that it too requires a terminating ";". Without that, this script would identify as useless one statement from gcc that was not: if (aligned_ptr) free (((void **) aligned_ptr) [-1]); 2011-04-20 Giuseppe Scrivano doc: update users.txt. * users.txt: Add barcode. 2011-04-19 Bruno Haible ioctl: Remove link dependency on native Windows. * lib/fd-hook.h: Renamed from lib/close-hook.h. (gl_close_fn, gl_ioctl_fn): New types. (struct fd_hook): Renamed from struct close_hook. Change type of private_close_fn field. Add private_ioctl_fn field. (close_hook_fn): Add parameter for primary close method. (execute_close_hooks, execute_all_close_hooks): Likewise. (ioctl_hook_fn): New type. (execute_ioctl_hooks, execute_all_ioctl_hooks): New declarations. (register_fd_hook): Renamed from register_close_hook. Add ioctl_hook argument. (unregister_fd_hook): Renamed from unregister_close_hook. * lib/fd-hook.c: Renamed from lib/close-hook.c. Don't include . (close): Remove undef. (anchor): Update. (execute_close_hooks): Add argument for primary close method. (execute_all_close_hooks): Likewise. (execute_ioctl_hooks, execute_all_ioctl_hooks): New functions. (register_fd_hook): Renamed from register_close_hook. Add ioctl_hook argument. Allow each argument to be NULL. (unregister_fd_hook): Renamed from unregister_close_hook. * lib/close.c (rpl_close): Pass 'close' function pointer to execute_all_close_hooks. * lib/ioctl.c: Include , fd-hook.h. (primary_ioctl): New function. (ioctl): Don't call ioctlsocket here. Instead, call execute_all_ioctl_hooks. * lib/sockets.c (close_fd_maybe_socket): Add argument for primary close method. (ioctl_fd_maybe_socket): New function, with code from lib/ioctl.c. (fd_sockets_hook): Renamed from close_sockets_hook. (gl_sockets_startup, gl_sockets_cleanup): Update. * modules/fd-hook: Renamed from modules/close-hook. Update. * modules/close (Depends-on): Add fd-hook, remove close-hook. * modules/sockets (Depends-on): Likewise. * modules/ioctl (Depends-on): Add fd-hook. * tests/test-nonblocking.c (main): Use GNULIB_TEST_SOCKET, not GNULIB_SOCKET. 2011-04-19 Bruno Haible Move the support of O_NONBLOCK in open() to the 'open' module. * modules/nonblocking (Depends-on): Remove 'open'. * m4/nonblocking.m4 (gl_NONBLOCKING_IO_BODY): Set gl_cv_have_open_O_NONBLOCK. * m4/open.m4 (gl_FUNC_OPEN): Replace open() also when required for O_NONBLOCK support. * doc/posix-functions/open.texi: Document support for O_NONBLOCK. 2011-04-17 Bruno Haible pipe2: Simplify code. * lib/pipe2.c (pipe2): Reduce code duplication. 2011-04-17 Bruno Haible nonblocking: Add comment. * lib/fcntl.in.h (O_NONBLOCK): Add comment. 2011-04-17 Bruno Haible nonblocking: Add tests for sockets. * tests/test-nonblocking-socket.sh: New file. * tests/test-nonblocking-socket-main.c: New file. * tests/test-nonblocking-socket-child.c: New file. * tests/test-nonblocking-socket.h: New file. * tests/socket-server.h: New file. * tests/socket-client.h: New file. * modules/nonblocking-socket-tests: New file. * modules/nonblocking-tests (Depends-on): Add nonblocking-socket-tests. 2011-04-17 Bruno Haible nonblocking: Add tests for pipes. * tests/test-nonblocking-pipe.sh: New file. * tests/test-nonblocking-pipe-main.c: New file. * tests/test-nonblocking-pipe-child.c: New file. * tests/test-nonblocking-pipe.h: New file. * tests/test-nonblocking-writer.h: New file. * tests/test-nonblocking-reader.h: New file. * tests/test-nonblocking-misc.h: New file. * modules/nonblocking-pipe-tests: New file. * modules/nonblocking-tests (Depends-on): Add nonblocking-pipe-tests. 2011-04-16 Bruno Haible gettext: Clarify the needed programmer actions. * modules/gettext (Notice): New field. Suggested by Ben Pfaff . 2011-04-16 Bruno Haible strchrnul: Tweak last commit. * doc/glibc-functions/strchrnul.texi: Add more details about Cygwin bug. * lib/string.in.h (strchrnul): Use same arguments in _GL_FUNCDECL_RPL as in _GL_FUNCDECL_SYS. * m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Invoke gl_PREREQ_STRCHRNUL after AC_LIBOBJ. When cross-compiling, say "guessing yes" not "yes". 2011-04-15 Eric Blake strchrnul: work around cygwin bug * doc/glibc-functions/strchrnul.texi (strchrnul): Document bug. * m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Detect it. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): New witness. * modules/string (Makefile.am): Substitute it. * lib/string.in.h (strchrnul): Use it. 2011-04-15 Bruno Haible Don't require lib/stdio-write.c when only module 'stdio' is used. * m4/stdio_h.m4 (gl_STDIO_H): Move the AC_LIBOBJ back into the m4_ifdef invocation. Reported by Rob Vermaas . 2011-04-14 Bruno Haible Support non-blocking pipe I/O in read() on native Windows. * lib/unistd.in.h: Include also for 'read'. (read): New declaration. * lib/read.c: New file. * lib/stdio.in.h (_GL_ATTRIBUTE_FORMAT_SCANF, _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM): New macros. (fgetc, fgets, fread, fscanf, getc, getchar, gets, scanf, vfscanf, vscanf): New declarations. * lib/stdio-read.c: New file. * m4/read.m4: New file. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_READ, REPLACE_READ. * m4/stdio_h.m4 (gl_STDIO_H): Set GNULIB_FGETC, GNULIB_FGETS, GNULIB_FREAD, GNULIB_FSCANF, GNULIB_GETC, GNULIB_GETCHAR, GNULIB_GETS, GNULIB_SCANF, GNULIB_VFSCANF, GNULIB_VSCANF. In non-blocking I/O is desired and needs workarounds, set REPLACE_STDIO_READ_FUNCS. (gl_STDIO_H_DEFAULTS): Initialize GNULIB_FGETC, GNULIB_FGETS, GNULIB_FREAD, GNULIB_FSCANF, GNULIB_GETC, GNULIB_GETCHAR, GNULIB_GETS, GNULIB_SCANF, GNULIB_VFSCANF, GNULIB_VSCANF, REPLACE_STDIO_READ_FUNCS. * modules/read: New file. * modules/nonblocking (Files): Add lib/stdio-read.c. * modules/unistd (Makefile.am): Substitute GNULIB_READ, REPLACE_READ. * modules/stdio (Makefile.am): Substitute GNULIB_FGETC, GNULIB_FGETS, GNULIB_FREAD, GNULIB_FSCANF, GNULIB_GETC, GNULIB_GETCHAR, GNULIB_GETS, GNULIB_SCANF, GNULIB_VFSCANF, GNULIB_VSCANF, REPLACE_STDIO_READ_FUNCS. * modules/pread (Depends-on): Add read. * modules/safe-read (Depends-on): Likewise. * tests/test-stdio-c++.cc (fgetc, fgets, fread, fscanf, getc, getchar, gets, scanf, vfscanf, vscanf): Verify signatures. * doc/posix-functions/read.texi: Mention 'nonblocking' module and problem with non-blocking pipes. * doc/posix-functions/fgetc.texi: Likewise. * doc/posix-functions/fgets.texi: Likewise. * doc/posix-functions/fread.texi: Likewise. * doc/posix-functions/fscanf.texi: Likewise. * doc/posix-functions/getc.texi: Likewise. * doc/posix-functions/getchar.texi: Likewise. * doc/posix-functions/gets.texi: Likewise. * doc/posix-functions/scanf.texi: Likewise. * doc/posix-functions/vfscanf.texi: Likewise. * doc/posix-functions/vscanf.texi: Likewise. 2011-04-14 Bruno Haible Support non-blocking pipe I/O in write() on native Windows. * lib/write.c (rpl_write): Split a write request that failed merely because the byte count was larger than the pipe buffer's size. * doc/posix-functions/write.texi: Mention the problem with large byte counts. 2011-04-14 Bruno Haible wchar: Ensure that wchar_t gets defined on uClibc. * lib/wchar.in.h: On uClibc, include . Reported by Giuseppe Scrivano . 2011-04-13 Bruno Haible safe-write, full-read: Avoid unnecessary compilation units. * modules/safe-write (Files): Add lib/safe-read.c, m4/safe-read.m4. (Depends-on): Remove safe-read. Add ssize_t. * modules/full-read (Files): Add lib/full-write.c. (Depends-on): Add full-write. 2011-04-13 Bruno Haible Support non-blocking pipe I/O and SIGPIPE in pwrite(). * modules/pwrite (Depends-on): Add 'write'. 2011-04-13 Bruno Haible Support non-blocking pipe I/O in write() on native Windows. * lib/unistd.in.h (write): Enable replacement also if GNULIB_UNISTD_H_NONBLOCKING is 1. * lib/write.c: Enable replacement also if GNULIB_NONBLOCKING. (rpl_write): When failing to write on a non-blocking pipe, change errno from ENOSPC to EAGAIN. * lib/stdio.in.h (fprintf, fputc, fputs, fwrite, printf, putc, putchar, puts, vfprintf, vprintf): Enable replacement also if GNULIB_STDIO_H_NONBLOCKING is 1. * lib/stdio-write.c: Enable replacements also if GNULIB_NONBLOCKING. (CLEAR_ERRNO, HANDLE_ENOSPC): New macros. (CLEAR_LastError, HANDLE_ERROR_NO_DATA): New macros, extracted from CALL_WITH_SIGPIPE_EMULATION. (CALL_WITH_SIGPIPE_EMULATION): Use them. * m4/nonblocking.m4: New file. * m4/write.m4 (gl_FUNC_WRITE): Enable REPLACE_WRITE also if required for non-blocking I/O support. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_UNISTD_H_NONBLOCKING. * m4/stdio_h.m4 (gl_STDIO_H): Enable REPLACE_STDIO_WRITE_FUNCS also if required for non-blocking I/O support. (gl_STDIO_H_DEFAULTS): Initialize GNULIB_STDIO_H_NONBLOCKING. * modules/nonblocking (Files): Add m4/nonblocking.m4, lib/stdio-write.c, m4/asm-underscore.m4. (Depends-on): Add stdio, unistd. (configure.ac): Invoke gl_NONBLOCKING_IO. Define GNULIB_NONBLOCKING. Set GNULIB_STDIO_H_NONBLOCKING, GNULIB_UNISTD_H_NONBLOCKING. * modules/unistd (Makefile.am): Substitute GNULIB_UNISTD_H_NONBLOCKING. * modules/stdio (Makefile.am): Substitute GNULIB_STDIO_H_NONBLOCKING. * doc/posix-functions/fprintf.texi: Mention 'nonblocking' module and problem with non-blocking pipes. * doc/posix-functions/fputc.texi: Likewise. * doc/posix-functions/fputs.texi: Likewise. * doc/posix-functions/fwrite.texi: Likewise. * doc/posix-functions/printf.texi: Likewise. * doc/posix-functions/putc.texi: Likewise. * doc/posix-functions/putchar.texi: Likewise. * doc/posix-functions/puts.texi: Likewise. * doc/posix-functions/vfprintf.texi: Likewise. * doc/posix-functions/vprintf.texi: Likewise. * doc/posix-functions/write.texi: Likewise. 2011-04-10 Jim Meyering maint.mk: prohibit doubled words Detect them also when they're separated by a newline. There are 3 ways to customize it: - disable the test on a per file basis, as usual with rules using $(VC_LIST_EXCEPT) - replace the default doubled-word-selecting regexp (affects all files) - ignore a particular file-vs-doubled-word match I nearly used that last one to ignore the "is is" match in coreutils' NEWS file, since the text was "ls -is is ..." To do that, I would have added this line to cfg.mk: ignore_doubled_word_match_RE_ = ^NEWS:[0-9]+:is[ ]is$ but it would have ignored any "is is" match in NEWS. Low probability, but still... Instead, I changed the text, slightly: - ls -is is now consistent with ls -lis in ignoring values returned + "ls -is" is now consistent with ls -lis in ignoring values returned * top/maint.mk (prohibit_double_word_RE_): Provide default. (prohibit_doubled_word_): Define. (sc_prohibit_doubled_word): New rule. (sc_prohibit_the_the): Remove. Subsumed by the above. 2011-04-10 Jim Meyering maint: fix doubled-word typo in comment * m4/gethostname.m4: s/is is/it is/ * m4/getdomainname.m4: Likewise. 2011-04-10 Jim Meyering maint: remove doubled word: s/it it/it/ * lib/stat-time.h (get_stat_birthtime): s/it it/it/ 2011-04-10 Jim Meyering maint.mk: remove useless semicolon and backslash * top/maint.mk (sc_prohibit_empty_lines_at_EOF): Remove stray semicolon and backslash. 2011-04-10 Bruno Haible stdint test: Fix compilation failure on OSF/1 with DTK compiler. * modules/stdint-tests (Depends-on): Add wchar. 2011-04-10 Jim Meyering maint: remove doubled words in comments, e.g., s/a a/a/ * lib/strptime.c (day_of_the_week): s/the the/the/ * tests/test-chown.h (test_chown): s/a a/a/ test-chown.h: correct a cast * tests/test-chown.h (test_chown): Cast -1 to gid_t (not uid_t) when the destination is a stat.st_gid. 2011-04-09 Mats Erik Andersson (tiny change) getaddrinfo: Fix test for sa_len member. * m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): When testing for sa_len, include before . 2011-04-09 Paul Eggert maint: change "can not" to "cannot" * doc/posix-functions/iconv.texi (iconv): This one crossed line boundaries. 2011-04-09 Jim Meyering maint: change "a a" to "a" * tests/test-lchown.h (test_lchown): s/a a/a/ maint.mk: prohibit \ * top/maint.mk (sc_prohibit_the_the): New rule. maint: fix "the the" in comment * lib/count-one-bits.h: s/the the/the/ maint: change "can not" to "cannot" But do not change the occurrences in maintain.texi or in build-aux/po/Makefile.in.in, which I presume comes from gettext. * doc/gnulib-tool.texi: s/can not/cannot/ * doc/posix-functions/accept.texi (accept): Likewise. * doc/posix-functions/socket.texi (socket): Likewise. * lib/mbrtowc.c: Likewise. maint.mk: prohibit use of "can not" * top/maint.mk (sc_prohibit_can_not): New rule. Writing "can not" (rather than "cannot") is too common. Prohibit it. 2011-04-09 Bruno Haible careadlinkat: Guard against misuse of careadlinkatcwd. * lib/careadlinkat.c: Include . (careadlinkatcwd): Check that the fd argument is as expected. 2011-04-09 Bruno Haible careadlinkat: Use common coding style. * lib/careadlinkat.c: Move gnulib includes after system includes. 2011-04-09 Bruno Haible careadlinkat: Clarify specification. * lib/careadlinkat.h (careadlinkat): Clarify preadlinkat argument. (careadlinkatcwd): Add comment. * lib/careadlinkat.c (careadlinkat): Clarify preadlinkat argument. 2011-04-09 Bruno Haible areadlinkat: Avoid link error on many platforms. * modules/areadlinkat (Depends-on): Add areadlink. 2011-04-09 Bruno Haible allocator, careadlinkat: Fix double-inclusion guard. * lib/allocator.h: Fix double-inclusion guard. * lib/careadlinkat.h: Likewise. 2011-04-09 Bruno Haible relocatable-prog-wrapper: Update after module 'areadlink' changed. * lib/relocwrapper.c: Update dependencies hierarchy. * build-aux/install-reloc: Update list of files to be compiled. * modules/relocatable-prog-wrapper (Files): Add lib/careadlinkat.[hc], lib/allocator.[hc]. 2011-04-08 Eric Blake strftime: silence gnulib-tool warning * modules/strftime-tests (Depends-on): Drop automatic dependency. 2011-04-08 Bruno Haible verify: Fix syntax error with GCC 4.6 in C++ mode. * lib/verify.h (HAVE__STATIC_ASSERT): Don't define in C++ mode. (HAVE_STATIC_ASSERT): New macro. (verify_true, verify): Use 'static_assert' if it is supported and '_Static_assert' is not supported. 2011-04-08 Paul Eggert allocator: New module. * modules/allocator, lib/allocator.c: New files. * lib/allocator.h (stdlib_allocator): New decl. * lib/careadlinkat.c (_GL_USE_STDLIB_ALLOC, standard_allocator): Remove. Do not include . (careadlinkat): Use stdlib_allocator instead of rolling our own. * modules/careadlinkat (Files): Remove lib/allocator.h. (Depends-on): Add allocator. stdlib: let modules use system malloc, realloc * lib/stdlib.in.h (malloc, realloc): Don't #define or add warnings if !_GL_USE_STDLIB_ALLOC. (malloc, realloc): Limit this change to a smaller scope. * lib/careadlinkat.c (_GL_USE_STDLIB_ALLOC): Define. (malloc, realloc): Don't #undef; no longer needed. * lib/malloca.c (_GL_USE_STDLIB_ALLOC, malloc): Likewise. * lib/progreloc.c (_GL_USE_STDLIB_ALLOC, malloc): Likewise. * lib/setenv.c (_GL_USE_STDLIB_ALLOC, malloc, realloc): Likewise. * lib/canonicalize-lgpl.c (_GL_USE_STDLIB_ALLOC, malloc): Likewise. * lib/relocatable.c (_GL_USE_STDLIB_ALLOC, malloc): Likewise. * lib/relocwrapper.c (_GL_USE_STDLIB_ALLOC, malloc): Likewise. * lib/malloc.c (_GL_USE_STDLIB_ALLOC, malloc): Likewise. * lib/realloc.c (_GL_USE_STDLIB_ALLOC, malloc, realloc): Likewise. careadlinkat: rename members to avoid problem * lib/allocator.h (struct allocator): Rename members from malloc/realloc to allocate/reallocate, to avoid problems if malloc and realloc are #define'd. Reported by Eric Blake in . * lib/careadlinkat.c (careadlinkat): Adjust to renaming. 2011-04-08 Eric Blake nonblocking: reduce dependency * tests/test-nonblocking.c: Only test sockets when in use. * modules/nonblocking-tests (Depends-on): Drop socket. (Makefile.am): Link even if sockets are not present. * modules/pipe2-tests (Makefile.am): Likewise. * lib/ioctl.c (ioctl) [WIN32]: Fail if sockets are not also in use. pipe2: fix O_NONBLOCK support on mingw * modules/pipe2 (Depends-on): Add nonblocking. * lib/pipe2.c (pipe2) [WIN32]: Add O_NONBLOCK support. * tests/test-pipe2.c (is_nonblocking): Adjust test accordingly. * tests/test-nonblocking.c (main): Likewise. * modules/pipe2-tests (Makefile.am): Avoid link failure. fcntl-h: fix O_ACCMODE on cygwin * doc/posix-headers/fcntl.texi (fcntl.h): Document the bug. * lib/fcntl.in.h (O_ACCMODE): Fix it. pipe-filter: drop O_NONBLOCK workarounds * modules/pipe-filter-gi (Depends-on): Add fcntl-h. * modules/pipe-filter-ii (Depends-on): Likewise. * lib/pipe-filter-aux.h (O_NONBLOCK): Delete workaround. nonblocking: provide O_NONBLOCK for mingw * modules/nonblocking (Depends-on): Add open. (configure.ac): Set new witness macro. * m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Provide default for it. * modules/fcntl-h (Makefile.am): Substitute it. * lib/fcntl.in.h (O_NONBLOCK): Guarantee non-zero definition when nonblocking module is in use. * lib/nonblocking.c: Adjust portability test. * lib/open.c (open): Don't let native open see gnulib flag. * tests/test-fcntl-h.c (main): Enhance test. * tests/test-open.h (test_open): Likewise. * doc/posix-headers/fcntl.texi (fcntl.h): Document the replacement. careadlinkat: fix compilation error on mingw * lib/careadlinkat.c (standard_allocator): Avoid renaming fields within struct allocator. 2011-04-06 Eric Blake binary-io: relicense under LGPLv2+ * modules/binary-io (License): Relax to LGPLv2+. Requested for libvirt, and required by pipe2. 2011-04-06 Paul Eggert verify: use _Static_assert if available * lib/verify.h (HAVE__STATIC_ASSERT): New macro. (verify_true, verify): Use it if available. This generates better diagnostics with GCC 4.6.0 and later. 2011-04-05 Bruno Haible Remove leftover generated .h files after config.status changed. * m4/alloca.m4 (gl_FUNC_ALLOCA): New automake conditional GL_GENERATE_ALLOCA_H. * modules/alloca-opt (Makefile.am): Remove alloca.h if GL_GENERATE_ALLOCA_H evaluates to false. * m4/argz.m4 (gl_FUNC_ARGZ): New automake conditional GL_GENERATE_ARGZ_H. * modules/argz (Makefile.am): Remove argz.h if GL_GENERATE_ARGZ_H evaluates to false. * m4/byteswap.m4 (gl_BYTESWAP): New automake conditional GL_GENERATE_BYTESWAP_H. * modules/byteswap (Makefile.am): Remove byteswap.h if GL_GENERATE_BYTESWAP_H evaluates to false. * m4/errno_h.m4 (gl_HEADER_ERRNO_H): New automake conditional GL_GENERATE_ERRNO_H. * modules/errno (Makefile.am): Remove errno.h if GL_GENERATE_ERRNO_H evaluates to false. * m4/float_h.m4 (gl_FLOAT_H): New automake conditional GL_GENERATE_FLOAT_H. * modules/float (Makefile.am): Remove float.h if GL_GENERATE_FLOAT_H evaluates to false. * m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): New automake conditional GL_GENERATE_FNMATCH_H. * modules/fnmatch (Makefile.am): Remove fnmatch.h if GL_GENERATE_FNMATCH_H evaluates to false. * m4/glob.m4 (gl_GLOB_SUBSTITUTE, gl_GLOB): New automake conditional GL_GENERATE_GLOB_H. * modules/glob (Makefile.am): Remove glob.h if GL_GENERATE_GLOB_H evaluates to false. * m4/iconv_h.m4 (gl_REPLACE_ICONV_H, gl_ICONV_H_DEFAULTS): New automake conditional GL_GENERATE_ICONV_H. * modules/iconv-h (Makefile.am): Remove iconv.h if GL_GENERATE_ICONV_H evaluates to false. * m4/netinet_in_h.m4 (gl_HEADER_NETINET_IN): New automake conditional GL_GENERATE_NETINET_IN_H. * modules/netinet_in (Makefile.am): Remove netinet/in.h if GL_GENERATE_NETINET_IN_H evaluates to false. * m4/pthread.m4 (gl_PTHREAD_CHECK): Set PTHREAD_H here. New automake conditional GL_GENERATE_PTHREAD_H. (gl_PTHREAD_DEFAULTS): Don't set PTHREAD_H here. * modules/pthread (Makefile.am): Remove pthread.h if GL_GENERATE_PTHREAD_H evaluates to false. * m4/sched_h.m4 (gl_SCHED_H): New automake conditional GL_GENERATE_SCHED_H. * modules/sched (Makefile.am): Remove sched.h if GL_GENERATE_SCHED_H evaluates to false. * m4/selinux-context-h.m4 (gl_HEADERS_SELINUX_CONTEXT_H): New automake conditional GL_GENERATE_SELINUX_CONTEXT_H. * modules/selinux-h (Makefile.am): Remove selinux/context.h if GL_GENERATE_SELINUX_CONTEXT_H evaluates to false. * m4/stdarg.m4 (gl_STDARG_H): New automake conditional GL_GENERATE_STDARG_H. * modules/stdarg (Makefile.am): Remove stdarg.h if GL_GENERATE_STDARG_H evaluates to false. * m4/stdbool.m4 (AM_STDBOOL_H): New automake conditional GL_GENERATE_STDBOOL_H. * modules/stdbool (Makefile.am): Remove stdbool.h if GL_GENERATE_STDBOOL_H evaluates to false. * m4/stddef_h.m4 (gl_STDDEF_H): Set STDDEF_H here. New automake conditional GL_GENERATE_STDDEF_H. (gl_STDDEF_H_DEFAULTS): Don't set STDDEF_H here. * modules/stddef (Makefile.am): Remove stddef.h if GL_GENERATE_STDDEF_H evaluates to false. * m4/stdint.m4 (gl_STDINT_H): New automake conditional GL_GENERATE_STDINT_H. * modules/stdint (Makefile.am): Remove stdint.h if GL_GENERATE_STDINT_H evaluates to false. * m4/sysexits.m4 (gl_SYSEXITS): New automake conditional GL_GENERATE_SYSEXITS_H. * modules/sysexits (Makefile.am): Remove sysexits.h if GL_GENERATE_SYSEXITS_H evaluates to false. Reported by Karl Berry and Ralf Wildenhues. 2011-04-05 Bruno Haible Ensure to rebuild generated .h files when config.status has changed. * modules/arpa_inet (Makefile.am): Add dependency from .h file to config.status. * modules/ctype (Makefile.am): Likewise. * modules/dirent (Makefile.am): Likewise. * modules/errno (Makefile.am): Likewise. * modules/fcntl-h (Makefile.am): Likewise. * modules/float (Makefile.am): Likewise. * modules/getopt-posix (Makefile.am): Likewise. * modules/glob (Makefile.am): Likewise. * modules/iconv-h (Makefile.am): Likewise. * modules/inttypes (Makefile.am): Likewise. * modules/langinfo (Makefile.am): Likewise. * modules/locale (Makefile.am): Likewise. * modules/math (Makefile.am): Likewise. * modules/netdb (Makefile.am): Likewise. * modules/netinet_in (Makefile.am): Likewise. * modules/poll-h (Makefile.am): Likewise. * modules/pthread (Makefile.am): Likewise. * modules/pty (Makefile.am): Likewise. * modules/sched (Makefile.am): Likewise. * modules/search (Makefile.am): Likewise. * modules/selinux-h (Makefile.am): Likewise. * modules/signal (Makefile.am): Likewise. * modules/spawn (Makefile.am): Likewise. * modules/stdarg (Makefile.am): Likewise. * modules/stdbool (Makefile.am): Likewise. * modules/stddef (Makefile.am): Likewise. * modules/stdint (Makefile.am): Likewise. * modules/stdio (Makefile.am): Likewise. * modules/stdlib (Makefile.am): Likewise. * modules/string (Makefile.am): Likewise. * modules/strings (Makefile.am): Likewise. * modules/sys_file (Makefile.am): Likewise. * modules/sys_ioctl (Makefile.am): Likewise. * modules/sys_select (Makefile.am): Likewise. * modules/sys_socket (Makefile.am): Likewise. * modules/sys_stat (Makefile.am): Likewise. * modules/sys_time (Makefile.am): Likewise. * modules/sys_times (Makefile.am): Likewise. * modules/sys_utsname (Makefile.am): Likewise. * modules/sys_wait (Makefile.am): Likewise. * modules/sysexits (Makefile.am): Likewise. * modules/termios (Makefile.am): Likewise. * modules/time (Makefile.am): Likewise. * modules/unistd (Makefile.am): Likewise. * modules/wchar (Makefile.am): Likewise. * modules/wctype-h (Makefile.am): Likewise. Reported by Karl Berry, Eric Blake, and Ralf Wildenhues. 2011-04-05 Bruno Haible pipe2: Relicense under LGPLv2+. * modules/pipe2 (License): Change to LGPLv2+. Requested by Eric Blake, for libvirt. 2011-04-05 Bruce Korb bootstrap: compute gnulib_extra_files after updating build_aux * build-aux/bootstrap (gnulib_extra_files): bootstrap.conf may change build_aux or also supply gnulib_extra_files. Handle correctly. 2011-04-05 Eric Blake bootstrap: preserve git whitelist item sorting * build-aux/bootstrap (sort_patterns): New function. (insert_sorted_if_absent): Use it to sink ! lines to the bottom. 2011-04-05 Simon Josefsson * top/maint.mk (sc_prohibit_empty_lines_at_EOF): Don't trigger sc_space_tab check. 2011-04-05 Paul Eggert areadlink, areadlinkat: rewrite in terms of careadlinkat * lib/areadlink.c, lib/areadlinkat.c: Include careadlinkat.h instead of errno.h, limits.h, stdint.h, stdlib.h, string.h, unistd.h. (SSIZE_MAX, INITIAL_BUF_SIZE): Remove. (malloc, realloc): Remove #undefs. (areadlink, areadlinkat): Rewrite in terms of careadlinkat. * modules/areadlink (Depends-on): Add careadlinkat. Remove readlink, ssize_t, stdint, unistd. * modules/areadlinkat (Depends-on): Add careadlinkat. Remove areadlink, stdint. careadlinkat: new module * lib/allocator.h, lib/careadlinkat.h, lib/careadlinkat.c: * modules/careadlinkat: New files, written by me with a review and feedback from Ben Pfaff in . 2011-04-01 Bruno Haible wmemchr, wcschr, wcsrchr, wcspbrk, wcsstr: Avoid errors in C++ mode. * lib/wchar.in.h (wmemchr, wcschr, wcsrchr, wcspbrk, wcsstr): Use _GL_CXXALIAS_SYS_CAST2 instead of _GL_CXXALIAS_SYS. On glibc >= 2.10 systems, use _GL_CXXALIASWARN1 instead of _GL_CXXALIASWARN. Reported by Bruce Korb . 2011-04-01 Bruno Haible wcpcpy, wcpncpy: Ensure declaration on glibc >= 2.13 systems. * m4/wcpcpy.m4 (gl_FUNC_WCPCPY): Require AC_USE_SYSTEM_EXTENSIONS. * m4/wcpncpy.m4 (gl_FUNC_WCPNCPY): Likewise. * modules/wcpcpy (Depends-on): Add extensions. * modules/wcpncpy (Depends-on): Likewise. * doc/posix-functions/wcpcpy.texi: Mention missing declaration on glibc systems. * doc/posix-functions/wcpncpy.texi: Likewise. * doc/posix-functions/wcwidth.texi: Likewise. 2011-03-31 Eric Blake nonblocking: fix mingw test failures * lib/nonblocking.c (set_nonblocking_flag): Succeed when clearing non-blocking flag on regular file. (get_nonblocking_flag): Set errno on invalid fd. * tests/test-nonblocking.c (main): Avoid test failure on directories if fchdir is not active. * modules/nonblocking-tests (Depends-on): Drop unused dependency. 2011-03-31 Bruno Haible Fix bug with gl_WARN_ON_USE_PREPARE, introduced on 2011-01-23. * m4/gnulib-common.m4 (gl_ASSERT_NO_GNULIB_POSIXCHECK): Hide the gl_WARN_ON_USE_PREPARE definition from 'aclocal'. Reported by Simon Josefsson . 2011-03-31 Bruno Haible and Eric Blake nonblocking: new module * modules/nonblocking: New module. * modules/nonblocking-tests: Likewise. * lib/nonblocking.h: New file. * lib/nonblocking.c: Likewise. * tests/test-nonblocking.c: New test. * lib/ioctl.c (ioctl) [mingw]: Update comment. 2011-03-30 Bruno Haible stdio: Avoid GCC >= 4.4 warnings when using %lld and similar on mingw. * lib/stdio.in.h (_GL_ATTRIBUTE_FORMAT_PRINTF): Use 'gnu_printf' format instead of 'printf' format for GCC >= 4.4. (_GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM): New macro. (fprintf, printf, vfprintf, vprintf): Declare with _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM when the function ends up calling the system's vfprintf() function. Reported by Daniel P. Berrange via Eric Blake. 2011-03-30 Eric Blake passfd: fix scoping bug * lib/passfd.c (sendfd, recvfd): Don't let buf go out of scope before sendmsg/recvmsg. passfd: standardize coding conventions * m4/afunix.m4 (gl_SOCKET_AFUNIX): Drop check for something that can be learned at compile time. * lib/passfd.c (MSG_CMSG_CLOEXEC): Reduce number of in-function ifdefs. (sendfd, recvfd): Follow gnulib code conventions. passfd: fix incorrect sendmsg arguments * lib/passfd.c (sendfd): Avoid uninitialized msg_flags field, and incorrect msg_controllen value. * modules/passfd-tests (Depends-on): Check for alarm. * tests/test-passfd.c (main) [HAVE_DECL_ALARM]: Avoid hanging test. Reported by Bastien ROUCARIES. 2011-03-30 Bruno Haible c-strcasestr: Relicense under LGPLv2+. * modules/c-strcasestr (License): Change to LGPLv2+. Requested by Eric Blake, for libvirt. 2011-03-30 Simon Josefsson * users.txt: Add libidn2. Fix libtasn1 link. 2011-03-30 Jim Meyering tests: readlink* ("",... fails with EINVAL on newer kernels readlink and readlinkat have typically failed with ENOENT for the invalid, empty file name, "". However, with the advent of linux-2.6.39, they fail with EINVAL. * tests/test-areadlink.h (test_areadlink): Also accept EINVAL when operating on the empty file name. * tests/test-readlink.h (test_readlink): Likewise. 2011-03-29 Bruno Haible Relicense some modules under LGPLv2+, for libidn2. * modules/array-mergesort (License): Change to LGPLv2+. * modules/c-strcaseeq (License): Likewise. * modules/striconveh (License): Likewise. * modules/striconveha (License): Likewise. * modules/uniconv/base (License): Likewise. * modules/uniconv/u8-conv-from-enc (License): Likewise. * modules/uniconv/u8-strconv-from-enc (License): Likewise. * modules/uniconv/u8-strconv-from-locale (License): Likewise. * modules/unictype/base (License): Likewise. * modules/unictype/bidiclass-of (License): Likewise. * modules/unictype/category-M (License): Likewise. * modules/unictype/category-none (License): Likewise. * modules/unictype/category-of (License): Likewise. * modules/unictype/category-test (License): Likewise. * modules/unictype/category-test-withtable (License): Likewise. * modules/unictype/combining-class (License): Likewise. * modules/unictype/joiningtype-of (License): Likewise. * modules/unictype/scripts (License): Likewise. * modules/uninorm/base (License): Likewise. * modules/uninorm/canonical-decomposition (License): Likewise. * modules/uninorm/composition (License): Likewise. * modules/uninorm/decompose-internal (License): Likewise. * modules/uninorm/decomposition-table (License): Likewise. * modules/uninorm/nfc (License): Likewise. * modules/uninorm/nfd (License): Likewise. * modules/uninorm/u32-normalize (License): Likewise. * modules/unistr/base (License): Likewise. * modules/unistr/u32-cpy (License): Likewise. * modules/unistr/u32-mbtouc-unsafe (License): Likewise. * modules/unistr/u32-to-u8 (License): Likewise. * modules/unistr/u32-uctomb (License): Likewise. * modules/unistr/u8-check (License): Likewise. * modules/unistr/u8-mblen (License): Likewise. * modules/unistr/u8-mbtouc (License): Likewise. * modules/unistr/u8-mbtouc-unsafe (License): Likewise. * modules/unistr/u8-mbtoucr (License): Likewise. * modules/unistr/u8-prev (License): Likewise. * modules/unistr/u8-strlen (License): Likewise. * modules/unistr/u8-to-u32 (License): Likewise. * modules/unistr/u8-uctomb (License): Likewise. * modules/unitypes (License): Likewise. Requested by Simon Josefsson. 2011-03-29 Simon Josefsson lib-symbol-visibility: Add a notice. * modules/lib-symbol-visibility (Notice): New field. 2011-03-29 Bruno Haible getaddrinfo: Doc fix. * doc/posix-functions/getaddrinfo.texi: Mention Windows problem in the section "fixed in Gnulib". 2011-03-28 Simon Josefsson * doc/posix-functions/getaddrinfo.texi: Drop netdb.h discussion. Reported by Bastien ROUCARIES . 2011-03-26 Bruno Haible unictype/property-byname: Reduce the number of load-time relocations. * lib/unictype/pr_byname.c: Include . (UC_PROPERTY_INDEX_*): New enumeration values. (uc_property_byname): Convert an index from the lookup table to an uc_property_t. * lib/unictype/pr_byname.gperf: Store indices instead of uc_property_t values. 2011-03-26 Bruno Haible unictype/property-byname: Allow omitted word separators and aliases. * lib/unictype/pr_byname.gperf: Add property names without word separators. Add aliases from Unicode 6.0 PropertyAliases.txt, except for 'space'. 2011-03-26 Bruno Haible unictype/joininggroup-byname: Allow hyphens, omitted word separators. * lib/unictype/joininggroup_byname.c (uc_joining_group_byname): Convert also hyphens to space. * lib/unictype/joininggroup_byname.gperf: Recognize the names also without spaces. * tests/unictype/test-joininggroup_byname.c (main): Add more tests. 2011-03-26 Bruno Haible unictype/joiningtype-byname: Recognize long names as well. * lib/unictype.in.h (uc_joiningtype_class_byname): Allow argument to be a long name. * lib/unictype/joiningtype_byname.c: Include , unictype/joiningtype_byname.h. (uc_joiningtype_class_byname): Use uc_joining_type_lookup. * lib/unictype/joiningtype_byname.gperf: New file. * modules/unictype/joiningtype-byname (Files): Add lib/unictype/joiningtype_byname.gperf. (Depends-on): Add gperf. (Makefile.am): Add rule for generating unictype/joiningtype_byname.h. * tests/unictype/test-joiningtype_byname.c (main): Test the recognition of long names. Tests for module 'unictype/joiningtype-longname'. * modules/unictype/joiningtype-longname-tests: New file. * tests/unictype/test-joiningtype_longname.c: New file. New module 'unictype/joiningtype-longname'. * lib/unictype.in.h (uc_joiningtype_class_long_name): New declaration. * lib/unictype/joiningtype_longname.c: New file. * modules/unictype/joiningtype-longname: New file. * modules/unictype/joiningtype-all (Depends-on): Add unictype/joiningtype-longname. 2011-03-26 Bruno Haible unictype/bidiclass-byname: Recognize long names as well. * lib/unictype.in.h (uc_bidi_class_byname): Allow argument to be a long name. * lib/unictype/bidi_byname.c: Include , unictype/bidi_byname.h. (uc_bidi_class_byname): Use uc_bidi_class_lookup. * lib/unictype/bidi_byname.gperf: New file. * modules/unictype/bidiclass-byname (Files): Add lib/unictype/bidi_byname.gperf. (Depends-on): Add gperf. (Makefile.am): Add rule for generating unictype/bidi_byname.h. * tests/unictype/test-bidi_byname.c (main): Test the recognition of long names. Tests for module 'unictype/bidiclass-longname'. * modules/unictype/bidiclass-longname-tests: New file. * tests/unictype/test-bidi_longname.c: New file. New module 'unictype/bidiclass-longname'. * lib/unictype.in.h (uc_bidi_class_long_name): New declaration. * lib/unictype/bidi_longname.c: New file. * modules/unictype/bidiclass-longname: New file. * modules/unictype/bidiclass-all (Depends-on): Add unictype/bidiclass-longname. 2011-03-26 Bruno Haible unictype/bidi*: Rename modules. * modules/unictype/bidiclass-all: Renamed from modules/unictype/bidicategory-all. * modules/unictype/bidiclass-name: Renamed from modules/unictype/bidiclass-name. (Description): Update. * modules/unictype/bidiclass-name-tests: Renamed from modules/unictype/bidicategory-name-tests. * modules/unictype/bidiclass-byname: Renamed from modules/unictype/bidicategory-byname. (Description): Update. * modules/unictype/bidiclass-byname-tests: Renamed from modules/unictype/bidicategory-byname-tests. * modules/unictype/bidiclass-of: Renamed from modules/unictype/bidicategory-of. (Description): Update. * modules/unictype/bidiclass-of-tests: Renamed from modules/unictype/bidicategory-of-tests. * modules/unictype/bidiclass-test: Renamed from modules/unictype/bidicategory-test. (Description): Update. * modules/unictype/bidiclass-test-tests: Renamed from modules/unictype/bidicategory-test-tests. * modules/unictype/bidicategory-all: New file, a simple redirection. * modules/unictype/bidicategory-name: Likewise. * modules/unictype/bidicategory-byname: Likewise. * modules/unictype/bidicategory-of: Likewise. * modules/unictype/bidicategory-test: Likewise. * modules/unictype/property-bidi-* (Dependencies): Update. * lib/unictype/bidi_*.c: Update comment. 2011-03-26 Bruno Haible unictype/bidi*: Rename functions, part 2. * modules/unictype/bidicategory-name (configure.ac): Update required libunistring version. * modules/unictype/bidicategory-byname (configure.ac): Likewise. 2011-03-25 Bruno Haible New module 'unictype/combining-class-all'. * modules/unictype/combining-class-all: New file. Tests for module 'unictype/combining-class-byname'. * modules/unictype/combining-class-byname-tests: New file. * tests/unictype/test-combiningclass_byname.c: New file. New module 'unictype/combining-class-byname'. * lib/unictype.in.h (uc_combining_class_byname): New declaration. * lib/unictype/combiningclass_byname.c: New file. * lib/unictype/combiningclass_byname.gperf: New file. * modules/unictype/combining-class-byname: New file. Tests for module 'unictype/combining-class-longname'. * modules/unictype/combining-class-longname-tests: New file. * tests/unictype/test-combiningclass_longname.c: New file. New module 'unictype/combining-class-longname'. * lib/unictype.in.h (uc_combining_class_long_name): New declaration. * lib/unictype/combiningclass_longname.c: New file. * modules/unictype/combining-class-longname: New file. Tests for module 'unictype/combining-class-name'. * modules/unictype/combining-class-name-tests: New file. * tests/unictype/test-combiningclass_name.c: New file. New module 'unictype/combining-class-name'. * lib/unictype.in.h (uc_combining_class_name): New declaration. * lib/unictype/combiningclass_name.c: New file. * modules/unictype/combining-class-name: New file. 2011-03-25 Bruno Haible unictype/combining-class: Rename source files. * lib/gen-uni-tables.c (main): Emit unictype/combiningclass.h instead of unictype/combining.h. * lib/unictype/combiningclass.c: Renamed from lib/unictype/combining.c. Update. * lib/unictype/combiningclass.h: Renamed from lib/unictype/combining.h. * modules/unictype/combining-class (Description): Fix. (Files, Makefile.am): Update. * tests/unictype/test-combiningclass.c: Renamed from tests/unictype/test-combining.c. * modules/unictype/combining-class-tests (Files, Makefile.am): Update. 2011-03-25 Bruno Haible unictype: Update list of canonical combining classes. * lib/unictype.in.h (UC_CCC_ATA): New enumeration value. 2011-03-25 Bruno Haible unictype/category-byname: Recognize long names as well. * lib/unictype.in.h (uc_general_category_byname): Allow argument to be a long name. * lib/unictype/categ_byname.c: Include , , unictype/categ_byname.h. (UC_CATEGORY_INDEX_*): New enumeration values. (uc_general_category_byname): Use uc_general_category_lookup and convert from index to value. * lib/unictype/categ_byname.gperf: New file. * modules/unictype/category-byname (Files): Add lib/unictype/categ_byname.gperf. (Depends-on): Add gperf. (Makefile.am): Add rule for generating unictype/categ_byname.h. * tests/unictype/test-categ_byname.c (main): Test the recognition of long names. Tests for module 'unictype/category-longname'. * modules/unictype/category-longname-tests: New file. * tests/unictype/test-categ_longname.c: New file. New module 'unictype/category-longname'. * lib/unictype.in.h (uc_general_category_long_name): New declaration. * lib/unictype/categ_longname.c: New file. * modules/unictype/category-longname: New file. * modules/unictype/category-all (Depends-on): Add it. 2011-03-25 Bruno Haible Tests for module 'unictype/category-LC'. * modules/unictype/category-LC-tests: New file. * tests/unictype/test-categ_LC.c: New file, automatically generated. New module 'unictype/category-LC'. * lib/unictype.in.h (UC_CATEGORY_MASK_LC): New enumeration value. (UC_CATEGORY_LC): New declaration. (UC_CASED_LETTER): New macro. * lib/gen-uni-tables.c (is_category_LC): New function. (output_categories): Also handle category LC. (UC_CATEGORY_MASK_LC): New enumeration value. (general_category_byname): Also handle category LC. * lib/unictype/categ_LC.c: New file. * lib/unictype/categ_LC.h: New file, automatically generated. * lib/unictype/categ_name.c (uc_general_category_name): Also handle category LC. * lib/unictype/categ_byname.c (uc_general_category_byname): Likewise. * modules/unictype/category-LC: New file. * modules/unictype/category-byname (Depends-on): Add unictype/category-LC. * modules/unictype/category-all (Depends-on): Likewise. 2011-03-25 Eric Blake xmalloc: revert yesterday's regression * lib/xmalloc.c (xrealloc): Once again forward xrealloc(NULL,0) to realloc's underlying behavior (allowing allocation of zero-size objects, especially if malloc-gnu is also in use). 2011-03-25 Reuben Thomas maint.mk: add missing version to VC-tag * top/maint.mk: git tag was missing actual tag name; add it. valgrind: do leak checking, and exit with code 1 on error (not 0) * m4/valgrind-tests.m4: Add `--error-exitcode=1 --leak-check=full' to VALGRIND. 2010-11-30 Reuben Thomas posix-modules: say what it does. * posix-modules: Add a line to the --help output saying what it does. 2011-03-24 Paul Eggert xmalloc: Do not leak if underlying realloc is C99 compatible. * lib/xmalloc.c (xrealloc): If N is zero, call 'free' directly. This avoids a leak on C99-based systems. See . 2011-03-24 Eric Blake realloc: document portability problem * doc/posix-functions/realloc.texi (realloc): Mention pitfalls of passing 0 size to realloc. 2011-03-23 Ben Walton doc: update users.txt * users.txt: Add cvsps, tmpwatch 2011-03-23 Matt Rice doc: update users.txt * users.txt: Add gdb. 2011-03-23 Jim Meyering doc: update users.txt Looking through matches up to the following URL (there are still several more pages), I found several projects that use gnulib: http://codesearch.google.com/codesearch?start=50&q=gnulib-cache\.m4 * users.txt: Add nagios plugins (nagiosplug), acct, gengetopt, gmediaserver, gtkreindeer, jugtail, libunistring, mini-httpd, reindeer. 2011-03-22 Bruno Haible unictype/bidi*: Rename functions. * lib/unictype.in.h (uc_bidi_class_name, uc_bidi_class_byname, uc_bidi_class, uc_is_bidi_class): New declarations. * lib/unictype/bidi_byname.c (uc_bidi_class_byname): Renamed from uc_bidi_category_byname. (uc_bidi_category_byname): New function. * lib/unictype/bidi_name.c (u_bidi_class_name): Renamed from u_bidi_category_name. (uc_bidi_class_name): Renamed from uc_bidi_category_name. (uc_bidi_category_name): New function. * lib/unictype/bidi_of.c (uc_bidi_class): Renamed from uc_bidi_category. (uc_bidi_category): New function. * lib/unictype/bidi_test.c (uc_is_bidi_class): Renamed from uc_is_bidi_category. Invoke uc_bidi_class. (uc_is_bidi_category): New function. * tests/unictype/test-bidi_byname.c (main): Test uc_bidi_class_byname instead of uc_bidi_category_byname. * tests/unictype/test-bidi_name.c (main): Test uc_bidi_class_name instead of uc_bidi_category_name. * tests/unictype/test-bidi_of.c (main): Test uc_bidi_class instead of uc_bidi_category. * tests/unictype/test-bidi_test.c (main): Test uc_is_bidi_class instead of uc_is_bidi_category. 2011-03-21 Bruno Haible New module 'unictype/joininggroup-all'. * modules/unictype/joininggroup-all: New file. Tests for module 'unictype/joininggroup-of'. * modules/unictype/joininggroup-of-tests: New file. * tests/unictype/test-joininggroup_of.c: New file. * tests/unictype/test-joininggroup_of.h: New file, automatically generated by gen-uni-tables. New module 'unictype/joininggroup-of'. * modules/unictype/joininggroup-of: New file. * lib/unictype/joininggroup_of.c: New file. * lib/unictype/joininggroup_of.h: New file, automatically generated by gen-uni-tables. Tests for module 'unictype/joininggroup-byname'. * modules/unictype/joininggroup-byname-tests: New file. * tests/unictype/test-joininggroup_byname.c: New file. New module 'unictype/joininggroup-byname'. * modules/unictype/joininggroup-byname: New file. * lib/unictype/joininggroup_byname.c: New file. * lib/unictype/joininggroup_byname.gperf: New file. Tests for module 'unictype/joininggroup-name'. * modules/unictype/joininggroup-name-tests: New file. * tests/unictype/test-joininggroup_name.c: New file. New module 'unictype/joininggroup-name'. * modules/unictype/joininggroup-name: New file. * lib/unictype/joininggroup_name.c: New file. * lib/unictype/joininggroup_name.h: New file. New module 'unictype/joiningtype-all'. * modules/unictype/joiningtype-all: New file. Tests for module 'unictype/joiningtype-of'. * modules/unictype/joiningtype-of-tests: New file. * tests/unictype/test-joiningtype_of.c: New file. * tests/unictype/test-joiningtype_of.h: New file, automatically generated by gen-uni-tables. New module 'unictype/joiningtype-of'. * modules/unictype/joiningtype-of: New file. * lib/unictype/joiningtype_of.c: New file. * lib/unictype/joiningtype_of.h: New file, automatically generated by gen-uni-tables. Tests for module 'unictype/joiningtype-byname'. * modules/unictype/joiningtype-byname-tests: New file. * tests/unictype/test-joiningtype_byname.c: New file. New module 'unictype/joiningtype-byname'. * modules/unictype/joiningtype-byname: New file. * lib/unictype/joiningtype_byname.c: New file. Tests for module 'unictype/joiningtype-name'. * modules/unictype/joiningtype-name-tests: New file. * tests/unictype/test-joiningtype_name.c: New file. New module 'unictype/joiningtype-name'. * modules/unictype/joiningtype-name: New file. * lib/unictype/joiningtype_name.c: New file. unictype: Add support for Arabic shaping properties. * lib/unictype.in.h (UC_JOINING_TYPE_*): New enumeration values. (uc_joining_type_name, uc_joining_type_byname, uc_joining_type): New declarations. (UC_JOINING_GROUP_*): New enumeration values. (uc_joining_group_name, uc_joining_group_byname, uc_joining_group): New declarations. * lib/gen-uni-tables.c (UC_JOINING_TYPE_*): New enumeration values. (unicode_joining_type): New variable. (UC_JOINING_GROUP_*): New enumeration values. (unicode_joining_group): New variable. (fill_arabicshaping, joining_type_as_c_identifier, output_joining_type_test, output_joining_type, joining_group_as_c_identifier, output_joining_group_test, output_joining_group): New functions. (main); Add an argument denoting the ArabicShaping.txt file. Invoke fill_arabicshaping and output_joining_type_test, output_joining_type, output_joining_group_test, output_joining_group. Reported by Simon Josefsson. 2011-03-21 Jim Meyering strftime: fix a bug in yesterday's change * lib/strftime.c (add): Accommodate width's initial value of -1. Otherwise, nstrftime would copy uninitialized data into the result buffer. 2011-03-21 Jim Meyering tests: add strftime-tests module * tests/test-strftime.c: New file. * modules/strftime-tests: New module. 2011-03-20 Paul Eggert strftime: don't assume a byte count fits in 'int' * lib/strftime.c (add): Don't assume first arg fits in 'int'. I found this problem by static analysis, using gcc -Wstrict-overflow (GCC 4.5.2, x86-64). This reported an optimization that depended on an integer overflow having undefined behavior, but it turns out that the argument is a size, which might not fit in 'int' anyway, 2011-03-20 Paul Eggert stdio: don't require ignore_value around fwrite This patch works around libc bug 11959 . Without this patch, applications must often write ignore_value (fwrite (...)) even though the ignore_value is not helpful here. It's common to write many objects, using fwrite/printf/etc., and then use ferror to detect output error. I considered making this patch optional, but decided against it, because libc is obviously being inconsistent here: there is no reason libc should insist that user code must inspect fwrite return's value without also insisting that it inspect printf's, putchar's, etc. If user code wants to have a strict style where all these functions' values are checked (so that ferror need not be checked), we could add support for that style in a new gnulib module, but in the meantime it's better to be consistent and to support common usage. * lib/stdio.in.h (rpl_fwrite): Define this wrapper around fwrite, to work around libc bug 11959, if __USE_FORTIFY_LEVEL indicates that we are compiling in checking mode, and if not C++, and if not already wrapping fwrite for some other reason. (fwrite): #define to rpl_fwrite if the latter is defined. 2011-03-20 Bruno Haible verror: Fix compilation error introduced on 2011-02-13. * lib/verror.h (verror, verror_at_line): Use _GL_ATTRIBUTE_FORMAT macro instead of __attribute__. Reported by Tom G. Christensen . 2011-03-20 Paul Eggert Bruno Haible socklen: do not depend on sys_socket While trying to modify Emacs to use gnulib's socklen module, I discovered a circular dependency: socklen depends on sys_socket and vice versa. Emacs can use socklen, but it does not need sys_socket because it has its own substitute for sys/socket.h. * m4/socklen.m4 (gl_SOCKET_HEADERS): New macro, extracted from gl_TYPE_SOCKLEN_T. (gl_CHECK_SOCKET_HEADERS): New macro, taken from parts of gl_PREREQ_SYS_H_SOCKET. (gl_TYPE_SOCKLEN_T): Require it instead of requiring gl_PREREQ_SYS_H_SOCKET. * m4/sys_socket_h.m4 (gl_PREREQ_SYS_H_SOCKET): Require gl_CHECK_SOCKET_HEADERS instead of doing its work ourselves. * modules/socklen (Depends-on): Do not depend on sys_socket. (Include): Adjust to match the code used in gl_SOCKET_HEADERS. 2011-03-20 Jim Meyering maint.mk: sort file names *after* new transformation * top/maint.mk (sc_po_check): Sorting before removing the $(srcdir)/ prefix would have led to an unwarranted failure in GNU parted. Sort after that transformation. 2011-03-19 Jim Meyering maint.mk: fix po-file syntax-check rule * top/maint.mk (sc_po_check): Fix fatal typo in yesterday's change. Patch by Bruno Haible. 2011-03-19 Bruno Haible socklen: Update comment. * m4/socklen.m4: Update comment about platforms. 2011-03-19 Paul Eggert Bruno Haible inet_ntop, inet_pton: Simplify. * modules/inet_ntop (Depends-on): Remove socklen, since sys_socket is documented to provide socklen_t and we already depend on sys_socket. * modules/inet_pton (Depends-on): Likewise. * lib/arpa_inet.in.h: Adjust comment. 2011-03-19 Paul Eggert Bruno Haible netdb: Simplify. * modules/netdb (Depends-on): Remove socklen, since sys_socket is documented to provide socklen_t and we already depend on sys_socket. * lib/netdb.in.h: Adjust comment. 2011-03-19 Bruno Haible sys_socket, netdb: Document problem with socklen_t. * doc/posix-headers/sys_socket.texi: Mention lack of socklen_t on some platforms. * doc/posix-headers/netdb.texi: Likewise. 2011-03-18 Eric Blake maint.mk: let po check work in VPATH build * top/maint.mk (po_file): Allow cfg.mk override. (sc_po_check): Allow VPATH use. Reported by Jiri Denemark. 2011-03-16 Jim Meyering maint.mk: allow fine-grained syntax-check exclusion via Make variables Before, you would have had to create one .x-sc_ file per rule in order to exempt offending files. Now, you may instead use a Make variable -- usually defined in cfg.mk -- whose name identifies the affected rule. * top/maint.mk (_sc_excl): Define. (VC_LIST_EXCEPT): Use it to exclude names on a per-rule basis. (_sc_search_regexp): When not using VC_LIST_EXCEPT, exclude here, too. 2011-03-13 Bruno Haible ignore-value tests: Avoid warnings. * tests/test-ignore-value.c (_GL_ATTRIBUTE_RETURN_CHECK): Define to empty for gcc < 3.4. 2011-03-13 Bruno Haible passfd: Fix link error on Solaris. * modules/passfd (Description): Correct. (Depends-on): Add socketlib. (Link): New section. * modules/passfd-tests (Makefile.am): Link test-passfd with LIBSOCKET. 2011-03-13 Bruno Haible passfd: Fix link error on AIX 5.2. * m4/afunix.m4 (gl_SOCKET_AFUNIX): Define _LINUX_SOURCE_COMPAT. 2011-03-13 Bruno Haible passfd: Work around bug with CMSG_FIRSTHDR on FreeBSD 6.4. * lib/sys_socket.in.h: Include . * m4/afunix.m4 (gl_SOCKET_AFUNIX): Include before using CMSG_FIRSTHDR. Remove unused variable. 2011-03-13 Bruno Haible passfd: Fix compilation error on OpenBSD. * lib/passfd.c: Include . 2011-03-13 Bruno Haible passfd test: Fix warnings. * tests/test-passfd.c: Include . (main): Fix typo. 2011-03-13 Bruno Haible passfd module, part 4, tweaks. * tests/test-passfd.c: Reorder includes. (main): Fix perror and printf calls. 2011-03-07 Bastien Roucariès passfd module, part 4. * modules/passfd-tests: New file. * tests/test-passfd.c: New file. 2011-03-13 Jim Meyering Makefile: rely on GNU make; derive syntax-check rule names Rather than requiring that each sc_ rule be listed as a dependent of "check", use features of GNU make to derive the list. * Makefile (syntax-check-rules): Define. (check): Depend on the new variable, not the hard-coded list. 2011-03-13 Bastien Roucariès Bruno Haible passfd module, part 3. * lib/passfd.h (recvfd): Add a flags argument. * lib/passfd.c: Include , cloexec.h. (recvfd): Add a flags argument. * m4/afunix.m4 (gl_SOCKET_AFUNIX): Test whether MSG_CMSG_CLOEXEC exists. * modules/passfd (Depends-on): Add cloexec. Suggested by Eric Blake. 2011-03-13 Bruno Haible passfd module, part 2, tweaks. * modules/passfd (Files): Reorder. (Depends-on): Remove errno. (Include): Remove , . * lib/passfd.h: Use a GPLv3+ header. Make C++ safe. * lib/passfd.c: Untabify. Use a GPLv3+ header. Really include the specification header. Include always. Don't include . Use "#if HAVE_..." instead of "#ifdef HAVE_...". (sendfd): Clarify that it sets errno when it fails. (recvfd): Fix specification. 2011-03-07 Bastien Roucariès passfd module, part 2. * modules/passfd: New file. * lib/passfd.h: New file. * lib/passfd.c: New file. 2011-03-12 Bruno Haible wcswidth, mbswidth: Avoid integer overflow. * lib/wcswidth.c: Include . * lib/wcswidth-impl.h (wcswidth): Avoid 'int' overflow. * lib/mbswidth.c: Include . (mbsnwidth): Avoid 'int' overflow. Reported by Jim Meyering. 2011-03-12 Bruno Haible futimens, utimensat: Avoid endless recursion on Solaris 10. * lib/sys_stat.in.h (futimens, utimensat): Define with rpl_ prefix on Solaris. Reported by Ben Walton via Eric Blake in . 2011-03-11 Jim Meyering maint.mk: relax a regexp to accommodate other formatting styles * top/maint.mk (sc_unmarked_diagnostics): Allow 0 or 1 space between "ngettext" and the following "(". 2011-03-11 Pádraig Brady maint.mk: suppress a false positive warning * top/maint.mk ((sc_unmarked_diagnostics): Don't warn when diagnostics are marked with ngettext. 2011-03-10 Eric Blake wchar: add explicit dependencies, for Tru64 * modules/mbmemcasecoll (Depends-on): Add wchar. * modules/mbtowc (Depends-on): Likewise. * modules/vasnprintf (Depends-on): Likewise. * modules/unistdio/u-printf-args (Depends-on): Likewise. * modules/wctomb (Depends-on): Likewise. Reported by Peter O'Gorman. 2011-03-08 Bruno Haible passfd module, part 1, tweaks. * m4/afunix.m4 (gl_SOCKET_AFUNIX): Update AC_REQUIRE invocation. Improve indentation. Improve AC_MSG_CHECKING messages. * m4/sockpfaf.m4 (gl_SOCKET_FAMILY_UNIX): New macro, extracted from gl_SOCKET_FAMILIES. 2011-03-07 Bastien Roucariès passfd module, part 1. * m4/afunix.m4: New file. * m4/sockpfaf.m4 (gl_SOCKET_FAMILIES): Also test for UNIX domain sockets. 2011-03-08 Bruno Haible regex-quote: New API. * lib/regex-quote.h: Include . (struct regex_quote_spec): New type. (regex_quote_spec_posix, regex_quote_spec_gnu, regex_quote_spec_pcre): New declarations. (regex_quote_length, regex_quote_copy, regex_quote): Take a 'const struct regex_quote_spec *' argument. * lib/regex-quote.c (RE_*, PCRE_*): New macros. (pcre_special): New constant. (regex_quote_spec_posix, regex_quote_spec_gnu, regex_quote_spec_pcre): New functions. (regex_quote_length, regex_quote_copy, regex_quote): Take a 'const struct regex_quote_spec *' argument. * modules/regex-quote (Depends-on): Add stdbool. * tests/test-regex-quote.c (check): Update for new API. Add test for anchored results. * NEWS: Mention the API change. Reported by Reuben Thomas and Eric Blake. 2011-03-06 Bruno Haible regex-quote: Fix creation of POSIX extended regular expressions. * lib/regex-quote.c (ere_special): Add grouping and alternation operators. 2011-03-05 Bruno Haible doc: Improve doc regarding autopoint vs. gnulib. * doc/gnulib-tool.texi (gettextize and autopoint): Recommend to disable autopoint while running autoreconf. Suggested by Ralf Wildenhues. 2011-03-05 Ralf Wildenhues Update AC_OPENMP macro for Lahey compiler on GNU/Linux. * m4/openmp.m4 (AC_OPENMP): Sync from Autoconf. 2011-03-03 Bruce Korb parse-duration: remove xalloc.h dependency * lib/parse-duration.c (parse_period): handle NULL return from strdup instead of calling xstrdup(). * modules/parse-duration: remove "xalloc" dependency 2011-03-03 Matthew Booth bootstrap: honor m4_base when running aclocal * build-aux/bootstrap: Fix hard-coded use of m4 directory name. 2011-03-02 Jim Meyering getopt-gnu: relax license from LGPLv3+ to LGPLv2+ * modules/getopt-gnu (License): Relax to LGPLv2+, for augeas, on request from Matt Booth. 2011-03-01 Eric Blake test-link: work on Hurd * tests/test-link.h (test_link): Hurd rejects linking directories with EISDIR instead of the POSIX-mandated EPERM. 2011-02-28 Paul Eggert stdio: simplify by moving files to printf-posix, sigpipe * m4/stdio_h.m4 (gl_STDIO_H): Do not require gl_ASM_SYMBOL_PREFIX, since this symbol is needed only if printf is replaced. * m4/printf-posix-rpl.m4 (gl_REPLACE_PRINTF): Require gl_ASM_SYMBOL_PREFIX. * modules/printf-posix (Files): Add m4/asm-underscore.m4. * modules/sigpipe (Files): Likewise. Also, add m4/stdio-write.c. (Depends-on): Add 'raise'. (configure.ac): Require gl_ASM_SYMBOL_PREFIX. * modules/stdio (Files): Remove lib/stdio-write.c, m4/asm-underscore.m4. (Depends-on): Remove 'raise'. stdio: simplify by moving gl_STDIN_LARGE_OFFSET to fseeko, ftello * m4/fseeko.m4 (gl_STDIN_LARGE_OFFSET): Moved here, from ... * m4/stdio_h.m4 (gl_STDIN_LARGE_OFFSET): ... here, because * modules/ftello (Files): Add m4/fseeko.m4, for gl_STDIN_LARGE_OFFSET. 2011-02-28 Bruno Haible localcharset: Assume ANSI C behaviour of free(). * lib/localcharset.c (get_charset_aliases): Remove NULL test before calling free(). Suggested by Simon Josefsson . 2011-02-28 Corinna Vinschen (tiny change) Charles Wilson (tiny change) Bruno Haible (tiny change) On Cygwin, use /proc file system instead of win32 API. * lib/relocatable.c: On Cygwin, use file names from /proc, rather than Win32 file names. (DllMain): Simplify by removing Cygwin specific code. (find_shared_library_fullname): Use Linux specific implementation also for Cygwin. (get_shared_library_fullname): Update accordingly. * lib/progreloc.c: On Cygwin, use file names from /proc, rather than Win32 file names. (find_executable): On Cygwin, use /proc, like on Linux. Remove previous Cygwin specific code. 2011-02-28 Christian Rössel (tiny change) Markus Geimer (tiny change) Fix OpenMP flag detection for various Fortran compilers. * m4/openmp.m4 (_AC_LANG_OPENMP(Fortran 77)): Use '!$' OpenMP-conditional compilation construct, to force compile failure with missing OpenMP flag. (AC_OPENMP): Add flags for Cray CCE and NEC SX compilers. 2011-02-25 Eric Blake strstr: expand test coverage * tests/test-strstr.c (main): Add much shorter trigger. Fix C89 compilation. * tests/test-memmem.c (main): Duplicate tests. * tests/test-strcasestr.c (main): Likewise. * tests/test-c-strcasestr.c (main): Likewise. 2011-02-25 Jim Meyering maint.mk: detect missing-NL-at-EOF, too * top/maint.mk (sc_prohibit_empty_lines_at_EOF): Adjust so that it also detects when a file lacks a newline at EOF. (require_exactly_one_NL_at_EOF_): Renamed from detect_empty_lines_at_EOF_. I opted not to rename the rule, since people may well have .x-sc_... file names tied to the existing name. Suggested by Eric Blake. 2011-02-25 Paul Eggert dirname: move m4/dos.m4 functionality into lib/dosname.h m4/dos.m4 needs to go. It laboriously invokes the C compiler, and extracts symbols from it, puts them into config.h; but it's much easier to use the symbols directly. filename.h already does this, but it disagrees with dos.m4 in some respects. This patch introduces a different include file dosname.h that packages up dos.m4, and then later we can work on merging filename.h and dosname.h. Applications that need only the easy-to-configure symbols should consider including dosname.h rather than dirname.h. * NEWS: Mention incompatible changes. * m4/dos.m4: Remove. * lib/dosname.h, modules/dosname: New files. * lib/dirname.h (ISSLASH, FILE_SYSTEM_PREFIX_LEN): (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE): (IS_ABSOLUTE_FILE_NAME, IS_RELATIVE_FILE_NAME): Move to lib/dosname.h. * lib/at-func.c, lib/at-func2.c, lib/openat.c, lib/savewd.c: Include dosname.h, not dirname.h. * lib/rmdir.c, lib/stat.c, lib/unlink.c, lib/unlinkat.c: Include dosname.h, for definitions of symbols like ISSLASH that used to be in config.h. * m4/dirname.m4 (gl_DIRNAME_LGPL): Do not require gl_AC_DOS. * m4/rmdir.m4 (gl_FUNC_RMDIR): Likewise. * m4/stat.m4 (gl_FUNC_STAT): Likewise. * m4/unlink.m4 (gl_FUNC_UNLINK): Likewise. * modules/dirname-lgpl (Files): Omit m4/dos.m4. * modules/rmdir (Files): Likewise. * modules/stat (Files): Likewise. * modules/unlink (Files): Likewise. * modules/dirname-lgpl (Depends-on): Add dosname. * modules/lstat (Depends-on): Likewise. * modules/openat (Depends-on): Likewise. * modules/rmdir (Depends-on): Likewise. * modules/savewd (Depends-on): Likewise. * modules/stat (Depends-on): Likewise. * modules/unlink (Depends-on): Likewise. * modules/openat (Depends-on): Remove dirname-lgpl. * modules/savewd (Depends-on): Likewise. * tests/test-dirname.c: Do not use removed symbols like FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR. Instead, use the remaining symbols, e.g., ISSLASH ('\\'). 2011-02-25 Eric Blake strstr: revert patches that introduced bug and pessimization * lib/str-two-way.h: Add another reference. (two_way_short_needle, two_way_long_needle): Revert changes from 2011-02-24; they pessimize search speed. (critical_factorization): Partially revert changes from 2010-06-22; they violate the requirement that the left half of the needle be smaller than the period of the needle. 2011-02-24 Paul Eggert filenamecat: remove unnecessary dependency on dirname-lgpl * modules/filenamecat (Depends-on): Remove dirname-lgpl, as there is no direct dependency, just an indirect one via filenamecat-lgpl. remove: remove unnecessary use of m4/dos.m4 * m4/remove.m4 (gl_FUNC_REMOVE): Don't require gl_AC_DOS; not needed. * modules/remove (FILES): Remove m4/dos.m4. * lib/openat-proc.c: Don't include dirname.h; not needed. backupfile: remove unnecessary use of m4/dos.m4 * m4/backupfile.m4 (gl_BACKUPFILE): Don't require gl_AC_DOS; none of its symbols are used by the backupfile code. backupfile.c does use a symbol HAVE_DOS_FILE_NAMES, but that symbol is meant only for the rare case of programs that want all their backup file names to live within 8+3 limits, and dos.m4 doesn't address that. * modules/backupfile (Files): Remove m4/dos.m4. 2011-02-24 Jim Meyering strstr: fix a bug whereby strstr would mistakenly return NULL * lib/str-two-way.h (two_way_short_needle): Correct off-by-one error in period calculation. (two_way_long_needle): Likewise. The original problem was reported by Mike Stump in http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/7834 Ralf Wildenhues provided the short needle and haystack. * tests/test-strstr.c: Add Ralf's test case to trigger the bug. Add a more involved test to trigger the bug in two_way_long_needle. 2011-02-24 Stefano Lattarini (tiny change) gnulib-tool: remove use of bold display in help screen * gnulib-tool (func_usage): Do not use bold display anymore in the help screen. That was just meant to be a temporary emphasis for a backward-incompatible change. 2011-02-23 Bruno Haible Fix misindentation of preprocessor directives. * lib/argp-namefrob.h: Reindent preprocessor directives. * lib/getopt_int.h (struct _getopt_data): Likewise. * lib/progreloc.c (maybe_executable, find_executable): Likewise. * lib/vasnprintf.c (decode_long_double): Likewise. * tests/test-argmatch.c: Insert blank lines, for clarity. * tests/test-exclude.c: Likewise. 2011-02-22 Bruno Haible ioctl: Fix for MacOS X in 64-bit mode. * lib/ioctl.c (rpl_ioctl): Zero-extend, not sign-extend, the request value. Suggested by Eric Blake. Reported by Markus Gothe . 2011-02-22 Jim Meyering maint: sc_cpp_indent_check: remove the "only in lib/" restriction * Makefile (sc_cpp_indent_check): Don't limit the check to files in lib/. 2011-02-22 Eric Blake maint: avoid any CDPATH issue * Makefile (sc_cpp_indent_check): Anchor cd argument. maint: adjust cpp indentation for my modules, as well * Makefile (sc_cpp_indent_check): Add my name. * lib/fbufmode.c: Filter through cppi. * lib/fpurge.c: Likewise. * lib/freadable.c: Likewise. * lib/freading.c: Likewise. * lib/fwritable.c: Likewise. * lib/fwriting.c: Likewise. * lib/sigaction.c: Likewise. 2011-02-22 Jim Meyering maint: adjust cpp indentation to reflect nesting depth I.e., in a block of code that begins with an unnested "#if", put one space between the "#" in column 1 and following token. For example, -#include +# include Do this only in .c files that are part of a module I maintain. * lib/linkat.c: Filter through cppi. * lib/nanosleep.c: Likewise. * lib/openat.c: Likewise. * lib/openat-die.c: Likewise. * lib/dup3.c: Likewise. * lib/fchownat.c: Likewise. * lib/flock.c: Likewise. * lib/fsync.c: Likewise. * lib/fts.c: Likewise. * lib/getpass.c: Likewise. * lib/gettimeofday.c: Likewise. * lib/userspec.c: Likewise. * Makefile (sc_cpp_indent_check): New rule, to check this. 2011-02-22 Bruno Haible New module 'wctomb'. * lib/stdlib.in.h (wctomb): New declaration. * lib/wctomb.c: New file. * lib/wctomb-impl.h: New file. * m4/wctomb.m4: New file. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_WCTOMB, REPLACE_WCTOMB. * modules/stdlib (Makefile.am): Substitute GNULIB_WCTOMB, REPLACE_WCTOMB. * modules/wctomb: New file. * tests/test-stdlib-c++.cc: Test signature of wctomb. * doc/posix-functions/wctomb.texi: Mention the new module. * modules/wctob (Depends-on): Add wctomb. 2011-02-22 Bruno Haible New module 'mbtowc'. * lib/stdlib.in.h (mbtowc): New declaration. * lib/mbtowc.c: New file. * lib/mbtowc-impl.h: New file, from libutf8 with modifications. * m4/mbtowc.m4: New file. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_MBTOWC, REPLACE_MBTOWC. * modules/stdlib (Makefile.am): Substitute GNULIB_MBTOWC, REPLACE_MBTOWC. * modules/mbtowc: New file. * tests/test-stdlib-c++.cc: Test signature of mbtowc. * doc/posix-functions/mbtowc.texi: Mention the new module. * modules/btowc (Depends-on): Add mbtowc. 2011-02-22 Bruno Haible wcrtomb: Add more tests for native Windows platforms. * tests/test-wcrtomb-w32-1.sh: New file. * tests/test-wcrtomb-w32-2.sh: New file. * tests/test-wcrtomb-w32-3.sh: New file. * tests/test-wcrtomb-w32-4.sh: New file. * tests/test-wcrtomb-w32-5.sh: New file. * tests/test-wcrtomb-w32.c: New file. * modules/wcrtomb-tests (Files): Add them. (Makefile.am): Arrange to run these tests. * tests/test-wcrtomb-w32-6.sh: New file, currently unused. * tests/test-wcrtomb-w32-7.sh: New file, currently unused. 2011-02-20 Bruno Haible wcrtomb: Enhance test. * tests/test-wcrtomb.c (main): Add test against bug with NULL argument. 2011-02-20 Bruno Haible mbrtowc: Tiny optimization. * lib/mbrtowc.c (mbrtowc): Delay pstate assignment until it is needed. 2011-02-20 Jim Meyering test-exclude.c: remove unmatched #endif * tests/test-exclude.c: Remove stray #endif, left over from the change of a week ago. 2011-02-19 Jim Meyering git-version-gen: skip "-dirty" check when appropriate * build-aux/git-version-gen: Don't run any git commands when the version string comes from .tarball-version. Prior to this, we would run git update-index --refresh even from a just-unpacked tarball directory, and that could affect a .git/ directory in a parent of the build directory. Reported by Mike Frysinger. 2011-02-19 Bruno Haible unictype/property-byname: Reduce the size of the 'data' segment. * lib/unictype/pr_byname.gperf: Add gperf option '%pic'. 2011-02-19 Bruno Haible unictype/scripts: Reduce the size of the 'data' segment. * lib/gen-uni-tables.c (output_scripts_byname): Emit gperf option '%pic'. * lib/unictype/scripts_byname.gperf: Regenerated. 2011-02-19 Bruno Haible stdint: Update documentation. * doc/posix-headers/stdint.texi: Mention WCHAR_MIN, WCHAR_MAX problem. 2011-02-18 Paul Eggert stdint: omit redundant check for wchar.h * m4/stdint.m4 (gl_STDINT_H): The earlier part of this macro now always tests whether wchar.h exists, so remove the now-redundant test. 2011-02-18 Bruno Haible stdint: Cut dependency to module 'wchar'. * lib/stdint.in.h: Include wchar.h only when HAVE_WCHAR_H is 1. Also include the necessary prerequisites. * m4/stdint.m4 (gl_STDINT_H): Test whether wchar.h exists. * modules/stdint (Depends-on): Remove wchar. (Makefile.am): Substitute HAVE_WCHAR_H. This reverts part of a 2007-01-06 commit. Reported by Paul Eggert. 2011-02-18 Eric Blake longlong: skip, rather than fail, on cross-compilation * m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Avoid aborting configure when cross-compiling; regression from 2011-02-16. 2011-02-17 Paul Eggert * NEWS: Mention 2011-02-08 change to stdlib. 2011-02-17 Bruno Haible getloadavg: Add comments about platforms. * m4/getloadavg.m4: Add comment. * lib/getloadavg.c: Likewise. 2011-02-17 Bruno Haible getloadavg: Fix link error on Solaris 2.6. * modules/getloadavg (Link): New section. * modules/getloadavg-tests (Makefile.am): Use GETLOADAVG_LIBS for linking test-getloadavg. * doc/glibc-functions/getloadavg.texi: Mention that Solaris 2.6 lacks getloadavg. 2011-02-17 Paul Eggert * lib/getloadavg.c (getloadavg) [sgi]: Make ldav_off of type ptrdiff_t. It was 'int', but this doesn't match the IRIX 6.5 manual. Suggested by Bruno Haible in . 2011-02-17 Bruno Haible havelib: Fix comments. * m4/lib-link.m4 (AC_LIB_RPATH): Update comments after 2007-01-02 change. 2011-02-17 Bruno Haible havelib: Update config.rpath. * build-aux/config.rpath: Update to match libtool.m4 from libtool-2.4. 2011-02-17 Bruno Haible getloadavg test: Add some plausibility checks. * tests/test-getloadavg.c (check_avg): Print a warning when the value is improbable. 2011-02-16 Eric Blake maintainer-makefile: make syntax-check a no-op from tarballs * top/maint.mk (no-vc-detected): New rule. (local-checks-available): Use it to avoid hanging if someone tries 'make syntax-check' from a tarball. Also append to any non-syntax checks already defined in cfg.mk. 2011-02-16 Paul Eggert longlong: tune, particularly for common case of c99 * m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Don't bother compiling or running anything if c99, or if unsigned long long int does not work. In either case, we know the answer without further tests. Do not compile _AC_TYPE_LONG_LONG_SNIPPET twice. Instead, compile it at most once, and use its results for both long long int and unsigned long long int. This is more likely to be efficient in the common case where the program wants to check for both long long int and unsigned long long int. (AC_TYPE_UNSIGNED_LONG_LONG_INT): Don't bother compiling if c99, since the answer is already known. 2011-02-15 Paul Eggert getloadavg: set errno * lib/getloadavg.c: Set errno when returning -1. If no other error number looks appropriate, set it to ENOSYS if the getloadavg looks like it can't possibly ever work, ENOTSUP otherwise. Suggested by Bruno Haible in . getloadavg: trim unused parts and speed up 'configure' * NEWS: Document this. * lib/getloadavg.c: Ignore HAVE_GETLOADAVG; this file is now always compiled if getloadavg is absent. Move test code to ... * tests/test-getloadavg.c: New file, containing previous contents of test from lib/getloadavg.c. It also contains suggestions by Bruno Haible in . * modules/getloadavg-tests: New file. * m4/getloadavg.m4 (gl_GETLOADAVG): Do not check for getloadavg twice. Do tests in the same order as they're needed for getloadavg.c. Omit setgid-related tests that generate symbols KMEM_GROUP, NEET_SETGID, GETLOADAVG_PRIVILEGED; nobody seems to use those any more. Do only the tests that are needed to see whether the system has getloadavg, moving the other tests into ... (gl_PREREQ_GETLOADAVG): ... here. Do not define obsolete symbol NLIST_NAME_UNION; nobody should be using it. Do not define symbols C_GETLOADAVG and HAVE_GETLOADAVG; they're no longer relevant, as the user of this module shouldn't care how getloadavg is implemented. getloadavg: omit unused var * lib/getloadavg.c (getloadavg): Omit unused local variable. 2011-02-15 Jim Meyering doc: update users.txt * users.txt: Update iwhd's URL. 2011-02-13 Bruno Haible Consistent macro naming for macros that use GCC __attribute__. * lib/di-set.h (_GL_ATTRIBUTE_NONNULL): Renamed from _ATTRIBUTE_NONNULL_. * lib/ino-map.h (_GL_ATTRIBUTE_NONNULL): Likewise. * lib/hash.h (_GL_ATTRIBUTE_WUR): Renamed from ATTRIBUTE_WUR. * lib/ignore-value.h (_GL_ATTRIBUTE_DEPRECATED): Renamed from ATTRIBUTE_DEPRECATED. * lib/openat.h (_GL_ATTRIBUTE_NORETURN): Renamed from ATTRIBUTE_NORETURN. * lib/sigpipe-die.h (_GL_ATTRIBUTE_NORETURN): Likewise. * lib/xmemdup0.h (_GL_ATTRIBUTE_NORETURN): Likewise. * lib/xstrtol.h (_GL_ATTRIBUTE_NORETURN): Likewise. * lib/xalloc.h (_GL_ATTRIBUTE_NORETURN): Likewise. (_GL_ATTRIBUTE_MALLOC): Renamed from ATTRIBUTE_MALLOC. (_GL_ATTRIBUTE_ALLOC_SIZE): Renamed from ATTRIBUTE_ALLOC_SIZE. * lib/version-etc.h (_GL_ATTRIBUTE_SENTINEL): Renamed from ATTRIBUTE_SENTINEL. * lib/safe-alloc.h (_GL_ATTRIBUTE_RETURN_CHECK): Renamed from ATTRIBUTE_RETURN_CHECK. * tests/test-ignore-value.c (_GL_ATTRIBUTE_RETURN_CHECK): Likewise. * tests/test-argmatch.c (_GL_ATTRIBUTE_NORETURN): Renamed from ATTRIBUTE_NORETURN. * tests/test-exclude.c (_GL_ATTRIBUTE_NORETURN): Likewise. Reported by Paul Eggert. 2011-02-13 Bruno Haible Don't interfere with a program's definition of __attribute__. * lib/argp.h (__attribute__): Remove definition. (_GL_ATTRIBUTE_FORMAT): New macro. (argp_error, __argp_error, argp_failure, __argp_failure): Use it. * lib/argp-fmtstream.h (__attribute__): Remove definition. (_GL_ATTRIBUTE_FORMAT): New macro. (__argp_fmtstream_printf, argp_fmtstream_printf): Use it. * lib/argp-help.c (hol_entry_long_iterate): Use __attribute__ only for GCC 3 or newer. * lib/error.h (__attribute__): Remove definition. (_GL_ATTRIBUTE_FORMAT): New macro. (error, error_at_line): Use it. * lib/hash.h (__attribute__): Remove definition. (ATTRIBUTE_WUR): Update definition. Define always. * lib/openat.h (__attribute__): Remove definition. (ATTRIBUTE_NORETURN): Update definition. Define always. * lib/sigpipe-die.h (__attribute__): Remove definition. (ATTRIBUTE_NORETURN): Update definition. Define always. * lib/vasnprintf.h (__attribute__): Remove definition. (_GL_ATTRIBUTE_FORMAT): New macro. (asnprintf, vasnprintf): Use it. * lib/xalloc.h (__attribute__): Remove definition. (ATTRIBUTE_NORETURN): Update definition. Define always. (ATTRIBUTE_MALLOC, ATTRIBUTE_ALLOC_SIZE): Define always. * lib/xmemdup0.h (__attribute__): Remove definition. (ATTRIBUTE_NORETURN): Update definition. Define always. * lib/xprintf.h (__attribute__): Remove definition. (_GL_ATTRIBUTE_FORMAT): New macro. (xprintf, xvprintf, xfprintf, xvfprintf): Use it. * lib/xstrtol.h (__attribute__): Remove definition. (ATTRIBUTE_NORETURN): Update definition. Define always. * lib/xvasprintf.h (__attribute__): Remove definition. (_GL_ATTRIBUTE_FORMAT): New macro. (xasprintf, xvasprintf): Use it. * tests/test-argmatch.c (__attribute__): Remove definition. (ATTRIBUTE_NORETURN): Update definition. Define always. * tests/test-exclude.c (__attribute__): Remove definition. (ATTRIBUTE_NORETURN): Update definition. Define always. Reported by Paul Eggert. 2011-02-13 Bruno Haible mbrtowc: Add more tests for native Windows platforms. * tests/test-mbrtowc-w32-1.sh: New file. * tests/test-mbrtowc-w32-2.sh: New file. * tests/test-mbrtowc-w32-3.sh: New file. * tests/test-mbrtowc-w32-4.sh: New file. * tests/test-mbrtowc-w32-5.sh: New file. * tests/test-mbrtowc-w32.c: New file. * modules/mbrtowc-tests (Files): Add them. (Makefile.am): Arrange to run these tests. * tests/test-mbrtowc-w32-6.sh: New file, currently unused. * tests/test-mbrtowc-w32-7.sh: New file, currently unused. 2011-02-13 Bruno Haible mbrtowc: Work around native Windows bug. * m4/mbrtowc.m4 (gl_MBRTOWC_RETVAL): Detect native Windows bug. Use the guess when no suitable locale for testing was found. * doc/posix-functions/mbrtowc.texi: Mention the native Windows bug. 2011-02-13 Bruno Haible mbsinit: Work around mingw bug. * m4/mbsinit.m4 (gl_FUNC_MBSINIT): Replace mbsinit also on mingw. * lib/mbsinit.c (mbsinit): Provide an alternate definition for native Windows. * doc/posix-functions/mbsinit.texi: Mention the mingw bug. 2011-02-13 Bruno Haible mbsinit: Don't crash for a NULL argument. * lib/mbsinit.c (mbsinit): When the argument is NULL, return 1. * tests/test-mbsinit.c (mbsinit): Check this behaviour. 2011-02-13 Bruno Haible Don't interfere with a program's definition of __attribute__. * lib/stdio.in.h (__attribute__): Remove definition. (_GL_ATTRIBUTE_FORMAT, _GL_ATTRIBUTE_FORMAT_PRINTF): New macros. (dprintf, fprintf, obstack_printf, obstack_printf, obstack_vprintf, printf, snprintf, sprintf, asprintf, vasprintf, vdprintf, vfprintf, vsnprintf, vsprintf): Use _GL_ATTRIBUTE_FORMAT_PRINTF. * lib/string.in.h (__attribute__): Remove definition. Reported by Paul Eggert. 2011-02-12 Paul Eggert stdlib: don't get in the way of non-GCC __attribute__ See thread starting at . Revert previous stdlib change, installing the following instead: * lib/stdlib.in.h (__attribute__): Remove. We do not want to get in the way of a non-GCC compiler that supports __attribute__. (_GL_ATTRIBUTE_RETURN): New macro. (_Exit): Use it instead of __attribute__. 2011-02-12 Bruno Haible quotearg test: Avoid test failure on mingw. * tests/test-quotearg.sh: Convert the locale identifier from native Windows syntax to Unix syntax. 2011-02-12 Bruno Haible setlocale: Prefer gnulib's override over libintl's override. * lib/locale.in.h (GNULIB_defined_setlocale): New macro. * lib/gettext.h (setlocale): Redefine to rpl_setlocale if GNULIB_defined_setlocale is set. 2011-02-12 Paul Eggert stdlib: support non-GCC __attribute__ Fix a serious and tricky problem encountered when attempting to add the getloadavg module to Emacs. Emacs worked fine on RHEL 5.5, but it crashed due to memory corruption on Solaris 10 with Sun C 5.11. Emacs normally ORs 3-bit tags into their low-order bits that are otherwise zero. This tagging is optional inside Emacs but is preferred and is used when __attribute__ ((__aligned (8))) works, as it does with both recent-enough GCC and with Sun C 5.11. However, Sun C 5.11 is not GCC and does not #define __GNUC__ and __GNUC_MINOR__. When I added the getloadavg module to Emacs, it brought in stdlib.in.h, which contained this fragment: #ifndef __attribute__ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) # define __attribute__(Spec) /* empty */ # endif #endif When files that include were compiled with Sun C 5.11, the above code disabled __attribute__ ((__aligned (8))), which caused variables to not be properly aligned, which eventually led to the pointer corruption mentioned above. (This was a bit hard to diagnose, unfortunately.) Several "#define __attribute__(X) /* empty */" code snippets need to be eradicated from Gnulib to work with non-GCC compilers that support __attribute__. The Autoconf way to do this is to test for each kind of attribute that we want support for, and selectively enable that in source code. Fix this problem just for stdlib.h, by adding a test for the __noreturn__ attribute, and change stdlib.in.h to use that test when needed. This technique can be easily generalized to the other *.in.h files and attributes, and a similar technique can be used for *.h and *.c files. This patch is enough to solve the problem for Emacs + getloadavg, and I thought I'd publish it for feedback before undertaking further, similar fixes in other modules. This patch does not arrange to #define HAVE_ATTRIBUTE_NORETURN because it's not needed for stdlib.h. It merely substitutes the value directly into stdlib.h. We may well need to #define it, or similar symbols, for other modules, but it's nice to also have an option to not #define it for applications like Emacs that do not need it. * lib/stdlib.in.h (__attribute__): Do not #define. (_GL_ATTRIBUTE_NORETURN): New macro, which in stdlib.h needs to be defined only if the _Exit module is also used. * m4/_Exit.m4 (gl_FUNC__EXIT): Require gl_ATTRIBUTE_NORETURN. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Subst HAVE_ATTRIBUTE_NORETURN and default it to 1, its value on GNU platforms. * modules/_Exit (Files): Add m4/attribute.m4. * modules/stdlib (Makefile.am): Substitute HAVE_ATTRIBUTE_NORETURN. * m4/attribute.m4: New file. 2011-02-12 Bruno Haible wcsrtombs: Work around bug on native Windows. * m4/wcsrtombs.m4 (gl_WCSRTOMBS_NULL): Test against mingw bug. * lib/wcsrtombs.c (rpl_wcsrtombs): When dest is NULL, pass SIZE_MAX instead of len. * doc/posix-functions/wcsrtombs.texi: Document mingw bug. 2011-02-12 Bruno Haible mbsrtowcs: Work around bug on native Windows. * m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): Require gt_LOCALE_FR. Test against mingw bug. * doc/posix-functions/mbsrtowcs.texi: Document mingw bug. 2011-02-12 Bruno Haible Avoid setlocale bugs in tests. * modules/btowc (Dependencies): Add setlocale. * modules/c-strcase (Dependencies): Likewise. * modules/mbmemcasecmp (Dependencies): Likewise. * modules/mbmemcasecoll (Dependencies): Likewise. * modules/mbrtowc (Dependencies): Likewise. * modules/mbscasecmp (Dependencies): Likewise. * modules/mbscasestr (Dependencies): Likewise. * modules/mbschr (Dependencies): Likewise. * modules/mbscspn (Dependencies): Likewise. * modules/mbsinit (Dependencies): Likewise. * modules/mbsncasecmp (Dependencies): Likewise. * modules/mbsnrtowcs (Dependencies): Likewise. * modules/mbspbrk (Dependencies): Likewise. * modules/mbspcasecmp (Dependencies): Likewise. * modules/mbsrchr (Dependencies): Likewise. * modules/mbsrtowcs (Dependencies): Likewise. * modules/mbsspn (Dependencies): Likewise. * modules/mbsstr (Dependencies): Likewise. * modules/nl_langinfo (Dependencies): Likewise. * modules/quotearg (Dependencies): Likewise. * modules/unicase/locale-language (Dependencies): Likewise. * modules/unicase/ulc-casecmp (Dependencies): Likewise. * modules/unicase/ulc-casecoll (Dependencies): Likewise. * modules/unigbrk/ulc-grapheme-breaks (Dependencies): Likewise. * modules/unistdio/u8-vasnprintf (Dependencies): Likewise. * modules/unistdio/u16-vasnprintf (Dependencies): Likewise. * modules/unistdio/u32-vasnprintf (Dependencies): Likewise. * modules/unistdio/ulc-vasnprintf (Dependencies): Likewise. * modules/uniwbrk/ulc-wordbreaks (Dependencies): Likewise. * modules/vasnprintf-posix (Dependencies): Likewise. * modules/wcrtomb (Dependencies): Likewise. * modules/wcsnrtombs (Dependencies): Likewise. * modules/wcsrtombs (Dependencies): Likewise. 2011-02-12 Bruno Haible setlocale: Workaround native Windows bug. * lib/setlocale.c (rpl_setlocale): On native Windows, when setlocale succeeds but sets LC_CTYPE to "C", report a failure. * tests/test-setlocale2.sh: New file. * tests/test-setlocale2.c: New file. * modules/setlocale-tests (Files): Add the new files. (Makefile.am): Enable test-setlocale2.sh test. * doc/posix-functions/setlocale.texi: Mention workaround. 2011-02-11 Bruno Haible Tests for module 'setlocale'. * modules/setlocale-tests: New file. * tests/test-setlocale1.sh: New file. * tests/test-setlocale1.c: New file. New module 'setlocale'. * lib/locale.in.h (setlocale): New declaration. * lib/setlocale.c: New file, based on gettext/gettext-runtime/intl/setlocale.c. * m4/setlocale.m4: New file. * m4/locale_h.m4 (gl_LOCALE_H): Test whether setlocale is declared. (gl_LOCALE_H_DEFAULTS): Initialize GNULIB_SETLOCALE, REPLACE_SETLOCALE. * modules/locale (Makefile.am): Substitute GNULIB_SETLOCALE, REPLACE_SETLOCALE. * modules/setlocale: New file. * tests/test-locale-c++.cc: Test the declaration of setlocale. * doc/posix-functions/setlocale.texi: Mention the new module. 2011-02-11 Bruno Haible Prepare for locale dependent tests on mingw. * m4/locale-ar.m4 (gt_LOCALE_AR): On native Windows, don't try "ar" because it has the wrong locale encoding. * m4/locale-fr.m4 (gt_LOCALE_FR): On native Windows, try French_France.1252 instead of "fr". (gt_LOCALE_FR_UTF8): On native Windows, try French_France.65001. * m4/locale-ja.m4 (gt_LOCALE_JA): On native Windows, don't try "ja" because it has the wrong locale encoding. * m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Require AC_CANONICAL_HOST. On native Windows, try Turkish_Turkey.65001. * m4/locale-zh.m4 (gt_LOCALE_ZH_CN): On native Windows, try Chinese_China.54936. Prepare for locale dependent tests on mingw. * m4/locale-ar.m4 (gt_LOCALE_AR): On native Windows, call setlocale differently. * m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): Likewise. * m4/locale-ja.m4 (gt_LOCALE_JA): Likewise. * m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Likewise. * m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Likewise. 2011-02-11 Eric Blake strptime: avoid compiler warnings * lib/strptime.c (__strptime_internal) [!_NL_CURRENT]: Avoid compiler warnings about dead code. Reported by Daniel P. Berrange. 2011-02-11 Thien-Thi Nguyen doc: update users.txt * users.txt: Add rcs. 2011-02-10 John W. Eaton doc: update users.txt * users.txt: Add octave. 2011-02-10 Jim Meyering doc: update users.txt * users.txt: Add iwhd. 2011-02-09 Bruno Haible gnulib-tool: Make copyright notice adjustment more robust. * gnulib-tool (func_import): In sed_transform_main_lib_file, sed_transform_build_aux_file, sed_transform_testsrelated_lib_file, allow a line break to occur after "GNU" in "GNU [Lesser] General Public License". Reported by Glenn Morris via Paul Eggert. 2011-02-06 Bruno Haible New module 'towctrans'. * modules/towctrans: New file. * lib/wctype.in.h (towctrans): New declaration. * lib/towctrans.c: New file. * lib/towctrans-impl.h: New file. * m4/towctrans.m4: New file. * m4/wctype_h.m4 (gl_WCTYPE_H): Test whether towctrans is declared. (gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_TOWCTRANS. * modules/wctype-h (Makefile.am): Substitute GNULIB_TOWCTRANS. * tests/test-wctype-h-c++.cc: Test the declaration of towctrans. * doc/posix-functions/towctrans.texi: Mention the new module. 2011-02-06 Bruno Haible New module 'wctrans'. * modules/wctrans: New file. * lib/wctype.in.h (wctrans): New declaration. * lib/wctrans.c: New file. * lib/wctrans-impl.h: New file. * m4/wctrans.m4: New file. * m4/wctype_h.m4 (gl_WCTYPE_H): Test whether wctrans is declared. (gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_WCTRANS. * modules/wctype-h (Makefile.am): Substitute GNULIB_WCTRANS. * tests/test-wctype-h-c++.cc: Test the declaration of wctrans. * doc/posix-functions/wctrans.texi: Mention the new module. 2011-02-06 Bruno Haible New module 'iswctype'. * modules/iswctype: New file. * lib/wctype.in.h (iswctype): New declaration. * lib/iswctype.c: New file. * lib/iswctype-impl.h: New file. * m4/iswctype.m4: New file. * m4/wctype_h.m4 (gl_WCTYPE_H): Test whether iswctype is declared. (gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_ISWCTYPE. * modules/wctype-h (Makefile.am): Substitute GNULIB_ISWCTYPE. * tests/test-wctype-h-c++.cc: Test the declaration of iswctype. * doc/posix-functions/iswctype.texi: Mention the new module and the HP-UX 11.00 problem. 2011-02-06 Bruno Haible New module 'wctype'. * modules/wctype: Change to represent the wctype() substitute. * lib/wctype.in.h (wctype): New declaration. * lib/wctype.c: New file. * lib/wctype-impl.h: New file. * m4/wctype.m4: New file. * m4/wctype_h.m4 (gl_WCTYPE_H): Test whether wctype is declared. (gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_WCTYPE. * modules/wctype-h (Makefile.am): Substitute GNULIB_WCTYPE. * tests/test-wctype-h-c++.cc: Test the declaration of wctype. * doc/posix-functions/wctype.texi: Mention the new module and the HP-UX 11.00 problem. 2011-02-06 Bruno Haible wctype-h: Ensure wctype_t and wctrans_t are defined. * lib/wctype.in.h (wctype_t, wctrans_t): New type declarations. * m4/wctype_h.m4 (gl_WCTYPE_H): Determine HAVE_WCTYPE_T, HAVE_WCTRANS_T. (gl_WCTYPE_H_DEFAULTS): Initialize HAVE_WCTYPE_T, HAVE_WCTRANS_T. * modules/wctype-h (Makefile.am): Substitute HAVE_WCTYPE_T, HAVE_WCTRANS_T. * tests/test-wctype-h.c: Check that wctype_t and wctrans_t are defined. 2011-02-09 Paul Eggert flock: fix license typo * lib/flock.c: Fix typo in license. One of the "Lesser"s was omitted. 2011-02-08 Bruno Haible Split large sed scripts, for HP-UX sed. * modules/math (Makefile.am): Split sed scripts around 50 sed commands, to avoid HP-UX limit of 99 commands, in the near future. * modules/stdlib (Makefile.am): Likewise. * modules/unistd (Makefile.am): Likewise. * modules/wchar (Makefile.am): Likewise. Reported by Albert Chin . Suggestion by Ralf Wildenhues in . 2011-02-08 Paul Eggert Bruno Haible stdlib: improve random_r modularization * lib/stdlib.in.h: Encapsulate all the stuff having to do with random_r inside "#if @GNULIB_RANDOM_R@", so that it's clearer that you also need the random_r module to get this material right. * m4/random_r.m4 (gl_FUNC_RANDOM_R): Move check for random.h here ... * m4/stdlib_h.m4 (gl_STDLIB_H): ... from here. (gl_STDLIB_H_DEFAULTS): Default HAVE_RANDOM_H to 1, and AC_SUBST it. 2011-02-08 Paul Eggert stdlib: don't depend on stdint * lib/stdlib.in.h: Don't include merely because GNULIB_POSIXCHECK is defined. GNULIB_POSIXCHECK seems to be independent of whether stdint.h is needed. * m4/random_r.m4 (gl_FUNC_RANDOM_R): Check for struct random_data here, instead of ... * m4/stdlib_h.m4 (gl_STDLIB_H): ... here. Applications that need struct random_data should be using the random_r module, not just the stdlib module (which wouldn't make sense: what package needs just struct random_data without also needing random_r?). * modules/stdlib (Depends-on): Remove stdint. getloadavg: don't depend on c-strtod, cloexec, fcntl-safer See the thread rooted at . * lib/getloadavg.c: Do not include c-strtod.h, cloexec.h, or fcntl--.h. Include only if (defined __linux__ || defined __CYGWIN__ || defined SUNOS_5 || (defined LOAD_AVE_TYPE && ! defined __VMS)); previously it was always included (via fcntl--.h). (getloadavg): Do not use c_strtod. Instead, approximate it by hand; this is good enough for load averages. Also, do not use set_cloexec_flag; instead, use the O_CLOEXEC and F_DUPFD_CLOEXEC flags directly if available and don't bother otherwise. (Packages that need the extra reliability should use the modules that define these flags on older platforms that lack them.) * modules/getloadavg (Depends-on): Remove c-strtod, cloexec, fcntl-safer. 2011-02-08 Jim Meyering di-set.h, ino-map.h: add multiple-inclusion guard Technically, the guard is required only for ino-map.h, due to its INO_MAP_INSERT_FAILURE definition, but do both for consistency. * lib/di-set.h: Add file-spanning #ifndef _GL_DI_SET_H. * lib/ino-map.h: Likewise. 2011-02-06 Bruno Haible iswblank: Ensure declaration on glibc systems. * m4/iswblank.m4 (gl_FUNC_ISWBLANK): Require gl_USE_SYSTEM_EXTENSIONS. * modules/iswblank (Dependencies): Add 'extensions'. * doc/posix-functions/iswblank.texi: Document the glibc problem. 2011-02-06 Bruno Haible New module 'iswblank'. * lib/wctype.in.h (iswblank): Don't declare if GNULIB_ISWBLANK is 0. * modules/iswblank: New file. * modules/wctype-h (Files): Remove lib/iswblank.c. (Makefile.am): Substitute GNULIB_ISWBLANK. * m4/iswblank.m4: New file, partially extracted from m4/wctype_h.m4. * m4/wctype_h.m4 (gl_WCTYPE_MODULE_INDICATOR): New macro. (gl_WCTYPE_H_DEFAULTS): New macro. (gl_WCTYPE_H): Require it. Remove iswblank related code. * modules/iswblank-tests: New file. * tests/test-iswblank.c: New file, extraced from tests/test-wctype-h.c. * tests/test-wctype-h.c (main): Remove iswblank tests. * tests/test-wctype-h-c++.cc: Guard the signature test of iswblank. * doc/posix-functions/iswblank.texi: Mention module 'iswblank' instead of 'wctype-h'. * NEWS: Mention the change. * modules/mbchar (Depends-on): Add iswblank. 2011-02-08 Bruno Haible di-set tests: Refactor. * tests/test-di-set.c: Include di-set.h early. Include macros.h. Drop unnecessary includes. (ASSERT): Remove macro. (main): Make C90 compliant by avoiding variable declaration after statement. * modules/di-set-tests (Files): Add tests/macros.h. 2011-02-08 Bruno Haible ino-map tests: Refactor. * tests/test-ino-map.c: Include ino-map.h early. Include macros.h. Drop unnecessary includes. (ASSERT): Remove macro. (main): Make C90 compliant by avoiding variable declaration after statement. * modules/ino-map-tests (Files): Add tests/macros.h. 2011-02-08 Jim Meyering di-set: add "const" to a cast * lib/di-set.c (di_set_insert): Cast hash_insert0 argument to "(void const *)", not "(void *)". Spotted by Bruno Haible. 2011-02-06 Bruno Haible Rename module 'wctype' to 'wctype-h'. * modules/wctype-h: Renamed from modules/wctype. * modules/wctype: Simplyfy to a redirection to 'wctype-h'. * modules/wctype-h-tests: Renamed from modules/wctype-tests. (Files, Depends-on, Makefile.am): Update. * modules/wctype-h-c++-tests: Renamed from modules/wctype-c++-tests. (Files, Makefile.am): Update. * tests/test-wctype-h.c: Renamed from tests/test-wctype.c. * tests/test-wctype-h-c++.cc: Renamed from tests/test-wctype-c++.cc. * doc/posix-headers/wctype.texi: Update. * doc/posix-functions/iswalnum.texi: Update. * doc/posix-functions/iswalpha.texi: Update. * doc/posix-functions/iswblank.texi: Update. * doc/posix-functions/iswcntrl.texi: Update. * doc/posix-functions/iswdigit.texi: Update. * doc/posix-functions/iswgraph.texi: Update. * doc/posix-functions/iswlower.texi: Update. * doc/posix-functions/iswprint.texi: Update. * doc/posix-functions/iswpunct.texi: Update. * doc/posix-functions/iswspace.texi: Update. * doc/posix-functions/iswupper.texi: Update. * doc/posix-functions/iswxdigit.texi: Update. * doc/posix-functions/towlower.texi: Update. * doc/posix-functions/towupper.texi: Update. * NEWS: Mention the change. * modules/fnmatch (Dependencies): Add wctype-h, remove wctype. * modules/mbchar (Dependencies): Likewise. * modules/mbswidth (Dependencies): Likewise. * modules/quotearg (Dependencies): Likewise. * modules/regex (Dependencies): Likewise. * modules/wcscasecmp (Dependencies): Likewise. * modules/wcsncasecmp (Dependencies): Likewise. * modules/wcwidth (Dependencies): Likewise. 2011-02-06 Bruno Haible New module 'wcswidth'. * modules/wcswidth: New file. * lib/wchar.in.h (wcswidth): New declaration. * lib/wcswidth.c: New file. * lib/wcswidth-impl.h: New file, from libutf8 with modifications. * m4/wcswidth.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcswidth is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSWIDTH, HAVE_WCSWIDTH, REPLACE_WCSWIDTH. * modules/wchar (Makefile.am): Substitute GNULIB_WCSWIDTH, HAVE_WCSWIDTH, REPLACE_WCSWIDTH. * tests/test-wchar-c++.cc: Test the declaration of wcswidth. * doc/posix-functions/wcswidth.texi: Mention the new module. 2011-02-06 Bruno Haible New module 'wcstok'. * modules/wcstok: New file. * lib/wchar.in.h (wcstok): New declaration. * lib/wcstok.c: New file. * lib/wcstok-impl.h: New file, from libutf8 with modifications. * m4/wcstok.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcstok is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSTOK, HAVE_WCSTOK. * modules/wchar (Makefile.am): Substitute GNULIB_WCSTOK, HAVE_WCSTOK. * tests/test-wchar-c++.cc: Test the declaration of wcstok. * doc/posix-functions/wcstok.texi: Mention the new module. 2011-02-06 Bruno Haible New module 'wcsstr'. * modules/wcsstr: New file. * lib/wchar.in.h (wcsstr): New declaration. * lib/wcsstr.c: New file. * lib/wcsstr-impl.h: New file, from libutf8 with modifications. * m4/wcsstr.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsstr is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSSTR, HAVE_WCSSTR. * modules/wchar (Makefile.am): Substitute GNULIB_WCSSTR, HAVE_WCSSTR. * tests/test-wchar-c++.cc: Test the declaration of wcsstr. * doc/posix-functions/wcsstr.texi: Mention the new module. 2011-02-06 Bruno Haible New module 'wcspbrk'. * modules/wcspbrk: New file. * lib/wchar.in.h (wcspbrk): New declaration. * lib/wcspbrk.c: New file. * lib/wcspbrk-impl.h: New file, from libutf8 with modifications. * m4/wcspbrk.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcspbrk is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSPBRK, HAVE_WCSPBRK. * modules/wchar (Makefile.am): Substitute GNULIB_WCSPBRK, HAVE_WCSPBRK. * tests/test-wchar-c++.cc: Test the declaration of wcspbrk. * doc/posix-functions/wcspbrk.texi: Mention the new module. 2011-02-06 Bruno Haible New module 'wcsspn'. * modules/wcsspn: New file. * lib/wchar.in.h (wcsspn): New declaration. * lib/wcsspn.c: New file. * lib/wcsspn-impl.h: New file, from libutf8 with modifications. * m4/wcsspn.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsspn is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSSPN, HAVE_WCSSPN. * modules/wchar (Makefile.am): Substitute GNULIB_WCSSPN, HAVE_WCSSPN. * tests/test-wchar-c++.cc: Test the declaration of wcsspn. * doc/posix-functions/wcsspn.texi: Mention the new module. 2011-02-06 Bruno Haible New module 'wcscspn'. * modules/wcscspn: New file. * lib/wchar.in.h (wcscspn): New declaration. * lib/wcscspn.c: New file. * lib/wcscspn-impl.h: New file, from libutf8 with modifications. * m4/wcscspn.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscspn is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCSPN, HAVE_WCSCSPN. * modules/wchar (Makefile.am): Substitute GNULIB_WCSCSPN, HAVE_WCSCSPN. * tests/test-wchar-c++.cc: Test the declaration of wcscspn. * doc/posix-functions/wcscspn.texi: Mention the new module. 2011-02-06 Bruno Haible New module 'wcsrchr'. * modules/wcsrchr: New file. * lib/wchar.in.h (wcsrchr): New declaration. * lib/wcsrchr.c: New file. * lib/wcsrchr-impl.h: New file, from libutf8 with modifications. * m4/wcsrchr.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsrchr is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSRCHR, HAVE_WCSRCHR. * modules/wchar (Makefile.am): Substitute GNULIB_WCSRCHR, HAVE_WCSRCHR. * tests/test-wchar-c++.cc: Test the declaration of wcsrchr. * doc/posix-functions/wcsrchr.texi: Mention the new module. 2011-02-06 Bruno Haible New module 'wcschr'. * modules/wcschr: New file. * lib/wchar.in.h (wcschr): New declaration. * lib/wcschr.c: New file. * lib/wcschr-impl.h: New file, from libutf8 with modifications. * m4/wcschr.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcschr is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCHR, HAVE_WCSCHR. * modules/wchar (Makefile.am): Substitute GNULIB_WCSCHR, HAVE_WCSCHR. * tests/test-wchar-c++.cc: Test the declaration of wcschr. * doc/posix-functions/wcschr.texi: Mention the new module. 2011-02-06 Bruno Haible New module 'wcsdup'. * modules/wcsdup: New file. * lib/wchar.in.h (wcsdup): New declaration. * lib/wcsdup.c: New file. * lib/wcsdup-impl.h: New file, from libutf8 with modifications. * m4/wcsdup.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsdup is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSDUP, HAVE_WCSDUP. * modules/wchar (Makefile.am): Substitute GNULIB_WCSDUP, HAVE_WCSDUP. * tests/test-wchar-c++.cc: Test the declaration of wcsdup. * doc/posix-functions/wcsdup.texi: Mention the new module. 2011-02-06 Bruno Haible New module 'wcsxfrm'. * modules/wcsxfrm: New file. * lib/wchar.in.h (wcsxfrm): New declaration. * lib/wcsxfrm.c: New file. * lib/wcsxfrm-impl.h: New file. * m4/wcsxfrm.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsxfrm is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSXFRM, HAVE_WCSXFRM. * modules/wchar (Makefile.am): Substitute GNULIB_WCSXFRM, HAVE_WCSXFRM. * tests/test-wchar-c++.cc: Test the declaration of wcsxfrm. * doc/posix-functions/wcsxfrm.texi: Mention the new module. 2011-02-06 Bruno Haible New module 'wcscoll'. * modules/wcscoll: New file. * lib/wchar.in.h (wcscoll): New declaration. * lib/wcscoll.c: New file. * lib/wcscoll-impl.h: New file. * m4/wcscoll.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscoll is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCOLL, HAVE_WCSCOLL. * modules/wchar (Makefile.am): Substitute GNULIB_WCSCOLL, HAVE_WCSCOLL. * tests/test-wchar-c++.cc: Test the declaration of wcscoll. * doc/posix-functions/wcscoll.texi: Mention the new module. 2011-02-06 Bruno Haible New module 'wcsncasecmp'. * modules/wcsncasecmp: New file. * lib/wchar.in.h (wcsncasecmp): New declaration. * lib/wcsncasecmp.c: New file. * lib/wcsncasecmp-impl.h: New file, from libutf8 with modifications. * m4/wcsncasecmp.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsncasecmp is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSNCASECMP, HAVE_WCSNCASECMP. * modules/wchar (Makefile.am): Substitute GNULIB_WCSNCASECMP, HAVE_WCSNCASECMP. * tests/test-wchar-c++.cc: Test the declaration of wcsncasecmp. * doc/posix-functions/wcsncasecmp.texi: Mention the new module. 2011-02-06 Bruno Haible New module 'wcscasecmp'. * modules/wcscasecmp: New file. * lib/wchar.in.h (wcscasecmp): New declaration. * lib/wcscasecmp.c: New file. * lib/wcscasecmp-impl.h: New file, from libutf8 with modifications. * m4/wcscasecmp.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscasecmp is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCASECMP, HAVE_WCSCASECMP. * modules/wchar (Makefile.am): Substitute GNULIB_WCSCASECMP, HAVE_WCSCASECMP. * tests/test-wchar-c++.cc: Test the declaration of wcscasecmp. * doc/posix-functions/wcscasecmp.texi: Mention the new module. 2011-02-05 Bruno Haible New module 'wcsncmp'. * modules/wcsncmp: New file. * lib/wchar.in.h (wcsncmp): New declaration. * lib/wcsncmp.c: New file. * lib/wcsncmp-impl.h: New file, from libutf8 with modifications. * m4/wcsncmp.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsncmp is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSNCMP, HAVE_WCSNCMP. * modules/wchar (Makefile.am): Substitute GNULIB_WCSNCMP, HAVE_WCSNCMP. * tests/test-wchar-c++.cc: Test the declaration of wcsncmp. * doc/posix-functions/wcsncmp.texi: Mention the new module. 2011-02-05 Bruno Haible New module 'wcscmp'. * modules/wcscmp: New file. * lib/wchar.in.h (wcscmp): New declaration. * lib/wcscmp.c: New file. * lib/wcscmp-impl.h: New file, from libutf8 with modifications. * m4/wcscmp.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscmp is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCMP, HAVE_WCSCMP. * modules/wchar (Makefile.am): Substitute GNULIB_WCSCMP, HAVE_WCSCMP. * tests/test-wchar-c++.cc: Test the declaration of wcscmp. * doc/posix-functions/wcscmp.texi: Mention the new module. 2011-02-05 Bruno Haible New module 'wcsncat'. * modules/wcsncat: New file. * lib/wchar.in.h (wcsncat): New declaration. * lib/wcsncat.c: New file. * lib/wcsncat-impl.h: New file, from libutf8 with modifications. * m4/wcsncat.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsncat is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSNCAT, HAVE_WCSNCAT. * modules/wchar (Makefile.am): Substitute GNULIB_WCSNCAT, HAVE_WCSNCAT. * tests/test-wchar-c++.cc: Test the declaration of wcsncat. * doc/posix-functions/wcsncat.texi: Mention the new module. 2011-02-05 Bruno Haible New module 'wcscat'. * modules/wcscat: New file. * lib/wchar.in.h (wcscat): New declaration. * lib/wcscat.c: New file. * lib/wcscat-impl.h: New file, from libutf8 with modifications. * m4/wcscat.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscat is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCAT, HAVE_WCSCAT. * modules/wchar (Makefile.am): Substitute GNULIB_WCSCAT, HAVE_WCSCAT. * tests/test-wchar-c++.cc: Test the declaration of wcscat. * doc/posix-functions/wcscat.texi: Mention the new module. 2011-02-05 Bruno Haible New module 'wcpncpy'. * modules/wcpncpy: New file. * lib/wchar.in.h (wcpncpy): New declaration. * lib/wcpncpy.c: New file. * lib/wcpncpy-impl.h: New file, from libutf8 with modifications. * m4/wcpncpy.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcpncpy is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCPNCPY, HAVE_WCPNCPY. * modules/wchar (Makefile.am): Substitute GNULIB_WCPNCPY, HAVE_WCPNCPY. * tests/test-wchar-c++.cc: Test the declaration of wcpncpy. * doc/posix-functions/wcpncpy.texi: Mention the new module. 2011-02-05 Bruno Haible New module 'wcsncpy'. * modules/wcsncpy: New file. * lib/wchar.in.h (wcsncpy): New declaration. * lib/wcsncpy.c: New file. * lib/wcsncpy-impl.h: New file, from libutf8 with modifications. * m4/wcsncpy.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsncpy is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSNCPY, HAVE_WCSNCPY. * modules/wchar (Makefile.am): Substitute GNULIB_WCSNCPY, HAVE_WCSNCPY. * tests/test-wchar-c++.cc: Test the declaration of wcsncpy. * doc/posix-functions/wcsncpy.texi: Mention the new module. 2011-02-05 Bruno Haible New module 'wcpcpy'. * modules/wcpcpy: New file. * lib/wchar.in.h (wcpcpy): New declaration. * lib/wcpcpy.c: New file. * lib/wcpcpy-impl.h: New file, from libutf8 with modifications. * m4/wcpcpy.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcpcpy is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCPCPY, HAVE_WCPCPY. * modules/wchar (Makefile.am): Substitute GNULIB_WCPCPY, HAVE_WCPCPY. * tests/test-wchar-c++.cc: Test the declaration of wcpcpy. * doc/posix-functions/wcpcpy.texi: Mention the new module. 2011-02-05 Bruno Haible New module 'wcscpy'. * modules/wcscpy: New file. * lib/wchar.in.h (wcscpy): New declaration. * lib/wcscpy.c: New file. * lib/wcscpy-impl.h: New file, from libutf8 with modifications. * m4/wcscpy.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscpy is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCPY, HAVE_WCSCPY. * modules/wchar (Makefile.am): Substitute GNULIB_WCSCPY, HAVE_WCSCPY. * tests/test-wchar-c++.cc: Test the declaration of wcscpy. * doc/posix-functions/wcscpy.texi: Mention the new module. 2011-02-05 Bruno Haible New module 'wcsnlen'. * modules/wcsnlen: New file. * lib/wchar.in.h (wcsnlen): New declaration. * lib/wcsnlen.c: New file. * lib/wcsnlen-impl.h: New file, from libutf8 with modifications. * m4/wcsnlen.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsnlen is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSNLEN, HAVE_WCSNLEN. * modules/wchar (Makefile.am): Substitute GNULIB_WCSNLEN, HAVE_WCSNLEN. * tests/test-wchar-c++.cc: Test the declaration of wcsnlen. * doc/posix-functions/wcsnlen.texi: Mention the new module. 2011-02-05 Bruno Haible New module 'wcslen'. * modules/wcslen: New file. * lib/wchar.in.h (wcslen): New declaration. * lib/wcslen.c: New file. * lib/wcslen-impl.h: New file, from libutf8 with modifications. * m4/wcslen.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcslen is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSLEN, HAVE_WCSLEN. * modules/wchar (Makefile.am): Substitute GNULIB_WCSLEN, HAVE_WCSLEN. * tests/test-wchar-c++.cc: Test the declaration of wcslen. * doc/posix-functions/wcslen.texi: Mention the new module. 2011-02-05 Bruno Haible New module 'wmemset'. * modules/wmemset: New file. * lib/wchar.in.h (wmemset): New declaration. * lib/wmemset.c: New file. * lib/wmemset-impl.h: New file, from libutf8 with modifications. * m4/wmemset.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wmemset is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WMEMSET, HAVE_WMEMSET. * modules/wchar (Makefile.am): Substitute GNULIB_WMEMSET, HAVE_WMEMSET. * tests/test-wchar-c++.cc: Test the declaration of wmemset. * doc/posix-functions/wmemset.texi: Mention the new module. 2011-02-05 Bruno Haible New module 'wmemmove'. * modules/wmemmove: New file. * lib/wchar.in.h (wmemmove): New declaration. * lib/wmemmove.c: New file. * lib/wmemmove-impl.h: New file, from libutf8 with modifications. * m4/wmemmove.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wmemmove is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WMEMMOVE, HAVE_WMEMMOVE. * modules/wchar (Makefile.am): Substitute GNULIB_WMEMMOVE, HAVE_WMEMMOVE. * tests/test-wchar-c++.cc: Test the declaration of wmemmove. * doc/posix-functions/wmemmove.texi: Mention the new module. 2011-02-05 Bruno Haible New module 'wmemcpy'. * modules/wmemcpy: New file. * lib/wchar.in.h (wmemcpy): New declaration. * lib/wmemcpy.c: New file. * lib/wmemcpy-impl.h: New file, from libutf8 with modifications. * m4/wmemcpy.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wmemcpy is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WMEMCPY, HAVE_WMEMCPY. * modules/wchar (Makefile.am): Substitute GNULIB_WMEMCPY, HAVE_WMEMCPY. * tests/test-wchar-c++.cc: Test the declaration of wmemcpy. * doc/posix-functions/wmemcpy.texi: Mention the new module. 2011-02-05 Bruno Haible New module 'wmemcmp'. * modules/wmemcmp: New file. * lib/wchar.in.h (wmemcmp): New declaration. * lib/wmemcmp.c: New file. * lib/wmemcmp-impl.h: New file, from libutf8 with modifications. * m4/wmemcmp.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wmemcmp is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WMEMCMP, HAVE_WMEMCMP. * modules/wchar (Makefile.am): Substitute GNULIB_WMEMCMP, HAVE_WMEMCMP. * tests/test-wchar-c++.cc: Test the declaration of wmemcmp. * doc/posix-functions/wmemcmp.texi: Mention the new module. 2011-02-07 Jim Meyering di-set, ino-map: new modules, from coreutils * lib/di-set.c: New file. * lib/di-set.h: Likewise. * lib/ino-map.c: Likewise. * lib/ino-map.h: Likewise. * modules/di-set: Likewise. * modules/di-set-tests: Likewise. * modules/ino-map: Likewise. * modules/ino-map-tests: Likewise. * tests/test-di-set.c: Likewise. * tests/test-ino-map.c: Likewise. 2011-02-06 Paul Eggert getloadavg: merge minor changes from Emacs * lib/getloadavg.c (getloadavg_initialized): More-accurate comment. (getloadavg): Use memset, not bzero. 2008-07-25 Chong Yidong * lib/getloadavg.c (nl): Rename to name_list to avoid ncurses.h clash (bug#86). 2010-11-14 Bruno Haible Allow multiple gnulib generated replacements to coexist. * lib/getopt.in.h (struct option): Avoid identical redefinition. * lib/inttypes.in.h (imaxdiv_t): Likewise. * lib/langinfo.in.h (nl_item): Likewise. * lib/math.in.h (_NaN, NAN): Likewise. * lib/netdb.in.h (struct addrinfo): Likewise. * lib/poll.in.h (struct pollfd, nfds_t): Likewise. * lib/pthread.in.h (pthread_t, pthread_attr_t, pthread_barrier_t, pthread_barrierattr_t, pthread_cond_t, pthread_condattr_t, pthread_key_t, pthread_mutex_t, pthread_mutexattr_t, pthread_once_t, pthread_rwlock_t, pthread_rwlockattr_t, pthread_cond_destroy, pthread_cond_init, pthread_cond_signal, pthread_cond_wait, pthread_create, pthread_exit, pthread_join, pthread_mutexattr_destroy, pthread_mutexattr_init, pthread_mutexattr_settype, pthread_mutex_destroy, pthread_mutex_init, pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock, pthread_spinlock_t, pthread_spin_init, pthread_spin_destroy, pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock): Likewise. * lib/sched.in.h (struct sched_param): Likewise. * lib/se-selinux.in.h (security_class_t, security_context_t, is_selinux_enabled, getcon, freecon, getfscreatecon, setfscreatecon, matchpathcon, getfilecon, lgetfilecon, fgetfilecon, setfilecon, lsetfilecon, fsetfilecon, security_check_context, security_check_context_raw, setexeccon, matchpathcon_init_prefix): Likewise. * lib/search.in.h (VISIT, _gl_search_compar_fn, _gl_search_action_fn): Likewise. * lib/signal.in.h (sig_atomic_t, sigset_t, verify_NSIG_constraint, _gl_function_taking_int_returning_void_t, union sigval, struct siginfo_t, siginfo_t, struct sigaction): Likewise. * lib/spawn.in.h (posix_spawnattr_t, posix_spawn_file_actions_t, verify_POSIX_SPAWN_USEVFORK_no_overlap): Likewise. * lib/stdint.in.h (gl_int8_t, gl_uint8_t, gl_int16_t, gl_uint16_t, gl_int32_t, gl_uint32_t, gl_int64_t, gl_uint64_t, int_least8_t, uint_least8_t, int_least16_t, uint_least16_t, int_least32_t, uint_least32_t, int_least64_t, uint_least64_t, gl_int_fast8_t, gl_uint_fast8_t, gl_int_fast16_t, gl_uint_fast16_t, gl_int_fast32_t, gl_uint_fast32_t, int_fast64_t, uint_fast64_t, gl_intptr_t, gl_uintptr_t, intmax_t, uintmax_t, _verify_intmax_size): Likewise. * lib/stdio.in.h (rpl_fseek, rpl_ftell): Likewise. * lib/sys_socket.in.h (sa_family_t, struct sockaddr_storage, socklen_t, rpl_fd_isset): Likewise. * lib/sys_stat.in.h (rpl_mkdir): Likewise. * lib/sys_time.in.h (struct timeval): Likewise. * lib/sys_times.in.h (struct tms): Likewise. * lib/sys_utsname.in.h (struct utsname): * lib/time.in.h (struct timespec, __time_t_must_be_integral): Likewise. * lib/unistd.in.h (getpagesize): Likewise. * lib/wchar.in.h (mbstate_t): Likewise. * lib/wctype.in.h (iswalnum, iswalpha, iswblank, iswcntrl, iswdigit, iswgraph, iswlower, iswprint, iswpunct, iswspace, iswupper, iswxdigit, towlower, towupper): Likewise. Reported by Sam Steingold . 2011-02-05 Eric Blake unsetenv: work around Haiku issues * m4/setenv.m4 (gl_FUNC_UNSETENV): Also detect Haiku issue. * doc/posix-functions/unsetenv.texi (unsetenv): Document it. 2010-12-30 Bruce Korb libposix: avoid calling error() within libposix * lib/openat-die.c: remove error module stuff when GNULIB_LIBPOSIX is defined. 2011-02-05 Eric Blake strerror_r-posix: port to cygwin * lib/strerror_r.c (strerror_r) [__CYGWIN__]: Add cygwin implementation. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Adjust comment. * tests/test-strerror_r.c (main): Fix test. * doc/posix-functions/strerror_r.texi (strerror_r): Document the issue. 2011-02-05 Bruno Haible New module 'wmemchr'. * modules/wmemchr: New file. * lib/wchar.in.h (wmemchr): New declaration. * lib/wmemchr.c: New file. * lib/wmemchr-impl.h: New file, from libutf8 with modifications. * m4/wmemchr.m4: New file. * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wmemchr is declared. (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WMEMCHR, HAVE_WMEMCHR. * modules/wchar (Makefile.am): Substitute GNULIB_WMEMCHR, HAVE_WMEMCHR. * tests/test-wchar-c++.cc: Test the declaration of wmemchr. * doc/posix-functions/wmemchr.texi: Mention the new module. 2011-02-04 Eric Blake fdopendir: detect FreeBSD bug * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Detect bug. * doc/posix-functions/fdopendir.texi (fdopendir): Document it. 2011-02-04 Paul Eggert stdbool: do not define HAVE_STDBOOL_H * m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Renamed from AC_HEADER_STDBOOL. All uses changed. Do not define HAVE_STDBOOL_H, as gnulib does not need this. This change is imported from the latest Autoconf git. It was motivated by Emacs, which uses gnulib but does not need HAVE_STDBOOL_H. 2011-02-04 Bruno Haible wcsnrtombs: Prepare for new module wwcsnrtombs. * lib/wcsnrtombs-impl.h: New file, extracted from lib/wcsnrtombs.c. * lib/wcsnrtombs.c: Include it. * modules/wcsnrtombs (Files): Add lib/wcsnrtombs-impl.h. wcsrtombs: Prepare for new module wwcsrtombs. * lib/wcsrtombs-impl.h: New file, extracted from lib/wcsrtombs.c. * lib/wcsrtombs.c: Include it. * modules/wcsrtombs (Files): Add lib/wcsrtombs-impl.h. mbsnrtowcs: Prepare for new module mbsnrtowwcs. * lib/mbsnrtowcs-impl.h: New file, extracted from lib/mbsnrtowcs.c. * lib/mbsnrtowcs.c: Include it. * modules/mbsnrtowcs (Files): Add lib/mbsnrtowcs-impl.h. mbsrtowcs: Prepare for new module mbsrtowwcs. * lib/mbsrtowcs-impl.h: New file, extracted from lib/mbsrtowcs.c. * lib/mbsrtowcs.c: Include it. * modules/mbsrtowcs (Files): Add lib/mbsrtowcs-impl.h. 2011-02-04 Bruno Haible vasnprintf: Reduce use of malloc for small format strings. * lib/printf-args.h (N_DIRECT_ALLOC_ARGUMENTS): New macro. (arguments): Add room for the first 7 arguments. * lib/printf-parse.h (N_DIRECT_ALLOC_DIRECTIVES): New macro. (char_directives, u8_directives, u16_directives, u32_directives): Add room for the first 7 directives. * lib/printf-parse.c: Include . (PRINTF_PARSE): Change memory handling code so that it uses the first 7 preallocated elements in an 'arguments' or 'DIRECTIVES' struct. * lib/vasnprintf.c (VASNPRINTF): Update memory handling code. Reported by Pádraig Brady . 2011-01-31 Eric Blake dup2: work around Haiku bug * m4/dup2.m4 (gl_FUNC_DUP2): Test for bug. * lib/dup2.c (rpl_dup2) [!WIN32]: Add workaround. * doc/posix-functions/dup2.texi (dup2): Document the bug. * tests/test-dup2.c (main): Enhance test. 2011-01-31 Simon Josefsson doc: off_t is not available in eglibc 2.11.2 stdio.h. * doc/posix-headers/stdio.texi (stdio.h): Mention that off_t isn't declared by eglibc 2.11.2. * lib/stdio.in.h: Likewise. 2011-01-31 Eric Blake ignore-value: add missing test dependency * tests/test-ignore-value.c: Revert previous change; stdio.h provides off_t. * modules/ignore-value-tests (Depends-on): Add missing dependency. 2011-01-30 Paul Eggert 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 . 2011-01-30 Simon Josefsson ignore-value: Fix self-test. * tests/test-ignore-value.c: Include sys/types.h for off_t. 2011-01-29 Paul Eggert 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 . * lib/strtol.c (TYPE_MINIMUM, TYPE_MAXIMUM): Likewise. * m4/mktime.m4 (AC_FUNC_MKTIME): Likewise. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise. * m4/parse-datetime.m4 (gl_PARSE_DATETIME): Likewise. * m4/stdint.m4 (gl_STDINT_H): 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 (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 . 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 . (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 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-29 Simon Josefsson rename, unlink, same-inode: Relicense. * modules/rename (License): Relax from LGPLv3+ to LGPLv2+. * modules/unlink (License): Likewise. * modules/same-inode (License): Likewise. 2011-01-28 Paul Eggert 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 move-if-change: cope with concurrent mv of identical file. * build-aux/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. 2011-01-28 Bruce Korb * users.txt: Mention sharutils. 2011-01-28 Simon Josefsson * users.txt: Mention OATH Toolkit. 2011-01-27 Bruno Haible Prepare for supporting FreeBSD 10. * build-aux/config.libpath: Remove handling of freebsd1*. 2011-01-27 Gerald Pfeifer (tiny change) Prepare for supporting FreeBSD 10. * build-aux/config.rpath: Remove handling of freebsd1* which soon would match FreeBSD 10.0. 2011-01-27 Bruno Haible vma-iter, get-rusage-as: Add OpenBSD support. * modules/vma-iter (configure.ac): Test for mquery. * lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define also on OpenBSD. * lib/vma-iter.c: Include . (vma_iterate): Add an implementation based on mquery(). * lib/resource-ext.h (get_rusage_as): Update comments. * lib/get-rusage-as.c: Likewise. * lib/get-rusage-data.c: Likewise. 2011-01-26 Karl Berry * doc/Makefile (lang_env, makeinfo_prog, manual_opts): new variables to make it easier to override the makeinfo program used. 2011-01-26 Eric Blake fcntl: work around Haiku F_DUPFD bugs * m4/fcntl.m4 (gl_FUNC_FCNTL): Also catch Haiku errno bug. * lib/fcntl.c (rpl_fcntl) [F_DUPFD]: Work around Haiku losing cloexec bit on duplication. * doc/posix-functions/fcntl.texi (fcntl): Document the bug. 2011-01-26 Bruno Haible Enable memory leak tests on AIX. * tests/test-dprintf-posix2.c (main): Don't skip the test on AIX. * tests/test-fprintf-posix3.c (main): Likewise. 2011-01-26 Bruno Haible Tests for module 'get-rusage-data'. * modules/get-rusage-data-tests: New file. * tests/test-get-rusage-data.c: New file. New module 'get-rusage-data'. * lib/resource-ext.h (get_rusage_data): New declaration. * lib/get-rusage-data.c: New file. * modules/get-rusage-data: New file. 2011-01-25 Bruno Haible get-rusage-as: Allow for easier testing. * lib/resource-ext.h (get_rusage_as): Add comment. * lib/get-rusage-as.c (get_rusage_as_via_setrlimit): Define always. (main): New function for interactive testing. 2011-01-25 Bruno Haible vma-iter: Treat Haiku like BeOS. * lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Define on Haiku as well. * lib/vma-iter.c (vma_iterate) [Haiku]: Use the BeOS API. 2011-01-25 Eric Blake c-stack: fix regression on cygwin when libsigsegv is present * lib/c-stack.c (die): Don't flatten error if sigsegv is present. 2011-01-24 Bruno Haible vma-iter: Avoid empty intervals. * lib/vma-iter.c (vma_iterate) [IRIX, OSF/1]: Don't call the callback on an empty interval. 2011-01-24 Jim Meyering u64: remove unnecessary #include * lib/u64.h: Don't include . It was not used. 2011-01-23 Paul Eggert Allow the user to avoid the HAVE_RAW_DECL_* macros. * m4/gnulib-common.m4 (gl_ASSERT_NO_GNULIB_POSIXCHECK): New macro. 2011-01-23 Bruno Haible New module 'vma-iter'. * lib/vma-iter.h: New file. * lib/vma-iter.c: New file, based on lib/get-rusage-as.c. * modules/vma-iter: New file. * lib/get-rusage-as.c: Include vma-iter.h. Don't include system headers for get_rusage_as_via_iterator. (vma_iterate_callback): New function. (get_rusage_as_via_iterator): Rewritten to use vma_iterate. * modules/get-rusage-as (Depends-on): Add vma-iter. 2011-01-23 Bruno Haible uninorm: Tweak includes. * lib/uninorm/normalize-internal.h: Don't include . Reported by Jim Meyering. 2011-01-23 Bruno Haible get-rusage-as: Improve on NetBSD. * lib/get-rusage-as.c (get_rusage_as_via_iterator): On NetBSD, use /proc, like on FreeBSD. 2011-01-23 Jim Meyering xreadlink.h: remove unnecessary #include * lib/xreadlink.h: Don't include . It was not used. maint.mk: add syntax-check rule: detect unnecessary #include * top/maint.mk (sc_prohibit_stddef_without_use): New rule. 2011-01-23 Bruno Haible get-rusage-as: Fix bug. * lib/get-rusage-as.c (get_rusage_as_via_setrlimit): Restore the original limit when aborting the first loop. 2011-01-23 Bruno Haible wctype: Ensure valid C syntax. * m4/wctype_h.m4 (gl_WCTYPE_H): Invoke gl_CHECK_NEXT_HEADERS unconditionally, instead of gl_NEXT_HEADERS conditionally. 2011-01-21 Paul Eggert getopt: omit HAVE_OPTRESET, HAVE_GETOPT_CLIP from config.h * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Do not put the symbols HAVE_OPTRESET and HAVE_GETOPT_CLIP into config.h, as they are needed only for configure's test case. This removes two unnecessary symbols from config.h. gl_CHECK_NEXT_HEADERS implies AC_CHECK_HEADERS_ONCE * m4/include_next.m4 (gl_CHECK_HEXT_HEADERS): Document this. * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Don't bother to invoke AC_CHECK_HEADERS_ONCE on a header that we also invoke gl_CHECK_NEXT_HEADERS on, since the latter invokes the former. * m4/netdb_h.m4 (gl_HEADER_NETDB): Likewise. * m4/pthread.m4 (gl_PTHREAD_CHECK): Likewise. * m4/sched_h.m4 (gl_SCHED_H): Likewise. * m4/search_h.m4 (gl_SEARCH_H): Likewise. * m4/spawn_h.m4 (gl_SPAWN_H): Likewise. * m4/sys_file_h.m4 (gl_HEADER_SYS_FILE_H): Likewise. * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise. * m4/sys_times_h.m4 (gl_SYS_TIMES_H): Likewise. * m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H): Likewise. * m4/termios_h.m4 (gl_TERMIOS_H): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H): Likewise. * m4/wchar_h.m4 (gl_WCHAR_H): Likewise. * m4/wctype_h.m4 (gl_WCTYPE_H): Likewise. 2011-01-21 Eric Blake maintainer-makefile: work with older git for submodule check * top/maint.mk (public-submodule-commit): Rewrite to avoid merge-base --independent, which Ubuntu 10.04 git 1.7.0.4 lacks. Reported by Matthias Bolte. bootstrap: minor portability fixes * build-aux/bootstrap (me): Use $me instead of $0 in functions. (usage): Omit leading capital and trailing . on help phrases, per GNU Coding Standards. (check_versions, top level): Prefix messages with script name. 2011-01-21 Benjamin Lindner (tiny change) bootstrap: support --no-git option * build-aux/bootstrap: Add --no-git option, to be used when --gnulib-srcdir points to the exact desired checkout. 2011-01-21 Eric Blake strerror_r-posix: work with glibc 2.13 * lib/strerror_r.c (strerror_r): Fix return type. 2011-01-21 Pádraig Brady Bruno Haible uN_strstr: New unit tests. * modules/unistr/u8-strstr-tests: New file. * modules/unistr/u16-strstr-tests: New file. * modules/unistr/u32-strstr-tests: New file. * tests/unistr/test-u-strstr.h: New file, based on tests/test-strstr.c. * tests/unistr/test-u8-strstr.c: New file. * tests/unistr/test-u16-strstr.c: New file. * tests/unistr/test-u32-strstr.c: New file. 2011-01-21 Pádraig Brady Bruno Haible Make uN_strstr functions O(n) worst-case. * lib/unistr/u-strstr.h (FUNC): In the 8-bit case, use strstr. In the 16-bit and 32-bit unit cases, use the unibyte algorithm from lib/mbsstr.c. * lib/unistr/u8-strstr.c: Include . (UNIT_IS_UINT8_T): New macro. * lib/unistr/u16-strstr.c: Include malloca.h and str-kmp.h. (U_STRLEN, U_STRNLEN): New macros. * lib/unistr/u32-strstr.c: Include malloca.h and str-kmp.h. (U_STRLEN, U_STRNLEN): New macros. * modules/unistr/u8-strstr (Depends-on): Add strstr. (configure.ac): Update required libunistring version. * modules/unistr/u16-strstr (Files): Add lib/str-kmp.h. (Depends-on): Add unistr/u16-strlen, unistr/u16-strnlen, stdbool, malloca. (configure.ac): Update required libunistring version. * modules/unistr/u32-strstr (Files): Add lib/str-kmp.h. (Depends-on): Add unistr/u32-strlen, unistr/u32-strnlen, stdbool, malloca. (configure.ac): Update required libunistring version. 2011-01-21 Pádraig Brady Bruno Haible Prepare for faster uN_strstr functions. * lib/str-kmp.h: Support definable UNITs. (knuth_morris_pratt): Renamed from knuth_morris_pratt_unibyte. Add needle_len argument. * lib/mbsstr.c (mbsstr): Adjust for the changed str-kmp.h. * lib/mbscasestr.c (mbscasestr): Likewise. 2011-01-21 Pádraig Brady malloca-tests: make faster by unsetting MALLOC_PERTURB_ * tests/test-malloca.c (main): Unset the environment variable to greatly speed up the test. * tests/init.sh: Don't say that MALLOC_PERTURB_ is cheap. * modules/malloca-tests: Depend on unsetenv. 2011-01-21 Pádraig Brady ignore-value: remove stdint dependency * lib/ignore-value.h: Remove * modules/ignore-value: Remove stdint dependency. 2011-01-21 Jim Meyering maint.mk: adjust variable name to be consistent with other gl_ vars * top/maint.mk (gl_public_submodule_commit): Rename the variable to be lower case. 2011-01-20 Jim Meyering maint.mk: make "check" depend on public-submodule-commit by default * top/maint.mk (GL_PUBLIC_SUBMODULE_COMMIT): New overridable variable. 2011-01-20 Bruno Haible mbfile, mbiter: Complete change from 2008-12-21. * m4/mbfile.m4 (gl_MBFILE): Don't require AC_FUNC_MBRTOWC. * m4/mbiter.m4 (gl_MBITER): Likewise. 2011-01-20 Jim Meyering init.sh: insert space between each function name and "()" * tests/init.sh: Make it a little easier to see that a function's name is "warn_", and not "warn" when looking at the first part of its definition: "warn_ ()". Suggested by Ralf Wildenhues. 2011-01-20 Jim Meyering mountlist: clean up code formatting * lib/mountlist.c (read_file_system_list): Split a long line, correct bracing style, use NULL in place of "(struct statfs *)0", don't parenthesize return value, add spaces around "=" and after ";-in-for-stmt". 2011-01-14 Markus Duft mountlist: add support for Interix * lib/mountlist.c (read_file_system_list) [MOUNTED_INTERIX_STATVFS]: Apply statvfs to all entries of /dev/fs. * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Check for statvfs, and if found, AC_DEFINE MOUNTED_INTERIX_STATVFS. 2011-01-20 Jim Meyering maint.mk: improve the public-submodule-commit rule * top/maint.mk (public-submodule-commit): Prefix with $(AM_V_GEN), to suppress printing of its commands... unless V=1. Add git submodule's --quiet option to suppress printing of e.g., "Entering gnulib" output. "cd" into $(srcdir) before running git submodule. 2011-01-20 Bruno Haible include_next: Fix bug introduced on 2011-01-18. * m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): New macro, extracted from gl_CHECK_NEXT_HEADERS and gl_NEXT_HEADERS. Omit test of ac_cv_header_... variable if the second argument is not 'check'. (gl_CHECK_NEXT_HEADERS, gl_NEXT_HEADERS): Invoke gl_NEXT_HEADERS_INTERNAL. 2011-01-20 Bruno Haible Allow the user to avoid the GNULIB_TEST_* macros. * m4/gnulib-common.m4 (gl_ASSERT_NO_GNULIB_TESTS): New macro. Suggested by Paul Eggert. 2011-01-14 Jim Meyering bootstrap: avoid failure when there is no .gitmodules file ": ${gnulib_path=gnulib}" fails to set $gnulib_path when that variable has been assigned to, even when its value is the empty string. * build-aux/bootstrap (gnulib_path): Test explicitly for an empty "$gnulib_path", rather than using ${gnulib_path=gnulib}. Reported by John W. Eaton . 2011-01-19 Paul Eggert assume , ..., exist For years gnulib has been assuming the existence of the headers , , , , , , , , and . Omit checks for them, since they don't appear to be needed. * README (Portability guidelines): Document this. * lib/flock.c: Assume exists. * lib/regex_internal.h: Assume exists. * m4/ctype.m4 (gl_CTYPE_H): Assume exists. * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Assume exists. * m4/fcntl_h.m4 (gl_FCNTL_H): Assume exists. * m4/flock.m4 (gl_PREREQ_FLOCK): Likewise. * m4/locale_h.m4 (gl_LOCALE_H): Assume exists. * m4/regex.m4 (gl_REGEX): Likewise. * m4/signal_h.m4 (gl_SIGNAL_H): Assume exists. * m4/stdio_h.m4 (gl_STDIO_H): Assume exists. * m4/stdlib_h.m4 (gl_STDLIB_H): Assume exists. * m4/string_h.m4 (gl_STRING_H): Assume exists. * tests/test-argp.c: Likewise. * m4/time_h.m4 (gl_HEADER_TIME_H_BODY): Assume exists. multiarch: remove AA_APPLE_UNIVERSAL_BUILD * m4/multiarch.m4 (gl_MULTIARCH): Don't AC_DEFINE AA_APPLE_UNIVERSAL_BUILD. See . * NEWS: Document this. 2011-01-19 Eric Blake c-stack: assume stack overflow if SA_SIGINFO unsupported * lib/c-stack.c (SIGACTION_WORKS): Rename... (SIGINFO_WORKS): ...since gnulib module guarantees that (most) of sigaction will work. (die): Assume stack overflow if siginfo doesn't work, to let Haiku behavior match Linux. * tests/test-c-stack.c (main): Prefer NULL for pointers. stdbool-tests: accommodate Haiku * tests/test-stdbool.c: Haiku's gcc 2.95 lacks native _Bool. binary-io: fix O_TEXT on Haiku * modules/binary-io (Depends-on): Add fcntl-h. * lib/binary-io.h (O_TEXT): Rely on replacement rather than blindly undefining O_TEXT. Reported by Scott McCreary. 2011-01-18 Paul Eggert include_next: do not check for standard headers like stddef.h I found this problem when modifying Emacs to use gnulib. I noticed that it added HAVE_STDDEF_H to config.h, even though gnulib always assumes exists as per README and this symbol is unnecessary. * m4/include_next.m4 (gl_NEXT_HEADERS): New macro, which does not use AC_CHECK_HEADERS_ONCE, but which otherwise contains what gl_CHECK_NEXT_HEADERS used to contain. This makes 'configure' run faster for headers like stddef.h that are known to exist. (gl_CHECK_NEXT_HEADERS): Use it. * m4/float_h.m4 (gl_FLOAT_H): For float.h, use gl_NEXT_HEADERS rather than gl_CHECK_NEXT_HEADERS. * m4/stdarg.m4 (gl_STDARG_H): Likewise, for stdarg.h. * m4/stddef_h.m4 (gl_STDDEF_H): Likewise, for stddef.h. 2011-01-18 Eric Blake ansi-c++-opt: skip C++ dependency style if C++ is unused * m4/ansi-c++.m4 (gl_PROG_ANSI_CXX): Avoid full-blown dependency tests when we know C++ compilation is not desired. Reported by Scott McCreary. 2011-01-18 Bruno Haible *printf-posix: Avoid test failures. Make tests work on MacOS X, Cygwin. * tests/test-fprintf-posix3.c: Include "resource-ext.h". (main): Perform test also when getrlimit and setrlimit don't exist or when setrlimit of RLIMIT_DATA fails (like on Cygwin). Instead of limiting the address space size using setrlimit, compare the address space size before and after the test. * tests/test-dprintf-posix2.c: Likewise. * tests/test-fprintf-posix3.sh: Update skip messages. * tests/test-dprintf-posix2.sh: Likewise. * modules/fprintf-posix-tests (Depends-on): Add get-rusage-as. * modules/dprintf-posix-tests (Depends-on): Likewise. Reported by Bruce Korb and Gary V. Vaughan . 2011-01-18 Bruno Haible get-rusage-as: Improvement for Cygwin. * lib/get-rusage-as.c (get_rusage_as_via_iterator): On Windows, ignore areas that are merely reserved. 2011-01-18 Paul Eggert strftime: remove dependencies on multibyte modules strftime depended on mbrlen, mbsinit, and wchar, but these modules are needed only if ! MULTIBYTE_IS_FORMAT_SAFE, and that is true only if __osf__ is defined, and I suspect OSF doesn't need these other modules. If my guess is wrong, we'll need to come up with a variant of strftime that doesn't need the multibyte modules. I discovered this problem when attempting modify Emacs to use the strftime module. With the previous gnulib, this caused Emacs to need 31 new files, ranging from lib/config.charset to m4/wint_t.m4. This was overkill and I expect would be offputting to the Emacs maintainers. After this change, only 6 new files are needed, namely strftime.[ch], srtftime.m4, stdbool.in.h, stdbool.m4, and tm_gmtoff.m4. * lib/strftime.c (MULTIBYTE_IS_FORMAT_SAFE): Define to 1 always. Suggested by Bruno Haible in . * m4/strftime.m4 (gl_FUNC_STRFTIME): Do not require AC_TYPE_MBSTATE_T, and do not check for wchar.h. * modules/strftime (Files): Remove m4/mbstate_t.m4. (Depends-on): Remove mbrlen, mbsinit, wchar. 2011-01-18 Bruno Haible Tests for module 'get-rusage-as'. * modules/get-rusage-as-tests: New file. * tests/test-get-rusage-as.c: New file. New module 'get-rusage-as'. * modules/get-rusage-as: New file. * lib/resource-ext.h: New file. * lib/get-rusage-as.c: New file. 2011-01-17 Eric Blake sigaction: relax license from LGPLv3+ to LGPLv2+ * modules/sigaction (License): Relax to LGPLv2+. 2011-01-14 Bruno Haible filemode: Make function declarations usable in C++ mode. * lib/filemode.h: Enclose function declarations in extern "C" block. Reported by John W. Eaton . 2011-01-12 Rob Vermaas save-cwd: no longer include "xgetcwd.h" * lib/save-cwd.c: Don't include "xgetcwd.h"; it's no longer used. This avoids a compilation failure in projects that use save-cwd without also using the xgetcwd module. 2011-01-11 Paul Eggert ftoastr: split into 3 modules ftoastr, dtoastr, ldtoastr This is so that a program like Emacs, which needs only dtoastr, does not have to bother with distributing and compiling ftoastr and ldtoastr. * MODULES.html.sh: Document these modules (ftoastr wasn't documented). * modules/dtoastr, modules/ldtoastr: New files. * modules/ftoastr: Now works just for 'float'. (Files): Remove lib/dtoastr.c, lib/ldtoastr.c. (Makefile.am): Remove ftoastr.h (not needed and no effect), dtoastr.c, ldtoastr.c. 2011-01-11 Jim Meyering save-cwd: remove #if-!HAVE_FCHDIR'd code; use the fchdir module There is no need to work around the lack of the fchdir function, since gnulib can now provide a replacement when required. * lib/save-cwd.c: Remove #if !HAVE_FCHDIR...#endif code. * modules/save-cwd (Depends-on): Add fchdir. 2011-01-11 Paul Eggert openat, save-cwd: avoid xmalloc This removes a direct (but undocumented) dependency of openat on xalloc, along with an indirect dependency via save-cwd. It also removes a dependency of save-cwd on xgetcwd, and thereby indirectly on xalloc. This change causes the openat substitute to fall back on save_cwd when memory is tight, and for save_cwd to fail instead of dying when memory is tight, but that's good enough. Problem and initial idea for fix reported by Bastien Roucaries in . * lib/openat-proc.c: Include stdlib.h (for malloc), not xalloc.h (for xmalloc). (openat_proc_name): Use malloc, not xmalloc. * lib/save-cwd.c (save_cwd): Use getcwd, not xgetcwd. * modules/save-cwd (Files): Depend on getcwd, not xgetcwd. openat: Increase OPENAT_BUFFER_SIZE from 512 to at least 1024 This avoids heap allocation for file names whose lengths are in the range 512..1023, with the upper bound increasing to at most 4031 depending on the platform's PATH_MAX. (We do not want pathmax.h here as it might supply a non-constant PATH_MAX.) * lib/openat-priv.h (SAFER_ALLOCA_MAX, SAFER_ALLOCA): New macros. Perhaps they should be moved to malloca.h? (OPENAT_BUFFER_SIZE): Use them. 2011-01-10 Bruno Haible doc: Update users.txt. * users.txt: Add recutils. 2011-01-09 Karl Berry * doc/posix-functions/gai_strerror.texi: Insert missing @item. * doc/configmake.texi: New file. * doc/gnulib.texi: Include it. * modules/configmake: Move documentation from here. 2011-01-09 Bruno Haible Update to Unicode 6.0.0. * lib/gen-uni-tables.c (symbolic_width): Fix bounds of planes. (get_lbp): Update for Unicode 6.0.0. * lib/uniwidth/width.c (nonspacing_table_data): Add U+065F, U+0859..U+085B, U+093A, U+0956..U+0957, U+0F8D..U+0F8F, U+135D..U+135E, U+1BE6, U+1BE8..U+1BE9, U+1BED, U+1BEF..U+1BF1, U+1DFC, U+2D7F, U+11001, U+11038..U+11046. Remove U+06DE. (uc_width): Fix bounds of planes. * tests/uniwidth/test-uc_width2.sh: Same updates as in lib/uniwidth/width.c. * tests/unigbrk/GraphemeBreakTest.txt: Copied from Unicode 6.0.0, with trailing whitespace removed. * tests/uninorm/NormalizationTest.txt: Update from Unicode 6.0.0, without comments, but with the original copyright notice. * lib/unicase/cased.h: Regenerated for Unicode 6.0.0. * lib/unicase/ignorable.h: Likewise. * lib/unicase/tocasefold.h: Likewise. * lib/unicase/tolower.h: Likewise. * lib/unicase/totitle.h: Likewise. * lib/unicase/toupper.h: Likewise. * lib/unictype/bidi_of.h: Likewise. * lib/unictype/blocks.h: Likewise. * lib/unictype/categ_C.h: Likewise. * lib/unictype/categ_Cn.h: Likewise. * lib/unictype/categ_L.h: Likewise. * lib/unictype/categ_Ll.h: Likewise. * lib/unictype/categ_Lm.h: Likewise. * lib/unictype/categ_Lo.h: Likewise. * lib/unictype/categ_Lu.h: Likewise. * lib/unictype/categ_M.h: Likewise. * lib/unictype/categ_Mc.h: Likewise. * lib/unictype/categ_Me.h: Likewise. * lib/unictype/categ_Mn.h: Likewise. * lib/unictype/categ_N.h: Likewise. * lib/unictype/categ_Nd.h: Likewise. * lib/unictype/categ_No.h: Likewise. * lib/unictype/categ_P.h: Likewise. * lib/unictype/categ_Po.h: Likewise. * lib/unictype/categ_S.h: Likewise. * lib/unictype/categ_Sc.h: Likewise. * lib/unictype/categ_Sk.h: Likewise. * lib/unictype/categ_Sm.h: Likewise. * lib/unictype/categ_So.h: Likewise. * lib/unictype/categ_of.h: Likewise. * lib/unictype/combining.h: Likewise. * lib/unictype/ctype_alnum.h: Likewise. * lib/unictype/ctype_alpha.h: Likewise. * lib/unictype/ctype_graph.h: Likewise. * lib/unictype/ctype_lower.h: Likewise. * lib/unictype/ctype_print.h: Likewise. * lib/unictype/ctype_punct.h: Likewise. * lib/unictype/ctype_upper.h: Likewise. * lib/unictype/decdigit.h: Likewise. * lib/unictype/digit.h: Likewise. * lib/unictype/numeric.h: Likewise. * lib/unictype/pr_alphabetic.h: Likewise. * lib/unictype/pr_bidi_arabic_digit.h: Likewise. * lib/unictype/pr_bidi_arabic_right_to_left.h: Likewise. * lib/unictype/pr_bidi_boundary_neutral.h: Likewise. * lib/unictype/pr_bidi_eur_num_terminator.h: Likewise. * lib/unictype/pr_bidi_hebrew_right_to_left.h: Likewise. * lib/unictype/pr_bidi_left_to_right.h: Likewise. * lib/unictype/pr_bidi_non_spacing_mark.h: Likewise. * lib/unictype/pr_bidi_other_neutral.h: Likewise. * lib/unictype/pr_case_ignorable.h: Likewise. * lib/unictype/pr_cased.h: Likewise. * lib/unictype/pr_changes_when_casefolded.h: Likewise. * lib/unictype/pr_changes_when_casemapped.h: Likewise. * lib/unictype/pr_changes_when_lowercased.h: Likewise. * lib/unictype/pr_changes_when_titlecased.h: Likewise. * lib/unictype/pr_changes_when_uppercased.h: Likewise. * lib/unictype/pr_combining.h: Likewise. * lib/unictype/pr_composite.h: Likewise. * lib/unictype/pr_currency_symbol.h: Likewise. * lib/unictype/pr_decimal_digit.h: Likewise. * lib/unictype/pr_deprecated.h: Likewise. * lib/unictype/pr_format_control.h: Likewise. * lib/unictype/pr_grapheme_base.h: Likewise. * lib/unictype/pr_grapheme_extend.h: Likewise. * lib/unictype/pr_grapheme_link.h: Likewise. * lib/unictype/pr_id_continue.h: Likewise. * lib/unictype/pr_id_start.h: Likewise. * lib/unictype/pr_ideographic.h: Likewise. * lib/unictype/pr_lowercase.h: Likewise. * lib/unictype/pr_math.h: Likewise. * lib/unictype/pr_numeric.h: Likewise. * lib/unictype/pr_other_alphabetic.h: Likewise. * lib/unictype/pr_other_id_continue.h: Likewise. * lib/unictype/pr_other_math.h: Likewise. * lib/unictype/pr_punctuation.h: Likewise. * lib/unictype/pr_sentence_terminal.h: Likewise. * lib/unictype/pr_terminal_punctuation.h: Likewise. * lib/unictype/pr_unassigned_code_value.h: Likewise. * lib/unictype/pr_unified_ideograph.h: Likewise. * lib/unictype/pr_uppercase.h: Likewise. * lib/unictype/pr_xid_continue.h: Likewise. * lib/unictype/pr_xid_start.h: Likewise. * lib/unictype/scripts.h: Likewise. * lib/unictype/scripts_byname.gperf: Likewise. * lib/unictype/sy_java_ident.h: Likewise. * lib/unigbrk/gbrkprop.h: Likewise. * lib/unilbrk/lbrkprop1.h: Likewise. * lib/unilbrk/lbrkprop2.h: Likewise. * lib/uninorm/decomposition-table2.h: Likewise. * lib/uniwbrk/wbrkprop.h: Likewise. * tests/unicase/test-cased.c: Likewise. * tests/unicase/test-ignorable.c: Likewise. * tests/unicase/test-uc_tolower.c: Likewise. * tests/unicase/test-uc_totitle.c: Likewise. * tests/unicase/test-uc_toupper.c: Likewise. * tests/unictype/test-categ_C.c: Likewise. * tests/unictype/test-categ_Cn.c: Likewise. * tests/unictype/test-categ_L.c: Likewise. * tests/unictype/test-categ_Ll.c: Likewise. * tests/unictype/test-categ_Lm.c: Likewise. * tests/unictype/test-categ_Lo.c: Likewise. * tests/unictype/test-categ_Lu.c: Likewise. * tests/unictype/test-categ_M.c: Likewise. * tests/unictype/test-categ_Mc.c: Likewise. * tests/unictype/test-categ_Me.c: Likewise. * tests/unictype/test-categ_Mn.c: Likewise. * tests/unictype/test-categ_N.c: Likewise. * tests/unictype/test-categ_Nd.c: Likewise. * tests/unictype/test-categ_No.c: Likewise. * tests/unictype/test-categ_P.c: Likewise. * tests/unictype/test-categ_Po.c: Likewise. * tests/unictype/test-categ_S.c: Likewise. * tests/unictype/test-categ_Sc.c: Likewise. * tests/unictype/test-categ_Sk.c: Likewise. * tests/unictype/test-categ_Sm.c: Likewise. * tests/unictype/test-categ_So.c: Likewise. * tests/unictype/test-ctype_alnum.c: Likewise. * tests/unictype/test-ctype_alpha.c: Likewise. * tests/unictype/test-ctype_graph.c: Likewise. * tests/unictype/test-ctype_lower.c: Likewise. * tests/unictype/test-ctype_print.c: Likewise. * tests/unictype/test-ctype_punct.c: Likewise. * tests/unictype/test-ctype_upper.c: Likewise. * tests/unictype/test-decdigit.h: Likewise. * tests/unictype/test-digit.h: Likewise. * tests/unictype/test-numeric.h: Likewise. * tests/unictype/test-pr_alphabetic.c: Likewise. * tests/unictype/test-pr_bidi_arabic_digit.c: Likewise. * tests/unictype/test-pr_bidi_arabic_right_to_left.c: Likewise. * tests/unictype/test-pr_bidi_boundary_neutral.c: Likewise. * tests/unictype/test-pr_bidi_eur_num_terminator.c: Likewise. * tests/unictype/test-pr_bidi_hebrew_right_to_left.c: Likewise. * tests/unictype/test-pr_bidi_left_to_right.c: Likewise. * tests/unictype/test-pr_bidi_non_spacing_mark.c: Likewise. * tests/unictype/test-pr_bidi_other_neutral.c: Likewise. * tests/unictype/test-pr_case_ignorable.c: Likewise. * tests/unictype/test-pr_cased.c: Likewise. * tests/unictype/test-pr_changes_when_casefolded.c: Likewise. * tests/unictype/test-pr_changes_when_casemapped.c: Likewise. * tests/unictype/test-pr_changes_when_lowercased.c: Likewise. * tests/unictype/test-pr_changes_when_titlecased.c: Likewise. * tests/unictype/test-pr_changes_when_uppercased.c: Likewise. * tests/unictype/test-pr_combining.c: Likewise. * tests/unictype/test-pr_composite.c: Likewise. * tests/unictype/test-pr_currency_symbol.c: Likewise. * tests/unictype/test-pr_decimal_digit.c: Likewise. * tests/unictype/test-pr_deprecated.c: Likewise. * tests/unictype/test-pr_format_control.c: Likewise. * tests/unictype/test-pr_grapheme_base.c: Likewise. * tests/unictype/test-pr_grapheme_extend.c: Likewise. * tests/unictype/test-pr_grapheme_link.c: Likewise. * tests/unictype/test-pr_id_continue.c: Likewise. * tests/unictype/test-pr_id_start.c: Likewise. * tests/unictype/test-pr_ideographic.c: Likewise. * tests/unictype/test-pr_lowercase.c: Likewise. * tests/unictype/test-pr_math.c: Likewise. * tests/unictype/test-pr_numeric.c: Likewise. * tests/unictype/test-pr_other_alphabetic.c: Likewise. * tests/unictype/test-pr_other_id_continue.c: Likewise. * tests/unictype/test-pr_other_math.c: Likewise. * tests/unictype/test-pr_punctuation.c: Likewise. * tests/unictype/test-pr_sentence_terminal.c: Likewise. * tests/unictype/test-pr_terminal_punctuation.c: Likewise. * tests/unictype/test-pr_unassigned_code_value.c: Likewise. * tests/unictype/test-pr_unified_ideograph.c: Likewise. * tests/unictype/test-pr_uppercase.c: Likewise. * tests/unictype/test-pr_xid_continue.c: Likewise. * tests/unictype/test-pr_xid_start.c: Likewise. * tests/unigbrk/test-uc-gbrk-prop.h: Likewise. * lib/unicase/special-casing-table.gperf: Regenerated; only comment changes. * lib/unictype/categ_Cc.h: Likewise. * lib/unictype/categ_Cf.h: Likewise. * lib/unictype/categ_Co.h: Likewise. * lib/unictype/categ_Cs.h: Likewise. * lib/unictype/categ_Lt.h: Likewise. * lib/unictype/categ_Nl.h: Likewise. * lib/unictype/categ_Pc.h: Likewise. * lib/unictype/categ_Pd.h: Likewise. * lib/unictype/categ_Pe.h: Likewise. * lib/unictype/categ_Pf.h: Likewise. * lib/unictype/categ_Pi.h: Likewise. * lib/unictype/categ_Ps.h: Likewise. * lib/unictype/categ_Z.h: Likewise. * lib/unictype/categ_Zl.h: Likewise. * lib/unictype/categ_Zp.h: Likewise. * lib/unictype/categ_Zs.h: Likewise. * lib/unictype/ctype_blank.h: Likewise. * lib/unictype/ctype_cntrl.h: Likewise. * lib/unictype/ctype_digit.h: Likewise. * lib/unictype/ctype_space.h: Likewise. * lib/unictype/ctype_xdigit.h: Likewise. * lib/unictype/mirror.h: Likewise. * lib/unictype/pr_ascii_hex_digit.h: Likewise. * lib/unictype/pr_bidi_block_separator.h: Likewise. * lib/unictype/pr_bidi_common_separator.h: Likewise. * lib/unictype/pr_bidi_control.h: Likewise. * lib/unictype/pr_bidi_embedding_or_override.h: Likewise. * lib/unictype/pr_bidi_eur_num_separator.h: Likewise. * lib/unictype/pr_bidi_european_digit.h: Likewise. * lib/unictype/pr_bidi_pdf.h: Likewise. * lib/unictype/pr_bidi_segment_separator.h: Likewise. * lib/unictype/pr_bidi_whitespace.h: Likewise. * lib/unictype/pr_dash.h: Likewise. * lib/unictype/pr_default_ignorable_code_point.h: Likewise. * lib/unictype/pr_diacritic.h: Likewise. * lib/unictype/pr_extender.h: Likewise. * lib/unictype/pr_hex_digit.h: Likewise. * lib/unictype/pr_hyphen.h: Likewise. * lib/unictype/pr_ids_binary_operator.h: Likewise. * lib/unictype/pr_ids_trinary_operator.h: Likewise. * lib/unictype/pr_ignorable_control.h: Likewise. * lib/unictype/pr_iso_control.h: Likewise. * lib/unictype/pr_join_control.h: Likewise. * lib/unictype/pr_left_of_pair.h: Likewise. * lib/unictype/pr_line_separator.h: Likewise. * lib/unictype/pr_logical_order_exception.h: Likewise. * lib/unictype/pr_non_break.h: Likewise. * lib/unictype/pr_not_a_character.h: Likewise. * lib/unictype/pr_other_default_ignorable_code_point.h: Likewise. * lib/unictype/pr_other_grapheme_extend.h: Likewise. * lib/unictype/pr_other_id_start.h: Likewise. * lib/unictype/pr_other_lowercase.h: Likewise. * lib/unictype/pr_other_uppercase.h: Likewise. * lib/unictype/pr_paired_punctuation.h: Likewise. * lib/unictype/pr_paragraph_separator.h: Likewise. * lib/unictype/pr_pattern_syntax.h: Likewise. * lib/unictype/pr_pattern_white_space.h: Likewise. * lib/unictype/pr_private_use.h: Likewise. * lib/unictype/pr_quotation_mark.h: Likewise. * lib/unictype/pr_radical.h: Likewise. * lib/unictype/pr_soft_dotted.h: Likewise. * lib/unictype/pr_space.h: Likewise. * lib/unictype/pr_titlecase.h: Likewise. * lib/unictype/pr_variation_selector.h: Likewise. * lib/unictype/pr_white_space.h: Likewise. * lib/unictype/pr_zero_width.h: Likewise. * lib/unictype/sy_c_ident.h: Likewise. * lib/unictype/sy_c_whitespace.h: Likewise. * lib/unictype/sy_java_whitespace.h: Likewise. * lib/uninorm/composition-table.gperf: Likewise. * lib/uninorm/decomposition-table1.h: Likewise. * tests/unilbrk/test-u8-possible-linebreaks.c (main): Add test for rule LB8. * tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise. * modules/unictype/*: Bump version number of expected libunistring version. 2011-01-09 Bruno Haible Update to Unicode 5.2.0. * tests/unigbrk/GraphemeBreakTest.txt: Copied from Unicode 5.2.0, with trailing whitespace removed. 2011-01-09 Bruno Haible New Unicode character properties, from Unicode 5.2.0. * lib/unictype.in.h (UC_PROPERTY_CASED, UC_PROPERTY_CASE_IGNORABLE, UC_PROPERTY_CHANGES_WHEN_LOWERCASED, UC_PROPERTY_CHANGES_WHEN_UPPERCASED, UC_PROPERTY_CHANGES_WHEN_TITLECASED, UC_PROPERTY_CHANGES_WHEN_CASEFOLDED, UC_PROPERTY_CHANGES_WHEN_CASEMAPPED, uc_is_property_cased, uc_is_property_case_ignorable, uc_is_property_changes_when_lowercased, uc_is_property_changes_when_uppercased, uc_is_property_changes_when_titlecased, uc_is_property_changes_when_casefolded, uc_is_property_changes_when_casemapped): New declarations. * lib/unictype/pr_byname.gperf: Add the new properties. * modules/unictype/property-byname (Depends-on): Depend on the new properties modules. * modules/unictype/property-all (Depends-on): Likewise. * MODULES.html.sh (Unicode string functions): Add unictype/property-case-ignorable, unictype/property-cased, unictype/property-changes-when-casefolded, unictype/property-changes-when-casemapped, unictype/property-changes-when-lowercased, unictype/property-changes-when-titlecased, unictype/property-changes-when-uppercased. New module 'unictype/property-changes-when-casemapped'. * modules/unictype/property-changes-when-casemapped: New file. * lib/unictype/pr_changes_when_casemapped.c: New file. * lib/unictype/pr_changes_when_casemapped.h: New file, automatically generated by gen-uni-tables. * modules/unictype/property-changes-when-casemapped-tests: New file. * tests/unictype/test-pr_changes_when_casemapped.c: New file, automatically generated by gen-uni-tables. New module 'unictype/property-changes-when-casefolded'. * modules/unictype/property-changes-when-casefolded: New file. * lib/unictype/pr_changes_when_casefolded.c: New file. * lib/unictype/pr_changes_when_casefolded.h: New file, automatically generated by gen-uni-tables. * modules/unictype/property-changes-when-casefolded-tests: New file. * tests/unictype/test-pr_changes_when_casefolded.c: New file, automatically generated by gen-uni-tables. New module 'unictype/property-changes-when-titlecased'. * modules/unictype/property-changes-when-titlecased: New file. * lib/unictype/pr_changes_when_titlecased.c: New file. * lib/unictype/pr_changes_when_titlecased.h: New file, automatically generated by gen-uni-tables. * modules/unictype/property-changes-when-titlecased-tests: New file. * tests/unictype/test-pr_changes_when_titlecased.c: New file, automatically generated by gen-uni-tables. New module 'unictype/property-changes-when-uppercased'. * modules/unictype/property-changes-when-uppercased: New file. * lib/unictype/pr_changes_when_uppercased.c: New file. * lib/unictype/pr_changes_when_uppercased.h: New file, automatically generated by gen-uni-tables. * modules/unictype/property-changes-when-uppercased-tests: New file. * tests/unictype/test-pr_changes_when_uppercased.c: New file, automatically generated by gen-uni-tables. New module 'unictype/property-changes-when-lowercased'. * modules/unictype/property-changes-when-lowercased: New file. * lib/unictype/pr_changes_when_lowercased.c: New file. * lib/unictype/pr_changes_when_lowercased.h: New file, automatically generated by gen-uni-tables. * modules/unictype/property-changes-when-lowercased-tests: New file. * tests/unictype/test-pr_changes_when_lowercased.c: New file, automatically generated by gen-uni-tables. New module 'unictype/property-case-ignorable'. * modules/unictype/property-case-ignorable: New file. * lib/unictype/pr_case_ignorable.c: New file. * lib/unictype/pr_case_ignorable.h: New file, automatically generated by gen-uni-tables. * modules/unictype/property-case-ignorable-tests: New file. * tests/unictype/test-pr_case_ignorable.c: New file, automatically generated by gen-uni-tables. New module 'unictype/property-cased'. * modules/unictype/property-cased: New file. * lib/unictype/pr_cased.c: New file. * lib/unictype/pr_cased.h: New file, automatically generated by gen-uni-tables. * modules/unictype/property-cased-tests: New file. * tests/unictype/test-pr_cased.c: New file, automatically generated by gen-uni-tables. 2011-01-09 Bruno Haible Update to Unicode 5.2.0. * lib/gen-uni-tables.c (output_predicate, output_category, output_combclass, output_bidi_category, output_decimal_digit_test, output_decimal_digit, output_digit_test, output_digit, output_numeric_test, output_numeric, output_mirror, output_scripts, output_scripts_byname, output_blocks, output_ident_category): Fix comment header. (is_WBP_MIDNUMLET, is_WBP_MIDLETTER): New functions, extracted from get_wbp. (PROP_CASED, PROP_CASE_IGNORABLE, PROP_CHANGES_WHEN_*): New enumeration items. (fill_properties): Also fill the peoperties Cased, Case_Ignorable, Changes_When_Lowercased, Changes_When_Uppercased, Changes_When_Titlecased, Changes_When_Casefolded, Changes_When_Casemapped. (is_property_alphabetic, is_property_default_ignorable_code_point): Update for Unicode 5.2.0. (is_property_cased, is_property_case_ignorable, is_property_changes_when_lowercased, is_property_changes_when_uppercased, is_property_changes_when_titlecased, is_property_changes_when_casefolded, is_property_changes_when_casemapped): New functions. (output_properties): Output also the properties cased, case_ignorable, changes_when_lowercased, changes_when_uppercased, changes_when_titlecased, changes_when_casefolded, changes_when_casemapped. (symbolic_width): Update for Unicode 5.2.0, incorporating changes from Unicode TR#11 revision 17 -> 19. (LBP_CP): New enumeration value. (LBP_*): Adjust values accordingly. (get_lbp): Update for Unicode 5.2.0, incorporating changes from Unicode TR#14 revision 22 -> 24. (debug_output_lbp): Allow for LBP_* bits >= 32. Support LBP_CP. (fill_org_lbp, debug_output_org_lbp, output_lbp): Support LBP_CP. (get_wbp): Update for Unicode 5.2.0, incorporating changes from Unicode TR#29 revision 13 -> 15. Use functions is_WBP_MIDNUMLET, is_WBP_MIDLETTER. (output_composition_tables): Allow for 24 bits instead of 16 bits in the code1 and code2 of each composition rule. * lib/unicase/cased.h: Regenerated for Unicode 5.2.0. * lib/unicase/ignorable.h: Likewise. * lib/unicase/tocasefold.h: Likewise. * lib/unicase/tolower.h: Likewise. * lib/unicase/totitle.h: Likewise. * lib/unicase/toupper.h: Likewise. * lib/unictype/bidi_of.h: Likewise. * lib/unictype/blocks.h: Likewise. * lib/unictype/categ_C.h: Likewise. * lib/unictype/categ_Cf.h: Likewise. * lib/unictype/categ_Cn.h: Likewise. * lib/unictype/categ_L.h: Likewise. * lib/unictype/categ_Ll.h: Likewise. * lib/unictype/categ_Lm.h: Likewise. * lib/unictype/categ_Lo.h: Likewise. * lib/unictype/categ_Lu.h: Likewise. * lib/unictype/categ_M.h: Likewise. * lib/unictype/categ_Mc.h: Likewise. * lib/unictype/categ_Mn.h: Likewise. * lib/unictype/categ_N.h: Likewise. * lib/unictype/categ_Nd.h: Likewise. * lib/unictype/categ_Nl.h: Likewise. * lib/unictype/categ_No.h: Likewise. * lib/unictype/categ_P.h: Likewise. * lib/unictype/categ_Pd.h: Likewise. * lib/unictype/categ_Po.h: Likewise. * lib/unictype/categ_S.h: Likewise. * lib/unictype/categ_Sc.h: Likewise. * lib/unictype/categ_So.h: Likewise. * lib/unictype/categ_of.h: Likewise. * lib/unictype/combining.h: Likewise. * lib/unictype/ctype_alnum.h: Likewise. * lib/unictype/ctype_alpha.h: Likewise. * lib/unictype/ctype_graph.h: Likewise. * lib/unictype/ctype_lower.h: Likewise. * lib/unictype/ctype_print.h: Likewise. * lib/unictype/ctype_punct.h: Likewise. * lib/unictype/ctype_upper.h: Likewise. * lib/unictype/decdigit.h: Likewise. * lib/unictype/digit.h: Likewise. * lib/unictype/numeric.h: Likewise. * lib/unictype/pr_alphabetic.h: Likewise. * lib/unictype/pr_bidi_arabic_digit.h: Likewise. * lib/unictype/pr_bidi_eur_num_terminator.h: Likewise. * lib/unictype/pr_bidi_european_digit.h: Likewise. * lib/unictype/pr_bidi_hebrew_right_to_left.h: Likewise. * lib/unictype/pr_bidi_left_to_right.h: Likewise. * lib/unictype/pr_bidi_non_spacing_mark.h: Likewise. * lib/unictype/pr_bidi_other_neutral.h: Likewise. * lib/unictype/pr_combining.h: Likewise. * lib/unictype/pr_composite.h: Likewise. * lib/unictype/pr_currency_symbol.h: Likewise. * lib/unictype/pr_dash.h: Likewise. * lib/unictype/pr_decimal_digit.h: Likewise. * lib/unictype/pr_deprecated.h: Likewise. * lib/unictype/pr_diacritic.h: Likewise. * lib/unictype/pr_extender.h: Likewise. * lib/unictype/pr_grapheme_base.h: Likewise. * lib/unictype/pr_grapheme_extend.h: Likewise. * lib/unictype/pr_grapheme_link.h: Likewise. * lib/unictype/pr_id_continue.h: Likewise. * lib/unictype/pr_id_start.h: Likewise. * lib/unictype/pr_ideographic.h: Likewise. * lib/unictype/pr_ignorable_control.h: Likewise. * lib/unictype/pr_logical_order_exception.h: Likewise. * lib/unictype/pr_lowercase.h: Likewise. * lib/unictype/pr_numeric.h: Likewise. * lib/unictype/pr_other_alphabetic.h: Likewise. * lib/unictype/pr_punctuation.h: Likewise. * lib/unictype/pr_sentence_terminal.h: Likewise. * lib/unictype/pr_terminal_punctuation.h: Likewise. * lib/unictype/pr_unassigned_code_value.h: Likewise. * lib/unictype/pr_unified_ideograph.h: Likewise. * lib/unictype/pr_uppercase.h: Likewise. * lib/unictype/pr_xid_continue.h: Likewise. * lib/unictype/pr_xid_start.h: Likewise. * lib/unictype/pr_zero_width.h: Likewise. * lib/unictype/scripts.h: Likewise. * lib/unictype/scripts_byname.gperf: Likewise. * lib/unictype/sy_java_ident.h: Likewise. * lib/unigbrk/gbrkprop.h: Likewise. * lib/unilbrk/lbrkprop1.h: Likewise. * lib/unilbrk/lbrkprop2.h: Likewise. * lib/unilbrk/lbrktables.h: Likewise. * lib/unilbrk/lbrktables.c (unilbrk_table): Add a row and column for LBP_CP. Implement rule LB30. * lib/uniwidth/width.c (nonspacing_table_data): Add U+0816..U+0819, U+081B..U+0823, U+0825..U+0827, U+0829..U+082D, U+0900, U+0955, U+109D, U+1A56, U+1A58..U+1A5E, U+1A60, U+1A62, U+1A65..U+1A6C, U+1A73..U+1A7C, U+1A7F, U+1CD0..U+1CD2, U+1CD4..U+1CE0, U+1CE2..U+1CE8, U+1CED, U+1DFD, U+2CEF..U+2CF1, U+A6F0..U+A6F1, U+A8E0..U+A8F1, U+A980..U+A982, U+A9B3, U+A9B6..U+A9B9, U+A9BC, U+AAB0, U+AAB2..U+AAB4, U+AAB7..U+AAB8, U+AABE..U+AABF, U+AAC1, U+ABE5, U+ABE8, U+ABED, U+11080..U+11081, U+110B3..U+110B6, U+110B9..U+110BA, U+110BD. (uc_width): Return 2 also for unassigned code points of planes 2 and 3. * lib/uninorm/composition-table.gperf: Regenerated for Unicode 5.2.0. * lib/uninorm/composition.c (struct composition_rule): Allow for 24 bits instead of 16 bits in the code1 and code2 of each composition rule. (uc_composition): Update for Unicode 5.2.0. * lib/uninorm/decomposition-table1.h: Regenerated for Unicode 5.2.0. * lib/uninorm/decomposition-table2.h: Likewise. * lib/uniwbrk/wbrkprop.h: Likewise. * tests/unicase/test-cased.c: Likewise. * tests/unicase/test-ignorable.c: Likewise. * tests/unicase/test-uc_tolower.c: Likewise. * tests/unicase/test-uc_totitle.c: Likewise. * tests/unicase/test-uc_toupper.c: Likewise. * tests/unictype/test-categ_C.c: Likewise. * tests/unictype/test-categ_Cf.c: Likewise. * tests/unictype/test-categ_Cn.c: Likewise. * tests/unictype/test-categ_L.c: Likewise. * tests/unictype/test-categ_Ll.c: Likewise. * tests/unictype/test-categ_Lm.c: Likewise. * tests/unictype/test-categ_Lo.c: Likewise. * tests/unictype/test-categ_Lu.c: Likewise. * tests/unictype/test-categ_M.c: Likewise. * tests/unictype/test-categ_Mc.c: Likewise. * tests/unictype/test-categ_Mn.c: Likewise. * tests/unictype/test-categ_N.c: Likewise. * tests/unictype/test-categ_Nd.c: Likewise. * tests/unictype/test-categ_Nl.c: Likewise. * tests/unictype/test-categ_No.c: Likewise. * tests/unictype/test-categ_P.c: Likewise. * tests/unictype/test-categ_Pd.c: Likewise. * tests/unictype/test-categ_Po.c: Likewise. * tests/unictype/test-categ_S.c: Likewise. * tests/unictype/test-categ_Sc.c: Likewise. * tests/unictype/test-categ_So.c: Likewise. * tests/unictype/test-ctype_alnum.c: Likewise. * tests/unictype/test-ctype_alpha.c: Likewise. * tests/unictype/test-ctype_graph.c: Likewise. * tests/unictype/test-ctype_lower.c: Likewise. * tests/unictype/test-ctype_print.c: Likewise. * tests/unictype/test-ctype_punct.c: Likewise. * tests/unictype/test-ctype_upper.c: Likewise. * tests/unictype/test-decdigit.h: Likewise. * tests/unictype/test-digit.h: Likewise. * tests/unictype/test-numeric.h: Likewise. * tests/unictype/test-pr_alphabetic.c: Likewise. * tests/unictype/test-pr_bidi_arabic_digit.c: Likewise. * tests/unictype/test-pr_bidi_eur_num_terminator.c: Likewise. * tests/unictype/test-pr_bidi_european_digit.c: Likewise. * tests/unictype/test-pr_bidi_hebrew_right_to_left.c: Likewise. * tests/unictype/test-pr_bidi_left_to_right.c: Likewise. * tests/unictype/test-pr_bidi_non_spacing_mark.c: Likewise. * tests/unictype/test-pr_bidi_other_neutral.c: Likewise. * tests/unictype/test-pr_combining.c: Likewise. * tests/unictype/test-pr_composite.c: Likewise. * tests/unictype/test-pr_currency_symbol.c: Likewise. * tests/unictype/test-pr_dash.c: Likewise. * tests/unictype/test-pr_decimal_digit.c: Likewise. * tests/unictype/test-pr_deprecated.c: Likewise. * tests/unictype/test-pr_diacritic.c: Likewise. * tests/unictype/test-pr_extender.c: Likewise. * tests/unictype/test-pr_grapheme_base.c: Likewise. * tests/unictype/test-pr_grapheme_extend.c: Likewise. * tests/unictype/test-pr_grapheme_link.c: Likewise. * tests/unictype/test-pr_id_continue.c: Likewise. * tests/unictype/test-pr_id_start.c: Likewise. * tests/unictype/test-pr_ideographic.c: Likewise. * tests/unictype/test-pr_ignorable_control.c: Likewise. * tests/unictype/test-pr_logical_order_exception.c: Likewise. * tests/unictype/test-pr_lowercase.c: Likewise. * tests/unictype/test-pr_numeric.c: Likewise. * tests/unictype/test-pr_other_alphabetic.c: Likewise. * tests/unictype/test-pr_punctuation.c: Likewise. * tests/unictype/test-pr_sentence_terminal.c: Likewise. * tests/unictype/test-pr_terminal_punctuation.c: Likewise. * tests/unictype/test-pr_unassigned_code_value.c: Likewise. * tests/unictype/test-pr_unified_ideograph.c: Likewise. * tests/unictype/test-pr_uppercase.c: Likewise. * tests/unictype/test-pr_xid_continue.c: Likewise. * tests/unictype/test-pr_xid_start.c: Likewise. * tests/unictype/test-pr_zero_width.c: Likewise. * tests/unigbrk/test-uc-gbrk-prop.h: Likewise. * tests/unilbrk/test-u8-possible-linebreaks.c (main): Update for changed behaviour: line breaking is now disallowed between a letter or '=' and '('. * tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-ulc-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-ulc-width-linebreaks.c (main): Likewise. * tests/uniwidth/test-uc_width2.sh: Same updates as in lib/uniwidth/width.c. * tests/uninorm/NormalizationTest.txt: Update from Unicode 5.2.0, without comments, but with the original copyright notice. * lib/unicase/special-casing-table.gperf: Regenerated; only comment changes. * lib/unictype/categ_Cc.h: Likewise. * lib/unictype/categ_Co.h: Likewise. * lib/unictype/categ_Cs.h: Likewise. * lib/unictype/categ_Lt.h: Likewise. * lib/unictype/categ_Me.h: Likewise. * lib/unictype/categ_Pc.h: Likewise. * lib/unictype/categ_Pe.h: Likewise. * lib/unictype/categ_Pf.h: Likewise. * lib/unictype/categ_Pi.h: Likewise. * lib/unictype/categ_Ps.h: Likewise. * lib/unictype/categ_Sk.h: Likewise. * lib/unictype/categ_Sm.h: Likewise. * lib/unictype/categ_Z.h: Likewise. * lib/unictype/categ_Zl.h: Likewise. * lib/unictype/categ_Zp.h: Likewise. * lib/unictype/categ_Zs.h: Likewise. * lib/unictype/ctype_blank.h: Likewise. * lib/unictype/ctype_cntrl.h: Likewise. * lib/unictype/ctype_digit.h: Likewise. * lib/unictype/ctype_space.h: Likewise. * lib/unictype/ctype_xdigit.h: Likewise. * lib/unictype/mirror.h: Likewise. * lib/unictype/pr_ascii_hex_digit.h: Likewise. * lib/unictype/pr_bidi_arabic_right_to_left.h: Likewise. * lib/unictype/pr_bidi_block_separator.h: Likewise. * lib/unictype/pr_bidi_boundary_neutral.h: Likewise. * lib/unictype/pr_bidi_common_separator.h: Likewise. * lib/unictype/pr_bidi_control.h: Likewise. * lib/unictype/pr_bidi_embedding_or_override.h: Likewise. * lib/unictype/pr_bidi_eur_num_separator.h: Likewise. * lib/unictype/pr_bidi_pdf.h: Likewise. * lib/unictype/pr_bidi_segment_separator.h: Likewise. * lib/unictype/pr_bidi_whitespace.h: Likewise. * lib/unictype/pr_default_ignorable_code_point.h: Likewise. * lib/unictype/pr_format_control.h: Likewise. * lib/unictype/pr_hex_digit.h: Likewise. * lib/unictype/pr_hyphen.h: Likewise. * lib/unictype/pr_ids_binary_operator.h: Likewise. * lib/unictype/pr_ids_trinary_operator.h: Likewise. * lib/unictype/pr_iso_control.h: Likewise. * lib/unictype/pr_join_control.h: Likewise. * lib/unictype/pr_left_of_pair.h: Likewise. * lib/unictype/pr_line_separator.h: Likewise. * lib/unictype/pr_math.h: Likewise. * lib/unictype/pr_non_break.h: Likewise. * lib/unictype/pr_not_a_character.h: Likewise. * lib/unictype/pr_other_default_ignorable_code_point.h: Likewise. * lib/unictype/pr_other_grapheme_extend.h: Likewise. * lib/unictype/pr_other_id_continue.h: Likewise. * lib/unictype/pr_other_id_start.h: Likewise. * lib/unictype/pr_other_lowercase.h: Likewise. * lib/unictype/pr_other_math.h: Likewise. * lib/unictype/pr_other_uppercase.h: Likewise. * lib/unictype/pr_paired_punctuation.h: Likewise. * lib/unictype/pr_paragraph_separator.h: Likewise. * lib/unictype/pr_pattern_syntax.h: Likewise. * lib/unictype/pr_pattern_white_space.h: Likewise. * lib/unictype/pr_private_use.h: Likewise. * lib/unictype/pr_quotation_mark.h: Likewise. * lib/unictype/pr_radical.h: Likewise. * lib/unictype/pr_soft_dotted.h: Likewise. * lib/unictype/pr_space.h: Likewise. * lib/unictype/pr_titlecase.h: Likewise. * lib/unictype/pr_variation_selector.h: Likewise. * lib/unictype/pr_white_space.h: Likewise. * lib/unictype/sy_c_ident.h: Likewise. * lib/unictype/sy_c_whitespace.h: Likewise. * lib/unictype/sy_java_whitespace.h: Likewise. * modules/uni*/*: Bump version number of expected libunistring version. Reported by Simon Josefsson. 2011-01-09 Karl Heuer useless-if-before-free: fix typo in --help and make the internal, automatic version date update process work once again. --help output contained a NUL character instead of the backslash-zero that was intended. Also, the "must lie within the first 8 lines" line is on line 9, and hence not getting automatically updated. * build-aux/useless-if-before-free: Fix the former by adding a backslash, and the latter by condensing the three lines of what-it-does to a single line, leaving one line of slack for the future. 2011-01-09 Bruno Haible uniwidth/width: Fix width of U+1D173..U+1D17A. * lib/gen-uni-tables.c (is_nonspacing, output_nonspacing_property, symbolic_width, output_width_property_test): New functions. (main): Invoke output_nonspacing_property, output_width_property_test. * lib/uniwidth/width.c (nonspacing_table_data): Set bits for U+1D173..U+1D17A. * tests/uniwidth/test-uc_width2.sh: For U+1D173..U+1D17A, expect 0, not 1. * modules/uniwidth/*: Bump version number of expected libunistring version. * modules/unilbrk/*: Likewise. 2011-01-08 Bruno Haible uninorm tests: Preserve copyright of Unicode data file. * tests/uninorm/NormalizationTest.txt: Re-add original copyright. Mention modifications. 2011-01-08 Bruno Haible gen-uni-tables: Prepare for Unicode 5.2.0. * lib/gen-uni-tables.c (get_lbp): Allow for more than 32 LBP_* values. (debug_output_lbp, output_lbp): Update. 2011-01-08 Bruno Haible unilbrk: Clarify gen-uni-tables.c code. * lib/gen-uni-tables.c (get_lbp): Assume REVISION_22 to be false. These were mistakes in UAX #14 revision 22 that are corrected in revision 24. Clarify what to do with unilbrk/lbrkprop.txt and uniwbrk/wbrkprop.txt. 2011-01-07 Bruno Haible strtod: Restore errno when successfully parsing Infinity or NaN. * lib/strtod.c (strtod): After successfully parsing an Infinity or NaN, restore the original errno. 2011-01-07 Bruno Haible remove test: Avoid failure on HP-UX 11. * tests/test-remove.c (main): Allow EEXIST as alternative error code. 2011-01-07 Bruno Haible mkdir, mkdirat tests: Avoid failure on HP-UX 11.11. * tests/test-mkdir.h (test_mkdir): Allow EOPNOTSUPP as alternative error code. 2011-01-07 Pádraig Brady ignore-value: fixup comments, and add Eric Blake as an author since he rewrote the macros. * lib/ignore-value.h (ignore_value): State that we now support aggregates. Also specify exactly when the GCC warn_unused_result feature was added. 2011-01-06 Eric Blake ignore-value: support aggregate types * lib/ignore-value.h (ignore_value): Provide separate gcc definition. * modules/ignore-value-tests: New test module. * tests/test-ignore-value.c: New test. maint.mk: improve sc_prohibit_strcmp regex * top/maint.mk (sc_prohibit_strcmp): Detect strcmp()!=0, as documented. Also, detect strcmp((expr),expr) == 0. Exempt the definition of STRNEQ. signal: work around Haiku issue with SIGBUS * lib/siglist.h: Add comment. * lib/sig2str.c (numname_table): Swap SIGBUS order, to match strsignal's favoring of SIGSEGV. * tests/test-signal.c (main): Avoid test failure. * doc/posix-headers/signal.texi (signal.h): Document the issue. Reported by Scott McCreary. maint.mk: add pre-release check to ensure submodule commits are public * top/maint.mk (public-submodule-commit): New rule. (submodule-checks): New variable. (alpha beta stable): Depend on the variable. 2011-01-05 Pádraig Brady and Jim Meyering ignore-value: make ignore_value more generic; deprecate ignore_ptr * lib/ignore-value.h: Include , for decl of intptr_t. (ATTRIBUTE_DEPRECATED): Define. (_ignore_case): New function. (ignore_value): New macro, to replace the old function. (ignore_ptr): Arrange for any use to evoke a deprecation warning. * modules/ignore-value (Depends-on): Add stdint. 2011-01-04 Eric Blake doc: regenerate INSTALL * doc/Makefile (INSTALL, INSTALL.ISO, INSTALL.UTF-8): Re-add @firstparagraphindent support, now that autoconf dropped it. (INSTALL_PRELUDE): Reinstate old macro. * doc/install.texi: Resync from autoconf. * doc/INSTALL: Reflect recent autoconf update. * doc/INSTALL.ISO: Likewise. * doc/INSTALL.UTF-8: Likewise. Reported by Karl Berry. 2011-01-04 Bruce Korb git-version-gen: avoid a sub-shell * build-aux/git-version-gen: Redirect stderr in `...` via "exec 2>...", rather than via an added sub-shell. 2011-01-03 Ben Pfaff git-version-gen: use (...) rather than sh -c '...' * build-aux/git-version-gen: Rather than hard-coding a shell's name with "sh -c '...'", just use "(...)". Less syntax is better, too. 2011-01-03 Jim Meyering git-version-gen: convert leading TABs to spaces * build-aux/git-version-gen: Expand leading TABs. git-version-gen: handle failed "git rev-list" * build-aux/git-version-gen: Rather than leaking a "fatal" error from git and proceeding as if it had succeeded but printed no SHA1 checksums, suppress the diagnostic and handle the failure. Reported by Bruce Korb in http://marc.info/?l=git&m=129399145930450&w=2 git-version-gen: include command name in one more diagnostic * build-aux/git-version-gen: When the required .tarball-version file was missing or unreadable, you might see the diagnostic from "cat", but no trace of the name of the invoking script. Now, you still see the diagnostic from cat, but also get one from "git-version-gen: ". Inspired by a patch from Bruce Korb. update-copyright: adjust test to match changed code * tests/test-update-copyright.sh: Change test's expected output to match new actual output. 2011-01-02 Bruno Haible getlogin_r: Avoid test failure on HP-UX 11. * tests/test-getlogin_r.c (main): Allow an error code EINVAL instead of ERANGE when the second argument is zero. * doc/posix-functions/getlogin_r.texi: Document the HP-UX 11 portability problem. 2011-01-02 Bruce Korb * build-aux/update-copyright: doc Simon's changes 2011-01-02 Simon Josefsson * build-aux/update-copyright: Support UPDATE_COPYRIGHT_HOLDER environment variable. 2011-01-02 Bruno Haible unigbrk: Avoid gcc warnings. * lib/unigbrk/u16-grapheme-breaks.c (u16_grapheme_breaks): Remove unused variable. * lib/unigbrk/u16-grapheme-prev.c (u16_grapheme_prev): Likewise. * lib/unigbrk/u8-grapheme-prev.c (u8_grapheme_prev): Likewise. * tests/unigbrk/test-u16-grapheme-breaks.c (main): Likewise. * tests/unigbrk/test-u32-grapheme-breaks.c (main): Likewise. * tests/unigbrk/test-u8-grapheme-breaks.c (test_u8_grapheme_breaks): Change type of first argument to 'const char *'. (main): Remove unused variable. * tests/unigbrk/test-u8-grapheme-next.c (test_u8_grapheme_next): Change type of first argument to 'const char *'. * tests/unigbrk/test-u8-grapheme-prev.c (test_u8_grapheme_prev): Likewise. (main): Change type of variable 's'. * tests/unigbrk/test-uc-is-grapheme-break.c (main): Cast column number to 'int'. 2011-01-02 Bruno Haible pwrite: Fix test whether it works and make it work on HP-UX 11.11. * m4/pwrite.m4 (gl_FUNC_PWRITE): Use AC_LANG_PROGRAM, not AC_LANG_SOURCE. Extend the test program to catch another HP-UX 11.11 bug. * lib/pwrite.c: Undo 2010-12-31 patch. * doc/posix-functions/pwrite.texi: Document another HP-UX 11.11 bug. 2011-01-02 Bruno Haible pread: Fix test whether it works. * m4/pread.m4 (gl_FUNC_PREAD): Use AC_LANG_PROGRAM, not AC_LANG_SOURCE. 2011-01-02 Bruno Haible Fix detection of traditional Arabic locale on HP-UX, Solaris, Cygwin. * m4/locale-ar.m4 (gt_LOCALE_AR): Require that the locale encoding name ends in "6". Don't require a specific month name. Try also the locale names found on HP-UX 11 and Solaris 7. 2011-01-02 Bruno Haible tcgetsid: Correct linkage in C++ mode on HP-UX 11.00. * lib/termios.in.h: In C++ mode, on HP-UX, include with C linkage. * doc/posix-functions/tcgetsid.texi: Mention the HP-UX 11.00 bug. 2011-01-01 Ben Pfaff Rename uc_is_grapheme_cluster_break() to uc_is_grapheme_break() for consistency, since the "cluster" term is not used elsewhere. * lib/unigbrk.in.h: Update name. * lib/unigbrk/u16-grapheme-breaks.c: Update name. * lib/unigbrk/u16-grapheme-next.c: Update name. * lib/unigbrk/u16-grapheme-prev.c: Update name. * lib/unigbrk/u32-grapheme-breaks.c: Update name. * lib/unigbrk/u32-grapheme-next.c: Update name. * lib/unigbrk/u32-grapheme-prev.c: Update name. * lib/unigbrk/u8-grapheme-breaks.c: Update name. * lib/unigbrk/u8-grapheme-next.c: Update name. * lib/unigbrk/u8-grapheme-prev.c: Update name. * lib/unigbrk/uc-is-grapheme-break.c: Update name. * tests/unigbrk/test-uc-is-grapheme-break.c: Update name. Suggested by Bruno Haible. 2011-01-01 Ben Pfaff Remove module 'u8-grapheme-len' as too redundant with 'u8-grapheme-next'. * modules/unigbrk/u8-grapheme-len: Delete file. * modules/unigbrk/u8-grapheme-len-tests: Delete file. * lib/unigbrk.in.h: Remove prototype for deleted function. * lib/unigbrk/u8-grapheme-len.c: Delete file. * tests/unigbrk/test-u8-grapheme-len.c: Delete file. Remove module 'u16-grapheme-len' as too redundant with 'u16-grapheme-next'. * modules/unigbrk/u16-grapheme-len: Delete file. * modules/unigbrk/u16-grapheme-len-tests: Delete file. * lib/unigbrk.in.h: Remove prototype for deleted function. * lib/unigbrk/u16-grapheme-len.c: Delete file. * tests/unigbrk/test-u16-grapheme-len.c: Delete file. Remove module 'u32-grapheme-len' as too redundant with 'u32-grapheme-next'. * modules/unigbrk/u32-grapheme-len: Delete file. * modules/unigbrk/u32-grapheme-len-tests: Delete file. * lib/unigbrk.in.h: Remove prototype for deleted function. * lib/unigbrk/u32-grapheme-len.c: Delete file. * tests/unigbrk/test-u32-grapheme-len.c: Delete file. Suggested by Bruno Haible. 2011-01-01 Ben Pfaff * unigbrk.in.h: Fix typo: "ben" => "been". Reported by Bruno Haible. 2011-01-01 Jim Meyering maint: update almost all copyright ranges to include 2011 Run the new "make update-copyright" rule. 2011-01-01 Jim Meyering maint: update-copyright: exempt doc/INSTALL* * Makefile (update-copyright): Also exclude doc/INSTALL*, since they are generated. Suggested by Bruno Haible. 2011-01-01 Jim Meyering maint: refine the update-copyright rule * Makefile (update-copyright): Also exclude any file that includes the "GENERATED AUTOMATICALLY" comment, being careful not to exclude code that merely generates the comment. 2010-12-31 Ben Pfaff New module 'u8-grapheme-len'. * modules/unigbrk/u8-grapheme-len: New file. * modules/unigbrk/u8-grapheme-len-tests: New file. * lib/unigbrk.in.h: Add prototype for new function. * lib/unigbrk/u8-grapheme-len.c: New file. * tests/unigbrk/test-u8-grapheme-len.c: New file. New module 'u16-grapheme-len'. * modules/unigbrk/u16-grapheme-len: New file. * modules/unigbrk/u16-grapheme-len-tests: New file. * lib/unigbrk.in.h: Add prototype for new function. * lib/unigbrk/u16-grapheme-len.c: New file. * tests/unigbrk/test-u16-grapheme-len.c: New file. New module 'u32-grapheme-len'. * modules/unigbrk/u32-grapheme-len: New file. * modules/unigbrk/u32-grapheme-len-tests: New file. * lib/unigbrk.in.h: Add prototype for new function. * lib/unigbrk/u32-grapheme-len.c: New file. * tests/unigbrk/test-u32-grapheme-len.c: New file. New module 'u8-grapheme-next'. * modules/unigbrk/u8-grapheme-next: New file. * modules/unigbrk/u8-grapheme-next-tests: New file. * lib/unigbrk.in.h: Add prototype for new function. * lib/unigbrk/u8-grapheme-next.c: New file. * tests/unigbrk/test-u8-grapheme-next.c: New file. New module 'u16-grapheme-next'. * modules/unigbrk/u16-grapheme-next: New file. * modules/unigbrk/u16-grapheme-next-tests: New file. * lib/unigbrk.in.h: Add prototype for new function. * lib/unigbrk/u16-grapheme-next.c: New file. * tests/unigbrk/test-u16-grapheme-next.c: New file. New module 'u32-grapheme-next'. * modules/unigbrk/u32-grapheme-next: New file. * modules/unigbrk/u32-grapheme-next-tests: New file. * lib/unigbrk.in.h: Add prototype for new function. * lib/unigbrk/u32-grapheme-next.c: New file. * tests/unigbrk/test-u32-grapheme-next.c: New file. New module 'u8-grapheme-prev'. * modules/unigbrk/u8-grapheme-prev: New file. * modules/unigbrk/u8-grapheme-prev-tests: New file. * lib/unigbrk.in.h: Add prototype for new function. * lib/unigbrk/u8-grapheme-prev.c: New file. * tests/unigbrk/test-u8-grapheme-prev.c: New file. New module 'u16-grapheme-prev'. * modules/unigbrk/u16-grapheme-prev: New file. * modules/unigbrk/u16-grapheme-prev-tests: New file. * lib/unigbrk.in.h: Add prototype for new function. * lib/unigbrk/u16-grapheme-prev.c: New file. * tests/unigbrk/test-u16-grapheme-prev.c: New file. New module 'u32-grapheme-prev'. * modules/unigbrk/u32-grapheme-prev: New file. * modules/unigbrk/u32-grapheme-prev-tests: New file. * lib/unigbrk.in.h: Add prototype for new function. * lib/unigbrk/u32-grapheme-prev.c: New file. * tests/unigbrk/test-u32-grapheme-prev.c: New file. New module 'u8-grapheme-breaks'. * modules/unigbrk/u8-grapheme-breaks: New file. * modules/unigbrk/u8-grapheme-breaks-tests: New file. * lib/unigbrk.in.h: Add prototype for new function. * lib/unigbrk/u8-grapheme-breaks.c: New file. * tests/unigbrk/test-u8-grapheme-breaks.c: New file. New module 'u16-grapheme-breaks'. * modules/unigbrk/u16-grapheme-breaks: New file. * modules/unigbrk/u16-grapheme-breaks-tests: New file. * lib/unigbrk.in.h: Add prototype for new function. * lib/unigbrk/u16-grapheme-breaks.c: New file. * tests/unigbrk/test-u16-grapheme-breaks.c: New file. New module 'u32-grapheme-breaks'. * modules/unigbrk/u32-grapheme-breaks: New file. * modules/unigbrk/u32-grapheme-breaks-tests: New file. * lib/unigbrk.in.h: Add prototype for new function. * lib/unigbrk/u32-grapheme-breaks.c: New file. * tests/unigbrk/test-u32-grapheme-breaks.c: New file. New module 'ulc-grapheme-breaks'. * modules/unigbrk/ulc-grapheme-breaks: New file. * modules/unigbrk/ulc-grapheme-breaks-tests: New file. * m4/locale-ar.m4: New file. * lib/unigbrk/ulc-grapheme-breaks.c: New file. * tests/unigbrk/test-ulc-grapheme-breaks.c: New file. * tests/unigbrk/test-ulc-grapheme-breaks.sh: New file. 2010-12-31 Ben Pfaff gbrkprop: Fix implementation of uc_graphemeclusterbreak_property. * lib/unigbrk/gbrkprop.h: Regenerate with gen-uni-tables.c. I had modified how this file was generated before I initially submitted the module, but failed to regenerate it. This meant that several of the level2 entries were wrong. * lib/unigbrk/uc-gbrk-prop.h (uc_graphemeclusterbreak_property): Remove the division-by-2 that is folded into the table now that gbrkprop.h has been regenerated properly. Now -1 entries are handled correctly. New module 'unigbrk/uc-gbrk-prop-tests'. * modules/unigbrk/uc-gbrk-prop-tests: New file. * lib/gen-uni-tables.c: Generate tests/test-uc-gbrk-prop.h. * tests/unigbrk/test-uc-gbrk-prop.c: New file. * tests/unigbrk/test-uc-gbrk-prop.h: New file. 2011-01-01 Bruno Haible Avoid use of hexadecimal escapes. * tests/unigbrk/test-uc-is-grapheme-break.c (main): Use octal escapes instead of hexadecimal escapes. 2011-01-01 Jim Meyering maint: new rule to update copyright year ranges * Makefile (update-copyright): New rule. maint: indent with TABs in Makefile * Makefile: Expand leading sequences of spaces to TABs version-etc: update the copyright year it reports * lib/version-etc.c (COPYRIGHT_YEAR): Update to 2011. 2010-12-31 Bruno Haible isfinite: Avoid compiler bug of "cc -O" on HP-UX 11.11. * lib/isfinite.c (zerof, zerod, zerol): New variables. (gl_isfinitef, gl_isfinited, gl_isfinitel): Use them instead of literal zero. 2010-12-31 Bruno Haible pwrite: Work around HP-UX 11.11 bug. * m4/pwrite.m4 (gl_FUNC_PWRITE): When pwrite exists, test whether it works and set REPLACE_PWRITE if not. * lib/pwrite.c (pwrite): Add an implementation that uses the system function. * doc/posix-functions/pwrite.texi: Document the HP-UX 11 bug. 2010-12-31 Bruno Haible pread: Work around HP-UX 11 bugs. * m4/pread.m4 (gl_FUNC_PREAD): When pread exists, test whether it works and set REPLACE_PREAD if not. * doc/posix-functions/pread.texi: Document the HP-UX 11 bugs. 2010-12-31 Eric Blake nl_langinfo: fix YESEXPR on Irix 6.5 * m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Test for Irix bug. * lib/nl_langinfo.c (rpl_nl_langinfo): Work around it. * doc/posix-functions/nl_langinfo.texi (nl_langinfo): Document it. 2010-12-31 Bruno Haible iconv: Document HP-UX 11 bug. * doc/posix-functions/iconv.texi: Document HP-UX 11 return value bug. 2010-12-31 Bruno Haible ldexpl: Fix link error on HP-UX 11. * m4/ldexpl.m4 (gl_FUNC_LDEXPL): When replacing ldexpl, set LDEXPL_LIBM, using $ISNANL_LIBM. 2010-12-31 Eric Blake ftello: avoid compilation failure with SunStudio c89 * lib/ftello.c (ftello): Use lseek, not llseek. tests: avoid failing coreutils tests on cygwin * tests/init.sh (find_exe_basenames_): Exempt [.exe. (create_exe_shims_): Return 0 when skipping. 2010-12-31 Bruno Haible sys_select: Avoid warning about missing memset declaration on HP-UX 11. * lib/sys_select.in.h: On HP-UX, include also . 2010-12-31 Bruno Haible waitpid: Fix link error in C++ mode. * lib/sys_wait.in.h: Remove extern "C" { ... } group. 2010-12-31 Bruno Haible isnan: Use GCC built-ins when possible. * lib/math.in.h (gl_isnan_f): Use __builtin_isnanf instead of __builtin_isnan. (gl_isnan_l): Use __builtin_isnanl instead of __builtin_isnan. (isnan): Define using GCC built-ins for GCC >= 4.0. 2010-12-31 Bruno Haible isnand: Fix mistake. * m4/isnand.m4 (gl_HAVE_ISNAND_IN_LIBM): Use __builtin_isnan, not __builtin_isnand. 2010-12-31 Bruno Haible open: Avoid C++ error on HP-UX 11. * lib/fcntl.in.h (open): Disable _GL_CXXALIASWARN invocation on HP-UX. 2010-12-31 Bruno Haible time_r: Add missing declarations on HP-UX 11. * lib/time.in.h (localtime_r, gmtime_r): Test HAVE_DECL_LOCALTIME_R instead of HAVE_LOCALTIME_R. * m4/time_r.m4 (gl_TIME_R): Test whether localtime_r is declared. Set HAVE_LOCALTIME_R always. * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize HAVE_DECL_LOCALTIME_R, not HAVE_LOCALTIME_R. * modules/time (Makefile.am): Substitute HAVE_DECL_LOCALTIME_R, not HAVE_LOCALTIME_R. * doc/posix-functions/gmtime_r.texi: Document the HP-UX 11 problem. * doc/posix-functions/localtime_r.texi: Likewise. 2010-12-29 Eric Blake mountlist: tweak previous commit * lib/mountlist.c (me_remote): Guarantee trailing backslash. Reported by Paul Eggert. mountlist: fix local drive detection on cygwin * lib/mountlist.c (ME_REMOTE) [__CYGWIN__]: Provide implementation that works for cygwin. 2010-12-29 Paul Eggert ftoastr, snprintf: ftoastr + snprintf module * lib/ftoastr.c: Use GNULIB_SNPRINTF, not GNULIB_SNPRINTF_POSIX, since the snprintf module now should be good enough here. * modules/snprintf (configure.ac): Add gl_MODULE_INDICATOR([snprintf]). It seems odd to have both gl_STDIO_MODULE_INDICATOR([snprintf]) and gl_MODULE_INDICATOR([snprintf]), but the former enables GNULIB_SNPRINTF only for the test directory, and the latter doesn't arrange for gl_STDIO_H_DEFAULTS to be called, so neither seems to suffice by itself. 2010-12-28 Paul Eggert alloca: one step towards thread-safety * lib/alloca.c (find_stack_direction): New arg PTR, to avoid the need for a static variable. All callers changed. This does not make the alloca replacement thread-safe, but it's one step. tests: minor indenting change * tests/init.sh: Sync from coreutils housekeeping patch to keep lines within 80 columns. 2010-12-28 Jim Meyering regex: don't infloop on persistent failing calloc * lib/regexec.c (build_trtable): Return failure indication upon calloc failure. Otherwise, re_search_internal could infloop on OOM. In glibc, this was fixed for version 2.13: http://sourceware.org/bugzilla/show_bug.cgi?id=12348 2010-12-28 Bruno Haible Paul Eggert linkat: Make implementation robust against system behaviour variations. * m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK): Define LINK_FOLLOWS_SYMLINKS to -1 if it needs a runtime test in the Solaris way, and to -2 if it needs a generic runtime test. * lib/linkat.c (solaris_optimized_link_immediate, solaris_optimized_link_follow): New functions. * tests/test-linkat.c (EXPECT_LINK_HARDLINKS_SYMLINKS): New macro. (check_same_link): Use it. 2010-12-26 Ben Pfaff New module 'unigbrk/base'. * modules/unigbrk/base: New file. * lib/unigbrk.in.h: New file. New module 'unigbrk/uc-gbrk-prop'. * lib/gen-uni-tables.c: Generate lib/unigbrk/gbrkprop.h. * modules/unigbrk/uc-gbrk-prop: New file. * lib/unigbrk/gbrkprop.h: New file. * lib/unigbrk/uc-gbrk-prop.c: New file. New module 'unigbrk/uc-is-grapheme-break'. * modules/unigbrk/uc-is-grapheme-break: New file. * modules/unigbrk/uc-is-grapheme-break-tests: New file. * lib/unigbrk/uc-is-grapheme-break.c: New file. * tests/unigbrk/test-uc-is-grapheme-break.c: New file. * tests/unigbrk/test-uc-is-grapheme-break.sh: New file. * tests/unigbrk/GraphemeBreakTest.txt: New file. With corrections and tweaks by Bruno Haible . 2010-12-27 Bruno Haible linkat test: Avoid failure on Solaris 11 2010-11. * tests/test-linkat.c (main): Allow ENOTDIR as alternative error code. 2010-12-27 Paul Eggert utimens: work around glibc rounding bug on more platforms * lib/utimens.c (fdutimens): Work around rounding bug even if HAVE_WORKING_UTIMES. Reported for Linux 2.4.21 by Bruno Haible in . 2010-12-27 Bruno Haible select tests: Improve comments. * tests/test-select.c (do_select): Add comments. 2010-12-27 Bruno Haible select tests: Safer way of handling timeout. * tests/test-select.c (do_select_nowait): Zero-initialize the timeout at every invocation. 2010-12-27 Bruno Haible select tests: Use 'bool' where appropriate. * tests/test-select.c (connect_to_socket): Change argument type to 'bool'. 2010-12-27 Bruno Haible select tests: Use existing modules. * modules/select-tests (Depends-on): Add pipe-posix, unistd. (configure.ac): Don't test for unistd.h. * tests/test-select.c: Include always. Use pipe() as declared in . 2010-12-27 Bruno Haible mbrtowc: Work around a Solaris 7 bug. * m4/mbrtowc.m4 (gl_MBRTOWC_NULL_ARG1): New macro. (gl_MBRTOWC_NULL_ARG2): Renamed from gl_MBRTOWC_NULL_ARG. (gl_FUNC_MBRTOWC): Update. Define MBRTOWC_NULL_ARG2_BUG instead of MBRTOWC_NULL_ARG_BUG. Invoke gl_MBRTOWC_NULL_ARG1 and define MBRTOWC_NULL_ARG1_BUG. * lib/mbrtowc.c (rpl_mbrtowc): Use MBRTOWC_NULL_ARG2_BUG instead of MBRTOWC_NULL_ARG_BUG. Handle MBRTOWC_NULL_ARG1_BUG. * tests/test-mbrtowc.c (main): Test support of a NULL first argument. * doc/posix-functions/mbrtowc.texi: Mention the Solaris 7 bug. 2010-12-27 Jim Meyering read-file.c: tweak syntax * lib/read-file.c (fread_file): Remove space after "*" in function definitions. 2010-12-27 Bruno Haible times test: Avoid gcc warnings on OSF/1. * tests/test-times.c (main): Cast printf arguments from clock_t to 'long int'. 2010-12-27 Paul Eggert utimens: work around glibc rounding bug on older Linux kernels * lib/utimens.c (fdutimens): If invoking futimesat or futimes on Linux with a glibc whose utimes might not work, then work around a longstanding glibc bug involving rounding rather than truncated time stamps. Reported for Linux 2.4.21 by Bruno Haible in . 2010-12-26 Bruno Haible inet_ntop: Hide mismatch of declaration on NonStop Kernel. * lib/arpa_inet.in.h (inet_ntop): Use _GL_CXXALIAS_SYS_CAST instead of _GL_CXXALIAS_SYS. Reported by Joachim Schmitz . 2010-12-26 Bruno Haible inet_ntop, inet_pton: Ensure declaration on NonStop Kernel. * lib/arpa_inet.in.h: On NonStop Kernel, include also . * m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET): Likewise. * m4/inet_ntop.m4 (gl_PREREQ_INET_NTOP): Include also when looking for the declaration. * m4/inet_pton.m4 (gl_PREREQ_INET_PTON): Likewise. * doc/posix-functions/inet_ntop.texi: Document the NonStop Kernel problem. * doc/posix-functions/inet_pton.texi: Likewise. 2010-12-26 Bruno Haible arpa_inet: Use the common idioms with C++ support. * lib/arpa_inet.in.h: Include c++defs.h. (inet_ntop, inet_pton): Declare using the macros with C++ namespace support. * modules/arpa_inet (Depends-on): Add c++defs. (Makefile.am): Substitute the contents of c++defs.h. * modules/arpa_inet-tests (Depends-on): Add arpa_inet-c++-tests. * modules/arpa_inet-c++-tests: New file. * tests/test-arpa_inet-c++.cc: New file. 2010-12-25 Bruno Haible Fix more C++ link errors on Solaris 8. * modules/fcntl-h-c++-tests (test_fcntl_h_c___LDADD): Add $(LIB_EACCESS). * modules/stdio-c++-tests (test_stdio_c___LDADD): Likewise. * modules/stdlib-c++-tests (test_stdlib_c___LDADD): Likewise. * modules/sys_ioctl-c++-tests (test_sys_ioctl_c___LDADD): Likewise. * modules/wchar-c++-tests (test_wchar_c___LDADD): Likewise. * modules/wctype-c++-tests (test_wctype_c___LDADD): Likewise. 2010-12-25 Bruno Haible printf-posix: Fix link error when a non-GCC compiler is used. * lib/stdio.in.h (printf): When not using GCC, override printf correctly. Reported by Joachim Schmitz . 2010-12-25 Bruno Haible strerror_r-posix: Update doc. * doc/posix-functions/strerror_r.texi: Update doc about the return value. See . 2010-12-25 Paul Eggert utimens: simplify the logic of the previous change * m4/utimes.m4 (gl_FUNC_UTIMES): Simplify the logic a bit. This should not affect whether the test succeeds or fails. utimens: configure better on hosts with NFS clock skew * m4/utimes.m4 (gl_FUNC_UTIMES): Don't assume that utimes (f, NULL) uses the clock of the local host. It might use the clock of the NFS server. Reported for Linux 2.4.21 client by Bruno Haible in . 2010-12-25 Bruno Haible ptsname test: Avoid failure on Solaris. * tests/test-ptsname.c (main): For Solaris, use the recommended way to open a pseudo-terminal; don't use BSD-style ptys. * doc/posix-functions/ptsname.texi: Document the limitation on Solaris. 2010-12-25 Bruno Haible ptsname: Avoid ERANGE failure on some systems. * lib/ptsname.c (buffer): Increase size. 2010-12-25 Bruno Haible rename, renameat: Avoid test failures at NFS mounted locations. * tests/test-rename.h (assert_nonexistent): Remove the old directory, so that subsequent mkdir calls succeed. 2010-12-25 Bruno Haible iswblank: Fix C++ link error on Solaris 8. * lib/wctype.in.h (iswblank): Declare using _GL_FUNCDECL_RPL or _GL_FUNCDECL_SYS. 2010-12-25 Bruno Haible unistd: Fix C++ link error on Solaris 8. * modules/unistd-c++-tests (test_unistd_c___LDADD): Add $(LIB_EACCESS). 2010-12-25 Bruno Haible readlink doc: Mention an old glibc bug. * doc/posix-functions/readlink.texi: Mention glibc 2.4 bug (BZ #2450). 2010-12-25 Bruno Haible fcntl-h: Fix for use of C++ on glibc systems. * lib/fcntl.in.h: Include before include_next also on glibc systems in C++ mode. Reported by Gary V. Vaughan . 2010-12-25 Bruno Haible roundl-ieee: Make it work on OSF/1 5.1 with cc. * modules/roundl-ieee (Depends-on): Add floorl-ieee, ceill-ieee. 2010-12-25 Bruno Haible truncl-ieee: Make it work on OSF/1 5.1 with cc. * doc/posix-functions/truncl.texi: Mention the OSF/1 5.1 bug. * m4/truncl.m4 (gl_FUNC_TRUNCL): If gl_FUNC_TRUNCL_IEEE is also used, test whether truncl works according to ISO C 99 with IEC 60559. * m4/truncl-ieee.m4: New file. * modules/truncl-ieee (Files): Add it and m4/minus-zero.m4, m4/signbit.m4. (configure.ac): Invoke gl_FUNC_TRUNCL_IEEE. 2010-12-25 Bruno Haible ceill-ieee: Make it work on OSF/1 5.1 with cc. * doc/posix-functions/ceill.texi: Mention the OSF/1 5.1 bug. * m4/ceill.m4 (gl_FUNC_CEILL): If gl_FUNC_CEILL_IEEE is also used, test whether ceill works according to ISO C 99 with IEC 60559. * m4/ceill-ieee.m4: New file. * modules/ceill-ieee (Files): Add it and m4/minus-zero.m4, m4/signbit.m4. (configure.ac): Invoke gl_FUNC_CEILL_IEEE. 2010-12-25 Bruno Haible Ensure all prerequisites of are included. * m4/btowc.m4 (gl_FUNC_BTOWC): Include , , before . * m4/mbrlen.m4 (gl_MBRLEN_INCOMPLETE_STATE, gl_MBRLEN_RETVAL, gl_MBRLEN_NUL_RETVAL): Likewise. * m4/mbrtowc.m4 (gl_MBRTOWC_INCOMPLETE_STATE, gl_MBRTOWC_SANITYCHECK, gl_MBRTOWC_NULL_ARG, gl_MBRTOWC_RETVAL, gl_MBRTOWC_NUL_RETVAL, AC_FUNC_MBRTOWC): Likewise. * m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): Likewise. * m4/mbstate_t.m4 (AC_TYPE_MBSTATE_T): Likewise. * m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise. * m4/wcsrtombs.m4 (gl_WCSRTOMBS_TERMINATION, gl_WCSRTOMBS_NULL): Likewise. * m4/wctob.m4 (gl_FUNC_WCTOB): Likewise. * m4/wchar_h.m4 (gl_WCHAR_H_INLINE_OK): Likewise. (gl_WCHAR_H): Improve comments. * m4/wctype_h.m4 (gl_WCTYPE_H): Likewise. 2010-12-25 Bruno Haible strtok_r: Fix C syntax error in autoconf macro. * m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Don't use UTF-8 encoded U+00A0 characters in test program. 2010-12-24 Bruno Haible ceil, trunc, round: Fix gcc warnings. * lib/ceil.c (MIN): Undefine before redefining. * lib/trunc.c (MIN): Likewise. * lib/round.c (MIN): Likewise. Include first. 2010-12-24 Bruno Haible select tests: Avoid failures on OSF/1 5.1. * tests/test-select.c (test_accept_first, test_socket_pair): Ignore failure of closing the last socket; it may fail with ECONNRESET. 2010-12-24 Eric Blake stdint: avoid HP-UX 10.20 preprocessor bug * lib/stdint.in.h (INT64_MAX, UINT64_MAX): Check via #ifdef rather than #if. * tests/test-floor2.c (main): Likewise. Reported by Peter O'Gorman. pipe: make obsoletion transition easier * lib/pipe.h: Restore file as thin shim around "spawn-pipe.h". * modules/pipe (Files): Include revived file. (Include): Drop reference, to mirror getdate's behavior. 2010-12-24 Bruno Haible sys_socket: Hide mismatch of declarations on NonStop Kernel. * lib/sys_socket.in.h (connect, bind, sendto, setsockopt): Use _GL_CXXALIAS_SYS_CAST instead of _GL_CXXALIAS_SYS. Reported by Joachim Schmitz . 2010-12-24 Bruno Haible gethostname: Ensure declaration on NonStop Kernel. * lib/unistd.in.h: Include also on NonStop Kernel systems. Reported by Joachim Schmitz . 2010-12-24 Bruno Haible sys_select: Ensure all necessary types on NonStop Kernel. * lib/sys_select.in.h: If the system does not have , include . * doc/posix-headers/sys_select.texi: Mention that it's missing on NonStop Kernel. Reported by Joachim Schmitz . 2010-12-24 Bruno Haible sys_select: Remove unneeded include. * lib/sys_select.in.h: Don't include on platforms that have . 2010-12-24 Bruno Haible gethostname: Provide a fallback for HOST_NAME_MAX. * m4/gethostname.m4 (gl_FUNC_GETHOSTNAME): When neither HOST_NAME_MAX nor MAXHOSTNAMELEN is found in the usual system headers, use 256 instead. Reported by Joachim Schmitz . 2010-12-24 Bruno Haible sigaction tests: Allow missing SA_RESETHAND and SA_RESTART. * tests/test-sigaction.c (SA_RESETHAND): Fall back to 0. (SA_RESTART): Likewise. Reported by Joachim Schmitz . 2010-12-24 Bruno Haible signal: Define NSIG. * lib/signal.in.h (NSIG): Define to 32 on NonStop Kernel. * tests/test-signal.c (nsig): New variable. Reported by Joachim Schmitz . 2010-12-24 Bruno Haible rename, renameat: Avoid test failures on OSF/1 5.1. * tests/test-rename.h (test_rename): Allow EEXIST and ENOTDIR as alternative error codes. * tests/test-renameat.c (main): Likewise. 2010-12-24 Bruno Haible *printf: Detect large precisions bug on Solaris 10/SPARC. * m4/printf.m4 (gl_PRINTF_PRECISION): Add one more test code, provided by Paul Eggert. * tests/test-snprintf-posix.h (test_function): Add this test code here too. * tests/test-sprintf-posix.h (test_function): Likewise. * tests/test-vasnprintf-posix.c (test_function): Likewise. * tests/test-vasprintf-posix.c (test_function): Likewise. * doc/posix-functions/fprintf.texi: Mention Solaris 10 bug as worked around by gnulib. * doc/posix-functions/printf.texi: Likewise. * doc/posix-functions/snprintf.texi: Likewise. * doc/posix-functions/sprintf.texi: Likewise. * doc/posix-functions/vfprintf.texi: Likewise. * doc/posix-functions/vprintf.texi: Likewise. * doc/posix-functions/vsnprintf.texi: Likewise. * doc/posix-functions/vsprintf.texi: Likewise. * doc/posix-functions/dprintf.texi: Undo last commit. * doc/posix-functions/vdprintf.texi: Likewise. 2010-12-23 Paul Eggert tests: port test-fdutimensat.c to Solaris 8 * tests/test-fdutimensat.c (do_fdutimens): Don't assume fdutimensat works with a nonnegative fd and AT_SYMLINK_NOFOLLOW. On Solaris 8, it fails with errno == ENOSYS, because there is no futimens (so it can't use the fd), and there is no lutimens (so it can't implement AT_SYMLINK_NOFOLLOW on symlinks). vsnprintf: make more consistent with snprintf; doc fixes * doc/posix-functions/snprintf.texi (snprintf): The workaround for the byte count return problem was promoted from the snprintf-posix to the snprintf module. * doc/posix-functions/vsnprintf.texi (vsnprintf): Likewise. * m4/vsnprintf.m4 (gl_FUNC_VSNPRINTF): Also check gl_SNPRINTF_RETVAL_C99, for consistency with gl_FUNC_SNPRINTF. * tests/test-snprintf.c (main): Check the byte count returned. * tests/test-vsnprintf.c (main): Likewise. 2010-12-23 Eric Blake sigpipe: relax to LGPLv2+, since it did not have any LGPLv3+ parts * modules/sigpipe (License): Relax license. 2010-12-22 Paul Eggert doc: document Solaris printf bug with large float precisions * doc/posix-functions/dprintf.texi (dprintf): * doc/posix-functions/fprintf.texi (fprintf): * doc/posix-functions/printf.texi (printf): * doc/posix-functions/snprintf.texi (snprintf): * doc/posix-functions/sprintf.texi (sprintf): * doc/posix-functions/vdprintf.texi (vdprintf): * doc/posix-functions/vfprintf.texi (vfprintf): * doc/posix-functions/vprintf.texi (vprintf): * doc/posix-functions/vsnprintf.texi (vsnprintf): * doc/posix-functions/vsprintf.texi (vsprintf): Mention that these functions mishandle large floating point precisions on Solaris 10. The same bug is also present in Solaris 8, and I assume earlier. This causes "cd gnulib-tests; make check" to fail on Solaris 8 (and I assume, later) when building the latest coreutils, in test-vasprintf-posix's call to my_asprintf (&result, "%.4000f %d", 1.0, 99). I have not checked the wide flavors (e.g., wprintf) so this patch just updates the documentation for the narrow ones. test-posixtm.c: add two tests * tests/test-posixtm.c: Add two tests, to highlight the bug in Solaris 10 (and earlier) localtime. Gnulib doesn't work around this bug; this is merely to document it. 2010-12-22 Bruno Haible getlogin_r: Work around portability problem on OSF/1. * m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Detect the OSF/1 problem. * lib/unistd.in.h (getlogin_r): Replace if REPLACE_GETLOGIN_R is set. * lib/getlogin_r.c (getlogin_r): When getlogin_r exists, invoke it and test for a truncated result. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_GETLOGIN_R. * modules/unistd (Makefile.am): Substitute REPLACE_GETLOGIN_R. * modules/getlogin_r (Depends-on): Add memchr. * doc/posix-functions/getlogin_r.texi: Mention the OSF/1 problem. 2010-12-22 Bruno Haible ptsname: Avoid test failure on OSF/1 5.1. * modules/ptsname-tests (Depends-on): Add 'same-inode'. * tests/test-ptsname.c: Include , same-inode.h. (same_slave): New function. (main): Use it to compare ptsname's result with the expected file name. 2010-12-22 Bruno Haible Port extended stdio modules to HP NonStop Kernel. * lib/stdio-impl.h (_IOERR, _IOREAD, _IOWRT, _IORW) [__TANDEM]: New macros. * lib/fbufmode.c: Update comments. * lib/fflush.c: Likewise. * lib/fpurge.c: Likewise. * lib/freadable.c: Likewise. * lib/freadahead.c: Likewise. * lib/freading.c: Likewise. * lib/freadptr.c: Likewise. * lib/freadseek.c: Likewise. * lib/fseeko.c: Likewise. * lib/fseterr.c: Likewise. * lib/fwritable.c: Likewise. * lib/fwriting.c: Likewise. Reported by Joachim Schmitz . 2010-12-22 Bruno Haible ttyname_r: Work around bug on OSF/1 5.1. * doc/posix-functions/ttyname_r.texi: Mention the OSF/1 bug. * m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Detect the OSF/1 bug. Say "no" instead of "guessing no" when the OSF/1 bug or the Solaris bug is present. * lib/ttyname_r.c (ttyname_r): Update comments. 2010-12-22 Bruno Haible round: Implement result sign according to IEEE 754. * lib/round.c (MIN, MINUS_ZERO): New macros. (FLOOR_FREE_ROUND): Return -0.0 for -0.5 < x < 0. * tests/test-roundf-ieee.c (main): Test also values between -1 and 1. * tests/test-round-ieee.c (main): Likewise. * tests/test-roundl-ieee.c (main): Likewise. trunc: Implement result sign according to IEEE 754. * lib/trunc.c (MIN, MINUS_ZERO): New macros. (FUNC): Return +0.0 for 0 < x < 1 and -0.0 for -1 < x < 0. * tests/test-trunc2.c: Include minus-zero.h. (MINUS_ZERO): New macro. (trunc_reference): Keep in sync with lib/trunc.c. * tests/test-truncf2.c: Include minus-zero.h. (MINUS_ZERO): New macro. (truncf_reference): Keep in sync with lib/trunc.c. * tests/test-truncf-ieee.c (main): Test also values between -1 and 1. * tests/test-trunc-ieee.c (main): Likewise. * tests/test-truncl-ieee.c (main): Likewise. ceil: Implement result sign according to IEEE 754. * lib/ceil.c (MIN, MINUS_ZERO): New macros. (FUNC): Return -0.0 for -1 < x < 0. * tests/test-ceil2.c: Include minus-zero.h. (MINUS_ZERO): New macro. (ceil_reference): Keep in sync with lib/ceil.c. * tests/test-ceilf2.c: Include minus-zero.h. (MINUS_ZERO): New macro. (ceilf_reference): Keep in sync with lib/ceil.c. * tests/test-ceilf-ieee.c (main): Test also values between -1 and 1. * tests/test-ceil-ieee.c (main): Likewise. * tests/test-ceill-ieee.c (main): Likewise. floor: Implement result sign according to IEEE 754. * lib/floor.c (FUNC): Return +0.0 for 0 < x < 1. * tests/test-floor2.c (floor_reference): Keep in sync with lib/floor.c. * tests/test-floorf2.c (floorf_reference): Likewise. * tests/test-floorf-ieee.c (main): Test also values between -1 and 1. * tests/test-floor-ieee.c (main): Likewise. * tests/test-floorl-ieee.c (main): Likewise. 2010-12-22 Bruno Haible getaddrinfo: Update doc. * doc/posix-functions/gai_strerror.texi: Return type is also different on AIX and HP-UX. 2010-12-22 Paul Eggert getaddrinfo, inet_ntop: Update doc for Solaris. * doc/posix-functions/gai_strerror.texi: Return type is also an issue on Solaris 9 and earlier. * doc/posix-functions/inet_ntop.texi: 4th arg type is also an issue on Solaris 10 and earlier. 2010-12-21 Bruno Haible New module 'roundl-ieee'. * modules/roundl-ieee: New file. * m4/roundl.m4 (gl_FUNC_ROUNDL): If gl_FUNC_ROUNDL_IEEE is also used, test whether roundl works according to ISO C 99 with IEC 60559. * m4/roundl-ieee.m4: New file. * modules/roundl-ieee-tests: New file. * tests/test-roundl-ieee.c: New file, based on tests/test-roundl.c. * tests/test-roundl.c (main): Remove signbit tests. * modules/roundl-tests (Depends-on): Remove signbit. * doc/posix-functions/roundl.texi: Mention the new module. 2010-12-21 Bruno Haible New module 'truncl-ieee'. * modules/truncl-ieee: New file. * modules/truncl-ieee-tests: New file. * tests/test-truncl-ieee.c: New file, based on tests/test-truncl.c. * tests/test-truncl.c (main): Remove signbit tests. * modules/truncl-tests (Depends-on): Remove signbit. * doc/posix-functions/truncl.texi: Mention the new module. 2010-12-21 Bruno Haible New module 'ceill-ieee'. * modules/ceill-ieee: New file. * modules/ceill-ieee-tests: New file. * tests/test-ceill-ieee.c: New file, based on tests/test-ceill.c. * tests/test-ceill.c (main): Remove signbit tests. * modules/ceill-tests (Depends-on): Remove signbit. * doc/posix-functions/ceill.texi: Mention the new module. 2010-12-21 Bruno Haible New module 'floorl-ieee'. * modules/floorl-ieee: New file. * modules/floorl-ieee-tests: New file. * tests/test-floorl-ieee.c: New file, based on tests/test-floorl.c. * tests/test-floorl.c (main): Remove signbit tests. * modules/floorl-tests (Depends-on): Remove signbit. * doc/posix-functions/floorl.texi: Mention the new module. 2010-12-21 Bruno Haible New module 'round-ieee'. * modules/round-ieee: New file. * m4/round.m4 (gl_FUNC_ROUND): If gl_FUNC_ROUND_IEEE is also used, test whether round works according to ISO C 99 with IEC 60559. * m4/round-ieee.m4: New file. * modules/round-ieee-tests: New file. * tests/test-round-ieee.c: New file, based on tests/test-roundf-ieee.c. * tests/test-round1.c (main): Remove signbit tests. * modules/round-tests (Depends-on): Remove 'signbit'. * doc/posix-functions/round.texi: Mention the new module. 2010-12-21 Bruno Haible New module 'trunc-ieee'. * modules/trunc-ieee: New file. * m4/trunc.m4 (gl_FUNC_TRUNC): If gl_FUNC_TRUNC_IEEE is also used, test whether trunc works according to ISO C 99 with IEC 60559. * m4/trunc-ieee.m4: New file. * lib/math.in.h (trunc): Replace if REPLACE_TRUNC is set. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_TRUNC. * modules/math (Makefile.am): Substitute REPLACE_TRUNC. * modules/trunc-ieee-tests: New file. * tests/test-trunc-ieee.c: New file, based on tests/test-truncf-ieee.c. * tests/test-trunc1.c (main): Remove signbit tests. * modules/trunc-tests (Depends-on): Remove 'signbit'. * doc/posix-functions/trunc.texi: Mention the new module. 2010-12-21 Bruno Haible New module 'ceil-ieee'. * modules/ceil-ieee: New file. * m4/ceil.m4 (gl_FUNC_CEIL): Require gl_MATH_H_DEFAULTS. If gl_FUNC_CEIL_IEEE is also used, test whether ceil works according to ISO C 99 with IEC 60559. * m4/ceil-ieee.m4: New file. * modules/ceil (Files): Add lib/ceil.c. (Depends-on): Add 'float'. (configure.ac): Invoke gl_MATH_MODULE_INDICATOR. * lib/math.in.h (ceil): New declaration. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_CEIL, REPLACE_CEIL. * modules/math (Makefile.am): Substitute GNULIB_CEIL, REPLACE_CEIL. * modules/ceil-ieee-tests: New file. * tests/test-ceil-ieee.c: New file, based on tests/test-ceilf-ieee.c. * tests/test-math-c++.cc: Check the signature of 'ceil'. * doc/posix-functions/ceil.texi: Mention the new module. 2010-12-21 Bruno Haible New module 'floor-ieee'. * modules/floor-ieee: New file. * m4/floor.m4 (gl_FUNC_FLOOR): Require gl_MATH_H_DEFAULTS. If gl_FUNC_FLOOR_IEEE is also used, test whether floor works according to ISO C 99 with IEC 60559. * m4/floor-ieee.m4: New file. * modules/floor (Files): Add lib/floor.c. (Depends-on): Add 'float'. (configure.ac): Invoke gl_MATH_MODULE_INDICATOR. * lib/math.in.h (floor): New declaration. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_FLOOR, REPLACE_FLOOR. * modules/math (Makefile.am): Substitute GNULIB_FLOOR, REPLACE_FLOOR. * modules/floor-ieee-tests: New file. * tests/test-floor-ieee.c: New file, based on tests/test-floorf-ieee.c. * tests/test-math-c++.cc: Check the signature of 'floor'. * doc/posix-functions/floor.texi: Mention the new module. 2010-12-21 Bruno Haible New module 'roundf-ieee'. * modules/roundf-ieee: New file. * m4/roundf.m4 (gl_FUNC_ROUNDF): If gl_FUNC_ROUNDF_IEEE is also used, test whether roundf works according to ISO C 99 with IEC 60559. * m4/roundf-ieee.m4: New file. * modules/roundf-ieee-tests: New file. * tests/test-roundf-ieee.c: New file, based on tests/test-roundf1.c. * tests/test-roundf1.c (main): Remove signbit tests. * modules/roundf-tests (Depends-on): Remove 'signbit'. * doc/posix-functions/roundf.texi: Mention the new module. 2010-12-21 Bruno Haible New module 'truncf-ieee'. * modules/truncf-ieee: New file. * m4/truncf.m4 (gl_FUNC_TRUNCF): If gl_FUNC_TRUNCF_IEEE is also used, test whether truncf works according to ISO C 99 with IEC 60559. * m4/truncf-ieee.m4: New file. * lib/math.in.h (truncf): Replace if REPLACE_TRUNCF is set. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_TRUNCF. * modules/math (Makefile.am): Substitute REPLACE_TRUNCF. * modules/truncf-ieee-tests: New file. * tests/test-truncf-ieee.c: New file, based on tests/test-truncf1.c. * tests/test-truncf1.c (main): Remove signbit tests. * modules/truncf-tests (Depends-on): Remove 'signbit'. * doc/posix-functions/truncf.texi: Mention the new module. 2010-12-21 Bruno Haible New module 'ceilf-ieee'. * modules/ceilf-ieee: New file. * m4/ceilf.m4 (gl_FUNC_FLOORF): If gl_FUNC_CEILF_IEEE is also used, test whether ceilf works according to ISO C 99 with IEC 60559. * m4/ceilf-ieee.m4: New file. * modules/ceilf-ieee-tests: New file. * tests/test-ceilf-ieee.c: New file, based on tests/test-ceilf1.c. * tests/test-ceilf1.c (main): Remove signbit tests. * modules/ceilf-tests (Depends-on): Remove 'signbit'. * doc/posix-functions/ceilf.texi: Mention the new module. 2010-12-21 Bruno Haible New module 'floorf-ieee'. * modules/floorf-ieee: New file. * m4/floorf.m4 (gl_FUNC_FLOORF): If gl_FUNC_FLOORF_IEEE is also used, test whether floorf works according to ISO C 99 with IEC 60559. * m4/floorf-ieee.m4: New file. * modules/floorf-ieee-tests: New file. * tests/test-floorf-ieee.c: New file, based on tests/test-floorf1.c. * tests/test-floorf1.c (main): Remove signbit tests. * modules/floorf-tests (Depends-on): Remove 'signbit'. * doc/posix-functions/floorf.texi: Mention the new module. 2010-12-21 Bruno Haible Support for minus zero in autoconf macros. * m4/minus-zero.m4: New file, based on tests/minus-zero.h. * m4/signbit.m4 (gl_FLOAT_SIGNBIT_CODE, gl_DOUBLE_SIGNBIT_CODE, gl_LONG_DOUBLE_SIGNBIT_CODE, gl_FLOATTYPE_SIGNBIT_CODE): New macros. * tests/minus-zero.h: Update comments. 2010-12-21 Bruno Haible Tests for module 'ceil'. * modules/ceil-tests: New file. * tests/test-ceil1.c: New file, based on tests/test-ceill.c. * tests/test-ceil2.c: New file, based on tests/test-ceilf2.c. 2010-12-21 Bruno Haible Tests for module 'floor'. * modules/floor-tests: New file. * tests/test-floor1.c: New file, based on tests/test-floorl.c. * tests/test-floor2.c: New file, based on tests/test-floorf2.c. 2010-12-21 Bruno Haible math: Fix indentation. * lib/math.in.h (floorf): Fix indentation. 2010-12-21 Bruno Haible Fix cross-compilation guesses on Solaris. * m4/fopen.m4 (gl_FUNC_FOPEN): Correct shell pattern so that it does not match "solaris2.10". * m4/open.m4 (gl_FUNC_OPEN): Likewise. * m4/printf.m4 (gl_SNPRINTF_TRUNCATION_C99, gl_SNPRINTF_DIRECTIVE_N, gl_VSNPRINTF_ZEROSIZE_C99): Likewise. 2010-12-21 Paul Eggert snprintf: port snprintf (NULL, 0, ...) to Solaris 8 and 9 This fixes a problem observed with the latest coreutils snapshot that caused a test to fail on Solaris 8. src/csplit.c's call snprintf (NULL, 0, format, UINT_MAX) returns -1 on Solaris 9 and earlier, instead of returning the number of bytes that would have been generated; this causes csplit to incorrectly report memory exhaustion. * m4/printf.m4 (gl_SNPRINTF_RETVAL_C99): Also check for snprintf (NULL, 0, ...) and (for good measure) snprintf (buf, 0, ...). Guess that it doesn't work on Solaris 2.6 through 9. Adjust comments to match. (gl_PRINTF_SIZES_C99, gl_PRINTF_DIRECTIVE_F, gl_SNPRINTF_RETVAL_C99): Fix typo in matching older versions of Solaris: "solaris2.10" is matched by the shell pattern "solaris2.[0-9]*". This matters only for guessing while cross-compiling. * m4/snprintf.m4 (gl_FUNC_SNPRINTF): Also check gl_SNPRINTF_RETVAL_C99. 2010-12-20 Paul Eggert ftoastr: fix comment again * lib/ftoastr.h: Fix typo in comment. Noted by Ben Pfaff in . Also, simplify example a bit by using flags = 0. 2010-12-20 Bruno Haible round*, trunc*: Update documentation regarding glibc. * doc/posix-functions/roundf.texi: Mention missing declaration problem. * doc/posix-functions/round.texi: Likewise. * doc/posix-functions/roundl.texi: Likewise. * doc/posix-functions/truncf.texi: Likewise. * doc/posix-functions/trunc.texi: Likewise. * doc/posix-functions/truncl.texi: Likewise. 2010-12-20 Bruno Haible roundf, round, roundl: Update documentation regarding OSF/1 5.1. * doc/posix-functions/roundf.texi: Mention OSF/1 5.1 problem. * doc/posix-functions/round.texi: Likewise. * doc/posix-functions/roundl.texi: Likewise. 2010-12-20 Bruno Haible ttyname_r: Add missing declaration on HP-UX 11. * lib/unistd.in.h (ttyname_r): Test HAVE_DECL_TTYNAME_R instead of HAVE_TTYNAME_R. * m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Test whether ttyname_r is declared. Set HAVE_TTYNAME_R always. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_DECL_TTYNAME_R, not HAVE_TTYNAME_R. * modules/unistd (Makefile.am): Substitute HAVE_DECL_TTYNAME_R, not HAVE_TTYNAME_R. * doc/posix-functions/ttyname_r.texi: Document the HP-UX 11 problem. 2010-12-20 Bruno Haible getlogin, getlogin_r: Document HP-UX 11.11 bugs. * doc/posix-functions/getlogin.texi: Document HP-UX 11.11 bug. * doc/posix-functions/getlogin_r.texi: Likewise. * tests/test-getlogin.c: Include . (main): Avoid test failure on HP-UX 11.11. * tests/test-getlogin_r.c (main): Likewise. 2010-12-20 Bruno Haible getlogin_r: Add missing declaration on HP-UX 11. * m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Test whether getlogin_r is declared also when it exists as a function. * doc/posix-functions/getlogin_r.texi: Document this workaround. 2010-12-20 Bruno Haible wcsrtombs: Don't confuse mbstate_t with rpl_mbstate_t. * lib/wcsrtombs.c: If gnulib overrides mbstate_t, define wcsrtombs through wcrtomb. 2010-12-19 Paul Eggert ftoastr: fix comment * lib/ftoastr.h: Fix typo in comment. Noted by Ben Pfaff in . 2010-12-19 Bruno Haible isnan: Ensure it is a macro. * lib/math.in.h (isnan): Define as a macro if not already a macro. * doc/posix-functions/isnan.texi: Mention problem on IRIX, OSF/1, Solaris. 2010-12-19 Bruno Haible ldexpl test: Fix link error on OSF/1 5.1. * modules/ldexpl-tests (Makefile.am): Define test_ldexpl_LDADD. 2010-12-19 Bruno Haible wctype: Make it work in C++ mode on OSF/1 5.1. * lib/wctype.in.h (iswblank): Declare but not define here. * lib/iswblank.c: New file, extracted from lib/wctype.in.h. * m4/wctype_h.m4 (gl_WCTYPE_H): Arrange to compile it if needed. * modules/wctype (Files): Add lib/iswblank.c. 2010-12-19 Bruno Haible signal: Document problem with type of SIGRTMIN, SIGRTMAX on OSF/1 5.1. * doc/posix-headers/signal.texi: Document OSF/1 5.1 problem. * lib/strsignal.c (strsignal): Cast SIGRTMIN to 'int'. 2010-12-19 Bruno Haible sys_socket: Use POSIX compatible declarations on OSF/1 5.1. * m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): On OSF/1, define _POSIX_PII_SOCKET. * doc/posix-functions/recv.texi: Document the OSF/1 problem. * doc/posix-functions/recvfrom.texi: Likewise. * doc/posix-functions/send.texi: Likewise. * doc/posix-functions/sendto.texi: Likewise. 2010-12-19 Bruno Haible tcgetsid: Add missing declaration on OSF/1 5.1. * lib/termios.in.h (tcgetsid): Test HAVE_DECL_TCGETSID instead of HAVE_TCGETSID. * m4/tcgetsid.m4 (gl_FUNC_TCGETSID): Test whether tcgetsid is declared. Don't set HAVE_TCGETSID. * m4/termios_h.m4 (gl_TERMIOS_H_DEFAULTS): Initialize HAVE_DECL_TCGETSID, not HAVE_TCGETSID. * modules/termios (Makefile.am): Substitute HAVE_DECL_TCGETSID, not HAVE_TCGETSID. * doc/posix-functions/tcgetsid.texi: Mention the OSF/1 5.1 problem. 2010-12-19 Bruno Haible stdio: Fix problem with popen() declaration on OSF/1 5.1. * lib/stdio.in.h: During the include_next statement, let recursive includes of this file include only the system header file. 2010-12-19 Bruno Haible iconv_open: Fix regression from 2010-12-04. * m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN_UTF): Fix typo. Reported by Noah Lavine . 2010-12-19 Bruno Haible stdbool test: Avoid a gcc warning. * tests/test-stdbool.c (main): Fail if e1 is false. Reported by Jim Meyering. 2010-12-19 Jim Meyering setenv: restore to working order $HAVE_SETENV is used in gl_FUNC_SETENV, yet its definitions were mistakenly removed. * m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Restore code to set HAVE_SETENV. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Restore code to initialize HAVE_SETENV. 2010-12-19 Bruno Haible Document some different function declarations on OSF/1 5.1. * doc/posix-functions/gai_strerror.texi: Mention different declaration. * doc/posix-functions/inet_ntop.texi: Likewise. * doc/posix-functions/gethostname.texi: Likewise. * lib/unistd.in.h (gethostname): Update comment. 2010-12-19 Bruno Haible doc: Mention vasprintf-posix module. * doc/glibc-functions/asprintf.texi: Mention the workarounds present in the 'vasprintf-posix' module. * doc/glibc-functions/vasprintf.texi: Likewise. 2010-12-19 Bruno Haible unsetenv: Add missing declaration on OSF/1 5.1. * lib/stdlib.in.h (setenv): Test HAVE_DECL_UNSETENV, not HAVE_UNSETENV. * m4/setenv.m4 (gl_FUNC_UNSETENV): Test whether unsetenv is declared. Don't set HAVE_UNSETENV. In the test program, set _BSD. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_DECL_UNSETENV, not HAVE_UNSETENV. * modules/stdlib (Makefile.am): Substitute HAVE_DECL_UNSETENV, not HAVE_UNSETENV. * doc/posix-functions/unsetenv.texi: Mention the OSF/1 5.1 problem. 2010-12-19 Bruno Haible setenv: Add missing declaration on OSF/1 5.1. * lib/stdlib.in.h (setenv): Test HAVE_DECL_SETENV, not HAVE_SETENV. * m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Test whether setenv is declared. Don't set HAVE_SETENV. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_DECL_SETENV, not HAVE_SETENV. * modules/stdlib (Makefile.am): Substitute HAVE_DECL_SETENV, not HAVE_SETENV. * doc/posix-functions/setenv.texi: Mention the OSF/1 5.1 problem. 2010-12-19 Bruno Haible nl_langinfo tests: Avoid gcc warning. * tests/test-nl_langinfo.c: Don't enable the GCC pragma for GCC 4.2. 2010-12-19 Bruno Haible mknod: Avoid error in C++ mode on OSF/1 with GCC. * lib/sys_stat.in.h (mknod): Use _GL_CXXALIAS_SYS_CAST instead of _GL_CXXALIAS_SYS. 2010-12-19 Bruno Haible stdbool: Relax test. * tests/test-stdbool.c (e): Don't require that casts from a variable's address to 'bool' work in static initializer, for compilers other than GCC. 2010-12-19 Bruno Haible ftello: Add missing declaration on OSF/1 5.1. * lib/stdio.in.h (ftello): Test HAVE_DECL_FTELLO, not HAVE_FTELLO. * m4/ftello.m4 (gl_FUNC_FTELLO): Test whether ftello is declared. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize HAVE_DECL_FTELLO. * modules/stdio (Makefile.am): Substitute HAVE_DECL_FTELLO. * doc/posix-functions/ftello.texi: Mention the OSF/1 5.1 problem. 2010-12-19 Bruno Haible fseeko: Add missing declaration on OSF/1 5.1. * lib/stdio.in.h (fseeko): Test HAVE_DECL_FSEEKO, not HAVE_FSEEKO. * m4/fseeko.m4 (gl_FUNC_FSEEKO): Test whether fseeko is declared. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize HAVE_DECL_FSEEKO. * modules/stdio (Makefile.am): Substitute HAVE_DECL_FSEEKO. * doc/posix-functions/fseeko.texi: Mention the OSF/1 5.1 problem. 2010-12-19 Bruno Haible fchdir: Add missing declaration on OSF/1 5.1. * lib/unistd.in.h (fchdir): Provide declaration if systems lacks it. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Check whether fchdir is declared. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_DECL_FCHDIR. * modules/unistd (Makefile.am): Substitute HAVE_DECL_FCHDIR. * doc/posix-functions/fchdir.texi: Mention the OSF/1 5.1 problem. 2010-12-19 Bruno Haible relocatable-prog-wrapper: Separate from relocatable-prog. * modules/relocatable-prog (Makefile.am): Define uninstall-hook and uninstall-relocwrapper rule here. * modules/relocatable-prog-wrapper (Makefile.am): ... not here. Reported by Ian Beckwith . 2010-12-19 Bruno Haible unistr/u8-mbsnlen: Add missing dependency. * modules/unistr/u8-mbsnlen (Depends-on): Add unistr/u8-mbtouc. Reported by Ian Beckwith . 2010-12-19 Bruno Haible iconv: Make it possible again to use this module without 'iconv-h'. * modules/iconv (configure.ac): Don't invoke gl_ICONV_MODULE_INDICATOR if it is not defined. Reported by Ian Beckwith . 2010-12-18 Paul Eggert acl: port to Solaris 8 when copying from tmpfs to ufs * lib/copy-acl.c (qcopy_acl): Also allow EINVAL as an ignorable error number. Problem observed on Solaris 8 with latest coreutils, with "mv A B", where A is on a tmpfs file system and B is on a ufs file system. This caused coreutils' mv/part-symlink test to fail. tests: set fail=0 at start * tests/init.sh (setup_): Move fail=0 initialization here ... (mktempd_): ... from here, so that tests can rely on fail being set to 0 initially. This fixes a problem in coreutils; see: http://lists.gnu.org/r/coreutils/2010-12/msg00083.html 2010-12-18 Bruno Haible memmem-simple: Stylistic changes. * m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): Avoid possible gcc warning. Fix preprocessor directive indentation. 2010-12-15 Pádraig Brady memmem, memmem-simple: reorganize and expand empty needle check * m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE, gl_FUNC_MEMMEM): Move all functional checks to memmem-simple so that one has a fully functional memmem by using just this module. Restrict the performance only check to the memmem module. Also expand the empty needle check to ensure the correct pointer is returned, not just a non NULL pointer. * doc/glibc-functions/memmem.texi: Rearrange the portability documentation to correlate with the rearranged checks. Clarify exactly how the memmem and memmem-simple modules relate to each other. 2010-12-15 Pádraig Brady Bruno Haible Improve cross-compilation guesses for uClibc. * m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): When cross-compiling, assume that uClibc does not have the glibc bug. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Likewise. * m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE): Likewise. 2010-12-14 Eric Blake configmake: provide fallbacks for oldest supported autotools * m4/configmake.m4: New file. * modules/configmake (Files): Ship it. (configure.ac): Use it to guarantee fallbacks. 2010-12-13 Pádraig Brady read-file: Improve handling of large files * lib/read-file.c (fread_file): Minimize realloc()s for regular files, and better manage sizes around SIZE_MAX. 2010-12-13 Eric Blake cloexec, fcntl: relax license * modules/cloexec (License): Change from LGPLv3+ to LGPLv2+, with consent from all contributors. * modules/fcntl (License): Likewise. 2010-12-10 Bruno Haible Tests for module 'pipe-posix'. * modules/pipe-posix-tests: New file. * tests/test-pipe.c: New file, based on tests/test-pipe2.c. 2010-12-10 Bruno Haible pipe-posix: Make it work in C++ mode. * lib/unistd.in.h: Don't include , for pipe. (pipe): Use common idiom, not a macro definition. * lib/pipe.c: New file. * m4/pipe.m4: New file. * modules/pipe-posix (Description): Enhance. (Files): Add lib/pipe.c, m4/pipe.m4. (configure.ac): Invoke gl_FUNC_PIPE. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_PIPE. * modules/unistd (Makefile.am): Substitute HAVE_PIPE. * tests/test-unistd-c++.cc: Check the signature of pipe. 2010-12-10 Bruno Haible Rename module 'pipe' to 'spawn-pipe'. * modules/spawn-pipe: New file, renamed from modules/pipe. (Files, configure.ac, Makefile.am): Update. (Include): Mention "spawn-pipe.h" instead of "pipe.h". * modules/pipe: Reduce to an obsolete indirection to 'spawn-pipe'. * lib/spawn-pipe.h: New file, renamed from lib/pipe.h. * lib/spawn-pipe.c: New file, renamed from lib/pipe.c. Include "spawn-pipe.h" instead of "pipe.h". * m4/spawn-pipe.m4: New file, renamed from m4/pipe.m4. Rename gl_PIPE to gl_SPAWN_PIPE. * modules/spawn-pipe-tests: New file, renamed from modules/pipe-tests. (Files, Makefile.am): Update. * tests/test-spawn-pipe.sh: New file, renamed from tests/test-pipe.sh. Update. * tests/test-spawn-pipe.c: New file, renamed from tests/test-pipe.c. Include "spawn-pipe.h" instead of "pipe.h". * lib/csharpcomp.c: Include "spawn-pipe.h" instead of "pipe.h". * lib/javacomp.c: Likewise. * lib/javaversion.c: Likewise. * lib/pipe-filter-gi.c: Likewise. * lib/pipe-filter-ii.c: Likewise. * modules/csharpcomp (Depends-on): Add 'spawn-pipe', remove 'pipe'. * modules/javacomp (Depends-on): Likewise. * modules/javaversion (Depends-on): Likewise. * modules/pipe-filter-gi (Depends-on): Likewise. * modules/pipe-filter-ii (Depends-on): Likewise. * MODULES.html.sh (Executing programs): Update. * NEWS: Mention the change. 2010-12-10 Eric Blake pipe-posix: new module * modules/pipe-posix: New file. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Set default. (gl_UNISTD_H): Check for declaration. * modules/unistd (Makefile.am): Substitute it. * lib/unistd.in.h (pipe): Provide it for mingw. * doc/posix-functions/pipe.texi (pipe): Update documentation. * MODULES.html.sh (File descriptor based Input/Output): Likewise. 2010-12-07 Bruno Haible unistr/u8-strcmp: Avoid collision with libc function on Solaris 11. * lib/unistr.in.h (u8_strcmp) [__sun]: Declare with real name u8_strcmp_gnu. * modules/unistr/u8-strcmp (configure.ac): Bump version number. 2010-12-06 Bruno Haible Update internal documentation. * m4/README: Document new idioms for AC_RUN_IFELSE invocations. 2010-12-04 Bruno Haible Put more information about failed tests into the test return codes. * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Change test program so that it returns an enumerated value (0, 1, 2, 3, 4, ...). * m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Likewise. * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise. * m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Likewise. * m4/getdelim.m4 (gl_FUNC_GETDELIM): Likewise. * m4/getline.m4 (gl_FUNC_GETLINE): Likewise. * m4/intdiv0.m4 (gt_INTDIV0): Likewise. * m4/isapipe.m4 (gl_PREREQ_ISAPIPE): Likewise. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise. * m4/posix_spawn.m4 (gl_POSIX_SPAWN_WORKS): Likewise. * m4/putenv.m4 (gl_FUNC_PUTENV): Likewise. * m4/sleep.m4 (gl_FUNC_SLEEP): Likewise. * m4/stdint.m4 (gl_STDINT_H): Likewise. * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Change test program so that it returns a bit mask. * m4/canonicalize.m4 (gl_FUNC_REALPATH_WORKS): Likewise. * m4/chown.m4 (gl_FUNC_CHOWN_FOLLOWS_SYMLINK): Likewise. * m4/dup2.m4 (gl_FUNC_DUP2): Likewise. * m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Likewise. * m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Likewise. * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Likewise. * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Likewise. * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Likewise. * m4/iconv.m4 (AM_ICONV_LINK): Likewise. * m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN_UTF): Likewise. * m4/isfinite.m4 (gl_ISFINITEL_WORKS): Likewise. * m4/isnanf.m4 (gl_ISNANF_WORKS): Likewise. * m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Likewise. * m4/ldexpl.m4 (gl_FUNC_LDEXPL_WORKS): Likewise. * m4/link.m4 (gl_FUNC_LINK): Likewise. * m4/linkat.m4 (gl_FUNC_LINKAT): Likewise. * m4/mbrlen.m4 (gl_MBRLEN_RETVAL): Likewise. * m4/mbrtowc.m4 (gl_MBRTOWC_RETVAL): Likewise. * m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): Likewise. * m4/memchr.m4 (gl_FUNC_MEMCHR): Likewise. * m4/memmem.m4 (gl_FUNC_MEMMEM): Likewise. * m4/mkfifo.m4 (gl_FUNC_MKFIFO): Likewise. * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Likewise. * m4/mktime.m4 (AC_FUNC_MKTIME): Likewise. * m4/open.m4 (gl_FUNC_OPEN): Likewise. * m4/poll.m4 (gl_FUNC_POLL): Likewise. * m4/popen.m4 (gl_FUNC_POPEN): Likewise. * m4/printf.m4 (gl_PRINTF_SIZES_C99, gl_PRINTF_LONG_DOUBLE, gl_PRINTF_INFINITE, gl_PRINTF_INFINITE_LONG_DOUBLE, gl_PRINTF_DIRECTIVE_A, gl_PRINTF_DIRECTIVE_F, gl_PRINTF_DIRECTIVE_LS, gl_PRINTF_PRECISION): Likewise. * m4/regex.m4 (gl_REGEX): Likewise. * m4/rename.m4 (gl_FUNC_RENAME): Likewise. * m4/rmdir.m4 (gl_FUNC_RMDIR): Likewise. * m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Likewise. * m4/stat.m4 (gl_FUNC_STAT): Likewise. * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Likewise. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Likewise. * m4/strsignal.m4 (gl_FUNC_STRSIGNAL): Likewise. * m4/strstr.m4 (gl_FUNC_STRSTR): Likewise. * m4/strtod.m4 (gl_FUNC_STRTOD): Likewise. * m4/symlink.m4 (gl_FUNC_SYMLINK): Likewise. * m4/tsearch.m4 (gl_FUNC_TSEARCH): Likewise. * m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Likewise. * m4/unlink-busy.m4 (gl_FUNC_UNLINK_BUSY_TEXT): Likewise. * m4/unlink.m4 (gl_FUNC_UNLINK): Likewise. * m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Likewise. * m4/utimes.m4 (gl_FUNC_UTIMES): Likewise. * m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise. * m4/signbit.m4 (gl_SIGNBIT_TEST_PROGRAM): Likewise. (gl_FLOATTYPE_SIGN_LOCATION): Change test program so that it returns an enumerated value. * m4/acl.m4 (gl_ACL_GET_FILE): Use "if ... return 1; return 0;" style. 2010-12-04 Bruno Haible Update for Solaris 11 2010-11. * doc/{glibc,posix}-{functions,headers}: Add info about Solaris 11 Express, released in November 2010. 2010-12-04 Bruno Haible nproc: Relax license. * modules/nproc (License): Change to LGPL, with consent by Glen Lenker and Paul Eggert. Requested by Ludovic Courtès . 2010-12-01 Paul Eggert utimecmp: fine-grained src to nearby coarse-grained dest * lib/utimecmp.c (utimecmp): When UTIMECMP_TRUNCATE_SOURCE is set, and the source is on a file system with higher-resolution time stamps, than the destination, and _PC_TIMESTAMP_RESOLUTION does not work, and the time stamps are close together, the algorithm to determine the exact resolution from the read-back mtime was buggy: it had a "!=" where it should have had an "==". This bug has been in the code ever since it was introduced to gnulib. Problem reported by Dan Jacobson in . 2010-11-30 Bruno Haible strerror_r-posix: Fix autoconf test. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Fix typo. 2010-11-28 Bruno Haible Paul Eggert Tests for module 'getdomainname'. * modules/getdomainname-tests: New file. * tests/test-getdomainname.c: New file, based on tests/test-gethostname.c. 2010-11-28 Bruno Haible Paul Eggert getdomainname: Use the system function when possible. * lib/unistd.in.h: Include , for getdomainname's declaration. (getdomainname): Replace if needed. Provide the declaration if it is missing. Don't use _GL_CXXALIAS_SYS_CAST. * lib/getdomainname.c: Include and . (getdomainname): When the system has getdomainname, call the system function. When sysinfo (SI_SRPC_DOMAIN, ...) is possible, use that. * m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME): Require gl_HEADER_SYS_SOCKET and gl_HEADER_NETDB. Test whether the function is found in libnsl. Look for the declaration also in . Replace the function if its second argument is of type 'int' or if it is found in libnsl. (gl_PREREQ_GETDOMAINNAME): Define HAVE_GETDOMAINNAME. Check for and sysinfo(). * modules/getdomainname (Depends-on): Add netdb, sys_socket. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_DECL_GETDOMAINNAME and REPLACE_GETDOMAINNAME instead of HAVE_GETDOMAINNAME. * modules/unistd (Makefile.am): Substitute HAVE_DECL_GETDOMAINNAME and REPLACE_GETDOMAINNAME instead of HAVE_GETDOMAINNAME. * doc/glibc-functions/getdomainname.texi: Document the problems with the getdomainname declaration. 2010-11-28 Bruno Haible sys_socket: Ensure ss_family field on AIX. * lib/sys_socket.in.h (ss_family): New macro definition. * m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Set HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY. Set SYS_SOCKET_H if necessary. (gl_SYS_SOCKET_H_DEFAULTS): Initialize HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY. * modules/sys_socket (Makefile.am): Substitute HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY. * doc/posix-headers/sys_socket.texi: Mention the AIX bug. 2010-11-27 Bruno Haible readline: Improve configure output. * m4/readline.m4 (gl_FUNC_READLINE): Make the "checking for readline..." result understandable. 2010-11-27 Bruno Haible *printf-posix: Detect a bug on Solaris 10/x86. * m4/printf.m4 (gl_PRINTF_PRECISION): Detect crash with large precision for floating-point output. * tests/test-vasnprintf-posix.c (test_function): Test precision with %f directive. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. * tests/test-vasprintf-posix.c (test_function): Likewise. * doc/posix-functions/fprintf.texi: Mention Solaris/x86 bug. * doc/posix-functions/printf.texi: Likewise. * doc/posix-functions/snprintf.texi: Likewise. * doc/posix-functions/sprintf.texi: Likewise. * doc/posix-functions/vfprintf.texi: Likewise. * doc/posix-functions/vprintf.texi: Likewise. * doc/posix-functions/vsnprintf.texi: Likewise. * doc/posix-functions/vsprintf.texi: Likewise. * doc/glibc-functions/obstack_printf.texi: Likewise. * doc/glibc-functions/obstack_vprintf.texi: Likewise. 2010-11-27 Bruno Haible Fix link error when module libunistring-optional is in use. * modules/striconveh-tests (Makefile.am): Link with $(LIBUNISTRING). * modules/striconveha-tests (Makefile.am): Likewise. 2010-11-27 Bruno Haible regex: Mention link dependencies. * modules/regex (Link): New section. * modules/rpmatch (Link): Likewise. * modules/regex-quote-tests (Makefile.am): Link with $(LIBINTL). 2010-11-27 Bruno Haible ftoastr: Fix compilation error on Solaris. * lib/ftoastr.c: Include . 2010-11-27 Bruno Haible getloadavg: Update documentation. * doc/glibc-functions/getloadavg.texi: Mention the Solaris problem. 2010-11-27 Bruno Haible sys_socket: Fix test whether the functions are declared. * m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Include , not . 2010-11-27 Bruno Haible getpass: Make sure to get system declaration on some platforms. * m4/getpass.m4 (gl_FUNC_GETPASS, gl_FUNC_GETPASS_GNU): Require gl_USE_SYSTEM_EXTENSIONS. * modules/getpass (Depends-on): Add extensions. 2010-11-26 Bruno Haible iconv-h: Fix test-iconv-h-c++ failure on Solaris 11 2010-11. * lib/iconv.in.h (iconv_open, iconv, iconv_close): Define only if the 'iconv' module is present. (ICONV_CONST): New macro. * m4/iconv_h.m4 (gl_ICONV_H_DEFAULTS): Initialize GNULIB_ICONV and ICONV_CONST. * m4/iconv.m4 (AM_ICONV): If the gnulib module 'iconv-h' is present, set ICONV_CONST. * m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN_UTF): Don't set ICONV_CONST here. * modules/iconv (configure.ac): Invoke gl_ICONV_MODULE_INDICATOR. * modules/iconv-h (Makefile.am): Substitute GNULIB_ICONV. * tests/test-iconv-h.c (ICONV_CONST): Don't define here. * tests/test-iconv-h-c++.cc (ICONV_CONST): Don't define here. (iconv_open, iconv, iconv_close): Test only if the 'iconv' module is present. 2010-11-25 Paul Eggert ftoastr: comment fix * lib/ftoastr.c: "little" -> "little or no" in comment 2010-11-24 Paul Eggert stdint: port to GCC 4.3 + OSX + Octave On this platform, stdint.h is buggy and defines int64_t to long long int. The replacement defined it to long int, causing problems with C++ style name mangling. Instead, trust the system definition if INT64_MAX is defined, and likewise for the unsigned variant. Problem reported by Jarno Rajahalme in . * lib/stdint.in.h (GL_INT64_T): Define if INT64_MAX is defined, and don't mess with int64_t and INT64_MAX in this case. (GL_UINT64_T): Likewise for UINT64_MAX and uint64_t. 2010-11-24 Bruno Haible doc: Corrections regarding MacOS X 10.4 and 10.5. * doc/{glibc,posix,pastposix}-functions/*.texi: Update info about MacOS X. Reported by Simon Josefsson. 2010-11-22 Ben Pfaff Uninstall ".bin" files installed by relocwrapper. * modules/relocatable-prog-wrapper (uninstall-relocwrapper): Recursively run "make uninstall" with ".bin" prefixed to EXEEXT, unless it is already there. 2010-11-21 Bruno Haible Update for NetBSD 5.0. * m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Don't guess yes on NetBSD; the test fails on NetBSD 5.0. * doc/{glibc,posix,pastposix}-{headers,functions}/*.texi: Update info about NetBSD. 2010-11-21 Bruno Haible Update for HP-UX 11.23 and HP-UX 11.31. * doc/{glibc,posix}-{headers,functions}/*.texi: Update info about HP-UX. 2010-11-21 Bruno Haible Update for MacOS X 10.5. * m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Don't guess yes on MacOS X; the test fails on MacOS X 10.5.8. * doc/{glibc,posix,pastposix}-{headers,functions}/*.texi: Update info about MacOS X. 2010-11-20 Joel E. Denny bootstrap: add bootstrap_sync option. See discussion at , . * build-aux/bootstrap: Accept --bootstrap-sync to update bootstrap if it is not identical to the local gnulib's bootstrap. Accept bootstrap_sync=true in bootstrap.conf to enable this by default. Accept --no-bootstrap-sync to disable it. 2010-11-20 Bruno Haible Ensure that is included before __GLIBC__ is tested. * lib/printf-parse.h: Include . * m4/vasnprintf.m4 (gl_PREREQ_PRINTF_PARSE): Require gl_FEATURES_H. Reported by Mike Frysinger . Ensure that is included before __GLIBC__ is tested. * lib/wchar.in.h: Include . * m4/wchar_h.m4 (gl_WCHAR_H): Require gl_FEATURES_H. * modules/wchar (Makefile.am): Substitute HAVE_FEATURES_H. Reported by Mike Frysinger . Ensure that is included before __GLIBC__ is tested. * lib/arpa_inet.in.h: Include . * m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET): Require gl_FEATURES_H. * modules/arpa_inet (Makefile.am): Substitute HAVE_FEATURES_H. Reported by Mike Frysinger . Ensure that is included before __GLIBC__ is tested. * build-aux/link-warning.h: Include . * modules/link-warning (configure.ac): Require gl_FEATURES_H. (Makefile.am): Substitute HAVE_FEATURES_H into link-warning.h. Reported by Mike Frysinger . Ensure that is included before __GLIBC__ is tested. * m4/gnulib-common.m4 (gl_FEATURES_H): New macro. Reported by Mike Frysinger . 2010-11-20 Bruno Haible memmem: Fix autoconf test. * m4/memmem.m4 (gl_FUNC_MEMMEM): Test HAVE_DECL_MEMMEM, not HAVE_MEMMEM. 2010-11-20 Bruno Haible Port to uClibc. * build-aux/link-warning.h (GL_LINK_WARNING): Treat uClibc like glibc. * lib/fcntl.in.h: Likewise. * lib/hard-locale.c (GLIBC_VERSION): Likewise. * lib/mbrtowc.c (mbrtowc): Likewise. * lib/relocatable.c (find_shared_library_fullname): Likewise. * lib/strerror_r.c: Likewise. * lib/unistr/u8-strnlen.c: Likewise. * lib/vasnprintf.c (decimal_point_char): Likewise. * m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET): Likewise. * m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Likewise. * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Likewise. * m4/glibc21.m4 (gl_GLIBC21): Likewise. * tests/test-sigaction.c (handler, main): Likewise. * lib/freading.h: Treat uClibc like a non-glibc platform. * lib/freading.c: Likewise. * lib/gettext.h: Likewise. * lib/localename.c (gl_locale_name_thread_unsafe, HAVE_LOCALE_NULL): Likewise. * lib/printf-parse.h (FLAG_LOCALIZED): Likewise. * lib/printf-parse.c (PRINTF_PARSE): Likewise. * lib/propername.c (proper_name_utf8): Likewise. * lib/spawn.in.h: Likewise. * lib/striconv.c (mem_cd_iconv, str_cd_iconv, str_iconv): Likewise. * lib/striconveh.c (iconveh_open, iconv_carefully, iconv_carefully_1, mem_cd_iconveh_internal): Likewise. * lib/striconveha.c (mem_iconveha, str_iconveha): Likewise. * lib/string.in.h (memchr, memrchr, rawmemchr, strchrnul, strpbrk, strstr, strcasestr): Likewise. * lib/unicodeio.c (unicode_to_mb): Likewise. * lib/uniconv/u16-conv-from-enc.c (UTF16_NAME): Likewise. * lib/uniconv/u16-conv-to-enc.c (UTF16_NAME): Likewise. * lib/uniconv/u16-strconv-to-enc.c (UTF16_NAME): Likewise. * lib/uniconv/u32-conv-from-enc.c (UTF32_NAME): Likewise. * lib/uniconv/u32-conv-to-enc.c (UTF32_NAME): Likewise. * lib/uniconv/u32-strconv-to-enc.c (UTF32_NAME): Likewise. * lib/unistr/u8-stpncpy.c: Likewise. * lib/vasnprintf.c (VASNPRINTF): Likewise. * lib/xmalloc.c (HAVE_GNU_CALLOC): Likewise. * m4/getdelim.m4 (gl_FUNC_GETDELIM): Likewise. * m4/getline.m4 (gl_FUNC_GETLINE): Likewise. * m4/glibc2.m4 (gt_GLIBC2): Likewise. * m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): Likewise. * m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE, gl_FUNC_MEMMEM): Likewise. * m4/printf.m4 (gl_PRINTF_DIRECTIVE_A): Likewise. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE, gl_FUNC_STRCASESTR): Likewise. * m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE, gl_FUNC_STRSTR): Likewise. * m4/strtod.m4 (gl_FUNC_STRTOD): Likewise. * m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H): Likewise. * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise. * m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise. * m4/sys_times_h.m4 (gl_SYS_TIMES_H): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H): Likewise. * m4/wchar_h.m4 (gl_WCHAR_H): Likewise. * tests/test-getopt.h (OPTIND_MIN): Likewise. * tests/test-striconveha.c (main): Likewise. * tests/test-vasnprintf-posix.c (test_function): Likewise. * tests/test-vasnprintf-posix3.c (test_function, main): Likewise. * doc/posix-functions/getdelim.texi: Mention an uClibc bug. * doc/posix-functions/getline.texi: Likewise. Reported by Mike Frysinger . 2010-11-20 Bruno Haible nproc: Fix condition. * lib/nproc.c: Test HAVE_PTHREAD_GETAFFINITY_NP, not HAVE_PTHREAD_AFFINITY_NP. 2010-11-20 Bruno Haible Fix a comment. * lib/vasnprintf.c (VASNPRINTF): Fix comment. 2010-11-19 Paul Eggert ftoastr: don't assume snprintf * lib/ftoastr.c (snprintf) [! GNULIB_SNPRINTF_POSIX]: Implement a subset of snprintf here, by using sprintf safely. * modules/ftoastr (Depends-on): Remove snprintf. 2010-11-19 Jim Meyering test-rename.h: fix compilation failure * tests/test-rename.h (test_rename): Add omitted "}". 2010-11-17 Jim Meyering maint.mk: add a URL discussing the no-@acronym policy * top/maint.mk (sc_texinfo_acronym): Add a URL in a comment. 2010-11-18 Paul Eggert ftoastr: depend on snprintf, improve comments * lib/ftoastr.c: Also mention Loitsch's draft. * lib/ftoastr.h: Require WIDTH to be nonnegative. This isn't needed in the current implementation, but it might simplify speeding up the code later. * modules/ftoastr: Depend on snprintf; this improves portability. Suggested by Bruno Haible in the same email. ftoastr: port to hosts lacking strtof and strtold Problem reported by Bruno Haible in . * lib/ftoastr.c (STRTOF): Define to strtod if in a pre-C99 environment and strtold (and presumably strtof) are not available. * modules/ftoastr (Files): Add m4/c-strtod.m4. (configure.ac): Require gl_C99_STRTOLD. 2010-11-18 Bruno Haible c-strtold: Avoid link error on AIX 7. * lib/c-strtod.c: Test also HAVE_STRTOD_L or HAVE_STRTOLD_L. * m4/c-strtod.m4 (gl_C_STRTOD): Test whether strtod_l exists. (gl_C_STRTOLD): Test whether strtold_l exists. Reported by Albert Chin . 2010-11-17 Paul Eggert intprops: new macro INT_BITS_STRLEN_BOUND * lib/intprops.h (INT_BITS_STRLEN_BOUND): New macro, needed by ftoastr.h. This exposes an internal of intprops.h that was formerly not exposed. Also, it uses a slightly tighter bound than before; though this makes no practical difference, we might as well be as tight as we easily can. ftoastr: new module, for lossless conversion of floats to short strings * lib/ftoastr.h, lib/ftoastr.c, lib/dtoastr.c, lib/ldtoastr.c: * modules/ftoastr: New files. 2010-11-15 Paul Eggert bootstrap: port to Solaris sed * build-aux/bootstrap (get_version): Port to Solaris sed. See Ralf Wildenhues's note in . 2010-11-14 Jim Meyering maint.mk: rename variable: s/noteworthy/gl_noteworthy_news_/ * top/maint.mk (gl_noteworthy_news_): Rename from "noteworthy" and move definition closer to sole use. 2010-11-13 Jim Meyering remove autoconf-2.57 work-around requiring AC_PROG_EGREP and AC_PROG_CPP Now we require at least autoconf-2.59, which means the work-around is no longer needed. * m4/alloca.m4 (gl_FUNC_ALLOCA): Remove work-around. * m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise. * m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Likewise. * m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Likewise. * m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Likewise. 2010-11-13 Bruno Haible rename, renameat: Avoid test failures at NFS mounted locations. * tests/test-rename.h (dentry_exists, assert_nonexistent): New functions. (test_rename): Use assert_nonexistent. * tests/test-rename.c: Include . * tests/test-renameat.c: Likewise. Reported by Gary V. Vaughan . rename, renameat: Document Linux bug with NFS . * doc/posix-functions/rename.texi: Mention the NFS bug on Linux. * doc/posix-functions/renameat.texi: Likewise. Suggested by Eric Blake. 2010-11-13 Bruno Haible rename test: Add comments. * tests/test-rename.h (test_rename): Add structure and comments. 2010-11-13 Eric Blake maintainer-makefile: cover a few more files * top/maint.mk (sc_prohibit_test_double_equal): Also cover shell scripts generated within C files, for libvirt. 2010-11-13 Bruno Haible unistr/u8-mbtouc: Improve handling of ill-formed UTF-8 input. * lib/unistr/u8-mbtouc.c (u8_mbtouc): For an invalid multibyte character, return the number of bytes that belong together, not always 1. * lib/unistr/u8-mbtouc-unsafe.c (u8_mbtouc_unsafe): Likewise. * lib/unistr/u8-mbtouc-aux.c (u8_mbtouc_aux): Likewise. * lib/unistr/u8-mbtouc-unsafe-aux.c (u8_mbtouc_unsafe_aux): Likewise. * lib/unistr/u8-mbsnlen.c (u8_mbsnlen): Use u8_mbtouc to determine the number of bytes of an invalid character. * tests/unistr/test-u8-mbtouc.c (test_safe_function): New function. (main): Invoke it. * tests/unistr/test-u8-mbtouc.h (test_function): Update two test results. * tests/unistr/test-u8-mbsnlen.c (main): Test various kinds of malformed byte sequences. * modules/unistr/u8-mbtouc (configure.ac): Bump version number. * modules/unistr/u8-mbtouc-unsafe (configure.ac): Likewise. * modules/unistr/u8-mbsnlen (configure.ac): Likewise. Reported by Ben Pfaff and Paolo Bonzini. 2010-11-13 Bruno Haible openat: Work around glibc bug with fchownat() and empty file names. * m4/openat.m4 (gl_FUNC_FCHOWNAT_EMPTY_FILENAME_BUG): New macro. (gl_FUNC_FCHOWNAT): Invoke it. * lib/fchownat.c (rpl_fchownat): Handle the empty file name specially. * doc/posix-functions/fchownat.texi: Document the glibc bug. Reported by Gary V. Vaughan . 2010-11-13 Bruno Haible openat: Ensure autoconf macro ordering. * m4/openat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG): Require gl_USE_SYSTEM_EXTENSIONS. (gl_FUNC_FCHOWNAT): Require gl_UNISTD_H_DEFAULTS. 2010-11-13 Bruno Haible Update comments. * lib/unistr/u8-check.c: Update file name in comments. * lib/unistr/u8-mblen.c: Likewise. * lib/unistr/u8-prev.c: Likewise. * lib/unistr/u8-strmblen.c: Likewise. * lib/unistr/u8-strmbtouc.c: Likewise. 2010-11-13 Jim Meyering tests: avoid test failure on Solaris 10 due to lack of PATH export * tests/test-update-copyright.sh: Don't forget to export PATH. init.sh: ensure that IFS is defined, just in case... * tests/init.sh (setup_): Ensure that IFS is defined, so that saving and restoring it works as expected. This appears to be useful at least for an old version of dash from a long time ago (RH 6). See here for details: http://thread.gmane.org/gmane.comp.gnu.coreutils.general/436/focus=455 maint.mk: tighten "test a == b" check * top/maint.mk (sc_prohibit_test_double_equal): Restrict this test to files that contain something like #!/bin/sh. Without this, coreutils would get two false positives in the comments of C source files. 2010-11-12 Eric Blake bootstrap: fix typo in previous attempt * build-aux/bootstrap (buildreq): Correct the grouping. Reported by Paul Eggert. maintainer-makefile: prohibit test x == x * top/maint.mk (sc_prohibit_test_double_equal): New rule. Based on a report by Matthias Bolte. bootstrap: allow FreeBSD gzip * build-aux/bootstrap (get_version): Parse FreeBSD gzip version, which has no '.' and goes to stderr. * build-aux/bootstrap.conf (buildreq): Improve the sample file. Reported by Matthias Bolte. maintainer-makefile: check for i18n setup * top/maint.mk (sc_bindtextdomain): Check for evidence that _() will likely work. 2010-11-12 Bruno Haible sleep, nanosleep: Work around Linux 2.6.9 nanosleep bug. * lib/sleep.c (rpl_sleep): Split in chunks no larger than 24 days. * lib/nanosleep.c (nanosleep): Likewise. 2010-11-11 Bruno Haible fcntl-h: Fix for use of C++ on glibc systems. * lib/fcntl.in.h: Include before include_next also on glibc systems in C++ mode. Reported by Gary V. Vaughan . 2010-11-11 Christian Weisgerber (tiny change) mknod: avoid false failure with dash * m4/mknod.m4 (gl_FUNC_MKNOD): Use portable shell syntax. 2010-11-11 Paul Eggert unlink: Fix "is it should" typo in diagnostic. * m4/unlink.m4 (gl_FUNC_UNLINK): Fix typo, as per Reuben Thomas in . 2010-11-11 Bruno Haible Tests for module 'strerror_r-posix'. * modules/strerror_r-posix-tests: New file. * tests/test-strerror_r.c: New file. * tests/test-string-c++.cc: Check the signature of strerror_r. New module 'strerror_r-posix'. * lib/string.in.h (strerror_r): New declaration. * lib/strerror_r.c: New file. * m4/strerror_r.m4: New file. * m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Check for the declaration of strerror_r. (gl_HEADER_STRING_H_DEFAULTS): Initialize GNULIB_STRERROR_R, HAVE_DECL_STRERROR_R, REPLACE_STRERROR_R. * modules/strerror_r-posix: New file. * modules/string (Makefile.am): Substitute GNULIB_STRERROR_R, HAVE_DECL_STRERROR_R, REPLACE_STRERROR_R. * doc/posix-functions/strerror_r.texi: Mention the new module and the portability problems. 2010-11-11 Torsten Scheck (tiny change) * build-aux/pmccabe2html: Fixed a off-by-one error, so last input line is also considered for output. Quoted function name in shell command, so temporary files for functions like MyClass::operator() are removed correctly without errors. 2010-11-09 Bruno Haible * doc/posix-functions/strerror.texi: List more failing platforms. * doc/posix-functions/strerror.texi: Add a comment. 2010-11-07 Paul Eggert fdopendir: fix bug on MacOS X when low on file descriptors * lib/fdopendir.c (REPLACE_FCHDIR): #define to 0 if not defined. (fdopendir_with_dup, fd_clone_opendir): Now have extra CWD arg. All callers changed. (fdopendir): Invoke save_cwd at the top level, not after using multiple dup() calls to use up file descriptors. Then retry fdopendir_with_dup. This avoids failure with EMFILE if FD is 1 less than the maximum number of open file descriptors, because save_cwd fails with errno == EMFILE. Problem reported by tsteven4 on Mac OS X 10.6.4 for tar 1.24 and for tar 1.25 . 2010-11-07 Bruno Haible vasnprintf: Support I flag on glibc systems. * lib/printf-parse.h (FLAG_LOCALIZED): New macro. * lib/printf-parse.c (PRINTF_PARSE): Handle the 'I' flag. * lib/vasnprintf.c (VASNPRINTF): Pass the 'I' flag on to the system's snprintf function. * tests/test-vasnprintf-posix.c (test_function): Test the 'I' flag on glibc systems. * tests/test-vasnprintf-posix3.c: New file. * modules/vasnprintf-posix-tests (Files): Add it. (TESTS, check_PROGRAMS): Add test-vasnprintf-posix3. 2010-11-05 Thien-Thi Nguyen (tiny change) [html] Fix copy/paste bug: Use unique name for compiler warnings. * MODULES.html.sh: For compiler warnings, use name `ansic_ext_compwarn' since `ansic_ext_misc' is already taken. 2010-11-05 Eric Blake ceil, floor: avoid spurious failure with icc * tests/test-ceilf2.c (ceilf_reference): Avoid icc's use of DAZ [denormals-as-zero] when optimizing without -mieee-fp option. * tests/test-floorf2.c (floorf_reference): Likewise. * tests/test-ceilf1.c (dummy): New function. (main): Use it to outsmart icc's optimization. * tests/test-floorf1.c (dummy, main): Likewise. tests: require working signbit * modules/ceilf-tests (Depends-on): Add signbit. * modules/ceill-tests (Depends-on): Likewise. * modules/floorf-tests (Depends-on): Likewise. * modules/floorl-tests (Depends-on): Likewise. * modules/round-tests (Depends-on): Likewise. * modules/roundf-tests (Depends-on): Likewise. * modules/roundl-tests (Depends-on): Likewise. * modules/trunc-tests (Depends-on): Likewise. * modules/truncf-tests (Depends-on): Likewise. * modules/truncl-tests (Depends-on): Likewise. strtod: work around icc bug * lib/strtod.c (minus_zero): Define to working value. (strtod): Use it to avoid icc bug. copysign: enhance tests * modules/copysign-tests (Files): Add minus-zero.h. * tests/test-copysign.c (main): Also test zeros. 2010-11-04 Eric Blake ceil, floor, round, trunc: enhance tests of -0 * tests/test-ceilf1.c (main): Ensure correct sign of result. * tests/test-ceill.c (main): Likewise. * tests/test-floorf1.c (main): Likewise. * tests/test-floorl.c (main): Likewise. * tests/test-round1.c (main): Likewise. * tests/test-roundf1.c (main): Likewise. * tests/test-roundl.c (main): Likewise. * tests/test-trunc1.c (main): Likewise. * tests/test-truncf1.c (main): Likewise. * tests/test-truncl.c (main): Likewise. 2010-11-04 Eric Blake frexp, tests: work around ICC bug with -zero * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Compute -0.0 in a way that works with more compilers. * tests/minus-zero.h: New file. * modules/ceilf-tests (Files): Include it. * modules/ceill-tests (Files): Likewise. * modules/floorf-tests (Files): Likewise. * modules/floorl-tests (Files): Likewise. * modules/frexp-nolibm-tests (Files): Likewise. * modules/frexp-tests (Files): Likewise. * modules/frexpl-nolibm-tests (Files): Likewise. * modules/frexpl-tests (Files): Likewise. * modules/isnan-tests (Files): Likewise. * modules/isnand-nolibm-tests (Files): Likewise. * modules/isnand-tests (Files): Likewise. * modules/isnanf-nolibm-tests (Files): Likewise. * modules/isnanf-tests (Files): Likewise. * modules/isnanl-nolibm-tests (Files): Likewise. * modules/isnanl-tests (Files): Likewise. * modules/round-tests (Files): Likewise. * modules/roundf-tests (Files): Likewise. * modules/roundl-tests (Files): Likewise. * modules/ldexpl-tests (Files): Likewise. * modules/signbit-tests (Files): Likewise. * modules/snprintf-posix-tests (Files): Likewise. * modules/sprintf-posix-tests (Files): Likewise. * modules/strtod-tests (Files): Likewise. * modules/trunc-tests (Files): Likewise. * modules/truncf-tests (Files): Likewise. * modules/truncl-tests (Files): Likewise. * modules/vsnprintf-posix-tests (Files): Likewise. * modules/vsprintf-posix-tests (Files): Likewise. * modules/vasnprintf-posix-tests (Files): Likewise. * modules/vasprintf-posix-tests (Files): Likewise. * tests/test-ceilf1.c (main): Use it. * tests/test-ceill.c (main): Likewise. * tests/test-floorf1.c (main): Likewise. * tests/test-floorl.c (main): Likewise. * tests/test-frexp.c (main): Likewise. * tests/test-frexpl.c (main): Likewise. * tests/test-isnan.c (main): Likewise. * tests/test-isnand.h (main): Likewise. * tests/test-isnanf.h (main): Likewise. * tests/test-isnanl.h (main): Likewise. * tests/test-ldexpl.c (main): Likewise. * tests/test-round.c (main): Likewise. * tests/test-roundf.c (main): Likewise. * tests/test-roundl.c (main): Likewise. * tests/test-signbit.c (test_signbitf, test_signbitd) (test_signbitl): Likewise. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. * tests/test-strtod.c (main): Likewise. * tests/test-trunc1.c (main): Likewise. * tests/test-truncf1.c (main): Likewise. * tests/test-truncl.c (main): Likewise. isnanl: work around icc bug * lib/isnan.c (FUNC): Compute run-time NaN under ICC as well. 2010-11-03 Eric Blake tests: fix compiler warnings * tests/test-getopt.h (test_getopt): Fix condition. * tests/test-getopt_long.h (test_getopt_long): Likewise. * tests/test-pipe2.c (main): Likewise. * tests/test-quotearg-simple.c (main): Avoid icc warning. utimens: fix broken m4 test * m4/utimens.m4 (gl_UTIMENS): Include correct headers. 2010-10-28 Bruno Haible posix_spawn*, getdtablesize: Relax license. * modules/posix_spawn (License): Change to LGPLv2+. * modules/posix_spawnp (License): Likewise. * modules/posix_spawn-internal (License): Likewise. * modules/posix_spawnattr_init (License): Likewise. * modules/posix_spawnattr_getflags (License): Likewise. * modules/posix_spawnattr_setflags (License): Likewise. * modules/posix_spawnattr_getpgroup (License): Likewise. * modules/posix_spawnattr_setpgroup (License): Likewise. * modules/posix_spawnattr_getschedparam (License): Likewise. * modules/posix_spawnattr_setschedparam (License): Likewise. * modules/posix_spawnattr_getschedpolicy (License): Likewise. * modules/posix_spawnattr_setschedpolicy (License): Likewise. * modules/posix_spawnattr_getsigdefault (License): Likewise. * modules/posix_spawnattr_setsigdefault (License): Likewise. * modules/posix_spawnattr_getsigmask (License): Likewise. * modules/posix_spawnattr_setsigmask (License): Likewise. * modules/posix_spawnattr_destroy (License): Likewise. * modules/posix_spawn_file_actions_init (License): Likewise. * modules/posix_spawn_file_actions_addclose (License): Likewise. * modules/posix_spawn_file_actions_adddup2 (License): Likewise. * modules/posix_spawn_file_actions_addopen (License): Likewise. * modules/posix_spawn_file_actions_destroy (License): Likewise. * modules/getdtablesize (License): Likewise. Requested by Adam Stokes for use in netcf. 2010-10-26 Bruno Haible unistd: Refine workaround from 2009-12-23 against Cygwin bug. * lib/unistd.in.h: Don't include and , except on Cygwin and mingw. Suggested by Eric Blake. 2010-10-26 Bruno Haible stdio: Work around compilation error due to renameat() on Solaris 10. * lib/stdio.in.h: Include on Solaris. * lib/renameat.c: Don't include here. * doc/posix-functions/renameat.texi: Mention the Solaris problem. Reported by Paul Eggert and Eric Blake. 2010-10-26 Paul Eggert renameat: port to Solaris 10, which declares renameat in unistd.h * lib/renameat.c: Include unistd.h before stdio.h, because Solaris 10 declares renameat in unistd.h. Problem encountered when building GNU tar 1.24 on Solaris 10. 2010-10-26 Christian Weisgerber (tiny change) fdopendir: fix C89 compilation * lib/fdopendir.c (fd_clone_opendir): Move declaration for older compilers. 2010-10-23 Paul Eggert inttostr: simplify by removing unnecessary redundancy * lib/anytostr.c: Don't include verify.h. (anytostr): Don't verify that TYPE_SIGNED (inttype) equals inttype_is_signed. Instead, disable the bogus GCC warnings, so that there's no need for inttype_is_signed and for calling TYPE_SIGNED. * lib/imaxtostr.c (inttype_is_signed): Remove; no longer needed. * lib/inttostr.c, lib/offtostr.c, lib/uinttostr.c, lib/umaxtostr.c: Likewise. * modules/inttostr (Depends-on): Remove 'verify'. 2010-10-23 Bruno Haible nl_langinfo: Mention problem with CRNCYSTR on NetBSD 5.0. * doc/posix-functions/nl_langinfo.texi: Mention problem with CRNCYSTR. Reported by Eric Blake. 2010-10-23 Bruno Haible Tests: Fix LOCALE_JA on MirBSD 10. * m4/locale-ja.m4 (gt_LOCALE_JA): Reject a locale identifier that leads to an UTF-8 locale. * m4/locale-fr.m4 (gt_LOCALE_FR): Likewise. * m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Likewise. Reported by Eric Blake. 2010-10-21 Bruno Haible nl_langinfo test: Avoid test failure on NetBSD 5. * tests/test-nl_langinfo.c (main): Relax test of nl_langinfo(CRNCYSTR). Reported by Eric Blake. 2010-10-21 Eric Blake c-stack: work around libsigsegv 2.8 bug * lib/c-stack.c (SIGSTKSZ): Increase size to avoid alternate stack overflow on at least PowerPC64. 2010-10-17 Bruno Haible userspec: Drop redundant file. * modules/userspec (Files): Remove lib/inttostr.h. 2010-10-17 Bruno Haible nl_langinfo tests: Silence some warnings. * tests/test-nl_langinfo.c: Silence -Wtype-limits warnings. Reported by Jim Meyering. 2010-10-17 Bruno Haible Make use of GCC's attribute __alloc_size__. * lib/xalloc.h (ATTRIBUTE_ALLOC_SIZE): New macro. (xmalloc, xzalloc, xcalloc, xrealloc, xmemdup, xnmalloc, xnrealloc, xcharalloc): Declare with ATTRIBUTE_ALLOC_SIZE. * lib/eealloc.h (eemalloc, eerealloc): Declare with attribute __alloc_size__. * lib/pagealign_alloc.h (pagealign_alloc, pagealign_xalloc): Likewise. Suggested by Jim Meyering. 2010-10-16 Joel E. Denny bootstrap: anchor .gitignore entries. * build-aux/bootstrap (insert_sorted_if_absent): Replace all uses with... (insert_vc_ignore): ... this new function, which prepends `/' to all .gitignore entries before passing them to insert_sorted_if_absent. 2010-10-16 Bruno Haible nextafter: Fix configure check. * modules/nextafter (configure.ac): Correct expected prototype. 2010-10-16 Bruno Haible termios: Update documentation. * doc/posix-headers/termios.texi: Mention remaining mingw problems. 2010-10-16 Bruno Haible tests: Make them compile with TinyCC. * tests/test-strstr.c (main): Remove parentheses around array initializer. 2010-10-15 Eric Blake ignore-value: make header idempotent * lib/ignore-value.h: Add double-inclusion guards. Reported by Stefan Berger. 2010-10-15 Jim Meyering GNUmakefile: handle "stable" target, not "major" * top/GNUmakefile (_is-dist-target): s/major/stable/ to match the lists in maint.mk and announce-gen. Without this, "make stable" would fail to ensure that $(VERSION) is up to date. 2010-10-15 Ludovic Courtès * lib/isnan.c (FUNC): Treat TinyCC (`__TINYC__') like `__SUNPRO_C' & co. 2010-10-14 Bruno Haible vasnprintf: Don't set errno to 0. * lib/vasnprintf.c (VASNPRINTF): Save and restore errno around the block that sets it to 0. Reported by Gianluigi Tiesi . 2010-10-14 Bruno Haible socketlib: Fix. * modules/socketlib (Files): Add m4/sys_socket_h.m4. Needed for gl_PREREQ_SYS_H_WINSOCK2. Reported by Ian Beckwith . 2010-10-13 Jim Meyering test-select-stdin.c: avoid warn_unused_result warnings * tests/test-select-stdin.c: Include "macros.h". ASSERT that read and fflush succeed. 2010-10-13 Jim Meyering git-version-gen: do require git-VC'd files in cwd * build-aux/git-version-gen: Reject a git version string if there are no commits associated with the current directory. This avoids an unlikely false-positive (unrelated dir whose parent repository also contains a tag matching v*), as pointed out by Giuseppe Scrivano in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/21843/focus=23664 2010-10-13 Paul Eggert argv-iter: omit nonconforming declaration * lib/argv-iter.h (enum argv_iter_err): Omit the useless enum arg_iter_err declaration, which doesn't conform to C99. Solaris 10 cc warns about this. 2010-10-13 Eric Blake termios: fix compilation on mingw * m4/termios_h.m4 (gl_TERMIOS_H_DEFAULTS): Set default. (gl_TERMIOS_H): Adjust it on mingw. * modules/termios (Makefile.am): Substitute new key. * lib/termios.in.h (includes): Make include_next conditional. * doc/posix-headers/termios.texi (termios.h): Update documentation. Reported by Daniel P. Berrange. 2010-10-13 Jim Meyering git-version-gen: don't require that .git/ be in the current dir * build-aux/git-version-gen: Adjust this script so that it works when run from any working directory beneath the top-level .git/- containing directory. Inspired by a patch from Giuseppe Scrivano, http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/21843/focus=21847 test-select: avoid warn_unused_result warnings * tests/test-select.c: Include "macros.h". ASSERT that each call to read, write, and pipe succeeds. While not technically required, also check each "close". * modules/select-tests (Files): Add tests/macros.h. test-symlinkat: remove declaration of unused local * tests/test-symlinkat.c (main): Remove unused local, "buf". test-inttostr: avoid shadowing warnings * tests/test-inttostr.c (main): Rename local, "buf" to "b", and use malloc rather than the stack for the same reason as mentioned in the comment justifying the other allocation. 2010-10-11 Bruno Haible stdlib: Allow multiple gnulib generated replacements to coexist. * lib/stdlib.in.h (struct random_data): Avoid identical redefinition. Reported by Sam Steingold . 2010-10-11 Jim Meyering fix a documentation typo * doc/posix-functions/futimens.texi (futimens): Fix typo: s/itme/item/ 2010-10-11 Eric Blake futimens: work around Solaris 11 bug * m4/futimens.m4 (gl_FUNC_FUTIMENS): Detect the bug. * tests/test-futimens.h (test_futimens): Enhance, rather than weaken test. * doc/posix-functions/futimens.texi (futimens): Document the bug. 2010-10-11 Paul Eggert Indentation. * lib/spawn.in.h (verify_POSIX_SPAWN_USEVFORK_no_overlap): Indent higher-level operators more to the left. 2010-10-11 Jim Meyering test-futimens: avoid unwarranted test failure on Solaris 5.11 * tests/test-futimens.h (test_futimens): When provoking EBADF, use an invalid file descriptor, so we don't provoke EFAULT from Solaris 5.11, because it tries to dereference the NULL name argument. 2010-10-11 Bruno Haible Indentation. * lib/spawn.in.h (verify_POSIX_SPAWN_USEVFORK_no_overlap): Improve indentation. 2010-10-11 Jim Meyering spawn.in.h: make indentation consistent with parentheses * lib/spawn.in.h (verify_POSIX_SPAWN_USEVFORK_no_overlap): Make indentation consistent with parentheses. 2010-10-11 Gary V. Vaughan Fix mismatched parens in previous commit * lib/spawn.in.h (verify_POSIX_SPAWN_USEVFORK_no_overlap): Fix mismatched parens. 2010-10-10 Paul Eggert rewrite int foo[2*X-1] to verify(X) or to int foo[X?1:-1] * lib/float+.h (verify_sizeof_flt, verify_sizeof_dbl): (verify_sizeof_ldbl): Rewrite 2*X-1 to X?1:-1. * lib/malloca.c: Include "verify.h". (verify1): Remove, replacing with a verify call. * lib/relocwrapper.c (verify1): Likewise. * lib/vasnprintf.c (mp_limb_verify, mp_twolimb_verify, TCHAR_T_verify): Likewise. * modules/malloca (Depends-on): Add 'verify'. * modules/relocatable-prog-wrapper (Depends-on): Add 'verify'. * modules/vasnprintf (Depends-on): Add 'verify'. * modules/unistdio/u8-vasnprintf (Depends-on): Likewise. * modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/ulc-vasnprintf (Depends-on): Likewise. prefer (X ? 1 : -1) when converting from boolean (1,0) to int (1,-1) Formerly the style was sometimes 2*X - 1, because the C standard was wrongly thought to disallow ?: in integral constant expressions. * lib/inet_ntop.c (verify_int_size): Rewrite 2*X-7 (!) to 4<=X?1:-1. * lib/signal.in.h (verify_NSIG_constraint): Rewrite 2*X-1 to X?1:-1. * lib/spawn.in.h (verify_POSIX_SPAWN_USEVFORK_no_overlap): Likewise. * lib/stdint.in.h (_verify_intmax_size): Likewise. * lib/time.in.h (struct __time_t_must_be_integral): Rewrite 2 * ((time_t) 1 / 2 == 0) - 1 to (time_t) 1; this suffices to verify that time_t cannot be floating. 2010-10-08 Eric Blake time: enforce recent POSIX ruling that time_t is integral * lib/time.in.h (__time_t_must_be_integral): Detect any problematic systems, allowing the rest of gnulib to assume POSIX. 2010-10-08 Jim Meyering fdopendir: fix a bug on systems lacking openat and /proc support OpenBSD 4.7 is one such system. The most noticeable effect was failure of any application making nontrivial use of fts: rm, du, chown, chmod etc. E.g., "mkdir -p a/b; ./rm -rf a" would fail with ./rm: traversal failed: `a': Bad file descriptor Debugging that, you see that even though FD 6 was closed just prior to the opendir call in fd_clone_opendir, its resulting dir->dd_fd was 8, rather than the expected value of 6: Breakpoint 3, fdopendir_with_dup (fd=6, older_dupfd=-1) at fdopendir.c:93 93 close (fd); (gdb) n 94 dir = fd_clone_opendir (dupfd); (gdb) n 95 saved_errno = errno; (gdb) p dir->dd_fd $11 = 8 Notice how it closes FD 6, then gets a DIR* pointer using FD 8. The problem is that on OpenBSD, fd_clone_opendir has to resort to using the old-style save/restore CWD mechanism, due to its lack of openat/proc support, and *that* would steal the FD (6) that opendir was supposed to use. The fix is to squirrel away the desired FD so that save_cwd uses a different one, and then free the dest FD right before calling opendir. That guarantees opendir will use the required file descriptor. * lib/fdopendir.c (fd_clone_opendir): Handle the above. 2010-10-08 Bruno Haible sys_select: Avoid warning due to undeclared memset() on OpenBSD 4.5. * lib/sys_select.in.h: Include also on OpenBSD. 2010-10-08 Bruno Haible nanosleep: Make replacement POSIX compliant. * lib/nanosleep.c (nanosleep): Return -1/EINVAL if the delay's tv_nsec is out of range. Reported by Jim Meyering. 2010-10-08 Paul Eggert bootstrap: add hook for altering gnulib.mk, for Bison * build-aux/bootstrap (gnulib_mk_hook): New function, so that the Bison bootstrapping process can rewrite file names and variables in this file before later parts of 'bootstrap' use the file. Bison wants to include lib/gnulib.mk from the top-level makefile, so it needs the file names in this file to be relative to the top level, not relative to lib; plus it needs variable names to be rewritten. (slurp): Use the new function. bootstrap: reformat for readability * build-aux/bootstrap: Rewrite to avoid lines longer than 80 columns. 2010-10-08 Eric Blake docs: update cygwin progress * doc/posix-functions/cacos.texi (cacos): Added after cygwin 1.7.7. * doc/posix-functions/cacosf.texi (cacosf): Likewise. * doc/posix-functions/cacosh.texi (cacosh): Likewise. * doc/posix-functions/cacoshf.texi (cacoshf): Likewise. * doc/posix-functions/carg.texi (carg): Likewise. * doc/posix-functions/cargf.texi (cargf): Likewise. * doc/posix-functions/casin.texi (casin): Likewise. * doc/posix-functions/casinf.texi (casinf): Likewise. * doc/posix-functions/casinh.texi (casinh): Likewise. * doc/posix-functions/casinhf.texi (casinhf): Likewise. * doc/posix-functions/catan.texi (catan): Likewise. * doc/posix-functions/catanf.texi (catanf): Likewise. * doc/posix-functions/catanh.texi (catanh): Likewise. * doc/posix-functions/catanhf.texi (catanhf): Likewise. * doc/posix-functions/ccos.texi (ccos): Likewise. * doc/posix-functions/ccosf.texi (ccosf): Likewise. * doc/posix-functions/ccosh.texi (ccosh): Likewise. * doc/posix-functions/ccoshf.texi (ccoshf): Likewise. * doc/posix-functions/cexp.texi (cexp): Likewise. * doc/posix-functions/cexpf.texi (cexpf): Likewise. * doc/posix-functions/cimag.texi (cimag): Likewise. * doc/posix-functions/cimagf.texi (cimagf): Likewise. * doc/posix-functions/clog.texi (clog): Likewise. * doc/posix-functions/clogf.texi (clogf): Likewise. * doc/posix-functions/conj.texi (conj): Likewise. * doc/posix-functions/conjf.texi (conjf): Likewise. * doc/posix-functions/cpow.texi (cpow): Likewise. * doc/posix-functions/cpowf.texi (cpowf): Likewise. * doc/posix-functions/cproj.texi (cproj): Likewise. * doc/posix-functions/cprojf.texi (cprojf): Likewise. * doc/posix-functions/creal.texi (creal): Likewise. * doc/posix-functions/crealf.texi (crealf): Likewise. * doc/posix-functions/csin.texi (csin): Likewise. * doc/posix-functions/csinf.texi (csinf): Likewise. * doc/posix-functions/csinh.texi (csinh): Likewise. * doc/posix-functions/csinhf.texi (csinhf): Likewise. * doc/posix-functions/csqrt.texi (csqrt): Likewise. * doc/posix-functions/csqrtf.texi (csqrtf): Likewise. * doc/posix-functions/ctan.texi (ctan): Likewise. * doc/posix-functions/ctanf.texi (ctanf): Likewise. * doc/posix-functions/ctanh.texi (ctanh): Likewise. * doc/posix-functions/ctanhf.texi (ctanhf): Likewise. * doc/posix-headers/complex.texi (complex.h): Likewise. 2010-10-07 Jim Meyering parse-datetime: avoid compilation failure on OpenBSD 4.7 * lib/parse-datetime.y (_STDLIB_H) [_STDLIB_H_]: Define. This works around a compilation failure on OpenBSD 4.7: http://thread.gmane.org/gmane.comp.parsers.bison.bugs/3418 2010-10-07 Eric Blake docs: update cygwin progress * doc/glibc-functions/mkostemp.texi (mkostemp): Added in cygwin 1.7.6. * doc/glibc-functions/mkostemps.texi (mkostemps): Likewise. * doc/posix-headers/fenv.texi (fenv.h): Added after cygwin 1.7.7. * doc/posix-functions/feclearexcept.texi (feclearexcept): Likewise. * doc/posix-functions/fegetenv.texi (fegetenv): Likewise. * doc/posix-functions/fegetexceptflag.texi (fegetexceptflag): Likewise. * doc/posix-functions/fegetround.texi (fegetround): Likewise. * doc/posix-functions/feholdexcept.texi (feholdexcept): Likewise. * doc/posix-functions/feraiseexcept.texi (feraiseexcept): Likewise. * doc/posix-functions/fesetenv.texi (fesetenv): Likewise. * doc/posix-functions/fesetexceptflag.texi (fesetexceptflag): Likewise. * doc/posix-functions/fesetround.texi (fesetround): Likewise. * doc/posix-functions/fetestexcept.texi (fetestexcept): Likewise. * doc/posix-functions/feupdateenv.texi (feupdateenv): Likewise. * doc/glibc-functions/feenableexcept.texi (feenableexcept): Likewise. * doc/glibc-functions/fedisableexcept.texi (fedisableexcept): Likewise. * doc/glibc-functions/fegetexcept.texi (fegetexcept): Likewise. docs: update parse-datetime history * doc/parse-datetime.texi (Authors of parse_datetime): Better documentation of this function's history and alternatives. cygwin: use more robust version check * m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE, gl_FUNC_MEMMEM): Don't exclude an eventual cygwin 1.9.1. * m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE, gl_FUNC_STRSTR): Likewise. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE) (gl_FUNC_STRCASESTR): Likewise. Reported by Bruno Haible. 2010-10-06 Bruno Haible string, sys_select: Avoid #including large headers unless necessary. * lib/string.in.h: Don't include except on NetBSD. * lib/sys_select.in.h: Don't include except on Solaris, OSF/1, BeOS, Haiku. Reported by Jim Meyering. 2010-10-05 Eric Blake memmem, strstr, strcasestr: fix bug with long periodic needle * lib/str-two-way.h (two_way_long_needle): Avoid bug with long periodic needle having false positive. * m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): Detect bug in glibc 2.12 and cygwin 1.7.7. (gl_FUNC_MEMMEM): Be more pessimistic when cross-compiling. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE) (gl_FUNC_STRCASESTR): Likewise. * m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE, gl_FUNC_STRSTR): Likewise. * tests/test-memmem.c (main): Expose the bug. * tests/test-strcasestr.c (main): Likewise. * tests/test-strstr.c (main): Likewise. * tests/test-c-strcasestr.c (main): Likewise. * doc/glibc-functions/memmem.texi (memmem): Document the bug. * doc/posix-functions/strstr.texi (strstr): Likewise. * doc/glibc-functions/strcasestr.texi (strcasestr): Likewise. Reported via http://sourceware.org/bugzilla/show_bug.cgi?id=12092 2010-10-05 Paul Eggert parse-datetime: do some more renaming * doc/parse-datetime.texi (Authors of parse_datetime): Call it parse_datetime, not get_date. Mention the renaming. * lib/parse-datetime.y: Call it parse_datetime, not getdate, in comments. * m4/bison.m4: Likewise. 2010-10-05 Eric Blake parse-datetime: better name than get_date * NEWS: Reword the deprecation notice. * modules/get_date: Rename to modules/parse-datetime. * modules/get_date-tests: Rename to modules/parse-datetime-tests. * m4/get_date.m4: Rename to m4/parse-datetime.m4. * lib/get_date.y: Rename to lib/parse-datetime.y. * tests/test-get_date.c: Rename to tests/test-parse-datetime.c. * doc/get_date.texi: Rename to doc/parse-datetime.texi. * doc/getdate.texi: Provide fallback wrapper. * lib/getdate.h: Move guts, and wrap... * lib/parse-datetime.h: ...new file. * lib/parse-datetime.y (get_date): Rename... (parse_datetime): ...to this. * m4/parse-datetime.m4 (gl_GET_DATE): Rename... (gl_PARSE_DATETIME): ...to this. * doc/posix-functions/getdate.texi (get_date): Provide fallback documentation. * modules/getdate (Files): Provide fallback docs and header. (Notice, Depends-on): Update references. * tests/test-parse-datetime.c: Likewise. * DEPENDENCIES: Likewise. * MODULES.html.sh (Date and time ): Likewise. * doc/parse-datetime.texi (Date input formats) (Authors of parse_datetime): Likewise. * modules/parse-datetime (Files, configure.ac, Makefile.am) (Include): Likewise. * modules/parse-datetime-tests (Files, Makefile.am): Likewise. * gnulib-tool: Likewise. * m4/bison.m4 (gl_BISON): Likewise. Suggested by Bruno Haible. 2010-10-05 Paul Eggert more ports to Solaris tr, which needs [] around ranges * gnulib-tool: Solaris tr needs [] around ranges. * m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Likewise. * tests/test-pipe-filter-gi1.c (main): Likewise. * tests/test-pipe-filter-ii1.c (main): Likewise. 2010-10-05 Eric Blake bootstrap: fix Solaris regression * build-aux/bootstrap (check_versions): Solaris tr still needs [] around ranges. Reported by Pádraig Brady. bootstrap: work with pkg-config * build-aux/bootstrap (check_versions): Also transliterate - in prerequisite name. (print_versions): Be robust to any \ in $buildreq. Avoid listing prerequisites that were already found, to avoid confusion. Reported by Justin Clift. faccessat: remove unused wrappers * lib/openat.h (accessat, euidaccesat): Delete, since the mere presence of these wrappers dragged in -lgen on Solaris. Reported by Clemens Brogi; fix suggested by Paul Eggert. 2010-10-05 Jim Meyering tests: require @PRAGMA_COLUMNS@ with each @PRAGMA_SYSTEM_HEADER@ * Makefile (sc_pragma_columns): New syntax-check rule. 2010-10-04 Bruno Haible gnulib-tool: Synthesize appropriate _LDFLAGS for a libtool library. * gnulib-tool (func_emit_lib_Makefile_am): When preparing for a libtool library, put '-no-undefined' and the link dependencies into _LDFLAGS. Reported by Bruce Korb and Eric Blake. 2010-10-04 Bruno Haible threadlib: Make option --with-libpth-prefix work. * m4/threadlib.m4 (gl_THREADLIB_BODY): When testing whether pth works, use $LIBPTH, not just -lpth. 2010-10-04 Bruno Haible Avoid line length limitation from HP NonStop system header files. * m4/include_next.m4 (gl_INCLUDE_NEXT): Define also PRAGMA_COLUMNS. * lib/arpa_inet.in.h: Use PRAGMA_COLUMNS. * lib/ctype.in.h: Likewise. * lib/dirent.in.h: Likewise. * lib/errno.in.h: Likewise. * lib/fcntl.in.h: Likewise. * lib/float.in.h: Likewise. * lib/getopt.in.h: Likewise. * lib/iconv.in.h: Likewise. * lib/inttypes.in.h: Likewise. * lib/langinfo.in.h: Likewise. * lib/locale.in.h: Likewise. * lib/math.in.h: Likewise. * lib/netdb.in.h: Likewise. * lib/netinet_in.in.h: Likewise. * lib/poll.in.h: Likewise. * lib/pthread.in.h: Likewise. * lib/pty.in.h: Likewise. * lib/sched.in.h: Likewise. * lib/se-selinux.in.h: Likewise. * lib/search.in.h: Likewise. * lib/signal.in.h: Likewise. * lib/spawn.in.h: Likewise. * lib/stdarg.in.h: Likewise. * lib/stddef.in.h: Likewise. * lib/stdint.in.h: Likewise. * lib/stdio.in.h: Likewise. * lib/stdlib.in.h: Likewise. * lib/string.in.h: Likewise. * lib/strings.in.h: Likewise. * lib/sys_file.in.h: Likewise. * lib/sys_ioctl.in.h: Likewise. * lib/sys_select.in.h: Likewise. * lib/sys_socket.in.h: Likewise. * lib/sys_stat.in.h: Likewise. * lib/sys_time.in.h: Likewise. * lib/sys_times.in.h: Likewise. * lib/sys_utsname.in.h: Likewise. * lib/sys_wait.in.h: Likewise. * lib/sysexits.in.h: Likewise. * lib/termios.in.h: Likewise. * lib/time.in.h: Likewise. * lib/unistd.in.h: Likewise. * lib/wchar.in.h: Likewise. * lib/wctype.in.h: Likewise. * modules/arpa_inet (Makefile.am): Substitute PRAGMA_COLUMNS. * modules/ctype (Makefile.am): Likewise. * modules/dirent (Makefile.am): Likewise. * modules/errno (Makefile.am): Likewise. * modules/fcntl-h (Makefile.am): Likewise. * modules/float (Makefile.am): Likewise. * modules/getopt-posix (Makefile.am): Likewise. * modules/iconv-h (Makefile.am): Likewise. * modules/inttypes (Makefile.am): Likewise. * modules/langinfo (Makefile.am): Likewise. * modules/locale (Makefile.am): Likewise. * modules/math (Makefile.am): Likewise. * modules/netdb (Makefile.am): Likewise. * modules/netinet_in (Makefile.am): Likewise. * modules/poll-h (Makefile.am): Likewise. * modules/pthread (Makefile.am): Likewise. * modules/pty (Makefile.am): Likewise. * modules/sched (Makefile.am): Likewise. * modules/search (Makefile.am): Likewise. * modules/selinux-h (Makefile.am): Likewise. * modules/signal (Makefile.am): Likewise. * modules/spawn (Makefile.am): Likewise. * modules/stdarg (Makefile.am): Likewise. * modules/stddef (Makefile.am): Likewise. * modules/stdint (Makefile.am): Likewise. * modules/stdio (Makefile.am): Likewise. * modules/stdlib (Makefile.am): Likewise. * modules/string (Makefile.am): Likewise. * modules/strings (Makefile.am): Likewise. * modules/sys_file (Makefile.am): Likewise. * modules/sys_ioctl (Makefile.am): Likewise. * modules/sys_select (Makefile.am): Likewise. * modules/sys_socket (Makefile.am): Likewise. * modules/sys_stat (Makefile.am): Likewise. * modules/sys_time (Makefile.am): Likewise. * modules/sys_times (Makefile.am): Likewise. * modules/sys_utsname (Makefile.am): Likewise. * modules/sys_wait (Makefile.am): Likewise. * modules/sysexits (Makefile.am): Likewise. * modules/termios (Makefile.am): Likewise. * modules/time (Makefile.am): Likewise. * modules/unistd (Makefile.am): Likewise. * modules/wchar (Makefile.am): Likewise. * modules/wctype (Makefile.am): Likewise. 2010-10-04 Bruno Haible read-file tests: Avoid a test failure on NonStop Kernel. * tests/test-read-file.c (main): Don't assume that /etc/resolv.conf is a regular file. Reported by Joachim Schmitz . 2010-10-03 Bruno Haible gnulib-tool: Fixes for --create-testdir with --libtool. * gnulib-tool (func_get_automake_snippet): Don't augment EXTRA_lib_SOURCES for the pt_chown module, since pt_chown.o goes into an executable. (func_create_testdir): Handle module 'alloca' like func_import. Reported by Bruce Korb . 2010-10-03 Paul Eggert Avoid some lines longer than 80 characters. * lib/stdint.in.h: Break long comment lines. * lib/math.in.h: Likewise. (_GL_NUM_UINT_WORDS): New macro, for readability. (gl_signbitf, gl_signbitd, gl_signbitl): Use it. * lib/stdio.in.h: Break lines in _GL_WARN_ON_USE calls. * lib/stdlib.in.h: Likewise. * lib/spawn.in.h: Likewise. * lib/sys_socket.in.h: Update an URL. * lib/sys_stat.in.h: Break long line. 2010-10-03 Reuben Thomas Improve pmccabe2html. * build-aux/pmccabe2html: Add CYCLO_SRCS variable, and make cyclo-$(PACKAGE).html depend on it, so the HTML file is remade when the sources change. Remove the line in the HTML about "Used ranges" (which implied that there might be other unused ranges), rename "Resume" to "Summary" (easier to understand for more users). * build-aux/pmccabe.css: Removing the dashed dividers, some unused styles, and some unnecessary blank lines. 2010-10-03 Bruno Haible Joachim Schmitz (tiny change) acl: Add support for ACLs on NonStop Kernel. * m4/acl.m4 (gl_FUNC_ACL): For Solaris, test for facl(), not for acl(). Check whether the function aclsort() exists. * lib/acl-internal.h: For Solaris, test HAVE_FACL, not HAVE_ACL. (acl_nontrivial) [HAVE_ACLSORT]: New declaration. * lib/file-has-acl.c: For Solaris, test HAVE_FACL, not HAVE_ACL. (acl_nontrivial [HAVE_ACLSORT]: New function. (file_has_acl): Implement for NonStop Kernel. * lib/set-mode-acl.c: For Solaris, test HAVE_FACL, not HAVE_ACL. (qset_acl): Implement for NonStop Kernel. * lib/copy-acl.c (qcopy_acl): Implement for NonStop Kernel. * tests/test-sameacls.c: For Solaris, test HAVE_FACL, not HAVE_ACL. (main): Implement for NonStop Kernel. * tests/test-file-has-acl.sh (acl_flavor): Set to 'nsk' on NonStop Kernel. Handle this flavor. * tests/test-set-mode-acl.sh: Likewise. * tests/test-copy-acl.sh: Likewise. * tests/test-copy-file.sh: Likewise. 2010-10-03 Bruno Haible Info about ACLs on NonStop Kernel. * doc/acl-resources.txt: Add info about NonStop Kernel. References by Joachim Schmitz . 2010-10-02 Bruno Haible Define missing EDQUOT on NonStop Kernel. * lib/errno.in.h (EDQUOT): Assign a value if missing. * lib/strerror.c (rpl_strerror): Handle missing EDQUOT. * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Also test whether EDQUOT is missing. * doc/posix-headers/errno.texi: Mention the NSK bug. * doc/posix-functions/strerror.texi: Mention the workaround on NSK. Reported by Joachim Schmitz . 2010-10-02 Bruno Haible Update doc for POSIX:2008. * doc/posix-headers/*.texi [except ucontext.texi, sys_timeb.texi]: Update URL of POSIX specification. 2010-10-02 Bruno Haible gnulib-tool: In testdirs, use the newest available config.{guess.sub}. * gnulib-tool (func_create_testdir): Use config.guess and config.sub from gnulib, not from Automake. 2010-10-02 Bruno Haible New module 'system-posix'. * modules/system-posix: New file. * lib/stdlib.in.h: Include only when the 'system-posix' module is present. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_SYSTEM_POSIX. * modules/stdlib (Depends-on): Remove sys_wait. (Makefile.am): Substitute GNULIB_SYSTEM_POSIX. * doc/posix-functions/system.texi: Mention the new module. * doc/posix-headers/stdlib.texi: Likewise. * tests/test-stdlib.c: If GNULIB_TEST_SYSTEM_POSIX is not defined, define test_sys_wait_macros to a no-op. Reported by Sam Steingold . 2010-09-30 Bruno Haible More renaming from 'getdate' to 'get_date'. * doc/get_date.texi: Renamed from doc/getdate.texi. * modules/get_date (Files): Update. * MODULES.html.sh (Date and time ): Update. * DEPENDENCIES: Update. * gnulib-tool: Update comment. * m4/bison.m4 (gl_BISON): Likewise. * m4/get_date.m4 (gl_GET_DATE): Likewise. 2010-09-30 Justin Clift (tiny change) bootstrap: support ACLOCAL_FLAGS during aclocal * build-aux/bootstrap (aclocal): Honor ACLOCAL_FLAGS, so the user can add additional -I dir for third-party .m4 files. 2010-09-30 Eric Blake bootstrap: use glibtoolize on MacOS * build-aux/bootstrap (check_versions): Convert libtool into libtoolize. (tool search): Move libtool check earlier, and look for glibtoolize for MacOS. (gnulib_tool_options): Auto-add --libtool when appropriate. Reported by Justin Clift. poll: fix typo that broke test on MacOS * m4/poll.m4 (gl_FUNC_POLL): Add missing test. Reported by Justin Clift. getdate: rename to get_date Note: getdate.h is not renamed, to minimize client impact. * modules/getdate: Mark obsolete. Move old contents... * modules/get_date: ...to new module name. * modules/getdate-tests: Move... * modules/get_date-tests: ...here. * m4/getdate.m4: Move... * m4/get_date.m4: ...here, and rename gl_GETDATE to gl_GET_DATE. * lib/getdate.y: Move... * lib/get_date.y: ...here. * tests/test-getdate.c: Move... * tests/test-get_date.c: ...here. * doc/posix-functions/getdate.texi (getdate): Update name. * NEWS: Mention the change. 2010-09-29 Bruno Haible Separate the module 'waitpid' from the module 'sys_wait'. * lib/sys_wait.in.h (waitpid): Declare only if the 'waitpid' module is present. * m4/sys_wait_h.m4 (gl_SYS_WAIT_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR_FOR_TESTS. (gl_SYS_WAIT_H_DEFAULTS): Initialize GNULIB_WAITPID. * modules/sys_wait (Depends-on): Remove waitpid. (Makefile.am): Substitute GNULIB_WAITPID. * modules/waitpid (configure.ac): Invoke gl_SYS_WAIT_MODULE_INDICATOR. * tests/test-sys_wait-c++.cc (GNULIB_NAMESPACE::waitpid): Check the signature only if the 'waitpid' module is present. * doc/posix-functions/waitpid.texi: Mention the 'waitpid' module. * NEWS: Mention the change. * modules/grantpt (Depends-on): Add waitpid. * modules/wait-process (Depends-on): Likewise. 2010-09-29 Bruno Haible More tests for module 'sys_wait'. * modules/sys_wait-c++-tests: New file. * tests/test-sys_wait-c++.cc: New file. * modules/sys_wait-tests (Depends-on): Add sys_wait-c++-tests. Reported by Tatsuro MATSUOKA . 2010-09-29 Bruno Haible New module 'waitpid'. * lib/waitpid.c: New file, extracted from lib/sys_wait.in.h. * lib/sys_wait.in.h: Include , c++defs.h, warn-on-use.h. Don't include . (waitpid): Declare only, using modern idiom. * m4/waitpid.m4: New file. * m4/sys_wait_h.m4 (gl_SYS_WAIT_H): Check whether waitpid is declared. * modules/waitpid: New file. * modules/sys_wait (Depends-on): Add c++defs, warn-on-use, waitpid. (Makefile.am): Update. Reported by Tatsuro MATSUOKA . 2010-09-28 Bruno Haible poll: Assume ANSI C. * lib/poll.c (poll): Use an ANSI C declaration. 2010-09-28 Bruno Haible poll-h: Create poll.h on all platforms. * lib/poll.in.h: Use double-inclusion guard. Don't define POLL*, struct pollfd, nfds_t, INFTIM when the system has . * m4/poll_h.m4 (gl_POLL_H): Set HAVE_POLL_H. Invoke gl_CHECK_NEXT_HEADERS. Don't set POLL_H. (gl_REPLACE_POLL_H): Don't set POLL_H. (gl_POLL_H_DEFAULTS): Don't initialize POLL_H. * modules/poll-h (Depends-on): Add include_next. (Makefile.am): Create poll.h unconditionally. Substitute also HAVE_POLL_H, INCLUDE_NEXT, PRAGMA_SYSTEM_HEADER, NEXT_POLL_H. 2010-09-28 Bruno Haible Tests for module 'poll-h'. * modules/poll-h-c++-tests: New file. * tests/test-poll-h-c++.cc: New file. Tests for module 'poll-h'. * modules/poll-h-tests: New file. * tests/test-poll-h.c: New file. 2010-09-28 Bruno Haible poll-h: Ensure POLL{RD,WR}{NORM,BAND} are defined on glibc platforms. * modules/poll-h (Depends-on): Add 'extensions'. 2010-09-28 Bruno Haible New module 'poll-h'. * lib/poll.in.h: Include c++defs.h and warn-on-use.h. (poll): Use modern idiom. * modules/poll-h: New file. * modules/poll (Files): Remove lib/poll.in.h. (Depends-on): Add poll-h. (configure.ac): Invoke gl_POLL_MODULE_INDICATOR. (Makefile.am): Move code for generation of poll.h to modules/poll-h. * m4/poll_h.m4: New file. * m4/poll.m4 (gl_FUNC_POLL): Require gl_POLL_H. Don't check for poll.h here. Don't set POLL_H here. Instead, set HAVE_POLL and REPLACE_POLL and invoke gl_REPLACE_POLL_H. * lib/poll.c: Use common idiom. * tests/test-poll.c: Likewise. * doc/posix-headers/poll.texi: Mention the poll-h module. Suggested by Eric Blake. 2010-09-26 Bruno Haible sys_wait: Implement WSTOPSIG. * lib/sys_wait.in.h (WSTOPSIG): New macro. Reported by Simon Josefsson. 2010-09-26 Simon Josefsson stdlib, sys_wait: Avoid compilation error on mingw. * lib/sys_wait.in.h: Include , for SIGTERM. 2010-09-26 Bruno Haible stdlib tests: Avoid code duplication. * modules/stdlib-tests (Files): Add tests/test-sys_wait.h. * modules/sys_wait-tests (Files): Likewise. * tests/test-sys_wait.h: New file, extracted from tests/test-stdlib.c. * tests/test-stdlib.c: Include test-sys_wait.h. (main): Invoke test_sys_wait_macros. * tests/test-sys_wait.c: Include test-sys_wait.h. (main): Invoke test_sys_wait_macros. 2010-09-25 Simon Josefsson * modules/getaddrinfo (Depends-on): Depend on the sockets module. * lib/getaddrinfo.c (use_win32_p): Call gl_sockets_startup to make sure Windows sockets are working before calling getaddrinfo. * tests/test-getaddrinfo.c (main): Don't call WSAStartup here. * doc/gnulib.texi (Windows sockets): Fix typo. 2010-09-25 Bruno Haible Tests for module 'regex-quote'. * modules/regex-quote-tests: New file. * tests/test-regex-quote.c: New file. New module 'regex-quote'. * lib/regex-quote.h: New file. * lib/regex-quote.c: New file. * modules/regex-quote: New file. Suggested by Reuben Thomas . 2010-09-24 Bruno Haible unistr/u8-strchr: Fix a test failure on i586 glibc systems. * tests/unistr/test-strchr.h (test_strchr): Disable an invalid check. 2010-09-23 Bruno Haible setenv: Relax license. * modules/setenv (License): Change to LGPLv2+, with consent by Eric Blake. Requested by Eric Blake. 2010-09-22 Bruno Haible termios: Relax license. * modules/termios (License): Change to LGPLv2+. Requested by Eric Blake. 2010-09-22 Bruno Haible threadlib: Allow the package to change the default to 'no'. * m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): When gl_THREADLIB_DEFAULT_NO is defined, change the default to 'no'. Reported by Paul Eggert. 2010-09-22 Pádraig Brady Bruno Haible Fix endless loop in mbmemcasecoll. * lib/mbmemcasecoll.c (apply_towlower): When mbrtowc returns 0, copy 1 byte. * tests/test-mbmemcasecmp.h (test_ascii): Test embedded NULs. 2010-09-22 Bruno Haible Tests for module 'memcoll'. * modules/memcoll-tests: New file. * tests/test-memcoll.c: New file, based on tests/test-memcmp.c. memcoll, xmemcoll: Clarify size vs. length. * modules/memcoll.c (memcoll0): Clarify specification. * modules/xmemcoll.c (xmemcoll0): Likewise. Reduce by 1 the lengths passed to collate_error. 2010-09-22 Bruno Haible Tests for module 'memcasecmp'. * modules/memcasecmp-tests: New file. * tests/test-memcasecmp.c: New file, based on tests/test-memcmp.c. 2010-09-22 Paul Eggert * lib/pthread.in.h: Add split double-inclusion guard, and include system if there is one. Use @@-style as in other .in.h files. Define PTHREAD_COND_INITIALIZER etc. only if system pthread.h doesn't. (pthread_mutexattr_destroy, pthread_mutexattr_init): (pthread_mutexattr_settype, pthread_mutex_trylock): New static inline functions, if there's no system . (pthread_spinlock_t, pthread_spin_init, pthread_spin_destroy): (pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock): Approximate with mutexes if the system lacks spinlocks, as in MacOS. * m4/pthread.m4 (gl_PTHREAD_CHECK): Require gl_PTHREAD_DEFAULTS. Add gl_CHECK_NEXT_HEADERS for pthread.h, and support the usual @@-style. Check for spinlocks separately. (gl_PTHREAD_DEFAULTS): New macro. * modules/pthread: Redo to use a more typical style for in.h files. 2010-09-21 Eric Blake net_if: enhance tests * tests/test-net_if.c (main): Move signature checks earlier. Print failures to stderr. * doc/posix-functions/if_freenameindex.texi (if_freenameindex): Document the bug that we do not yet fix. 2010-09-21 Reuben Thomas * doc/gnulib.texi (Out of memory handling): Rewrite section to be about gnulib, not GSS. 2010-09-21 Reuben Thomas * build-aux/pmccabe2html: Look for sources in src/ instead of lib/. * build-aux/pmccabe2html: Set cut_dir properly, and add mode line for Emacs. * build-aux/pmccabe2html: Make Makefile.am example code more cut-and-paste friendly. 2010-09-21 Simon Josefsson * tests/test-net_if.c: New file. * modules/net_if-tests: New file. 2010-09-20 Paul Eggert pthread: add pthread_spin_destroy * lib/pthread.in.h (pthread_spin_destroy): New function. 2010-09-19 Bruno Haible gnulib-tool: Fix --help output. * gnulib-tool (func_usage): Fix help message. Reported by Reuben Thomas . 2010-09-18 Jim Meyering maint.mk: avoid unexpanded \n in two diagnostics * top/maint.mk (sc_prohibit_always_true_header_tests): Don't use a literal \n in a halt=... assignment. It would not be expanded, and the two \n bytes would appear in the diagnostic output rather than the desired newline. Use halt=$$(printf ... instead. (sc_vulnerable_makefile_CVE-2009-4029): Likewise. 2010-09-18 Bruno Haible netinet_in: Doc tweak. * doc/posix-headers/netinet_in.texi: Mention an affected platform. Reported by Mats Erik Andersson . 2010-09-18 Jim Meyering init.sh: correct an outdated comment * tests/init.sh (create_exe_shims_): s/function/alias/ init.sh: don't let an ephemeral "*.exe" make us skip all dir entries * tests/init.sh (find_exe_basenames_): Don't give up on a directory if a file named "*.exe" is removed between the glob expansion and the processing of that oddly named file. 2010-09-17 Eric Blake mirbsd: add some more support * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): MirBSD is in BSD family. * m4/gc-random.m4 (gl_GC_RANDOM): MirBSD supports same random devices as OpenBSD. * m4/host-os.m4 (mirbsd): Add MirBSD. tests: fix unportable assumption on sys/wait.h * tests/test-sys_wait.c (main): Relax test. * tests/test-stdlib.c (main): Likewise. init.sh: accommodate directory with no .exes * tests/init.sh: Accomodate directory containing only scripts. tests: avoid compiler warning * tests/test-stdlib.c (main): Use the variable. fdutimens, fdutimensat: update signature, again * lib/utimens.h (gl_futimens): Delete, and move signature... (fdutimens): ...here. (fdutimensat): Rearrange signature. (lutimensat): Rename variable for clarity. * lib/fdutimensat.c (fdutimensat): Update signature. * lib/utimens.c (fdutimens): Likewise. (gl_futimens): Delete. (utimens, lutimens): Update callers. * lib/futimens.c (futimens): Likewise. * tests/test-fdutimensat.c: Likewise. * tests/test-utimens.c: Likewise. * tests/test-futimens.h: Update comment. * NEWS: Mention this. Suggested by Paul Eggert. 2010-09-17 Bruno Haible Take over the maintenance of some older macros from Autoconf. * m4/error.m4 (AC_FUNC_ERROR_AT_LINE): New macro, from GNU Autoconf. * m4/lstat.m4 (AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): New macro, from GNU Autoconf. * m4/memcmp.m4 (AC_FUNC_MEMCMP): New macro, from GNU Autoconf. * m4/mktime.m4 (AC_FUNC_MKTIME): Change comment. 2010-09-17 Eric Blake fdutimensat: drop atflag validation * lib/fdutimensat.c (fdutimensat): Allow AT_SYMLINK_NOFOLLOW even with valid fd, to close a race scenario where futimens is unsupported and FILE was replaced by a symlink. * tests/test-fdutimensat.c (do_fdutimens, main): Adjust test accordingly. Suggested by Paul Eggert. 2010-09-16 Bruno Haible unlockpt: Fix declaration within GNULIB_POSIXCHECK. * lib/stdlib.in.h (unlockpt): Fix warning declaration. 2010-09-16 Bruno Haible login_tty: Fix detection of function on FreeBSD, OpenBSD, NetBSD. * m4/pty.m4 (gl_FUNC_LOGIN_TTY): Augment LIBS while checking whether login_tty exists. Reported by Mats Erik Andersson . 2010-09-16 Bruno Haible login_tty: Make the replacement code work on BSD systems. * lib/login_tty.c: Include . (login_tty): Use ioctl TIOCSCTTY when available. * modules/login_tty (Depends-on): Add sys_ioctl. Reported by Mats Erik Andersson . 2010-09-16 Bruno Haible login_tty: Stricter unit test. * modules/login_tty-tests (Depends-on): Add tcgetsid. * tests/test-login_tty.c (main): Also check the results of tcgetpgrp() and tcgetsid() after login_tty. Reported by Mats Erik Andersson . 2010-09-16 Bruno Haible New module 'tcgetsid'. * lib/tcgetsid.c: New file. * m4/tcgetsid.m4: New file. * modules/tcgetsid: New file. * modules/termios (Depends-on): Add c++defs, warn-on-use. (Makefile.am): Ensure c++defs.h, warn-on-use.h get included. Substitute GNULIB_TCGETSID, HAVE_TCGETSID. * lib/termios.in.h: Include . (tcgetsid): New declaration. * m4/termios_h.m4 (gl_TERMIOS_H): Check whether tcgetsid is declared. (gl_TERMIOS_H_DEFAULTS): Initialize GNULIB_TCGETSID, HAVE_TCGETSID. * doc/posix-functions/tcgetsid.texi: Mention the new module. * tests/test-termios-c++.cc: Check GNULIB_NAMESPACE::tcgetsid. 2010-09-16 Bruno Haible Tests for module 'termios'. * modules/termios-c++-tests: New file. * modules/termios-tests: New file. * tests/test-termios-c++.cc: New file. * tests/test-termios.c: New file. New module 'termios'. * modules/termios: New file. * lib/termios.in.h: New file. * m4/termios_h.m4: New file. * doc/posix-headers/termios.texi: Mention the new module. 2010-09-16 Eric Blake fdutimensat: add an atflag parameter * lib/fdutimensat.c (fdutimensat): Add new parameter. * lib/utimens.h (fdutimensat): Update prototype. * tests/test-fdutimensat.c: Adjust test to match. * NEWS: Document the change. Suggested by Paul Eggert. 2010-09-16 Bruno Haible Fix typos in comments. * lib/striconveh.h: Fix typo in comment. * lib/login_tty.c (login_tty): Likewise. 2010-09-15 Bruno Haible stdlib: clarify MirBSD WEXITSTATUS bug * lib/stdlib.in.h: Clarify the MirBSD bug regarding WEXITSTATUS. * doc/posix-headers/stdlib.texi (stdlib.h): Likewise. 2010-09-15 Eric Blake stdlib: work around MirBSD WEXITSTATUS bug * lib/stdlib.in.h (includes): Guarantee WEXITSTATUS. * modules/stdlib (Depends-on): Add sys_wait. * tests/test-sys_wait.c (main): Enhance test. * tests/test-stdlib.c (main): Likewise. * doc/posix-headers/stdlib.texi (stdlib.h): Document the bug. docs: mention MacOS issue with WEXITSTATUS(constant) * doc/posix-headers/sys_wait.texi (sys/wait.h): Document the issue. * doc/posix-headers/stdlib.texi (stdlib.h): Likewise. strnlen: add tests * modules/strnlen-tests: New file. * tests/test-strnlen.c: Likewise. 2010-09-14 Bruno Haible unistr/base: Avoid link errors when module 'libunistring' is also used. * lib/unistr.in.h (u8_mbtouc_unsafe, u16_mbtouc_unsafe, u32_mbtouc_unsafe, u8_mbtouc, u16_mbtouc, u32_mbtouc, u8_mbtoucr, u16_mbtoucr, u32_mbtoucr, u8_uctomb_aux, u16_uctomb_aux, u32_uctomb): Declare also when HAVE_LIBUNISTRING is set. Reported by Pádraig Brady . 2010-09-14 Eric Blake test-rawmemchr: make more robust * modules/rawmemchr-tests (Files): Add zerosize-ptr.h, mmap-anon.m4. (Depends-on, configure.ac): Add needed prerequisites to use it. * modules/memchr-tests (Files, Depends-on, configure.ac): Likewise, to avoid implicit reliance on memchr module prereqs. * tests/test-memchr.c (main): Ensure proper masking. * tests/test-rawmemchr.c (main): Likewise. Detect oversized reads. memchr: detect glibc Alpha bug Avoids http://sourceware.org/bugzilla/show_bug.cgi?id=12019. * m4/memchr.m4 (gl_FUNC_MEMCHR): Detect glibc 2.11.2 failure on Alpha. * doc/posix-functions/memchr.texi (memchr): Tweak wording. * tests/test-memchr.c (main): Enhance test. Reported by Nelson H. F. Beebe. 2010-09-13 Paul Eggert fts, getcwd, glob: audit for dirfd returning -1 * lib/fts.c (opendir): Remove #define; no longer used. (opendirat): New arg PDIR_FD. All callers changed. (fts_build, _opendir2): Use new opendirat to avoid the need for dirfd, or for checking whether dirfd returns a negative value. Don't use opendir; always use openat followed by fdopendir. * lib/getcwd.c (__getcwd): Don't reset fd; fdopendir no longer clobbers it. * lib/glob.c (link_exists_p): Add comment explaining why dirfd never returns -1 here. * modules/fts (Depends-on): Remove dirfd. * modules/getcwd (Depends-on): Likewise. 2010-09-13 Eric Blake float: fix broken MirBSD header * m4/float_h.m4 (gl_FLOAT_H): MirBSD copied OpenBSD's bug. * doc/posix-headers/float.texi (float.h): Document it. 2010-09-13 Paul Eggert fts: use O_NOFOLLOW to avoid race condition when opening a directory * lib/fts.c (opendirat): New arg extra_flags. (__opendir2): Use it to avoid following symlinks when opening a directory, if symlinks are not supposed to be followed. See . fdopendir: preserve argument fd before returning * lib/fdopendir.c: Adjust comments to say POSIX, not Solaris. (fdopendir_with_dup, fd_clone_opendir): New static functions. (fdopendir): Use them, arranging for FD to be open to the same directory that it was when it started. (It might be temporarily closed while fdopendir is running, so this not thread- or signal-safe.) Be careful to do the right thing even when file descriptors are scarce and dup fails with errno == EMFILE. See . 2010-09-10 Paolo Bonzini regex: Pass the system regex if its only problem is 32-bit regoff_t. * NEWS: Document change. * m4/regex.m4: Disable test for regoff_t size. 2010-09-13 Jim Meyering fts: don't operate on an invalid file descriptor after failed dup * lib/fts.c (fts_build): Don't call set_cloexec_flag on a negative file descriptor. 2010-09-12 Paul Eggert savedir: add streamsavedir, deprecate fdsavedir * NEWS: Mention deprecation of fdsavedir. * lib/savedir.c (streamsavedir): New extern function, whose name ends in "savedir" to be consistent with the others. This differs from savedirstream in that it doesn't close its argument. The next version of GNU tar will use this instead of fdsavedir, to avoid some race conditions and conserve file descriptors. (savedirstream): Reimplement as a wrapper around streamsavedir. (fdsavedir): Add a comment deprecating this function. As far as I know, only GNU tar used it, and GNU tar doesn't need it any more. * lib/savedir.h (streamsavedir): New decl. (fdsavedir): Add a comment deprecating this. 2010-09-10 Bruno Haible langinfo: Fix last commit. * m4/langinfo_h.m4 (gl_LANGINFO_H): Initialize HAVE_LANGINFO_T_FMT_AMPM, HAVE_LANGINFO_YESEXPR. Reported by Tom G. Christensen . 2010-09-10 Bruno Haible relocatable-prog-wrapper: Fix compilation failure due to O_EXEC. * lib/progreloc.c (O_EXEC): Define fallback. 2010-09-10 Paul Eggert fcntl-h: define O_CLOEXEC and O_EXEC if not defined; use new defines * NEWS: Document recent changes to fcntl-h. * doc/posix-headers/fcntl.texi (fcntl.h): Document that O_CLOEXEC is now defined to 0 if it is not defined, like other flags. Also, O_EXEC is now defined to be O_RDONLY if O_EXEC is not defined. Similarly for O_SEARCH; this last was already true, but not documented. * lib/fcntl.in.h (O_CLOEXEC): Define to 0 if not defined. * lib/dup-safer-flag.c (O_CLOEXEC): Remove now-useless #define. * lib/dup3.c, lib/pipe2.c, tests/test-dup-safer.c, tests/test-fcntl.c: Likewise. * lib/popen-safer.c (open_noinherit): Check whether O_CLOEXEC is zero, not whether it is defined. * tests/test-dup3.c, tests/test-pipe2.c (main): Likewise. * lib/progreloc.c (find_executable): Use O_EXEC rather than O_RDONLY. * lib/open.c (open): Check for O_SEARCH as well as for O_RDONLY. 2010-09-10 Bruno Haible langinfo, nl_langinfo: Fix for IRIX 5.3. * m4/langinfo_h.m4 (gl_LANGINFO_H): Test whether langinfo.h defines T_FMT_AMPM, YESEXPR. Set HAVE_LANGINFO_T_FMT_AMPM, HAVE_LANGINFO_YESEXPR. * modules/langinfo (Makefile.am): Substitute HAVE_LANGINFO_T_FMT_AMPM, HAVE_LANGINFO_YESEXPR. * lib/langinfo.in.h (T_FMT_AMPM, GNULIB_defined_T_FMT_AMPM): Define if HAVE_LANGINFO_T_FMT_AMPM is 0. (YESEXPR, NOEXPR, GNULIB_defined_YESEXPR): Define if HAVE_LANGINFO_YESEXPR is 0. * lib/nl_langinfo.c (rpl_nl_langinfo): Handle also T_FMT_AMPM, YESEXPR, NOEXPR. * doc/posix-headers/langinfo.texi: Mention the IRIX 5.3 problem. * doc/posix-functions/nl_langinfo.texi: Likewise. Reported by Eric Blake. 2010-09-10 Bruno Haible pty, readutmp: Fix for FreeBSD 8.0 and OpenBSD 4.6. * doc/glibc-functions/login_tty.texi: Mention the include file problem on FreeBSD 8.0 and OpenBSD 4.6. * lib/pty.in.h: Include before . * m4/pty_h.m4 (gl_PTY_H): Likewise. * m4/pty.m4 (gl_FUNC_FORKPTY, gl_FUNC_OPENPTY): Likewise. * m4/readutmp.m4 (gl_READUTMP): Include before . Invoke AC_INCLUDES_DEFAULT instead of using the undocumented variable ac_includes_default. Reported by Mats Erik Andersson . 2010-09-09 Eric Blake strsignal: work around NetBSD bug * m4/strsignal.m4 (gl_FUNC_STRSIGNAL): Also check in . * lib/string.in.h (includes): Likewise. * doc/posix-functions/strsignal.texi (strsignal): Document the bug. Reported by Nelson H. F. Beebe. gnulib-tool: work with NetBSD /bin/sh * gnulib-tool (func_cache_var, func_cache_lookup_module) (func_get_description, func_get_comment, func_get_status) (func_get_notice, func_get_applicability, func_get_filelist) (func_get_dependencies, func_get_autoconf_early_snippet) (func_get_autoconf_snippet, func_get_automake_snippet) (func_get_include_directive, func_get_link_directive) (func_get_license, func_get_maintainer, func_import): Avoid shell syntax errors from parsing syntax extensions. 2010-09-09 Bruno Haible gnulib-tool: Avoid stderr output on IRIX related to 'alias', 'unalias'. * gnulib-tool: Don't fiddle with file descriptors 0, 1, 2. Instead, use a reliable way to determine whether the 'alias' command works. 2010-09-08 Jim Meyering init.sh: penalize a set-x-impaired shell; don't disqualify it * tests/init.sh: Too many shells corrupt application stderr when you set -x, so we can't afford to disqualify them, since at least on Irix-6.5, that would disqualify all bourne shells. Instead, use a two-pass approach. On the first pass, try to find a shell that meets the stricter condition that set -x does not corrupt stderr. If no shell meets the stricter condition, retest each candidate shell, but without that extra condition. Finally, when VERBOSE=yes is requested and set -x might cause trouble, simply issue a warning and refrain from enabling debug output. 2010-09-08 Eric Blake unsetenv: fix OpenBSD bug * m4/setenv.m4 (gl_FUNC_UNSETENV): Check for OpenBSD bug. * doc/posix-functions/unsetenv.texi (unsetenv): Update documentation. Reported by Jim Meyering. strtod: work around IRIX 6.5 bug * lib/strtod.c (strtod): Reparse number on shorter string if exponent parse was invalid. * tests/test-strtod.c (main): Add check for "0x1p 2". Reported by Tom G. Christensen. getopt: optimize previous patch * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Correctly check for empty variable. Speed up awk script. Reported by Paolo Bonzini. 2010-09-08 Jim Meyering test.sh: disqualify shells for which set -x corrupts stderr * tests/init.sh: Add a test to disqualify /bin/sh from SunOS 5.11 and OpenBSD 4.7. They make it so with "set -x", environment settings appear in stderr output. For example, this command: /bin/sh -c 'set -x; P=1 true 2> err' 2>/dev/null; cat err prints "P=1" on those two systems: 2010-09-08 Bruno Haible gnulib-tool: Avoid stderr output on IRIX related to 'alias', 'unalias'. * gnulib-tool: Use stderr redirection around the 'alias' and 'unalias' commands, because some shells ignore redirections when there is an error in the command lookup. Reported by Eric Blake. 2010-09-07 Reuben Thomas * lib/regex.h: Fix a mention of `regex_compile' (should be `re_compile_pattern'). Correct and clarify documentation for RE_CONTEXT_INVALID_DUP. (re_set_registers): Correct name of parameter in comment. * doc/regex.texi: Add documentation for missing syntax flags. Remove commented-out documentation of defunct syntax option RE_NO_EMPTY_ALTS. Correct name of RE_CHAR_CLASSES in one incorrect occurrence. Add documentation of re_set_registers. Document trick to re-use a pattern buffer by setting fastmap manually. Update documentation of struct re_pattern_buffer per public members. Uncomment documentation of equivalence class operators and collating symbol operators, since they are now implemented, Explain leftmost-longest matching in relation to alternatives. Tidy documentation of substring matching. Remove POSIX documentation, which is done better in glibc, and refer the reader there. Keep BSD API documentation, as that is not readily available elsewhere. 2010-09-07 Eric Blake getopt: handle POSIXLY_CORRECT set but not exported * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Restore pre-existing export state of POSIXLY_CORRECT, due to bash set -o posix. Reported by Dustin J. Mitchell. 2010-09-05 Bruno Haible gnulib-tool: Highlight the changed options. * gnulib-tool (func_usage): Display the --import, --add-import, --remove-import explanations in bold font. 2010-09-06 Karl Berry * doc/gnulib-tool.texi (Modified imports): doc tweaks. 2010-09-05 Bruno Haible uniwidth/width: Update comment. * lib/uniwidth/width.c (uc_width): Update comment for Unicode >= 3.1. Reported by Emanuele Giaquinta . 2010-09-05 Bruno Haible isinf, isnan: Relax license. * modules/isinf (License): Change from GPL to LGPL, with consent from Ben Pfaff. * modules/isnan (License): Likewise. Requested by Ludovic Courtès. 2010-09-04 Bruno Haible gnulib-tool: Help migration from --import to --add-import or --update. * gnulib-tool: Emit a verbose error message when --import is used without any module name. 2010-09-04 Bruno Haible Update doc about gnulib-tool. * doc/gnulib-tool.texi (VCS Issues): Explain 'gnulib-tool --import' vs. 'gnulib-tool --update' in more detail. Reported by Eric Blake. 2010-09-04 Bruno Haible gnulib-tool: Change --import. New options --add/remove-import. * gnulib-tool: New options --add-import, --remove-import. (func_usage): Document them. (have_associative): Define always. (func_import): In import mode, don't merge the specified settings with the cached settings. Implement remove-import mode. * doc/gnulib-tool.texi (Modified imports): Mention the new options. Explain when to use them versus --import. (Simple update): Use --add-import instead of --import. * NEWS: Mention the change. 2010-09-04 Bruno Haible * doc/gnulib-tool.texi (Initial import): Update paragraph about separate gnulib.mk. 2010-09-04 Bruno Haible gnulib-tool: Don't talk about CVS any more. * gnulib-tool (func_usage, func_import): Write "version control" instead of CVS. 2010-09-04 Jim Meyering maint.mk: avoid obscure sc_copyright_check failure in coreutils * top/maint.mk (v_etc_file): Prepend $(gnulib_dir)/, to avoid false positives (whose names may be ill-chosen) when searching non-VC'd files. Otherwise, a file named "a b/lib/version-etc.c" would cause a false-positive. avoid coreutils "make distcheck" failure Coreutils tests with an absolute build directory name that contains a space. Not quoting this directory name caused a failure. * tests/test-vc-list-files-git.sh: Quote PATH dir name. * tests/test-vc-list-files-cvs.sh: Likewise. 2010-09-04 Bruno Haible gnulib-tool: Avoid error when run in a package without Makefile.am. * gnulib-tool: When collecting the m4dirs in a package that does not have a Makefile.am, eliminate those directories that contain no gnulib-cache.m4. Fix expression that counts these directories. 2010-09-04 Bruno Haible update-copyright test: Improve output when perl is missing or too old. * tests/test-update-copyright.sh: Move test of Perl version down after the test whether Perl exists. Provide an explanation relating Perl's error message to Automake's SKIP: message. 2010-09-04 Bruno Haible Don't augment PATH in TESTS_ENVIRONMENT. * modules/update-copyright-tests (Makefile.am): In TESTS_ENVIRONMENT, set abs_aux_dir instead of augmenting PATH. * modules/vc-list-files-tests (Makefile.am): Likewise. * tests/test-update-copyright.sh: Augment PATH here. * tests/test-vc-list-files-cvs.sh: Augment PATH here, through path_prepend_. * tests/test-vc-list-files-git.sh: Likewise. 2010-09-04 Jim Meyering tests: prohibit augmenting PATH via TESTS_ENVIRONMENT * Makefile (sc_prohibit_augmenting_PATH_via_TESTS_ENVIRONMENT): New rule. 2010-09-04 Bruno Haible strdup: Fix compilation error in C++ mode. * lib/string.in.h (strdup): In C++ mode with GNULIB_NAMESPACE, undefine the macro. 2010-09-04 Bruno Haible dirfd: Fix compilation error in C++ mode on MacOS X, *BSD, IRIX. * lib/dirent.in.h (dirfd): In C++ mode with GNULIB_NAMESPACE, turn the macro into a function. Reported by Jarno Rajahalme . 2010-09-04 Bruno Haible Set PATH_SEPARATOR the same way autoconf does. * build-aux/relocatable.sh.in (func_find_curr_installdir): Determine the value of PATH_SEPARATOR the same way autoconf-generated configure scripts do. * m4/lib-ld.m4 (AC_LIB_PROG_LD): Likewise. * m4/progtest.m4 (AM_PATH_PROG_WITH_TEST): Likewise. 2010-09-04 Stefano Lattarini (tiny change) Set PATH_SEPARATOR the same way autoconf does. * gnulib-tool (func_gnulib_dir): Determine the value of PATH_SEPARATOR the same way autoconf-generated configure scripts do. * posix-modules: Likewise. 2010-09-02 Paul Eggert hash: fix safe_hasher const typo * lib/hash.c (safe_hasher): Result is pointer, not pointer to const; otherwise, there is a type error later. 2010-09-02 Jim Meyering test-update-copyright.sh: require perl 5.8.0 * tests/test-update-copyright.sh: Require 5.8.0, which Tom G. Christensen has confirmed is adequate, while 5.6.1 is not. 2010-09-02 Eric Blake tests: init.sh improvements for re-exec'ing with zsh * tests/init.sh: Borrow autoconf POSIX-mode sanitization. Pass -vx through shell re-exec. Reported by Tom G. Christensen. wctype: fix typo in previous commit * m4/wctype_h.m4 (gl_WCTYPE_H): Fix spelling. Reported by Ludovic Courtès. 2010-09-02 Jim Meyering test-update-copyright.sh: skip test if Perl is too old * tests/test-update-copyright.sh: Exit 77 if Perl is too old. Reported by Tom G. Christensen. 2010-09-02 Bruno Haible wctype: Avoid compilation error on IRIX 6.5.30. * lib/wctype.in.h (iswblank): Declare with a replacement if REPLACE_ISWBLANK is set. * m4/wctype_h.m4 (gl_WCTYPE_H): Check also whether iswblank is declared. Set REPLACE_ISWBLANK. * modules/wctype (Makefile.am): Substitute REPLACE_ISWBLANK. * doc/posix-functions/iswblank.texi: Mention the IRIX 6.5.30 problem. * doc/posix-headers/wctype.texi: Likewise. Reported by Tom G. Christensen . 2010-09-01 Bruno Haible New module 'socketlib'. * modules/socketlib: New file. * m4/socketlib.m4: New file, extracted from m4/sockets.m4. * m4/sockets.m4 (gl_SOCKETS): Require gl_SOCKETLIB. * modules/sockets (Depends-on): Add socketlib. Suggested by Sam Steingold . 2010-09-01 Paul Eggert fcntl-h, etc.: prefer O_SEARCH to O_RDONLY when applicable POSIX 2008 specifies a new 'open' flag O_SEARCH, which can be used when one needs search access to a directory but not read access. On systems where it is available, it works in some cases where O_RDONLY does not, namely on directories that are searchable but not readable, and which need only to be searchable. If O_SEARCH is not available, fall back to the traditional method of using O_RDONLY. * lib/fcntl.in.h (O_SEARCH): #define to O_RDONLY if not defined. * lib/chdir-long.c (cdb_advance_fd): Use O_SEARCH, not O_RDONLY, when opening a directory that needs only to be searchable. * lib/chdir-safer.c (chdir_no_follow): Likewise. * lib/fts.c (diropen, fts_open, fd_ring_check): Likewise. * lib/openat-proc.c (openat_proc_name): Likewise. * lib/openat.c (openat_needs_fchdir): Likewise. * lib/save-cwd.c (save_cwd): Likewise. * lib/savewd.c (savewd_save, savewd_chdir): Likewise. 2010-08-28 Bruno Haible New module 'host-cpu-c-abi'. * modules/host-cpu-c-abi: New file. * m4/host-cpu-c-abi.m4: New file, based on part of clisp/src/m4/general.m4. Requested by Sam Steingold . 2010-08-31 Eric Blake and Jim Meyering hash: factor, and guard against misbehaving hasher function * lib/hash.c (safe_hasher): New function, to encapsulate the checking of table->hasher's return value. Also protect against a hash value so large that adding it to table->bucket results in a NULL pointer. (hash_lookup, hash_get_next, hash_find_entry, transfer_entries): Use it in place of open-coded check-and-abort. 2010-08-30 Bruno Haible hash: silence spurious clang warning * lib/hash.c (hash_get_next): Remove unnecessary test against NULL. Reported by Eric Blake. 2010-08-30 Eric Blake strstr, memmem, strcasestr: avoid leaked shell message * m4/strstr.m4 (gl_FUNC_STRSTR): Avoid "Alarm clock" message from FreeBSD. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise. * m4/memmem.m4 (gl_FUNC_MEMMEM): Likewise. tests: silence clang warning * tests/test-malloca.c (do_allocation): Avoid dead store. 2010-08-29 Bruno Haible gettext: Fix recent mistake. * m4/intl.m4 (gt_CHECK_DECL): Fix typo introduced on 2010-08-26. 2010-08-29 Bruno Haible selinux-h: Offer a --without-selinux option. * m4/selinux-selinux-h.m4 (gl_HEADERS_SELINUX_SELINUX_H): If --without-selinux was specified, skip all tests and define HAVE_SELINUX_SELINUX_H to 0. (gl_LIBSELINUX): Offer --without-selinux option. If it is specified, set LIB_SELINUX to empty. * m4/selinux-context-h.m4 (gl_HEADERS_SELINUX_CONTEXT_H): Require gl_LIBSELINUX. If --without-selinux was specified, replace selinux/context.h. Reported by Johan Hattne . 2010-08-29 Ralf Wildenhues Bruno Haible Make the module 'realloc-gnu' work again on AIX and OSF/1. * m4/realloc.m4 (gl_FUNC_REALLOC_GNU): Define HAVE_REALLOC_GNU instead of HAVE_REALLOC. * lib/realloc.c (NEED_REALLOC_GNU): Enable behaviour also when GNULIB_REALLOC_GNU && !HAVE_REALLOC_GNU. (SYSTEM_MALLOC_GLIBC_COMPATIBLE): Adjust definition. * modules/realloc-gnu (configure.ac): Use gl_MODULE_INDICATOR. 2010-08-29 Ralf Wildenhues Bruno Haible Make the module 'calloc-gnu' work again on AIX and OSF/1. * m4/calloc.m4 (gl_FUNC_CALLOC_GNU): Define HAVE_CALLOC_GNU instead of HAVE_CALLOC. * lib/xmalloc.c: Update accordingly. * lib/calloc.c (NEED_CALLOC_GNU): Enable also when GNULIB_CALLOC_GNU && !HAVE_CALLOC_GNU. * modules/calloc-gnu (configure.ac): Invoke gl_MODULE_INDICATOR. 2010-08-29 Ralf Wildenhues Bruno Haible Make the module 'malloc-gnu' work again on AIX and OSF/1. * m4/malloc.m4 (gl_FUNC_MALLOC_GNU): Define HAVE_MALLOC_GNU instead of HAVE_MALLOC. * lib/malloc.c (NEED_MALLOC_GNU): Enable behaviour also when GNULIB_MALLOC_GNU && !HAVE_MALLOC_GNU. * modules/malloc-gnu (configure.ac): Use gl_MODULE_INDICATOR. 2010-08-29 Bruno Haible Update modules list. * MODULES.html.sh (Memory management functions ): Add malloc-gnu, calloc-gnu, realloc-gnu. Remove malloc, calloc, realloc. (String handling ): Add astrxfrm. (File system functions): Add readlinkat. 2010-08-28 Ralf Wildenhues Tests for module 'realloc-gnu'. * modules/realloc-gnu-tests: New file. * tests/test-realloc-gnu.c: New file. Tests for module 'calloc-gnu'. * modules/calloc-gnu-tests: New file. * tests/test-calloc-gnu.c: New file. Tests for module 'malloc-gnu'. * modules/malloc-gnu-tests: New file. * tests/test-malloc-gnu.c: New file. 2010-08-28 Bruno Haible Rename module 'realloc' -> 'realloc-gnu'. * modules/realloc-gnu: New file, copied from modules/realloc. * modules/realloc: Convert to a redirection to 'realloc-gnu'. Mark as obsolete. * modules/mgetgroups (Depends-on): Update. * doc/posix-functions/realloc.texi: Update. * NEWS: Mention the change. Rename module 'calloc' -> 'calloc-gnu'. * modules/calloc-gnu: New file, copied from modules/calloc. * modules/calloc: Convert to a redirection to 'calloc-gnu'. Mark as obsolete. * doc/posix-functions/calloc.texi: Update. * NEWS: Mention the change. Rename module 'malloc' -> 'malloc-gnu'. * modules/malloc-gnu: New file, copied from modules/malloc. * modules/malloc: Convert to a redirection to 'malloc-gnu'. Mark as obsolete. * modules/argp (Depends-on): Update. * modules/regex (Depends-on): Update. * doc/posix-functions/malloc.texi: Update. * NEWS: Mention the change. 2010-08-28 Eric Blake pread, pwrite: add missing dependency * modules/pread (Depends-on): Add extensions. * modules/pwrite (Depends-on): Likewise. 2010-08-28 Bruno Haible unistr/u*-strchr: Fix tests dependencies. * modules/unistr/u8-strchr-tests (Depends-on): Add unistr/u32-to-u8. * modules/unistr/u16-strchr-tests (Depends-on): Add unistr/u32-to-u16. Reported by Ian Beckwith . 2010-08-28 Bruno Haible read-file: Don't occupy too much unused memory. * lib/read-file.c (fread_file): Shrink the buffer at the end. 2010-08-28 Giuseppe Scrivano Eric Blake Bruno Haible read-file: Avoid memory reallocations with regular files. * lib/read-file.c: Include , , . (fread_file): With regular files, use the remaining length as the initial buffer size. Check against overflow. * modules/read-file (Depends-on): Add ftello, malloc-posix, stdint, sys_stat. 2010-08-28 Bruno Haible ftello: Relax license. * modules/ftello (License): Relax to LGPLv2+. Reported by Eric Blake. 2010-08-28 Bruno Haible Avoid relocwrapper link errors due to gnulib replacement functions. * lib/canonicalize-lgpl.c [IN_RELOCWRAPPER]: Use the system's getcwd function. Reported by Ben Pfaff . 2010-08-28 Bruno Haible Prefer using AC_DEFUN_ONCE over AC_DEFUN in projects with gnulib. * m4/iconv.m4 (gl_iconv_AC_DEFUN): Use AC_DEFUN_ONCE if gl_00GNULIB is defined. * m4/libunistring.m4 (gl_libunistring_AC_DEFUN): Likewise. Suggested by Eric Blake. 2010-08-28 Bruno Haible sys_socket, netdb: Ensure socklen_t gets defined. * modules/sys_socket (Depends-on): Add socklen. * modules/netdb (Depends-on): Likewise. * modules/getaddrinfo (Depends-on): Remove socklen. * modules/getsockopt (Depends-on): Likewise. * modules/setsockopt (Depends-on): Likewise. * tests/test-sys_socket.c: Check that socklen_t is defined. * tests/test-netdb.c: Likewise. * m4/socklen.m4: Update comments. Reported by Ralf Wildenhues . 2010-08-27 Eric Blake login_tty: add missing dependency * modules/login_tty (Depends-on): Add pty. 2010-08-26 Eric Blake lib-symbol-versions: fix m4 quoting * m4/ld-version-script.m4 (gl_LD_VERSION_SCRIPT): Use correct format for AC_LINK_IFELSE. glob: fix compile test * m4/glob.m4 (gl_GLOB): Use correct format for AC_COMPILE_IFELSE. btowc: fix missing file * modules/btowc (Files): Also ship locale-fr.m4. lseek: fix link test * m4/lseek.m4 (gl_FUNC_LSEEK): Use correct format for AC_LINK_IFELSE. include_next: silence autoconf 2.68 warning * m4/include_next.m4 (gl_INCLUDE_NEXT): Mark this use of AC_COMPILE_IFELSE as special. (AC_LANG_DEFINES_PROVIDED): Provide dummy implementation for autoconf < 2.68. acl: fix compilation test * m4/acl.m4 (gl_FUNC_ALL): Use correct format for AC_COMPILE_IFELSE. 2010-08-26 Bruno Haible Modernize AC_TRY_RUN invocations. * m4/btowc.m4 (gl_FUNC_BTOWC): Use AC_RUN_IFELSE instead of AC_TRY_RUN. * m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Likewise. * m4/exponentd.m4 (gl_DOUBLE_EXPONENT_LOCATION): Likewise. * m4/exponentf.m4 (gl_FLOAT_EXPONENT_LOCATION): Likewise. * m4/exponentl.m4 (gl_LONG_DOUBLE_EXPONENT_LOCATION): Likewise. * m4/fopen.m4 (gl_FUNC_FOPEN): Likewise. * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Likewise. * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Likewise. * m4/ftello.m4 (gl_FUNC_FTELLO): Likewise. * m4/iconv.m4 (AM_ICONV_LINK): Likewise. * m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN_UTF): Likewise. * m4/intdiv0.m4 (gt_INTDIV0): Likewise. * m4/isnanf.m4 (gl_ISNANF_WORKS): Likewise. * m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Likewise. * m4/ldexpl.m4 (gl_FUNC_LDEXPL_WORKS): Likewise. * m4/mbrlen.m4 (gl_MBRLEN_INCOMPLETE_STATE, gl_MBRLEN_RETVAL, gl_MBRLEN_NUL_RETVAL): Likewise. * m4/mbrtowc.m4 (gl_MBRTOWC_INCOMPLETE_STATE, gl_MBRTOWC_SANITYCHECK, gl_MBRTOWC_NULL_ARG, gl_MBRTOWC_RETVAL, gl_MBRTOWC_NUL_RETVAL): Likewise. * m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): Likewise. * m4/open.m4 (gl_FUNC_OPEN): Likewise. * m4/printf.m4 (gl_PRINTF_SIZES_C99, gl_PRINTF_LONG_DOUBLE, gl_PRINTF_INFINITE, gl_PRINTF_INFINITE_LONG_DOUBLE, gl_PRINTF_DIRECTIVE_A, gl_PRINTF_DIRECTIVE_F, gl_PRINTF_DIRECTIVE_N, gl_PRINTF_DIRECTIVE_LS, gl_PRINTF_POSITIONS, gl_PRINTF_FLAG_GROUPING, gl_PRINTF_FLAG_LEFTADJUST, gl_PRINTF_FLAG_ZERO, gl_PRINTF_PRECISION, gl_SNPRINTF_TRUNCATION_C99, gl_SNPRINTF_RETVAL_C99, gl_SNPRINTF_DIRECTIVE_N, gl_SNPRINTF_SIZE1, gl_VSNPRINTF_ZEROSIZE_C99): Likewise. * m4/printf-posix.m4 (gt_PRINTF_POSIX): Likewise. * m4/signbit.m4 (gl_SIGNBIT, gl_FLOATTYPE_SIGN_LOCATION): Likewise. * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Likewise. * m4/threadlib.m4 (gl_THREADLIB_BODY): Likewise. * m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise. * m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Likewise. * m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise. * m4/wcsrtombs.m4 (gl_WCSRTOMBS_TERMINATION): Likewise. * m4/wctob.m4 (gl_FUNC_WCTOB): Likewise. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise. 2010-08-26 Bruno Haible Modernize AC_TRY_LINK invocations. * m4/acosl.m4 (gl_FUNC_ACOSL): Use AC_LINK_IFELSE instead of AC_TRY_LINK. * m4/argp.m4 (gl_ARGP): Likewise. * m4/asinl.m4 (gl_FUNC_ASINL): Likewise. * m4/atanl.m4 (gl_FUNC_ATANL): Likewise. * m4/ceil.m4 (gl_FUNC_CEIL_LIBS): Likewise. * m4/ceilf.m4 (gl_FUNC_CEILF_LIBS): Likewise. * m4/ceill.m4 (gl_FUNC_CEILL_LIBS): Likewise. * m4/codeset.m4 (AM_LANGINFO_CODESET): Likewise. * m4/cosl.m4 (gl_FUNC_COSL): Likewise. * m4/expl.m4 (gl_FUNC_EXPL): Likewise. * m4/floor.m4 (gl_FUNC_FLOOR_LIBS): Likewise. * m4/floorf.m4 (gl_FUNC_FLOORF_LIBS): Likewise. * m4/floorl.m4 (gl_FUNC_FLOORL_LIBS): Likewise. * m4/frexp.m4 (gl_FUNC_FREXP, gl_CHECK_FREXP_NO_LIBM): Likewise. * m4/frexpl.m4 (gl_FUNC_FREXPL, gl_CHECK_FREXPL_NO_LIBM): Likewise. * m4/ftello.m4 (gl_FUNC_FTELLO): Likewise. * m4/gettext.m4 (AM_GNU_GETTEXT): Likewise. * m4/hostent.m4 (gl_HOSTENT): Likewise. * m4/iconv.m4 (AM_ICONV_LINK): Likewise. * m4/intl.m4 (gt_INTL_SUBDIR_CORE): Likewise. * m4/intlmacosx.m4 (gt_INTL_MACOSX): Likewise. * m4/isnand.m4 (gl_HAVE_ISNAND_IN_LIBM, gl_HAVE_ISNAND_NO_LIBM): Likewise. * m4/isnanf.m4 (gl_HAVE_ISNANF_NO_LIBM, gl_HAVE_ISNANF_IN_LIBM): Likewise. * m4/isnanl.m4 (gl_HAVE_ISNANL_NO_LIBM, gl_HAVE_ISNANL_IN_LIBM): Likewise. * m4/lcmessage.m4 (gt_LC_MESSAGES): Likewise. * m4/ldexpl.m4 (gl_FUNC_LDEXPL, gl_CHECK_LDEXPL_NO_LIBM): Likewise. * m4/lib-link.m4 (AC_LIB_HAVE_LINKFLAGS): Likewise. * m4/logb.m4 (gl_FUNC_LOGB): Likewise. * m4/logl.m4 (gl_FUNC_LOGL): Likewise. * m4/printf-frexp.m4 (gl_FUNC_PRINTF_FREXP): Likewise. * m4/servent.m4 (gl_SERVENT): Likewise. * m4/signbit.m4 (gl_SIGNBIT): Likewise. * m4/sinl.m4 (gl_FUNC_SINL): Likewise. * m4/sqrtl.m4 (gl_FUNC_SQRTL): Likewise. * m4/tanl.m4 (gl_FUNC_TANL): Likewise. * m4/threadlib.m4 (gl_THREADLIB_BODY): Likewise. * m4/trunc.m4 (gl_FUNC_TRUNC): Likewise. * m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise. * m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise. * modules/tsearch-tests (configure.ac): Likewise. 2010-08-26 Bruno Haible Modernize AC_TRY_COMPILE invocations. * m4/environ.m4 (gt_CHECK_VAR_DECL): Use AC_COMPILE_IFELSE instead of AC_TRY_COMPILE. * m4/iconv.m4 (gl_iconv_AC_DEFUN): Likewise. * m4/intl.m4 (gt_CHECK_DECL): Likewise. * m4/intmax.m4 (gt_TYPE_INTMAX_T): Likewise. * m4/intmax_t.m4 (gt_AC_TYPE_INTMAX_T): Likewise. * m4/inttypes-pri.m4 (gt_INTTYPES_PRI): Likewise. * m4/inttypes_h.m4 (gl_AC_HEADER_INTTYPES_H): Likewise. * m4/locale_h.m4 (gl_LOCALE_H): Likewise. * m4/lock.m4 (gl_LOCK): Likewise. * m4/malloc.m4 (gl_CHECK_MALLOC_POSIX): Likewise. * m4/mbswidth.m4 (gl_MBSWIDTH): Likewise. * m4/minmax.m4 (gl_MINMAX_IN_HEADER): Likewise. * m4/setenv.m4 (gl_FUNC_UNSETENV): Likewise. * m4/size_max.m4 (gl_SIZE_MAX): Likewise. * m4/ssize_t.m4 (gt_TYPE_SSIZE_T): Likewise. * m4/stdarg.m4 (gl_STDARG_H): Likewise. * m4/stdbool.m4 (AC_HEADER_STDBOOL): Likewise. * m4/stdint_h.m4 (gl_AC_HEADER_STDINT_H): Likewise. * m4/visibility.m4 (gl_VISIBILITY): Likewise. * m4/wchar_t.m4 (gt_TYPE_WCHAR_T): Likewise. * m4/wint_t.m4 (gt_TYPE_WINT_T): Likewise. * m4/libunistring.m4 (gl_LIBUNISTRING_CORE): Likewise. Remove extraneous semicolon. 2010-08-26 Jim Meyering stat-time: relax license LGPL * modules/stat-time (License): Change from GPL to LGPL, with consent from all contributors, for use in libguile. Requested by Ludovic Courtès. 2010-08-26 Erik Faye-Lund poll: return immediately on POLLHUP. * lib/poll.c (poll): Always set timeout before wait_timeout is computed. 2010-08-25 Ralf Wildenhues Fix test-unlinkat, test-rmdir failure on AIX 5.3. * tests/test-rmdir.h (test_rmdir_func): Also accept EEXIST for rmdir ("dir/.//"), unlinkat. 2010-08-24 Paul Eggert stdbool: avoid spurious failure with modern xlc * m4/stdbool.m4 (AC_HEADER_STDBOOL): Resync with autoconf. 2010-08-24 Bruno Haible getloadavg: simplify code * m4/getloadavg.m4 (gl_GETLOADAVG): Remove useless test of gl_have_func. Update comments. 2010-08-24 Eric Blake getloadavg: don't define SVR4 on cygwin * m4/getloadavg.m4 (gl_GETLOADAVG): Sync with autoconf fix, to only define SVR4 when -lkvm is required. Reported by Yaakov Selkowitz. 2010-08-24 Bruno Haible priv-set: fix comment * lib/priv-set.c (priv_set_restore): Fix typo in comment. 2010-08-23 Paul Eggert priv-set: fix comments * lib/priv-set.c (priv_set_remove, priv_set_restore): Fix comments to match code, as suggested by David Bartley in: http://lists.gnu.org/r/bug-tar/2010-08/msg00018.html 2010-08-23 Eric Blake stdbool: avoid rejecting clang * m4/stdbool.m4 (AC_HEADER_STDBOOL): Resync with autoconf. * tests/test-stdbool.c: Enable more tests if using the system instead of the gnulib replacement. (main): Move xlc bug test to a runtime test for all compilers. Reported by Anders Kaseorg. argz: fix shell quoting issue * m4/argz.m4 (gl_FUNC_ARGZ): Allow for spaces in argument. Reported by Charles Wilson. 2010-08-22 Paolo Bonzini Erik Faye-Lund poll, select: handle ERROR_BROKEN_PIPE. * lib/poll.c (win32_compute_revents): Return POLLHUP when PeekNamedPipe fails with ERROR_BROKEN_PIPE. * lib/select.c (win32_compute_revents): Do not mark a pipe as writeable if PeekNamedPipe fails with ERROR_BROKEN_PIPE. 2010-08-22 Giuseppe Scrivano fts: allow compilation with C++ * lib/fts_.h: Specify extern "C" linkage with C++. 2010-08-22 Ralf Wildenhues Fix gnulib-tool sed script de-commentation for AIX sed. * gnulib-tool (sed_comments): Try indented comments, for AIX 5.3 sed. 2010-08-17 Eric Blake test-stddef: test for (some) offsetof bugs * tests/test-stddef.c: Enhance test to ensure correct type of offsetof. * doc/posix-headers/stddef.texi (stddef.h): Document a Solaris bug that we are not fixing at this time. 2010-08-15 Bruno Haible stpncpy: Allow stpncpy to be defined as a macro. * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Don't attempt to redeclare stpncpy if it's already correctly declared. * lib/string.in.h (stpncpy): Undefine before redefining. Reported by Jeremy Huddleston . 2010-08-14 Bruno Haible Rename module 'memxfrm' to 'amemxfrm'. * lib/amemxfrm.h: Renamed from lib/memxfrm.h. (amemxfrm): Renamed from memxfrm. * lib/amemxfrm.c: Renamed from lib/memxfrm.h. Include amemxfrm.h. (amemxfrm): Renamed from memxfrm. * modules/amemxfrm: Renamed from modules/memxfrm. Update. * NEWS: Mention the change. * MODULES.html.sh (String handling ): Update. * lib/unicase/u-casexfrm.h: Invoke amemxfrm instead of memxfrm. * lib/unicase/u8-casexfrm.c: Include amemxfrm.h instead of memxfrm.h. * lib/unicase/u16-casexfrm.c: Likewise. * lib/unicase/u32-casexfrm.c: Likewise. * lib/uninorm/u-normxfrm.h: Invoke amemxfrm instead of memxfrm. * lib/uninorm/u8-normxfrm.c: Include amemxfrm.h instead of memxfrm.h. * lib/uninorm/u16-normxfrm.c: Likewise. * lib/uninorm/u32-normxfrm.c: Likewise. * modules/unicase/u8-casexfrm (Depends-on): Add amemxfrm, remove memxfrm. * modules/unicase/u16-casexfrm (Depends-on): Likewise. * modules/unicase/u32-casexfrm (Depends-on): Likewise. * modules/uninorm/u8-normxfrm (Depends-on): Likewise. * modules/uninorm/u16-normxfrm (Depends-on): Likewise. * modules/uninorm/u32-normxfrm (Depends-on): Likewise. Suggested by Paul Eggert. 2010-08-14 Bruno Haible Tests for module 'astrxfrm'. * modules/astrxfrm-tests: New file. * tests/test-astrxfrm.c: New file. New module 'astrxfrm'. * lib/astrxfrm.h: New file. * lib/astrxfrm.c: New file, based on lib/memxfrm.c. * modules/astrxfrm: New file. 2010-08-14 Reuben Thomas regex: Tweak doc. * doc/regex.texi (Overview): Don't mention regex.c. (GNU Regular Expression Compiling): Likewise. (Match-end-of-line Operator): Mention 'not_eol'. 2010-08-14 Brian Gough Bruno Haible git-merge-changelog: add doc relating to use with bzr and hg. * lib/git-merge-changelog.c: Add comments regarding bzr, hg, diff3. 2010-08-14 Matthias Bolte pthread: fix pthread.h creation for srcdir != builddir * modules/pthread (Makefile.am): Fix the rule to work also in a non-srcdir build. 2010-08-13 Karl Berry * doc/regex.texi (Predefined Syntaxes): @smallexample. * doc/posix-*/*: force line break before @url of POSIX specifications. Suggested by Werner Lemberg. 2010-08-10 Paul Eggert strtod: fix const diagnostic * lib/strtod.c (strtod): Don't assign const char * to char *, as this elicits a warning from GCC when warnings are enabled. 2010-08-10 Pádraig Brady and Eric Blake copy-acl: ignore ENOTSUP on HP-UX * lib/acl-internal.h (ACL_NOT_WELL_SUPPORTED): Move definition up, so that it is available for HP-UX. * lib/copy-acl.c (qcopy_acl): Use it. Reported by Patrick M. Callahan. 2010-08-10 Eric Blake open, chown: relax license * modules/open (License): Change to LGPLv2+, with consent by all authors, for use in augeas. * modules/chown (License): Likewise. * modules/lchown (Likewise): Likewise. Requested by Adam Stokes. 2010-08-09 Karl Berry * build-aux/ar-lib: new file, import from Automake. * config/srclist.txt: autocheck for updates. 2010-08-09 Eric Blake readlinkat: adjust client modules * modules/areadlinkat (Depends-on): Use readlinkat, not symlinkat. * modules/areadlinkat-with-size (Depends-on): Likewise. mknod: be more vocal about danger of running tests as root * m4/mknod.m4 (gl_FUNC_MKNOD): Make it harder to run configure as root, since that is just asking for problems. Suggested by Bruno Haible, based on a report by Rainer Tammer. readlinkat: split into its own module * modules/symlinkat: Split readlinkat... * modules/readlinkat: ...into separate module. * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Move readlinkat check... * m4/readlinkat.m4 (gl_FUNC_READLINAT): ...to new file. * lib/symlinkat.c (readlinkat): Move... * lib/readlinkat.c: ...into new file. * modules/symlinkat-tests: Split readlinkat test... * modules/readlinkat-tests: ...into separate module. * tests/test-symlinkat.c: Split... * tests/test-readlinkat.c: ...into new file. * NEWS: Document the split. * doc/posix-functions/readlinkat.texi (readlinkat): Likewise. * lib/unistd.in.h (readlinkat): Likewise. Suggested by Bruno Haible. 2010-08-08 Bruno Haible memxfrm: Speed up. * lib/memxfrm.c (memxfrm): Allocate enough memory ahead of time, so that usually only one call to strxfrm is necessary for each string part. Reported by Paul Eggert . 2010-08-07 Karl Berry * doc/posix-headers/limits.texi, * doc/posix-functions/malloc.texi, * doc/posix-functions/strsignal.texi: missing @item. * doc/ld-version-script.texi: spurious leading i. * doc/regex.texi (Interval Operators): no commas inside @var. 2010-08-01 Bruno Haible Integrate the regex documentation. * doc/gnulib.texi: Define 'cn' index. (Regular expressions): New a chapter that includes regex.texi and regexprops-generic.texi. * doc/regex.texi: Remove boilerplate stuff. Use simplified @node syntax. Whitespace cleanup. * doc/regex.texi: Remove trailing spaces. Add regex documentation. * doc/regex.texi: New file. Taken from regex-0.12/doc/regex.texi in http://ftp.gnu.org/old-gnu/regex/regex-0.12.tar.gz. Written by Kathy A. Hargreaves and Karl Berry. 2010-08-01 Bruno Haible link: Update documentation. * doc/posix-functions/link.texi: Update regarding Solaris. 2010-07-31 Bruno Haible Update modules list. * MODULES.html.sh (Sorting functions ): Add array-mergesort. (String handling ): Add memcmp2, memxfrm. (Container data structures): Add xlist, xsublist, xoset. (Core language properties): Add alignof, unused-parameter. (Process control, Numeric conversion functions ): Renamed from Numeric conversion functions . Add _Exit, atoll. (Unibyte characters ): New section. (String handling ): New section. (Mathematics ): Add acos, acosl, asin, asinl, atan, atan2, atanl, cbrt, copysign, cos, cosh, cosl, erf, erfc, exp, expl, fabs, fmod, hypot, j0, j1, jn, ldexp, lgamma, log, log10, log1p, logb, logl, modf, nextafter, pow, remainder, rint, sin, sinh, sinl, sqrt, sqrtl, tan, tanh, tanl, y0, y1, yn. (Support for systems lacking POSIX:2008): Add alphasort, dirent, dprintf, dprintf-posix, duplocale, fcntl, getlogin, getopt-posix, grantpt, iconv-h, ioctl, isblank, langinfo, nl_langinfo, pread, ptsname, pwrite, scandir, servent, sys_utsname, ttyname_r, uname, unlockpt, vdprintf, vdprintf-posix. (Enhancements for POSIX:2008 functions): Add getopt-gnu. Remove getopt. (File system functions): Add concat-filename, sys_file, sys_ioctl, xconcat-filename. (File descriptor based Input/Output): Add dup3, fd-safer-flag, getdtablesize, pipe2, pipe2-safer. (Security): New section. (Networking functions): Add accept4. (Signal handling): Add sigpipe. (Internationalization functions): Add xstriconveh, mbmemcasecmp, mbmemcasecoll. (Unicode string functions): Add libunistring-optional, unistr/u*-cmp2, unistr/u*-strcoll, uniwbrk/*, uninorm/*, unicase/*. (Executing programs): Add findprog-lgpl, pipe-filter-gi, pipe-filter-ii. (Misc): Add argp-version-etc, login_tty, parse-duration. 2010-07-31 Bruno Haible Improve doc in MODULES.html. * modules/linkat (Description): Add the word "function". * modules/mkfifo (Description): Likewise. * modules/mknod (Description): Likewise. * modules/remove (Description): Likewise. * modules/renameat (Description): Likewise. * modules/stat (Description): Likewise. * modules/symlink (Description): Likewise. * modules/unlink (Description): Likewise. 2010-07-31 Bruno Haible ansi-c++-opt: Provide option --enable-c++/--disable-c++ when possible. * m4/ansi-c++.m4 (gl_CXX_CHOICE): In Autoconf 2.66 or newer, provide option --enable/disable-c++ instead of --enable/disable-cxx. * NEWS: Mention the change. 2010-07-31 Bruno Haible readlink, areadlink: Relax test a bit. * tests/test-readlink.h (test_readlink): Accept EINVAL as an alternative to ENOTDIR. * tests/test-areadlink.h (test_areadlink): Likewise. Reported by Rainer Tammer. 2010-07-31 Bruno Haible unistr/u8-strstr, unistr/u16-strstr: Optimize the one-character case. * lib/unistr/u-strstr.h (FUNC): When the needle contains only one character, perform the search using U_STRCHR. * lib/unistr/u8-strstr.c (U_STRMBTOUC): New macro. * lib/unistr/u16-strstr.c (U_STRMBTOUC): Likewise. * modules/unistr/u8-strstr (Depends-on): Add unistr/u8-strmbtouc. * modules/unistr/u16-strstr (Depends-on): Add unistr/u16-strmbtouc. Suggested by Paolo Bonzini. 2010-07-31 Bruno Haible unistr/u*-strstr: Fix dependencies. * modules/unistr/u8-strstr (Depends-on): Add unistr/u8-strchr. * modules/unistr/u16-strstr (Depends-on): Add unistr/u16-strchr. * modules/unistr/u32-strstr (Depends-on): Add unistr/u32-strchr. 2010-07-31 Bruno Haible unistr/u8-chr, unistr/u8-strchr: Optimize and add comments. * lib/unistr/u8-chr.c (u8_chr): Add comments. Remove a useless test at the beginning of the loop. * lib/unistr/u8-strchr.c (u8_strchr): Add comments. Don't fall through cases in 'switch' statement. unistr/u8-strchr: Fix several bugs. * lib/unistr/u8-strchr.c (u8_strchr): Don't search beyond the end of the string. When not found, return NULL, not a pointer near the end. More tests for unistr/u8-strchr. * tests/unistr/test-strchr.h (test_strchr): Renamed from main. Check that the function does not read past the first occurrence of the byte being searched. * tests/unistr/test-u8-strchr.c (main): New function, with more tests. * tests/unistr/test-u16-strchr.c (main): New function. * tests/unistr/test-u32-strchr.c (main): New function. 2010-07-31 Bruno Haible posix-modules: Ignore backup files of documentation files. * posix-modules: grep only through files named *.texi. 2010-07-31 Bruno Haible symlinkat: Fix documentation. * doc/posix-functions/readlinkat.texi: Fix module name. 2010-07-31 Bruno Haible fchownat: Replace also when chown has the trailing slash bug. * m4/openat.m4 (gl_FUNC_FCHOWNAT): Move the test of REPLACE_CHOWN outside the gl_FUNC_FCHOWNAT_DEREF_BUG invocation. Fixes regression introduced on 2010-04-10. Reported by Rainer Tammer. 2010-07-31 Bruno Haible linkat: Work around AIX 7.1 bug. * m4/linkat.m4 (gl_FUNC_LINKAT): Require AC_CANONICAL_HOST. Test whether linkat handles trailing slash correctly. If not, replace linkat and define LINKAT_TRAILING_SLASH_BUG. * lib/linkat.c (rpl_linkat): If LINKAT_TRAILING_SLASH_BUG is defined, check whether (fd1,file1) points to a directory if file1 or file2 ends in a slash. Code taken from lib/link.c. * doc/posix-functions/linkat.texi: Mention trailing slash bug. Reported by Rainer Tammer. 2010-07-31 Bruno Haible Correctly determine whether pow is available in libc on AIX 7 with xlc. * m4/mathfunc.m4 (gl_MATHFUNC): Actually use the 'funcptr' variable. This disables an xlc optimization that was causing wrong test results. Reported by Rainer Tammer. 2010-07-31 Bruno Haible iconv: Work around AIX 6.1..7.1 bug. * doc/posix-functions/iconv.texi: Mention AIX 6.1, 7.1 bug. * m4/iconv.m4 (AM_ICONV_LINK): Test against AIX 6.1, 7.1 bug. When cross-compiling, guess no on all versions of AIX. Reported by Rainer Tammer. 2010-07-31 Bruno Haible readlink: Relax test a bit. * tests/test-readlink.h (test_readlink): Allow different errno value when readlink is called with a file name that ends in / and refers to a file. Suggested by Eric Blake. Reported by Rainer Tammer. 2010-07-31 Bruno Haible copysign: Does not require -lm on glibc systems. * modules/copysign (configure.ac): Use gl_MATHFUNC, not gl_COMMON_DOUBLE_MATHFUNC. * m4/mathfunc.m4 (gl_COMMON_DOUBLE_MATHFUNC): Update comments. 2010-07-31 Bruno Haible duplocale: Work around AIX 7.1 bug. * m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Let the test fail also when duplocale(LC_GLOBAL_LOCALE) returns (locale_t)0. * lib/duplocale.c (rpl_duplocale): Update comment. * doc/posix-functions/duplocale.texi: Mention the AIX 7.1 bug. Reported by Rainer Tammer. 2010-07-30 Bruno Haible dirfd: Avoid link error on AIX 7.1. * lib/dirent.in.h (dirfd): Use modern idiom with REPLACE_DIRFD. * m4/dirfd.m4 (gl_FUNC_DIRFD): If the function is declared but does not exist, set REPLACE_DIRFD. * m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): Initialize REPLACE_DIRFD. * modules/dirent (Makefile.am): Substitute REPLACE_DIRFD. * doc/posix-functions/dirfd.texi: Update. Reported by Rainer Tammer. 2010-07-30 Eric Blake strtod: next round of AIX fixes * lib/strtod.c (strtod): Work around AIX bug of parsing p with no exponent. * tests/test-strtod.c (main): Enhance tests. * doc/posix-functions/strtod.texi (strtod): Document next bug. Reported by Rainer Tammer. futimens: fix configure check * m4/futimens.m4 (gl_FUNC_FUTIMENS): Use correct logic. Reported by Bruno Haible. 2010-07-30 Bruno Haible getline: Update regarding AIX. * doc/posix-functions/getline.texi: Mention bug on AIX 7.1. Reported by Rainer Tammer. 2010-07-30 Bruno Haible wcwidth: Drop replacement on AIX 7. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): When cross-compiling, guess yes on AIX 7. Reported by Rainer Tammer. 2010-07-30 Bruno Haible strtok_r: Avoid triggering bug in AIX 7.1 xlc compiler. * m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Don't cast an invalid address to a 'char *'. Reported by Rainer Tammer. 2010-07-30 Bruno Haible unlink: Update regarding AIX. * doc/posix-functions/unlink.texi: Mention bug on AIX 7.1. * m4/unlink.m4 (gl_FUNC_UNLINK): Update comment. Reported by Rainer Tammer. 2010-07-30 Bruno Haible symlink: Update regarding AIX. * doc/posix-functions/symlink.texi: Mention bug on AIX 7.1. * m4/symlink.m4 (gl_FUNC_SYMLINK): Update comment. Reported by Rainer Tammer. 2010-07-30 Bruno Haible strndup: Update regarding AIX. * m4/strndup.m4 (gl_FUNC_STRNDUP): When cross-compiling, guess yes on AIX 7. Reported by Rainer Tammer. 2010-07-30 Bruno Haible stat: Update regarding AIX. * doc/posix-functions/stat.texi: Mention bug on AIX 7.1. * m4/stat.m4 (gl_FUNC_STAT): Update comment. Reported by Rainer Tammer. 2010-07-30 Bruno Haible truncl: Fix autoconf test. * m4/truncl.m4 (gl_FUNC_TRUNCL): Add TRUNCL_LIBM to LIBS while testing whether truncl works. Reported by Rainer Tammer. 2010-07-30 Bruno Haible round: Update regarding AIX. * m4/round.m4 (gl_FUNC_ROUND): When cross-compiling, guess no on AIX 7. * doc/posix-functions/round.texi: Mention bug on AIX 7.1. Reported by Rainer Tammer. 2010-07-30 Bruno Haible rename: Update regarding AIX. * doc/posix-functions/rename.texi: Mention bug on AIX 7.1. * m4/rename.m4 (gl_FUNC_RENAME): Update comment. Reported by Rainer Tammer. 2010-07-30 Bruno Haible printf.m4: Update regarding AIX. * m4/printf.m4: Update comments regarding AIX. Reported by Rainer Tammer. 2010-07-30 Bruno Haible iconv: Update regarding AIX. * m4/iconv.m4 (AM_ICONV_LINK): When cross-compiling, guess yes on AIX 7. Reported by Rainer Tammer. 2010-07-30 Bruno Haible getopt: Update regarding AIX. * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): When cross-compiling, guess no on AIX. * doc/posix-functions/getopt.texi: Mention that AIX has the optind bug. Reported by Rainer Tammer. 2010-07-30 Bruno Haible ldexpl; Update regarding AIX. * m4/ldexpl.m4 (gl_FUNC_LDEXPL_WORKS): When cross-compiling, guess yes on AIX 7. Reported by Rainer Tammer. 2010-07-30 Bruno Haible frexpl: Update regarding AIX. * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): When cross-compiling, guess yes on AIX 7. Reported by Rainer Tammer. 2010-07-30 Bruno Haible open, fopen: Update regarding AIX. * m4/open.m4 (gl_FUNC_OPEN): Adjust cross-compiling guess for AIX. * m4/fopen.m4 (gl_FUNC_FOPEN): Likewise. * doc/posix-functions/open.texi: Mention the trailing-slash bug on AIX. * doc/posix-functions/fopen.texi: Likewise. Reported by Rainer Tammer. 2010-07-30 Bruno Haible chown: Update doc regarding AIX. * doc/posix-functions/chown.texi: Mention bug on AIX 7.1. * m4/chown.m4 (gl_FUNC_CHOWN): Update comment. Reported by Rainer Tammer. 2010-07-30 Eric Blake strtod: fix bug in replacement function on AIX * lib/strtod.c (strtod): Special case broken "0x" parse in underlying strtod. * tests/test-strtod.c (main): Document AIX 7.1 bugs. * doc/posix-functions/strtod.texi (strtod): Likewise. Reported by Rainer Tammer. 2010-07-30 Bruno Haible mbrlen: Fix cross-compilation guess for AIX. * m4/mbrlen.m4 (gl_MBRLEN_INCOMPLETE_STATE): Fix cross-compilation guess. Leftover from 2008-12-22. 2010-07-30 Bruno Haible mbrtowc: Fix cross-compilation guess for AIX. * m4/mbrtowc.m4 (gl_MBRTOWC_INCOMPLETE_STATE): Fix cross-compilation guess. Leftover from 2008-12-21. 2010-07-29 Peter O'Gorman (tiny change) init.sh: work around trap limitation of some shells * tests/init.sh (setup_): Move exit trap outside of shell function. 2010-07-29 Eric Blake strtod: aid debugging * m4/strtod.m4(gl_FUNC_STRTOD): Use distinct exit status to aid understanding why strtod is rejected. 2010-07-28 Bruno Haible unistr/u*-chr, unistr/u*-strchr: Fix link errors and warnings. * lib/unistr/u8-chr.c: Include . * tests/unistr/test-u8-chr.c: Likewise. * tests/unistr/test-u16-chr.c: Likewise. * tests/unistr/test-u32-chr.c: Likewise. * tests/unistr/test-u8-strchr.c: Likewise. * tests/unistr/test-u16-strchr.c: Likewise. * tests/unistr/test-u32-strchr.c: Likewise. * modules/unistr/u8-chr-tests (Depends-on): Add unistr/u32-set. * modules/unistr/u16-chr-tests (Depends-on): Likewise. * modules/unistr/u8-strchr-tests (Depends-on): Likewise. * modules/unistr/u16-strchr-tests (Depends-on): Likewise. 2010-07-28 Bruno Haible Use spaces for indentation, not tabs. * lib/**/*.[hcy] except lib/reg*.[hc]: Untabify. 2010-07-27 Bruno Haible mbspcasecmp: Fix function specification. * lib/string.in.h (mbspcasecmp): Fix specification comment. * lib/mbspcasecmp.c (mbspcasecmp): Likewise. Reported by Eric Blake . 2010-07-26 Paul R. Eggert timespec: use cast and not conditional, as truncation isn't possible * lib/timespec.h (timespec_cmp): Use cast to pacify gcc -Wconversion instead of a conditional. Comment about the situation in more detail. This undoes most of the 2009-10-29 patch. 2010-07-23 Paolo Bonzini unistr/u8-chr, unistr/u8-strchr: use Boyer-Moore like algorithm. * lib/unistr/u8-chr.c: Add Boyer-Moore like operation. * lib/unistr/u8-strchr.c: Likewise. * modules/unistr/u8-chr: Depend on memchr. unistr/u*-strchr: add tests * modules/unistr/u8-strchr-tests: New file. * modules/unistr/u16-strchr-tests: New file. * modules/unistr/u32-strchr-tests: New file. * tests/unistr/test-strchr.h: New file. * tests/unistr/test-u8-strchr.c: New file. * tests/unistr/test-u16-strchr.c: New file. * tests/unistr/test-u32-strchr.c: New file. unistr/u*-chr: test multibyte sequences more * tests/unistr/test-chr.h: Do complete testing of the characters in the test vector. * tests/unistr/test-u8-chr.c (U_UCTOMB): Define. * tests/unistr/test-u16-chr.c (U_UCTOMB): Likewise. * tests/unistr/test-u32-chr.c (U_UCTOMB): Likewise. unistr/u*-chr: test multibyte sequences * tests/unistr/test-chr.h: Put characters above 0-127 in the test input. unistr/u*-chr: prepare for multibyte tests * modules/unistr/u8-chr-tests: Depend on u32-to-u8. * modules/unistr/u16-chr-tests: Depend on u32-to-u16. * tests/unistr/test-chr.h: Build initial version as UCS-4 then convert. * tests/unistr/test-u8-chr.c (U32_TO_U): Define. * tests/unistr/test-u16-chr.c (U32_TO_U): Likewise. * tests/unistr/test-u32-chr.c (U32_TO_U): Likewise. 2010-07-18 Bruno Haible unistr/u8-strchr: Optimize non-ASCII argument case. * lib/unistr/u8-strchr.c (u8_strchr): Compare the last byte first, because the first byte often matches anyway. Reported by Pádraig Brady . 2010-07-15 Karl Berry * config/srclist.txt (fdl.texi): only one copy, from gnustandards. 2010-07-14 Paul R. Eggert getcwd: on Solaris, work better if ancestors are inaccessible * lib/getcwd.c (__getcwd): If getcwd returns EINVAL for zero buffer and size, try again with a large buffer. This works better on Solaris, since its getcwd succeeds even if the path to the root is inaccessible, and this is helpful in common cases such as .zfs hidden directories. Problem reported by J Chapman Flack in http://lists.gnu.org/r/bug-tar/2010-06/msg00000.html Use system getcwd if it's declared, not merely if it's partly working; use the partly-working test only to avoid needless effort if the system getcwd fails. * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Omit comment that was already obsolete and is now even more obsolete. * modules/getcwd (Depends-on): Depend on strdup, since __getcwd now might call strdup. 2010-07-13 Paul R. Eggert pthread: Add enough so that coreutils/src/sort.c compiles. * lib/pthread.in.h: Add self to author comment. Conditionalize on _GL_PTHREAD_H, not PTHREAD_H_, for consistency with the rest of gnulib. Include and , as per POSIX. Include , in case it defines pthread_t. (pthread_t, pthread_attr_t, pthread_barrier_t, pthread_barrierattr_t): (pthread_cond_t, pthread_condattr_t, pthread_key_t, pthread_mutex_t): (pthread_mutexattr_t, pthread_once_t, pthread_rwlock_t): (pthread_rwlockattr_t, pthread_spinlock_t): New typedefs, if HAVE_PTHREAD_T is not defined. (PTHREAD_COND_INITIALIZER, PTHREAD_MUTEX_INITIALIZER): (PTHREAD_ONCE_INIT, PTHREAD_RWLOCK_INITIALIZER): (PTHREAD_BARRIER_SERIAL_THREAD, PTHREAD_CANCEL_DEFERRED): (PTHREAD_CANCEL_ASYNCHRONOUS, PTHREAD_CANCEL_ENABLE): (PTHREAD_CANCEL_DISABLE, PTHREAD_CANCELED, PTHREAD_CREATE_JOINABLE): (PTHREAD_CREATE_DETACHED, PTHREAD_INHERIT_SCHED): (PTHREAD_EXPLICIT_SCHED, PTHREAD_MUTEX_DEFAULT, PTHREAD_MUTEX_NORMAL): (PTHREAD_MUTEX_ERRORCHECK, PTHREAD_MUTEX_RECURSIVE): (PTHREAD_MUTEX_STALLED, PTHREAD_MUTEX_ROBUST, PTHREAD_PRIO_NONE): (PTHREAD_PRIO_INHERIT, PTHREAD_PRIO_PROTECT, PTHREAD_PROCESS_PRIVATE): (PTHREAD_PROCESS_SHARED, PTHREAD_SCOPE_SYSTEM, PTHREAD_SCOPE_PROCESS): New macros. (pthread_cond_destroy, pthread_cond_init, pthread_cond_signal): (pthread_cond_wait, pthread_exit, pthread_mutex_destroy): (pthread_mutex_init, pthread_mutex_lock, pthread_mutex_unlock): (pthread_spin_init, pthread_spin_lock, pthread_spin_trylock); (pthread_spin_unlock): New dummy functions. (pthread_create): Return EAGAIN; don't set errno. * m4/pthread.m4 (gl_PTHREAD_CHECK): Check for pthread_t, and require AC_C_INLINE. * modules/pthread (Depends-on): Add sched, time. (pthread.h): Use AM_V_GEN. 2010-07-13 Bruno Haible striconveh: Don't malloc memory if the result buffer is sufficient. * lib/striconveh.c (mem_cd_iconveh_internal): Use the provided result buffer if its size is sufficient. Reported by Ludovic Courtès . 2010-07-13 Bruno Haible strtod: Add safety check. * lib/strtod.c (ldexp): Abort if this dummy replacement gets called. 2010-07-12 Bruno Haible Unify tests that set gl_cv_func_ldexpl_no_libm. * m4/ldexpl.m4 (gl_CHECK_LDEXPL_NO_LIBM): New macro, extracted from gl_FUNC_LDEXPL. (gl_FUNC_LDEXPL): Invoke it. * m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Likewise. 2010-07-12 Bruno Haible Unify tests that set gl_cv_func_ldexp_no_libm. * m4/ldexp.m4: New file, based on m4/mathfunc.m4. * m4/strtod.m4 (gl_PREREQ_STRTOD): Require gl_CHECK_LDEXP_NO_LIBM. * modules/ldexp (Files): Remove m4/mathfunc.m4. Add m4/ldexp.m4. (configure.ac): Simply invoke gl_FUNC_LDEXP. * modules/strtod (Files): Add m4/ldexp.m4. 2010-07-12 Bruno Haible Unify tests that set gl_cv_func_frexpl_no_libm. * m4/frexpl.m4 (gl_CHECK_FREXPL_NO_LIBM): New macro, extracted from gl_FUNC_FREXPL_NO_LIBM. (gl_FUNC_FREXPL, gl_FUNC_FREXPL_NO_LIBM): Invoke it. * m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Likewise. 2010-07-12 Bruno Haible Unify tests that set gl_cv_func_frexp_no_libm. * m4/frexp.m4 (gl_CHECK_FREXP_NO_LIBM): New macro, extracted from gl_FUNC_FREXP_NO_LIBM. (gl_FUNC_FREXP, gl_FUNC_FREXP_NO_LIBM): Require it. * m4/printf-frexp.m4 (gl_FUNC_PRINTF_FREXP): Likewise. 2010-07-12 Paul R. Eggert memcoll: clarify sizes versus lengths, document better, and tweak perf * lib/memcoll.c (strcoll_loop, memcoll0): Improve quality of descriptive comments. Name variables consistently as to whether they are lengths (which do not include terminating null) versus sizes (which do). * lib/xmemcoll.c (xmemcoll0): Likewise. * lib/memcoll.c (strcoll_loop): Tweak the way that the diff is returned when s1size == 0; this is easier to compile and saves about 17% of memcoll's code space on x86-64 with GCC 4.1.2. 2010-07-12 Bruno Haible Tests for module '_Exit'. * modules/_Exit-tests: New file. * tests/test-_Exit.sh: New file. * tests/test-_Exit.c: New file. New module '_Exit'. * lib/stdlib.in.h (__attribute__): New macro. (_Exit): New declaration. * lib/_Exit.c: New file. * m4/_Exit.m4: New file. * m4/stdlib_h.m4 (gl_STDLIB_H): Check whether _Exit is declared. (gl_STDLIB_H_DEFAULTS): Initialize GNULIB__EXIT and HAVE__EXIT. * modules/stdlib (Makefile.am): Substitute GNULIB__EXIT and HAVE__EXIT. * modules/_Exit: New file. * tests/test-stdlib-c++.cc (_Exit): Check signature. * doc/posix-functions/_Exit_C99.texi: Mention the new module. 2010-07-12 Paul R. Eggert strtod: make it more-accurate typically, and don't require libm * lib/strtod.c (_GL_ARG_NONNULL): Remove; no longer needed. Include limits.h. Don't include string.h. (HAVE_LDEXP_IN_LIBC, HAVE_RAW_DECL_STRTOD): Define to 0 if not defined. (locale_isspace): New function, so that no casts are needed to check whether *s is a space. (ldexp): Provide an unused dummy if not available. (scale_radix_exp, parse_number, underlying_strtod): New functions. (strtod): Use them. This implementation prefers to use the underlying strtod if available, falling back on our own code only to fix known bugs. This is more likely to produce an accurate result. Also, it avoids the use of libm functions. * m4/strtod.m4 (gl_FUNC_STRTOD): Don't invoke _AC_LIBOBJ_STRTOD; no longer needed. Invoke AC_LIBOBJ([strtod]); don't know why this was absent, but it caused a test failure with coreutils. (gl_PREREQ_STRTOD): Check wither ldexp can be used without linking with libm. * modules/strtod (Makefile.am, Link): libm is no longer needed. * modules/strtod-tests (Makefile.am): Likewise. 2010-07-11 Pádraig Brady Bruno Haible unistr/u8-strchr: Optimize ASCII argument case. * lib/unistr/u8-strchr.c (u8_strchr): For ASCII arguments, use strchr. 2010-07-08 Paul Eggert (x)memcoll: minor tweaks * lib/memcoll.c (strcoll_loop): Prefer the style where 'const' is after the type that it qualifies. (memcoll0): Likewise. * lib/memcoll.h (memcoll0): Likewise. * lib/xmemcoll.c (collate_error, xmemcoll0): Likewise. * lib/xmemcoll.h (xmemcoll0): Likewise. * lib/memcoll.c (memcoll0): Correct the comment. This function differs from memcoll in that the NUL byte is part of the argument. Omit the abort-checks, as performance is a real issue here. Plus, the checks were wrong anyway (an off-by-one error). Omit local variable 'diff', as it's a bit clearer that way. * m4/memcoll.m4 (gl_MEMCOLL): Omit AC_FUNC_STRCOLL, as it's no longer needed. 2010-07-08 Chen Guo (x)memcoll: speedup when input is known to be NUL delimited * lib/memcoll.c: Include stdlib. (memcoll0): New function. (strcoll_loop): New function, refactored for use in both memcoll and memcoll0. * lib/memcoll.h (memcoll0): Add prototype. * lib/xmemcoll.c (xmemcoll0): New function. (collate_error): New function, refactored for use in both xmemcoll and xmemcoll0. * lib/xmemcoll.h (xmemcoll0): Add prototype. * m4/memcoll.m4: add inline invocation. 2010-07-06 Pádraig Brady * build-aux/bootstrap: Remove any local translations from the translation project synchronization directory, so that local only translations are not distributed. 2010-07-04 Bruno Haible fsusage: Clarify which code applies to which platforms. * m4/fsusage.m4 (gl_FSUSAGE): Clarify which test succeeds on which platform. * lib/fsusage.c (get_fs_usage): Likewise. 2010-07-04 Bruno Haible havelib: Fix bug when AC_LIB_FROMPACKAGE is used more than twice. * m4/lib-link.m4 (AC_LIB_FROMPACKAGE): Use m4_defn. Reported by Martin Lambers . 2010-07-04 Jim Meyering hash: once again explicitly disallow insertion of NULL * lib/hash.c (hash_insert0): Reinstate just-removed test: inserting a NULL pointer cannot work with these functions. Add a comment with details. This reverts part of the 2010-07-01 commit, 5bef1a35 "hash: extend module to deal with non-pointer keys". 2010-07-01 Bruno Haible stdbool: Update doc. * doc/posix-headers/stdbool.texi: Mention OpenBSD bug. Info from Christian Weisgerber . 2010-07-01 Jim Meyering hash: extend module to deal with non-pointer keys * lib/hash.c (hash_insert0): New interface, much like hash_insert but that allows insertion of non-pointer entries. Do not disallow an ENTRY value of NULL. (hash_insert): This is now just a thin wrapper. Call hash_insert0. * lib/hash.h (hash_insert0): Declare. 2010-07-01 Christian Weisgerber (tiny change) gettext: Use AC_GNU_SOURCE as a fallback for AC_USE_SYSTEM_EXTENSIONS. * m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): When AC_USE_SYSTEM_EXTENSIONS is not present (i.e. with autoconf 2.59 and when using gettextize, not gnulib), require AC_GNU_SOURCE instead. 2010-07-01 Ian Beckwith idpriv-drop: Fix tests. * tests/test-idpriv-drop.su.sh: Refer to the test-idpriv-drop program, not to the test-idpriv-droptemp program. 2010-06-29 Bruno Haible string: Fix syntax error with g++ 2.96. * lib/string.in.h (__pure__): Remove definition. (_GL_ATTRIBUTE_PURE): New macro. (memchr, memmem, memrchr, rawmemchr, strchrnul, strnlen, strpbrk, strstr, strcasestr): Use it instead of __attribute__ ((__pure__)). Reported by Christian Weisgerber . 2010-06-28 Ian Beckwith unitypes: Fix bug introduced on 2010-05-18. * modules/unitypes (Files): Really add m4/libunistring-base.m4. 2010-06-22 Eric Blake memmem: slight optimization * lib/str-two-way.h (critical_factorization): Update comments. Reduce work during factorization phase. Reported by Carlos Bueno . 2010-06-21 Bruno Haible Fix HAVE_CALLOC_POSIX misnomer. * lib/stdlib.in.h (calloc): Use REPLACE_CALLOC instead of !HAVE_CALLOC_POSIX. * m4/calloc.m4 (gl_REPLACE_CALLOC): Set REPLACE_CALLOC instead of HAVE_CALLOC_POSIX. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_CALLOC instead of HAVE_CALLOC_POSIX. * modules/stdlib (Makefile.am): Substitute REPLACE_CALLOC instead of HAVE_CALLOC_POSIX. Use modern idiom for calloc() replacement. * modules/calloc (configure.ac): Invoke gl_FUNC_CALLOC_GNU instead of AC_FUNC_CALLOC. * m4/calloc.m4 (gl_FUNC_CALLOC_GNU): Renamed from AC_FUNC_CALLOC. Require gl_STDLIB_H_DEFAULTS. Invoke gl_REPLACE_CALLOC. (gl_FUNC_CALLOC_POSIX): Rely on gl_STDLIB_H_DEFAULTS to initialize HAVE_CALLOC_POSIX. Invoke gl_REPLACE_CALLOC. (gl_REPLACE_CALLOC): New macro. 2010-06-21 Bruno Haible Fix HAVE_REALLOC_POSIX misnomer. * lib/stdlib.in.h (realloc): Use REPLACE_REALLOC instead of !HAVE_REALLOC_POSIX. * m4/realloc.m4 (gl_REPLACE_REALLOC): Set REPLACE_REALLOC instead of HAVE_REALLOC_POSIX. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_REALLOC instead of HAVE_REALLOC_POSIX. * modules/stdlib (Makefile.am): Substitute REPLACE_REALLOC instead of HAVE_REALLOC_POSIX. Use modern idiom for realloc() replacement. * modules/realloc (configure.ac): Invoke gl_FUNC_REALLOC_GNU instead of AC_FUNC_REALLOC. * m4/realloc.m4 (gl_FUNC_REALLOC_GNU): New macro, mostly copied from Autoconf's AC_FUNC_REALLOC. (gl_FUNC_REALLOC_POSIX): Rely on gl_STDLIB_H_DEFAULTS to initialize HAVE_REALLOC_POSIX. Invoke gl_REPLACE_REALLOC. (gl_REPLACE_REALLOC): New macro. Reported by Richard Lloyd . 2010-06-21 Bruno Haible Fix HAVE_MALLOC_POSIX misnomer. * lib/stdlib.in.h (malloc): Use REPLACE_MALLOC instead of !HAVE_MALLOC_POSIX. * m4/malloc.m4 (gl_REPLACE_MALLOC): Set REPLACE_MALLOC instead of HAVE_MALLOC_POSIX. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_MALLOC instead of HAVE_MALLOC_POSIX. * modules/stdlib (Makefile.am): Substitute REPLACE_MALLOC instead of HAVE_MALLOC_POSIX. Use modern idiom for malloc() replacement. * modules/malloc (configure.ac): Invoke gl_FUNC_MALLOC_GNU instead of AC_FUNC_MALLOC. * m4/malloc.m4 (gl_FUNC_MALLOC_GNU): New macro, mostly copied from Autoconf's AC_FUNC_MALLOC. (gl_FUNC_MALLOC_POSIX): Rely on gl_STDLIB_H_DEFAULTS to initialize HAVE_MALLOC_POSIX. Invoke gl_REPLACE_MALLOC. (gl_REPLACE_MALLOC): New macro. Reported by Richard Lloyd . 2010-06-20 Richard Lloyd stdio.in.h: fix compilation failure when using HP-UX 11's C compiler * lib/stdio.in.h: Remove excess _GL_CXXALIAS_RPL macro argument. This macro takes 3 arguments, not 4. 2010-06-15 Giuseppe Scrivano ipv6: fix detection under mingw * m4/sockpfaf.m4 (gl_SOCKET_FAMILIES): Include for struct in6_addr. 2010-06-14 Ben Pfaff * m4/strtod.m4 (gl_FUNC_STRTOD): Factor out common code. Assume that strtod() works when cross-compiling to a glibc version known to work. 2010-06-15 Bruno Haible * m4/strtod.m4 (gl_FUNC_STRTOD): Stop using AC_FUNC_STRTOD. 2010-06-15 René Berber (tiny change) select: Correct timeout. * lib/select.c (rpl_select): Compute wait_timeout correctly. 2010-06-14 Thien-Thi Nguyen (tiny change) git-version-gen: init shell var to avoid env var influence * build-aux/git-version-gen (v): Init shell var to empty. 2010-06-14 Paul Eggert priv-set: Don't assume that priv.h exists merely because getppriv does. See Jan Andersen's bug report about AIX 5L in http://lists.gnu.org/r/bug-tar/2010-06/msg00019.html * m4/priv-set.m4 (gl_PRIV_SET): Check for priv.h. * lib/priv-set.c: Do nothing unless HAVE_PRIV_H. * lib/priv-set.h: Likewise. * tests/test-priv-set.c: Likewise. 2010-06-13 Bruno Haible relocatable: Make it easier to test whether to install wrappers. * m4/relocatable.m4 (gl_RELOCATABLE_BODY): New automake conditional RELOCATABLE_VIA_WRAPPER. 2010-06-13 Bruno Haible gnulib-tool: Display specified modules and dependencies differently. * gnulib-tool (func_show_module_list): New function. (func_import, func_create_testdir): Invoke it. Reported by Thien-Thi Nguyen . 2010-06-13 Bruno Haible gnulib-tool: Align code of func_import and func_create_testdir. * gnulib-tool (func_create_testdir): Rename variable saved_modules to specified_modules. 2010-06-12 Jim Meyering test-inttostr: avoid spurious failure on Solaris 9 * tests/test-inttostr.c (main): Skip the test when snprintf fails to accept "%ju". Reported by Bruno Haible. 2010-06-11 Jim Meyering test-sys_socket: mark variables as used more readably * tests/test-sys_socket.c (main): Mark otherwise unused variables as "used" explicitly via (void) statement casts. This is more readable than using them in an artificial return expression. Suggestion from Bruno Haible. 2010-06-11 Bruno Haible Avoid some more warnings from "gcc -Wwrite-strings". * tests/test-argp.c (test_optional): Change 5th and 6th argument type to 'const char *'. * tests/test-c-strstr.c (main): Add 'const' to variable declaration. * tests/test-c-strcasestr.c (main): Likewise. * tests/test-mbscasestr1.c (main): Likewise. * tests/test-mbscasestr2.c (main): Likewise. * tests/test-memmem.c (main): Likewise. * tests/test-strstr.c (main): Likewise. * tests/test-strcasestr.c (main): Likewise. 2010-06-11 Ralf Wildenhues init.sh: change framework_failure_ to fail with status 99, not 1 * tests/init.sh (framework_failure_): Exit 99, not 1. This informs automake's parallel-tests rule that this is an unexpected failure, even if the test is listed in XFAIL_TESTS. 2010-06-11 Jim Meyering test-inttostr: avoid warnings about 4-6KB literal strings * tests/test-inttostr.c: Don't use . Instead, ... Include "macros.h", for its definition of ASSERT. (CK): s/assert/ASSERT/ * modules/inttostr-tests (Files): Add macros.h. init.sh: don't use $ME_ or skip_ before they are defined * tests/init.sh: Hoist definitions of $ME_ and skip_ to precede their first uses. Also hoist their companions: warn_, fail_, framework_failure_, $stderr_fileno. Prompted by a patch from Stefano Lattarini. test-sys_socket: avoid set-but-not-used warnings from gcc * tests/test-sys_socket.c (main): Use "i" and "x", in order to avoid warning about set-but-not-used variables. test-xvasprintf: avoid 'const' discard warnings * tests/test-xvasprintf.c (test_xvasprintf, test_xasprintf): Use "const" when assigning from literal strings. (test_xasprintf): Add "void" in function argument list to placate -Wstrict-prototypes and to be consistent with test_xvasprintf above. tests: avoid compilation warnings in argmatch and exclude tests... in packages that define ARGMATCH_DIE_DECL, like coreutils. * tests/test-exclude.c [ARGMATCH_DIE_DECL]: Also declare the function. Since it always exits, declare with the "noreturn" attribute. * tests/test-argmatch.c: Likewise. tests: avoid 'const' discard warnings in mbsstr tests * tests/test-mbsstr1.c (main): Add "const" to avoid trivial warning. * tests/test-mbsstr2.c (main): Likewise. test-verify: avoid warning from gcc's -Wmissing-declarations * tests/test-verify.c (function): Declare to be static. test-inttostr.c: include for use of strcmp * tests/test-inttostr.c: Include for strcmp declaration. test-linkat: avoid failed assertion on "other" architectures * tests/test-linkat.c: Include , for declarations of stat, lstat, mkdir. Patch by John Rigby, to fix FTBFS on armel, powerpc, sparc: https://bugs.launchpad.net/bugs/591968 2010-06-11 Jim Meyering printf.m4: avoid autoconf's "Expanded Before Required" warning * m4/printf.m4 (gl_SNPRINTF_RETVAL_C99): Define using AC_DEFUN_ONCE, rather than AC_DEFUN, to avoid the classic "Expanded Before Required" autoconf warning. 2010-06-10 Ben Pfaff Replacement header templates are now named with ".in", not "_". * doc/gnulib-intro.texi: Correct. 2010-06-10 Jim Meyering inttostr-tests: depend on snprintf, not snprintf-posix * modules/inttostr-tests (Depends-on): Depend on snprintf, not snprintf-posix, to avoid this aclocal failure: missing file gnulib-tests/vasnprintf.c configure.ac:45: error: expected source file, required through \ AC_LIBSOURCES, not found 2010-06-10 Jim Meyering inttostr: add a new function, inttostr, and tests The namesake function was not available. The existence of the template file, inttostr.c makes its addition nontrivial. * lib/anytostr.c: Rename from inttostr.c. (anytostr): Rename from inttostr. * lib/inttostr.c: New file. * modules/inttostr (Files): Add anytostr.c. (Makefile.am): Set lib_SOURCES instead of ... * m4/inttostr.m4: Remove uses of AC_LIBOBJ. * lib/imaxtostr.c: Update use. s/inttostr/anytostr/ * lib/offtostr.c: Likewise. * lib/uinttostr.c: Likewise. * lib/umaxtostr.c: Likewise. * modules/inttostr-tests: New file. * tests/test-inttostr.c: New file. Test these functions. 2010-06-09 Ben Pfaff Bruno Haible Add "Extending Gnulib" chapter to manual. * doc/gnulib.texi (Writing Modules): Add cross-reference to new chapter. (Extending Gnulib): New chapter. * doc/gnulib-intro.texi (Openness): Add cross-reference to new chapter. 2010-06-09 Bruno Haible Avoid relocwrapper link errors due to gnulib replacement functions. * lib/areadlink.c: Use the system's malloc, realloc functions. (areadlink): Set errno to ENOMEM explicitly. * modules/areadlink (Depends-on): Remove malloc-posix. Reported by Ben Pfaff . 2010-06-09 Bruno Haible Avoid relocwrapper link errors due to gnulib replacement functions. * lib/canonicalize-lgpl.c: Use the system's malloc function. * lib/malloca.c: Likewise. * lib/relocatable.c: Likewise. * lib/progreloc.c: Use the system's malloc, sprintf functions. * lib/relocwrapper.c: Use the system's fprintf, malloc functions. * lib/setenv.c: Use the system's malloc, realloc functions. * lib/strerror.c: Use the system's sprintf function. Reported by Ben Pfaff . 2010-06-04 Bruno Haible Prefer documented low-level autoconf macro names. * m4/lib-link.m4: Use m4_translit instead of translit. * m4/environ.m4: Likewise. * m4/mathfunc.m4: Likewise. * m4/onceonly.m4: Likewise. * m4/stdint.m4: Likewise. Suggested by Eric Blake. 2010-06-04 Martin Lambers Bruno Haible havelib: Allow library names with '+' characters. * m4/lib-link.m4 (AC_LIB_LINKFLAGS, AC_LIB_HAVE_LINKFLAGS, AC_LIB_FROMPACKAGE, AC_LIB_LINKFLAGS_BODY): Convert '+' in name to '_'. 2010-06-09 Bruno Haible Module setenv does not depend on 'malloc-posix', 'realloc-posix'. * lib/setenv.c (__add_to_environ): Set errno to ENOMEM when malloc or realloc failed. 2010-06-08 Peter Simons maint.mk: make the news-check rule more configurable * top/maint.mk (news-check-lines-spec): New variable. (news-check): Use "sed -n 1,10p" in place of "head". 2010-06-07 Jim Meyering do-release-commit-and-tag: fix typo in --help * build-aux/do-release-commit-and-tag (Usage): Fix typo in --help. regex: avoid new dead-code warning with gcc-4.6.0 * lib/regex_internal.c (re_string_reconstruct): #if-0-out a dead if-block containing a while-loop. It's been unused for at least 5 years. 2010-06-05 Bruno Haible * doc/posix-functions/strcoll.texi: Mention Solaris limitation. Reported by River Tarnell via Eric Blake. 2010-06-04 Bruno Haible Update to GNU gettext 0.18.1. * modules/gettext (configure.ac): Require gettext infrastructure from version 0.18.1. 2010-06-03 Bruno Haible Don't use AC_LIBOBJ with file names in subdirectories. * m4/libunistring-base.m4 (gl_LIBUNISTRING_MODULE): Renamed from gl_LIBUNISTRING_LIBSOURCE. Take a module name as argument, not a file name. Define an automake conditional. Don't invoke AC_LIBOBJ. * m4/libunistring.m4 (gl_LIBUNISTRING): Update AC_BEFORE invocation. * modules/uni*/* (configure.ac): Use gl_LIBUNISTRING_MODULE instead of gl_LIBUNISTRING_LIBSOURCE. (Makefile.am): Augment lib_SOURCES here, conditionally. * NEWS: Drop requirement for Automake option 'subdir-objects'. 2010-06-03 Bruno Haible Simplify gl_LIBUNISTRING_VERSION_CMP expansion. * m4/libunistring-base.m4 (gl_LIBUNISTRING_VERSION_CMP): Ensure expansion does not end with a newline. (gl_LIBUNISTRING_LIBSOURCE, gl_LIBUNISTRING_LIBHEADER): Avoid unnecessary newline. 2010-06-03 Bruno Haible Reduce dependencies. * tests/test-quotearg.h: New file, extracted from tests/test-quotearg.c. * tests/test-quotearg-simple.c: New file, extracted from tests/test-quotearg.c. * tests/test-quotearg.c: Don't include . (struct result_strings, struct result_groups, LQ, RQ, LQ_ENC, RQ_ENC, RQ_ESC, inputs, compare, use_quotearg_buffer, use_quotearg, use_quote_double_quotes, use_quotearg_colon): Moved to tests/test-quotearg.h. (results_g, flag_results, custom_quotes, custom_results): Moved to tests/test-quotearg-simple.c. (main): Moved the part that does not depend on gettext to tests/test-quotearg-simple.c. Return 77 if the test cannot be performed. * modules/quotearg-simple: New file. * modules/quotearg-simple-tests: New file. * modules/quotearg (Depends-on): Add quotearg-simple. * modules/quotearg-tests (Status): Mark as gettext-dependent-test. (Files): Add tests/test-quotearg.h. Reported by Paolo Bonzini. 2010-06-03 Bruno Haible Reduce dependencies. * modules/acl (Depends-on): Add gettext-h. Remove gettext. 2010-06-03 Bruno Haible time: Undefine more broken macros. * lib/time.in.h: Undefine broken localtime_r and gmtime_r macros only for pthread-win32. Undefine also asctime_r, ctime_r, rand_r, strtok_r. Reported by Eric Blake. 2010-06-03 Bruno Haible Choose among AC_DEFUN_ONCE, AC_DEFUN in a way that aclocal understands. * m4/iconv.m4 (gl_iconv_AC_DEFUN): New macro. (AM_ICONV): Define it through gl_iconv_AC_DEFUN. * m4/libunistring.m4 (gl_libunistring_AC_DEFUN): New macro. (gl_LIBUNISTRING): Define it through gl_libunistring_AC_DEFUN. Reported by Ludovic Courtès . 2010-06-02 Eric Blake time: work with mingw + pthreads-win32 library * m4/time_h.m4 (gl_CHECK_TYPE_STRUCT_TIMESPEC): Set new variable if timespec is defined only in pthread.h. * modules/time (Makefile.am): Substitute it. * lib/time.in.h (!TIME_H_DEFINES_STRUCT_TIMESPEC): Include , when needed. (GNULIB_TIME_R): Undefine broken localtime_r and gmtime_r macros from the library. 2010-05-31 Bruno Haible Avoid expanding two macros in the wrong order. * m4/libunistring-base.m4 (gl_LIBUNISTRING_LIB_PREPARE): Require gl_LIBUNISTRING if it is defined. * m4/libunistring.m4 (gl_LIBUNISTRING): Define using AC_DEFUN_ONCE for autoconf >= 2.64. Reported by Ludovic Courtès . 2010-05-27 Jim Meyering maint.mk: also prohibit "#undef" of always-defined symbols * top/maint.mk (def_sym_regex): Handle #undef as well as #define. Allow more than one space before the symbol name. (sc_prohibit_always-defined_macros): Use grep's -E, now that the regexp uses alternation. 2010-05-26 Eric Blake maint.mk: avoid echo -e * top/maint.mk (gzip_rsyncable, _ignore_case, _sc_say_and_exit): Convert all uses of echo -* to printf. Reported by Matthias Bolte. 2010-05-25 Bruno Haible Update to GNU gettext 0.18, part 2. * build-aux/po/Makefile.in.in: Update to GNU gettext 0.18. Reported by Martin von Gagern . 2010-05-25 Ralf Wildenhues Add missing include in test-pwrite.c. * tests/test-pwrite.c: Include string.h, for strcmp. 2010-05-24 Bruno Haible * NEWS: Mention requirement for Automake option 'subdir-objects'. 2010-05-24 Bruno Haible Don't use conversion with transliteration in u{8,16,32}_strcoll. * lib/unistr/u-strcoll.h (FUNC): Use U_STRCONV_TO_ENCODING with iconveh_error argument. * lib/unistr/u8-strcoll.c: Define U_STRCONV_TO_ENCODING instead of U_STRCONV_TO_LOCALE. * lib/unistr/u16-strcoll.c: Likewise. * lib/unistr/u32-strcoll.c: Likewise. * modules/unistr/u8-strcoll (Depends-on): Add uniconv/u8-strconv-to-enc, localcharset. Remove uniconv/u8-strconv-to-locale. (configure.ac): Bump version number. * modules/unistr/u16-strcoll (Depends-on): Add uniconv/u16-strconv-to-enc, localcharset. Remove uniconv/u16-strconv-to-locale. (configure.ac): Bump version number. * modules/unistr/u32-strcoll (Depends-on): Add uniconv/u32-strconv-to-enc, localcharset. Remove uniconv/u32-strconv-to-locale. (configure.ac): Bump version number. 2010-05-24 Bruno Haible Avoid a test failure on NetBSD 5.0. * tests/test-striconveh.c (main): On NetBSD, skip a test that triggers an iconv() bug. 2010-05-24 Bruno Haible Adjust #include directive style. * modules/regex (Includes): Recommend to write . 2010-05-24 Bruno Haible regex: Don't require alloca. * modules/regex (Depends-on): Remove alloca. Add alloca-opt. * lib/regex_internal.h (alloca): Ensure it's defined even if we call it only inside if (0). 2010-05-23 Jim Meyering test-renameat.c: include * tests/test-renameat.c: Include ; required for definition of S_IS* macros. 2010-05-23 Ben Pfaff Update maintainer documentation for 'relocatable-prog' module. * doc/relocatable-maint.texi: Update. Comments by Bruno Haible. 2010-05-23 Bruno Haible git-merge-changelog: Enable --split-merged-entry by default. * lib/git-merge-changelog.c (main): Set split_merged_entry to true. (usage): Don't mention this option any more. Reported by Ralf Wildenhues. 2010-05-23 Jim Meyering test-pwrite: do not leave behind a test file named "out" Revert commit d8fa18472a54c1cb2674c296b3d82443f234d5f7. The trivial-looking use of init.sh is really necessary. It ensures that the temporary file, "out", is created in a temporary directory, and removed upon termination. * tests/test-pwrite.sh: Re-add file. * modules/pwrite-tests: Reference it. 2010-05-23 Ralf Wildenhues Fix output redirection buglet in init.sh. * tests/init.sh: Fix redirection of stderr. 2010-05-20 Simon Josefsson * modules/valgrind-tests (configure.ac): Invoke gl_VALGRIND_TESTS. 2010-05-17 Simon Josefsson * modules/valgrind-tests: New file. * m4/valgrind-tests.m4: New file. * doc/valgrind-tests.texi: New file. * doc/gnulib.texi (Running self-tests under valgrind): New section. 2010-05-19 Bruno Haible Clean up dead code in recent commit. * m4/libunistring-base.m4 (gl_LIBUNISTRING_VERSION_CMP): Include the body of gl_LIBUNISTRING_VERSION_CMP_ORIG as fallback. (gl_LIBUNISTRING_VERSION_CMP_ORIG): Remove macro. Suggested by Paolo Bonzini. 2010-05-19 Bruno Haible Avoid valgrind error reports from libunistring. * lib/libunistring.valgrind: New file, based on lib/malloca.valgrind. * modules/libunistring (Files): Add it. * modules/libunistring-optional (Files): Likewise. 2010-05-18 Paolo Bonzini Bruno Haible New module 'libunistring-optional'. * modules/libunistring-optional: New file. * m4/libunistring-base.m4: New file. * m4/libunistring-optional.m4: New file. * lib/unicase.in.h: Renamed from lib/unicase.h. * lib/uniconv.in.h: Renamed from lib/uniconv.h. * lib/unictype.in.h: Renamed from lib/unictype.h. * lib/unilbrk.in.h: Renamed from lib/unilbrk.h. * lib/uniname.in.h: Renamed from lib/uniname.h. * lib/uninorm.in.h: Renamed from lib/uninorm.h. * lib/unistdio.in.h: Renamed from lib/unistdio.h. * lib/unistr.in.h: Renamed from lib/unistr.h. * lib/unitypes.in.h: Renamed from lib/unitypes.h. * lib/uniwbrk.in.h: Renamed from lib/uniwbrk.h. * lib/uniwidth.in.h: Renamed from lib/uniwidth.h. * m4/libunistring.m4 (gl_LIBUNISTRING_CORE): Renamed from gl_LIBUNISTRING. If the library was found, determine the installed version and set LIBUNISTRING_VERSION. (gl_LIBUNISTRING): New macro, as a wrapper arount it. Document that it sets LIBUNISTRING_VERSION. If the module libunistring-optional is used, handle a configuration option --with-included-libunistring. * modules/libunistring (Files): Add m4/absolute-header.m4. * modules/unicase/base (Files): Use unicase.in.h instead of unicase.h. Add m4/libunistring-base.m4. (configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER. (Makefile.am): Build unicase.h from unicase.in.h. * modules/uniconv/base (Files): Use uniconv.in.h instead of uniconv.h. Add m4/libunistring-base.m4. (configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER. (Makefile.am): Build uniconv.h from uniconv.in.h. * modules/unictype/base (Files): Use unictype.in.h instead of unictype.h. Add m4/libunistring-base.m4. (configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER. (Makefile.am): Build unictype.h from unictype.in.h. * modules/unilbrk/base (Files): Use unilbrk.in.h instead of unilbrk.h. Add m4/libunistring-base.m4. (configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER. (Makefile.am): Build unilbrk.h from unilbrk.in.h. * modules/uniname/base (Files): Use uniname.in.h instead of uniname.h. Add m4/libunistring-base.m4. (configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER. (Makefile.am): Build uniname.h from uniname.in.h. * modules/uninorm/base (Files): Use uninorm.in.h instead of uninorm.h. Add m4/libunistring-base.m4. (configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER. (Makefile.am): Build uninorm.h from uninorm.in.h. * modules/unistdio/base (Files): Use unistdio.in.h instead of unistdio.h. Add m4/libunistring-base.m4. (configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER. (Makefile.am): Build unistdio.h from unistdio.in.h. * modules/unistr/base (Files): Use unistr.in.h instead of unistr.h. Add m4/libunistring-base.m4. (configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER. (Makefile.am): Build unistr.h from unistr.in.h. * modules/unitypes (Files): Use unitypes.in.h instead of unitypes.h. Add m4/libunistring-base.m4. (configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER. (Makefile.am): Build unitypes.h from unitypes.in.h. * modules/uniwbrk/base (Files): Use uniwbrk.in.h instead of uniwbrk.h. Add m4/libunistring-base.m4. (configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER. (Makefile.am): Build uniwbrk.h from uniwbrk.in.h. * modules/uniwidth/base (Files): Use uniwidth.in.h instead of uniwidth.h. Add m4/libunistring-base.m4. (configure.ac): Invoke gl_LIBUNISTRING_LIBHEADER. (Makefile.am): Build uniwidth.h from uniwidth.in.h. * modules/unicase/empty-prefix-context: Use gl_LIBUNISTRING_LIBSOURCE instead of augmenting lib_SOURCES. * modules/unicase/empty-suffix-context: Likewise. * modules/unicase/locale-language: Likewise. * modules/unicase/tolower: Likewise. * modules/unicase/totitle: Likewise. * modules/unicase/toupper: Likewise. * modules/unicase/u8-casecmp: Likewise. * modules/unicase/u8-casecoll: Likewise. * modules/unicase/u8-casefold: Likewise. * modules/unicase/u8-casexfrm: Likewise. * modules/unicase/u8-ct-casefold: Likewise. * modules/unicase/u8-ct-tolower: Likewise. * modules/unicase/u8-ct-totitle: Likewise. * modules/unicase/u8-ct-toupper: Likewise. * modules/unicase/u8-is-cased: Likewise. * modules/unicase/u8-is-casefolded: Likewise. * modules/unicase/u8-is-lowercase: Likewise. * modules/unicase/u8-is-titlecase: Likewise. * modules/unicase/u8-is-uppercase: Likewise. * modules/unicase/u8-prefix-context: Likewise. * modules/unicase/u8-suffix-context: Likewise. * modules/unicase/u8-tolower: Likewise. * modules/unicase/u8-totitle: Likewise. * modules/unicase/u8-toupper: Likewise. * modules/unicase/u16-casecmp: Likewise. * modules/unicase/u16-casecoll: Likewise. * modules/unicase/u16-casefold: Likewise. * modules/unicase/u16-casexfrm: Likewise. * modules/unicase/u16-ct-casefold: Likewise. * modules/unicase/u16-ct-tolower: Likewise. * modules/unicase/u16-ct-totitle: Likewise. * modules/unicase/u16-ct-toupper: Likewise. * modules/unicase/u16-is-cased: Likewise. * modules/unicase/u16-is-casefolded: Likewise. * modules/unicase/u16-is-lowercase: Likewise. * modules/unicase/u16-is-titlecase: Likewise. * modules/unicase/u16-is-uppercase: Likewise. * modules/unicase/u16-prefix-context: Likewise. * modules/unicase/u16-suffix-context: Likewise. * modules/unicase/u16-tolower: Likewise. * modules/unicase/u16-totitle: Likewise. * modules/unicase/u16-toupper: Likewise. * modules/unicase/u32-casecmp: Likewise. * modules/unicase/u32-casecoll: Likewise. * modules/unicase/u32-casefold: Likewise. * modules/unicase/u32-casexfrm: Likewise. * modules/unicase/u32-ct-casefold: Likewise. * modules/unicase/u32-ct-tolower: Likewise. * modules/unicase/u32-ct-totitle: Likewise. * modules/unicase/u32-ct-toupper: Likewise. * modules/unicase/u32-is-cased: Likewise. * modules/unicase/u32-is-casefolded: Likewise. * modules/unicase/u32-is-lowercase: Likewise. * modules/unicase/u32-is-titlecase: Likewise. * modules/unicase/u32-is-uppercase: Likewise. * modules/unicase/u32-prefix-context: Likewise. * modules/unicase/u32-suffix-context: Likewise. * modules/unicase/u32-tolower: Likewise. * modules/unicase/u32-totitle: Likewise. * modules/unicase/u32-toupper: Likewise. * modules/unicase/ulc-casecmp: Likewise. * modules/unicase/ulc-casecoll: Likewise. * modules/unicase/ulc-casexfrm: Likewise. * modules/uniconv/u8-conv-from-enc: Likewise. * modules/uniconv/u8-conv-to-enc: Likewise. * modules/uniconv/u8-strconv-from-enc: Likewise. * modules/uniconv/u8-strconv-from-locale: Likewise. * modules/uniconv/u8-strconv-to-enc: Likewise. * modules/uniconv/u8-strconv-to-locale: Likewise. * modules/uniconv/u16-conv-from-enc: Likewise. * modules/uniconv/u16-conv-to-enc: Likewise. * modules/uniconv/u16-strconv-from-enc: Likewise. * modules/uniconv/u16-strconv-from-locale: Likewise. * modules/uniconv/u16-strconv-to-enc: Likewise. * modules/uniconv/u16-strconv-to-locale: Likewise. * modules/uniconv/u32-conv-from-enc: Likewise. * modules/uniconv/u32-conv-to-enc: Likewise. * modules/uniconv/u32-strconv-from-enc: Likewise. * modules/uniconv/u32-strconv-from-locale: Likewise. * modules/uniconv/u32-strconv-to-enc: Likewise. * modules/uniconv/u32-strconv-to-locale: Likewise. * modules/unictype/bidicategory-byname: Likewise. * modules/unictype/bidicategory-name: Likewise. * modules/unictype/bidicategory-of: Likewise. * modules/unictype/bidicategory-test: Likewise. * modules/unictype/block-list: Likewise. * modules/unictype/block-test: Likewise. * modules/unictype/category-C: Likewise. * modules/unictype/category-Cc: Likewise. * modules/unictype/category-Cf: Likewise. * modules/unictype/category-Cn: Likewise. * modules/unictype/category-Co: Likewise. * modules/unictype/category-Cs: Likewise. * modules/unictype/category-L: Likewise. * modules/unictype/category-Ll: Likewise. * modules/unictype/category-Lm: Likewise. * modules/unictype/category-Lo: Likewise. * modules/unictype/category-Lt: Likewise. * modules/unictype/category-Lu: Likewise. * modules/unictype/category-M: Likewise. * modules/unictype/category-Mc: Likewise. * modules/unictype/category-Me: Likewise. * modules/unictype/category-Mn: Likewise. * modules/unictype/category-N: Likewise. * modules/unictype/category-Nd: Likewise. * modules/unictype/category-Nl: Likewise. * modules/unictype/category-No: Likewise. * modules/unictype/category-P: Likewise. * modules/unictype/category-Pc: Likewise. * modules/unictype/category-Pd: Likewise. * modules/unictype/category-Pe: Likewise. * modules/unictype/category-Pf: Likewise. * modules/unictype/category-Pi: Likewise. * modules/unictype/category-Po: Likewise. * modules/unictype/category-Ps: Likewise. * modules/unictype/category-S: Likewise. * modules/unictype/category-Sc: Likewise. * modules/unictype/category-Sk: Likewise. * modules/unictype/category-Sm: Likewise. * modules/unictype/category-So: Likewise. * modules/unictype/category-Z: Likewise. * modules/unictype/category-Zl: Likewise. * modules/unictype/category-Zp: Likewise. * modules/unictype/category-Zs: Likewise. * modules/unictype/category-and: Likewise. * modules/unictype/category-and-not: Likewise. * modules/unictype/category-byname: Likewise. * modules/unictype/category-name: Likewise. * modules/unictype/category-none: Likewise. * modules/unictype/category-of: Likewise. * modules/unictype/category-or: Likewise. * modules/unictype/category-test: Likewise. * modules/unictype/combining-class: Likewise. * modules/unictype/ctype-alnum: Likewise. * modules/unictype/ctype-alpha: Likewise. * modules/unictype/ctype-blank: Likewise. * modules/unictype/ctype-cntrl: Likewise. * modules/unictype/ctype-digit: Likewise. * modules/unictype/ctype-graph: Likewise. * modules/unictype/ctype-lower: Likewise. * modules/unictype/ctype-print: Likewise. * modules/unictype/ctype-punct: Likewise. * modules/unictype/ctype-space: Likewise. * modules/unictype/ctype-upper: Likewise. * modules/unictype/ctype-xdigit: Likewise. * modules/unictype/decimal-digit: Likewise. * modules/unictype/digit: Likewise. * modules/unictype/mirror: Likewise. * modules/unictype/numeric: Likewise. * modules/unictype/property-alphabetic: Likewise. * modules/unictype/property-ascii-hex-digit: Likewise. * modules/unictype/property-bidi-arabic-digit: Likewise. * modules/unictype/property-bidi-arabic-right-to-left: Likewise. * modules/unictype/property-bidi-block-separator: Likewise. * modules/unictype/property-bidi-boundary-neutral: Likewise. * modules/unictype/property-bidi-common-separator: Likewise. * modules/unictype/property-bidi-control: Likewise. * modules/unictype/property-bidi-embedding-or-override: Likewise. * modules/unictype/property-bidi-eur-num-separator: Likewise. * modules/unictype/property-bidi-eur-num-terminator: Likewise. * modules/unictype/property-bidi-european-digit: Likewise. * modules/unictype/property-bidi-hebrew-right-to-left: Likewise. * modules/unictype/property-bidi-left-to-right: Likewise. * modules/unictype/property-bidi-non-spacing-mark: Likewise. * modules/unictype/property-bidi-other-neutral: Likewise. * modules/unictype/property-bidi-pdf: Likewise. * modules/unictype/property-bidi-segment-separator: Likewise. * modules/unictype/property-bidi-whitespace: Likewise. * modules/unictype/property-byname: Likewise. * modules/unictype/property-combining: Likewise. * modules/unictype/property-composite: Likewise. * modules/unictype/property-currency-symbol: Likewise. * modules/unictype/property-dash: Likewise. * modules/unictype/property-decimal-digit: Likewise. * modules/unictype/property-default-ignorable-code-point: Likewise. * modules/unictype/property-deprecated: Likewise. * modules/unictype/property-diacritic: Likewise. * modules/unictype/property-extender: Likewise. * modules/unictype/property-format-control: Likewise. * modules/unictype/property-grapheme-base: Likewise. * modules/unictype/property-grapheme-extend: Likewise. * modules/unictype/property-grapheme-link: Likewise. * modules/unictype/property-hex-digit: Likewise. * modules/unictype/property-hyphen: Likewise. * modules/unictype/property-id-continue: Likewise. * modules/unictype/property-id-start: Likewise. * modules/unictype/property-ideographic: Likewise. * modules/unictype/property-ids-binary-operator: Likewise. * modules/unictype/property-ids-trinary-operator: Likewise. * modules/unictype/property-ignorable-control: Likewise. * modules/unictype/property-iso-control: Likewise. * modules/unictype/property-join-control: Likewise. * modules/unictype/property-left-of-pair: Likewise. * modules/unictype/property-line-separator: Likewise. * modules/unictype/property-logical-order-exception: Likewise. * modules/unictype/property-lowercase: Likewise. * modules/unictype/property-math: Likewise. * modules/unictype/property-non-break: Likewise. * modules/unictype/property-not-a-character: Likewise. * modules/unictype/property-numeric: Likewise. * modules/unictype/property-other-alphabetic: Likewise. * modules/unictype/property-other-default-ignorable-code-point: Likewise. * modules/unictype/property-other-grapheme-extend: Likewise. * modules/unictype/property-other-id-continue: Likewise. * modules/unictype/property-other-id-start: Likewise. * modules/unictype/property-other-lowercase: Likewise. * modules/unictype/property-other-math: Likewise. * modules/unictype/property-other-uppercase: Likewise. * modules/unictype/property-paired-punctuation: Likewise. * modules/unictype/property-paragraph-separator: Likewise. * modules/unictype/property-pattern-syntax: Likewise. * modules/unictype/property-pattern-white-space: Likewise. * modules/unictype/property-private-use: Likewise. * modules/unictype/property-punctuation: Likewise. * modules/unictype/property-quotation-mark: Likewise. * modules/unictype/property-radical: Likewise. * modules/unictype/property-sentence-terminal: Likewise. * modules/unictype/property-soft-dotted: Likewise. * modules/unictype/property-space: Likewise. * modules/unictype/property-terminal-punctuation: Likewise. * modules/unictype/property-test: Likewise. * modules/unictype/property-titlecase: Likewise. * modules/unictype/property-unassigned-code-value: Likewise. * modules/unictype/property-unified-ideograph: Likewise. * modules/unictype/property-uppercase: Likewise. * modules/unictype/property-variation-selector: Likewise. * modules/unictype/property-white-space: Likewise. * modules/unictype/property-xid-continue: Likewise. * modules/unictype/property-xid-start: Likewise. * modules/unictype/property-zero-width: Likewise. * modules/unictype/scripts: Likewise. * modules/unictype/syntax-c-ident: Likewise. * modules/unictype/syntax-c-whitespace: Likewise. * modules/unictype/syntax-java-ident: Likewise. * modules/unictype/syntax-java-whitespace: Likewise. * modules/unilbrk/u8-possible-linebreaks: Likewise. * modules/unilbrk/u8-width-linebreaks: Likewise. * modules/unilbrk/u16-possible-linebreaks: Likewise. * modules/unilbrk/u16-width-linebreaks: Likewise. * modules/unilbrk/u32-possible-linebreaks: Likewise. * modules/unilbrk/u32-width-linebreaks: Likewise. * modules/unilbrk/ulc-possible-linebreaks: Likewise. * modules/unilbrk/ulc-width-linebreaks: Likewise. * modules/uniname/uniname: Likewise. * modules/uninorm/canonical-decomposition: Likewise. * modules/uninorm/composition: Likewise. * modules/uninorm/decomposing-form: Likewise. * modules/uninorm/decomposition: Likewise. * modules/uninorm/filter: Likewise. * modules/uninorm/nfc: Likewise. * modules/uninorm/nfd: Likewise. * modules/uninorm/nfkc: Likewise. * modules/uninorm/nfkd: Likewise. * modules/uninorm/u8-normalize: Likewise. * modules/uninorm/u8-normcmp: Likewise. * modules/uninorm/u8-normcoll: Likewise. * modules/uninorm/u8-normxfrm: Likewise. * modules/uninorm/u16-normalize: Likewise. * modules/uninorm/u16-normcmp: Likewise. * modules/uninorm/u16-normcoll: Likewise. * modules/uninorm/u16-normxfrm: Likewise. * modules/uninorm/u32-normalize: Likewise. * modules/uninorm/u32-normcmp: Likewise. * modules/uninorm/u32-normcoll: Likewise. * modules/uninorm/u32-normxfrm: Likewise. * modules/unistdio/u8-asnprintf: Likewise. * modules/unistdio/u8-asprintf: Likewise. * modules/unistdio/u8-snprintf: Likewise. * modules/unistdio/u8-sprintf: Likewise. * modules/unistdio/u8-u8-asnprintf: Likewise. * modules/unistdio/u8-u8-asprintf: Likewise. * modules/unistdio/u8-u8-snprintf: Likewise. * modules/unistdio/u8-u8-sprintf: Likewise. * modules/unistdio/u8-u8-vasnprintf: Likewise. * modules/unistdio/u8-u8-vasprintf: Likewise. * modules/unistdio/u8-u8-vsnprintf: Likewise. * modules/unistdio/u8-u8-vsprintf: Likewise. * modules/unistdio/u8-vasnprintf: Likewise. * modules/unistdio/u8-vasprintf: Likewise. * modules/unistdio/u8-vsnprintf: Likewise. * modules/unistdio/u8-vsprintf: Likewise. * modules/unistdio/u16-asnprintf: Likewise. * modules/unistdio/u16-asprintf: Likewise. * modules/unistdio/u16-snprintf: Likewise. * modules/unistdio/u16-sprintf: Likewise. * modules/unistdio/u16-u16-asnprintf: Likewise. * modules/unistdio/u16-u16-asprintf: Likewise. * modules/unistdio/u16-u16-snprintf: Likewise. * modules/unistdio/u16-u16-sprintf: Likewise. * modules/unistdio/u16-u16-vasnprintf: Likewise. * modules/unistdio/u16-u16-vasprintf: Likewise. * modules/unistdio/u16-u16-vsnprintf: Likewise. * modules/unistdio/u16-u16-vsprintf: Likewise. * modules/unistdio/u16-vasnprintf: Likewise. * modules/unistdio/u16-vasprintf: Likewise. * modules/unistdio/u16-vsnprintf: Likewise. * modules/unistdio/u16-vsprintf: Likewise. * modules/unistdio/u32-asnprintf: Likewise. * modules/unistdio/u32-asprintf: Likewise. * modules/unistdio/u32-snprintf: Likewise. * modules/unistdio/u32-sprintf: Likewise. * modules/unistdio/u32-u32-asnprintf: Likewise. * modules/unistdio/u32-u32-asprintf: Likewise. * modules/unistdio/u32-u32-snprintf: Likewise. * modules/unistdio/u32-u32-sprintf: Likewise. * modules/unistdio/u32-u32-vasnprintf: Likewise. * modules/unistdio/u32-u32-vasprintf: Likewise. * modules/unistdio/u32-u32-vsnprintf: Likewise. * modules/unistdio/u32-u32-vsprintf: Likewise. * modules/unistdio/u32-vasnprintf: Likewise. * modules/unistdio/u32-vasprintf: Likewise. * modules/unistdio/u32-vsnprintf: Likewise. * modules/unistdio/u32-vsprintf: Likewise. * modules/unistdio/ulc-asnprintf: Likewise. * modules/unistdio/ulc-asprintf: Likewise. * modules/unistdio/ulc-fprintf: Likewise. * modules/unistdio/ulc-snprintf: Likewise. * modules/unistdio/ulc-sprintf: Likewise. * modules/unistdio/ulc-vasnprintf: Likewise. * modules/unistdio/ulc-vasprintf: Likewise. * modules/unistdio/ulc-vfprintf: Likewise. * modules/unistdio/ulc-vsnprintf: Likewise. * modules/unistdio/ulc-vsprintf: Likewise. * modules/unistr/u8-check: Likewise. * modules/unistr/u8-chr: Likewise. * modules/unistr/u8-cmp: Likewise. * modules/unistr/u8-cmp2: Likewise. * modules/unistr/u8-cpy: Likewise. * modules/unistr/u8-cpy-alloc: Likewise. * modules/unistr/u8-endswith: Likewise. * modules/unistr/u8-mblen: Likewise. * modules/unistr/u8-mbsnlen: Likewise. * modules/unistr/u8-mbtouc: Likewise. * modules/unistr/u8-mbtouc-unsafe: Likewise. * modules/unistr/u8-mbtoucr: Likewise. * modules/unistr/u8-move: Likewise. * modules/unistr/u8-next: Likewise. * modules/unistr/u8-prev: Likewise. * modules/unistr/u8-set: Likewise. * modules/unistr/u8-startswith: Likewise. * modules/unistr/u8-stpcpy: Likewise. * modules/unistr/u8-stpncpy: Likewise. * modules/unistr/u8-strcat: Likewise. * modules/unistr/u8-strchr: Likewise. * modules/unistr/u8-strcmp: Likewise. * modules/unistr/u8-strcoll: Likewise. * modules/unistr/u8-strcpy: Likewise. * modules/unistr/u8-strcspn: Likewise. * modules/unistr/u8-strdup: Likewise. * modules/unistr/u8-strlen: Likewise. * modules/unistr/u8-strmblen: Likewise. * modules/unistr/u8-strmbtouc: Likewise. * modules/unistr/u8-strncat: Likewise. * modules/unistr/u8-strncmp: Likewise. * modules/unistr/u8-strncpy: Likewise. * modules/unistr/u8-strnlen: Likewise. * modules/unistr/u8-strpbrk: Likewise. * modules/unistr/u8-strrchr: Likewise. * modules/unistr/u8-strspn: Likewise. * modules/unistr/u8-strstr: Likewise. * modules/unistr/u8-strtok: Likewise. * modules/unistr/u8-to-u16: Likewise. * modules/unistr/u8-to-u32: Likewise. * modules/unistr/u8-uctomb: Likewise. * modules/unistr/u16-check: Likewise. * modules/unistr/u16-chr: Likewise. * modules/unistr/u16-cmp: Likewise. * modules/unistr/u16-cmp2: Likewise. * modules/unistr/u16-cpy: Likewise. * modules/unistr/u16-cpy-alloc: Likewise. * modules/unistr/u16-endswith: Likewise. * modules/unistr/u16-mblen: Likewise. * modules/unistr/u16-mbsnlen: Likewise. * modules/unistr/u16-mbtouc: Likewise. * modules/unistr/u16-mbtouc-unsafe: Likewise. * modules/unistr/u16-mbtoucr: Likewise. * modules/unistr/u16-move: Likewise. * modules/unistr/u16-next: Likewise. * modules/unistr/u16-prev: Likewise. * modules/unistr/u16-set: Likewise. * modules/unistr/u16-startswith: Likewise. * modules/unistr/u16-stpcpy: Likewise. * modules/unistr/u16-stpncpy: Likewise. * modules/unistr/u16-strcat: Likewise. * modules/unistr/u16-strchr: Likewise. * modules/unistr/u16-strcmp: Likewise. * modules/unistr/u16-strcoll: Likewise. * modules/unistr/u16-strcpy: Likewise. * modules/unistr/u16-strcspn: Likewise. * modules/unistr/u16-strdup: Likewise. * modules/unistr/u16-strlen: Likewise. * modules/unistr/u16-strmblen: Likewise. * modules/unistr/u16-strmbtouc: Likewise. * modules/unistr/u16-strncat: Likewise. * modules/unistr/u16-strncmp: Likewise. * modules/unistr/u16-strncpy: Likewise. * modules/unistr/u16-strnlen: Likewise. * modules/unistr/u16-strpbrk: Likewise. * modules/unistr/u16-strrchr: Likewise. * modules/unistr/u16-strspn: Likewise. * modules/unistr/u16-strstr: Likewise. * modules/unistr/u16-strtok: Likewise. * modules/unistr/u16-to-u32: Likewise. * modules/unistr/u16-to-u8: Likewise. * modules/unistr/u16-uctomb: Likewise. * modules/unistr/u32-check: Likewise. * modules/unistr/u32-chr: Likewise. * modules/unistr/u32-cmp: Likewise. * modules/unistr/u32-cmp2: Likewise. * modules/unistr/u32-cpy: Likewise. * modules/unistr/u32-cpy-alloc: Likewise. * modules/unistr/u32-endswith: Likewise. * modules/unistr/u32-mblen: Likewise. * modules/unistr/u32-mbsnlen: Likewise. * modules/unistr/u32-mbtouc: Likewise. * modules/unistr/u32-mbtouc-unsafe: Likewise. * modules/unistr/u32-mbtoucr: Likewise. * modules/unistr/u32-move: Likewise. * modules/unistr/u32-next: Likewise. * modules/unistr/u32-prev: Likewise. * modules/unistr/u32-set: Likewise. * modules/unistr/u32-startswith: Likewise. * modules/unistr/u32-stpcpy: Likewise. * modules/unistr/u32-stpncpy: Likewise. * modules/unistr/u32-strcat: Likewise. * modules/unistr/u32-strchr: Likewise. * modules/unistr/u32-strcmp: Likewise. * modules/unistr/u32-strcoll: Likewise. * modules/unistr/u32-strcpy: Likewise. * modules/unistr/u32-strcspn: Likewise. * modules/unistr/u32-strdup: Likewise. * modules/unistr/u32-strlen: Likewise. * modules/unistr/u32-strmblen: Likewise. * modules/unistr/u32-strmbtouc: Likewise. * modules/unistr/u32-strncat: Likewise. * modules/unistr/u32-strncmp: Likewise. * modules/unistr/u32-strncpy: Likewise. * modules/unistr/u32-strnlen: Likewise. * modules/unistr/u32-strpbrk: Likewise. * modules/unistr/u32-strrchr: Likewise. * modules/unistr/u32-strspn: Likewise. * modules/unistr/u32-strstr: Likewise. * modules/unistr/u32-strtok: Likewise. * modules/unistr/u32-to-u16: Likewise. * modules/unistr/u32-to-u8: Likewise. * modules/unistr/u32-uctomb: Likewise. * modules/uniwbrk/u8-wordbreaks: Likewise. * modules/uniwbrk/u16-wordbreaks: Likewise. * modules/uniwbrk/u32-wordbreaks: Likewise. * modules/uniwbrk/ulc-wordbreaks: Likewise. * modules/uniwbrk/wordbreak-property: Likewise. * modules/uniwidth/u8-strwidth: Likewise. * modules/uniwidth/u8-width: Likewise. * modules/uniwidth/u16-strwidth: Likewise. * modules/uniwidth/u16-width: Likewise. * modules/uniwidth/u32-strwidth: Likewise. * modules/uniwidth/u32-width: Likewise. * modules/uniwidth/width: Likewise. * modules/unicase/cased-tests (Makefile.am): Link all test programs with $(LIBUNISTRING). * modules/unicase/ignorable-tests: Likewise. * modules/unicase/locale-language-tests: Likewise. * modules/unicase/tolower-tests: Likewise. * modules/unicase/totitle-tests: Likewise. * modules/unicase/toupper-tests: Likewise. * modules/unicase/u8-casecmp-tests: Likewise. * modules/unicase/u8-casecoll-tests: Likewise. * modules/unicase/u8-casefold-tests: Likewise. * modules/unicase/u8-is-cased-tests: Likewise. * modules/unicase/u8-is-casefolded-tests: Likewise. * modules/unicase/u8-is-lowercase-tests: Likewise. * modules/unicase/u8-is-titlecase-tests: Likewise. * modules/unicase/u8-is-uppercase-tests: Likewise. * modules/unicase/u8-tolower-tests: Likewise. * modules/unicase/u8-totitle-tests: Likewise. * modules/unicase/u8-toupper-tests: Likewise. * modules/unicase/u16-casecmp-tests: Likewise. * modules/unicase/u16-casecoll-tests: Likewise. * modules/unicase/u16-casefold-tests: Likewise. * modules/unicase/u16-is-cased-tests: Likewise. * modules/unicase/u16-is-casefolded-tests: Likewise. * modules/unicase/u16-is-lowercase-tests: Likewise. * modules/unicase/u16-is-titlecase-tests: Likewise. * modules/unicase/u16-is-uppercase-tests: Likewise. * modules/unicase/u16-tolower-tests: Likewise. * modules/unicase/u16-totitle-tests: Likewise. * modules/unicase/u16-toupper-tests: Likewise. * modules/unicase/u32-casecmp-tests: Likewise. * modules/unicase/u32-casecoll-tests: Likewise. * modules/unicase/u32-casefold-tests: Likewise. * modules/unicase/u32-is-cased-tests: Likewise. * modules/unicase/u32-is-casefolded-tests: Likewise. * modules/unicase/u32-is-lowercase-tests: Likewise. * modules/unicase/u32-is-titlecase-tests: Likewise. * modules/unicase/u32-is-uppercase-tests: Likewise. * modules/unicase/u32-tolower-tests: Likewise. * modules/unicase/u32-totitle-tests: Likewise. * modules/unicase/u32-toupper-tests: Likewise. * modules/unicase/ulc-casecmp-tests: Likewise. * modules/unicase/ulc-casecoll-tests: Likewise. * modules/uniconv/u8-conv-from-enc-tests: Likewise. * modules/uniconv/u8-conv-to-enc-tests: Likewise. * modules/uniconv/u8-strconv-from-enc-tests: Likewise. * modules/uniconv/u8-strconv-to-enc-tests: Likewise. * modules/uniconv/u16-conv-from-enc-tests: Likewise. * modules/uniconv/u16-conv-to-enc-tests: Likewise. * modules/uniconv/u16-strconv-from-enc-tests: Likewise. * modules/uniconv/u16-strconv-to-enc-tests: Likewise. * modules/uniconv/u32-conv-from-enc-tests: Likewise. * modules/uniconv/u32-conv-to-enc-tests: Likewise. * modules/uniconv/u32-strconv-from-enc-tests: Likewise. * modules/uniconv/u32-strconv-to-enc-tests: Likewise. * modules/unictype/bidicategory-byname-tests: Likewise. * modules/unictype/bidicategory-name-tests: Likewise. * modules/unictype/bidicategory-of-tests: Likewise. * modules/unictype/bidicategory-test-tests: Likewise. * modules/unictype/block-list-tests: Likewise. * modules/unictype/block-of-tests: Likewise. * modules/unictype/block-test-tests: Likewise. * modules/unictype/category-C-tests: Likewise. * modules/unictype/category-Cc-tests: Likewise. * modules/unictype/category-Cf-tests: Likewise. * modules/unictype/category-Cn-tests: Likewise. * modules/unictype/category-Co-tests: Likewise. * modules/unictype/category-Cs-tests: Likewise. * modules/unictype/category-L-tests: Likewise. * modules/unictype/category-Ll-tests: Likewise. * modules/unictype/category-Lm-tests: Likewise. * modules/unictype/category-Lo-tests: Likewise. * modules/unictype/category-Lt-tests: Likewise. * modules/unictype/category-Lu-tests: Likewise. * modules/unictype/category-M-tests: Likewise. * modules/unictype/category-Mc-tests: Likewise. * modules/unictype/category-Me-tests: Likewise. * modules/unictype/category-Mn-tests: Likewise. * modules/unictype/category-N-tests: Likewise. * modules/unictype/category-Nd-tests: Likewise. * modules/unictype/category-Nl-tests: Likewise. * modules/unictype/category-No-tests: Likewise. * modules/unictype/category-P-tests: Likewise. * modules/unictype/category-Pc-tests: Likewise. * modules/unictype/category-Pd-tests: Likewise. * modules/unictype/category-Pe-tests: Likewise. * modules/unictype/category-Pf-tests: Likewise. * modules/unictype/category-Pi-tests: Likewise. * modules/unictype/category-Po-tests: Likewise. * modules/unictype/category-Ps-tests: Likewise. * modules/unictype/category-S-tests: Likewise. * modules/unictype/category-Sc-tests: Likewise. * modules/unictype/category-Sk-tests: Likewise. * modules/unictype/category-Sm-tests: Likewise. * modules/unictype/category-So-tests: Likewise. * modules/unictype/category-Z-tests: Likewise. * modules/unictype/category-Zl-tests: Likewise. * modules/unictype/category-Zp-tests: Likewise. * modules/unictype/category-Zs-tests: Likewise. * modules/unictype/category-and-not-tests: Likewise. * modules/unictype/category-and-tests: Likewise. * modules/unictype/category-byname-tests: Likewise. * modules/unictype/category-name-tests: Likewise. * modules/unictype/category-none-tests: Likewise. * modules/unictype/category-of-tests: Likewise. * modules/unictype/category-or-tests: Likewise. * modules/unictype/category-test-withtable-tests: Likewise. * modules/unictype/combining-class-tests: Likewise. * modules/unictype/ctype-alnum-tests: Likewise. * modules/unictype/ctype-alpha-tests: Likewise. * modules/unictype/ctype-blank-tests: Likewise. * modules/unictype/ctype-cntrl-tests: Likewise. * modules/unictype/ctype-digit-tests: Likewise. * modules/unictype/ctype-graph-tests: Likewise. * modules/unictype/ctype-lower-tests: Likewise. * modules/unictype/ctype-print-tests: Likewise. * modules/unictype/ctype-punct-tests: Likewise. * modules/unictype/ctype-space-tests: Likewise. * modules/unictype/ctype-upper-tests: Likewise. * modules/unictype/ctype-xdigit-tests: Likewise. * modules/unictype/decimal-digit-tests: Likewise. * modules/unictype/digit-tests: Likewise. * modules/unictype/mirror-tests: Likewise. * modules/unictype/numeric-tests: Likewise. * modules/unictype/property-alphabetic-tests: Likewise. * modules/unictype/property-ascii-hex-digit-tests: Likewise. * modules/unictype/property-bidi-arabic-digit-tests: Likewise. * modules/unictype/property-bidi-arabic-right-to-left-tests: Likewise. * modules/unictype/property-bidi-block-separator-tests: Likewise. * modules/unictype/property-bidi-boundary-neutral-tests: Likewise. * modules/unictype/property-bidi-common-separator-tests: Likewise. * modules/unictype/property-bidi-control-tests: Likewise. * modules/unictype/property-bidi-embedding-or-override-tests: Likewise. * modules/unictype/property-bidi-eur-num-separator-tests: Likewise. * modules/unictype/property-bidi-eur-num-terminator-tests: Likewise. * modules/unictype/property-bidi-european-digit-tests: Likewise. * modules/unictype/property-bidi-hebrew-right-to-left-tests: Likewise. * modules/unictype/property-bidi-left-to-right-tests: Likewise. * modules/unictype/property-bidi-non-spacing-mark-tests: Likewise. * modules/unictype/property-bidi-other-neutral-tests: Likewise. * modules/unictype/property-bidi-pdf-tests: Likewise. * modules/unictype/property-bidi-segment-separator-tests: Likewise. * modules/unictype/property-bidi-whitespace-tests: Likewise. * modules/unictype/property-byname-tests: Likewise. * modules/unictype/property-combining-tests: Likewise. * modules/unictype/property-composite-tests: Likewise. * modules/unictype/property-currency-symbol-tests: Likewise. * modules/unictype/property-dash-tests: Likewise. * modules/unictype/property-decimal-digit-tests: Likewise. * modules/unictype/property-default-ignorable-code-point-tests: Likewise. * modules/unictype/property-deprecated-tests: Likewise. * modules/unictype/property-diacritic-tests: Likewise. * modules/unictype/property-extender-tests: Likewise. * modules/unictype/property-format-control-tests: Likewise. * modules/unictype/property-grapheme-base-tests: Likewise. * modules/unictype/property-grapheme-extend-tests: Likewise. * modules/unictype/property-grapheme-link-tests: Likewise. * modules/unictype/property-hex-digit-tests: Likewise. * modules/unictype/property-hyphen-tests: Likewise. * modules/unictype/property-id-continue-tests: Likewise. * modules/unictype/property-id-start-tests: Likewise. * modules/unictype/property-ideographic-tests: Likewise. * modules/unictype/property-ids-binary-operator-tests: Likewise. * modules/unictype/property-ids-trinary-operator-tests: Likewise. * modules/unictype/property-ignorable-control-tests: Likewise. * modules/unictype/property-iso-control-tests: Likewise. * modules/unictype/property-join-control-tests: Likewise. * modules/unictype/property-left-of-pair-tests: Likewise. * modules/unictype/property-line-separator-tests: Likewise. * modules/unictype/property-logical-order-exception-tests: Likewise. * modules/unictype/property-lowercase-tests: Likewise. * modules/unictype/property-math-tests: Likewise. * modules/unictype/property-non-break-tests: Likewise. * modules/unictype/property-not-a-character-tests: Likewise. * modules/unictype/property-numeric-tests: Likewise. * modules/unictype/property-other-alphabetic-tests: Likewise. * modules/unictype/property-other-default-ignorable-code-point-tests: Likewise. * modules/unictype/property-other-grapheme-extend-tests: Likewise. * modules/unictype/property-other-id-continue-tests: Likewise. * modules/unictype/property-other-id-start-tests: Likewise. * modules/unictype/property-other-lowercase-tests: Likewise. * modules/unictype/property-other-math-tests: Likewise. * modules/unictype/property-other-uppercase-tests: Likewise. * modules/unictype/property-paired-punctuation-tests: Likewise. * modules/unictype/property-paragraph-separator-tests: Likewise. * modules/unictype/property-pattern-syntax-tests: Likewise. * modules/unictype/property-pattern-white-space-tests: Likewise. * modules/unictype/property-private-use-tests: Likewise. * modules/unictype/property-punctuation-tests: Likewise. * modules/unictype/property-quotation-mark-tests: Likewise. * modules/unictype/property-radical-tests: Likewise. * modules/unictype/property-sentence-terminal-tests: Likewise. * modules/unictype/property-soft-dotted-tests: Likewise. * modules/unictype/property-space-tests: Likewise. * modules/unictype/property-terminal-punctuation-tests: Likewise. * modules/unictype/property-test-tests: Likewise. * modules/unictype/property-titlecase-tests: Likewise. * modules/unictype/property-unassigned-code-value-tests: Likewise. * modules/unictype/property-unified-ideograph-tests: Likewise. * modules/unictype/property-uppercase-tests: Likewise. * modules/unictype/property-variation-selector-tests: Likewise. * modules/unictype/property-white-space-tests: Likewise. * modules/unictype/property-xid-continue-tests: Likewise. * modules/unictype/property-xid-start-tests: Likewise. * modules/unictype/property-zero-width-tests: Likewise. * modules/unictype/scripts-tests: Likewise. * modules/unictype/syntax-c-ident-tests: Likewise. * modules/unictype/syntax-c-whitespace-tests: Likewise. * modules/unictype/syntax-java-ident-tests: Likewise. * modules/unictype/syntax-java-whitespace-tests: Likewise. * modules/unilbrk/u8-possible-linebreaks-tests: Likewise. * modules/unilbrk/u8-width-linebreaks-tests: Likewise. * modules/unilbrk/u16-possible-linebreaks-tests: Likewise. * modules/unilbrk/u16-width-linebreaks-tests: Likewise. * modules/unilbrk/u32-possible-linebreaks-tests: Likewise. * modules/unilbrk/u32-width-linebreaks-tests: Likewise. * modules/unilbrk/ulc-possible-linebreaks-tests: Likewise. * modules/unilbrk/ulc-width-linebreaks-tests: Likewise. * modules/uniname/uniname-tests: Likewise. * modules/uninorm/canonical-decomposition-tests: Likewise. * modules/uninorm/compat-decomposition-tests: Likewise. * modules/uninorm/composition-tests: Likewise. * modules/uninorm/decomposing-form-tests: Likewise. * modules/uninorm/decomposition-tests: Likewise. * modules/uninorm/filter-tests: Likewise. * modules/uninorm/nfc-tests: Likewise. * modules/uninorm/nfd-tests: Likewise. * modules/uninorm/nfkc-tests: Likewise. * modules/uninorm/nfkd-tests: Likewise. * modules/uninorm/u8-normcmp-tests: Likewise. * modules/uninorm/u8-normcoll-tests: Likewise. * modules/uninorm/u16-normcmp-tests: Likewise. * modules/uninorm/u16-normcoll-tests: Likewise. * modules/uninorm/u32-normcmp-tests: Likewise. * modules/uninorm/u32-normcoll-tests: Likewise. * modules/unistdio/u8-asnprintf-tests: Likewise. * modules/unistdio/u8-vasnprintf-tests: Likewise. * modules/unistdio/u8-vasprintf-tests: Likewise. * modules/unistdio/u8-vsnprintf-tests: Likewise. * modules/unistdio/u8-vsprintf-tests: Likewise. * modules/unistdio/u16-asnprintf-tests: Likewise. * modules/unistdio/u16-vasnprintf-tests: Likewise. * modules/unistdio/u16-vasprintf-tests: Likewise. * modules/unistdio/u16-vsnprintf-tests: Likewise. * modules/unistdio/u16-vsprintf-tests: Likewise. * modules/unistdio/u32-asnprintf-tests: Likewise. * modules/unistdio/u32-vasnprintf-tests: Likewise. * modules/unistdio/u32-vasprintf-tests: Likewise. * modules/unistdio/u32-vsnprintf-tests: Likewise. * modules/unistdio/u32-vsprintf-tests: Likewise. * modules/unistdio/ulc-asnprintf-tests: Likewise. * modules/unistdio/ulc-vasnprintf-tests: Likewise. * modules/unistdio/ulc-vasprintf-tests: Likewise. * modules/unistdio/ulc-vsnprintf-tests: Likewise. * modules/unistdio/ulc-vsprintf-tests: Likewise. * modules/unistr/u8-check-tests: Likewise. * modules/unistr/u8-chr-tests: Likewise. * modules/unistr/u8-cmp-tests: Likewise. * modules/unistr/u8-cmp2-tests: Likewise. * modules/unistr/u8-cpy-alloc-tests: Likewise. * modules/unistr/u8-cpy-tests: Likewise. * modules/unistr/u8-mblen-tests: Likewise. * modules/unistr/u8-mbsnlen-tests: Likewise. * modules/unistr/u8-mbtouc-tests: Likewise. * modules/unistr/u8-mbtouc-unsafe-tests: Likewise. * modules/unistr/u8-mbtoucr-tests: Likewise. * modules/unistr/u8-move-tests: Likewise. * modules/unistr/u8-next-tests: Likewise. * modules/unistr/u8-prev-tests: Likewise. * modules/unistr/u8-set-tests: Likewise. * modules/unistr/u8-stpcpy-tests: Likewise. * modules/unistr/u8-stpncpy-tests: Likewise. * modules/unistr/u8-strcat-tests: Likewise. * modules/unistr/u8-strcmp-tests: Likewise. * modules/unistr/u8-strcoll-tests: Likewise. * modules/unistr/u8-strcpy-tests: Likewise. * modules/unistr/u8-strdup-tests: Likewise. * modules/unistr/u8-strlen-tests: Likewise. * modules/unistr/u8-strmblen-tests: Likewise. * modules/unistr/u8-strmbtouc-tests: Likewise. * modules/unistr/u8-strncat-tests: Likewise. * modules/unistr/u8-strncmp-tests: Likewise. * modules/unistr/u8-strncpy-tests: Likewise. * modules/unistr/u8-strnlen-tests: Likewise. * modules/unistr/u8-to-u16-tests: Likewise. * modules/unistr/u8-to-u32-tests: Likewise. * modules/unistr/u8-uctomb-tests: Likewise. * modules/unistr/u16-check-tests: Likewise. * modules/unistr/u16-chr-tests: Likewise. * modules/unistr/u16-cmp-tests: Likewise. * modules/unistr/u16-cmp2-tests: Likewise. * modules/unistr/u16-cpy-alloc-tests: Likewise. * modules/unistr/u16-cpy-tests: Likewise. * modules/unistr/u16-mblen-tests: Likewise. * modules/unistr/u16-mbsnlen-tests: Likewise. * modules/unistr/u16-mbtouc-tests: Likewise. * modules/unistr/u16-mbtouc-unsafe-tests: Likewise. * modules/unistr/u16-mbtoucr-tests: Likewise. * modules/unistr/u16-move-tests: Likewise. * modules/unistr/u16-next-tests: Likewise. * modules/unistr/u16-prev-tests: Likewise. * modules/unistr/u16-set-tests: Likewise. * modules/unistr/u16-stpcpy-tests: Likewise. * modules/unistr/u16-stpncpy-tests: Likewise. * modules/unistr/u16-strcat-tests: Likewise. * modules/unistr/u16-strcmp-tests: Likewise. * modules/unistr/u16-strcoll-tests: Likewise. * modules/unistr/u16-strcpy-tests: Likewise. * modules/unistr/u16-strdup-tests: Likewise. * modules/unistr/u16-strlen-tests: Likewise. * modules/unistr/u16-strmblen-tests: Likewise. * modules/unistr/u16-strmbtouc-tests: Likewise. * modules/unistr/u16-strncat-tests: Likewise. * modules/unistr/u16-strncmp-tests: Likewise. * modules/unistr/u16-strncpy-tests: Likewise. * modules/unistr/u16-strnlen-tests: Likewise. * modules/unistr/u16-to-u32-tests: Likewise. * modules/unistr/u16-to-u8-tests: Likewise. * modules/unistr/u16-uctomb-tests: Likewise. * modules/unistr/u32-check-tests: Likewise. * modules/unistr/u32-chr-tests: Likewise. * modules/unistr/u32-cmp-tests: Likewise. * modules/unistr/u32-cmp2-tests: Likewise. * modules/unistr/u32-cpy-alloc-tests: Likewise. * modules/unistr/u32-cpy-tests: Likewise. * modules/unistr/u32-mblen-tests: Likewise. * modules/unistr/u32-mbsnlen-tests: Likewise. * modules/unistr/u32-mbtouc-tests: Likewise. * modules/unistr/u32-mbtouc-unsafe-tests: Likewise. * modules/unistr/u32-mbtoucr-tests: Likewise. * modules/unistr/u32-move-tests: Likewise. * modules/unistr/u32-next-tests: Likewise. * modules/unistr/u32-prev-tests: Likewise. * modules/unistr/u32-set-tests: Likewise. * modules/unistr/u32-stpcpy-tests: Likewise. * modules/unistr/u32-stpncpy-tests: Likewise. * modules/unistr/u32-strcat-tests: Likewise. * modules/unistr/u32-strcmp-tests: Likewise. * modules/unistr/u32-strcoll-tests: Likewise. * modules/unistr/u32-strcpy-tests: Likewise. * modules/unistr/u32-strdup-tests: Likewise. * modules/unistr/u32-strlen-tests: Likewise. * modules/unistr/u32-strmblen-tests: Likewise. * modules/unistr/u32-strmbtouc-tests: Likewise. * modules/unistr/u32-strncat-tests: Likewise. * modules/unistr/u32-strncmp-tests: Likewise. * modules/unistr/u32-strncpy-tests: Likewise. * modules/unistr/u32-strnlen-tests: Likewise. * modules/unistr/u32-to-u16-tests: Likewise. * modules/unistr/u32-to-u8-tests: Likewise. * modules/unistr/u32-uctomb-tests: Likewise. * modules/uniwbrk/u8-wordbreaks-tests: Likewise. * modules/uniwbrk/u16-wordbreaks-tests: Likewise. * modules/uniwbrk/u32-wordbreaks-tests: Likewise. * modules/uniwbrk/ulc-wordbreaks-tests: Likewise. * modules/uniwidth/u8-strwidth-tests: Likewise. * modules/uniwidth/u8-width-tests: Likewise. * modules/uniwidth/u16-strwidth-tests: Likewise. * modules/uniwidth/u16-width-tests: Likewise. * modules/uniwidth/u32-strwidth-tests: Likewise. * modules/uniwidth/u32-width-tests: Likewise. * modules/uniwidth/width-tests: Likewise. 2010-05-18 Richard Jones doc: users.txt: list hivex * users.txt: Add hivex. 2010-05-18 Richard Jones doc: users.txt: list febootstrap * users.txt: Add febootstrap. 2010-05-17 Giuseppe Scrivano bootstrap: fix an error when gnulib is not used as a git submodule * build-aux/bootstrap (gnulib_path): If its length is zero then assign "gnulib" to it. * build-aux/bootstrap: Redirect "git clone -h" stderr to stdout. 2010-05-16 Bruno Haible Avoid autoconf warnings about AM_ICONV. * m4/iconv.m4 (AM_ICONV): Define using AC_DEFUN_ONCE for autoconf >= 2.64. 2010-05-16 Bruno Haible absolute-header: Make the macro usable in more situations. * m4/absolute-header.m4 (gl_ABSOLUTE_HEADER_ONE): New macro, extracted from gl_ABSOLUTE_HEADER. (gl_ABSOLUTE_HEADER): Use it. Fix comment. 2010-05-16 James Youngman doc: update users.txt * users.txt: Add CSSC. 2010-05-16 Jim Meyering init.sh: fix an error in the previous change; add more comments * tests/init.sh: Compare exit code in loop against 9, not 2. Patch by Bruno Haible. Make the two tests more similar by adding an empty "then" clause. Add comments. init.sh: avoid unnecessary shell re-exec * tests/init.sh: Improve the re-exec-required check to first test the current shell. If it passes the test, do not search for a shell that does pass, and do not re-exec. This test is particularly contorted to avoid triggering misbehavior in Solaris 10's /bin/sh whereby any use of $(...) evokes a syntax error and causes immediate shell exit with status 2. Bruno Haible reported that the re-exec made it impossible to single-step through any init.sh-using script. 2010-05-16 Bruno Haible Fix collision between gnulib's and libintl's printf replacements. * lib/stdio.in.h (_GL_STDIO_STRINGIZE, _GL_STDIO_MACROEXPAND_AND_STRINGIZE): New macros. (printf): When using GNU C, map the __printf__ function to rpl_printf via __asm__. When not using GNU C, define rpl_printf instead of __printf__. * lib/printf.c: Ignore DEPENDS_ON_LIBINTL. Undoes the 2010-03-25 commit. * lib/stdio-write.c: Ignore DEPENDS_ON_LIBINTL. Undoes the 2009-08-10 commit. * m4/asm-underscore.m4: New file. * m4/stdio_h.m4 (gl_STDIO_H): Require gl_ASM_SYMBOL_PREFIX. * modules/stdio (Files): Add m4/asm-underscore.m4. (Makefile.am): Substitute ASM_SYMBOL_PREFIX. Reported by Ben Pfaff. 2010-05-16 Bruno Haible verify: Avoid skipping the test on openSUSE 11.0. * tests/test-verify.sh: Unset MALLOC_PERTURB_. 2010-05-13 Bruno Haible Avoid useless warnings from G++. * build-aux/c++defs.h (_GL_CXXALIASWARN_2, _GL_CXXALIASWARN1_2): Don't use _GL_WARN_ON_USE or _GL_WARN_ON_USE_CXX when optimizing. Reported by Jarno Rajahalme . 2010-05-11 Jim Meyering maint.mk: tweak preceding change * top/maint.mk (gl_extract_significant_defines_): Make exclusion regexps tighter by anchoring at EOL, and make the new group "shy" for slightly decreased overhead. 2010-05-11 Eric Blake maint.mk: gnulib doesn't guarantee NSIG * top/maint.mk (gl_extract_significant_defines_): Exclude NSIG. 2010-05-10 Peter O'Gorman test-pwrite.c: Remove unused variable declaration. * tests/test-pwrite.c (main): Remove read_buf declaration. Remove useless test-pwrite.sh file. * tests/test-pwrite.sh: Delete file. * modules/pwrite-tests: Remove references. Reported by Bruno Haible. 2010-05-10 Peter O'Gorman init.sh: fix a typo * tests/init.sh: Correct typo in MALLOC_PERTURB_ initialization. 2010-05-10 Jim Meyering maint.mk: avoid using a temporary file in the always-defined-macros check * top/maint.mk (.re-defmac): Remove rule. (gl_trap_): Remove definition. (sc_prohibit_always-defined_macros): Rewrite not to create and depend on a temporary file. Instead, depend on GNU grep's ability to read a list of regular expressions from stdin when given "-f -". 2010-05-09 Bruno Haible Update to GNU gettext 0.18, part 1. * m4/gettext.m4: Update to GNU gettext 0.18. * m4/intl.m4: Likewise. * m4/po.m4: Likewise. * modules/gettext (Files): Add m4/fcntl-o.m4. (configure.ac): Require gettext infrastructure from version 0.18. 2010-05-09 Jim Meyering init.sh: enable MALLOC_PERTURB_ * tests/init.sh: Enable glibc's malloc-perturbing option. maint.mk: improve sc_cross_check_PATH_usage_in_tests With my recent change in init.sh from the two-line form: -# : ${srcdir=.} -# . "$srcdir/init.sh"; path_prepend_ . +# . "${srcdir=.}/init.sh"; path_prepend_ . I noticed that using the one-line form would cause this test to fail with a false-positive, or to stop working altogether, depending on whether help-version changed or all the tests did. * top/maint.mk (_hv_regex): Remove this definition. (_hv_regex_weak): Use a weak regex to select all init.sh-sourcing files. (_hv_regex_strong): Use a stronger regex to check for conformance. (sc_cross_check_PATH_usage_in_tests): Rewrite to use the above. Give a separate diagnostic for lack of conforming use. maint.mk: prohibit definition of symbols defined by gnulib * top/maint.mk (sc_prohibit_always-defined_macros): Reject the definition of symbols defined by gnulib. 2010-05-09 Bruno Haible acl: Avoid test failure on Cygwin-hosted mingw. * tests/test-set-mode-acl.sh: Skip test if USE_ACL is 0. 2010-05-09 Bruno Haible error: Use system's fcntl function. * lib/error.c (fcntl): Undefine. 2010-05-09 Jim Meyering verify: adjust formatting to be more consistent * lib/verify.h (_GL_GENSYM): Add a space before each of a few argument-list '('s, and after one comma. 2010-05-09 Bruno Haible error: More reliable output on mingw. * lib/error.c: Include . (is_open): New function. (flush_stdout): Call it instead of fcntl, also if F_GETFL is not defined. 2010-05-09 Bruno Haible vasnprintf: Fix syntax errors in libintl build on mingw. * lib/vasnprintf.c (VASNPRINTF): Move a closing brace. Undefine pad_ourselves and prec_ourselves after use. 2010-05-08 Bruno Haible * lib/config.charset: Update comments for Cygwin 1.7. * lib/localcharset.c: Likewise. 2010-05-07 Jim Meyering init.sh: improve comments * tests/init.sh: Recommend the one-line init.sh-sourcing idiom: . "${srcdir=.}/init.sh"; path_prepend_ . Add a note about path_prepend_ and the alternative of using TESTS_ENVIRONMENT. 2010-05-06 Sergey Poznyakoff exclude: Unescape hashed patterns in wildcard mode. * lib/exclude.c (add_exclude): Unescape the pattern before adding it to the hash list. * tests/test-exclude8.sh: New test case. * modules/exclude-tests: Add new test. 2010-05-05 Eric Blake verify: automate tests * modules/verify-tests: New module. * tests/test-verify.sh: New file. * tests/test-verify.c: Guard each negative test with a unique id. Also avoid warning about unused left hand of comma expressions. 2010-05-05 Paul Eggert Further improvements to verify.h, suggested by Eric Blake. * lib/verify.h (_GL_CONCAT, _GL_CONCAT0, _GL_GENSYM): Renamed from the GL_* versions, to avoid collision with OpenGL. (_GL_COUNTER): New macro, so that we can fall back on __LINE__ if __COUNTER__ doesn't work. Test that __COUNTER__ increments rather than testing merely whether it's defined. Modify verify.h to pacify gcc -Wredundant_decls. * lib/verify.h (GL_CONCAT, GL_CONCAT0, GL_GENSYM): New macros. These use the prefix "GL_" since they're likely to be useful elsewhere. We may need to break them out into a different .h file. (__COUNTER__): Define to 0 if the compiler doesn't support it. (verify) [!defined __cplusplus]: Use them to avoid duplicate decls of verify_function__. 2010-05-05 Peter O'Gorman Tests for module pwrite. * modules/pwrite-tests: New file. * tests/test-pwrite.sh: New file. * tests/test-pwrite.c: New file. New module pwrite. * lib/unistd.in.h (pwrite): New declaration. * lib/pwrite.c: New file, from glibc with modifications. * m4/pwrite.m4: New file. * m4/unistd_h.m4 (gl_UNISTD_H): Test whether pwrite is declared. (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_PWRITE, HAVE_PWRITE, REPLACE_PWRITE. * modules/pwrite: New file. * modules/unistd (Makefile.am): Substitute GNULIB_PWRITE, HAVE_PWRITE, REPLACE_PWRITE. * tests/test-unistd-c++.cc: Check GNULIB_NAMESPACE::pwrite. * doc/posix-functions/pwrite.texi: Mention the new module. 2010-05-05 Peter O'Gorman pread: Update documentation. * doc/posix-functions/pread.texi: Mention the 'pread' module. 2010-05-04 Eric Blake docs: update cygwin progress * doc/posix-functions/wctob.texi (wctob): Cygwin 1.7.6 will fix this bug. * doc/glibc-functions/get_nprocs_conf.texi (get_nprocs_conf): Added in cygwin 1.7.2. * doc/glibc-functions/get_phys_pages.texi (get_phys_pages): Likewise. * doc/glibc-functions/get_avphys_pages.texi (get_avphys_pages): Likewise. * doc/glibc-functions/dup3.texi (dup3): Likewise. * doc/glibc-functions/pipe2.texi (pipe2): Likewise. * doc/glibc-functions/accept4.texi (accept4): Likewise. * doc/posix-functions/strfmon.texi (strfmon): Likewise. * doc/glibc-functions/get_nprocs.texi (get_nprocs): Likewise. Mention nproc module. * doc/glibc-functions/xdr_uint16_t.texi (xdr_uint16_t): Mention bug in cygwin 1.7.5 addition. * doc/glibc-functions/xdr_uint32_t.texi (xdr_uint32_t): Likewise. * doc/glibc-functions/xdr_uint64_t.texi (xdr_uint64_t): Likewise. * doc/glibc-functions/xdr_uint8_t.texi (xdr_uint8_t): Likewise. * doc/glibc-functions/xdr_array.texi (xdr_array): Added in cygwin 1.7.5. * doc/glibc-functions/xdr_bool.texi (xdr_bool): Likewise. * doc/glibc-functions/xdr_bytes.texi (xdr_bytes): Likewise. * doc/glibc-functions/xdr_char.texi (xdr_char): Likewise. * doc/glibc-functions/xdr_double.texi (xdr_double): Likewise. * doc/glibc-functions/xdr_enum.texi (xdr_enum): Likewise. * doc/glibc-functions/xdr_float.texi (xdr_float): Likewise. * doc/glibc-functions/xdr_free.texi (xdr_free): Likewise. * doc/glibc-functions/xdr_hyper.texi (xdr_hyper): Likewise. * doc/glibc-functions/xdr_int.texi (xdr_int): Likewise. * doc/glibc-functions/xdr_int16_t.texi (xdr_int16_t): Likewise. * doc/glibc-functions/xdr_int32_t.texi (xdr_int32_t): Likewise. * doc/glibc-functions/xdr_int64_t.texi (xdr_int64_t): Likewise. * doc/glibc-functions/xdr_int8_t.texi (xdr_int8_t): Likewise. * doc/glibc-functions/xdr_long.texi (xdr_long): Likewise. * doc/glibc-functions/xdr_longlong_t.texi (xdr_longlong_t): Likewise. * doc/glibc-functions/xdr_netobj.texi (xdr_netobj): Likewise. * doc/glibc-functions/xdr_opaque.texi (xdr_opaque): Likewise. * doc/glibc-functions/xdr_pointer.texi (xdr_pointer): Likewise. * doc/glibc-functions/xdr_reference.texi (xdr_reference): Likewise. * doc/glibc-functions/xdr_short.texi (xdr_short): Likewise. * doc/glibc-functions/xdr_sizeof.texi (xdr_sizeof): Likewise. * doc/glibc-functions/xdr_string.texi (xdr_string): Likewise. * doc/glibc-functions/xdr_u_char.texi (xdr_u_char): Likewise. * doc/glibc-functions/xdr_u_hyper.texi (xdr_u_hyper): Likewise. * doc/glibc-functions/xdr_u_int.texi (xdr_u_int): Likewise. * doc/glibc-functions/xdr_u_long.texi (xdr_u_long): Likewise. * doc/glibc-functions/xdr_u_longlong_t.texi (xdr_u_longlong_t): Likewise. * doc/glibc-functions/xdr_u_short.texi (xdr_u_short): Likewise. * doc/glibc-functions/xdr_union.texi (xdr_union): Likewise. * doc/glibc-functions/xdr_vector.texi (xdr_vector): Likewise. * doc/glibc-functions/xdr_void.texi (xdr_void): Likewise. * doc/glibc-functions/xdr_wrapstring.texi (xdr_wrapstring): Likewise. * doc/glibc-functions/xdrmem_create.texi (xdrmem_create): Likewise. * doc/glibc-functions/xdrrec_create.texi (xdrrec_create): Likewise. * doc/glibc-functions/xdrrec_endofrecord.texi (xdrrec_endofrecord): Likewise. * doc/glibc-functions/xdrrec_eof.texi (xdrrec_eof): Likewise. * doc/glibc-functions/xdrrec_skiprecord.texi (xdrrec_skiprecord): Likewise. * doc/glibc-functions/xdrstdio_create.texi (xdrstdio_create): Likewise. 2010-05-04 Jim Meyering gendocs.sh: make its "-s FILE" option more useful * build-aux/gendocs.sh: When honoring the -s FILE option, update $PACKAGE to reflect the probably-different basename of "FILE". 2010-05-03 Giuseppe Scrivano bootstrap: don't ignore download_po_files failure * build-aux/bootstrap (update_po_files): Don't ignore download_po_files failure. 2010-05-03 Jim Meyering maint.mk: allow to pass options to gendocs.sh * top/maint.mk (web-manual): Pass gendocs_options_ to gendocs.sh. (gendocs_options_): New overridable variable. gnu-web-doc-update: don't ignore configure or build failure * build-aux/gnu-web-doc-update: Exit nonzero upon internal failure. announce-gen: backslash-escape '@'s in --help output * build-aux/announce-gen: Fix syntax errors. maint.mk, announce-gen: allow project-specific announcement mail headers * top/maint.mk (translation_project_): Define default. (announcement_Cc_, announcement_mail_headers_): Likewise. (announcement): Invoke announce-gen with new --mail-headers option. * build-aux/announce-gen: New option: --mail-headers=HEADERS. test-xalloc-die: avoid unwarranted test failure on OpenSolaris 5.11 * tests/test-xalloc-die.sh: Redirect stdout before stderr, (i.e., "> out 2> err", rather than "2> err > out"). Otherwise, with /bin/sh on OpenSolaris 5.11 snv_134, we would end up with a stray "1> out" line in the "err2" output file when running "make check" in verbose mode (i.e., with set -x enabled). 2010-05-03 Bruno Haible wctob: Fix for weird platforms. * lib/wctob.c (wctob): When wint_t is larger than wchar_t, check the argument value. 2010-05-03 Jim Meyering maint.mk: prohibit unwarranted use of * top/maint.mk (sc_prohibit_strings_without_use): Reject inclusion of strings.h in a file that does not also use strcasecmp, strncasecmp, ffs or ffsll. maint.mk: remove obsolete comments * top/maint.mk: Remove stale, commented-out rules. 2010-05-02 Bruno Haible wcwidth: Declare also when it's aliased. * lib/wchar.in.h (wcwidth): Don't test whether wcwidth is defined as a macro. 2010-05-02 Bruno Haible Fix regression from 2010-04-25. * gnulib-tool (func_modules_transitive_closure): Check the status of all modules, not only of the tests that are of the form foo-tests where foo is a module. 2010-05-02 Bruno Haible wctob: Work around nasty Cygwin 1.7.2 bug. * m4/wctob.m4 (gl_FUNC_WCTOB): Detect the Cygwin bug. * doc/posix-functions/wctob.texi: Mention the Cygwin bug. 2010-05-01 Bruno Haible fpurge: Sharper test. * tests/test-fpurge.c (main): Add one more ftell check. * modules/fpurge-tests (Depends-on): Add ftell. Suggested by Eric Blake. 2010-05-01 Bruno Haible ftello: Another test. * tests/test-ftello3.c: New file. * modules/ftello-tests (Files): Add it. (Makefile.am): Add it to TESTS and check_PROGRAMS. Augment MOSTLYCLEANFILES. ftell: Another test. * tests/test-ftell3.c: New file. * modules/ftell-tests (Files): Add it. (Makefile.am): Add it to TESTS and check_PROGRAMS. Augment MOSTLYCLEANFILES. 2010-05-01 Bruno Haible ftell, ftello: Work around Solaris bug. * m4/ftello.m4 (gl_FUNC_FTELLO): Detect Solaris bug. * lib/ftello.c: Include stdio-impl.h. (ftello): On Solaris, when _IOWRT is set, compute the result without looking at _IOREAD. * modules/ftello (Files): Add lib/stdio-impl.h. * doc/posix-functions/ftell.texi: Mention Solaris bug. * doc/posix-functions/ftello.texi: Likewise. Reported by Eric Blake. 2010-05-01 Bruno Haible freading: Adapt to special meaning of _IOREAD flag on Solaris. * lib/freading.c (freading): On Solaris, ignore the _IOREAD flag if the _IOWRT flag is also set. 2010-05-01 Bruno Haible Fix doc about a HP-UX stdio bug. * doc/posix-functions/ftell.texi: Mark HP-UX bug as unfixed. * doc/posix-functions/ftello.texi: Likewise. 2010-05-01 Bruno Haible lseek test: Fix failure on Solaris. * tests/test-lseek.sh: Partially revert 2010-04-20 commit. Consume all output. 2010-04-30 Jim Meyering bootstrap: don't ignore failure to generate po*/Makevars * build-aux/bootstrap (with_gettext): Don't ignore failure to create po/Makevars or runtime-po/Makevars. 2010-04-29 Eric Blake headers: relax license to LGPLv2+ * modules/fcntl-h (License): Relax license. * modules/getopt-posix (License): Likewise. * modules/locale (License): Likewise. * modules/math (License): Likewise. * modules/pty (License): Likewise. * modules/sched (License): Likewise. * modules/search (License): Likewise. * modules/spawn (License): Likewise. * modules/stdarg (License): Likewise. * modules/sysexits (License): Likewise. 2010-04-29 Jim Meyering inttypes: relax license to LGPLv2+ * modules/inttypes (License): Relax license. 2010-04-29 Simon Josefsson * top/maint.mk (indent): Run twice to produce idempotent results. 2010-04-28 Bruno Haible getdate: Generate getdate.c in the source directory. * modules/getdate (Makefile.am): Add rule for getdate.c. Augment MOSTLYCLEANFILES. Suggested by Daniel Richard G. and Ralf Wildenhues. 2010-04-27 Andreas Gruenbacher (tiny change) * lib/utimens.c: On Tru64, the timestamp parameter of utimens(2) is not declared as a const *; avoid warnings in that case. 2010-04-28 Eric Blake canonicalize-lgpl: avoid compiler warning * lib/canonicalize-lgpl.c (versioned_symbol): Avoid an 'empty declaration' / 'extraneous semicolon' warning with some compilers. Reported by Andreas Gruenbacher. 2010-04-28 Jim Meyering init.sh: ensure a more reliable exit status when exiting via trap * tests/init.sh (setup_): Don't rely on $? in signal handler. Inspired by patches from Dmitry V. Levin. Also trap on signal 3 (SIGQUIT). 2010-04-27 Bruno Haible Update doc about utimes(). * doc/posix-functions/utimes.texi: Mention the OSF/1 problem and the 'utimens' module. Reported by Andreas Gruenbacher . 2010-04-27 Eric Blake full-read, full-write: relax license * modules/full-read (License): Drop to LGPLv2+. * modules/full-write (License): Likewise. * modules/safe-read (License): Likewise. * modules/safe-write (License): Likewise. pthread: mention library for linking * modules/pthread (Link): Mention $(LIB_PTHREAD). 2010-04-27 Jim Meyering maint.mk: fix a bug introduced in last change * top/maint.mk (gl_assured_headers_): Now that all names are on one line, use sed's "g" modifier. Note that while the \.in\.h LHS is not anchored to end of word, it should be adequate. maint.mk: avoid side-effect in latest syntax-check * top/maint.mk (sc_prohibit_always_true_header_tests): Rework not to run commands via $(shell...), and hence to incur cost only when the new rule is actually run. maint.mk: syntax-check: prohibit HAVE_
_H that are always true Derive the list of guaranteed header names from gnulib/lib/*.in.h, and use that to create a regexp used to detect all #if HAVE_..._H uses. * top/maint.mk (sc_prohibit_always_true_header_tests): New rule. (gl_assured_headers_, az_, AZ_): Define. (gl_header_upper_case_or_, gl_have_header_regex_): Define. 2010-04-26 Jim Meyering Bruno Haible gnulib-common.m4: make glibc write diagnostics to stderr, not /dev/tty * m4/gnulib-common.m4 (gl_COMMON_BODY): Set LIBC_FATAL_STDERR_. Prompted by an exchange with Gilles Espinasse. 2010-04-26 Jim Meyering git-version-gen: aesthetic tweak * build-aux/git-version-gen: Use "$nl" rather than a literal, so that the command remains on a single line. 2010-04-26 Eric Blake git-version-gen: allow use on EBCDIC hosts * build-aux/git-version-gen (dirty): Use literal rather than tying ourselves to ascii. Reported by Steve Goetze. 2010-04-25 Bruno Haible netdb: Add support for GNULIB_POSIXCHECK. * lib/netdb.in.h: Include warn-on-use.h. (getaddrinfo, freeaddrinfo, gai_strerror, getnameinfo): Warn if these functions are used when GNULIB_POSIXCHECK is defined and the getaddrinfo module is not in use. * m4/netdb_h.m4 (gl_HEADER_NETDB): Test whether getaddrinfo, freeaddrinfo, gai_strerror, getnameinfo are declared. * modules/netdb (Depends-on): Add warn-on-use. (Makefile.am): Include warn-on-use.h in netdb.h. 2010-04-24 Ian Beckwith build: avoid "make check" failure without .git/ directory * Makefile (sc_prefer_ac_check_funcs_once): Skip this test when there is no .git/ directory. 2010-04-25 Bruno Haible ptsname: Fix misuse of ttyname_r. * lib/ptsname.c (__ptsname_r): Use __ttyname_r's return value instead of errno. 2010-04-25 Bruno Haible ttyname_r: Make it work on Solaris 10. * m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Define HAVE_POSIXDECL_TTYNAME_R if the system function has the POSIX declaration. Test whether the function fails if the buffer is less than 128 bytes large. * lib/ttyname_r.c (ttyname_r): Handle both possible declarations of the system's ttyname_r function. Provide a reasonably large buffer. * modules/ttyname_r (Depends-on): Add extensions. * doc/posix-functions/ttyname_r.texi: Mention the Solaris problem. 2010-04-25 Bruno Haible Use the 'extensions' module for some more functions on Solaris. * doc/posix-functions/asctime_r.texi: Recommend to use the 'extensions' module. * doc/posix-functions/ctime_r.texi: Likewise. * doc/posix-functions/getgrgid_r.texi: Likewise. * doc/posix-functions/getgrnam_r.texi: Likewise. * doc/posix-functions/getpwnam_r.texi: Likewise. * doc/posix-functions/getpwuid_r.texi: Likewise. * doc/posix-functions/readdir_r.texi: Likewise. * doc/posix-functions/sigwait.texi: Likewise. * m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Add comment. * doc/posix-functions/getlogin_r.texi: Mark Solaris problem as fixed. 2010-04-25 Bruno Haible ttyname_r: Make it work on MacOS X 10.4 and Solaris 10. * m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Test whether the system function has the POSIX declaration. Set REPLACE_TTYNAME_R if not. * lib/ttyname_r.c: Include . (ttyname_r): Define using the system's ttyname_r function, if it exists and not on Solaris. * lib/unistd.in.h (ttyname_r): Replace function if REPLACE_TTYNAME_R is set. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_TTYNAME_R. * modules/unistd (Makefile.am): Substitute REPLACE_TTYNAME_R. * doc/posix-functions/ttyname_r.texi: Mark the problem as fixed. Reported by Simon Josefsson. 2010-04-25 Bruno Haible Mention effects of _POSIX_PTHREAD_SEMANTICS on Solaris. * doc/posix-functions/asctime_r.texi: Mention the Solaris problem. * doc/posix-functions/ctime_r.texi: Likewise. * doc/posix-functions/getgrgid_r.texi: Likewise. * doc/posix-functions/getgrnam_r.texi: Likewise. * doc/posix-functions/getlogin_r.texi: Likewise. * doc/posix-functions/getpwnam_r.texi: Likewise. * doc/posix-functions/getpwuid_r.texi: Likewise. * doc/posix-functions/readdir_r.texi: Likewise. * doc/posix-functions/sigwait.texi: Likewise. * doc/posix-functions/ttyname_r.texi: Likewise. Reported by Simon Josefsson. 2010-04-25 Bruno Haible gnulib-tool: Don't include hairy tests of dependencies in testdirs. * gnulib-tool (func_usage): Document that --with-*-tests options apply also to --create-testdir. (func_acceptable): Don't consider the status of *-tests modules here. (func_modules_transitive_closure): Consider it here, before including a test module. (func_import, func_create_testdir): Set inc_all_direct_tests, inc_all_indirect_tests. * doc/gnulib.texi (Extra tests modules): Document new behaviour of --create-testdir and --create-megatestdir. 2010-04-25 Bruno Haible gnulib-tool: Add --without-*-tests options. * gnulib-tool (func_usage): Document the --without-*-tests options. (excl_cxx_tests, excl_longrunning_tests, excl_privileged_tests, excl_unportable_tests): New variables. Fail if they are specified with --import or --update. (func_acceptable): Respect the excl_*_tests variables. (func_import): Set the excl_*_tests variables to empty. 2010-04-25 Simon Josefsson Bruno Haible Work around a MacOS X 10.4 bug with openpty. * doc/glibc-functions/openpty.texi: Mention the MacOS X 10.4 bug. * tests/test-openpty.c (main): Close the master side explicitly. 2010-04-25 Bruno Haible strnlen: Fix a C++ test error on MacOS X and Solaris. * m4/strnlen.m4 (gl_FUNC_STRNLEN): Don't set REPLACE_STRNLEN to 1 if the function is not declared. Reported by Jarno Rajahalme and Simon Josefsson. 2010-04-24 Bruno Haible Avoid a gcc warning. * tests/test-vasprintf.c (test_vasprintf, test_asprintf): Pass argument of correct type for %08lx directive. Reported by Eric Blake. 2010-04-24 Bruno Haible vasnprintf: Correct errno value in case of out-of-memory. * lib/vasnprintf.c (VASNPRINTF): Set errno to 0 before calling SNPRINTF or sprintf. Use the errno value from SNPRINTF or sprintf. Reported by Ian Beckwith . 2010-04-24 Bruno Haible ansi-c++-opt: Find correct compiler when cross-compiling. * m4/ansi-c++.m4 (gl_PROG_ANSI_CXX): Use AC_CHECK_TOOLS instead of AC_CHECK_PROGS. Reported by Simon Josefsson. 2010-04-24 Giuseppe Scrivano vc-list-files: Add support for subversion * build-aux/vc-list-files: Use "svn list" to generate the list of files controlled by subversion. 2010-04-23 Jim Meyering vc-list-files tests: convert to use init.sh * tests/test-vc-list-files-cvs.sh: Invoke "$srcdir/init.sh" and path_prepend_. Use Exit, not exit. Use skip_ rather than open coding it. Remove trap set-up and compare definitions. * tests/test-vc-list-files-git.sh: Likewise. * modules/vc-list-files-tests (Files): Add tests/init.sh. 2010-04-22 Simon Josefsson * top/maint.mk (sc_prohibit_backup_files): Prohibit checked in backup files. 2010-04-21 Simon Josefsson * tests/test-vasprintf.c (test_vasprintf, test_asprintf): Test %08lx. 2010-04-20 Eric Blake tests: be robust to ignored SIGPIPE * tests/test-select-in.sh: Consume all output. * tests/test-lseek.sh: Check correct exit status, while avoiding EPIPE. 2010-04-20 Simon Josefsson Bruno Haible visibility: Don't use -fvisibility if it leads to a warning. * m4/visibility.m4 (gl_VISIBILITY): Check whether -Werror is usable. If yes, don't pretend that visibility works if it leads to a warning. Reported by Mike Gran . 2010-04-20 Andreas Gruenbacher * build-aux/bootstrap: Use "git -h" for testing for supported options instead of "git --help". The short-form option only shows a summary, and doesn't layout the full man page. Grep for the full option name in the summary, too. 2010-04-19 Bruno Haible relocatable: Drop the need to define RELOCATABLE_STRIP in Makefile.am. * m4/relocatable.m4 (gl_RELOCATABLE_BODY): Set RELOCATABLE_STRIP. * doc/relocatable-maint.texi (Supporting Relocation): Remove the mention of RELOCATABLE_STRIP. Reported by Sylvain Beucler . 2010-04-19 Bruno Haible * lib/diffseq.h: Fix typo in comment. Reported by Eric Blake. 2010-04-19 Bruno Haible ioctl: Move autoconf macro to a .m4 file. * m4/ioctl.m4: New file, extracted from modules/ioctl. * modules/ioctl (Files): Add it. (configure.ac): Simply invoke gl_FUNC_IOCTL. Reported by Ian Beckwith . 2010-04-18 Andreas Gruenbacher Bruno Haible diffseq: Accommodate use-case with abstract arrays. * lib/diffseq.h (struct context): Remove xvec, yvec fields if ELEMENT is not defined. (diag, compareseq): Remove local variables xv, yv if ELEMENT is not defined. Use local macro XREF_YREF_EQUAL instead of EQUAL. 2010-04-18 Bruno Haible * doc/posix-headers/stdbool.texi: More precise wording. 2010-04-17 Jim Meyering maint.mk: use gnu-style indentation in an embedded perl script * top/maint.mk (detect_empty_lines_at_EOF_): Clean up formatting. Rename variable: s/two/last_two_bytes/ 2010-04-16 Eric Blake test-stdbool: skip test that fails with Solaris CC * tests/test-stdbool.c (f): Skip test that causes compilation error under buggy C++ compiler. * lib/stdbool.in.h: Document the limitation. * doc/posix-headers/stdbool.texi (stdbool.h): Likewise. setenv: allow compilation with C++ * lib/setenv.c (__add_to_environ): Add a cast. Also, drop use of register keyword. stdint: allow test to pass with C++ * tests/test-stdint.c: Define __STDC_CONSTANT_MACROS, for glibc. getopt: allow compilation with C++ * lib/getopt_int.h (__ordering): Hoist enum declaration outside struct. * lib/getopt.c (_getopt_internal_r): Use correct type. Reported by Dagobert Michelson, via Joel E. Denny. 2010-04-16 Bruno Haible Override netdb.h always. * modules/netdb (Makefile.am): Augment BUILT_SOURCES always. * m4/netdb_h.m4 (gl_HEADER_NETDB): Don't set NETDB_H. Reported by Ludovic Courtès . 2010-04-15 Bruno Haible openpty: Fix mistake from 2010-03-21. * m4/pty.m4 (gl_FUNC_OPENPTY): Define HAVE_OPENPTY when openpty exists. Reported by Simon Josefsson. 2010-04-15 Eric Blake test-forkpty: fix expected signature * tests/test-forkpty.c (SIGNATURE_CHECK): Add appropriate const. Reported by Simon Josefsson. 2010-04-15 Jim Meyering maint.mk: texinfo_suffix_re_: correct the default regexp * top/maint.mk (texinfo_suffix_re_): Fix default regexp. * top/maint.mk (sc_texinfo_acronym): Improve filename regexp, and make it configurable via texinfo_suffix_re_. 2010-04-14 Eric Blake strtok_r: relax license to LGPLv2+ * modules/strtok_r (License): Relax license. Reported by Matthias Bolte. 2010-04-14 Simon Josefsson * lib/gc-libgcrypt.c (gc_init): Use MIN_GCRYPT_VERSION set to version 1.4.4 by default instead of requiring the libgcrypt version used during build. This makes it possible to use the application with older but still binary compatible libgcrypt versions. 2010-04-13 Eric Blake getopt-gnu: match recent glibc fixes and posix ruling * tests/test-getopt.h (test_getopt): Strengthen tests of leading '+' handling, when requesting extensions. * tests/test-getopt_long.h (test_getopt_long): Strengthen test of 'W;' handling. * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Detect glibc 2.11 bug. * doc/posix-functions/getopt.texi (getopt): Document this. * doc/glibc-functions/getopt_long.texi (getopt_long): Likewise. * doc/glibc-functions/getopt_long_only.texi (getopt_long_only): Likewise. getopt: merge bug fixes from glibc * lib/getopt.c (_getopt_internal_r): Use correct message for 'W;' diagnostics. Honor '+:' correctly. Reject ';'. getopt-posix: detect MacOS bug * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Reject MacOS botch of optind when missing a required argument. * doc/posix-functions/getopt.texi (getopt): Document the bug. * doc/glibc-functions/getopt_long.texi (getopt_long): Likewise. * doc/glibc-functions/getopt_long_only.texi (getopt_long_only): Likewise. getopt-posix: avoid spurious failure on Solaris * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Check for getopt_clip as an indicator that setting optind=1 is sufficient for reset. getopt-posix: avoid spurious failure on FreeBSD * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Check for optreset even in POSIX mode, since the m4 test uses it. gnulib-tool: silence warning on BSD sh * gnulib-tool: Avoid leaking warning about unknown 'declare'. 2010-04-13 Jim Meyering doc: users.txt: GNU patch now uses gnulib * users.txt: Add patch. 2010-04-12 Jim Meyering maint.mk: generate more concise timing data for syntax-check rules * top/maint.mk ($(sc_z_rules_)): Remove the ":", "sc_" prefix and " done" from each line that reports a syntax-check test duration. 2010-04-12 Andreas Gruenbacher git-version-gen: use "git update-index..." rather than "git status" * build-aux/git-version-gen: Use git update-index --refresh, not "git status". With some versions of git, "git status" would fail to update the index and result in an unwarranted "-dirty" suffix. 2010-04-11 Jim Meyering openat: correct formatting (no semantic change) * m4/openat.m4 (gl_FUNC_FCHOWNAT): Correct formatting in AC_DEFINE. Suggested by Bruno Haible. 2010-04-11 Bruno Haible Stricter declaration checking in testdirs. * gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): If for_tests is true, augment AM_CPPFLAGS to define GNULIB_STRICT_CHECKING. * build-aux/warn-on-use.h (_GL_WARN_ON_USE, _GL_WARN_ON_USE_CXX): When GNULIB_STRICT_CHECKING is defined, verify that the function is declared. 2010-04-11 Paolo Bonzini Bruno Haible libunistring: Improve configure output. * m4/libunistring.m4 (gl_LIBUNISTRING): Check for libiconv first. Don't say "consider installing GNU libunistring" when checking again with libiconv. 2010-04-11 Bruno Haible libunistring: Correct value of $LTLIBUNISTRING. * m4/libunistring.m4 (gl_LIBUNISTRING): When it depends on libiconv, correct the value of $LTLIBUNISTRING. 2010-04-11 Bruno Haible havelib: Add static libraries to LIBS in the right order. * m4/lib-link.m4 (AC_LIB_HAVE_LINKFLAGS): When $LIB[]NAME contains no -l options, prepend it to $LIBS, instead of appending it to $LIBS. 2010-04-11 Bruno Haible libunistring: Detect libunistring also when it depends on libiconv. * m4/libunistring.m4 (gl_LIBUNISTRING): Unset the cached result before the second AC_LIB_HAVE_LINKFLAGS invocation. 2010-04-11 James Youngman close-stream: declare local scalars to be "const" * lib/close-stream.c (close_stream): Make boolean variables const to document the fact that we set but do not change them. 2010-04-11 Bruno Haible * m4/libunistring.m4 (gl_LIBUNISTRING): Fix typo in comment. 2010-04-11 Jim Meyering maint.mk: don't include dist-check.mk * top/maint.mk: Remove bogus include directive. maint.mk: improve empty-line-at-EOF check * top/maint.mk (sc_prohibit_empty_lines_at_EOF): Use Perl-based solution, rather than tail+Perl-based one. The latter would read a few kilobytes from the end of each file, and did not handle empty files properly. maint.mk: print the elapsed time for each syntax-check rule * top/maint.mk (sc_m_rules_): Save start time in a file. (sc_z_rules_): New rules: remove temp file and print elapsed time. (local-check): Interpose the .z rules 2010-04-11 Jim Meyering maint.mk: detect_empty_lines_at_EOF_: avoid FP for an empty file * top/maint.mk (detect_empty_lines_at_EOF_): Don't confuse an empty file with one that ends in an empty line. 2010-04-10 Bruno Haible mkdir: Make it work on mingw64. * lib/sys_stat.in.h: Include together with . * lib/mkdir.c: Update comment. Reported by Roman Donchenko (Роман Донченко) . 2010-04-10 Bruno Haible Don't override improved macro from newer autoconf. * m4/gnulib-common.m4 (AC_C_RESTRICT): Don't define for autoconf >= 2.62. Reported by Joel E. Denny . 2010-04-10 Jim Meyering maint.mk: new syntax-check rule: prohibit empty lines at end of file * top/maint.mk (sc_prohibit_empty_lines_at_EOF): New rule. maint.mk: correct a diagnostic * top/maint.mk (sc_prohibit_HAVE_MBRTOWC): Fix obsolete use of $re in diagnostic; now use $prohibit. 2010-04-10 Bruno Haible fchownat: Fix a C++ test error on Solaris 8. * m4/openat.m4 (gl_FUNC_FCHOWNAT): Don't set REPLACE_FCHOWNAT to 1 if the function does not exist. 2010-04-10 Bruno Haible vasnprintf: Add more tests. * tests/test-vasnprintf-posix.c: Include . (test_function): Test converting an invalid wide string. vasnprintf: Correct handling of unconvertible wide string arguments. * lib/vasnprintf.c (MAX_ROOM_NEEDED): New function, extracted from VASNPRINTF. (VASNPRINTF): Use it. After snprintf failed, allocate more memory only if HAVE_SNPRINTF_RETVAL_C99 is false and the allocated memory is smaller than the expected maximum need for the directive. Set errno to EILSEQ, not EINVAL, when the directive is 'c' or 's'. (local_strnlen, local_wcslen, local_wcsnlen): Update conditions. * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF): Require AC_C_INLINE and gl_SNPRINTF_RETVAL_C99. Define HAVE_SNPRINTF_RETVAL_C99. * modules/vasnprintf (Files): Add m4/printf.m4. Reported by Jarno Rajahalme . 2010-04-10 Bruno Haible vasnprintf: Fix crash in %ls directive. * lib/vasnprintf.c (VASNPRINTF): Don't abort when a unconvertible wide string is passed as argument to %ls, with no precision and no width. Reported by Jarno Rajahalme . 2010-04-10 Bruno Haible vasnprintf: Fix multiple test failures on mingw. * lib/vasnprintf.c (SNPRINTF) [mingw]: Define to snprintf, not _snprintf, or snwprintf, not _snwprintf. 2010-04-10 Bruno Haible write: Fix a C++ test error on mingw. * lib/unistd.in.h (write): Use _GL_CXXALIAS_SYS_CAST. 2010-04-10 Bruno Haible vasnprintf test: Reduce code duplication. * tests/test-vasnprintf.c (test_function): New function, extracted from test_vasnprintf. (test_vasnprintf, test_asnprintf): Invoke it. 2010-04-10 Bruno Haible strnlen: Fix warning in C++ mode on MacOS X. * lib/string.in.h (strnlen): Use the modern idiom. * m4/strnlen.m4 (gl_FUNC_STRNLEN): Set REPLACE_STRNLEN to 1, instead of defining strnlen as a macro already in . * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize REPLACE_STRNLEN. * modules/string (Makefile.am): Substitute REPLACE_STRNLEN. Reported by Jarno Rajahalme . 2010-04-08 James Youngman * doc/manywarnings.texi (manywarnings): Add missing parenthesis in the example. 2010-04-09 Jim Meyering maint.mk: print better diagnostic when there is no $(_hv_file) * top/maint.mk (sc_cross_check_PATH_usage_in_tests): Skip test and announce that when $(_hv_file) (aka help-version) does not exist. init.sh: run tr in the "C" locale to avoid multibyte interpretation * tests/init.sh (rand_bytes_): Run tr in the "C" locale so it does not try to interpret its random input bytes. Jarno Rajahalme reported that ./test-xalloc-die.sh would fail with "tr: Illegal byte sequence". on Darwin 10.3.0 with LC_CTYPE=UTF-8. (mktempd_): Likewise, just in case. ftruncate: add two years to projected module removal date: 2012 * m4/ftruncate.m4: Adjust comments. ftruncate: mark module as obsolete; even MinGW provides it, now * modules/ftruncate (Status): Obsolete. (Notice): Say that. * doc/posix-functions/ftruncate.texi: Don't say MinGW lacks it. http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/9203 2010-04-08 Bruno Haible Fix side effects from tests-related modules. * modules/dprintf-posix (Comment): New section. * modules/fprintf-posix (Comment): Likewise. * modules/obstack-printf-posix (Comment): Likewise. * modules/printf-posix (Comment): Likewise. * modules/snprintf-posix (Comment): Likewise. * modules/sprintf-posix (Comment): Likewise. * modules/vasnprintf-posix (Comment): Likewise. * modules/vasprintf-posix (Comment): Likewise. * modules/vdprintf-posix (Comment): Likewise. * modules/vfprintf-posix (Comment): Likewise. * modules/vprintf-posix (Comment): Likewise. * modules/vsnprintf-posix (Comment): Likewise. * modules/vsprintf-posix (Comment): Likewise. * modules/xprintf-posix (Comment): Likewise. * modules/xvasprintf-posix (Comment): Likewise. * modules/ceilf-tests (Depends-on): Remove fprintf-posix. * modules/floorf-tests (Depends-on): Likewise. * modules/round-tests (Depends-on): Likewise. * modules/roundf-tests (Depends-on): Likewise. * modules/trunc-tests (Depends-on): Likewise. * modules/truncf-tests (Depends-on): Likewise. * tests/test-ceilf2.c (check): Don't invoke fprintf if the 'fprintf-posix' module is not present. * tests/test-floorf2.c (check): Likewise. * tests/test-trunc2.c (check): Likewise. * tests/test-truncf2.c (check): Likewise. * tests/test-round2.c (equal): Likewise. Reported by Jarno Rajahalme . 2010-04-07 Karl Berry * config/srclist.txt, * config/srclistvars.sh, * config/srclist-update: doc fixes. 2010-04-07 Jim Meyering maint.mk: add a PATH crosschecking syntax-check rule * top/maint.mk (sc_cross_check_PATH_usage_in_tests): New rule. Useful if you use a test like the one in help-version (coreutils, diffutils, grep, gzip) that ensures $(VERSION) matches what is printed by prog --version. 2010-04-06 Bruno Haible Fix link error on mingw. * modules/unistd-c++-tests (test_unistd_c___LDADD): Add LIBSOCKET. * modules/fcntl-h-c++-tests (test_fcntl_h_c___LDADD): Likewise. 2010-04-06 Bruno Haible Assume rmdir exists. * lib/rmdir.c (rpl_rmdir): Remove code that invokes the rmdir program. 2010-04-06 Giuseppe Scrivano doc: update users.txt * users.txt: Add gcal. 2010-04-06 Jim Meyering init.sh: simply unset TMPDIR rather than risking env -i * tests/init.sh (mktempd_): Using env -i is rather harsh, and although it probably works fine on all Unix-based systems, some systems (Cygwin?) cannot tolerate a totally cleared environment. Suggestion from Eric Blake. 2010-04-06 Jim Meyering init.sh: portability fix: use env's POSIX-specified -i option not -u * tests/init.sh (mktempd_): Use env -i and set PATH explicitly rather than unportable env -u. Solaris 5.11's env lacks support for -u. 2010-04-05 Bruno Haible btowc: Work around Cygwin 1.7.2 bug. * m4/btowc.m4 (gl_FUNC_BTOWC): Set REPLACE_BTOWC to 1 if the function does not map NUL to 0. * doc/posix-functions/btowc.texi: Mention the Cygwin bug. 2010-04-05 Bruno Haible Make the multithread modules work on Cygwin 1.7.2. * m4/threadlib.m4 (gl_THREADLIB_BODY): Improve the test whether imported symbols can be declared weak, so that it returns "no" on Cygwin 1.7.2. 2010-04-05 Bruno Haible Use the module 'strncat'. * modules/unistr/u8-strncat (Depends-on): Add strncat. Tests for module 'strncat'. * modules/strncat-tests: New file. * tests/test-strncat.c: New file. New module 'strncat'. * lib/string.in.h (strncat): New declaration. * lib/strncat.c: New file, based on lib/unistr/u-strncat.h. * m4/strncat.m4: New file, based on m4/memchr.m4. * modules/strncat: New file. * m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Also check whether strncat is declared. (gl_HEADER_STRING_H_DEFAULTS): Initialize GNULIB_STRNCAT, REPLACE_STRNCAT. * modules/string (Makefile.am): Substitute GNULIB_STRNCAT, REPLACE_STRNCAT. * doc/posix-functions/strncat.texi: Mention the Solaris bug and the new module. * tests/test-string-c++.cc: Check signature of strncat. 2010-04-05 Jim Meyering xstrtoumax-tests: convert to use init.sh * modules/xstrtoumax-tests (Files): Add tests/init.sh. * tests/test-xstrtoumax.sh: Invoke "$srcdir/init.sh" and path_prepend_. Use Exit, not exit. Remove uses of $EXEEXT and "./" to run a program in the current dir. xstrtoimax-tests: convert to use init.sh * modules/xstrtoimax-tests (Files): Add tests/init.sh. * tests/test-xstrtoimax.sh: Invoke "$srcdir/init.sh" and path_prepend_. Use Exit, not exit. Remove uses of $EXEEXT and "./" to run a program in the current dir. 2010-04-05 Bruno Haible sys_socket: Avoid #define replacements in C++ mode. * lib/sys_socket.in.h (close, gethostname, select): In C++, attach a warning to the function if possible, rather than #defining the symbol to a dysfunctional alias. 2010-04-05 Bruno Haible fseeko: Fix C++ test error on mingw. * m4/fseeko.m4 (gl_HAVE_FSEEKO): New macro, extracted from gl_FUNC_FSEEKO. (gl_REPLACE_FSEEKO): Also set REPLACE_FSEEKO if appropriate. (gl_FUNC_FSEEKO): Require gl_HAVE_FSEEKO. Update. * m4/fflush.m4 (gl_REPLACE_FFLUSH): Don't fiddle with internals of the fseeko module. Instead, invoke gl_REPLACE_FSEEKO. 2010-04-05 Bruno Haible duplocale: Improve test output. * tests/test-duplocale.c (main): Print reason for skipped test. 2010-04-05 Bruno Haible Assume rmdir exists. * m4/rmdir.m4 (gl_FUNC_RMDIR): Remove test whether rmdir exists. * doc/posix-functions/rmdir.texi: Remove mention of "old platforms". 2010-04-05 Bruno Haible Fix link error on Solaris 8 with cc. * modules/pty-c++-tests (test_pty_c___LDADD): Add LIBINTL. 2010-04-05 Bruno Haible frexpl: Fix a C++ test error on Solaris 8 and Cygwin. * lib/math.in.h (frexpl): Fix condition on _GL_CXXALIASWARN invocation. 2010-04-05 Bruno Haible vasprintf: Update documentation. * doc/glibc-functions/asprintf.texi: Mention the 'vasprintf' module. 2010-04-05 Bruno Haible ptsname: Improve test. * tests/test-ptsname.c (main): Also try the various master names of BSD systems. 2010-04-05 Bruno Haible memchr: Avoid a possible C++ test error. * lib/string.in.h (memchr): Provide declaration if function is missing. * m4/memchr.m4 (gl_FUNC_MEMCHR): If the function is missing, set HAVE_MEMCHR to 0, not REPLACE_MEMCHR to 1. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize HAVE_MEMCHR. * modules/string (Makefile.am): Substitute HAVE_MEMCHR. 2010-04-05 Bruno Haible strtok_r: Improve idiom. * m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Invoke gl_PREREQ_STRDUP only when AC_LIBOBJ is used. 2010-04-05 Bruno Haible strdup: Improve idiom. * m4/strdup.m4 (gl_FUNC_STRDUP): Invoke gl_PREREQ_STRDUP only when AC_LIBOBJ is used. (gl_FUNC_STRDUP_POSIX): When strdup is missing and malloc is not POSIX compliant, don't set REPLACE_STRDUP to 1. Invoke gl_PREREQ_STRDUP only when AC_LIBOBJ is used. 2010-04-05 Bruno Haible mbsinit, mbrtowc, wcrtomb: Improve idioms. * m4/mbsinit.m4 (gl_FUNC_MBSINIT): When the function does not exist, don't set REPLACE_MBSINIT to 1. * m4/mbrtowc.m4 (gl_FUNC_MBRTOWC): When the function does not exist, don't set REPLACE_MBRTOWC to 1. * m4/mbsrtowcs.m4 (gl_FUNC_MBSRTOWCS): When the function does not exist, don't set REPLACE_MBSRTOWCS to 1. * m4/mbsnrtowcs.m4 (gl_FUNC_MBSNRTOWCS): When the function does not exist, don't set REPLACE_MBSNRTOWCS to 1. * m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): When the function does not exist, don't set REPLACE_WCRTOMB to 1. * m4/wcsrtombs.m4 (gl_FUNC_WCSRTOMBS): When the function does not exist, don't set REPLACE_WCSRTOMBS to 1. * m4/wcsnrtombs.m4 (gl_FUNC_WCSNRTOMBS): When the function does not exist, don't set REPLACE_WCSNRTOMBS to 1. 2010-04-05 Bruno Haible ldexpl: Improve idiom. * m4/ldexpl.m4 (gl_FUNC_LDEXPL): When the function is not declared, make sure to set HAVE_DECL_LDEXPL to 0. 2010-04-05 Jim Meyering xstrtol-tests: convert to use init.sh * modules/xstrtol-tests (Files): Add tests/init.sh. * tests/test-xstrtol.sh: Invoke "$srcdir/init.sh" and path_prepend_. Use Exit, not exit. Remove uses of $EXEEXT and "./" to run a program in the current dir. atexit-tests: convert to use init.sh * modules/atexit-tests (Files): Add tests/init.sh. * tests/test-atexit.sh: Invoke "$srcdir/init.sh" and path_prepend_. Use Exit, not exit. Remove uses of $EXEEXT and "./" to run a program in the current dir. init.sh: fix typo * tests/init.sh: Restore omitted ":" before stderr_fileno_ initialization. init.sh: make it easier for a test script to write to the tty, ... when using automake's parallel-tests mode. * tests/init.sh (stderr_fileno_): Define overridable variable. (warn_): New function, to use it. (fail_, skip_, framework_failure_): Use warn_. 2010-04-04 Bruno Haible btowc: Avoid warning. * lib/btowc.c: Include . Reported by Hauke Fath . 2010-04-04 Hauke Fath (tiny change) Bruno Haible wchar: Port to NetBSD 1.5. * lib/wchar.in.h (WEOF): Provide fallback also when wint_t exists. * lib/wctype.in.h (WEOF): Likewise. 2010-04-04 Hauke Fath (tiny change) Bruno Haible Port extended stdio to NetBSD 1.5. * lib/stdio-impl.h [NetBSD]: Include . (struct __sfileext, fp_ub): Define the "old way" for NetBSD 1.5Z and older. 2010-04-04 Bruno Haible string: Remove unused substitution. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Don't initialize HAVE_DECL_STRERROR. * modules/string (Makefile.am): Don't substitute HAVE_DECL_STRERROR. 2010-04-04 Bruno Haible strtod: Avoid a possible C++ test error. * m4/strtod.m4 (gl_FUNC_STRTOD): When setting HAVE_STRTOD to 0, don't set REPLACE_STRTOD. 2010-04-04 Bruno Haible strerror: Update documentation. * doc/posix-functions/strerror.texi: Remove mention of old platforms. 2010-04-04 Bruno Haible stdio: Fix some C++ test errors on Solaris 8 with GCC. * lib/stdio.in.h (vdprintf, vfprintf, vprintf, vsprintf): Use _GL_CXXALIAS_SYS_CAST. 2010-04-04 Bruno Haible frexpl: Fix a C++ test error on Solaris 8 and Cygwin. * m4/frexpl.m4 (gl_FUNC_FREXPL, gl_FUNC_FREXPL_NO_LIBM): When the function is not declared, set HAVE_DECL_FREXPL to 0, instead of setting REPLACE_FREXPL to 1. * doc/posix-functions/frexpl.texi: Update documentation. 2010-04-04 Bruno Haible math: Fix some C++ test errors on Solaris 8 and Cygwin. * lib/math.in.h (cosl, logl, sinl): Use simpler idiom. 2010-04-04 Bruno Haible Implement nanosleep for native Windows. * lib/nanosleep.c (nanosleep): New implementation for native Windows. 2010-04-04 Bruno Haible math: Fix some C++ test errors on Solaris 8. * lib/math.in.h (truncf, trunc): Use simpler idiom. 2010-04-04 Bruno Haible math: Fix some C++ test errors on Cygwin. * lib/math.in.h (ceilf, ceill, floorf, floorl, roundf, round, roundl, truncl): Provide declaration if the system does not have it. * m4/ceilf.m4 (gl_FUNC_CEILF): If the function is not declared, set HAVE_DECL_CEILF to 0, not REPLACE_CEILF to 1. * m4/ceill.m4 (gl_FUNC_CEILL): If the function is not declared, set HAVE_DECL_CEILL to 0, not REPLACE_CEILL to 1. * m4/floorf.m4 (gl_FUNC_FLOORF): If the function is not declared, set HAVE_DECL_FLOORF to 0, not REPLACE_FLOORF to 1. * m4/floorl.m4 (gl_FUNC_FLOORL): If the function is not declared, set HAVE_DECL_FLOORL to 0, not REPLACE_FLOORL to 1. * m4/round.m4 (gl_FUNC_ROUND): If the function is not declared, set HAVE_DECL_ROUND to 0, not REPLACE_ROUND to 1. * m4/roundf.m4 (gl_FUNC_ROUNDF): If the function is not declared, set HAVE_DECL_ROUNDF to 0, not REPLACE_ROUNDF to 1. * m4/roundl.m4 (gl_FUNC_ROUNDL): If the function is not declared, set HAVE_DECL_ROUNDL to 0, not REPLACE_ROUNDL to 1. * m4/truncl.m4 (gl_FUNC_TRUNCL): If the function is not declared, set HAVE_DECL_TRUNCL to 0, not REPLACE_TRUNCL to 1. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize HAVE_DECL_CEILF, HAVE_DECL_CEILL, HAVE_DECL_FLOORF, HAVE_DECL_FLOORL, HAVE_DECL_ROUND, HAVE_DECL_ROUNDF, HAVE_DECL_ROUNDL, HAVE_DECL_TRUNCL. * modules/math (Makefile.am): Substitute HAVE_DECL_CEILF, HAVE_DECL_CEILL, HAVE_DECL_FLOORF, HAVE_DECL_FLOORL, HAVE_DECL_ROUND, HAVE_DECL_ROUNDF, HAVE_DECL_ROUNDL, HAVE_DECL_TRUNCL. 2010-04-04 Bruno Haible * m4/ceilf.m4 (gl_FUNC_CEILF): Remove redundant AC_SUBST invocation. * m4/ceill.m4 (gl_FUNC_CEILL): Likewise. * m4/floorf.m4 (gl_FUNC_FLOORF): Likewise. * m4/floorl.m4 (gl_FUNC_FLOORL): Likewise. * m4/isfinite.m4 (gl_ISFINITE): Likewise. * m4/isinf.m4 (gl_ISINF): Likewise. * m4/truncl.m4 (gl_FUNC_TRUNCL): Likewise. 2010-04-04 Bruno Haible * m4/trunc.m4 (gl_FUNC_TRUNC): Remove redundant AC_SUBST invocation. * m4/truncf.m4 (gl_FUNC_TRUNCF): Likewise. 2010-04-04 Bruno Haible * m4/tmpfile.m4 (gl_FUNC_TMPFILE): Renamed from gl_TMPFILE. * modules/tmpfile (configure.ac): Update. tmpfile: Fix C++ test error on mingw. * lib/stdio.in.h (tmpfile): New declaration. * m4/tmpfile.m4 (gl_TMPFILE): Require gl_STDIO_H_DEFAULTS. Set REPLACE_TMPFILE instead of defining tmpfile as a macro in config.h. * modules/tmpfile (Depends-on): Add stdio. (configure.ac): Invoke gl_STDIO_MODULE_INDICATOR. * m4/stdio_h.m4 (gl_STDIO_H): Also check whether tmpfile is declared. (gl_STDIO_H_DEFAULTS): Initialize GNULIB_TMPFILE and REPLACE_TMPFILE. * modules/stdio (Makefile.am): Substitute GNULIB_TMPFILE and REPLACE_TMPFILE. * tests/test-stdio-c++.cc (tmpfile): Verify signature. 2010-04-04 Bruno Haible ioctl: Fix C++ test error on mingw. * lib/ioctl.c (ioctl): Renamed from rpl_ioctl. * lib/sys_ioctl.in.h (ioctl): When SYS_IOCTL_H_HAVE_WINSOCK2_H is 1, use _GL_FUNCDECL_SYS, not _GL_FUNCDECL_RPL. 2010-04-03 Bruno Haible wcwidth: Fix C++ test error on mingw. * lib/wcwidth.c (wcwidth): Renamed from rpl_wcwidth. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): If the wcwidth function does not exist, don't set REPLACE_WCWIDTH. Instead, rely on HAVE_DECL_WCWIDTH. 2010-04-03 Bruno Haible nanosleep: Fix C++ test error on mingw. * lib/nanosleep.c (nanosleep): Renamed from rpl_nanosleep. * lib/time.in.h (nanosleep): Use modern idiom. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): When the system does not have a nanosleep function, set HAVE_NANOSLEEP to 0, instead of setting REPLACE_NANOSLEEP to 1. * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize HAVE_NANOSLEEP. * modules/time (Makefile.am): Substitute HAVE_NANOSLEEP. 2010-04-03 Bruno Haible strptime: Fix C++ test error on mingw. * lib/time.in.h (strptime): Use HAVE_STRPTIME, not REPLACE_STRPTIME. * m4/strptime.m4 (gl_FUNC_STRPTIME): Set HAVE_STRPTIME, not REPLACE_STRPTIME. Invoke gl_PREREQ_STRPTIME. (gl_PREREQ_STRPTIME): New macro, extracted from gl_FUNC_STRPTIME. * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize HAVE_STRPTIME, not REPLACE_STRPTIME. * modules/time (Makefile.am): Substitute HAVE_STRPTIME, not REPLACE_STRPTIME. 2010-04-03 Bruno Haible timegm: Fix C++ test error on mingw. * lib/time.in.h (timegm): Use modern idiom. * m4/timegm.m4 (gl_FUNC_TIMEGM): When timegm does not exist, set HAVE_TIMEGM to 0, not REPLACE_TIMEGM to 1. * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize HAVE_TIMEGM. * modules/time (Makefile.am): Substitute HAVE_TIMEGM. 2010-04-03 Bruno Haible timegm: Assume declaration if function exists. * m4/timegm.m4 (gl_FUNC_TIMEGM): Assume timegm is declared if and only if it exists. Don't clobber ac_cv_func_timegm. 2010-04-03 Bruno Haible time_r: Fix C++ test error on mingw. * lib/time.in.h (localtime_r, gmtime_r): Use modern idiom. * m4/time_r.m4 (gl_TIME_R): When localtime_r does not exist, set HAVE_LOCALTIME_R to 0, not REPLACE_LOCALTIME_R to 1. * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize HAVE_LOCALTIME_R. * modules/time (Makefile.am): Substitute HAVE_LOCALTIME_R. 2010-04-03 Bruno Haible time_r: Minor updates. * modules/time_r (Description): Mention the provided functions. * lib/time_r.c: Don't include . * doc/posix-functions/gmtime_r.texi: Mention the 'time_r' module. * doc/posix-functions/localtime_r.texi: Likewise. 2010-04-03 Bruno Haible time: Fix regression introduced on 2010-03-08. * m4/time_h.m4 (gl_TIME_MODULE_INDICATOR): Require gl_HEADER_TIME_H_DEFAULTS, not gl_HEADER_STRING_H_DEFAULTS. 2010-04-03 Jim Meyering maint.mk: don't silently disable project-specific syntax-check rules * top/maint.mk (_prohibit_regexp): Define, to help people realize that they need to convert their project-specific syntax-check rules to use the new _sc_search_regexp. 2010-04-03 Bruno Haible fchdir: Fix regression introduced on 2010-03-08. * lib/unistd.in.h (fchdir): Fix declaration. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Set HAVE_FCHDIR, not REPLACE_FCHDIR. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_FCHDIR, not REPLACE_FCHDIR. * modules/unistd (Makefile.am): Substitute HAVE_FCHDIR, not REPLACE_FCHDIR. 2010-04-03 Bruno Haible getpagesize: Fix C++ test error on mingw. * lib/unistd.in.h (getpagesize): Don't use _GL_CXXALIASWARN if the system does not declare the function. * m4/getpagesize.m4 (gl_FUNC_GETPAGESIZE): Also check whether it's declared. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_DECL_GETPAGESIZE. * modules/unistd (Makefile.am): Substitute HAVE_DECL_GETPAGESIZE. 2010-04-03 Bruno Haible stdio: Make C++ tests work on mingw. * lib/stdio.in.h (getline): Don't use _GL_CXXALIASWARN if the system does not declare the function. 2010-04-03 Bruno Haible ftello: Fix C++ test error on mingw. * lib/stdio.in.h (ftello): Use modern idiom. * lib/ftello.c (ftello): Renamed from rpl_ftello. * m4/ftello.m4 (gl_FUNC_FTELLO): Distinguish the case that the function is missing and that it needs to be replaced. (gl_REPLACE_FTELLO): Don't set REPLACE_FTELLO here. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize HAVE_FTELLO. * modules/stdio (Makefile.am): Substitute HAVE_FTELLO. 2010-04-03 Bruno Haible fseeko: Fix C++ test error on mingw. * lib/stdio.in.h (fseeko): Use modern idiom. * lib/fseeko.c (fseeko): Renamed from rpl_fseeko. * m4/fseeko.m4 (gl_FUNC_FSEEKO): Distinguish the case that the function is missing and that it needs to be replaced. (gl_REPLACE_FSEEKO): Don't set REPLACE_FSEEKO here. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize HAVE_FSEEKO. * modules/stdio (Makefile.am): Substitute HAVE_FSEEKO. 2010-04-03 Bruno Haible mkstemp: Fix C++ test error on mingw. * lib/stdlib.in.h (mkstemp): Use modern idiom. * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Distinguish the case that the function is missing and that it needs to be replaced. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_MKSTEMP. * modules/stdlib (Makefile.am): Substitute HAVE_MKSTEMP. 2010-04-03 Bruno Haible stpncpy: Fix C++ test error on mingw. * lib/string.in.h (stpncpy): Use modern idiom. * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Distinguish the case that the function is missing and that it needs to be replaced. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize REPLACE_STPNCPY. * modules/string (Makefile.am): Substitute REPLACE_STPNCPY. 2010-04-03 Bruno Haible sys_stat: Fix C++ test error on mingw. * build-aux/c++defs.h (_GL_CXXALIAS_RPL_CAST_1): New macro. * lib/sys_stat.in.h (lchmod): Use it instead of _GL_CXXALIAS_RPL_1. 2010-04-03 Bruno Haible pty: Update doc. * doc/glibc-headers/pty.texi: Mention changes done since 2010-03-18. 2010-04-03 Bruno Haible unistd: Fix C++ test error on mingw. * lib/unistd.in.h (getcwd): Use _GL_CXXALIAS_SYS_CAST. 2010-04-03 Bruno Haible Update doc regarding mingw. * doc/glibc-functions/openpty.texi: Update regarding mingw. * doc/glibc-functions/login_tty.texi: Likewise. * doc/glibc-functions/forkpty.texi: Likewise. 2010-04-03 Bruno Haible stdlib: Avoid compilation failure of c-strtold on mingw. * lib/stdlib.in.h: Don't include on native Windows systems. 2010-04-03 Bruno Haible locale: Make C++ tests work on Cygwin and mingw. * lib/locale.in.h (duplocale): Don't use _GL_CXXALIASWARN if gnulib cannot provide the function. Reported by Simon Josefsson. 2010-04-03 Bruno Haible localename: Port to MacOS X 10.6. * lib/localename.c (gl_locale_name_thread_unsafe): On MacOS X, try the memory layout of the locales in MacOS X 10.6 as well. Reported by Panu Kekäläinen . 2010-04-02 Bruno Haible gnulib-tool: Ensure that long-running tests are executed last. * gnulib-tool (func_emit_tests_Makefile_am): Emit the code for long- running tests after the one for the other tests. 2010-04-02 Bruno Haible gnulib-tool: Ensure the tests in the main directory are executed first. * gnulib-tool (func_emit_tests_Makefile_am): Initialize SUBDIRS to start with the current directory. 2010-04-02 Bruno Haible Tests for module 'havelib', moved here from GNU gettext. * modules/havelib-tests: New file, from gettext/autoconf-lib-link with modifications. * tests/havelib/README: New file, from gettext/autoconf-lib-link. * tests/havelib/Makefile.am: New file, from gettext/autoconf-lib-link with modifications. * tests/havelib/rpath-1: New file, from gettext/autoconf-lib-link with modifications. * tests/havelib/rpath-1a: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-1b: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-2_a: New file, from gettext/autoconf-lib-link with modifications. * tests/havelib/rpath-2_b: New file, from gettext/autoconf-lib-link with modifications. * tests/havelib/rpath-2aaa: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-2aab: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-2aac: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-2aad: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-2aba: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-2abb: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-2abc: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-2abd: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-2baa: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-2bab: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-2bac: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-2bad: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-2bba: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-2bbb: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-2bbc: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-2bbd: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3_a: New file, from gettext/autoconf-lib-link with modifications. * tests/havelib/rpath-3_b: New file, from gettext/autoconf-lib-link with modifications. * tests/havelib/rpath-3aaa: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3aab: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3aac: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3aad: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3aae: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3aaf: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3aag: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3aah: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3aba: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3abb: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3abc: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3abd: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3abe: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3abf: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3abg: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3abh: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3baa: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3bab: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3bac: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3bad: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3bae: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3baf: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3bag: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3bah: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3bba: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3bbb: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3bbc: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3bbd: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3bbe: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3bbf: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3bbg: New file, from gettext/autoconf-lib-link. * tests/havelib/rpath-3bbh: New file, from gettext/autoconf-lib-link. * tests/havelib/rpathx/rpathx.c: New file, from gettext/autoconf-lib-link. * tests/havelib/rpathx/Makefile.am: New file, from gettext/autoconf-lib-link. * tests/havelib/rpathx/configure.ac: New file, from gettext/autoconf-lib-link with modifications. * tests/havelib/rpathy/rpathy.c: New file, from gettext/autoconf-lib-link. * tests/havelib/rpathy/Makefile.am: New file, from gettext/autoconf-lib-link. * tests/havelib/rpathy/configure.ac: New file, from gettext/autoconf-lib-link with modifications. * tests/havelib/rpathz/rpathz.c: New file, from gettext/autoconf-lib-link. * tests/havelib/rpathz/Makefile.am: New file, from gettext/autoconf-lib-link. * tests/havelib/rpathz/configure.ac: New file, from gettext/autoconf-lib-link with modifications. * tests/havelib/rpathlx/usex.c: New file, from gettext/autoconf-lib-link. * tests/havelib/rpathlx/Makefile.am: New file, from gettext/autoconf-lib-link. * tests/havelib/rpathlx/configure.ac: New file, from gettext/autoconf-lib-link with modifications. * tests/havelib/rpathly/usey.c: New file, from gettext/autoconf-lib-link. * tests/havelib/rpathly/Makefile.am: New file, from gettext/autoconf-lib-link. * tests/havelib/rpathly/configure.ac: New file, from gettext/autoconf-lib-link with modifications. * tests/havelib/rpathlz/usez.c: New file, from gettext/autoconf-lib-link. * tests/havelib/rpathlz/Makefile.am: New file, from gettext/autoconf-lib-link. * tests/havelib/rpathlz/configure.ac: New file, from gettext/autoconf-lib-link with modifications. * tests/havelib/rpathlyx/usey.c: New file, from gettext/autoconf-lib-link. * tests/havelib/rpathlyx/Makefile.am: New file, from gettext/autoconf-lib-link. * tests/havelib/rpathlyx/configure.ac: New file, from gettext/autoconf-lib-link with modifications. * tests/havelib/rpathlzyx/usez.c: New file, from gettext/autoconf-lib-link. * tests/havelib/rpathlzyx/Makefile.am: New file, from gettext/autoconf-lib-link. * tests/havelib/rpathlzyx/configure.ac: New file, from gettext/autoconf-lib-link with modifications. * tests/havelib/rpathcfg.sh: New file, from gettext/autoconf-lib-link with modifications. 2010-04-02 Bruno Haible gnulib-tool: Create distributed built sources also for the tests. * gnulib-tool (func_create_testdir): Also generate distributed built sources in the tests directory. 2010-04-02 Bruno Haible gnulib-tool: Obey user's environment variables. * gnulib-tool (func_create_testdir): When creating built sources, respect the environment variables for autoconf, automake, etc. given by the user. 2010-04-02 Bruno Haible gnulib-tool: Provide the value of --m4-base to modules. * gnulib-tool (func_import, func_create_testdir): Emit a definition of gl_m4_base. 2010-04-02 Eric Blake maint.mk: fix some fallout * NEWS: Document the incompatible change, and its effect on cfg.mk. * top/maint.mk (sc_prohibit_test_minus_ao): Update. 2010-03-28 Jose E. Marchesi maint.mk: _sc_search_regexp: generalize and rename from _prohibit_regexp * top/maint.mk (_sc_search_regexp): Rename from _prohibit_regexp. (sc_cast_of_argument_to_free): Adapt to use _sc_search_regexp. (sc_cast_of_x_alloc_return_value): Likewise. (sc_cast_of_alloca_return_value): Likewise. (sc_space_tab): Likewise. (sc_prohibit_atoi_atof): Likewise. (sc_prohibit_magic_number_exit): Likewise. (sc_error_exit_success): Likewise. (sc_file_system): Likewise. (sc_prohibit_have_config_h): Likewise. (sc_require_config_h): Likewise. (sc_prohibit_HAVE_MBRTOWC): Likewise. (sc_obsolete_symbols): Likewise. (sc_changelog): Likewise. (sc_program_name): Likewise. (sc_the_the): Likewise. (sc_trailing_blank): Likewise. (sc_two_space_separator_in_usage): Likewise. (sc_useless_cpp_parens): Likewise. (sc_GPL_version): Likewise. (sc_GFDL_version): Likewise. (sc_texinfo_acronym): Likewise. (sc_prohibit_cvs_keyword): Likewise. (sc_prohibit_stat_st_blocks): Likewise. (sc_prohibit_S_IS_definition): Likewise. (sc_redundant_const): Likewise. (sc_makefile_TAB_only_indentation): Likewise. (sc_m4_quote_check): Likewise. (sc_makefile_path_separator_check): Likewise. (sc_copyright_check): Likewise. (sc_Wundef_boolean): Likewise. (sc_vulnerable_makefile_CVE-2009-4029): Likewise. maint.mk: match 0 or more whitespace-before-function-call '(' * top/maint.mk (sc_error_exit_success): Relax regexp to match uses that have zero or two-and-more spaces between the function name and the open parenthesis. (sc_error_message_warn_fatal): Likewise. (sc_error_message_uppercase): Likewise. (sc_error_message_period): Likewise. 2010-03-31 Eric Blake maint.mk: check for [ as well as test * top/maint.mk (sc_prohibit_test_minus_ao): Extend test. Based on a libvirt report by Matthias Bolte. gnumakefile: don't squelch _version output * top/GNUmakefile (_version): Create one-shot dependency rather than using $(shell) when version must be regenerated. (_autoreconf): Run verbosely, by default. sys_time: avoid compiler warnings * lib/sys_time.in.h (includes): Ensure gcc pragma is unconditional, fixing regression from 2010-03-29. Reported by Simon Josefsson. 2010-03-28 Jose E. Marchesi maint.mk: s/_header_without_use/_sc_header_without_use/ * top/maint.mk (_sc_header_without_use): Rename from _header_without_use. (sc_prohibit_assert_without_use): Use the new name. (sc_prohibit_close_stream_without_use): Likewise. (sc_prohibit_getopt_without_use): Likewise. (sc_prohibit_quotearg_without_use): Likewise. (sc_prohibit_quote_without_use): Likewise. (sc_prohibit_long_options_without_use): Likewise. (sc_prohibit_inttostr_without_use): Likewise. (sc_prohibit_ignore_value_without_use): Likewise. (sc_prohibit_error_without_use): Likewise. (sc_prohibit_xalloc_without_use): Likewise. (sc_prohibit_hash_without_use): Likewise. (sc_prohibit_hash_pjw_without_use): Likewise. (sc_prohibit_safe_read_without_use): Likewise. (sc_prohibit_argmatch_without_use): Likewise. (sc_prohibit_canonicalize_without_use): Likewise. (sc_prohibit_root_dev_ino_without_use): Likewise. (sc_prohibit_openat_without_use): Likewise. (sc_prohibit_c_ctype_without_use): Likewise. (sc_prohibit_signal_without_use): Likewise. (sc_prohibit_intprops_without_use): Likewise. 2010-03-30 Eric Blake maint: improve module indicators * m4/gnulib-common.m4 (gl_MODULE_INDICATOR_SET_VARIABLE) (gl_MODULE_INDICATOR, gl_MODULE_INDICATOR_FOR_TESTS): Fit in 80 columns, and avoid extra macro expansion. fdopendir: work around FreeBSD bug * m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): New witness. * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Set it. * modules/dirent (Makefile.am): Substitute it. * lib/dirent.in.h (fdopendir): Supply missing FreeBSD declaration. * doc/posix-functions/fdopendir.texi (fdopendir): Document the fix. Reported by Christian Weisgerber . 2010-03-29 Bruno Haible Emit #pragma system_header after the inclusion guard, not before. * lib/arpa_inet.in.h: Emit #pragma system_header after the inclusion guard that spans the entire file, not before. This enables an optimization in GCC's preprocessor. * lib/ctype.in.h: Likewise. * lib/dirent.in.h: Likewise. * lib/errno.in.h: Likewise. * lib/float.in.h: Likewise. * lib/getopt.in.h: Likewise. * lib/iconv.in.h: Likewise. * lib/langinfo.in.h: Likewise. * lib/locale.in.h: Likewise. * lib/math.in.h: Likewise. * lib/netdb.in.h: Likewise. * lib/netinet_in.in.h: Likewise. * lib/pty.in.h: Likewise. * lib/sched.in.h: Likewise. * lib/se-selinux.in.h: Likewise. * lib/search.in.h: Likewise. * lib/spawn.in.h: Likewise. * lib/stdarg.in.h: Likewise. * lib/stdint.in.h: Likewise. * lib/string.in.h: Likewise. * lib/strings.in.h: Likewise. * lib/sys_file.in.h: Likewise. * lib/sys_ioctl.in.h: Likewise. * lib/sys_time.in.h: Likewise. * lib/sys_times.in.h: Likewise. * lib/sys_utsname.in.h: Likewise. * lib/sys_wait.in.h: Likewise. * lib/sysexits.in.h: Likewise. * lib/wctype.in.h: Likewise. 2010-03-28 James Youngman save-cwd: don't leak a file descriptor when the caller execs. * lib/save-cwd.c (save_cwd): set the close-on-exec flag for the saved file descriptor. * modules/save-cwd (Depends-on): Depend on cloexec. 2010-03-29 Bruno Haible Remove vestiges of fts-lgpl module. * lib/fts_.h: Assume GNULIB_FTS is 1. * lib/fts.c: Likewise. * modules/fts (configure.ac): Remove gl_MODULE_INDICATOR invocation. 2010-03-28 Bruno Haible Fix definition of tests witness macro. * gnulib-tool (func_import): Fix definition of witness macro. 2010-03-28 Bruno Haible Fix ioctl's protoype on glibc systems. * lib/sys_ioctl.in.h (ioctl): If REPLACE_IOCTL is 1, use a wrapper. Use _GL_CXXALIAS_SYS, not _GL_CXXALIAS_SYS_CAST. * lib/ioctl.c (rpl_ioctl) [HAVE_IOCTL]: New wrapper. * modules/ioctl (configure.ac): Test whether ioctl has the POSIX signature. If not, arrange to replace the ioctl function. * m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H_DEFAULTS): Initialize REPLACE_IOCTL. * modules/sys_ioctl (Makefile.am): Substitute REPLACE_IOCTL. * doc/posix-functions/ioctl.texi: Mention the glibc problem. Reported by Ludovic Courtès . 2010-03-28 Javier Villavicencio exclude: fix the case of globs vs. EXCLUDE_INCLUDE * lib/exclude.c (excluded_file_pattern_p): Fix logic error that made it so grep -r --include=GLOB* ... did not work. 2010-03-26 Jim Meyering Eric Blake maint.mk: prohibit use of test's -o and -a operators * top/maint.mk (sc_prohibit_test_minus_ao): New rule. 2010-03-28 Bruno Haible Remove unused GNULIB_XYZ macro definitions. * modules/crypto/gc-camellia (configure.ac): Remove gl_MODULE_INDICATOR invocation. 2010-03-28 Bruno Haible Mark privileged tests modules. * modules/idpriv-drop-tests (Status): New section. * modules/idpriv-droptemp-tests (Status): New section. 2010-03-28 Bruno Haible Split C++ tests into separate tests modules. * modules/dirent-c++-tests: New file, extracted from modules/dirent-tests. * modules/dirent-tests: Depend on it. * modules/fcntl-h-c++-tests: New file, extracted from modules/fcntl-h-tests. * modules/fcntl-h-tests: Depend on it. * modules/glob-c++-tests: New file, extracted from modules/glob-tests. * modules/glob-tests: Depend on it. * modules/iconv-h-c++-tests: New file, extracted from modules/iconv-h-tests. * modules/iconv-h-tests: Depend on it. * modules/langinfo-c++-tests: New file, extracted from modules/langinfo-tests. * modules/langinfo-tests: Depend on it. * modules/locale-c++-tests: New file, extracted from modules/locale-tests. * modules/locale-tests: Depend on it. * modules/math-c++-tests: New file, extracted from modules/math-tests. * modules/math-tests: Depend on it. * modules/pty-c++-tests: New file, extracted from modules/pty-tests. * modules/pty-tests: Depend on it. * modules/search-c++-tests: New file, extracted from modules/search-tests. * modules/search-tests: Depend on it. * modules/signal-c++-tests: New file, extracted from modules/signal-tests. * modules/signal-tests: Depend on it. * modules/spawn-c++-tests: New file, extracted from modules/spawn-tests. * modules/spawn-tests: Depend on it. * modules/stdio-c++-tests: New file, extracted from modules/stdio-tests. * modules/stdio-tests: Depend on it. * modules/stdlib-c++-tests: New file, extracted from modules/stdlib-tests. * modules/stdlib-tests: Depend on it. * modules/string-c++-tests: New file, extracted from modules/string-tests. * modules/string-tests: Depend on it. * modules/sys_ioctl-c++-tests: New file, extracted from modules/sys_ioctl-tests. * modules/sys_ioctl-tests: Depend on it. * modules/sys_select-c++-tests: New file, extracted from modules/sys_select-tests. * modules/sys_select-tests: Depend on it. * modules/sys_socket-c++-tests: New file, extracted from modules/sys_socket-tests. * modules/sys_socket-tests: Depend on it. * modules/sys_stat-c++-tests: New file, extracted from modules/sys_stat-tests. * modules/sys_stat-tests: Depend on it. * modules/sys_time-c++-tests: New file, extracted from modules/sys_time-tests. * modules/sys_time-tests: Depend on it. * modules/time-c++-tests: New file, extracted from modules/time-tests. * modules/time-tests: Depend on it. * modules/unistd-c++-tests: New file, extracted from modules/unistd-tests. * modules/unistd-tests: Depend on it. * modules/wchar-c++-tests: New file, extracted from modules/wchar-tests. * modules/wchar-tests: Depend on it. * modules/wctype-c++-tests: New file, extracted from modules/wctype-tests. * modules/wctype-tests: Depend on it. Reported by Simon Josefsson. 2010-03-28 Bruno Haible gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'. * gnulib-tool (func_exists_module): New function, extracted from func_verify_module. (func_verify_module): Use it. (func_get_dependencies): Synthetize a dependency from 'foo-tests' to 'foo' only if 'foo' exists. * doc/gnulib.texi (Extra tests modules): Explain how to split a tests module. 2010-03-28 Bruno Haible gnulib-tool: Add support for special categories of tests. * gnulib-tool: New options --with-c++-tests, --with-longrunning-tests, --with-privileged-tests, --with-unportable-tests, --with-all-tests. (func_usage): Document them. (inc_cxx_tests, inc_longrunning_tests, inc_privileged_tests, inc_unportable_tests, inc_all_tests): New variables. (func_acceptable): Consider these variables. (func_modules_transitive_closure): Make it work when the 'Status' field consists of multiple words. (func_import): Store and restore the values of inc_cxx_tests, inc_longrunning_tests, inc_privileged_tests, inc_unportable_tests, inc_all_tests in gnulib-comp.m4. (func_create_testdir): Set inc_all_tests to true. * doc/gnulib.texi (Extra tests modules): New section. Suggested by Jim Meyering. 2010-03-28 Bruno Haible ansi-c++-opt: Allow turning off the C++ build by default. * m4/ansi-c++.m4 (gl_CXX_CHOICE): Let CXX_CHOICE default to 'no' if gl_CXX_CHOICE_DEFAULT_NO is defined. Requested by Eric Blake. 2010-03-28 Bruno Haible unistd: Avoid #define replacements in C++ mode. * lib/unistd.in.h (socket, connect, accept, bind, getpeername, getsockname, getsockopt, listen, recv, send, recvfrom, sendto, setsockopt, shutdown, select): In C++, attach a warning to the function if possible, rather than #defining the symbol to a dysfunctional alias. Reported by John W. Eaton . 2010-03-28 Bruno Haible Fix link errors on mingw. * lib/sys_ioctl.in.h (ioctl): Fix declaration idiom. * modules/sys_ioctl-tests (Makefile.am): Link test-sys_ioctl-c++ with $(LIBSOCKET). * modules/sys_select-tests (Makefile.am): Link test-sys_select-c++ with $(LIBSOCKET). 2010-03-28 Bruno Haible Ralf Wildenhues lib-ignore: Determine different options for different compilers. * m4/lib-ignore.m4 (gl_IGNORE_UNUSED_LIBRARIES): Set a variable which depends on the current language (C/C++/Fortran). Don't set LDFLAGS. Add comments. (_gl_IGNORE_UNUSED_LIBRARIES_OPTIONS): New macro. * NEWS: Mention the change. 2010-03-27 Bruno Haible Remove unused GNULIB_XYZ macro definitions. * modules/dup3 (configure.ac): Remove gl_MODULE_INDICATOR invocation. * modules/fseek (configure.ac): Likewise. * modules/ioctl (configure.ac): Likewise. * modules/open (configure.ac): Likewise. * modules/stdlib-safer (configure.ac): Likewise. 2010-03-27 Bruno Haible Add a remark about certain modules. * modules/malloc (Comment): New section. * modules/realloc (Comment): Likewise. * modules/sigpipe (Comment): Likewise. 2010-03-27 Bruno Haible Resolve conflict between the two kinds of module indicators. * m4/gnulib-common.m4 (gl_MODULE_INDICATOR_FOR_TESTS): Define GNULIB_TEST_XYZ instead of GNULIB_XYZ. * modules/canonicalize (configure.ac): Invoke gl_MODULE_INDICATOR_FOR_TESTS. * tests/test-canonicalize-lgpl.c: Test GNULIB_TEST_XYZ instead of GNULIB_XYZ. * tests/test-dirent-c++.cc: Likewise. * tests/test-dirent-safer.c: Likewise. * tests/test-dup2.c: Likewise. * tests/test-fchdir.c: Likewise. * tests/test-fcntl-h-c++.cc: Likewise. * tests/test-getopt.c: Likewise. * tests/test-getopt.h: Likewise. * tests/test-langinfo-c++.cc: Likewise. * tests/test-locale-c++.cc: Likewise. * tests/test-math-c++.cc: Likewise. * tests/test-pty-c++.cc: Likewise. * tests/test-search-c++.cc: Likewise. * tests/test-signal-c++.cc: Likewise. * tests/test-spawn-c++.cc: Likewise. * tests/test-stdio-c++.cc: Likewise. * tests/test-stdlib-c++.cc: Likewise. * tests/test-string-c++.cc: Likewise. * tests/test-sys_ioctl-c++.cc: Likewise. * tests/test-sys_select-c++.cc: Likewise. * tests/test-sys_socket-c++.cc: Likewise. * tests/test-sys_stat-c++.cc: Likewise. * tests/test-sys_time-c++.cc: Likewise. * tests/test-time-c++.cc: Likewise. * tests/test-unistd-c++.cc: Likewise. * tests/test-wchar-c++.cc: Likewise. * tests/uninorm/test-u8-nfc.c: Likewise. * tests/uninorm/test-u8-nfd.c: Likewise. * tests/uninorm/test-u8-nfkc.c: Likewise. * tests/uninorm/test-u8-nfkd.c: Likewise. * tests/uninorm/test-u16-nfc.c: Likewise. * tests/uninorm/test-u16-nfd.c: Likewise. * tests/uninorm/test-u16-nfkc.c: Likewise. * tests/uninorm/test-u16-nfkd.c: Likewise. * tests/uninorm/test-u32-nfc.c: Likewise. * tests/uninorm/test-u32-nfc-big.c: Likewise. * tests/uninorm/test-u32-nfd.c: Likewise. * tests/uninorm/test-u32-nfd-big.c: Likewise. * tests/uninorm/test-u32-nfkc.c: Likewise. * tests/uninorm/test-u32-nfkc-big.c: Likewise. * tests/uninorm/test-u32-nfkd.c: Likewise. * tests/uninorm/test-u32-nfkd-big.c: Likewise. * tests/uninorm/test-u32-normalize-big.c: Likewise. 2010-03-27 Bruno Haible Distinguish two kinds of module indicators. * m4/gnulib-common.m4 (gl_MODULE_INDICATOR_FOR_TESTS): Renamed from gl_MODULE_INDICATOR. (gl_MODULE_INDICATOR): New macro. * m4/dirent_h.m4 (gl_DIRENT_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR_FOR_TESTS instead of gl_MODULE_INDICATOR. * m4/fcntl_h.m4 (gl_FCNTL_MODULE_INDICATOR): Likewise. * m4/langinfo_h.m4 (gl_LANGINFO_MODULE_INDICATOR): Likewise. * m4/locale_h.m4 (gl_LOCALE_MODULE_INDICATOR): Likewise. * m4/math_h.m4 (gl_MATH_MODULE_INDICATOR): Likewise. * m4/pty_h.m4 (gl_PTY_MODULE_INDICATOR): Likewise. * m4/search_h.m4 (gl_SEARCH_MODULE_INDICATOR): Likewise. * m4/signal_h.m4 (gl_SIGNAL_MODULE_INDICATOR): Likewise. * m4/spawn_h.m4 (gl_SPAWN_MODULE_INDICATOR): Likewise. * m4/stdio_h.m4 (gl_STDIO_MODULE_INDICATOR): Likewise. * m4/stdlib_h.m4 (gl_STDLIB_MODULE_INDICATOR): Likewise. * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR): Likewise. * m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_MODULE_INDICATOR): Likewise. * m4/sys_select_h.m4 (gl_SYS_SELECT_MODULE_INDICATOR): Likewise. * m4/sys_socket_h.m4 (gl_SYS_SOCKET_MODULE_INDICATOR): Likewise. * m4/sys_stat_h.m4 (gl_SYS_STAT_MODULE_INDICATOR): Likewise. * m4/sys_time_h.m4 (gl_SYS_TIME_MODULE_INDICATOR): Likewise. * m4/time_h.m4 (gl_TIME_MODULE_INDICATOR): Likewise. * m4/unistd_h.m4 (gl_UNISTD_MODULE_INDICATOR): Likewise. * m4/wchar_h.m4 (gl_WCHAR_MODULE_INDICATOR): Likewise. * modules/cloexec (configure.ac): Likewise. * modules/getopt-gnu (configure.ac): Likewise. * modules/uninorm/u8-normalize (configure.ac): Likewise. * modules/uninorm/u16-normalize (configure.ac): Likewise. * modules/uninorm/u32-normalize (configure.ac): Likewise. * modules/fdopendir (configure.ac): Invoke gl_MODULE_INDICATOR. 2010-03-27 Bruno Haible New module description field 'Comment'. * gnulib-tool: New option --extract-comment. (func_usage): Document it. (sed_extract_prog, sed_extract_field_header): Support 'Comment' field. (func_get_comment): New function. * modules/TEMPLATE-EXTENDED: Add a blank Comment field. 2010-03-27 Bruno Haible Addendum to 2010-02-07 commit. * gnulib-tool (func_usage): Document --extract-applicability option. 2010-03-27 Bruno Haible Use GNULIB_POSIXCHECK instead of GNULIB_PORTCHECK. * lib/time.in.h (asctime, asctime_r, ctime, ctime_r): Test GNULIB_POSIXCHECK, not GNULIB_PORTCHECK. Provide compile-time warnings rather than link errors. 2010-03-27 Bruno Haible Avoid side effects from tests-related modules on the compilation of lib. * m4/gnulib-common.m4 (gl_MODULE_INDICATOR_CONDITION): New macro. (gl_MODULE_INDICATOR_SET_VARIABLE): Use its expansion as a value. * gnulib-tool (func_emit_tests_Makefile_am): Accept a witness_macro parameter. Emit into AM_CPPFLAGS a definition of the designated C macro. (func_import): Define a witness macro. Assign it a value that depends on the current package. Override gl_MODULE_INDICATOR_CONDITION for the tests-related modules. (func_create_testdir): Update func_emit_tests_Makefile_am invocation. Reported by Jim Meyering. 2010-03-27 Bruno Haible Factorize common .m4 code. * m4/gnulib-common.m4 (gl_MODULE_INDICATOR_SET_VARIABLE): New macro. * m4/arpa_inet_h.m4 (gl_ARPA_INET_MODULE_INDICATOR): Use it. * m4/ctype.m4 (gl_CTYPE_MODULE_INDICATOR): Likewise. * m4/dirent_h.m4 (gl_DIRENT_MODULE_INDICATOR): Likewise. * m4/fcntl_h.m4 (gl_FCNTL_MODULE_INDICATOR): Likewise. * m4/iconv_h.m4 (gl_ICONV_MODULE_INDICATOR): Likewise. * m4/inttypes.m4 (gl_INTTYPES_MODULE_INDICATOR): Likewise. * m4/langinfo_h.m4 (gl_LANGINFO_MODULE_INDICATOR): Likewise. * m4/locale_h.m4 (gl_LOCALE_MODULE_INDICATOR): Likewise. * m4/math_h.m4 (gl_MATH_MODULE_INDICATOR): Likewise. * m4/netdb_h.m4 (gl_NETDB_MODULE_INDICATOR): Likewise. * m4/pty_h.m4 (gl_PTY_MODULE_INDICATOR): Likewise. * m4/search_h.m4 (gl_SEARCH_MODULE_INDICATOR): Likewise. * m4/signal_h.m4 (gl_SIGNAL_MODULE_INDICATOR): Likewise. * m4/spawn_h.m4 (gl_SPAWN_MODULE_INDICATOR): Likewise. * m4/stddef_h.m4 (gl_STDDEF_MODULE_INDICATOR): Likewise. * m4/stdio_h.m4 (gl_STDIO_MODULE_INDICATOR): Likewise. * m4/stdlib_h.m4 (gl_STDLIB_MODULE_INDICATOR): Likewise. * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR): Likewise. * m4/strings_h.m4 (gl_STRINGS_MODULE_INDICATOR): Likewise. * m4/sys_file_h.m4 (gl_HEADER_SYS_FILE_MODULE_INDICATOR): Likewise. * m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_MODULE_INDICATOR): Likewise. * m4/sys_select_h.m4 (gl_SYS_SELECT_MODULE_INDICATOR): Likewise. * m4/sys_socket_h.m4 (gl_SYS_SOCKET_MODULE_INDICATOR): Likewise. * m4/sys_stat_h.m4 (gl_SYS_STAT_MODULE_INDICATOR): Likewise. * m4/sys_time_h.m4 (gl_SYS_TIME_MODULE_INDICATOR): Likewise. * m4/sys_times_h.m4 (gl_SYS_TIMES_MODULE_INDICATOR): Likewise. * m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_MODULE_INDICATOR): Likewise. * m4/sys_wait_h.m4 (gl_SYS_WAIT_MODULE_INDICATOR): Likewise. * m4/time_h.m4 (gl_TIME_MODULE_INDICATOR): Likewise. * m4/unistd_h.m4 (gl_UNISTD_MODULE_INDICATOR): Likewise. * m4/wchar_h.m4 (gl_WCHAR_MODULE_INDICATOR): Likewise. 2010-03-27 Bruno Haible Fix a compilation error on Cygwin with g++ >= 4.3. * lib/sys_stat.in.h (lchmod): Don't warn about the use of this function if it is undefined or if we alias it to chmod. (lstat): Don't warn about the use of this function if it is undefined or if we alias it to stat. Reported by Simon Josefsson. 2010-03-27 Bruno Haible * m4/getlogin.m4 (gl_FUNC_GETLOGIN): Renamed from gl_GETLOGIN. * modules/getlogin (configure.ac): Update. * m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Renamed from gl_GETLOGIN_R. * modules/getlogin_r (configure.ac): Update. * m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): Renamed from gl_INET_NTOP. * m4/getaddrinfo.m4 (gl_GETADDRINFO): Update. * modules/inet_ntop (configure.ac): Update. * m4/inet_pton.m4 (gl_FUNC_INET_PTON): Renamed from gl_INET_PTON. * modules/inet_pton (configure.ac): Update. * m4/mbslen.m4 (gl_FUNC_MBSLEN): Renamed from gl_MBSLEN. * modules/mbslen (configure.ac): Update. * m4/pty.m4 (gl_FUNC_FORKPTY): Renamed from gl_FORKPTY. (gl_FUNC_OPENPTY): Renamed from gl_OPENPTY. * modules/forkpty (configure.ac): Update. * modules/openpty (configure.ac): Update. 2010-03-26 Simon Josefsson * top/maint.mk (sc_texinfo_acronym): Don't infloop if there is no *.texi files. Reported by Eric Blake . 2010-03-25 Eric Blake maint: use pragma consistently across replacement headers * lib/ctype.in.h (system_header): Hoist for consistent placement. * lib/dirent.in.h (system_header): Likewise. * lib/errno.in.h (system_header): Likewise. * lib/float.in.h (system_header): Likewise. * lib/getopt.in.h (system_header): Likewise. * lib/iconv.in.h (system_header): Likewise. * lib/inttypes.in.h (system_header): Likewise. * lib/langinfo.in.h (system_header): Likewise. * lib/locale.in.h (system_header): Likewise. * lib/math.in.h (system_header): Likewise. * lib/netdb.in.h (system_header): Likewise. * lib/netinet_in.in.h (system_header): Likewise. * lib/pty.in.h (system_header): Likewise. * lib/sched.in.h (system_header): Likewise. * lib/se-selinux.in.h (system_header): Likewise. * lib/search.in.h (system_header): Likewise. * lib/spawn.in.h (system_header): Likewise. * lib/stdarg.in.h (system_header): Likewise. * lib/stdint.in.h (system_header): Likewise. * lib/string.in.h (system_header): Likewise. * lib/strings.in.h (system_header): Likewise. * lib/sys_file.in.h (system_header): Likewise. * lib/sys_ioctl.in.h (system_header): Likewise. * lib/sys_socket.in.h (system_header): Likewise. * lib/sys_times.in.h (system_header): Likewise. * lib/sys_utsname.in.h (system_header): Likewise. * lib/sys_wait.in.h (system_header): Likewise. * lib/sysexits.in.h (system_header): Likewise. * lib/unistd.in.h (system_header): Likewise. * lib/wctype.in.h (system_header): Likewise. arpa/inet: fix mingw compilation warning * lib/arpa_inet.in.h (system_header): Hoist to be unconditional. Reported by Matthew Bolte. 2010-03-25 Bruno Haible Avoid collision between gnulib wrapper and libintl wrapper. * lib/printf.c (printf): Don't define if a printf wrapper is already defined in intl/printf.c. Reported by Michel Boaventura . 2010-03-25 Bruno Haible Use ANSI C. * lib/readutmp.h (getutent): Provide ANSI C prototype. 2010-03-25 Bruno Haible Minor formatting changes. * lib/acosl.c: Insert space before function argument list. * lib/argz.c: Likewise. * lib/asinl.c: Likewise. * lib/expl.c: Likewise. * lib/gen-uni-tables.c: Likewise. * lib/gettext.h: Likewise. * lib/glthread/lock.h: Likewise. * lib/tanl.c: Likewise. * lib/uniname/uniname.c: Likewise. * tests/test-idpriv-drop.c: Likewise. * tests/test-idpriv-droptemp.c: Likewise. * tests/test-lock.c: Likewise. * tests/test-tls.c: Likewise. * lib/argp-help.c: Insert space before function-like macro argument list. * lib/memcmp.c: Likewise. * tests/test-base64.c: Likewise. * lib/localename.c: Insert space before sizeof's argument list. * lib/safe-alloc.h: Likewise. * lib/file-set.h: Insert space before macro argument list. * tests/test-argp.c: Likewise. * lib/argp-namefrob.h: Insert space before function parameter list. * lib/getaddrinfo.c: Likewise. * lib/netdb.in.h: Likewise. * lib/parse-duration.h: Likewise. * lib/parse-duration.c: Likewise. * lib/poll.c: Likewise. * lib/select.c: Likewise. * lib/trim.h: Likewise. * tests/test-usleep.c: Likewise. * lib/ldexpl.c: Insert space before function parameter list and before function argument list. * lib/logl.c: Likewise. * lib/sqrtl.c: Likewise. * lib/trim.c: Likewise. * lib/cosl.c: Use GNU style indentation. Insert space before function argument list. * lib/sinl.c: Likewise. * lib/tsearch.c: Insert space after 'for'. Reported by Jim Meyering. 2010-03-23 Pádraig Brady (tiny change) * maint.mk (sc_Wundef_boolean): Check for the presence of the config header before grepping, as it's not present before autoreconf/configure are run. Reported by Simon Josefsson. 2010-03-23 Bruno Haible pt_chown: Make it work with automake < 1.11. * modules/pt_chown (Makefile.am): Define pkglibexecdir. Reported by Simon Josefsson. 2010-03-23 Bruno Haible pt_chown: Don't depend on GPLed modules. * lib/pt_chown.c: Don't include idpriv.h. (main): Don't drop privileges. * modules/pt_chown (Depends-on): Remove idpriv-drop. Reported by Simon Josefsson. 2010-03-24 Simon Josefsson * top/maint.mk (sc_texinfo_acronym): Add rule, based on suggestions from karl@freefriends.org (Karl Berry). 2010-03-22 Eric Blake gethostname: further tweaks * lib/unistd.in.h (includes): Only worry about if we are overriding gethostname. Suggested by Bruno Haible. 2010-03-21 Bruno Haible Fix comments. * lib/forkpty.c (rpl_forkpty): Fix comment. * lib/openpty.c (rpl_openpty): Likewise. Reported by Eric Blake. 2010-03-22 Eric Blake gethostname: fix build on mingw * lib/unistd.in.h (includes): Work around fact that mingw re-includes , by avoiding any redeclarations if we are being included by . Reported by Matthias Bolte. 2010-03-21 Bruno Haible forkpty: Provide replacement on AIX, HP-UX, IRIX, Solaris. * lib/forkpty.c (forkpty): New replacement function, from glibc with modifications. * lib/pty.in.h (forkpty): Update declaration. Add comments. * m4/pty.m4 (gl_FORKPTY): If forkpty is not declared, arrange to provide the replacement. * modules/forkpty (Depends-on): Add openpty, login_tty. * m4/pty_h.m4 (gl_PTY_H_DEFAULTS): Initialize HAVE_FORKPTY. * modules/pty (Makefile.am): Substitute HAVE_FORKPTY. * doc/glibc-functions/forkpty.texi: More supported platforms. * config/srclist.txt: Add forkpty.c (commented). 2010-03-21 Bruno Haible * modules/forkpty-tests: Use the common TEMPLATE-TESTS. (Makefile.am): Verify that PTY_LIB is defined. * modules/openpty-tests: Use the common TEMPLATE-TESTS. 2010-03-21 Bruno Haible Tests for module 'login_tty'. * modules/login_tty-tests: New file. * tests/test-login_tty.c: New file. New module 'login_tty'. * lib/login_tty.c: New file. * m4/pty.m4 (gl_FUNC_LOGIN_TTY): New macro. * modules/login_tty: New file. * doc/glibc-functions/login_tty.texi: Mention the new module. 2010-03-21 Bruno Haible login_tty: Documentation. * doc/glibc-functions/login_tty.texi: New file. * doc/gnulib.texi (Glibc ): Include it. 2010-03-21 Bruno Haible pty: Consistent macro naming. * m4/pty_h.m4 (gl_PTY_H): Renamed from gl_PTY. * m4/pty.m4 (gl_FORKPTY, gl_OPENPTY): Update. * modules/pty (configure.ac): Update. 2010-03-21 Bruno Haible Tests for openpty: Make stricter. * tests/test-openpty.c (main): Add test of canonical processing and erase. * modules/openpty-tests (Makefile.am): Verify that PTY_LIB is defined. openpty: Provide replacement on AIX, HP-UX, IRIX, Solaris. * lib/openpty.c (openpty): New replacement function. * lib/pty.in.h: Include . (openpty): Update declaration. Add comments. * m4/pty.m4 (gl_OPENPTY): Require AC_USE_SYSTEM_EXTENSIONS. If openpty is not declared, arrange to provide the replacement. Check for _getpty and posix_openpt. * modules/openpty (Depends-on): Add extensions, fcntl-h, ioctl. * m4/pty_h.m4 (gl_PTY_H_DEFAULTS): Initialize HAVE_OPENPTY. * modules/pty (Makefile.am): Substitute HAVE_OPENPTY. * modules/pty-tests (test_pty_c___LDADD): New variable. * doc/glibc-functions/openpty.texi: More supported platforms. 2010-03-21 Bruno Haible setenv: Tweaks. * m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Include necessary headers in the test program. * doc/posix-functions/setenv.texi: Update platforms list. 2010-03-21 Bruno Haible New module 'unlockpt'. * lib/unlockpt.c: New file, from glibc with modifications. * m4/unlockpt.m4: New file. * modules/unlockpt: New file. * lib/stdlib.in.h (unlockpt): New declaration. * m4/stdlib_h.m4 (gl_STDLIB_H): Check whether unlockpt is declared. (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_UNLOCKPT, HAVE_UNLOCKPT. * modules/stdlib (Makefile.am): Substitute GNULIB_UNLOCKPT, HAVE_UNLOCKPT. * doc/posix-functions/unlockpt.texi: Mention the new module. * tests/test-stdlib-c++.cc: Check GNULIB_NAMESPACE::unlockpt. * config/srclist.txt: Add unlockpt.c (commented). 2010-03-21 Jim Meyering maint.mk: prohibit inclusion of "intprops.h" without use * top/maint.mk (sc_prohibit_intprops_without_use): New rule. 2010-03-21 Bruno Haible New module 'grantpt'. * lib/grantpt.c: New file, from glibc with modifications. * m4/grantpt.m4: New file. * modules/grantpt: New file. * lib/stdlib.in.h (grantpt): New declaration. * m4/stdlib_h.m4 (gl_STDLIB_H): Check whether grantpt is declared. (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_GRANTPT, HAVE_GRANTPT. * modules/stdlib (Makefile.am): Substitute GNULIB_GRANTPT, HAVE_GRANTPT. * doc/posix-functions/grantpt.texi: Mention the new module. * tests/test-stdlib-c++.cc: Check GNULIB_NAMESPACE::grantpt. * config/srclist.txt: Add grantpt.c (commented). 2010-03-21 Bruno Haible New module 'pt_chown'. * lib/pt_chown.c: New file, from glibc with modifications. * lib/pty-private.h: New file, from glibc with modifications. * modules/pt_chown: New file. * config/srclist.txt: Add pt_chown.c, pty-private.h (commented). 2010-03-21 Bruno Haible Tests for module 'ptsname'. * modules/ptsname-tests: New file. * tests/test-ptsname.c: New file. New module 'ptsname'. * lib/ptsname.c: New file, from glibc with modifications. * m4/ptsname.m4: New file. * modules/ptsname: New file. * lib/stdlib.in.h (ptsname): New declaration. * m4/stdlib_h.m4 (gl_STDLIB_H): Check whether ptsname is declared. (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_PTSNAME, HAVE_PTSNAME. * modules/stdlib (Makefile.am): Substitute GNULIB_PTSNAME, HAVE_PTSNAME. * doc/posix-functions/ptsname.texi: Mention the new module. * tests/test-stdlib-c++.cc: Check GNULIB_NAMESPACE::ptsname. * config/srclist.txt: Add ptsname.c (commented). 2010-03-21 Bruno Haible Tests for module 'ttyname_r'. * modules/ttyname_r-tests: New file. * tests/test-ttyname_r.c: New file. New module 'ttyname_r'. * lib/ttyname_r.c: New file. * m4/ttyname_r.m4: New file. * modules/ttyname_r: New file. * lib/unistd.in.h (ttyname_r): New declaration. * m4/unistd_h.m4 (gl_UNISTD_H): Check whether ttyname_r is declared. (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_TTYNAME_R, HAVE_TTYNAME_R. * modules/unistd (Makefile.am): Substitute GNULIB_TTYNAME_R, HAVE_TTYNAME_R. * tests/test-unistd-c++.cc: Check GNULIB_NAMESPACE::ttyname_r. * doc/posix-functions/ttyname_r.texi: Mention the new module. 2010-03-20 Bruno Haible signal: Undefine macro definitions in C++ mode. * lib/signal.in.h (sigismember, sigemptyset, sigaddset, sigdelset, sigfillset): Undefine macro definitions from the system header in C++ mode. Reported by John W. Eaton . 2010-03-20 Bruno Haible Ensure no #include statements inside extern "C" { ... }. * lib/obstack.h: Shrink extern "C" { ... } region so that it does not contain #include statements. * lib/time.in.h: Likewise. 2010-03-20 Bruno Haible Make _GL_WARN_ON_USE usable in C++ and C mode in the same compilation. * build-aux/warn-on-use.h (_GL_WARN_EXTERN_C): New macro. (_GL_WARN_ON_USE, _GL_WARN_ON_USE_CXX): Likewise. Reported by John W. Eaton . 2010-03-20 Bruno Haible * m4/unlink.m4 (gl_FUNC_UNLINK): Fix last commit. Reported by Jim Meyering. 2010-03-20 Bruno Haible pipe: Set errno upon failure. * lib/pipe.h: Specify that when -1 is returned, errno is set. * lib/pipe.c (create_pipe): Set errno when returning -1. Use the right errno value in error message. 2010-03-20 Bruno Haible Jim Meyering lchown: Avoid "unused variable" warning. * lib/lchown.c (rpl_lchown): Move variable 'st' into #if block. 2010-03-20 Bruno Haible Work around unlink() bug on MacOS X 10.5.6. * lib/unlink.c (rpl_unlink): If UNLINK_PARENT_BUG is defined, fail when attempting to unlink a parent directory. * m4/unlink.m4 (gl_FUNC_UNLINK): Require AC_CANONICAL_HOST. Test for MacOS X 10.5 bug. If the bug is present, define UNLINK_PARENT_BUG and activate for the replacement function. * doc/posix-functions/unlink.texi: Mention the MacOS X 10.5 bug. 2010-03-20 Bruno Haible Fix link errors on Solaris 8. * modules/dirent-tests (test_dirent_c___LDADD): Add LIB_NANOSLEEP. * modules/wctype-tests (test_wctype_c___LDADD): Likewise. 2010-03-19 Jim Meyering regcomp.c: make non-_LIBC implementation of build_range_exp consistent The _LIBC implementation of build_range_exp correctly honors the RE_NO_EMPTY_RANGES flag when checking for reversed range endpoints. However, the non-_LIBC implementation would ignore that syntax-bit flag and return REG_ERANGE unconditionally. This change makes it honor that flag. * lib/regcomp.c (build_range_exp) [!_LIBC]: Add a parameter: "syntax". Make two pointer parameters "const". Use "syntax" bits in order to honor RE_NO_EMPTY_RANGES. (parse_bracket_exp): Update caller. regex.m4: correct the reversed range endpoint ([b-a]) test * m4/regex.m4: When requiring that [b-a] evoke failure, use RE_NO_EMPTY_RANGES. This makes this entire configure-time test pass once again for x86-based systems. 2010-03-19 Bruno Haible scandir: Fix link error on Solaris 8. * lib/scandir.c (_D_EXACT_NAMLEN, _D_ALLOC_NAMLEN): New fallback macros. 2010-03-19 Bruno Haible getusershell: Fix documentation. * doc/glibc-functions/endusershell.texi: Refer to the getusershell module. * doc/glibc-functions/setusershell.texi: Likewise. getusershell: Provide declaration, missing on Solaris 9. * lib/unistd.in.h (getusershell, setusershell, endusershell): Declare also if HAVE_GETUSERSHELL && !HAVE_DECL_GETUSERSHELL. * m4/getusershell.m4 (gl_FUNC_GETUSERSHELL): When the function exists, check whether it is declared. Set HAVE_DECL_GETUSERSHELL. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_DECL_GETUSERSHELL, not HAVE_GETUSERSHELL. * modules/unistd (Makefile.am): Substitute HAVE_DECL_GETUSERSHELL, not HAVE_GETUSERSHELL. * doc/glibc-functions/getusershell.texi: Mention the Solaris problem. 2010-03-19 Bruno Haible wctype: Provide iswblank function. * lib/wctype.in.h (iswblank): Provide a replacement also when iswcntrl exists and is fine. * m4/wctype_h.m4 (gl_WCTYPE_H): Also check whether iswcntrl exists. * modules/wctype (Makefile.am): Substitute HAVE_ISWBLANK. * tests/test-wctype.c (main): Re-enable the iswblank tests. * doc/posix-functions/iswblank.texi: Update. 2010-03-19 Bruno Haible Tests of module 'pty' in C++ mode. * modules/pty-tests: New file. * tests/test-pty-c++.cc: New file. * m4/pty_h.m4 (gl_PTY_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. 2010-03-19 Eric Blake logb: fix documentation * doc/posix-functions/logb.texi (logb): Gnulib fixes the cygwin 1.5 declaration bug. forkpty, openpty: prefer glibc's const-safe prototype * lib/forkpty.c (rpl_forkpty): New file. * lib/openpty.c (rpl_openpty): Likewise. * modules/forkpty (Files): Distribute it. * modules/openpty (Files): Likewise. * m4/pty_h.m4 (gl_PTY_H_DEFAULTS): Add new witnesses. Move decl check... * m4/pty.m4 (gl_FORKPTY, gl_OPENPTY): ...here. Request replacement for non-const BSD signature. * modules/pty (Makefile.am): Substitute witnesses. * lib/pty.in.h (forkpty, openpty): Declare replacements. * tests/test-forkpty.c: Update signature check. * tests/test-openpty.c: Likewise. * doc/glibc-functions/forkpty.texi (forkpty): Document the fix. * doc/glibc-functions/openpty.texi (openpty): Likewise. forkpty, openpty: split functions into new modules * modules/pty (Makefile.am): Substitute new witnesses. (Libraries): Move library detection... * modules/forkpty: ...into new module. * modules/openpty: Another new module. * modules/pty-tests: Rename and split... * modules/forkpty-tests: ...to this... * modules/openpty-tests: ...and this. * tests/test-pty.c: Rename and split... * tests/test-forkpty.c: ...to this... * tests/test-openpty.c: ...and this. * m4/pty_h.m4 (gl_PTY_H_DEFAULTS): Add new witnesses. (gl_PTY): Split library searching... * m4/pty.m4 (gl_PTY_LIB): ...into new file. (gl_FORKPTY, gl_OPENPTY): New macros. * lib/pty.in.h (forkpty, openpty): Honor new witnesses. * NEWS: Mention the split. * MODULES.html.sh (Misc): Document the modules. * doc/glibc-functions/forkpty.texi (forkpty): Likewise. * doc/glibc-functions/openpty.texi (openpty): Likewise. pty: improve replacement header * lib/pty.in.h: New file. * modules/pty (Files): Ship it. (Makefile.am): Always build replacement. * m4/pty.m4: Rename... * m4/pty_h.m4: ...to this. (gl_PTY): Modernize setting of witness macros; update check of forkpty to take proper advantage of cache. (gl_PTY_MODULE_INDICATOR, gl_PTY_H_DEFAULTS): New macros. getopt: avoid compiler warning * lib/getopt.c (attribute_hidden): Remove unused macro. 2010-03-18 Bruno Haible Fix link errors on Solaris 8. * modules/iconv-h-tests (test_iconv_h_c___LDADD): Add LIB_NANOSLEEP. * modules/search-tests (test_search_c___LDADD): Likewise. * modules/signal-tests (test_signal_c___LDADD): Likewise. * modules/spawn-tests (test_spawn_c___LDADD): Likewise. * modules/stdio-tests (test_stdio_c___LDADD): Likewise. * modules/sys_select-tests (test_sys_select_c___LDADD): Likewise. * modules/sys_socket-tests (test_sys_socket_c___LDADD): Likewise. * modules/sys_time-tests (test_sys_time_c___LDADD): Likewise. * modules/wchar-tests (test_wchar_c___LDADD): Likewise. 2010-03-18 Bruno Haible Fix bug introduced on 2010-03-14. * m4/spawn_h.m4 (gl_HAVE_POSIX_SPAWN): New macro. (gl_SPAWN_H): Require it. * m4/posix_spawn.m4 (gl_POSIX_SPAWN_BODY): Likewise. Reported by Simon Josefsson. 2010-03-18 Bruno Haible Fix typo introduced on 2009-12-31. * m4/spawn_h.m4 (gl_SPAWN_H): Check for the declaration of posix_spawn_file_actions_adddup2. 2010-03-17 Bert Wesarg (tiny change) and Eric Blake test-vc-list-files-git: make more robust * tests/test-vc-list-files-git.sh: Unset problematic environment variables. Chain commands together. 2010-03-17 Ludovic Courtès (tiny change) * m4/pty.m4: Unset $ac_cv_have_decl_forkpty before the second `AC_CHECK_DECL' invocation. 2010-03-15 Sergey Poznyakoff * lib/inttostr.c (inttostr): Make sure the invocation of verify appears before executable statements. Suggested by Petr Sumbera . 2010-03-14 Bruno Haible * tests/test-flock.c (test_exclusive): Comment out a test that causes portability problems. Instead use a simpler test. (main): Check that invalid arguments are rejected only on Linux. 2010-03-14 Bruno Haible Fix bug introduced on 2009-12-31. * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Invoke gl_PREREQ_SYS_H_WINSOCK2 always. * m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise. Remove SYS_SOCKET_H variable. * m4/sys_file_h.m4 (gl_HEADER_SYS_FILE_H): Remove test for flock. Update comments. * m4/ctype.m4 (gl_CTYPE_H): Update comments. * m4/langinfo_h.m4 (gl_LANGINFO_H): Likewise. * m4/sys_times_h.m4 (gl_SYS_TIMES_H): Likewise. * m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H): Likewise. * m4/sys_wait_h.m4 (gl_SYS_WAIT_H): Likewise. 2010-03-14 Bruno Haible Fix values returned by sinl, cosl. * lib/trigl.h: Add specification comments. * lib/sincosl.c (kernel_sinl, kernel_cosl): Fix comments and formula that combines the values from the precomputed table with the values of the Chebyshev polynomials. 2010-03-14 Bruno Haible Fix compilation error when modules 'posix_spawn[p]' are not used. * m4/spawn_h.m4 (gl_SPAWN_H): Set HAVE_POSIX_SPAWN here. * m4/posix_spawn.m4 (gl_POSIX_SPAWN_BODY): ... not here. 2010-03-14 Bruno Haible Fix compilation error on mingw when module 'time_r' is not used. * lib/time.in.h (localtime_r, gmtime_r): Declare only if GNULIB_TIME_R is 1. * tests/test-time-c++.cc (localtime_r, gmtime_r): Likewise. * modules/time_r (configure.ac): Invoke gl_TIME_MODULE_INDICATOR. * modules/time (Makefile.am): Substitute GNULIB_TIME_R. * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize GNULIB_TIME_R. 2010-03-14 Bruno Haible Fix compilation error with Sun C. * lib/strtol.c: Use LLONG_MIN instead of GCC specific LONG_LONG_MIN. Use LLONG_MAX instead of GCC specific LONG_LONG_MAX. Use ULLONG_MAX instead of GCC specific ULONG_LONG_MAX. * lib/xstrtoll.c: Likewise. * lib/xstrtoull.c: Likewise. 2010-03-13 Bruno Haible Allow the user to disable C++ code and tests. * m4/ansi-c++.m4 (gl_CXX_CHOICE): New macro. (gl_PROG_ANSI_CXX): Require it. 2010-03-13 Bruno Haible * DEPENDENCIES (libtool): Mention libtool 2.2.x requirement in special cases. 2010-03-13 Bruno Haible Test that gnulib does not break the standard C++ headers. * tests/test-locale-c++2.cc: New file. * modules/locale-tests (Files): Add it. (Makefile.am): Compile it for test-locale-c++. * tests/test-math-c++2.cc: New file. * modules/math-tests (Files): Add it. (Makefile.am): Compile it for test-math-c++. * tests/test-signal-c++2.cc: New file. * modules/signal-tests (Files): Add it. (Makefile.am): Compile it for test-signal-c++. * tests/test-stdio-c++2.cc: New file. * modules/stdio-tests (Files): Add it. (Makefile.am): Compile it for test-stdio-c++. * tests/test-stdlib-c++2.cc: New file. * modules/stdlib-tests (Files): Add it. (Makefile.am): Compile it for test-stdlib-c++. * tests/test-string-c++2.cc: New file. * modules/string-tests (Files): Add it. (Makefile.am): Compile it for test-string-c++. * tests/test-time-c++2.cc: New file. * modules/time-tests (Files): Add it. (Makefile.am): Compile it for test-time-c++. Reported by John W. Eaton . 2010-03-13 Bruno Haible * gnulib-tool (func_usage): Clarify which options are available for --create-testdir and --create-megatestdir. 2010-03-13 Bruno Haible Fix compilation error with glibc >= 2.10 and g++ >= 4.4. * build-aux/warn-on-use.h (_GL_WARN_ON_USE_CXX): New macro. * build-aux/c++defs.h (_GL_CXXALIASWARN1): New macro. * lib/string.in.h (memchr, memrchr, rawmemchr, strchrnul, strpbrk, strstr, strcasestr): Use _GL_CXXALIASWARN1 instead of _GL_CXXALIASWARN when appropriate. Reported by Jim Meyering. 2010-03-12 Simon Josefsson * gnulib-tool (func_import): Explain origin of code. 2010-03-12 Bruno Haible Fix problem with automake's definition of CXXLINK. * gnulib-tool (func_create_testdir): After LT_INIT, also use LT_LANG. Reported by Simon Josefsson and Ludovic Courtès. 2010-03-12 Bruno Haible * doc/gnulib-intro.texi (Steady Development): Mention Ian Beckwith's stable releases. 2010-03-11 Bruno Haible Fix problems with overloaded C++ definitions of memchr, strpbrk, etc. * build-aux/c++defs.h (_GL_CXXALIAS_SYS_CAST2): Make it work regardless whether the system provides one variant or multiple variants of the function. * lib/string.in.h (memchr, strpbrk): Use _GL_CXXALIAS_SYS_CAST2 for all C++ compilers. (memrchr, rawmemchr, strchrnul, strstr, strcasestr): Use _GL_CXXALIAS_SYS_CAST2 instead of _GL_CXXALIAS_SYS. Reported by Jim Meyering. 2010-03-09 Simon Josefsson * gnulib-tool (LIBTOOLPATH): Fix cut'n'paste bug. 2010-03-08 Bruno Haible gnulib-tool: Add support for --libtool in --create-testdir. * gnulib-tool (LIBTOOLPATH, LIBTOOLIZE): New variables. (func_create_testdir): Emit LT_INIT invocations. Invoke LIBTOOLIZE. 2010-03-08 Eric Blake gnulib-tool.texi: mention possibility of git submodule * doc/gnulib-tool.texi (VCS Issues): Add details about using git submodules. * doc/.gitignore: Ignore another generated file. 2010-03-08 Karl Berry * doc/gnulib-tool.texi (VCS Issues): Mention third option of committing gnulib files while skipping others. 2010-03-07 Bruno Haible Tests of module 'wctype' in C++ mode. * tests/test-wctype-c++.cc: New file. * modules/wctype-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-wctype-c++. Tests of module 'wchar' in C++ mode. * tests/test-wchar-c++.cc: New file. * modules/wchar-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-wchar-c++. * m4/wchar_h.m4 (gl_WCHAR_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. Tests of module 'unistd' in C++ mode. * tests/test-unistd-c++.cc: New file. * modules/unistd-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-unistd-c++. * m4/unistd_h.m4 (gl_UNISTD_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. Tests of module 'time' in C++ mode. * tests/test-time-c++.cc: New file. * modules/time-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-time-c++. * m4/time_h.m4 (gl_TIME_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. Tests of module 'sys_time' in C++ mode. * tests/test-sys_time-c++.cc: New file. * modules/sys_time-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-sys_time-c++. * m4/sys_time_h.m4 (gl_SYS_TIME_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. Tests of module 'sys_stat' in C++ mode. * tests/test-sys_stat-c++.cc: New file. * modules/sys_stat-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-sys_stat-c++. * m4/sys_stat_h.m4 (gl_SYS_STAT_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. Tests of module 'sys_socket' in C++ mode. * tests/test-sys_socket-c++.cc: New file. * modules/sys_socket-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-sys_socket-c++. * m4/sys_socket_h.m4 (gl_SYS_SOCKET_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. Tests of module 'sys_select' in C++ mode. * tests/test-sys_select-c++.cc: New file. * modules/sys_select-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-sys_select-c++. * m4/sys_select_h.m4 (gl_SYS_SELECT_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. Tests of module 'sys_ioctl' in C++ mode. * tests/test-sys_ioctl-c++.cc: New file. * modules/sys_ioctl-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-sys_ioctl-c++. * m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. Tests of module 'string' in C++ mode. * tests/test-string-c++.cc: New file. * modules/string-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-string-c++. * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. Tests of module 'stdlib' in C++ mode. * tests/test-stdlib-c++.cc: New file. * modules/stdlib-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-stdlib-c++. * m4/stdlib_h.m4 (gl_STDLIB_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. Tests of module 'stdio' in C++ mode. * tests/test-stdio-c++.cc: New file. * modules/stdio-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-stdio-c++. * m4/stdio_h.m4 (gl_STDIO_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. Tests of module 'spawn' in C++ mode. * tests/test-spawn-c++.cc: New file. * modules/spawn-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-spawn-c++. * m4/spawn_h.m4 (gl_SPAWN_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. Tests of module 'signal' in C++ mode. * tests/test-signal-c++.cc: New file. * modules/signal-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-signal-c++. * m4/signal_h.m4 (gl_SIGNAL_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. Tests of module 'search' in C++ mode. * tests/test-search-c++.cc: New file. * modules/search-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-search-c++. * m4/search_h.m4 (gl_SEARCH_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. Tests of module 'math' in C++ mode. * tests/test-math-c++.cc: New file. * modules/math-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-math-c++. * m4/math_h.m4 (gl_MATH_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. Tests of module 'locale' in C++ mode. * tests/test-locale-c++.cc: New file. * modules/locale-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-locale-c++. * m4/locale_h.m4 (gl_LOCALE_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. Tests of module 'langinfo' in C++ mode. * tests/test-langinfo-c++.cc: New file. * modules/langinfo-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-langinfo-c++. * m4/langinfo_h.m4 (gl_LANGINFO_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. Tests of module 'iconv-h' in C++ mode. * tests/test-iconv-h-c++.cc: New file. * modules/iconv-h-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-iconv-h-c++. Tests of module 'glob' in C++ mode. * tests/test-glob-c++.cc: New file. * modules/glob-tests (Files): Add it. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-glob-c++. Tests of module 'fcntl-h' in C++ mode. * tests/test-fcntl-h-c++.cc: New file. * modules/fcntl-h-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-fcntl-h-c++. * m4/fcntl_h.m4 (gl_FCNTL_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. Tests of module 'dirent' in C++ mode. * tests/test-dirent-c++.cc: New file. * modules/dirent-tests (Files): Add it and tests/signature.h. (Depends-on): Add ansi-c++-opt. (Makefile.am): Arrange to compile and run test-dirent-c++. * m4/dirent_h.m4 (gl_DIRENT_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR. New module 'ansi-c++-opt'. * modules/ansi-c++-opt: New file. * m4/ansi-c++.m4: New file, from GNU gettext with modifications. Document C++ namespace mode. * doc/gnulib.texi (A C++ namespace for gnulib): New section. wctype: Avoid #define replacements in C++ mode. * lib/wctype.in.h: Include c++defs.h, warn-on-use.h. (iswalnum, iswalpha, iswblank, iswcntrl, iswdigit, iswgraph, iswlower, iswprint, iswpunct, iswspace, iswupper, iswxdigit, towlower, towupper): In C++, define a namespaced alias symbol. * m4/wctype_h.m4 (gl_WCTYPE_H): Don't set WCTYPE_H. * modules/wctype (Depends-on): Add c++defs, warn-on-use. (Makefile.am): Provide a wctype.h replacement always. Update wctype.h rule. wchar: Avoid #define replacements in C++ mode. * lib/wchar.in.h: Include c++defs.h. (btowc, wctob, mbsinit, mbrtowc, mbrlen, mbsrtowcs, mbsnrtowcs, wcrtomb, wcsrtombs, wcsnrtombs): In C++, define a namespaced alias symbol. (wcwidth): Likewise. Fix prototype to be POSIX compliant. * modules/wchar (Depends-on): Add c++defs. (Makefile.am): Update wchar.h rule. unistd: Avoid #define replacements in C++ mode. * lib/unistd.in.h: Include c++defs.h. (chown, close, dup, dup2, dup3, euidaccess, faccessat, fchdir, fchownat, fsync, ftruncate, getcwd, getdomainname, getdtablesize, getgroups, gethostname, getlogin, getlogin_r, getpagesize, getusershell, setusershell, endusershell, lchown, link, linkat, lseek, pipe2, pread, readlink, readlinkat, rmdir, sleep, symlink, symlinkat, unlink, unlinkat, usleep, write): In C++, define a namespaced alias symbol. (environ): Update. * modules/unistd (Depends-on): Add c++defs. (Makefile.am): Update unistd.h rule. time: Avoid #define replacements in C++ mode. * lib/time.in.h: Include c++defs.h, warn-on-use.h. (nanosleep, mktime, localtime_r, gmtime_r, strptime, timegm): In C++, define a namespaced alias symbol. * m4/time_h.m4 (gl_TIME_MODULE_INDICATOR): New macro. (gl_HEADER_TIME_H_DEFAULTS): Initialize also GNULIB_MKTIME, GNULIB_NANOSLEEP, GNULIB_STRPTIME, GNULIB_TIMEGM. * modules/time (Depends-on): Add c++defs, warn-on-use. (Makefile.am): Update time.h rule. * modules/mktime (configure.ac): Invoke gl_TIME_MODULE_INDICATOR. * modules/nanosleep (configure.ac): Likewise. * modules/strptime (configure.ac): Likewise. * modules/timegm (configure.ac): Likewise. sys_time: Avoid #define replacements in C++ mode. * lib/sys_time.in.h: Include c++defs.h. (gettimeofday): In C++, define a namespaced alias symbol. * modules/sys_time (Depends-on): Add c++defs. (Makefile.am): Update sys/time.h rule. sys_stat: Avoid #define replacements in C++ mode. * lib/sys_stat.in.h: Include c++defs.h. (fchmodat, fstat, fstatat, futimens, lchmod, lstat, mkdir, mkdirat, mkfifo, mkfifoat, mknod, mknodat, utimensat): In C++, define a namespaced alias symbol. In C++, define a namespaced alias symbol. * modules/sys_stat (Depends-on): Add c++defs. (Makefile.am): Update sys/stat.h rule. sys_socket: Avoid #define replacements in C++ mode. * lib/sys_socket.in.h: Handle the case of recursive include on Cygwin. Include c++defs.h. Include warn-on-use.h earlier. Enable the function definitions also when the system has a . (socket, connect, accept, bind, getpeername, getsockname, getsockopt, listen, recv, send, recvfrom, sendto, setsockopt, shutdown, accept4): In C++, define a namespaced alias symbol. * modules/sys_socket (Depends-on): Add c++defs. (Makefile.am): Update sys/socket.h rule. sys_select: Avoid #define replacements in C++ mode. * lib/sys_select.in.h: Include c++defs.h. Enable the function definitions also when the system has a . (select): In C++, define a namespaced alias symbol. * modules/sys_select (Depends-on): Add c++defs. (Makefile.am): Update sys/select.h rule. sys_ioctl: Avoid #define replacements in C++ mode. * lib/sys_ioctl.in.h: Include c++defs.h. (ioctl): In C++, define a namespaced alias symbol. * modules/sys_ioctl (Depends-on): Add c++defs. (Makefile.am): Update sys/ioctl.h rule. string: Avoid #define replacements in C++ mode. * lib/string.in.h: Include c++defs.h. (stpncpy): Define to rpl_stpncpy, not gnu_stpncpy. (memchr, memmem, mempcpy, memrchr, rawmemchr, stpcpy, stpncpy, strchrnul, strdup, strndup, strnlen, strpbrk, strsep, strstr, strcasestr, strtok_r, mbslen, mbschr, mbsrchr, mbspbrk, strerror, strsignal, strverscmp): In C++, define a namespaced alias symbol. * modules/string (Depends-on): Add c++defs. (Makefile.am): Update string.h rule. stdlib: Avoid #define replacements in C++ mode. * lib/stdlib.in.h: Include c++defs.h. (atoll, calloc, canonicalize_file_name, getloadavg, getsubopt, malloc, mkdtemp, mkostemp, mkostemps, mkstemp, mkstemps, putenv, random_r, srandom_r, initstate_r, setstate_r, realloc, realpath, rpmatch, setenv, strtod, strtoll, strtoull, unsetenv): In C++, define a namespaced alias symbol. * modules/stdlib (Depends-on): Add c++defs. (Makefile.am): Update stdlib.h rule. stdio: Avoid #define replacements in C++ mode. * lib/stdio.in.h: Include c++defs.h. (dprintf, fclose, fflush, fopen, fprintf, fpurge, fputc, fputs, freopen, fseek, fseeko, ftell, ftello, fwrite, getdelim, getline, obstack_printf, obstack_vprintf, perror, popen, printf, fputc, putchar, puts, remove, rename, renameat, snprintf, sprintf, asprintf, vasprintf, vdprintf, vfprintf, vprintf, vsnprintf, vsprintf): In C++, define a namespaced alias symbol. * modules/stdio (Depends-on): Add c++defs. (Makefile.am): Update stdio.h rule. spawn: Avoid #define replacements in C++ mode. * lib/spawn.in.h: Include c++defs.h. (posix_spawn, posix_spawnp, posix_spawnattr_init, posix_spawnattr_destroy, posix_spawnattr_getsigdefault, posix_spawnattr_setsigdefault, posix_spawnattr_getsigmask, posix_spawnattr_setsigmask, posix_spawnattr_getflags, posix_spawnattr_setflags, posix_spawnattr_getpgroup, posix_spawnattr_setpgroup, posix_spawnattr_getschedpolicy, posix_spawnattr_setschedpolicy, posix_spawnattr_getschedparam, posix_spawnattr_setschedparam, posix_spawn_file_actions_init, posix_spawn_file_actions_destroy, posix_spawn_file_actions_addopen, posix_spawn_file_actions_addclose, posix_spawn_file_actions_adddup2): In C++, define a namespaced alias symbol. * modules/spawn (Depends-on): Add c++defs. (Makefile.am): Update spawn.h rule. signal: Avoid #define replacements in C++ mode. * lib/signal.in.h: Include c++defs.h. (sigismember, sigemptyset, sigaddset, sigdelset, sigfillset, sigpending, sigprocmask, signal, raise, sigaction): In C++, define a namespaced alias symbol. * modules/signal (Depends-on): Add c++defs. (Makefile.am): Update signal.h rule. search: Avoid #define replacements in C++ mode. * lib/search.in.h: Include c++defs.h. (_gl_search_compar_fn, _gl_search_action_fn): New types. (tsearch, tfind, tdelete, twalk): In C++, define a namespaced alias symbol. * modules/search (Depends-on): Add c++defs. (Makefile.am): Update search.h rule. math: Avoid #define replacements in C++ mode. * lib/math.in.h: Include c++defs.h. (frexp, acosl, asinl, atanl, ceilf, ceill, cosl, expl, floorf, floorl, frexpl, ldexpl, logl, roundf, round, roundl, sinl, sqrtl, tanl, truncf, trunc, truncl): In C++, define a namespaced alias symbol. * modules/math (Depends-on): Add c++defs. (Makefile.am): Update math.h rule. locale: Avoid #define replacements in C++ mode. * lib/locale.in.h: Include c++defs.h. (duplocale): In C++, define a namespaced alias symbol. * m4/locale_h.m4 (gl_LOCALE_H_DEFAULTS): Initialize HAVE_DUPLOCALE. * m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Set HAVE_DUPLOCALE. * modules/locale (Depends-on): Add c++defs. (Makefile.am): Update locale.h rule. Substitute HAVE_DUPLOCALE. langinfo: Avoid #define replacements in C++ mode. * lib/langinfo.in.h: Include c++defs.h. (nl_langinfo): In C++, define a namespaced alias symbol. * modules/langinfo (Depends-on): Add c++defs. (Makefile.am): Update langinfo.h rule. iconv-h: Avoid #define replacements in C++ mode. * lib/iconv.in.h: Include c++defs.h, warn-on-use.h. (iconv_open, iconv, iconv_close): In C++, define a namespaced alias symbol. * m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): Invoke gl_REPLACE_ICONV_H whenever iconv is present. * modules/iconv-h (Depends-on): Add c++defs, warn-on-use. (Makefile.am): Update iconv.h rule. glob: Avoid #define replacements in C++ mode. * lib/glob.in.h: Include c++defs.h, warn-on-use.h. (_gl_glob_errfunc_fn): New type. (glob, globfree, glob_pattern_p): In C++, define a namespaced alias symbol. * modules/glob (Depends-on): Add c++defs, warn-on-use. (Makefile.am): Update glob.h rule. fcntl-h: Avoid #define replacements in C++ mode. * lib/fcntl.in.h: Include c++defs.h. (fcntl, open, openat): In C++, define a namespaced alias symbol. * modules/fcntl-h (Depends-on): Add c++defs. (Makefile.am): Update fcntl.h rule. dirent: Avoid #define replacements in C++ mode. * lib/dirent.in.h: Include c++defs.h. (closedir, fdopendir, opendir, scandir, alphasort): In C++, define a namespaced alias symbol. (dirfd): Update declaration. * modules/dirent (Depends-on): Add c++defs. (Makefile.am): Update dirent.h rule. ctype: Make it usable in C++ code. * lib/ctype.in.h: Include c++defs.h. (isblank): Declare as extern "C". * modules/ctype (Depends-on): Add c++defs. (Makefile.am): Update ctype.h rule. New module 'c++defs'. * modules/c++defs: New file. * build-aux/c++defs.h: New file. Reported by John W. Eaton . 2010-03-07 Bruno Haible logb: Provide missing declaration for Cygwin. * lib/math.in.h (logb): New declaration. * m4/logb.m4: New file. * modules/logb (Files): Add m4/logb.m4. (Depends-on): Add math. (configure.ac): Invoke gl_FUNC_LOGB, gl_MATH_MODULE_INDICATOR. * m4/math_h.m4 (gl_MATH_H): Check also for logb declaration. (gl_MATH_H_DEFAULTS): Initialize GNULIB_LOGB, HAVE_DECL_LOGB. * modules/math (Makefile.am): Substitute GNULIB_LOGB, HAVE_DECL_LOGB. * doc/posix-functions/logb.texi: Mention the Cygwin bug. 2010-03-07 Bruno Haible Fix test-cond link error. * tests/test-cond.c: Include . 2010-03-07 Bruno Haible Fix test-dirent-safer link error. * modules/dirent-safer-tests (Makefile.am): Define test_dirent_safer_LDADD. 2010-03-07 Bruno Haible * gnulib-tool (func_create_testdir): Don't use 'lib-ignore' module among default module list. 2010-03-07 Bruno Haible Fix link error on platforms with GNU libiconv. * modules/unistr/u8-strcoll-tests (Makefile): Define test_u8_strcoll_LDADD. * modules/unistr/u16-strcoll-tests (Makefile): Define test_u16_strcoll_LDADD. * modules/unistr/u32-strcoll-tests (Makefile): Define test_u32_strcoll_LDADD. 2010-03-07 Bruno Haible Use POSIX declarations for socket functions. * lib/sys_socket.in.h (rpl_connect, rpl_accept, rpl_bind, rpl_getpeername, rpl_getsockname, rpl_recv, rpl_send, rpl_recvfrom, rpl_sendto): Change declaration to match POSIX. * lib/connect.c (rpl_connect): Likewise. * lib/accept.c (rpl_accept): Likewise. * lib/bind.c (rpl_bind): Likewise. * lib/getpeername.c (rpl_getpeername): Likewise. * lib/getsockname.c (rpl_getsockname): Likewise. * lib/recv.c (rpl_recv): Likewise. * lib/send.c (rpl_send): Likewise. * lib/recvfrom.c (rpl_recvfrom): Likewise. * lib/sendto.c (rpl_sendto): Likewise. 2010-03-06 Bruno Haible Clarify access, euidaccess, faccessat. * doc/posix-functions/faccessat.texi: Mention security problem under "Other problems", not "Portability problems". * doc/posix-functions/access.texi: Likewise. Mention a related security problem. * doc/glibc-functions/euidaccess.texi: Mention security problems. * lib/euidaccess.c: Add comments about platforms. * lib/unistd.in.h (access, euidaccess): Add warnings. 2010-03-07 Bruno Haible Ensure posix_spawnattr_{get,set}sched{policy,param} are defined. * lib/spawn.in.h (POSIX_SPAWN_SETSCHEDPARAM): Define fallback. (POSIX_SPAWN_SETSCHEDULER): Likewise. (POSIX_SPAWN_USEVFORK): Define in a way that works when POSIX_SPAWN_SETSCHEDPARAM and POSIX_SPAWN_SETSCHEDULER are zero. (posix_spawnattr_getschedpolicy, posix_spawnattr_setschedpolicy): Also declare when POSIX_SPAWN_SETSCHEDULER is zero. (posix_spawnattr_getschedparam, posix_spawnattr_setschedparam): Also declare when POSIX_SPAWN_SETSCHEDPARAM is zero. * m4/posix_spawn.m4 (gl_POSIX_SPAWN_BODY): Test whether POSIX_SPAWN_SETSCHEDULER or POSIX_SPAWN_SETSCHEDPARAM are zero. * modules/posix_spawnattr_getschedparam (configure.ac): Enable the replacement also when POSIX_SPAWN_SETSCHEDPARAM is zero. * modules/posix_spawnattr_setschedparam (configure.ac): Likewise. * modules/posix_spawnattr_getschedpolicy (configure.ac): Enable the replacement also when POSIX_SPAWN_SETSCHEDULER is zero. * modules/posix_spawnattr_setschedpolicy (configure.ac): Likewise. * lib/spawnattr_getschedparam.c (posix_spawnattr_getschedparam): Do nothing if POSIX_SPAWN_SETSCHEDPARAM is zero. * lib/spawnattr_setschedparam.c (posix_spawnattr_setschedparam): Likewise. * lib/spawnattr_getschedpolicy.c (posix_spawnattr_getschedpolicy): Do nothing if POSIX_SPAWN_SETSCHEDULER is zero. * lib/spawnattr_setschedpolicy.c (posix_spawnattr_setschedpolicy): Likewise. * tests/test-spawn.c (main): Make it work when POSIX_SPAWN_SETSCHEDPARAM and POSIX_SPAWN_SETSCHEDULER are zero. 2010-03-07 Bruno Haible Fix incorrect Makefile.am generation in German locale. * gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Execute sed command with character range in C locale. 2010-03-06 Bruno Haible Tests for module 'iconv-h'. * modules/iconv-h-tests: New file. * tests/test-iconv-h.c: New file. New module 'iconv-h'. * modules/iconv-h: New file. * modules/iconv_open (Files): Remove lib/iconv.in.h, m4/iconv_h.m4. (Depends-on): Add iconv-h. Remove include_next, arg-nonnull. (configure.ac): Remove gl_ICONV_H. (Makefile.am): Remove rule for iconv.h. 2010-03-06 Bruno Haible More consistent naming of *.m4 files. * m4/wctype_h.m4: Renamed from m4/wctype.m4. * modules/wctype (Files): Update. More consistent naming of *.m4 files. * m4/wchar_h.m4: Renamed from m4/wchar.m4. * modules/wchar (Files): Update. 2010-03-06 Jim Meyering euidaccess: relax license to LGPLv2+ * modules/euidaccess (License): Relax to LGPLv2+. 2010-03-06 Bruno Haible Prefer lib_SOURCES over unconditional AC_LIBOBJ. * modules/exitfail (configure.ac): Remove AC_LIBOBJ invocation. (Makefile.am): Augment lib_SOURCES instead. 2010-03-04 Jim Meyering utime: remove obsolete module This module, like autoconf's AC_FUNC_UTIME_NULL macro, has been unnecessary for years, and has been marked as obsolete for 10 months. * modules/utime: Remove file. * lib/utime.c: Remove file. * m4/utime.m4: Remove file. * m4/utimes-null.m4: Remove file. * doc/posix-functions/utime.texi (utime): Remove reference to the module. Move the sole "fixed by gnulib" item into the "problems not fixed by Gnulib" list. * MODULES.html.sh (func_all_modules): Remove reference to "utime". 2010-03-05 Simon Josefsson * modules/exit (License): Relax license to LGPLv2+. (Status): Mark as obsolete. * NEWS: Mention deprecated 'exit' module. * doc/posix-functions/exit.texi: Recommend 'stdlib' module instead of now obsolete 'exit'. 2010-03-02 Ralf Wildenhues fts-lgpl: remove unused module * modules/fts-lgpl: Remove. * MODULES.html.sh (func_all_modules): Adjust. * check-module (find_included_lib_files): Adjust. * m4/fts.m4 (gl_FUNC_FTS_LGPL): Remove. 2010-03-02 Ben Walton (tiny change) copy-acl: enhance Solaris ACL error handling * lib/copy-acl.c (qcopy_acl): Also ignore EOPNOTSUPP. * lib/set-mode-acl.c (qset_acl): Likewise. 2010-03-02 Bruno Haible spawn: Don't override the system defined values on FreeBSD 8. * lib/spawn.in.h (POSIX_SPAWN_RESETIDS, POSIX_SPAWN_SETPGROUP, POSIX_SPAWN_SETSIGDEF, POSIX_SPAWN_SETSIGMASK, POSIX_SPAWN_SETSCHEDPARAM, POSIX_SPAWN_SETSCHEDULER): Don't redefine if HAVE_POSIX_SPAWN is 1. Reported by Johan van Selst via Eric Blake. 2010-03-01 Bruno Haible * doc/gnulib-tool.texi (Initial import): Clarify the requirements regarding Automake. 2010-02-25 Bruno Haible Fix breakage of gnulib-tool with ksh, introduced on 2010-02-21. * gnulib-tool: Define 'echo' as a function only before the ksh alias setting, not afterwards. Reported by Ben Walton . 2010-02-24 Eric Blake bootstrap, git-version-gen: use timestamp * build-aux/git-version-gen (scriptversion): Force UTC. * build-aux/bootstrap (scriptversion): New variable. bootstrap: allow older git * build-aux/bootstrap (GNULIB_SRCDIR): Add fallback if git is older than 1.6.4. Requested by the libvirt project. 2010-02-23 Eric Blake warn-on-use: work with old autoconf * m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Accomodate older AS_VAR semantics of autoconf 2.60. Reported by Bruno Haible. bootstrap: improve some comments * build-aux/bootstrap: Drop unneeded emacs hint. Add some clarification comments. gettimeofday: provide correct function * lib/gettimeofday.c (gettimeofday): Provide rpl_gettimeofday only when replacement is declared, otherwise provide gettimeofday. Reported by Michael Goffioul. 2010-02-23 Jim Meyering lib-ignore: relax license to "unlimited", not LGPLv2+ * modules/lib-ignore (License): Relax to "unlimited". 2010-02-23 Jim Meyering lib-ignore: relax license to LGPLv2+ * modules/lib-ignore (License): Relax to LGPLv2+. 2010-02-22 Eric Blake lseek: avoid bash 3.2 broken pipe bug * m4/lseek.m4 (gl_FUNC_LSEEK): Drain pipe, to avoid spurious warning from bash 3.2. Reported by Ben Pfaff, with analysis from Bruno Haible. bootstrap: support non-FSF copyright holder * build-aux/bootstrap (COPYRIGHT_HOLDER, with_gettext): Allow bootstrap.conf override of COPYRIGHT_HOLDER. (MSGID_BUGS_ADDRESS): Allow URL rather than email. bootstrap: interoperate with gettext 0.14.1 * build-aux/bootstrap (slurp): Fix typo when using older gettext. bootstrap: allow for alternate submodule location * build-aux/bootstrap (gnulib_path): New variable; use instead of hardcoding submodule location. (gnulib_mk): Allow direct use of Makefile.am. bootstrap: use GNULIB_SRCDIR to reduce disk usage * build-aux/bootstrap (GNULIB_SRCDIR): If set, use as a reference, rather than reconfiguring where the submodule points. gettimeofday: restore support for platforms that lack function * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): Also compile replacement if function is missing. * m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_DEFAULTS): New witness. * modules/sys_time (Makefile.am): Substitute it. * lib/sys_time.in.h (gettimeofday): Check it. Reported by Michael Goffioul. 2010-02-21 Bruno Haible * lib/stdio.in.h (obstack_printf): Fix typo. 2010-02-21 Jose E. Marchesi vc-list-files: use bzr ls's -R option * build-aux/vc-list-files: Invoke bazaar to generate a recursive list of versioned files based on 'dir' (usage of -R in 'bzr ls'). 2010-02-21 Jim Meyering init.sh: fix EXEEXT shims to work also for names like test-prog * tests/init.sh: Re-exec a better shell, when needed. If the current shell lacks support for posix $(...), an init.sh-using test will now try to find a shell that supports that. If EXEEXT is nonempty, we also require support for hyphen-in-alias-name and shell substitutions like ${var#glob}. Failure to find such a shell results in a skipped test. 2010-02-21 Bruno Haible Really work around "broken pipe" error message from bash 3.2. * gnulib-tool (func_reset_sigpipe): Remove function. (echo): In bash 3.2, define to a function that uses printf. Analyzed by Ralf Wildenhues, Chet Ramey, Ben Pfaff. 2010-02-20 Bruno Haible Restore support for automake 1.9.6 with autoconf 2.61. * m4/gnulib-common.m4 (AC_PROG_MKDIR_P): Ensure MKDIR_P is AC_SUBSTed. Reported by James Youngman . 2010-02-20 Bruno Haible Improve *printf warning condition. * lib/stdio.in.h (fprintf, printf, vfprintf, vprintf): Emit warning also if GNULIB_POSIXCHECK is defined, the *-posix module is not used, and the function is overridden due to SIGPIPE emulation. 2010-02-20 Bruno Haible * lib/stdio.in.h: Tweak comments. 2010-02-19 Bruno Haible Make it easier to find modules. New gnulib-tool option '--find'. * gnulib-tool: New option --find. (func_usage): Document it. (func_sanitize_modulelist): New function, extracted from func_all_modules. (func_all_modules): Invoke it. * doc/gnulib-tool.texi (Which modules?): New node. 2010-02-18 Markus Duft (tiny change) * lib/sys_select.in.h: Provide select replacement even if sys/select.h exists on a system, for Interix. 2010-02-18 Jim Meyering init.sh: don't use $(...) just yet * tests/init.sh (create_exe_shim_functions_): Use `...`, not $(...), to accommodate e.g., Solaris' /bin/sh. 2010-02-17 Bruno Haible * doc/posix-headers/netdb.texi: Mention NetBSD 5.0 problem. Reported by Ludovic Courtès . 2010-02-16 Simon Josefsson * modules/userspec-tests (test_userspec_LDADD): Add variable, for linking with -lintl. 2010-02-17 Simon Josefsson * lib/netdb.in.h (AI_V4MAPPED, AI_ALL, AI_ADDRCONFIG): Define to 0 if not provided by the system's netdb.h. Reported by ludo@gnu.org (Ludovic Courtès). 2010-02-15 Jim Meyering init.sh: improve portability and efficiency * tests/init.sh (find_exe_basenames_): Remove unnecessary use of "dummy" in a for loop. Use '!', not '^' to select the complement of a character set used in a "case" statement. Use shell variable manipulation, a la ${...%.exe}, rather than sed. Suggestions from Eric Blake. init.sh: automatically accommodate programs with the .exe suffix Automatically arrange for an invocation of "prog" to execute the program named "prog$EXEEXT" (usually prog.exe). Thus, all invocations may use the simpler "prog", yet still work when built on a system that requires specifying the added suffix. Do this by constructing a function named "prog" that invokes "prog.exe" for each .exe file in selected directories. * tests/init.sh (find_exe_basenames_): New function. (create_exe_shim_functions_): New function. (path_prepend_): Use it. maint.mk: mark syntax-check sc_*.m rules as .PHONY * top/maint.mk ($(syntax-check-rules)): Add .PHONY, so that "make -t syntax-check" doesn't create a ton of sc_*.m files. 2010-02-14 Jim Meyering maint.mk: prohibit inclusion of "hash-pjw.h" without_use * top/maint.mk (sc_prohibit_hash_without_use): Re-add "@". (sc_prohibit_hash_pjw_without_use): New rule. maint.mk: allow the default upload destination dir to be overridden * top/maint.mk (upload_dest_dir_): Define with a default that preserves the status quo. (emit_upload_commands): Use it, rather than hard-coding $(PACKAGE). Reported by Peter Simons. maint.mk: prohibit inclusion of "hash.h" without_use * top/maint.mk (sc_prohibit_hash_without_use): New rule. 2010-02-10 Jim Meyering maint.mk: prohibit inclusion of "ignore-value.h" without_use * top/maint.mk (sc_prohibit_ignore_value_without_use): New rule. 2010-02-09 Eric Blake and Bruno Haible obstack-printf-posix: ensure declaration * m4/obstack-printf.m4 (gl_DECL_OBSTACK_PRINTF): New macro, extracted from gl_FUNC_OBSTACK_PRINTF. (gl_FUNC_OBSTACK_PRINTF): Invoke it. * m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_POSIX): Likewise. * lib/stdio.in.h (obstack_printf, obstack_vprintf): Declare also if GNULIB_OBSTACK_PRINTF_POSIX is 1 and GNULIB_OBSTACK_PRINTF is 0. 2010-02-08 Bruno Haible gnulib-tool: Fix typo in 2010-02-07 commit. * gnulib-tool (func_get_dependencies): Fix typo in last commit. Reported by Eric Blake. 2010-02-07 Bruno Haible gnulib-tool: Fix up caching patches. * gnulib-tool: New options --cache-modules, --no-cache-modules. Remove option --no-cache. Use associative arrays when supported by the shell. (sed_comments): New variable. (modcache): Renamed from do_cache. (sed_extract_field_header): Renamed from sed_extract_cache_prog. Don't abbreviate unnecessarily. (have_associative): New variable. (func_cache_var): Define correctly for bash 1.x. Define in an optimized way also for ksh and zsh. (func_init_sed_convert_to_cache_statements): New function, extracted from func_cache_lookup_module. Add support for associative arrays. Don't set the c_MODULE_cached variable here. Ignore all lines before the first field header. Remove only the final newline, not all trailing newlines. Support empty fields correctly. Limit the use of 'eval' to assignments. (func_get_description, func_get_status, func_get_notice, func_get_applicability, func_get_filelist, func_get_dependencies, func_get_autoconf_early_snippet, func_get_autoconf_snippet, func_get_automake_snippet, func_get_include_directive, func_get_link_directive, func_get_license, func_get_maintainer): Update documentation. List the unoptimized code first. Add support for associative arrays. Limit the use of 'eval' to assignments. (func_get_applicability): Undo stylistic pessimisations. (func_get_automake_snippet, func_get_include_directive): Reduce code duplication. (func_modules_transitive_closure, func_modules_add_dummy, func_modules_notice, func_modules_to_filelist, func_add_file, func_update_file, func_emit_lib_Makefile_am, func_emit_po_Makevars, func_emit_po_POTFILES_in, func_emit_tests_Makefile_am, func_import, func_create_testdir, func_create_megatestdir): Update documentation. 2010-01-18 Ralf Wildenhues * gnulib-tool (func_cache_lookup_module): Store the module name belonging to the cache variable; error out if two different module names map to the same cache variable name. 2010-01-18 Ralf Wildenhues gnulib-tool: Make caching optional. * gnulib-tool: Accept option --no-cache, turning off $do_cache. Update matching short versions of --no-changelog. (func_usage): Update. (sed_extract_cache_prog): Renamed from ... (sed_extract_prog): ... this; revert to old extraction script. (func_get_description, func_get_status) (func_get_notice, func_get_applicability, func_get_filelist) (func_get_dependencies, func_get_autoconf_early_snippet) (func_get_autoconf_snippet, func_get_automake_snippet) (func_get_include_directive, func_get_link_directive) (func_get_license, func_get_maintainer): If $do_cache is false, use old, non-caching extraction scripts. Suggestion by Bruno Haible. 2010-01-17 Ralf Wildenhues gnulib-tool: cache module metainformation. * gnulib-tool (sed_extract_prog): Match newline before each header, and rewrite header to a shell variable suffix. (func_cache_var, func_cache_lookup_module): New functions, to turn a module name into a cache variable prefix, and to look up and cache module metainformation. (func_get_description, func_get_status) (func_get_notice, func_get_applicability, func_get_filelist) (func_get_dependencies, func_get_autoconf_early_snippet) (func_get_autoconf_snippet, func_get_automake_snippet) (func_get_include_directive, func_get_link_directive) (func_get_license, func_get_maintainer): Use func_cache_lookup_module. 2010-02-07 Bruno Haible fnctl: Fix missing dependency. * modules/fcntl (Depends-on): Add getdtablesize. Reported by John W. Eaton . 2010-02-05 Sergey Poznyakoff Argp: fix recognition of short alias options. * lib/argp-parse.c (convert_options): Fix improper use of `|' between character values. * tests/test-argp.c (group1_option): New alias option --read (-r). (group1_parser): Special handling for 'r'. (test15): New test case. (test_fun): Add test15. * tests/test-argp-2.sh: Update expected --help and --usage outputs. 2010-02-05 Sergey Poznyakoff * tests/test-argp.c: Fix indentation. 2010-02-04 Eric Blake gettimeofday: expose type of second argument * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): Do better detection of glibc extension signature, and define GETTIMEOFDAY_TIMEZONE. * tests/test-gettimeofday.c: Use it to silence warning. * doc/posix-functions/gettimeofday.texi (gettimeofday): Document the issue. 2010-02-03 Jim Meyering regcomp.c: avoid the sole warning from gcc's -Wtype-limits * lib/regcomp.c (TYPE_SIGNED): Define. (parse_dup_op): Use it to avoid the sole warning from -Wtype-limits. regcomp.c: avoid a new -Wshadow warning * lib/regcomp.c (create_initial_state): Do not shadow local "err". 2010-02-01 Jim Meyering removing useless parentheses in cpp #define directives For motivation, see commit c0221df4, "define STREQ(a,b) consistently, removing useless parentheses" * lib/memcmp.c (CMP_LT_OR_GT): Remove useless parentheses. * lib/mountlist.c (MNT_IGNORE): Likewise. * lib/trim.h (trim, trim_trailing, trim_leading): Likewise. 2010-02-01 Eric Blake sys_time: use link-warning * m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Split defaults... (gl_HEADER_SYS_TIME_H_DEFAULTS): ...into new macro. (gl_SYS_TIME_MODULE_INDICATOR): New macro. * modules/sys_time (Depends-on): Add warn-on-use. (Makefile.am): Always build replacement. (configure.ac): Update substitutions. * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY) (gl_FUNC_GETTIMEOFDAY_CLOBBER): Include defaults, and no longer bother with SYS_TIME_H. * modules/gettimeofday (configure.ac): Declare indicator. * lib/sys_time.in.h (gettimeofday): Warn if gnulib module is not in use. closein-tests: silence compiler warning * tests/test-closein.c (main): Ignore fread result. * modules/closein-tests (Depends-on): Add ignore-value. tests: silence warning about system return * tests/test-areadlink-with-size.c (main): Ignore system result. * tests/test-areadlink.c (main): Likewise. * tests/test-areadlinkat-with-size.c (main): Likewise. * tests/test-areadlinkat.c (main): Likewise. * tests/test-canonicalize-lgpl.c (main): Likewise. * tests/test-canonicalize.c (main): Likewise. * tests/test-chown.c (main): Likewise. * tests/test-fchownat.c (main): Likewise. * tests/test-fdutimensat.c (main): Likewise. * tests/test-fstatat.c (main): Likewise. * tests/test-futimens.c (main): Likewise. * tests/test-lchown.c (main): Likewise. * tests/test-link.c (main): Likewise. * tests/test-linkat.c (main): Likewise. * tests/test-lstat.c (main): Likewise. * tests/test-mkdir.c (main): Likewise. * tests/test-mkdirat.c (main): Likewise. * tests/test-mkfifo.c (main): Likewise. * tests/test-mkfifoat.c (main): Likewise. * tests/test-mknod.c (main): Likewise. * tests/test-readlink.c (main): Likewise. * tests/test-remove.c (main): Likewise. * tests/test-rename.c (main): Likewise. * tests/test-renameat.c (main): Likewise. * tests/test-rmdir.c (main): Likewise. * tests/test-symlink.c (main): Likewise. * tests/test-symlinkat.c (main): Likewise. * tests/test-unlink.c (main): Likewise. * tests/test-unlinkat.c (main): Likewise. * tests/test-utimens.c (main): Likewise. * tests/test-utimensat.c (main): Likewise. * modules/areadlink-tests (Depends-on): Add ignore-value. * modules/areadlink-with-size-tests (Depends-on): Likewise. * modules/areadlinkat-tests (Depends-on): Likewise. * modules/areadlinkat-with-size-tests (Depends-on): Likewise. * modules/canonicalize-lgpl-tests (Depends-on): Likewise. * modules/canonicalize-tests (Depends-on): Likewise. * modules/chown-tests (Depends-on): Likewise. * modules/fdutimensat-tests (Depends-on): Likewise. * modules/futimens-tests (Depends-on): Likewise. * modules/lchown-tests (Depends-on): Likewise. * modules/link-tests (Depends-on): Likewise. * modules/linkat-tests (Depends-on): Likewise. * modules/lstat-tests (Depends-on): Likewise. * modules/mkdir-tests (Depends-on): Likewise. * modules/mkfifo-tests (Depends-on): Likewise. * modules/mkfifoat-tests (Depends-on): Likewise. * modules/mknod-tests (Depends-on): Likewise. * modules/openat-tests (Depends-on): Likewise. * modules/readlink-tests (Depends-on): Likewise. * modules/remove-tests (Depends-on): Likewise. * modules/rename-tests (Depends-on): Likewise. * modules/renameat-tests (Depends-on): Likewise. * modules/rmdir-tests (Depends-on): Likewise. * modules/symlink-tests (Depends-on): Likewise. * modules/symlinkat-tests (Depends-on): Likewise. * modules/unlink-tests (Depends-on): Likewise. * modules/utimens-tests (Depends-on): Likewise. * modules/utimensat-tests (Depends-on): Likewise. 2010-01-31 Bruno Haible Perform the same test for many functions. * m4/mathfunc.m4 (gl_COMMON_DOUBLE_MATHFUNC, gl_COMMON_DOUBLE_MATHFUNC_TEST): New macros. * m4/sqrt.m4 (gl_FUNC_SQRT): Invoke gl_COMMON_DOUBLE_MATHFUNC instead of gl_MATHFUNC. * modules/acos (configure.ac): Likewise. * modules/asin (configure.ac): Likewise. * modules/atan (configure.ac): Likewise. * modules/atan2 (configure.ac): Likewise. * modules/cbrt (configure.ac): Likewise. * modules/copysign (configure.ac): Likewise. * modules/cos (configure.ac): Likewise. * modules/cosh (configure.ac): Likewise. * modules/erf (configure.ac): Likewise. * modules/erfc (configure.ac): Likewise. * modules/exp (configure.ac): Likewise. * modules/fmod (configure.ac): Likewise. * modules/hypot (configure.ac): Likewise. * modules/j0 (configure.ac): Likewise. * modules/j1 (configure.ac): Likewise. * modules/jn (configure.ac): Likewise. * modules/lgamma (configure.ac): Likewise. * modules/log (configure.ac): Likewise. * modules/log10 (configure.ac): Likewise. * modules/log1p (configure.ac): Likewise. * modules/pow (configure.ac): Likewise. * modules/remainder (configure.ac): Likewise. * modules/sin (configure.ac): Likewise. * modules/sinh (configure.ac): Likewise. * modules/tan (configure.ac): Likewise. * modules/tanh (configure.ac): Likewise. * modules/y0 (configure.ac): Likewise. * modules/y1 (configure.ac): Likewise. * modules/yn (configure.ac): Likewise. Suggested by Paolo Bonzini. 2010-01-31 Bruno Haible * m4/getline.m4 (gl_FUNC_GETLINE): Add comment about REPLACE_GETLINE. 2010-01-31 Bruno Haible Work around getdelim() bug on FreeBSD 8.0. * m4/getdelim.m4 (gl_FUNC_GETDELIM): Test whether getdelim supports an initially NULL line. Set REPLACE_GETDELIM if getdelim exists but does not work. * lib/stdio.in.h (getdelim): Define as an alias if REPLACE_GETDELIM is 1. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize REPLACE_GETDELIM. * modules/stdio (Makefile.am): Also substitute REPLACE_GETDELIM. * tests/test-getdelim.c (main): Also test result for a NULL buffer and a non-zero size. * doc/posix-functions/getdelim.texi: Mention the FreeBSD bug. 2010-01-31 Bruno Haible Work around getline() bug on FreeBSD 8.0. * m4/getline.m4 (gl_FUNC_GETLINE): Also test result for a NULL buffer and a non-zero size. * tests/test-getline.c (main): Likewise. * doc/posix-functions/getline.texi: Mention the FreeBSD bug. Reported by Dennis via Eric Blake. 2010-01-28 Eric Blake regex: fix build failure * lib/regex_internal.h (__GNUC_PREREQ): Define for non-glibc platforms. 2010-01-28 Jim Meyering regex: do not ignore memory allocation failure * lib/regex_internal.c (create_cd_newstate): Detect re_node_set_init_copy failure. Extracted from glibc commit 2da42bc06566bc89785e580fa1ac89b4c9f2a63c. regex: sync more white-space changes from libc * lib/regex_internal.c: White-space only changes. * lib/regexec.c: Likewise. regex: add many uses of __attribute_warn_unused_result__ * lib/regex_internal.c: Use __attribute_warn_unused_result__. * lib/regexec.c: Likewise. Extracted from a messy glibc commit. regcomp.c: spelling and merge-artifact from glibc * lib/regcomp.c: Merge remainder of glibc's 2da42bc06566bc89785e580fa1ac89b4c9f2a63c. regcomp.c: sync white-space changes from glibc * lib/regcomp.c: Merge to accommodate white space changes from glibc's 2da42bc06566bc89785e580fa1ac89b4c9f2a63c. regcomp.c: do not ignore internal return values * lib/regcomp.c: Do not ignore internal return values. This is from glibc's 2da42bc06566bc89785e580fa1ac89b4c9f2a63c, but without its white-space changes and spelling fixes. regex_internal.h: define __attribute_warn_unused_result__ * lib/regex_internal.h (__attribute_warn_unused_result__): Define. maint: add a syntax-check rule to check for vulnerable Makefile.in * top/maint.mk (sc_vulnerable_makefile_CVE-2009-4029): New rule. 2010-01-27 Jim Meyering ncftpput-ftp: clean up spaces * build-aux/ncftpput-ftp: Make Copyright line consistent. Remove trailing blanks. 2010-01-27 Simon Josefsson * build-aux/git-version-gen: Fix copyright statement. * build-aux/gnupload: Likewise. * tests/test-arcfour.c: Likewise. * tests/test-arctwo.c: Likewise. * tests/test-count-one-bits.c: Likewise. * tests/test-crc.c: Likewise. * tests/test-des.c: Likewise. * tests/test-gc-arcfour.c: Likewise. * tests/test-gc-arctwo.c: Likewise. * tests/test-gc-des.c: Likewise. * tests/test-gc-hmac-md5.c: Likewise. * tests/test-gc-hmac-sha1.c: Likewise. * tests/test-gc-md2.c: Likewise. * tests/test-gc-md4.c: Likewise. * tests/test-gc-md5.c: Likewise. * tests/test-gc-pbkdf2-sha1.c: Likewise. * tests/test-gc-rijndael.c: Likewise. * tests/test-gc-sha1.c: Likewise. * tests/test-gc.c: Likewise. * tests/test-gethostname.c: Likewise. * tests/test-gettimeofday.c: Likewise. * tests/test-hash.c: Likewise. * tests/test-hmac-md5.c: Likewise. * tests/test-hmac-sha1.c: Likewise. * tests/test-md2.c: Likewise. * tests/test-md4.c: Likewise. * tests/test-md5.c: Likewise. * tests/test-memchr.c: Likewise. * tests/test-memchr2.c: Likewise. * tests/test-memcmp.c: Likewise. * tests/test-memmem.c: Likewise. * tests/test-memrchr.c: Likewise. * tests/test-rawmemchr.c: Likewise. * tests/test-read-file.c: Likewise. * tests/test-rijndael.c: Likewise. * tests/test-sockets.c: Likewise. * tests/test-strchrnul.c: Likewise. * tests/test-strstr.c: Likewise. * tests/test-strtod.c: Likewise. * build-aux/ncftpput-ftp: Likewise. 2010-01-26 Eric Blake ignore-value: update recommended header name * modules/ignore-value (Include): Only use <> for headers that exist in glibc. 2010-01-26 Jim Meyering test-userspec.c: avoid compiler warnings * tests/test-userspec.c (main): Avoid shadowing ("uid"), and "initialization discards qualifiers..." warnings. Put the first "uid" in its own scope, and make char* members "const". 2010-01-25 Bruno Haible gnulib-tool: Make warning diagnostics consistent. * gnulib-tool (func_warning): New function. Use it everywhere where gnulib-tool produces output to stderr and it is not a fatal error. 2010-01-25 Bruno Haible Fix test dependencies. * modules/xstrtol-tests (Depends-on): Add inttypes. * modules/xstrtoll-tests (Depends-on): Likewise. Remove xstrtoll. 2010-01-25 Pádraig Brady syntax-check: detect incorrect boolean macro values in config.h * modules/maintainer-makefile (configure.ac): Parameterize the location of config.h which will be available to makefiles as $(CONFIG_INCLUDE). The logic is from Eric Blake and the location indicated by Jim Meyering. Note the more natural CONFIG_HEADER name is prohibited by automake for backwards compatibility reasons. * top/maint.mk (sc_Wundef_boolean): New rule. 2010-01-25 Jim Meyering bootstrap: detect MacOS 10.6's shasum, too * build-aux/bootstrap: Also recognize MacOS 10.6's shasum. Suggested by Thomas Treichl . 2010-01-23 Jim Meyering xstrtoll: new module * modules/xstrtoll: New file. * MODULES.html.sh (Numeric conversion functions): Add xstrtoll. * lib/xstrtol.h [HAVE_LONG_LONG_INT]: Declare xstrtoll and xstrtoull. * lib/xstrtoll.c, lib/xstrtoull.c: New files. ./configure fails if you use this module and lack "long long". * modules/xstrtoll-tests: New module. * tests/test-xstrtoll.c, tests/test-xstrtoull.c: New files. * tests/test-xstrtoll.sh: Like test-xstrtol.c, but use the new init.sh-based test framework. 2010-01-24 Bruno Haible Tests for module 'yn'. * modules/yn-tests: New file. * tests/test-yn.c: New file. Tests for module 'y1'. * modules/y1-tests: New file. * tests/test-y1.c: New file. Tests for module 'y0'. * modules/y0-tests: New file. * tests/test-y0.c: New file. Tests for module 'tanh'. * modules/tanh-tests: New file. * tests/test-tanh.c: New file. Tests for module 'tan'. * modules/tan-tests: New file. * tests/test-tan.c: New file. Tests for module 'sqrt'. * modules/sqrt-tests: New file. * tests/test-sqrt.c: New file. Tests for module 'sinh'. * modules/sinh-tests: New file. * tests/test-sinh.c: New file. Tests for module 'sin'. * modules/sin-tests: New file. * tests/test-sin.c: New file. Tests for module 'rint'. * modules/rint-tests: New file. * tests/test-rint.c: New file. Tests for module 'remainder'. * modules/remainder-tests: New file. * tests/test-remainder.c: New file. Tests for module 'pow'. * modules/pow-tests: New file. * tests/test-pow.c: New file. Tests for module 'nextafter'. * modules/nextafter-tests: New file. * tests/test-nextafter.c: New file. Tests for module 'modf'. * modules/modf-tests: New file. * tests/test-modf.c: New file. Tests for module 'logb'. * modules/logb-tests: New file. * tests/test-logb.c: New file. Tests for module 'log1p'. * modules/log1p-tests: New file. * tests/test-log1p.c: New file. Tests for module 'log10'. * modules/log10-tests: New file. * tests/test-log10.c: New file. Tests for module 'log'. * modules/log-tests: New file. * tests/test-log.c: New file. Tests for module 'lgamma'. * modules/lgamma-tests: New file. * tests/test-lgamma.c: New file. Tests for module 'ldexp'. * modules/ldexp-tests: New file. * tests/test-ldexp.c: New file. Tests for module 'jn'. * modules/jn-tests: New file. * tests/test-jn.c: New file. Tests for module 'j1'. * modules/j1-tests: New file. * tests/test-j1.c: New file. Tests for module 'j0'. * modules/j0-tests: New file. * tests/test-j0.c: New file. Tests for module 'hypot'. * modules/hypot-tests: New file. * tests/test-hypot.c: New file. Tests for module 'fmod'. * modules/fmod-tests: New file. * tests/test-fmod.c: New file. Tests for module 'fabs'. * modules/fabs-tests: New file. * tests/test-fabs.c: New file. Tests for module 'exp'. * modules/exp-tests: New file. * tests/test-exp.c: New file. Tests for module 'erfc'. * modules/erfc-tests: New file. * tests/test-erfc.c: New file. Tests for module 'erf'. * modules/erf-tests: New file. * tests/test-erf.c: New file. Tests for module 'cosh'. * modules/cosh-tests: New file. * tests/test-cosh.c: New file. Tests for module 'cos'. * modules/cos-tests: New file. * tests/test-cos.c: New file. Tests for module 'copysign'. * modules/copysign-tests: New file. * tests/test-copysign.c: New file. Tests for module 'cbrt'. * modules/cbrt-tests: New file. * tests/test-cbrt.c: New file. Tests for module 'atan2'. * modules/atan2-tests: New file. * tests/test-atan2.c: New file. Tests for module 'atan'. * modules/atan-tests: New file. * tests/test-atan.c: New file. Tests for module 'asin'. * modules/asin-tests: New file. * tests/test-asin.c: New file. Tests for module 'acos'. * modules/acos-tests: New file. * tests/test-acos.c: New file. 2010-01-24 Bruno Haible Fix tests for common functions. * m4/mathfunc.m4 (gl_MATHFUNC): Take two additional parameters. Use a code snippet that references the function pointer, rather than merely calling the function. Substitute the FUNC_LIBM variable. * m4/sqrt.m4 (gl_FUNC_SQRT): Update gl_MATHFUNC invocation. * modules/acos (configure.ac): Likewise. * modules/asin (configure.ac): Likewise. * modules/atan (configure.ac): Likewise. * modules/atan2 (configure.ac): Likewise. * modules/cbrt (configure.ac): Likewise. * modules/copysign (configure.ac): Likewise. * modules/cos (configure.ac): Likewise. * modules/cosh (configure.ac): Likewise. * modules/erf (configure.ac): Likewise. * modules/erfc (configure.ac): Likewise. * modules/exp (configure.ac): Likewise. * modules/fabs (configure.ac): Likewise. * modules/fmod (configure.ac): Likewise. * modules/hypot (configure.ac): Likewise. * modules/j0 (configure.ac): Likewise. * modules/j1 (configure.ac): Likewise. * modules/jn (configure.ac): Likewise. * modules/ldexp (configure.ac): Likewise. * modules/lgamma (configure.ac): Likewise. * modules/log (configure.ac): Likewise. * modules/log10 (configure.ac): Likewise. * modules/log1p (configure.ac): Likewise. * modules/logb (configure.ac): Likewise. * modules/modf (configure.ac): Likewise. * modules/nextafter (configure.ac): Likewise. * modules/pow (configure.ac): Likewise. * modules/remainder (configure.ac): Likewise. * modules/rint (configure.ac): Likewise. * modules/sin (configure.ac): Likewise. * modules/sinh (configure.ac): Likewise. * modules/tan (configure.ac): Likewise. * modules/tanh (configure.ac): Likewise. * modules/y0 (configure.ac): Likewise. * modules/y1 (configure.ac): Likewise. * modules/yn (configure.ac): Likewise. 2010-01-24 Bruno Haible Tests: Defeat inlining of math functions by GCC >= 4.3.0. * tests/test-acosl.c (x): New variable. (main): Store argument in x and fetch it from x. * tests/test-asinl.c (x): New variable. (main): Store argument in x and fetch it from x. * tests/test-atanl.c (x): New variable. (main): Store argument in x and fetch it from x. * tests/test-cosl.c (x): New variable. (main): Store argument in x and fetch it from x. * tests/test-expl.c (x): New variable. (main): Store argument in x and fetch it from x. * tests/test-logl.c (x): New variable. (main): Store argument in x and fetch it from x. * tests/test-sinl.c (x): New variable. (main): Store argument in x and fetch it from x. * tests/test-sqrtl.c (x): New variable. (main): Store argument in x and fetch it from x. * tests/test-tanl.c (x): New variable. (main): Store argument in x and fetch it from x. 2010-01-24 Bruno Haible Provide EXEEXT and srcdir in TESTS_ENVIRONMENT by default. * gnulib-tool (func_emit_tests_Makefile_am): Add EXEEXT and srcdir assignments to the initial TESTS_ENVIRONMENT. * doc/gnulib.texi (Unit test modules): Document it. * modules/acl-tests (Makefile.am): Drop EXEEXT assignment from TESTS_ENVIRONMENT. * modules/btowc-tests (Makefile.am): Likewise. * modules/c-stack-tests (Makefile.am): Likewise. * modules/c-strcase-tests (Makefile.am): Likewise. * modules/copy-file-tests (Makefile.am): Likewise. * modules/mbmemcasecmp-tests (Makefile.am): Likewise. * modules/mbmemcasecoll-tests (Makefile.am): Likewise. * modules/mbrtowc-tests (Makefile.am): Likewise. * modules/mbscasecmp-tests (Makefile.am): Likewise. * modules/mbscasestr-tests (Makefile.am): Likewise. * modules/mbschr-tests (Makefile.am): Likewise. * modules/mbscspn-tests (Makefile.am): Likewise. * modules/mbsinit-tests (Makefile.am): Likewise. * modules/mbsncasecmp-tests (Makefile.am): Likewise. * modules/mbsnrtowcs-tests (Makefile.am): Likewise. * modules/mbspbrk-tests (Makefile.am): Likewise. * modules/mbspcasecmp-tests (Makefile.am): Likewise. * modules/mbsrchr-tests (Makefile.am): Likewise. * modules/mbsrtowcs-tests (Makefile.am): Likewise. * modules/mbsspn-tests (Makefile.am): Likewise. * modules/mbsstr-tests (Makefile.am): Likewise. * modules/nl_langinfo-tests (Makefile.am): Likewise. * modules/unicase/locale-language-tests (Makefile.am): Likewise. * modules/unistdio/u16-vasnprintf-tests (Makefile.am): Likewise. * modules/unistdio/u32-vasnprintf-tests (Makefile.am): Likewise. * modules/unistdio/u8-vasnprintf-tests (Makefile.am): Likewise. * modules/unistdio/ulc-vasnprintf-tests (Makefile.am): Likewise. * modules/uniwbrk/ulc-wordbreaks-tests (Makefile.am): Likewise. * modules/vasnprintf-posix-tests (Makefile.am): Likewise. * modules/wcrtomb-tests (Makefile.am): Likewise. * modules/wcsnrtombs-tests (Makefile.am): Likewise. * modules/wcsrtombs-tests (Makefile.am): Likewise. * modules/quotearg-tests (Makefile.am): Drop EXEEXT and srcdir assignments from TESTS_ENVIRONMENT. * modules/argp-tests (Makefile.am): Drop TESTS_ENVIRONMENT augmentation. * modules/argp-version-etc-tests (Makefile.am): Likewise. * modules/atexit-tests (Makefile.am): Likewise. * modules/binary-io-tests (Makefile.am): Likewise. * modules/closein-tests (Makefile.am): Likewise. * modules/dprintf-posix-tests (Makefile.am): Likewise. * modules/exclude-tests (Makefile.am): Likewise. * modules/fflush-tests (Makefile.am): Likewise. * modules/fpending-tests (Makefile.am): Likewise. * modules/fprintf-posix-tests (Makefile.am): Likewise. * modules/freadahead-tests (Makefile.am): Likewise. * modules/freadptr-tests (Makefile.am): Likewise. * modules/freadseek-tests (Makefile.am): Likewise. * modules/fseek-tests (Makefile.am): Likewise. * modules/fseeko-tests (Makefile.am): Likewise. * modules/ftell-tests (Makefile.am): Likewise. * modules/ftello-tests (Makefile.am): Likewise. * modules/idpriv-drop-tests (Makefile.am): Likewise. * modules/idpriv-droptemp-tests (Makefile.am): Likewise. * modules/lseek-tests (Makefile.am): Likewise. * modules/parse-duration-tests (Makefile.am): Likewise. * modules/perror-tests (Makefile.am): Likewise. * modules/pipe-filter-gi-tests (Makefile.am): Likewise. * modules/pipe-filter-ii-tests (Makefile.am): Likewise. * modules/pipe-tests (Makefile.am): Likewise. * modules/pread-tests (Makefile.am): Likewise. * modules/printf-posix-tests (Makefile.am): Likewise. * modules/select-tests (Makefile.am): Likewise. * modules/sigpipe-tests (Makefile.am): Likewise. * modules/tsearch-tests (Makefile.am): Likewise. * modules/unicase/ulc-casecmp-tests (Makefile.am): Likewise. * modules/unicase/ulc-casecoll-tests (Makefile.am): Likewise. * modules/uniname/uniname-tests (Makefile.am): Likewise. * modules/uniwidth/width-tests (Makefile.am): Likewise. * modules/vdprintf-posix-tests (Makefile.am): Likewise. * modules/version-etc-tests (Makefile.am): Likewise. * modules/vfprintf-posix-tests (Makefile.am): Likewise. * modules/vprintf-posix-tests (Makefile.am): Likewise. * modules/xalloc-die-tests (Makefile.am): Likewise. * modules/xprintf-posix-tests (Makefile.am): Likewise. * modules/xstrtoimax-tests (Makefile.am): Likewise. * modules/xstrtol-tests (Makefile.am): Likewise. * modules/xstrtoumax-tests (Makefile.am): Likewise. * modules/yesno-tests (Makefile.am): Likewise. Suggested by Jim Meyering. 2010-01-24 Bruno Haible More documentation. * doc/gnulib.texi (Writing modules): New chapter. (Miscellaneous Notes): Move sections "Comments" and "Header files" to the new chapter. 2010-01-24 Jim Meyering maint.mk: do not prepend "./" after filtering * top/maint.mk (_prepend_srcdir_prefix): New variable (VC_LIST_EXCEPT): Use it to avoid prepending (post-filter) "./" when $(srcdir) is ".". define STREQ(a,b) consistently, removing useless parentheses #define STREQ(a, b) (strcmp ((a), (b)) == 0) is over-parenthesized, since the only risk is that "a" or "b" contains an unparenthesized comma, but if either did that, STREQ would have 3 or more arguments. Hence, #define STREQ(a, b) (strcmp (a, b) == 0) is better. * lib/fts.c (STREQ): Remove unnecessary parentheses. * lib/hash-triple.c (STREQ): Likewise. * tests/test-argv-iter.c (STREQ): Use a and b, not s1 and s2. * lib/getugroups.c (STREQ): Likewise. 2010-01-23 Jim Meyering maint.mk: fix syntax-check in a non-srcdir build directory * top/maint.mk (_dot_escaped_srcdir): Remove erroneous backslash, introduced in my 2010-01-21 commit, a6da6c45. Reported by Eric Blake. 2010-01-22 Jim Meyering userspec: add unit tests * tests/test-userspec.c: New file. * modules/userspec-tests: Likewise. 2010-01-21 Jim Meyering maint.mk: handle source file names containing "." robustly * top/maint.mk (_dot_escaped_srcdir): Define. (VC_LIST): Use it in LHS of sed substitution. 2010-01-21 Jiri Denemark maint.mk: fix VC_LIST_EXCEPT for srcdir != builddir * top/maint.mk (VC_LIST_EXCEPT): Preprocess the output of $(VC_LIST) to remove a prefix of '$(srcdir)/', so that it works from a non-srcdir build. 2010-01-20 Eric Blake warn-on-use: use instead of link-warning * modules/stdio (Depends-on, Makefile.am): Drop link-warning. * modules/unistd (Depends-on, Makefile.am): Likewise. * modules/arpa_inet (Depends-on): Replace link-warning with warn-on-use. (Makefile.am): Update rules accordingly. * modules/ctype (Depends-on, Makefile.am): Likewise. * modules/dirent (Depends-on, Makefile.am): Likewise. * modules/fcntl-h (Depends-on, Makefile.am): Likewise. * modules/inttypes (Depends-on, Makefile.am): Likewise. * modules/langinfo (Depends-on, Makefile.am): Likewise. * modules/locale (Depends-on, Makefile.am): Likewise. * modules/math (Depends-on, Makefile.am): Likewise. * modules/search (Depends-on, Makefile.am): Likewise. * modules/signal (Depends-on, Makefile.am): Likewise. * modules/spawn (Depends-on, Makefile.am): Likewise. * modules/stdlib (Depends-on, Makefile.am): Likewise. * modules/string (Depends-on, Makefile.am): Likewise. * modules/strings (Depends-on, Makefile.am): Likewise. * modules/sys_file (Depends-on, Makefile.am): Likewise. * modules/sys_ioctl (Depends-on, Makefile.am): Likewise. * modules/sys_select (Depends-on, Makefile.am): Likewise. * modules/sys_socket (Depends-on, Makefile.am): Likewise. * modules/sys_stat (Depends-on, Makefile.am): Likewise. * modules/sys_times (Depends-on, Makefile.am): Likewise. * modules/sys_utsname (Depends-on, Makefile.am): Likewise. * modules/wchar (Depends-on, Makefile.am): Likewise. * m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET): Check which functions should be poisoned. * m4/ctype.m4 (gl_CTYPE_H): Likewise. * m4/dirent_h.m4 (gl_DIRENT_H): Likewise. * m4/fcntl_h.m4 (gl_FCNTL_H): Likewise. * m4/inttypes.m4 (gl_INTTYPES_H): Likewise. * m4/langinfo_h.m4 (gl_LANGINFO_H): Likewise. * m4/locale_h.m4 (gl_LOCALE_H): Likewise. * m4/math_h.m4 (gl_MATH_H): Likewise. * m4/search_h.m4 (gl_SEARCH_H): Likewise. * m4/signal_h.m4 (gl_SIGNAL_H): Likewise. * m4/spawn_h.m4 (gl_SPAWN_H): Likewise. * m4/stdio_h.m4 (gl_STDIO_H): Likewise. * m4/stdlib_h.m4 (gl_STDLIB_H): Likewise. * m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Likewise. * m4/strings_h.m4 (gl_HEADER_STRINGS_H_BODY): Likewise. * m4/sys_file_h.m4 (gl_HEADER_SYS_FILE_H_DEFAULTS): Likewise. * m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H): Likewise. * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise. * m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise. * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Likewise. * m4/sys_times_h.m4 (gl_SYS_TIMES_H): Likewise. * m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H): Likewise. * m4/wchar.m4 (gl_WCHAR_H): Likewise. * lib/arpa_inet.in.h: Use _GL_WARN_ON_USE instead of GL_LINK_WARNING. * lib/ctype.in.h: Likewise. * lib/dirent.in.h: Likewise. * lib/fcntl.in.h: Likewise. * lib/inttypes.in.h: Likewise. * lib/langinfo.in.h: Likewise. * lib/locale.in.h: Likewise. * lib/math.in.h: Likewise. * lib/search.in.h: Likewise. * lib/signal.in.h: Likewise. * lib/spawn.in.h: Likewise. * lib/stdio.in.h: Likewise. * lib/stdlib.in.h: Likewise. * lib/string.in.h: Likewise. * lib/strings.in.h: Likewise. * lib/sys_file.in.h: Likewise. * lib/sys_ioctl.in.h: Likewise. * lib/sys_select.in.h: Likewise. * lib/sys_socket.in.h: Likewise. * lib/sys_stat.in.h: Likewise. * lib/sys_times.in.h: Likewise. * lib/sys_utsname.in.h: Likewise. * lib/unistd.in.h: Likewise. * lib/wchar.in.h: Likewise. 2010-01-20 Bruno Haible Avoid duplicate -lm. * m4/isnan.m4 (gl_ISNAN): Avoid duplicate -lm in $ISNAN_LIBM. * m4/round.m4 (gl_FUNC_ROUND): Avoid duplicate -lm in $ROUND_LIBM. * m4/roundf.m4 (gl_FUNC_ROUNDF): Avoid duplicate -lm in $ROUNDF_LIBM. * m4/roundl.m4 (gl_FUNC_ROUNDL): Avoid duplicate -lm in $ROUNDL_LIBM. * m4/acosl.m4 (gl_FUNC_ACOSL): Avoid duplicate -lm in $ACOSL_LIBM. * m4/cosl.m4 (gl_FUNC_COSL): Avoid duplicate -lm in $COSL_LIBM. * m4/logl.m4 (gl_FUNC_LOGL): Avoid duplicate -lm in $LOGL_LIBM. * m4/sinl.m4 (gl_FUNC_SINL): Avoid duplicate -lm in $SINL_LIBM. * m4/sqrtl.m4 (gl_FUNC_SQRTL): Avoid duplicate -lm in $SQRTL_LIBM. * m4/tanl.m4 (gl_FUNC_TANL): Avoid duplicate -lm in $TANL_LIBM. * m4/asinl.m4 (gl_FUNC_ASINL): Same change, for consistency. * m4/atanl.m4 (gl_FUNC_ATANL): Likewise. Reported by Paolo Bonzini. 2010-01-19 Bruno Haible langinfo, nl_langinfo: Relicense under LGPLv2+. * modules/langinfo (License): Change to LGPLv2+. * modules/nl_langinfo (License): Likewise. Patch by David Lutterkort . 2010-01-19 Bruno Haible Avoid compilation error with cc on OSF/1 5.1. * lib/fcntl.in.h: Include after the #include_next statement, not before. Reported by Ralf Wildenhues . 2010-01-18 Bruno Haible Avoid a link error due to the __printf__ symbol. * lib/stdio.in.h (__attribute__): Define to empty also for gcc 2.5.x and 2.6.x. (__format__, __printf__): Remove definitions. * lib/argp-fmtstream.h: Likewise. * lib/argp.h: Likewise. * lib/error.h: Likewise. * lib/vasnprintf.h: Likewise. * lib/xprintf.h: Likewise. * lib/xvasprintf.h: Likewise. Reported by Ralf Wildenhues . 2010-01-18 Bruno Haible Tests for module 'tanl'. * modules/tanl-tests: New file. * tests/test-tanl.c: New file. Tests for module 'sqrtl'. * modules/sqrtl-tests: New file. * tests/test-sqrtl.c: New file. Tests for module 'sinl'. * modules/sinl-tests: New file. * tests/test-sinl.c: New file. Tests for module 'logl'. * modules/logl-tests: New file. * tests/test-logl.c: New file. Tests for module 'expl'. * modules/expl-tests: New file. * tests/test-expl.c: New file. Tests for module 'cosl'. * modules/cosl-tests: New file. * tests/test-cosl.c: New file. Tests for module 'atanl'. * modules/atanl-tests: New file. * tests/test-atanl.c: New file. Tests for module 'asinl'. * modules/asinl-tests: New file. * tests/test-asinl.c: New file. Tests for module 'acosl'. * modules/acosl-tests: New file. * tests/test-acosl.c: New file. New modules acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl. * lib/math.in.h (acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl): Use the standard gnulib idiom. * lib/cosl.c: Don't include trigl.c and sincosl.c. * lib/sinl.c: Likewise. * lib/tanl.c: Don't include trigl.c. (kernel_tanl): Make static. * lib/sincosl.c: Include trigl.h first. * lib/trigl.c: Likewise. * m4/acosl.m4: New file. * m4/asinl.m4: New file. * m4/atanl.m4: New file. * m4/cosl.m4: New file. * m4/expl.m4: New file. * m4/logl.m4: New file. * m4/sinl.m4: New file. * m4/sqrtl.m4: New file. * m4/tanl.m4: New file. * m4/mathl.m4: Remove file. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_* and HAVE_* variables for acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl. Don't initialize GNULIB_MATHL. * modules/acosl: New file. * modules/asinl: New file. * modules/atanl: New file. * modules/cosl: New file. * modules/expl: New file. * modules/logl: New file. * modules/sinl: New file. * modules/sqrtl: New file. * modules/tanl: New file. * modules/math (Makefile.am): Substitute GNULIB_* and HAVE_* variables for acosl, asinl, atanl, cosl, expl, logl, sinl, sqrtl, tanl. Don't substitute GNULIB_MATHL. * modules/mathl: Rewritten. * doc/posix-functions/acosl.texi: Mention the 'acosl' module. * doc/posix-functions/asinl.texi: Mention the 'asinl' module. * doc/posix-functions/atanl.texi: Mention the 'atanl' module. * doc/posix-functions/cosl.texi: Mention the 'cosl' module. * doc/posix-functions/expl.texi: Mention the 'expl' module. * doc/posix-functions/logl.texi: Mention the 'logl' module. * doc/posix-functions/sinl.texi: Mention the 'sinl' module. * doc/posix-functions/sqrtl.texi: Mention the 'sqrtl' module. * doc/posix-functions/tanl.texi: Mention the 'tanl' module. 2010-01-18 Bruno Haible sqrt: Make gl_FUNC_SQRT requirable. * m4/sqrt.m4: New file. * modules/sqrt (Files): Add it. (configure.ac): Invoke gl_FUNC_SQRT. 2010-01-18 Bruno Haible New modules for common functions. * m4/mathfunc.m4: New file. * modules/acos: New file. * modules/asin: New file. * modules/atan: New file. * modules/atan2: New file. * modules/cbrt: New file. * modules/copysign: New file. * modules/cos: New file. * modules/cosh: New file. * modules/erf: New file. * modules/erfc: New file. * modules/exp: New file. * modules/fabs: New file. * modules/fmod: New file. * modules/hypot: New file. * modules/j0: New file. * modules/j1: New file. * modules/jn: New file. * modules/ldexp: New file. * modules/lgamma: New file. * modules/log: New file. * modules/log10: New file. * modules/log1p: New file. * modules/logb: New file. * modules/modf: New file. * modules/nextafter: New file. * modules/pow: New file. * modules/remainder: New file. * modules/rint: New file. * modules/sin: New file. * modules/sinh: New file. * modules/sqrt: New file. * modules/tan: New file. * modules/tanh: New file. * modules/y0: New file. * modules/y1: New file. * modules/yn: New file. * doc/posix-functions/acos.texi: Mention the 'acos' module. * doc/posix-functions/asin.texi: Mention the 'asin' module. * doc/posix-functions/atan.texi: Mention the 'atan' module. * doc/posix-functions/atan2.texi: Mention the 'atan2' module. * doc/posix-functions/cbrt.texi: Mention the 'cbrt' module. * doc/posix-functions/copysign.texi: Mention the 'copysign' module. * doc/posix-functions/cos.texi: Mention the 'cos' module. * doc/posix-functions/cosh.texi: Mention the 'cosh' module. * doc/posix-functions/erf.texi: Mention the 'erf' module. * doc/posix-functions/erfc.texi: Mention the 'erfc' module. * doc/posix-functions/exp.texi: Mention the 'exp' module. * doc/posix-functions/fabs.texi: Mention the 'fabs' module. * doc/posix-functions/fmod.texi: Mention the 'fmod' module. * doc/posix-functions/hypot.texi: Mention the 'hypot' module. * doc/posix-functions/j0.texi: Mention the 'j0' module. * doc/posix-functions/j1.texi: Mention the 'j1' module. * doc/posix-functions/jn.texi: Mention the 'jn' module. * doc/posix-functions/ldexp.texi: Mention the 'ldexp' module. * doc/posix-functions/lgamma.texi: Mention the 'lgamma' module. * doc/posix-functions/log.texi: Mention the 'log' module. * doc/posix-functions/log10.texi: Mention the 'log10' module. * doc/posix-functions/log1p.texi: Mention the 'log1p' module. * doc/posix-functions/logb.texi: Mention the 'logb' module. * doc/posix-functions/modf.texi: Mention the 'modf' module. * doc/posix-functions/nextafter.texi: Mention the 'nextafter' module. * doc/posix-functions/pow.texi: Mention the 'pow' module. * doc/posix-functions/remainder.texi: Mention the 'remainder' module. * doc/posix-functions/rint.texi: Mention the 'rint' module. * doc/posix-functions/sin.texi: Mention the 'sin' module. * doc/posix-functions/sinh.texi: Mention the 'sinh' module. * doc/posix-functions/sqrt.texi: Mention the 'sqrt' module. * doc/posix-functions/tan.texi: Mention the 'tan' module. * doc/posix-functions/tanh.texi: Mention the 'tanh' module. * doc/posix-functions/y0.texi: Mention the 'y0' module. * doc/posix-functions/y1.texi: Mention the 'y1' module. * doc/posix-functions/yn.texi: Mention the 'yn' module. 2010-01-18 Jim Meyering ignore-value: relax license to LGPLv2+ * modules/ignore-value (License): Relax to LGPLv2+. getdate: don't leak when TZ contains two or more '"'s * lib/getdate.y (get_date): Don't leak a copy of TZ for each double quote in TZ after the first one. readtokens: do not leak internal token_lengths buffer * lib/readtokens.c (readtokens): Free the local, lengths, when the supplied "token_lengths" parameter is NULL. 2010-01-17 Ralf Wildenhues Fix a couple of missing LIBTHREAD link failures on AIX. * modules/git-merge-changelog (git_merge_changelog_LDADD): Add $(LIBTHREAD). * modules/strsignal-tests (test_strsignal_LDADD): Likewise. Link test-poll against INET_PTON_LIB. * modules/poll-tests (test_poll_LDADD): Add $(INET_PTON_LIB), for inet_pton on Solaris 10. 2010-01-17 Bruno Haible unistdio/*-sprintf: Fix typo in module description. * modules/unistdio/u8-sprintf (Depends-on): Fix typo. * modules/unistdio/u8-u8-sprintf (Depends-on): Likewise. * modules/unistdio/u16-sprintf (Depends-on): Likewise. * modules/unistdio/u16-u16-sprintf (Depends-on): Likewise. * modules/unistdio/u32-sprintf (Depends-on): Likewise. * modules/unistdio/u32-u32-sprintf (Depends-on): Likewise. * modules/unistdio/ulc-sprintf (Depends-on): Likewise. Reported by Ralf Wildenhues . 2010-01-17 Ralf Wildenhues gnulib-tool: fix filelist for AIX, HP-UX ksh. * gnulib-tool (func_filter_filelist): Do not quote possibly-empty variables in shell case patterns, for AIX and HP-UX ksh. Split large sed scripts, for HP-UX sed. * modules/stdio: Split sed scripts around 50 sed commands, to avoid HP-UX limit of 99 commands, in the near future. * modules/string: Likewise. * modules/unistd: Likewise. gnulib-tool: avoid writing in the current directory. * gnulib-tool (func_emit_lib_Makefile_am) (func_emit_tests_Makefile_am): Put temporary files in $tmp, not in the current directory, so concurrent gnulib-tool instances do not interfere. 2010-01-16 Jim Meyering doc: update users.txt * users.txt: Add grep. (diffutils, gzip): Update URLs. 2010-01-12 Bruno Haible posix_spawn: Avoid test failure on Cygwin. * tests/test-posix_spawn3.c (DATA_FILENAME) [CYGWIN]: Use less risky characters. Reported by Simon Josefsson. 2010-01-12 Bruno Haible * tests/test-cond.c (main): When skipping the test, show the reason. 2010-01-12 Simon Josefsson * lib/striconv.c (str_cd_iconv): Avoid if before free. 2010-01-12 Simon Josefsson * top/maint.mk (VC_LIST_EXCEPT): Filter list through VC_LIST_ALWAYS_EXCLUDE_REGEX. 2010-01-12 Eric Blake build: guarantee AS_VAR_IF * m4/warnings.m4 (gl_WARN_ADD): Use autoconf name. (gl_AS_VAR_IF): Move... * m4/gnulib-common.m4 (AS_VAR_IF): ...here. Reported by Simon Josefsson. 2010-01-12 Simon Josefsson * lib/stdio.in.h: Fix typo. 2010-01-12 Simon Josefsson * m4/gc.m4: Check if linking to libgcrypt also needs linking to libgpg-error. 2010-01-12 Simon Josefsson * tests/test-xalloc-die.sh: Use $EXEEXT. 2010-01-12 Simon Josefsson Bruno Haible getlogin, getlogin_r: Avoid test failure. * tests/test-getlogin.c: Include . (main): Skip the test when the function fails because stdin is not a tty. * tests/test-getlogin_r.c: Include . (main): Skip the test when the function fails because stdin is not a tty. 2010-01-11 Eric Blake tests: avoid more large file warnings * tests/test-fflush.c: Avoid warning about ftell use. * tests/test-fseek.c: Avoid warning about fseek use. 2010-01-10 Bruno Haible nproc: Work better on Linux when /proc and /sys are not mounted. * lib/nproc.c (num_processors): Use num_processors_via_affinity_mask () as lower bound when, on glibc/Linux systems, sysconf (_SC_NPROCESSORS_CONF) returns 1. Suggested by Pádraig Brady . Reported by Dmitry V. Levin . nproc: Refactor. * lib/nproc.c (num_processors_via_affinity_mask): New function, extracted from num_processors. (num_processors): Call it. 2010-01-11 Jim Meyering utimecmp: avoid new warning from upcoming gcc-4.5.0 * lib/utimecmp.c (BILLION): Define using #define rather than an anonymous enum, to placate upcoming gcc-4.5.0's -Wenum-compare. 2010-01-11 Eric Blake math: add portability warnings for classification macros * modules/math (Depends-on): Add warn-on-use. (Makefile.am): Provide new substitutions. * m4/math_h.m4 (gl_MATH_H): Require inline. * lib/math.in.h (_GL_WARN_REAL_FLOATING_DECL) (_GL_WARN_REAL_FLOATING_IMPL): New helper macros. (isfinite, isinf, isnan, signbit) [GNULIB_POSIXCHECK]: Use them to implement warnings. unistd: warn on use of environ without module * modules/unistd (Depends-on): Add warn-on-use. (Makefile.am): Provide new substitutions. * m4/unistd_h.m4 (gl_UNISTD_H): Check for inline and environ. * lib/unistd.in.h (environ): Wrap with a warning helper function. stdio: warn on suspicious uses * modules/stdio (Depends-on): Add warn-on-use. (Makefile.am): Provide new substitutions. * m4/stdio_h.m4 (gl_STDIO_H): Check for inline, ftello, and fseeko. * lib/stdio.in.h (gets): Always warn on use. (fseek, ftell): Adjust when warnings are issued, and honor _GL_NO_LARGE_FILES as a way to silence the warning. * tests/test-fpurge.c [!GNULIB_FSEEK]: Use new means to squelch any warning about large file offsets. * tests/test-freadable.c [!GNULIB_FSEEK]: Likewise. * tests/test-freading.c [!GNULIB_FSEEK]: Likewise. * tests/test-fseeko.c [!GNULIB_FSEEK]: Likewise. * tests/test-ftell.c [!GNULIB_FSEEK]: Likewise. * tests/test-ftello.c [!GNULIB_FSEEK]: Likewise. * tests/test-fwritable.c [!GNULIB_FSEEK]: Likewise. * tests/test-fwriting.c [!GNULIB_FSEEK]: Likewise. * tests/test-getopt.c [!GNULIB_FTELL]: Likewise. warn-on-use: new module * modules/warn-on-use: New file. * build-aux/warn-on-use.h: Likewise. * m4/warn-on-use.m4: Likewise. * MODULES.html.sh (Support for building): Mention it. 2010-01-10 Bruno Haible Tests for module 'unistr/u32-strdup'. * modules/unistr/u32-strdup-tests: New file. * tests/unistr/test-u32-strdup.c: New file. Tests for module 'unistr/u16-strdup'. * modules/unistr/u16-strdup-tests: New file. * tests/unistr/test-u16-strdup.c: New file. Tests for module 'unistr/u8-strdup'. * modules/unistr/u8-strdup-tests: New file. * tests/unistr/test-u8-strdup.c: New file. * tests/unistr/test-strdup.h: New file. Tests for module 'unistr/u32-strncmp'. * modules/unistr/u32-strncmp-tests: New file. * tests/unistr/test-u32-strncmp.c: New file. Tests for module 'unistr/u16-strncmp'. * modules/unistr/u16-strncmp-tests: New file. * tests/unistr/test-u16-strncmp.c: New file. Tests for module 'unistr/u8-strncmp'. * modules/unistr/u8-strncmp-tests: New file. * tests/unistr/test-u8-strncmp.c: New file. * tests/unistr/test-strncmp.h: New file. Tests for module 'unistr/u32-strcoll'. * modules/unistr/u32-strcoll-tests: New file. * tests/unistr/test-u32-strcoll.c: New file. Tests for module 'unistr/u16-strcoll'. * modules/unistr/u16-strcoll-tests: New file. * tests/unistr/test-u16-strcoll.c: New file. Tests for module 'unistr/u8-strcoll'. * modules/unistr/u8-strcoll-tests: New file. * tests/unistr/test-u8-strcoll.c: New file. Tests for module 'unistr/u32-strcmp'. * modules/unistr/u32-strcmp-tests: New file. * tests/unistr/test-u32-strcmp.c: New file. * tests/unistr/test-u32-strcmp.h: New file. Tests for module 'unistr/u16-strcmp'. * modules/unistr/u16-strcmp-tests: New file. * tests/unistr/test-u16-strcmp.c: New file. * tests/unistr/test-u16-strcmp.h: New file. Tests for module 'unistr/u8-strcmp'. * modules/unistr/u8-strcmp-tests: New file. * tests/unistr/test-u8-strcmp.c: New file. * tests/unistr/test-u8-strcmp.h: New file. * tests/unistr/test-strcmp.h: New file. Tests for module 'unistr/u32-strncat'. * modules/unistr/u32-strncat-tests: New file. * tests/unistr/test-u32-strncat.c: New file. Tests for module 'unistr/u16-strncat'. * modules/unistr/u16-strncat-tests: New file. * tests/unistr/test-u16-strncat.c: New file. Tests for module 'unistr/u8-strncat'. * modules/unistr/u8-strncat-tests: New file. * tests/unistr/test-u8-strncat.c: New file. * tests/unistr/test-strncat.h: New file. Tests for module 'unistr/u32-strcat'. * modules/unistr/u32-strcat-tests: New file. * tests/unistr/test-u32-strcat.c: New file. Tests for module 'unistr/u16-strcat'. * modules/unistr/u16-strcat-tests: New file. * tests/unistr/test-u16-strcat.c: New file. Tests for module 'unistr/u8-strcat'. * modules/unistr/u8-strcat-tests: New file. * tests/unistr/test-u8-strcat.c: New file. * tests/unistr/test-strcat.h: New file. Tests for module 'unistr/u32-stpncpy'. * modules/unistr/u32-stpncpy-tests: New file. * tests/unistr/test-u32-stpncpy.c: New file. Tests for module 'unistr/u16-stpncpy'. * modules/unistr/u16-stpncpy-tests: New file. * tests/unistr/test-u16-stpncpy.c: New file. Tests for module 'unistr/u8-stpncpy'. * modules/unistr/u8-stpncpy-tests: New file. * tests/unistr/test-u8-stpncpy.c: New file. * tests/unistr/test-stpncpy.h: New file. Tests for module 'unistr/u32-strncpy'. * modules/unistr/u32-strncpy-tests: New file. * tests/unistr/test-u32-strncpy.c: New file. Tests for module 'unistr/u16-strncpy'. * modules/unistr/u16-strncpy-tests: New file. * tests/unistr/test-u16-strncpy.c: New file. Tests for module 'unistr/u8-strncpy'. * modules/unistr/u8-strncpy-tests: New file. * tests/unistr/test-u8-strncpy.c: New file. * tests/unistr/test-strncpy.h: New file. Tests for module 'unistr/u32-stpcpy'. * modules/unistr/u32-stpcpy-tests: New file. * tests/unistr/test-u32-stpcpy.c: New file. Tests for module 'unistr/u16-stpcpy'. * modules/unistr/u16-stpcpy-tests: New file. * tests/unistr/test-u16-stpcpy.c: New file. Tests for module 'unistr/u8-stpcpy'. * modules/unistr/u8-stpcpy-tests: New file. * tests/unistr/test-u8-stpcpy.c: New file. * tests/unistr/test-stpcpy.h: New file. Tests for module 'unistr/u32-strcpy'. * modules/unistr/u32-strcpy-tests: New file. * tests/unistr/test-u32-strcpy.c: New file. Tests for module 'unistr/u16-strcpy'. * modules/unistr/u16-strcpy-tests: New file. * tests/unistr/test-u16-strcpy.c: New file. Tests for module 'unistr/u8-strcpy'. * modules/unistr/u8-strcpy-tests: New file. * tests/unistr/test-u8-strcpy.c: New file. * tests/unistr/test-strcpy.h: New file. Tests for module 'unistr/u32-strnlen'. * modules/unistr/u32-strnlen-tests: New file. * tests/unistr/test-u32-strnlen.c: New file. Tests for module 'unistr/u16-strnlen'. * modules/unistr/u16-strnlen-tests: New file. * tests/unistr/test-u16-strnlen.c: New file. Tests for module 'unistr/u8-strnlen'. * modules/unistr/u8-strnlen-tests: New file. * tests/unistr/test-u8-strnlen.c: New file. * tests/unistr/test-strnlen.h: New file. Tests for module 'unistr/u32-strlen'. * modules/unistr/u32-strlen-tests: New file. * tests/unistr/test-u32-strlen.c: New file. Tests for module 'unistr/u16-strlen'. * modules/unistr/u16-strlen-tests: New file. * tests/unistr/test-u16-strlen.c: New file. Tests for module 'unistr/u8-strlen'. * modules/unistr/u8-strlen-tests: New file. * tests/unistr/test-u8-strlen.c: New file. Tests for module 'unistr/u32-prev'. * modules/unistr/u32-prev-tests: New file. * tests/unistr/test-u32-prev.c: New file. Tests for module 'unistr/u16-prev'. * modules/unistr/u16-prev-tests: New file. * tests/unistr/test-u16-prev.c: New file. Tests for module 'unistr/u8-prev'. * modules/unistr/u8-prev-tests: New file. * tests/unistr/test-u8-prev.c: New file. Tests for module 'unistr/u32-next'. * modules/unistr/u32-next-tests: New file. * tests/unistr/test-u32-next.c: New file. Tests for module 'unistr/u16-next'. * modules/unistr/u16-next-tests: New file. * tests/unistr/test-u16-next.c: New file. Tests for module 'unistr/u8-next'. * modules/unistr/u8-next-tests: New file. * tests/unistr/test-u8-next.c: New file. Tests for module 'unistr/u32-strmbtouc'. * modules/unistr/u32-strmbtouc-tests: New file. * tests/unistr/test-u32-strmbtouc.c: New file. Tests for module 'unistr/u16-strmbtouc'. * modules/unistr/u16-strmbtouc-tests: New file. * tests/unistr/test-u16-strmbtouc.c: New file. Tests for module 'unistr/u8-strmbtouc'. * modules/unistr/u8-strmbtouc-tests: New file. * tests/unistr/test-u8-strmbtouc.c: New file. Tests for module 'unistr/u32-strmblen'. * modules/unistr/u32-strmblen-tests: New file. * tests/unistr/test-u32-strmblen.c: New file. Tests for module 'unistr/u16-strmblen'. * modules/unistr/u16-strmblen-tests: New file. * tests/unistr/test-u16-strmblen.c: New file. Tests for module 'unistr/u8-strmblen'. * modules/unistr/u8-strmblen-tests: New file. * tests/unistr/test-u8-strmblen.c: New file. Tests for module 'unistr/u32-cpy-alloc'. * modules/unistr/u32-cpy-alloc-tests: New file. * tests/unistr/test-u32-cpy-alloc.c: New file. Tests for module 'unistr/u16-cpy-alloc'. * modules/unistr/u16-cpy-alloc-tests: New file. * tests/unistr/test-u16-cpy-alloc.c: New file. Tests for module 'unistr/u8-cpy-alloc'. * modules/unistr/u8-cpy-alloc-tests: New file. * tests/unistr/test-u8-cpy-alloc.c: New file. * tests/unistr/test-cpy-alloc.h: New file. Tests for module 'unistr/u32-mbsnlen'. * modules/unistr/u32-mbsnlen-tests: New file. * tests/unistr/test-u32-mbsnlen.c: New file. Tests for module 'unistr/u16-mbsnlen'. * modules/unistr/u16-mbsnlen-tests: New file. * tests/unistr/test-u16-mbsnlen.c: New file. Tests for module 'unistr/u8-mbsnlen'. * modules/unistr/u8-mbsnlen-tests: New file. * tests/unistr/test-u8-mbsnlen.c: New file. Tests for module 'unistr/u32-chr'. * modules/unistr/u32-chr-tests: New file. * tests/unistr/test-u32-chr.c: New file. Tests for module 'unistr/u16-chr'. * modules/unistr/u16-chr-tests: New file. * tests/unistr/test-u16-chr.c: New file. Tests for module 'unistr/u8-chr'. * modules/unistr/u8-chr-tests: New file. * tests/unistr/test-u8-chr.c: New file. * tests/unistr/test-chr.h: New file, based on tests/test-memchr.c. Tests for module 'unistr/u32-cmp2'. * modules/unistr/u32-cmp2-tests: New file. * tests/unistr/test-u32-cmp2.c: New file. Tests for module 'unistr/u16-cmp2'. * modules/unistr/u16-cmp2-tests: New file. * tests/unistr/test-u16-cmp2.c: New file. Tests for module 'unistr/u8-cmp2'. * modules/unistr/u8-cmp2-tests: New file. * tests/unistr/test-u8-cmp2.c: New file. * tests/unistr/test-cmp2.h: New file, based on tests/unistr/test-cmp.h. Tests for module 'unistr/u32-cmp'. * modules/unistr/u32-cmp-tests: New file. * tests/unistr/test-u32-cmp.c: New file. Tests for module 'unistr/u16-cmp'. * modules/unistr/u16-cmp-tests: New file. * tests/unistr/test-u16-cmp.c: New file. Tests for module 'unistr/u8-cmp'. * modules/unistr/u8-cmp-tests: New file. * tests/unistr/test-u8-cmp.c: New file. * tests/unistr/test-cmp.h: New file, based on tests/test-memcmp.c. Tests for module 'unistr/u32-set'. * modules/unistr/u32-set-tests: New file. * tests/unistr/test-u32-set.c: New file. Tests for module 'unistr/u16-set'. * modules/unistr/u16-set-tests: New file. * tests/unistr/test-u16-set.c: New file. Tests for module 'unistr/u8-set'. * modules/unistr/u8-set-tests: New file. * tests/unistr/test-u8-set.c: New file. * tests/unistr/test-set.h: New file. Tests for module 'unistr/u32-move'. * modules/unistr/u32-move-tests: New file. * tests/unistr/test-u32-move.c: New file. Tests for module 'unistr/u16-move'. * modules/unistr/u16-move-tests: New file. * tests/unistr/test-u16-move.c: New file. Tests for module 'unistr/u8-move'. * modules/unistr/u8-move-tests: New file. * tests/unistr/test-u8-move.c: New file. * tests/unistr/test-move.h: New file. Tests for module 'unistr/u32-cpy'. * modules/unistr/u32-cpy-tests: New file. * tests/unistr/test-u32-cpy.c: New file. Tests for module 'unistr/u16-cpy'. * modules/unistr/u16-cpy-tests: New file. * tests/unistr/test-u16-cpy.c: New file. Tests for module 'unistr/u8-cpy'. * modules/unistr/u8-cpy-tests: New file. * tests/unistr/test-u8-cpy.c: New file. * tests/unistr/test-cpy.h: New file. 2010-01-09 Bruno Haible Tests for module 'unistr/u32-uctomb'. * modules/unistr/u32-uctomb-tests: New file. * tests/unistr/test-u32-uctomb.c: New file. Tests for module 'unistr/u16-uctomb'. * modules/unistr/u16-uctomb-tests: New file. * tests/unistr/test-u16-uctomb.c: New file. Tests for module 'unistr/u8-uctomb'. * modules/unistr/u8-uctomb-tests: New file. * tests/unistr/test-u8-uctomb.c: New file. Tests for module 'unistr/u32-mbtoucr'. * modules/unistr/u32-mbtoucr-tests: New file. * tests/unistr/test-u32-mbtoucr.c: New file. Tests for module 'unistr/u16-mbtoucr'. * modules/unistr/u16-mbtoucr-tests: New file. * tests/unistr/test-u16-mbtoucr.c: New file. Tests for module 'unistr/u8-mbtoucr'. * modules/unistr/u8-mbtoucr-tests: New file. * tests/unistr/test-u8-mbtoucr.c: New file. Tests for module 'unistr/u32-mbtouc'. * modules/unistr/u32-mbtouc-tests: New file. * tests/unistr/test-u32-mbtouc.c: New file. Tests for module 'unistr/u16-mbtouc'. * modules/unistr/u16-mbtouc-tests: New file. * tests/unistr/test-u16-mbtouc.c: New file. Tests for module 'unistr/u8-mbtouc'. * modules/unistr/u8-mbtouc-tests: New file. * tests/unistr/test-u8-mbtouc.c: New file. Tests for module 'unistr/u32-mbtouc-unsafe'. * modules/unistr/u32-mbtouc-unsafe-tests: New file. * tests/unistr/test-u32-mbtouc-unsafe.c: New file. * tests/unistr/test-u32-mbtouc.h: New file. Tests for module 'unistr/u16-mbtouc-unsafe'. * modules/unistr/u16-mbtouc-unsafe-tests: New file. * tests/unistr/test-u16-mbtouc-unsafe.c: New file. * tests/unistr/test-u16-mbtouc.h: New file. Tests for module 'unistr/u8-mbtouc-unsafe'. * modules/unistr/u8-mbtouc-unsafe-tests: New file. * tests/unistr/test-u8-mbtouc-unsafe.c: New file. * tests/unistr/test-u8-mbtouc.h: New file. Tests for module 'unistr/u32-mblen'. * modules/unistr/u32-mblen-tests: New file. * tests/unistr/test-u32-mblen.c: New file. Tests for module 'unistr/u16-mblen'. * modules/unistr/u16-mblen-tests: New file. * tests/unistr/test-u16-mblen.c: New file. Tests for module 'unistr/u8-mblen'. * modules/unistr/u8-mblen-tests: New file. * tests/unistr/test-u8-mblen.c: New file. Tests for module 'unistr/u32-to-u16'. * modules/unistr/u32-to-u16-tests: New file. * tests/unistr/test-u32-to-u16.c: New file. Tests for module 'unistr/u32-to-u8'. * modules/unistr/u32-to-u8-tests: New file. * tests/unistr/test-u32-to-u8.c: New file. Tests for module 'unistr/u16-to-u32'. * modules/unistr/u16-to-u32-tests: New file. * tests/unistr/test-u16-to-u32.c: New file. Tests for module 'unistr/u16-to-u8'. * modules/unistr/u16-to-u8-tests: New file. * tests/unistr/test-u16-to-u8.c: New file. Tests for module 'unistr/u8-to-u32'. * modules/unistr/u8-to-u32-tests: New file. * tests/unistr/test-u8-to-u32.c: New file. Tests for module 'unistr/u8-to-u16'. * modules/unistr/u8-to-u16-tests: New file. * tests/unistr/test-u8-to-u16.c: New file. Tests for module 'unistr/u32-check'. * modules/unistr/u32-check-tests: New file. * tests/unistr/test-u32-check.c: New file. Tests for module 'unistr/u16-check'. * modules/unistr/u16-check-tests: New file. * tests/unistr/test-u16-check.c: New file. Tests for module 'unistr/u8-check'. * modules/unistr/u8-check-tests: New file. * tests/unistr/test-u8-check.c: New file. * tests/unictype/test-categ_byname.c: Include . (category_equals): New function. (main): Add more tests. * modules/unictype/category-byname-tests (Depends-on): Add stdbool. * tests/unictype/test-bidi_byname.c (main): Add more tests. 2010-01-10 Bruno Haible unistr/u*-strcoll: Try harder to distinguish different strings. * lib/unistr/u-strcoll.h (FUNC): When sl1 and sl2 are the same, compare s1 and s2 to see if they are different. 2010-01-10 Bruno Haible unistr/u*-stpncpy: Fix the return value. * lib/unistr.h (u8_stpncpy, u16_stpncpy, u32_stpncpy): Make the description of the return value consistent with stpncpy in glibc. * lib/unistr/u-stpncpy.h (FUNC): Return the pointer past the last written non-NUL unit. 2010-01-10 Bruno Haible unistr/u*-next: Add missing dependencies. * modules/unistr/u8-next (Depends-on): Add unistr/u8-strmbtouc. * modules/unistr/u16-next (Depends-on): Add unistr/u16-strmbtouc. * modules/unistr/u32-next (Depends-on): Add unistr/u32-strmbtouc. 2010-01-10 Bruno Haible unistr/u8-mbsnlen: Fix return value for incomplete character. * lib/unistr/u8-mbsnlen.c (u8_mbsnlen): Use u8_mbtoucr instead of u8_mblen. * modules/unistr/u8-mbsnlen (Depends-on): Add unistr/u8-mbtoucr. Remove unistr/u8-mblen. * lib/unistr/u16-mbsnlen.c (u16_mbsnlen): Use u16_mbtoucr instead of u16_mblen. * modules/unistr/u16-mbsnlen (Depends-on): Add unistr/u16-mbtoucr. Remove unistr/u16-mblen. 2010-01-10 Bruno Haible wchar: Fix compilation error when is used from coreutils. * lib/wchar.in.h: Treat __need_wint_t like __need_mbstate_t. Reported by Brian Gough and Chris Clayton via Mike Frysinger and Jim Meyering . 2010-01-09 Bruno Haible unistr/u16-to-u32: Reject invalid input. * lib/unistr/u16-to-u32.c (u16_to_u32): Call u16_mbtoucr instead of u16_mbtouc. * modules/unistr/u16-to-u32 (Depends-on): Add unistr/u16-mbtoucr. Remove unistr/u16-mbtouc. unistr/u16-to-u8: Reject invalid input. * lib/unistr/u16-to-u8.c (u16_to_u8): Call u16_mbtoucr instead of u16_mbtouc. * modules/unistr/u16-to-u8 (Depends-on): Add unistr/u16-mbtoucr. Remove unistr/u16-mbtouc. unistr/u8-to-u32: Reject invalid input. * lib/unistr/u8-to-u32.c (u8_to_u32): Call u8_mbtoucr instead of u8_mbtouc. * modules/unistr/u8-to-u32 (Depends-on): Add unistr/u8-mbtoucr. Remove unistr/u8-mbtouc. unistr/u8-to-u16: Reject invalid input. * lib/unistr/u8-to-u16.c (u8_to_u16): Call u8_mbtoucr instead of u8_mbtouc. * modules/unistr/u8-to-u16 (Depends-on): Add unistr/u8-mbtoucr. Remove unistr/u8-mbtouc. 2010-01-09 Bruno Haible Tests for module 'getlogin'. * modules/getlogin-tests: New file. * tests/test-getlogin.c: New file. New module 'getlogin'. * lib/unistd.in.h (getlogin): New declaration. * lib/getlogin.c: New file. * m4/getlogin.m4: New file. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GETLOGIN, HAVE_GETLOGIN. * modules/unistd (Makefile.am): Substitute GNULIB_GETLOGIN, HAVE_GETLOGIN. * modules/getlogin: New file. * doc/posix-functions/getlogin.texi: Mention the new module. Reported by John W. Eaton . 2010-01-09 Bruno Haible getlogin_r: Support for native Windows. * lib/getlogin_r.c: Include (getlogin_r): Implement for native Windows. * tests/test-getlogin_r.c (main): Also test with a huge buffer. Reported by Tatsuro MATSUOKA via John W. Eaton . 2010-01-09 Bruno Haible getlogin_r: Small fixes. * lib/getlogin_r.c (getlogin_r): Don't set errno if the function succeeds. * m4/getlogin_r.m4 (gl_GETLOGIN_R): Require gl_USE_SYSTEM_EXTENSIONS before testing whether getlogin_r is declared. No need to set HAVE_DECL_GETLOGIN_R to 1. (gl_PREREQ_GETLOGIN_R): Don't check for the getlogin_r declaration. 2010-01-09 Bruno Haible * lib/unistd.in.h (getlogin_r): Add comment. 2010-01-09 Bruno Haible Tests for module 'getlogin_r'. * modules/getlogin_r-tests: New file. * tests/test-getlogin_r.c: New file. 2010-01-09 Jim Meyering maint.mk: extend proper_name_utf8-vs-LIBICONV-checking rule * top/maint.mk (sc_proper_name_utf8_requires_ICONV): Adapt to work also when $(LIBICONV) is part of LDADD, rather than ${prog}_LDADD. 2010-01-08 Simon Josefsson * lib/dup2.c (rpl_dup2): Improve comment. 2010-01-08 Eric Blake maint.mk: allow packages to add makefile @@ exceptions * top/maint.mk (_makefile_at_at_check_exceptions): New hook. (sc_makefile_check): Rename... (sc_makefile_at_at_check): ...to this, and use hook. dup2: work around mingw bug * lib/dup2.c (rpl_dup2): Sanitize return value on mingw. Reported by Simon Josefsson. 2010-01-07 John W. Eaton (tiny change) glob: Fix C++ compilation. * lib/glob.in.h [__cplusplus]: Define __BEGIN_DECLS and __END_DECLS for C++. 2010-01-07 Bruno Haible Fix indentation of wctype.in.h, broken since 2007-01-06. * lib/wctype.in.h: Fix indentation of preprocessor directives. 2010-01-07 Bruno Haible mbslen: Avoid collision with system function. * lib/string.in.h [MirBSD]: Include . (mbslen): Undefine first. Alias mbslen to rpl_mbslen. * m4/mbslen.m4: New file. * modules/mbslen (Files): Add it. (configure.ac): Invoke gl_MBSLEN. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize HAVE_MBSLEN. * modules/string (Makefile.am): Substitute HAVE_MBSLEN. Reported by Nelson H. F. Beebe via Ian Beckwith . 2010-01-07 Bruno Haible dirent: Document the last fix. * doc/posix-headers/dirent.texi: Document the bug of missing 'ino_t'. 2010-01-07 Bruno Haible stdio: Ensure defines off_t, ssize_t, va_list. * lib/stdio.in.h: Include unconditionally. * tests/test-stdio.c: Verify that fpos_t, off_t, size_t, ssize_t, va_list are defined. * doc/posix-headers/stdio.texi: Document the bug of missing types. Reported by Eric Blake. 2010-01-07 Bruno Haible xlist, xoset: Fix missing dependency bug, introduced on 2009-12-13. * modules/xlist (Depends-on): Add 'list', * modules/xoset (Depends-on): Add 'oset'. Reported by Ralf Wildenhues . 2010-01-07 Bruno Haible * doc/posix-functions/strcasecmp.texi: Clarify the platforms. * doc/posix-functions/strncasecmp.texi: Likewise. 2010-01-07 Bruno Haible * m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Simplify logic. 2010-01-07 John W. Eaton wctype: allow C++ use * lib/wctype.in.h: Add extern "C" block for C++. 2010-01-06 Eric Blake maint.mk: detect incorrect GFDL usage * top/maint.mk (_GFDL_regexp, sc_GFDL_version): New rule. 2010-01-06 Jim Meyering and Eric Blake maint.mk: ignore multi-line copyright in NEWS * top/maint.mk (NEWS_hash): Add immunity to multi-line copyright. 2010-01-06 Eric Blake select: add missing dependency * modules/select-tests (Depends-on): Move sockets dependency... * modules/select (Depends-on): ...here. Reported by Ian Beckwith. doc: regenerate INSTALL * doc/INSTALL: Reflect recent autoconf update. * doc/INSTALL.ISO: Likewise. * doc/INSTALL.UTF-8: Likewise. pread: fix compilation on glibc * m4/pread.m4 (gl_FUNC_PREAD): Request all interfaces. Reported by Ralf Wildenhues. dirent: fix test failure * lib/dirent.in.h (includes): Guarantee ino_t. Reported by Ralf Wildenhues. 2010-01-06 Petr Salinger (tiny change) linkat, renameat: avoid bad free * lib/at-func2.c (at_func2): Fix typo. Reported via Ian Beckwith, from http://bugs.debian.org/561117. 2010-01-06 Ralf Wildenhues cleanup after gl_FUNC_READLINK, for gl_FUNC_SYMLINK test * m4/readlink.m4 (gl_FUNC_READLINK): Remove conftest.lnk2, to avoid failure of symlink test later. 2010-01-06 Eric Blake stdio, unistd: guarantee ssize_t * lib/unistd.in.h (includes): Ensure that types required by POSIX 2008 are exposed when needed. * lib/stdio.in.h (includes): Likewise. Reported by Ralf Wildenhues. 2010-01-06 Paolo Bonzini nl_langinfo: do not call AC_CHECK_FUNC_ONCE inside if. * m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Do not call AC_CHECK_FUNC_ONCE inside if, do not adjust ac_cv_func_nl_langinfo. 2010-01-06 Jim Meyering readtokens: this module *does* require xalloc.h It uses only functions that were omitted by the old syntax-check rule. * lib/readtokens.c: Include "xalloc.h" once again. * modules/readtokens (Depends-on): Add xalloc. This reverts part of 0e0f8f12ec241c0f1c1f21f960bb5cf908a0fa3c. 2010-01-05 Eric Blake maint: support 'make announcement' from a VPATH build * top/maint.mk (announcement): Look for correct NEWS file. 2010-01-05 Aurelien Jarno (tiny change) utimens (fdutimens): ignore a negative FD, per contract * lib/utimens.c (fdutimens) [HAVE_FUTIMENS]: Call futimens only when we have a valid file descriptor. Otherwise, using a brand new glibc (with just-patched futimens that now fails with EBADF) would cause this function to fail with ENOSYS. Reported by Guillaume Ayoub in http://bugs.debian.org/563726. See also http://bugzilla.redhat.com/552320. 2010-01-05 Eric Blake strcase: document what it provides * doc/posix-functions/strcasecmp.texi (strcasecmp): Mention the gnulib module. * doc/posix-functions/strncasecmp.texi (strncasecmp): Likewise. Reported by Dilyan Palauzov . 2010-01-05 Jim Meyering maint: remove useless inclusions of "xalloc.h" * lib/getloadavg.c: Remove useless inclusion of "xalloc.h". * lib/readtokens.c: Likewise. * lib/same.c: Likewise. * modules/getloadavg (Depends-on): Remove xalloc. * modules/readtokens: Likewise. * modules/same: Likewise. maint.mk: include 4 more function names in alloca.h-checking regexp * top/maint.mk (sc_prohibit_xalloc_without_use): Use more complete regexp. Before, we would give a false-positive (saying alloca.h is included unnecessarily) when the only uses involved omitted symbols. xalloc.h: use consistent formatting * lib/xalloc.h: Move declarations to start in the first column. 2010-01-05 Eric Blake mkdir: avoid xalloc * lib/mkdir.c (includes): Drop unused header. Reported by John W. Eaton. 2010-01-04 Jim Meyering nl_langinfo: avoid configure-time syntax error * m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): When we've already tested for nl_langinfo.h, AC_CHECK_FUNCS_ONCE([nl_langinfo]) expands to the empty string. Don't let that provoke a shell syntax error. regcomp, regexec, fnmatch: avoid array bounds read error * lib/regcomp.c (build_equiv_class): From glibc: Use only the low 24 bits of a findidx return value as an index into the weights array. Patch by Ulrich Drepper: http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commit;h=b7d1c5fa30 * lib/regexec.c (check_node_accept_bytes): Likewise. * lib/fnmatch_loop.c (FCT): Likewise. regcomp: skip collseq lookup when there are no rules * lib/regcomp.c (lookup_collation_sequence_value): From glibc: http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a532a41df58 regcomp: recognize ill-formed { } expressions * lib/regcomp.c (parse_dup_op): From glibc: http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a87cd2894cb regcomp: fix typo in comment * lib/regcomp.c (duplicate_node_closure): Sync from glibc. s/satisfy/satisfies/. regcomp: sync from glibc: remove dead store * lib/regcomp.c (duplicate_node_closure): Remove useless search_duplicated_node call and dead store. regcomp: sync from glibc; always use nl_langinfo * lib/regcomp.c (init_dfa) [!LIBC]: Always use nl_langinfo (CODESET), now that gnulib provides it. Recognize UTF8 as well as UTF-8. * modules/regex (Depends-on): Add nl_langinfo. 2010-01-04 Eric Blake fdopendir: fix configure test * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Check for existing file. 2010-01-01 Bruno Haible wchar: Remove unused configure check. * m4/wchar.m4 (gl_WCHAR_H): Don't test whether is standalone. 2010-01-01 Eric Blake headers: make check of system header explicit * m4/netdb_h.m4 (gl_HEADER_NETDB): Don't exploit knowledge of gl_CHECK_NEXT_HEADER internals, but call AC_CHECK_HEADERS_ONCE ourselves. * m4/search_h.m4 (gl_SEARCH_H): Likewise. * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise. * m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Likewise. * m4/inttypes.m4 (gl_INTTYPES_H): Likewise, for gt_INTTYPES_PRI internals. * m4/wchar.m4 (gl_WCHAR_H): Skip followup test if header is missing. Suggested by Bruno Haible. 2010-01-01 Jim Meyering ChangeLog: tweak to eliminate unnecessary copyright line * ChangeLog: Remove a copyright line that was mistakenly updated by today's update-copyright run. Reported by Eric Blake. test-update-copyright: don't let envvar setting cause test failure * tests/test-update-copyright.sh: Set UPDATE_COPYRIGHT_MAX_LINE_LENGTH. 2010-01-01 Bruno Haible localename: Avoid gcc warning. * lib/localename.c (gl_locale_name_thread_unsafe): Don't define this function if it is not used. 2010-01-01 Jim Meyering update nearly all FSF copyright year lists to include 2010 Use the same procedure as for 2009, outlined in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/20081 version-etc: set COPYRIGHT_YEAR to 2010 * lib/version-etc.c (COPYRIGHT_YEAR): Manually update the enum. 2009-12-31 Eric Blake doc: correct availability of cygwin 1.5.x getopt * doc/posix-functions/optarg.texi (optarg): Cygwin supplies getopt variables. * doc/posix-functions/opterr.texi (opterr): Likewise. * doc/posix-functions/optind.texi (optind): Likewise. * doc/posix-functions/optopt.texi (optopt): Likewise. * doc/posix-functions/tzname.texi (tzname): Likewise. openat: update maintainer * modules/openat (Maintainer): Add myself. utimens: avoid shadowing warning * lib/utimens.c (fdutimens, lutimens): Consolidate separate stat buffers into one, to avoid shadowing, as well as avoiding a redundant stat. Reported by Jim Meyering. test-dup2: avoid compiler warning * tests/test-dup2.c (is_inheritable): Only define if used. 2010-01-01 Bruno Haible vasnprintf: Avoid passing an 'rpl_mbstate_t *' to the system's wcrtomb. * lib/vasnprintf.c (VASNPRINTF): If GNULIB_defined_mbstate_t is defined, use wctomb instead of wcrtomb. 2010-01-01 Bruno Haible iconv: Reject native Solaris iconv. * m4/iconv.m4 (AM_ICONV_LINK): Recognize native Solaris iconv() bug. * doc/posix-functions/iconv.texi: Document native Solaris iconv() bug. 2009-12-31 Bruno Haible * tests/test-signal.c (main): Remove test of 'SIG'. 2009-12-31 Bruno Haible spawn: Fix incomplete fix. * lib/spawn.in.h (posix_spawnattr_getflags, posix_spawnattr_setflags, posix_spawnattr_getpgroup, posix_spawnattr_setpgroup): Correct the link warnings for GNULIB_POSIXCHECK again. Reported by Eric Blake. 2009-12-31 Bruno Haible Avoid namespace pollution on glibc systems. * lib/spawn.in.h: Don't include , on glibc systems. * lib/sys_times.in.h: Don't include on glibc systems. * lib/wchar.in.h: Don't include , , on glibc systems. 2009-12-31 Bruno Haible * m4/wchar.m4 (gl_WCHAR_H): Remove gl_STDDEF_H invocation. (gl_REPLACE_WCHAR_H): Turn into a no-op. * m4/arpa_inet_h.m4 (gl_REPLACE_ARPA_INET_H): Likewise. * m4/dirent_h.m4 (gl_REPLACE_DIRENT_H): Likewise. * m4/locale_h.m4 (gl_REPLACE_LOCALE_H): Likewise. * m4/spawn_h.m4 (gl_REPLACE_SPAWN_H): Likewise. * m4/sys_ioctl_h.m4 (gl_REPLACE_SYS_IOCTL_H): Likewise. 2009-12-31 Bruno Haible * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Invoke gl_CHECK_NEXT_HEADERS before testing ac_cv_header_sys_select_h, not afterwards. 2009-12-31 Bruno Haible * m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H_DEFAULTS): Don't set SYS_UTSNAME_H. 2009-12-31 Bruno Haible spawn: Fix misapplied patch. * lib/spawn.in.h (posix_spawnattr_getflags, posix_spawnattr_setflags, posix_spawnattr_getpgroup, posix_spawnattr_setpgroup): Correct the link warnings for GNULIB_POSIXCHECK. 2009-12-31 Bruno Haible times: Update after sys_times changed. * m4/times.m4: New file, extracted from modules/times. Set HAVE_TIMES. * modules/times (Files): Add it. (configure.ac): Invoke gl_FUNC_TIMES. 2009-12-31 Bruno Haible Use AC_C_INLINE where necessary. * m4/chdir-long.m4 (gl_PREREQ_CHDIR_LONG): Require AC_C_INLINE. * m4/fatal-signal.m4 (gl_FATAL_SIGNAL): Likewise. * m4/fts.m4 (gl_FUNC_FTS_CORE): Likewise. * m4/mbchar.m4 (gl_MBCHAR): Likewise. * m4/mbfile.m4 (gl_MBFILE): Likewise. * m4/mbiter.m4 (gl_MBITER): Likewise. * m4/regex.m4 (gl_PREREQ_REGEX): Likewise. * m4/stat.m4 (gl_FUNC_STAT): Likewise. * m4/wait-process.m4 (gl_WAIT_PROCESS): Likewise. * modules/u64 (configure.ac): Likewise. 2009-12-31 Bruno Haible Use AC_C_INLINE instead of module 'inline' where possible. * modules/inline (Description): Clarify purpose. * m4/count-one-bits.m4 (gl_COUNT_ONE_BITS): Require AC_C_INLINE. * modules/count-one-bits (Depends-on): Remove inline. * m4/openat.m4 (gl_PREREQ_OPENAT): Require AC_C_INLINE. * modules/openat (Depends-on): Remove inline. * modules/fdutimensat (Depends-on, configure.ac): Require AC_C_INLINE instead of depending on module 'inline'. * modules/filevercmp (Depends-on, configure.ac): Likewise. * modules/unicase/cased (Depends-on, configure.ac): Likewise. * modules/unicase/ignorable (Depends-on, configure.ac): Likewise. * modules/unictype/category-of (Depends-on, configure.ac): Likewise. * modules/unictype/category-test (Depends-on, configure.ac): Likewise. * modules/unictype/ctype-alnum (Depends-on, configure.ac): Likewise. * modules/unictype/ctype-alpha (Depends-on, configure.ac): Likewise. * modules/unictype/ctype-blank (Depends-on, configure.ac): Likewise. * modules/unictype/ctype-cntrl (Depends-on, configure.ac): Likewise. * modules/unictype/ctype-digit (Depends-on, configure.ac): Likewise. * modules/unictype/ctype-graph (Depends-on, configure.ac): Likewise. * modules/unictype/ctype-lower (Depends-on, configure.ac): Likewise. * modules/unictype/ctype-print (Depends-on, configure.ac): Likewise. * modules/unictype/ctype-punct (Depends-on, configure.ac): Likewise. * modules/unictype/ctype-space (Depends-on, configure.ac): Likewise. * modules/unictype/ctype-upper (Depends-on, configure.ac): Likewise. * modules/unictype/ctype-xdigit (Depends-on, configure.ac): Likewise. * modules/unictype/property-alphabetic (Depends-on, configure.ac): Likewise. * modules/unictype/property-ascii-hex-digit (Depends-on, configure.ac): Likewise. * modules/unictype/property-bidi-arabic-digit (Depends-on, configure.ac): Likewise. * modules/unictype/property-bidi-arabic-right-to-left (Depends-on, configure.ac): Likewise. * modules/unictype/property-bidi-block-separator (Depends-on, configure.ac): Likewise. * modules/unictype/property-bidi-boundary-neutral (Depends-on, configure.ac): Likewise. * modules/unictype/property-bidi-common-separator (Depends-on, configure.ac): Likewise. * modules/unictype/property-bidi-control (Depends-on, configure.ac): Likewise. * modules/unictype/property-bidi-embedding-or-override (Depends-on, configure.ac): Likewise. * modules/unictype/property-bidi-eur-num-separator (Depends-on, configure.ac): Likewise. * modules/unictype/property-bidi-eur-num-terminator (Depends-on, configure.ac): Likewise. * modules/unictype/property-bidi-european-digit (Depends-on, configure.ac): Likewise. * modules/unictype/property-bidi-hebrew-right-to-left (Depends-on, configure.ac): Likewise. * modules/unictype/property-bidi-left-to-right (Depends-on, configure.ac): Likewise. * modules/unictype/property-bidi-non-spacing-mark (Depends-on, configure.ac): Likewise. * modules/unictype/property-bidi-other-neutral (Depends-on, configure.ac): Likewise. * modules/unictype/property-bidi-pdf (Depends-on, configure.ac): Likewise. * modules/unictype/property-bidi-segment-separator (Depends-on, configure.ac): Likewise. * modules/unictype/property-bidi-whitespace (Depends-on, configure.ac): Likewise. * modules/unictype/property-combining (Depends-on, configure.ac): Likewise. * modules/unictype/property-composite (Depends-on, configure.ac): Likewise. * modules/unictype/property-currency-symbol (Depends-on, configure.ac): Likewise. * modules/unictype/property-dash (Depends-on, configure.ac): Likewise. * modules/unictype/property-decimal-digit (Depends-on, configure.ac): Likewise. * modules/unictype/property-default-ignorable-code-point (Depends-on, configure.ac): Likewise. * modules/unictype/property-deprecated (Depends-on, configure.ac): Likewise. * modules/unictype/property-diacritic (Depends-on, configure.ac): Likewise. * modules/unictype/property-extender (Depends-on, configure.ac): Likewise. * modules/unictype/property-format-control (Depends-on, configure.ac): Likewise. * modules/unictype/property-grapheme-base (Depends-on, configure.ac): Likewise. * modules/unictype/property-grapheme-extend (Depends-on, configure.ac): Likewise. * modules/unictype/property-grapheme-link (Depends-on, configure.ac): Likewise. * modules/unictype/property-hex-digit (Depends-on, configure.ac): Likewise. * modules/unictype/property-hyphen (Depends-on, configure.ac): Likewise. * modules/unictype/property-id-continue (Depends-on, configure.ac): Likewise. * modules/unictype/property-id-start (Depends-on, configure.ac): Likewise. * modules/unictype/property-ideographic (Depends-on, configure.ac): Likewise. * modules/unictype/property-ids-binary-operator (Depends-on, configure.ac): Likewise. * modules/unictype/property-ids-trinary-operator (Depends-on, configure.ac): Likewise. * modules/unictype/property-ignorable-control (Depends-on, configure.ac): Likewise. * modules/unictype/property-iso-control (Depends-on, configure.ac): Likewise. * modules/unictype/property-join-control (Depends-on, configure.ac): Likewise. * modules/unictype/property-left-of-pair (Depends-on, configure.ac): Likewise. * modules/unictype/property-line-separator (Depends-on, configure.ac): Likewise. * modules/unictype/property-logical-order-exception (Depends-on, configure.ac): Likewise. * modules/unictype/property-lowercase (Depends-on, configure.ac): Likewise. * modules/unictype/property-math (Depends-on, configure.ac): Likewise. * modules/unictype/property-non-break (Depends-on, configure.ac): Likewise. * modules/unictype/property-not-a-character (Depends-on, configure.ac): Likewise. * modules/unictype/property-numeric (Depends-on, configure.ac): Likewise. * modules/unictype/property-other-alphabetic (Depends-on, configure.ac): Likewise. * modules/unictype/property-other-default-ignorable-code-point (Depends-on, configure.ac): Likewise. * modules/unictype/property-other-grapheme-extend (Depends-on, configure.ac): Likewise. * modules/unictype/property-other-id-continue (Depends-on, configure.ac): Likewise. * modules/unictype/property-other-id-start (Depends-on, configure.ac): Likewise. * modules/unictype/property-other-lowercase (Depends-on, configure.ac): Likewise. * modules/unictype/property-other-math (Depends-on, configure.ac): Likewise. * modules/unictype/property-other-uppercase (Depends-on, configure.ac): Likewise. * modules/unictype/property-paired-punctuation (Depends-on, configure.ac): Likewise. * modules/unictype/property-paragraph-separator (Depends-on, configure.ac): Likewise. * modules/unictype/property-pattern-syntax (Depends-on, configure.ac): Likewise. * modules/unictype/property-pattern-white-space (Depends-on, configure.ac): Likewise. * modules/unictype/property-private-use (Depends-on, configure.ac): Likewise. * modules/unictype/property-punctuation (Depends-on, configure.ac): Likewise. * modules/unictype/property-quotation-mark (Depends-on, configure.ac): Likewise. * modules/unictype/property-radical (Depends-on, configure.ac): Likewise. * modules/unictype/property-sentence-terminal (Depends-on, configure.ac): Likewise. * modules/unictype/property-soft-dotted (Depends-on, configure.ac): Likewise. * modules/unictype/property-space (Depends-on, configure.ac): Likewise. * modules/unictype/property-terminal-punctuation (Depends-on, configure.ac): Likewise. * modules/unictype/property-titlecase (Depends-on, configure.ac): Likewise. * modules/unictype/property-unassigned-code-value (Depends-on, configure.ac): Likewise. * modules/unictype/property-unified-ideograph (Depends-on, configure.ac): Likewise. * modules/unictype/property-uppercase (Depends-on, configure.ac): Likewise. * modules/unictype/property-variation-selector (Depends-on, configure.ac): Likewise. * modules/unictype/property-white-space (Depends-on, configure.ac): Likewise. * modules/unictype/property-xid-continue (Depends-on, configure.ac): Likewise. * modules/unictype/property-xid-start (Depends-on, configure.ac): Likewise. * modules/unictype/property-zero-width (Depends-on, configure.ac): Likewise. * modules/unictype/syntax-c-ident (Depends-on, configure.ac): Likewise. * modules/unictype/syntax-java-ident (Depends-on, configure.ac): Likewise. 2009-12-31 Bruno Haible Remove unnecessary AC_C_INLINE invocation. * m4/popen.m4 (gl_PREREQ_POPEN): Don't invoke AC_C_INLINE. Not needed since 2009-08-21. 2009-12-31 Jim Meyering maint.mk: don't require explicit gpg_key_ID in cfg.mk * top/maint.mk (gpg_key_ID): Derive key ID from signed release tag. With this change, we can all remove the gpg_key_ID = ... definition from our respective cfg.mk files. maint.mk: create announcement template in ~/, not in /tmp * top/maint.mk (emit_upload_commands): Adjust. (release-prep): Emit into ~/announce-..., not /tmp/announce-... Remove temporary file, .ci-msg. 2009-12-31 Eric Blake link-warning: always build headers with link warnings * modules/arpa_inet (Makefile.am): Always build replacement header. * modules/ctype (Makefile.am): Likewise. * modules/dirent (Makefile.am): Likewise. * modules/inttypes (Makefile.am): Likewise. * modules/langinfo (Makefile.am): Likewise. * modules/locale (Makefile.am): Likewise. * modules/spawn (Makefile.am): Likewise. * modules/sys_file (Makefile.am): Likewise. * modules/sys_ioctl (Makefile.am): Likewise. * modules/sys_select (Makefile.am): Likewise. * modules/sys_socket (Makefile.am): Likewise. * modules/sys_times (Makefile.am): Likewise. * modules/sys_utsname (Makefile.am): Likewise. * modules/sys_wait (Makefile.am): Likewise. * modules/wchar (Makefile.am): Likewise. * m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET) (gl_ARPA_INET_H_DEFAULTS): Drop unneeded variable. * m4/ctype.m4 (gl_CTYPE_H_DEFAULTS): Likewise. * m4/isblank.m4 (gl_FUNC_ISBLANK): Likewise. * m4/dirent_h.m4 (gl_REPLACE_DIRENT_H, gl_DIRENT_H_DEFAULTS): Likewise. * m4/inttypes.m4 (gl_INTTYPES_H): Likewise. * m4/langinfo_h.m4 (gl_LANGINFO_H): Likewise. * m4/locale_h.m4 (gl_REPLACE_LOCALE_H, gl_LOCALE_H_DEFAULTS): Likewise. * m4/spawn_h.m4 (gl_REPLACE_SPAWN_H, gl_SPAWN_H_DEFAULTS): Likewise. * m4/sys_file_h.m4 (gl_HEADER_SYS_FILE_H): Likewise. * m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H, gl_REPLACE_SYS_IOCTL_H) (gl_SYS_IOCTL_H_DEFAULTS): Likewise. * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise. * m4/sys_times_h.m4 (gl_SYS_TIMES_H): Likewise. * m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H) (gl_SYS_UTSNAME_H_DEFAULTS): Likewise. * m4/wchar.m4 (gl_WCHAR_H, gl_REPLACE_WCHAR_H) (gl_WCHAR_H_DEFAULTS): Likewise. 2009-12-31 Eric Blake signal, spawn: use link warnings * lib/signal.in.h (sigset_t): Make unconditional. (sigismember, sigemptyset, sigaddset, sigdelset, sigfillset) (sigpending, sigprocmask, sigaction): Add link warnings. * lib/spawn.in.h (posix_spawn, posix_spawnp, posix_spawnattr_init) (posix_spawnattr_destroy, posix_spawnattr_getsigdefault) (posix_spawnattr_setsigdefault, posix_spawnattr_getsigmask) (posix_spawnattr_setsigmask, posix_spawnattr_getflags) (posix_spawnattr_setflags, posix_spawnattr_getpgroup) (posix_spawnattr_setpgroup, posix_spawnattr_getschedpolicy) (posix_spawnattr_setschedpolicy, posix_spawnattr_getschedparam) (posix_spawnattr_setschedparam, posix_spawn_file_actions_init) (posix_spawn_file_actions_destroy) (posix_spawn_file_actions_addopen) (posix_spawn_file_actions_addclose) (posix_spawn_file_actions_adddup2): Likewise. * m4/signal_h.m4 (gl_SIGNAL_H): Guarantee uid_t. * tests/test-signal.c (main): Enhance test. spawn: improve wrapper support * m4/spawn_h.m4 (gl_SPAWN_H): Check for type existence. (gl_SPAWN_H_DEFAULTS): New defaults. * modules/spawn (Makefile.am): Substitute them. * lib/spawn.in.h: (posix_spawnattr_t, posix_spawn_file_actions_t): Only declare if missing or broken. sys_times, sys_utsname: use include_next * m4/sys_times_h.m4 (gl_SYS_TIMES_H): Support wrapping an existing header. (gl_SYS_TIMES_H_DEFAULTS): Add another variable. * m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H) (gl_SYS_UTSNAME_H_DEFAULTS): Likewise. * modules/sys_times (Depends-on): Add include_next. (Makefile.am): Substitute additional values. * modules/sys_utsname (Depends-on, Makefile.am): Likewise. * lib/sys_times.in.h (includes): Include native header, if available. * lib/sys_utsname.in.h (includes): Likewise. * tests/test-sys_times.c (main): Enhance test. fdutimensat: revert prior patch * modules/fdutimensat (Depends-on): Re-add inline; it is needed by utimens.h. Reported by Bruno Haible. 2009-12-30 Eric Blake sys_wait: drop link-warning dependency * modules/sys_wait (Depends-on, Makefile.am): Drop unneeded link-warning efforts. * lib/sys_wait.in.h: Likewise. fdutimensat: remove bogus dependency * modules/fdutimensat (Depends-on): Drop inline. unistd: fix typo * lib/unistd.in.h (linkat) [GNULIB_POSIXCHECK]: Fix typo. 2009-12-30 Bruno Haible Fix compilation error with Solaris cc. * lib/unicase/u8-is-invariant.c: Include . * lib/unicase/u16-is-invariant.c: Likewise. * lib/unicase/u32-is-invariant.c: Likewise. Reported by Nelson H. F. Beebe . 2009-12-30 Bruno Haible Fix test crash. * tests/test-localename.c (test_locale_name_thread): Skip unavailable locales. Reported by Simon Josefsson . 2009-12-30 Bruno Haible Fix compilation error on most platforms. * tests/test-localename.c (categories): Define only if HAVE_NEWLOCALE. Reported by Simon Josefsson and Nelson H. F. Beebe . 2009-12-30 Eric Blake futimens, utimensat: work around ntfs-3g bug * lib/utimensat.c (rpl_utimensat): Drop attempts to cache whether a ctime bug is present, and expand workaround to cover ntfs-3g. * lib/utimens.c (fdutimens, lutimens): Likewise. (utimensat_ctime_really, detect_ctime_bug): Drop cache mechanism. (validate_timespec): Adjust return value. * m4/futimens.m4 (gl_FUNC_FUTIMENS): Update comment. * m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Likewise. Reported by ctrn3e8 . 2009-12-29 Eric Blake link-warning: make usage consistent * modules/ctype (Depends-on): Add link-warning. (Makefile.am): Update rules accordingly. * modules/langinfo (Depends-on, Makefile.am): Likewise. * modules/locale (Depends-on, Makefile.am): Likewise. * modules/sys_file (Makefile.am): Likewise. * modules/getopt-posix (Makefile.am): Delete unused link warning efforts. * lib/ctype.in.h (GL_LINK_WARNING): Ensure definition before use. * lib/langinfo.in.h (GL_LINK_WARNING): Likewise. * lib/locale.in.h (GL_LINK_WARNING): Likewise. * lib/sys_file.in.h (GL_LINK_WARNING): Likewise. stdio: remove unused variables * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Remove unused variables. * m4/fseeko.m4 (gl_FUNC_FSEEKO): Likewise. * m4/ftello.m4 (gl_FUNC_FTELLO): Likewise. tests: test more substitute headers * modules/ctype-tests: New file. * modules/dirent-tests: Likewise. * modules/spawn-tests: Likewise. * modules/sys_file-tests: Likewise. * modules/sys_ioctl-tests: Likewise. * modules/sys_wait-tests: Likewise. * tests/test-ctype.c: Likewise. * tests/test-dirent.c: Likewise. * tests/test-spawn.c: Likewise. * tests/test-sys_file.c: Likewise. * tests/test-sys_ioctl.c: Likewise. * tests/test-sys_wait.c: Likewise. * m4/spawn_h.m4 (gl_SPAWN_H): Replace header if it is missing. * lib/sys_file.in.h (LOCK_SH, LOCK_EX, LOCK_UN, LOCK_NB): Provide whether or not flock is in use. tests: remove License section from module * modules/arpa_inet-tests: Remove unneeded section. * modules/byteswap-tests: Likewise. * modules/ceilf-tests: Likewise. * modules/ceill-tests: Likewise. * modules/crypto/des-tests: Likewise. * modules/crypto/gc-arcfour-tests: Likewise. * modules/crypto/gc-arctwo-tests: Likewise. * modules/crypto/gc-des-tests: Likewise. * modules/crypto/gc-hmac-md5-tests: Likewise. * modules/crypto/gc-hmac-sha1-tests: Likewise. * modules/crypto/gc-md2-tests: Likewise. * modules/crypto/gc-md4-tests: Likewise. * modules/crypto/gc-md5-tests: Likewise. * modules/crypto/gc-pbkdf2-sha1-tests: Likewise. * modules/crypto/gc-rijndael-tests: Likewise. * modules/crypto/gc-sha1-tests: Likewise. * modules/crypto/gc-tests: Likewise. * modules/crypto/md2-tests: Likewise. * modules/crypto/md4-tests: Likewise. * modules/fcntl-h-tests: Likewise. * modules/floorf-tests: Likewise. * modules/floorl-tests: Likewise. * modules/frexp-nolibm-tests: Likewise. * modules/frexp-tests: Likewise. * modules/frexpl-nolibm-tests: Likewise. * modules/frexpl-tests: Likewise. * modules/getaddrinfo-tests: Likewise. * modules/inttypes-tests: Likewise. * modules/isfinite-tests: Likewise. * modules/isinf-tests: Likewise. * modules/ldexpl-tests: Likewise. * modules/locale-tests: Likewise. * modules/math-tests: Likewise. * modules/netdb-tests: Likewise. * modules/netinet_in-tests: Likewise. * modules/printf-frexp-tests: Likewise. * modules/printf-frexpl-tests: Likewise. * modules/priv-set-tests: Likewise. * modules/random_r-tests: Likewise. * modules/round-tests: Likewise. * modules/roundf-tests: Likewise. * modules/roundl-tests: Likewise. * modules/search-tests: Likewise. * modules/select-tests: Likewise. * modules/signal-tests: Likewise. * modules/stdbool-tests: Likewise. * modules/stddef-tests: Likewise. * modules/stdint-tests: Likewise. * modules/stdio-tests: Likewise. * modules/stdlib-tests: Likewise. * modules/string-tests: Likewise. * modules/strings-tests: Likewise. * modules/sys_select-tests: Likewise. * modules/sys_socket-tests: Likewise. * modules/sys_stat-tests: Likewise. * modules/sys_time-tests: Likewise. * modules/sys_utsname-tests: Likewise. * modules/sysexits-tests: Likewise. * modules/time-tests: Likewise. * modules/trunc-tests: Likewise. * modules/truncf-tests: Likewise. * modules/truncl-tests: Likewise. * modules/tsearch-tests: Likewise. * modules/unistd-tests: Likewise. * modules/wchar-tests: Likewise. * modules/wctype-tests: Likewise. tests: fix license on several tests * tests/test-des.c: Update to GPLv3+. * tests/test-flock.c: Likewise. * tests/test-fsync.c: Likewise. * tests/test-futimens.h: Likewise. * tests/test-gc-arcfour.c: Likewise. * tests/test-gc-arctwo.c: Likewise. * tests/test-gc-des.c: Likewise. * tests/test-gc-hmac-md5.c: Likewise. * tests/test-gc-hmac-sha1.c: Likewise. * tests/test-gc-md2.c: Likewise. * tests/test-gc-md4.c: Likewise. * tests/test-gc-md5.c: Likewise. * tests/test-gc-pbkdf2-sha1.c: Likewise. * tests/test-gc-rijndael.c: Likewise. * tests/test-gc-sha1.c: Likewise. * tests/test-gc.c: Likewise. * tests/test-getcwd.c: Likewise. * tests/test-link.c: Likewise. * tests/test-link.h: Likewise. * tests/test-lutimens.h: Likewise. * tests/test-md2.c: Likewise. * tests/test-md4.c: Likewise. * tests/test-mkdir.h: Likewise. * tests/test-rename.c: Likewise. * tests/test-rename.h: Likewise. * tests/test-safe-alloc.c: Likewise. * tests/test-utimens-common.h: Likewise. * tests/test-utimens.h: Likewise. maint: sync license texts * config/srclist.txt: Add gpl-1.3.texi, lgpl-1.3.texi. * doc/gpl-3.0.texi: Revert copyright year update. * doc/lgpl-3.0.texi: Likewise. 2009-12-29 Jim Meyering update nearly all FSF copyright year lists to include 2009 The files named by the following are exempted: grep -v '^#' config/srclist.txt|grep -v '^$' | while read src dst; do test -f "$dst" && { echo "$dst"; continue; } test -d "$dst" || continue echo "$dst"/$(basename "$src") done > exempt git ls-files tests/unictype >> exempt In the remaining files, convert to all-interval notation if - there is already at least one year interval like 2000-2003 - the file is maintained by me - the file is in lib/uni*/, where that style already prevails Otherwise, use update-copyright's default. 2009-12-29 Simon Josefsson and Eric Blake tests: don't require debug system() to pass * tests/test-lstat.h (test_lstat_func): Move debug cleanup... * tests/test-rmdir.h (test_rmdir_func): Likewise. * tests/test-unlink.h (test_unlink_func): Likewise. * tests/test-fstatat.c (main): ...into callers. * tests/test-lstat.c (main): Likewise. * tests/test-rmdir.c (main): Likewise. * tests/test-unlink.c (main): Likewise. * tests/test-unlinkat.c (main): Likewise. * tests/test-areadlink-with-size.c (main): Don't require a debug-only system call to pass, aiding cross-testing to mingw. * tests/test-areadlink.c (main): Likewise. * tests/test-areadlinkat-with-size.c (main): Likewise. * tests/test-areadlinkat.c (main): Likewise. * tests/test-canonicalize-lgpl.c (main): Likewise. * tests/test-canonicalize.c (main): Likewise. * tests/test-chown.c (main): Likewise. * tests/test-fchownat.c (main): Likewise. * tests/test-lchown.c (main): Likewise. * tests/test-fdutimensat.c (main): Likewise. * tests/test-futimens.c (main): Likewise. * tests/test-link.c (main): Likewise. * tests/test-linkat.c (main): Likewise. * tests/test-mkdir.c (main): Likewise. * tests/test-mkdirat.c (main): Likewise. * tests/test-mkfifo.c (main): Likewise. * tests/test-mkfifoat.c (main): Likewise. * tests/test-mknod.c (main): Likewise. * tests/test-readlink.c (main): Likewise. * tests/test-remove.c (main): Likewise. * tests/test-rename.c (main): Likewise. * tests/test-renameat.c (main): Likewise. * tests/test-symlink.c (main): Likewise. * tests/test-symlinkat.c (main): Likewise. * tests/test-utimens.c (main): Likewise. * tests/test-utimensat.c (main): Likewise. 2009-12-29 Simon Josefsson * modules/selinux-h (selinux/selinux.h, selinux/context.h): Depend on $(UNUSED_PARAMETER_H) to avoid build failure. 2009-12-28 Jim Meyering update-copyright: you may specify a max. line length other than 72 * build-aux/update-copyright: Honor $UPDATE_COPYRIGHT_MAX_LINE_LENGTH. maint: use consistent FSF copyright line syntax * lib/posixtm.c: Add missing comma in FSF copyright line. * lib/posixtm.h: Likewise. * lib/getugroups.c: Add missing ", Inc.". pmccabe2html: emit consistent FSF copyright; remove trailing blanks * build-aux/pmccabe2html: Insert comma before "Inc." in emitted FSF copyright line. Remove trailing blanks. 2009-12-28 Eric Blake test-dup2: reduce dependencies * modules/cloexec (Configure.ac): Set witness. * modules/dup2-tests (Depends-on): Drop cloexec. * tests/test-dup2.c (main): Skip portion of test if cloexec module not present. Suggested by Bruno Haible. 2009-12-26 Bruno Haible Remove an unneeded dependency. * modules/fseterr (Depends-on): Remove dup2. 2009-12-26 Eric Blake tests: use macros.h in more places * tests/macros.h (ASSERT): Depend on ASSERT_STREAM. (ASSERT_STREAM): Provide default of stderr. * tests/test-dirent-safer.c: Include macros.h, using alternate stream for assertions. * tests/test-dup-safer.c: Likewise. * tests/test-freopen-safer.c: Likewise. * tests/test-getopt.c: Likewise. * tests/test-openat-safer.c: Likewise. * tests/test-pipe.c: Likewise. * tests/test-popen-safer.c: Likewise. * modules/dirent-safer-tests (Files): Include macros.h. * modules/unistd-safer-tests (Files): Likewise. * modules/freopen-safer-tests (Files): Likewise. * modules/getopt-posix-tests (Files): Likewise. * modules/openat-safer-tests (Files): Likewise. * modules/pipe-tests (Files): Likewise. 2009-12-26 Bruno Haible javacomp-script: Portability fix. * m4/javacomp.m4 (gt_JAVACOMP): Fix creation of conftestver.class so that it also works on Solaris. 2009-12-26 Bruno Haible localename: Fix storage allocation of gl_locale_name_thread's result. * lib/localename.c (SIZE_BITS, string_hash, struct hash_node, HASH_TABLE_SIZE, struniq_hash_table, struniq_lock, struniq): Define on all platforms that have 'uselocale'. (gl_locale_name_thread_unsafe): New function, extracted from gl_locale_name_thread. (gl_locale_name_thread): Call struniq on all platforms that have 'uselocale'. * tests/test-localename.c (test_locale_name_thread): Check that the resulting strings are permanently allocated. * modules/localename-tests (Depends-on): Add strdup. 2009-12-26 Bruno Haible * tests/test-localename.c (categories): Fill in the strings. 2009-12-26 Jim Meyering isdir: complete the removal of m4/isdir.m4 * modules/isdir (configure.ac): Remove reference to gl_ISDIR. isdir: clean up, since at least grep still uses it * lib/isdir.c: Include "isdir.h". (S_ISDIR): Remove now-unneeded definition. * modules/isdir (Files): Add lib/isdir.h. * lib/isdir.h: New file, with declaration. * m4/isdir.m4: Remove file -- unneeded. 2009-12-25 Bruno Haible selinux-h: Make generated .h files standalone. * lib/se-context.in.h: Arrange to include _GL_UNUSED_PARAMETER definition. Use _GL_UNUSED_PARAMETER instead of _GL_UNUSED. * lib/se-selinux.in.h: Likewise. * modules/selinux-h (Depends-on): Add unused-parameter. (Makefile.am): Insert definition of _GL_UNUSED_PARAMETER into selinux/selinux.h and selinux/context.h. Suggested by Eric Blake. 2009-12-25 Bruno Haible Move gl_FCNTL_O_FLAGS to a separate .m4 file. * m4/fcntl-o.m4: New file, extracted from m4/fcntl_h.m4. * m4/fcntl_h.m4 (gl_FCNTL_O_FLAGS): Remove macro. * modules/fcntl-h (Files): Add m4/fcntl-o.m4. * modules/localcharset (Files): Likewise. Remove m4/fcntl_h.m4. 2009-12-24 Bruno Haible openat: Fix warning. * lib/openat-proc.c: Include . 2009-12-24 Bruno Haible New module 'unused-parameter'. * build-aux/unused-parameter.h: New file, extracted from earlier gnulib-common.m4. * modules/unused-parameter: New file. * lib/unistr.h: Include unused-parameter.h. (u32_mbtouc_unsafe, u32_mbtouc): Use _GL_UNUSED_PARAMETER instead of _GL_UNUSED. * modules/unistr/base (Depends-on): Add unused-parameter. 2009-12-24 Bruno Haible Add missing dependencies to 'extensions' module. * m4/extensions.m4: Add comment. * modules/accept4 (Depends-on): Add extensions. * modules/dup3 (Depends-on): Likewise. * modules/fcntl (Depends-on): Likewise. * modules/futimens (Depends-on): Likewise. * modules/mknod (Depends-on): Likewise. * modules/pipe2 (Depends-on): Likewise. * modules/stat-time (Depends-on): Likewise. * modules/strcasestr-simple (Depends-on): Likewise. * modules/strsignal (Depends-on): Likewise. * modules/utimensat (Depends-on): Likewise. * modules/localcharset (Depends-on): Likewise. Needed because of gl_FCNTL_O_FLAGS. * modules/wcrtomb (Depends-on): Likewise. Needed because of AC_TYPE_MBSTATE_T. * modules/wcsnrtombs (Depends-on): Likewise. * modules/wcsrtombs (Depends-on): Likewise. 2009-12-24 Bruno Haible binary-io: Avoid gcc warning due to SET_BINARY. * lib/binary-io.h (SET_BINARY): Cast the result to void. Reported by Jim Meyering . Suggestion by Eric Blake. 2009-12-24 Bruno Haible Avoid future namespace pollution on glibc systems. * lib/arpa_inet.in.h: Don't include on glibc systems. * lib/sys_ioctl.in.h: Don't include on glibc systems. * lib/sys_select.in.h: Don't include and on glibc systems. 2009-12-24 Bruno Haible Refactor common macros used in tests. * tests/macros.h: New file. * tests/test-areadlink.c: Include macros.h. Don't include and/or , if appropriate. (ASSERT, SIZEOF): Remove macros. * tests/test-areadlink-with-size.c: Likewise. * tests/test-areadlinkat.c: Likewise. * tests/test-areadlinkat-with-size.c: Likewise. * tests/test-argmatch.c: Likewise. * tests/test-argv-iter.c: Likewise. * tests/test-array-mergesort.c: Likewise. * tests/test-array_list.c: Likewise. * tests/test-array_oset.c: Likewise. * tests/test-avltree_list.c: Likewise. * tests/test-avltree_oset.c: Likewise. * tests/test-avltreehash_list.c: Likewise. * tests/test-base64.c: Likewise. * tests/test-binary-io.c: Likewise. * tests/test-bitrotate.c: Likewise. * tests/test-btowc.c: Likewise. * tests/test-byteswap.c: Likewise. * tests/test-c-ctype.c: Likewise. * tests/test-c-stack.c: Likewise. * tests/test-c-strcasecmp.c: Likewise. * tests/test-c-strcasestr.c: Likewise. * tests/test-c-strncasecmp.c: Likewise. * tests/test-c-strstr.c: Likewise. * tests/test-canonicalize-lgpl.c: Likewise. * tests/test-canonicalize.c: Likewise. * tests/test-carray_list.c: Likewise. * tests/test-ceilf1.c: Likewise. * tests/test-ceilf2.c: Likewise. * tests/test-ceill.c: Likewise. * tests/test-chown.c: Likewise. * tests/test-cloexec.c: Likewise. * tests/test-copy-acl.c: Likewise. * tests/test-copy-file.c: Likewise. * tests/test-count-one-bits.c: Likewise. * tests/test-dprintf-posix.c: Likewise. * tests/test-dup2.c: Likewise. * tests/test-dup3.c: Likewise. * tests/test-duplocale.c: Likewise. * tests/test-fbufmode.c: Likewise. * tests/test-fchdir.c: Likewise. * tests/test-fchownat.c: Likewise. * tests/test-fcntl-safer.c: Likewise. * tests/test-fcntl.c: Likewise. * tests/test-fdopendir.c: Likewise. * tests/test-fdutimensat.c: Likewise. * tests/test-fflush2.c: Likewise. * tests/test-file-has-acl.c: Likewise. * tests/test-filevercmp.c: Likewise. * tests/test-flock.c: Likewise. * tests/test-floorf1.c: Likewise. * tests/test-floorf2.c: Likewise. * tests/test-floorl.c: Likewise. * tests/test-fnmatch.c: Likewise. * tests/test-fopen.h: Likewise. * tests/test-fpending.c: Likewise. * tests/test-fprintf-posix.c: Likewise. * tests/test-fpurge.c: Likewise. * tests/test-freadable.c: Likewise. * tests/test-freadahead.c: Likewise. * tests/test-freading.c: Likewise. * tests/test-freadptr.c: Likewise. * tests/test-freadptr2.c: Likewise. * tests/test-freadseek.c: Likewise. * tests/test-freopen.c: Likewise. * tests/test-frexp.c: Likewise. * tests/test-frexpl.c: Likewise. * tests/test-fseek.c: Likewise. * tests/test-fseeko.c: Likewise. * tests/test-fstatat.c: Likewise. * tests/test-fstrcmp.c: Likewise. * tests/test-fsync.c: Likewise. * tests/test-ftell.c: Likewise. * tests/test-ftello.c: Likewise. * tests/test-func.c: Likewise. * tests/test-futimens.c: Likewise. * tests/test-fwritable.c: Likewise. * tests/test-fwriting.c: Likewise. * tests/test-getcwd.c: Likewise. * tests/test-getdate.c: Likewise. * tests/test-getdelim.c: Likewise. * tests/test-getdtablesize.c: Likewise. * tests/test-getgroups.c: Likewise. * tests/test-getline.c: Likewise. * tests/test-getndelim2.c: Likewise. * tests/test-glob.c: Likewise. * tests/test-hash.c: Likewise. * tests/test-i-ring.c: Likewise. * tests/test-iconv-utf.c: Likewise. * tests/test-iconv.c: Likewise. * tests/test-idpriv-drop.c: Likewise. * tests/test-idpriv-droptemp.c: Likewise. * tests/test-inet_ntop.c: Likewise. * tests/test-inet_pton.c: Likewise. * tests/test-isblank.c: Likewise. * tests/test-isfinite.c: Likewise. * tests/test-isinf.c: Likewise. * tests/test-isnan.c: Likewise. * tests/test-isnand.h: Likewise. * tests/test-isnanf.h: Likewise. * tests/test-isnanl.h: Likewise. * tests/test-lchown.c: Likewise. * tests/test-ldexpl.c: Likewise. * tests/test-link.c: Likewise. * tests/test-linkat.c: Likewise. * tests/test-linked_list.c: Likewise. * tests/test-linkedhash_list.c: Likewise. * tests/test-localename.c: Likewise. * tests/test-lseek.c: Likewise. * tests/test-lstat.c: Likewise. * tests/test-mbmemcasecmp.c: Likewise. * tests/test-mbmemcasecoll.c: Likewise. * tests/test-mbrtowc.c: Likewise. * tests/test-mbscasecmp.c: Likewise. * tests/test-mbscasestr1.c: Likewise. * tests/test-mbscasestr2.c: Likewise. * tests/test-mbscasestr3.c: Likewise. * tests/test-mbscasestr4.c: Likewise. * tests/test-mbschr.c: Likewise. * tests/test-mbscspn.c: Likewise. * tests/test-mbsinit.c: Likewise. * tests/test-mbsncasecmp.c: Likewise. * tests/test-mbsnrtowcs.c: Likewise. * tests/test-mbspbrk.c: Likewise. * tests/test-mbspcasecmp.c: Likewise. * tests/test-mbsrchr.c: Likewise. * tests/test-mbsrtowcs.c: Likewise. * tests/test-mbsspn.c: Likewise. * tests/test-mbsstr1.c: Likewise. * tests/test-mbsstr2.c: Likewise. * tests/test-mbsstr3.c: Likewise. * tests/test-memchr.c: Likewise. * tests/test-memchr2.c: Likewise. * tests/test-memcmp.c: Likewise. * tests/test-memmem.c: Likewise. * tests/test-memrchr.c: Likewise. * tests/test-mkdir.c: Likewise. * tests/test-mkdirat.c: Likewise. * tests/test-mkfifo.c: Likewise. * tests/test-mkfifoat.c: Likewise. * tests/test-mknod.c: Likewise. * tests/test-nanosleep.c: Likewise. * tests/test-nl_langinfo.c: Likewise. * tests/test-obstack-printf.c: Likewise. * tests/test-open.c: Likewise. * tests/test-openat.c: Likewise. * tests/test-pipe-filter-gi1.c: Likewise. * tests/test-pipe-filter-gi2-main.c: Likewise. * tests/test-pipe-filter-ii1.c: Likewise. * tests/test-pipe-filter-ii2-main.c: Likewise. * tests/test-pipe2.c: Likewise. * tests/test-popen.h: Likewise. * tests/test-posixtm.c: Likewise. * tests/test-pread.c: Likewise. * tests/test-printf-frexp.c: Likewise. * tests/test-printf-frexpl.c: Likewise. * tests/test-printf-posix.c: Likewise. * tests/test-priv-set.c: Likewise. * tests/test-quotearg.c: Likewise. * tests/test-random_r.c: Likewise. * tests/test-rawmemchr.c: Likewise. * tests/test-rbtree_list.c: Likewise. * tests/test-rbtree_oset.c: Likewise. * tests/test-rbtreehash_list.c: Likewise. * tests/test-readlink.c: Likewise. * tests/test-remove.c: Likewise. * tests/test-rename.c: Likewise. * tests/test-renameat.c: Likewise. * tests/test-rmdir.c: Likewise. * tests/test-round1.c: Likewise. * tests/test-roundf1.c: Likewise. * tests/test-roundl.c: Likewise. * tests/test-safe-alloc.c: Likewise. * tests/test-sameacls.c: Likewise. * tests/test-set-mode-acl.c: Likewise. * tests/test-setenv.c: Likewise. * tests/test-sigaction.c: Likewise. * tests/test-signbit.c: Likewise. * tests/test-sleep.c: Likewise. * tests/test-snprintf-posix.c: Likewise. * tests/test-snprintf.c: Likewise. * tests/test-sprintf-posix.c: Likewise. * tests/test-stat-time.c: Likewise. * tests/test-stat.c: Likewise. * tests/test-strcasestr.c: Likewise. * tests/test-strchrnul.c: Likewise. * tests/test-strerror.c: Likewise. * tests/test-striconv.c: Likewise. * tests/test-striconveh.c: Likewise. * tests/test-striconveha.c: Likewise. * tests/test-strsignal.c: Likewise. * tests/test-strstr.c: Likewise. * tests/test-strtod.c: Likewise. * tests/test-strverscmp.c: Likewise. * tests/test-symlink.c: Likewise. * tests/test-symlinkat.c: Likewise. * tests/test-trunc1.c: Likewise. * tests/test-trunc2.c: Likewise. * tests/test-truncf1.c: Likewise. * tests/test-truncf2.c: Likewise. * tests/test-truncl.c: Likewise. * tests/test-uname.c: Likewise. * tests/test-unlink.c: Likewise. * tests/test-unlinkat.c: Likewise. * tests/test-unsetenv.c: Likewise. * tests/test-usleep.c: Likewise. * tests/test-utimens.c: Likewise. * tests/test-utimensat.c: Likewise. * tests/test-vasnprintf-posix.c: Likewise. * tests/test-vasnprintf-posix2.c: Likewise. * tests/test-vasnprintf.c: Likewise. * tests/test-vasprintf-posix.c: Likewise. * tests/test-vasprintf.c: Likewise. * tests/test-vdprintf-posix.c: Likewise. * tests/test-vfprintf-posix.c: Likewise. * tests/test-vprintf-posix.c: Likewise. * tests/test-vsnprintf-posix.c: Likewise. * tests/test-vsnprintf.c: Likewise. * tests/test-vsprintf-posix.c: Likewise. * tests/test-wcrtomb.c: Likewise. * tests/test-wcsnrtombs.c: Likewise. * tests/test-wcsrtombs.c: Likewise. * tests/test-wctype.c: Likewise. * tests/test-wcwidth.c: Likewise. * tests/test-xfprintf-posix.c: Likewise. * tests/test-xmemdup0.c: Likewise. * tests/test-xprintf-posix.c: Likewise. * tests/test-xvasprintf.c: Likewise. * tests/unicase/test-locale-language.c: Likewise. * tests/unicase/test-mapping-part1.h: Likewise. * tests/unicase/test-predicate-part1.h: Likewise. * tests/unicase/test-u8-casecmp.c: Likewise. * tests/unicase/test-u8-casecoll.c: Likewise. * tests/unicase/test-u8-casefold.c: Likewise. * tests/unicase/test-u8-is-cased.c: Likewise. * tests/unicase/test-u8-is-casefolded.c: Likewise. * tests/unicase/test-u8-is-lowercase.c: Likewise. * tests/unicase/test-u8-is-titlecase.c: Likewise. * tests/unicase/test-u8-is-uppercase.c: Likewise. * tests/unicase/test-u8-tolower.c: Likewise. * tests/unicase/test-u8-totitle.c: Likewise. * tests/unicase/test-u8-toupper.c: Likewise. * tests/unicase/test-u16-casecmp.c: Likewise. * tests/unicase/test-u16-casecoll.c: Likewise. * tests/unicase/test-u16-casefold.c: Likewise. * tests/unicase/test-u16-is-cased.c: Likewise. * tests/unicase/test-u16-is-casefolded.c: Likewise. * tests/unicase/test-u16-is-lowercase.c: Likewise. * tests/unicase/test-u16-is-titlecase.c: Likewise. * tests/unicase/test-u16-is-uppercase.c: Likewise. * tests/unicase/test-u16-tolower.c: Likewise. * tests/unicase/test-u16-totitle.c: Likewise. * tests/unicase/test-u16-toupper.c: Likewise. * tests/unicase/test-u32-casecmp.c: Likewise. * tests/unicase/test-u32-casecoll.c: Likewise. * tests/unicase/test-u32-casefold.c: Likewise. * tests/unicase/test-u32-is-cased.c: Likewise. * tests/unicase/test-u32-is-casefolded.c: Likewise. * tests/unicase/test-u32-is-lowercase.c: Likewise. * tests/unicase/test-u32-is-titlecase.c: Likewise. * tests/unicase/test-u32-is-uppercase.c: Likewise. * tests/unicase/test-u32-tolower.c: Likewise. * tests/unicase/test-u32-totitle.c: Likewise. * tests/unicase/test-u32-toupper.c: Likewise. * tests/unicase/test-ulc-casecmp.c: Likewise. * tests/unicase/test-ulc-casecoll.c: Likewise. * tests/uniconv/test-u8-conv-from-enc.c: Likewise. * tests/uniconv/test-u8-conv-to-enc.c: Likewise. * tests/uniconv/test-u8-strconv-from-enc.c: Likewise. * tests/uniconv/test-u8-strconv-to-enc.c: Likewise. * tests/uniconv/test-u16-conv-from-enc.c: Likewise. * tests/uniconv/test-u16-conv-to-enc.c: Likewise. * tests/uniconv/test-u16-strconv-from-enc.c: Likewise. * tests/uniconv/test-u16-strconv-to-enc.c: Likewise. * tests/uniconv/test-u32-conv-from-enc.c: Likewise. * tests/uniconv/test-u32-conv-to-enc.c: Likewise. * tests/uniconv/test-u32-strconv-from-enc.c: Likewise. * tests/uniconv/test-u32-strconv-to-enc.c: Likewise. * tests/unictype/test-bidi_byname.c: Likewise. * tests/unictype/test-bidi_name.c: Likewise. * tests/unictype/test-bidi_of.c: Likewise. * tests/unictype/test-bidi_test.c: Likewise. * tests/unictype/test-block_list.c: Likewise. * tests/unictype/test-block_of.c: Likewise. * tests/unictype/test-block_test.c: Likewise. * tests/unictype/test-categ_and.c: Likewise. * tests/unictype/test-categ_and_not.c: Likewise. * tests/unictype/test-categ_byname.c: Likewise. * tests/unictype/test-categ_name.c: Likewise. * tests/unictype/test-categ_none.c: Likewise. * tests/unictype/test-categ_of.c: Likewise. * tests/unictype/test-categ_or.c: Likewise. * tests/unictype/test-categ_test_withtable.c: Likewise. * tests/unictype/test-combining.c: Likewise. * tests/unictype/test-decdigit.c: Likewise. * tests/unictype/test-digit.c: Likewise. * tests/unictype/test-mirror.c: Likewise. * tests/unictype/test-numeric.c: Likewise. * tests/unictype/test-pr_byname.c: Likewise. * tests/unictype/test-pr_test.c: Likewise. * tests/unictype/test-predicate-part1.h: Likewise. * tests/unictype/test-scripts.c: Likewise. * tests/unictype/test-sy_c_ident.c: Likewise. * tests/unictype/test-sy_java_ident.c: Likewise. * tests/unilbrk/test-u8-possible-linebreaks.c: Likewise. * tests/unilbrk/test-u8-width-linebreaks.c: Likewise. * tests/unilbrk/test-u16-possible-linebreaks.c: Likewise. * tests/unilbrk/test-u16-width-linebreaks.c: Likewise. * tests/unilbrk/test-u32-possible-linebreaks.c: Likewise. * tests/unilbrk/test-u32-width-linebreaks.c: Likewise. * tests/unilbrk/test-ulc-possible-linebreaks.c: Likewise. * tests/unilbrk/test-ulc-width-linebreaks.c: Likewise. * tests/uninorm/test-canonical-decomposition.c: Likewise. * tests/uninorm/test-compat-decomposition.c: Likewise. * tests/uninorm/test-composition.c: Likewise. * tests/uninorm/test-decomposing-form.c: Likewise. * tests/uninorm/test-decomposition.c: Likewise. * tests/uninorm/test-u8-nfc.c: Likewise. * tests/uninorm/test-u8-nfd.c: Likewise. * tests/uninorm/test-u8-nfkc.c: Likewise. * tests/uninorm/test-u8-nfkd.c: Likewise. * tests/uninorm/test-u8-normcmp.c: Likewise. * tests/uninorm/test-u8-normcoll.c: Likewise. * tests/uninorm/test-u16-nfc.c: Likewise. * tests/uninorm/test-u16-nfd.c: Likewise. * tests/uninorm/test-u16-nfkc.c: Likewise. * tests/uninorm/test-u16-nfkd.c: Likewise. * tests/uninorm/test-u16-normcmp.c: Likewise. * tests/uninorm/test-u16-normcoll.c: Likewise. * tests/uninorm/test-u32-nfc.c: Likewise. * tests/uninorm/test-u32-nfd.c: Likewise. * tests/uninorm/test-u32-nfkc.c: Likewise. * tests/uninorm/test-u32-nfkd.c: Likewise. * tests/uninorm/test-u32-normalize-big.c: Likewise. * tests/uninorm/test-u32-normcmp.c: Likewise. * tests/uninorm/test-u32-normcoll.c: Likewise. * tests/uninorm/test-uninorm-filter-nfc.c: Likewise. * tests/unistdio/test-u8-asnprintf1.c: Likewise. * tests/unistdio/test-u8-vasnprintf1.c: Likewise. * tests/unistdio/test-u8-vasnprintf2.c: Likewise. * tests/unistdio/test-u8-vasnprintf3.c: Likewise. * tests/unistdio/test-u8-vasprintf1.c: Likewise. * tests/unistdio/test-u8-vsnprintf1.c: Likewise. * tests/unistdio/test-u8-vsprintf1.c: Likewise. * tests/unistdio/test-u16-asnprintf1.c: Likewise. * tests/unistdio/test-u16-vasnprintf1.c: Likewise. * tests/unistdio/test-u16-vasnprintf2.c: Likewise. * tests/unistdio/test-u16-vasnprintf3.c: Likewise. * tests/unistdio/test-u16-vasprintf1.c: Likewise. * tests/unistdio/test-u16-vsnprintf1.c: Likewise. * tests/unistdio/test-u16-vsprintf1.c: Likewise. * tests/unistdio/test-u32-asnprintf1.c: Likewise. * tests/unistdio/test-u32-vasnprintf1.c: Likewise. * tests/unistdio/test-u32-vasnprintf2.c: Likewise. * tests/unistdio/test-u32-vasnprintf3.c: Likewise. * tests/unistdio/test-u32-vasprintf1.c: Likewise. * tests/unistdio/test-u32-vsnprintf1.c: Likewise. * tests/unistdio/test-u32-vsprintf1.c: Likewise. * tests/unistdio/test-ulc-asnprintf1.c: Likewise. * tests/unistdio/test-ulc-vasnprintf1.c: Likewise. * tests/unistdio/test-ulc-vasnprintf2.c: Likewise. * tests/unistdio/test-ulc-vasnprintf3.c: Likewise. * tests/unistdio/test-ulc-vasprintf1.c: Likewise. * tests/unistdio/test-ulc-vsnprintf1.c: Likewise. * tests/unistdio/test-ulc-vsprintf1.c: Likewise. * tests/uniwbrk/test-u8-wordbreaks.c: Likewise. * tests/uniwbrk/test-u16-wordbreaks.c: Likewise. * tests/uniwbrk/test-u32-wordbreaks.c: Likewise. * tests/uniwbrk/test-ulc-wordbreaks.c: Likewise. * tests/uniwidth/test-u8-strwidth.c: Likewise. * tests/uniwidth/test-u8-width.c: Likewise. * tests/uniwidth/test-u16-strwidth.c: Likewise. * tests/uniwidth/test-u16-width.c: Likewise. * tests/uniwidth/test-u32-strwidth.c: Likewise. * tests/uniwidth/test-u32-width.c: Likewise. * tests/uniwidth/test-uc_width.c: Likewise. * tests/uniwidth/test-uc_width2.c: Likewise. * modules/acl-tests (Files): Add tests/macros.h. * modules/areadlink-tests (Files): Likewise. * modules/areadlink-with-size-tests (Files): Likewise. * modules/areadlinkat-tests (Files): Likewise. * modules/areadlinkat-with-size-tests (Files): Likewise. * modules/argmatch-tests (Files): Likewise. * modules/argv-iter-tests (Files): Likewise. * modules/array-list-tests (Files): Likewise. * modules/array-mergesort-tests (Files): Likewise. * modules/array-oset-tests (Files): Likewise. * modules/avltree-list-tests (Files): Likewise. * modules/avltree-oset-tests (Files): Likewise. * modules/avltreehash-list-tests (Files): Likewise. * modules/base64-tests (Files): Likewise. * modules/binary-io-tests (Files): Likewise. * modules/bitrotate-tests (Files): Likewise. * modules/btowc-tests (Files): Likewise. * modules/byteswap-tests (Files): Likewise. * modules/c-ctype-tests (Files): Likewise. * modules/c-stack-tests (Files): Likewise. * modules/c-strcase-tests (Files): Likewise. * modules/c-strcasestr-tests (Files): Likewise. * modules/c-strstr-tests (Files): Likewise. * modules/canonicalize-lgpl-tests (Files): Likewise. * modules/canonicalize-tests (Files): Likewise. * modules/carray-list-tests (Files): Likewise. * modules/ceilf-tests (Files): Likewise. * modules/ceill-tests (Files): Likewise. * modules/chown-tests (Files): Likewise. * modules/cloexec-tests (Files): Likewise. * modules/copy-file-tests (Files): Likewise. * modules/count-one-bits-tests (Files): Likewise. * modules/dprintf-posix-tests (Files): Likewise. * modules/dup2-tests (Files): Likewise. * modules/dup3-tests (Files): Likewise. * modules/duplocale-tests (Files): Likewise. * modules/fbufmode-tests (Files): Likewise. * modules/fchdir-tests (Files): Likewise. * modules/fcntl-safer-tests (Files): Likewise. * modules/fcntl-tests (Files): Likewise. * modules/fdopendir-tests (Files): Likewise. * modules/fdutimensat-tests (Files): Likewise. * modules/fflush-tests (Files): Likewise. * modules/filevercmp-tests (Files): Likewise. * modules/flock-tests (Files): Likewise. * modules/floorf-tests (Files): Likewise. * modules/floorl-tests (Files): Likewise. * modules/fnmatch-tests (Files): Likewise. * modules/fopen-safer-tests (Files): Likewise. * modules/fopen-tests (Files): Likewise. * modules/fpending-tests (Files): Likewise. * modules/fprintf-posix-tests (Files): Likewise. * modules/fpurge-tests (Files): Likewise. * modules/freadable-tests (Files): Likewise. * modules/freadahead-tests (Files): Likewise. * modules/freading-tests (Files): Likewise. * modules/freadptr-tests (Files): Likewise. * modules/freadseek-tests (Files): Likewise. * modules/freopen-tests (Files): Likewise. * modules/frexp-nolibm-tests (Files): Likewise. * modules/frexp-tests (Files): Likewise. * modules/frexpl-nolibm-tests (Files): Likewise. * modules/frexpl-tests (Files): Likewise. * modules/fseek-tests (Files): Likewise. * modules/fseeko-tests (Files): Likewise. * modules/fstrcmp-tests (Files): Likewise. * modules/fsync-tests (Files): Likewise. * modules/ftell-tests (Files): Likewise. * modules/ftello-tests (Files): Likewise. * modules/func-tests (Files): Likewise. * modules/futimens-tests (Files): Likewise. * modules/fwritable-tests (Files): Likewise. * modules/fwriting-tests (Files): Likewise. * modules/getcwd-tests (Files): Likewise. * modules/getdate-tests (Files): Likewise. * modules/getdelim-tests (Files): Likewise. * modules/getdtablesize-tests (Files): Likewise. * modules/getgroups-tests (Files): Likewise. * modules/getline-tests (Files): Likewise. * modules/getndelim2-tests (Files): Likewise. * modules/glob-tests (Files): Likewise. * modules/hash-tests (Files): Likewise. * modules/i-ring-tests (Files): Likewise. * modules/iconv-tests (Files): Likewise. * modules/iconv_open-utf-tests (Files): Likewise. * modules/idpriv-drop-tests (Files): Likewise. * modules/idpriv-droptemp-tests (Files): Likewise. * modules/inet_ntop-tests (Files): Likewise. * modules/inet_pton-tests (Files): Likewise. * modules/isblank-tests (Files): Likewise. * modules/isfinite-tests (Files): Likewise. * modules/isinf-tests (Files): Likewise. * modules/isnan-tests (Files): Likewise. * modules/isnand-nolibm-tests (Files): Likewise. * modules/isnand-tests (Files): Likewise. * modules/isnanf-nolibm-tests (Files): Likewise. * modules/isnanf-tests (Files): Likewise. * modules/isnanl-nolibm-tests (Files): Likewise. * modules/isnanl-tests (Files): Likewise. * modules/lchown-tests (Files): Likewise. * modules/ldexpl-tests (Files): Likewise. * modules/link-tests (Files): Likewise. * modules/linkat-tests (Files): Likewise. * modules/linked-list-tests (Files): Likewise. * modules/linkedhash-list-tests (Files): Likewise. * modules/localename-tests (Files): Likewise. * modules/lseek-tests (Files): Likewise. * modules/lstat-tests (Files): Likewise. * modules/mbmemcasecmp-tests (Files): Likewise. * modules/mbmemcasecoll-tests (Files): Likewise. * modules/mbrtowc-tests (Files): Likewise. * modules/mbscasecmp-tests (Files): Likewise. * modules/mbscasestr-tests (Files): Likewise. * modules/mbschr-tests (Files): Likewise. * modules/mbscspn-tests (Files): Likewise. * modules/mbsinit-tests (Files): Likewise. * modules/mbsncasecmp-tests (Files): Likewise. * modules/mbsnrtowcs-tests (Files): Likewise. * modules/mbspbrk-tests (Files): Likewise. * modules/mbspcasecmp-tests (Files): Likewise. * modules/mbsrchr-tests (Files): Likewise. * modules/mbsrtowcs-tests (Files): Likewise. * modules/mbsspn-tests (Files): Likewise. * modules/mbsstr-tests (Files): Likewise. * modules/memchr-tests (Files): Likewise. * modules/memchr2-tests (Files): Likewise. * modules/memcmp-tests (Files): Likewise. * modules/memmem-tests (Files): Likewise. * modules/memrchr-tests (Files): Likewise. * modules/mkdir-tests (Files): Likewise. * modules/mkfifo-tests (Files): Likewise. * modules/mkfifoat-tests (Files): Likewise. * modules/mknod-tests (Files): Likewise. * modules/nanosleep-tests (Files): Likewise. * modules/nl_langinfo-tests (Files): Likewise. * modules/obstack-printf-tests (Files): Likewise. * modules/open-tests (Files): Likewise. * modules/openat-tests (Files): Likewise. * modules/pipe-filter-gi-tests (Files): Likewise. * modules/pipe-filter-ii-tests (Files): Likewise. * modules/pipe2-tests (Files): Likewise. * modules/popen-safer-tests (Files): Likewise. * modules/popen-tests (Files): Likewise. * modules/posixtm-tests (Files): Likewise. * modules/pread-tests (Files): Likewise. * modules/printf-frexp-tests (Files): Likewise. * modules/printf-frexpl-tests (Files): Likewise. * modules/printf-posix-tests (Files): Likewise. * modules/priv-set-tests (Files): Likewise. * modules/quotearg-tests (Files): Likewise. * modules/random_r-tests (Files): Likewise. * modules/rawmemchr-tests (Files): Likewise. * modules/rbtree-list-tests (Files): Likewise. * modules/rbtree-oset-tests (Files): Likewise. * modules/rbtreehash-list-tests (Files): Likewise. * modules/readlink-tests (Files): Likewise. * modules/remove-tests (Files): Likewise. * modules/rename-tests (Files): Likewise. * modules/renameat-tests (Files): Likewise. * modules/rmdir-tests (Files): Likewise. * modules/round-tests (Files): Likewise. * modules/roundf-tests (Files): Likewise. * modules/roundl-tests (Files): Likewise. * modules/safe-alloc-tests (Files): Likewise. * modules/setenv-tests (Files): Likewise. * modules/sigaction-tests (Files): Likewise. * modules/signbit-tests (Files): Likewise. * modules/sleep-tests (Files): Likewise. * modules/snprintf-posix-tests (Files): Likewise. * modules/snprintf-tests (Files): Likewise. * modules/sprintf-posix-tests (Files): Likewise. * modules/stat-tests (Files): Likewise. * modules/stat-time-tests (Files): Likewise. * modules/strcasestr-tests (Files): Likewise. * modules/strchrnul-tests (Files): Likewise. * modules/strerror-tests (Files): Likewise. * modules/striconv-tests (Files): Likewise. * modules/striconveh-tests (Files): Likewise. * modules/striconveha-tests (Files): Likewise. * modules/strsignal-tests (Files): Likewise. * modules/strstr-tests (Files): Likewise. * modules/strtod-tests (Files): Likewise. * modules/strverscmp-tests (Files): Likewise. * modules/symlink-tests (Files): Likewise. * modules/symlinkat-tests (Files): Likewise. * modules/trunc-tests (Files): Likewise. * modules/truncf-tests (Files): Likewise. * modules/truncl-tests (Files): Likewise. * modules/uname-tests (Files): Likewise. * modules/unicase/cased-tests (Files): Likewise. * modules/unicase/ignorable-tests (Files): Likewise. * modules/unicase/locale-language-tests (Files): Likewise. * modules/unicase/tolower-tests (Files): Likewise. * modules/unicase/totitle-tests (Files): Likewise. * modules/unicase/toupper-tests (Files): Likewise. * modules/unicase/u8-casecmp-tests (Files): Likewise. * modules/unicase/u8-casecoll-tests (Files): Likewise. * modules/unicase/u8-casefold-tests (Files): Likewise. * modules/unicase/u8-is-cased-tests (Files): Likewise. * modules/unicase/u8-is-casefolded-tests (Files): Likewise. * modules/unicase/u8-is-lowercase-tests (Files): Likewise. * modules/unicase/u8-is-titlecase-tests (Files): Likewise. * modules/unicase/u8-is-uppercase-tests (Files): Likewise. * modules/unicase/u8-tolower-tests (Files): Likewise. * modules/unicase/u8-totitle-tests (Files): Likewise. * modules/unicase/u8-toupper-tests (Files): Likewise. * modules/unicase/u16-casecmp-tests (Files): Likewise. * modules/unicase/u16-casecoll-tests (Files): Likewise. * modules/unicase/u16-casefold-tests (Files): Likewise. * modules/unicase/u16-is-cased-tests (Files): Likewise. * modules/unicase/u16-is-casefolded-tests (Files): Likewise. * modules/unicase/u16-is-lowercase-tests (Files): Likewise. * modules/unicase/u16-is-titlecase-tests (Files): Likewise. * modules/unicase/u16-is-uppercase-tests (Files): Likewise. * modules/unicase/u16-tolower-tests (Files): Likewise. * modules/unicase/u16-totitle-tests (Files): Likewise. * modules/unicase/u16-toupper-tests (Files): Likewise. * modules/unicase/u32-casecmp-tests (Files): Likewise. * modules/unicase/u32-casecoll-tests (Files): Likewise. * modules/unicase/u32-casefold-tests (Files): Likewise. * modules/unicase/u32-is-cased-tests (Files): Likewise. * modules/unicase/u32-is-casefolded-tests (Files): Likewise. * modules/unicase/u32-is-lowercase-tests (Files): Likewise. * modules/unicase/u32-is-titlecase-tests (Files): Likewise. * modules/unicase/u32-is-uppercase-tests (Files): Likewise. * modules/unicase/u32-tolower-tests (Files): Likewise. * modules/unicase/u32-totitle-tests (Files): Likewise. * modules/unicase/u32-toupper-tests (Files): Likewise. * modules/unicase/ulc-casecmp-tests (Files): Likewise. * modules/unicase/ulc-casecoll-tests (Files): Likewise. * modules/uniconv/u8-conv-from-enc-tests (Files): Likewise. * modules/uniconv/u8-conv-to-enc-tests (Files): Likewise. * modules/uniconv/u8-strconv-from-enc-tests (Files): Likewise. * modules/uniconv/u8-strconv-to-enc-tests (Files): Likewise. * modules/uniconv/u16-conv-from-enc-tests (Files): Likewise. * modules/uniconv/u16-conv-to-enc-tests (Files): Likewise. * modules/uniconv/u16-strconv-from-enc-tests (Files): Likewise. * modules/uniconv/u16-strconv-to-enc-tests (Files): Likewise. * modules/uniconv/u32-conv-from-enc-tests (Files): Likewise. * modules/uniconv/u32-conv-to-enc-tests (Files): Likewise. * modules/uniconv/u32-strconv-from-enc-tests (Files): Likewise. * modules/uniconv/u32-strconv-to-enc-tests (Files): Likewise. * modules/unictype/bidicategory-byname-tests (Files): Likewise. * modules/unictype/bidicategory-name-tests (Files): Likewise. * modules/unictype/bidicategory-of-tests (Files): Likewise. * modules/unictype/bidicategory-test-tests (Files): Likewise. * modules/unictype/block-list-tests (Files): Likewise. * modules/unictype/block-of-tests (Files): Likewise. * modules/unictype/block-test-tests (Files): Likewise. * modules/unictype/category-C-tests (Files): Likewise. * modules/unictype/category-Cc-tests (Files): Likewise. * modules/unictype/category-Cf-tests (Files): Likewise. * modules/unictype/category-Cn-tests (Files): Likewise. * modules/unictype/category-Co-tests (Files): Likewise. * modules/unictype/category-Cs-tests (Files): Likewise. * modules/unictype/category-L-tests (Files): Likewise. * modules/unictype/category-Ll-tests (Files): Likewise. * modules/unictype/category-Lm-tests (Files): Likewise. * modules/unictype/category-Lo-tests (Files): Likewise. * modules/unictype/category-Lt-tests (Files): Likewise. * modules/unictype/category-Lu-tests (Files): Likewise. * modules/unictype/category-M-tests (Files): Likewise. * modules/unictype/category-Mc-tests (Files): Likewise. * modules/unictype/category-Me-tests (Files): Likewise. * modules/unictype/category-Mn-tests (Files): Likewise. * modules/unictype/category-N-tests (Files): Likewise. * modules/unictype/category-Nd-tests (Files): Likewise. * modules/unictype/category-Nl-tests (Files): Likewise. * modules/unictype/category-No-tests (Files): Likewise. * modules/unictype/category-P-tests (Files): Likewise. * modules/unictype/category-Pc-tests (Files): Likewise. * modules/unictype/category-Pd-tests (Files): Likewise. * modules/unictype/category-Pe-tests (Files): Likewise. * modules/unictype/category-Pf-tests (Files): Likewise. * modules/unictype/category-Pi-tests (Files): Likewise. * modules/unictype/category-Po-tests (Files): Likewise. * modules/unictype/category-Ps-tests (Files): Likewise. * modules/unictype/category-S-tests (Files): Likewise. * modules/unictype/category-Sc-tests (Files): Likewise. * modules/unictype/category-Sk-tests (Files): Likewise. * modules/unictype/category-Sm-tests (Files): Likewise. * modules/unictype/category-So-tests (Files): Likewise. * modules/unictype/category-Z-tests (Files): Likewise. * modules/unictype/category-Zl-tests (Files): Likewise. * modules/unictype/category-Zp-tests (Files): Likewise. * modules/unictype/category-Zs-tests (Files): Likewise. * modules/unictype/category-and-not-tests (Files): Likewise. * modules/unictype/category-and-tests (Files): Likewise. * modules/unictype/category-byname-tests (Files): Likewise. * modules/unictype/category-name-tests (Files): Likewise. * modules/unictype/category-none-tests (Files): Likewise. * modules/unictype/category-of-tests (Files): Likewise. * modules/unictype/category-or-tests (Files): Likewise. * modules/unictype/category-test-withtable-tests (Files): Likewise. * modules/unictype/combining-class-tests (Files): Likewise. * modules/unictype/ctype-alnum-tests (Files): Likewise. * modules/unictype/ctype-alpha-tests (Files): Likewise. * modules/unictype/ctype-blank-tests (Files): Likewise. * modules/unictype/ctype-cntrl-tests (Files): Likewise. * modules/unictype/ctype-digit-tests (Files): Likewise. * modules/unictype/ctype-graph-tests (Files): Likewise. * modules/unictype/ctype-lower-tests (Files): Likewise. * modules/unictype/ctype-print-tests (Files): Likewise. * modules/unictype/ctype-punct-tests (Files): Likewise. * modules/unictype/ctype-space-tests (Files): Likewise. * modules/unictype/ctype-upper-tests (Files): Likewise. * modules/unictype/ctype-xdigit-tests (Files): Likewise. * modules/unictype/decimal-digit-tests (Files): Likewise. * modules/unictype/digit-tests (Files): Likewise. * modules/unictype/mirror-tests (Files): Likewise. * modules/unictype/numeric-tests (Files): Likewise. * modules/unictype/property-alphabetic-tests (Files): Likewise. * modules/unictype/property-ascii-hex-digit-tests (Files): Likewise. * modules/unictype/property-bidi-arabic-digit-tests (Files): Likewise. * modules/unictype/property-bidi-arabic-right-to-left-tests (Files): Likewise. * modules/unictype/property-bidi-block-separator-tests (Files): Likewise. * modules/unictype/property-bidi-boundary-neutral-tests (Files): Likewise. * modules/unictype/property-bidi-common-separator-tests (Files): Likewise. * modules/unictype/property-bidi-control-tests (Files): Likewise. * modules/unictype/property-bidi-embedding-or-override-tests (Files): Likewise. * modules/unictype/property-bidi-eur-num-separator-tests (Files): Likewise. * modules/unictype/property-bidi-eur-num-terminator-tests (Files): Likewise. * modules/unictype/property-bidi-european-digit-tests (Files): Likewise. * modules/unictype/property-bidi-hebrew-right-to-left-tests (Files): Likewise. * modules/unictype/property-bidi-left-to-right-tests (Files): Likewise. * modules/unictype/property-bidi-non-spacing-mark-tests (Files): Likewise. * modules/unictype/property-bidi-other-neutral-tests (Files): Likewise. * modules/unictype/property-bidi-pdf-tests (Files): Likewise. * modules/unictype/property-bidi-segment-separator-tests (Files): Likewise. * modules/unictype/property-bidi-whitespace-tests (Files): Likewise. * modules/unictype/property-byname-tests (Files): Likewise. * modules/unictype/property-combining-tests (Files): Likewise. * modules/unictype/property-composite-tests (Files): Likewise. * modules/unictype/property-currency-symbol-tests (Files): Likewise. * modules/unictype/property-dash-tests (Files): Likewise. * modules/unictype/property-decimal-digit-tests (Files): Likewise. * modules/unictype/property-default-ignorable-code-point-tests (Files): Likewise. * modules/unictype/property-deprecated-tests (Files): Likewise. * modules/unictype/property-diacritic-tests (Files): Likewise. * modules/unictype/property-extender-tests (Files): Likewise. * modules/unictype/property-format-control-tests (Files): Likewise. * modules/unictype/property-grapheme-base-tests (Files): Likewise. * modules/unictype/property-grapheme-extend-tests (Files): Likewise. * modules/unictype/property-grapheme-link-tests (Files): Likewise. * modules/unictype/property-hex-digit-tests (Files): Likewise. * modules/unictype/property-hyphen-tests (Files): Likewise. * modules/unictype/property-id-continue-tests (Files): Likewise. * modules/unictype/property-id-start-tests (Files): Likewise. * modules/unictype/property-ideographic-tests (Files): Likewise. * modules/unictype/property-ids-binary-operator-tests (Files): Likewise. * modules/unictype/property-ids-trinary-operator-tests (Files): Likewise. * modules/unictype/property-ignorable-control-tests (Files): Likewise. * modules/unictype/property-iso-control-tests (Files): Likewise. * modules/unictype/property-join-control-tests (Files): Likewise. * modules/unictype/property-left-of-pair-tests (Files): Likewise. * modules/unictype/property-line-separator-tests (Files): Likewise. * modules/unictype/property-logical-order-exception-tests (Files): Likewise. * modules/unictype/property-lowercase-tests (Files): Likewise. * modules/unictype/property-math-tests (Files): Likewise. * modules/unictype/property-non-break-tests (Files): Likewise. * modules/unictype/property-not-a-character-tests (Files): Likewise. * modules/unictype/property-numeric-tests (Files): Likewise. * modules/unictype/property-other-alphabetic-tests (Files): Likewise. * modules/unictype/property-other-default-ignorable-code-point-tests (Files): Likewise. * modules/unictype/property-other-grapheme-extend-tests (Files): Likewise. * modules/unictype/property-other-id-continue-tests (Files): Likewise. * modules/unictype/property-other-id-start-tests (Files): Likewise. * modules/unictype/property-other-lowercase-tests (Files): Likewise. * modules/unictype/property-other-math-tests (Files): Likewise. * modules/unictype/property-other-uppercase-tests (Files): Likewise. * modules/unictype/property-paired-punctuation-tests (Files): Likewise. * modules/unictype/property-paragraph-separator-tests (Files): Likewise. * modules/unictype/property-pattern-syntax-tests (Files): Likewise. * modules/unictype/property-pattern-white-space-tests (Files): Likewise. * modules/unictype/property-private-use-tests (Files): Likewise. * modules/unictype/property-punctuation-tests (Files): Likewise. * modules/unictype/property-quotation-mark-tests (Files): Likewise. * modules/unictype/property-radical-tests (Files): Likewise. * modules/unictype/property-sentence-terminal-tests (Files): Likewise. * modules/unictype/property-soft-dotted-tests (Files): Likewise. * modules/unictype/property-space-tests (Files): Likewise. * modules/unictype/property-terminal-punctuation-tests (Files): Likewise. * modules/unictype/property-test-tests (Files): Likewise. * modules/unictype/property-titlecase-tests (Files): Likewise. * modules/unictype/property-unassigned-code-value-tests (Files): Likewise. * modules/unictype/property-unified-ideograph-tests (Files): Likewise. * modules/unictype/property-uppercase-tests (Files): Likewise. * modules/unictype/property-variation-selector-tests (Files): Likewise. * modules/unictype/property-white-space-tests (Files): Likewise. * modules/unictype/property-xid-continue-tests (Files): Likewise. * modules/unictype/property-xid-start-tests (Files): Likewise. * modules/unictype/property-zero-width-tests (Files): Likewise. * modules/unictype/scripts-tests (Files): Likewise. * modules/unictype/syntax-c-ident-tests (Files): Likewise. * modules/unictype/syntax-c-whitespace-tests (Files): Likewise. * modules/unictype/syntax-java-ident-tests (Files): Likewise. * modules/unictype/syntax-java-whitespace-tests (Files): Likewise. * modules/unilbrk/u8-possible-linebreaks-tests (Files): Likewise. * modules/unilbrk/u8-width-linebreaks-tests (Files): Likewise. * modules/unilbrk/u16-possible-linebreaks-tests (Files): Likewise. * modules/unilbrk/u16-width-linebreaks-tests (Files): Likewise. * modules/unilbrk/u32-possible-linebreaks-tests (Files): Likewise. * modules/unilbrk/u32-width-linebreaks-tests (Files): Likewise. * modules/unilbrk/ulc-possible-linebreaks-tests (Files): Likewise. * modules/unilbrk/ulc-width-linebreaks-tests (Files): Likewise. * modules/uninorm/canonical-decomposition-tests (Files): Likewise. * modules/uninorm/compat-decomposition-tests (Files): Likewise. * modules/uninorm/composition-tests (Files): Likewise. * modules/uninorm/decomposing-form-tests (Files): Likewise. * modules/uninorm/decomposition-tests (Files): Likewise. * modules/uninorm/filter-tests (Files): Likewise. * modules/uninorm/nfc-tests (Files): Likewise. * modules/uninorm/nfd-tests (Files): Likewise. * modules/uninorm/nfkc-tests (Files): Likewise. * modules/uninorm/nfkd-tests (Files): Likewise. * modules/uninorm/u8-normcmp-tests (Files): Likewise. * modules/uninorm/u8-normcoll-tests (Files): Likewise. * modules/uninorm/u16-normcmp-tests (Files): Likewise. * modules/uninorm/u16-normcoll-tests (Files): Likewise. * modules/uninorm/u32-normcmp-tests (Files): Likewise. * modules/uninorm/u32-normcoll-tests (Files): Likewise. * modules/unistdio/u8-asnprintf-tests (Files): Likewise. * modules/unistdio/u8-vasnprintf-tests (Files): Likewise. * modules/unistdio/u8-vasprintf-tests (Files): Likewise. * modules/unistdio/u8-vsnprintf-tests (Files): Likewise. * modules/unistdio/u8-vsprintf-tests (Files): Likewise. * modules/unistdio/u16-asnprintf-tests (Files): Likewise. * modules/unistdio/u16-vasnprintf-tests (Files): Likewise. * modules/unistdio/u16-vasprintf-tests (Files): Likewise. * modules/unistdio/u16-vsnprintf-tests (Files): Likewise. * modules/unistdio/u16-vsprintf-tests (Files): Likewise. * modules/unistdio/u32-asnprintf-tests (Files): Likewise. * modules/unistdio/u32-vasnprintf-tests (Files): Likewise. * modules/unistdio/u32-vasprintf-tests (Files): Likewise. * modules/unistdio/u32-vsnprintf-tests (Files): Likewise. * modules/unistdio/u32-vsprintf-tests (Files): Likewise. * modules/unistdio/ulc-asnprintf-tests (Files): Likewise. * modules/unistdio/ulc-vasnprintf-tests (Files): Likewise. * modules/unistdio/ulc-vasprintf-tests (Files): Likewise. * modules/unistdio/ulc-vsnprintf-tests (Files): Likewise. * modules/unistdio/ulc-vsprintf-tests (Files): Likewise. * modules/uniwbrk/u8-wordbreaks-tests (Files): Likewise. * modules/uniwbrk/u16-wordbreaks-tests (Files): Likewise. * modules/uniwbrk/u32-wordbreaks-tests (Files): Likewise. * modules/uniwbrk/ulc-wordbreaks-tests (Files): Likewise. * modules/uniwidth/u8-strwidth-tests (Files): Likewise. * modules/uniwidth/u8-width-tests (Files): Likewise. * modules/uniwidth/u16-strwidth-tests (Files): Likewise. * modules/uniwidth/u16-width-tests (Files): Likewise. * modules/uniwidth/u32-strwidth-tests (Files): Likewise. * modules/uniwidth/u32-width-tests (Files): Likewise. * modules/uniwidth/width-tests (Files): Likewise. * modules/unlink-tests (Files): Likewise. * modules/unsetenv-tests (Files): Likewise. * modules/usleep-tests (Files): Likewise. * modules/utimens-tests (Files): Likewise. * modules/utimensat-tests (Files): Likewise. * modules/vasnprintf-posix-tests (Files): Likewise. * modules/vasnprintf-tests (Files): Likewise. * modules/vasprintf-posix-tests (Files): Likewise. * modules/vasprintf-tests (Files): Likewise. * modules/vdprintf-posix-tests (Files): Likewise. * modules/vfprintf-posix-tests (Files): Likewise. * modules/vprintf-posix-tests (Files): Likewise. * modules/vsnprintf-posix-tests (Files): Likewise. * modules/vsnprintf-tests (Files): Likewise. * modules/vsprintf-posix-tests (Files): Likewise. * modules/wcrtomb-tests (Files): Likewise. * modules/wcsnrtombs-tests (Files): Likewise. * modules/wcsrtombs-tests (Files): Likewise. * modules/wctype-tests (Files): Likewise. * modules/wcwidth-tests (Files): Likewise. * modules/xmemdup0-tests (Files): Likewise. * modules/xprintf-posix-tests (Files): Likewise. * modules/xvasprintf-tests (Files): Likewise. 2009-12-24 Eric Blake test-nanosleep: fix typo * tests/test-nanosleep.c (SIGNATURE_CHECK): Fix typo in previous patch. Reported by Bruno Haible. 2009-12-24 Bruno Haible Reduce namespace pollution on glibc systems. * lib/inttypes.in.h: Don't include on glibc systems. * lib/stdlib.in.h: Don't include , on glibc systems. * lib/unistd.in.h: Don't include , , , on glibc systems. * lib/fcntl.in.h: Don't include , on glibc systems. * lib/fcntl.c: Include here instead. 2009-12-24 Bruno Haible * lib/stdlib.in.h (includes): Fix typo in today's commit. 2009-12-24 Eric Blake tests: add signature checks * tests/signature.h (SIGNATURE_CHECK): New file. * modules/atexit-tests (Files): Use it. * modules/btowc-tests (Files): Likewise. * modules/canonicalize-lgpl-tests (Files): Likewise. * modules/ceilf-tests (Files): Likewise. * modules/ceill-tests (Files): Likewise. * modules/chown-tests (Files): Likewise. * modules/dprintf-posix-tests (Files): Likewise. * modules/dup2-tests (Files): Likewise. * modules/dup3-tests (Files): Likewise. * modules/duplocale-tests (Files): Likewise. * modules/fchdir-tests (Files): Likewise. * modules/fcntl-tests (Files): Likewise. * modules/fdopendir-tests (Files): Likewise. * modules/fflush-tests (Files): Likewise. * modules/flock-tests (Files): Likewise. * modules/floorf-tests (Files): Likewise. * modules/floorl-tests (Files): Likewise. * modules/fnmatch-tests (Files): Likewise. * modules/fopen-tests (Files): Likewise. * modules/fprintf-posix-tests (Files): Likewise. * modules/freopen-tests (Files): Likewise. * modules/frexp-nolibm-tests (Files): Likewise. * modules/frexp-tests (Files): Likewise. * modules/frexpl-nolibm-tests (Files): Likewise. * modules/frexpl-tests (Files): Likewise. * modules/fseek-tests (Files): Likewise. * modules/fseeko-tests (Files): Likewise. * modules/fsync-tests (Files): Likewise. * modules/ftell-tests (Files): Likewise. * modules/ftello-tests (Files): Likewise. * modules/futimens-tests (Files): Likewise. * modules/getaddrinfo-tests (Files): Likewise. * modules/getcwd-tests (Files): Likewise. * modules/getdelim-tests (Files): Likewise. * modules/getdtablesize-tests (Files): Likewise. * modules/getgroups-tests (Files): Likewise. * modules/gethostname-tests (Files): Likewise. * modules/getline-tests (Files): Likewise. * modules/getopt-posix-tests (Files): Likewise. * modules/gettimeofday-tests (Files): Likewise. * modules/glob-tests (Files): Likewise. * modules/iconv-tests (Files): Likewise. * modules/inet_ntop-tests (Files): Likewise. * modules/inet_pton-tests (Files): Likewise. * modules/isblank-tests (Files): Likewise. * modules/lchown-tests (Files): Likewise. * modules/ldexpl-tests (Files): Likewise. * modules/link-tests (Files): Likewise. * modules/linkat-tests (Files): Likewise. * modules/lseek-tests (Files): Likewise. * modules/lstat-tests (Files): Likewise. * modules/mbrtowc-tests (Files): Likewise. * modules/mbsinit-tests (Files): Likewise. * modules/mbsnrtowcs-tests (Files): Likewise. * modules/mbsrtowcs-tests (Files): Likewise. * modules/memchr-tests (Files): Likewise. * modules/memcmp-tests (Files): Likewise. * modules/memmem-tests (Files): Likewise. * modules/memrchr-tests (Files): Likewise. * modules/mkdir-tests (Files): Likewise. * modules/mkfifo-tests (Files): Likewise. * modules/mkfifoat-tests (Files): Likewise. * modules/mknod-tests (Files): Likewise. * modules/nanosleep-tests (Files): Likewise. * modules/nl_langinfo-tests (Files): Likewise. * modules/obstack-printf-tests (Files): Likewise. * modules/open-tests (Files): Likewise. * modules/openat-tests (Files): Likewise. * modules/perror-tests (Files): Likewise. * modules/pipe2-tests (Files): Likewise. * modules/poll-tests (Files): Likewise. * modules/popen-tests (Files): Likewise. * modules/posix_spawn-tests (Files): Likewise. * modules/posix_spawnp-tests (Files): Likewise. * modules/pread-tests (Files): Likewise. * modules/printf-posix-tests (Files): Likewise. * modules/pty-tests (Files): Likewise. * modules/random_r-tests (Files): Likewise. * modules/rawmemchr-tests (Files): Likewise. * modules/readlink-tests (Files): Likewise. * modules/remove-tests (Files): Likewise. * modules/rename-tests (Files): Likewise. * modules/renameat-tests (Files): Likewise. * modules/rmdir-tests (Files): Likewise. * modules/round-tests (Files): Likewise. * modules/roundf-tests (Files): Likewise. * modules/roundl-tests (Files): Likewise. * modules/select-tests (Files): Likewise. * modules/setenv-tests (Files): Likewise. * modules/sigaction-tests (Files): Likewise. * modules/sleep-tests (Files): Likewise. * modules/snprintf-posix-tests (Files): Likewise. * modules/snprintf-tests (Files): Likewise. * modules/sprintf-posix-tests (Files): Likewise. * modules/stat-tests (Files): Likewise. * modules/strcasestr-tests (Files): Likewise. * modules/strchrnul-tests (Files): Likewise. * modules/strerror-tests (Files): Likewise. * modules/strsignal-tests (Files): Likewise. * modules/strstr-tests (Files): Likewise. * modules/strtod-tests (Files): Likewise. * modules/strverscmp-tests (Files): Likewise. * modules/symlink-tests (Files): Likewise. * modules/symlinkat-tests (Files): Likewise. * modules/times-tests (Files): Likewise. * modules/trunc-tests (Files): Likewise. * modules/truncf-tests (Files): Likewise. * modules/truncl-tests (Files): Likewise. * modules/tsearch-tests (Files): Likewise. * modules/uname-tests (Files): Likewise. * modules/unlink-tests (Files): Likewise. * modules/unsetenv-tests (Files): Likewise. * modules/usleep-tests (Files): Likewise. * modules/utimensat-tests (Files): Likewise. * modules/vasprintf-tests (Files): Likewise. * modules/vdprintf-posix-tests (Files): Likewise. * modules/vfprintf-posix-tests (Files): Likewise. * modules/vprintf-posix-tests (Files): Likewise. * modules/vsnprintf-posix-tests (Files): Likewise. * modules/vsnprintf-tests (Files): Likewise. * modules/vsprintf-posix-tests (Files): Likewise. * modules/wcrtomb-tests (Files): Likewise. * modules/wcsnrtombs-tests (Files): Likewise. * modules/wcsrtombs-tests (Files): Likewise. * modules/wcwidth-tests (Files): Likewise. * tests/test-isfinite.c (isfinite): Ensure macro declaration. * tests/test-isinf.c (isinf): Likewise. * tests/test-isnan.c (isnan): Likewise. * tests/test-signbit.c (signbit): Likewise. * tests/test-select.c (FD_CLR, FD_ISSET, FD_SET, FD_ZERO): Ensure declaration, either as macro or with correct signature. (select): Ensure function under test is declared with correct signature in correct header. * tests/test-atexit.c (atexit): Likewise. * tests/test-btowc.c (btowc): Likewise. * tests/test-canonicalize-lgpl.c (realpath) (canonicalize_file_name): Likewise. * tests/test-ceilf1.c (ceilf): Likewise. * tests/test-ceill.c (ceill): Likewise. * tests/test-chown.c (chown): Likewise. * tests/test-dprintf-posix.c (dprintf): Likewise. * tests/test-dup2.c (dup2): Likewise. * tests/test-dup3.c (dup3): Likewise. * tests/test-duplocale.c (duplocale): Likewise. * tests/test-fchdir.c (fchdir): Likewise. * tests/test-fchownat.c (fchownat): Likewise. * tests/test-fcntl.c (fcntl): Likewise. * tests/test-fdopendir.c (fdopendir): Likewise. * tests/test-fflush.c (fflush): Likewise. * tests/test-flock.c (flock): Likewise. * tests/test-floorf1.c (floorf): Likewise. * tests/test-floorl.c (floorl): Likewise. * tests/test-fnmatch.c (fnmatch): Likewise. * tests/test-fopen.c (fopen): Likewise. * tests/test-fprintf-posix.c (fprintf): Likewise. * tests/test-freopen.c (freopen): Likewise. * tests/test-frexp.c (frexp): Likewise. * tests/test-frexpl.c (frexpl): Likewise. * tests/test-fseek.c (fseek): Likewise. * tests/test-fseeko.c (fseeko): Likewise. * tests/test-fstatat.c (fstatat): Likewise. * tests/test-fsync.c (fsync): Likewise. * tests/test-ftell.c (ftell): Likewise. * tests/test-ftello.c (ftello): Likewise. * tests/test-futimens.c (futimens): Likewise. * tests/test-getaddrinfo.c (getaddrinfo, freeaddrinfo) (gai_strerror): Likewise. * tests/test-getcwd.c (getcwd): Likewise. * tests/test-getdelim.c (getdelim): Likewise. * tests/test-getdtablesize.c (getdtablesize): Likewise. * tests/test-getgroups.c (getgroups): Likewise. * tests/test-gethostname.c (gethostname): Likewise. * tests/test-getline.c (getline): Likewise. * tests/test-getopt.c (getopt, getopt_long, getopt_long_only): Likewise. * tests/test-gettimeofday.c (gettimeofday): Likewise. * tests/test-glob.c (glob, globfree): Likewise. * tests/test-iconv.c (iconv, iconv_open, iconv_close): Likewise. * tests/test-inet_ntop.c (inet_ntop): Likewise. * tests/test-inet_pton.c (inet_pton): Likewise. * tests/test-isblank.c (isblank): Likewise. * tests/test-lchown.c (lchown): Likewise. * tests/test-ldexpl.c (ldexpl): Likewise. * tests/test-link.c (link): Likewise. * tests/test-linkat.c (linkat): Likewise. * tests/test-lseek.c (lseek): Likewise. * tests/test-lstat.c (lstat): Likewise. * tests/test-mbrtowc.c (mbrtowc): Likewise. * tests/test-mbsinit.c (mbsinit): Likewise. * tests/test-mbsnrtowcs.c (mbsnrtowcs): Likewise. * tests/test-mbsrtowcs.c (mbsrtowcs): Likewise. * tests/test-memchr.c (memchr): Likewise. * tests/test-memcmp.c (memcmp): Likewise. * tests/test-memmem.c (memmem): Likewise. * tests/test-memrchr.c (memrchr): Likewise. * tests/test-mkdir.c (mkdir): Likewise. * tests/test-mkdirat.c (mkdirat): Likewise. * tests/test-mkfifo.c (mkfifo): Likewise. * tests/test-mkfifoat.c (mkfifoat, mknodat): Likewise. * tests/test-mknod.c (mknod): Likewise. * tests/test-nanosleep.c (nanosleep): Likewise. * tests/test-nl_langinfo.c (nl_langinfo): Likewise. * tests/test-obstack-printf.c (obstack_printf, obstack_vprintf): Likewise. * tests/test-open.c (open): Likewise. * tests/test-openat.c (openat): Likewise. * tests/test-perror.c (perror): Likewise. * tests/test-pipe2.c (pipe2): Likewise. * tests/test-poll.c (poll): Likewise. * tests/test-popen.c (popen, pclose): Likewise. * tests/test-posix_spawn1.c (posix_spawnp, posix_spawnattr_init) (posix_spawnattr_destroy, posix_spawnattr_setsigmask) (posix_spawnattr_setflags, posix_spawn_file_actions_init) (posix_spawn_file_actions_destroy) (posix_spawn_file_actions_addclose) (posix_spawn_file_actions_addopen) (posix_spawn_file_actions_adddup2): Likewise. * tests/test-posix_spawn3.c (posix_spawn): Likewise. * tests/test-pread.c (pread): Likewise. * tests/test-printf-posix.c (printf): Likewise. * tests/test-pty.c (openpty, forkpty): Likewise. * tests/test-random_r.c (srandom_r, initstate_r, setstate_r) (random_r): Likewise. * tests/test-rawmemchr.c (rawmemchr): Likewise. * tests/test-readlink.c (readlink): Likewise. * tests/test-remove.c (remove): Likewise. * tests/test-rename.c (rename): Likewise. * tests/test-renameat.c (renameat): Likewise. * tests/test-rmdir.c (rmdir): Likewise. * tests/test-round1.c (round): Likewise. * tests/test-roundf1.c (roundf): Likewise. * tests/test-roundl.c (roundl): Likewise. * tests/test-setenv.c (setenv): Likewise. * tests/test-sigaction.c (sigaction): Likewise. * tests/test-sleep.c (sleep): Likewise. * tests/test-snprintf.c (snprintf): Likewise. * tests/test-sprintf-posix.c (sprintf): Likewise. * tests/test-stat.c (stat): Likewise. * tests/test-stpncpy.c (stpncpy): Likewise. * tests/test-strcasestr.c (strcasestr): Likewise. * tests/test-strchrnul.c (strchrnul): Likewise. * tests/test-strerror.c (strerror): Likewise. * tests/test-strsignal.c (strsignal): Likewise. * tests/test-strstr.c (strstr): Likewise. * tests/test-strtod.c (strtod): Likewise. * tests/test-strverscmp.c (strverscmp): Likewise. * tests/test-symlink.c (symlink): Likewise. * tests/test-symlinkat.c (symlinkat, readlinkat): Likewise. * tests/test-times.c (times): Likewise. * tests/test-trunc1.c (trunc): Likewise. * tests/test-truncf1.c (truncf): Likewise. * tests/test-truncl.c (truncl): Likewise. * tests/test-tsearch.c (tdelete, tfind, tsearch, twalk): Likewise. * tests/test-uname.c (uname): Likewise. * tests/test-unlink.c (unlink): Likewise. * tests/test-unlinkat.c (unlinkat): Likewise. * tests/test-unsetenv.c (unsetenv): Likewise. * tests/test-usleep.c (usleep): Likewise. * tests/test-utimensat.c (utimensat): Likewise. * tests/test-vasprintf.c (asprintf, vasprintf): Likewise. * tests/test-vdprintf-posix.c (vdprintf): Likewise. * tests/test-vfprintf-posix.c (vfprintf): Likewise. * tests/test-vprintf-posix.c (vprintf): Likewise. * tests/test-vsnprintf.c (vsnprintf): Likewise. * tests/test-vsprintf-posix.c (vsprintf): Likewise. * tests/test-wcrtomb.c (wcrtomb): Likewise. * tests/test-wcsnrtombs.c (wcsnrtombs): Likewise. * tests/test-wcsrtombs.c (wcsrtombs): Likewise. * tests/test-wcwidth.c (wcwidth): Likewise. build: pull in conditional headers during GNULIB_POSIXCHECK * lib/stdio.in.h (includes): Using GNULIB_POSIXCHECK also requires definitions from any conditionally-included headers. * lib/stdlib.in.h (includes): Likewise. * lib/unistd.in.h (includes): Likewise. 2009-12-24 Bruno Haible * tests/test-argv-iter.c: Include header file being tested immediately after config.h. * tests/test-base64.c: Likewise. * tests/test-flock.c: Likewise. * tests/test-fsync.c: Likewise. * tests/test-getdate.c: Likewise. * tests/test-getndelim2.c: Likewise. * tests/test-isfinite.c: Likewise. * tests/test-isinf.c: Likewise. * tests/test-strerror.c: Likewise. * tests/test-strsignal.c: Likewise. 2009-12-23 Eric Blake unistd: work around cygwin bug * lib/unistd.in.h (includes): Pick up headers needed for cygwin. * doc/posix-functions/unlinkat.texi (unlinkat): Document the bug. * doc/posix-functions/symlinkat.texi (symlinkat): Likewise. 2009-12-23 Bruno Haible localename: More tests. * tests/test-localename.c (SIZEOF): New macro. (categories): New variable. (test_locale_name, test_locale_name_posix, test_locale_name_environ, test_locale_name_default): Add test w.r.t. thread locale. (test_locale_name_thread): New function. (main): Invoke it. localename: Make aware of thread locale. * lib/localename.h (gl_locale_name_thread): New declaration. (gl_locale_name, gl_locale_name_posix, gl_locale_name_default): Clarify behaviour with respect to thread locale. * lib/localename.c: Include , , , , glthread/lock.h. (SIZE_BITS): New macro. (string_hash): New function. (struct hash_node): New type. (HASH_TABLE_SIZE): New macro. (struniq_hash_table, struniq_lock): New variables. (struniq): New function. (gl_locale_name_thread): New function. (gl_locale_name): Invoke it. * m4/localename.m4 (gl_LOCALENAME): Test for uselocale function. * modules/localename (Depends-on): Add lock. Reported by Mike Gran . 2009-12-23 Eric Blake va-args: new module * modules/va-args: New file. * m4/va-args.m4 (gl_VA_ARGS): Likewise. * MODULES.html.sh (Core language properties): Mention it. gnulib-common: prefer _GL_UNUSED over _UNUSED_PARAMETER_ * m4/gnulib-common.m4 (gl_COMMON): Create a more-appropriately named alias for __attribute__((__unused__)). * lib/chown.c: Update client. * lib/fchmodat.c: Likewise. * lib/fts.c: Likewise. * lib/getdate.y: Likewise. * lib/getgroups.c: Likewise. * lib/getopt.c: Likewise. * lib/getugroups.c: Likewise. * lib/mkdir.c: Likewise. * lib/mkfifo.c: Likewise. * lib/mkfifoat.c: Likewise. * lib/mknod.c: Likewise. * lib/mknodat.c: Likewise. * lib/readlink.c: Likewise. * lib/se-context.in.h: Likewise. * lib/se-selinux.in.h: Likewise. * lib/sockets.c: Likewise. * lib/symlink.c: Likewise. * lib/symlinkat.c: Likewise. * lib/unicodeio.c: Likewise. * lib/unistr.h: Likewise. * tests/test-areadlink.c: Likewise. * tests/test-areadlinkat.c: Likewise. * tests/test-filenamecat.c: Likewise. * tests/test-fseeko.c: Likewise. * tests/test-ftello.c: Likewise. * tests/test-getdate.c: Likewise. * tests/test-getgroups.c: Likewise. * tests/test-gethostname.c: Likewise. * tests/test-quotearg.c: Likewise. * tests/test-version-etc.c: Likewise. * tests/test-xalloc-die.c: Likewise. * tests/test-xfprintf-posix.c: Likewise. * tests/test-xprintf-posix.c: Likewise. * tests/test-xvasprintf.c: Likewise. tests: avoid compiler warnings * tests/test-fcntl.c (main): Delete unused parameters. * tests/test-freopen-safer.c (main): Likewise. * tests/test-xalloc-die.c (main): Mark unused parameters. * tests/test-fseeko.c (main): Likewise. * tests/test-ftello.c (main): Likewise. * tests/test-nanosleep.c (main): Avoid declaration warning. * tests/test-sleep.c (main): Likewise. * tests/test-unsetenv.c (main): Silence warning about string literal. * m4/setenv.m4 (gl_FUNC_UNSETENV): Likewise. 2009-12-23 Bruno Haible * tests/test-localename.c (test_locale_name): New function, extracted from main. Also test mixed situations. (test_locale_name_posix, test_locale_name_environ, test_locale_name_default): New functions. (main): Invoke them all. * modules/localename-tests (configure.ac): Test for newlocale. 2009-12-23 Bruno Haible unistd: Ensure getcwd gets declared before being overridden. * lib/unistd.in.h: Conditionally include . 2009-12-22 Bruno Haible wchar: Diagnose broken combination of glibc and gcc versions and flags. * m4/wchar.m4 (gl_WCHAR_H_INLINE_OK): New macro. (gl_WCHAR_H): Invoke it. * m4/btowc.m4 (gl_FUNC_BTOWC): Require it. * doc/posix-headers/wchar.texi: Mention the interoperability problem. Reported by Karl Berry . 2009-12-22 Eric Blake math, unistd: avoid redundant includes * lib/math.in.h (isnan): No need to re-include . * lib/unistd.in.h (getcwd): Likewise, for . getsubopt: work around cygwin bug * lib/stdlib.in.h (includes): Move unistd inclusion sooner, to avoid conflicting with system getsubopt. * doc/posix-functions/getsubopt.texi (getsubopt): Document the bug. getopt: synchronize from glibc * lib/getopt.c (_getopt_initialize, _getopt_internal_r): Swap parameter order. Adjust all callers. (_getopt_internal_r, main): Adjust quoting in error messages. Drop considerations for outdated POSIX 1003.2 error message. * lib/getopt1.c (_getopt_long_r, _getopt_long_only_r): Adjust callers. * lib/getopt_int.h (_getopt_internal_r): Adjust prototype. test-getopt: test stderr behavior * modules/getopt-posix-tests (Depends-on): Add dup2. * tests/test-getopt.c (ASSERT): Avoid stderr. (main): Move stderr to a temporary file. * tests/test-getopt.h (getopt_loop): No longer manipulate opterr. Instead, add parameter to inform caller if output occurred. (test_getopt): Adjust all existing tests to expect silence, and add new tests of leading ":". * doc/glibc-functions/getopt_long.texi (getopt_long): Document glibc shortcomings with leading "-:" or "+:" in optstring. * doc/glibc-functions/getopt_long_only.texi (getopt_long_only): Likewise. * doc/posix-functions/getopt.texi (getopt): Likewise. test-getopt: enhance test * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Require that getopt_long supports optind=0. * tests/test-getopt.c (OPTIND_MIN): Move... * tests/test-getopt.h (OPTIND_MIN): ...here. * tests/test-getopt_long.h (test_getopt_long): Add more coverage. Require that optind=0 works, since modern BSD supports it in addition to optreset, and since coreutils expects it. (test_getopt_long_only): New test. * doc/glibc-functions/getopt_long.texi (getopt_long): Document glibc shortcomings with 'W;', and enforcement of optind=0. * doc/glibc-functions/getopt_long_only.texi (getopt_long_only): Likewise. 2009-12-21 Bruno Haible localename: Improvements for MacOS X and Cygwin. * lib/localename.h (gl_locale_name_environ): New declaration. * lib/localename.c (gl_locale_name_environ): New function, extracted from gl_locale_name_posix. Ignore dummy LANG values on MacOS X and Cygwin. (gl_locale_name_posix): Invoke it. (gl_locale_name_default): Add comments. Use Windows native API also on Cygwin. 2009-12-21 Bruno Haible Update list of Win32 locale ids. * lib/localename.c (LANG_ROMANSH): Renamed from LANG_RHAETO_ROMANCE. (LANG_SAMI): Renamed from LANG_SAAMI. (LANG_BASHKIR, LANG_LUXEMBOURGISH, LANG_GREENLANDIC, LANG_MAPUDUNGUN, LANG_MOHAWK, LANG_BRETON, LANG_OCCITAN, LANG_CORSICAN, LANG_ALSATIAN, LANG_YAKUT, LANG_KICHE, LANG_KINYARWANDA, LANG_WOLOF, LANG_DARI, LANG_SCOTTISH_GAELIC): New macros. (SUBLANG_AFRIKAANS_SOUTH_AFRICA, SUBLANG_ALBANIAN_ALBANIA, SUBLANG_ALSATIAN_FRANCE, SUBLANG_AMHARIC_ETHIOPIA, SUBLANG_ARMENIAN_ARMENIA, SUBLANG_ASSAMESE_INDIA, SUBLANG_BASHKIR_RUSSIA, SUBLANG_BASQUE_BASQUE, SUBLANG_BELARUSIAN_BELARUS, SUBLANG_BRETON_FRANCE, SUBLANG_BULGARIAN_BULGARIA, SUBLANG_CAMBODIAN_CAMBODIA, SUBLANG_CATALAN_SPAIN, SUBLANG_CORSICAN_FRANCE, SUBLANG_CZECH_CZECH_REPUBLIC, SUBLANG_DANISH_DENMARK, SUBLANG_DARI_AFGHANISTAN, SUBLANG_DIVEHI_MALDIVES, SUBLANG_DUTCH_SURINAM, SUBLANG_ESTONIAN_ESTONIA, SUBLANG_FAEROESE_FAROE_ISLANDS, SUBLANG_FARSI_IRAN, SUBLANG_FINNISH_FINLAND, SUBLANG_FRISIAN_NETHERLANDS, SUBLANG_GALICIAN_SPAIN, SUBLANG_GEORGIAN_GEORGIA, SUBLANG_GREEK_GREECE, SUBLANG_GREENLANDIC_GREENLAND, SUBLANG_GUJARATI_INDIA, SUBLANG_HAUSA_NIGERIA_LATIN, SUBLANG_HEBREW_ISRAEL, SUBLANG_HINDI_INDIA, SUBLANG_HUNGARIAN_HUNGARY, SUBLANG_ICELANDIC_ICELAND, SUBLANG_IGBO_NIGERIA, SUBLANG_INDONESIAN_INDONESIA, SUBLANG_INUKTITUT_CANADA, SUBLANG_INUKTITUT_CANADA_LATIN, SUBLANG_IRISH_IRELAND, SUBLANG_JAPANESE_JAPAN, SUBLANG_KANNADA_INDIA, SUBLANG_KAZAK_KAZAKHSTAN, SUBLANG_KICHE_GUATEMALA, SUBLANG_KINYARWANDA_RWANDA, SUBLANG_KONKANI_INDIA, SUBLANG_KYRGYZ_KYRGYZSTAN, SUBLANG_LAO_LAOS, SUBLANG_LATVIAN_LATVIA, SUBLANG_LITHUANIAN_LITHUANIA, SUBLANG_LOWER_SORBIAN_GERMANY, SUBLANG_LUXEMBOURGISH_LUXEMBOURG, SUBLANG_MACEDONIAN_MACEDONIA, SUBLANG_MALAYALAM_INDIA, SUBLANG_MALTESE_MALTA, SUBLANG_MAORI_NEW_ZEALAND, SUBLANG_MAPUDUNGUN_CHILE, SUBLANG_MARATHI_INDIA, SUBLANG_MOHAWK_CANADA, SUBLANG_NEPALI_NEPAL, SUBLANG_OCCITAN_FRANCE, SUBLANG_ORIYA_INDIA, SUBLANG_PASHTO_AFGHANISTAN, SUBLANG_POLISH_POLAND, SUBLANG_ROMANSH_SWITZERLAND, SUBLANG_SAMI_NORTHERN_NORWAY, SUBLANG_SAMI_NORTHERN_SWEDEN, SUBLANG_SAMI_NORTHERN_FINLAND, SUBLANG_SAMI_LULE_NORWAY, SUBLANG_SAMI_LULE_SWEDEN, SUBLANG_SAMI_SOUTHERN_NORWAY, SUBLANG_SAMI_SOUTHERN_SWEDEN, SUBLANG_SAMI_SKOLT_FINLAND, SUBLANG_SAMI_INARI_FINLAND, SUBLANG_SANSKRIT_INDIA, SUBLANG_SINHALESE_SRI_LANKA, SUBLANG_SLOVAK_SLOVAKIA, SUBLANG_SLOVENIAN_SLOVENIA, SUBLANG_SOTHO_SOUTH_AFRICA, SUBLANG_SWAHILI_KENYA, SUBLANG_SWEDISH_SWEDEN, SUBLANG_SYRIAC_SYRIA, SUBLANG_TAGALOG_PHILIPPINES, SUBLANG_TAJIK_TAJIKISTAN, SUBLANG_TAMIL_INDIA, SUBLANG_TATAR_RUSSIA, SUBLANG_TELUGU_INDIA, SUBLANG_THAI_THAILAND, SUBLANG_TSWANA_SOUTH_AFRICA, SUBLANG_TURKISH_TURKEY, SUBLANG_TURKMEN_TURKMENISTAN, SUBLANG_UKRAINIAN_UKRAINE, SUBLANG_UPPER_SORBIAN_GERMANY, SUBLANG_VIETNAMESE_VIETNAM, SUBLANG_WELSH_UNITED_KINGDOM, SUBLANG_WOLOF_SENEGAL, SUBLANG_XHOSA_SOUTH_AFRICA, SUBLANG_YAKUT_RUSSIA, SUBLANG_YI_PRC, SUBLANG_YORUBA_NIGERIA, SUBLANG_ZULU_SOUTH_AFRICA): New macros. (gl_locale_name_from_win32_LANGID): Handle also the territory neutral locale ids. Add support for Alsatian, Bashkir, Breton, Corsican, Dari, Greenlandic, K'iche', Kinyarwanda, Luxembourgish, Mapudungun, Mohawk, Occitan, Scottish Gaelic, Wolof, Yakut. Change language code for Yi. Add more languages and countries for Sami, Sorbian. Add more countries for Serbian, Dutch. Add more scripts for Inuktitut. Be more precise for Pashto. Change country for Syriac, Tswana. 2009-12-21 Eric Blake test-utimens: avoid spurious failure * tests/test-chown.h (nap): Factor... * tests/nap.h: ...into new file. * tests/test-lchown.h (nap): Avoid duplication. * tests/test-utimens-common.h (nap): Use shared implementation, necessary on file systems with 1-second resolution. * modules/chown-tests (Files): Include new file. * modules/fdutimensat-tests (Files): Likewise. * modules/futimens-tests (Files): Likewise. * modules/lchown-tests (Files): Likewise. * modules/openat-tests (Files): Likewise. * modules/utimens-tests (Files): Likewise. * modules/utimensat-tests (Files): Likewise. 2009-12-19 Eric Blake futimens, utimensat: work around Linux bug * m4/futimens.m4 (gl_FUNC_FUTIMENS): Detect ctime bug. * m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Likewise. * lib/utimensat.c (rpl_utimensat): Work around it. * lib/futimens.c (rpl_futimens): Adjust comment. utimens: work around Linux ctime bug * lib/utimens.c (detect_ctime_bug): New helper function. (update_timespec): Differentiate between workaround needed for this bug vs. what is needed for systems that lack utimensat. (fdutimens, lutimens): Work around bug. utimens: check for ctime update * tests/test-utimens-common.h (check_ctime): Define. * tests/test-utimens.h (test_utimens): Expose the Linux bug. * tests/test-futimens.h (test_futimens): Likewise. * tests/test-lutimens.h (test_lutimens): Likewise. * doc/posix-functions/futimens.texi (futimens): Document the bug. * doc/posix-functions/utimensat.texi (utimensat): Likewise. 2009-12-19 Bruno Haible dprintf-posix: Check against memory leak fixed on 2009-12-15. * tests/test-dprintf-posix2.sh: New file. * tests/test-dprintf-posix2.c: New file. * modules/dprintf-posix-tests (Files): Add them. (configure.ac): Check for getrlimit and setrlimit. (Makefile.am): Augment TESTS and CHECK_PROGRAMS. 2009-12-19 Bruno Haible fprintf-posix: Check against memory leak fixed on 2009-12-15. * tests/test-fprintf-posix3.sh: New file. * tests/test-fprintf-posix3.c: New file. * modules/fprintf-posix-tests (Files): Add them. (Makefile.am): Augment TESTS and CHECK_PROGRAMS. 2009-12-19 Eric Blake dirfd: fix prototype * lib/dirent.in.h (dirfd): Argument is not const, per POSIX. * lib/dirfd.c (dirfd): Likewise. canonicalize: reduce memory usage * lib/canonicalize.c (canonicalize_filename_mode): Trim the allocation to size. Reported by Solar Designer . 2009-12-19 Bruno Haible New module attribute 'Applicability'. * modules/TEMPLATE-EXTENDED: New field 'Applicability'. * gnulib-tool: New option --extract-applicability. (func_usage): Document it. (sed_extract_prog): Recognize it. (func_get_applicability): New function. (func_import): Generalize handling of 'link-warning' module. * modules/link-warning (Applicability): New section. * modules/arg-nonnull (Applicability): New section. Repoted by Simon Josefsson . 2009-12-19 Bruno Haible fflush: tweak * lib/fflush.c (update_fpos_cache): Don't use fpos_t on Cygwin. * lib/fseeko.c (rpl_fseeko): Likewise. 2009-12-16 José E. Marchesi (tiny change) * lib/gl_list.h: Fix typo in comment. 2009-12-16 Eric Blake fcntl: use to simplify other modules * modules/cloexec (Depends-on): Add fcntl. * modules/fchdir (Depends-on): Likewise. * modules/fd-safer-flag (Depends-on): Likewise. * modules/unistd-safer (Depends-on): Likewise. * modules/dup3 (configure.ac): Set module indicator. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Replace fcntl if fchdir is missing. * lib/fchdir.c (_gl_register_dup): Fix comment. * lib/cloexec.c (dup_cloexec): Simplify, by relying on fcntl. * lib/dup-safer.c (dup_safer): Likewise. * lib/dup-safer-flag.c (dup_safer_flag): Likewise. * lib/dup3.c (dup3): Likewise. * tests/test-fchdir.c (main): Enhance test. Fixes a dup_cloexec bug reported by Ondřej Vašík. fcntl: port portions of fcntl to mingw * m4/fcntl.m4 (gl_FUNC_FCNTL): Also build fcntl.c on mingw. * lib/fcntl.c (fcntl) : Provide replacement for mingw. * modules/fcntl (Description): Update. (Depends-on): Add dup2. * m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Add witness. * modules/fcntl-h (Makefile.am): Substitute it. * lib/fcntl.in.h (fcntl): Update declaration. (F_DUPFD, F_GETFD): New macros, when needed. * doc/posix-headers/fcntl.texi (fcntl.h): Update documentation. * doc/posix-functions/fcntl.texi (fcntl): Likewise. * tests/test-fcntl.c (check_flags, main): Enhance test for items we now guarantee. fcntl: work around cygwin bug in F_DUPFD * m4/fcntl.m4 (gl_REPLACE_FCNTL): New macro. (gl_FUNC_FCNTL): Use it. Test for F_DUPFD bug. * lib/fcntl.c (rpl_fcntl) : Work around it. : Reduce calls to _gl_register_dup. * doc/posix-functions/fcntl.texi (fcntl): Document it. fcntl: support F_DUPFD_CLOEXEC on systems with fcntl * modules/fcntl (Files): List new files. (configure.ac): Run a test. * m4/fcntl.m4 (gl_FUNC_FCNTL): New file. * lib/fcntl.c (rpl_fcntl): Likewise. * m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Add witness defaults. (gl_FCNTL_H): Always replace fcntl.h. * modules/fcntl-h (Makefile.am): Substitute witnesses. * lib/fcntl.in.h (fcntl): Declare replacement. (F_DUPFD_CLOEXEC, GNULIB_defined_F_DUPFD_CLOEXEC): New macro when needed, plus a witness. * doc/posix-functions/fcntl.texi (fcntl): Document this. * doc/posix-headers/fcntl.texi (fcntl.h): Likewise. * tests/test-fcntl.c: New file. * modules/fcntl-tests: Likewise. binary-io: avoid potential compilation warning * lib/binary-io.h [__DJGPP__]: Avoid null preprocessor directives. fflush: avoid compilation error on NetBSD * lib/fflush.c (update_fpos_cache): Use a union to safely convert between off_t and fpos_t, since the latter is sometimes a struct. * lib/fseeko.c (rpl_fseeko): Likewise. Reported by Alexander Nasonov . 2009-12-15 Eric Blake fcntl-h, stdio, sys_ioctl: fix declarations * lib/stdio.in.h (dprintf): Use of link warning on a variadic function must not take arguments. * lib/sys_ioctl.in.h (ioctl): Likewise. * lib/fcntl.in.h (openat): Likewise. Declare extern. (open): Add a link warning. 2009-12-15 Jim Meyering areadlink, areadlink-with-size: relax license to LGPLv2+ * modules/areadlink (License): Relax to LGPLv2+. * modules/areadlink-with-size (License): Likewise. 2009-12-15 Joel E. Denny Bruno Haible *printf: Fix memory leak. * lib/fprintf.c (fprintf): Free memory allocated by vasnprintf. * lib/vfprintf.c (vfprintf): Likewise. * lib/dprintf.c (dprintf): Likewise. * lib/vdprintf.c (vdprintf): Likewise. 2009-12-14 Eric Blake accept4: adjust module dependencies * modules/accept4 (Depends-on): Use fcntl-h, not fcntl. utimens: one more try at avoiding compiler warning * lib/utimens.c (lutimens): Lower scope of result. 2009-12-13 Bruno Haible Move the malloc checking from module 'list' to new module 'xlist'. * modules/xlist: New file. * lib/gl_xlist.h: New file. * lib/gl_xlist.c: New file. * lib/gl_list.h (gl_list_create_empty, gl_list_create, gl_list_node_set_value, gl_list_set_at, gl_list_add_first, gl_list_add_last, gl_list_add_before, gl_list_add_after, gl_list_nx_add_at, gl_sortedlist_add): Disable declarations. (gl_list_nx_create_empty, gl_list_nx_create, gl_list_node_nx_set_value, gl_list_nx_set_at, gl_list_nx_add_first, gl_list_nx_add_last, gl_list_nx_add_before, gl_list_nx_add_after, gl_list_nx_add_at, gl_sortedlist_nx_add): New declarations. (struct gl_list_implementation): Rename and change methods accordingly. (gl_list_nx_create_empty): Renamed from gl_list_create_empty. (gl_list_nx_create): Renamed from gl_list_create. (gl_list_node_nx_set_value): Renamed from gl_list_node_set_value. (gl_list_nx_set_at): Renamed from gl_list_set_at. (gl_list_nx_add_first): Renamed from gl_list_add_first. (gl_list_nx_add_last): Renamed from gl_list_add_last. (gl_list_nx_add_before): Renamed from gl_list_add_before. (gl_list_nx_add_after): Renamed from gl_list_add_after. (gl_list_nx_add_at): Renamed from gl_list_add_at. (gl_sortedlist_nx_add): Renamed from gl_sortedlist_add. * lib/gl_list.c (gl_list_nx_create_empty): Renamed from gl_list_create_empty. (gl_list_nx_create): Renamed from gl_list_create. (gl_list_node_nx_set_value): Renamed from gl_list_node_set_value. (gl_list_nx_set_at): Renamed from gl_list_set_at. (gl_list_nx_add_first): Renamed from gl_list_add_first. (gl_list_nx_add_last): Renamed from gl_list_add_last. (gl_list_nx_add_before): Renamed from gl_list_add_before. (gl_list_nx_add_after): Renamed from gl_list_add_after. (gl_list_nx_add_at): Renamed from gl_list_add_at. (gl_sortedlist_nx_add): Renamed from gl_sortedlist_add. * lib/gl_array_list.c: Don't include xalloc.h. (gl_array_nx_create_empty): Renamed from gl_array_create_empty. Return NULL upon out-of-memory. (gl_array_nx_create): Renamed from gl_array_create. Return NULL upon out-of-memory. (gl_array_node_nx_set_value): Renamed from gl_array_node_set_value. Change return type to 'int'. (gl_array_nx_set_at): Renamed from gl_array_set_at. (grow): Change return type to 'int'. Return -1 upon out-of-memory. (gl_array_nx_add_first): Renamed from gl_array_add_first. Return NULL upon out-of-memory. (gl_array_nx_add_last): Renamed from gl_array_add_last. Return NULL upon out-of-memory. (gl_array_nx_add_before): Renamed from gl_array_add_before. Return NULL upon out-of-memory. (gl_array_nx_add_after): Renamed from gl_array_add_after. Return NULL upon out-of-memory. (gl_array_nx_add_at): Renamed from gl_array_add_at. Return NULL upon out-of-memory. (gl_array_sortedlist_nx_add): Renamed from gl_array_sortedlist_add. Update. (gl_array_list_implementation): Update. * lib/gl_carray_list.c: Don't include xalloc.h. (gl_carray_nx_create_empty): Renamed from gl_carray_create_empty. Return NULL upon out-of-memory. (gl_carray_nx_create): Renamed from gl_carray_create. Return NULL upon out-of-memory. (gl_carray_node_nx_set_value): Renamed from gl_carray_node_set_value. Change return type to 'int'. (gl_carray_nx_set_at): Renamed from gl_carray_set_at. (grow): Change return type to 'int'. Return -1 upon out-of-memory. (gl_carray_nx_add_first): Renamed from gl_carray_add_first. Return NULL upon out-of-memory. (gl_carray_nx_add_last): Renamed from gl_carray_add_last. Return NULL upon out-of-memory. (gl_carray_nx_add_at): Renamed from gl_carray_add_at. Return NULL upon out-of-memory. (gl_carray_nx_add_before): Renamed from gl_carray_add_before. Update. (gl_carray_nx_add_after): Renamed from gl_carray_add_after. Update. (gl_carray_sortedlist_nx_add): Renamed from gl_carray_sortedlist_add. Update. (gl_carray_list_implementation): Update. * lib/gl_anyhash_list2.h (hash_resize): Do nothing upon out-of-memory. * lib/gl_anylinked_list2.h (gl_linked_nx_create_empty): Renamed from gl_linked_create_empty. Return NULL upon out-of-memory. (gl_linked_nx_create): Renamed from gl_linked_create. Return NULL upon out-of-memory. (gl_linked_node_nx_set_value): Renamed from gl_linked_node_set_value. Change return type to 'int'. Return -1 upon out-of-memory. (gl_linked_nx_set_at): Renamed from gl_linked_set_at. Return NULL upon out-of-memory. (gl_linked_nx_add_first): Renamed from gl_linked_add_first. Return NULL upon out-of-memory. (gl_linked_nx_add_last): Renamed from gl_linked_add_last. Return NULL upon out-of-memory. (gl_linked_nx_add_before): Renamed from gl_linked_add_before. Return NULL upon out-of-memory. (gl_linked_nx_add_after): Renamed from gl_linked_add_after. Return NULL upon out-of-memory. (gl_linked_nx_add_at): Renamed from gl_linked_add_at. Return NULL upon out-of-memory. (gl_linked_sortedlist_nx_add): Renamed from gl_linked_sortedlist_add. Update. * lib/gl_linked_list.c: Don't include xalloc.h. (gl_linked_list_implementation): Update. * lib/gl_linkedhash_list.c: Don't include xalloc.h. (add_to_bucket): Change return type to 'int'. (gl_linkedhash_list_implementation): Update. * lib/gl_anytree_list1.h (free_subtree): New function. * lib/gl_anytree_list2.h (gl_tree_nx_create_empty): Renamed from gl_tree_create_empty. Return NULL upon out-of-memory. (gl_tree_node_nx_set_value): Renamed from gl_tree_node_set_value. Change return type to 'int'. Return -1 upon out-of-memory. (gl_tree_nx_set_at): Renamed from gl_tree_set_at. Return NULL upon out-of-memory. (gl_tree_nx_add_at): Renamed from gl_tree_add_at. Update. (gl_tree_remove_node): New function, moved here from lib/gl_anyavltree_list2.h and lib/gl_anyrbtree_list2.h. (gl_tree_sortedlist_nx_add): Renamed from gl_tree_sortedlist_add. Update. * lib/gl_anyavltree_list2.h (create_subtree_with_contents): Use malloc, not xmalloc. Return NULL upon out-of-memory. (gl_tree_nx_create): Renamed from gl_tree_create. Return NULL upon out-of-memory. (gl_tree_remove_node_from_tree): New function, extracted from gl_tree_remove_node. (gl_tree_nx_add_first): Renamed from gl_tree_add_first. Return NULL upon out-of-memory. (gl_tree_nx_add_last): Renamed from gl_tree_add_last. Return NULL upon out-of-memory. (gl_tree_nx_add_before): Renamed from gl_tree_add_before. Return NULL upon out-of-memory. (gl_tree_nx_add_after): Renamed from gl_tree_add_after. Return NULL upon out-of-memory. (gl_tree_remove_node): Remove function. Moved to gl_anytree_list2.h. * lib/gl_anyrbtree_list2.h (create_subtree_with_contents): Use malloc, not xmalloc. Return NULL upon out-of-memory. (gl_tree_nx_create): Renamed from gl_tree_create. Return NULL upon out-of-memory. (gl_tree_remove_node_from_tree): New function, extracted from gl_tree_remove_node. (gl_tree_nx_add_first): Renamed from gl_tree_add_first. Return NULL upon out-of-memory. (gl_tree_nx_add_last): Renamed from gl_tree_add_last. Return NULL upon out-of-memory. (gl_tree_nx_add_before): Renamed from gl_tree_add_before. Return NULL upon out-of-memory. (gl_tree_nx_add_after): Renamed from gl_tree_add_after. Return NULL upon out-of-memory. (gl_tree_remove_node): Remove function. Moved to gl_anytree_list2.h. * lib/gl_avltree_list.c: Don't include xalloc.h. Include gl_anytree_list1.h before gl_anyavltree_list2.h. (gl_avltree_list_implementation): Update. * lib/gl_rbtree_list.c: Don't include xalloc.h. Include gl_anytree_list1.h before gl_anyavltree_list2.h. (gl_rbtree_list_implementation): Update. * lib/gl_anytreehash_list1.h (add_to_bucket, add_nodes_to_buckets): Change return type to 'int'. Return -1 upon out-of-memory. Use __builtin_expect. * lib/gl_avltreehash_list.c: Don't include xalloc.h. (gl_avltreehash_list_implementation): Update. * lib/gl_rbtreehash_list.c: Don't include xalloc.h. (gl_rbtreehash_list_implementation): Update. * modules/array-list (Depends-on): Remove xalloc. * modules/carray-list (Depends-on): Likewise. * modules/linked-list (Depends-on): Likewise. * modules/linkedhash-list (Depends-on): Likewise. * modules/avltree-list (Depends-on): Likewise. * modules/rbtree-list (Depends-on): Likewise. * modules/avltreehash-list (Depends-on): Likewise. * modules/rbtreehash-list (Depends-on): Likewise. * modules/xsublist: New file. * lib/gl_xsublist.h: New file. * lib/gl_xsublist.c: New file. * lib/gl_sublist.h (gl_sublist_create): Disable declaration. (gl_sublist_nx_create): New declaration. * lib/gl_sublist.c: Don't include xalloc.h. (gl_sublist_nx_create_empty): Renamed from gl_sublist_create_empty. (gl_sublist_nx_create_fill): Renamed from gl_sublist_create_fill. (gl_sublist_node_nx_set_value): Renamed from gl_sublist_node_set_value. Change return type to 'int'. Return -1 upon out-of-memory. (gl_sublist_nx_set_at): Renamed from gl_sublist_set_at. Return NULL upon out-of-memory. (gl_sublist_nx_add_first): Renamed from gl_sublist_add_first. Return NULL upon out-of-memory. (gl_sublist_nx_add_last): Renamed from gl_sublist_add_last. Return NULL upon out-of-memory. (gl_sublist_nx_add_before): Renamed from gl_sublist_add_before. Return NULL upon out-of-memory. (gl_sublist_nx_add_after): Renamed from gl_sublist_add_after. Return NULL upon out-of-memory. (gl_sublist_nx_add_at): Renamed from gl_sublist_add_at. Return NULL upon out-of-memory. (gl_sublist_sortedlist_nx_add): Renamed from gl_sublist_sortedlist_add. (gl_sublist_list_implementation): Update. (gl_sublist_nx_create): Renamed from gl_sublist_create. Return NULL upon out-of-memory. * modules/sublist (Depends-on): Remove xalloc. * tests/test-array_list.c: Use gl_list_nx_* functions where possible. * tests/test-carray_list.c: Likewise. * tests/test-linked_list.c: Likewise. * tests/test-linkedhash_list.c: Likewise. * tests/test-avltree_list.c: Likewise. * tests/test-rbtree_list.c: Likewise. * tests/test-avltreehash_list.c: Likewise. * tests/test-rbtreehash_list.c: Likewise. * modules/array-list-tests (Makefile.am): Don't link with @LIBINTL@. * modules/carray-list-tests (Makefile.am): Likewise. * modules/linked-list-tests (Makefile.am): Likewise. * modules/linkedhash-list-tests (Makefile.am): Likewise. * modules/avltree-list-tests (Makefile.am): Likewise. * modules/rbtree-list-tests (Makefile.am): Likewise. * modules/avltreehash-list-tests (Makefile.am): Likewise. * modules/rbtreehash-list-tests (Makefile.am): Likewise. * NEWS: Mention the changes. * lib/clean-temp.c: Include gl_xlist.h. * modules/clean-temp (Depends-on): Add xlist. * lib/git-merge-changelog.c: Include gl_xlist.h instead of gl_list.h. * modules/git-merge-changelog (Depends-on): Add xlist. Remove list. * tests/test-array_oset.c: Include gl_xlist.h. * modules/array-oset-tests (Depends-on): Add xlist. Reported by José E. Marchesi . 2009-12-13 Bruno Haible Move the malloc checking from module 'oset' to new module 'xoset'. * modules/xoset: New file. * lib/gl_xoset.h: New file. * lib/gl_xoset.c: New file. * lib/gl_oset.h (gl_oset_create_empty, gl_oset_add): Disable declarations. (gl_oset_nx_create_empty, gl_oset_nx_add): New declarations. (struct gl_oset_implementation): Rename and change methods accordingly. (gl_oset_nx_create_empty): Renamed from gl_oset_create_empty. (gl_oset_nx_add): Renamed from gl_oset_add. Change return type to 'int'. Mark as __warn_unused_result__. * lib/gl_oset.c (gl_oset_nx_create_empty): Renamed from gl_oset_create_empty. (gl_oset_nx_add): Renamed from gl_oset_add. Change return type to 'int'. * lib/gl_array_oset.c: Don't include xalloc.h. (gl_array_nx_create_empty): Renamed from gl_array_create_empty. Use malloc, not xmalloc. (grow): Change return type to 'int'. Don't call xalloc_die. (gl_array_nx_add_at): Renamed from gl_array_add_at. Change return type to 'int'. (gl_array_nx_add): Renamed from gl_array_add. Change return type to 'int'. (gl_array_oset_implementation): Update. * lib/gl_anytree_oset.h (gl_tree_nx_create_empty): Renamed from gl_tree_create_empty. (gl_tree_nx_add): Renamed from gl_tree_add. Change return type to 'int'. * lib/gl_avltree_oset.c: Don't include xalloc.h. (gl_tree_nx_add_first): Renamed from gl_tree_add_first. Use malloc, not xmalloc. (gl_tree_nx_add_before): Renamed from gl_tree_add_before. Use malloc, not xmalloc. (gl_tree_nx_add_after): Renamed from gl_tree_add_after. Use malloc, not xmalloc. (gl_avltree_oset_implementation): Update. * lib/gl_rbtree_oset.c: Don't include xalloc.h. (gl_tree_nx_add_first): Renamed from gl_tree_add_first. Use malloc, not xmalloc. (gl_tree_nx_add_before): Renamed from gl_tree_add_before. Use malloc, not xmalloc. (gl_tree_nx_add_after): Renamed from gl_tree_add_after. Use malloc, not xmalloc. (gl_rbtree_oset_implementation): Update. * modules/array-oset (Depends-on): Remove xalloc. * modules/avltree-oset (Depends-on): Likewise. * modules/rbtree-oset (Depends-on): Likewise. * tests/test-array_oset.c: Use gl_oset_nx_* functions where possible. * tests/test-avltree_oset.c: Likewise. * tests/test-rbtree_oset.c: Likewise. * lib/gl_anytreehash_list1.h (add_to_bucket): Likewise. * modules/avltree-oset-tests (Makefile.am): Don't link with @LIBINTL@. * modules/rbtree-oset-tests (Makefile.am): Likewise. * NEWS: Mention the change. 2009-12-05 Alfred M. Szmidt maint.mk: allow a project to override release-prep commands * top/maint.mk (alpha, beta, stable): Move release-preparatory commands into a new rule. (release-prep): New rule. (release-prep-hook): New overridable variable. 2009-12-13 Bruno Haible * lib/localcharset.c (locale_charset): Fix comment about use of GetACP. 2009-12-13 Jim Meyering maint.mk (null_AM_MAKEFLAGS, built_programs): remove unused definitions * top/maint.mk (null_AM_MAKEFLAGS, built_programs): Remove definitions. 2009-12-12 Bruno Haible duplocale: Tweak. * lib/duplocale.c (rpl_duplocale): Mark categories array as 'const'. 2009-12-12 Karl Berry * config/srclist.txt (strtoll.c): tab changes, no more sync. 2009-12-12 Bruno Haible * m4/po.m4: Undo incorrect untabification. 2009-12-12 Bruno Haible c-strtod, c-strtold: Use multithread-safe implementation on MacOS X. * modules/c-strtod (Depends-on): Add locale. * modules/c-strtold (Depends-on): Likewise. 2009-12-12 Bruno Haible * lib/localcharset.c (locale_charset): Add comment about use of GetACP. 2009-12-11 Eric Blake setenv: relax requirement in light of POSIX ruling * m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Test handling of "" but not NULL. * tests/test-setenv.c (main): Relax test. * tests/test-unsetenv.c (main): Likewise. * doc/posix-functions/setenv.texi (setenv): Document this. * doc/posix-functions/unsetenv.texi (unsetenv): Likewise. 2009-12-11 Bruno Haible New module 'fd-safer-flag'. * lib/dup-safer-flag.c: New file, extracted from lib/dup-safer.c. * lib/dup-safer.c (dup_safer_flag): Remove function. * lib/fd-safer-flag.c: New file, extracted from lib/fd-safer.c. * lib/fd-safer.c (fd_safer_flag): Remove function. * lib/unistd-safer.h (dup_safer_flag, fd_safer_flag): Update condition. * modules/cloexec (configure.ac): Drop indicator macro. * modules/fd-safer-flag: New file. * modules/pipe2-safer (Depends-on): Add fd-safer-flag. Remove cloexec. * modules/stdlib-safer (Depends-on): Add fd-safer-flag. * modules/unistd-safer-tests (Depends-on): Add fd-safer-flag. 2009-12-11 Bruno Haible Tests for module 'nl_langinfo'. * modules/nl_langinfo-tests: New file. * tests/test-nl_langinfo.sh: New file. * tests/test-nl_langinfo.c: New file. New module 'nl_langinfo'. * lib/nl_langinfo.c: New file. * m4/nl_langinfo.m4: New file. * modules/nl_langinfo: New file. * doc/posix-functions/nl_langinfo.texi: Mention the new module. 2009-12-11 Bruno Haible Tests for module 'langinfo'. * modules/langinfo-tests: New file. * tests/test-langinfo.c: New file. New module 'langinfo'. * lib/langinfo.in.h: New file. * m4/langinfo_h.m4: New file. * modules/langinfo: New file. * doc/posix-headers/langinfo.texi: Mention the new module. 2009-12-11 Bruno Haible * lib/config.charset: Untabify. 2009-12-11 Bruno Haible * modules/unistd-safer (configure.ac): Drop indicator macro. 2009-12-11 Bruno Haible Move pipe2-safer code to its own file. * lib/pipe2-safer.c: New file, extracted from lib/pipe-safer.c. * lib/pipe-safer.c (pipe2_safer): Remove function. * modules/pipe2-safer (Files): Add lib/pipe2-safer.c. (Makefile.am): Add it to lib_SOURCES. 2009-12-10 Bruno Haible * lib/recvfrom.c (rpl_recvfrom): Allow the from argument to be NULL. 2009-12-10 Bruno Haible Declare which arguments expect non-NULL values, for GCC and clang. * build-aux/arg-nonnull.h: New file. * modules/arg-nonnull: New file. * lib/arpa_inet.in.h (_GL_ARG_NONNULL): New placeholder. (inet_ntop, inet_pton): Use it. * lib/dirent.in.h (_GL_ARG_NONNULL): New placeholder. (closedir, dirfd, opendir, scandir, alphasort): Use it. * lib/fcntl.in.h (_GL_ARG_NONNULL): New placeholder. (open, openat): Use it. * lib/fnmatch.in.h (_GL_ARG_NONNULL): New placeholder. (fnmatch): Use it. * lib/getopt.in.h (_GL_ARG_NONNULL): New placeholder. (getopt, getopt_long, getopt_long_only): Use it. * lib/glob.in.h (_GL_ARG_NONNULL): New placeholder. * lib/glob-libc.h (glob, globfree, glob64, globfree64, glob_pattern_p): Use it. * lib/iconv.in.h (_GL_ARG_NONNULL): New placeholder. (iconv_open): Use it. * lib/inttypes.in.h (_GL_ARG_NONNULL): New placeholder. (strtoimax, strtoumax): Use it. * lib/locale.in.h (_GL_ARG_NONNULL): New placeholder. (duplocale): Use it. * lib/math.in.h (_GL_ARG_NONNULL): New placeholder. (frexp, frexpl): Use it. * lib/netdb.in.h (_GL_ARG_NONNULL): New placeholder. (getaddrinfo, freeaddrinfo, getnameinfo): Use it. * lib/search.in.h (_GL_ARG_NONNULL): New placeholder. (tsearch, tfind, tdelete, twalk): Use it. * lib/signal.in.h (_GL_ARG_NONNULL): New placeholder. (sigismember, sigemptyset, sigaddset, sigdelset, sigfillset, sigpending): Use it. * lib/spawn.in.h (_GL_ARG_NONNULL): New placeholder. (posix_spawn, posix_spawnp, posix_spawnattr_init, posix_spawnattr_destroy, posix_spawnattr_getsigdefault, posix_spawnattr_setsigdefault, posix_spawnattr_getsigmask, posix_spawnattr_setsigmask, posix_spawnattr_getflags, posix_spawnattr_setflags, posix_spawnattr_getpgroup, posix_spawnattr_setpgroup, posix_spawnattr_getschedpolicy, posix_spawnattr_setschedpolicy, posix_spawnattr_getschedparam, posix_spawnattr_setschedparam, posix_spawn_file_actions_init, posix_spawn_file_actions_destroy, posix_spawn_file_actions_addopen, posix_spawn_file_actions_addclose, posix_spawn_file_actions_adddup2): Use it. * lib/stdio.in.h (_GL_ARG_NONNULL): New placeholder. (dprintf, fclose, fopen, fprintf, fpurge, fputc, fputs, freopen, rpl_fseek, fseeko, rpl_ftell, ftello, fwrite, getdelim, getline, obstack_printf, obstack_vprintf, popen, printf, putc, puts, remove, rename, renameat, snprintf, sprintf, asprintf, vasprintf, vdprintf, vfprintf, vprintf, vsnprintf, vsprintf): Use it. * lib/stdlib.in.h (_GL_ARG_NONNULL): New placeholder. (atoll, canonicalize_file_name, getloadavg, getsubopt, mkdtemp, mkostemp, mkostemps, mkstemp, mkstemps, putenv, srandom_r, initstate_r, setstate_r, random_r, realpath, rpmatch, setenv, strtod, strtoll, strtoull, unsetenv): Use it. * lib/string.in.h (_GL_ARG_NONNULL): New placeholder. (memchr, memmem, mempcpy, memrchr, rawmemchr, stpcpy, stpncpy, strchrnul, strdup, strndup, strnlen, strpbrk, strsep, strstr, strcasestr, strtok_r, mbslen, mbsnlen, mbschr, mbsrchr, mbsstr, mbscasecmp, mbsncasecmp, mbspcasecmp, mbscasestr, mbscspn, mbspbrk, mbsspn, mbssep, mbstok_r, strverscmp): Use it. * lib/strings.in.h (_GL_ARG_NONNULL): New placeholder. (strcasecmp, strncasecmp): Use it. * lib/sys_socket.in.h (_GL_ARG_NONNULL): New placeholder. (rpl_connect, rpl_bind, rpl_getpeername, rpl_getsockname, rpl_getsockopt, rpl_recv, rpl_send, rpl_recvfrom, rpl_sendto, rpl_setsockopt): Use it. * lib/sys_stat.in.h (_GL_ARG_NONNULL): New placeholder. (fchmodat, fstat, fstatat, lchmod, rpl_lstat, mkdir, mkdirat, mkfifo, mkfifoat, mknod, mknodat, stat, utimensat): Use it. * lib/sys_time.in.h (_GL_ARG_NONNULL): New placeholder. (gettimeofday): Use it. * lib/sys_times.in.h (_GL_ARG_NONNULL): New placeholder. (times): Use it. * lib/sys_utsname.in.h (_GL_ARG_NONNULL): New placeholder. (uname): Use it. * lib/time.in.h (_GL_ARG_NONNULL): New placeholder. (nanosleep, mktime, localtime_r, gmtime_r, strptime, timegm): Use it. * lib/unistd.in.h (_GL_ARG_NONNULL): New placeholder. (chown, euidaccess, faccessat, _gl_register_fd, fchownat, getdomainname, gethostname, getlogin_r, lchown, link, linkat, pipe2, pread, readlink, readlinkat, rmdir, symlink, symlinkat, unlink, unlinkat, write): Use it. * lib/wchar.in.h (_GL_ARG_NONNULL): New placeholder. (mbsrtowcs, mbsnrtowcs, wcsrtombs, wcsnrtombs): Use it. * lib/argv-iter.h: Include arg-nonnull.h. (_ATTRIBUTE_NONNULL_): Remove macro. (argv_iter_init_argv, argv_iter_init_stream, argv_iter, argv_iter_n_args, argv_iter_free): Use _GL_ARG_NONNULL. * lib/canonicalize-lgpl.c (_GL_ARG_NONNULL): Define, to defeat gcc optimization. * lib/getaddrinfo.c (_GL_ARG_NONNULL): Likewise. * lib/getdelim.c (_GL_ARG_NONNULL): Likewise. * lib/glob.c (_GL_ARG_NONNULL): Likewise. * lib/random_r.c (_GL_ARG_NONNULL): Likewise. * lib/setenv.c (_GL_ARG_NONNULL): Likewise. * lib/strtod.c (_GL_ARG_NONNULL): Likewise. * lib/tsearch.c (_GL_ARG_NONNULL): Likewise. * lib/unsetenv.c (_GL_ARG_NONNULL): Likewise. * modules/arpa_inet (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into arpa/inet.h. * modules/dirent (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into dirent.h. * modules/fcntl-h (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into fcntl.h. * modules/fnmatch (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into fnmatch.h. * modules/getopt-posix (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into getopt.h. * modules/glob (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into glob.h. * modules/iconv_open (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into iconv.h. * modules/inttypes (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into inttypes.h. * modules/locale (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into locale.h. * modules/math (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into math.h. * modules/netdb (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into netdb.h. * modules/search (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into search.h. * modules/signal (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into signal.h. * modules/spawn (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into spawn.h. * modules/stdio (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into stdio.h. * modules/stdlib (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into stdlib.h. * modules/string (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into string.h. * modules/strings (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into strings.h. * modules/sys_socket (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into sys/socket.h. * modules/sys_stat (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into sys/stat.h. * modules/sys_time (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into sys/time.h. * modules/sys_times (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into sys/times.h. * modules/sys_utsname (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into sys/utsname.h. * modules/time (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into time.h. * modules/unistd (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into unistd.h. * modules/wchar (Depends-on): Add arg-nonnull. (Makefile.am): Insert arg-nonnull.h into wchar.h. * modules/argv-iter (Depends-on): Add arg-nonnull. * tests/test-canonicalize.c (null_ptr): New function. (main): Use it. * tests/test-canonicalize-lgpl.c (null_ptr): New function. (main): Use it. * tests/test-memmem.c (null_ptr): New function. (main): Use it. Reported by Jim Meyering. 2009-12-10 Bruno Haible Use spaces for indentation, not tabs. * lib/**/*.[hcy] except lib/reg*.[hc]: Untabify. * m4/*.m4: Untabify. * build-aux/*.h: Untabify. * tests/**/*.[hc]: Untabify. * README: New section "Indent with spaces, not TABs", based on coreutils/HACKING and comments by Pádraig Brady and Paolo Bonzini. * NEWS: Mention the change. 2009-12-10 Bruno Haible pty test: Fix link error. * modules/pty-tests (Makefile.am): Add the default LDADD value to test_pty_LDADD. 2009-12-07 Simon Josefsson * modules/pty: New file. * modules/pty-tests: New file. * m4/pty.m4: New file. * tests/test-pty.c: New file. * doc/glibc-headers/pty.texi: Modified. * doc/glibc-functions/forkpty.texi: Modified. * doc/glibc-functions/openpty.texi: Modified. 2009-12-10 Bruno Haible Avoid syntax error in C++ mode. * lib/stdio.in.h (rename): Don't use parameter name 'new'. 2009-12-10 Bruno Haible Use sed with option -e. * gnulib-tool (func_version, func_emit_copyright_notice, func_emit_initmacro_end, func_import, func_create_testdir): Pass option -e to sed. * modules/link-warning (Makefile.am): Likewise. 2009-12-10 Jim Meyering mgetgroups: do not write bytes beyond end of malloc'd buffer * lib/mgetgroups.c: Fix an off-by-one error. When we have no username, we call getgroups with a one-element-shorter buffer, but still told it the length was original, max_n_groups. 2009-12-09 Eric Blake cloexec: relax license * modules/cloexec (Maintainer): Add myself. (License): Use LGPL, not GPL. link-warning: optimize generation * modules/link-warning (Makefile.am): Reduce process usage. 2009-12-09 Bruno Haible * doc/posix-functions/unsetenv.texi: Mention Solaris 10 bug for which a workaround was added on 2009-11-17. 2009-12-09 Jim Meyering Bruno Haible link-warning: Allow extra lines at the top of build-aux/link-warning.h. * modules/link-warning (Makefile.am): Make the comment-removing sed command more robust in the face of bootstrap-prepended comment lines. 2009-12-09 Bruno Haible * lib/mgetgroups.c (mgetgroups): Don't remove duplicates if there is at most one group. 2009-12-09 Simon Josefsson Bruno Haible * build-aux/link-warning.h: Add copyright notice. * modules/link-warning (Makefile.am): Generate link-warning.h from build-aux/link-warning.h. Update LINK_WARNING_H accordingly. * NEWS: Mention change in link-warning module. * modules/arpa_inet (Makefile.am): Add dependency to arpa/inet.h. * modules/dirent (Makefile.am): Add dependency to dirent.h. * modules/fcntl-h (Makefile.am): Add dependency to fcntl.h. * modules/getopt-posix (Makefile.am): Add dependency to getopt.h. * modules/inttypes (Makefile.am): Add dependency to inttypes.h. * modules/math (Makefile.am): Add dependency to math.h. * modules/search (Makefile.am): Add dependency to search.h. * modules/signal (Makefile.am): Add dependency to signal.h. * modules/spawn (Makefile.am): Add dependency to spawn.h. * modules/stdio (Makefile.am): Add dependency to stdio.h. * modules/stdlib (Makefile.am): Add dependency to stdlib.h. * modules/string (Makefile.am): Add dependency to string.h. * modules/strings (Makefile.am): Add dependency to strings.h. * modules/sys_ioctl (Makefile.am): Add dependency to sys/ioctl.h. * modules/sys_select (Makefile.am): Add dependency to sys/select.h. * modules/sys_socket (Makefile.am): Add dependency to sys/socket.h. * modules/sys_stat (Makefile.am): Add dependency to sys/stat.h. * modules/sys_times (Makefile.am): Add dependency to sys/times.h. * modules/sys_utsname (Makefile.am): Add dependency to sys/utsname.h. * modules/sys_wait (Makefile.am): Add dependency to sys/wait.h. * modules/unistd (Makefile.am): Add dependency to unistd.h. * modules/wchar (Makefile.am): Add dependency to wchar.h. 2009-12-09 Bruno Haible fchdir: Optimize away rpl_fstat when possible. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Set REPLACE_FSTAT only together with REPLACE_OPEN_DIRECTORY. * lib/fchdir.c (rpl_fstat): Define only when REPLACE_OPEN_DIRECTORY. 2009-12-09 Bruno Haible * lib/fchdir.c: Update comment. 2009-12-09 Bruno Haible * lib/cloexec.c (set_cloexec_flag): Clarify intent of dup2 call. 2009-12-08 Eric Blake fchdir: avoid memory leak on re-registration. * lib/fchdir.c (ensure_dirs_slot): Avoid memory leak. 2009-12-08 Jim Meyering init.sh: avoid Solaris 10 /bin/sh portability problem Solaris 10's /bin/sh does not pass '.' arguments 2.. to the sourced script: $ printf 'echo "$@"\n' > f; /bin/sh -c '. ./f bar' $ printf 'echo "$@"\n' > f; /bin/bash -c '. ./f bar' bar tests/init.sh relied on that, accepting a --set-path=DIR argument, and two tests used that idiom. * tests/init.sh: Update suggested usage comments. (path_prepend_): New function, to be used in place of the --src-path=DIR option. (setup_): Move PATH-prepending code into path_prepend_. * tests/test-pread.sh: Adapt to new usage. * tests/test-xalloc-die.sh: Likewise. 2009-12-08 Simon Josefsson * doc/gnulib.texi (Glibc pty.h): Add. * doc/glibc-functions/forkpty.texi: Add. * doc/glibc-functions/openpty.texi: Add. Suggested by Bruno Haible. 2009-12-08 Eric Blake fchdir: fix logic bugs * m4/fchdir.m4 (gl_FUNC_FCHDIR): Fix logic bug. * tests/test-fchdir.c (main): Enhance test. * lib/fchdir.c (rpl_fstat): Always provide if fchdir replacement is in use. dup2: fix logic bugs * lib/dup2.c (dup2): Fix logic bugs. Use HAVE_DUP2 rather than REPLACE_DUP2 to decide when rpl_dup2 is needed. * m4/dup2.m4 (gl_REPLACE_DUP2): Only define REPLACE_DUP2 when dup2 exists. (gl_FUNC_DUP2): Drop unneeded AC_DEFINE. 2009-12-07 Eric Blake unlink: fix m4 detection * m4/unlink.m4 (gl_FUNC_UNLINK): Include correct header. unistd-safer: add unit test * modules/unistd-safer-tests: New file. * tests/test-dup-safer.c: Likewise. * tests/test-cloexec.c (setmode): Avoid compiler warning. * tests/test-dup2.c (setmode): Likewise. * lib/cloexec.c (dup_cloexec): Fix mingw compile error. cloexec: preserve text vs. binary across dup_cloexec * lib/cloexec.c (dup_cloexec) [W32]: Query and use translation mode. * modules/dup2-tests (Depends-on): Add binary-io. * modules/cloexec-tests (Depends-on): Likewise. * tests/test-dup2.c (setmode, is_mode): New helpers. (main): Add tests that translation mode is preserved. * tests/test-cloexec.c (setmode, is_mode, main): Likewise. Reported by Bruno Haible. mgetgroups: reduce duplicate listings * lib/mgetgroups.c (mgetgroups): Reduce duplicates from the resulting array. * tests/test-chown.h (test_chown): Simplify client. * tests/test-lchown.h (test_lchown): Likewise. 2009-12-06 Bruno Haible * lib/cloexec.c (dup_cloexec): Fix handling of _gl_register_dup return value. 2009-12-06 Bruno Haible * lib/progname.c: Include stdio.h, stdlib.h. (set_program_name): Reject a NULL argument. 2009-12-05 Eric Blake pipe2-safer: new module * modules/pipe2-safer: New file. * lib/unistd-safer.h (pipe2_safer): New prototype. * lib/unistd--.h (pipe2): New wrapper. * lib/pipe-safer.c (pipe2_safer): New function. * modules/pipe (Depends-on): Add pipe2-safer. * lib/pipe.c (create_pipe) [WIN32]: Let pipe2_safer do the work. stdlib-safer: preserve cloexec flag for mkostemp[s] * lib/mkstemp-safer.c (mkostemp_safer, mkostemps_safer): Use new fd_safer_flag. unistd-safer: allow preservation of cloexec status via flag * lib/unistd-safer.h (dup_safer_flag, fd_safer_flag): New prototypes. * lib/dup-safer.c (dup_safer_flag): New function. * lib/fd-safer.c (fd_safer_flag): Likewise. * modules/cloexec (configure.ac): Set witness. test-dup2: enhance test * modules/dup2-tests (Depends-on): Add cloexec. * tests/test-dup2.c (main): Enhance test. cloexec: add dup_cloexec * lib/cloexec.h (dup_cloexec): New prototype. Add copyright header and comments. * lib/cloexec.c (set_cloexec_flag): Add comments. (dup_cloexec): New function, with mingw implementation borrowed from... * lib/w32spawn.h (dup_noinherit): ...here. * modules/execute (Depends-on): Add cloexec. * modules/pipe (Depends-on): Likewise. * modules/cloexec (Depends-on): Add dup2. * modules/cloexec-tests (Files): New file. * tests/test-cloexec.c: Likewise. test-xalloc-die: fix test for mingw * modules/xalloc-die-tests (Files): Add tests/init.sh. * tests/test-xalloc-die.sh: Rewrite to use init.sh. Strip directory and .exe suffix off argv[0] output. test-fseeko: fix test for mingw * tests/test-fseeko.c (fseek): Redefine GL_LINK_WARNING, rather than undefining fseek, so test will pass on mingw. 2009-12-05 Bruno Haible * lib/progname.h (set_program_name): Clarify specification. * lib/progname.c (set_program_name): Likewise. Reported by Jim Meyering. 2009-12-05 Jim Meyering maint.mk: backslash-escape parens in default regexp * top/maint.mk (news-check-regexp): Now that we're using grep -E, backslash-escape the literal parentheses. maint.mk: news-date-check: use grep -E * top/maint.mk (today): Define a Make variable, not a... (news-date-check): ...shell variable. (news-date-regexp): Use the Make variable. Use grep's -E option. Change the failing diagnostic to mention the variable, $(news-date-regexp). 2009-12-04 Alfred M. Szmidt maintainer-makefile: allow customization of NEWS entry format * top/maint.mk (news-date-regexp): New overridable variable. (news-date-check): Use it. 2009-12-04 Eric Blake mgetgroups: add xgetgroups, and avoid ENOSYS failures * lib/mgetgroups.h (xgetgroups): New prototype. * lib/mgetgroups.c (xgetgroups): New wrapper. (mgetgroups): Handle ENOSYS. * modules/mgetgroups (Depends-on): Add realloc. Reported by Scott Harrison . mgetgroups: avoid argument promotion issues with -1 * lib/mgetgroups.c (mgetgroups): A cast is required when checking for invalid gid_t. * tests/test-chown.h (getegid, test_chown): Likewise. * tests/test-lchown.h (getegid, test_lchown): Likewise. 2009-12-03 Paolo Bonzini exclude: Fix header file problems. * lib/exclude.h: Add multiple inclusion guards and include stdbool.h. 2009-12-01 Jim Meyering fts: fts_open: do not let an empty string cause immediate failure This is required in support of GNU rm, for which the command "rm A '' B" must process and remove both A and B, in spite of the empty string argument. * lib/fts.c (fts_open): Do not let the presence of an empty string cause fts_open to fail immediately. Most fts-using tools must be able to process all arguments, in order, and can be expected to diagnose such arguments themselves. 2009-11-30 Eric Blake utimens: fix compilation error * lib/utimens.c (lutimens) [!HAVE_UTIMENSAT && HAVE_LUTIMES]: Declare variable at right scope. 2009-11-29 Jim Meyering bootstrap: handle perl-5.11's changed --version output * build-aux/bootstrap (get_version): Handle perl separately, since perl-5.11's --version output is different. 2009-11-28 Jim Meyering userspec: depend on the inttostr module, too * modules/userspec (Depends-on): Add inttostr. userspec: disallow an ID that maps to (uid_t)-1 or (gid_t)-1 * lib/userspec.c (parse_with_separator): Do not accept a user ID number of MAXUID when it evaluates to (uid_t) -1. Likewise for group ID. Reported by Matt McCutchen in userspec: reformat to use spaces, not TABs * lib/userspec.c: Expand TABs to spaces. Add Emacs' "indent-tabs-mode: nil" hint. 2009-11-27 Eric Blake getopt-gnu: flush out another BSD bug * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Test for the bug. * tests/test-getopt.c (main): Check POSIXLY_CORRECT first, to flush out BSD bug. * tests/test-getopt.h (test_getopt): End lists with NULL. * tests/test-getopt_long.h (test_getopt_long): Likewise. (test_getopt_long_posix): Enhance test. * modules/getopt-posix-tests (Depends-on): Add stdbool. * doc/glibc-functions/getopt_long.texi (getopt_long): Mention getopt-gnu. * doc/glibc-functions/getopt_long_only.texi (getopt_long_only): Likewise. 2009-11-27 Simon Josefsson * modules/idpriv-droptemp-tests (Notice): Fix text. 2009-11-27 Jim Meyering test-xalloc-die: avoid spurious failure due to libtool argv difference In a libtool-enabled project, this test would fail due to a difference in the emitted program name, e.g., -test-xalloc-die: memory exhausted +/tmp/.../tests/.libs/lt-test-xalloc-die: memory exhausted Use program to avoid that. * modules/xalloc-die-tests (Depends-on): Add progname. * tests/test-xalloc-die.c: Include progname.h". (program_name): Remove decl. (main): Call set_program_name. * tests/test-xalloc-die.sh (compare): Remove unnecessary ${EXE}. 2009-11-26 Richard Jones w32sock: leave win32 error in place. * lib/w32sock.h (set_winsock_errno): Do not call WSASetLastError. 2009-11-26 Eric Blake init.sh: suggest to use skip_ and fail_ functions in comments * tests/init.sh: Add a sentence. 2009-11-25 Bruno Haible init.sh: add documentation in comments * tests/init.sh: Add some developer and user documentation. 2009-11-26 Jim Meyering init.sh: accommodate even those who specify bogus srcdir manually * tests/init.sh: Normally, srcdir is guaranteed by automake and configure-time tests to be sanitized, so that there is no need to use "$srcdir" in Makefile rules and shell scripts. Using $srcdir (with no double quotes) suffices. However, since tests may be invoked manually, and since you may explicitly set srcdir to the name of a directory containing spaces, do quote its uses here. * tests/test-pread.sh: Likewise. Suggested by Bruno Haible. test-pread.sh: avoid diagnostics for those who ignore SIGPIPE * tests/test-pread.sh: Write no data into the pipe, because test-pread actually reads none. This avoids a diagnostic, "bash: echo: write error: Broken pipe", that arises in the unusual event something is ignoring SIGPIPE, and might be interpreted as some sort of failure. Reported by Bruno Haible. 2009-11-25 Jim Meyering test-pread: cover failure with ESPIPE and EINVAL * tests/test-pread.c (main): Test for failure, too. * tests/test-pread.sh: Invoke with stdin on a pipe. Suggested by Eric Blake. pread: improvement and fix * modules/pread (Depends-on): Depend on lseek, for portability to e.g., mingw. Suggested by Eric Blake. * lib/pread.c (__libc_read): Define. Reported by Richard W.M. Jones. unistd.in.h: correct declaration of pread * lib/unistd.in.h: Correct type of "buf" parameter: void*, not char* Reported by Richard W.M. Jones. test-pread.sh: distribute the test script * modules/pread-tests (Files): Include test-pread.sh. test-pread.sh: clean up * tests/test-pread.sh: Don't refer to $builddir. Just use equivalent ".". * modules/pread-tests (TESTS_ENVIRONMENT): Don't export builddir. That is unnecessary, since it's always ".". Suggestion from Eric Blake. test-pread.sh: make executable * tests/test-pread.sh: Set executable bit. Reported by Eric Blake. correct typo in test-pread.sh * tests/test-pread.sh: Add #! line. test pread * tests/test-pread.c: New file. * tests/test-pread.sh: Likewise. * modules/pread-tests: Likewise. pread: new module * modules/pread: New file. * lib/unistd.in.h (pread): Define/declare. * lib/pread.c (pread): New file. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Define defaults. * modules/unistd (Makefile.am): Substitute witnesses. * doc/posix-functions/pread.texi (pread): Update. * MODULES.html.sh: Add pread. 2009-11-25 Jim Meyering tests/init.sh: new file to be used via most *.sh tests * tests/init.sh: New file. 2009-11-25 Eric Blake utimens: work around older Linux failure with symlinks * lib/utimens.c (lutimensat_works_really): New variable. (fdutimens, lutimens): Use it to manage kernels that support nanosecond times on files, but not on symlinks. Reported by Ondřej Vašík. utimes: fix configure grammar * m4/utimes.m4 (gl_FUNC_UTIMES): Delete spurious word. 2009-11-25 Paolo Bonzini regex: Fix fastmap for multibyte character ranges. * lib/regcomp.c (re_compute_fastmap_iter): Add all multibyte lead characters when a multibyte character range is included. 2009-11-22 Andy Wingo version-etc: work also with AM_INIT_AUTOMAKE's no-define option * lib/version-etc.c [!defined PACKAGE]: Define to PACKAGE_TARNAME. 2009-11-24 Bruno Haible doc: Most *_l functions exist in MacOS X 10.5. * doc/posix-functions/duplocale.texi: Update platforms list. * doc/posix-functions/freelocale.texi: Likewise. * doc/posix-functions/newlocale.texi: Likewise. * doc/posix-functions/uselocale.texi: Likewise. * doc/posix-functions/isalnum_l.texi: Likewise. * doc/posix-functions/isalpha_l.texi: Likewise. * doc/posix-functions/isblank_l.texi: Likewise. * doc/posix-functions/iscntrl_l.texi: Likewise. * doc/posix-functions/isdigit_l.texi: Likewise. * doc/posix-functions/isgraph_l.texi: Likewise. * doc/posix-functions/islower_l.texi: Likewise. * doc/posix-functions/isprint_l.texi: Likewise. * doc/posix-functions/ispunct_l.texi: Likewise. * doc/posix-functions/isspace_l.texi: Likewise. * doc/posix-functions/isupper_l.texi: Likewise. * doc/posix-functions/iswalnum_l.texi: Likewise. * doc/posix-functions/iswalpha_l.texi: Likewise. * doc/posix-functions/iswblank_l.texi: Likewise. * doc/posix-functions/iswcntrl_l.texi: Likewise. * doc/posix-functions/iswctype_l.texi: Likewise. * doc/posix-functions/iswdigit_l.texi: Likewise. * doc/posix-functions/iswgraph_l.texi: Likewise. * doc/posix-functions/iswlower_l.texi: Likewise. * doc/posix-functions/iswprint_l.texi: Likewise. * doc/posix-functions/iswpunct_l.texi: Likewise. * doc/posix-functions/iswspace_l.texi: Likewise. * doc/posix-functions/iswupper_l.texi: Likewise. * doc/posix-functions/iswxdigit_l.texi: Likewise. * doc/posix-functions/isxdigit_l.texi: Likewise. * doc/posix-functions/nl_langinfo_l.texi: Likewise. * doc/posix-functions/strcasecmp_l.texi: Likewise. * doc/posix-functions/strcoll_l.texi: Likewise. * doc/posix-functions/strfmon_l.texi: Likewise. * doc/posix-functions/strftime_l.texi: Likewise. * doc/posix-functions/strncasecmp_l.texi: Likewise. * doc/posix-functions/strxfrm_l.texi: Likewise. * doc/posix-functions/tolower_l.texi: Likewise. * doc/posix-functions/toupper_l.texi: Likewise. * doc/posix-functions/towctrans_l.texi: Likewise. * doc/posix-functions/towlower_l.texi: Likewise. * doc/posix-functions/towupper_l.texi: Likewise. * doc/posix-functions/wcscoll_l.texi: Likewise. * doc/posix-functions/wcsxfrm_l.texi: Likewise. * doc/posix-functions/wctrans_l.texi: Likewise. * doc/posix-functions/wctype_l.texi: Likewise. * doc/glibc-functions/strptime_l.texi: Likewise. * doc/glibc-functions/strtod_l.texi: Likewise. * doc/glibc-functions/strtof_l.texi: Likewise. * doc/glibc-functions/strtol_l.texi: Likewise. * doc/glibc-functions/strtold_l.texi: Likewise. * doc/glibc-functions/strtoll_l.texi: Likewise. * doc/glibc-functions/strtoul_l.texi: Likewise. * doc/glibc-functions/strtoull_l.texi: Likewise. * doc/glibc-functions/wcsftime_l.texi: Likewise. * doc/glibc-functions/wcstod_l.texi: Likewise. * doc/glibc-functions/wcstof_l.texi: Likewise. * doc/glibc-functions/wcstol_l.texi: Likewise. * doc/glibc-functions/wcstold_l.texi: Likewise. * doc/glibc-functions/wcstoll_l.texi: Likewise. * doc/glibc-functions/wcstoul_l.texi: Likewise. * doc/glibc-functions/wcstoull_l.texi: Likewise. 2009-11-24 Bruno Haible duplocale: Fix logic bug. * lib/duplocale.c: Don't include . (_NL_LOCALE_NAME): Remove macro. (rpl_duplocale): Use setlocale instead of nl_langinfo. * tests/test-duplocale.c (main): Also test duplocale after uselocale. 2009-11-23 Jim Meyering test-update-copyright: don't hard-code /usr/bin/perl * tests/test-update-copyright.sh (YEAR): Use date +%Y, rather than perl to print the current year. Gilles Espinasse reported that the replaced use of perl was hard-coded as /usr/bin/perl. 2009-11-23 Bruno Haible duplocale: Add support for glibc 2.3.x. * lib/duplocale.c (rpl_duplocale): Add fallback code for glibc 2.3.x. 2009-11-22 Bruno Haible vasnprintf: Tiny optimization. * lib/vasnprintf.c (decimal_point_char): Choose the fast path also on MacOS X. 2009-11-22 Bruno Haible Tests for module 'duplocale'. * modules/duplocale-tests: New file. * tests/test-duplocale.c: New file. New module 'duplocale'. * m4/duplocale.m4: New file. * lib/locale.in.h (duplocale): New declaration. * lib/duplocale.c: New file. * m4/locale_h.m4 (gl_REPLACE_LOCALE_H, gl_LOCALE_MODULE_INDICATOR, gl_LOCALE_H_DEFAULTS): New macros. (gl_LOCALE_H): Require gl_LOCALE_H_DEFAULTS. Invoke gl_CHECK_NEXT_HEADERS unconditionally. Invoke gl_REPLACE_LOCALE_H. * modules/locale (Makefile.am): Substitute also GNULIB_DUPLOCALE, REPLACE_DUPLOCALE. * modules/duplocale: New file. * doc/posix-functions/duplocale.texi: Mention the glibc bug. 2009-11-22 Bruno Haible * modules/locale-tests (configure.ac): Test for newlocale function. * tests/test-locale.c: When the system has extended locale functions, verify that defines locale_t and LC_GLOBAL_LOCALE. locale: Make locale_t available when possible. * lib/locale.in.h: Include when it exists. * m4/locale_h.m4 (gl_LOCALE_H): Check for and arrange to replace if it does not define locale_t but does. * modules/locale (Depends-on): Add extensions. (Makefile.am): Also substitute HAVE_XLOCALE_H. * doc/posix-headers/locale.texi: Document the problem with locale_t. 2009-11-22 Bruno Haible Add comments. * m4/dirent_h.m4 (gl_DIRENT_H): Add comment about gl_CHECK_NEXT_HEADERS invocation. * m4/iconv_h.m4 (gl_ICONV_H): Likewise. * m4/spawn_h.m4 (gl_SPAWN_H): Likewise. * m4/wchar.m4 (gl_WCHAR_H): Likewise. 2009-11-22 Bruno Haible error: account for the possibility of freopen (stdout). * lib/error.c: Include . (flush_stdout): New function, extracted from error and error_at_line. Determine stdout's fd dynamically. (error, error_at_line): Invoke flush_stdout. * m4/error.m4 (gl_PREREQ_ERROR): Require AC_C_INLINE. * modules/error (Depends-on): Add unistd. 2009-11-22 Bruno Haible diffseq: Add comment. * lib/diffseq.h (IF_LINT): Add comment about pitfall. 2009-11-22 Jim Meyering c-stack: avoid defining an unused static function * lib/c-stack.c (find_stack_direction): Do not define this function when it will not be used. diffseq: avoid spurious gcc warnings * lib/diffseq.h (IF_LINT2): Define. (compareseq): Use it to initialize two members of "part". This avoids two used-uninitialized warnings. 2009-11-21 Jim Meyering c-stack: avoid "ignoring return value of `write'" warning * lib/c-stack.c: Include "ignore-value.h". (die): Explicitly ignore each write return value. * modules/c-stack (Depends-on): Add ignore-value. 2009-11-21 Bruno Haible diffseq: reduce scope of variable 'best'. * lib/diffseq.h (diag) [USE_HEURISTIC]: Reduce scope of 'best' variable, earlier used for two different purposes. 2009-11-21 Jim Meyering diffseq: remove useless assignment to "best" * lib/diffseq.h (diag) [USE_HEURISTIC]: Remove useless "best = 0" assignment. At that point "best" is already guaranteed to be zero. 2009-11-20 Eric Blake build: mention ftp redirector in release announcements * top/maint.mk (gnu_rel_host, url_dir_list): Provide defaults for values that used to come from cfg.mk; mention FTP redirect URL. * build-aux/announce-gen: Mention the mirror list. Suggested by Karl Berry. nanosleep: improve port to mingw * lib/nanosleep.c (rpl_nanosleep): Reject invalid arguments. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Incorporate LIBSOCKET into LIB_NANOSLEEP, but only when needed. * modules/select (Link): Document LIBSOCKET. * m4/select.m4 (gl_FUNC_SELECT): Ensure LIBSOCKET is defined early enough. nanosleep: work around cygwin bug * lib/nanosleep.c (rpl_nanosleep) [HAVE_BUG_BIG_NANOSLEEP]: Fix logic bug when nanosleep fails. Work around cygwin 1.5.x bug. (getnow): Delete, not needed. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): No longer require LIB_CLOCK_GETTIME. * modules/nanosleep (Depends-on): Add intprops and verify. Drop clock-time, gettime. * doc/posix-functions/nanosleep.texi (nanosleep): Document the bug. * modules/nanosleep-tests: New test. * tests/test-nanosleep.c: New file. sleep: work around cygwin bug * lib/sleep.c (rpl_sleep): Work around the bug. * m4/sleep.m4 (gl_FUNC_SLEEP): Detect the bug. (gl_PREREQ_SLEEP): Delete unused macro. * modules/sleep (Depends-on): Add verify. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add default. * modules/unistd (Makefile.am): Substitute witness. * lib/unistd.in.h (sleep): Update prototype. * doc/posix-functions/sleep.texi (sleep): Document the bug. * tests/test-sleep.c (main) [HAVE_DECL_ALARM]: Test it. * modules/sleep-tests (Depends-on): Check for alarm. 2009-11-20 Jim Meyering maint.mk: improve sc_prohibit_magic_number_exit * top/maint.mk (sc_prohibit_magic_number_exit): Tighten regexp so it does not match uses like System.exit(1). Add comments showing how to correct all offenders. 2009-11-19 Eric Blake xalloc-die-tests: add missing library * modules/xalloc-die-tests (Makefile.am): Add LDADD line. test-xvasprintf: silence compiler warnings * tests/test-xvasprintf.c (test_xvasprintf, test_xasprintf): Mask empty string from gcc. 2009-11-19 Jim Meyering xfreopen: new module, from coreutils * modules/xfreopen: New module. * lib/xfreopen.c: New file. * lib/xfreopen.h: New file. * MODULES.html.sh (File stream based Input/Output"): Add it. 2009-11-19 Eric Blake manywarnings: depend on warnings * modules/manywarnings (Depends-on): Add warnings. build: avoid compiler warnings * lib/select.c (rpl_select): Delete unused variable. * lib/setsockopt.c (rpl_setsockopt): Avoid incompatible pointer. 2009-11-18 Eric Blake tests: avoid false negative with --with-packager * tests/test-version-etc.sh: Discard packager information. * tests/test-argp-version-etc-1.sh: Likewise. Reported by Mike Frysinger. utimens: fix regression on Solaris * m4/utimens.m4 (gl_UTIMENS): Check for BSD bug. * lib/utimens.c (fdutimens): Revert 2009-11-08 change; Solaris 10 can only change fd timestamps via futimesat. Instead, use an additional witness macro to avoid BSD bug. Reported by Jim Meyering. 2009-11-17 Eric Blake usleep: use it to simplify tests * modules/stat-time-tests (Depends-on): Add usleep. (configure.ac): Drop usleep check. * modules/chown-tests (Depends-on, configure.ac): Likewise. * modules/lchown-tests (Depends-on, configure.ac): Likewise. * modules/fdutimensat-tests (Depends-on, configure.ac): Likewise. * modules/futimens-tests (Depends-on, configure.ac): Likewise. * modules/openat-tests (Depends-on, configure.ac): Likewise. * modules/utimens-tests (Depends-on, configure.ac): Likewise. * modules/utimensat-tests (Depends-on, configure.ac): Likewise. * modules/pipe-filter-gi-tests (Depends-on, configure.ac): Likewise. * tests/test-chown.h (nap): Rely on nicer usleep semantics. * tests/test-lchown.h (nap): Likewise. * tests/test-pipe-filter-gi2-main.c (small_nap): Likewise. * tests/test-stat-time.c (nap): Likewise. * tests/test-utimens-common.h (nap): Update comments. usleep: new module * modules/usleep: New file. * m4/usleep.m4 (gl_FUNC_USLEEP): Likewise. * lib/usleep.c (usleep): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add defaults. * modules/unistd (Makefile.am): Substitute witnesses. * lib/unistd.in.h (usleep): Add declaration. * doc/pastposix-functions/usleep.texi (usleep): Document this. * MODULES.html.sh (Date and time): Likewise. * modules/usleep-tests (Depends-on): New test. * tests/test-usleep.c: New file. chown: work around OpenBSD bug * lib/chown.c (rpl_chown): Work around the bug. * lib/lchown.c (rpl_lchown): Attempt to do likewise. * m4/chown.m4 (gl_FUNC_CHOWN): Test for ctime bug. * m4/lchown.m4 (gl_FUNC_LCHOWN): Check for lchmod. * modules/chown (Depends-on): Add stdbool. * modules/lchown (Depends-on): Likewise. * doc/posix-functions/chown.texi (chown): Document the bug. * doc/posix-functions/lchown.texi (lchown): Likewise. * tests/test-lchown.h (test_chown): Relax test. mkstemp: avoid conflict with C++ keyword template * lib/mkdtemp.c (mkdtemp): Change spelling of template. * lib/mkostemp.c (mkostemp): Likewise. * lib/mkostemps.c (mkostemps): Likewise. * lib/mkstemp.c (mkstemp): Likewise. * lib/mkstemps.c (mkstemps): Likewise. xalloc-die-tests: optimize * tests/test-xalloc-die.sh: Reduce number of processes. 2009-11-17 Simon Josefsson * gnulib-tool: Support LGPLv3+ licenses in module files. Tiny patch from ludo@gnu.org (Ludovic Courtès). 2009-11-17 Jim Meyering version-etc: use proper license string * modules/version-etc (License): Use LGPL, not LGPLv3+. * modules/version-etc-fsf: Likewise. 2009-11-17 Simon Josefsson * tests/test-xalloc-die.sh: Add license. Check that nothing is printed to stdout. Deal with EOL differences. 2009-11-17 Eric Blake unsetenv: work around Solaris bug * m4/setenv.m4 (gl_FUNC_UNSETENV): Check for bug. * lib/unsetenv.c (rpl_unsetenv): Work around it. Reported by Jim Meyering. vasnprintf: avoid compiler warnings * lib/vasnprintf.c (VASNPRINTF): Avoid shadowing our own local variables. * lib/printf-args.c (PRINTF_FETCHARGS): Avoid type mismatch. 2009-11-17 Simon Josefsson * modules/xalloc-die-tests (Makefile.am): Drop XFAIL_TESTS settings since xalloc-die is no longer the self test, xalloc-die.sh is. 2009-11-17 Jim Meyering test-xalloc-die.sh: make the code agree with the commit log * tests/test-xalloc-die.sh: Put "." at the front of $PATH, not at the end, just in case you happen to have a test-xalloc-die program in some other PATH directory. test-xalloc-die.sh: fix a portability bug * tests/test-xalloc-die.sh: Do not invoke via ./test-xalloc-die. Instead, set PATH to start with "." and invoke via "test-xalloc-die". Otherwise, argv[0] (as often seen in diagnostics) would be too system-dependent, sometimes with, and sometimes without the leading "./". version-etc-fsf: relax license to LGPLv3+ * modules/version-etc-fsf (License): Relax license. 2009-11-16 Eric Blake xalloc-die-tests: avoid printing null pointer * modules/xalloc-die-tests (Files, Makefile.am): Wrap execution in shell script. * tests/test-xalloc-die.c (program_name): Declare. * tests/test-xalloc-die.sh (tmpfiles): New file. setenv, unsetenv: work around various bugs * lib/setenv.c (setenv) [!HAVE_SETENV]: Resync from glibc. (setenv) [HAVE_SETENV]: Work around bugs. * lib/unsetenv.c (unsetenv) [HAVE_UNSETENV]: Work around bugs. * m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE, gl_FUNC_UNSETENV): Check for bugs. (gl_FUNC_SETENV): Write in terms of gl_FUNC_SETENV_SEPARATE. * m4/environ.m4 (gl_ENVIRON): Avoid expand-before-require. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Update defaults. * modules/stdlib (Makefile.am): Update substitutions. * lib/stdlib.in.h (setenv, unsetenv): Update prototypes. * doc/posix-functions/setenv.texi (setenv): Document the bugs. * doc/posix-functions/unsetenv.texi (unsetenv): Likewise. * modules/setenv-tests: New test. * modules/unsetenv-tests: Likewise. * tests/test-setenv.c: New file. * tests/test-unsetenv.c: Likewise. 2009-11-16 Jim Meyering version-etc: relax license to LGPLv3+ * modules/version-etc (License): Relax license. better AC_REQUIRE expanded-before-required-warning avoidance * m4/chown.m4 (gl_FUNC_CHOWN, gl_FUNC_CHOWN_FOLLOWS_SYMLINK): Define with AC_DEFUN_ONCE, rather than AC_DEFUN, to avoid AC_REQUIRE warnings. Suggested by Eric Blake. This change also reverts commit 1b712ba8, which is no longer needed. 2009-11-16 Eric Blake test-freading: clean up temporary file * tests/test-freading.c (main): Remove file on success, and use ASSERT more liberally. Reported by Jim Meyering. 2009-11-16 Jim Meyering avoid new AC_REQUIRE expanded-before-required warnings * modules/chown (configure.ac): Require gl_FUNC_CHOWN, rather than merely using it. * modules/euidaccess (configure.ac): Likewise for gl_FUNC_EUIDACCESS. * modules/faccessat (configure.ac): Likewise for gl_FUNC_FACCESSAT. 2009-11-15 Simon Josefsson * tests/test-xalloc-die.c: New file. * modules/xalloc-die-tests: New file. * gnulib-tool (func_emit_tests_Makefile_am): Also initialize XFAIL_TESTS so it can be appended by modules. 2009-11-15 Simon Josefsson * lib/gc-pbkdf2-sha1.c: Remove comments from RFC 2898. Reported by Vladimir 'phcoder' Serbinenko . 2009-11-14 Eric Blake fnmatch: avoid compiler warning * lib/fnmatch_loop.c (NEW_PATTERN): Coerce addition to unsigned, to silence compiler warning about mismatch signedness in ?:. Reported by Robert Millan. intprops: add double-inclusion guard * lib/intprops.h: Allow idempotent includes. Suggested by Bruce Korb. openat: detect Solaris fchownat bug * lib/fchownat.c (rpl_fchownat): Work around Solaris bug. Avoid penalizing glibc chownat when only lchownat is broken. * m4/openat.m4 (gl_FUNC_FCHOWNAT): Replace fchownat if there are trailing slash bugs. * doc/posix-functions/fchownat.texi (fchownat): Document the bug. * modules/openat-tests (Files): Include more files. (Depends-on): Add mgetgroups, sleep, stat-time. (configure.ac): Add additional checks. (Makefile.am): Build new test. * tests/test-fchownat.c: New file. lchown: detect Solaris and FreeBSD bug * lib/lchown.c (rpl_lchown): Work around bug. * m4/lchown.m4 (gl_FUNC_LCHOWN): Check for trailing slash bugs. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witness. * modules/unistd (Makefile.am): Populate it. * lib/unistd.in.h (lchown): Update declaration. * doc/posix-functions/lchown.texi (lchown): Document the bug. * modules/lchown-tests: New file. * tests/test-lchown.h (test_lchown): Likewise. * tests/test-lchown.c (main): Likewise. chown: detect Solaris and FreeBSD bug * lib/chown.c (rpl_chown): Work around bug. * m4/chown.m4 (gl_FUNC_CHOWN): Check for trailing slash bugs. (gl_PREREQ_CHOWN): Delete. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witness. * modules/unistd (Makefile.am): Populate it. * lib/unistd.in.h (chown): Update declaration. * lib/lchown.c (chown): Update client. * modules/lchown (Depends-on): Add lstat. * doc/posix-functions/chown.texi (chown): Document the bug. * doc/posix-functions/getgroups.texi (getgroups): Document getgroups pitfall. * modules/chown-tests: New file. * tests/test-chown.h (test_chown): Likewise. * tests/test-chown.c (main): Likewise. 2009-11-14 Robert Millan (tiny change) gnulib-tool: correctly detect absence of m4 directories * gnulib-tool: Avoid extra newline on data passed to wc -l. 2009-11-14 Jim Meyering maint.mk: Prohibit inclusion of "xalloc.h" without use. * top/maint.mk (sc_prohibit_close_stream_without_use): New rule. 2009-11-14 John W. Eaton strftime.h: wrap function declaration in extern "C" block * lib/strftime.h (nstrftime) [__cplusplus]: Wrap declaration. 2009-11-13 Eric Blake getgroups: avoid compiler warning * lib/getgroups.c (rpl_getgroups): Delete shadowed variable. getgroups: work around FreeBSD bug * lib/getgroups.c (rpl_getgroups): Work around the bug. * m4/getgroups.m4 (gl_FUNC_GETGROUPS): Detect the bug. * doc/posix-functions/getgroups.texi (getgroups): Document it. * tests/test-getgroups.c (main): Fix buffer overrun. getgroups: avoid compilation failure * lib/getgroups.c (includes): Include for SIZE_MAX. * modules/getgroups (Depends-on): Add stdint. 2009-11-13 Jim Meyering test-getgroups: avoid compilation failure * tests/test-getgroups.c: Include for use of SIZE_MAX. 2009-11-13 Eric Blake mgetgroups: new module, taken from coreutils * modules/mgetgroups: New file. * lib/mgetgroups.h: Likewise. * lib/mgetgroups.c (mgetgroups): Likewise. * m4/mgetgroups.m4 (gl_MGETGROUPS): Likewise. * MODULES.html.sh (Users and groups): Mention it. getgroups: don't expose GETGROUPS_T to user * lib/getgroups.c (rpl_getgroups): Change signature. Copy array an element at a time if GETGROUPS_T is wrong size. * lib/getugroups.h (getugroups): Change signature. * lib/unistd.in.h (getgroups): Likewise. * m4/getgroups.m4 (gl_FUNC_GETGROUPS): Use replacement if signature needs fixing. * m4/getugroups.m4 (gl_GETUGROUPS): No longer need AC_TYPE_GETGROUPS. * modules/group-member (Depends-on): Add getgroups. * lib/group-member.c (group_info, get_group_info): Use gid_t. (group_member): Rely on getgroups replacement. * lib/getugroups.c (getugroups): Use gid_t. * tests/test-getgroups.c (main): Likewise. * NEWS: Mention the signature change. * doc/posix-functions/getgroups.texi (getgroups): Mention the problem with signature. * doc/glibc-functions/setgroups.texi (setgroups): Mention that GETGROUPS_T is still useful for setgroups. getgroups, getugroups: provide stubs for mingw * lib/getgroups.c (getgroups): Provide ENOSYS stub for mingw. * lib/getugroups.c (getugroups): Likewise. * m4/getgroups.m4 (gl_FUNC_GETGROUPS): Check for missing function. Modernize replacement scheme. (gl_PREREQ_GETGROUPS): Delete. * m4/getugroups.m4 (gl_GETUGROUPS): Check for . * modules/getgroups (configure.ac): Declare witness. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add default. * modules/unistd (Depends-on): Substitute witness. * lib/unistd.in.h (getgroups): Declare replacement. getgroups: avoid calling exit * modules/getgroups (Depends-on): Add malloc-posix and unistd, drop xalloc. * modules/getgroups-tests (Depends-on, Makefile.am): Drop unneeded dependencies. * lib/getgroups.c (rpl_getgroups): Fail with ENOMEM rather than exiting, in the rare case of malloc failure. getgroups: fix logic error * lib/getgroups.c (rpl_getgroups): Don't fail if current process has more than 20 groups. * modules/getgroups-tests: New test. * tests/test-getgroups.c: New file. 2009-11-13 Simon Josefsson * tests/test-base64.c: Improve. 2009-11-13 Simon Josefsson * tests/test-xvasprintf.c: Fix memory leak, suggested by Eric Blake . 2009-11-13 Simon Josefsson * tests/test-xvasprintf.c: Add %s%s related checks. 2009-11-12 Eric Blake version-etc: match standards.texi style * lib/version-etc.c (emit_bug_reporting_address): Drop periods, and use <> only for URLs. 2009-11-10 Kamil Dudka fts: do not fail on a submount during traversal * lib/fts.c (fts_build): Read the stat info again after opening a directory if the FTS_TIGHT_CYCLE_CHECK flag is set. Original report at http://bugzilla.redhat.com/501848. 2009-11-12 Jim Meyering bootstrap: sync from coreutils * build-aux/bootstrap (bootstrap_epilogue): New function. Use git_modules_config in one more place. This make bootstrap's --gnulib-srcdir option more useful for testing. bootstrap: generalize autoheader check * build-aux/bootstrap: Look for AC_CONFIG_HEADER as well as AC_CONFIG_HEADERS. 2009-11-11 Eric Blake mkfifoat: use new modules for Solaris and BSD bugs * m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Simplify. * lib/mkfifoat.c (mknodat): Split... * lib/mknodat.c (mknodat): ...into new file. * modules/mkfifoat (Files): Ship new file. (Depends-on): Add mkfifo, mknod. * modules/mkfifoat-tests (Files): Reuse mkfifo tests. (Depends-on): Add symlink. * tests/test-mkfifoat.c (main): Enhance test. Drop portions now redundant with test_mkfifo.h. (do_mkfifoat, do_mknodat): New helpers. mknod: new module * modules/mknod: New file. * m4/mknod.m4 (gl_FUNC_MKNOD): Likewise. * lib/mknod.c (mknod): Likewise. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Set witness defaults. * modules/sys_stat (Makefile.am): Substitute them. * lib/sys_stat.in.h (mknod): Declare replacement. * MODULES.html.sh (Support for systems lacking POSIX:2008): Document it. * doc/posix-functions/mknod.texi (mknod): Likewise. * modules/mknod-tests: New test. * tests/test-mknod.c: Likewise. mkfifo: new module * modules/mkfifo: New file. * m4/mkfifo.m4 (gl_FUNC_MKFIFO): Likewise. * lib/mkfifo.c (mkfifo): Likewise. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Set witness defaults. * modules/sys_stat (Makefile.am): Substitute them. * lib/sys_stat.in.h (mkfifo): Declare replacement. * MODULES.html.sh (Support for systems lacking POSIX:2008): Document it. * doc/posix-functions/mkfifo.texi (mkfifo): Likewise. * modules/mkfifo-tests: New test. * tests/test-mkfifo.h (test_mkfifo): New file, borrowed in part from test-mkfifoat.c. * tests/test-mkfifo.c: New file. readlink: detect FreeBSD bug * m4/readlink.m4 (gl_FUNC_READLINK): Also detect FreeBSD bug with slash on symlink. * doc/posix-functions/readlink.texi (readlink): Document the bug. * tests/test-readlink.h (test_readlink): Enhance test. symlink: detect FreeBSD bug * m4/symlink.m4 (gl_FUNC_SYMLINK): Also detect FreeBSD bug with slash on symlink. * doc/posix-functions/symlink.texi (symlink): Document the bug. * tests/test-symlink.h (test_symlink): Enhance test. 2009-11-10 Eric Blake link: detect FreeBSD bug * m4/link.m4 (gl_FUNC_LINK): Also detect FreeBSD bug with slash on symlink. * doc/posix-functions/link.texi (link): Document the bug. * tests/test-link.h (test_link): Enhance test. * tests/test-linkat.c (main): Update caller. unlink, remove: detect FreeBSD bug * m4/unlink.m4 (gl_FUNC_UNLINK): Also detect FreeBSD bug with slash on symlink. * doc/posix-functions/unlink.texi (unlink): Document the bug. * doc/posix-functions/remove.texi (remove): Likewise. * tests/test-unlink.h (test_unlink): Enhance test. * tests/test-remove.c (main): Likewise. 2009-11-09 Eric Blake rename: detect FreeBSD bug * m4/rename.m4 (gl_FUNC_RENAME): Also detect FreeBSD bug with slash on symlink. * modules/renameat-tests (Depends-on): Add filenamecat. * tests/test-rename.h (test_rename): Allow one more errno. * tests/test-renameat.c (main): Likewise. * doc/posix-functions/rename.texi (rename): Document the bug. open: detect FreeBSD bug * m4/open.m4 (gl_FUNC_OPEN): Also detect FreeBSD bug with slash on symlink. * doc/posix-functions/open.texi (open): Document the bug. * doc/posix-functions/utimes.texi (utimes): Likewise. * tests/test-open.h (test_open): Add parameters, and test symlink handling. * tests/test-open.c (main): Adjust caller. * tests/test-fcntl-safer.c (main): Likewise. * modules/open-tests (Depends-on): Add stdbool, symlink. * modules/fcntl-safer-tests (Depends-on): Likewise. * tests/test-openat.c (main): Add test-open tests. stat: detect FreeBSD bug * m4/stat.m4 (gl_FUNC_STAT): Also detect FreeBSD bug with slash on symlink. * doc/posix-functions/stat.texi (stat): Document the bug. * tests/test-stat.h (test_stat_func): Add argument. * tests/test-stat.c (main): Adjust caller. * tests/test-fstatat.c (main): Likewise. * modules/stat-tests (Depends-on): Add stdbool, symlink. Reported by Jim Meyering. 2009-11-09 James Youngman strftime.c: include ignore-value.h only when FPRINTFTIME is defined * lib/strftime.c: Correct placement of #include "ignore-value.h". 2009-11-08 Jim Meyering utimens: remove invalid futimesat call * lib/utimens.c (fdutimens): Remove invalid futimesat call. It used the file descriptor of the target file as the DIR_FD parameter and NULL as the file name. That caused failure with errno == EFAULT on FreeBSD-8.0-rc2 2009-11-07 Eric Blake fflush, freadseek: use fseeko, not fseek * lib/fflush.c (clear_ungetc_buffer_preserving_position) (clear_ungetc_buffer): Avoid potential problems on large files. * lib/freadseek.c (freadseek): Likewise. * modules/freadseek (Depends-on): Add fseeko. * modules/fseek (configure.ac): Set a witness. * tests/test-fflush.c (main): Use fseeko. * tests/test-fpurge.c (fseek): Disable link warning. * tests/test-freadable.c (fseek): Likewise. * tests/test-freading.c (fseek): Likewise. * tests/test-fseeko.c (fseek): Likewise. * tests/test-ftell.c (fseek): Likewise. * tests/test-ftello.c (fseek): Likewise. * tests/test-fwritable.c (fseek): Likewise. * tests/test-fwriting.c (fseek): Likewise. 2009-11-06 Simon Josefsson * modules/memchr (Depends-on): Drop getpagesize dependency. 2009-11-06 Simon Josefsson * build-aux/pmccabe2html: Disable execute bit. Suggested by Reported by Ludovic Courtès. * build-aux/pmccabe2html: Improve example usage. * build-aux/pmccabe2html: Drop #! header. Doc fix. 2009-11-06 Jim Meyering do-release-commit-and-tag: New module. Automate the release-commit and tag process. * build-aux/do-release-commit-and-tag: New script, from coreutils. * modules/do-release-commit-and-tag: New file. * MODULES.html.sh (Support for maintaining and releasing): Add it. 2009-11-06 Simon Josefsson * modules/select-tests (test_select_LDADD): Add $(INET_PTON_LIB) because test-select.c uses inet_pton. 2009-11-06 Simon Josefsson * m4/getaddrinfo.m4: Add content of INET_NTOP_LIB to GETADDRINFO_LIB. Bump serial number. * modules/getaddrinfo (Link): Only mention GETADDRINFO_LIB again. Suggested by Eric Blake . 2009-11-05 Eric Blake strtod: detect darwin bug * m4/strtod.m4 (gl_FUNC_STRTOD): Filter out darwin bug on "nan(". Reported by Leo Davis. freopen-safer: new module * modules/freopen-safer: New module. * m4/stdio-safer.m4 (gl_FREOPEN_SAFER): New macro. * lib/freopen-safer.c (freopen_safer): New file. * lib/stdio-safer.h (freopen_safer): New declaration. * lib/stdio--.h (freopen): New override. * MODULES.html.sh (File stream based Input/Output): Mention it. * doc/posix-functions/freopen.texi (freopen): Mention pitfalls and freopen-safer module. * doc/posix-functions/stderr.texi (stderr): Likewise. * doc/posix-functions/stdin.texi (stdin): Likewise. * doc/posix-functions/stdout.texi (stdout): Likewise. * modules/freopen-safer-tests: New test. * tests/test-reopen-safer.c: New file. 2009-11-05 Jim Meyering maint.mk: Prohibit inclusion of "close-stream.h" without use. * top/maint.mk (sc_prohibit_close_stream_without_use): New rule. 2009-11-05 Simon Josefsson * modules/pmccabe2html (configure.ac): Check for pmccabe tool. 2009-11-05 Simon Josefsson * modules/getaddrinfo (Link): Add $(INET_NTOP_LIB). 2009-11-05 Simon Josefsson Fix link error. * m4/inet_ntop.m4 (gl_INET_NTOP): Fix test of AC_SEARCH_LIBS result. * m4/inet_pton.m4 (gl_INET_PTON): Likewise. 2009-11-05 Simon Josefsson * tests/test-func.c: Also test value of __func__. 2009-11-05 Simon Josefsson * tests/test-sys_socket.c: Use smaller constant value, sa_family_t may be an 8-bit type. Reported by Bruno Haible . 2009-11-05 Bruno Haible Fix link error. * m4/inet_ntop.m4 (gl_INET_NTOP): Fix test of AC_SEARCH_LIBS result. * m4/inet_pton.m4 (gl_INET_PTON): Likewise. Reported by Brad Hards via Simon Josefsson. 2009-11-05 Bruno Haible Tests for module 'inet_pton'. * modules/inet_pton-tests: New file. * tests/test-inet_pton.c: New file. 2009-11-05 Bruno Haible Tests for module 'inet_ntop'. * modules/inet_ntop-tests: New file. * tests/test-inet_ntop.c: New file. 2009-11-04 Eric Blake stdlib-safer: wrap all mkstemp variants * modules/mkostemp (configure.ac): Set witness. * modules/mkostemps (configure.ac): Likewise. * modules/mkstemps (configure.ac): Likewise. * lib/stdlib-safer.h (mkostemp_safer, mkostemps_safer) (mkstemps_safer): Wrap more functions. * lib/stdlib--.h (mkostemp, mkostemps, mkstemps): Default the wrapping. * lib/mkstemp-safer.c (mkostemp_safer, mkostemps_safer) (mkstemps_safer): Implement the wrappers. mkstemps, mkostemps: new modules * modules/mkostemps: New module. * modules/mkstemps: Likewise. * lib/mkostemps.c (mkostemps): New file. * lib/mkstemps.c (mkstemps): Likewise. * m4/mkostemps.m4 (gl_FUNC_MKOSTEMPS): Likewise. * m4/mkstemps.m4 (gl_FUNC_MKSTEMPS): Likewise. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Add witnesses. * modules/stdlib (Makefile.am): Substitute them. * lib/stdlib.in.h (mkostemps, mkstemps): Declare them. * doc/glibc-functions/mkstemps.texi (mkstemps): New file. * doc/glibc-functions/mkostemps.texi (mkostemps): Likewise. * doc/gnulib.texi (Glibc stdlib.h): Include them. * MODULES.html.sh (File system functions): Mention them. tempname: resync from glibc * lib/tempname.c (__gen_tempname): Add suffixlen argument. Use same values for __GT_FILE as glibc. Abort even when assertions are disabled. * lib/tempname.h (GT_FILE): Use glibc __GT_FILE, if available, and match its value otherwise. Allow idempotent inclusion. * lib/mkdtemp.c (mkdtemp): Adjust caller. * lib/mkostemp.c (mkostemp): Likewise. * lib/mkstemp.c (mkstemp): Likewise. * lib/tmpfile.c (tmpfile): Likewise. * NEWS: Document this. utimens: fix use of futimens on older Linux * lib/utimens.c (fdutimens): Use updated, rather than original, timespec to avoid bug in older Linux kernel. Reported by Simon Josefsson. 2009-11-04 Bruno Haible Make num_processors more flexible and consistent. * lib/nproc.h (enum nproc_query): New type. (num_processors): Add a 'query' argument. * lib/nproc.c: Include , , c-ctype.h. (num_processors): Add a 'query' argument. Test the value of the OMP_NUM_THREADS environment variable if requested. On Linux, NetBSD, mingw, count the number of CPUs available for the current process. * m4/nproc.m4 (gl_PREREQ_NPROC): Require AC_USE_SYSTEM_EXTENSIONS. Check for sched_getaffinity and sched_getaffinity_np. * modules/nproc (Depends-on): Add c-ctype, extensions. * NEWS: Mention the change. 2009-11-03 Bruno Haible * NEWS: Document the new library dependencies of inet_ntop, inet_pton. 2009-11-03 Jim Meyering test-getaddrinfo: avoid compilation failure on FreeBSD 7.2 * tests/test-getaddrinfo.c (simple): Test for EAI_NODATA only if it is defined. 2009-11-02 Eric Blake mktime, timegm: share common declaration * lib/mktime-internal.h: New file. * lib/mktime.c: Use it rather than open-coding a declaration. * lib/timegm.c: Likewise. * modules/mktime (Files): Ship it. * modules/timegm (Files): Likewise. Suggested by Bruno Haible. test-update-copyright: update test to match script changes * tests/test-update-copyright.sh: Avoid hard-coding perl location. Don't update *.bak created by earlier runs. 2009-11-02 Paul Eggert Simon Josefsson Bruno Haible Fix link error on Solaris 8. * m4/inet_pton.m4 (gl_INET_PTON): Search for the function inet_pton also in libnsl. Define also INET_PTON_LIB. * modules/inet_pton (Link): New section. 2009-11-02 Simon Josefsson Bruno Haible * m4/inet_ntop.m4 (gl_INET_NTOP): Define also INET_NTOP_LIB. * modules/inet_ntop (Link): New section. Reported by Boyan Kasarov . 2009-11-02 Eric Blake maint: avoid compiler warnings in m4 macros * m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): Avoid unused variable. * m4/rmdir.m4 (gl_FUNC_RMDIR): Include correct header. 2009-11-02 Simon Josefsson * m4/pmccabe2html.m4: Remove file. * modules/pmccabe2html: Drop pmccabe2html.m4. Don't call m4 function. Change maintainer. * build-aux/pmccabe2html: Use /bin/sh with magic instead of hard-coding path to awk. Tiny patch from ludo@gnu.org (Ludovic Courtès). 2009-10-31 Eric Blake fseeko: fix m4 regression * m4/fseeko.m4 (gl_FUNC_FSEEKO): Use modern macro. Fixes regression from 2009-10-27. Reported by Ralf Wildenhues. 2009-10-31 Jim Meyering inttostr: aesthetics and improved (compile-time) safety Define inttype_is_signed rather than inttype_is_unsigned, since the sole use is via "#if inttype_is_signed". * lib/imaxtostr.c (inttype_is_signed): Define this, rather than inttype_is_unsigned. * lib/offtostr.c (inttype_is_signed): Likewise. * lib/uinttostr.c (inttype_is_signed): Likewise. * lib/umaxtostr.c (inttype_is_signed): Likewise. * lib/inttostr.c (inttostr): Use verify to cross-check the inttype_is_signed value and the signedness of the actual type. * modules/inttostr (Depends-on): Add verify. 2009-10-30 Eric Blake build: avoid compiler warnings * lib/fchmodat.c (lchmod): Mark unused variables. * lib/getopt.c (_getopt_initialize): Likewise. * lib/mktime.c (__mktime_internal): Provide prototype. * lib/inttostr.c (inttostr): Avoid compiler warning even with older gcc that do not understand #pragma GCC diagnostic. * lib/uinttostr.c (inttype_is_unsigned): Define. * lib/umaxtostr.c (inttype_is_unsigned): Likewise. 2009-10-30 Michael Haubenwallner stat: fix compilation on AIX * lib/sys_stat.in.h (stat): Work with fact that large files on AIX only see struct stat64. 2009-10-30 Eric Blake exclude: make more robust * lib/exclude.c (excluded_file_name): Abort on unexpected value, rather than masking a coding bug. Suggested by Bruno Haible. 2009-10-30 Jim Meyering perl scripts: remove #!/usr/bin/perl in favor of more portable... Rather than putting #!/usr/bin/perl on the first line, start with a variant of what's recommended by "man perlrun" that invokes the first "perl" program from your shell's search path. * build-aux/gitlog-to-changelog: Replace #!... as above. Add a "Local Variables" perl mode setting. Prompted by a patch from Ludovic Courtès. Improved by Eric Blake. * build-aux/useless-if-before-free: Likewise. * build-aux/announce-gen: Likewise. * build-aux/update-copyright: Likewise. 2009-10-29 Eric Blake filenamecat-lgpl: adjust clients * modules/linkat (Depends-on): Use filenamecat-lgpl, not filenamecat. * modules/renameat (Depends-on): Likewise. filenamecat: split into filenamecat-lgpl * modules/filenamecat-lgpl: New module. * modules/filenamecat (Files): Move library-safe files into filenamecat-lgpl. (Depends-on): Add filenamecat-lgpl. (configure.ac): Declare witness. * lib/filenamecat.h (file_name_concat): Only declare when using GPL module. * lib/filenamecat.c (longest_relative_suffix, mfile_name_concat): Move... * lib/filenamecat-lgpl.c: ...into new file. * m4/filenamecat.m4 (gl_FILE_NAME_CONCAT_LGPL): New macro. (gl_FILE_NAME_CONCAT): Use it. * MODULES.html.sh (File system functions): Mention new module. argp: avoid memory leak * modules/argp (Depends-on): Use dirname-lgpl, not dirname. * lib/argp-namefrob.h (__argp_base_name): Use last_component, not base_name, since the latter malloc()s and can call exit(). Leak introduced 2006-07-03. dirname-lgpl: adjust clients that don't need full dirname * modules/backupfile (Depends-on): Use dirname-lgpl, not dirname. * modules/filenamecat (Depends-on): Likewise. * modules/linkat (Depends-on): Likewise. * modules/mkancesdirs (Depends-on): Likewise. * modules/mkdir (Depends-on): Likewise. * modules/openat (Depends-on): Likewise. * modules/savewd (Depends-on): Likewise. * modules/rename (Depends-on): Likewise. (License): Relax license. * modules/mkdir-tests (Depends-on): Drop progname. (Makefile.am): Delete unneeded LDADD. * modules/rename-tests (Depends-on, Makefile.am): Likewise. dirname: split into dirname-lgpl * modules/dirname-lgpl: New module. * modules/dirname (Files): Move library-safe files into dirname-lgpl. (Depends-on): Add dirname-lgpl. (configure.ac): Declare witness. * modules/double-slash-root (License): Relax license. * lib/dirname.h (base_name, dir_name): Only declare when using GPL module. * lib/dirname.c (dir_len, mdir_name): Move... * lib/dirname-lgpl.c: ...into new file. * lib/basename.c (last_component, base_len): Move... * lib/basename-lgpl.c: ...into new file. * m4/dirname.m4 (gl_DIRNAME_LGPL): New macro. (gl_DIRNAME): Use it. * MODULES.html.sh (Enhancements for POSIX:2008 functions): Mention new module. * modules/dirname-tests (Depends-on): Add progname. * tests/test-dirname.c (program_name): Delete. mkdir: make safe for libraries * modules/mkdir (Depends-on): Drop xalloc. * lib/mkdir.c (rpl_mkdir): Fail with ENOMEM rather than calling exit. tests: avoid some compiler warnings * tests/test-getaddrinfo.c (simple): Mark static, and allow string literals. * tests/test-memchr.c (main): Avoid type mismatch. * tests/test-arpa_inet.c (main): Avoid unused parameters. * tests/test-base64.c (main): Likewise. * tests/test-getdelim.c (main): Likewise. * tests/test-gethostname.c (main): Likewise. * tests/test-getline.c (main): Likewise. * tests/test-netinet_in.c (main): Likewise. * tests/test-select.c (open_server_socket, main): Likewise. * tests/test-select-stdin.c (main): Likewise. * tests/test-sockets.c (main): Likewise. * tests/test-strsignal.c (main): Likewise. * tests/test-sys_select.c (main): Likewise. * tests/test-sys_socket.c (main): Likewise. * tests/test-u64.c (main): Likewise. * tests/test-xfprintf-posix.c (main): Likewise. * tests/test-xvasprintf.c (test_xvasprintf, main): Likewise. sockets: avoid compiler warning * lib/sockets.c (gl_sockets_startup): Mark unused parameter. maint: detect usage(1) and other suspicious exits * top/maint.mk (sc_prohibit_magic_number_exit): New rule. 2009-10-29 Jim Meyering timespec: long-to-int truncation could make timespec_cmp malfunction * lib/timespec.h (timespec_cmp): Do not interpret a difference of a multiple of 2^32 nanoseconds as no difference. 2009-10-28 Jim Meyering fprintftime: wrap macro code argument in "do {...} while(0)" * lib/strftime.c (cpy) [FPRINTFTIME]: The second argument to the cpy macro must be a statement that can be followed by a semicolon. Now that the else clause contains a comment and is hence longer than one line, I require curly braces. That in turn requires that we wrap this code block in the standard do...while(0). fprintftime: remove stray semicolon from previous change * lib/strftime.c (cpy) [FPRINTFTIME]: Remove trailing semicolon. fprintftime: avoid a warning about ignored fwrite return value * lib/strftime.c [FPRINTFTIME]: Include "ignore-value.h". (cpy) [FPRINTFTIME]: Ignore fwrite failure, even though technically, that is unsafe. * modules/fprintftime (Depends-on): Add ignore-value. exclude: avoid an unwarranted warning * lib/exclude.c (excluded_file_name): Initialize "rc" before switch. 2009-10-27 Eric Blake fseek: avoid compilation failure when fflush is replaced * m4/fseek.m4 (gl_REPLACE_FSEEK): New macro. * m4/fseeko.m4 (gl_REPLACE_FSEEKO): Also replace fseek, if fseek module is in use. * lib/stdio.in.h (GNULIB_FSEEKO): Only poison fseek if fseek module is not in use; since REPLACE_FSEEK worked otherwise. (GNULIB_FTELLO): Likewise for ftell. Reported by Ian Beckwith and others. 2009-10-27 Bruno Haible * lib/isnan.c (rpl_isnan[fdl]): Repeat the specification declaration. Reported by Jim Meyering. 2009-10-27 Jim Meyering Bruno Haible Avoid warning despite dropping the return value of fwrite. * lib/unicodeio.c: Include ignore-value.h. (fwrite_success_callback): Explicitly ignore fwrite's return value. * modules/unicodeio (Depends-on): Add ignore-value. 2009-10-26 Eric Blake areadlinkat: fix fallback path * lib/at-func.c (AT_FUNC_NAME): Avoid signed comparison between pointer and zero. 2009-10-22 Pádraig Brady Use a better IO block size for modern systems * lib/copy-file.c (copy_file_preserving): Used a 32KiB malloced buffer. * lib/md2.c: Likewise. * lib/md4.c: Likewise. * lib/md5.c: Likewise. * lib/sha1.c: Likewise. * lib/sha256.c: Likewise. * lib/sha512.c: Likewise. 2009-10-22 Eric Blake tests: avoid several compiler warnings * tests/test-getcwd.c (main): Avoid buffer underflow. * tests/test-getdate.c (main): String literals are not safe with putenv, so use setenv. Declare unused argument. * modules/getdate-tests (Depends-on): Add setenv. * tests/test-argv-iter.c (main): Declare unused argument. Avoid problems with string literals in char *. * tests/test-hash.c (main): Avoid shadowing declaration. (insert_new): Treat string literals as char const *. * tests/test-getopt.h (test_getopt): Likewise. (getopt_loop): Alter types to minimize casting elsewhere. * tests/test-getopt_long.h (test_getopt_long, getopt_long_loop) (test_getopt_long_posix): Likewise. (do_getopt_long): Add wrapper to minimize casting. * tests/test-atexit.c (clear_temp_file): Use void. * tests/test-areadlink-with-size.c (main): Declare unused arguments. * tests/test-areadlink.c (main): Likewise. * tests/test-areadlinkat-with-size.c (main): Likewise. * tests/test-areadlinkat.c (main): Likewise. * tests/test-canonicalize-lgpl.c (main): Likewise. * tests/test-canonicalize.c (main): Likewise. * tests/test-dirent-safer.c (main): Likewise. * tests/test-dirname.c (main): Likewise. * tests/test-dup2.c (main): Likewise. * tests/test-fchdir.c (main): Likewise. * tests/test-fcntl-h.c (main): Likewise. * tests/test-fcntl-safer.c (main): Likewise. * tests/test-fdopendir.c (main): Likewise. * tests/test-fdutimensat.c (main): Likewise. * tests/test-fflush.c (main): Likewise. * tests/test-filenamecat.c (main): Likewise. * tests/test-filevercmp.c (main): Likewise. * tests/test-fopen-safer.c (main): Likewise. * tests/test-fopen.c (main): Likewise. * tests/test-fpending.c (main): Likewise. * tests/test-fpurge.c (main): Likewise. * tests/test-freading.c (main): Likewise. * tests/test-fstatat.c (main): Likewise. * tests/test-fsync.c (main): Likewise. * tests/test-futimens.c (main): Likewise. * tests/test-getndelim2.c (main): Likewise. * tests/test-gettimeofday.c (main): Likewise. * tests/test-getopt.c (main): Likewise. * tests/test-i-ring.c (main): Likewise. * tests/test-inttypes.c (main): Likewise. * tests/test-link.c (main): Likewise. * tests/test-lstat.c (main): Likewise. * tests/test-math.c (main): Likewise. * tests/test-md5.c (main): Likewise. * tests/test-memchr2.c (main): Likewise. * tests/test-memrchr.c (main): Likewise. * tests/test-mkdir.c (main): Likewise. * tests/test-mkdirat.c (main): Likewise. * tests/test-mkfifoat.c (main): Likewise. * tests/test-open.c (main): Likewise. * tests/test-openat-safer.c (main): Likewise. * tests/test-openat.c (main): Likewise. * tests/test-quotearg.c (main): Likewise. * tests/test-rawmemchr.c (main): Likewise. * tests/test-readlink.c (main): Likewise. * tests/test-remove.c (main): Likewise. * tests/test-rename.c (main): Likewise. * tests/test-renameat.c (main): Likewise. * tests/test-rmdir.c (main): Likewise. * tests/test-sha1.c (main): Likewise. * tests/test-signal.c (main): Likewise. * tests/test-sigaction.c (main): Likewise. * tests/test-stat.c (main): Likewise. * tests/test-stat-time.c (main): Likewise. * tests/test-stddef.c (main): Likewise. * tests/test-stdint.c (main): Likewise. * tests/test-stdio.c (main): Likewise. * tests/test-stdlib.c (main): Likewise. * tests/test-strchrnul.c (main): Likewise. * tests/test-strerror.c (main): Likewise. * tests/test-string.c (main): Likewise. * tests/test-strtod.c (main): Likewise. * tests/test-strverscmp.c (main): Likewise. * tests/test-symlink.c (main): Likewise. * tests/test-symlinkat.c (main): Likewise. * tests/test-sys_stat.c (main): Likewise. * tests/test-sys_time.c (main): Likewise. * tests/test-time.c (main): Likewise. * tests/test-unistd.c (main): Likewise. * tests/test-unlink.c (main): Likewise. * tests/test-unlinkat.c (main): Likewise. * tests/test-utimens.c (main): Likewise. * tests/test-utimensat.c (main): Likewise. * tests/test-version-etc.c (main): Likewise. * tests/test-wchar.c (main): Likewise. * tests/test-wctype.c (main): Likewise. * tests/test-xprintf-posix.c (main): Likewise. * tests/test-posixtm.c (main): Likewise. (STREQ): Delete unused macro. * tests/test-linkat.c (main): Declare unused arguments. Avoid shadowed variables. * tests/test-memchr.c (main): Likewise. 2009-10-21 Eric Blake areadlinkat: avoid failure on older glibc * lib/at-func.c (AT_FUNC_NAME): Check for explicit FUNC_FAIL, rather than mis-comparing 0 against FUNC_RESULT of char*. 2009-10-21 Bruno Haible * modules/stpncpy (License): Relicense under LGPLv2+. Reported by David Lutterkort . 2009-10-20 Eric Blake utimensat: work around Solaris 9 bug * lib/utimens.c (fdutimens, lutimens): Force a stat if platform has trailing slash bugs. * tests/test-lutimens.h (test_lutimens): Enhance test. * tests/test-utimens.h (test_utimens): Likewise. * doc/posix-functions/utime.texi (utime): Enhance documentation. * doc/posix-functions/utimes.texi (utimes): Likewise. * doc/posix-functions/utimensat.texi (utimensat): Likewise. * doc/glibc-functions/futimesat.texi (futimesat): Likewise. * doc/glibc-functions/lutimes.texi (lutimes): Likewise. * doc/posix-functions/futimens.texi (futimens): Likewise. fdutimensat: new module * modules/fdutimensat: New file. * lib/fdutimensat.c (fdutimensat): Likewise. * lib/utimens.h (fdutimensat, lutimensat): Declare new functions. * MODULES.html.sh (File system functions): Mention module. * modules/fdutimensat-tests: New test. * tests/test-fdutimensat.c: Likewise. doc: regenerate INSTALL * doc/INSTALL: Reflect recent autoconf update. * doc/INSTALL.ISO: Likewise. * doc/INSTALL.UTF-8: Likewise. 2009-10-20 Pádraig Brady acl: warn if ACL support is not detected * m4/acl.m4 (gl_FUNC_ACL): Output a warning if ACL support is not found. 2009-10-19 Giuseppe Scrivano * lib/nproc.h: Add extern "C" block for C++. 2009-10-18 Reuben Thomas Bruno Haible * doc/posix-functions/isascii.texi: Document the 2 alternative APIs. * doc/posix-functions/isalnum.texi: Document the 4 alternative APIs. * doc/posix-functions/isalpha.texi: Likewise. * doc/posix-functions/isblank.texi: Likewise. * doc/posix-functions/iscntrl.texi: Likewise. * doc/posix-functions/isdigit.texi: Likewise. * doc/posix-functions/isgraph.texi: Likewise. * doc/posix-functions/islower.texi: Likewise. * doc/posix-functions/isprint.texi: Likewise. * doc/posix-functions/ispunct.texi: Likewise. * doc/posix-functions/isspace.texi: Likewise. * doc/posix-functions/isupper.texi: Likewise. * doc/posix-functions/isxdigit.texi: Likewise. 2009-10-18 Bruno Haible Tests for module 'isblank'. * modules/isblank-tests: New file. * tests/test-isblank.c: New file. New module 'isblank'. * lib/isblank.c: New file. * m4/isblank.m4: New file. * modules/isblank: New file. * doc/posix-functions/isblank.texi: Mention the new module. 2009-10-18 Bruno Haible New module 'ctype'. * lib/ctype.in.h: New file. * m4/ctype.m4: New file. * modules/ctype: New file. * doc/posix-headers/ctype.texi: Mention the new module. 2009-10-18 Jim Meyering m4: stylistic-only: hoist AC_SUBST to be adjacent to initialization Declare a variable like LIB_CLOCK_GETTIME to be AC_SUBSTituted right after its initialization, rather than farther down. Keeping these in close proximity makes it easier to ensure that each such variable is initialized. E.g., LIB_CLOCK_GETTIME= AC_SUBST([LIB_CLOCK_GETTIME]) This change also increments these serial numbers. * m4/clock_time.m4 (gl_CLOCK_TIME): Hoist AC_SUBST use. * m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Likewise. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise. 2009-10-18 Bruno Haible Don't let environment variables perturb build. * m4/gethrxtime.m4 (gl_GETHRXTIME): Initialize LIB_GETHRXTIME here... (gl_PREREQ_GETHRXTIME): ... not here. 2009-10-18 Bruno Haible Avoid symlink attack in localcharset module. * lib/localcharset.c: Include , . (O_NOFOLLOW): Define fallback. (get_charset_aliases): Don't open the file if it is a symbolic link. * m4/fcntl_h.m4 (gl_FCNTL_O_FLAGS): New macro, extracted from gl_FCNTL_H. (gl_FCNTL_H): Require it. * m4/localcharset.m4 (gl_LOCALCHARSET): Likewise. * modules/localcharset (Files): Add m4/fcntl_h.m4. Reported by Fergal Glynn . 2009-10-18 Bruno Haible Implement nproc for mingw. * lib/nproc.c: Include (num_processors): On native Windows platforms, try GetSystemInfo. 2009-10-18 Bruno Haible Implement nproc for IRIX. * lib/nproc.c: Include . (num_processors): On IRIX systems, try sysmp. * m4/nproc.m4 (gl_PREREQ_NPROC): Check for sys/sysmp.h and sysmp. 2009-10-18 Bruno Haible Implement nproc for HP-UX. * lib/nproc.c: Include (num_processors): On HP-UX systems, try pstat_getdynamic. * m4/nproc.m4 (gl_PREREQ_NPROC): Check for sys/pstat.h and pstat_getdynamic. 2009-10-18 Giuseppe Scrivano Bruno Haible Implement nproc for NetBSD, OpenBSD. * lib/nproc.c: Include , , . (ARRAY_SIZE): New macro. (num_processors): On BSD systems, try sysctl of HW_NCPU. * m4/nproc.m4: New file. * modules/nproc (Files): Add m4/nproc.m4. (configure.ac): Invoke gl_NPROC. Remove AC_LIBOBJ invocation. (Makefile.am): Instead, augment lib_SOURCES. 2009-10-18 Bruno Haible Fix recognition of sys/sysctl.h on OpenBSD 4.0. * m4/physmem.m4 (gl_PHYSMEM): Before including sys/sysctl.h, include sys/param.h. 2009-10-16 Eric Blake utimensat: new module * modules/utimensat: New file. * lib/utimensat.c (utimensat): Likewise. * m4/utimensat.m4 (gl_FUNC_UTIMENSAT): Likewise. * lib/utimens.c (utimensat): Avoid recursion into rpl_utimensat, so we can work around Linux bugs. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Add witnesses. * modules/sys_stat (Makefile.am): Substitute them. * lib/sys_stat.in.h (utimensat): Declare it. * MODULES.html.sh (systems lacking POSIX:2008): Mention module. * doc/posix-functions/utimensat.texi (utimensat): Likewise. * modules/utimensat-tests: New test. * tests/test-utimensat.c: Likewise. utimens: let lutimens work on non-symlinks * lib/utimens.c (lutimens): Fall back to utimens rather than failing with ENOSYS, when file is not a symlink. (utimens): Reduce redirection. * tests/test-lutimens.h (test_lutimens): Update test to cover non-symlinks. * tests/test-utimens.h (test_utimens): Update test to cover symlinks. * tests/test-utimens.c (main): Update caller. utimens: cache whether utimensat syscall works * lib/utimens.c (utimensat_works_really): New cache variable. (fdutimens, lutimens): Use it to avoid failing syscall. test-stat-time, test-utimens: improve portability * tests/test-stat-time.c (nap): Lengthen delay to 20ms, for ext4 on alpha, and for cygwin. * tests/test-utimens-common.h: New file. (nap): Factor delays into single function. * tests/test-lutimens.h (test_lutimens): Use new header. * tests/test-futimens.h (test_futimens): Likewise. * tests/test-utimens.h (test_utimens): Likewise. Also, force NFS timestamps to occur from same machine, as was done previously for test_utimens. * modules/utimens-tests (Files): Ship new file. * modules/futimens-tests (Files): Likewise. Reported in part by Jim Meyering. sys_stat: sort replacement declarations * lib/sys_stat.in.h: Sort declarations. * lib/futimens.c (futimens): Fix typo. 2009-10-15 Jim Meyering don't let environment settings perturb build Setting the envvars, LIB_CLOCK_GETTIME, LIB_EACCESS or LIB_NANOSLEEP could cause a configure-time and/or build-time malfunction. Typically, a configure-time function-in-library test is performed via code like this: LIB_VAR= AC_SUBST([LIB_VAR]) prefix_saved_LIBS=$LIBS AC_SEARCH_LIBS([FUNC], [LIB_NAME], [test "$ac_cv_search_FUNC" = "none required" || LIB_VAR=$ac_cv_search_FUNC]) LIBS=$prefix_saved_LIBS However, in each of the files affected by this change, the LIB_VAR= initialization was omitted. Thus, when set in the environment, its value would propagate into generated Makefiles when FUNC is not found in LIB_NAME. * m4/clock_time.m4 (gl_CLOCK_TIME): Initialize AC_SUBST'd var. * m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Likewise. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise. 2009-10-14 Eric Blake fchdir: avoid infinite recursion in mingw * lib/fchdir.c (rpl_fstat): Call system fstat, rather than recursing. test-stat-time: port to mingw * tests/test-stat-time.c (force_unlink): Return a value. (test_ctime) [W32]: Fix compilation error. (nap): Don't call usleep with too large an argument. Use force_unlink. * doc/pastposix-functions/usleep.texi (usleep): Document the portability issue. 2009-10-13 Jim Meyering use AC_CHECK_FUNCS_ONCE, not AC_CHECK_FUNCS in modules/* * modules/pipe-filter-gi: Use AC_CHECK_FUNCS_ONCE, not AC_CHECK_FUNCS. * modules/pipe-filter-ii: Likewise. * modules/sys_socket-tests: Likewise. * modules/tsearch-tests: Likewise. * Makefile (sc_prefer_ac_check_funcs_once): New rule. (check): Depend on it. 2009-10-12 Eric Blake utimens-tests: port to NFS file systems * tests/test-utimens.h (test_utimens): Refactor utimecmp comparisons to avoid spurious failures from timestamp drift between NFS machines. 2009-10-12 Eric Blake stat-time-tests: minor cleanups * modules/stat-time-tests (configure.ac): Use AC_CHECK_FUNCS_ONCE. * tests/test-stat-time.c (nap): Separate assignment from call. Suggested by Paolo Bonzini and Bruno Haible. sys_stat: guarantee struct timespec * lib/sys_stat.in.h (includes): Always include * modules/sys_stat (Depends-on): Add time. * tests/test-sys_stat.c: Guarantee struct timespec, as well as mode_t permission values. * doc/posix-headers/sys_stat.texi (sys/stat.h): Document how to get at subsecond timestamps. 2009-10-10 Eric Blake futimens: new module * modules/futimens: New file. * lib/futimens.c (futimens): Likewise. * m4/futimens.m4 (gl_FUNC_FUTIMENS): Likewise. * lib/utimens.c (futimens): Avoid recursion into rpl_futimens, so we can work around Linux bugs. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Add witnesses. * modules/sys_stat (Makefile.am): Substitute them. * lib/sys_stat.in.h (futimens): Declare it. * MODULES.html.sh (systems lacking POSIX:2008): Mention module. * doc/posix-functions/futimens.texi (futimens): Likewise. * modules/futimens-tests: New test. * tests/test-futimens.c: Likewise. utimens: introduce fdutimens * lib/utimens.h (fdutimens): New prototype. * lib/utimens.c (gl_futimens): Move guts... (fdutimens): ...to new interface. * tests/test-utimens.c (do_fdutimens): Use it. utimens: add UTIME_NOW and UTIME_OMIT support * lib/utimens.c (validate_timespec, update_timespec): New helper functions. (gl_futimens, lutimens): Use them. * modules/utimens (Depends-on): Add gettime, lstat, stat-time, stdbool, sys_stat. (Link): Mention resulting library dependency. * modules/utimecmp (Link): Likewise. * modules/utimens-tests (Depends-on): Drop stat-time, stdbool. (Makefile.am): Pick up library dependency. * lib/sys_stat.in.h (UTIME_NOW, UTIME_OMIT): Guarantee a definition. * tests/test-sys_stat.c: Test the definitions. * doc/posix-headers/sys_stat.texi (sys/stat.h): Document this. * NEWS: Document library dependency. utimecmp: support symlink timestamps * lib/utimecmp.c (utimecmp): Use new interface. Skip effort of hashing when possible. Use pathconf when available. (SYSCALL_RESOLUTION): Recognize tighter resolution. * modules/utimecmp (Depends-on): Add lstat. utimens: add lutimens interface * lib/utimens.c (lutimens): New function. * m4/utimens.m4 (gl_UTIMENS): Check for lutimes. * lib/utimens.h (lutimens): Declare new interface. * tests/test-utimens.c (main): Enhance test. * tests/test-lutimens.h (test_lutimens): New file. * modules/utimens-tests (Files): Distribute it. (Depends-on): Add symlink. (configure.ac): Check for usleep. utimens: validate futimens usage * lib/utimens.c (gl_futimens): Require valid fd up front, using fewer syscalls on failure later on. Avoid compiler warning on mingw. * modules/utimens (Depends-on): Add dup2. utimens: add test * modules/utimens-tests: New test. * tests/test-utimens.h: New file. * tests/test-futimens.h: Likewise. * tests/test-utimens.c: Likewise. doc: mention timestamp portability issues * doc/glibc-functions/lutimes.texi (lutimes): Refer to utimensat instead. * doc/posix-functions/utime.texi (utime): Likewise. * doc/posix-functions/utimes.texi (utimes): Likewise. * doc/glibc-functions/futimes.texi (futimes): Refer to futimens instead. * doc/posix-functions/futimens.texi (futimens): Mention utimens module. * doc/posix-functions/utimensat.texi (utimensat): Likewise. Mention weakness with symlink timestamps. * doc/glibc-functions/futimesat.texi (futimesat): New file; refer to utimensat/futimens instead. * doc/gnulib.texi (Glibc sys/time.h): Include new file. test-dup2: enhance test * tests/test-dup2.c (main): Also check AT_FDCWD. test-stat-time: avoid more spurious failures * tests/test-stat-time.c (nap): Wait for 15ms rather than 2ms, for xfs; and avoid race if the two timestamps cross quantization edge. relocatable: prefer 'file system' over 'filesystem' * m4/relocatable-lib.m4 (gl_RELOCATABLE_NOP): Use AS_HELP_STRING. (gl_RELOCATABLE_LIBRARY_BODY): Fix spelling. * doc/relocatable-maint.texi (Supporting Relocation): Likewise. * doc/relocatable.texi (Enabling Relocatability): Likewise. * lib/relocatable.c (compute_curr_prefix): Likewise. 2009-10-10 Jim Meyering stat-time-tests: check for the usleep function * modules/stat-time-tests (configure.ac): Now that we test HAVE_USLEEP. 2009-10-10 Bruno Haible * modules/xnanosleep: Put the Link section after the Include section. 2009-10-09 Eric Blake dup2: work around FreeBSD 6.1 bug * m4/dup2.m4 (gl_FUNC_DUP2): Detect bug. * doc/posix-functions/dup2.texi (dup2): Document it. Reported by Nelson H. F. Beebe and Jim Meyering. test-stat-time: port to buggy NFS clients * tests/test-stat-time.c (main) [W32]: Reduce ifdefs. (test_ctime): Also skip test if mtime and ctime are skewed. maint: prefer 'file system' over 'filesystem' * doc/posix-functions/fstatat.texi (fstatat): Likewise. * doc/posix-functions/lstat.texi (lstat): Likewise. * lib/file-has-acl.c (file_has_acl): Likewise. * lib/fwriteerror.c [TEST]: Likewise. * tests/test-areadlink.h (test_areadlink): Likewise. * tests/test-areadlinkat-with-size.c (main): Likewise. * tests/test-areadlinkat.c (main): Likewise. * tests/test-canonicalize-lgpl.c (main): Likewise. * tests/test-canonicalize.c (main): Likewise. * tests/test-fstatat.c (main): Likewise. * tests/test-linkat.c (main): Likewise. * tests/test-lstat.h (test_lstat_func): Likewise. * tests/test-mkdir.h (test_mkdir): Likewise. * tests/test-readlink.h (test_readlink): Likewise. * tests/test-remove.c (main): Likewise. * tests/test-rename.h (test_rename): Likewise. * tests/test-renameat.c (main): Likewise. * tests/test-rmdir.h (test_rmdir_func): Likewise. * tests/test-symlink.h (test_symlink): Likewise. * tests/test-symlinkat.c (main): Likewise. * tests/test-unlink.h (test_unlink_func): Likewise. * tests/test-unlinkat.c (main): Likewise. maint: make realtime library usage explicit * modules/gethrxtime (Link): Mention LIB_GETHRXTIME. * modules/gettime (Link): Mention LIB_CLOCK_GETTIME. * modules/settime (Link): Likewise. * modules/xnanosleep (Link): Mention LIB_NANOSLEEP. test-stat-time: speed up execution * tests/test-stat-time.c (test_ctime) [!W32]: Avoid compiler warning on mingw. (nap): New helper function. (prepare_test): Use it to reduce sleep time. (test_mtime, test_ctime, test_birthtime): Allow for subsecond execution. * modules/stat-time-tests (configure.ac): Check for usleep. 2009-10-09 Jim Meyering selinux-h: always use getfilecon wrappers * lib/getfilecon.c: New file. * lib/se-selinux.in.h: Use a better inclusion guard symbol name. [HAVE_SELINUX_SELINUX_H]: Include-next . [!HAVE_SELINUX_SELINUX_H]: Use better parameter names. (fgetfilecon): Provide a stub. * m4/selinux-selinux-h.m4 (gl_HEADERS_SELINUX_SELINUX_H): Don't AC_SUBST SELINUX_SELINUX_H, since now we're generating that file unconditionally. When is found, arrange to use wrappers. * modules/selinux-h (Files): Add getfilecon.c. (Makefile.am): Substitute include-next-related bits into the now-always-generated selinux/selinux.h file. * doc/glibc-functions/lgetfilecon.texi: New file. * doc/glibc-functions/fgetfilecon.texi: New file. * doc/glibc-functions/getfilecon.texi: New file. * doc/glibc-functions/getfilecon-desc.texi: New file. * doc/gnulib.texi (Glibc selinux/selinux.h): New section, by which to pull in the new files. * MODULES.html.sh (Misc): Add selinux-h. 2009-10-08 Jim Meyering unistd: fix comment typo * lib/unistd.in.h (euidaccess): Fix a comment typo. 2009-10-08 Eric Blake areadlink: use SIZE_MAX consistently * modules/areadlink (Depends-on): Add stdint. * modules/areadlink-with-size (Depends-on): Likewise. * lib/areadlink-with-size.c (includes): Drop stdio, since stdlib gives NULL; drop sys/types, since unistd gives size_t; and add stdint for SIZE_MAX. (SIZE_MAX): Rely on headers. * lib/areadlinkat-with-size.c (includes): Drop stdio, sys/types, and add stdint. * lib/areadlink.c (includes): Drop sys/types, and add stdint. (SIZE_MAX): Likewise. (INITIAL_BUF_SIZE): Turn into enum. * lib/areadlinkat.c (INITIAL_BUF_SIZE): Likewise. 2009-10-08 Jim Meyering areadlinkat: avoid compilation failure * lib/areadlinkat.c: Include for use of SIZE_MAX. Fix typo in comment. 2009-10-07 Eric Blake areadlinkat-with-size: new module * modules/areadlinkat-with-size: New module. * lib/areadlinkat-with-size.c (areadlinkat_with_size): New file. * lib/areadlink.h (areadlinkat): Declare it. * MODULES.html.sh (File system functions): Mention it. * modules/areadlinkat-with-size-tests: New test. * tests/test-areadlinkat-with-size.c: New file. xreadlinkat: new module * modules/xreadlinkat: New module. * lib/xreadlinkat.c (xreadlinkat): New file. * lib/xreadlink.h (xreadlinkat): Declare it. * MODULES.html.sh (File system functions): Mention it. areadlinkat: new module * lib/at-func.c (FUNC_FAIL): New define. (AT_FUNC_NAME, VALIDATE_FLAG): Use it rather than raw -1. * modules/areadlinkat: New module. * lib/linkat.c (areadlinkat): Move... * lib/areadlinkat.c (areadlinkat): ...to new file. * lib/areadlink.h (areadlinkat): Declare it. * modules/linkat (Depends-on): Add areadlinkat. * MODULES.html.sh (File system functions): Mention it. * modules/areadlinkat-tests: New test. * tests/test-areadlinkat.c: New file. areadlink, areadlink-with-size: add tests * modules/areadlink-tests: New test. * modules/areadlink-with-size-tests: Likewise. * tests/test-areadlink.h: New file. * tests/test-areadlink.c: Likewise. * tests/test-areadlink-with-size.c: Likewise. maint: minor cleanups * lib/fts.c (ATTRIBUTE_UNUSED): Delete; use gnulib-guaranteed _UNUSED_PARAMETER_ instead. * lib/getdate.y (ATTRIBUTE_UNUSED): Likewise. * lib/utimens.c (ATTRIBUTE_UNUSED): Likewise. * modules/linkat-tests (Files): Distribute test-link.h. openat, utimens: whitespace cleanup * lib/openat.c: Prefer space throughout, rather than mix of 8 spaces vs. tabs. * lib/at-func.c: Likewise. * lib/utimens.c: Likewise. openat: avoid using wrong fd * lib/openat.c (openat_permissive): Reject user's fd if saving the working directory chooses same fd. * lib/at-func.c (AT_FUNC_NAME): Likewise. mkdir, mkdirat: fix cygwin 1.5.x bug * lib/mkdir.c (rpl_mkdir) [FUNC_MKDIR_DOT_BUG]: Work around bug. * m4/mkdir-slash.m4 (gl_FUNC_MKDIR_TRAILING_SLASH): Move... * m4/mkdir.m4 (gl_FUNC_MKDIR): ...here, and add check for cygwin bug. (gl_PREREQ_MKDIR): Delete unused macro. * modules/mkdir (Files): Track file rename. (configure.ac): Update macro name. * modules/openat (Depends-on): Add mkdir. * doc/posix-functions/mkdir.texi (mkdir): Document the bug. mkdir, mkdirat: add tests * modules/mkdir-tests: New test. * tests/test-mkdir.h: New file. * tests/test-mkdir.c: Likewise. * tests/test-mkdirat.c: Likewise. * modules/openat-tests (Files): Add new files. (Makefile.am): Run new test. 2009-10-06 Eric Blake doc: tweak *at function documentation * doc/posix-functions/faccessat.texi (faccessat): Mention known issue with replacement. * doc/posix-functions/fchdir.texi (fchdir): Likewise. * doc/posix-functions/linkat.texi (linkat): Likewise. * doc/posix-functions/mkfifoat.texi (mkfifoat): Likewise. * doc/posix-functions/mknodat.texi (mknodat): Likewise. * doc/posix-functions/readlinkat.texi (readlinkat): Likewise. * doc/posix-functions/renameat.texi (renameat): Likewise. * doc/posix-functions/symlinkat.texi (symlinkat): Likewise. openat: fix GNU/Hurd bug in unlinkat * m4/openat.m4 (gl_FUNC_OPENAT): Replace unlinkat if unlink is broken. * doc/posix-functions/unlink.texi (unlink): Document this. * doc/posix-functions/unlinkat.texi (unlinkat): Likewise. fdopendir: fix GNU/Hurd bug * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Check for Hurd bug in allowing non-directory fds. * lib/fdopendir.c (rpl_fdopendir): Work around it. * m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): New witness. * modules/dirent (Makefile.am): Substitute it. * lib/dirent.in.h (fdopendir): Declare replacement. * doc/posix-functions/fdopendir.texi (fdopendir): Document this. * tests/test-fdopendir.c (main): Test something other than /dev/null, since on Hurd that behaves like a directory. test-symlink: port to GNU/Hurd * tests/test-symlink.h (test_symlink): Relax expected errno. doc: tweak more cygwin information * doc/glibc-headers/getopt.texi (getopt.h): Cygwin 1.7 getopt is now compatible with glibc. * doc/posix-functions/getopt.texi (getopt): Likewise. getopt-gnu: add another test * tests/test-getopt_long.h (test_getopt_long_posix): New test, to guarantee behavior relied on by m4. * tests/test-getopt.c (main): Use it. * modules/getopt-posix-tests (Depends-on): Add setenv. See http://lists.gnu.org/r/bug-m4/2006-09/msg00028.html. getopt: fix compilation on darwin * lib/getopt.in.h (includes): Leave breadcrumbs during system include. * lib/unistd.in.h (getopt): Use them to avoid recursive include. Reported by Ludovic Courtès. 2009-10-06 Bruno Haible * modules/size_max (Description): Discourage its use. Reported by Simon Josefsson. 2009-10-06 Jim Meyering linkat: avoid compilation failure * lib/linkat.c: Include for use of SIZE_MAX. 2009-10-05 Eric Blake linkat: support Linux 2.6.17 * m4/linkat.m4 (gl_FUNC_LINKAT): Default to always replacing linkat on Linux, but allow cache variable override. * lib/linkat.c (rpl_linkat): Define override. * modules/linkat (Depends-on): Add symlinkat. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add new default. * modules/unistd (Makefile.am): Substitute it. * lib/unistd.in.h (linkat): Declare replacement. Reported by Pádraig Brady. quotearg: port test to systems with C.UTF-8 locale * tests/test-quotearg.c (struct result_strings): Add another member, differentiating between C.ASCII and C.UTF-8 handling. (compare_strings): Add parameter. (main): Adjust all callers. getopt: avoid clash with FreeBSD _getopt_internal * lib/getopt.in.h (_getopt_internal): Override the name. * lib/getopt_int.h (includes): Pick up any overrides. Reported by Reuben Thomas. hash: allow C89 compilation * lib/hash.c (check_tuning): Move declaration before statement. Reported by Reuben Thomas. 2009-10-05 Karl Berry * doc/gnulib.texi: @include execvpe.texi, missing for several days. 2009-10-04 Paolo Bonzini Bruno Haible * lib/uname.c (uname): Use a table-driven algorithm to compute Windows NT versions. 2009-10-04 Bruno Haible * lib/progname.c (set_program_name): Also remove the "lt-" prefix from program_invocation_short_name. * modules/progname (configure.ac): Test for presence of program_invocation_short_name. Reported by Sergey Poznyakoff . 2009-10-04 Bruno Haible * lib/progname.c (set_program_name): Fix comment. Reported by Jim Meyering. 2009-10-03 Paolo Bonzini Bruno Haible * lib/uname.c: Include . (uname): Do only one call to GetVersionEx in the common case. 2009-10-03 Paolo Bonzini Bruno Haible * lib/uname.c (VER_PLATFORM_WIN32_CE, PROCESSOR_ARCHITECTURE_AMD64, PROCESSOR_ARCHITECTURE_IA32_ON_WIN64): Define fallbacks. (uname): Add support for Windows CE and various non-x86 CPU types. 2009-10-03 Bruno Haible * gnulib-tool (func_create_testdir): Conditionally emit AM_PROG_CC_C_O invocation to tests/configure.ac. Reported by Ian Beckwith . 2009-10-02 Eric Blake fchdir: avoid compiler warning * lib/fchdir.c (canonicalize_file_name) [!HAVE_CANONICALIZE_FILE_NAME]: Avoid compiler warning on mingw. test-open: support mingw errno values * tests/test-open.h (test_open): Relax test. * tests/test-fopen.h (test_fopen): Likewise. * tests/test-openat-safer.c (main): Likewise. open: fix opening directory on mingw * lib/open.c (open) [REPLACE_OPEN_DIRECTORY]: Correct typo. test-open: on GNU/Hurd, /dev/null is a directory * tests/test-fopen.h (main): Rename... (test_fopen): ...to this. Use a guaranteed non-directory when confirming open behavior on trailing slash. * tests/test-openat-safer.c (main): Likewise. * tests/test-open.h (main): Likewise.... (test_open): ...to this. * tests/test-fopen.c (main): Adjust caller. * tests/test-fopen-safer.c (main): Likewise. * tests/test-open.c (main): Likewise. * tests/test-fcntl-safer.c (main): Likewise. Reported by Samuel Thibault. rename, fchdir: don't ignore chdir failure * lib/fchdir.c (get_name): Abort on unexpected chdir failure. * lib/rename.c (rpl_rename) [W32]: Likewise. (rpl_rename) [RENAME_DEST_EXISTS_BUG]: Avoid one case of losing an empty destination directory if source cannot be renamed, although there is still possibility for failure. * doc/posix-functions/rename.texi (rename): Document the race. Reported by Jim Meyering. maint: cleanup whitespace in recent commits * lib/rename.c (rpl_rename): Remove tabs. * tests/test-link.h (test_link): Likewise. * lib/fchdir.c (get_name): Likewise. Reported by Jim Meyering. 2009-10-02 Ben Pfaff relocatable-prog-wrapper: Add missing dependency on double-slash-root. * modules/relocatable-prog-wrapper: Add dependency. Reported by Ian Beckwith . 2009-10-02 Eric Blake renameat: fix Solaris bugs * m4/renameat.m4 (gl_FUNC_RENAMEAT): Replace renameat if rename needed fixing. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): New witness. * modules/stdio (Makefile.am): Substitute it. * lib/stdio.in.h (renameat): Declare replacement. * lib/renameat.c (rpl_renameat): Implement fix. renameat: new module * modules/renameat: New file. * lib/renameat.c (renameat): Likewise. * m4/renameat.m4 (gl_FUNC_RENAMEAT): Likewise. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Add witnesses. * modules/stdio (Makefile.am): Substitute them. * lib/stdio.in.h (renameat): Declare it. * MODULES.html.sh (systems lacking POSIX:2008): Mention module. * doc/posix-functions/renameat.texi (renameat): Likewise. * modules/renameat-tests: New test. * tests/test-renameat.c: Likewise. rename: fix mingw bugs * lib/rename.c (rpl_rename) [W32]: Fix trailing slash and directory overwrite bugs. rename: fix another cygwin 1.5 bug * m4/rename.m4 (gl_FUNC_RENAME): Split cygwin bugs into two checks. * lib/rename.c (rpl_rename): Don't penalize NetBSD with unnecessary cygwin workarounds. Also work around bug with moving full directory onto an empty one. * modules/rename (Depends-on): Add canonicalize-lgpl, rmdir. rename-dest-slash: merge into rename module * modules/rename-dest-slash (Status): Mark obsolete. (Depends-on): Add rename. (Files): Let rename do it all. * m4/rename.m4 (gl_FUNC_RENAME): Also test for NetBSD bugs, subsuming the test from gl_FUNC_RENAME_TRAILING_DEST_SLASH... * m4/rename-dest-slash.m4: ...so this file can be deleted. * lib/rename-dest-slash.c (rpl_rename_dest_slash): Delete. * lib/rename.c (rpl_rename): Update comments. rename: fix cygwin 1.5.x bugs * m4/rename.m4 (gl_FUNC_RENAME): Detect cygwin bugs. * lib/rename.c (rpl_rename): Work around them. * modules/rename (Depends-on): Add same-inode. rename: fix Solaris 10 bug * m4/rename.m4 (gl_FUNC_RENAME): Detect Solaris bug. * lib/rename.c (rpl_rename): Don't cripple POSIX behavior if this was the only bug. rename: fix Solaris 9 bug * lib/rename.c (rpl_rename): Rewrite to recognize trailing slash on non-directory. Avoid calling exit. * modules/rename (Depends-on): Drop xalloc; add lstat, stdbool, strdup. * modules/rename-tests (Depends-on): Drop lstat. * m4/rename.m4 (gl_FUNC_RENAME): Detect Solaris bug. (gl_PREREQ_RENAME): Delete unused macro. rename-dest-slash: fix NetBSD bug * lib/rename-dest-slash.c (rpl_rename_dest_slash): Detect hard links. * modules/rename-dest-slash (Depends-on): Add same-inode. rename-tests: new test, exposes several platform bugs * modules/rename-tests: New file. * tests/test-rename.h: Likewise. * tests/test-rename.c: Likewise. * doc/posix-functions/rename.texi (rename): Improve documentation, including bugs that will eventually be fixed in gnulib. 2009-10-02 Paolo Bonzini * lib/uname.c: Include (uname): Assume version info is available. 2009-10-02 Jim Meyering gnu-web-doc-update: correct --help output * build-aux/gnu-web-doc-update: Make --help output relevant. gnu-web-doc-update: add standard options * build-aux/gnu-web-doc-update: Add --help, --version, etc. gnu-web-doc-update: New module. Use this script to automatically update the on-line web documentation for your GNU project at http://www.gnu.org/software/$pkg/manual/ * modules/gnu-web-doc-update: New file, from coreutils. * build-aux/gnu-web-doc-update: New script. 2009-10-01 Paolo Bonzini link: LoadLibrary is not needed. * lib/link.c: Use GetModuleHandle. 2009-10-01 Eric Blake getopt: bump serial number * m4/getopt.m4: Increment serial number, to account for 2009-09-24 change. tests: tighten link, rmdir, and remove tests * tests/test-link.h (includes): No need to use here. Clean up if directory hard link was created, otherwise test for trailing '.'. * tests/test-linkat.c (main): Simplify. * tests/test-remove.c (main): Enhance test for trailing '.'. * tests/test-rmdir.h (test_rmdir_func): Likewise. 2009-10-01 Jim Meyering maint.mk: requiring "make major" was annoying, for a "minor" release. What is intended is "stable", to contrast with alpha and beta, so require "make stable", not "make major". * build-aux/announce-gen (%valid_release_types): s/major/stable/. (get_tool_versions): Likewise. * top/maint.mk (ALL_RECURSIVE_TARGETS): s/major/stable/ 2009-09-30 Ben Pfaff Fix broken build of replacement for Windows tmpfile(). * lib/tmpfile.c (tmpfile): Fix call to gen_tempname() to provide flags argument added along with the 'mkostemp' module. 2009-09-28 Bruno Haible Avoid identifier clash with POSIX function 'remove' defined as a macro. * lib/gl_list.h (struct gl_list_implementation): Rename field 'remove' to 'remove_elt'. (gl_list_remove): Update. * lib/gl_list.c (gl_list_remove): Update. * lib/gl_oset.h (struct gl_oset_implementation): Rename field 'remove' to 'remove_elt'. (gl_oset_remove): Update. * lib/gl_list.c (gl_oset_remove): Update. Reported by Eric Blake. 2009-09-28 Eric Blake doc: mention yet more cygwin 1.7 status * doc/posix-functions/fexecve.texi (fexecve): Now implemented in cygwin. * doc/glibc-functions/execvpe.texi (execvpe): New file. * doc/gnulib.texi (Glibc unistd.h): Mention it. argp: fix test failure * lib/argp-help.c (hol_entry_cmp): Don't use _tolower on values that are not upper-case. Pass correct range to tolower. 2009-09-27 Jim Meyering test-yesno: work around sparc-dash here-document infelicity Without this change, the literal \177 byte in a here document would make dash 0.5.5.1-3 access uninitialized memory. * tests/test-yesno.sh: Don't put the \177 byte in the here document. Instead, use a marker, "@", and filter through tr to create the desired contents. Reported as by Kurt Roeckx. 2009-09-27 Bruno Haible Disable untested support for new flavours of ACLs on AIX. * lib/file-has-acl.c (file_has_acl): Mark newer AIX code as work in progress. * lib/set-mode-acl.c (qset_acl): Likewise. 2008-12-07 Bruno Haible Add support for new flavours of ACLs on AIX. (Untested.) * lib/file-has-acl.c [AIX] (acl_nfs4_nontrivial): New function. (file_has_acl): Add support for newer AIX. * lib/set-mode-acl.c (qset_acl): Likewise. * tests/test-sameacls.c (main): Fix use of aclx_get function. Hint by Rainer Tammer . 2009-09-26 Eric Blake argp: fix compilation of getopt * lib/getopt.in.h (includes): Use different guard than glibc. Reported by Sergey Poznyakoff. doc: mention more cygwin 1.7 status * doc/posix-functions/access.texi (access): Mention cygwin 1.5 bug. * doc/posix-functions/execl.texi (execl): Likewise. * doc/posix-functions/execle.texi (execle): Likewise. * doc/posix-functions/execlp.texi (execlp): Likewise. * doc/posix-functions/execv.texi (execv): Likewise. * doc/posix-functions/execve.texi (execve): Likewise. * doc/posix-functions/execvp.texi (execvp): Likewise. * doc/glibc-functions/canonicalize_file_name.texi (canonicalize_file_name): Cygwin 1.7 now provides this. * doc/glibc-functions/euidaccess.texi (euidaccess): Likewise. * doc/posix-functions/fchmodat.texi (fchmodat): Mention limitation on AT_SYMLINK_NOFOLLOW. 2009-09-24 Eric Blake test-linkat: make test more robust * tests/test-linkat.c (main): Avoid collision with EEXIST. getopt: fix inclusion guards for cygwin * modules/getopt-posix (Depends-on): Add include-next. (Makefile.am): Substitute more items in replacement header. * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Also check for native . * lib/getopt.in.h (includes): Use split inclusion guard, and prefer over include when one is present. (option): Also override name of 'struct option'. same-inode: revert prior change; it is not yet ready * NEWS: Undo mention of this change. * lib/same-inode.h (same-inode.h): Undo tri-state change. * lib/cycle-check.h (CYCLE_CHECK_REFLECT_CHDIR_UP): Update caller. * lib/cycle-check.c (cycle_check): Likewise. * lib/same.c (same_name): Likewise. * lib/at-func2.c (at_func2): Likewise. 2009-09-23 Eric Blake linkat: new module * modules/linkat: New file. * lib/at-func2.c (at_func2): Likewise. * lib/linkat.c (linkat): Likewise. * m4/linkat.m4 (gl_FUNC_LINKAT): Likewise. * lib/openat-priv.h (at_func2): Add declaration. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witnesses. * modules/unistd (Makefile.am): Substitute them. * lib/unistd.in.h (linkat): Declare it. * MODULES.html.sh (systems lacking POSIX:2008): Mention module. * doc/posix-functions/linkat.texi (linkat): Likewise. * doc/posix-functions/link.texi (link): Tweak wording. * tests/test-link.c (main): Move guts... * tests/test-link.h (test_link): ...into new file. * modules/linkat-tests: New test. * tests/test-linkat.c: Likewise. * modules/link-tests (Files): Ship new file. (Depends-on): Add stdbool. dirname: add library-safe mdir_name * lib/dirname.h (mdir_name): New prototype. * lib/dirname.c (dir_name): Move guts... (mdir_name): ...to new function that avoids xalloc_die. fchdir: another mingw fix * modules/fchdir (Depends-on): Drop canonicalize-lgpl. * lib/fchdir.c (get_name): New helper method; skips canonicalize on mingw (where it has not yet been ported), and make it optional elsewhere. (_gl_register_fd): Use it. same-inode: make SAME_INODE tri-state, to port to mingw * NEWS: Mention this change. * lib/same-inode.h (same-inode.h): Recognize mingw limitation of st_ino always being 0. * lib/cycle-check.h (CYCLE_CHECK_REFLECT_CHDIR_UP): Update caller. * lib/cycle-check.c (cycle_check): Likewise. * lib/same.c (same_name): Likewise. lstat: avoid mingw compilation error * m4/lstat.m4 (gl_FUNC_LSTAT): Avoid duplicate calls to AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK, and deal with missing lstat ourselves. * lib/lstat.c [!HAVE_LSTAT]: Do nothing if override was adequate. * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Let lstat module handle the checks for lstat. (gl_SYS_STAT_H_DEFAULTS): Set default for HAVE_LSTAT. link: fix test failure on Solaris 9 * lib/link.c (rpl_link): Don't assume link will catch bogus trailing slash on source. test-symlinkat: enhance test * tests/test-readlink.c (main): Move guts... * tests/test-readlink.h (test_readlink): ...into new file. * tests/test-symlink.c (main): Move guts... * tests/test-symlink.h (test_symlink): ...into new file. * tests/test-symlinkat.c (main): Use new files for further coverage. (do_symlink, do_readlink): New helper functions. * modules/symlink-tests (Files): Ship new file. (Depends-on): Add stdbool. * modules/readlink-tests (Files): Ship new file. (Depends-on): Add stdbool. * modules/symlinkat-tests (Files): Use new files. 2009-09-23 Eric Blake readlink: document portability issue with symlink length * doc/posix-functions/lstat.texi (lstat): Mention that some file systems have bogus st_size on symlinks, and mention the areadlink-with-size module. * doc/posix-functions/fstatat.texi (fstatat): Likewise. * doc/posix-functions/readlink.texi (readlink): Mention the areadlink module, and ERANGE failure. * doc/posix-functions/readlinkat.texi (readlinkat): Likewise. * tests/test-readlink.c (main): Relax test for AIX, HP-UX. readlink: fix Solaris 9 bug with trailing slash * lib/readlink.c (rpl_readlink): Work around trailing slash bug. * m4/readlink.m4 (gl_FUNC_READLINK): Detect the bug. * doc/posix-functions/readlink.texi (readlink): Document this. * modules/readlink-tests: New test. * tests/test-readlink.c: Likewise. readlink: fix cygwin 1.5.x bug with return type * m4/readlink.m4 (gl_FUNC_READLINK): Require correct signature. * lib/unistd.in.h (readlink): Use ssize_t. * lib/readlink.c (readlink): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witness. * modules/unistd (Makefile.am): Substitute it. * lib/unistd.in.h (readlink): Declare replacement. * doc/posix-functions/readlink.texi (readlink): Document this. symlink: use throughout gnulib * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Omit symlink check. * lib/symlinkat.c (symlinkat) [!HAVE_SYMLINK]: Document why symlink is not used. * modules/symlinkat (Depends-on): Add symlink. * modules/canonicalize-lgpl-tests (Depends-on): Likewise. * modules/canonicalize-tests (Depends-on): Likewise. * modules/lstat-tests (Depends-on): Likewise. * modules/openat-tests (Depends-on): Likewise. * modules/remove-tests (Depends-on): Likewise. * modules/rmdir-tests (Depends-on): Likewise. * modules/unlink-tests (Depends-on): Likewise. * tests/test-canonicalize-lgpl.c (symlink): Delete stub. * tests/test-canonicalize.c (symlink): Likewise. * tests/test-fstatat.c (symlink): Likewise. * tests/test-lstat.c (symlink): Likewise. * tests/test-remove.c (symlink): Likewise. * tests/test-rmdir.c (symlink): Likewise. * tests/test-unlink.c (symlink): Likewise. * tests/test-unlinkat.c (symlink): Likewise. symlink: new module, for Solaris 9 bug * modules/symlink: New file. * m4/symlink.m4 (gl_FUNC_SYMLINK): Likewise. * lib/symlink.c: Likewise. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add defaults. * modules/unistd (Makefile.am): Substitute them. * lib/unistd.in.h (symlink): Declare replacement. * MODULES.html.sh (File system functions): Mention it. * doc/posix-functions/symlink.texi (symlink): Likewise. * modules/symlink-tests: New test. * tests/test-symlink.c: Likewise. 2009-09-23 Bruno Haible * gnulib-tool (func_import): Add 'link-warning' to testsrelated_modules when needed. Test case: gnulib-tool --import --with-tests atexit inttypes. Reported by Pauli Miettinen . 2009-09-23 Bruno Haible * gnulib-tool (func_emit_tests_Makefile_am): Set uses_subdirs in a subcommand, not in a subshell. 2009-09-22 Eric Blake unistd: sort replacement declarations * lib/unistd.in.h: Sort declarations. open, openat: minor optimization * lib/open.c (open): If open succeeded, len is non-zero. * lib/openat.c (rpl_openat): Likewise. link-follow: ensure correct result * m4/fcntl_h.m4 (gl_FCNTL_H): Clean up temporary file. * m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK): Likewise, and distinguish between possible failures. 2009-09-21 Eric Blake fts: avoid compiler warning * lib/fts.c (dirent_inode_sort_may_be_useful) (leaf_optimization_applies) [!__linux__]: Mark unused parameters. 2009-09-19 Bruno Haible * lib/progreloc.c (canonicalize_file_name): New declaration. 2009-09-19 Eric Blake link: fix quoting * m4/link.m4 (gl_FUNC_LINK): Fix shell quoting. openat: fix openat bugs on Solaris 9 * lib/openat.c (rpl_openat): Work around Solaris 9 bug. * m4/openat.m4 (gl_FUNC_OPENAT): Also replace openat on Solaris. * modules/openat (Depends-on): Add open. * m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Provide new default. * modules/fcntl-h (Makefile.am): Substitute it. * lib/fcntl.in.h (openat): Declare replacement. * doc/posix-functions/openat.texi (openat): Document this. openat: move fstatat and unlinkat into correct files * m4/openat.m4 (gl_FUNC_OPENAT): Adjust which files will be compiled. * lib/openat.c (fstatat, unlinkat): Move... * lib/fstatat.c (fstatat): ...into correct files. * lib/unlinkat.c (unlinkat): Likewise. openat: fix unlinkat bugs on Solaris 9 * lib/unlinkat.c (unlinkat): New file. * modules/openat (Depends-on): Add unlink. (Files): Distribute it. * m4/openat.m4 (gl_FUNC_OPENAT): Mark unlinkat for replacement if trailing slash behavior is broken. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witness. * modules/unistd (Makefile.am): Substitute it. * lib/unistd.in.h (unlinkat): Declare replacement. * doc/posix-functions/unlinkat.texi (unlinkat): Document this. openat: fix fstatat bugs on Solaris 9 * lib/fstatat.c (rpl_fstatat): Copy recent fixes from lstat and stat. * doc/posix-functions/fstatat.texi (fstatat): Document this. test-unlinkat: enhance test, to expose Solaris 9 bug * tests/test-unlink.c (main): Factor guts... * tests/test-unlink.h (test_rmdir_func): ...into new file. * tests/test-rmdir.h (test_rmdir_func): Add parameter. * tests/test-rmdir.c (main): Adjust caller. * tests/test-unlinkat.c (main): Likewise. Add unlink tests. (unlinker): New helper function. (rmdirat): Enhance check. * modules/rmdir-tests (Depends-on): Add stdbool. * modules/unlink-tests (Depends-on): Likewise. (Files): Add test-unlink.h. * modules/openat-tests (Files): Likewise. (Depends-on): Add unlinkdir. test-fstatat: new test, to expose Solaris 9 bugs * tests/test-stat.c (main): Factor guts... * tests/test-stat.h (test_stat_func): ...into new file. * tests/test-lstat.c (main): Factor guts... * tests/test-lstat.h (test_lstat_func): ...into new file. * tests/test-fstatat.c: New file. * modules/stat-tests (Files): Add test-stat.h. * modules/lstat-tests (Files): Add test-lstat.h. (Depends-on): Add stdbool. * modules/openat-tests (Depends-on): Add pathmax. (Files): Add test-lstat.h, test-stat.h, test-fstatat.c. (Makefile.am): Run new test. remove: new module, for mingw and Solaris 9 bugs * modules/remove: New file. * lib/remove.c: Likewise. * m4/remove.m4 (gl_FUNC_REMOVE): Likewise. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Add witnesses. * modules/stdio (Makefile.am): Use them. * lib/stdio.in.h (remove): Declare replacement. * MODULES.html.sh (systems lacking POSIX:2008): Mention module. * doc/posix-functions/remove.texi (remove): Likewise. * modules/remove-tests: New test. * tests/test-remove.c: Likewise. unlink: new module, for Solaris 9 bug * modules/unlink: New file. * lib/unlink.c: Likewise. * m4/unlink.m4 (gl_FUNC_UNLINK): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witnesses. * modules/unistd (Makefile.am): Use them. * lib/unistd.in.h (stat): Declare replacement. * MODULES.html.sh (systems lacking POSIX:2008): Mention module. * doc/posix-functions/unlink.texi (unlink): Likewise. * modules/unlink-tests: New test. * tests/test-unlink.c: Likewise. lstat: fix Solaris 9 bug * lib/lstat.c (lstat): Also check for trailing slash on non-symlink, non-directories. Use stat module to simplify logic. * doc/posix-functions/lstat.texi (lstat): Document it. * modules/lstat-tests (Depends-on): Add errno, same-inode. (configure.ac): Check for symlink. * tests/test-lstat.c (main): Add more tests. stat: add as dependency to other modules * modules/chown (Depends-on): Add stat. * modules/euidaccess (Depends-on): Likewise. * modules/fchdir (Depends-on): Likewise. * modules/isdir (Depends-on): Likewise. * modules/link (Depends-on): Likewise. * modules/lstat (Depends-on): Likewise. * modules/mkdir-p (Depends-on): Likewise. * modules/modechange (Depends-on): Likewise. * modules/open (Depends-on): Likewise. * modules/readlink (Depends-on): Likewise. * modules/same (Depends-on): Likewise. stat: fix Solaris 9 bug * m4/stat.m4 (gl_FUNC_STAT): Detect Solaris 9 bug with trailing slash. * lib/stat.c (rpl_stat): Work around it. * doc/posix-functions/stat.texi (stat): Update documentation. stat: new module, for mingw bug * modules/stat: New file. * lib/stat.c: Likewise. * m4/stat.m4 (gl_FUNC_STAT): Likewise. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Add witnesses. * modules/sys_stat (Makefile.am): Use them. * lib/sys_stat.in.h (stat): Declare replacement. * lib/openat.c (fstatat): Deal with lstat and stat being function macros. * modules/openat (Depends-on): Add inline. * MODULES.html.sh (systems lacking POSIX:2008): Mention module. * doc/posix-functions/stat.texi (stat): Likewise. * modules/stat-tests: New test. * tests/test-stat.c: Likewise. 2009-09-19 Jim Meyering syntax-check: detect unnecessary inclusion of canonicalize.h * top/maint.mk (sc_prohibit_canonicalize_without_use): New rule. 2009-09-19 Eric Blake canonicalize-lgpl: adjust clients to use correct header * m4/canonicalize.m4 (gl_FUNC_CANONICALIZE_FILENAME_MODE) (gl_CANONICALIZE_LGPL): Use correct shell quoting. * modules/relocatable-prog-wrapper (Files): Drop canonicalize.h. * lib/fchdir.c (includes): Use , not "canonicalize.h". * lib/progreloc.c (includes): Likewise. 2009-09-19 Jim Meyering test-posixtm.c: correct a comment * tests/test-posixtm.c: Correct first-line comment. Spotted by Eric Blake. 2009-09-16 Jim Meyering posixtm-tests: make T const-correct; add a test case * tests/test-posixtm.c (T): Declare const. Add a test for -(2^31+1). Remove useless can-succeed-only-in-2002 test. posixtm-tests: adjust the sole failing test * tests/test-posixtm.c: Correct 0000-01-01 00:00:00 test so that expected output matches what mktime now produces. Cross-checked via erlang's calendar:datetime_to_gregorian_seconds({{1970,1,1},{0,0,0}}) posixtm: move #ifdef'd tests into a new module * lib/posixtm.c (posixtime): Remove #ifdef'd tests. Move to... * tests/test-posixtm.c: ... this new file. * modules/posixtm-tests: New module. 2009-09-19 Eric Blake openat: simplify use of at-func.c * lib/at-func.c (includes): Include prerequisites here, to simplify requirements on client files. * lib/openat-priv.h: Add double-inclusion guard. * lib/faccessat.c (includes): Simplify. * lib/fchmodat.c (includes): Likewise. * lib/fchownat.c (includes): Likewise. * lib/mkdirat.c (includes): Likewise. * lib/mkfifoat.c (includes): Likewise. * lib/symlinkat.c (includes): Likewise. openat: allow return of fd 0 * modules/chdir-long (Depends-on): Relax openat-safer to openat. * modules/save-cwd (Depends-on): Replace fcntl-safer with unistd-safer. * lib/chdir-long.c (includes): Replace "fcntl--.h" with ; this module does not leak fds. * lib/openat.c (includes): Do not use "fcntl_safer"; plain openat must be allowed to return 0, leaving openat_safer to add the safety. (openat_permissive): Avoid writing to just-opened fd 2 if restoring the current directory fails. * lib/openat-die.c (openat_restore_fail): Add comment. * lib/save-cwd.c (includes): Make "fcntl--.h" conditional. (save_cwd): Guarantee safe fd, but without use of open_safer. * tests/test-openat.c: New test. * modules/openat-tests (Files, Makefile.am): Distribute and build new file. relocatable-prog-wrapper: fix build * modules/relocatable-prog-wrapper (Files): Update name of canonicalize m4 file, broken on 2009-09-17. Reported by emad hajjar . 2009-09-19 Bruno Haible * lib/safe-alloc.h: Use the standard header with GPL copyright. * lib/safe-alloc.c: Likewise. Reported by Ian Beckwith . 2009-09-18 Bruno Haible * gnulib-tool: Add advice to "cannot find configure.ac" error message. Reported by . 2009-09-17 Eric Blake canonicalize: in CAN_ALL_BUT_LAST, allow trailing slash * lib/canonicalize.c (canonicalize_filename_mode): Skip trailing slashes when checking if last component is missing. * tests/test-canonicalize.c (main): Test this. canonicalize, canonicalize-lgpl: honor // if distinct from / * modules/canonicalize (Files): Add double-slash-root.m4. * modules/canonicalize-lgpl (Files): Likewise. * m4/canonicalize.m4 (gl_FUNC_CANONICALIZE_FILENAME_MODE) (gl_CANONICALIZE_LGPL_SEPARATE): Add dependency. * lib/canonicalize.c (DOUBLE_SLASH_IS_DISTINCT_ROOT): Provide fallback definition. (canonicalize_filename_mode): Use it to protect //. * lib/canonicalize-lgpl.c (DOUBLE_SLASH_IS_DISTINCT_ROOT) (__realpath): Likewise. * tests/test-canonicalize.c (main): Test this. * tests/test-canonicalize-lgpl.c (main): Likewise. * modules/canonicalize-tests (Depends-on): Add same-inode. * modules/canonicalize-lgpl-tests (Depends-on): Likewise. canonicalize-lgpl: fix glibc bug with trailing slash * m4/canonicalize-lgpl.m4: Move contents... * m4/canonicalize.m4: ...here. (gl_CANONICALIZE_LGPL): Factor realpath check... (gl_FUNC_REALPATH_WORKS): ...into new macro. Enhance to catch glibc 2.3.5 bug, fixed 2005-04-27. (gl_FUNC_CANONICALIZE_FILENAME_MODE): Use it. (gl_PREREQ_CANONICALIZE_LGPL): Inline... (gl_CANONICALIZE_LGPL_SEPARATE): ...into this macro. * modules/canonicalize-lgpl (Files): Manage file rename. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Provide default. * modules/stdlib (Makefile.am): Substitute witness. * lib/stdlib.in.h (canonicalize_file_name): Declare if replacement is needed. * lib/canonicalize-lgpl.c: Also compile if canonicalize_file_name replacement is required. * lib/canonicalize.c (canonicalize_file_name): Likewise. * doc/glibc-functions/canonicalize_file_name.texi (canonicalize_file_name): Document this. * doc/posix-functions/realpath.texi (realpath): Likewise. canonicalize-lgpl: reject non-directory with trailing slash * lib/canonicalize-lgpl.c (__realpath): Synchronize with glibc. * tests/test-canonicalize-lgpl.c (main): Enhance test. This catches failures in glibc 2.3.5. * tests/test-canonicalize.c (main): Likewise. canonicalize-lgpl: use native realpath if it works * lib/canonicalize-lgpl.c (realpath): Guard with FUNC_REALPATH_WORKS. * lib/stdlib.in.h (realpath): Make declaration optional based on HAVE_REALPATH. * m4/canonicalize-lgpl.m4 (gl_CANONICALIZE_LGPL): Check whether native realpath works. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Provide default. * modules/stdlib (Makefile.am): Substitute witness. canonicalize, canonicalize-lgpl: use * modules/canonicalize-lgpl (Files): Drop canonicalize.h. (Include): Mention . (configure.ac): Mention functions we provide. * modules/canonicalize (configure.ac): Likewise. * m4/canonicalize-lgpl.m4 (gl_CANONICALIZE_LGPL): Always replace realpath if canonicalize_file_name is missing. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Provide defaults. * modules/stdlib (Makefile.am): Substitute witnesses. * lib/stdlib.in.h (canonicalize_file_name, realpath): Declare. * lib/canonicalize-lgpl.c (includes): Adjust accordingly. * lib/canonicalize.h (canonicalize_file_name): Drop declaration. * NEWS: Document this. * doc/glibc-functions/canonicalize_file_name.texi (canonicalize_file_name): Likewise. * doc/posix-functions/realpath.texi (realpath): Likewise. * tests/test-canonicalize-lgpl.c (includes): Use . test-canonicalize: consolidate into single C program * tests/test-canonicalize.sh: Delete; move setup into... * tests/test-canonicalize.c (main): ...the program, making it easier to run in debugger. Add some tests. * modules/canonicalize-tests (Files): Remove unused file. (Depends-on): Add progname. (configure.ac, Makefile.am): Simplify. test-canonicalize-lgpl: consolidate into single C program * tests/test-canonicalize-lgpl.sh: Delete; move setup into... * tests/test-canonicalize-lgpl.c (main): ...the program, making it easier to run in debugger. Add some tests. * modules/canonicalize-lgpl-tests (Files): Remove unused file. (configure.ac, Makefile.am): Simplify. canonicalize: avoid resolvepath * m4/canonicalize.m4 (gl_FUNC_CANONICALIZE_FILENAME_MODE): Delete unnecessary checks. * lib/canonicalize.c (includes): Simplify. (canonicalize_file_name): Drop resolvepath implementation. * modules/canonicalize (Depends-on): Drop filenamecat. canonicalize: don't lose errno * lib/canonicalize.c (canonicalize_filename_mode): Protect errno over calls to free. canonicalize: simplify errno handling * lib/canonicalize.c (__set_errno): Delete macro, and use direct assignment. canonicalize, canonicalize-lgpl: update module dependencies * modules/canonicalize (Depends-on): Add extensions, lstat, pathmax, stdlib. (Files): Drop pathmax.h. (configure.ac): Adjust macro name. * modules/canonicalize-lgpl (Depends-on): Add errno, extensions, lstat, stdlib, sys_stat. * m4/canonicalize.m4 (AC_FUNC_CANONICALIZE_FILE_NAME): Rename... (gl_FUNC_CANONICALIZE_FILENAME_MODE): ...to this, and require extensions. * m4/canonicalize-lgpl.m4 (gl_CANONICALIZE_LGPL) (gl_CANONICALIZE_LGPL_SEPARATE): Require extensions. (gl_PREREQ_CANONICALIZE_LGPL): Assume unistd.h. * lib/canonicalize.h (canonicalize_file_name): Use declaration, if available. * lib/canonicalize-lgpl.c [HAVE_READLINK]: Delete this condition; we can rely on the readlink module. (MAXSYMLINKS): Also consult SYMLOOP_MAX. (includes): Use unconditionally. 2009-09-17 Eric Blake maint: make Include sections of modules consistent * modules/alloca: Use only header name; no need to list #include. * modules/alloca-opt: Likewise. * modules/arpa_inet: Likewise. * modules/canon-host: Likewise. * modules/configmake: Likewise. * modules/dirent: Likewise. * modules/eealloc: Likewise. * modules/environ: Likewise. * modules/fchdir: Likewise. * modules/fcntl: Likewise. * modules/fcntl-h: Likewise. * modules/gethrxtime: Likewise. * modules/gettime: Likewise. * modules/ignore-value: Likewise. * modules/inet_ntop: Likewise. * modules/inet_pton: Likewise. * modules/inttypes: Likewise. * modules/isnand-nolibm: Likewise. * modules/isnanf-nolibm: Likewise. * modules/mbchar: Likewise. * modules/mbfile: Likewise. * modules/mbiter: Likewise. * modules/mbuiter: Likewise. * modules/netdb: Likewise. * modules/netinet_in: Likewise. * modules/nproc: Likewise. * modules/pagealign_alloc: Likewise. * modules/poll: Likewise. * modules/printf-frexp: Likewise. * modules/pthread: Likewise. * modules/putenv: Likewise. * modules/random_r: Likewise. * modules/relocatable-prog: Likewise. * modules/search: Likewise. * modules/select: Likewise. * modules/selinux-h: Likewise. * modules/settime: Likewise. * modules/signal: Likewise. * modules/size_max: Likewise. * modules/socklen: Likewise. * modules/ssize_t: Likewise. * modules/stdarg: Likewise. * modules/stdbool: Likewise. * modules/stddef: Likewise. * modules/stdint: Likewise. * modules/stdio: Likewise. * modules/stdlib: Likewise. * modules/string: Likewise. * modules/strings: Likewise. * modules/sys_file: Likewise. * modules/sys_ioctl: Likewise. * modules/sys_select: Likewise. * modules/sys_socket: Likewise. * modules/sys_stat: Likewise. * modules/sys_time: Likewise. * modules/sys_times: Likewise. * modules/sys_utsname: Likewise. * modules/sys_wait: Likewise. * modules/sysexits: Likewise. * modules/time: Likewise. * modules/times: Likewise. * modules/tmpfile: Likewise. * modules/trim: Likewise. * modules/unistd: Likewise. * modules/wchar: Likewise. * modules/wctype: Likewise. 2009-09-17 Bruno Haible Make getdate.y compile on QNX and NetBSD 5 / i386. * m4/getdate.m4 (gl_GETDATE): Conditionally define TIME_T_FITS_IN_LONG_INT. * lib/getdate.y (long_time_t): New type. (relative_time): Change type of 'seconds' field to long_time_t. (get_date): Update types of local variables. Check against overflow during conversion from long_time_t to time_t. Reported by Matt Kraai and Hasso Tepper . 2009-09-17 Bruno Haible * modules/COPYING: Update copyright years. * modules/README: Likeiwse. * doc/gnulib-intro.texi (Copyright): Use a wildcard year. Reported by Ian Beckwith . 2009-09-17 Ian Beckwith (tiny change) * users.txt: Update references for gnuit package. 2009-09-17 Ian Beckwith (tiny change) * m4/getdelim.m4: Fix typo in copyright line. 2009-09-17 Bruno Haible * lib/atoll.c: Use the standard header with GPL copyright. * lib/argz.in.h: Likewise. * lib/glob.c: Likewise. * lib/glob-libc.h: Likewise. * lib/random_r.c: Likewise. * lib/siglist.h: Likewise. * lib/strsignal.c: Likewise. Reported by Ian Beckwith . 2009-09-17 Eric Blake rmdir: ensure correct dependency order * m4/rmdir.m4 (gl_FUNC_RMDIR): Require unistd defaults. 2009-09-17 Bruno Haible Disable assertion that fails on NetBSD 5 / i386. * lib/mktime.c (ydhms_diff): Disable assertion about time_t size. Reported by Sam Steingold and Hasso Tepper . 2009-09-16 Eric Blake unlinkdir: port to mingw * m4/unlinkdir.m4 (gl_UNLINKDIR): Add mingw to list of platforms on which no one can unlink a directory. stdlib: sort witness names * modules/stdlib (Makefile.am): Sort replacements. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Likewise. * lib/stdlib.in.h: Likewise. parse-duration-tests: avoid link failure * modules/parse-duration-tests (test_parse_duration_LDADD): Add LIBINTL. Reported by Tom G. Christensen. openat-tests: ensure unlinkat behaves like rmdir * tests/test-rmdir.c (main): Factor guts... * tests/test-rmdir.h (test_rmdir_func): ...into new file. * modules/rmdir-tests (Files): Ship new file. * modules/openat-tests: New test. * tests/test-unlinkat.c: Likewise. rmdir-errno: mark obsolete, it is unsafe for cross-compilation * modules/rmdir-errno (Status, Notice): Now obsolete. rmdir: work around cygwin 1.5.x and mingw bugs * m4/rmdir.m4 (gl_FUNC_RMDIR): Detect the bugs. * lib/rmdir.c (rmdir): Work around it. * modules/rmdir (Status, Notice): No longer obsolete. (Files): Add dos.m4. (Depends-on): Add unistd. (configure.ac): Set witnesses. (License): Relax to LGPLv2+. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Set defaults. * modules/unistd (Makefile.am): Substitute witnesses. * lib/unistd.in.h (rmdir): Declare replacement. * doc/posix-functions/rmdir.texi (rmdir): Document this. * modules/rmdir-tests: New tests. * tests/test-rmdir.c: Likewise. 2009-09-15 Eric Blake fchdir: improve use of replacement functions * m4/fchdir.m4 (gl_FUNC_FCHDIR): Set appropriate witnesses. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Add REPLACE_FSTAT. * m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): Add REPLACE_OPENDIR, REPLACE_CLOSEDIR. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add REPLACE_DUP. * modules/sys_stat (Makefile.am): Substitute correct witness. * modules/dirent (Makefile.am): Likewise. * modules/unistd (Makefile.am): Likewise. * lib/dirent.in.h (opendir, closedir): Use better witnesses. * lib/unistd.in.h (dup): Likewise. * lib/sys_stat.in.h (fstat): Likewise. maint: ignore gnulib-tool temp files * .gitignore: Ignore files created during gnulib-tool --test. 2009-09-13 Jim Meyering posixtm: don't reject a time that specify "60" as the number of seconds * lib/posixtm.c (posixtime): The code to reject invalid dates would also reject a time specified with the .60 suffix. But POSIX allows that, in order to accommodate leap seconds. So don't reject it. (main): Adjust tests accordingly. * modules/posixtm (Depends-on): Add stpcpy. 2009-09-11 Jim Meyering announce-gen: include [$release_type] in emitted Subject: * build-aux/announce-gen (get_tool_versions): Include [$release_type], e.g., [stable] in the emitted Subject: line. 2009-09-10 Ralf Wildenhues Remove obsolete macros from several modules. * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Replace obsolete Autoconf macros with their modern counterparts. * m4/check-math-lib.m4 (gl_CHECK_MATH_LIB): Likewise. * m4/gc-camellia.m4 (gl_GC_CAMELLIA): Likewise. * m4/getaddrinfo.m4 (gl_GETADDRINFO): Likewise. * m4/getdate.m4 (gl_C_COMPOUND_LITERALS): Likewise. * m4/gethostname.m4 (gl_FUNC_GETHOSTNAME): Likewise. * m4/getline.m4 (gl_FUNC_GETLINE): Likewise. * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Likewise. * m4/isfinite.m4 (gl_ISFINITEL_WORKS): Likewise. * m4/poll.m4 (gl_FUNC_POLL): Likewise. * m4/readline.m4 (gl_FUNC_READLINE): Likewise. * m4/round.m4 (gl_FUNC_ROUND): Likewise. * m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise. * m4/select.m4 (gl_FUNC_SELECT): Likewise. * m4/sockets.m4 (gl_SOCKETS): Likewise. * m4/socklen.m4 (gl_TYPE_SOCKLEN_T): Likewise. * m4/sockpfaf.m4 (gl_SOCKET_FAMILIES): Likewise. * m4/sysexits.m4 (gl_SYSEXITS): Likewise. * m4/time_r.m4 (gl_TIME_R): Likewise. * m4/tsearch.m4 (gl_FUNC_TSEARCH): Likewise. * m4/vararrays.m4 (AC_C_VARARRAYS): Likewise. * m4/wctype.m4 (gl_WCTYPE_H): Likewise. Fix copyright header in build-aux scripts. * build-aux/git-version-gen: Fix copyright header to match GPLv3 recommendation. * build-aux/ncftpput-ftp: Likewise. * build-aux/update-copyright: Likewise. 2009-09-09 Eric Blake test-link: allow Linux choice of errno * tests/test-link.c (main): Relax test for alternate error. strndup: fix improper m4 caching * m4/strndup.m4 (gl_FUNC_STRNDUP): Rework to avoid side effects inside AC_CACHE_CHECK. Use REPLACE_STRNDUP, not HAVE_STRNDUP. (gl_PREREQ_STRNDUP): Delete. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Update default. * modules/string (Makefile.am): Substitute it. * lib/string.in.h (strndup): Modernize prototype. getcwd: port to mingw * m4/getcwd.m4 (gl_FUNC_GETCWD): Mingw directories are very different from the POSIX assumptions made throughout the getcwd module; fortunately, the mingw getcwd does not need replacement. (gl_FUNC_GETCWD_NULL): Skip test on mingw. * modules/getcwd-tests: New test. * tests/test-getcwd.c: Likewise. link: fix platform bugs * m4/link.m4 (gl_FUNC_LINK): Detect Solaris and Cygwin bugs. * lib/link.c (link): Work around them. Fix related mingw bug. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add REPLACE_LINK. * modules/unistd (Makefile.am): Substitute it. * lib/unistd.in.h (link): Declare replacement. * doc/posix-functions/link.texi (link): Document this. * modules/link (Depends-on): Add strdup-posix, sys_stat. test-link: consolidate into single C program, test more cases * tests/test-link.sh: Delete. * tests/test-link.c: Test more error conditions. Exposes bugs on at least Cygwin and Solaris. * modules/link-tests (Files): Remove unused file. (Depends-on): Add errno, sys_stat. (Makefile.am): Simplify. 2009-09-08 Bruno Haible Work around towlower, towupper bug on mingw. * lib/wctype.in.h (towlower, towupper) [__MINGW32__]: New replacements. * m4/wctype.m4 (gl_WCTYPE_H): Replace also on mingw. * doc/posix-functions/towlower.texi: Mention the mingw bug. * doc/posix-functions/towupper.texi: Likewise. Reported by Eric Blake. 2009-09-08 Jim Meyering build: don't try to run autoheader if we don't use it * build-aux/bootstrap: Define AUTOHEADER=true when AC_CONFIG_HEADERS is not used in configure.ac. 2009-09-08 Eric Blake euidaccess: fix compilation error * lib/euidaccess.c (includes): Add , for AT_EACCESS. rawmemchr: relax license * modules/rawmemchr (License): Derived from glibc, so LGPLv2+ is okay. Reported by Jim Meyering. mkfifoat: new module * modules/mkfifoat: New file. * lib/mkfifoat.c: Likewise. * m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Likewise. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Add witnesses. * modules/sys_stat (Makefile.am): Use them. * lib/sys_stat.in.h (mkfifoat, mknodat): Declare them. * MODULES.html.sh (File system functions): Mention module. * doc/posix-functions/mkfifoat.texi (mkfifoat): Likewise. * doc/posix-functions/mknodat.texi (mknodat): Likewise. * modules/mkfifoat-tests: New test. * tests/test-mkfifoat.c: Likewise. strchrnul: relax license * modules/strchrnul (License): Derived from glibc, so LGPLv2+ is okay. Reported by Jim Meyering. 2009-09-08 Eric Blake fstatat: fix compilation on Solaris * lib/fstatat.c (includes): Add fcntl.h. Reported by Pádraig Brady. 2009-09-07 Eric Blake rename: modernize replacement * modules/rename (Depends-on): Add stdio. (configure.ac): Declare witness. * m4/rename.m4 (gl_FUNC_RENAME): Ensure dependency order, and let stdio take care of replacement. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Add new defaults. * modules/stdio (Makefile.am): Substitute them. * lib/stdio.in.h (rename): Declare replacement. * lib/rename.c (includes): Allow cross-compilation to non-windows machines. * doc/posix-functions/rename.texi (rename): Improve documentation. stdio: sort witness names * modules/stdio (Makefile.am): Sort replacements. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Likewise. * lib/stdio.in.h: Likewise. getcwd: minor cleanups * lib/getcwd.c (AT_FDCWD): Delete; rely on instead. (is_ENAMETOOLONG): Delete; ENAMETOOLONG is portable. openat: provide more convenience names * modules/faccessat (configure.ac): Add C witness. * lib/unistd.in.h (readlinkat): Fix typo. * lib/openat.h (statat, lstatat, accessat, euidaccessat): New convenience wrappers. * top/maint.mk (sc_prohibit_openat_without_use): Allow these wrappers in syntax checks. 2009-09-06 Eric Blake doc: fix comments in recent patches * lib/faccessat.c: Mention correct function. * lib/fchmodat.c: Likewise. * lib/fchownat.c: Likewise. * lib/symlinkat.c: Likewise. * doc/posix-headers/fcntl.texi (fcntl.h): Cygwin 1.7 has AT_* constants. faccessat, symlinkat: continue cleanup of previous patch * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Ensure dependency order. * m4/faccessat.m4 (gl_FUNC_FACCESSAT): Likewise. * modules/unistd (Makefile.am): Substitute GNULIB_READLINKAT. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Offer GNULIB_READLINKAT. * modules/symlinkat (configure.ac): Set GNULIB_READLINKAT. * lib/unistd.in.h (readlinkat): Declare if GNULIB_READLINKAT is set. 2009-09-06 Bruno Haible * lib/sys_stat.in.h (fchmodat): Declare if GNULIB_FCHMODAT is set. (fstatat): Declare if GNULIB_FSTATAT is set. (mkdirat): Declare if GNULIB_MKDIRAT is set. * lib/unistd.in.h (fchownat): Declare if GNULIB_FCHOWNAT is set. (unlinkat): Declare if GNULIB_UNLINKAT is set. * modules/fcntl-h (Files): Remove m4/openat.m4. * modules/sys_stat (Files): Remove m4/openat.m4. (Makefile.am): Substitute GNULIB_FCHMODAT, GNULIB_FSTATAT, GNULIB_MKDIRAT instead of GNULIB_OPENAT. * modules/unistd (Files): Remove m4/openat.m4. (Makefile.am): Substitute GNULIB_FCHOWNAT, GNULIB_UNLINKAT instead of GNULIB_OPENAT. * m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Initialize GNULIB_OPENAT, HAVE_OPENAT here. Don't require gl_OPENAT_DEFAULTS. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Initialize GNULIB_FCHMODAT, GNULIB_FSTATAT, GNULIB_MKDIRAT, HAVE_FCHMODAT, HAVE_FSTATAT, HAVE_MKDIRAT, REPLACE_FSTATAT here. Don't require gl_OPENAT_DEFAULTS. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_FCHOWNAT, GNULIB_UNLINKAT, HAVE_FCHOWNAT, HAVE_UNLINKAT, REPLACE_FCHOWNAT here. Don't require gl_OPENAT_DEFAULTS. * m4/openat.m4 (gl_FUNC_OPENAT): Require gl_FCNTL_H_DEFAULTS, gl_SYS_STAT_H_DEFAULTS, gl_UNISTD_H_DEFAULTS. Set GNULIB_FCHMODAT, GNULIB_FSTATAT, GNULIB_MKDIRAT, GNULIB_FCHOWNAT, GNULIB_UNLINKAT. (gl_OPENAT_DEFAULTS): Remove macro. 2009-09-06 Bruno Haible * modules/openat (configure.ac): Remove unneeded witness. 2009-09-06 Bruno Haible Set errno to ENOSYS when a function is entirely unsupported. * lib/chown.c (rpl_chown) [!HAVE_CHOWN]: Set errno to ENOSYS instead of EOPNOTSUPP. * lib/lchown.c (lchown) [!HAVE_CHOWN]: Likewise. * modules/chown (Depends-on): Remove errno. 2009-09-06 Bruno Haible * doc/posix-headers/fcntl.texi (AT_*): Mention affected platforms. 2009-09-06 Bruno Haible * lib/sys_stat.in.h: Fix preprocessor command indentation. 2009-09-06 Ben Pfaff Bruno Haible Work around a glibc bug in strtok_r. * lib/string.in.h (strtok_r): Replace if REPLACE_STRTOK_R is set. Undefine if UNDEFINE_STRTOK_R is set. * lib/strtok_r.c (strtok_r, __strtok_r) [!_LIBC]: Don't undefine. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize REPLACE_STRTOK_R and UNDEFINE_STRTOK_R. * m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Check against the glibc bug. * modules/string (Makefile.am): Substitute REPLACE_STRTOK_R, UNDEFINE_STRTOK_R. * doc/posix-functions/strtok_r.texi: Mention the glibc 2.7 bug. 2009-09-06 Sergey Poznyakoff exclude: minor fix * lib/exclude.c: Include wctype.h 2009-09-06 Akim Demaille bootstrap: improve error message * build-aux/bootstrap (find_tool): Upon failure, report the list of candidates. Honor the initial value of the envvar. 2009-09-05 Eric Blake symlinkat: new module * modules/symlinkat: New file. * lib/symlinkat.c: Likewise. * m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witnesses. * modules/unistd (Makefile.am): Use them. * lib/unistd.in.h (symlinkat, readlinkat): Declare them. (faccessat) [GNULIB_POSIXCHECK]: Fix typo. * lib/at-func.c (FUNC_RESULT): New macro, defaulting to int. * MODULES.html.sh (File system functions): Mention module. * doc/posix-functions/symlinkat.texi (symlinkat): Likewise. * doc/posix-functions/readlinkat.texi (readlinkat): Likewise. * modules/symlinkat-tests: New test. * tests/test-symlinkat.c: Likewise. test-openat-safer: add more checks * tests/test-openat-safer.c (main): Check more code paths. 2009-09-05 Jim Meyering syntax-check: detect unnecessary inclusion of openat.h * top/maint.mk (sc_prohibit_openat_without_use): New rule. 2009-09-05 Bruno Haible Support towlower, towupper. * doc/posix-functions/towlower.texi: Mention module wctype. * doc/posix-functions/towupper.texi: Likewise. * lib/wctype.in.h (towlower, towupper): New functions. * tests/test-wctype.c: Include stdio.h, stdlib.h. (ASSERT): New macro. (e): New variable. (main): Test also towlower, towupper. Test WEOF argument. Reported by Alan Hourihane . 2009-09-05 Bruno Haible Fix conversion behaviour when the input is invalid. * lib/striconveh.c (mem_cd_iconveh_internal): Fix storing of question mark occurring in first pass of indirect conversion. * tests/test-striconveh.c (main): Test conversion of invalid ASCII input. Found by clang's static analyzer. 2009-09-05 Bruno Haible * tests/test-striconveh.c (main): Test indirect conversion on platforms where direct conversion is possible. 2009-09-04 Eric Blake openat: fail with ENOENT on empty name * lib/openat-proc.c (openat_proc_name): Special-case the empty buffer. link-follow: fix logic bug in prior patch * m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK): Fix bug that reversed sense of yes and no in prior patch. Avoid confusing compilation failure with desired semantics. link-follow: accommodate mingw and cross-compilation * m4/link-follow.m4 (gl_AC_FUNC_LINK_FOLLOWS_SYMLINK): Rename... (gl_FUNC_LINK_FOLLOWS_SYMLINK): ...to this. Change cross-compilation results to -1, to make linkat easier to implement when cross-compiling. Trivially support mingw. * modules/link-follow (configure.ac): Call new name. * NEWS: Mention this. 2009-09-03 Eric Blake faccessat: compile replacement * m4/faccessat.m4 (gl_FUNC_FACCESSAT): Build replacement when needed. fts: fix compilation error * lib/fts.c (includes): Re-add "openat.h", for openat_needs_fchdir. faccessat: new module * modules/faccessat: New file. * lib/faccessat.c: Likewise. * m4/faccessat.m4 (gl_FUNC_FACCESSAT): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witness. * modules/unistd (Makefile.am): Use it. * lib/unistd.in.h (faccessat): Declare it. (F_OK, X_OK, W_OK, R_OK): Provide definitions. * lib/fcntl.in.h (AT_SYMLINK_FOLLOW, AT_EACCESS): Likewise. * MODULES.html.sh (File system functions): Mention it. * doc/posix-functions/faccessat.texi (faccessat): Likewise. * doc/posix-headers/fcntl.texi (fcntl.h): Likewise. euidaccess: prefer POSIX over non-standard implementation * m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Check for faccessat. * lib/euidaccess.c (euidaccess): Use it if available. openat: make template easier to use * lib/at-func.c (CALL_FUNC): Allow AT_FUNC_USE_F1_COND and AT_FUNC_F2 to be undefined. (VALIDATE_FLAG): New macro; use it to reject bad flags. (AT_FUNC_USE_F1_COND): Change sense to just flag bit. * lib/fchmodat.c (AT_FUNC_USE_F1_COND): Adjust. * lib/fchownat.c (AT_FUNC_USE_F1_COND): Likewise. * lib/openat.c (AT_FUNC_USE_F1_COND) [fstatat, unlinkat]: Likewise. * lib/mkdirat.c (AT_FUNC_F2, AT_FUNC_USE_F1_COND): Delete. * lib/selinux-at.c (AT_FUNC_F2, AT_FUNC_USE_F1_COND) [getfileconat, lgetfileconat, setfileconat, lsetfileconat]: Likewise. openat: declare in POSIX headers * NEWS: Mention this. * modules/openat (configure.ac): Declare witnesses. (Depends-on): Add fcntl-h, sys_stat, unistd. (Include): Mention correct headers. * modules/fcntl-h (Depends-on): Add link-warning. (Files): Add openat.m4. (Makefile.am): Substitute witnesses. * modules/sys_stat (Files, Makefile.am): Likewise. * modules/unistd (Files, Makefile.am): Likewise. * m4/openat.m4 (gl_FUNC_OPENAT, gl_FUNC_FCHOWNAT): Set witnesses. (gl_OPENAT_DEFAULTS): New macro. * m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Use it. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Likewise. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Likewise. (SYS_STAT_H): Remove unused variable. * doc/posix-headers/fcntl.texi (fcntl.h): Update content. * lib/fcntl--.h (includes): Remove unneeded header. * lib/openat-safer.c (includes): Likewise. * lib/openat.h (AT_FDCWD, AT_SYMLINK_NOFOLLOW, AT_REMOVEDIR) (openat, fstatat, unlinkat, mkdirat, fchmodat, fchownat): Move to appropriate headers. (__OPENAT_PREFIX): Delete. * lib/fcntl.in.h (openat): Provide declaration. (AT_FDCWD): Fix Solaris bug. (AT_SYMLINK_NOFOLLOW, AT_REMOVEDIR): Provide macros. * lib/sys_stat.in.h (fstatat, mkdirat): Provide declaration. * lib/fchmodat.c (includes): Adjust to find declaration. * lib/fchownat.c (includes): Likewise. * lib/mkdirat.c (includes): Likewise. * lib/fstatat.c (includes): Likewise. Ensure original fstatat is still visible. 2009-09-02 Eric Blake errno: use consistently * lib/c-stack.c (ENOTSUP): guarantees a definition. * lib/canonicalize-lgpl.c (ENAMETOOLONG): Likewise. * lib/canonicalize.c (ELOOP): Likewise. * lib/inet_ntop.c (EAFNOSUPPORT): Likewise. * lib/inet_pton.c (EAFNOSUPPORT): Likewise. * lib/lchown.c (EOPNOTSUPP): Likewise. * lib/openat-priv.h (ENOSYS, EOPNOTSUPP): Likewise. * lib/savewd.c (ESTALE): Likewise. * lib/settime.c (ENOSYS): Likewise. * lib/utimens.c (ENOSYS): Likewise. * lib/xgethostname.c (ENAMETOOLONG): Likewise. * lib/chdir-safer.c (ELOOP): Likewise. (chdir_no_follow): Use HAVE_READLINK, not ELOOP, as witness. * modules/c-stack (Depends-on): Add errno. * modules/canonicalize (Depends-on): Likewise. * modules/chdir-safer (Depends-on): Likewise. * modules/fdopendir (Depends-on): Likewise. * modules/inet_ntop (Depends-on): Likewise. * modules/inet_pton (Depends-on): Likewise. * modules/lchown (Depends-on): Likewise. * modules/openat (Depends-on): Likewise. * modules/savewd (Depends-on): Likewise. * modules/settime (Depends-on): Likewise. * m4/chdir-safer.m4 (gl_CHDIR_SAFER): Check for readlink. fts: avoid leaking fds * modules/fts (Depends-on): Add cloexec. * lib/fts.c (opendirat, diropen, fts_build): Set close-on-exec flag. fts: make directory fds more robust * lib/fts.c (O_DIRECTORY): Let take care of this. (opendirat): Specify O_DIRECTORY, and add fallbacks for safety. backupfile, chdir-long, fts, savedir: make safer * lib/backupfile.c (includes): Use "dirent--.h", since numbered_backup can write to stderr during readdir. * lib/savedir.c (includes): Likewise. * lib/chdir-long.c (includes): Use "fcntl--.h", since openat emulation can write to stderr on failure. * lib/fts.c (includes) [!_LIBC]: Likewise for opendir and openat. * lib/getcwd.c: Document why opendir_safer is unused. * lib/glob.c: Likewise. * lib/scandir.c: Likewise. * lib/openat-proc.c: Likewise, for open_safer. * modules/backupfile (Depends-on): Add dirent-safer. * modules/savedir (Depends-on): Likewise. * modules/fts (Depends-on): Add dirent-safer and openat-safer. * modules/chdir-long (Depends-on): Add openat-safer. openat-safer: new module * modules/openat-safer: New file. * lib/openat-safer.c: Likewise. * m4/fcntl-safer.m4 (gl_OPENAT_SAFER): New macro. * lib/fcntl-safer.h (openat_safer): Declare. * lib/fcntl--.h (openat): Override. * MODULES.html.sh (File descriptor based I/O): Mention it. * lib/openat.h: Add double-inclusion guards. * lib/openat.c (includes): Only include "fcntl-safer.h", not "fcntl--.h", so we can implement openat. * modules/openat-safer-tests: New test. * tests/test-openat-safer.c: New file. dirent-safer: new module * modules/dirent-safer: New file. * lib/dirent--.h: Likewise. * lib/dirent-safer.h: Likewise. * lib/opendir-safer.c: Likewise. * m4/dirent-safer.m4: Likewise. * MODULES.html.sh (Enhancements for POSIX:2008): Mention it. * modules/dirent-safer-tests: New test. * tests/test-dirent-safer.c: New file. * lib/fdopendir.c (includes): Ensure fdopendir is also safe. fdopendir: optimize on mingw * lib/unistd.in.h (_gl_directory_name): New prototype. * lib/fchdir.c (_gl_directory_name): Implement it. (fchdir): Use it to simplify implementation. * lib/fdopendir.c (fdopendir) [REPLACE_FCHDIR]: Use metadata from fchdir, when available, to avoid calling [f]chdir(). fdopendir: split into its own module * lib/openat.c (fdopendir): Move... * lib/fdopendir.c: ...into new file. * modules/fdopendir: New module. * m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): New file. * modules/openat (Depends-on): Add fdopendir. * m4/openat.m4 (gl_FUNC_OPENAT): No longer need to check for fdopendir here. * modules/savedir (Depends-on): Only need fdopendir, not full openat. * lib/savedir.c (include): Use , not "openat.h". * lib/openat.h (fdopendir): Drop prototype. * lib/dirent.in.h (fdopendir): Provide prototype. * m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): Add replacements. * modules/dirent (Makefile.am): Substitute them. * MODULES.html.sh (File system functions): Mention it. * doc/posix-functions/fdopendir.texi (fdopendir): Likewise. * modules/fdopendir-tests: New file. * tests/test-fdopendir.c: Likewise. fchdir: use more consistent macro convention * lib/fcntl.in.h (_gl_register_fd): Move declaration to unistd. * lib/sys_stat.in.h (rpl_fstat): Declare via make-time REPLACE_FCHDIR, rather than relying on config.h macros. * lib/unistd.in.h (fchdir): Move all fchdir internal declarations inside a single make-time REPLACE_FCHDIR block, rather than using the config.h FCHDIR_REPLACEMENT. * m4/fchdir.m4 (gl_FUNC_FCHDIR): REPLACE_FCHDIR was already AC_SUBST'd, also AC_DEFINE it. Don't define FCHDIR_REPLACEMENT. Manage fstat replacement. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Pick up REPLACE_FCHDIR. * modules/sys_stat (Files): Add m4/unistd_h.m4. (Makefile.am): Substitute REPLACE_FCHDIR. * lib/close.c (rpl_close): Use REPLACE_FCHDIR, not FCHDIR_REPLACEMENT. * lib/dup-safer.c (dup_safer): Likewise. * lib/dup2.c (rpl_dup2): Likewise. * lib/dup3.c (rpl_dup3): Likewise. * lib/open.c (rpl_open): Likewise. fchdir: simplify error handling, and support dup3 * modules/fchdir (Depends-on): Use strdup-posix, not strdup. Add stdbool, malloc-posix, realloc-posix. * lib/fchdir.c (struct dir_info_t): Delete saved_errno. (ensure_dirs_slot): Return false on allocation failure. (rpl_dup2): Delete. (_gl_register_dup): New function. (_gl_unregister_fd, rpl_opendir, rpl_dup): Update callers. (_gl_register_fd): Close fd on allocation failure. * lib/fcntl.in.h (_gl_register_fd): Update signature. * lib/unistd.in.h (_gl_register_dup) [FCHDIR_REPLACEMENT]: New prototype. (rpl_dup2_fchdir): Delete prototype. * lib/open.c (open): Update caller. * lib/dup2.c (dup2): Track fchdir metadata. * lib/dup3.c (dup3): Likewise. * m4/dup2.m4 (gl_REPLACE_DUP2): New macro. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Use it. 2009-09-02 Ralf Wildenhues * gnulib-tool (func_create_testdir, func_create_megatestdir): Use AC_CONFIG_HEADERS instead of AM_CONFIG_HEADER. Use AC_CONFIG_FILES and don't pass arguments to AC_OUTPUT. 2009-09-02 Bruno Haible * modules/mkdtemp (License): Relicense under LGPLv2+. Reported by Paolo Bonzini. 2009-09-02 Ralf Wildenhues Replace uses of obsolete autoconf macros in Jim's modules. The Autoconf macros AC_TRY_CPP, AC_TRY_COMPILE, AC_TRY_LINK and AC_TRY_RUN have been obsolete since Autoconf 2.55, and each use can evoke a warning from autoconf when run with -Wobsolete enabled. They were declared obsolete for good reasons (see the `AC_FOO_IFELSE vs AC_TRY_FOO' node in the Autoconf manual, recently renamed to `AC_ACT_IFELSE vs AC_TRY_ACT'), and we should not continue using the deprecated macros. * m4/d-type.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE): Replace obsolete Autoconf macros with modern counterparts. * m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise. * m4/dos.m4 (gl_AC_DOS): Likewise. * m4/fpending.m4 (gl_FUNC_FPENDING): Likewise. * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Likewise. * m4/getloadavg.m4 (gl_PREREQ_GETLOADAVG): Likewise. * m4/jm-winsz1.m4 (gl_WINSIZE_IN_PTEM): Likewise. * m4/link-follow.m4 (gl_AC_FUNC_LINK_FOLLOWS_SYMLINK): Likewise. * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Likewise. * m4/mkdir-slash.m4 (gl_FUNC_MKDIR_TRAILING_SLASH): Likewise. * m4/mode_t.m4 (gl_PROMOTED_TYPE_MODE_T): Likewise. * m4/rename-dest-slash.m4 (gl_FUNC_RENAME_TRAILING_DEST_SLASH): Likewise. * m4/rename.m4 (gl_FUNC_RENAME): Likewise. * m4/rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Likewise. * m4/rpmatch.m4 (gl_PREREQ_RPMATCH): Likewise. * m4/st_dm_mode.m4 (AC_STRUCT_ST_DM_MODE): Likewise. * m4/stat-time.m4 (gl_STAT_TIME): Likewise. * m4/utimes-null.m4 (gl_FUNC_UTIMES_NULL): Likewise. 2009-09-01 Eric Blake fchdir: fix off-by-one bug in previous patch * lib/fchdir.c (rpl_fstat): Use correct bounds. (_gl_unregister_fd): Delete useless if. 2009-09-01 Daniel P. Berrange maint.mk: sort the list of syntax-check rules * top/maint.mk (syntax-check-rules): Sort syntax-check rules, so it's easier to get a sense of progress when the rules are run sequentially and take a long time. 2009-09-01 Simon Josefsson * modules/arpa_inet: Use $(MKDIR_P) instead of @MKDIR_P@. * modules/netinet_in: Likewise. * modules/sys_file: Likewise. * modules/sys_ioctl: Likewise. * modules/sys_select: Likewise. * modules/sys_socket: Likewise. * modules/sys_stat: Likewise. * modules/sys_time: Likewise. * modules/sys_times: Likewise. * modules/sys_utsname: Likewise. * modules/sys_wait: Likewise. 2009-09-01 Jim Meyering fts: help ensure that return values are not ignored * lib/fts_.h (__GNUC_PREREQ): Define. (__attribute_warn_unused_result__): Define. (fts_children, fts_close, fts_open, fts_read): Declare with __attribute_warn_unused_result__. fts: fts_close now fails also when closing a dir file descriptor fails * lib/fts.c (fts_close): Detect close failure, not just fchdir failure, and propagate to caller, along with errno. announce-gen: correct formatting in --help output * build-aux/announce-gen (usage): Move the one-line description in --help output "up", to where it belongs, just after Usage:. 2009-08-31 Eric Blake fchdir: port to mingw * m4/fchdir.m4 (gl_FUNC_FCHDIR): Check for mingw bug. * lib/open.c (open) [FCHDIR_REPLACEMENT]: If directories can't be opened, then use a substitute. * lib/sys_stat.in.h (fstat) [REPLACE_OPEN_DIRECTORY]: Declare replacement. * lib/fchdir.c (fstat) [REPLACE_OPEN_DIRECTORY]: Implement it. (_gl_register_fd): No need to check stat if open already filters all directories. (fchdir): Fix error condition to match POSIX. * modules/fchdir (Depends-on): Add sys_stat. * doc/posix-functions/open.texi (open): Document the limitation. * modules/fchdir-tests: New file. * tests/test-fchdir.c: Likewise. canonicalize: allow cross-testing from cygwin to mingw * modules/canonicalize-tests (configure.ac): Define HAVE_SYMLINK. (Makefile.am): Pass it through TESTS_ENVIRONMENT. * modules/canonicalize-lgpl-tests (configure.ac, Makefile.am): Likewise. * tests/test-canonicalize.sh: Also skip test if 'ln -s' works, but target does not support symlinks. * tests/test-canonicalize-lgpl.sh: Likewise. chown: avoid compilation warning on mingw * m4/chown.m4 (gl_FUNC_CHOWN): Recognize missing chown. * lib/chown.c (rpl_chown) [!HAVE_CHOWN]: Always return failure on mingw. * lib/lchown.c (lchown) [!HAVE_CHOWN]: Likewise. * modules/chown (Depends-on): Add errno. 2009-08-31 Stefano Lattarini (tiny change) * gnulib-tool: Fix test whether $CONFIG_SHELL has a working 'echo' command. 2009-08-31 Jim Meyering canonicalize: remove useless initialization * lib/canonicalize.c (canonicalize_filename_mode): Remove useless initialization of local, "end". 2009-08-30 Bruno Haible Fix an unnecessary error on Solaris 10 on NFSv3 file systems. * lib/set-mode-acl.c (qset_acl) [Solaris 10 new]: Treat EOPNOTSUPP like ENOSYS. 2009-08-30 Bruno Haible * tests/test-pipe-filter-ii1.sh: Prefer /usr/xpg6/bin/tr over /usr/xpg4/bin/tr when it exists. * tests/test-pipe-filter-gi1.sh: Likewise. 2009-08-30 Bruno Haible Work around deficient /usr/bin/id program on Solaris. * tests/test-file-has-acl.sh (ID): New variable. * tests/test-set-mode-acl.sh (ID): Likewise. * tests/test-copy-acl.sh (ID): Likewise. * tests/test-copy-file.sh (ID): Likewise. 2009-08-30 Bruno Haible New module 'xstriconveh'. * lib/xstriconveh.h: New file. * lib/xstriconveh.c: New file. * modules/xstriconveh: New file. 2009-08-30 Bruno Haible Make it easier to use mem_cd_iconveh. * lib/striconveh.h (iconveh_t): New type. (iconveh_open, iconveh_close): New declarations. (mem_cd_iconveh, str_cd_iconveh): Replace the three iconv_t arguments with a single 'const iconveh_t *' argument. * lib/striconveh.c (iconveh_open, iconveh_close): New functions. (mem_cd_iconveh, str_cd_iconveh): Replace the three iconv_t arguments with a single 'const iconveh_t *' argument. (mem_iconveh, str_iconveh): Use iconveh_open, iconveh_close. * tests/test-striconveh.c (main): Update. * NEWS: Mention the change. 2009-08-30 Bruno Haible * doc/posix-functions/iconv_open.texi: Mention indirect conversion problem. 2009-08-30 Bruno Haible Work around iconv_open problem on Solaris. * lib/iconv_open-solaris.gperf: New file. * lib/iconv_open.c (ICONV_FLAVOR_SOLARIS): New macro. * m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): Also handle Solaris. * modules/iconv_open (Files): Add lib/iconv_open-solaris.gperf. (Makefile.am): Add rule for iconv_open-solaris.h. Augment BUILT_SOURCES, MOSTLYCLEANFILES, MAINTAINERCLEANFILES, EXTRA_DIST. * doc/posix-functions/iconv_open.texi: Mention the Solaris problem. 2009-08-29 Jim Meyering maint.mk: remove more coreutils-specific targets; XZ_OPT=-9ev * top/maint.mk (cvs-check): Remove target; it was just an alias to the better-named vc-diff-check. (maintainer-distcheck): Remove rule. It was used only from the (alpha/beta/major) target, and all of its commands but one were coreutils-specific. (vc-dist): Remove rule. (alpha beta major): Run "$(MAKE) distcheck" explicitly. Run vc-diff-check, not vc-dist. Run $(MAKE) dist with XZ_OPT=-9ev. Note spelling, with "-". 2009-08-27 Bruno Haible * tests/test-bitrotate.c (main): Remove test that uses a shift count of 0. 2009-08-27 Bruno Haible * tests/test-func.c (main): Don't verify sizeof __func__ on SunPRO C compilers. * doc/func.texi: Document the SunPRO C bug. 2009-08-27 Bruno Haible Fix link error on Solaris. * tests/test-parse-duration.c (xstrdup): Remove function. 2009-08-26 Pádraig Brady ignore-value: handle pointer types, too * lib/ignore-value.h (__attribute__): Remove definition. (ignore_value): Remove use of "__attribute__ ((unused))" in favor of a more concise and more-often effective "(void) i" statement. (ignore_ptr): New function to suppress warnings from functions that return pointers, and to make it explicit that one function doesn't handle all cases. 2009-08-25 Bruno Haible dup2: work around a Linux bug. * m4/dup2.m4 (gl_FUNC_DUP2): Test for the Linux bug. * lib/dup2.c (rpl_dup2): Correct the return value if it is -EBADF. * doc/posix-functions/dup2.texi: Mention the Linux bug. Reported by Simon Josefsson. 2009-08-25 Jim Meyering libguestfs uses gnulib * users.txt: Add libguestfs. 2009-08-24 Eric Blake dup2, pipe2: fix some recent test failures on cygwin 1.5.x * lib/pipe2.c (includes): Add binary-io.h. * lib/dup2.c (rpl_dup2): Correct buggy errno value. 2009-08-24 Bruno Haible Tolerate declared but missing accept4 syscall. * lib/accept4.c (accept4): Invoke original accept4 function first, if available. * lib/sys_socket.in.h (accept4): If the function is already present, override it. * m4/accept4.m4 (gl_FUNC_ACCEPT4): Remove AC_LIBOBJ invocation. * modules/accept4 (Makefile.am): Compile accept4.c always. Reported by Paolo Bonzini and Eric Blake. 2009-08-23 Bruno Haible New module 'accept4'. * lib/sys_socket.in.h (accept4): New declaration. * lib/accept4.c: New file. * m4/accept4.m4: New file. * m4/sys_socket_h.m4 (gl_SYS_SOCKET_H_DEFAULTS): Initialize GNULIB_ACCEPT4, HAVE_ACCEPT4. * modules/sys_socket (Makefile.am): Substitute GNULIB_ACCEPT4, HAVE_ACCEPT4. * modules/accept4: New file. * doc/glibc-functions/accept4.texi: Mention the new module. 2009-08-24 Jim Meyering progname: also set global program_invocation_name, when possible Before this change, a libtool-enabled program that calls glibc's error function would report the program name as "/abs/dir/.libs/lt-program_name" rather than the desired program_name. * modules/progname (configure.ac): Check for a declaration of program_invocation_name. * lib/progname.c: Include . (set_program_name) [HAVE_DECL_PROGRAM_INVOCATION_NAME]: Set program_invocation_name. 2009-08-23 Bruno Haible * lib/dup3.c: Include . 2009-08-23 Bruno Haible * lib/dup3.c (dup3): Test only once whether the system actually exists. * lib/pipe2.c (pipe2): Likewise. Suggested by Eric Blake. 2009-08-23 Bruno Haible Tolerate declared but missing dup3 syscall. * lib/dup3.c (dup3): Invoke original dup3 function first, if available. * lib/unistd.in.h (dup3): If the function is already present, override it. * m4/dup3.m4 (gl_FUNC_DUP3): Remove AC_LIBOBJ invocation. * modules/dup3 (Makefile.am): Compile dup3.c always. Reported by Paolo Bonzini. 2009-08-23 Bruno Haible Tolerate declared but missing pipe2 syscall. * lib/pipe2.c (pipe2): Invoke original pipe2 function first, if available. * lib/unistd.in.h (pipe2): If the function is already present, override it. * m4/pipe2.m4 (gl_FUNC_PIPE2): Remove AC_LIBOBJ invocation. * modules/pipe2 (Makefile.am): Compile pipe2.c always. Reported by Paolo Bonzini. 2009-08-23 Bruno Haible * lib/pipe2.c (pipe2): Move #ifs inside function. 2009-08-22 Joel E. Denny quotearg: document limitations of quote_these_too * lib/quotearg.c (quotearg_buffer_restyled): Add comments where those limitations are created. * lib/quotearg.h (set_char_quoting): Document that digits and letters that are special after backslash are not permitted. (quotearg_char): Cross-reference set_char_quoting documentation. 2009-08-23 Joel E. Denny quotearg: implement custom_quoting_style * lib/quotearg.c: (struct quoting_options): Add left_quote and right_quote fields. (set_custom_quoting): New public function. (quotearg_buffer_restyled): Add left_quote and right_quote arguments, handle them very much like locale quoting, and update all uses. (quotearg_n_custom): New public function. (quotearg_n_custom_mem): New public function. (quotearg_custom): New public function. (quotearg_custom_mem): New public function. * lib/quotearg.h: Prototype and document new public functions. (enum quoting_style): For escape_quoting_style and clocale_quoting_style, comment that QA_SPLIT_TRIGRAPHS is ignored even though they're otherwise like c_quoting_style. Add custom_quoting_style member and document with comparison to clocale_quoting_style. * tests/test-quotearg.c (custom_quotes): New array. (custom_results): New array. (main): Extend to test custom quoting. 2009-08-22 Joel E. Denny quotearg: fix right quote escaping when it's in quote_these_too * lib/quotearg.c (quotearg_buffer_restyled): Upon seeing a right quote, be sure to prepend only one backslash. * tests/test-quotearg.c (use_quote_double_quotes): New function. (main): Test it. 2009-08-22 Joel E. Denny quotearg-tests: test escaping of embedded locale quotes * tests/test-quotearg.c (struct result_strings): Add member for new input. (LQ_ENC, RQ_ENC, RQ_ESC): New macros. (inputs): Add new input. (results_g): Add expected results. (flag_results): Likewise. (locale_results): Likewise. (compare_strings): Check those. 2009-08-23 Bruno Haible Tests for module 'dup3'. * modules/dup3-tests: New file. * tests/test-dup3.c: New file. New module 'dup3'. * lib/unistd.in.h (dup3): New declaration. * lib/dup3.c: New file. * m4/dup3.m4: New file. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_DUP3 and HAVE_DUP3. * modules/unistd (Makefile.am): Substitute GNULIB_DUP3 and HAVE_DUP3. * modules/dup3: New file. * doc/glibc-functions/dup3.texi: Mention the new module. 2009-08-23 Bruno Haible Tweak the dup2 test. * tests/test-dup2.c (main): Create the test file empty. Verify that an out-of-range fd yields EBADF. Verify that after writing to /dev/null, the test file is still empty. Fix argument order of lseek. 2009-08-23 Bruno Haible Avoid test link errors when the modules getopt-gnu, gettext are used. * modules/getopt-posix-tests (Makefile.am): Define test_getopt_LDADD. Reported by Tom G. Christensen . 2009-08-23 Bruno Haible Fix getdtablesize() on mingw. * lib/getdtablesize.c (getdtablesize): Implement differently. * lib/unistd.in.h (getdtablesize): Improve comment. 2009-08-23 Bruno Haible New module 'mkostemp'. Based on Ulrich Drepper's 2007-08-10 change in glibc. * lib/stdlib.in.h (mksotemp): New declaration. * lib/mkostemp.c: New file, from glibc with modifications. * lib/tempname.h (GT_FILE): Remove outdated comment. (gen_tempname): Add flags argument. * lib/tempname.c (__GT_BIGFILE): Remove macro. (__GT_FILE): Map to 1. (small_open, large_open): Remove macros. (__gen_tempname): Add flags argument. Remove code for __GT_BIGFILE. * lib/mkstemp.c (mkstemp): Update. * lib/mkdtemp.c (mkdtemp): Likewise. * m4/mkostemp.m4: New file. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_MKOSTEMP, HAVE_MKOSTEMP. * modules/stdlib (Makefile.am): Substitute GNULIB_MKOSTEMP, HAVE_MKOSTEMP. * modules/mkostemp: New file, based on modules/mkstemp. * doc/glibc-functions/mkostemp.texi: Mention the new module. * NEWS: Mention the change. 2009-08-23 Bruno Haible * lib/pipe2.c (pipe2): Support O_TEXT, O_BINARY on all platforms. Reported by Eric Blake. 2009-08-23 Bruno Haible * lib/pipe2.c (pipe2): Fix test of fcntl's return value. Reported by Eric Blake. 2009-08-23 Bruno Haible * modules/fchdir (Depends-on): Use fcntl-h instead of fcntl. * modules/pipe2 (Depends-on): Likewise. 2009-08-23 Eric Blake fcntl-h: add O_TTY_INIT support * lib/fcntl.in.h (O_TTY_INIT): Support another POSIX macro. * tests/test-fcntl-h.c (o): Test it. * doc/posix-headers/fcntl.texi (fcntl.h): Update documentation. fcntl-h: rename from fcntl, in preparation for fcntl(2) * modules/fcntl: Move header replacement... * modules/fcntl-h: ...to new name, so as not to collide with like-named function. * tests/test-fcntl.c: Rename... * tests/test-fcntl-h.c: ...to this. Test FD_CLOEXEC. * modules/fcntl-tests: Rename... * modules/fcntl-h-tests: ...to this. Update test file name. * modules/chdir-long (Depends-on): Update clients. * modules/chdir-safer (Depends-on): Likewise. * modules/fcntl-safer (Depends-on): Likewise. * modules/fts (Depends-on): Likewise. * modules/mkancesdirs (Depends-on): Likewise. * modules/mkdir-p (Depends-on): Likewise. * modules/open (Depends-on): Likewise. * modules/savewd (Depends-on): Likewise. * MODULES.html.sh (systems lacking POSIX:2008): Update name. * doc/posix-headers/fcntl.texi (fcntl.h): Update documentation. 2009-08-22 Bruno Haible * modules/binary-io (License): Relicense under LGPL. * modules/pipe2 (License): Likewise. 2009-08-22 Bruno Haible * lib/pipe-filter-ii.c (pipe_filter_ii_execute): Fix test of fcntl's return value. * lib/pipe-filter-gi.c (filter_init): Likewise. Reported by Eric Blake. 2009-08-22 Bruno Haible * lib/pipe.c (create_pipe): Use pipe2 instead of _pipe. * modules/pipe (Depends-on): Add pipe2. 2009-08-22 Bruno Haible Tests for module 'pipe2'. * modules/pipe2-tests: New file. * tests/test-pipe2.c: New file. New module 'pipe2'. * lib/unistd.in.h (pipe2): New declaration. * lib/pipe2.c: New file. * m4/pipe2.m4: New file. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_PIPE2 and HAVE_PIPE2. * modules/unistd (Makefile.am): Substitute GNULIB_PIPE2 and HAVE_PIPE2. * modules/pipe2: New file. * doc/glibc-functions/pipe2.texi: Mention the new module. 2009-08-22 Bruno Haible Reference some new glibc functions. * doc/glibc-functions/accept4.texi: New file. * doc/glibc-functions/dup3.texi: New file. * doc/glibc-functions/mkostemp.texi: New file. * doc/glibc-functions/pipe2.texi: New file. * doc/gnulib.texi (Glibc stdlib.h): Refer to mkostemp. (Glibc sys/socket.h): Refer to accept4. (Glibc unistd.h): Refer to dup3, pipe2. Reported by Eric Blake. 2009-08-22 Jim Meyering Bruno Haible annotate automake snippets with $(AM_V_GEN) and $(AM_V_at) This makes it so packages using automake-1.11's silent-rules option can print e.g., a single "GEN configmake.h" line, rather than the 30+ statements that perform the job. If you want to see the actual commands, you can still run "make V=1". * modules/alloca-opt: Add $(AM_V_GEN) and $(AM_V_at) prefixes so that make output is abbreviated when those variables are defined appropriately. * modules/argz: Likewise. * modules/arpa_inet: Likewise. * modules/byteswap: Likewise. * modules/configmake: Likewise. * modules/dirent: Likewise. * modules/errno: Likewise. * modules/fcntl: Likewise. * modules/float: Likewise. * modules/fnmatch: Likewise. * modules/getopt-posix: Likewise. * modules/glob: Likewise. * modules/iconv_open: Likewise. * modules/inttypes: Likewise. * modules/localcharset: Likewise. * modules/locale: Likewise. * modules/math: Likewise. * modules/netdb: Likewise. * modules/netinet_in: Likewise. * modules/poll: Likewise. * modules/posix_spawnp-tests: Likewise. * modules/sched: Likewise. * modules/search: Likewise. * modules/selinux-h: Likewise. * modules/signal: Likewise. * modules/spawn: Likewise. * modules/stdarg: Likewise. * modules/stdbool: Likewise. * modules/stddef: Likewise. * modules/stdint: Likewise. * modules/stdio: Likewise. * modules/stdlib: Likewise. * modules/string: Likewise. * modules/strings: Likewise. * modules/sys_file: Likewise. * modules/sys_ioctl: Likewise. * modules/sys_select: Likewise. * modules/sys_socket: Likewise. * modules/sys_stat: Likewise. * modules/sys_time: Likewise. * modules/sys_times: Likewise. * modules/sys_utsname: Likewise. * modules/sys_wait: Likewise. * modules/sysexits: Likewise. * modules/time: Likewise. * modules/unistd: Likewise. * modules/wchar: Likewise. * modules/wctype: Likewise. 2009-08-22 Jim Meyering announce-gen: detect write failure * build-aux/announce-gen: Add Coda at end. Remove equivalent-but-more-verbose block at top. 2009-08-19 Akim Demaille bootstrap: --help to stdout. * bootstrap (usage): Don't send --help to stderr. Use a here doc instead of a long string. 2009-08-21 Eric Blake test-popen-safer: split from test-popen * tests/test-popen.c (main): Move... * tests/test-popen.h: ...into new file. * tests/test-popen-safer2.c: New file. * modules/popen-tests (Files): Add test-popen.h. * modules/popen-safer-tests (Files): Add test-popen-safer2.c. Suggested by Bruno Haible. test-fcntl-safer: split from test-open * tests/test-open.c (main): Move... * tests/test-open.h: ...into new file. * tests/test-fcntl-safer.c: New file. * modules/open-tests (Files): Add test-open.h. * modules/fcntl-safer-tests: New file. Suggested by Bruno Haible. test-fopen-safer: split from test-fopen * tests/test-fopen.c (main): Move... * tests/test-fopen.h: ...into new file. * tests/test-fopen-safer.c: New file. * modules/fopen-tests (Files): Add test-fopen.h. * modules/fopen-safer-tests: New file. Suggested by Bruno Haible. 2009-08-21 Paolo Bonzini popen-safer: test O_CLOEXEC at run-time. * lib/popen-safer.c: Test O_CLOEXEC at run-time. 2009-08-21 Paolo Bonzini fcntl: move more flags to the header * lib/cloexec.c: Do not define FD_CLOEXEC here. * lib/popen-safer.c: Do not alias O_NOINHERIT to O_CLOEXEC here. * lib/fcntl.in.h: Do both things here. 2009-08-21 Jim Meyering consistently remove $@-t before redirecting to it * modules/argz: Remove $@-t and $@ before redirecting to the former. * modules/alloca-opt: Likewise. * modules/byteswap: Likewise. * modules/fnmatch: Likewise. * modules/getopt-posix: Likewise. * modules/glob: Likewise. * modules/poll: Likewise. * modules/posix_spawnp-tests: Likewise. * modules/sys_socket: Likewise. * modules/sysexits: Likewise. 2009-08-21 Eric Blake popen: simplify access to original popen * lib/popen.c (rpl_popen): No need to worry about popen being a macro. Reported by Bruno Haible. 2009-08-20 Eric Blake build: avoid some compiler warnings * lib/selinux-at.h: Use dir_fd, not dirfd, to avoid shadowing. * lib/exclude.c (fnmatch_pattern_has_wildcards): Use correct type. (new_exclude_segment, excluded_file_pattern_p) (excluded_file_name_p): Reduce scope. * lib/vasnprintf.c (decimal_point_char): Avoid warning on old-style declaration. 2009-08-20 Simon Josefsson * tests/test-exclude1.sh: Handle Windows EOL. * tests/test-exclude2.sh: Likewise. * tests/test-exclude3.sh: Likewise. * tests/test-exclude4.sh: Likewise. * tests/test-exclude5.sh: Likewise. * tests/test-exclude6.sh: Likewise. * tests/test-exclude7.sh: Likewise. 2009-08-19 Akim Demaille bootstrap: find sha1sum when named gsha1sum. * bootstrap (find_tool): New. ($SHA1SUM): New. Use it. 2009-08-20 Jim Meyering maint.mk: _header_without_use: fix a quoting bug and remove a bash'ism * top/maint.mk (_header_without_use): Use "\\\\", not "\\" in the sed expression that converts "." in a file name to "\." in the resulting regexp. Start with a dummy statement, so that prior shell variable definitions are expanded portably. Reported by Simon Josefsson. 2009-08-20 Paolo Bonzini Fix polling for writeability of a screen buffer. * lib/poll.c: Distinguish input and screen buffers for the Win32 implementation. * lib/select.c: Likewise. 2009-08-19 Eric Blake popen-safer: prevent popen from clobbering std descriptors * modules/popen-safer: New file. * lib/popen-safer.c: Likewise. * m4/stdio-safer.m4 (gl_POPEN_SAFER): New macro. * lib/stdio--.h (popen): Provide override. * lib/stdio-safer.h (popen_safer): Provide declaration. * tests/test-popen.c (includes): Partially test this. * modules/popen-safer-tests: New file, for more tests. * tests/test-popen-safer.c: Likewise. * MODULES.html.sh (file stream based Input/Output): Mention it. tests: test some of the *-safer modules * modules/fopen-safer (Depends-on): Add fopen. * modules/fcntl-safer (Depends-on): Add fcntl. * modules/stdlib-safer (Depends-on): Add stdlib. (configure.ac): Set indicator. * modules/unistd-safer (configure.ac): Likewise. * modules/tmpfile-safer (configure.ac): Likewise. (Depends-on): Add tmpfile. * lib/stdio--.h (fopen, tmpfile): Don't override unless module is active. * tests/test-fopen.c (includes): Test safer versions when they are in use. * tests/test-open.c (includes): Likewise. popen: fix cygwin 1.5 bug when stdin closed * doc/posix-functions/popen.texi (popen): Document cygwin bugs. * modules/popen: New file. * modules/popen-tests: Likewise. * tests/test-popen.c: Likewise. * m4/popen.m4: Likewise. * lib/popen.c: Likewise. * lib/stdio.in.h (popen): New declaration. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Add popen. * modules/stdio (Makefile.am): Likewise. * MODULES.html.sh (systems lacking POSIX:2008): Mention it. 2009-08-17 Joel E. Denny maint.mk: give full control over update-copyright exclusions * top/maint.mk (VC_LIST_EXCEPT): Instead of ChangeLog, use ${VC_LIST_EXCEPT_DEFAULT-ChangeLog} as the default exclusion. (update-copyright): Don't force inclusion of top-level ChangeLog. Don't force exclusion of all COPYING files, but make them the default exclusion instead. 2009-08-16 Bruno Haible Fix test failures on Solaris 10. * tests/uniconv/test-u8-conv-from-enc.c (main): Disable autodetect_jp tests when Solaris iconv() is used. * tests/uniconv/test-u16-conv-from-enc.c (main): Likewise. * tests/uniconv/test-u32-conv-from-enc.c (main): Likewise. * tests/uniconv/test-u8-strconv-from-enc.c (main): Likewise. * tests/uniconv/test-u16-strconv-from-enc.c (main): Likewise. * tests/uniconv/test-u32-strconv-from-enc.c (main): Likewise. 2009-08-16 Bruno Haible Fix test failures on Solaris 10. * tests/test-pipe-filter-ii1.sh: Determine the filename of a working 'tr' program and pass it as first argument. * tests/test-pipe-filter-gi1.sh: Likewise. * tests/test-pipe-filter-ii1.c (main): Except the filename of a 'tr' program as first argument. * tests/test-pipe-filter-gi1.c (main): Likewise. 2009-08-16 Eric Blake fpurge: fix previous commits * modules/fpurge (Makefile.am): Make replacement conditional, partially reverting 2007-04-29 change; missed in previous attempt. * m4/fpurge.m4 (gl_FUNC_FPURGE): Also compile fpurge.c when fpurge is missing. 2009-08-16 Bruno Haible Clarify fpurge's effect on the file position. * lib/stdio.in.h (fpurge): Specify the file position after fpurge. * tests/test-fpurge.c (main): Make a second pass for checking the file position. 2009-08-16 Bruno Haible * m4/fpurge.m4 (gl_FUNC_FPURGE): Don't compile fpurge.c if only the declaration of fpurge is missing. * tests/test-fpurge.c (main): Check that the file has not more contents than expected. Close the file before removing it. 2009-08-15 Eric Blake fpurge: don't wrap working cygwin implementation * lib/fpurge.c (fpurge): Fix comment typo. * m4/fpurge.m4 (gl_FUNC_FPURGE): Detect BSD bug, allowing cygwin 1.7 to avoid replacement. * tests/test-fpurge.c (main): Enhance test. 2009-08-15 Eric Blake and Jim Meyering test-update-copyright: skip if perl is insufficient * tests/test-update-copyright.sh: Failure to run maintainer tool should not cause testsuite failure on cygwin 1.5. 2009-08-14 Eric Blake doc: mention more functions added in cygwin 1.7.0 * doc/posix-headers/limits.texi (limits.h): Update for recent cygwin additions. * doc/posix-headers/wordexp.texi (wordexp.h): Likewise. * doc/posix-functions/wordexp.texi (wordexp): Likewise. * doc/posix-functions/wordfree.texi (wordfree): Likewise. * doc/posix-functions/setlocale.texi (setlocale): Likewise. * doc/posix-functions/nl_langinfo.texi (nl_langinfo): Likewise. 2009-08-14 Eric Blake maint.mk: simplify update-copyright rule * top/maint.mk (update-copyright-local): Delete, and document how to do it in cfg.mk instead. (update-copyright-exclude-regexp): Delete, and document how to do it in .x-update-copyright instead. (update-copyright): Simplify, thanks to VC_LIST_EXCEPT. Don't exclude ChangeLog. 2009-08-14 Bruno Haible * m4/wchar.m4 (gl_WCHAR_H): Undo invalid optimization in last commit. 2009-08-14 Joel E. Denny maint.mk: support update-copyright-env * top/maint.mk (update-copyright-env): Define place-holder. (update-copyright): Expand $(update-copyright-env) before invoking update-copyright. 2009-08-14 Joel E. Denny update-copyright: implement forced reformatting * build-aux/update-copyright: Implement and document UPDATE_COPYRIGHT_FORCE. * tests/test-update-copyright.sh: Test it. 2009-08-14 Eric Blake and Bruno Haible stddef: fix NetBSD 5.0 NULL bug, rather than working around it * tests/test-locale.c: Revert previous patch related to NULL. * tests/test-stdio.c: Likewise. * tests/test-stdlib.c: Likewise. * tests/test-string.c: Likewise. * tests/test-unistd.c: Likewise. * modules/time-tests (Depends-on): Add verify. * modules/wchar-tests (Depends-on): Likewise. * tests/test-time.c: Test for NULL compliance. * tests/test-wchar.c: Likewise. * modules/locale (Depends-on): Add stddef. * modules/stdio (Depends-on): Likewise. * modules/stdlib (Depends-on): Likewise. * modules/string (Depends-on): Likewise. * modules/time (Depends-on): Likewise. * modules/unistd (Depends-on): Likewise. * modules/wchar (Depends-on): Likewise. * lib/locale.in.h (includes): Use to fix NULL. * lib/stdlib.in.h (includes): Likewise. * lib/string.in.h (includes): Likewise. * lib/time.in.h (includes): Likewise. * lib/unistd.in.h (includes): Likewise. * m4/locale_h.m4 (gl_LOCALE_H): Replace locale.h if stddef.h was replaced. * m4/wchar.m4 (gl_WCHAR_H): Likewise. * m4/stddef_h.m4: New file. * modules/stddef: Likewise. * lib/stddef.in.h: Likewise. * modules/stddef-tests: Likewise. * tests/test-stddef.c: Likewise. * MODULES.html.sh (Basic types ): Mention new module. * doc/posix-headers/stddef.texi (stddef.h): Document the bug. * doc/posix-headers/locale.texi (locale.h): Likewise. * doc/posix-headers/stdio.texi (stdio.h): Likewise. * doc/posix-headers/stdlib.texi (stdlib.h): Likewise. * doc/posix-headers/string.texi (string.h): Likewise. * doc/posix-headers/time.texi (time.h): Likewise. * doc/posix-headers/unistd.texi (unistd.h): Likewise. * doc/posix-headers/wchar.texi (wchar.h): Likewise. 2009-08-14 Eric Blake doc: improve git diff of texinfo files * .gitattributes: Add rule for *.texi files, with hint on how to use it. Copied from m4, and based on a report by Bruno Haible. 2009-08-14 Bruno Haible Disable multithread support by default on Cygwin 1.5.x for real. * m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Fix last commit. 2009-08-14 Joel E. Denny update-copyright: much ado about intervals * build-aux/update-copyright: Implement and document UPDATE_COPYRIGHT_USE_INTERVALS to control expansion and collapse of copyright year intervals. Also, document UPDATE_COPYRIGHT_YEAR. * tests/test-update-copyright.sh: Test it. update-copyright: convert 2-digit to 4-digit years * build-aux/update-copyright: Implement and document. * tests/test-update-copyright.sh: Update. 2009-08-14 Jim Meyering test-exclude: avoid coreutils "make check" failure * tests/test-exclude.c (ARGMATCH_DIE_DECL) [ARGMATCH_DIE_DECL]: Define, just as in test-argmatch.c. 2009-08-13 Eric Blake test-dup2: fix bad assumption * tests/test-dup2.c (main): Tolerate leaked fds from environment. Reported by Peter Breitenlohner . test-version-etc: fix CRLF portability issue * tests/test-version-etc.sh: Use tr, not sed, as not all sed recognize \r. * tests/test-argp-version-etc-1.sh: Likewise. getopt: update client modules * modules/argp (Depends-on): Use getopt-gnu. * modules/git-merge-changelog (Depends-on): Likewise. * modules/long-options (Depends-on): Likewise. * modules/xstrtol (Depends-on): Likewise. 2009-08-13 Simon Josefsson * tests/test-version-etc.sh: Don't fail on different project/version. Don't fail on CRLF differences. Rewrite to use multiple -e instead of multiple sed forks, suggested by Eric Blake . * tests/test-argp-version-etc-1.sh: Likewise. 2009-08-13 Simon Josefsson * tests/test-version-etc.sh: Don't fail on different project/version. 2009-08-12 Bruno Haible Tests for modules 'getopt-posix', 'getopt-gnu'. * modules/getopt-posix-tests: New file. * tests/test-getopt.c: New file. * tests/test-getopt.h: New file. * tests/test-getopt_long.h: New file. New modules 'getopt-posix', 'getopt-gnu'. * modules/getopt-gnu: New file, renamed from modules/getopt. * modules/getopt-posix: New file. * modules/getopt: Turn into an obsolete alias for getopt-gnu. * m4/getopt.m4 (gl_FUNC_GETOPT_POSIX, gl_FUNC_GETOPT_GNU): New macros. (gl_GETOPT): Remove macro. (gl_GETOPT_CHECK_HEADERS): Do some checks only for gl_FUNC_GETOPT_GNU. Disable the test against BSD systems that declare optreset. Test against mingw bug. Test against lack of support of optional arguments on many platforms. * doc/glibc-headers/getopt.texi: Update module name and list of relevant platforms. * doc/posix-functions/getopt.texi: Mention modules 'getopt-posix' and 'getopt-gnu' and more portability problems. * NEWS: Mention the changes. 2009-08-12 Bruno Haible Ensure that optarg etc. get declared by . * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Require AC_USE_SYSTEM_EXTENSIONS. * modules/getopt (Depends-on): Add 'extensions'. 2009-08-12 Bruno Haible Avoid test link errors. * modules/pipe-filter-ii-tests (Makefile.am): Define test_pipe_filter_ii1_LDADD and test_pipe_filter_ii2_main_LDADD. * modules/pipe-filter-gi-tests (Makefile.am): Define test_pipe_filter_gi1_LDADD and test_pipe_filter_gi2_main_LDADD. Reported by Tom G. Christensen . 2009-08-12 Bruno Haible * m4/getopt.m4 (gl_REPLACE_GETOPT): New macro, was called gl_GETOPT_SUBSTITUTE before. (gl_GETOPT): Use it. * m4/argp.m4 (gl_ARGP): Update. Reported by Sergey Poznyakoff. * m4/getopt.m4: Reorder macros. (gl_GETOPT): Inline gl_GETOPT_SUBSTITUTE. (gl_GETOPT_SUBSTITUTE): Remove macro. 2009-08-12 Sergey Poznyakoff Minor improvement in gitlog-to-changelog * build-aux/gitlog-to-changelog: New option `--format' makes output format string configurable. 2009-08-12 Sergey Poznyakoff Optimize exclude: use hash tables for non-wildcard patterns. * lib/exclude.c: Include hash.h and mbuiter.h (struct exclude_pattern, exclude_segment): New data types. (struct exclude): Rewrite. (fnmatch_pattern_has_wildcards): New function. (new_exclude_segment, free_exclude_segment): New functions. (excluded_file_pattern_p, excluded_file_name_p): New functions. (excluded_file_name, add_exclude): Rewrite using new struct exclude. * lib/exclude.h (is_fnmatch_pattern): New prototype. * modules/exclude: Depend on hash and mbuiter. * modules/exclude-tests: New file. * tests/test-exclude.c: New file. * tests/test-exclude1.sh: New file. * tests/test-exclude2.sh: New file. * tests/test-exclude3.sh: New file. * tests/test-exclude4.sh: New file. * tests/test-exclude5.sh: New file. * tests/test-exclude6.sh: New file. * tests/test-exclude7.sh: New file. 2009-08-12 Bruno Haible Ensure that getopt() gets declared by . * lib/unistd.in.h: Conditionally include getopt.h. * m4/getopt.m4 (gl_GETOPT_SUBSTITUTE): Require gl_UNISTD_H_DEFAULTS. Set GNULIB_UNISTD_H_GETOPT. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_UNISTD_H_GETOPT. * modules/unistd (Makefile.am): Substitute GNULIB_UNISTD_H_GETOPT. 2009-08-12 Bruno Haible Clarify logic. * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS, gl_GETOPT_IFELSE): Use gl_replace_getopt instead of GETOPT_H. 2009-08-12 Bruno Haible * m4/getopt.m4: Add comments. 2009-08-12 Bruno Haible Disable multithread support by default on Cygwin 1.5.x. * m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): On Cygwin 1.5.x and older, set gl_use_threads=no if not specified otherwise. 2009-08-11 Bruno Haible Avoid compilation error on NetBSD 5.0. * tests/test-locale.c: Write sizeof (NULL) instead of sizeof NULL. * tests/test-stdio.c: Likewise. * tests/test-stdlib.c: Likewise. * tests/test-string.c: Likewise. * tests/test-unistd.c: Likewise. Reported by Greg Troxel at . 2009-08-11 Bruno Haible * modules/dup2-tests (Depends-on): Remove close. Undo 2009-07-19 commit. * modules/acl-tests (Depends-on): Remove close. * modules/binary-io-tests (Depends-on): Likewise. * modules/closein-tests (Depends-on): Likewise. * modules/flock-tests (Depends-on): Likewise. * modules/fsync-tests (Depends-on): Likewise. * modules/lseek-tests (Depends-on): Likewise. * modules/pipe-tests (Depends-on): Likewise. * modules/posix_spawn-tests (Depends-on): Likewise. * modules/posix_spawnp-tests (Depends-on): Likewise. * modules/stat-time-tests (Depends-on): Likewise. * modules/yesno-tests (Depends-on): Likewise. 2009-08-10 Bruno Haible * lib/vasnprintf.c (DCHAR_SET): Undefine at the end. 2009-08-10 Bruno Haible Fix a gcc warning. * lib/write.c (rpl_write): Cast result of _get_osfhandle. 2009-08-10 Bruno Haible Don't optimize AC_LIBOBJs, as they may appear in different contexts. * m4/close.m4 (gl_REPLACE_CLOSE): Execute AC_LIBOBJ unconditionally, not only the first time. * m4/fclose.m4 (gl_REPLACE_FCLOSE): Likewise. * m4/open.m4 (gl_REPLACE_OPEN): Likewise. * m4/strstr.m4 (gl_FUNC_STRSTR): Execute AC_LIBOBJ when REPLACE_STRSTR is 1, not only the first time. 2009-08-10 Bruno Haible Make it possible to use module 'gethostname' without module 'close'. * lib/unistd.in.h (close): Evoke a link error only if UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS is set. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS. * modules/unistd (Makefile.am): Substitute UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS. * lib/sys_ioctl.in.h (ioctl): Evoke a link error only if SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS is set. * m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H_DEFAULTS): Initialize SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS. * modules/sys_ioctl (Makefile.am): Substitute SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS. * modules/socket (configure.ac): On native Windows, set UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS and SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS. Reported by Sam Steingold . 2009-08-10 Bruno Haible * m4/close.m4 (gl_FUNC_CLOSE): Add comment. * modules/ioctl (configure.ac): Likewise. 2009-08-10 Bruno Haible Avoid collision between gnulib wrapper and libintl wrapper. * lib/stdio-write.c (printf): Don't define if a printf wrapper is already defined in intl/printf.c. (vprintf): Test REPLACE_VPRINTF_POSIX, not REPLACE_VFPRINTF_POSIX. (vfprintf): Test REPLACE_VFPRINTF_POSIX, not REPLACE_VPRINTF_POSIX. 2009-08-09 Bruno Haible Make really self-contained, also on Solaris 10. * lib/sys_select.in.h: Include . * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Test also against Solaris 10 problem. * tests/test-sys_select.c (main): Add check that FD_ZERO can be used. * doc/posix-headers/sys_select.texi: Mention the Solaris 10 problem. Reported by Jim Meyering. 2009-08-09 Bruno Haible Avoid warnings from 'aclocal' that are due to a use of macro name AM_XGETTEXT_OPTION that is not defined in automake. * modules/argp (configure.ac): Hide use of AM_XGETTEXT_OPTION from automake. * modules/error (configure.ac): Likewise. * modules/propername (configure.ac): Likewise. * modules/vasprintf (configure.ac): Likewise. * modules/verror (configure.ac): Likewise. * modules/xprintf (configure.ac): Likewise. * modules/xvasprintf (configure.ac): Likewise. 2009-08-08 Bruno Haible Avoid compilation error in C++ mode. * lib/gettimeofday.c (rpl_gettimeofday): Cast timezone argument. Reported by Sam Steingold . 2009-08-08 Bruno Haible * m4/gethostname.m4 (gl_FUNC_GETHOSTNAME): Define HOST_NAME_MAX also for the various Unix platforms. * doc/posix-headers/limits.texi: Update platforms list regarding HOST_NAME_MAX. Reported by Tom G. Christensen . 2009-08-07 Jim Meyering selinux-at: fix typo in a comment * lib/selinux-at.h: s/getfileconat/getfilecon/ in a comment. Spotted by Paolo Bonzini. selinux-at: remove redundant m4 code, add documentation * modules/selinux-at (configure.ac): Remove redundant code. LIB_SELINUX is already set via the dependent module, selinux-h. (Include): Add quotes around selinux-at.h. * lib/selinux-at.h: Add documentation. Reported by Bruno Haible in http://marc.info/?l=gnulib-bug&m=124958988300749 2009-08-07 Bruno Haible Avoid link error on MacOS X 10.3 and 10.4. * lib/argp-ba.c (argp_program_bug_address): Explicitly zero-initialize on non-ELF systems. * lib/argp-pv.c (argp_program_version): Likewise. Reported by Simon Josefsson. 2009-08-07 Simon Josefsson * tests/test-version-etc.sh: Use $EXEEXT. 2009-08-06 Joel E. Denny update-copyright: update documentation to point to maint.mk * build-aux/update-copyright: Here. 2009-08-06 Jim Meyering maint.mk: support update-copyright-local * top/maint.mk (update-copyright-local): Define place-holder. (update-copyright): Depend on $(update-copyright-local). 2009-08-06 Jim Meyering selinux-at: new module Initially written for coreutils, this module will soon be used by findutils, too. * MODULES.html.sh [Misc]: Add selinux-at. * lib/selinux-at.h: New file, from coreutils. * lib/selinux-at.c: Likewise. * modules/selinux-at: Likewise. (License): Change from LGPL to GPL, since it depends on the GPL'd openat module. doc: update README * README: Remove references to cogito. Remove cvs-repo-updating instructions from 2007. Don't imply that CVS is better if you have limited disk space. 2009-08-05 Joel E. Denny update-copyright: support C-style comments * build-aux/update-copyright: Implement and document. * tests/test-update-copyright.sh: Test. 2009-08-05 Joel E. Denny update-copyright: support omitted "(C)" * build-aux/update-copyright: Implement and document. Also, allow variable whitespace before "(C)". * tests/test-update-copyright.sh: Test. 2009-08-05 Joel E. Denny update-copyright: don't trip on non-FSF copyright statements * build-aux/update-copyright: Fix so that the first correctly formatted FSF copyright statement is recognized no matter what appears before it. Update documentation. * tests/test-update-copyright.sh: Test that. 2009-08-05 Joel E. Denny update-copyright: clean up code a little * build-aux/update-copyright: Append "_re" to the name of any variable holding a regular expression. Replace "old" and "new" with "stmt" in variable names. Do not accept 2-digit UPDATE_COPYRIGHT_YEAR, which was not handled correctly. Format code more consistently. 2009-08-05 Joel E. Denny update-copyright-tests: improve portability * tests/test-update-copyright.sh: Use cmp if diff cannot handle -u or /dev/null. Suggested by Jim Meyering and Eric Blake. 2009-08-03 Joel E. Denny update-copyright: support @copyright{} and © * build-aux/update-copyright: Implement and document. * tests/test-update-copyright.sh: Test. 2009-08-04 Jim Meyering update-copyright-tests: correctly test EOL=\r\n handling * tests/test-update-copyright.sh: Put \r at the end of some lines for the dos-eol tests. Based on a patch by Joel E. Denny. maint.mk: make update-copyright exclusion list more configurable * top/maint.mk (update-copyright): Default to excluding COPYING, but allow an override, in case someone does want to update that file. maint.mk: don't update copyright date in COPYING * top/maint.mk (update-copyright): Exclude COPYING. maint.mk: add a copyright-updating rule * top/maint.mk (update-copyright): New rule. Derived from coreutils/Makefile.am. update-copyright: rename some variables * build-aux/update-copyright: Rename a few variables for clarity. Tweak syntax. List Joel E. Denny as coauthor. 2009-08-03 Joel E. Denny update-copyright: fix bug for 2-digit last year and add tests * build-aux/update-copyright: Fix bug. Use UPDATE_COPYRIGHT_YEAR from environment as current year if specified. * modules/update-copyright-tests: New * tests/test-update-copyright.sh: New. 2009-07-31 Joel E. Denny update-copyright: handle leading tabs in line prefix * build-aux/update-copyright: Count leading tabs as 8 spaces when computing margin. This helps with the formatting of ChangeLogs, for example. Fix documentation a little. 2009-07-31 Joel E. Denny update-copyright: support EOL=\r\n * build-aux/update-copyright: Implement that. 2009-07-31 Joel E. Denny update-copyright: automatically format copyright statements * build-aux/update-copyright: Implement that. Also, be a little more predictable and safer by always failing when the full copyright format is not perfectly recognized as an unbroken whole. Discussed at . Rewrite documentation. 2009-08-03 Bruno Haible * m4/iconv.m4 (AM_ICONV): Fix displayed message with autoconf-2.64. 2009-08-02 Bruno Haible Tests for module 'uname'. * modules/uname-tests: New file. * tests/test-uname.c: New file. New module 'uname'. * lib/uname.c: New file. * m4/uname.m4: New file. * modules/uname: New file. * doc/posix-functions/uname.texi: Mention the new module. 2009-08-02 Bruno Haible Tests for module 'sys_utsname'. * modules/sys_utsname-tests: New file. * tests/test-sys_utsname.c: New file. New module 'sys_utsname'. * lib/sys_utsname.in.h: New file, based on glibc's . * m4/sys_utsname_h.m4: New file. * modules/sys_utsname: New file. * doc/posix-headers/sys_utsname.texi: Mention the new module. 2009-08-02 Bruno Haible Implicitly initialize the sockets library. * lib/gethostname.c: Include sockets.h. (rpl_gethostname): Invoke gl_sockets_startup. * lib/socket.c: Include sockets.h. (rpl_socket): Invoke gl_sockets_startup. * modules/gethostname (Depends-on): Add sockets. * modules/socket (Depends-on): Likewise. * tests/test-poll.c: Don't include sockets.h. (main): Don't invoke gl_sockets_startup. * tests/test-select.c: Don't include sockets.h. (main): Don't invoke gl_sockets_startup. 2009-08-02 Bruno Haible Allow multiple calls to gl_sockets_startup. * lib/sockets.c (initialized_sockets_version): New variable. (gl_sockets_startup): Do nothing if already called for this or a higher version. (gl_sockets_cleanup): Reset initialized_sockets_version. 2009-08-03 Simon Josefsson * tests/test-argp-version-etc-1.sh: Use EXEEXT. Don't fail on different project/version. 2009-08-02 Paolo Bonzini Bruno Haible Tests for module 'pipe-filter-gi'. * modules/pipe-filter-gi-tests: New file. * tests/test-pipe-filter-gi1.sh: New file. * tests/test-pipe-filter-gi1.c: New file. * tests/test-pipe-filter-gi2.sh: New file. * tests/test-pipe-filter-gi2-main.c: New file. * tests/test-pipe-filter-gi2-child.c: New file. New module 'pipe-filter-gi'. * lib/pipe-filter-gi.c: New file. * modules/pipe-filter-gi: New file. 2009-08-02 Bruno Haible Paolo Bonzini Tests for module 'pipe-filter-ii'. * modules/pipe-filter-ii-tests: New file. * tests/test-pipe-filter-ii1.sh: New file. * tests/test-pipe-filter-ii1.c: New file. * tests/test-pipe-filter-ii2.sh: New file. * tests/test-pipe-filter-ii2-main.c: New file. * tests/test-pipe-filter-ii2-child.c: New file. New module 'pipe-filter-ii'. * lib/pipe-filter.h: New file. * lib/pipe-filter-ii.c: New file. * lib/pipe-filter-aux.h: New file. * modules/pipe-filter-ii: New file. 2009-08-02 Simon Josefsson * lib/gc-libgcrypt.c: Change copyright to FSF. * lib/gc-gnulib.c: Likewise. 2009-08-02 Martin Lambers (tiny change) * lib/gethostname.c: Include limits.h. 2009-08-02 Simon Josefsson Bruno Haible Ensure HOST_NAME_MAX as part of the gethostname module. * m4/gethostname.m4 (gl_FUNC_GETHOSTNAME): On native Windows platforms, define also HOST_NAME_MAX. * tests/test-gethostname.c: Include . (main): Check also HOST_NAME_MAX. * doc/posix-headers/limits.texi: Document the mingw problem. 2009-08-02 Bruno Haible * lib/gethostname.c (gethostname): Fix handling of large len argument. Add comments. 2009-03-31 Simon Josefsson * lib/gethostname.c: Add Windows wrapper. * m4/gethostname.m4: Look for gethostname in -lws2_32. * modules/gethostname: Depend on sys_socket & errno, for also added lib/w32sock.h. Add GETHOSTNAME_LIB link directive. * modules/gethostname-tests: Link to @GETHOSTNAME_LIB@. 2009-07-31 Jim Meyering getloadavg: fix symbol name in comment * lib/getloadavg.c: Correct a typo I introduced when adding comments to Matt's change: s/NLIST_POINTER/N_NAME_POINTER/. Matt Kraai spotted the problem. 2009-07-29 Matt Kraai getloadavg: check whether n_name is a pointer, for QNX 6.4.1 * lib/getloadavg.c (getloadavg): Use the strcpy-into-nlist.n_name code also if ! defined N_NAME_POINTER. * m4/getloadavg.m4 (gl_GETLOADAVG): Add a link-test for N_NAME_POINTER. This is required on QNX 6.4.1, where /usr/include/nlist.h exists, but the n_name member is a 12-byte array. 2009-07-29 Joel E. Denny update-copyright: generalize comment handling * build-aux/update-copyright: Handle copyright statements within more comment styles. Document usage. Report any file with an external copyright holder or parse failure. 2009-07-29 Jim Meyering mktime: correct setting of REPLACE_MKTIME * m4/mktime.m4 (gl_FUNC_MKTIME): Set REPLACE_MKTIME=0, when required. update-copyright: new module * modules/update-copyright: New file. * build-aux/update-copyright: New file. * MODULES.html.sh (maint+release support): Add update-copyright. 2009-07-27 Bruno Haible Fix compilation error when is used and mktime is replaced. * lib/time.in.h (mktime): New declaration. * m4/mktime.m4 (gl_FUNC_MKTIME): Require gl_HEADER_TIME_H_DEFAULTS. Set REPLACE_MKTIME instead of defining mktime in config.h. * m4/time_h.m4 (gl_HEADER_TIME_H_DEFAULTS): Initialize REPLACE_MKTIME. * modules/time (Makefile.am): Substitute REPLACE_MKTIME. Reported by Ross McFarland . 2009-07-27 Bruno Haible * lib/math.in.h (cosl, logl, sinl): Undefine before declaring it. Reported by Matt Kraai . 2009-07-25 Jim Meyering maint.mk: avoid warnings about missing files * top/maint.mk (PREV_VERSION): Suppress stderr, to hide a diagnostic when .prev-version does not exist. (_cfg_mk): Define, so it can be empty when cfg.mk does not exist. (syntax-check-rules): Use $(_cfg_mk) to avoid a diagnostic about nonexistent cfg.mk. Suggestions from Simon Josefsson. 2009-07-25 Bruno Haible * lib/math.in.h (cosl, logl, sinl): Don't declare if they are already defined as macros. Needed on QNX 6.4.1. Reported by Matt Kraai . 2009-07-23 Jim Meyering maint.mk: invoke "make dist" with a working value of XZ_OPT * top/maint.mk (vc-dist): Use no "-" in the value of XZ_OPT. 2009-07-22 Matt Kraai (tiny change) Make fseeko.c compile on QNX. * lib/fseeko.c (rpl_fseeko): Use the numerical value of _MWRITE. 2009-07-22 Peter Simons C++: wrap md2,md5,sha1,etc. function declarations in extern "C" scope * lib/md2.h [__cplusplus]: Wrap declarations in extern "C" scope. * lib/md4.h: Likewise. * lib/md5.h: Likewise. * lib/sha1.h: Likewise. * lib/sha256.h: Likewise. * lib/sha512.h: Likewise. tests-sha1: don't assign literal string to 'char *' variable * tests/test-sha1.c (main): Declare locals with "const" to match attributes of the right hand side. 2009-07-21 Eric Blake dup2: fix more mingw problems * lib/dup2.c (rpl_dup2) [_WIN32]: Avoid hanging when duplicating fd to itself. * doc/posix-functions/dup2.texi (dup2): Document the bug. * lib/unistd.in.h (dup2) [REPLACE_FCHDIR]: Avoid name collision. * lib/fchdir.c (dup2): Manage preprocessor macros correctly. (rpl_dup2_fchdir): Rename from rpl_dup2, and let dup2 module take care of mingw bugs. 2009-07-21 Jim Meyering vc-list-files: avoid failure when /bin/sh is dash * build-aux/vc-list-files: Avoid a shell portability problem with dash. On some Debian based systems, /bin/sh is a symlink to dash, and running this command would omit the "/" following each 'tests' prefix: dash -x build-aux/vc-list-files -C . tests That is because bash and dash work differently: $ for i in bash dash; do $i -c 'a=odd; a=ok b=$a; echo '$i' $b'; done bash ok dash odd 2009-07-21 Eric Blake dup2-tests: test previous patch * modules/dup2-tests: New file. * tests/test-dup2.c: Likewise. * tests/test-open.c (main): Avoid unspecified behavior. * tests/test-pipe.c (child_main): Use dup2 semantics to simplify test. dup2: work around mingw and cygwin 1.5 bug * m4/dup2.m4 (gl_FUNC_DUP2): Detect mingw bug. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witness. * modules/unistd (Makefile.am): Substitute it. * lib/unistd.in.h (dup2): Declare the replacement. * lib/dup2.c (dup2) [REPLACE_DUP2]: Implement it. * doc/posix-functions/dup2.texi (dup2): Document the bugs. * lib/fchdir.c (rpl_dup2): Don't collide with mingw replacement. * modules/execute (Depends-on): Add dup2. * modules/fseterr (Depends-on): Likewise. * modules/pipe (Depends-on): Likewise. * modules/posix_spawn-internal (Depends-on): Likewise. 2009-07-21 Bruno Haible * modules/.gitattributes: New file. 2009-07-20 Bruno Haible * tests/test-pipe.c (BACKUP_STDERR_FILENO): New macro. (main): Use it. 2009-07-20 Eric Blake test-pipe: make a bit more robust. * tests/test-pipe.c (myerr): Allow error messages regardless of what we do to stderr. (test_pipe): Rearrange to avoid deadlock. (child_main): Try a larger read, to ensure we avoided deadlock. * lib/pipe.c (create_pipe) [_WIN32]: Fix comment. * lib/pipe.h (create_pipe_bidi): Document potential for deadlock if misused. 2009-07-19 Jim Meyering fts: avoid false-positive cycle-detection * lib/fts.c (fts_read): Reinitialize cycle-detection data structures for each new command line argument. 2009-07-19 Bruno Haible Fix build error on mingw with the modules sys_select and unistd. * modules/acl-tests (Depends-on): Add close. * modules/binary-io-tests (Depends-on): Likewise. * modules/closein-tests (Depends-on): Likewise. * modules/flock-tests (Depends-on): Likewise. * modules/fsync-tests (Depends-on): Likewise. * modules/lseek-tests (Depends-on): Likewise. * modules/pipe-tests (Depends-on): Likewise. * modules/posix_spawn-tests (Depends-on): Likewise. * modules/posix_spawnp-tests (Depends-on): Likewise. * modules/stat-time-tests (Depends-on): Likewise. * modules/yesno-tests (Depends-on): Likewise. 2009-07-19 Bruno Haible Unify conditionals. * lib/pipe.h: Detect native Win32 by looking at _WIN32 and __WIN32__ macros, not at the compiler macros. * lib/pipe.c: Likewise. * lib/execute.c: Likewise. * lib/spawni.c: Likewise. 2009-07-19 Bruno Haible Fix handling of closed stdin/stdout/stderr on mingw. * lib/w32spawn.h: Include unistd.h. (dup_noinherit): Return -1 if the old handle is invalid. Allocate new file descriptor with O_NOINHERIT flag. (fd_safer_noinherit): New function, based on fd-safer.c. (dup_safer_noinherit): New function, based on dup-safer.c. (undup_safer_noinherit): New function. * lib/execute.c (execute) [WIN32]: Use dup_safer_noinherit instead of dup_noinherit. Use undup_safer_noinherit instead of dup2 and close. * lib/pipe.c (create_pipe) [WIN32]: Likewise. Use fd_safer_noinherit instead of fd_safer. * tests/test-pipe.c: Include . (child_main) [WIN32]: Test the handle of STDERR_FILENO, not its close() result. * tests/test-pipe.c (child_main, parent_main): New functions, extracted from main. (test_pipe): Pass an extra argument for disambiguation. (main): Invoke parent_main or child_main. * tests/test-pipe.c (test_pipe): Pass slave_process = true argument consistently. 2009-07-18 Eric Blake test-pipe: fix mingw build * tests/test-pipe.c (main): Avoid fcntl on mingw. 2009-07-18 Bruno Haible * modules/pipe-tests (Makefile.am): Fix typo. 2009-07-18 Eric Blake error: fix mingw build * lib/error.c (error, error_at_line): Avoid fcntl on mingw. Reported by Bruno Haible. error: avoid undefined use of stdout * lib/error.c (error, error_at_line): Check that fd 1 is open before flushing stdout. Avoids a crash on cygwin when libsigsegv is handling faults and the close_stdout module wants to report the detection of closed stdout as an error. 2009-07-17 Eric Blake pipe: be robust in face of closed fds * lib/pipe.c (create_pipe): Closed standard descriptors in parent should cause child to misbehave. * modules/pipe-tests: New module. * tests/test-pipe.c: New file. * tests/test-pipe.sh: New file. Reported by Akim Demaille. 2009-07-14 Bruno Haible * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Guess it works on glibc systems. Reported by anonymous kc. 2009-07-07 Jim Meyering maint.mk: don't look for translatable strings in *.m4 or *.mk * top/maint.mk (sc_po_check): Skip *.m4 and *.mk files, when searching for translatable strings. 2009-07-05 Jim Meyering remove superfluous parentheses in STREQ definition * tests/test-argv-iter.c (STREQ): Remove redundant parentheses. * lib/getugroups.c (STREQ): Likewise. * lib/fnmatch.c (STREQ): Likewise. Spotted by Bruno Haible. 2009-07-04 Jim Meyering argv-iter: new module * MODULES.html.sh: Add argv-iter. * lib/argv-iter.c, lib/argv-iter.h: New files. * modules/argv-iter: New file. * modules/argv-iter-tests: New file. * tests/test-argv-iter.c: Test it. 2009-07-04 Bruno Haible Fix assertion. * lib/git-merge-changelog.c (compute_mapping): In the case where file1 contains more exact copies of a given entry than file2, leave the extra copies unpaired rather than aborting. Reported by Eric Blake. 2009-07-02 Bruno Haible Speedup git-merge-changelog for git cherry-pick. * lib/git-merge-changelog.c (struct entries_mapping): New type. (entries_mapping_get): New function, extracted from compute_mapping. (entries_mapping_reverse_get): New function. (compute_mapping): Add a 'full' argument. Return the result in a 'struct entries_mapping'. (main): Update. Access the mappings through entries_mapping_get. Reported by Eric Blake. 2009-07-02 Bruno Haible * lib/git-merge-changelog.c (compute_mapping): Fix determination of best_i. 2009-07-02 Bruno Haible Speed up approximate search for matching ChangeLog entries. * lib/git-merge-changelog.c (entry_fstrcmp): Add a lower_bound argument. Call fstrcmp_bounded instead of fstrcmp. (compute_mapping, try_split_merged_entry, main): Update callers. 2009-07-02 Bruno Haible * lib/git-merge-changelog.c (main): Add comment about git cherry-pick. 2009-06-30 Bruno Haible Reduce the number of uc_is_cased calls. * lib/unicase.h (casing_suffix_context_t): Add 'first_char_except_ignorable' field. * lib/unicase/context.h (SCC_FINAL_SIGMA_MASK): Remove macro. (SCC_MORE_ABOVE_MASK, SCC_BEFORE_DOT_MASK): Update. * lib/unicase/empty-suffix-context.c (unicase_empty_suffix_context): Update initializer. * lib/unicase/u-casemap.h (FUNC): Don't invoke uc_is_cased on case-ignorable characters. * lib/unicase/u-ct-totitle.h (FUNC): Likewise. * lib/unicase/u-suffix-context.h (FUNC2): Don't call uc_is_cased here. * modules/unicase/u8-suffix-context (Depends-on): Remove unicase/cased. * modules/unicase/u16-suffix-context (Depends-on): Likewise. * modules/unicase/u32-suffix-context (Depends-on): Likewise. 2009-06-30 Bruno Haible Tests for module 'unicase/ignorable'. * modules/unicase/ignorable-tests: New file. * tests/unicase/test-ignorable.c: New file, generated by gen-uni-tables. Tests for module 'unicase/cased'. * modules/unicase/cased-tests: New file. * tests/unicase/test-cased.c: New file, generated by gen-uni-tables. * tests/unicase/test-predicate-part1.h: New file, derived from tests/unictype/test-predicate-part1.h. * tests/unicase/test-predicate-part2.h: New file, same as tests/unictype/test-predicate-part2.h. Fix evaluation of "Before C" condition of FINAL_SIGMA. * lib/gen-uni-tables.c (is_cased, is_case_ignorable): New functions. (output_casing_properties): New function. (main): Call it. * lib/unicase/cased.h: New file, generated by gen-uni-tables. * lib/unicase/cased.c: Include unictype/bitmap.h. (uc_is_cased): Define through a bitmap lookup. * lib/unicase/ignorable.h: New file, generated by gen-uni-tables. * lib/unicase/ignorable.c: Include unictype/bitmap.h. (uc_is_case_ignorable): Define through a bitmap lookup. * modules/unicase/cased (Files): Add lib/unicase/cased.h, lib/unictype/bitmap.h. (Depends-on): Add inline. Clean up. * modules/unicase/ignorable (Files): Add lib/unicase/ignorable.h, lib/unictype/bitmap.h. (Depends-on): Add inline. Clean up. * tests/unicase/test-u8-tolower.c (main): Add more tests of FINAL_SIGMA recognition. * tests/unicase/test-u16-tolower.c (main): Likewise. * tests/unicase/test-u32-tolower.c (main): Likewise. 2009-06-30 Bruno Haible * lib/unicase/u8-casemap.c: Don't include uniwbrk.h. * lib/unicase/u16-casemap.c: Likewise. * lib/unicase/u32-casemap.c: Likewise. 2009-06-29 Bruno Haible Define u32_casefold as a wrapper around u32_ct_casefold. * lib/unicase/u32-casefold.c: Update. * modules/unicase/u32-casefold (Depends-on): Add unicase/u32-ct-casefold, unicase/empty-prefix-context, unicase/empty-suffix-context. Clean up. Define u16_casefold as a wrapper around u16_ct_casefold. * lib/unicase/u16-casefold.c: Update. * modules/unicase/u16-casefold (Depends-on): Add unicase/u16-ct-casefold, unicase/empty-prefix-context, unicase/empty-suffix-context. Clean up. Define u8_casefold as a wrapper around u8_ct_casefold. * lib/unicase/u-casefold.h (FUNC): Delegate to U_CT_CASEFOLD. * lib/unicase/u8-casefold.c: Update. * modules/unicase/u8-casefold (Depends-on): Add unicase/u8-ct-casefold, unicase/empty-prefix-context, unicase/empty-suffix-context. Clean up. Define u32_totitle as a wrapper around u32_ct_totitle. * lib/unicase/u32-totitle.c: Update. * modules/unicase/u32-totitle (Depends-on): Add unicase/u32-ct-totitle, unicase/empty-prefix-context, unicase/empty-suffix-context. Clean up. Define u16_totitle as a wrapper around u16_ct_totitle. * lib/unicase/u16-totitle.c: Update. * modules/unicase/u16-totitle (Depends-on): Add unicase/u16-ct-totitle, unicase/empty-prefix-context, unicase/empty-suffix-context. Clean up. Define u8_totitle as a wrapper around u8_ct_totitle. * lib/unicase/u-totitle.h (is_cased, is_case_ignorable): Remove functions. (FUNC): Delegate to U_CT_TOTITLE. * lib/unicase/u8-totitle.c: Update. * modules/unicase/u8-totitle (Depends-on): Add unicase/u8-ct-totitle, unicase/empty-prefix-context, unicase/empty-suffix-context. Clean up. * lib/unicase/u32-tolower.c (u32_tolower): Update u32_casemap invocation. * modules/unicase/u32-tolower (Depends-on): Add unicase/empty-prefix-context, unicase/empty-suffix-context. * lib/unicase/u16-tolower.c (u16_tolower): Update u16_casemap invocation. * modules/unicase/u16-tolower (Depends-on): Add unicase/empty-prefix-context, unicase/empty-suffix-context. * lib/unicase/u8-tolower.c (u8_tolower): Update u8_casemap invocation. * modules/unicase/u8-tolower (Depends-on): Add unicase/empty-prefix-context, unicase/empty-suffix-context. * lib/unicase/u32-toupper.c (u32_toupper): Update u32_casemap invocation. * modules/unicase/u32-toupper (Depends-on): Add unicase/empty-prefix-context, unicase/empty-suffix-context. * lib/unicase/u16-toupper.c (u16_toupper): Update u16_casemap invocation. * modules/unicase/u16-toupper (Depends-on): Add unicase/empty-prefix-context, unicase/empty-suffix-context. * lib/unicase/u8-toupper.c (u8_toupper): Update u8_casemap invocation. * modules/unicase/u8-toupper (Depends-on): Add unicase/empty-prefix-context, unicase/empty-suffix-context. New module 'unicase/u32-ct-casefold'. * lib/unicase/u32-ct-casefold.c: New file. * modules/unicase/u32-ct-casefold: New file. New module 'unicase/u16-ct-casefold'. * lib/unicase/u16-ct-casefold.c: New file. * modules/unicase/u16-ct-casefold: New file. New module 'unicase/u8-ct-casefold'. * lib/unicase/u8-ct-casefold.c: New file. * lib/unicase/u-ct-casefold.h: New file, derived from lib/unicase/u-casefold.h. * modules/unicase/u8-ct-casefold: New file. New module 'unicase/u32-ct-totitle'. * lib/unicase/u32-ct-totitle.c: New file. * modules/unicase/u32-ct-totitle: New file. New module 'unicase/u16-ct-totitle'. * lib/unicase/u16-ct-totitle.c: New file. * modules/unicase/u16-ct-totitle: New file. New module 'unicase/u8-ct-totitle'. * lib/unicase/u8-ct-totitle.c: New file. * lib/unicase/u-ct-totitle.h: New file, derived from lib/unicase/u-totitle.h. * modules/unicase/u8-ct-totitle: New file. New module 'unicase/u32-ct-tolower'. * lib/unicase/u32-ct-tolower.c: New file. * modules/unicase/u32-ct-tolower: New file. New module 'unicase/u16-ct-tolower'. * lib/unicase/u16-ct-tolower.c: New file. * modules/unicase/u16-ct-tolower: New file. New module 'unicase/u8-ct-tolower'. * lib/unicase/u8-ct-tolower.c: New file. * modules/unicase/u8-ct-tolower: New file. New module 'unicase/u32-ct-toupper'. * lib/unicase/u32-ct-toupper.c: New file. * modules/unicase/u32-ct-toupper: New file. New module 'unicase/u16-ct-toupper'. * lib/unicase/u16-ct-toupper.c: New file. * modules/unicase/u16-ct-toupper: New file. New module 'unicase/u8-ct-toupper'. * lib/unicase/u8-ct-toupper.c: New file. * modules/unicase/u8-ct-toupper: New file. Add context arguments to u*_casemap functions. * lib/unicase/unicasemap.h: Include unicase.h. (u8_casemap, u16_casemap, u32_casemap): Add prefix_context and suffix_context arguments. * lib/unicase/u-casemap.h (is_cased, is_case_ignorable): Remove functions. (FUNC): Add prefix_context and suffix_context arguments. Use uc_is_cased and uc_is_case_ignorable. * lib/unicase/u8-casemap.c: Include caseprop.h and context.h. * lib/unicase/u16-casemap.c: Likewise. * lib/unicase/u32-casemap.c: Likewise. * modules/unicase/u8-casemap (Files): Add lib/unicase/context.h. (Depends-on): Add unicase/cased, unicase/ignorable. Clean up. * modules/unicase/u16-casemap (Files): Add lib/unicase/context.h. (Depends-on): Add unicase/cased, unicase/ignorable. Clean up. * modules/unicase/u32-casemap (Files): Add lib/unicase/context.h. (Depends-on): Add unicase/cased, unicase/ignorable. Clean up. New module 'unicase/u32-suffix-context'. * lib/unicase/u32-suffix-context.c: New file. * modules/unicase/u32-suffix-context: New file. New module 'unicase/u16-suffix-context'. * lib/unicase/u16-suffix-context.c: New file. * modules/unicase/u16-suffix-context: New file. New module 'unicase/u8-suffix-context'. * lib/unicase/u8-suffix-context.c: New file. * lib/unicase/u-suffix-context.h: New file. * modules/unicase/u8-suffix-context: New file. New module 'unicase/empty-suffix-context'. * lib/unicase/empty-suffix-context.c: New file. * modules/unicase/empty-suffix-context: New file. New module 'unicase/u32-prefix-context'. * lib/unicase/u32-prefix-context.c: New file. * modules/unicase/u32-prefix-context: New file. New module 'unicase/u16-prefix-context'. * lib/unicase/u16-prefix-context.c: New file. * modules/unicase/u16-prefix-context: New file. New module 'unicase/u8-prefix-context'. * lib/unicase/u8-prefix-context.c: New file. * lib/unicase/u-prefix-context.h: New file. * lib/unicase/context.h: New file. * modules/unicase/u8-prefix-context: New file. New module 'unicase/empty-prefix-context'. * lib/unicase/empty-prefix-context.c: New file. * modules/unicase/empty-prefix-context: New file. New module 'unicase/ignorable'. * lib/unicase/ignorable.c: New file. * modules/unicase/ignorable: New file. New module 'unicase/cased'. * lib/unicase/caseprop.h: New file. * lib/unicase/cased.c: New file. * modules/unicase/cased: New file. New functions for case mapping of substrings. * lib/unicase.h (casing_prefix_context_t): New type. (unicase_empty_prefix_context): New variable. (u8_casing_prefix_context, u16_casing_prefix_context, u32_casing_prefix_context, u8_casing_prefixes_context, u16_casing_prefixes_context, u32_casing_prefixes_context): New declarations. (casing_suffix_context_t): New type. (unicase_empty_suffix_context): New variable. (u8_casing_suffix_context, u16_casing_suffix_context, u32_casing_suffix_context, u8_casing_suffixes_context, u16_casing_suffixes_context, u32_casing_suffixes_context, u8_ct_toupper, u16_ct_toupper, u32_ct_toupper, u8_ct_tolower, u16_ct_tolower, u32_ct_tolower, u8_ct_totitle, u16_ct_totitle, u32_ct_totitle, u8_ct_casefold, u16_ct_casefold, u32_ct_casefold): New declarations. 2009-06-28 Jim Meyering boostrap: indent only with spaces * build-aux/bootstrap: Indent only with spaces, never TABs. bootstrap: split long lines * build-aux/bootstrap: Keep line length < 80. bootstrap: sync from coreutils * build-aux/bootstrap: Honor variables like $ACLOCAL, etc., just as autoreconf does. Verify a list of prerequisite package-name,version-number pairs if defined in bootstrap.conf. Refer to README-prereq, if prerequisites are not satisfied. 2009-06-27 Eric Blake tests: add test for bogus NULL definition * tests/test-stdio.c: Ensure POSIX 2008 requirement on NULL. * tests/test-stdlib.c: Likewise. * tests/test-string.c: Likewise. * tests/test-locale.c: Likewise. * tests/test-unistd.c: Likewise. * modules/stdio-tests (Depends-on): Add verify. * modules/stdlib-tests (Depends-on): Likewise. * modules/string-tests (Depends-on): Likewise. * modules/locale-tests (Depends-on): Likewise. * modules/unistd-tests (Depends-on): Likewise. 2009-06-27 Paolo Bonzini * m4/selinux-context-h (gl_HEADERS_SELINUX_CONTEXT_H): Remove self-explaining comment. * m4/selinux-selinux-h: Update serial. (gl_LIBSELINUX): New macro, adding a warning for missing development packages to code extracted from... (gl_HEADERS_SELINUX_SELINUX_H): ... this one. Require gl_LIBSELINUX. Add warning for missing development packages here, too. 2009-06-26 Paolo Bonzini * build-aux/bootstrap: Do not use GIT_CONFIG_LOCAL. 2009-06-25 Eric Blake version-etc: fix regression * lib/version-etc.h (ATTRIBUTE_SENTINEL): Define for new enough gcc. (version_etc): Use it, to catch bugs with trailing NULL. * lib/version-etc.c (version_etc_arn): Delete unused argument. (version_etc_va): Fix logic bug. * modules/version-etc-tests: Add test. * tests/test-version-etc.c: New file. * tests/test-version-etc.sh: Likewise. 2009-06-25 Sam Steingold * mbrtowc.m4 (gl_MBRTOWC_SANITYCHECK): Include , for the mbtowc declaration. 2009-06-25 Eric Blake fpurge: migrate into * lib/fpurge.h: Delete... * lib/stdio.in.h (fpurge): ...and declare here, instead. * lib/fpurge.c (fpurge): Change declaring header. * modules/fpurge (Files): Drop deleted file. (Depends-on): Add stdio. (configure.ac): Set witness. * modules/stdio (Makefile.am): Support fpurge macros. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Likewise. * m4/fpurge.m4 (gl_FUNC_FPURGE): Set appropriate variables. * lib/fflush.c: Update client. * tests/test-fpurge.c: Likewise. * NEWS: Mention the change. 2009-06-25 Sergey Poznyakoff * lib/argp-version-etc.c (program_authors): Add const qualifier. * lib/version-etc.c: Fix typos in the comments. * modules/argp-version-etc: Depends on version-etc. 2009-06-25 Sergey Poznyakoff argp-version-etc: new module. * lib/argp-version-etc.c: New file. * lib/argp-version-etc.h: New file. * modules/argp-version-etc: New file. * modules/argp-version-etc-tests: New file. * tests/test-argp-version-etc.c: New test. * tests/test-argp-version-etc-1.sh: New test. 2009-06-25 Sergey Poznyakoff Provide additional interfaces and documentation for version-etc module. * lib/version-etc.c (version_etc_arn, version_etc_ar): New interfaces. * lib/version-etc.h (version_etc_arn, version_etc_ar): New prototypes. 2009-06-24 Bruno Haible * m4/lib-link.m4 (AC_LIB_HAVE_LINKFLAGS): Fix description of HAVE_LIB${NAME} macro. Reported by Sam Steingold . 2009-06-23 Simon Josefsson * modules/hash-tests (test_hash_LDADD): Link to libintl when needed. 2009-06-21 Bruno Haible Make two consecutive identical invocations of AC_LIB_HAVE_LINKFLAGS work. * m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Reset HAVE_LIB${NAME} together with LIB${NAME}, LTLIB${NAME}. Reported by Sam Steingold . 2009-06-20 Jim Meyering tests: make sc_require_test_exit_idiom more generic * top/maint.mk (Exit_witness_file): New overridable variable. (sc_require_test_exit_idiom): Don't hard-code tests/test-lib.sh. Relax test for /^Exit \$fail$$/ to just /^Exit ./. 2009-06-19 Jim Meyering hash: reverse order of src/dst parameters in an internal interface * lib/hash.c (transfer_entries): Reverse order of parameters to put DST before SRC. Adjust callers. tests: test-hash: avoid wholesale duplication * tests/test-hash.c (main): Don't copy/paste a 60-line loop. Instead, use a loop and add a single conditional. tests: test-hash: allow seed selection via a command line argument * tests/test-hash.c (get_seed): New function. (main): Use it. 2009-06-19 Eric Blake hash: avoid memory leak on allocation failure * lib/hash.c: (hash_rehash): Avoid memory leak on allocation failure. Factor repeated algorithm... (transfer_entries): ...into new helper routine. (hash_delete): React to hash_rehash return value. hash: reduce memory pressure in hash_rehash no-op case * lib/hash.c (next_prime): Avoid overflow. (hash_initialize): Factor bucket size computation... (compute_bucket_size): ...into new helper function. (hash_rehash): Use new function and open coding to reduce memory pressure, and avoid a memory leak in USE_OBSTACK code. Reported by Jim Meyering. 2009-06-18 Eric Blake hash: make rotation more obvious * modules/hash (Depends-on): Add bitrotate and stdint. * lib/bitrotate.h (rotl_sz, rotr_sz): New functions. * lib/hash.c (headers): Drop limits.h. Add stdint.h. (SIZE_MAX): Rely on headers for definition. (hash_string) [USE_DIFF_HASH]: Use rotl_sz. (raw_hasher): Use rotr_sz. Suggested by Jim Meyering. hash: fix memory leak in last patch * lib/hash.c (hash_rehash): Avoid memory leak. hash: avoid no-op rehashing * lib/hash.c (hash_rehash): Recognize useless rehash attempts. hash: provide default callback functions * lib/hash.c (raw_hasher, raw_comparator): New functions. (hash_initialize): Use them as defaults. * tests/test-hash.c (main): Test this. hash: minor optimization * lib/hash.c (hash_lookup, hash_find_entry): Avoid function call when possible. (hash_initialize): Document this promise. (hash_do_for_each, hash_clear, hash_free): Use C89 syntax. * tests/test-hash.c (hash_compare_strings): Test this. 2009-06-18 Bruno Haible * m4/strstr.m4 (gl_FUNC_STRSTR): Skip linear time test if strstr is going to be replaced anyway. 2009-06-18 Bruno Haible * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Invoke AC_LIBOBJ only in one place. (gl_FUNC_STRCASESTR): Skip linear time test if strcasestr is going to be replaced anyway. 2009-06-18 Eric Blake hash: check for resize before insertion * lib/hash.c (hash_insert): Check whether bucket usage exceeds threshold before insertion, so that a pathological hash_rehash that fills every bucket can still trigger another rehash. 2009-06-18 Jim Meyering hash-tests: add a loop around the small tests * tests/test-hash.c (main): Repeat small tests with selected small initial table sizes. 2009-06-17 Eric Blake hash: minor cleanups * lib/hash.h (hash_entry): Make opaque, by moving... * lib/hash.c (hash_entry): ...here. (hash_insert): Clarify restrictions on what can be inserted. (hash_get_next): Clarify when it is safe to remove an element during traversal. (check_tuning): Skip verification when tuning is known safe. (hash_initialize): Clarify restrictions on tuning. 2009-06-17 Jim Meyering and Eric Blake hash-tests: new module * modules/hash-tests: New file. * tests/test-hash.c: New file. 2009-06-17 Eric Blake strstr-simple: document new module * MODULES.html.sh: Document new module. strstr, strcasestr: replace on platforms with broken memchr * modules/strstr: Split into... * modules/strstr-simple: ...new module that does not care about performance, but does care about glibc bug. * m4/strstr.m4 (gl_FUNC_STRSTR): Split... (gl_FUNC_STRSTR_SIMPLE): ...into new macro, which replaces strstr if platform memchr is broken, per Debian bug 521737. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): React to broken memchr. * m4/memchr.m4 (gl_FUNC_MEMCHR): Only expand once. * doc/posix-functions/strstr.texi (strstr): Document the fix. * doc/glibc-functions/strcasestr.texi (strcasestr): Likewise. * modules/mountlist (Depends-on): Add strstr-simple. * modules/gen-uni-tables (Depends-on): Likewise. * modules/argz (Depends-on): Add strstr. 2009-06-17 Bruno Haible * modules/posix_spawn-internal (Depends-on): Add errno. 2009-06-17 Bruno Haible Define missing ESTALE on Interix 3.5. * lib/errno.in.h (ESTALE): Assign a value if missing. * lib/strerror.c (rpl_strerror): Handle missing ESTALE and ECANCELED. * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Also test whether ESTALE is missing. * doc/posix-headers/errno.texi: Mention the Interix bug. Reported by Jay Krell via Eric Blake. 2009-06-15 Eric Blake memchr, memchr2: add valgrind exception * lib/memchr.valgrind: New file. * lib/memchr2.valgrind: New file. * modules/memchr (Files): Distribute valgrind file. * modules/memchr2 (Files): Likewise. docs: memchr is no longer obsolete * MODULES.html.sh: Move memchr from obsolete to string.h section. * lib/string.in.h (memchr): Simplify logic. 2009-06-14 Jim Meyering link-follow: fix the "checking..." message to not mention trailing slash * m4/link-follow.m4 (gl_AC_FUNC_LINK_FOLLOWS_SYMLINK): This test has never considered trailing slashes. 2009-06-14 Bruno Haible * m4/memchr.m4: Mention also the bug on IA-64. * doc/posix-functions/memchr.texi: Likewise. 2009-06-12 Eric Blake memchr: detect broken x86_64 and alpha implementations * modules/memchr-tests (Depends-on): Move mmap detection... * modules/memchr (Depends-on): ...here. (configure.ac): Set indicator. * lib/string.in.h (memchr): Declare replacement. * modules/string (Makefile.am): Trigger replacement. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Likewise. * m4/memchr.m4 (gl_FUNC_MEMCHR): Use mmap to detect platform bugs. * doc/posix-functions/memchr.texi (memchr): Document the bug. * modules/getpagesize (License): Relax license. 2009-06-11 Bruno Haible * lib/idpriv.h: Add more references. 2009-06-08 Bruno Haible Tests for module 'idpriv-droptemp'. * modules/idpriv-droptemp-tests: New file. * tests/test-idpriv-droptemp.sh: New file. * tests/test-idpriv-droptemp.su.sh: New file. * tests/test-idpriv-droptemp.c: New file. New module 'idpriv-droptemp'. * lib/idpriv-droptemp.c: New file. * modules/idpriv-droptemp: New file. 2009-06-08 Bruno Haible Tests for module 'idpriv-drop'. * modules/idpriv-drop-tests: New file. * tests/test-idpriv-drop.sh: New file. * tests/test-idpriv-drop.su.sh: New file. * tests/test-idpriv-drop.c: New file. New module 'idpriv-drop'. * lib/idpriv.h: New file. * lib-idpriv-drop.c: New file. * m4/idpriv.m4: New file. * modules/idpriv-drop: New file. 2009-06-08 Bruno Haible * modules/unistdio/u8-vasnprintf (Depends-on): Add memchr. * modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/ulc-vasnprintf (Depends-on): Likewise. 2009-06-08 Eric Blake test-strstr: use memory fence, when possible * tests/test-strstr.c (main): Use memory fence, in order to be more likely to trigger Debian bug 521737. * modules/strstr-tests (Files): Pull in additional files. memchr: no longer obsolete, for wider field testing * modules/memchr (Status, Notice): Delete, this module is no longer obsolete. * modules/vasnprintf (Depends-on): Add memchr. 2009-06-07 Jim Meyering hash: declare some functions with the warn_unused_result attribute * lib/hash.h (__attribute__, ATTRIBUTE_WUR): Define. 2009-06-07 Bruno Haible * tests/test-alignof.c: Don't test int64_t if it does not exist. Reported by Eric Blake. 2009-06-06 Eric Blake test-alignof: fix typo with long double * tests/test-alignof.c (CHECK): Use longdouble typedef to avoid compiler error. 2009-06-06 Neil Jerram (tiny change) Escape non-texinfo { and }s. * doc/ld-output-def.texi (Visual Studio Compatibility): Fix markup error. 2009-06-04 Jim Meyering gitlog-to-changelog: don't infloop on an empty commit log * build-aux/gitlog-to-changelog: Warn about an empty log message. Reported by Boris Petersen . 2009-06-03 Mike Frysinger version-etc: extend for packagers Add three new configure options, intended for packagers: --with-packager="packager name" --with-packager-version="packager-specific version" --with-packager-bug-reports="packager bug reporting" An example with coreutils: $ ./configure \ --with-packager=Gentoo \ --with-packager-bug-report=http://bugs.gentoo.org/ \ --with-packager-version="patchset 1.6" $ ./src/ls --version | head -n2 ls (GNU coreutils) 7.1-dirty Packaged by Gentoo (patchset 1.6) Note that the bug reporting info via --help doesn't show up because coreutils uses its own custom emit_bug_reporting_address() implementation in src/system.h. If it didn't, it'd look like: $ ./src/ls --help | tail -n4 Report bugs to . Report Gentoo bugs to . GNU coreutils home page: . General help using GNU software: . * lib/version-etc.c: Print new information, if provided. * m4/version-etc.m4: New file. * modules/version-etc (Files): Add m4/version-etc.m4. (configure.ac): Add gl_VERSION_ETC. 2009-05-31 Bruno Haible * tests/test-alignof.c: Include . Check also 'long double' and 'int64_t'. * modules/alignof-tests (Dependencies): Add stdint. Reported by Eric Blake. 2009-05-31 Bruno Haible * lib/alignof.h (alignof_slot, alignof_type, alignof): Document restriction due to compiler bugs. Reported by Eric Blake. 2009-05-31 Simon Josefsson Bruno Haible Fix test-alignof failure. * lib/alignof.h (alignof_slot): New macro. (alignof_type): New macro, with the same semantics as the previous 'alignof'. (alignof): Alias to alignof_slot. * tests/test-alignof.c (CHECK): Check alignof_slot, not alignof. Also check that the results are usable as constant expressions. 2009-05-31 Bruno Haible * tests/zerosize-ptr.h (zerosize_ptr): Specify more details. * tests/test-memchr.c (main): Check that memchr does not read past the first occurrence of the byte. * tests/test-strstr.c (main): Update comment. Suggested by Eric Blake. 2009-05-30 Bruno Haible * doc/ld-output-def.texi (Visual Studio Compatibility): Explain in more detail how to use dumpbin. Reported by David Byron . 2009-06-02 Simon Josefsson * tests/test-parse-duration.sh: Don't use non-portable 'read -u3'. 2009-06-02 Simon Josefsson * m4/manywarnings.m4: Add GCC 4.4 warnings. 2009-05-28 Bruno Haible * gnulib-tool (func_import): Don't do HAVE_CONFIG_H replacements on build-aux/ files. 2009-05-28 Simon Josefsson * gnulib-tool (func_import): Transform license on build-aux/ files too. 2009-05-27 Simon Josefsson * gnulib-tool (sed_transform_main_lib_file) (sed_transform_testsrelated_lib_file): : Don't use non-POSIX regexps. 2009-05-26 Simon Josefsson * tests/test-strstr.c: Add another self-test. * tests/test-strstr.c: Rewrite to use malloc/strcpy instead of strdup. Suggested by Eric Blake . 2009-05-23 Bruno Haible * doc/havelib.texi (AC_LIB_HAVE_LINKFLAGS): Update for 2009-04-26 change. 2009-05-21 Bruno Haible Simplify use of mode_t varargs. * lib/open.c (open): Use PROMOTED_MODE_T instead of a conditional that uses 'mode_t' or 'int'. * lib/openat.c (openat): Likewise. * lib/open-safer.c (open_safer): Likewise. * m4/mode_t.m4: New file. * m4/open.m4 (gl_PREREQ_OPEN): Require gl_PROMOTED_TYPE_MODE_T. * m4/openat.m4 (gl_PREREQ_OPENAT): Likewise. * m4/fcntl-safer.m4 (gl_FCNTL_SAFER): Likewise. * modules/open (Files): Add m4/mode_t.m4. * modules/openat (Files): Likewise. * modules/fcntl-safer (Files): Likewise. Suggested by Eric Blake. 2009-05-21 Pádraig Brady * doc/glibc-functions/fallocate.texi: New file. * doc/gnulib.texi: Include it. 2009-05-21 Eric Blake Bruno Haible * m4/include_next.m4 (gl_CHECK_NEXT_HEADERS): Remove redundant m4_quote invocations. * m4/absolute-header.m4 (gl_ABSOLUTE_HEADER): Likewise. 2009-05-21 Eric Blake Bruno Haible Second attempt to work around an AIX 5.3, 6.1 compiler bug with include_next. Fix of 2008-11-20 commit. * m4/include_next.m4 (gl_CHECK_NEXT_HEADERS): Also set NEXT_AS_FIRST_DIRECTIVE_FOO_H. * lib/math.in.h: Use NEXT_AS_FIRST_DIRECTIVE_MATH_H instead of NEXT_MATH_H. * modules/math (Makefile.am): Substitute NEXT_AS_FIRST_DIRECTIVE_MATH_H instead of NEXT_MATH_H. 2009-05-21 Bruno Haible Avoid redefinition warnings for SIZE_MAX. * m4/size_max.m4 (gl_SIZE_MAX): Avoid redefining SIZE_MAX in config.h. Reported by Simon Josefsson. 2009-05-21 Bruno Haible * m4/size_max.m4 (gl_SIZE_MAX): Use AC_CACHE_CHECK instead of AC_CACHE_VAL. 2009-05-20 Bruno Haible Make zeroptr.h work on mingw. * tests/zerosize-ptr.h: Test for the presence of and mprotect. * modules/memchr-tests (configure.ac): Also test for sys/mman.h. * modules/memchr2-tests (configure.ac): Likewise. * modules/memcmp-tests (configure.ac): Likewise. * modules/memmem-tests (configure.ac): Likewise. * modules/memrchr-tests (configure.ac): Likewise. Reported by Simon Josefsson. 2009-05-20 Simon Josefsson * tests/test-glob.c: Include string.h for strcmp prototype. 2009-05-20 Simon Josefsson * modules/getdelim (Depends-on): Add explicit stdint, although it was implicitly already pulled in via realloc-posix. * lib/getdelim.c: Get SIZE_MAX from stdint.h. 2009-05-20 Simon Josefsson MinGW and IRIX does not have sa_family_t type. Reported by "Tom G. Christensen" . * m4/sys_socket_h.m4: Check for sa_family_t. * lib/sys_socket.in.h: Typedef sa_family_t when needed. * modules/sys_socket: Substitute HAVE_SA_FAMILY_T. * tests/test-sys_socket.c: Check that sa_family_t works. 2009-05-18 Eric Blake maint.mk: allow gnulib_dir in VPATH build * top/maint.mk (gnulib_dir): Make relative to $(srcdir). 2009-05-15 Jim Meyering maint.mk: Give gnulib_dir a default definition. * top/maint.mk (gnulib_dir): Define to 'gnulib', by default. Thus, most packages no longer need to specify this variable in cfg.mk 2009-05-14 Tom Prince (tiny change) rename.m4: fix typos that would make non-mingw cross-configure fail * m4/rename.m4 (gl_FUNC_RENAME): Fix typos. 2009-05-13 Eric Blake mmap-anon: avoid out-of-order autoconf expansion * m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Use correct SYSTEM_EXTENSIONS macro to silence warnings from autoconf 2.63b. * modules/memchr-tests (Depends-on): Add extensions. * modules/memchr2-tests (Depends-on): Add extensions. * modules/memcmp-tests (Depends-on): Add extensions. * modules/memmem-tests (Depends-on): Add extensions. * modules/memrchr-tests (Depends-on): Add extensions. 2009-05-13 Bruno Haible Make some tests ISO C 99 compliant. * tests/zerosize-ptr.h: New file. * tests/test-memchr.c: Include zerosize-ptr.h. (main): Use a zero-size object pointer instead of NULL. * tests/test-memchr2.c: Include zerosize-ptr.h. (main): Use a zero-size object pointer instead of NULL. * tests/test-memcmp.c: Include zerosize-ptr.h. (main): Use a zero-size object pointer instead of NULL. * tests/test-memmem.c: Include zerosize-ptr.h. (main): Use a zero-size object pointer instead of NULL. * tests/test-memrchr.c: Include zerosize-ptr.h. (main): Use a zero-size object pointer instead of NULL. * modules/memchr-tests (Files): Add tests/zerosize-ptr.h, m4/mmap-anon.m4. (Depends-on): Add getpagesize. (configure.ac): Invoke gl_FUNC_MMAP_ANON. Check for mprotect. * modules/memchr2-tests (Files): Add tests/zerosize-ptr.h, m4/mmap-anon.m4. (Depends-on): Add getpagesize. (configure.ac): Invoke gl_FUNC_MMAP_ANON. Check for mprotect. * modules/memcmp-tests (Files): Add tests/zerosize-ptr.h, m4/mmap-anon.m4. (Depends-on): Add getpagesize. (configure.ac): Invoke gl_FUNC_MMAP_ANON. Check for mprotect. * modules/memmem-tests (Files): Add tests/zerosize-ptr.h, m4/mmap-anon.m4. (Depends-on): Add getpagesize. (configure.ac): Invoke gl_FUNC_MMAP_ANON. Check for mprotect. * modules/memrchr-tests (Files): Add tests/zerosize-ptr.h, m4/mmap-anon.m4. (Depends-on): Add getpagesize. (configure.ac): Invoke gl_FUNC_MMAP_ANON. Check for mprotect. 2009-05-12 Bruno Haible Tests for module 'alignof'. * modules/alignof-tests: New file. * tests/test-alignof.c: New file. 2009-05-12 Bruno Haible Fix alignof macro. * lib/alignof.h (alignof): Remove special cases for AIX and HP-UX vendor compilers that are always correct. 2009-05-12 Bruno Haible Make the MAP_ANONYMOUS detection work on HP-UX 11. * m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Check whether mmap exists, but not whether its fully works. 2009-05-12 Bruno Haible * m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Add comments. 2009-05-12 Jim Meyering * top/maint.mk: Adjust backslash alignment. 2009-05-11 Simon Josefsson * top/maint.mk: Make $(srcdir)/build-aux configurable. 2009-05-11 Eric Blake argp: avoid undefined behavior * lib/argp-fmtstream.c (weak_alias): Pass correct types to ctype macros. 2009-05-08 Simon Josefsson * tests/test-vc-list-files-git.sh: Do git config of user.email and user.name to prevent git commit from complaining. 2009-05-10 Bruno Haible * gnulib-tool (func_import, func_create_testdir, copy-file): Change sed_rewrite_old_files, sed_rewrite_new_files, sed_rewrite_files so that it rewrites every file name only once. Reported by Simon Josefsson. Helped by Ralf Wildenhues. 2009-05-08 Bruno Haible * lib/sys_socket.in.h (_SS_PADSIZE): Use a conditional expression instead of 'max'. 2009-05-08 Simon Josefsson * m4/sys_socket_h.m4: Test for ws2tcpip.h earlier, needed for sockaddr_storage test. 2009-05-07 Simon Josefsson * modules/sys_socket (Makefile.am): Substitute HAVE_STRUCT_SOCKADDR_STORAGE. Depend on alignof. * m4/sys_socket_h.m4: Check for sockaddr_storage. * lib/sys_socket.in.h (sockaddr_storage): Define when needed. * tests/test-sys_socket.c: Check sockaddr_storage. 2009-05-08 Bruno Haible New module 'alignof'. * lib/alignof.h: New file. * modules/alignof: New file. 2009-05-04 David Bartley Bruno Haible Fix test-file-has-acl on FreeBSD. * tests/test-file-has-acl.sh: Also test a directory. On FreeBSD, the mask is implicitly added. * tests/test-file-has-acl.c: Include . (main): Terminate the test after 5 seconds. * modules/acl-tests (configure.ac): Check for alarm function. 2009-05-04 Bruno Haible Exploit new semantics of AC_DEFUN_ONCE available since 2009-01-26. * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Remove outdated comment. * modules/errno (configure.ac): Drop AC_REQUIRE. * m4/multiarch.m4 (gl_MULTIARCH): Remove outdated comment. * modules/multiarch (configure.ac): Drop AC_REQUIRE. 2009-05-04 Simon Josefsson * modules/glob-tests: New module. * tests/test-glob.c: Add. 2009-05-04 Simon Josefsson * modules/fnmatch-tests: New module. * tests/test-fnmatch.c: Add. 2009-05-04 Eric Blake maint: make the new no-submodule-changes rule VPATH-safe * top/maint.mk (no-submodule-changes): Don't assume a srcdir build. 2009-05-04 David Bartley Bruno Haible acl: Fix infinite loop on FreeBSD. * lib/acl_entries.c (acl_entries) [Linux, FreeBSD]: Fix interpretation of return value from acl_get_entry. * lib/file-has-acl.c (acl_access_nontrivial) [Linux, FreeBSD]: Likewise. 2009-05-03 Bruno Haible * lib/acl-internal.h (acl_entries): Clarify return value. * lib/acl_entries.c (acl_entries): Likewise. 2009-05-04 David Bartley Bug fix in acl module. * lib/set-mode-acl.c: Use correct struct with ACL_SETACL. 2009-05-03 Bruno Haible Create gperf-generated file in the source dir, not in the build dir. * modules/iconv_open (iconv_open-aix.h, iconv_open-hpux.h, iconv_open-irix.h, iconv_open-osf.h): Create file in the source tree. * modules/unicase/locale-language (unicase/locale-languages.h): Likewise. * modules/unicase/special-casing (unicase/special-casing-table.h): Likewise. * modules/unictype/property-byname (unictype/pr_byname.h): Likewise. * modules/unictype/scripts (unictype/scripts_byname.h): Likewise. * modules/uninorm/composition (uninorm/composition-table.h): Likewise. Reported by Ralf Wildenhues. 2009-05-03 Bruno Haible * modules/fnmatch (Description, configure.ac): Taken from fnmatch-posix. * modules/fnmatch-posix: Turn into a symbolic reference to the 'fnmatch' module, and deprecate. * doc/posix-functions/fnmatch.texi: Mention the fnmatch module. 2009-05-03 Bruno Haible * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF, gl_PREREQ_VASNPRINTF_LONG_DOUBLE): Define through AC_DEFUN_ONCE. Reported by Ralf Wildenhues. 2009-05-04 Simon Josefsson * m4/fnmatch.m4: Fix fnmatch re-define. 2009-04-27 David Bartley priv-set: new module and tests; adapt write-any-file * lib/priv-set.c: New file. * lib/priv-set.h: New file. * lib/unlinkdir.c: Make cannot_unlink_dir thread-safe. * lib/write-any-file.c: Simplify by using priv-set module. * m4/priv-set.m4: New file. * modules/priv-set: New file. * modules/unlinkdir: Add dependency on priv-set module. * modules/write-any-file: Likewise. Tests for module 'priv-set'. * modules/priv-set-tests: New file. * tests/test-priv-set.c: New file. 2009-05-03 Jim Meyering Bruno Haible * lib/propername.c (proper_name_utf8): Ignore no-op translations; use the converted UTF-8 variant of the name instead. 2009-05-03 Jim Meyering tests: tighten some getdate tests * tests/test-getdate.c (main): Tighten tests: require equality, not just greater than. Set TZ envvar to UTC0. 2009-05-03 Giuseppe Scrivano getdate: correctly interpret "next monday" when run on a Monday * lib/getdate.y (get_date): Correct the calculation of tm_mday so that e.g., "next tues" (when run on a tuesday) results in a date that is one week in the future, and not today's date. I.e., add a week when the wday is the same as the current one. Reported by Tom Broadhurst in http://savannah.gnu.org/bugs/?25406, and earlier by Martin Bernreuther and Jan Minář. * tests/test-getdate.c (main): Check that "next DAY" is always in the future and that "last DAY" is always in the past. 2009-05-02 Jim Meyering build: ensure that a release build fails when a submodule is unclean * top/maint.mk (no-submodule-changes): New rule. (alpha beta major): Depend on it. 2009-05-02 Bruno Haible Remove incompatibility between modules fnmatch-posix and fnmatch-gnu. * m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX, gl_FUNC_FNMATCH_GNU): Use a shell variable gl_fnmatch_required to detect which variant is requested. (_AC_FUNC_FNMATCH_IF, _AC_LIBOBJ_FNMATCH): Remove macros. Inlined into gl_FUNC_FNMATCH_POSIX. * gnulib-tool (func_create_testdir, func_create_megatestdir): Don't exclude fnmatch-posix. 2009-05-02 Bruno Haible Relicense mbsrtowcs and strnlen1 under LGPLv2+. * modules/mbsrtowcs (License): Change to LGPLv2+. * modules/strnlen1 (License): Likewise. Reported by Simon Josefsson. 2009-05-02 Bruno Haible * m4/fnmatch.m4 (_AC_FUNC_FNMATCH_IF): Say "guessing no" instead of "cross". (gl_FUNC_FNMATCH_POSIX, gl_FUNC_FNMATCH_GNU): Update. Don't assume that gnulib-tool was called with option --source-base=lib. 2009-05-02 Ralf Wildenhues Use automake *-local hooks without commands, for extensibility. * modules/localcharset (Makefile.am): Rename install-exec-local rule to install-exec-localcharset, and make it a prerequisite of install-exec-local. Likewise, rename the uninstall-local rule to uninstall-localcharset, and make it a prerequisite of the former. 2009-05-01 Bruno Haible * lib/wchar.in.h (wcsnrtombs): Define if REPLACE_WCSNRTOMBS is 1. * m4/wcsnrtombs.m4 (gl_FUNC_WCSRTOMBS): Invoke gl_MBSTATE_T_BROKEN, and set REPLACE_WCSNRTOMBS if mbstate_t must be replaced. * m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WCSNRTOMBS. * modules/wchar (Makefile.am): Substitute REPLACE_WCSNRTOMBS. * modules/wcsnrtombs (Files): Add m4/mbrtowc.m4, m4/locale-ja.m4, m4/locale-zh.m4, m4/codeset.m4. * m4/wcsrtombs.m4 (gl_FUNC_WCSNRTOMBS): Invoke gl_MBSTATE_T_BROKEN, and set REPLACE_WCSRTOMBS if mbstate_t must be replaced. * modules/wcsrtombs (Files): Add m4/mbrtowc.m4, m4/locale-ja.m4, m4/locale-zh.m4. * m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Invoke gl_MBSTATE_T_BROKEN, and set REPLACE_WCRTOMB if mbstate_t must be replaced. * modules/wcrtomb (Files): Add m4/mbrtowc.m4. Reported by Jens Rehsack via Eric Blake. 2009-05-01 Bruno Haible Avoid compiler warnings when redefining macros defined by . * lib/gettext.h [!ENABLE_NLS] (gettext, dgettext, dcgettext, ngettext, dngettext, dcngettext, textdomain, bindtextdomain, bind_textdomain_codeset): Undefine before redefining. 2009-04-30 Bruno Haible Fix bug introduced on 2009-04-25. * lib/math.in.h (gl_signbitf_OPTIMIZED_MACRO, gl_signbitd_OPTIMIZED_MACRO, gl_signbitl_OPTIMIZED_MACRO): New macros. * lib/signbitf.c (gl_signbitd): Undefine if gl_signbitf_OPTIMIZED_MACRO is defined. * lib/signbitd.c (gl_signbitd): Undefine if gl_signbitd_OPTIMIZED_MACRO is defined. * lib/signbitl.c (gl_signbitd): Undefine if gl_signbitl_OPTIMIZED_MACRO is defined. Reported by Elbert_Pol . 2009-04-28 Bruno Haible Comment tweaks. * lib/unistr.h (u*_cmp2): Clarify what memcmp2 is. * lib/uninorm.h (u*_normxfrm): Fix description of return value. * lib/unicase.h (u*_casexfrm): Likewise. Reported by Paolo Bonzini. 2009-04-28 Bruno Haible Fix a compilation error. * lib/mbsrtowcs-state.c (_gl_mbsrtowcs_state): Fix initializer. * lib/wcsrtombs-state.c (_gl_wcsrtombs_state): Likewise. Reported by Jim Meyering. 2009-04-27 Bruno Haible New module 'libunistring'. * modules/libunistring: New file. * m4/libunistring.m4: New file. * MODULES.html.sh (Unicode string functions): Add it. 2009-04-27 Eric Blake maint.mk: allow package-specific header to provide * top/maint.mk (sc_require_config_h): New variable. (sc_require_config_h, sc_require_config_h_first): Use it. 2009-04-27 Simon Josefsson * top/maint.mk (sc_avoid_if_before_free): Except useless-if-before-free script. 2009-04-27 Eric Blake maintainer-makefile: depend on all required helper scripts * modules/maintainer-makefile (Depends-on): Add vc-list-files and useless-if-before-free. * top/maint.mk (VC_LIST, sc_avoid_if_before_free): Use local version, rather than assuming gnulib checkout is available. Reported by Simen Josefsson. 2009-04-26 Bruno Haible Make the lib vs. lib64 recognition work on openSUSE 11 with "gcc -m32". * m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): Ignore paths that end in "../" or "..". 2009-04-26 Bruno Haible * m4/lib-link.m4 (AC_LIB_HAVE_LINKFLAGS): Accept a fifth argument. * m4/libsigsegv.m4 (gl_LIBSIGSEGV): Simplify by using AC_LIB_HAVE_LINKFLAGS. 2009-04-26 Bruno Haible Simplify calling convention of u*_conv_from_encoding. * lib/uniconv.h (u8_conv_from_encoding, u16_conv_from_encoding, u32_conv_from_encoding): Expect a resultbuf argument and return the result directly as a pointer. * lib/uniconv/u8-conv-from-enc.c (u8_conv_from_encoding): Likewise. * lib/uniconv/u-conv-from-enc.h (FUNC): Likewise. * lib/uniconv/u-strconv-from-enc.h (FUNC): Update. * lib/unicase/ulc-casecmp.c (ulc_u8_casefold): Update. * lib/unicase/ulc-casexfrm.c (ulc_casexfrm): Update. * lib/unilbrk/ulc-possible-linebreaks.c (ulc_possible_linebreaks): Update. * lib/unilbrk/ulc-width-linebreaks.c (ulc_width_linebreaks): Update. * lib/uniwbrk/ulc-wordbreaks.c (ulc_wordbreaks): Update. * lib/vasnprintf.c (VASNPRINTF): Update. * tests/uniconv/test-u8-conv-from-enc.c (main): Update. * tests/uniconv/test-u16-conv-from-enc.c (main): Update. * tests/uniconv/test-u32-conv-from-enc.c (main): Update. * NEWS: Mention the change. 2009-04-26 Bruno Haible Simplify calling convention of u*_conv_to_encoding. * lib/uniconv.h (u8_conv_to_encoding, u16_conv_to_encoding, u32_conv_to_encoding): Expect a resultbuf argument and return the result directly as a pointer. * lib/uniconv/u8-conv-to-enc.c (u8_conv_to_encoding): Likewise. * lib/uniconv/u-conv-to-enc.h (FUNC): Likewise. Preserve errno while freeing scaled_offsets if mem_iconveha failed. * lib/unicase/u-casexfrm.h (FUNC): Update. * lib/uninorm/u-normxfrm.h (FUNC): Update. * lib/vasnprintf.c (VASNPRINTF): Update. * tests/uniconv/test-u8-conv-to-enc.c (main): Update. * tests/uniconv/test-u16-conv-to-enc.c (main): Update. * tests/uniconv/test-u32-conv-to-enc.c (main): Update. * NEWS: Mention the change. 2009-04-26 Bruno Haible Avoid test failures on AIX and OSF/1. * lib/uniconv/u8-conv-from-enc.c (u8_conv_from_encoding): Avoid calling malloc(0). * lib/uniconv/u8-conv-to-enc.c (u8_conv_to_encoding): Likewise. * lib/unilbrk/ulc-possible-linebreaks.c (ulc_possible_linebreaks): Likewise. * lib/unilbrk/ulc-width-linebreaks.c (ulc_width_linebreaks): Likewise. * lib/uniwbrk/ulc-wordbreaks.c (ulc_wordbreaks): Likewise. * lib/uniconv/u-conv-to-enc.h (FUNC): Likewise. Fix memory leak. * lib/unistr/u-cpy-alloc.h (FUNC): Call malloc(1) instead of malloc(0). * doc/posix-functions/malloc.texi: Document the portability problem related to malloc(0). 2009-04-26 Bruno Haible * modules/unistr/u8-cpy-alloc (Depends-on): Add malloc-posix. * modules/unistr/u16-cpy-alloc (Depends-on): Likewise. * modules/unistr/u32-cpy-alloc (Depends-on): Likewise. 2009-04-25 Bruno Haible Avoid link error when creating a namespace clean library. * lib/math.in.h (gl_signbitf, gl_signbitd, gl_signbitl): Don't define as macro with arguments if already defined as an alias. * lib/signbitf.c (gl_signbitf): Don't undefine. * lib/signbitd.c (gl_signbitd): Don't undefine. * lib/signbitl.c (gl_signbitl): Don't undefine. 2009-04-25 Jim Meyering vc-list-files: fix another quoting bug * build-aux/vc-list-files: Avoid sed backslash expansion of pathological directory names. 2009-04-25 Eric Blake vc-list-files: fix shell quoting error * build-aux/vc-list-files: Protect against $ in $dir. Normalize timestamp. 2009-04-25 Jim Meyering vc-list-files: restore lost functionality with subdir argument * build-aux/vc-list-files: When given a non-"." sub-directory argument, substitute the $dir/ prefix back onto each resulting name. Otherwise, coreutils' root_tests check would fail. 2009-04-24 Eric Blake vc-list-files: ignore git symlinks * build-aux/vc-list-files (.git): Use ls-tree and a filter, rather than ls-files, to ignore git symlinks. maint.mk: import improvements from m4 * top/maint.mk (VC-tag): Use signing key from cfg.mk. (move_if_change): Delete unused macro. (news-date-check, vc-diff-check): Support VPATH builds. (announcement): Likewise. Split --bootstrap-tools list... (boostrap-tools): ...into separate list, which can be overridden in cfg.mk. (sc_avoid_if_before_free): Point to $(gnulib_dir), rather than requiring dependency on useless-if-before-free module. (VC_LIST, VC_LIST_EXCEPT): Likewise for vc-list-files module. Support VPATH builds. 2009-04-24 Jim Meyering maint.mk: remove coreutils-specific rules and variables * top/maint.mk (bin, taint-distcheck, coreutils-path-check, t): Remove. (fake_home, install-transform-check, my-instcheck, pfx, TMPDIR): Remove. (t_prefix, t_taint, tp, warn_cflags, write_loser, my-distcheck): Remove. maint.mk: remove obsolete rule * top/maint.mk (rel-check): Remove rule. (WGET, WGETFLAGS): Remove now-unused variables. 2009-04-24 Simon Josefsson * top/maint.mk (makefile-check): Renamed to sc_makefile_check for consistency. * modules/vc-list-files-tests (TESTS_ENVIRONMENT): Use '$(PATH_SEPARATOR)' instead of ':'. 2009-04-24 Simon Josefsson * lib/getopt1.c (main): Use 'const' for static array. 2009-04-24 Simon Josefsson * top/maint.mk: Sync with coreutils. * NEWS: Explain incompatibilities. 2009-04-22 Yoann Vandoorselaere Bruno Haible Fix cross-compilation results. * m4/btowc.m4 (gl_FUNC_BTOWC): Use no-op statement, rather than empty statement, as third argument of AC_TRY_RUN. * m4/mbrtowc.m4 (gl_MBRTOWC_INCOMPLETE_STATE, gl_MBRTOWC_SANITYCHECK, gl_MBRTOWC_NULL_ARG, gl_MBRTOWC_RETVAL, gl_MBRTOWC_NUL_RETVAL): Likewise. * m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): Likewise. * m4/wcsrtombs.m4 (gl_WCSRTOMBS_TERMINATION, gl_WCSRTOMBS_NULL): Likewise. * m4/wctob.m4 (gl_FUNC_WCTOB): Likewise. * m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise. Update for AIX 4.3. * doc/posix-functions/wcrtomb.texi: Mention the bug on AIX 4.3. 2009-04-20 Bruno Haible Avoid test failure on mingw. * tests/uniwidth/test-uc_width2.sh: Convert newlines in output. 2009-04-20 Bruno Haible Avoid compilation error on mingw. * modules/localename-tests (Depends-on): Add locale. 2009-04-19 Bruno Haible Support for building a shared library on Windows platforms. * tests/uninorm/test-nfc.c (n): Don't define if WOE32DLL. (main): Test the presence of UNINORM_NFC here. * tests/uninorm/test-nfd.c (n): Don't define if WOE32DLL. (main): Test the presence of UNINORM_NFD here. * tests/uninorm/test-nfkc.c (n): Don't define if WOE32DLL. (main): Test the presence of UNINORM_NFKC here. * tests/uninorm/test-nfkd.c (n): Don't define if WOE32DLL. (main): Test the presence of UNINORM_NFKD here. 2009-04-19 Bruno Haible Avoid a compiler warning. * tests/uninorm/test-u32-normalize-big.c (read_normalization_test_file): Change type of variable 'sequence'. 2009-04-19 Bruno Haible * modules/configmake (Makefile.am): When the contents of configmake.h does not change, arrange to preserve its modification time. 2009-04-17 Simon Josefsson * top/maint.mk (PO_DOMAIN): New variable, allows overriding of gettext domain. 2009-04-16 Jim Meyering useless-if-before-free: improve conversion code * build-aux/useless-if-before-free: Adjust code-in-comment to match "...!= 0" as well as "...!= NULL". emacs has one of the former. 2009-04-14 Bruno Haible * modules/fcntl (Depends-on): Add extensions. * m4/fcntl_h.m4 (gl_FCNTL_H): Add a comment. 2009-04-12 Ben Pfaff Make fcntl module detect O_NOATIME, O_NOFOLLOW on GNU/Linux. * m4/fcntl_h.m4 (gl_FCNTL_H): Require AC_USE_SYSTEM_EXTENSIONS. 2009-03-20 Ben Pfaff Make rename replace existing destinations on Windows. * m4/rename.m4: Add test for Mingw. * lib/rename.c: Add rename replacement that uses MoveFileEx with MOVEFILE_REPLACE_EXISTING to replace existing destination files. * doc/posix-functions/rename.texi: Document. 2009-04-10 Bruno Haible New include file "iconveh.h". * lib/iconveh.h: New file, extracted from lib/striconveh.h. * lib/striconveh.h: Include it. (enum iconv_ilseq_handler): Remove definition. * lib/striconveha.h: Include and iconveh.h instead of striconveh.h. * lib/striconveha.c: Include striconveh.h. * lib/uniconv.h: Include iconveh.h instead of striconveh.h. * modules/striconveh (Files): Add lib/iconveh.h. * modules/uniconv/base (Files): Add lib/iconveh.h. Remove lib/striconveh.h. 2009-04-10 Bruno Haible * lib/uniconv.h: Update comment. 2009-04-10 Bruno Haible * lib/unistr/u8-mbtouc-aux.c: Inside libunistring, define the function always. * lib/unistr/u8-mbtouc-unsafe-aux.c: Likewise. * lib/unistr/u16-mbtouc-aux.c: Likewise. * lib/unistr/u16-mbtouc-unsafe-aux.c: Likewise. * lib/unistr/u8-mbtouc.c: Inside libunistring, include "unistring-notinline.h", so that the function gets defined always. * lib/unistr/u8-mbtouc-unsafe.c: Likewise. * lib/unistr/u8-uctomb.c: Likewise. * lib/unistr/u16-mbtouc.c: Likewise. * lib/unistr/u16-mbtouc-unsafe.c: Likewise. * lib/unistr/u16-uctomb.c: Likewise. * lib/unistr/u32-mbtouc.c: Likewise. * lib/unistr/u32-mbtouc-unsafe.c: Likewise. * lib/unistr/u32-uctomb.c: Likewise. 2009-04-10 Bruno Haible Mark 'utime' obsolete. * modules/utime (Status, Notice): New sections. Suggested by Jim Meyering. Fix cross-compile guess for utime test. * m4/utime.m4 (AC_FUNC_UTIME_NULL): Add definition from newest unstable autoconf. * doc/posix-functions/utime.texi: Give more precisions. Reported by Jan . 2009-04-09 Kamil Dudka filevercmp: correct today's change * lib/filevercmp.c: Also handle coreutils' test inputs. * tests/test-filevercmp.c: Add inputs from one of coreutils' test scripts. Fix regression in 'filevercmp' module. Thanks Sven Joachim for reporting it. * lib/filevercmp.c: Special handle for "", "." and "..". * tests/test-filevercmp.c: Enlarge the set suite. 2009-04-07 Jim Meyering useless-if-before-free: show how to remove braced useless free, too * build-aux/useless-if-before-free: still only in a comment, though. 2009-04-07 Reuben Thomas maint.mk: import changes to syntax-check macros from coreutils * top/maint.mk (_prohibit_regexp, _header_without_use): Define. Use them in the relevant macros. 2009-04-06 Bruno Haible Fix unportable use of bit-fields. * lib/unicase/special-casing.h (struct special_casing_rule): Change the bit-field type from 'int' to 'signed int'. Otherwise Solaris cc, AIX xlc, and OSF/1 cc interpret it as 'unsigned int'. 2009-04-06 Bruno Haible Avoid test failures on AIX and OSF/1. * tests/unicase/test-u8-casefold.c (check): Account for the possibility that malloc(0) = NULL. * tests/unicase/test-u8-tolower.c (check): Likewise. * tests/unicase/test-u8-totitle.c (check): Likewise. * tests/unicase/test-u8-toupper.c (check): Likewise. * tests/unicase/test-u16-casefold.c (check): Likewise. * tests/unicase/test-u16-tolower.c (check): Likewise. * tests/unicase/test-u16-totitle.c (check): Likewise. * tests/unicase/test-u16-toupper.c (check): Likewise. * tests/unicase/test-u32-casefold.c (check): Likewise. * tests/unicase/test-u32-tolower.c (check): Likewise. * tests/unicase/test-u32-totitle.c (check): Likewise. * tests/unicase/test-u32-toupper.c (check): Likewise. * tests/uninorm/test-u8-nfc.c (check): Likewise. * tests/uninorm/test-u8-nfd.c (check): Likewise. * tests/uninorm/test-u8-nfkc.c (check): Likewise. * tests/uninorm/test-u8-nfkd.c (check): Likewise. * tests/uninorm/test-u16-nfc.c (check): Likewise. * tests/uninorm/test-u16-nfd.c (check): Likewise. * tests/uninorm/test-u16-nfkc.c (check): Likewise. * tests/uninorm/test-u16-nfkd.c (check): Likewise. * tests/uninorm/test-u32-nfc.c (check): Likewise. * tests/uninorm/test-u32-nfd.c (check): Likewise. * tests/uninorm/test-u32-nfkc.c (check): Likewise. * tests/uninorm/test-u32-nfkd.c (check): Likewise. 2009-04-05 Bruno Haible Work around an autoconf limitation. * gnulib-tool (func_emit_lib_Makefile_am): Omit the "Reproduce by" comment line if it would be longer than 3 KB. 2009-04-05 Bruno Haible Avoid test failure with libiconv-1.13. * tests/test-striconveh.c (main): Allow result of libiconv 1.13 as one of the expected test results. 2009-04-05 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am): Don't add the library to noinst_LTLIBRARIES if the Makefile.am in the same directory specifies that it should be installed. 2009-04-05 Bruno Haible * gnulib-tool: New option --copy-file. (func_usage): Document it. (func_dest_tmpfilename): Moved out of func_import. (func_add_file, func_update_file): New functions, extracted from func_import. (func_import): Update. 2009-04-05 Karl Berry * README: prominently mention gnulib-tool. Rearrange sections so getting the code is near the top. 2009-04-05 Bruno Haible * lib/unicase.h: Mention u*_cmp2. * lib/unicase/u-casecmp.h (FUNC): Invoke U_CMP2 instead of U_CMP. * lib/unicase/u8-casecmp.c: Use u8_cmp2 instead of u8_cmp. * lib/unicase/ulc-casecmp.c: Likewise. * lib/unicase/u16-casecmp.c: Use u16_cmp2 instead of u16_cmp. * lib/unicase/u32-casecmp.c: Use u32_cmp2 instead of u32_cmp. * modules/unicase/u8-casecmp (Depends-on): Add unistr/u8-cmp2, remove unistr/u8-cmp. * modules/unicase/ulc-casecmp (Depends-on): Likewise. * modules/unicase/u16-casecmp (Depends-on): Add unistr/u16-cmp2, remove unistr/u16-cmp. * modules/unicase/u32-casecmp (Depends-on): Add unistr/u32-cmp2, remove unistr/u32-cmp. * lib/uninorm.h: Mention u*_cmp2. * lib/uninorm/u-normcmp.h (FUNC): Invoke U_CMP2 instead of U_CMP. * lib/uninorm/u8-normcmp.c: Use u8_cmp2 instead of u8_cmp. * lib/uninorm/u16-normcmp.c: Use u16_cmp2 instead of u16_cmp. * lib/uninorm/u32-normcmp.c: Use u32_cmp2 instead of u32_cmp. * modules/uninorm/u8-normcmp (Depends-on): Add unistr/u8-cmp2, remove unistr/u8-cmp. * modules/uninorm/u16-normcmp (Depends-on): Add unistr/u16-cmp2, remove unistr/u16-cmp. * modules/uninorm/u32-normcmp (Depends-on): Add unistr/u32-cmp2, remove unistr/u32-cmp. New module 'unistr/u32-cmp2'. * lib/unistr/u32-cmp2.c: New file. * modules/unistr/u32-cmp2: New file. New module 'unistr/u16-cmp2'. * lib/unistr/u16-cmp2.c: New file. * modules/unistr/u16-cmp2: New file. New module 'unistr/u8-cmp2'. * lib/unistr.h (u8_cmp2, u16_cmp2, u32_cmp2): New declarations. * lib/unistr/u8-cmp2.c: New file. * lib/unistr/u-cmp2.h: New file. * modules/unistr/u8-cmp2: New file. 2009-04-05 Bruno Haible * lib/unictype.h (uc_property_is_valid): New macro. * tests/unictype/test-pr_byname.c (main): Use it. * lib/unistr.h: Doc fixes. * lib/uniconv.h: Doc fixes. * lib/unictype.h: Doc fixes. 2009-04-03 Paul Eggert Port coreutils 7.2 to Solaris 8. * modules/arpa_inet (arpa/inet.h): Depend on arpa_inet.in.h. * m4/inet_ntop.m4 (gl_INET_NTOP): Search for inet_ntop in -lnsl, for Solaris 8. This is a bit of a hack, as it means it's the caller's responsibility to add -lnsl if needed, but most likely it won't be needed since only getaddrinfo uses this and getaddrinfo isn't needed on Solaris 8. * modules/fnmatch (Depends-on): Add mbsrtowcs, to fix a porting problem to Solaris 8 encountered with coreutils 7.2, which resulted in a message "fnmatch.c:292: warning: passing argument 4 of 'mbsrtowcs' from incompatible pointer type". Also, add mbsinit at the suggestion of Bruno Haible, since fnmatch uses mbsinit. 2009-04-03 Simon Josefsson * m4/ld-version-script.m4: Add FIXME comment. 2009-04-02 Simon Josefsson * doc/ld-output-def.texi: Use DLL_VERSION instead of confusing SOVERSION variable. 2009-04-02 Bruno Haible * Makefile (info, html, dvi, pdf): Combine the rules. Suggested by Jim Meyering. 2009-04-01 Bruno Haible * Makefile (info, html, dvi, pdf): New targets. Reported by Reuben Thomas . 2009-04-01 Bruno Haible * doc/gnulib-tool.texi (Invoking gnulib-tool): Document how gnulib-tool can be put into PATH. Reported by Reuben Thomas . Suggested by Karl Berry. 2009-04-01 Bruno Haible * doc/lib-symbol-visibility.texi: Follow texinfo style conventions. 2009-04-01 Bruno Haible Rename module 'visibility'. * modules/lib-symbol-visibility: Renamed from modules/visibility. * doc/lib-symbol-visibility.texi: Renamed from visibility.texi. * doc/gnulib.texi: Update. * MODULES.html.sh (Misc): Update. * NEWS: Mention the change. 2009-04-01 Simon Josefsson * modules/lib-msvc-compat: New module. Thanks to Bruno Haible , Ralf Wildenhues , and Eric Blake for review. * MODULES.html.sh: Add lib-msvc-compat. * doc/gnulib.texi: Link to new section. * m4/ld-output-def.m4: New file. * doc/ld-output-def.texi: New file. 2009-04-01 Simon Josefsson Rename ld-version-script to lib-symbol-versions. Suggested by Bruno Haible . * modules/ld-version-script: Renamed to lib-symbol-versions. * doc/ld-version-script.texi: Fix module name. * MODULES.html.sh: Add lib-symbol-versions. 2009-03-31 Simon Josefsson * modules/u64-tests: New file. * tests/test-u64.c: New file. 2009-03-04 Simon Josefsson * MODULES.html.sh: Mention u64. * modules/u64: New module. * modules/crypto/sha512: Depend on u64 module instead of providing u64.h. 2009-03-27 Eric Blake test-strerror: make debugging EAI_SYSTEM easier * modules/getaddrinfo-tests (Depends-on): Add strerror. * test-getaddrinfo.c (simple) [ENABLE_DEBUGGING]: Report errno if failure was EAI_SYSTEM. 2009-03-25 Bruno Haible Fix a problem with --enable-relocatable on Solaris 7. * modules/relocatable-prog-wrapper (Depends-on): Add environ. Needed since 2008-02-24. 2009-03-25 Eric Blake test-sockets: avoid gcc warning * tests/test-sockets.c (main): Silence compiler warning. 2009-03-25 Paul Eggert New modules nproc, pthread, contributed by Glen Lenker. * MODULES.html.sh: Add pthread, nproc. * lib/nproc.c: New file. * lib/nproc.h: New file. * lib/pthread.in.h: New file. * m4/pthread.m4: New file. * modules/nproc: New file. * modules/pthread: New file. 2009-03-24 Simon Josefsson * modules/unicase/locale-language-tests (test_locale_language_LDADD): New variable. 2009-03-24 Kamil Dudka filevercmp: handle simple~ and numbered.~3~ backup suffixes * lib/filevercmp.c: Handle simple~ and numbered.~3~ backup suffixes. * tests/test-filevercmp.c: Add tests for backup suffixes. 2009-03-24 Simon Josefsson * modules/stdlib (Depends-on): Add stdint, needed when defining struct random_data on, for example, HP-UX 10.20. Reported by Albert Chin . 2009-03-24 Simon Josefsson * lib/readline.c (readline): Call fflush on stdout after printing prompt. 2009-03-20 Bruno Haible Remove dependency from 'close' module to -lws2_32 on native Windows. * lib/close-hook.h: New file. * lib/close-hook.c: New file. * lib/close.c: Include close-hook.h. Don't include , w32sock.h. (_gl_close_fd_maybe_socket): Remove function. (rpl_close): Invoke execute_all_close_hooks instead of _gl_close_fd_maybe_socket. * lib/sockets.c: Include close-hook.h, w32sock.h. (close_fd_maybe_socket): New function, essentially from lib/close.c. (close_sockets_hook): New variable. (gl_sockets_startup): Register close_fd_maybe_socket as a hook. (gl_sockets_cleanup): Unregister it. * lib/unistd.in.h (HAVE__GL_CLOSE_FD_MAYBE_SOCKET): Remove macro. * m4/close.m4 (gl_REPLACE_CLOSE): Undo 2009-02-05 change. * modules/close-hook: New file. * modules/close (Files): Remove lib/w32sock.h. (Depends-on): Add close-hook. (Link): Remove section. * modules/sockets (Files): Add lib/w32sock.h. (Depends-on): Add close-hook. * modules/sys_socket (configure.ac): Remove gl_MODULE_INDICATOR invocation. * NEWS: Mention that LIB_CLOSE is gone. 2009-03-23 Eric Blake signal-tests: test previous patch * tests/test-signal.c: New file. * modules/signal-tests: Likewise. signal.h: always support 'volatile sig_atomic_t' * m4/signal_h.m4 (gl_SIGNAL_H): Check for AIX limitation. (gl_SIGNAL_H_DEFAULTS): Add a default. * modules/signal (Makefile.am): Substitute if needed. * lib/signal.in.h (sig_atomic_t): Redefine if needed, so that users can blindly add volatile. * doc/posix-headers/signal.texi (signal.h): Document it. Reported by Matthew Woehlke. 2009-03-23 Jim Meyering pathmax: PATH_MAX: use pathconf only when available * lib/pathmax.h (PATH_MAX): Select the pathconf-using definition only if HAVE_PATHCONF is defined. Patch by Sylvain Beucler. * m4/pathmax.m4 (gl_PATHMAX): Check for pathconf. This avoids a link failure in a PSP cross-compilation environment described in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/17048 * lib/vasnprintf.c (divide): Fix typo in comment. 2009-03-23 Ralf Wildenhues * gnulib-tool (func_filter_filelist): Fix comment. 2009-03-20 Bruno Haible Make sockets.h self-contained. * lib/sockets.c: Include sockets.h first. * lib/sockets.h: Include before using the SOCKET type. 2009-03-19 Eric Blake doc: mention more functions added in cygwin 1.7.0 * doc/posix-functions/log2.texi: Mention recent cygwin 1.7.0 addition. * doc/posix-functions/log2f.texi: Likewise. 2009-03-19 Jim Meyering fsusage: avoid syntax error due to statement-before-declaration * lib/fsusage.c (get_fs_usage): Put warning-avoidance statement after all declarations. Reported by Matthew Woehlke in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/16231 2009-03-18 Eric Blake build-aux/compile: sync from automake * build-aux/compile: New file, from automake. * config/srclist.txt: Mention build-aux/compile. 2009-03-17 Bruno Haible * lib/git-merge-changelog.c: Fix typo in comment. Reported by Reuben Thomas . 2009-03-17 Reuben Thomas * m4/regex.m4: update and improve help for --without-included-regex. 2009-03-17 Simon Josefsson * modules/isnanl-nolibm-tests (Files): Add tests/nan.h to avoid failure on missing include files. 2009-03-17 Eric Blake doc: mention more functions added in cygwin 1.7.0 * doc/posix-functions/fwprintf.texi: Mention recent cygwin 1.7.0 addition. * doc/posix-functions/fwscanf.texi: Likewise. * doc/posix-functions/swprintf.texi: Likewise. * doc/posix-functions/swscanf.texi: Likewise. * doc/posix-functions/vfwprintf.texi: Likewise. * doc/posix-functions/vfwscanf.texi: Likewise. * doc/posix-functions/vswprintf.texi: Likewise. * doc/posix-functions/vswscanf.texi: Likewise. * doc/posix-functions/vwprintf.texi: Likewise. * doc/posix-functions/vwscanf.texi: Likewise. * doc/posix-functions/wcscasecmp.texi: Likewise. * doc/posix-functions/wcsdup.texi: Likewise. * doc/posix-functions/wcsftime.texi: Likewise. * doc/posix-functions/wcsncasecmp.texi: Likewise. * doc/posix-functions/wprintf.texi: Likewise. * doc/posix-functions/wscanf.texi: Likewise. * doc/glibc-functions/gethostbyname2.texi: Likewise. 2009-03-14 Ralf Wildenhues maint.mk: really add $(AM_MAKEFLAGS) * top/maint.mk (init-coverage, build-coverage): `$(AM_MAKEFLAGS)' was inadvertently omitted in the last commit. Spotted by Bruno Haible. maint.mk: use $(MAKE) $(AM_MAKEFLAGS) not make * top/maint.mk (init-coverage, build-coverage): Use `$(MAKE) $(AM_MAKEFLAGS)' rather than plain `make'. gnulib-tool: execute $MAKE not make * gnulib-tool: Default $MAKE to 'make'. (func_create_testdir, func_create_megatestdir): Use $MAKE rather than make. Initialize $MAKE in the do-autobuild script. gnulib-tool: use $MAKE not make in generated files * gnulib-tool (func_create_megatestdir): Use $MAKE rather than make, in generated files. Initialize $MAKE in the do-autobuild script. * top/GNUmakefile (_have-git-version-gen): Fix typo. GNUmakefile: disable parallelism only for multiple, recursive targets * top/GNUmakefile (ALL_RECURSIVE_TARGETS): New macro; allow user additions in the Makefile. (AM_RECURSIVE_TARGETS): New macro, override only if not provided by Automake. (.NOTPARALLEL): Only disable parallel builds if multiple targets are listed on the command line and at least one of them is listed in $(ALL_RECURSIVE_TARGETS). 2009-03-14 Bruno Haible * modules/unilbrk/u8-possible-linebreaks (Depends-on): Replace utf8-ucs4-unsafe with unistr/u8-mbtouc-unsafe. * modules/unilbrk/u8-width-linebreaks (Depends-on): Likewise. * modules/unilbrk/u16-possible-linebreaks (Depends-on): Replace utf16-ucs4-unsafe with unistr/u16-mbtouc-unsafe. * modules/unilbrk/u16-width-linebreaks (Depends-on): Likewise. * modules/unistr/u8-chr (Depends-on): Replace ucs4-utf8 with unistr/u8-uctomb. * modules/unistr/u8-strchr (Depends-on): Likewise. * modules/unistr/u8-strrchr (Depends-on): Likewise. * modules/unistr/u16-chr (Depends-on): Replace ucs4-utf16 with unistr/u16-uctomb. * modules/unistr/u16-strchr (Depends-on): Likewise. * modules/unistr/u16-strrchr (Depends-on): Likewise. 2009-03-12 Bruno Haible Work around select() bug on Interix 3.5. * lib/sys_select.in.h (select): Also replace if REPLACE_SELECT is 1. * lib/select.c (rpl_select): Add an implementation for Unix platforms. * m4/select.m4: New file. * m4/sys_select_h.m4 (gl_SYS_SELECT_H_DEFAULTS): Initialize REPLACE_SELECT. * modules/sys_select (Makefile.am): Substitute REPLACE_SELECT. * modules/select (Files): Add m4/select.m4. (configure.ac): Move conditional to m4/select.m4. Invoke gl_FUNC_SELECT. * modules/nanosleep (Depends-on): Add select. * modules/poll (Depends-on): Likewise. * doc/posix-functions/select.texi: Mention the Interix bug. Reported by Markus Duft . * lib/select.c: Renamed from lib/winsock-select.c. * modules/select (Files): Add lib/select.c, remove lib/winsock-select.c. (configure.ac): Update. 2009-03-12 Jim Meyering avoid gcc warnings about unused macro definitions * lib/readtokens.c (STREQ): Remove unused definition. * lib/xmalloc.c (SIZE_MAX): Likewise. * lib/openat-die.c (N_): Likewise. * lib/mountlist.c (SIZE_MAX): Remove definition. Instead, include . * lib/readutmp.c: Likewise. * modules/readutmp (Depends-on): Add stdint. * modules/mountlist (Depends-on): Add stdint. * lib/userspec.c (ISDIGIT): Move definition into #if block where used. 2009-03-10 Bruno Haible Tests for module 'mbmemcasecoll'. * modules/mbmemcasecoll-tests: New file. * tests/test-mbmemcasecoll1.sh: New file. * tests/test-mbmemcasecoll2.sh: New file. * tests/test-mbmemcasecoll3.sh: New file. * tests/test-mbmemcasecoll.c: New file. New module 'mbmemcasecoll'. * lib/mbmemcasecoll.h: New file. * lib/mbmemcasecoll.c: New file. * modules/mbmemcasecoll: New file. * tests/test-mbmemcasecmp.h: New file, extracted from tests/test-mbmemcasecmp.c. * tests/test-mbmemcasecmp.c: Include test-mbmemcasecmp.h. (test_ascii, test_iso_8859_1, test_utf_8): Remove functions. (main): Update. * modules/mbmemcasecmp-tests (Files): Add tests/test-mbmemcasecmp.h. 2009-03-09 Bruno Haible Tests for module 'mbmemcasecmp'. * modules/mbmemcasecmp-tests: New file. * tests/test-mbmemcasecmp1.sh: New file. * tests/test-mbmemcasecmp2.sh: New file. * tests/test-mbmemcasecmp3.sh: New file. * tests/test-mbmemcasecmp.c: New file. New module 'mbmemcasecmp'. * lib/mbmemcasecmp.h: New file. * lib/mbmemcasecmp.c: New file. * modules/mbmemcasecmp: New file. 2009-03-09 Bruno Haible Tests for module 'unicase/ulc-casecoll'. * modules/unicase/ulc-casecoll-tests: New file. * tests/unicase/test-ulc-casecoll1.sh: New file. * tests/unicase/test-ulc-casecoll2.sh: New file. * tests/unicase/test-ulc-casecoll.c: New file. New module 'unicase/ulc-casecoll'. * lib/unicase.h (ulc_casecoll): New declaration. * lib/unicase/ulc-casecoll.c: New file. * modules/unicase/ulc-casecoll: New file. New module 'unicase/ulc-casexfrm'. * lib/unicase.h (ulc_casexfrm): New declaration. * lib/unicase/ulc-casexfrm.c: New file. * modules/unicase/ulc-casexfrm: New file. 2009-03-09 Bruno Haible Followup to 2008-12-22 commit: Remove unnecessary AC_FUNC_MBRTOWC invocations. * m4/mbscasecmp.m4: Remove file. * modules/mbscasecmp (Files): Remove it and m4/mbrtowc.m4 (configure.ac): Remove gl_FUNC_MBSCASECMP invocation. * m4/mbscasestr.m4: Remove file. * modules/mbscasestr (Files): Remove it and m4/mbrtowc.m4 (configure.ac): Remove gl_FUNC_MBSCASESTR invocation. * m4/mbschr.m4: Remove file. * modules/mbschr (Files): Remove it and m4/mbrtowc.m4 (configure.ac): Remove gl_FUNC_MBSCHR invocation. * m4/mbscspn.m4: Remove file. * modules/mbscspn (Files): Remove it and m4/mbrtowc.m4 (configure.ac): Remove gl_FUNC_MBSCSPN invocation. * m4/mbslen.m4: Remove file. * modules/mbslen (Files): Remove it and m4/mbrtowc.m4 (configure.ac): Remove gl_FUNC_MBSLEN invocation. * m4/mbsncasecmp.m4: Remove file. * modules/mbsncasecmp (Files): Remove it and m4/mbrtowc.m4 (configure.ac): Remove gl_FUNC_MBSNCASECMP invocation. * m4/mbsnlen.m4: Remove file. * modules/mbsnlen (Files): Remove it and m4/mbrtowc.m4 (configure.ac): Remove gl_FUNC_MBSNLEN invocation. * m4/mbspbrk.m4: Remove file. * modules/mbspbrk (Files): Remove it and m4/mbrtowc.m4 (configure.ac): Remove gl_FUNC_MBSPBRK invocation. * m4/mbspcasecmp.m4: Remove file. * modules/mbspcasecmp (Files): Remove it and m4/mbrtowc.m4 (configure.ac): Remove gl_FUNC_MBSPCASECMP invocation. * m4/mbsrchr.m4: Remove file. * modules/mbsrchr (Files): Remove it and m4/mbrtowc.m4 (configure.ac): Remove gl_FUNC_MBSRCHR invocation. * m4/mbssep.m4: Remove file. * modules/mbssep (Files): Remove it and m4/mbrtowc.m4 (configure.ac): Remove gl_FUNC_MBSSEP invocation. * m4/mbsspn.m4: Remove file. * modules/mbsspn (Files): Remove it and m4/mbrtowc.m4 (configure.ac): Remove gl_FUNC_MBSSPN invocation. * m4/mbsstr.m4: Remove file. * modules/mbsstr (Files): Remove it and m4/mbrtowc.m4 (configure.ac): Remove gl_FUNC_MBSSTR invocation. * m4/mbstok_r.m4: Remove file. * modules/mbstok_r (Files): Remove it and m4/mbrtowc.m4 (configure.ac): Remove gl_FUNC_MBSTOK_R invocation. * m4/mbswidth.m4 (gl_MBSWIDTH): Remove AC_FUNC_MBRTOWC invocation. * m4/quotearg.m4 (gl_QUOTEARG): Remove mbsinit test and AC_TYPE_MBSTATE_T, AC_FUNC_MBRTOWC invocations. * modules/trim (configure.ac): Remove AC_FUNC_MBRTOWC invocation. 2009-03-08 Bruno Haible Tests for module 'unicase/ulc-casecmp'. * modules/unicase/ulc-casecmp-tests: New file. * tests/unicase/test-ulc-casecmp1.sh: New file. * tests/unicase/test-ulc-casecmp2.sh: New file. * tests/unicase/test-ulc-casecmp.c: New file. New module 'unicase/ulc-casecmp'. * lib/unicase.h (ulc_casecmp): New declaration. * lib/unicase/ulc-casecmp.c: New file. * lib/unicase/u-casecmp.h (FUNC): Change argument types to 'const SRC_UNIT *'. * lib/unicase/u8-casecmp.c (SRC_UNIT): Define like UNIT. * lib/unicase/u16-casecmp.c (SRC_UNIT): Likewise. * lib/unicase/u32-casecmp.c (SRC_UNIT): Likewise. * modules/unicase/ulc-casecmp: New file. Tests for module 'unicase/u32-is-cased'. * modules/unicase/u32-is-cased-tests: New file. * tests/unicase/test-u32-is-cased.c: New file. Tests for module 'unicase/u16-is-cased'. * modules/unicase/u16-is-cased-tests: New file. * tests/unicase/test-u16-is-cased.c: New file. Tests for module 'unicase/u8-is-cased'. * modules/unicase/u8-is-cased-tests: New file. * tests/unicase/test-u8-is-cased.c: New file. * tests/unicase/test-is-cased.h: New file. New module 'unicase/u32-is-cased'. * lib/unicase/u32-is-cased.c: New file. * modules/unicase/u32-is-cased: New file. New module 'unicase/u16-is-cased'. * lib/unicase/u16-is-cased.c: New file. * modules/unicase/u16-is-cased: New file. New module 'unicase/u8-is-cased'. * lib/unicase/u8-is-cased.c: New file. * lib/unicase/u-is-cased.h: New file. * modules/unicase/u8-is-cased: New file. Tests for module 'unicase/u32-is-casefolded'. * modules/unicase/u32-is-casefolded-tests: New file. * tests/unicase/test-u32-is-casefolded.c: New file. Tests for module 'unicase/u16-is-casefolded'. * modules/unicase/u16-is-casefolded-tests: New file. * tests/unicase/test-u16-is-casefolded.c: New file. Tests for module 'unicase/u8-is-casefolded'. * modules/unicase/u8-is-casefolded-tests: New file. * tests/unicase/test-u8-is-casefolded.c: New file. * tests/unicase/test-is-casefolded.h: New file. New module 'unicase/u32-is-casefolded'. * lib/unicase/u32-is-casefolded.c: New file. * modules/unicase/u32-is-casefolded: New file. New module 'unicase/u16-is-casefolded'. * lib/unicase/u16-is-casefolded.c: New file. * modules/unicase/u16-is-casefolded: New file. New module 'unicase/u8-is-casefolded'. * lib/unicase/u8-is-casefolded.c: New file. * modules/unicase/u8-is-casefolded: New file. Tests for module 'unicase/u32-is-titlecase'. * modules/unicase/u32-is-titlecase-tests: New file. * tests/unicase/test-u32-is-titlecase.c: New file. Tests for module 'unicase/u16-is-titlecase'. * modules/unicase/u16-is-titlecase-tests: New file. * tests/unicase/test-u16-is-titlecase.c: New file. Tests for module 'unicase/u8-is-titlecase'. * modules/unicase/u8-is-titlecase-tests: New file. * tests/unicase/test-u8-is-titlecase.c: New file. * tests/unicase/test-is-titlecase.h: New file. New module 'unicase/u32-is-titlecase'. * lib/unicase/u32-is-titlecase.c: New file. * modules/unicase/u32-is-titlecase: New file. New module 'unicase/u16-is-titlecase'. * lib/unicase/u16-is-titlecase.c: New file. * modules/unicase/u16-is-titlecase: New file. New module 'unicase/u8-is-titlecase'. * lib/unicase/u8-is-titlecase.c: New file. * modules/unicase/u8-is-titlecase: New file. Tests for module 'unicase/u32-is-lowercase'. * modules/unicase/u32-is-lowercase-tests: New file. * tests/unicase/test-u32-is-lowercase.c: New file. Tests for module 'unicase/u16-is-lowercase'. * modules/unicase/u16-is-lowercase-tests: New file. * tests/unicase/test-u16-is-lowercase.c: New file. Tests for module 'unicase/u8-is-lowercase'. * modules/unicase/u8-is-lowercase-tests: New file. * tests/unicase/test-u8-is-lowercase.c: New file. * tests/unicase/test-is-lowercase.h: New file. New module 'unicase/u32-is-lowercase'. * lib/unicase/u32-is-lowercase.c: New file. * modules/unicase/u32-is-lowercase: New file. New module 'unicase/u16-is-lowercase'. * lib/unicase/u16-is-lowercase.c: New file. * modules/unicase/u16-is-lowercase: New file. New module 'unicase/u8-is-lowercase'. * lib/unicase/u8-is-lowercase.c: New file. * modules/unicase/u8-is-lowercase: New file. Tests for module 'unicase/u32-is-uppercase'. * modules/unicase/u32-is-uppercase-tests: New file. * tests/unicase/test-u32-is-uppercase.c: New file. Tests for module 'unicase/u16-is-uppercase'. * modules/unicase/u16-is-uppercase-tests: New file. * tests/unicase/test-u16-is-uppercase.c: New file. Tests for module 'unicase/u8-is-uppercase'. * modules/unicase/u8-is-uppercase-tests: New file. * tests/unicase/test-u8-is-uppercase.c: New file. * tests/unicase/test-is-uppercase.h: New file. New module 'unicase/u32-is-uppercase'. * lib/unicase/u32-is-uppercase.c: New file. * modules/unicase/u32-is-uppercase: New file. New module 'unicase/u16-is-uppercase'. * lib/unicase/u16-is-uppercase.c: New file. * modules/unicase/u16-is-uppercase: New file. New module 'unicase/u8-is-uppercase'. * lib/unicase/u8-is-uppercase.c: New file. * modules/unicase/u8-is-uppercase: New file. New module 'unicase/u32-is-invariant'. * lib/unicase/u32-is-invariant.c: New file. * modules/unicase/u32-is-invariant: New file. New module 'unicase/u16-is-invariant'. * lib/unicase/u16-is-invariant.c: New file. * modules/unicase/u16-is-invariant: New file. New module 'unicase/u8-is-invariant'. * lib/unicase/u8-is-invariant.c: New file. * lib/unicase/invariant.h: New file. * lib/unicase/u-is-invariant.h: New file. * modules/unicase/u8-is-invariant: New file. Tests for module 'unicase/u32-casecoll'. * modules/unicase/u32-casecoll-tests: New file. * tests/unicase/test-u32-casecoll.c: New file. Tests for module 'unicase/u16-casecoll'. * modules/unicase/u16-casecoll-tests: New file. * tests/unicase/test-u16-casecoll.c: New file. Tests for module 'unicase/u8-casecoll'. * modules/unicase/u8-casecoll-tests: New file. * tests/unicase/test-u8-casecoll.c: New file. New module 'unicase/u32-casecoll'. * lib/unicase/u32-casecoll.c: New file. * modules/unicase/u32-casecoll: New file. New module 'unicase/u16-casecoll'. * lib/unicase/u16-casecoll.c: New file. * modules/unicase/u16-casecoll: New file. New module 'unicase/u8-casecoll'. * lib/unicase/u8-casecoll.c: New file. * lib/unicase/u-casecoll.h: New file. * modules/unicase/u8-casecoll: New file. New module 'unicase/u32-casexfrm'. * lib/unicase/u32-casexfrm.c: New file. * modules/unicase/u32-casexfrm: New file. New module 'unicase/u16-casexfrm'. * lib/unicase/u16-casexfrm.c: New file. * modules/unicase/u16-casexfrm: New file. New module 'unicase/u8-casexfrm'. * lib/unicase/u8-casexfrm.c: New file. * lib/unicase/u-casexfrm.h: New file. * modules/unicase/u8-casexfrm: New file. Tests for module 'unicase/u32-casecmp'. * modules/unicase/u32-casecmp-tests: New file. * tests/unicase/test-u32-casecmp.c: New file. Tests for module 'unicase/u16-casecmp'. * modules/unicase/u16-casecmp-tests: New file. * tests/unicase/test-u16-casecmp.c: New file. Tests for module 'unicase/u8-casecmp'. * modules/unicase/u8-casecmp-tests: New file. * tests/unicase/test-u8-casecmp.c: New file. * tests/unicase/test-casecmp.h: New file. New module 'unicase/u32-casecmp'. * lib/unicase/u32-casecmp.c: New file. * modules/unicase/u32-casecmp: New file. New module 'unicase/u16-casecmp'. * lib/unicase/u16-casecmp.c: New file. * modules/unicase/u16-casecmp: New file. New module 'unicase/u8-casecmp'. * lib/unicase/u8-casecmp.c: New file. * lib/unicase/u-casecmp.h: New file. * modules/unicase/u8-casecmp: New file. Tests for module 'unicase/u32-casefold'. * modules/unicase/u32-casefold-tests: New file. * tests/unicase/test-u32-casefold.c: New file. Tests for module 'unicase/u16-casefold'. * modules/unicase/u16-casefold-tests: New file. * tests/unicase/test-u16-casefold.c: New file. Tests for module 'unicase/u8-casefold'. * modules/unicase/u8-casefold-tests: New file. * tests/unicase/test-u8-casefold.c: New file. New module 'unicase/u32-casefold'. * lib/unicase/u32-casefold.c: New file. * modules/unicase/u32-casefold: New file. New module 'unicase/u16-casefold'. * lib/unicase/u16-casefold.c: New file. * modules/unicase/u16-casefold: New file. New module 'unicase/u8-casefold'. * lib/unicase/u8-casefold.c: New file. * lib/unicase/u-casefold.h: New file. * modules/unicase/u8-casefold: New file. New module 'unicase/tocasefold'. * lib/unicase/casefold.h: New file. * lib/unicase/tocasefold.c: New file. * lib/unicase/tocasefold.h: New file, generated by gen-uni-tables.c. * modules/unicase/tocasefold: New file. Tests for module 'unicase/u32-totitle'. * modules/unicase/u32-totitle-tests: New file. * tests/unicase/test-u32-totitle.c: New file. Tests for module 'unicase/u16-totitle'. * modules/unicase/u16-totitle-tests: New file. * tests/unicase/test-u16-totitle.c: New file. Tests for module 'unicase/u8-totitle'. * modules/unicase/u8-totitle-tests: New file. * tests/unicase/test-u8-totitle.c: New file. New module 'unicase/u32-totitle'. * lib/unicase/u32-totitle.c: New file. * modules/unicase/u32-totitle: New file. New module 'unicase/u16-totitle'. * lib/unicase/u16-totitle.c: New file. * modules/unicase/u16-totitle: New file. New module 'unicase/u8-totitle'. * lib/unicase/u8-totitle.c: New file. * lib/unicase/u-totitle.h: New file. * modules/unicase/u8-totitle: New file. Tests for module 'unicase/u32-tolower'. * modules/unicase/u32-tolower-tests: New file. * tests/unicase/test-u32-tolower.c: New file. Tests for module 'unicase/u16-tolower'. * modules/unicase/u16-tolower-tests: New file. * tests/unicase/test-u16-tolower.c: New file. Tests for module 'unicase/u8-tolower'. * modules/unicase/u8-tolower-tests: New file. * tests/unicase/test-u8-tolower.c: New file. New module 'unicase/u32-tolower'. * lib/unicase/u32-tolower.c: New file. * modules/unicase/u32-tolower: New file. New module 'unicase/u16-tolower'. * lib/unicase/u16-tolower.c: New file. * modules/unicase/u16-tolower: New file. New module 'unicase/u8-tolower'. * lib/unicase/u8-tolower.c: New file. * modules/unicase/u8-tolower: New file. Tests for module 'unicase/u32-toupper'. * modules/unicase/u32-toupper-tests: New file. * tests/unicase/test-u32-toupper.c: New file. Tests for module 'unicase/u16-toupper'. * modules/unicase/u16-toupper-tests: New file. * tests/unicase/test-u16-toupper.c: New file. Tests for module 'unicase/u8-toupper'. * modules/unicase/u8-toupper-tests: New file. * tests/unicase/test-u8-toupper.c: New file. New module 'unicase/u32-toupper'. * lib/unicase/u32-toupper.c: New file. * modules/unicase/u32-toupper: New file. New module 'unicase/u16-toupper'. * lib/unicase/u16-toupper.c: New file. * modules/unicase/u16-toupper: New file. New module 'unicase/u8-toupper'. * lib/unicase/u8-toupper.c: New file. * modules/unicase/u8-toupper: New file. New module 'unicase/u32-casemap'. * lib/unicase/u32-casemap.c: New file. * modules/unicase/u32-casemap: New file. New module 'unicase/u16-casemap'. * lib/unicase/u16-casemap.c: New file. * modules/unicase/u16-casemap: New file. New module 'unicase/u8-casemap'. * lib/unicase/unicasemap.h: New file. * lib/unicase/u8-casemap.c: New file. * lib/unicase/u-casemap.h: New file. * modules/unicase/u8-casemap: New file. New module 'unicase/special-casing'. * lib/unicase/special-casing.h: New file. * lib/unicase/special-casing.c: New file. * lib/unicase/special-casing-table.gperf: New file, generated by gen-uni-tables.c. * modules/unicase/special-casing: New file. Tests for module 'unicase/locale-language'. * modules/unicase/locale-language-tests: New file. * tests/unicase/test-locale-language.sh: New file. * tests/unicase/test-locale-language.c: New file. New module 'unicase/locale-language'. * lib/unicase/locale-language.c: New file. * lib/unicase/locale-languages.gperf: New file. * modules/unicase/locale-language: New file. Generate more tables for case conversion and case folding. * lib/gen-uni-tables.c (SCC_*): New enum items. (struct special_casing_rule): New type. (casing_rules, num_casing_rules, allocated_casing_rules): New variables. (add_casing_rule, fill_casing_rules): New functions. (struct casefold_rule): New type. (casefolding_rules, num_casefolding_rules, allocated_casefolding_rules): New variables. (fill_casefolding_rules): New function. (unicode_casefold): New variable. (to_casefold, redistribute_casefolding_rules, compare_casing_rules, sort_casing_rules, output_casing_rules): New functions. (main): Accept to more arguments: SpecialCasing.txt and CaseFolding.txt. Invoke fill_casing_rules, fill_casefolding_rules, redistribute_casefolding_rules, sort_casing_rules, output_casing_rules. Output mapping for casefolding. * lib/unicase.h: Include stdbool.h, uninorm.h. (u8_toupper, u16_toupper, u32_toupper, u8_tolower, u16_tolower, u32_tolower, u8_totitle, u16_totitle, u32_totitle): Add nf argument. (u8_casefold, u16_casefold, u32_casefold): Add iso639_language and nf arguments. (u8_casecmp, u16_casecmp, u32_casecmp): Add iso639_language, nf, resultp arguments. (u8_casexfrm, u16_casexfrm, u32_casexfrm): New declarations. (u8_casecoll, u16_casecoll, u32_casecoll): Add iso639_language, nf, resultp arguments. (u8_is_uppercase, u16_is_uppercase, u32_is_uppercase, u8_is_lowercase, u16_is_lowercase, u32_is_lowercase, u8_is_titlecase, u16_is_titlecase, u32_is_titlecase, u8_is_casefolded, u16_is_casefolded, u32_is_casefolded, u8_is_cased, u16_is_cased, u32_is_cased): New declarations. * modules/unicase/base (Depends-on): Add uninorm/base, stdbool. 2009-03-08 Bruno Haible * lib/uninorm.h (u8_normcmp, u16_normcmp, u32_normcmp, u8_normcoll, u16_normcoll, u32_normcoll): Rename argument 'result' to 'resultp'. * lib/uninorm/u-normcmp.h (FUNC): Likewise. * lib/uninorm/u-normcoll.h (FUNC): Likewise. 2009-03-07 Bruno Haible Adjust u*_normcmp, u*_normcoll API. * lib/uninorm.h (u8_normcmp, u16_normcmp, u32_normcmp, u8_normcoll, u16_normcoll, u32_normcoll): Change failure conventions. * lib/uninorm/u-normcmp.h (FUNC): Upon failure, store the error code in errno and return -1. * lib/uninorm/u-normcoll.h (FUNC): Likewise. 2009-03-07 Bruno Haible Tests for module 'uninorm/u32-normcoll'. * modules/uninorm/u32-normcoll-tests: New file. * tests/uninorm/test-u32-normcoll.c: New file. Tests for module 'uninorm/u16-normcoll'. * modules/uninorm/u16-normcoll-tests: New file. * tests/uninorm/test-u16-normcoll.c: New file. Tests for module 'uninorm/u8-normcoll'. * modules/uninorm/u8-normcoll-tests: New file. * tests/uninorm/test-u8-normcoll.c: New file. 2009-03-07 Bruno Haible * tests/uninorm/test-u32-normcmp.h: New file, extracted from tests/uninorm/test-u32-normcmp.c. * tests/uninorm/test-u32-normcmp.c: Include it. (test_nonascii): New function, extracted from main. Add some more tests. (main): Invoke test_ascii and test_nonascii. * modules/uninorm/u32-normcmp-tests (Files): Add tests/uninorm/test-u32-normcmp.h. (Depends-on): Remove uninorm/u32-normcmp. * tests/uninorm/test-u16-normcmp.h: New file, extracted from tests/uninorm/test-u16-normcmp.c. * tests/uninorm/test-u16-normcmp.c: Include it. (test_nonascii): New function, extracted from main. Add some more tests. (main): Invoke test_ascii and test_nonascii. * modules/uninorm/u16-normcmp-tests (Files): Add tests/uninorm/test-u16-normcmp.h. (Depends-on): Remove uninorm/u16-normcmp. * tests/uninorm/test-u8-normcmp.h: New file, extracted from tests/uninorm/test-u8-normcmp.c. * tests/uninorm/test-u8-normcmp.c: Include it. (test_nonascii): New function, extracted from main. Add some more tests. (main): Invoke test_ascii and test_nonascii. * modules/uninorm/u8-normcmp-tests (Files): Add tests/uninorm/test-u8-normcmp.h. (Depends-on): Remove uninorm/u8-normcmp. 2009-03-07 Bruno Haible New module 'uninorm/u32-normcoll'. * lib/uninorm/u32-normcoll.c: New file. * modules/uninorm/u32-normcoll: New file. New module 'uninorm/u16-normcoll'. * lib/uninorm/u16-normcoll.c: New file. * modules/uninorm/u16-normcoll: New file. New module 'uninorm/u8-normcoll'. * lib/uninorm.h (u8_normcoll, u16_normcoll, u32_normcoll): New declarations. * lib/uninorm/u8-normcoll.c: New file. * lib/uninorm/u-normcoll.h: New file. * modules/uninorm/u8-normcoll: New file. New module 'uninorm/u32-normxfrm'. * lib/uninorm/u32-normxfrm.c: New file. * modules/uninorm/u32-normxfrm: New file. New module 'uninorm/u16-normxfrm'. * lib/uninorm/u16-normxfrm.c: New file. * modules/uninorm/u16-normxfrm: New file. New module 'uninorm/u8-normxfrm'. * lib/uninorm.h (u8_normxfrm, u16_normxfrm, u32_normxfrm): New declarations. * lib/uninorm/u8-normxfrm.c: New file. * lib/uninorm/u-normxfrm.h: New file. * modules/uninorm/u8-normxfrm: New file. 2009-03-07 Bruno Haible * modules/uninorm/u8-normcmp (Depends-on): Add uninorm/base. * modules/uninorm/u16-normcmp (Depends-on): Likewise. * modules/uninorm/u32-normcmp (Depends-on): Likewise. 2009-03-07 Bruno Haible New module 'memxfrm'. * lib/memxfrm.h: New file. * lib/memxfrm.c: New file. * modules/memxfrm: New file. 2009-03-07 Bruno Haible New module 'memcmp2'. * lib/memcmp2.h: New file. * lib/memcmp2.c: New file. * modules/memcmp2: New file. 2009-03-07 Bruno Haible Tests for module 'uninorm/decomposing-form'. * modules/uninorm/decomposing-form-tests: New file. * tests/uninorm/test-decomposing-form.c: New file. New module 'uninorm/decomposing-form'. * lib/uninorm.h (uninorm_decomposing_form): New declaration. * lib/uninorm/normalize-internal.h (struct unicode_normalization_form): Add 'decomposing_variant' field. * lib/uninorm/decomposing-form.c: New file. * lib/uninorm/nfc.c (uninorm_nfc): Update. * lib/uninorm/nfd.c (uninorm_nfd): Update. * lib/uninorm/nfkc.c (uninorm_nfkc): Update. * lib/uninorm/nfkd.c (uninorm_nfkd): Update. * modules/uninorm/decomposing-form: New file. * modules/uninorm/nfc (Depends-on): Add uninorm/nfd. * modules/uninorm/nfkc (Depends-on): Add uninorm/nfkd. 2009-03-07 Bruno Haible * lib/uninorm/u-normcmp.h (FUNC): Use stack=allocated buffers for small strings. 2009-03-06 Bruno Haible Tests for module 'uninorm/u32-normcmp'. * tests/uninorm/test-u32-normcmp.c: New file. * modules/uninorm/u32-normcmp-tests: New file. Tests for module 'uninorm/u16-normcmp'. * tests/uninorm/test-u16-normcmp.c: New file. * modules/uninorm/u16-normcmp-tests: New file. Tests for module 'uninorm/u8-normcmp'. * tests/uninorm/test-u8-normcmp.c: New file. * modules/uninorm/u8-normcmp-tests: New file. New module 'uninorm/u32-normcmp'. * lib/uninorm/u32-normcmp.c: New file. * modules/uninorm/u32-normcmp: New file. New module 'uninorm/u16-normcmp'. * lib/uninorm/u16-normcmp.c: New file. * modules/uninorm/u16-normcmp: New file. New module 'uninorm/u8-normcmp'. * lib/uninorm.h (u8_normcmp, u16_normcmp, u32_normcmp): New declarations. * lib/uninorm/u8-normcmp.c: New file. * lib/uninorm/u-normcmp.h: New file. * modules/uninorm/u8-normcmp: New file. 2009-03-06 Bruno Haible * lib/w32spawn.h (dup_noinherit): Add cast, to avoid gcc warning. Reported by Eric Blake. 2009-03-06 Eric Blake Bruno Haible * lib/spawni.c (__spawni) [WIN32_NATIVE]: Define as a stub. * modules/posix_spawn-tests (configure.ac): Define POSIX_SPAWN_PORTED condition. (Makefile.am): Do nothing if POSIX_SPAWN_PORTED is false. * modules/posix_spawnp-tests (configure.ac): Define POSIX_SPAWN_PORTED condition. (Makefile.am): Do nothing if POSIX_SPAWN_PORTED is false. 2009-03-06 Eric Blake * lib/execute.c (execute) [WIN32_NATIVE]: Cast arguments of spawnvpe, to avoid compiler warnings. * lib/pipe.c (create_pipe) [WIN32_NATIVE]: Likewise. 2009-03-05 Bruno Haible * tests/test-ftell.c (main): Disable test beyond end of file on FreeMiNT. Patch by Alan Hourihane . 2009-03-05 Kamil Dudka * lib/filevercmp.c: Move hidden files up in ordering. * tests/test-filevercmp.c: Add tests for hidden files. 2009-03-04 Bruno Haible * modules/visibility (Makefile.am): Augment AM_CFLAGS. * gnulib-tool (func_emit_lib_Makefile_am): Emit initialization of AM_CFLAGS. Reported by Simon Josefsson. 2009-03-03 Bruno Haible * doc/visibility.texi: Recommend to use HAVE_VISIBILITY as a C macro. Reported by Simon Josefsson. * doc/ld-version-script.texi: Update node reference. 2009-03-03 Bruno Haible * modules/visibility (License): Change to 'unlimited'. Suggested by Simon Josefsson. 2009-03-03 Jim Meyering unlinkdir: cannot_unlink_dir may modify process state * lib/unlinkdir.c (cannot_unlink_dir): Add a comment warning that it's neither thread-safe nor appropriate for use in a library. 2009-03-03 Eric Blake test-closein: silence test under Darwin * tests/test-closein.sh: Ignore stderr from cat, since we don't care if it dies from EPIPE or EBADF. 2009-03-03 Bruno Haible * doc/gnulib.texi: Include visibility.texi and ld-version-script.texi earlier. * doc/visibility.texi: Fix @node and @section. 2009-03-03 Simon Josefsson * doc/gnulib.texi: Link to sections for ld version script and visibility. * doc/visibility.texi: Add @node and @section. * modules/ld-version-script: New module. * m4/ld-version-script.m4: New file. * doc/ld-version-script.texi: New file. 2009-03-02 David Lutterkort * lib/safe-alloc.h (__GNUC_PREREQ): New macro. Reported by Tom G. Christensen . 2009-03-02 Bruno Haible * doc/visibility.texi: Mention libtool's -export-symbols option. 2009-03-02 Jim Meyering announce-gen: new option: --no-print-checksums * build-aux/announce-gen (usage): Describe it. (print_checksums): Print a newline here, not in the [*] footnote. (main): Honor it. 2009-03-01 Bruno Haible Use socklen_t in the native Windows replacements prototypes. * lib/sys_socket.in.h (rpl_getsockopt, rpl_setsockopt): Use socklen_t instead of 'int'. * lib/getsockopt.c (rpl_getsockopt): Likewise. * lib/setsockopt.c (rpl_setsockopt): Likewise. * modules/getsockopt (Depends-on): Add socklen. * modules/setsockopt (Depends-on): Add socklen. 2009-03-01 Bruno Haible * gnulib-tool (sed): Do alias as "sed --posix" if sed's version is at least 4.2. 2009-03-01 Eric Blake Bruno Haible * lib/wait-process.h (wait_subprocess): Describe effect of termsigp on error messages. * lib/wait-process.c (wait_subprocess): Omit error message about deadly signal sent to the child of termsigp != NULL. 2009-03-01 Eric Blake * lib/wait-process.c (wait_subprocess): Remove unnecessary cast. 2009-03-01 Bruno Haible Avoid a gcc warning. * tests/test-sched.c (b): Make global. Reported by Eric Blake. 2009-01-19 Martin Lambers Provide POSIX semantics for socket timeout options on W32. * lib/setsockopt.c: Convert struct timeval to milliseconds on W32. * lib/getsockopt.c: Convert milliseconds to struct timeval on W32. * modules/setsockopt: Depend on sys_time module for struct timeval. * modules/getsockopt: Depend on sys_time module for struct timeval. 2009-03-01 Simon Josefsson * lib/gai_strerror.c (values): Use EAI_INPROGRESS instead of __USE_GNU, for consistency with netdb.in.h. Reported by Alan Hourihane . 2009-03-01 Bruno Haible More support for FreeMiNT. * lib/fseeko.c (rpl_fseeko): Complete last commit. Reported by Alan Hourihane . 2009-03-01 Bruno Haible More support for FreeMiNT. * lib/fpurge.c (fpurge): Correct last commit. Reported by Alan Hourihane . 2009-03-01 Ralf Wildenhues Fix unportable awk script in vc-list-files. * build-aux/vc-list-files: In the replacement awk script, use substr with a second argument of 1, not zero. Report by Simon Josefsson. 2009-02-28 Bruno Haible More support for FreeMiNT. * lib/freading.c (freading) [__MINT__]: Use new macros that were added to FreeMiNT today. * lib/fwriting.c (fwriting): Likewise. Based on patch by Alan Hourihane . 2009-02-28 Bruno Haible * tests/test-freadseek.c (main): Disable test beyond end of file on FreeMiNT. * tests/test-ftello.c (main): Likewise. Patch by Alan Hourihane . 2009-02-28 Bruno Haible Add tentative support for FreeMiNT. * lib/fbufmode.c (fbufmode) [__MINT__]: Add conditional code. * lib/fpurge.c (fpurge): Likewise. * lib/freadable.c (freadable): Likewise. * lib/freading.c (freading): Likewise. * lib/freadptr.c (freadptr): Likewise. * lib/freadseek.c (freadptrinc): Likewise. * lib/fseeko.c (rpl_fseeko): Likewise. * lib/fseterr.c (fseterr): Likewise. * lib/fwritable.c (fwritable): Likewise. * lib/fwriting.c (fwriting): Likewise. * lib/freadahead.c (freadahead): Likewise, based on code by Alan Hourihane. Reported by Alan Hourihane . 2009-02-28 Bruno Haible * lib/wait-process.h (wait_subprocess): Clarify restriction regarding SIGCHLD. Reported by Jim Meyering. 2009-02-28 Bruno Haible * m4/printf.m4 (gl_PRINTF_DIRECTIVE_LS): Separate the two first tests. Mention the results of these tests on various platforms. * doc/posix-functions/fprintf.texi: Mention platforms in canonical order. * doc/posix-functions/printf.texi: Likewise. * doc/posix-functions/snprintf.texi: Likewise. * doc/posix-functions/sprintf.texi: Likewise. * doc/posix-functions/vfprintf.texi: Likewise. * doc/posix-functions/vprintf.texi: Likewise. * doc/posix-functions/vsnprintf.texi: Likewise. * doc/posix-functions/vsprintf.texi: Likewise. * doc/glibc-functions/obstack_printf.texi: Likewise. * doc/glibc-functions/obstack_vprintf.texi: Likewise. 2009-02-28 Bruno Haible * build-aux/po/Makefile.in.in: Update from GNU gettext 0.17. Reported by Loïc Minier . 2009-02-27 Bruno Haible * gnulib-tool (func_import): Make the sed expression used to create the sed script for updating the .gitignore file POSIX compliant. Reported by Eric Blake. 2009-02-27 Bruno Haible * gnulib-tool (sed): Don't alias as "sed --posix". Reported by Eric Blake. 2009-02-27 Bruno Haible Avoid test link errors. * modules/uninorm/nfc-tests (test_u32_nfc_big_LDADD): New variable. * modules/uninorm/nfd-tests (test_u32_nfd_big_LDADD): New variable. * modules/uninorm/nfkc-tests (test_u32_nfkc_big_LDADD): New variable. * modules/uninorm/nfkd-tests (test_u32_nfkd_big_LDADD): New variable. Reported by Tom G. Christensen . 2009-02-27 Bruno Haible Avoid spurious "(cached)" in configure output. * m4/gnulib-common.m4 (gl_CACHE_VAL_SILENT): New macro. * m4/ceil.m4 (gl_FUNC_CEIL_LIBS): Use it instead of AC_CACHE_VAL. * m4/ceilf.m4 (gl_FUNC_CEILF_LIBS): Likewise. * m4/ceill.m4 (gl_FUNC_CEILL_LIBS): Likewise. * m4/floor.m4 (gl_FUNC_FLOOR_LIBS): Likewise. * m4/floorf.m4 (gl_FUNC_FLOORF_LIBS): Likewise. * m4/floorl.m4 (gl_FUNC_FLOORL_LIBS): Likewise. * m4/stdarg.m4 (gl_STDARG_H): Likewise. Reported by Eric Blake. 2009-02-27 Eric Blake printf: fix regression in previous patch * m4/printf.m4 (gl_PRINTF_DIRECTIVE_LS): Fix compilation error. 2009-02-27 Bruno Haible * lib/inttypes.in.h: Test merely whether _LP64 is defined, not its value. * lib/stdint.in.h: Likewise. Suggested by Eric Blake. Reported by Peter Bray . 2009-02-27 Eric Blake doc: mention more functions added in cygwin 1.7.0 * doc/posix-functions/mbsnrtowcs.texi: Mention recent cygwin 1.7.0 addition. * doc/posix-functions/open_wmemstream.texi: Likewise. * doc/posix-functions/wcsnlen.texi: Likewise. * doc/posix-functions/wcsnrtombs.texi: Likewise. * doc/posix-functions/wcstod.texi: Likewise. * doc/posix-functions/wcstof.texi: Likewise. * doc/posix-functions/wcstoimax.texi: Likewise. * doc/posix-functions/wcstok.texi: Likewise. * doc/posix-functions/wcstoumax.texi: Likewise. Detect bug in cygwin 1.5.x *printf on 1-character %ls. * m4/printf.m4 (gl_PRINTF_DIRECTIVE_LS): Enhance filter. * doc/posix-functions/fprintf.texi: Update. * doc/posix-functions/printf.texi: Update. * doc/posix-functions/snprintf.texi: Update. * doc/posix-functions/sprintf.texi: Update. * doc/posix-functions/vfprintf.texi: Update. * doc/posix-functions/vprintf.texi: Update. * doc/posix-functions/vsnprintf.texi: Update. * doc/posix-functions/vsprintf.texi: Update. * doc/glibc-functions/obstack_printf.texi: Update. * doc/glibc-functions/obstack_vprintf.texi: Update. 2009-02-26 Eric Blake avoid gcc 3.4.3 bug on long double NaN on Irix 6.5 * tests/nan.h (NaNl): Rewrite as function on Irix, to avoid compilation bug by using runtime conversion. * m4/isfinite.m4 (gl_ISFINITE): Likewise. * m4/isnanl.m4 (gl_FUNC_ISNANL): Likewise. * modules/ceill-tests (Files): Use nan.h. * modules/floorl-tests (Files): Likewise. * modules/frexpl-tests (Files): Likewise. * modules/isnanl-tests (Files): Likewise. * modules/ldexpl-tests (Files): Likewise. * modules/roundl-tests (Files): Likewise. * modules/truncl-tests (Files): Likewise. * tests/test-ceill.c (main): Use a working NaN. * tests/test-floorl.c (main): Likewise. * tests/test-frexpl.c (main): Likewise. * tests/test-isnan.c (test_long_double): Likewise. * tests/test-isnanl.h (main): Likewise. * tests/test-ldexpl.h (main): Likewise. * tests/test-roundl.h (main): Likewise. * tests/test-truncl.h (main): Likewise. See http://lists.gnu.org/r/bug-gnulib/2009-02/msg00190.html. 2009-02-26 Eric Blake Bruno Haible Work around a *printf bug with %ls on Solaris. * m4/printf.m4 (gl_PRINTF_DIRECTIVE_LS): Also test whether, when a precision is specified, sprintf stops converting the wide string argument when the number of bytes that have been produced by this conversion equals or exceeds the precision. * doc/posix-functions/fprintf.texi: Update. * doc/posix-functions/printf.texi: Update. * doc/posix-functions/snprintf.texi: Update. * doc/posix-functions/sprintf.texi: Update. * doc/posix-functions/vfprintf.texi: Update. * doc/posix-functions/vprintf.texi: Update. * doc/posix-functions/vsnprintf.texi: Update. * doc/posix-functions/vsprintf.texi: Update. * doc/glibc-functions/obstack_printf.texi: Update. * doc/glibc-functions/obstack_vprintf.texi: Update. 2009-02-26 Eric Blake stdlib: favor compiler check of random.h * m4/stdlib_h.m4 (gl_STDLIB_H): Skip preprocessor check. Needed to avoid an ObjC random.h installed by Swarm. 2009-02-26 Bruno Haible Work around *printf bug with %g directive and 0.0 on HP-UX 10.20. * m4/printf.m4 (gl_PRINTF_INFINITE): Also test for %g output of -0.0. Reported by Gary V. Vaughan . 2009-02-26 Bruno Haible Fix *printf behaviour regarding the %ls directive. * m4/printf.m4 (gl_PRINTF_DIRECTIVE_LS): New macro. * lib/vasnprintf.c (local_wcslen, VASNPRINTF): Handle NEED_PRINTF_DIRECTIVE_LS. * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_LS): New macro. (gl_PREREQ_VASNPRINTF_WITH_EXTRAS): Invoke it. * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke gl_PREREQ_VASNPRINTF_DIRECTIVE_LS and test its result. Invoke gl_PREREQ_VASNPRINTF_DIRECTIVE_LS. * m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_POSIX): Likewise. * m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_POSIX): Likewise. * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise. * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise. * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise. * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise. * m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_POSIX): Likewise. * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise. * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise. * doc/posix-functions/fprintf.texi: Update. * doc/posix-functions/printf.texi: Update. * doc/posix-functions/snprintf.texi: Update. * doc/posix-functions/sprintf.texi: Update. * doc/posix-functions/vfprintf.texi: Update. * doc/posix-functions/vprintf.texi: Update. * doc/posix-functions/vsnprintf.texi: Update. * doc/posix-functions/vsprintf.texi: Update. * doc/glibc-functions/obstack_printf.texi: Update. * doc/glibc-functions/obstack_vprintf.texi: Update. Reported by Eric Blake. 2009-02-25 Bruno Haible * m4/mbrtowc.m4 (gl_MBRTOWC_NUL_RETVAL): Update guess for Solaris 8 with known value. Reported by Gary V. Vaughan . 2009-02-25 Bruno Haible Work around mbrtowc bug in zh_CN.GB18030 locale on Solaris 8. * m4/mbrtowc.m4 (gl_MBRTOWC_SANITYCHECK): New macro. (gl_MBSTATE_T_BROKEN): Invoke it. Replace mbstate_t when it says "no". * doc/posix-functions/mbrtowc.texi: Document the Solaris 8 bug. Reported by Gary V. Vaughan . 2009-02-25 Bruno Haible Work around broken INT8_MAX, UINT8_MAX etc. values on HP-UX 11.23. * m4/stdint.m4 (gl_STDINT_H): Also check whether the expansions of INT8_MAX, UINT8_MAX etc. contain casts to elementary types. * doc/posix-headers/stdint.texi: Mention the HP-UX bug. Reported by Gary V. Vaughan . 2009-02-25 Eric Blake tests: skip fseek/ftell tests if ungetc is broken * m4/ungetc.m4: New file. * modules/fseek-tests: Split test, so ungetc dependency is separate from rest of test. * modules/fseeko-tests: Likewise. * modules/ftell-tests: Likewise. * modules/ftello-tests: Likewise. * tests/test-fseek.c (main): Isolate ungetc dependency. * tests/test-fseeko.c (main): Likewise. * tests/test-ftell.c (main): Likewise. * tests/test-ftello.c (main): Likewise. * tests/test-fseek2.sh: New file. * tests/test-fseeko2.sh: Likewise. * tests/test-ftell2.sh: Likewise. * tests/test-ftello2.sh: Likewise. 2009-02-25 Ondřej Vašík test-getaddrinfo: fix usage of skip return code 77 * tests/test-gettaddrinfo.c: Return skip code 77 only for first occurrence of skip (4x77 is not 77) 2009-02-25 Gary V. Vaughan strtod: avoid C99 decl-after-statement * m4/strtod.m4 (gl_FUNC_STRTOD): Rearrange declaration. 2009-02-24 Eric Blake strtod: detect HP-UX 11.31 bug * m4/strtod.m4 (gl_FUNC_STRTOD): Detect errno handling bug. Reported by Gary V. Vaughan. 2009-02-23 Bruno Haible Fix invalid read past end of memory block. * lib/vasnprintf.c (DCHAR_SET): Define. (local_wcslen): Define only when needed. (local_strnlen, local_wcsnlen): New functions. (VASNPRINTF) [!USE_SNPRINTF && HAVE_WCHAR_T]: Implement the %s and %ls directives that involve a conversion ourselves. * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF): Also check for strnlen, wcsnlen, mbrtowc, wcrtomb. * tests/test-vasnprintf-posix.c (test_function): Add tests for %.*s. * tests/test-vasprintf-posix.c (test_function): Likewise. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. Reported by Ben Pfaff . 2009-02-22 Bruno Haible Implement new clarified decomposition of Hangul syllables. * lib/uninorm/decomposition.c (uc_decomposition): For Hangul syllables of type LTV, return only a pairwise decomposition. * lib/uninorm/canonical-decomposition.c (uc_canonical_decomposition): Likewise. * tests/uninorm/test-decomposition.c (main): Updated expected result. * tests/uninorm/test-canonical-decomposition.c (main): Likewise. * tests/uninorm/test-compat-decomposition.c (main): Likewise. 2009-02-22 Bruno Haible * lib/uninorm/u-normalize-internal.h (FUNC): At the end, handle zero-length results and shrink excess allocated memory. * tests/uninorm/test-u8-nfc.c (test_u8_nfc): Check empty string result. * tests/uninorm/test-u8-nfd.c (test_u8_nfd): Likewise. * tests/uninorm/test-u8-nfkc.c (test_u8_nfkc): Likewise. * tests/uninorm/test-u8-nfkd.c (test_u8_nfkd): Likewise. * tests/uninorm/test-u16-nfc.c (test_u16_nfc): Likewise. * tests/uninorm/test-u16-nfd.c (test_u16_nfd): Likewise. * tests/uninorm/test-u16-nfkc.c (test_u16_nfkc): Likewise. * tests/uninorm/test-u16-nfkd.c (test_u16_nfkd): Likewise. * tests/uninorm/test-u32-nfc.c (test_u32_nfc): Likewise. * tests/uninorm/test-u32-nfd.c (test_u32_nfd): Likewise. * tests/uninorm/test-u32-nfkc.c (test_u32_nfkc): Likewise. * tests/uninorm/test-u32-nfkd.c (test_u32_nfkd): Likewise. 2009-02-21 Bruno Haible * doc/gnulib.texi: Include safe-alloc.texi earlier. * doc/safe-alloc.texi: Terminate sentences with a period. Use two spaces after a period. Put a space between a macro name and its argument list. Trivial rewordings. * lib/safe-alloc.c: Include safe-alloc.h right after config.h. * tests/test-safe-alloc.c: Likewise. Include stdlib.h. (main): Return 0 explicitly. 2009-02-21 Bruno Haible Tests for module 'uninorm/filter'. * tests/uninorm/test-uninorm-filter-nfc.c: New file. * modules/uninorm/filter-tests: New file. New module 'uninorm/filter'. * lib/uninorm.h (uninorm_filter_create, uninorm_filter_write, uninorm_filter_flush, uninorm_filter_free): New declarations. * lib/uninorm/uninorm-filter.c: New file. * modules/uninorm/filter: New file. 2009-02-21 Bruno Haible Tests for module 'uninorm/nfkc'. * tests/uninorm/test-nfkc.c: New file. * tests/uninorm/test-u8-nfkc.c: New file. * tests/uninorm/test-u16-nfkc.c: New file. * tests/uninorm/test-u32-nfkc.c: New file. * tests/uninorm/test-u32-nfkc-big.sh: New file. * tests/uninorm/test-u32-nfkc-big.c: New file. * modules/uninorm/nfkc-tests: New file. New module 'uninorm/nfkc'. * lib/uninorm/nfkc.c: New file. * modules/uninorm/nfkc: New file. Tests for module 'uninorm/nfkd'. * tests/uninorm/test-nfkd.c: New file. * tests/uninorm/test-u8-nfkd.c: New file. * tests/uninorm/test-u16-nfkd.c: New file. * tests/uninorm/test-u32-nfkd.c: New file. * tests/uninorm/test-u32-nfkd-big.sh: New file. * tests/uninorm/test-u32-nfkd-big.c: New file. * modules/uninorm/nfkd-tests: New file. New module 'uninorm/nfkd'. * lib/uninorm/nfkd.c: New file. * modules/uninorm/nfkd: New file. Tests for module 'uninorm/nfc'. * tests/uninorm/test-nfc.c: New file. * tests/uninorm/test-u8-nfc.c: New file. * tests/uninorm/test-u16-nfc.c: New file. * tests/uninorm/test-u32-nfc.c: New file. * tests/uninorm/test-u32-nfc-big.sh: New file. * tests/uninorm/test-u32-nfc-big.c: New file. * modules/uninorm/nfc-tests: New file. New module 'uninorm/nfc'. * lib/uninorm/nfc.c: New file. * modules/uninorm/nfc: New file. Tests for module 'uninorm/nfd'. * tests/uninorm/test-nfd.c: New file. * tests/uninorm/test-u8-nfd.c: New file. * tests/uninorm/test-u16-nfd.c: New file. * tests/uninorm/test-u32-nfd.c: New file. * tests/uninorm/test-u32-nfd-big.sh: New file. * tests/uninorm/test-u32-nfd-big.c: New file. * tests/uninorm/test-u32-normalize-big.h: New file. * tests/uninorm/test-u32-normalize-big.c: New file. * tests/uninorm/NormalizationTest.txt: New file, created from Unicode 5.1.0 NormalizationTest.txt. * modules/uninorm/nfd-tests: New file. New module 'uninorm/nfd'. * lib/uninorm/nfd.c: New file. * modules/uninorm/nfd: New file. New module 'uninorm/u32-normalize'. * lib/uninorm/u32-normalize.c: New file. * modules/uninorm/u32-normalize: New file. New module 'uninorm/u16-normalize'. * lib/uninorm/u16-normalize.c: New file. * modules/uninorm/u16-normalize: New file. New module 'uninorm/u8-normalize'. * lib/uninorm/u8-normalize.c: New file. * lib/uninorm/normalize-internal.h: New file. * lib/uninorm/u-normalize-internal.h: New file. * modules/uninorm/u8-normalize: New file. New module 'uninorm/decompose-internal'. * lib/uninorm/decompose-internal.c: New file. * modules/uninorm/decompose-internal: New file. Tests for module 'uninorm/composition'. * tests/uninorm/test-composition.c: New file. * modules/uninorm/composition-tests: New file. New module 'uninorm/composition'. * lib/uninorm/composition.c: New file. * lib/uninorm/composition-table.gperf: New file, generated by gen-uni-tables. * modules/uninorm/composition: New file. Tests for module 'uninorm/compat-decomposition'. * tests/uninorm/test-compat-decomposition.c: New file. * modules/uninorm/compat-decomposition-tests: New file. New module 'uninorm/compat-decomposition'. * lib/uninorm/decompose-internal.h: New file. * lib/uninorm/compat-decomposition.c: New file. * modules/uninorm/compat-decomposition: New file. Tests for module 'uninorm/canonical-decomposition'. * tests/uninorm/test-canonical-decomposition.c: New file. * modules/uninorm/canonical-decomposition-tests: New file. New module 'uninorm/canonical-decomposition'. * lib/uninorm/canonical-decomposition.c: New file. * modules/uninorm/canonical-decomposition: New file. Tests for module 'uninorm/decomposition'. * tests/uninorm/test-decomposition.c: New file. * modules/uninorm/decomposition-tests: New file. New module 'uninorm/decomposition'. * lib/uninorm/decomposition.c: New file. * modules/uninorm/decomposition: New file. New module 'uninorm/decomposition-table'. * lib/uninorm/decomposition-table.h: New file. * lib/uninorm/decomposition-table.c: New file. * lib/uninorm/decomposition-table1.h: New file, generated by gen-uni-tables. * lib/uninorm/decomposition-table2.h: New file, generated by gen-uni-tables. * modules/uninorm/decomposition-table: New file. * lib/gen-uni-tables.c (MAX_DECOMP_LENGTH): New macro. (UC_DECOMP_*): New enumeration items. (get_decomposition): New function. (struct decomp_table): New type. (output_decomposition, output_decomposition_tables): New functions. (unicode_composition_exclusions): New variable. (fill_composition_exclusions, debug_output_composition_tables): New functions. (main): Accept one more argument. Invoke fill_composition_exclusions. Output decomposition and composition tables. New module 'uninorm/base'. * lib/uninorm.h: New file. * lib/unictype.h: Update comment. * modules/uninorm/base: New file. 2009-02-21 David Lutterkort Tests for module 'safe-alloc'. * tests/test-safe-alloc.c: New file. * modules/safe-alloc-tests: New file. New module 'safe-alloc'. * lib/safe-alloc.h: New file. * lib/safe-alloc.c: New file. * m4/safe-alloc.m4: New file. * modules/safe-alloc: New file. * doc/safe-alloc.texi: New file. * doc/gnulib.texi: Include it. * MODULES.html.sh (Memory management functions ): Add safe-alloc. 2009-02-18 Bruno Haible Fix link error on non-glibc systems. * modules/uniwbrk/ulc-wordbreaks-tests (test_ulc_wordbreaks_LDADD): New variable. Reported by Tom G. Christensen . 2009-02-18 Jim Meyering fts: avoid used-uninitialized error due to recent change * lib/fts.c (fts_read): Guard uses of the new member, parent->fts_n_dirs_remaining, since it's not relevant for the parent of a directory specified on the command-line. 2009-02-17 James Youngman Bruno Haible * m4/include_next.m4: Reformulate comment. 2009-02-16 Jim Meyering fts: add #if guards so that the fts_lgpl module still builds * lib/fts.c: Guard just-added hash-table-using parts with #if GNULIB_FTS, so as not to break builds of the fts_lgpl module. Reported by Simon Josefsson. 2009-02-15 Bruno Haible * modules/array-mergesort-tests: New file. * tests/test-array-mergesort.c: New file. New module 'array-mergesort'. * modules/array-mergesort: New file. * lib/array-mergesort.h: New file. 2009-02-15 Bruno Haible Fix 2009-02-07 commit. * lib/gen-uni-tables.c (output_predicate, output_category, output_combclass, output_bidi_category, output_decimal_digit, output_digit, output_numeric, output_mirror, output_scripts, output_ident_category, output_simple_mapping): Fix format directives. (output_lbp, output_wbp): Don't convert -1 to a size_t implicitly. 2009-02-15 Albert Chin-A-Young * m4/include_next.m4: Update comment about IBM C 9.0/10.1 bug, now that fixes are available from IBM. 2009-02-13 Jim Meyering fts: arrange not to stat non-directories in more cases This makes GNU find (when it doesn't need to stat each file) *much* more efficient at traversing reiserfs file systems. * lib/fts_.h (struct ftsent) [fts_n_dirs_remaining]: New member. (struct FTS) [fts_leaf_optimization_works_ht]: Add member. * lib/fts.c (fts_close): Free ->fts_leaf_optimization_works_ht. (S_MAGIC_REISERFS, S_MAGIC_PROC): Define. (leaf_optimization_applies): New function. (LCO_hash, LCO_compare): New helper functions. (link_count_optimize_ok): New function. (fts_stat): Initialize new member (if dir). (fts_read): Decrement parent's fts_n_dirs_remaining count if we've just stat'ed a directory. Skip the stat call when possible. --- Note this AFS-related exchange: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=143111 and note find's pioctl call in find/fstype.c. But that is necessary only if you want to enable the optimization for AFS, and for now, I don't. fts: move a function definition "up" (no semantic change) * lib/fts.c (dirent_inode_sort_may_be_useful): Move definition "up" to precede upcoming use of a related function. 2009-02-11 Jim Meyering fts: correct internal computation of nlinks (optimization-related) * lib/fts.c (fts_build): ISSET(FTS_NOSTAT) has no bearing on whether the current entry is a directory, so don't test it. 2009-02-10 Bruno Haible Tests for module 'uniwbrk/ulc-wordbreaks'. * modules/uniwbrk/ulc-wordbreaks-tests: New file. * tests/uniwbrk/test-ulc-wordbreaks.sh: New file. * tests/uniwbrk/test-ulc-wordbreaks.c: New file. Tests for module 'uniwbrk/u32-wordbreaks'. * modules/uniwbrk/u32-wordbreaks-tests: New file. * tests/uniwbrk/test-u32-wordbreaks.c: New file. Tests for module 'uniwbrk/u16-wordbreaks'. * modules/uniwbrk/u16-wordbreaks-tests: New file. * tests/uniwbrk/test-u16-wordbreaks.c: New file. Tests for module 'uniwbrk/u8-wordbreaks'. * modules/uniwbrk/u8-wordbreaks-tests: New file. * tests/uniwbrk/test-u8-wordbreaks.c: New file. 2009-02-10 Bruno Haible * modules/uniwbrk/u8-wordbreaks (Depends-on): Add uniwbrk/wordbreak property. * modules/uniwbrk/u16-wordbreaks (Depends-on): Likewise. * modules/uniwbrk/u32-wordbreaks (Depends-on): Likewise. * modules/uniwbrk/ulc-wordbreaks (Depends-on): Add localcharset. 2009-02-10 Simon Josefsson * m4/sockets.m4: Call AC_C_INLINE since sockets.h now can use inline keywords. Reported by Bruno Haible . 2009-02-10 Bruno Haible * lib/unilbrk/lbrktables.h: Renamed from lib/unilbrk/tables.h. * lib/unilbrk/lbrktables.c: Renamed from lib/unilbrk/tables.c. * modules/unilbrk/tables (Files, Makefile.am, Include): Update. * lib/unilbrk/u8-possible-linebreaks.c: Update. * lib/unilbrk/u16-possible-linebreaks.c: Likewise. * lib/unilbrk/u32-possible-linebreaks.c: Likewise. 2009-02-09 Simon Josefsson * lib/sockets.h (gl_fd_to_handle): New function. * tests/test-sockets.c: Call gl_fd_to_handle. 2009-02-09 Bruno Haible * doc/havelib.texi: Document the conventions on bi-arch systems. 2009-02-08 Bruno Haible Document the AC_LIB_LINKFLAGS macro. * doc/havelib.texi: New file, mostly written on 2005-05-24. * doc/gnulib.texi: Include it. 2009-02-08 Bruno Haible Fix wrong order of sections, compared to TOC. * doc/gnulib.texi: Include relocatable-maint.texi after the "Regular expressions" node, not before. 2009-02-08 Bruno Haible Tests for module 'unicase/totitle'. * modules/unicase/totitle-tests: New file. Tests for module 'unicase/tolower'. * modules/unicase/tolower-tests: New file. Tests for module 'unicase/toupper'. * modules/unicase/toupper-tests: New file. * tests/unicase/test-mapping-part1.h: New file. * tests/unicase/test-mapping-part2.h: New file. New module 'unicase/totitle'. * modules/unicase/totitle: New file. * lib/unicase/totitle.c: New file. New module 'unicase/tolower'. * modules/unicase/tolower: New file. * lib/unicase/tolower.c: New file. New module 'unicase/toupper'. * modules/unicase/toupper: New file. * lib/unicase/toupper.c: New file. * lib/unicase/simple-mapping.h: New file. * lib/gen-uni-tables.c (output_simple_mapping_test): New function. (mapping_table): New structure. (output_simple_mapping): New function. (main): Invoke output_simple_mapping_test and output_simple_mapping. * modules/gen-uni-tables (Description): Update. * lib/unicase/toupper.h: New file, automatically generated by gen-uni-tables. * lib/unicase/tolower.h: New file, automatically generated by gen-uni-tables. * lib/unicase/totitle.h: New file, automatically generated by gen-uni-tables. * tests/unicase/test-uc_toupper.c: New file, automatically generated by gen-uni-tables. * tests/unicase/test-uc_tolower.c: New file, automatically generated by gen-uni-tables. * tests/unicase/test-uc_totitle.c: New file, automatically generated by gen-uni-tables. New module 'unicase/base'. * modules/unicase/base: New file. * lib/unicase.h: New file. 2009-02-08 Bruno Haible New module 'uniwbrk/ulc-wordbreaks'. * modules/uniwbrk/ulc-wordbreaks: New file. * lib/uniwbrk/ulc-wordbreaks.c: New file. New module 'uniwbrk/u32-wordbreaks'. * modules/uniwbrk/u32-wordbreaks: New file. * lib/uniwbrk/u32-wordbreaks.c: New file. New module 'uniwbrk/u16-wordbreaks'. * modules/uniwbrk/u16-wordbreaks: New file. * lib/uniwbrk/u16-wordbreaks.c: New file. New module 'uniwbrk/u8-wordbreaks'. * modules/uniwbrk/u8-wordbreaks: New file. * lib/uniwbrk/u8-wordbreaks.c: New file. * lib/uniwbrk/u-wordbreaks.h: New file. New module 'uniwbrk/table'. * modules/uniwbrk/table: New file. * lib/uniwbrk/wbrktable.h: New file. * lib/uniwbrk/wbrktable.c: New file. New module 'uniwbrk/wordbreak-property'. * modules/uniwbrk/wordbreak-property: New file. * lib/uniwbrk/wordbreak-property.c: New file. * lib/gen-uni-tables.c (WBP_*): New enum items. (get_wbp, debug_output_wbp, debug_output_wbrk_tables): New functions. (unicode_org_wbp): New variable. (fill_org_wbp, debug_output_org_wbp, debug_output_org_wbrk_tables): New functions. (wbp_table): New structure. (output_wbp, output_wbrk_tables): New functions. (main): Accept additional argument. Invoke fill_org_wbp, debug_output_wbrk_tables, debug_output_org_wbrk_tables, output_wbrk_tables. * modules/gen-uni-tables (Description): Update. * lib/uniwbrk/wbrkprop.h: New file, automatically generated by gen-uni-tables. New module 'uniwbrk/base'. * modules/uniwbrk/base: New file. * lib/uniwbrk.h: New file. 2009-02-08 Bruno Haible Update to Unicode 5.1.0. * lib/gen-uni-tables.c (is_property_alphabetic): Include U+2185..U+2188. (is_property_default_ignorable_code_point): Don't include characters of category Cc or Cs and not-a-characters. (get_lbp): Assume REVISION_22. Special handling of U+0609, U+060A, U+0D79, U+109E, U+109F, U+A60C. * lib/unictype/bidi_of.h: Regenerated. * lib/unictype/blocks.h: Regenerated. * lib/unictype/categ_C.h: Regenerated. * lib/unictype/categ_Cf.h: Regenerated. * lib/unictype/categ_Cn.h: Regenerated. * lib/unictype/categ_L.h: Regenerated. * lib/unictype/categ_Ll.h: Regenerated. * lib/unictype/categ_Lm.h: Regenerated. * lib/unictype/categ_Lo.h: Regenerated. * lib/unictype/categ_Lu.h: Regenerated. * lib/unictype/categ_M.h: Regenerated. * lib/unictype/categ_Mc.h: Regenerated. * lib/unictype/categ_Me.h: Regenerated. * lib/unictype/categ_Mn.h: Regenerated. * lib/unictype/categ_N.h: Regenerated. * lib/unictype/categ_Nd.h: Regenerated. * lib/unictype/categ_Nl.h: Regenerated. * lib/unictype/categ_No.h: Regenerated. * lib/unictype/categ_P.h: Regenerated. * lib/unictype/categ_Pd.h: Regenerated. * lib/unictype/categ_Pe.h: Regenerated. * lib/unictype/categ_Pf.h: Regenerated. * lib/unictype/categ_Pi.h: Regenerated. * lib/unictype/categ_Po.h: Regenerated. * lib/unictype/categ_Ps.h: Regenerated. * lib/unictype/categ_S.h: Regenerated. * lib/unictype/categ_Sk.h: Regenerated. * lib/unictype/categ_Sm.h: Regenerated. * lib/unictype/categ_So.h: Regenerated. * lib/unictype/categ_of.h: Regenerated. * lib/unictype/combining.h: Regenerated. * lib/unictype/ctype_alnum.h: Regenerated. * lib/unictype/ctype_alpha.h: Regenerated. * lib/unictype/ctype_graph.h: Regenerated. * lib/unictype/ctype_lower.h: Regenerated. * lib/unictype/ctype_print.h: Regenerated. * lib/unictype/ctype_punct.h: Regenerated. * lib/unictype/ctype_upper.h: Regenerated. * lib/unictype/decdigit.h: Regenerated. * lib/unictype/digit.h: Regenerated. * lib/unictype/mirror.h: Regenerated. * lib/unictype/numeric.h: Regenerated. * lib/unictype/pr_alphabetic.h: Regenerated. * lib/unictype/pr_bidi_arabic_digit.h: Regenerated. * lib/unictype/pr_bidi_arabic_right_to_left.h: Regenerated. * lib/unictype/pr_bidi_boundary_neutral.h: Regenerated. * lib/unictype/pr_bidi_eur_num_terminator.h: Regenerated. * lib/unictype/pr_bidi_left_to_right.h: Regenerated. * lib/unictype/pr_bidi_non_spacing_mark.h: Regenerated. * lib/unictype/pr_bidi_other_neutral.h: Regenerated. * lib/unictype/pr_combining.h: Regenerated. * lib/unictype/pr_dash.h: Regenerated. * lib/unictype/pr_decimal_digit.h: Regenerated. * lib/unictype/pr_default_ignorable_code_point.h: Regenerated. * lib/unictype/pr_deprecated.h: Regenerated. * lib/unictype/pr_diacritic.h: Regenerated. * lib/unictype/pr_extender.h: Regenerated. * lib/unictype/pr_format_control.h: Regenerated. * lib/unictype/pr_grapheme_base.h: Regenerated. * lib/unictype/pr_grapheme_extend.h: Regenerated. * lib/unictype/pr_grapheme_link.h: Regenerated. * lib/unictype/pr_id_continue.h: Regenerated. * lib/unictype/pr_id_start.h: Regenerated. * lib/unictype/pr_ideographic.h: Regenerated. * lib/unictype/pr_ignorable_control.h: Regenerated. * lib/unictype/pr_lowercase.h: Regenerated. * lib/unictype/pr_math.h: Regenerated. * lib/unictype/pr_numeric.h: Regenerated. * lib/unictype/pr_other_alphabetic.h: Regenerated. * lib/unictype/pr_other_default_ignorable_code_point.h: Regenerated. * lib/unictype/pr_other_grapheme_extend.h: Regenerated. * lib/unictype/pr_other_id_continue.h: Regenerated. * lib/unictype/pr_other_lowercase.h: Regenerated. * lib/unictype/pr_other_math.h: Regenerated. * lib/unictype/pr_punctuation.h: Regenerated. * lib/unictype/pr_sentence_terminal.h: Regenerated. * lib/unictype/pr_soft_dotted.h: Regenerated. * lib/unictype/pr_terminal_punctuation.h: Regenerated. * lib/unictype/pr_unassigned_code_value.h: Regenerated. * lib/unictype/pr_unified_ideograph.h: Regenerated. * lib/unictype/pr_uppercase.h: Regenerated. * lib/unictype/pr_xid_continue.h: Regenerated. * lib/unictype/pr_xid_start.h: Regenerated. * lib/unictype/pr_zero_width.h: Regenerated. * lib/unictype/scripts.h: Regenerated. * lib/unictype/scripts_byname.gperf: Regenerated. * lib/unictype/sy_java_ident.h: Regenerated. * lib/unilbrk/lbrkprop1.h: Regenerated. * lib/unilbrk/lbrkprop2.h: Regenerated. * tests/unictype/test-categ_C.c: Regenerated. * tests/unictype/test-categ_Cf.c: Regenerated. * tests/unictype/test-categ_Cn.c: Regenerated. * tests/unictype/test-categ_L.c: Regenerated. * tests/unictype/test-categ_Ll.c: Regenerated. * tests/unictype/test-categ_Lm.c: Regenerated. * tests/unictype/test-categ_Lo.c: Regenerated. * tests/unictype/test-categ_Lu.c: Regenerated. * tests/unictype/test-categ_M.c: Regenerated. * tests/unictype/test-categ_Mc.c: Regenerated. * tests/unictype/test-categ_Me.c: Regenerated. * tests/unictype/test-categ_Mn.c: Regenerated. * tests/unictype/test-categ_N.c: Regenerated. * tests/unictype/test-categ_Nd.c: Regenerated. * tests/unictype/test-categ_Nl.c: Regenerated. * tests/unictype/test-categ_No.c: Regenerated. * tests/unictype/test-categ_P.c: Regenerated. * tests/unictype/test-categ_Pd.c: Regenerated. * tests/unictype/test-categ_Pe.c: Regenerated. * tests/unictype/test-categ_Pf.c: Regenerated. * tests/unictype/test-categ_Pi.c: Regenerated. * tests/unictype/test-categ_Po.c: Regenerated. * tests/unictype/test-categ_Ps.c: Regenerated. * tests/unictype/test-categ_S.c: Regenerated. * tests/unictype/test-categ_Sk.c: Regenerated. * tests/unictype/test-categ_Sm.c: Regenerated. * tests/unictype/test-categ_So.c: Regenerated. * tests/unictype/test-ctype_alnum.c: Regenerated. * tests/unictype/test-ctype_alpha.c: Regenerated. * tests/unictype/test-ctype_graph.c: Regenerated. * tests/unictype/test-ctype_lower.c: Regenerated. * tests/unictype/test-ctype_print.c: Regenerated. * tests/unictype/test-ctype_punct.c: Regenerated. * tests/unictype/test-ctype_upper.c: Regenerated. * tests/unictype/test-decdigit.h: Regenerated. * tests/unictype/test-digit.h: Regenerated. * tests/unictype/test-numeric.h: Regenerated. * tests/unictype/test-pr_alphabetic.c: Regenerated. * tests/unictype/test-pr_bidi_arabic_digit.c: Regenerated. * tests/unictype/test-pr_bidi_arabic_right_to_left.c: Regenerated. * tests/unictype/test-pr_bidi_boundary_neutral.c: Regenerated. * tests/unictype/test-pr_bidi_eur_num_terminator.c: Regenerated. * tests/unictype/test-pr_bidi_left_to_right.c: Regenerated. * tests/unictype/test-pr_bidi_non_spacing_mark.c: Regenerated. * tests/unictype/test-pr_bidi_other_neutral.c: Regenerated. * tests/unictype/test-pr_combining.c: Regenerated. * tests/unictype/test-pr_dash.c: Regenerated. * tests/unictype/test-pr_decimal_digit.c: Regenerated. * tests/unictype/test-pr_default_ignorable_code_point.c: Regenerated. * tests/unictype/test-pr_deprecated.c: Regenerated. * tests/unictype/test-pr_diacritic.c: Regenerated. * tests/unictype/test-pr_extender.c: Regenerated. * tests/unictype/test-pr_format_control.c: Regenerated. * tests/unictype/test-pr_grapheme_base.c: Regenerated. * tests/unictype/test-pr_grapheme_extend.c: Regenerated. * tests/unictype/test-pr_grapheme_link.c: Regenerated. * tests/unictype/test-pr_id_continue.c: Regenerated. * tests/unictype/test-pr_id_start.c: Regenerated. * tests/unictype/test-pr_ideographic.c: Regenerated. * tests/unictype/test-pr_ignorable_control.c: Regenerated. * tests/unictype/test-pr_lowercase.c: Regenerated. * tests/unictype/test-pr_math.c: Regenerated. * tests/unictype/test-pr_numeric.c: Regenerated. * tests/unictype/test-pr_other_alphabetic.c: Regenerated. * tests/unictype/test-pr_other_default_ignorable_code_point.c: Regenerated. * tests/unictype/test-pr_other_grapheme_extend.c: Regenerated. * tests/unictype/test-pr_other_id_continue.c: Regenerated. * tests/unictype/test-pr_other_lowercase.c: Regenerated. * tests/unictype/test-pr_other_math.c: Regenerated. * tests/unictype/test-pr_punctuation.c: Regenerated. * tests/unictype/test-pr_sentence_terminal.c: Regenerated. * tests/unictype/test-pr_soft_dotted.c: Regenerated. * tests/unictype/test-pr_terminal_punctuation.c: Regenerated. * tests/unictype/test-pr_unassigned_code_value.c: Regenerated. * tests/unictype/test-pr_unified_ideograph.c: Regenerated. * tests/unictype/test-pr_uppercase.c: Regenerated. * tests/unictype/test-pr_xid_continue.c: Regenerated. * tests/unictype/test-pr_xid_start.c: Regenerated. * tests/unictype/test-pr_zero_width.c: Regenerated. Update to Unicode 5.1.0. * lib/uniwidth/width.c (nonspacing_table_data): Add U+0487, U+0616..U+061A, U+0A51, U+0A75, U+0B44, U+0B62..U+0B63, U+0C62..U+0C63, U+0D44, U+0D62..U+0D63, U+1033..U+1035, U+103A, U+103D..U+103E, U+105E..U+1060, U+1071..U+1074, U+1082, U+1085..U+1086, U+108D, U+1B80..U+1B81, U+1BA2..U+1BA5, U+1BA8..U+1BA9, U+1C2C..U+1C33, U+1C36..U+1C37, U+1DCB..U+1DE6, U+2064, U+20F0, U+2DE0..U+2DFF, U+A66F..U+A672, U+A67C..U+A67D, U+A8C4, U+A926..U+A92D, U+A947..U+A951, U+AA29..U+AA2E, U+AA31..U+AA32, U+AA35..U+AA36, U+AA43, U+AA4C, U+FE24..U+FE26, U+101FD. Remove U+1929..U+192B. (nonspacing_table_ind): Update. * tests/uniwidth/test-uc_width2.sh: Update expected result. Update to Unicode 5.1.0. * lib/uniname/gen-uninames.lisp (main): Add the range 0x1Fxxx to the code transform. * lib/uniname/uniname.c (unicode_character_name, unicode_name_character): Add the range 0x1Fxxx to the code transform. * lib/uniname/uninames.h: Regenerated. * tests/uniname/UnicodeDataNames.txt: Update to Unicode 5.1.0. 2009-02-07 Bruno Haible Merge gen-ctype and gen-lbrk into a single program. * lib/gen-uni-tables.c: New file, incorporating lib/unictype/gen-ctype.c and lib/unilbrk/gen-lbrk.c. Add directory prefixes to the names of the generated files. * lib/unictype/gen-ctype.c: Remove file. * lib/unilbrk/gen-lbrk.c: Remove file. * modules/gen-uni-tables: New file. * modules/unictype/gen-ctype: Remove file. * modules/unilbrk/gen-lbrk: Remove file. 2009-02-07 Bruno Haible * lib/unistr.h (u8_strcoll, u16_strcoll, u32_strcoll): New declations. New module 'unistr/u32-strcoll'. * modules/unistr/u32-strcoll: New file. * lib/unistr/u32-strcoll.c: New file. New module 'unistr/u16-strcoll'. * modules/unistr/u16-strcoll: New file. * lib/unistr/u16-strcoll.c: New file. New module 'unistr/u8-strcoll'. * modules/unistr/u8-strcoll: New file. * lib/unistr/u8-strcoll.c: New file. * lib/unistr/u-strcoll.h: New file. 2009-02-07 Bruno Haible * test-mbrtowc4.sh (LOCALE_ZH_CN): Fix default value. * test-mbsnrtowcs4.sh (LOCALE_ZH_CN): Likewise. * test-mbsrtowcs4.sh (LOCALE_ZH_CN): Likewise. * test-wcrtomb.sh (LOCALE_ZH_CN): Likewise. * test-wcsnrtombs4.sh (LOCALE_ZH_CN): Likewise. * test-wcsrtombs4.sh (LOCALE_ZH_CN): Likewise. 2009-02-07 Bruno Haible Make 64-bit clean. * lib/unictype/gen-ctype.c (output_predicate, output_category, output_combclass, output_bidi_category, output_decimal_digit, output_digit, output_numeric, output_mirror, output_scripts, output_ident_category): Use proper width specifier in format strings. 2009-02-07 Bruno Haible * doc/posix-functions/dirfd.texi: Clarify situation on mingw. Document failure behaviour. 2009-02-07 Jim Meyering regex: avoid compilation failure with upcoming gcc-4.4 * lib/regex_internal.h: Revert e48d8b47fb3eee81d341b71c3e006efe9e3433a7 [workaround for PGC prior to 6.1-2]. Otherwise, we'd get this: "... error: integer overflow in preprocessor expression". 2009-02-05 Ben Pfaff Fix link errors on Windows when close module is used. * modules/close: Add $(LIB_CLOSE) to Link section. * m4/close.m4 (gl_REPLACE_CLOSE): Substitute -lws2_32 into $(LIB_CLOSE) on Windows. 2009-02-05 Jim Meyering still avoid unused-parameter warnings, but do it cleanly * lib/fsusage.c (UNUSED_PARAM): Remove definition. (get_fs_usage): Cast to void instead. * lib/mountlist.c (UNUSED_PARAM): Remove definition. (dev_from_mount_options, read_file_system_list): Cast to void. Prompted by Bruno Haible. 2009-02-04 Jim Meyering fsusage.c: correct copyright year * lib/fsusage.c: Reflect year in which the change is pushed into avoid misc. warnings * lib/fsusage.c (UNUSED_PARAM): Define. (get_fs_usage): Mark parameter "disk" as unused. * lib/getugroups.c (getgrent): Use "void" in prototype. * lib/mountlist.c: Mark unused parameters. (read_file_system_list): Declare a local with "const". * lib/nanosleep.c (getnow): Declare static. * lib/strftime.c: Include strftime.h, for declaration of nstrftime. dirfd: set errno upon failure * lib/dirfd.c: Include . Set errno to ENOTSUP when returning -1. * modules/dirfd (Depends-on): Add errno. Suggested by John Kodis . 2009-02-01 Bruno Haible Don't assume sizeof (long) >= sizeof (void *). * lib/memcmp.c: Include stdint.h. (memcmp_bytes): Change argument types to op_t. Change type of srcp1, srcp2 to 'const byte *'. (memcmp_common_alignment, memcmp_not_common_alignment): Change argument types to uintptr_t. (rpl_memcmp): Change type of srcp1, srcp2 to 'uintptr_t'. * modules/memcmp (Depends-on): Add stdint. Reported by Ozkan Sezer . 2009-01-30 Eric Blake fix more require-before-expand issues * m4/pmccabe2html.m4 (gl_PMCCABE2HTML): Require, rather than expand, AC_PROG_AWK. * m4/gnulib-common.m4 (AC_PROG_MKDIR_P): Use AC_DEFUN_ONCE. 2009-01-28 Eric Blake version-etc: use consistent URL formatting * lib/version-etc.c (emit_bug_reporting_address, version_etc_va): Improve formatting. Use fputs for string without %. 2009-01-28 Jim Meyering 00gnulib.m4: add m4 quotes in shell comment to avoid autoconf warning * m4/00gnulib.m4 (AC_DEFUN_ONCE): Add quotes to avoid an "underquoted definition of NAME" from autoconf-2.59. 2009-01-28 Bruno Haible * doc/gnulib.texi: Add "Obsolete modules" to index. 2009-01-28 Jim Meyering useless-if-before-free: recognize more variants * build-aux/useless-if-before-free: Also recognize e.g., if (NULL != p) free (p); 2009-01-27 Mark McLoughlin test-getaddrinfo: skip (don't fail) this test when there's no network * tests/test-getaddrinfo.c: Skip test upon failure with EAI_AGAIN, on the presumption that it means you lack network access. 2009-01-26 Jim Meyering fflush: avoid warnings on modern systems * lib/fflush.c (rpl_fflush): Move declarations of locals, pos and result, into scopes where they're used. 2009-01-26 Eric Blake Silence warning reintroduced by recent extensions patch. * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS) (gl_USE_SYSTEM_EXTENSIONS): Use AC_DEFUN_ONCE to silence newer autoconf. Backport improved autoconf semantics of AC_DEFUN_ONCE. * m4/00gnulib.m4: New file. * gnulib-tool (func_get_filelist): Always use it. * m4/gnulib-common.m4 (gl_COMMON): Force the file to be used. Reported by Bruno Haible, with suggestions from Paolo Bonzini. 2009-01-25 Bruno Haible Make test-quotearg work on MacOS X and AIX. * tests/test-quotearg.sh: New file. * tests/locale/fr/LC_MESSAGES/test-quotearg.po: New file. * tests/locale/fr/LC_MESSAGES/test-quotearg.mo: New file. * tests/test-quotearg.c: Include and gettext.h. Don't include . (fake_locale): Remove variable. (gettext, dgettext, dcgettext): Remove functions. (main): Instead of setting a fake locale, set a real locale. Call textdomain and bindtextdomain. * modules/quotearg-tests (Files): Add the new files. (Depends-on): Add gettext, setenv, unsetenv. (configure.ac): Invoke gt_LOCALE_FR and gt_LOCALE_FR_UTF8. (Makefile.am): Add test-quotearg.sh to TESTS, remove test-quotearg. Augment TESTS_ENVIRONMENT. 2009-01-25 Bruno Haible * m4/locale-fr.m4 (gt_LOCALE_FR): Remove special code that hid the fr_FR.ISO8859-1 locale on MacOS X. * m4/locale-ja.m4 (gt_LOCALE_JA): Remove special code that hid the ja_JP.eucJP locale on MacOS X. * m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Remove special code that hid the zh_CN.GB18030 locale on MacOS X. 2009-01-25 Bruno Haible Avoid link errors on MacOS X 10.3. * lib/mbsrtowcs-state.c (_gl_mbsrtowcs_state): Add initializer. * lib/wcsrtombs-state.c (_gl_wcsrtombs_state): Likewise. 2009-01-25 Bruno Haible * lib/pipe.c: On Unix, assume HAVE_POSIX_SPAWN and use posix_spawnp. * m4/pipe.m4 (gl_PIPE): Remove tests for vfork() based code. * modules/pipe (Files): Remove m4/posix_spawn.m4. (Depends-on): Add spawn, posix_spawnp, posix_spawn_file_actions_init, posix_spawn_file_actions_addclose, posix_spawn_file_actions_adddup2, posix_spawn_file_actions_addopen, posix_spawn_file_actions_destroy, posix_spawnattr_init, posix_spawnattr_setsigmask, posix_spawnattr_setflags, posix_spawnattr_destroy. * lib/execute.c: On Unix, assume HAVE_POSIX_SPAWN and use posix_spawnp. * m4/execute.m4 (gl_EXECUTE): Remove tests for vfork() based code. * modules/execute (Files): Remove m4/posix_spawn.m4. (Depends-on): Add spawn, posix_spawnp, posix_spawn_file_actions_init, posix_spawn_file_actions_addopen, posix_spawn_file_actions_destroy, posix_spawnattr_init, posix_spawnattr_setsigmask, posix_spawnattr_setflags, posix_spawnattr_destroy. 2009-01-25 Bruno Haible * lib/glthread/threadlib.c: Include . 2009-01-25 Bruno Haible * lib/glthread/threadlib.c (dummy): New declaration. 2009-01-25 Bruno Haible * lib/mbrtowc.c (mbrtowc): Distinguish invalid and incomplete multibyte characters also for the GB18030 encoding. Don't crash when the encoding is unknown and nstate = 0. Needed on OSF/1 5.1. 2009-01-25 Bruno Haible Avoid redefining 'struct random_data' on OSF/1 5.1. * lib/stdlib.in.h: Include if it exists. * m4/stdlib_h.m4 (gl_STDLIB_H): Test whether exists. Set HAVE_RANDOM_H. Include when testing whether 'struct random_data' exists. * modules/stdlib (Makefile.am): Substitute HAVE_RANDOM_H. 2009-01-25 Bruno Haible Don't install charset.alias on MacOS X >= 10.3. * lib/localcharset.c (DARWIN7): New macro. (get_charset_aliases): Hardcode the result for Darwin7. * modules/localcharset (install-exec-local): Don't install charset.alias on MacOS X >= 10.3, if the file does not yet exist. 2009-01-25 Bruno Haible Don't install charset.alias on mingw and Cygwin. * modules/localcharset (install-exec-local): Don't install charset.alias on mingw and Cygwin, if the file does not yet exist. The result for these platforms is hardcoded in localcharset.c. 2009-01-25 Bruno Haible Make it possible again to use AC_GNU_SOURCE together with gnulib. * m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Require AC_GNU_SOURCE before requiring AC_USE_SYSTEM_EXTENSIONS. 2009-01-25 Jim Meyering c-strtod: avoid warnings * lib/c-strtod.c (C_STRTOD): Cast nptr to (char *) to avoid "assignment discards qualifiers from pointer target type" warnings. 2009-01-24 Bruno Haible Add support for non-UTF-8 locales on MacOS X. * lib/config.charset: Add CP1131, ARMSCII-8, PT154 to the list of canonical encodings. For Darwin 7 and newer, don't map traditional encodings to UTF-8. Reported by Vincent Lefevre at . 2009-01-24 Bruno Haible * doc/gnulib.texi (Obsolete modules): New section. Reported by Mike Frysinger . 2009-01-24 Bruno Haible * doc/Makefile (%.pdf): Clarify where to find texmf.cnf. (%.dvi): New rule. 2009-01-24 Bruno Haible * lib/c-strtod.h (c_strtod, c_strtold): Adjust specification. Reported by Eric Blake. 2009-01-24 Bruno Haible * lib/c-stack.c (segv_handler): If !HAVE_XSI_STACK_OVERFLOW_HEURISTIC, set signo = 0 also if info->si_code <= 0. Needed on HP-UX 11.11. Reported by Gary V. Vaughan . 2009-01-24 Bruno Haible * lib/c-strtod.h (c_strtod, c_strtold): Add specification. 2009-01-23 Bruno Haible Make c-strtod, c-strtold usable in libraries. * lib/c-strtod.c: Include string.h instead of xalloc.h. (C_STRTOD): Call strdup instead of xstrdup. * modules/c-strtod (Depends-on): Add strdup-posix, remove xalloc. * modules/c-strtold (Depends-on): Likewise. * doc/c-strtod.texi: Remove the sentence mentioning xalloc_die. * NEWS: Mention the change. Reported by Michael Gold . 2009-01-23 Jim Meyering c-strtod: when ENDPTR is non-NULL, set *ENDPTR in new failure path * lib/c-strtod.c (C_STRTOD) [LC_ALL_MASKC]: Ensure that when ENDPTR is non-NULL, *ENDPTR is set to NPTR upon failure. 2009-01-23 Simon Josefsson * lib/version-etc.c: Add emit_bug_reporting_address, inspired by GNU CoreUtils. * lib/version-etc.h: Add prototype for emit_bug_reporting_address. * modules/version-etc (Description): Update. 2009-01-22 Bruno Haible Cache the C locale object. * lib/c-strtod.c (c_locale_cache): New variable. (c_locale): New function. (C_STRTOD): Use it, and don't call freelocale. * m4/c-strtod.m4 (gl_C_STRTOD, gl_C_STRTOLD): Require AC_C_INLINE. Suggested by Paolo Bonzini. 2009-01-21 Bruno Haible * lib/getloadavg.c (getloadavg): Check c_strtod result against error conditions other than overflow. 2009-01-21 Bruno Haible * lib/c-strtod.c: Include errno.h. (C_STRTOD): Check against NULL return from newlocale. Preserve errno value from STRTOD_L and STRTOD. 2009-01-21 Bruno Haible and Jim Meyering nanosleep: skip configure test (fail it) for apple universal builds * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Require gl_MULTIARCH. In Apple universal builds, assume that nanosleep does not work. * modules/nanosleep (Depends-on): Add multiarch. mktime: skip configure test (fail it) for apple universal builds * m4/mktime.m4 (AC_FUNC_MKTIME): Require gl_MULTIARCH. In Apple universal builds, assume that mktime does not work. * modules/mktime (Depends-on): Add multiarch. 2009-01-21 Eric Blake multiarch: avoid expand-before-require warning * modules/multiarch (configure.ac): Require, rather than expand, gl_MULTIARCH. * m4/multiarch.m4 (gl_MULTIARCH_BODY): Merge... (gl_MULTIARCH): ...into this macro, and use AC_DEFUN_ONCE to enforce that all clients require it. Partial reversion of 2008-12-29 patch. error: avoid expand-before-require warning * modules/errno (configure.ac): Require, rather than expand, gl_HEADER_ERRNO_H. * m4/errno_h.m4 (gl_HEADER_ERRNO_H_BODY): Merge... (gl_HEADER_ERRNO_H): ...into this macro, and use AC_DEFUN_ONCE to enforce that all clients require it. gnulib-tool: avoid warnings from using obsolete AC_GNU_SOURCE * gnulib-tool (func_dest_tmpfilename, func_create_testdir): Using obsolete AC_GNU_SOURCE causes out-of-order expansion; avoid it, and rely solely on gl_USE_SYSTEM_EXTENSIONS. 2009-01-21 Paolo Bonzini Revert: 2009-01-20 Paolo Bonzini regex: do not depend on obsolete modules. * modules/regex: Remove memcmp and memmove. 2009-01-20 Bruno Haible Make the 'link' module link on Windows NT 4. * lib/link.c (_WIN32_WINNT): Don't define. (CreateHardLinkFuncType): New type. (CreateHardLinkFunc, initialized): New variables. (initialize): New function. (link): Invoke CreateHardLink indirectly through the function pointer. 2009-01-20 Bruno Haible Fix compilation failure on mingw. * tests/test-link.c (main): Don't assume that EOPNOTSUPP exists. 2009-01-20 Michael Gold (tiny change) * doc/c-strtod.texi: Mention a couple of restrictions. 2009-01-20 Jim Meyering gettimeofday: move more declarations out of functions * lib/gettimeofday.c: Move extern declarations of tzset and gmtime out of containing functions. Prompted by Bruno Haible. 2009-01-20 Paolo Bonzini regex: do not depend on obsolete modules. * modules/regex: Remove memcmp and memmove. 2009-01-19 Bruno Haible Don't use AC_REQUIRE([AC_C_BIGENDIAN]). * modules/uniconv/u16-conv-from-enc (configure.ac): Require gl_BIGENDIAN, not AC_C_BIGENDIAN. * modules/uniconv/u16-conv-to-enc (configure.ac): Likewise. * modules/uniconv/u16-strconv-to-enc (configure.ac): Likewise. 2009-01-19 Bruno Haible * tests/test-link.c: Include . (main): Exit with code 77 when a hard link cannot be created due to the file system. * tests/test-link.sh: Skip test when a hard link cannot be created due to the file system. Suggested by Eric Blake. 2009-01-19 Martin Lambers * modules/link-tests: New file. * tests/test-link.sh: New file. * tests/test-link.c: New file. 2009-01-19 Eric Blake doc: mention another function added in cygwin 1.7.0 * doc/glibc-functions/glob_pattern_p.texi (glob_pattern_p): Another new function in cygwin 1.7. 2009-01-19 Bruno Haible Don't use AC_REQUIRE([AC_C_BIGENDIAN]). * m4/gnulib-common.m4 (gl_BIGENDIAN): New macro. * m4/exponentl.m4 (gl_LONG_DOUBLE_EXPONENT_LOCATION): Require gl_BIGENDIAN, not AC_C_BIGENDIAN. * m4/isfinite.m4 (gl_ISFINITEL_WORKS): Likewise. * m4/isinf.m4 (gl_ISINFL_WORKS): Likewise. * m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Likewise. * m4/md4.m4 (gl_MD4): Likewise. * m4/md5.m4 (gl_MD5): Likewise. * m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Likewise. * m4/sha1.m4 (gl_SHA1): Likewise. * m4/sha256.m4 (gl_SHA256): Likewise. * m4/sha512.m4 (gl_SHA512): Likewise. 2009-01-19 Bruno Haible * modules/uniname/uniname-tests (Depends-on): Add progname. * tests/uniname/test-uninames.c: Include progname.h. (main): Call set_program_name. * modules/unistdio/u8-vsprintf-tests (Depends-on): Add progname. * tests/unistdio/test-u8-vsprintf1.c: Include progname.h. (main): Call set_program_name. * modules/unistdio/u8-vsnprintf-tests (Depends-on): Add progname. * tests/unistdio/test-u8-vsnprintf1.c: Include progname.h. (main): Call set_program_name. * modules/unistdio/u16-vsprintf-tests (Depends-on): Add progname. * tests/unistdio/test-u16-vsprintf1.c: Include progname.h. (main): Call set_program_name. * modules/unistdio/u16-vsnprintf-tests (Depends-on): Add progname. * tests/unistdio/test-u16-vsnprintf1.c: Include progname.h. (main): Call set_program_name. * modules/unistdio/u32-vsprintf-tests (Depends-on): Add progname. * tests/unistdio/test-u32-vsprintf1.c: Include progname.h. (main): Call set_program_name. * modules/unistdio/u32-vsnprintf-tests (Depends-on): Add progname. * tests/unistdio/test-u32-vsnprintf1.c: Include progname.h. (main): Call set_program_name. * modules/unistdio/ulc-vsprintf-tests (Depends-on): Add progname. * tests/unistdio/test-ulc-vsprintf1.c: Include progname.h. (main): Call set_program_name. * modules/unistdio/ulc-vsnprintf-tests (Depends-on): Add progname. * tests/unistdio/test-ulc-vsnprintf1.c: Include progname.h. (main): Call set_program_name. 2009-01-19 Eric Blake test-unistd: test previous patch * tests/test-unistd.c: Test *_FILENO macros. unistd: guarantee STDIN_FILENO here, for OS/2 EMX * lib/unistd.in.h (STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO): Guarantee a definition. * doc/posix-headers/unistd.texi (unistd.h): Document the bug. * modules/unistd-safer (Depends-on): Add dependency on unistd. * lib/c-stack.c (STDERR_FILENO): Rely on . * lib/dup-safer.c (STDERR_FILENO): Likewise. * lib/execute.c (STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO): Likewise. * lib/fd-safer.c (STDIN_FILENO, STDERR_FILENO): Likewise. * lib/fopen-safer.c (STDERR_FILENO): Likewise. * lib/pipe.c (STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO): Likewise. * lib/tmpfile-safer.c (STDERR_FILENO): Likewise. * tests/test-posix_spawn1.c (STDIN_FILENO, STDOUT_FILENO) (STDERR_FILENO): Likewise. * tests/test-posix_spawn2.c (STDIN_FILENO, STDOUT_FILENO) (STDERR_FILENO): Likewise. * tests/test-posix_spawn3.c (STDIN_FILENO, STDOUT_FILENO) (STDERR_FILENO): Likewise. Reported by Elbert Pol. 2009-01-19 Eric Blake doc: mention more functions added in cygwin 1.7.0 * doc/posix-functions/abort.texi (abort): Update wording related to cygwin. * doc/posix-functions/daylight.texi (daylight): Likewise. * doc/posix-functions/optarg.texi (optarg): Likewise. * doc/posix-functions/optarg.texi (opterr): Likewise. * doc/posix-functions/optarg.texi (optind): Likewise. * doc/posix-functions/optarg.texi (optopt): Likewise. * doc/posix-functions/wprintf.texi (wprintf): Cygwin wprintf never worked in 1.5.x, and was withdrawn in 1.7. * doc/posix-functions/vwprintf.texi (vwprintf): Likewise. * doc/posix-functions/fprintf.texi (fprintf): Tighten mention of cygwin versions. * doc/posix-functions/perror.texi (perror): Likewise. * doc/posix-functions/printf.texi (printf): Likewise. * doc/posix-functions/snprintf.texi (snprintf): Likewise. * doc/posix-functions/sprintf.texi (sprintf): Likewise. * doc/posix-functions/vfprintf.texi (vfprintf): Likewise. * doc/posix-functions/vprintf.texi (vprintf): Likewise. * doc/posix-functions/vsnprintf.texi (vsnprintf): Likewise. * doc/posix-functions/vsprintf.texi (vsprintf): Likewise. * doc/glibc-functions/obstack_printf.texi (obstack_printf): Likewise. * doc/glibc-functions/obstack_vprintf.texi (obstack_vprintf): Likewise. * doc/glibc-functions/cfmakeraw.texi (cfmakeraw): Cygwin 1.7 adds this function. * doc/glibc-functions/in6addr_any.texi (in6addr_any): Likewise. * doc/glibc-functions/in6addr_loopback.texi (in6addr_loopback): Likewise. * doc/glibc-functions/updwtmpx.texi (updwtmpx): Likewise. * doc/posix-functions/_Exit_C99.texi (_Exit): Likewise. * doc/posix-functions/confstr.texi (confstr): Likewise. * doc/posix-functions/dprintf.texi (dprintf): Likewise. * doc/posix-functions/fgetwc.texi (fgetwc): Likewise. * doc/posix-functions/fgetws.texi (fgetws): Likewise. * doc/posix-functions/fputwc.texi (fputwc): Likewise. * doc/posix-functions/fputws.texi (fputws): Likewise. * doc/posix-functions/fwide.texi (fwide): Likewise. * doc/posix-functions/getwc.texi (getwc): Likewise. * doc/posix-functions/getwchar.texi (getwchar): Likewise. * doc/posix-functions/putwc.texi (putwc): Likewise. * doc/posix-functions/putwchar.texi (putwchar): Likewise. * doc/posix-functions/sigignore.texi (sigignore): Likewise. * doc/posix-functions/ungetwc.texi (ungetwc): Likewise. * doc/posix-functions/vdprintf.texi (vdprintf): Likewise. * doc/posix-functions/wcpcpy.texi (wcpcpy): Likewise. * doc/posix-functions/wcpncpy.texi (wcpncpy): Likewise. * doc/posix-functions/wcstol.texi (wcstol): Likewise. * doc/posix-functions/wcstoll.texi (wcstoll): Likewise. * doc/posix-functions/wcstoul.texi (wcstoul): Likewise. * doc/posix-functions/wcstoull.texi (wcstoull): Likewise. * doc/posix-functions/wcsxfrm.texi (wcsxfrm): Likewise. 2009-01-19 Daniel P. Berrange ioctl: avoid warning: no previous prototype for 'rpl_ioctl' * lib/ioctl.c: Include . 2009-01-19 Simon Josefsson * modules/getdate-tests (Depends-on): Add progname. * tests/test-getdate.c: Use progname module, to avoid link errors on non-glibc systems. 2009-01-18 Simon Josefsson * modules/filenamecat-tests (Depends-on): Add progname. * modules/fstrcmp-tests (Depends-on): Likewise. * tests/test-filenamecat.c: Use progname module, to avoid link errors on non-glibc systems. * tests/test-fstrcmp.c: Likewise. 2009-01-19 Daniel P. Berrange gettimeofday: avoid warning: nested extern declaration of 'localtime' * lib/gettimeofday.c: Move extern declaration out of function. 2009-01-18 Bruno Haible * m4/strftime.m4 (gl_FUNC_STRFTIME): Don't test for mblen and mbrlen. * lib/strftime.c (HAVE_MBLEN, HAVE_MBRLEN): Remove macros. (MULTIBYTE_IS_FORMAT_SAFE): Define to 1 on all platforms except OSF/1. 2009-01-18 Bruno Haible * lib/strftime.c (MEMPCPY): Remove unused macro. * m4/strftime.m4 (gl_FUNC_STRFTIME): Don't test for mempcpy. 2009-01-18 Martin Lambers New module 'link'. * lib/unistd.in.h (link): New declaration. * lib/link.c: New file. * m4/link.m4: New file. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_LINK, HAVE_LINK. * modules/unistd (Makefile.am): Substitute GNULIB_LINK, HAVE_LINK. * modules/link: New file. * doc/posix-functions/link.texi: Mention the new module. 2009-01-18 Bruno Haible * tests/test-avltree_list.c (main): Call set_program_name. * tests/test-avltree_oset.c (main): Likewise. * tests/test-obstack-printf.c: Include progname.h. (main): Call set_program_name. * tests/test-quotearg.c: Include progname.h. (main): Call set_program_name. * tests/test-xmemdup0.c: Include progname.h. (main): Call set_program_name. 2009-01-18 Bruno Haible New module 'alphasort'. * lib/dirent.in.h (alphasort): New declaration. * lib/alphasort.c: New file, from glibc with modifications. * m4/alphasort.m4: New file. * modules/alphasort: New file. * m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): Initialize GNULIB_ALPHASORT, HAVE_ALPHASORT. * modules/dirent (Makefile.am): Substitute GNULIB_ALPHASORT, HAVE_ALPHASORT. * doc/posix-functions/alphasort.texi: Mention the new module and the portability problems. 2009-01-18 Bruno Haible New module 'scandir'. * lib/dirent.in.h (scandir): New declaration. * lib/scandir.c: New file, from glibc with modifications. * m4/scandir.m4: New file. * modules/scandir: New file. * m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): Initialize GNULIB_SCANDIR, HAVE_SCANDIR. * modules/dirent (Makefile.am): Substitute GNULIB_SCANDIR, HAVE_SCANDIR. * doc/posix-functions/scandir.texi: Mention the new module and the portability problems. 2009-01-17 Bruno Haible * gnulib-tool (func_remove_prefix): Escape all dots in the prefix. Update documentation. (func_remove_suffix): Escape all dots in the suffix. Update documentation. (func_filter_filelist): Update documentation. Reported by Ralf Wildenhues. 2009-01-17 Bruno Haible * modules/dprintf-posix-tests: New file. * tests/test-dprintf-posix.sh: New file. * tests/test-dprintf-posix.c: New file. New modules 'dprintf', 'dprintf-posix'. * lib/stdio.in.h (dprintf): New declaration. * lib/dprintf.c: New file. * m4/dprintf.m4: New file. * m4/dprintf-posix.m4: New file. * modules/dprintf: New file. * modules/dprintf-posix: New file. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize GNULIB_DPRINTF, HAVE_DPRINTF, REPLACE_DPRINTF. * modules/stdio (Makefile.am): Substitute also GNULIB_DPRINTF, HAVE_DPRINTF, REPLACE_DPRINTF. * doc/posix-functions/dprintf.texi: Mention the new modules. 2009-01-17 Bruno Haible * modules/vdprintf-posix-tests: New file. * tests/test-vdprintf-posix.sh: New file. * tests/test-vdprintf-posix.c: New file. New modules 'vdprintf', 'vdprintf-posix'. * lib/stdio.in.h (vdprintf): New declaration. * lib/vdprintf.c: New file. * m4/vdprintf.m4: New file. * m4/vdprintf-posix.m4: New file. * modules/vdprintf: New file. * modules/vdprintf-posix: New file. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize GNULIB_VDPRINTF, HAVE_VDPRINTF, REPLACE_VDPRINTF. * modules/stdio (Makefile.am): Substitute also GNULIB_VDPRINTF, HAVE_VDPRINTF, REPLACE_VDPRINTF. * doc/posix-functions/vdprintf.texi: Mention the new modules. 2009-01-17 Bruno Haible Fix replacement of fopen on mingw. * m4/fopen.m4 (gl_FUNC_FOPEN): Define FOPEN_TRAILING_SLASH_BUG also on mingw. 2009-01-17 Bruno Haible Fix compilation error on HP-UX 11.00, present since 2008-09-24. * lib/fopen.c: Include and . 2009-01-17 Bruno Haible Avoid test-fflush2.sh failure on mingw. * tests/test-fflush2.c: Include binary-io.h. (main): Put standard input into binary mode. * modules/fflush-tests (Depends-on): Add binary-io. 2009-01-17 Bruno Haible * lib/wchar.in.h: In another particular situation, include only the system's file. (_GL_ALREADY_INCLUDING_WCHAR_H): New macro. Reported by Albert Chin-A-Young and Thomas Guyot-Sionnest . 2009-01-17 Bruno Haible Support for stripping executables in --enable-relocatable. * build-aux/install-reloc: Expect one more argument, or an environment variable RELOC_STRIP_PROG. If set, strip the destination program and its wrapper. * m4/relocatable.m4 (gl_RELOCATABLE_BODY): In INSTALL_PROGRAM_ENV, set RELOC_STRIP_PROG. * doc/relocatable-maint.texi (Supporting Relocation): Mention the need to set RELOCATABLE_STRIP. * NEWS: Mention the new Makefile requirement. 2009-01-17 Bruno Haible * build-aux/install-reloc: Remove debugging information left over by C compiler on MacOS X. 2009-01-17 Bruno Haible Update use of _NSGetExecutablePath after API change in MacOS X 10.4. * lib/progreloc.c (find_executable): Fix type of pointer passed to _NSGetExecutablePath. 2009-01-16 Jim Meyering strerror: avoid warnings about discarding "const" * lib/strerror.c (rpl_strerror): Instead of returning a const string from each and every "case", use a variable, and add a single cast after the switch. 2009-01-16 Albert Chin-A-Young * lib/arpa_inet.in.h: Add extern "C" block for C++. 2009-01-16 Bruno Haible * m4/printf.m4 (gl_SNPRINTF_SIZE1, gl_VSNPRINTF_ZEROSIZE_C99): Use an array initializer syntax that also works in C++ mode. Reported by Albert Chin . 2009-01-16 Jim Meyering poll: suppress a warning * lib/poll.c: Use #pragma GCC diagnostic ignored "-Wtype-limits" to ignore "...unsigned expression < 0 is always false" warnings. 2009-01-16 Daniel P. Berrange poll: remove declarations of unused variables * lib/poll.c (poll) [WIN32_NATIVE]: Remove declarations of unused sockbuf and optlen. 2009-01-15 Bruno Haible Make fflush-after-ungetc POSIX compliant on BSD systems. * lib/fflush.c (clear_ungetc_buffer_preserving_position): New function. (clear_ungetc_buffer): Implement also for other systems. (rpl_fflush): On glibc systems, invoke clear_ungetc_buffer_preserving_position. Otherwise, invoke clear_ungetc_buffer after fetching the stream's position, not before. 2009-01-15 Bruno Haible Make fflush-after-ungetc POSIX compliant on glibc systems. * m4/fflush.m4 (gl_FUNC_FFLUSH): Test also the behaviour of fflush after ungetc. * lib/fflush.c (clear_ungetc_buffer): Implement for glibc systems. (rpl_fflush): On glibc systems, simply call the system's fflush function after clearing the ungetc buffer. * lib/fseeko.c (rpl_fseeko): Don't try to lseek past the end of file. Instead, lseek only to the end of file, then use the system's fseeko for the rest. On glibc systems, reset the EOF indicator bit. 2009-01-15 Jim Meyering openmp.m4: revert quote-adding change, for portability to older autoconf * m4/openmp.m4: Remove the quotes added on 2009-01-14. This reverts part of 42d1eda5dcce2d68deab7a642e7f29bcd7144a0d. Simon Josefsson noticed the problem when using autoconf-2.61. 2009-01-15 Bruno Haible * tests/test-fflush2.sh: Invoke test-fflush2 twice. * tests/test-fflush2.c (ASSERT): Always fail. (main): Add two tests for fflush() after ungetc(), taking into account the Austin Group's clarification. Suggested by Eric Blake. 2009-01-15 Albert Chin-A-Young mktime.m4: remove K&R-style function prototypes * m4/mktime.m4 (AC_FUNC_MKTIME): Remove K&R-style function prototypes for the Sun C++ compiler. 2009-01-14 Bruno Haible * lib/stdint.in.h (_GL_JUST_INCLUDE_SYSTEM_WCHAR_H): New macro, defined while including . * lib/wchar.in.h: In two particular situations on HP-UX, include only the system's file. Reported by Albert Chin . 2009-01-14 Bruno Haible * m4/csharp.m4: Don't mention gettext on the serial number line. * m4/csharpexec.m4: Likewise. * m4/eaccess.m4: Likewise. * m4/javaexec.m4: Likewise. * m4/sig_atomic_t.m4: Likewise. * m4/tmpdir.m4: Likewise. * m4/intldir.m4: Bump gettext version. * m4/lib-ld.m4: Likewise. 2009-01-14 Bruno Haible * lib/progname.c (set_program_name): Add more comments. Reported by Sergey Poznyakoff . 2009-01-14 Simon Josefsson * lib/sys_stat.in.h: Include sys/types.h for nlink_t on systems were sys/stat.h does not define it. 2009-01-14 Jim Meyering many *.m4 files: improve m4 quoting 99% of this change was performed by running the following commands: git ls-files | grep '\.m4$' | xargs perl -pi \ -e 's/(AC_\w+\()([^[()]+?)([,)])/$1\[$2]$3/g;' \ -e 's/(AC_\w+\((?:\[[^,]+?\], ){1})([^,[()]+?)([,)])/$1\[$2]$3/g;' \ -e 's/(AC_\w+\((?:\[[^,]+?\], ){2})([^,[()]+?)([,)])/$1\[$2]$3/g;' \ -e 's/(AC_\w+\((?:\[[^,]+?\], ){3})([^,[()]+?)([,)])/$1\[$2]$3/g' perl -pi -e 's/\[\.\.\.\]/.../' m4/onceonly.m4 The remainder were to add Copyright dates, increment serial numbers, undo some changes in comments, exclude m4/intl.m4, and add quotes around the "1" in ",1" where the unusual spacing prohibited the above regexps from doing the job. For more details, see . * m4/acl.m4: Modified. * m4/afs.m4: Likewise. * m4/alloca.m4: Likewise. * m4/argp.m4: Likewise. * m4/argz.m4: Likewise. * m4/atexit.m4: Likewise. * m4/bison-i18n.m4: Likewise. * m4/bison.m4: Likewise. * m4/byteswap.m4: Likewise. * m4/c-stack.m4: Likewise. * m4/c-strtod.m4: Likewise. * m4/calloc.m4: Likewise. * m4/canonicalize-lgpl.m4: Likewise. * m4/chown.m4: Likewise. * m4/clock_time.m4: Likewise. * m4/codeset.m4: Likewise. * m4/copy-file.m4: Likewise. * m4/csharp.m4: Likewise. * m4/csharpcomp.m4: Likewise. * m4/csharpexec.m4: Likewise. * m4/d-ino.m4: Likewise. * m4/d-type.m4: Likewise. * m4/dirfd.m4: Likewise. * m4/double-slash-root.m4: Likewise. * m4/eaccess.m4: Likewise. * m4/eealloc.m4: Likewise. * m4/environ.m4: Likewise. * m4/errno_h.m4: Likewise. * m4/euidaccess.m4: Likewise. * m4/execute.m4: Likewise. * m4/fatal-signal.m4: Likewise. * m4/fchdir.m4: Likewise. * m4/fcntl_h.m4: Likewise. * m4/fileblocks.m4: Likewise. * m4/filenamecat.m4: Likewise. * m4/findprog.m4: Likewise. * m4/flexmember.m4: Likewise. * m4/fnmatch.m4: Likewise. * m4/fopen.m4: Likewise. * m4/fpending.m4: Likewise. * m4/fprintf-posix.m4: Likewise. * m4/free.m4: Likewise. * m4/frexp.m4: Likewise. * m4/frexpl.m4: Likewise. * m4/fsusage.m4: Likewise. * m4/ftruncate.m4: Likewise. * m4/gc-camellia.m4: Likewise. * m4/gc-random.m4: Likewise. * m4/gc.m4: Likewise. * m4/getaddrinfo.m4: Likewise. * m4/getcwd-abort-bug.m4: Likewise. * m4/getcwd-path-max.m4: Likewise. * m4/getdate.m4: Likewise. * m4/getdomainname.m4: Likewise. * m4/getgroups.m4: Likewise. * m4/gethostname.m4: Likewise. * m4/gethrxtime.m4: Likewise. * m4/getline.m4: Likewise. * m4/getloadavg.m4: Likewise. * m4/getndelim2.m4: Likewise. * m4/getpass.m4: Likewise. * m4/gettext.m4: Likewise. * m4/gettime.m4: Likewise. * m4/gettimeofday.m4: Likewise. * m4/gnulib-common.m4: Likewise. * m4/group-member.m4: Likewise. * m4/host-os.m4: Likewise. * m4/iconv.m4: Likewise. * m4/iconv_open.m4: Likewise. * m4/inet_ntop.m4: Likewise. * m4/inet_pton.m4: Likewise. * m4/inline.m4: Likewise. * m4/intldir.m4: Likewise. * m4/intlmacosx.m4: Likewise. * m4/intmax.m4: Likewise. * m4/intmax_t.m4: Likewise. * m4/inttypes.m4: Likewise. * m4/inttypes_h.m4: Likewise. * m4/inttypes-pri.m4: Likewise. * m4/isapipe.m4: Likewise. * m4/isnand.m4: Likewise. * m4/isnanf.m4: Likewise. * m4/isnanl.m4: Likewise. * m4/javacomp.m4: Likewise. * m4/javaexec.m4: Likewise. * m4/jm-winsz1.m4: Likewise. * m4/jm-winsz2.m4: Likewise. * m4/lchown.m4: Likewise. * m4/lcmessage.m4: Likewise. * m4/ldexpl.m4: Likewise. * m4/lib-ld.m4: Likewise. * m4/lib-link.m4: Likewise. * m4/libsigsegv.m4: Likewise. * m4/link-follow.m4: Likewise. * m4/localcharset.m4: Likewise. * m4/locale-fr.m4: Likewise. * m4/locale-ja.m4: Likewise. * m4/locale-tr.m4: Likewise. * m4/locale-zh.m4: Likewise. * m4/lock.m4: Likewise. * m4/longlong.m4: Likewise. * m4/ls-mntd-fs.m4: Likewise. * m4/lstat.m4: Likewise. * m4/malloc.m4: Likewise. * m4/mathl.m4: Likewise. * m4/mbrtowc.m4: Likewise. * m4/mbstate_t.m4: Likewise. * m4/mbswidth.m4: Likewise. * m4/memchr.m4: Likewise. * m4/memcmp.m4: Likewise. * m4/memcpy.m4: Likewise. * m4/memmem.m4: Likewise. * m4/memmove.m4: Likewise. * m4/mempcpy.m4: Likewise. * m4/memrchr.m4: Likewise. * m4/memset.m4: Likewise. * m4/minmax.m4: Likewise. * m4/mkdir-slash.m4: Likewise. * m4/mkdtemp.m4: Likewise. * m4/mktime.m4: Likewise. * m4/mmap-anon.m4: Likewise. * m4/mountlist.m4: Likewise. * m4/nanosleep.m4: Likewise. * m4/nls.m4: Likewise. * m4/nocrash.m4: Likewise. * m4/open.m4: Likewise. * m4/openat.m4: Likewise. * m4/openmp.m4: Likewise. * m4/pathmax.m4: Likewise. * m4/perl.m4: Likewise. * m4/physmem.m4: Likewise. * m4/pipe.m4: Likewise. * m4/po.m4: Likewise. * m4/poll.m4: Likewise. * m4/posixtm.m4: Likewise. * m4/posixver.m4: Likewise. * m4/printf-frexp.m4: Likewise. * m4/printf-frexpl.m4: Likewise. * m4/printf-posix.m4: Likewise. * m4/printf-posix-rpl.m4: Likewise. * m4/printf.m4: Likewise. * m4/progtest.m4: Likewise. * m4/putenv.m4: Likewise. * m4/readline.m4: Likewise. * m4/readlink.m4: Likewise. * m4/readutmp.m4: Likewise. * m4/realloc.m4: Likewise. * m4/regex.m4: Likewise. * m4/relocatable.m4: Likewise. * m4/relocatable-lib.m4: Likewise. * m4/rename-dest-slash.m4: Likewise. * m4/rename.m4: Likewise. * m4/rmdir-errno.m4: Likewise. * m4/rmdir.m4: Likewise. * m4/roundf.m4: Likewise. * m4/roundl.m4: Likewise. * m4/rpmatch.m4: Likewise. * m4/save-cwd.m4: Likewise. * m4/selinux-selinux-h.m4: Likewise. * m4/setenv.m4: Likewise. * m4/settime.m4: Likewise. * m4/sig2str.m4: Likewise. * m4/sig_atomic_t.m4: Likewise. * m4/signalblocking.m4: Likewise. * m4/signbit.m4: Likewise. * m4/sigpipe.m4: Likewise. * m4/sockets.m4: Likewise. * m4/sockpfaf.m4: Likewise. * m4/st_dm_mode.m4: Likewise. * m4/stat-time.m4: Likewise. * m4/stdbool.m4: Likewise. * m4/stdint.m4: Likewise. * m4/stdint_h.m4: Likewise. * m4/stpcpy.m4: Likewise. * m4/stpncpy.m4: Likewise. * m4/strcase.m4: Likewise. * m4/strchrnul.m4: Likewise. * m4/strcspn.m4: Likewise. * m4/strdup.m4: Likewise. * m4/strftime.m4: Likewise. * m4/strndup.m4: Likewise. * m4/strnlen.m4: Likewise. * m4/strpbrk.m4: Likewise. * m4/strptime.m4: Likewise. * m4/strsep.m4: Likewise. * m4/strtod.m4: Likewise. * m4/strtoimax.m4: Likewise. * m4/strtok_r.m4: Likewise. * m4/strtol.m4: Likewise. * m4/strtoll.m4: Likewise. * m4/strtoul.m4: Likewise. * m4/strtoull.m4: Likewise. * m4/strtoumax.m4: Likewise. * m4/strverscmp.m4: Likewise. * m4/threadlib.m4: Likewise. * m4/timegm.m4: Likewise. * m4/tm_gmtoff.m4: Likewise. * m4/tmpdir.m4: Likewise. * m4/tmpfile.m4: Likewise. * m4/tzset.m4: Likewise. * m4/uintmax_t.m4: Likewise. * m4/unlinkdir.m4: Likewise. * m4/unlocked-io.m4: Likewise. * m4/uptime.m4: Likewise. * m4/userspec.m4: Likewise. * m4/utimbuf.m4: Likewise. * m4/utime.m4: Likewise. * m4/utimes-null.m4: Likewise. * m4/utimes.m4: Likewise. * m4/vararrays.m4: Likewise. * m4/vasnprintf.m4: Likewise. * m4/vfprintf-posix.m4: Likewise. * m4/vprintf-posix.m4: Likewise. * m4/wait-process.m4: Likewise. * m4/wchar_t.m4: Likewise. * m4/wint_t.m4: Likewise. * m4/write-any-file.m4: Likewise. * m4/yield.m4: Likewise. 2009-01-13 Bruno Haible Avoid test-copy-file.sh failures when ACL support insufficient. * modules/copy-file-tests (Makefile.am): Pass USE_ACL in TESTS_ENVIRONMENT. * tests/test-copy-file.sh: Skip the ACL comparisons if USE_ACL is 0. Reported by Jim Meyering. 2009-01-13 Bruno Haible * modules/unistdio/u-printf-args (Files): Add m4/stdint_h.m4 and m4/inttypes_h.m4, needed by m4/intmax_t.m4. * modules/unistdio/u8-printf-parse (Files): Likewise. * modules/unistdio/u32-printf-parse (Files): Likewise. * modules/unistdio/ulc-printf-parse (Files): Likewise. 2009-01-13 Simon Josefsson * modules/unistdio/u16-printf-parse (Files): Add m4/stdint_h.m4 and m4/inttypes_h.m4 too. 2009-01-12 Eric Blake tests: IRIX 6.2 cc can't compile -0.0 into .data * tests/test-ceill.c (minus_zero): Compute -0.0L at runtime, rather than at compile-time. * tests/test-floorl.c (minus_zero): Likewise. * tests/test-frexpl.c (minus_zero): Likewise. * tests/test-isnan.c (minus_zerol): Likewise. * tests/test-isnanl.h (minus_zero): Likewise. * tests/test-ldexpl.c (minus_zero): Likewise. * tests/test-roundl.c (minus_zero): Likewise. * tests/test-signbit.c (minus_zerol): Likewise. * tests/test-snprintf-posix.h (minus_zerol): Likewise. * tests/test-sprintf-posix.h (minus_zerol): Likewise. * tests/test-truncl.c (minus_zero): Likewise. * tests/test-vasnprintf-posix.c (minus_zerol): Likewise. * tests/test-vasprintf-posix.c (minus_zerol): Likewise. Reported by Tom G. Christensen and Nelson H. F. Beebe. 2009-01-09 Paolo Bonzini regex: fix glibc bug 9697 * lib/regcomp.c (re_compile_fastmap_iter): Rewrite COMPLEX_BRACKET handling. 2009-01-09 Paolo Bonzini regex: fix glibc bug 697 * lib/regexec.c (prune_impossible_nodes): Handle sifted_states[0] being NULL also if there are no backreferences. 2009-01-09 Paolo Bonzini regex: merge glibc changes * lib/regcomp.c (re_compile_fastmap_iter): Use __mbrtowc. * lib/regex_internal.c (build_wcs_buffer, build_wcs_upper_buffer, re_string_skip_chars, re_string_reconstruct): Likewise. * lib/regex_internal.h [!_LIBC] (__mbrtowc): New #define. 2009-01-07 Jim Meyering poll: filter through cppi * lib/poll.c: Indent cpp directives to reflect nesting. 2009-01-07 Daniel P. Berrange poll: don't return uninitialized * lib/poll.c (poll) [WIN32_NATIVE]: Initialize "rc". 2009-01-06 Jeremy Olexa (tiny change) avoid compile failure on AIX 6.1 * lib/getloadavg.c [HAVE_LIBPERFSTAT]: Include . Details in http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/15465 2009-01-04 Jim Meyering remove duplicate inclusion of * tests/test-fprintf-posix.c: Likewise. * tests/test-printf-posix.c: Likewise. * tests/test-snprintf-posix.c: Likewise. * tests/test-sprintf-posix.c: Likewise. * tests/test-vasprintf-posix.c: Likewise. * tests/test-vfprintf-posix.c: Likewise. * tests/test-vprintf-posix.c: Likewise. * tests/test-vsnprintf-posix.c: Likewise. * tests/test-vsprintf-posix.c: Likewise. 2009-01-03 Jim Meyering gnulib-tool: fix sed-based filtering * gnulib-tool (func_filter_filelist): Remove extra backslash in sed_fff_filter definition. 2009-01-02 Jim Meyering strftime: avoid compilation failure on Solaris 2.6 * modules/strftime (Depends-on): Add mbrlen and mbsinit. * lib/strftime.c [DO_MULTIBYTE]: Include unconditionally. Don't #define mbrlen or mbsinit, since now they're guaranteed to be available. Reported by Tom G. Christensen. Details in . 2009-01-01 Ralf Wildenhues Bruno Haible Speed up gnulib-tool by doing more string processing through shell built-ins. * gnulib-tool (fast_func_append): New variable. (func_remove_prefix, func_remove_suffix): New functions. (fast_func_remove_prefix, fast_func_remove_suffix): New variables. (func_filter_filelist): New function. (func_get_dependencies): Use func_remove_suffix instead of sed. (func_get_automake_snippet): Use func_filter_filelist instead of a subshell and sed invocation. 2009-01-01 Bruno Haible Fix a security bug. * gnulib-tool (func_import, import, update): Don't allow the characters '"', '$', '`', '\' in macro arguments that become part of commands that are evaluated. 2009-01-01 Bruno Haible * gnulib-tool (func_reset_sigpipe): Add more comments. 2009-01-01 Ralf Wildenhues * gnulib-tool (func_modules_add_dummy, func_emit_lib_Makefile_am, func_emit_tests_Makefile_am, func_import): Abort loops early if we already know the answer. 2009-01-01 Jim Meyering * lib/version-etc.c (version_etc_va): Update copyright year. 2008-12-30 Bruno Haible * m4/lib-prefix.m4 (AC_LIB_LINKFLAGS_BODY): Don't overwrite LIB${NAME}_PREFIX when considering the dependencies of lib${name}. Reported by Charles Wilson . 2008-12-29 Eric Blake multiarch: avoid autoconf AC_REQUIRE bug * m4/multiarch.m4 (gl_MULTIARCH): Split body... (gl_MULTIARCH_BODY): ...into new macro, to work around bug in Autoconf 2.63 and older. Reported by Bruno Haible, and analyzed in http://lists.gnu.org/r/bug-autoconf/2008-12/msg00039.html 2008-12-29 Bruno Haible * gnulib-tool (func_import): When generating sed-ignore-removed, handle files in subdirectories correctly. Reported by Ralf Wildenhues. 2008-12-29 Ralf Wildenhues * gnulib-tool (func_update_ignorelist): Use 'join - FILE' rather than 'join FILE -', for Solaris join. 2008-12-29 Bruno Haible * m4/codeset.m4 (AM_LANGINFO_CODESET): More systematic m4 argument quoting. * m4/gettext.m4 (AM_GNU_GETTEXT): Likewise. * m4/glibc2.m4 (gt_GLIBC2): Likewise. * m4/glibc21.m4 (gl_GLIBC21): Likewise. * m4/iconv.m4 (AM_ICONV_LINK, AM_ICONV): Likewise. * m4/intdiv0.m4 (gt_INTDIV0): Likewise. * m4/intlmacosx.m4 (gt_INTL_MACOSX): Likewise. * m4/intmax.m4 (gt_TYPE_INTMAX_T): Likewise. * m4/inttypes-pri.m4 (gt_INTTYPES_PRI): Likewise. * m4/inttypes_h.m4 (gl_AC_HEADER_INTTYPES_H): Likewise. * m4/lcmessage.m4 (gt_LC_MESSAGES): Likewise. * m4/nls.m4 (AM_NLS): Likewise. * m4/po.m4 (AM_PO_SUBDIRS): Likewise. * m4/printf-posix.m4 (gt_PRINTF_POSIX): Likewise. * m4/progtest.m4 (AM_PATH_PROG_WITH_TEST): Likewise. * m4/size_max.m4 (gl_SIZE_MAX): Likewise. * m4/stdint_h.m4 (gl_AC_HEADER_STDINT_H): Likewise. * m4/threadlib.m4 (gl_THREADLIB_BODY): Likewise. * m4/uintmax_t.m4 (gl_AC_TYPE_UINTMAX_T): Likewise. * m4/visibility.m4 (gl_VISIBILITY): Likewise. * m4/wchar_t.m4 (gt_TYPE_WCHAR_T): Likewise. * m4/wint_t.m4 (gt_TYPE_WINT_T): Likewise. * m4/xsize.m4 (gl_XSIZE): Likewise. Suggested by Jim Meyering. 2008-11-17 Bruce Korb * lib/parse-duration.h: non-iso form accepts years, months weeks, too * lib/parse-duration.c: use a switch instead of cascading if's. 2008-12-29 Eric Blake wchar.h: supply WEOF on Irix 5.3 * lib/wchar.in.h (wint_t): Also supply WEOF. * lib/wctype.in.h (wint_t): Likewise. * doc/posix-headers/wchar.texi (wchar.h): Document the bug. * doc/posix-headers/wctype.texi (wctype.h): Likewise. Reported by Tom G. Christensen. 2008-12-26 Bruno Haible * m4/multiarch.m4 (gl_MULTIARCH): Recognize also the architecture names i486, i586, i686. 2008-12-26 Bruno Haible * lib/stdlib.in.h (struct random_data): Fix indentation of comments. 2008-12-26 Bruno Haible * lib/stdint.in.h: Move the include of down until after all the types are defined. Also conditionalize it on __STDC_LIMIT_MACROS, not __STDC_CONSTANT_MACROS. Reported by Nelson H. F. Beebe via Eric Blake. 2008-12-25 Bruno Haible Add support for universal builds to vasnprintf. * m4/printf.m4 (gl_PRINTF_ENOMEM): Require gl_MULTIARCH. In Apple universal builds, guess no. * modules/vasnprintf-posix (Depends-on): Add multiarch. * modules/vasprintf-posix (Depends-on): Likewise. * modules/fprintf-posix (Depends-on): Likewise. * modules/vfprintf-posix (Depends-on): Likewise. * modules/snprintf-posix (Depends-on): Likewise. * modules/vsnprintf-posix (Depends-on): Likewise. * modules/sprintf-posix (Depends-on): Likewise. * modules/vsprintf-posix (Depends-on): Likewise. * modules/unistdio/u8-vasnprintf (Depends-on): Likewise. * modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/ulc-vasnprintf (Depends-on): Likewise. Add support for universal builds to . * lib/inttypes.in.h (_PRI64_PREFIX, _PRIu64_PREFIX, _SCN64_PREFIX, _SCNu64_PREFIX): In Apple universal builds, define directly, using _LP64. * m4/inttypes.m4 (gl_INTTYPES_H): In Apple universal builds, set INT64_MAX_EQ_LONG_MAX and UINT64_MAX_EQ_ULONG_MAX to -1. * modules/inttypes (Depends-on): Add multiarch. (Makefile.am): Substitute APPLE_UNIVERSAL_BUILD. Add support for universal builds to . * lib/stdint.in.h (PDFDIFF_MIN, PTRDIFF_MAX, SIZE_MAX): In Apple universal builds, define directly, using _LP64. * m4/stdint.m4 (gl_STDINT_TYPE_PROPERTIES): Require gl_MULTIARCH. In Apple universal builds, don't test for the size and suffix of ptrdiff_t and size_t. * modules/stdint (Depends-on): Add multiarch. (Makefile.am): Substitute APPLE_UNIVERSAL_BUILD. New module 'multiarch'. * modules/multiarch: New file. * m4/multiarch.m4: New file. 2008-12-25 Bruno Haible * gnulib-tool (func_create_testdir): Avoid failure of mv command. 2008-12-25 Bruno Haible * modules/btowc (License): Relicense under LGPLv2+. * modules/mbsinit (License): Likewise. * modules/mbrtowc (License): Likewise. * modules/wcrtomb (License): Likewise. * modules/streq (License): Likewise. Reported by David Lutterkort . 2008-12-23 Bruno Haible * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Fix conditional and comment. 2008-12-23 Bruno Haible Module getaddrinfo requires linking with $(GETADDRINFO_LIB). * m4/getaddrinfo.m4 (gl_GETADDRINFO): Put link options into GETADDRINFO_LIB, not in LIBS. * modules/getaddrinfo (Link): Set to $(GETADDRINFO_LIB). * modules/canon-host (Link): Likewise. * NEWS: Mention the change. * modules/getaddrinfo-tests (test_getaddrinfo_LDADD): Add the GETADDRINFO_LIB. 2008-12-22 Bruno Haible * doc/posix-functions/iswalnum_l.texi: Mention limitation of wchar_t. * doc/posix-functions/iswalpha_l.texi: Likewise. * doc/posix-functions/iswblank_l.texi: Likewise. * doc/posix-functions/iswcntrl_l.texi: Likewise. * doc/posix-functions/iswctype_l.texi: Likewise. * doc/posix-functions/iswdigit_l.texi: Likewise. * doc/posix-functions/iswgraph_l.texi: Likewise. * doc/posix-functions/iswlower_l.texi: Likewise. * doc/posix-functions/iswprint_l.texi: Likewise. * doc/posix-functions/iswpunct_l.texi: Likewise. * doc/posix-functions/iswspace_l.texi: Likewise. * doc/posix-functions/iswupper_l.texi: Likewise. * doc/posix-functions/iswxdigit_l.texi: Likewise. * doc/posix-functions/mbsnrtowcs.texi: Likewise. * doc/posix-functions/open_wmemstream.texi: Likewise. * doc/posix-functions/swscanf.texi: Likewise. * doc/posix-functions/towctrans_l.texi: Likewise. * doc/posix-functions/towlower.texi: Likewise. * doc/posix-functions/towlower_l.texi: Likewise. * doc/posix-functions/towupper.texi: Likewise. * doc/posix-functions/towupper_l.texi: Likewise. * doc/posix-functions/vfwprintf.texi: Likewise. * doc/posix-functions/vfwscanf.texi: Likewise. * doc/posix-functions/vswscanf.texi: Likewise. * doc/posix-functions/vwprintf.texi: Likewise. * doc/posix-functions/vwscanf.texi: Likewise. * doc/posix-functions/wcpcpy.texi: Likewise. * doc/posix-functions/wcpncpy.texi: Likewise. * doc/posix-functions/wcscasecmp.texi: Likewise. * doc/posix-functions/wcscasecmp_l.texi: Likewise. * doc/posix-functions/wcscoll_l.texi: Likewise. * doc/posix-functions/wcsdup.texi: Likewise. * doc/posix-functions/wcsncasecmp.texi: Likewise. * doc/posix-functions/wcsncasecmp_l.texi: Likewise. * doc/posix-functions/wcsnlen.texi: Likewise. * doc/posix-functions/wcsnrtombs.texi: Likewise. * doc/posix-functions/wcsxfrm_l.texi: Likewise. * doc/posix-functions/wctrans_l.texi: Likewise. * doc/posix-functions/wctype_l.texi: Likewise. * doc/glibc-functions/fgetwc_unlocked.texi: Likewise. * doc/glibc-functions/fgetws_unlocked.texi: Likewise. * doc/glibc-functions/fputwc_unlocked.texi: Likewise. * doc/glibc-functions/fputws_unlocked.texi: Likewise. * doc/glibc-functions/getwc_unlocked.texi: Likewise. * doc/glibc-functions/getwchar_unlocked.texi: Likewise. * doc/glibc-functions/putwc_unlocked.texi: Likewise. * doc/glibc-functions/putwchar_unlocked.texi: Likewise. * doc/glibc-functions/wcschrnul.texi: Likewise. * doc/glibc-functions/wcsftime_l.texi: Likewise. * doc/glibc-functions/wcstod_l.texi: Likewise. * doc/glibc-functions/wcstof_l.texi: Likewise. * doc/glibc-functions/wcstol_l.texi: Likewise. * doc/glibc-functions/wcstold_l.texi: Likewise. * doc/glibc-functions/wcstoll_l.texi: Likewise. * doc/glibc-functions/wcstoq.texi: Likewise. * doc/glibc-functions/wcstoul_l.texi: Likewise. * doc/glibc-functions/wcstoull_l.texi: Likewise. * doc/glibc-functions/wcstouq.texi: Likewise. * doc/glibc-functions/wmempcpy.texi: Likewise. 2008-12-22 Ingo Weinhold (tiny change) Eric Blake Paolo Bonzini Bruno Haible Make c-stack work on Haiku. * lib/c-stack.c (SA_ONSTACK): Define fallback. (c_stack_action): Use SA_ONSTACK flag. 2008-12-22 Bruno Haible * m4/locale-fr.m4 (gt_LOCALE_FR_UTF8): Treat Haiku like BeOS. 2008-12-22 Bruno Haible Work around mbrlen() bugs on AIX, HP-UX, OSF/1, Solaris. * m4/mbrlen.m4 (gl_FUNC_MBRLEN): Set REPLACE_MBRLEN if mbrtowc is being overridden. (gl_MBRLEN_INCOMPLETE_STATE, gl_MBRLEN_RETVAL, gl_MBRLEN_NUL_RETVAL): New macros. * lib/wchar.in.h (mbrlen): Override if REPLACE_MBRLEN is set. * m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_MBRLEN. * modules/wchar (Makefile.am): Substitute REPLACE_MBRLEN. * doc/posix-functions/mbrlen.texi: Mention the various platform bugs. 2008-12-22 Bruno Haible * m4/mbrtowc.m4 (gl_MBRTOWC_INCOMPLETE_STATE): Remove unused variable from test code. 2008-12-22 Eric Blake Avoid gcc warnings on cygwin. * lib/regex_internal.c (re_string_reconstruct) [!RE_ENABLE_I18N]: Avoid unused variable. * lib/regexec.c (check_arrival_add_next_nodes) [!RE_ENABLE_I18N]: Likewise. 2008-12-22 Bruno Haible Remove HAVE_MBRTOWC conditionals. * lib/mbscasecmp.c: Include mbuiter.h unconditionally. (mbscasecmp): Assume mbrtowc function. * lib/mbscasestr.c: Include mbuiter.h unconditionally. (knuth_morris_pratt_multibyte, mbscasestr): Assume mbrtowc function. * lib/mbschr.c: Include mbuiter.h unconditionally. (mbschr): Assume mbrtowc function. * lib/mbscspn.c: Include mbuiter.h unconditionally. (mbscspn): Assume mbrtowc function. * lib/mbslen.c: Include mbuiter.h unconditionally. (mbslen): Assume mbrtowc function. * lib/mbsncasecmp.c: Include mbuiter.h unconditionally. (mbsncasecmp): Assume mbrtowc function. * lib/mbsnlen.c: Include mbiter.h unconditionally. (mbsnlen): Assume mbrtowc function. * lib/mbspbrk.c: Include mbuiter.h unconditionally. (mbspbrk): Assume mbrtowc function. * lib/mbspcasecmp.c: Include mbuiter.h unconditionally. (mbspcasecmp): Assume mbrtowc function. * lib/mbsrchr.c: Include mbuiter.h unconditionally. (mbsrchr): Assume mbrtowc function. * lib/mbssep.c: Include mbuiter.h unconditionally. (mbssep): Assume mbrtowc function. * lib/mbsspn.c: Include mbuiter.h unconditionally. (mbsspn): Assume mbrtowc function. * lib/mbsstr.c: Include mbuiter.h unconditionally. (knuth_morris_pratt_multibyte, mbsstr): Assume mbrtowc function. * lib/mbstok_r.c: Include mbuiter.h unconditionally. (mbstok_r): Assume mbrtowc function. * lib/propername.c: Include mbuiter.h unconditionally. (mbsstr_trimmed_wordbounded): Assume mbrtowc function. * lib/trim.c: Include mbchar.h, mbiter.h unconditionally. (trim2): Assume mbrtowc function. * lib/mbswidth.c (mbsinit): Remove fallback definition. (mbsnwidth): Assume mbrtowc function. * modules/mbswidth (Depends-on): Add mbrtowc, mbsinit. * lib/quotearg.c (MB_CUR_MAX, mbstate_t, mbrtowc, iswprint): Remove fallback definitions. * modules/quotearg (Depends-on): Add mbrtowc, mbsinit. 2008-12-22 Bruno Haible * doc/posix-functions/mbtowc.texi: Mention a glibc bug. 2008-12-22 Paolo Bonzini * modules/regex: Request emulations for the mb*/wc* functions we need. * m4/regex.m4: Don't look for those functions here. * lib/regex_internal.h: Do not check HAVE_WCRTOMB and HAVE_MBRTOWC. 2008-12-22 Bruno Haible * modules/fnmatch (Depends-on): Remove duplicated dependency. 2008-12-21 Bruno Haible Make mbiter.h, mbuiter.h, mbfile.h usable unconditionally. * modules/mbiter (Depends-on): Add mbrtowc, mbsinit. (Include): Remove conditionalization. * modules/mbuiter (Depends-on): Add mbrtowc, mbsinit. (Include): Remove conditionalization. * modules/mbfile (Depends-on): Add mbrtowc, mbsinit. (Include): Remove conditionalization. * m4/mbiter.m4 (gl_MBITER): Deprecate the use of AC_FUNC_MBRTOWC. * m4/mbfile.m4 (gl_MBFILE): Likewise. * NEWS: Mention the change. Reported by Alan Hourihane via Sergey Poznyakoff . 2008-12-21 Bruno Haible * MODULES.html.sh (Extended multibyte and wide character utilities ): Add btowc, wctob, mbsinit, mbrlen, mbrtowc, mbsrtowcs, wcrtomb, wcsrtombs. (Support for systems lacking POSIX:2008): Add accept, bind, close, connect, fclose, getpeername, getsockname, getsockopt, hostent, listen, mbsnrtowcs, posix_spawn*, recv, recvfrom, sched, select, send, sendto, setsockopt, shutdown, socket, spawn, sys_wait, wcsnrtombs, write. 2008-12-21 Bruno Haible * MODULES.html.sh: Change section titles to refer to POSIX:2008. 2008-12-21 Bruno Haible * modules/wcsnrtombs-tests: New file. * tests/test-wcsnrtombs1.sh: New file. * tests/test-wcsnrtombs2.sh: New file. * tests/test-wcsnrtombs3.sh: New file. * tests/test-wcsnrtombs4.sh: New file. * tests/test-wcsnrtombs.c: New file. New module 'wcsnrtombs'. * lib/wchar.in.h (wcsnrtombs): New declaration. * lib/wcsnrtombs.c: New file. * lib/wcsrtombs-state.c: New file. * lib/wcsrtombs.c: Refer to _gl_wcsrtombs_state. (internal_state): Remove variable. * m4/wcsnrtombs.m4: New file. * m4/wcsrtombs.m4 (gl_FUNC_WCSRTOMBS): Add wcsrtombs-state.c to the compilation units. * m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSNRTOMBS, HAVE_WCSNRTOMBS. * modules/wchar (Makefile.am): Substitute GNULIB_WCSNRTOMBS, HAVE_WCSNRTOMBS. * modules/wcsnrtombs: New file. * modules/wcsrtombs (Files): Add lib/wcsrtombs-state.c. * doc/posix-functions/wcsnrtombs.texi: Mention the new module. 2008-12-21 Bruno Haible * modules/wcsrtombs-tests: New file. * tests/test-wcsrtombs1.sh: New file. * tests/test-wcsrtombs2.sh: New file. * tests/test-wcsrtombs3.sh: New file. * tests/test-wcsrtombs4.sh: New file. * tests/test-wcsrtombs.c: New file. New module 'wcsrtombs'. * lib/wchar.in.h (wcsrtombs): New declaration. * lib/wcsrtombs.c: New file. * m4/wcsrtombs.m4: New file. * m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSRTOMBS, HAVE_WCSRTOMBS, REPLACE_WCSRTOMBS. * modules/wchar (Makefile.am): Substitute GNULIB_WCSRTOMBS, HAVE_WCSRTOMBS, REPLACE_WCSRTOMBS. * modules/wcsrtombs: New file. * doc/posix-functions/wcsrtombs.texi: Mention the new module and the bugs. 2008-12-21 Bruno Haible Work around a wcrtomb() bug on Solaris 10 and OSF/1 5.1. * lib/wchar.in.h (wcrtomb): Override if REPLACE_WCRTOMB is set. * m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Test the return value of wcrtomb with NULL destination argument in various locales. Set REPLACE_WCRTOMB if not correct. * m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WCRTOMB. * modules/wchar (Makefile.am): Substitute REPLACE_WCRTOMB. * modules/wcrtomb (Files): Add m4/locale-fr.m4, m4/locale-ja.m4, m4/locale-zh.m4, m4/codeset.m4. * doc/posix-functions/wcrtomb.texi: Document the bug. 2008-12-21 Bruno Haible Work around a btowc() bug on IRIX 6.5. * lib/wchar.in.h (btowc): Override if REPLACE_BTOWC is set. * m4/btowc.m4 (gl_FUNC_BTOWC): Test whether btowc(EOF) is correct. Set REPLACE_WTOBC if not. * m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_BTOWC. * modules/wchar (Makefile.am): Substitute REPLACE_BTOWC. * doc/posix-functions/btowc.texi: Mention the IRIX bug. 2008-12-21 Bruno Haible * modules/wcrtomb-tests: New file. * tests/test-wcrtomb.sh: New file. * tests/test-wcrtomb.c: New file. New module 'wcrtomb'. * lib/wchar.in.h (wcrtomb): New declaration. * lib/wcrtomb.c: New file. * m4/wcrtomb.m4: New file. * m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCRTOMB, HAVE_WCRTOMB. * modules/wchar (Makefile.am): Substitute GNULIB_WCRTOMB, HAVE_WCRTOMB. * modules/wcrtomb: New file. * doc/posix-functions/wcrtomb.texi: Mention the new module. 2008-12-21 Bruno Haible * modules/mbrtowc (Files): Add m4/codeset.m4, needed by m4/locale-fr.m4. * modules/mbsrtowcs (Files): Likewise. * modules/wctob (Files): Likewise. * modules/c-strcase-tests (Files): Likewise. * modules/unistdio/u8-vasnprintf-tests (Files): Likewise. * modules/unistdio/u16-vasnprintf-tests (Files): Likewise. * modules/unistdio/u32-vasnprintf-tests (Files): Likewise. * modules/unistdio/ulc-vasnprintf-tests (Files): Likewise. * modules/vasnprintf-posix-tests (Files): Likewise. 2008-12-21 William Pursell gitlog-to-changelog: pass all command-line arguments to git-log * build-aux/gitlog-to-changelog: When producing a ChangeLog, it is sometimes convenient to filter the commits in various ways. gitlog-to-changelog only allows --since to specify a start date, but git-log itself supports many other filtering mechanisms. At the moment, I want to filter by branch name. Rather than adding a --branch option to gitlog-to-changelog, it seems more flexible to simply pass all options directly to git-log and let git do the work. Notice that this effectively makes --since a redundant option for gitlog-to-changelog, but removing it would require current usage to change since calls would then require an additional '--'. 2008-12-21 Bruno Haible * modules/mbsnrtowcs-tests: New file. * tests/test-mbsnrtowcs1.sh: New file. * tests/test-mbsnrtowcs2.sh: New file. * tests/test-mbsnrtowcs3.sh: New file. * tests/test-mbsnrtowcs4.sh: New file. * tests/test-mbsnrtowcs.c: New file. New module 'mbsnrtowcs'. * lib/wchar.in.h (mbsnrtowcs): New declaration. * lib/mbsnrtowcs.c: New file. * lib/mbsrtowcs-state.c: New file. * lib/mbsrtowcs.c: Refer to _gl_mbsrtowcs_state. (internal_state): Remove variable. * m4/mbsnrtowcs.m4: New file. * m4/mbsrtowcs.m4 (gl_FUNC_MBSRTOWCS): Add mbsrtowcs-state.c to the compilation units. * m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_MBSNRTOWCS, HAVE_MBSNRTOWCS, REPLACE_MBSNRTOWCS. * modules/wchar (Makefile.am): Substitute GNULIB_MBSNRTOWCS, HAVE_MBSNRTOWCS, REPLACE_MBSNRTOWCS. * modules/mbsnrtowcs: New file. * modules/mbsrtowcs (Files): Add lib/mbsrtowcs-state.c. * doc/posix-functions/mbsnrtowcs.texi: Mention the new module and a portability problem. 2008-12-21 Bruno Haible Work around mbsrtowcs bug. * m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): New macro. (gl_FUNC_MBSRTOWCS): Invoke it. * modules/mbsrtowcs (Files): Add m4/locale-fr.m4, m4/locale-ja.m4, m4/locale-zh.m4. * doc/posix-functions/mbsrtowcs.texi: Document the bug. 2008-12-21 Bruno Haible * tests/test-mbsrtowcs.c (main): Execute the loop also for unlimited=1. 2008-12-21 Bruno Haible Update doc for AIX. * doc/pastposix-functions/wcswcs.texi: Mention that AIX has only a 16-bit wchar_t type. * doc/posix-functions/btowc.texi: Likewise. * doc/posix-functions/fgetwc.texi: Likewise. * doc/posix-functions/fgetws.texi: Likewise. * doc/posix-functions/fputwc.texi: Likewise. * doc/posix-functions/fputws.texi: Likewise. * doc/posix-functions/fwide.texi: Likewise. * doc/posix-functions/fwprintf.texi: Likewise. * doc/posix-functions/fwscanf.texi: Likewise. * doc/posix-functions/getwchar.texi: Likewise. * doc/posix-functions/getwc.texi: Likewise. * doc/posix-functions/iswalnum.texi: Likewise. * doc/posix-functions/iswalpha.texi: Likewise. * doc/posix-functions/iswblank.texi: Likewise. * doc/posix-functions/iswcntrl.texi: Likewise. * doc/posix-functions/iswctype.texi: Likewise. * doc/posix-functions/iswdigit.texi: Likewise. * doc/posix-functions/iswgraph.texi: Likewise. * doc/posix-functions/iswlower.texi: Likewise. * doc/posix-functions/iswprint.texi: Likewise. * doc/posix-functions/iswpunct.texi: Likewise. * doc/posix-functions/iswspace.texi: Likewise. * doc/posix-functions/iswupper.texi: Likewise. * doc/posix-functions/iswxdigit.texi: Likewise. * doc/posix-functions/mbrtowc.texi: Likewise. * doc/posix-functions/mbsrtowcs.texi: Likewise. * doc/posix-functions/mbstowcs.texi: Likewise. * doc/posix-functions/mbtowc.texi: Likewise. * doc/posix-functions/putwchar.texi: Likewise. * doc/posix-functions/putwc.texi: Likewise. * doc/posix-functions/swprintf.texi: Likewise. * doc/posix-functions/tolower.texi: Likewise. * doc/posix-functions/toupper.texi: Likewise. * doc/posix-functions/towctrans.texi: Likewise. * doc/posix-functions/ungetwc.texi: Likewise. * doc/posix-functions/vswprintf.texi: Likewise. * doc/posix-functions/wcrtomb.texi: Likewise. * doc/posix-functions/wcscat.texi: Likewise. * doc/posix-functions/wcschr.texi: Likewise. * doc/posix-functions/wcscmp.texi: Likewise. * doc/posix-functions/wcscoll.texi: Likewise. * doc/posix-functions/wcscpy.texi: Likewise. * doc/posix-functions/wcscspn.texi: Likewise. * doc/posix-functions/wcsftime.texi: Likewise. * doc/posix-functions/wcslen.texi: Likewise. * doc/posix-functions/wcsncat.texi: Likewise. * doc/posix-functions/wcsncmp.texi: Likewise. * doc/posix-functions/wcsncpy.texi: Likewise. * doc/posix-functions/wcspbrk.texi: Likewise. * doc/posix-functions/wcsrchr.texi: Likewise. * doc/posix-functions/wcsrtombs.texi: Likewise. * doc/posix-functions/wcsspn.texi: Likewise. * doc/posix-functions/wcsstr.texi: Likewise. * doc/posix-functions/wcstod.texi: Likewise. * doc/posix-functions/wcstof.texi: Likewise. * doc/posix-functions/wcstoimax.texi: Likewise. * doc/posix-functions/wcstok.texi: Likewise. * doc/posix-functions/wcstold.texi: Likewise. * doc/posix-functions/wcstoll.texi: Likewise. * doc/posix-functions/wcstol.texi: Likewise. * doc/posix-functions/wcstombs.texi: Likewise. * doc/posix-functions/wcstoull.texi: Likewise. * doc/posix-functions/wcstoul.texi: Likewise. * doc/posix-functions/wcstoumax.texi: Likewise. * doc/posix-functions/wcswidth.texi: Likewise. * doc/posix-functions/wcsxfrm.texi: Likewise. * doc/posix-functions/wctob.texi: Likewise. * doc/posix-functions/wctomb.texi: Likewise. * doc/posix-functions/wctrans.texi: Likewise. * doc/posix-functions/wctype.texi: Likewise. * doc/posix-functions/wcwidth.texi: Likewise. * doc/posix-functions/wmemchr.texi: Likewise. * doc/posix-functions/wmemcmp.texi: Likewise. * doc/posix-functions/wmemcpy.texi: Likewise. * doc/posix-functions/wmemmove.texi: Likewise. * doc/posix-functions/wmemset.texi: Likewise. * doc/posix-functions/wprintf.texi: Likewise. * doc/posix-functions/wscanf.texi: Likewise. 2008-12-21 Bruno Haible Update doc for HP-UX 11.11. * doc/posix-functions/btowc.texi: Clarify that the function is missing in HP-UX version 11.00, not in all versions of HP-UX 11. * doc/posix-functions/fwide.texi: Likewise. * doc/posix-functions/fwprintf.texi: Likewise. * doc/posix-functions/fwscanf.texi: Likewise. * doc/posix-functions/inet_ntop.texi: Likewise. * doc/posix-functions/inet_pton.texi: Likewise. * doc/posix-functions/mbrlen.texi: Likewise. * doc/posix-functions/mbrtowc.texi: Likewise. * doc/posix-functions/mbsinit.texi: Likewise. * doc/posix-functions/mbsrtowcs.texi: Likewise. * doc/posix-functions/swprintf.texi: Likewise. * doc/posix-functions/swscanf.texi: Likewise. * doc/posix-functions/towctrans.texi: Likewise. * doc/posix-functions/vfwprintf.texi: Likewise. * doc/posix-functions/vswprintf.texi: Likewise. * doc/posix-functions/vwprintf.texi: Likewise. * doc/posix-functions/wcrtomb.texi: Likewise. * doc/posix-functions/wcsrtombs.texi: Likewise. * doc/posix-functions/wcsstr.texi: Likewise. * doc/posix-functions/wctob.texi: Likewise. * doc/posix-functions/wctrans.texi: Likewise. * doc/posix-functions/wmemchr.texi: Likewise. * doc/posix-functions/wmemcmp.texi: Likewise. * doc/posix-functions/wmemcpy.texi: Likewise. * doc/posix-functions/wmemmove.texi: Likewise. * doc/posix-functions/wmemset.texi: Likewise. * doc/posix-functions/wprintf.texi: Likewise. * doc/posix-functions/wscanf.texi: Likewise. 2008-12-21 Bruno Haible Work around a portability problem. * tests/test-mbsrtowcs.c (main): Use a temporary conversion state. * doc/posix-functions/mbsrtowcs.texi: Document the portability problem. 2008-12-20 Bruno Haible * lib/wchar.in.h (mbsrtowcs): Redefine if REPLACE_MBSRTOWCS is set. * m4/mbsrtowcs.m4 (gl_FUNC_MBSRTOWCS): Invoke gl_MBSTATE_T_BROKEN. Set REPLACE_MBSRTOWCS if mbsrtowcs needs to be overridden. * m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_MBSRTOWCS. * modules/wchar (Makefile.am): Substitute REPLACE_MBSRTOWCS. Work around mbrtowc bugs on AIX, HP-UX, OSF/1, Solaris. * lib/wchar.in.h (mbstate_t): Redefine also if REPLACE_MBSTATE_T is set. (GNULIB_defined_mbstate_t): New macro. (mbsinit): Redefine if REPLACE_MBSINIT is set. (mbrtowc): Redefine if REPLACE_MBRTOWC is set. * lib/mbrtowc.c (rpl_mbrtowc): Add an alternative implementation that reuses the system's mbrtowc function but works around the bugs. * m4/mbrtowc.m4 (gl_MBSTATE_T_BROKEN, gl_MBRTOWC_INCOMPLETE_STATE, gl_MBRTOWC_NULL_ARG, gl_MBRTOWC_RETVAL, gl_MBRTOWC_NUL_RETVAL): New macros. (gl_FUNC_MBRTOWC): Invoke them. Set REPLACE_MBRTOWC if mbrtowc needs to be overridden. Optionally define MBRTOWC_NULL_ARG_BUG, MBRTOWC_RETVAL_BUG, MBRTOWC_NUL_RETVAL_BUG. * m4/mbsinit.m4 (gl_FUNC_MBSINIT): Invoke gl_MBSTATE_T_BROKEN. Set REPLACE_MBSINIT if mbsinit needs to be overridden. * m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_MBSTATE_T, REPLACE_MBSINIT, REPLACE_MBRTOWC. * modules/wchar (Makefile.am): Substitute REPLACE_MBSTATE_T, REPLACE_MBSINIT, REPLACE_MBRTOWC. * modules/mbrtowc (Files): Add m4/locale-fr.m4, m4/locale-ja.m4, m4/locale-zh.m4. (Depends): Add mbsinit. * modules/mbsinit (Depends): Add mbrtowc. * doc/posix-functions/mbrtowc.texi: Mention the various bugs. 2008-12-20 Bruno Haible * tests/test-mbrtowc.c (main): Change sample string in EUC-JP encoding so that there are no conversion errors on AIX. * tests/test-mbsrtowcs.c (main): LIkewise. 2008-12-20 Bruno Haible Work around wctob bug on Solaris <= 9. * lib/wchar.in.h (wctob): Redefine if REPLACE_WCTOB is set. * m4/wctob.m4 (gl_FUNC_WCTOB): Test whether wctob works. * m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize REPLACE_WCTOB. * modules/wchar (Makefile.am): Substitute REPLACE_WCTOB. * modules/wctob (Files): Add m4/locale-fr.m4. * doc/posix-functions/wctob.texi: Mention the Solaris bug. 2008-12-20 Bruno Haible * doc/posix-functions/select.texi: Mention Solaris 2.6 bug with /dev/null. * tests/test-select-in.sh: Likewise. Reported by Tom G. Christensen . 2008-12-20 Bruno Haible Don't pretend that Cygwin has a ja_JP.EUC-JP locale. * m4/locale-ja.m4 (gt_LOCALE_JA): Add test for MB_CUR_MAX. Needed on Cygwin 1.5.x. 2008-12-20 Bruno Haible Ensure mbstate_t is defined on HP-UX 11.11. * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Require AC_CANONICAL_HOST. On HP-UX, define _XOPEN_SOURCE to 500. * m4/mbstate_t.m4 (AC_TYPE_MBSTATE_T): Require AC_USE_SYSTEM_EXTENSIONS. * modules/fnmatch (Depends-on): Add extensions. * modules/mbrlen (Depends-on): Likewise. * modules/mbrtowc (Depends-on): Likewise. * modules/mbsinit (Depends-on): Likewise. * modules/mbsrtowcs (Depends-on): Likewise. * modules/mbswidth (Depends-on): Likewise. * modules/quotearg (Depends-on): Likewise. * modules/strftime (Depends-on): Likewise. 2008-12-20 Bruno Haible Ensure wctob is declared on IRIX 6.5. * lib/wchar.in.h (wctob): Declare also when HAVE_DECL_WCTOB is 0. * m4/wctob.m4 (gl_FUNC_WCTOB): Set HAVE_DECL_WCTOB instead of HAVE_WCTOB. Also test whether declares wctob. * m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize HAVE_DECL_WCTOB instead of HAVE_WCTOB. * modules/wchar (Makefile.am): Substitute HAVE_DECL_WCTOB instead of HAVE_WCTOB. * doc/posix-functions/wctob.texi: Mention missing declaration on IRIX. 2008-12-19 Bruno Haible * modules/mbsrtowcs-tests: New file. * tests/test-mbsrtowcs1.sh: New file. * tests/test-mbsrtowcs2.sh: New file. * tests/test-mbsrtowcs3.sh: New file. * tests/test-mbsrtowcs4.sh: New file. * tests/test-mbsrtowcs.c: New file. New module 'mbsrtowcs'. * lib/wchar.in.h (mbsrtowcs): New declaration. * lib/mbsrtowcs.c: New file. * m4/mbsrtowcs.m4: New file. * modules/mbsrtowcs: New file. * m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_MBSRTOWCS and HAVE_MBSRTOWCS. * modules/wchar (Makefile.am): Substitute GNULIB_MBSRTOWCS and HAVE_MBSRTOWCS. * doc/posix-functions/mbsrtowcs.texi: Document the new module. 2008-12-19 Bruno Haible New module 'mbrlen'. * lib/wchar.in.h (mbrlen): New declaration. * lib/mbrlen.c: New file. * m4/mbrlen.m4: New file. * modules/mbrlen: New file. * m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_MBRLEN and HAVE_MBRLEN. * modules/wchar (Makefile.am): Substitute GNULIB_MBRLEN and HAVE_MBRLEN. * doc/posix-functions/mbrlen.texi: Document the new module. 2008-12-19 Bruno Haible * lib/mbrtowc.c: Include verify.h. Verify an assumption. * modules/mbrtowc (Depends-on): Add verify. Suggested by Paul Eggert. 2008-12-18 Bruno Haible * modules/mbsinit-tests: New file. * tests/test-mbsinit.sh: New file. * tests/test-mbsinit.c: New file. 2008-12-18 Bruno Haible * modules/mbrtowc-tests: New file. * tests/test-mbrtowc1.sh: New file. * tests/test-mbrtowc2.sh: New file. * tests/test-mbrtowc3.sh: New file. * tests/test-mbrtowc4.sh: New file. * tests/test-mbrtowc.c: New file. New module 'mbrtowc'. * lib/wchar.in.h (mbstate_t): Override when the system does not have mbsinit and mbrtowc. (mbrtowc): New declaration. * lib/mbrtowc.c: New file. * m4/mbrtowc.m4 (gl_FUNC_MBRTOWC, gl_PREREQ_MBRTOWC): New macros. * modules/mbrtowc: New file. * m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_MBRTOWC and HAVE_MBRTOWC. * modules/wchar (Makefile.am): Substitute GNULIB_MBRTOWC and HAVE_MBRTOWC. * doc/posix-functions/mbrtowc.texi: Document the new module. 2008-12-18 Bruno Haible New module 'wctob'. * lib/wchar.in.h (wctob): New declaration. * lib/wctob.c: New file. * m4/wctob.m4: New file. * modules/wctob: New file. * m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCTOB and HAVE_WCTOB. * modules/wchar (Makefile.am): Substitute GNULIB_WCTOB and HAVE_WCTOB. * doc/posix-functions/wctob.texi: Document the new module. 2008-12-18 Bruno Haible * m4/mbsinit.m4 (gl_FUNC_MBSINIT): Invoke gl_REPLACE_WCHAR_H. * m4/btowc.m4 (gl_FUNC_BTOWC): Likewise. 2008-12-18 Simon Josefsson * lib/flock.c: Use proper #if symbol in check. Reported by "Tom G. Christensen" . * lib/flock.c: Need to include errno.h. Reported by "Tom G. Christensen" . * lib/flock.c: Need to include string.h. Reported by "Tom G. Christensen" and Eric Blake . 2008-12-18 Bruno Haible * m4/locale-ja.m4: New file, from GNU gettext. 2008-12-17 Bruno Haible * m4/mbrtowc.m4 (AC_FUNC_MBRTOWC): Don't override in autoconf >= 2.60. Suggested by Eric Blake. 2008-12-17 Bruno Haible * m4/errno_h.m4 (AC_COMPUTE_INT): Provide fallback definition. 2008-12-17 Bruno Haible * lib/mbsinit.c: Include verify.h. Verify an assumption. * modules/mbsinit (Depends-on): Add verify. Suggested by Paul Eggert. 2008-12-17 Bruno Haible * m4/mbrtowc.m4 (AC_FUNC_MBRTOWC): Renamed from gl_FUNC_MBRTOWC. * m4/mbfile.m4 (gl_MBFILE): Use AC_FUNC_MBRTOWC instead of gl_FUNC_MBRTOWC. * m4/mbiter.m4 (gl_MBITER): LIkewise. * m4/mbscasecmp.m4 (gl_PREREQ_MBSCASECMP): Likewise. * m4/mbscasestr.m4 (gl_PREREQ_MBSCASESTR): Likewise. * m4/mbschr.m4 (gl_PREREQ_MBSCHR): Likewise. * m4/mbscspn.m4 (gl_PREREQ_MBSCSPN): Likewise. * m4/mbslen.m4 (gl_PREREQ_MBSLEN): Likewise. * m4/mbsncasecmp.m4 (gl_PREREQ_MBSNCASECMP): Likewise. * m4/mbsnlen.m4 (gl_PREREQ_MBSNLEN): Likewise. * m4/mbspbrk.m4 (gl_PREREQ_MBSPBRK): Likewise. * m4/mbspcasecmp.m4 (gl_PREREQ_MBSPCASECMP): Likewise. * m4/mbsrchr.m4 (gl_PREREQ_MBSRCHR): Likewise. * m4/mbssep.m4 (gl_PREREQ_MBSSEP): Likewise. * m4/mbsspn.m4 (gl_PREREQ_MBSSPN): Likewise. * m4/mbsstr.m4 (gl_PREREQ_MBSSTR): Likewise. * m4/mbstok_r.m4 (gl_PREREQ_MBSTOK_R): Likewise. * m4/mbswidth.m4 (gl_MBSWIDTH): Likewise. * m4/quotearg.m4 (gl_QUOTEARG): Likewise. * modules/trim (configure.ac): Likewise. 2008-12-17 Bruno Haible * modules/btowc-tests: New file. * tests/test-btowc1.sh: New file. * tests/test-btowc2.sh: New file. * tests/test-btowc.c: New file. New module 'btowc'. * lib/wchar.in.h (btowc): New declaration. * lib/btowc.c: New file. * m4/btowc.m4: New file. * modules/btowc: New file. * m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_BTOWC and HAVE_BTOWC. * modules/wchar (Makefile.am): Substitute GNULIB_BTOWC and HAVE_BTOWC. * doc/posix-functions/btowc.texi: Document the new module. 2008-12-17 Bruno Haible New module 'mbsinit'. * lib/wchar.in.h (mbsinit): New declaration. * lib/mbsinit.c: New file. * m4/mbsinit.m4: New file. * modules/mbsinit: New file. * m4/wchar.m4 (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_MBSINIT and HAVE_MBSINIT. * modules/wchar (Makefile.am): Substitute GNULIB_MBSINIT and HAVE_MBSINIT. * doc/posix-functions/mbsinit.texi: Document the new module. 2008-12-16 Bruno Haible * lib/unistd.in.h: Add comment. * tests/test-environ.c: Don't include . 2008-12-16 Bruno Haible * lib/parse-duration.h (parse_duration): Document return value convention. * lib/parse-duration.c: Include specification header first. Add comments. (_): Remove macro. (parse_year_month_day, parse_hour_minute_second): Move side effects outside of strchr call. (parse_non_iso8601): Move side effects outside of isspace call. (parse_duration): Don't test errno is res != BAD_TIME. Remove fprintf call. 2008-12-16 Bruno Haible * tests/test-parse-duration.sh: Produce no output when the test succeeds. 2008-12-16 Bruno Haible * tests/test-parse-duration.sh: Fix quoting of $tmp and $tmpf expressions. 2008-12-15 Bruno Haible * doc/glibc-functions/fgetxattr.texi: Tweak wording. * doc/glibc-functions/flistxattr.texi: Likewise. * doc/glibc-functions/fopencookie.texi: Likewise. * doc/glibc-functions/fremovexattr.texi: Likewise. * doc/glibc-functions/fsetxattr.texi: Likewise. * doc/glibc-functions/getxattr.texi: Likewise. * doc/glibc-functions/lgetxattr.texi: Likewise. * doc/glibc-functions/listxattr.texi: Likewise. * doc/glibc-functions/llistxattr.texi: Likewise. * doc/glibc-functions/lremovexattr.texi: Likewise. * doc/glibc-functions/lsetxattr.texi: Likewise. * doc/glibc-functions/removexattr.texi: Likewise. * doc/glibc-functions/setxattr.texi: Likewise. * doc/posix-functions/open_memstream.texi: Likewise. 2008-12-15 Eric Blake Update doc for cygwin 1.7. * doc/posix-functions/faccessat.texi: Cygwin 1.7 added several new functions. * doc/posix-functions/fchmodat.texi: Likewise. * doc/posix-functions/fchownat.texi: Likewise. * doc/posix-functions/fdopendir.texi: Likewise. * doc/posix-functions/fmemopen.texi: Likewise. * doc/posix-functions/freeaddrinfo.texi: Likewise. * doc/posix-functions/fstatat.texi: Likewise. * doc/posix-functions/futimens.texi: Likewise. * doc/posix-functions/gai_strerror.texi: Likewise. * doc/posix-functions/getaddrinfo.texi: Likewise. * doc/posix-functions/getnameinfo.texi: Likewise. * doc/posix-functions/if_freenameindex.texi: Likewise. * doc/posix-functions/if_indextoname.texi: Likewise. * doc/posix-functions/if_nameindex.texi: Likewise. * doc/posix-functions/if_nametoindex.texi: Likewise. * doc/posix-functions/insque.texi: Likewise. * doc/posix-functions/linkat.texi: Likewise. * doc/posix-functions/llrint.texi: Likewise. * doc/posix-functions/llrintf.texi: Likewise. * doc/posix-functions/llrintl.texi: Likewise. * doc/posix-functions/lockf.texi: Likewise. * doc/posix-functions/lrintl.texi: Likewise. * doc/posix-functions/mkdirat.texi: Likewise. * doc/posix-functions/mkfifoat.texi: Likewise. * doc/posix-functions/mknodat.texi: Likewise. * doc/posix-functions/mq_close.texi: Likewise. * doc/posix-functions/mq_getattr.texi: Likewise. * doc/posix-functions/mq_notify.texi: Likewise. * doc/posix-functions/mq_open.texi: Likewise. * doc/posix-functions/mq_receive.texi: Likewise. * doc/posix-functions/mq_send.texi: Likewise. * doc/posix-functions/mq_setattr.texi: Likewise. * doc/posix-functions/mq_timedreceive.texi: Likewise. * doc/posix-functions/mq_timedsend.texi: Likewise. * doc/posix-functions/mq_unlink.texi: Likewise. * doc/posix-functions/open_memstream.texi: Likewise. * doc/posix-functions/openat.texi: Likewise. * doc/posix-functions/posix_fadvise.texi: Likewise. * doc/posix-functions/posix_fallocate.texi: Likewise. * doc/posix-functions/posix_madvise.texi: Likewise. * doc/posix-functions/posix_memalign.texi: Likewise. * doc/posix-functions/posix_openpt.texi: Likewise. * doc/posix-functions/readlinkat.texi: Likewise. * doc/posix-functions/remque.texi: Likewise. * doc/posix-functions/renameat.texi: Likewise. * doc/posix-functions/rintl.texi: Likewise. * doc/posix-functions/sem_unlink.texi: Likewise. * doc/posix-functions/shm_open.texi: Likewise. * doc/posix-functions/shm_unlink.texi: Likewise. * doc/posix-functions/signgam.texi: Likewise. * doc/posix-functions/sigset.texi: Likewise. * doc/posix-functions/stpcpy.texi: Likewise. * doc/posix-functions/stpncpy.texi: Likewise. * doc/posix-functions/strerror.texi: Likewise. * doc/posix-functions/strtod.texi: Likewise. * doc/posix-functions/symlinkat.texi: Likewise. * doc/posix-functions/unlinkat.texi: Likewise. * doc/posix-functions/utimensat.texi: Likewise. * doc/glibc-functions/bindresvport.texi: Likewise. * doc/glibc-functions/dn_expand.texi: Likewise. * doc/glibc-functions/exp10.texi: Likewise. * doc/glibc-functions/exp10f.texi: Likewise. * doc/glibc-functions/fgetxattr.texi: Likewise. * doc/glibc-functions/flistxattr.texi: Likewise. * doc/glibc-functions/fopencookie.texi: Likewise. * doc/glibc-functions/freeifaddrs.texi: Likewise. * doc/glibc-functions/fremovexattr.texi: Likewise. * doc/glibc-functions/fsetxattr.texi: Likewise. * doc/glibc-functions/getifaddrs.texi: Likewise. * doc/glibc-functions/getxattr.texi: Likewise. * doc/glibc-functions/lgetxattr.texi: Likewise. * doc/glibc-functions/listxattr.texi: Likewise. * doc/glibc-functions/llistxattr.texi: Likewise. * doc/glibc-functions/lremovexattr.texi: Likewise. * doc/glibc-functions/lsetxattr.texi: Likewise. * doc/glibc-functions/pow10.texi: Likewise. * doc/glibc-functions/pow10f.texi: Likewise. * doc/glibc-functions/rcmd_af.texi: Likewise. * doc/glibc-functions/removexattr.texi: Likewise. * doc/glibc-functions/res_init.texi: Likewise. * doc/glibc-functions/res_mkquery.texi: Likewise. * doc/glibc-functions/res_query.texi: Likewise. * doc/glibc-functions/res_querydomain.texi: Likewise. * doc/glibc-functions/res_send.texi: Likewise. * doc/glibc-functions/rresvport_af.texi: Likewise. * doc/glibc-functions/setxattr.texi: Likewise. * doc/glibc-functions/strcasestr.texi: Likewise. 2008-12-15 Bruno Haible Fix compilation error on OSF/1 4.0. * lib/sys_select.in.h: When invoked from OSF/1 or , simply delegate to the system header. Reported by Daniel Richard G. . 2008-12-15 Bruno Haible * doc/posix-functions/openat.texi: Mention the 'openat' module. * doc/posix-functions/fchmodat.texi: Likewise. * doc/posix-functions/fchownat.texi: Likewise. * doc/posix-functions/fdopendir.texi: Likewise. * doc/posix-functions/fstatat.texi: Likewise. * doc/posix-functions/mkdirat.texi: Likewise. * doc/posix-functions/unlinkat.texi: Likewise. 2008-12-14 Bruno Haible Update doc for POSIX:2008. * doc/posix-functions/faccessat.texi: New file. * doc/posix-functions/fchmodat.texi: New file. * doc/posix-functions/fchownat.texi: New file. * doc/posix-functions/fdopendir.texi: New file. * doc/posix-functions/fstatat.texi: New file. * doc/posix-functions/futimens.texi: New file. * doc/posix-functions/linkat.texi: New file. * doc/posix-functions/mkdirat.texi: New file. * doc/posix-functions/mkfifoat.texi: New file. * doc/posix-functions/mknodat.texi: New file. * doc/posix-functions/open_wmemstream.texi: New file. * doc/posix-functions/openat.texi: New file. * doc/posix-functions/psiginfo.texi: New file. * doc/posix-functions/pthread_mutex_consistent.texi: New file. * doc/posix-functions/pthread_mutexattr_getrobust.texi: New file. * doc/posix-functions/pthread_mutexattr_setrobust.texi: New file. * doc/posix-functions/readlinkat.texi: New file. * doc/posix-functions/renameat.texi: New file. * doc/posix-functions/strerror_l.texi: New file. * doc/posix-functions/symlinkat.texi: New file. * doc/posix-functions/unlinkat.texi: New file. * doc/posix-functions/utimensat.texi: New file. * doc/gnulib.texi (Function Substitutes): Add these subsections. 2008-12-14 Bruno Haible Update doc for POSIX:2008. * doc/posix-functions/alphasort.texi: Renamed from doc/glibc-functions/alphasort.texi. * doc/posix-functions/dirfd.texi: Renamed from doc/glibc-functions/dirfd.texi. * doc/posix-functions/dprintf.texi: Renamed from doc/glibc-functions/dprintf.texi. * doc/posix-functions/duplocale.texi: Renamed from doc/glibc-functions/duplocale.texi. * doc/posix-functions/fexecve.texi: Renamed from doc/glibc-functions/fexecve.texi. * doc/posix-functions/fmemopen.texi: Renamed from doc/glibc-functions/fmemopen.texi. * doc/posix-functions/freelocale.texi: Renamed from doc/glibc-functions/freelocale.texi. * doc/posix-functions/getdate_err.texi: Renamed from doc/glibc-functions/getdate_err.texi. * doc/posix-functions/isalnum_l.texi: Renamed from doc/glibc-functions/isalnum_l.texi. * doc/posix-functions/isalpha_l.texi: Renamed from doc/glibc-functions/isalpha_l.texi. * doc/posix-functions/isblank_l.texi: Renamed from doc/glibc-functions/isblank_l.texi. * doc/posix-functions/iscntrl_l.texi: Renamed from doc/glibc-functions/iscntrl_l.texi. * doc/posix-functions/isdigit_l.texi: Renamed from doc/glibc-functions/isdigit_l.texi. * doc/posix-functions/isgraph_l.texi: Renamed from doc/glibc-functions/isgraph_l.texi. * doc/posix-functions/islower_l.texi: Renamed from doc/glibc-functions/islower_l.texi. * doc/posix-functions/isprint_l.texi: Renamed from doc/glibc-functions/isprint_l.texi. * doc/posix-functions/ispunct_l.texi: Renamed from doc/glibc-functions/ispunct_l.texi. * doc/posix-functions/isspace_l.texi: Renamed from doc/glibc-functions/isspace_l.texi. * doc/posix-functions/isupper_l.texi: Renamed from doc/glibc-functions/isupper_l.texi. * doc/posix-functions/iswalnum_l.texi: Renamed from doc/glibc-functions/iswalnum_l.texi. * doc/posix-functions/iswalpha_l.texi: Renamed from doc/glibc-functions/iswalpha_l.texi. * doc/posix-functions/iswblank_l.texi: Renamed from doc/glibc-functions/iswblank_l.texi. * doc/posix-functions/iswcntrl_l.texi: Renamed from doc/glibc-functions/iswcntrl_l.texi. * doc/posix-functions/iswctype_l.texi: Renamed from doc/glibc-functions/iswctype_l.texi. * doc/posix-functions/iswdigit_l.texi: Renamed from doc/glibc-functions/iswdigit_l.texi. * doc/posix-functions/iswgraph_l.texi: Renamed from doc/glibc-functions/iswgraph_l.texi. * doc/posix-functions/iswlower_l.texi: Renamed from doc/glibc-functions/iswlower_l.texi. * doc/posix-functions/iswprint_l.texi: Renamed from doc/glibc-functions/iswprint_l.texi. * doc/posix-functions/iswpunct_l.texi: Renamed from doc/glibc-functions/iswpunct_l.texi. * doc/posix-functions/iswspace_l.texi: Renamed from doc/glibc-functions/iswspace_l.texi. * doc/posix-functions/iswupper_l.texi: Renamed from doc/glibc-functions/iswupper_l.texi. * doc/posix-functions/iswxdigit_l.texi: Renamed from doc/glibc-functions/iswxdigit_l.texi. * doc/posix-functions/isxdigit_l.texi: Renamed from doc/glibc-functions/isxdigit_l.texi. * doc/posix-functions/mbsnrtowcs.texi: Renamed from doc/glibc-functions/mbsnrtowcs.texi. * doc/posix-functions/mkdtemp.texi: Renamed from doc/glibc-functions/mkdtemp.texi. * doc/posix-functions/newlocale.texi: Renamed from doc/glibc-functions/newlocale.texi. * doc/posix-functions/nl_langinfo_l.texi: Renamed from doc/glibc-functions/nl_langinfo_l.texi. * doc/posix-functions/open_memstream.texi: Renamed from doc/glibc-functions/open_memstream.texi. * doc/posix-functions/opterr.texi: Renamed from doc/glibc-functions/opterr.texi. * doc/posix-functions/optind.texi: Renamed from doc/glibc-functions/optind.texi. * doc/posix-functions/optopt.texi: Renamed from doc/glibc-functions/optopt.texi. * doc/posix-functions/psignal.texi: Renamed from doc/glibc-functions/psignal.texi. * doc/posix-functions/scandir.texi: Renamed from doc/glibc-functions/scandir.texi. * doc/posix-functions/sched_get_priority_min.texi: Renamed from doc/glibc-functions/sched_get_priority_min.texi. * doc/posix-functions/signgam.texi: Renamed from doc/glibc-functions/signgam.texi. * doc/posix-functions/stpcpy.texi: Renamed from doc/glibc-functions/stpcpy.texi. * doc/posix-functions/stpncpy.texi: Renamed from doc/glibc-functions/stpncpy.texi. * doc/posix-functions/strcasecmp_l.texi: Renamed from doc/glibc-functions/strcasecmp_l.texi. * doc/posix-functions/strcoll_l.texi: Renamed from doc/glibc-functions/strcoll_l.texi. * doc/posix-functions/strfmon_l.texi: Renamed from doc/glibc-functions/strfmon_l.texi. * doc/posix-functions/strftime_l.texi: Renamed from doc/glibc-functions/strftime_l.texi. * doc/posix-functions/strncasecmp_l.texi: Renamed from doc/glibc-functions/strncasecmp_l.texi. * doc/posix-functions/strndup.texi: Renamed from doc/glibc-functions/strndup.texi. * doc/posix-functions/strnlen.texi: Renamed from doc/glibc-functions/strnlen.texi. * doc/posix-functions/strsignal.texi: Renamed from doc/glibc-functions/strsignal.texi. * doc/posix-functions/strxfrm_l.texi: Renamed from doc/glibc-functions/strxfrm_l.texi. * doc/posix-functions/timer_gettime.texi: Renamed from doc/glibc-functions/timer_gettime.texi. * doc/posix-functions/tolower_l.texi: Renamed from doc/glibc-functions/tolower_l.texi. * doc/posix-functions/toupper_l.texi: Renamed from doc/glibc-functions/toupper_l.texi. * doc/posix-functions/towctrans_l.texi: Renamed from doc/glibc-functions/towctrans_l.texi. * doc/posix-functions/towlower_l.texi: Renamed from doc/glibc-functions/towlower_l.texi. * doc/posix-functions/towupper_l.texi: Renamed from doc/glibc-functions/towupper_l.texi. * doc/posix-functions/uselocale.texi: Renamed from doc/glibc-functions/uselocale.texi. * doc/posix-functions/vdprintf.texi: Renamed from doc/glibc-functions/vdprintf.texi. * doc/posix-functions/wcpcpy.texi: Renamed from doc/glibc-functions/wcpcpy.texi. * doc/posix-functions/wcpncpy.texi: Renamed from doc/glibc-functions/wcpncpy.texi. * doc/posix-functions/wcscasecmp.texi: Renamed from doc/glibc-functions/wcscasecmp.texi. * doc/posix-functions/wcscasecmp_l.texi: Renamed from doc/glibc-functions/wcscasecmp_l.texi. * doc/posix-functions/wcscoll_l.texi: Renamed from doc/glibc-functions/wcscoll_l.texi. * doc/posix-functions/wcsdup.texi: Renamed from doc/glibc-functions/wcsdup.texi. * doc/posix-functions/wcsncasecmp.texi: Renamed from doc/glibc-functions/wcsncasecmp.texi. * doc/posix-functions/wcsncasecmp_l.texi: Renamed from doc/glibc-functions/wcsncasecmp_l.texi. * doc/posix-functions/wcsnlen.texi: Renamed from doc/glibc-functions/wcsnlen.texi. * doc/posix-functions/wcsnrtombs.texi: Renamed from doc/glibc-functions/wcsnrtombs.texi. * doc/posix-functions/wcsxfrm_l.texi: Renamed from doc/glibc-functions/wcsxfrm_l.texi. * doc/posix-functions/wctrans_l.texi: Renamed from doc/glibc-functions/wctrans_l.texi. * doc/posix-functions/wctype_l.texi: Renamed from doc/glibc-functions/wctype_l.texi. * doc/gnulib.texi (Function Substitutes): Add these subsections. (Glibc ctype.h, Glibc dirent.h, Glibc getopt.h, Glibc math.h, Glibc sched.h, Glibc signal.h, Glibc stdio.h, Glibc stdlib.h, Glibc string.h, Glibc time.h, Glibc unistd.h, Glibc wchar.h): Remove these subsections. (Glibc langinfo.h, Glibc locale.h, Glibc monetary.h, Glibc wctype.h): Remove sections. 2008-12-14 Bruno Haible Update doc for POSIX:2008. * doc/posix-functions/*.texi: Update URL of POSIX specification. 2008-12-14 Bruno Haible Update doc for POSIX:2008. * doc/pastposix-functions/bcmp.texi: Renamed from doc/posix-functions/bcmp.texi. * doc/pastposix-functions/bcopy.texi: Renamed from doc/posix-functions/bcopy.texi. * doc/pastposix-functions/bsd_signal.texi: Renamed from doc/posix-functions/bsd_signal.texi. * doc/pastposix-functions/bzero.texi: Renamed from doc/posix-functions/bzero.texi. * doc/pastposix-functions/ecvt.texi: Renamed from doc/posix-functions/ecvt.texi. * doc/pastposix-functions/fcvt.texi: Renamed from doc/posix-functions/fcvt.texi. * doc/pastposix-functions/ftime.texi: Renamed from doc/posix-functions/ftime.texi. * doc/pastposix-functions/gcvt.texi: Renamed from doc/posix-functions/gcvt.texi. * doc/pastposix-functions/getcontext.texi: Renamed from doc/posix-functions/getcontext.texi. * doc/pastposix-functions/gethostbyaddr.texi: Renamed from doc/posix-functions/gethostbyaddr.texi. * doc/pastposix-functions/gethostbyname.texi: Renamed from doc/posix-functions/gethostbyname.texi. * doc/pastposix-functions/getwd.texi: Renamed from doc/posix-functions/getwd.texi. * doc/pastposix-functions/h_errno.texi: Renamed from doc/posix-functions/h_errno.texi. * doc/pastposix-functions/index.texi: Renamed from doc/posix-functions/index.texi. * doc/pastposix-functions/makecontext.texi: Renamed from doc/posix-functions/makecontext.texi. * doc/pastposix-functions/mktemp.texi: Renamed from doc/posix-functions/mktemp.texi. * doc/pastposix-functions/pthread_attr_getstackaddr.texi: Renamed from doc/posix-functions/pthread_attr_getstackaddr.texi. * doc/pastposix-functions/pthread_attr_setstackaddr.texi: Renamed from doc/posix-functions/pthread_attr_setstackaddr.texi. * doc/pastposix-functions/rindex.texi: Renamed from doc/posix-functions/rindex.texi. * doc/pastposix-functions/scalb.texi: Renamed from doc/posix-functions/scalb.texi. * doc/pastposix-functions/setcontext.texi: Renamed from doc/posix-functions/setcontext.texi. * doc/pastposix-functions/swapcontext.texi: Renamed from doc/posix-functions/swapcontext.texi. * doc/pastposix-functions/ualarm.texi: Renamed from doc/posix-functions/ualarm.texi. * doc/pastposix-functions/usleep.texi: Renamed from doc/posix-functions/usleep.texi. * doc/pastposix-functions/vfork.texi: Renamed from doc/posix-functions/vfork.texi. * doc/pastposix-functions/wcswcs.texi: Renamed from doc/posix-functions/wcswcs.texi. * doc/gnulib.texi (Legacy Function Substitutes): New chapter. (Function Substitutes): Update. 2008-12-14 Ralf Wildenhues * modules/relocatable-prog-wrapper (Depends-on): Add errno, needed by m4/strerror.m4. 2008-12-14 Ralf Wildenhues Bruno Haible * modules/unilbrk/tables (Depends-on): Add unilbrk/base. 2008-12-13 Bruno Haible * modules/strtoull (Depends-on): Remove unistd. 2008-12-11 Ralf Wildenhues * modules/strtoull (Depends-on): Add stdlib. 2008-12-11 Simon Josefsson * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add more warnings. 2008-12-10 Jim Meyering gl_ASSERT: don't say assertions are disabled when they're not * m4/assert.m4 (gl_ASSERT): Do not make configure report "checking whether to enable assertions... no", when they are in fact enabled. This is solely a bug in the output of configure. In spite of saying "no", NDEBUG was not defined in that case. Also, as noted by Eric Blake, leave assertions enabled upon --enable-assert=INVALID. 2008-12-10 Bruno Haible Change MODULES.html to refer to POSIX:2008 where possible. * MODULES.html.sh (POSIX2008_URL): New variable. (posix_headers): Remove sys/timeb, ucontext. (posix2001_headers): New variable. (posix_functions): Remove bcmp, bcopy, bsd_signal, bzero, ecvt, fcvt, ftime, gcvt, getcontext, gethostbyaddr, gethostbyname, getwd, h_errno, index, makecontext, mktemp, pthread_attr_getstackaddr, pthread_attr_setstackaddr, rindex, scalb, setcontext, swapcontext, ualarm, usleep, vfork, wcswcs. Add the new POSIX:2008 functions. (posix2001_functions): New variable. (func_module): Use URLs to POSIX:2008 where possible and to POSIX:2001 otherwise. 2008-12-09 Ralf Wildenhues add missing include to parse-duration.c * lib/parse-duration.c: #include "xalloc.h", for xstrdup. * modules/parse-duration (Depends-on): Add xalloc. fix sed script reading maint.mk * top/maint.mk (MYSELF): New macro, define as $(srcdir)/$(ME). (syntax-check-rules): Use it. 2008-12-09 Bruno Haible * m4/ldexpl.m4 (gl_FUNC_LDEXPL_WORKS): Add another check, that fails on MacOS X 10.4/PowerPC. Reported by Simon Josefsson. 2008-12-08 Jim Meyering work around mingw's lack of some S_IF definitions * lib/fts.c (S_IFLNK, S_IFSOCK): Define if not already defined. Reported by Simon Josefsson. 2008-12-08 Bruno Haible * m4/signbitl.m4 (gl_SIGNBIT_TEST_PROGRAM): Add a link check of signbit applied to variables. Needed on MacOS X 10.4/PowerPC. Reported by Simon Josefsson. 2008-12-08 William Pursell (tiny change) and Eric Blake assert: honor --enable-assert * m4/assert.m4 (gl_ASSERT): Synchronize with autoconf 2.64, in order to honor --enable-assert, rather than treating it as a synonym for --disable-assert. 2008-12-08 Jim Meyering * lib/posixtm.c: Remove now-useless declaration of mktime. * build-aux/announce-gen (get_tool_versions): Accept .xz tarballs. 2008-12-07 Bruno Haible * tests/test-lock.c (test_lock, test_rwlock, test_recursive_lock, test_once): Mark functions as static. * tests/test-tls.c (test_tls): Likewise. 2008-12-07 Bruno Haible * lib/striconveha.h (uniconv_register_autodetect): Renamed from iconv_register_autodetect. 2008-12-07 Jim Meyering posixtm.c: avoid a warning * lib/posixtm.c (posixtime): Don't initialize tm0. It's no longer needed to placate gcc4's -Wuninitialized, and the attempt to placate would elicit a new warning. unicodeio.c: mark unused parameters * lib/unicodeio.c (exit_failure_callback): Mark unused parameter. (fallback_failure_callback): Likewise. 2008-12-07 Bruno Haible * gnulib-tool (func_create_testdir): When building the tests subdirectory, ignore the modules gnumakefile and maintainer-makefile. Reported by Simon Josefsson. 2008-12-07 Ralf Wildenhues * doc/manywarnings.texi, doc/gnulib-intro.texi: Fix typos. 2008-12-06 Bruno Haible * lib/c-stack.h (c_stack_action): Clarify possible side effects. Suggested by Eric Blake. 2008-12-06 Bruno Haible Fix a c-stack test failure on MacOS X. * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Require AC_CANONICAL_HOST. Define FAULT_YIELDS_SIGBUS. If set, install a signal handler for SIGBUS as well. * lib/c-stack.c (c_stack_action): If FAULT_YIELDS_SIGBUS is set, install a signal handler for SIGBUS as well. Reported by Bruce Dugan via Eric Blake. 2008-12-06 Bruno Haible Advocacy documentation. * doc/gnulib-intro.texi (Benefits): New section. * doc/gnulib.texi: Update. 2008-12-06 Bruno Haible Document the 'manywarnings' module. * doc/manywarnings.texi: New file. * doc/gnulib.texi: Include it. 2008-12-05 Eric Blake tests: silence some gcc warnings * tests/test-getdate.c (LOG) [!DEBUG]: Mark no-op void. * tests/uniwidth/test-uc_width2.c (finish_interval): Avoid printf type mismatches. 2008-12-03 Ralf Wildenhues Bruno Haible * m4/openmp.m4 (AC_OPENMP): Do not define with Autoconf 2.62 or newer. 2008-11-29 Jim Meyering unicodeio.c: mark unused parameters * lib/unicodeio.c (exit_failure_callback): Mark unused parameter. (fallback_failure_callback): Likewise. fts: fix a thinko * lib/fts.c (s_ifmt_shift_bits): Remove function. Not needed after all. (set_stat_type): Return S_IF*-valued "type" directly. Prompted by James Youngman's spotting a related bug. Confirmed by further testing through find. fts: provide dirent.d_type via FTSENT.fts_statp, when possible * lib/fts.c (D_TYPE): Define. (DT_UNKNOWN, DT_BLK, DT_CHR) [HAVE_STRUCT_DIRENT_D_TYPE]: Define. (DT_DIR, DT_FIFO, DT_LNK, DT_REG, DT_SOCK): Likewise. (s_ifmt_shift_bits): New function. (set_stat_type): New function. (fts_build): When not calling fts_stat, call set_stat_type to propagate dirent.d_type info to fts_read caller. * lib/fts_.h (FTSENT) [FTS_DEFER_STAT]: Mention that fts_statp->st_mode type information may be valid. 2008-11-28 Simon Josefsson * lib/sys_time.in.h: Add extern "C" block for C++. Suggested by Brian Dessent . Reported by Sam Steingold . 2008-11-20 Bruno Haible Attempt to work around an AIX 5.3, 6.1 compiler bug with include_next. * lib/math.in.h: Use INCLUDE_NEXT_AS_FIRST_DIRECTIVE instead of INCLUDE_NEXT. * m4/include_next.m4 (gl_INCLUDE_NEXT): Set also INCLUDE_NEXT_AS_FIRST_DIRECTIVE. * modules/math (Makefile.am): Substitute INCLUDE_NEXT_AS_FIRST_DIRECTIVE instead of INCLUDE_NEXT. Reported by Albert Chin . 2008-11-18 Alexandre Duret-Lutz Bruno Haible * lib/stdint.in.h: Define all type macros so that their expansion is a single typedef'ed token. Fixes a compilation failure in Boost which does "using ::int8_t;". 2008-11-18 Simon Josefsson * m4/manywarnings.m4: New file with gl_MANYWARN_COMPLEMENT and gl_MANYWARN_ALL_GCC. * m4/warnings.m4: Removed gl_WARN_SUPPORTED and gl_WARN_COMPLEMENT. Suggested by Bruno Haible . * modules/manywarnings: New file. * MODULES.html.sh: Mention manywarnings module. 2008-11-18 Bruno Haible * doc/gnulib-tool.texi (Unit tests): New section. 2008-11-18 Simon Josefsson * top/maint.mk (refresh-po): Fix sed regexp to avoid problems with paths like 'lib/po/foo.po'. 2008-11-17 Simon Josefsson * m4/warnings.m4: Improve code. Reported by Ralf Wildenhues and Paolo Bonzini . 2008-11-17 Simon Josefsson * m4/warnings.m4: Use CPPFLAGS to really check whether the parameter works. 2008-11-17 Simon Josefsson * m4/warnings.m4: Add gl_WARN_COMPLEMENT and gl_WARN_SUPPORTED. 2008-11-17 Bruce Korb * modules/parse-duration-tests: New file. * tests/test-parse-duration.sh: New file. * tests/test-parse-duration.c: New file. New module 'parse-duration'. * lib/parse-duration.h: New file. * lib/parse-duration.c: New file. * modules/parse-duration: New file. 2008-11-17 Bruno Haible * tests/test-select-out.sh: Comment out the first pipe test. Reported by Simon Josefsson. 2008-11-17 Bruno Haible * modules/getaddrinfo (Depends-on): Add servent, hostent. * m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Use gl_SERVENT and gl_HOSTENT. 2008-11-17 Bruno Haible * m4/sockets.m4 (gl_SOCKETS): After trying -lsocket, try also -lnetwork and -lnet. Needed for Haiku and BeOS. 2008-11-16 Bruno Haible * m4/getaddrinfo.m4 (gl_GETADDRINFO): Fix indentation. 2008-11-16 Bruno Haible Avoid test failure on Haiku. * tests/test-fsync.c: Include . (main): Don't require that fsync (0) fails. 2008-11-15 Bruno Haible New module 'hostent'. * modules/hostent: New file. * m4/hostent.m4: New file, based on code in m4/getaddrinfo.m4. 2008-11-15 Bruno Haible New module 'servent'. * modules/servent: New file. * m4/servent.m4: New file, based on code in m4/getaddrinfo.m4. 2008-11-15 Bruno Haible Avoid generating same test program with two different rules. * modules/frexp-nolibm-tests (Makefile.am): Rename test program from test-frexp to test-frexp-nolibm. * modules/frexpl-nolibm-tests (Makefile.am): Rename test program from test-frexpl to test-frexpl-nolibm. 2008-11-15 Bruno Haible * modules/frexpl-tests (Makefile.am): Link test-frexpl with $(FREXPL_LIBM). 2008-11-15 Bruno Haible * lib/netdb.in.h: Activate the definitions also when the system's has 'struct addrinfo'. * m4/netdb_h.m4 (gl_HEADER_NETDB): Replace netdb.h also when it lacks EAI_OVERFLOW or AI_NUMERICSERV. * doc/posix-headers/netdb.texi: Document the problem. 2008-11-15 Bruno Haible * tests/test-sched.c: Test also the existence of the SCHED_* macros. Make the 'sched' module work on platforms where exists but is incomplete (such as Haiku). * lib/sched.in.h; Include the system's if it exists. (SCHED_FIFO, SCHED_RR, SCHED_OTHER): New macros. * m4/sched_h.m4 (gl_SCHED_H): Test whether exists and also defines SCHED_FIFO, SCHED_RR, SCHED_OTHER. Set HAVE_SCHED_H, HAVE_STRUCT_SCHED_PARAM. * modules/sched (Depends-on): Add include_next. (Makefile.am): Substitute HAVE_SCHED_H, INCLUDE_NEXT, PRAGMA_SYSTEM_HEADER, NEXT_SCHED_H, HAVE_STRUCT_SCHED_PARAM. * doc/posix-headers/sched.texi: Document the issue. 2008-11-13 Jim Meyering test-argp-2: avoid test failure when PACKAGE_BUGREPORT is defined * tests/test-argp-2.sh: When PACKAGE_BUGREPORT was defined, this test would fail due to the difference in the Report bugs to ... line. The expected address is empty, "<>", while the actual would contain e.g., "". Filter out any address. 2008-11-12 Bruno Haible lstat: don't compile lstat.c on systems lacking lstat * m4/lstat.m4 (gl_FUNC_LSTAT): Don't compile lstat.c on systems which don't have lstat; this is handled by lib/sys_stat.in.h already. Reported by Daniel P. Berrange via Jim Meyering. 2008-11-12 Jim Meyering * lib/unicodeio.c (unicode_to_mb): Correct spelling of u8_uctomb. 2008-11-12 Simon Josefsson * modules/warnings (configure.ac): Do AC_SUBST([WARN_CFLAGS]) here instead. 2008-11-12 Bruno Haible * lib/unicodeio.c: Include unistr.h. (utf8_wctomb): Remove function. (unicode_to_mb): Use utf8_uctomb instead of utf8_wctomb. 2008-11-12 Simon Josefsson * m4/warnings.m4 (gl_WARN_INIT): Remove, suggested by Ralf Wildenhues and Bruno Haible . * modules/warnings (configure.ac): Don't call gl_WARN_INIT. 2008-11-12 Simon Josefsson * doc/warnings.texi: New file, from Bruno Haible . * doc/gnulib.texi: Add section for warnings. 2008-11-11 Bruno Haible * lib/sockets.h: Add a comment. 2008-11-11 Karl Berry * config/srclist.txt (fdl.texi): add, syncing from gnustandards. 2008-11-11 Eric Blake fdl.texi: avoid git symlinks * doc/fdl.texi: Copy, rather than link, fdl-1.3.texi. 2008-11-11 Paolo Bonzini * m4/warnings.m4 (gl_WARN_ADD): Don't AC_SUBST the empty string. 2008-11-11 Paolo Bonzini * m4/warnings.m4 (gl_WARN_INIT): Substitute WARN_CFLAGS. (gl_WARN_ADD): Substitute $2 if literal. 2008-11-11 Paolo Bonzini * m4/warning.m4: Remove. 2008-11-11 Paolo Bonzini * m4/warnings.m4: Almost complete rewrite. :-) 2008-11-10 Simon Josefsson * modules/warnings: New module. * m4/warnings.m4: New file. * MODULES.html.sh: Mention warnings module. With review improvements from Paolo Bonzini and Ralf Wildenhues . 2008-11-10 Eric Blake fdl.texi: make a symlink to the latest version * doc/standards.texi: Revert today's earlier change. * doc/fdl-1.2.texi: Rename from old fdl.texi... * doc/fdl.texi: ...and replace this with a symlink to the newer fdl-1.3.texi. 2008-11-10 Bruno Haible * tests/test-select-fd.c (main): Accept the result file name as fourth argument. * tests/test-select-in.sh: Pass t-select-in.tmp as fourth argument. * tests/test-select-out.sh: Pass t-select-out.tmp as fourth argument. 2008-11-10 Bruno Haible * lib/netdb.in.h: Use HAVE_STRUCT_ADDRINFO, HAVE_DECL_GETADDRINFO, HAVE_DECL_FREEADDRINFO, HAVE_DECL_GAI_STRERROR, HAVE_DECL_GETNAMEINFO as autoconf-substituted macros. * m4/netdb_h.m4 (gl_NETDB_H_DEFAULTS): Initialize these variables to 1. * m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Require gl_NETDB_H_DEFAULTS. Set these variables. * modules/netdb (Makefile.am): Substitute these variables. 2008-11-10 Eric Blake standards.texi: include correct file for FDL 1.3 * doc/standards.texi (GNU Free Documentation License): Change include file to pull in FDL 1.3, not 1.2. fdl.texi: revert accidental change to license * doc/fdl.texi: This is FDL 1.2, not 1.3. 2008-11-10 Bruno Haible * m4/printf.m4 (gl_PRINTF_ENOMEM): Guess yes on Haiku. Use the cross-compiling guesses also when the native compile gives no result. 2008-11-10 Bruno Haible * lib/spawni.c (__spawni): Force variable into the stack. 2008-11-10 Bruno Haible Add support for Haiku. * lib/fbufmode.c (fbufmode): Test a symbol that is not only defined on glibc and BeOS, but also on Haiku. * lib/fpurge.c (fpurge): Likewise. * lib/freadable.c (freadable): Likewise. * lib/freadahead.c (freadahead): Likewise. * lib/freading.c (freading): Likewise. * lib/freadptr.c (freadptr): Likewise. * lib/freadseek.c (freadptrinc): Likewise. * lib/fseeko.c (rpl_fseeko): Likewise. * lib/fseterr.c (fseterr): Likewise. * lib/fwritable.c (fwritable): Likewise. * lib/fwriting.c (fwriting): Likewise. Reported by Ingo Weinhold . 2008-11-10 Ingo Weinhold * lib/config.charset: Treat Haiku like BeOS. 2008-11-10 Ingo Weinhold * lib/binary-io.h (O_BINARY, O_TEXT): Treat Haiku like BeOS. * lib/fcntl.in.h (O_BINARY, O_TEXT): Likewise. 2008-11-08 Bruno Haible * m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H): Avoid using AC_CHECK_DECL inside AC_CACHE_CHECK. 2008-11-08 Bruno Haible * modules/select-tests (configure.ac): Check for unistd.h, sys/wait.h. 2008-11-08 Bruno Haible * tests/test-select-fd.c: New file. * tests/test-select-in.sh: New file. * tests/test-select-out.sh: New file. * tests/test-select-stdin.c: New file. * modules/select-tests (Files): Add the new files. (Depends-on): Add gettimeofday. (Makefile.am): Add test-select-in.sh, test-select-out.sh to TESTS. Set TESTS_ENVIRONMENT. Add test-select-fd, test-select-stdin to check_PROGRAMS. Define test_select_fd_LDADD, test_select_stdin_LDADD. 2008-11-06 Alexander V. Lukyanov Bruno Haible * lib/sys_stat.in.h: Enclose function definitions in extern "C". 2008-10-12 Giuseppe Scrivano * build-aux/pmccabe2html: Added support for C++ source files. 2008-11-05 Ben Pfaff Fix lib/close.c build on Windows. * modules/close (Files): Add lib/w32sock.h. 2008-11-05 Joel E. Denny Accept Bison's NEWS format. * build-aux/announce-gen (print_news_deltas): Tweak $re_prefix. 2008-11-04 Bruno Haible * modules/random_r (Maintainer): Add glibc. 2008-11-04 Simon Josefsson * doc/alloca-opt.texi: Change license to GFDLv1.3+, as suggested by karl@freefriends.org (Karl Berry). * doc/alloca.texi: Likewise. * doc/c-ctype.texi: Likewise. * doc/c-strcase.texi: Likewise. * doc/c-strcaseeq.texi: Likewise. * doc/c-strcasestr.texi: Likewise. * doc/c-strstr.texi: Likewise. * doc/c-strtod.texi: Likewise. * doc/c-strtold.texi: Likewise. * doc/ctime.texi: Likewise. * doc/error.texi: Likewise. * doc/fdl.texi: Likewise. * doc/gcd.texi: Likewise. * doc/getdate.texi: Likewise. * doc/gnulib-intro.texi: Likewise. * doc/gnulib-tool.texi: Likewise. * doc/gnulib.texi: Likewise. * doc/inet_ntoa.texi: Likewise. * doc/maintain.texi: Likewise. * doc/make-stds.texi: Likewise. * doc/quote.texi: Likewise. * doc/regexprops-generic.texi: Likewise. * doc/standards.texi: Likewise. * doc/verify.texi: Likewise. * doc/visibility.texi: Likewise. * doc/gnulib.texi (GNU Free Documentation License): Include fdl-1.3.texi instead of fdl.texi. 2008-11-04 Simon Josefsson * doc/fdl-1.3.texi: New file, from . * modules/fdl-1.3: Add. * MODULES.html.sh: Add fdl-1.3. 2008-11-03 Bruno Haible Make determination of absolute name of header file work with AIX xlc. * m4/include_next.m4 (gl_CHECK_NEXT_HEADERS): Require AC_CANONICAL_HOST. On AIX, use "$CPP -C" rather than "$CPP" for preprocessing. * m4/absolute-header.m4 (gl_ABSOLUTE_HEADER): Likewise. Reported by Gary V. Vaughan . 2008-11-03 Simon Josefsson * top/maint.mk (COVERAGE_CCOPTS): Use --coverage instead of -fprofile-arcs -ftest-coverage. Suggested by Ludovic Courtès . 2008-11-02 Bruno Haible Mark 'strpbrk' obsolete. * modules/strpbrk (Status, Notice): New sections. * modules/strtok_r (Depends-on): Add strpbrk. 2008-11-02 Bruno Haible Mark 'strdup' obsolete. * modules/strdup (Status, Notice): New sections. * modules/findprog (Depends-on): Add strdup. * modules/getaddrinfo (Depends-on): Likewise. * modules/localename (Depends-on): Likewise. * modules/relocatable-lib (Depends-on): Likewise. * modules/relocatable-lib-lgpl (Depends-on): Likewise. * modules/relocatable-prog (Depends-on): Likewise. * modules/trim (Depends-on): Likewise. * modules/unictype/gen-ctype (Depends-on): Likewise. * modules/unilbrk/gen-lbrk (Depends-on): Likewise. 2008-11-02 Bruno Haible Mark 'strcspn' obsolete. * modules/strcspn (Status, Notice): New sections. 2008-11-02 Bruno Haible Mark 'rmdir' obsolete. * modules/rmdir (Status, Notice): New sections. * modules/clean-temp (Depends-on): Add rmdir. * modules/openat (Depends-on): Likewise. 2008-11-02 Bruno Haible Mark 'raise' obsolete. * modules/raise (Status, Notice): New sections. (Include): Specify . * modules/stdio (Depends-on): Add raise. * modules/write (Depends-on): Likewise. 2008-11-02 Bruno Haible Mark 'memset' obsolete. * modules/memset (Status, Notice): New sections. 2008-11-02 Bruno Haible Mark 'memmove' obsolete. * modules/memmove (Status, Notice): New sections. * modules/argp (Depends-on): Add memmove. * modules/argz (Depends-on): Likewise. * modules/canonicalize (Depends-on): Likewise. * modules/canonicalize-lgpl (Depends-on): Likewise. * modules/fts (Depends-on): Likewise. * modules/getcwd (Depends-on): Likewise. * modules/human (Depends-on): Likewise. * modules/regex (Depends-on): Likewise. * modules/striconveh (Depends-on): Likewise. * modules/trim (Depends-on): Likewise. * modules/unistr/u8-move (Depends-on): Likewise. * modules/unistr/u16-move (Depends-on): Likewise. * modules/unistr/u32-move (Depends-on): Likewise. 2008-11-02 Bruno Haible Mark 'memcpy' obsolete. * modules/memcpy (Status, Notice): New sections. 2008-11-02 Bruno Haible Mark 'memcmp' obsolete. * modules/memcmp (Status, Notice): New sections. * modules/argmatch (Depends-on): Add memchr. * modules/backupfile (Depends-on): Likewise. * modules/c-strcasestr (Depends-on): Likewise. * modules/crypto/des (Depends-on): Likewise. * modules/csharpcomp (Depends-on): Likewise. * modules/fnmatch (Depends-on): Likewise. * modules/git-merge-changelog (Depends-on): Likewise. * modules/isnand (Depends-on): Likewise. * modules/isnand-nolibm (Depends-on): Likewise. * modules/isnanf (Depends-on): Likewise. * modules/isnanf-nolibm (Depends-on): Likewise. * modules/isnanl (Depends-on): Likewise. * modules/isnanl-nolibm (Depends-on): Likewise. * modules/mbchar (Depends-on): Likewise. * modules/memcoll (Depends-on): Likewise. * modules/quotearg (Depends-on): Likewise. * modules/regex (Depends-on): Likewise. * modules/relocatable-prog (Depends-on): Likewise. * modules/same (Depends-on): Likewise. * modules/signbit (Depends-on): Likewise. * modules/strcasestr-simple (Depends-on): Likewise. * modules/unictype/gen-ctype (Depends-on): Likewise. * modules/unilbrk/gen-lbrk (Depends-on): Likewise. * modules/uniname/uniname (Depends-on): Likewise. * modules/unistr/u8-cmp (Depends-on): Likewise. 2008-11-02 Bruno Haible Mark 'memchr' obsolete. * modules/memchr (Status, Notice): New sections. * modules/argp (Depends-on): Add memchr. * modules/base64 (Depends-on): Likewise. * modules/c-strcasestr (Depends-on): Likewise. * modules/chdir-long (Depends-on): Likewise. * modules/fnmatch (Depends-on): Likewise. * modules/getsubopt (Depends-on): Likewise. * modules/git-merge-changelog (Depends-on): Likewise. * modules/glob (Depends-on): Likewise. * modules/strcasestr-simple (Depends-on): Likewise. * modules/strnlen (Depends-on): Likewise. 2008-11-02 Bruno Haible Mark 'atexit' obsolete. * modules/atexit (Status, Notice): New sections. * modules/chdir-long (Depends-on): Add atexit. * modules/wait-process (Depends-on): Likewise. 2008-11-02 Bruno Haible * gnulib-tool: New option --with-obsolete. (func_usage): Document it. (func_modules_transitive_closure): Drop obsolete dependencies if incobsolete is not true. (func_import): Read and save the incobsolete variable to the cache. 2008-11-02 Bruno Haible * modules/TEMPLATE-EXTENDED: New field 'Status'. * gnulib-tool: New option --extract-status. (func_usage): Document it. (sed_extract_prog): Recognize it. (func_get_status): New function. 2008-10-30 Simon Josefsson * modules/sockets (License): Change from LGPL to LGPLv2+. 2008-10-28 Simon Josefsson * top/maint.mk: Add coverage rules, inspired by scripts in gnupdf. 2008-10-28 Simon Josefsson * MODULES.html.sh (Support for systems lacking POSIX:2001): Mention times and sys_times. * modules/sys_times, modules/sys_times-tests: New modules. * modules/times, modules/times-tests: Likewise * m4/sys_times_h.m4: New file. * lib/sys_times.in.h: Likewise * lib/times.c: Likewise. * tests/test-sys_times.c: Likewise. * tests/test-times.c: Likewise. * doc/posix-headers/sys_times.texi: Update. * doc/posix-functions/times.texi: Update. 2008-10-28 Jim Meyering * modules/tempname (Depends-on): Add lstat. * modules/lstat (License): Relicense: LGPL -> LGPLv2+. 2008-10-28 Simon Josefsson * gnulib-tool (func_emit_tests_Makefile_am): Revert last commit. * modules/argp-tests (test_argp_LDADD): Set EXEEXT here instead, using idiom used elsewhere in gnulib. 2008-10-27 Jim Meyering * modules/gethostname (License): Relicense: LGPL -> LGPLv2+. 2008-10-27 Simon Josefsson * gnulib-tool (func_emit_tests_Makefile_am): Set EXEEXT in TESTS_ENVIRONMENT, for shell scripts that needs to call built programs. * tests/test-argp-2.sh: Use $EXEEXT when needed. 2008-10-27 Simon Josefsson * lib/sys_stat.in.h (lstat): Fix declaration for mingw. 2008-10-27 Bruno Haible * tests/test-lstat.c: Include . 2008-10-27 Simon Josefsson * modules/lstat-tests: New module. * tests/test-lstat.c: New file. 2008-10-26 Jim Meyering * lib/mkdir.c (rpl_mkdir) [_WIN32...]: Mark mode as an unused parameter. 2008-10-26 Simon Josefsson Bruno Haible Fix a clash between the type DATADIR on Windows and the macro DATADIR. * modules/configmake (Include): Add a note that the include must come after all system headers. * lib/javaversion.c: Include configmake.h after all other includes. 2008-10-26 Bruno Haible * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Set default of HAVE_STRUCT_RANDOM_DATA to 1. (gl_STDLIB_H): Simplify. 2008-10-26 Simon Josefsson * m4/stdlib_h.m4: Check for struct random_data. Initialize and substitute HAVE_STRUCT_RANDOM_DATA. * lib/stdlib.in.h [!HAVE_STRUCT_RANDOM_DATA]: Provide struct random_data. * modules/stdlib (Makefile.am): Substitute HAVE_STRUCT_RANDOM_DATA. 2008-10-26 Simon Josefsson * doc/gnulib.texi (@copying): Use GFDLv1.2+. * doc/gnulib-intro.texi (Copyright): Likewise. 2008-10-26 Simon Josefsson * doc/gnulib.texi (Header files): C++ fixes, based on Bruno's findings. 2008-10-25 Ben Pfaff Bruno Haible * lib/unistd.in.h: Include . (socket, connect,accept, bind, getpeername, getsockname, getsockopt, listen, recv, send, recvfrom, sendto, setsockopt, shutdown, select): Provide dummy declarations. (gethostname): Override. * lib/sys_socket.in.h (gethostname): Provide dummy declaration. * m4/gethostname.m4 (gl_FUNC_GETHOSTNAME): Invoke gl_PREREQ_SYS_H_WINSOCK2. * modules/gethostname (Files): Add m4/sys_socket_h.m4. * doc/posix-functions/gethostname.texi: More details. 2008-10-25 Bruno Haible * m4/sys_socket_h.m4 (gl_PREREQ_SYS_H_WINSOCK2): Require gl_UNISTD_H_DEFAULTS, gl_SYS_IOCTL_H_DEFAULTS only if they exist. * modules/sys_socket (Files): Remove m4/unistd_h.m4, m4/sys_ioctl_h.m4. * lib/sys_socket.in.h (HAVE__GL_CLOSE_FD_MAYBE_SOCKET); Move macro from here ... * lib/unistd.in.h (HAVE__GL_CLOSE_FD_MAYBE_SOCKET); ... to here. * m4/sys_socket_h.m4 (gl_SYS_SOCKET_H_DEFAULTS): Remove invocation of gl_UNISTD_H_DEFAULTS. 2008-10-25 Eric Blake signbit: avoid spurious compiler failure * m4/signbit.m4 (gl_SIGNBIT_TEST_PROGRAM): Move non-constant declarations inside function. 2008-10-24 Simon Josefsson Bruno Haible * lib/stdlib.in.h (@GNULIB_RANDOM_R@): Include stdint.h. * modules/random_r (Depends-on): Add stdint. 2008-10-24 Bruno Haible * modules/intprops (License): Change to LGPLv2+, with approval by Paul Eggert. * modules/strerror (License): Likewise. 2008-10-24 Jim Meyering sys_socket: fix typo that inhibited expansion of @GNULIB_SEND@ * modules/sys_socket (Depends-on) [Depends-on]: Fix typo. 2008-10-24 Eric Blake getgroups: fix compilation when getgroups is available * lib/getgroups.c (includes): Include for getgroups, but with override of getgroups disabled. 2008-10-24 Simon Josefsson * doc/gnulib.texi (Header files): Add note about C++ problems. Explained by Bruno Haible . 2008-10-23 Bruno Haible Define a dummy SA_NODEFER macro on Interix. * lib/signal.in.h (SA_NODEFER): Define fallback. Reported by Aleksey Cheusov via Thomas Klausner and Eric Blake. 2008-10-23 Bruno Haible * modules/freadahead (License): Change to LGPLv2+. Suggested by Simon Josefsson. 2008-10-23 Jim Meyering random_r: new module * modules/random_r: New file. * m4/random_r.m4: New file. * lib/random_r.c: New file, from glibc. * modules/random_r-tests: New file. * tests/test-random_r.c: New file. * lib/stdlib.in.h (srandom_r, initstate_r, setstate_r, random_r): Declare. (RAND_MAX): Define. * m4/stdlib_h.m4: Define and AC_SUBST GNULIB_RANDOM_R and HAVE_RANDOM_R. * modules/stdlib: Substitute them, too. * MODULES.html.sh (Extra functions based on POSIX:2001) [Misc]: Add it. * doc/glibc-functions/initstate_r.texi: Mention the new module. * doc/glibc-functions/random_r.texi: Likewise. * doc/glibc-functions/setstate_r.texi: Likewise. * doc/glibc-functions/srandom_r.texi: Likewise. * config/srclist.txt: Mention it. 2008-10-23 David Lutterkort * modules/selinux-h: Search for LIB_SELINUX and mark it as a link requirement 2008-10-23 Jim Meyering selinux-h: mark parameters of stub functions as intentionally unused * lib/se-selinux.in.h: Mark parameters as _UNUSED_PARAMETER_. * lib/se-context.in.h: Likewise. 2008-10-22 Simon Josefsson * lib/sys_socket.in.h (FD_ISSET): Fix warnings under mingw. 2008-10-22 Simon Josefsson * m4/getgroups.m4: Avoid invoking test with wrong parameters. 2008-10-22 Eric Blake glthread/thread: avoid compiler warning * lib/glthread/thread.c (gl_thread_exit_func) [USE_WIN32_THREADS]: Add unreachable abort to silence compiler. 2008-10-22 Eric Blake netdb: also supply struct addrinfo for cygwin 1.5.x * m4/netdb_h.m4 (gl_HEADER_NETDB): Check for incomplete header on older cygwin. * lib/netdb.in.h [!HAVE_STRUCT_ADDRINFO]: Also supply contents for cygwin. * doc/posix-headers/netdb.texi (netdb.h): Document this. 2008-10-22 Bruno Haible * users.txt: Update entry about pspp. 2008-10-21 Bruno Haible Simplification. * lib/sys_socket.in.h (_gl_close_fd_maybe_socket): Remove declaration. * lib/close.c (_gl_close_fd_maybe_socket): Make static. Simplification. * lib/ioctl.c (ioctl): Don't undefine. * lib/socket.c (socket): Don't undefine. Remove unused module indicator macros. * m4/sys_socket_h.m4 (gl_SYS_SOCKET_MODULE_INDICATOR): Don't define GNULIB_$1 as a C macro. * doc/posix-functions/close.texi: Undo last change. * doc/posix-functions/ioctl.texi: Merge the two paragraphs about Windows platforms. 2008-10-21 Bruno Haible Add gethostname() declaration to . * lib/unistd.in.h (gethostname): New declaration. * lib/gethostname.c: Include . * m4/gethostname.m4 (gl_FUNC_GETHOSTNAME): Require gl_UNISTD_H_DEFAULTS. Set HAVE_GETHOSTNAME. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GETHOSTNAME and HAVE_GETHOSTNAME. * modules/gethostname (Depends-on): Add unistd. (configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR. (Include): Specify . * modules/unistd (Makefile.am): Substitute GNULIB_GETHOSTNAME and HAVE_GETHOSTNAME. * tests/test-gethostname.c: Include first. 2008-10-21 Bruno Haible * modules/poll-tests (Depends-on): Add sys_ioctl, ioctl. * modules/select-tests (Depends-on): Likewise. Reported by Simon Josefsson. 2008-10-21 Simon Josefsson * lib/close.c: Add _gl_close_fd_maybe_socket from winsock.c. * lib/accept.c: New file, based on winsock.c. * lib/bind.c: New file, based on winsock.c. * lib/connect.c: New file, based on winsock.c. * lib/getpeername.c: New file, based on winsock.c. * lib/getsockname.c: New file, based on winsock.c. * lib/getsockopt.c: New file, based on winsock.c. * lib/ioctl.c: New file, based on winsock.c. * lib/listen.c: New file, based on winsock.c. * lib/recv.c: New file, based on winsock.c. * lib/recvfrom.c: New file, based on winsock.c. * lib/send.c: New file, based on winsock.c. * lib/sendto.c: New file, based on winsock.c. * lib/setsockopt.c: New file, based on winsock.c. * lib/shutdown.c: New file, based on winsock.c. * lib/socket.c: New file, based on winsock.c. * lib/w32sock.h: New file, based on winsock.c. * lib/winsock.c: Remove file. * modules/accept: Likewise. * modules/bind: Likewise. * modules/connect: Likewise. * modules/getpeername: Likewise. * modules/getsockname: Likewise. * modules/getsockopt: Likewise. * modules/ioctl: Likewise. * modules/listen: Likewise. * modules/recv: Likewise. * modules/recvfrom: Likewise. * modules/send: Likewise. * modules/sendto: Likewise. * modules/setsockopt: Likewise. * modules/shutdown: Likewise. * modules/socket: Use socket.c instead of winsock.c. * modules/sys_socket: Remove (unneeded?) dependency on winsock.c. * doc/posix-functions/accept.texi: Doc fix. * doc/posix-functions/bind.texi: Doc fix. * doc/posix-functions/close.texi: Doc fix. * doc/posix-functions/connect.texi: Doc fix. * doc/posix-functions/getpeername.texi: Doc fix. * doc/posix-functions/getsockname.texi: Doc fix. * doc/posix-functions/getsockopt.texi: Doc fix. * doc/posix-functions/ioctl.texi: Doc fix. * doc/posix-functions/listen.texi: Doc fix. * doc/posix-functions/recv.texi: Doc fix. * doc/posix-functions/recvfrom.texi: Doc fix. * doc/posix-functions/send.texi: Doc fix. * doc/posix-functions/sendto.texi: Doc fix. * doc/posix-functions/setsockopt.texi: Doc fix. * doc/posix-functions/shutdown.texi: Doc fix. * doc/posix-functions/socket.texi: Doc fix. 2008-10-20 Bruno Haible Take into account the role of SIGABRT_COMPAT on Windows 2008. * lib/sigprocmask.c (SIGABRT_COMPAT, SIGABRT_COMPAT_MASK): New macros. (sigismember, sigaddset, sigdelset, sigfillset, rpl_signal): Handle it as an alias for SIGABRT. * lib/sigaction.c (SIGABRT_COMPAT): New macro. (sigaction): Map it to SIGABRT. Reported by Ramiro Polla via Eric Blake. 2008-10-20 Bruno Haible * lib/fts.c: Don't include lstat.h. * lib/openat.c: Include instead of lstat.h. Move the lstat() declaration to . * lib/lstat.h: Remove file. * lib/sys_stat.in.h: Add special invocation convention. (lstat): New declaration. * lib/lstat.c (orig_lstat): New function. (rpl_lstat): Use orig_lstat instead of lstat. * m4/lstat.m4 (gl_FUNC_LSTAT): Require gl_SYS_STAT_H_DEFAULTS and AC_C_INLINE. Set REPLACE_LSTAT. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Initialize GNULIB_LSTAT and REPLACE_LSTAT. * modules/lstat (Files): Remove lib/lstat.h. (configure.ac): Invoke gl_SYS_STAT_MODULE_INDICATOR. (Include): Specify instead of lstat.h. * modules/sys_stat (Makefile.am): Substitute GNULIB_LSTAT and REPLACE_LSTAT. * NEWS: Mention the change. 2008-10-20 Bruno Haible * modules/posix_spawn-tests: New file. * tests/test-posix_spawn3.c: New file. 2008-10-20 Bruno Haible * modules/posix_spawnp-tests (Depends-on): Add sys_wait. * tests/test-posix_spawn1.c (WTERMSIG, WCOREDUMP, WEXITSTATUS, WIFSIGNALED, WIFEXITED, WIFSTOPPED): Remove fallback definitions. * tests/test-posix_spawn2.c (WTERMSIG, WCOREDUMP, WEXITSTATUS, WIFSIGNALED, WIFEXITED, WIFSTOPPED): Likewise. 2008-10-20 Bruno Haible * m4/posix_spawn.m4 (gl_POSIX_SPAWN_WORKS): Test against another bug of posix_spawn on AIX 5.3. 2008-10-20 Bruno Haible * m4/posix_spawn.m4 (gl_POSIX_SPAWN_WORKS): Make the check on MacOS X. 2008-10-20 Bruno Haible * m4/posix_spawn.m4 (gl_POSIX_SPAWN_WORKS): Use AC_LANG_SOURCE instead of AC_LANG_PROGRAM. 2008-10-20 Simon Josefsson * lib/netdb.in.h: Don't define GNU specific constants until they are supported or needed. Reported by Bruno Haible . 2008-10-20 Simon Josefsson * lib/canon-host.c: Include netdb.h instead of getaddrinfo.h. 2008-10-20 Simon Josefsson * lib/getaddrinfo.h: Remove file. * modules/getaddrinfo: Reflect move from getaddrinfo.h to netdb.h. * m4/getaddrinfo.m4: Call gl_HEADER_NETDB. Don't check for netdb.h. * lib/netdb.in.h: Add declarations from getaddrinfo.h. * m4/netdb_h.m4: Initialize GNULIB_GETADDRINFO to 0. * modules/netdb: Substitute GNULIB_GETADDRINFO. * lib/getaddrinfo.c: Include netdb.h instead of getaddrinfo.h. * tests/test-getaddrinfo.c: Likewise. * lib/gai_strerror.c: Likewise. Also drop HAVE_NETDB_H check. * NEWS: Mention change. 2008-10-19 Bruno Haible * m4/posix_spawn.m4 (gl_POSIX_SPAWN_WORKS): Remove unneeded code. 2008-10-19 Bruno Haible * lib/wait-process.c: Include simply . (waitpid, WTERMSIG, WCOREDUMP, WEXITSTATUS, WIFSIGNALED, WIFEXITED, WIFSTOPPED): Remove fallback definitions. * modules/wait-process (Depends-on): Add sys_wait. New module 'sys_wait'. * modules/sys_wait: New file. * lib/sys_wait.in.h: New file, partially copied from lib/wait-process.c. * m4/sys_wait_h.m4: New file. * doc/posix-headers/sys_wait.texi: Mention the new module. 2008-10-19 Bruno Haible * m4/wait-process.m4 (gl_WAIT_PROCESS): Remove test for unistd.h. 2008-10-19 Bruno Haible Assume that waitpid() fills an 'int' status, not a 'union wait'. * lib/wait-process.c (WAIT_T): Remove type. (WTERMSIG, WCOREDUMP, WEXITSTATUS): Define fallbacks using bit masks. (wait_subprocess): Update. 2008-10-19 Bruno Haible New module 'atoll'. * modules/atoll: New file. * lib/stdlib.in.h (atoll): New declaration. * lib/atoll.c: New file, from glibc with modifications. * m4/atoll.m4: New file. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_ATOLL, HAVE_ATOLL. * modules/stdlib (Makefile.am): Substitute GNULIB_ATOLL, HAVE_ATOLL. * doc/posix-functions/atoll.texi: Mention the new module. 2008-10-19 Bruno Haible Add strtoull() declaration to . * lib/stdlib.in.h (strtoull): New declaration. * m4/strtoull.m4 (gl_FUNC_STRTOLL): Require gl_STDLIB_H_DEFAULTS. Set HAVE_STRTOULL. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_STRTOULL, HAVE_STRTOULL. * modules/strtoull (Depends-on): Add stdlib. (configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR. * modules/stdlib (Makefile.am): Substitute GNULIB_STRTOULL, HAVE_STRTOULL. 2008-10-19 Bruno Haible Add strtoll() declaration to . * lib/stdlib.in.h (strtoll): New declaration. * m4/strtoll.m4 (gl_FUNC_STRTOLL): Require gl_STDLIB_H_DEFAULTS. Set HAVE_STRTOLL. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_STRTOLL, HAVE_STRTOLL. * modules/strtoll (Depends-on): Add stdlib. (configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR. * modules/stdlib (Makefile.am): Substitute GNULIB_STRTOLL, HAVE_STRTOLL. 2008-10-19 Bruno Haible * modules/bcopy (Depends-on): Add strings. (Include): Specify . 2008-10-19 Bruno Haible * doc/posix-functions/atexit.texi: Update doc regarding mingw. 2008-10-19 Bruno Haible * lib/openat-die.c (openat_save_fail, openat_restore_fail): Rename the parameter from 'errno' to 'errnum'. Fixes a compilation error on mingw. 2008-10-19 Bruno Haible * lib/atanl.c: Don't include isnanl.h. * lib/cosl.c: Likewise. * lib/ldexpl.c: Likewise. * lib/logl.c: Likewise. * lib/sinl.c: Likewise. * lib/sqrtl.c: Likewise. * lib/tanl.c: Likewise. Move the isnanf(), isnand(), isnanl() declarations to . * lib/isnanf.h: Remove file. * lib/isnand.h: Remove file. * lib/isnanl.h: Remove file. * lib/math.in.h: Include the contents of lib/isnanf.h, lib/isnand.h, lib/isnanl.h. Use HAVE_ISNANF, HAVE_ISNAND, HAVE_ISNANL as substituted macros. * m4/isnanf.m4 (gl_FUNC_ISNANF): Require gl_MATH_H_DEFAULTS. Set HAVE_ISNANF, don't define it as a C macro. * m4/isnand.m4 (gl_FUNC_ISNAND): Require gl_MATH_H_DEFAULTS. Set HAVE_ISNAND, don't define it as a C macro. * m4/isnanl.m4 (gl_FUNC_ISNANL): Require gl_MATH_H_DEFAULTS. Set HAVE_ISNANL, don't define it as a C macro. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_ISNAN[FDL] and HAVE_ISNAN[FDL]. * modules/isnanf (Files): Remove lib/isnanf.h. (Depends-on): Add math. (configure.ac): Invoke gl_MATH_MODULE_INDICATOR. (Include): Specify instead of isnanf.h. * modules/isnand (Files): Remove lib/isnand.h. (Depends-on): Add math. (configure.ac): Invoke gl_MATH_MODULE_INDICATOR. (Include): Specify instead of isnand.h. * modules/isnanl (Files): Remove lib/isnanl.h. (Depends-on): Add math. (configure.ac): Invoke gl_MATH_MODULE_INDICATOR. (Include): Specify instead of isnanl.h. * modules/math (Makefile.am): Substitute GNULIB_ISNAN[FDL] and HAVE_ISNAN[FDL]. * tests/test-isnanf.c: Include instead of isnanf.h. * tests/test-isnand.c: Include instead of isnand.h. * tests/test-isnanl.c: Include instead of isnanl.h. * NEWS: Mention the change. 2008-10-18 Bruno Haible Add getusershell(), setusershell(), endusershell() declarations to . * lib/unistd.in.h (getusershell, setusershell, endusershell): New declarations. * lib/getusershell.c: Include unistd.h. * m4/getusershell.m4 (gl_FUNC_GETUSERSHELL): Require gl_UNISTD_H_DEFAULTS and AC_USE_SYSTEM_EXTENSIONS. Set HAVE_GETUSERSHELL. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GETUSERSHELL and HAVE_GETUSERSHELL. * modules/getusershell (Depends-on): Add unistd, extensions. (configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR. (Include): Specify . * modules/unistd (Makefile.am): Substitute GNULIB_GETUSERSHELL and HAVE_GETUSERSHELL. 2008-10-18 Bruno Haible Add a getloadavg() declaration to . * lib/stdlib.in.h; Include when needed for the getloadavg declaration. (getloadavg): New declaration. * lib/getloadavg.c: Include first. * m4/getloadavg.m4 (gl_GETLOADAVG): Require gl_STDLIB_H_DEFAULTS and AC_USE_SYSTEM_EXTENSIONS. Test whether sys/loadavg.h exists. Set HAVE_SYS_LOADAVG_H and HAVE_DECL_GETLOADAVG. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_GETLOADAVG, HAVE_SYS_LOADAVG_H, HAVE_DECL_GETLOADAVG. * modules/getloadavg (Depends-on): Add stdlib, extensions. (configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR. (Include): Specify . * modules/stdlib (Makefile.am): Substitute GNULIB_GETLOADAVG, HAVE_SYS_LOADAVG_H, HAVE_DECL_GETLOADAVG. 2008-10-18 Bruno Haible * lib/dirchownmod.c: Don't include lchmod.h. Move the lchmod() declaration to . * lib/lchmod.h: Remove file. * lib/sys_stat.in.h: Add placeholder for GL_LINK_WARNING. (lchmod): New declaration, moved here from lib/lchown.h. * m4/lchmod.m4 (gl_FUNC_LCHMOD): Require gl_SYS_STAT_H_DEFAULTS and AC_USE_SYSTEM_EXTENSIONS. Set HAVE_LCHMOD. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Initialize GNULIB_LCHMOD and HAVE_LCHMOD. * modules/lchmod (Files): Remove lib/lchmod.h. (Depends-on): Add sys_stat, extensions. (configure.ac): Invoke gl_SYS_STAT_MODULE_INDICATOR. (Include): Specify instead of lchmod.h. * modules/sys_stat (Depends-on): Add link-warning. (Makefile.am): Substitute GNULIB_LCHMOD, HAVE_LCHMOD, and the definition of GL_LINK_WARNING. * NEWS: Mention the change. 2008-10-18 Bruno Haible * lib/fchdir.c: Don't include dirfd.h. * lib/fts.c: Likewise. * lib/getcwd.c: Likewise. * lib/glob.c: Likewise. Move the dirfd() declaration to . * lib/dirfd.h: Remove file. * lib/dirent.in.h: Add placeholder for GL_LINK_WARNING. (dirfd): New declaration. * lib/dirfd.c: Include instead of dirfd.h. * m4/dirfd.m4 (gl_FUNC_DIRFD): Require gl_DIRENT_H_DEFAULTS and AC_USE_SYSTEM_EXTENSIONS. Invoke gl_REPLACE_DIRENT_H. Set HAVE_DECL_DIRFD. * m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): Initialize GNULIB_DIRFD and HAVE_DECL_DIRFD. * modules/dirfd (Files): Remove lib/dirfd.h. (Depends-on): Add dirent, extensions. (configure.ac): Invoke gl_DIRENT_MODULE_INDICATOR. (Include): Specify instead of dirfd.h. * modules/dirent (Depends-on): Add link-warning. (Makefile.am): Substitute GNULIB_DIRFD, HAVE_DECL_DIRFD, and definition of GL_LINK_WARNING. * NEWS: Mention the change. 2008-10-18 Bruno Haible Move the euidaccess() declaration to . * lib/euidaccess.h: Remove file. * lib/unistd.in.h (euidaccess): New declaration. * lib/euidaccess.c: Don't include euidaccess.h. * m4/euidaccess.m4 (gl_FUNC_EUIDACCESS): Require gl_UNISTD_H_DEFAULTS. Don't check whether euidaccess is declared. Set HAVE_EUIDACCESS. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_EUIDACCESS and HAVE_EUIDACCESS. * modules/euidaccess (Files): Remove lib/euidaccess.h. (Depends-on): Add unistd. (configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR. (Include): Specify instead of euidaccess.h. * modules/unistd (Makefile.am): Substitute GNULIB_EUIDACCESS and HAVE_EUIDACCESS. * NEWS: Mention the change. 2008-10-18 Bruno Haible * lib/xgetdomainname.c: Include instead of getdomainname.h. Move the getdomainname() declaration to . * lib/getdomainname.h: Remove file. * lib/unistd.in.h (getdomainname): New declaration. * lib/getdomainname.c: Include instead of getdomainname.h. * m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME): Require gl_UNISTD_H_DEFAULTS and AC_USE_SYSTEM_EXTENSIONS. Set HAVE_GETDOMAINNAME. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GETDOMAINNAME and HAVE_GETDOMAINNAME. * modules/getdomainname (Files): Remove lib/getdomainname.h. (Depends-on): Add unistd, extensions. (configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR. (Includes): Specify instead of getdomainname.h. * modules/unistd (Makefile.am): Substitute GNULIB_GETDOMAINNAME and HAVE_GETDOMAINNAME. * NEWS: Mention the change. 2008-10-18 Bruno Haible * modules/dirent: New file. * m4/dirent_h.m4: New file. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Require gl_DIRENT_H_DEFAULTS. Invoke gl_REPLACE_DIRENT_H. Don't assign DIRENT_H directly. * modules/fchdir (Files): Remove lib/dirent.in.h. (Depends-on): Add dirent. (Makefile.am): Move rules to modules/dirent. * doc/posix-headers/dirent.texi: Mention the new module. 2008-10-18 Bruno Haible Avoid -Wunused-parameter warnings in public gnulib header files. * m4/gnulib-common.m4 (gl_COMMON_BODY): Define _UNUSED_PARAMETER_ as a macro. * lib/unistr.h (u32_mbtouc_unsafe, u32_mbtouc): Use it. 2008-10-18 Bruno Haible * doc/glibc-functions/dirfd.texi: Mention the module 'dirfd'. * doc/glibc-functions/error.texi: Mention the module 'error'. * doc/glibc-functions/euidaccess.texi: Mention the module 'euidaccess'. * doc/glibc-functions/getdomainname.texi: Mention the module 'getdomainname'. * doc/glibc-functions/getloadavg.texi: Mention the module 'getloadavg'. * doc/glibc-functions/getpagesize.texi: Mention the module 'getpagesize'. * doc/glibc-functions/getusershell.texi: Mention the module 'getusershell'. * doc/glibc-functions/isnanl.texi: Mention the module 'isnanl'. * doc/glibc-functions/lchmod.texi: Mention the module 'lchmod'. * doc/glibc-functions/mempcpy.texi: Mention the module 'mempcpy'. * doc/glibc-functions/memrchr.texi: Mention the module 'memrchr'. * doc/glibc-functions/mkdtemp.texi: Mention the module 'mkdtemp'. * doc/glibc-functions/rpmatch.texi: Mention the module 'rpmatch'. * doc/glibc-functions/stpcpy.texi: Mention the module 'stpcpy'. * doc/glibc-functions/stpncpy.texi: Mention the module 'stpncpy'. * doc/glibc-functions/strchrnul.texi: Mention the module 'strchrnul'. * doc/glibc-functions/strndup.texi: Mention the module 'strndup'. * doc/glibc-functions/strnlen.texi: Mention the module 'strnlen'. * doc/glibc-functions/strsep.texi: Mention the module 'strsep'. * doc/glibc-functions/timegm.texi: Mention the module 'timegm'. * doc/glibc-functions/vasprintf.texi: Mention the module 'vasprintf'. 2008-10-17 Bruno Haible * m4/signbit.m4 (gl_SIGNBIT_TEST_PROGRAM): On platforms other than HP-UX and IRIX, use -0.0L. * tests/test-ceill.c (minus_zero): Likewise. * tests/test-floorl.c (minus_zero): Likewise. * tests/test-frexpl.c (minus_zero): Likewise. * tests/test-isnan.c (minus_zerol): Likewise. * tests/test-isnanl.h (minus_zero): Likewise. * tests/test-ldexpl.c (minus_zero): Likewise. * tests/test-roundl.c (minus_zero): Likewise. * tests/test-signbit.c (minus_zerol): Likewise. * tests/test-snprintf-posix.h (minus_zerol): Likewise. * tests/test-sprintf-posix.h (minus_zerol): Likewise. * tests/test-truncl.c (minus_zero): Likewise. * tests/test-vasnprintf-posix.c (minus_zerol): Likewise. * tests/test-vasprintf-posix.c (minus_zerol): Likewise. Reported by Markus Armbruster via Jim Meyering and by Nelson H. F. Beebe via Eric Blake. 2008-10-17 Bruno Haible Avoid gcc warnings because of #pragma GCC system_header on older gcc. * lib/arpa_inet.in.h: Encloses reference to PRAGMA_SYSTEM_HEADER so that it gets activated only for gcc >= 3.0. * lib/dirent.in.h: Likewise. * lib/errno.in.h: Likewise. * lib/fcntl.in.h: Likewise. * lib/float.in.h: Likewise. * lib/iconv.in.h: Likewise. * lib/inttypes.in.h: Likewise. * lib/locale.in.h: Likewise. * lib/math.in.h: Likewise. * lib/netdb.in.h: Likewise. * lib/netinet_in.in.h: Likewise. * lib/search.in.h: Likewise. * lib/signal.in.h: Likewise. * lib/spawn.in.h: Likewise. * lib/stdarg.in.h: Likewise. * lib/stdint.in.h: Likewise. * lib/stdio.in.h: Likewise. * lib/stdlib.in.h: Likewise. * lib/string.in.h: Likewise. * lib/strings.in.h: Likewise. * lib/sys_file.in.h: Likewise. * lib/sys_ioctl.in.h: Likewise. * lib/sys_select.in.h: Likewise. * lib/sys_socket.in.h: Likewise. * lib/sys_stat.in.h: Likewise. * lib/sys_time.in.h: Likewise. * lib/sysexits.in.h: Likewise. * lib/time.in.h: Likewise. * lib/unistd.in.h: Likewise. * lib/wchar.in.h: Likewise. * lib/wctype.in.h: Likewise. Reported by Yoann Vandoorselaere . 2008-10-17 Jim Meyering ignore-value: don't depend on inline module * modules/ignore-value (Depends-on): Remove 'inline'. (configure.ac): Instead, add AC_REQUIRE([AC_C_INLINE]) here. Suggestion from Bruno Haible. 2008-10-17 Bruno Haible New implementation of condition variables for Win32. * lib/glthread/cond.h (struct gl_waitqueue_link): New type. (gl_linked_waitqueue_t): New type. (gl_cond_t): Use it. * lib/glthread/cond.c (struct gl_waitqueue_element): New type. (gl_waitqueue_init, gl_waitqueue_add, gl_waitqueue_remove, gl_waitqueue_notify_first, gl_waitqueue_notify_all): New functions. (glthread_cond_init_func, glthread_cond_wait_func, glthread_cond_timedwait_func, glthread_cond_signal_func, glthread_cond_broadcast_func, glthread_cond_destroy_func): Reimplemented on the basis of gl_linked_waitqueue_t. * lib/glthread/lock.h (gl_carray_waitqueue_t): Renamed from gl_waitqueue_t. (gl_rwlock_t): Update. * lib/glthread/lock.c (gl_waitqueue_t): Alias to gl_carray_waitqueue_t. 2008-10-17 Simon Josefsson * modules/recvfrom (Depends-on): Add dependency on getpeername. Reported by Yoann Vandoorselaere . 2008-10-17 Jim Meyering ignore-value: new module * modules/ignore-value: New file. * lib/ignore-value.h: New file. * MODULES.html.sh (Compiler warning management): New section, just for this module. More to come. 2008-10-16 Paul Eggert open-safer.c: avoid 'signed and unsigned in conditional...' warning * lib/open-safer.c (open_safer): Use an "if/else" statement in place of the ternary operator. Reported by Reuben Thomas . 2008-10-16 Jim Meyering openat-die.c: avoid 'no previous prototype' warning * lib/openat-die.c: Include "openat.h". Reported by Reuben Thomas . 2008-10-16 Simon Josefsson * m4/netdb_h.m4: Assume that if netdb.h exists, it works. * lib/netdb.in.h: Fix typo. Reported by Bruno Haible * lib/netdb.in.h: Include sys/socket.h for platforms without netdb.h, to get structures like hostent on MinGW. * modules/netdb (Depends-on): Add sys_socket. 2008-10-15 Simon Josefsson * modules/netdb, modules/netdb-tests: New file. * m4/netdb_h.m4: New file. * lib/netdb.in.h: Add, currently just an empty file pending definitions. * tests/test-netdb.c: New file. * doc/posix-headers/netdb.texi: Mention that we replace it if needed. * MODULES.html.sh (Support for systems lacking POSIX:2001): Add netdb. 2008-10-15 Simon Josefsson * doc/gnulib.texi (Getaddrinfo and WINVER): Sync documentation with code. 2008-10-13 Bruno Haible * lib/glthread/cond.c (glthread_cond_wait_func, glthread_cond_timedwait_func): Add a comment. 2008-10-13 Yoann Vandoorselaere * tests/test-poll.c: Include , for ioctl(). * tests/test-select.c: Likewise, 2008-10-13 Bruno Haible * lib/glthread/cond.c (glthread_cond_wait_func, glthread_cond_timedwait_func): Fix variable name. Reported by Yoann Vandoorselaere . 2008-10-13 Paolo Bonzini fix getaddrinfo emulation for systems with struct sockaddr.sa_len * m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Detect struct sockaddr.sa_len. * lib/getaddrinfo.c (getaddrinfo): Set it if appropriate. 2008-10-13 Simon Josefsson * build-aux/pmccabe2html: Add css and css_url parameters. 2008-10-12 Bruno Haible * tests/test-sameacls.c (main) [AIX]: Clear type argument before calling aclx_get. Reported by Rainer Tammer . 2008-10-12 Bruno Haible Use msvcrt aware primitives for creation/termination of Win32 threads. * lib/glthread/thread.c: Include . (glthread_create_func): Use _beginthreadex instead of CreateThread. (wrapper_func): Update signature. (gl_thread_exit_func): Use _endthreadex instead of EndThread. 2008-10-11 Yoann Vandoorselaere Bruno Haible Provide a Win32 implementation of the 'cond' module. * lib/glthread/cond.h [USE_WIN32]: New implementation. * lib/glthread/cond.c (glthread_cond_init_func, glthread_cond_wait_func, glthread_cond_timedwait_func, glthread_cond_signal_func, glthread_cond_broadcast_func, glthread_cond_destroy_func) [USE_WIN32]: New functions. * modules/cond (Dependencies): Add gettimeofday. 2008-10-11 Bruno Haible Make sleep work on older versions of mingw. * m4/sleep.m4 (gl_FUNC_SLEEP): Test whether 'sleep' is declared, not only whether it exists. * doc/posix-functions/sleep.texi: Mention the problem with older versions of mingw. 2008-10-11 Bruno Haible New module 'shutdown'. * modules/shutdown: New file. * lib/sys_socket.in.h (shutdown): New declaration. * lib/winsock.c (shutdown): New function. * m4/sys_socket_h.m4 (gl_SYS_SOCKET_H_DEFAULTS): Initialize GNULIB_SHUTDOWN. * modules/sys_socket (Makefile.am): Substitute GNULIB_SHUTDOWN. * doc/posix-functions/shutdown.texi: Document the new module. 2008-10-11 Jim Meyering * lib/fclose.c: Fix typo in comment: s/close/fclose/. 2008-10-11 Bruno Haible New module 'fclose'. * modules/fclose: New file. * lib/stdio.in.h (fclose): New declaration. * lib/fclose.c: New file. * m4/fclose.m4: New file. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize GNULIB_FCLOSE, REPLACE_FCLOSE. * m4/close.m4 (gl_REPLACE_CLOSE): Invoke gl_REPLACE_FCLOSE. * modules/stdio (Makefile.am): Substitute GNULIB_FCLOSE, REPLACE_FCLOSE. * modules/close (Depends-on): fclose. * doc/posix-functions/fclose.texi: Mention the problem on Windows. 2008-10-11 Bruno Haible * lib/winsock.c (_gl_close_fd_maybe_socket): If closesocket fails, set errno and don't call _close. 2008-10-10 Bruno Haible * lib/copy-acl.c (qcopy_acl) [CYGWIN]: Call chmod before setting the ACL, not afterwards. Fixes test failure on Cygwin. 2008-10-09 Ben Pfaff * build-aux/announce-gen: Fix gnulib version related part of usage message. Die with a useful error message if no tarballs are found. 2008-10-10 Jim Meyering bootstrap: use git's --depth=N option only if it's supported * build-aux/bootstrap: Work with git-1.4.4.4, which does not recognize the --depth option. Reported by Pádraig Brady. 2008-10-09 Bruno Haible New module 'ioctl'. * modules/ioctl: New file. * lib/sys_socket.in.h (ioctl): Remove declaration. * lib/winsock.c: Include . (rpl_ioctl): Define only of the gnulib module 'ioctl' is present. * m4/sys_socket_h.m4 (gl_PREREQ_SYS_H_WINSOCK2): Require gl_SYS_IOCTL_H_DEFAULTS. Set also SYS_IOCTL_H_HAVE_WINSOCK2_H. * modules/sys_socket (Files): Add m4/sys_ioctl_h.m4. * doc/posix-functions/ioctl.texi: Mention the new module. 2008-10-09 Bruno Haible New module 'sys_ioctl'. * lib/sys_ioctl.in.h: New file. * m4/sys_ioctl_h.m4: New file. * modules/sys_ioctl: New file. * doc/glibc-headers/sys_ioctl.texi: Mention the new module. 2008-10-09 Bruno Haible * lib/sys_socket.in.h (ioctl): Make signature POSIX compliant. * lib/winsock.c: Include . (rpl_ioctl): Change to second argument 'int' and then varargs. 2008-10-09 Bruno Haible * m4/close.m4 (gl_FUNC_CLOSE): Arrange to replace the close() function when the sys_socket module is present and the system has . 2008-10-09 Bruno Haible * doc/posix-functions/close.texi: Mention module 'close' instead of module 'sys_socket'. 2008-10-09 Bruno Haible * doc/glibc-headers/sys_ioctl.texi: New file. * doc/gnulib.texi: Include it. 2008-10-09 Paolo Bonzini Bruno Haible Combine the two replacements of 'close'. * lib/sys_socket.in.h (close): Define to a reminder to include . (_gl_close_fd_maybe_socket): New declaration. (HAVE__GL_CLOSE_FD_MAYBE_SOCKET): New macro. * lib/winsock.c (close): Remove undefinition. (_gl_close_fd_maybe_socket): Renamed from rpl_close. Define only when needed for the gnulib module 'close'. * lib/unistd.in.h (close): If the gnulib module 'close' is not used, define to an error symbol or to a warning, if suitable. * lib/close.c: Include . (rpl_close): Invoke _gl_close_fd_maybe_socket when gnulib defines it. * m4/sys_socket_h.m4 (gl_PREREQ_SYS_H_WINSOCK2): Set also UNISTD_H_HAVE_WINSOCK2_H. (gl_SYS_SOCKET_H_DEFAULTS): Require gl_UNISTD_H_DEFAULTS. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize UNISTD_H_HAVE_WINSOCK2_H. * modules/sys_socket (Files): Add m4/unistd_h.m4. (configure.ac): Set a module indicator. (Makefile.am): Substitute GNULIB_CLOSE. * modules/unistd (Makefile.am): Substitute UNISTD_H_HAVE_WINSOCK2_H. * modules/poll-tests (Depends-on): Add close. * modules/select-tests (Depends-on): Likewise. 2008-10-09 Paolo Bonzini Bruno Haible New module 'close'. * modules/close: New file. * lib/unistd.in.h (close): Move declaration out of the FCHDIR_REPLACEMENT scope. (_gl_unregister_fd): New declaration. * lib/close.c: New file. * lib/fchdir.c (rpl_close): Remove function. * m4/close.m4: New file. * m4/fchdir.m4 (gl_FUNC_FCHDIR): When replacing fchdir, also replace close. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_CLOSE and REPLACE_CLOSE. * modules/unistd (Makefile.am): Substitute GNULIB_CLOSE and REPLACE_CLOSE. * modules/fchdir (Depends-on): Add close. 2008-10-09 Paolo Bonzini Bruno Haible * lib/fcntl.in.h (open): Simplify conditionals. (_gl_register_fd): New declaration. * lib/fchdir.c (rpl_open): Remove function. * lib/open.c: When FCHDIR_REPLACEMENT is defined, compile the file also. (open): When FCHDIR_REPLACEMENT is defined, invoke _gl_register_fd. * m4/fchdir.m4 (gl_FUNC_FCHDIR): When replacing fchdir, also replace open. 2008-10-09 Jim Meyering GNUmakefile: use the more name-space-friendly "_version" * top/GNUmakefile (_dummy): Update. (_version): Rename from "version". 2008-10-09 Paolo Bonzini Bruno Haible * lib/fchdir.c (_gl_unregister_fd): New functions, extracted from rpl_close. (_gl_register_fd): New function, extracted from rpl_open. (rpl_close, rpl_closedir): Use _gl_unregister_fd. (rpl_open, rpl_opendir): Use _gl_register_fd. 2008-10-09 Paolo Bonzini Fix organization of 'open' replacement. * m4/open.m4 (gl_REPLACE_OPEN): New macro. (gl_FUNC_OPEN): Use it. (gl_PREREQ_OPEN): Add a : to make the body non-empty. 2008-10-08 Bruno Haible * modules/getdate-tests (test_getdata_LDADD): Add LIBINTL. 2008-10-08 Simon Josefsson * m4/sys_socket_h.m4: Don't AC_LIBOBJ(winsock). The file is AC_LIBOBJ'ed by each gnulib module that needs it (e.g., socket, listen). 2008-10-08 Eric Blake GNUmakefile: add 'make version' target * top/GNUmakefile (_curr-ver): Split version update rules... (version): ...into a target. 2008-10-07 Bruno Haible Use a more portable replacement expression for -0.0L. * m4/signbit.m4 (gl_SIGNBIT_TEST_PROGRAM): Use -LDBL_MIN * LDBL_MIN instead of -0.0L. Fix m4 quotation. * tests/test-signbit.c: Include . (minus_zero): New variable. (test_signbitl): Use minus_zero instead of -zero. * modules/signbit-tests (Depends-on): Add float. * tests/test-ceill.c: Include . (zero): Remove variable. (minus_zero): New variable. (main): Use minus_zero instead of -zero. * modules/ceill-tests (Depends-on): Add float. * tests/test-floorl.c: Include . (zero): Remove variable. (minus_zero): New variable. (main): Use minus_zero instead of -zero. * modules/floorl-tests (Depends-on): Add float. * tests/test-roundl.c: Include . (zero): Remove variable. (minus_zero): New variable. (main): Use minus_zero instead of -zero. * modules/roundl-tests (Depends-on): Add float. * tests/test-truncl.c: Include . (zero): Remove variable. (minus_zero): New variable. (main): Use minus_zero instead of -zero. * modules/truncl-tests (Depends-on): Add float. * tests/test-frexpl.c (zero): Remove variable. (minus_zero): New variable. (main): Use minus_zero instead of -zero. * modules/frexpl-tests (Depends-on): Add float. * tests/test-isnan.c (zerol): Remove variable. (minus_zerol): New variable. (test_long_double): Use minus_zerol instead of -zerol. * modules/isnan-tests (Depends-on): Add float. * tests/test-isnanl.h (zero): Remove variable. (minus_zero): New variable. (main): Use minus_zero instead of -zero. * modules/isnanl-nolibm-tests (Depends-on): Add float. * modules/isnanl-tests (Depends-on): Add float. * tests/test-ldexpl.c (zero): Remove variable. (minus_zero): New variable. (main): Use minus_zero instead of -zero. * modules/ldexpl-tests (Depends-on): Add float. * tests/test-snprintf-posix.h (zerol): Remove variable. (minus_zerol): New variable. (test_function): Use minus_zerol instead of -zerol. * modules/snprintf-posix-tests (Depends-on): Add float. * modules/vsnprintf-posix-tests (Depends-on): Add float. * tests/test-sprintf-posix.h (zerol): Remove variable. (minus_zerol): New variable. (test_function): Use minus_zerol instead of -zerol. * modules/sprintf-posix-tests (Depends-on): Add float. * modules/vsprintf-posix-tests (Depends-on): Add float. * tests/test-vasnprintf-posix.c (zerol): Remove variable. (minus_zerol): New variable. (test_function): Use minus_zerol instead of -zerol. * modules/vasnprintf-posix-tests (Depends-on): Add float. * tests/test-vasprintf-posix.c (zerol): Remove variable. (minus_zerol): New variable. (test_function): Use minus_zerol instead of -zerol. * modules/vasprintf-posix-tests (Depends-on): Add float. 2008-10-07 Simon Josefsson * MODULES.html.sh (Support for building documentation): Mention pmccabe2html. Sort entries. Add pmccabe2html module, from gnupdf. * build-aux/pmccabe.css: New file. * build-aux/pmccabe2html: New file. * m4/pmccabe2html.m4: New file. * modules/pmccabe2html: New file. 2008-10-07 Richard W.M. Jones flock: new module * MODULES.html.sh: Add to list of modules. * lib/flock.c: flock implementation for Windows and Unix systems which have fcntl. * doc/glibc-functions/flock.texi: Update documentation. * lib/sys_file.in.h: header file. * m4/flock.m4: M4 macros. * m4/sys_file_h.m4: M4 macros for replacement sys/file.h. * modules/flock: flock module. * modules/flock-tests: flock tests module. * modules/sys_file: sys/file.h module. * tests/test-flock.c: test suite for flock. 2008-10-06 Jim Meyering bootstrap: check for LT_INIT more portably still ;-) * build-aux/bootstrap: Don't rely on \>, since it's not portable. Spotted by Bruno Haible. 2008-10-06 Eric Blake test-signbit: avoid tripping Irix cc bug on -0.0L * tests/test-signbit.c (minus_zerol): Delete, and replace with '-zerol'. This may break on HP-UX/hppa, but at least makes the entire testsuite consistent and avoids an Irix 6.2 bug. 2008-10-05 Bruno Haible Jim Meyering Add an option for ignoring EPIPE during close_stdout. * lib/closeout.h: Include . (close_stdout_set_ignore_EPIPE): New declaration. * lib/closeout.c: Include . (ignore_EPIPE): New variable. (close_stdout_set_ignore_EPIPE): New function. (close_stdout): Ignore EPIPE error if ignore_EPIPE is set. * lib/close-stream.c (close_stream): Mention the possible EPIPE failure. * modules/closeout (Depends-on): Add stdbool. 2008-10-05 Bruno Haible * modules/accept: New file. * modules/bind: New file. * modules/connect: New file. * modules/getpeername: New file. * modules/getsockname: New file. * modules/getsockopt: New file. * modules/listen: New file. * modules/recv: New file. * modules/recvfrom: New file. * modules/send: New file. * modules/sendto: New file. * modules/setsockopt: New file. * modules/socket: New file. * lib/sys_socket.in.h: Include the GL_LINK_WARNING definition. (socket, connect, accept, bind, getpeername, getsockname, getsockopt, listen, recv, send, recvfrom, sendto, setsockopt): Declare only when the particular module is requested. Add a link warning when the particular module is not requested. * lib/winsock.c (rpl_socket, rpl_connect, rpl_accept, rpl_bind, rpl_getpeername, rpl_getsockname, rpl_getsockopt, rpl_listen, rpl_recv, rpl_send, rpl_recvfrom, rpl_sendto, rpl_setsockopt): Define only when the particular module is requested. * m4/sys_socket_h.m4 (gl_SYS_SOCKET_MODULE_INDICATOR, gl_SYS_SOCKET_H_DEFAULTS): New macros. (gl_HEADER_SYS_SOCKET): Require gl_SYS_SOCKET_H_DEFAULTS. * modules/sys_socket (Depends-on): Add link-warning. (Makeifle.am): Substitute GNULIB_SOCKET, GNULIB_CONNECT, GNULIB_ACCEPT, GNULIB_BIND, GNULIB_GETPEERNAME, GNULIB_GETSOCKNAME, GNULIB_GETSOCKOPT, GNULIB_LISTEN, GNULIB_RECV, GNULIB_SEND, GNULIB_RECVFROM, GNULIB_SENDTO, GNULIB_SETSOCKOPT, and the definition of GL_LINK_WARNING. * doc/posix-functions/accept.texi: Mention the new module 'accept'. * doc/posix-functions/bind.texi: Mention the new module 'bind'. * doc/posix-functions/connect.texi: Mention the new module 'connect'. * doc/posix-functions/getpeername.texi: Mention the new module 'getpeername'. * doc/posix-functions/getsockname.texi: Mention the new module 'getsockname'. * doc/posix-functions/getsockopt.texi: Mention the new module 'getsockopt'. * doc/posix-functions/listen.texi: Mention the new module 'listen'. * doc/posix-functions/recv.texi: Mention the new module 'recv'. * doc/posix-functions/recvfrom.texi: Mention the new module 'recvfrom'. * doc/posix-functions/send.texi: Mention the new module 'send'. * doc/posix-functions/sendto.texi: Mention the new module 'sendto'. * doc/posix-functions/setsockopt.texi: Mention the new module 'setsockopt'. * doc/posix-functions/socket.texi: Mention the new module 'socket'. * modules/poll-tests (Depends-on): Add socket, bind, getsockopt, listen, connect, accept. * modules/select-tests (Depends-on): Likewise. 2008-10-05 Bruno Haible * lib/winsock.c (strerror): Remove unused #undef. (rpl_close): Remove unused local variable. * modules/sys_socket (Depends-on); Add errno. 2008-10-05 Bruno Haible * lib/sys_select.in.h: Include the GL_LINK_WARNING definition. (select): Add a link warning when the 'select' module is not used. * modules/sys_select (Depends-on): Add link-warning. (Makefile.am): Substitute the definition of GL_LINK_WARNING. Suggested by Paolo Bonzini. 2008-10-05 Jim Meyering bootstrap: check for LT_INIT more portably * build-aux/bootstrap: Avoid using grep -E, since it's not portable enough. Suggestion from Bruno Haible. 2008-10-05 Bruno Haible * doc/posix-headers/sys_select.texi: Mention 'struct timeval' problem as being fixed by gnulib. 2008-10-05 Bruno Haible * modules/select-tests: New file, mostly copied from modules/sys_select-tests. * tests/test-select.c: New file, mostly copied from tests/test-sys_select.c. * tests/test-sys_select.c: Move most of the code to tests/test-select.c. * modules/sys_select-tests (Depends-on): Remove all dependencies. (Makefile.am): Remove test_sys_select_LDADD. * lib/sys_select.in.h (select): If GNULIB_SELECT is not set, define it to an undefined symbol, for an error message. * m4/sys_select_h.m4 (gl_SYS_SELECT_MODULE_INDICATOR): New macro. (gl_SYS_SELECT_H_DEFAULTS): New macro. (gl_HEADER_SYS_SELECT): Require it. Don't require compilation of winsock-select.c here. * modules/sys_select (Files): Remove lib/winsock-select.c. (Depends-on): Remove alloca. (Makefile.am): Substitute GNULIB_SELECT. * modules/select: New file. * doc/posix-functions/select.texi: Update. 2008-10-05 Bruno Haible * lib/spawn_faction_addclose.c (__sysconf): Use getdtablesize always. * lib/spawn_faction_adddup2.c (__sysconf): Likewise. * lib/spawn_faction_addopen.c (__sysconf): Likewise. * modules/posix_spawn_file_actions_addclose (Depends-on): Add getdtablesize. * modules/posix_spawn_file_actions_adddup2 (Depends-on): Likewise. * modules/posix_spawn_file_actions_addopen (Depends-on): Likewise. 2008-10-05 Bruno Haible * modules/getdtablesize-tests: New file. * tests/test-getdtablesize.c: New file. New module 'getdtablesize'. * lib/unistd.in.h (getdtablesize): New declaration. * lib/getdtablesize.c: New file. * m4/getdtablesize.m4: New file. * modules/getdtablesize: New file. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GETDTABLESIZE, HAVE_GETDTABLESIZE. * modules/unistd (Makefile.am): Substitute GNULIB_GETDTABLESIZE, HAVE_GETDTABLESIZE. * doc/glibc-functions/getdtablesize.texi: Mention the new module. 2008-10-05 Bruno Haible * modules/sched (Makefile.am): Fix typo. Reported by Simon Josefsson. 2008-10-05 Jim Meyering bootstrap: check for LT_INIT, too * build-aux/bootstrap: Both AC_PROG_LIBTOOL and AM_PROG_LIBTOOL are deprecated. Suggestion from Ralf Wildenhues. 2008-10-05 Bruno Haible * lib/spawn.in.h (POSIX_SPAWN_*): Use the system's values, rather than overriding them by ours. (POSIX_SPAWN_USEVFORK): Use the next free bit position. 2008-10-05 Jim Meyering bootstrap: check for AC_PROG_LIBTOOL as well as AM_PROG_LIBTOOL * build-aux/bootstrap: Check for AC_PROG_LIBTOOL, as well as the obsolete AM_PROG_LIBTOOL. Spotted by Debarshi Ray . 2008-10-04 Bruno Haible * modules/dup2 (License): Change to LGPLv2+. * modules/sleep (License): Likewise. * modules/perror (License): Likewise. * modules/fopen (License): Change to LGPLv2+, with approval by Eric Blake. * modules/signal (License): Likewise. * modules/sigprocmask (License): Likewise. * modules/raise (License): Change to LGPLv2+, with approval by Jim Meyering. 2008-10-04 Bruno Haible * lib/spawn.in.h (POSIX_SPAWN_*): Undefine before redefining. Reported by Rainer Tammer . 2008-10-03 Paolo Bonzini Bruno Haible * lib/errno.in.h (EWOULDBLOCK) [win32]: Define to EAGAIN. * lib/winsock.c (set_winsock_errno): Map WSAEWOULDBLOCK to EWOULDBLOCK. * lib/strerror.c (rpl_strerror): Remove error string for EWOULDBLOCK. 2008-10-03 Kamil Dudka filevercmp: new module * lib/filevercmp.h: New function filevercmp comparing version strings. * lib/filevercmp.c: Implementation of filevercmp function. * modules/filevercmp: Module metadata. * tests/test-filevercmp.c: Unit test for new module. * modules/filevercmp-tests: Unit test metadata. * MODULES.html.sh: Add filevercmp module. 2008-10-03 Bruno Haible * lib/c-ctype.h: Add comment. Reported by Jim Meyering. 2008-10-02 Bruno Haible * modules/posix_spawn-internal (Depends-on): Add 'open'. 2008-10-02 Paolo Bonzini * build-aux/bootstrap: Allow renaming bootstrap, and change the name of bootstrap.conf accordingly. 2008-10-02 Paolo Bonzini * build-aux/bootstrap: Install git-merge-changelog configuration items into .gitconfig if needed. 2008-10-02 Paolo Bonzini * build-aux/bootstrap: Recognize `gnulib' being a submodule in a git repository, and initialize/update it accordingly. 2008-10-02 Richard W.M. Jones * modules/fsync-tests: New file. * tests/test-fsync.c: New file. New module 'fsync'. * lib/fsync.c: New file. * m4/fsync.m4: New file. * modules/fsync: New file. * lib/unistd.in.h (fsync): New declaration. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Define and AC_SUBST both GNULIB_FSYNC and HAVE_FSYNC. * modules/unistd: Substitute GNULIB_FSYNC and HAVE_FSYNC. * MODULES.html.sh (posix_functions): Add fsync. * doc/posix-functions/fsync.texi: Mention the new module. 2008-10-02 Jim Meyering fts.c: sync with similar code from coreutils' remove.c * lib/fts.c (dirent_inode_sort_may_be_useful): Merge from coreutils. Guard also with "#if defined __linux__", since for now at least, this code is Linux-kernel-specific. 2008-10-02 Jim Meyering fts: bug fixes * lib/fts.c: Remove unnecessary "defined" in cpp directive. Include , not . * m4/fts.m4 (gl_FUNC_FTS_CORE): Fix typo s/vfs/vfs.h/. Include , not . 2008-10-01 Bruno Haible Avoid the broken posix_spawn function on AIX 5.3 and 6.1. * m4/posix_spawn.m4 (gl_POSIX_SPAWN_WORKS): New macro. (gl_POSIX_SPAWN_BODY): Invoke it. Set REPLACE_POSIX_SPAWN if needed. * doc/posix-functions/posix_spawn.texi: Mention the AIX bugs. * doc/posix-functions/posix_spawnp.texi: Likewise. * m4/execute.m4 (gl_EXECUTE): Invoke gl_POSIX_SPAWN_WORKS, to check whether posix_spawn actually works. * m4/pipe.m4 (gl_PIPE): Likewise. * modules/execute (Files): Add m4/posix_spawn.m4. * modules/pipe (Files): Add m4/posix_spawn.m4. Reported and analyzed by Rainer Tammer . 2008-10-01 Jim Meyering remove trailing spaces * NEWS: Likewise. * lib/poll.c (poll): Likewise. * lib/sys_socket.in.h (SHUT_RDWR): Likewise. * lib/winsock.c (rpl_close): Likewise. * m4/memcmp.m4 (gl_FUNC_MEMCMP): Likewise. * modules/yield: Likewise. * tests/test-poll.c (connect_to_socket, poll1): Likewise. * tests/test-sys_select.c (connect_to_socket): Likewise. fts.c: adjust a new interface to be more generally useful * lib/fts.c (dirent_inode_sort_may_be_useful): Take an FD parameter. (fts_build): Adjust caller. 2008-09-30 Yoann Vandoorselaere * modules/cond-tests: New file. * tests/test-cond.c: New file. 2008-09-30 Yoann Vandoorselaere Bruno Haible * modules/cond (Dependencies): Add errno, time. * lib/glthread/cond.h: Include . (gl_cond_define, gl_cond_define_initialized): Use the same definition across platforms. 2008-09-30 Yoann Vandoorselaere Bruno Haible * m4/thread.m4 (gl_THREAD): Fix detection of pthread_atfork function. 2008-09-30 Yoann Vandoorselaere Bruno Haible * modules/tls-tests (Depends-on): Add thread, yield. (configure.ac): Remove all checks. (test_tls_LDADD): Use YIELD_LIB instead of LIBSCHED. * tests/test-tls.c (gl_thread_t, gl_thread_join, gl_thread_yield, gl_thread_self): Remove definitions. Include glthread/thread.h and glthread/yield.h instead. (test_tls): Pass an additional NULL argument to gl_thread_join. 2008-09-30 Yoann Vandoorselaere Bruno Haible * modules/lock-tests (Depends-on): Add thread, yield. (configure.ac): Remove all checks. (test_lock_LDADD): Use YIELD_LIB instead of LIBSCHED. * tests/test-lock.c (gl_thread_t, gl_thread_join, gl_thread_yield, gl_thread_self): Remove definitions. Include glthread/thread.h and glthread/yield.h instead. (test_lock, test_rwlock, test_recursive_lock, test_once): Pass an additional NULL argument to gl_thread_join. 2008-09-30 Bruno Haible Fix the Win32 implementation of the 'thread' module. * lib/glthread/thread.h [USE_WIN32_THREADS] (gl_thread_t): Change to a pointer type. (gl_thread_self): Invoke gl_thread_self_func. (gl_thread_self_func): New declaration. * lib/glthread/thread.c [USE_WIN32_THREADS] (self_key): New variable. (do_init_self_key, init_self_key): New functions. (struct gl_thread_struct): Renamed from 'struct thread_extra'. Remove some fields. (running_threads, running_lock): Remove variables. (get_current_thread_handle): New function. (gl_thread_self_func, wrapper_func, glthread_create_func, glthread_join_func, gl_thread_exit_func): Largely rewritten and simplified. 2008-09-30 Bruno Haible * lib/winsock-select.c (win32_poll_handle): Add shortcut for regular files. 2008-09-30 Jim Meyering fts.m4: correct the test for statfs.f_type * m4/fts.m4 (gl_FUNC_FTS_CORE): Include when checking for statfs.f_type. 2008-09-15 Simon Josefsson tests: avoid some compiler warnings * tests/test-memchr.c (main): Pass NULL indirectly. * tests/test-getdate.c (main): Remove unused variable 'ret'. 2008-09-29 Ondřej Vašík getdate.y: disallow countable dayshifts like "4 yesterday ago" * lib/getdate.y (relative_time_table) [tDAY_SHIFT]: New type for exactly specified dayshifts. (dayshift): New rule. (rel): Add dayshift. (relative_time_table) [tomorrow, yesterday, today, now]: Use tDAY_SHIFT in place of tDAY_UNIT. * tests/test-getdate.c: Add tests for now-disallowed countable dayshifts, e.g., "4 yesterday ago". 2008-09-29 Bruno Haible * tests/test-posix_spawn1.c: Renamed from tests/test-posix_spawn.c. * tests/test-posix_spawn1.in.sh: Renamed from tests/test-posix_spawn.in.sh. * tests/test-posix_spawn2.c: New file. * tests/test-posix_spawn2.in.sh: New file. * modules/posix_spawnp-tests (Files): Update. (Makefile.am): Update. Add test-posix_spawn2 to the tests. 2008-09-29 Bruno Haible Propagate effects of putenv/setenv/unsetenv to child processes. * lib/execute.c (execute): Use spawnvpe instead of spawnvp. * lib/pipe.c (create_pipe): Likewise. 2008-09-29 Bruno Haible Enable use of shell scripts as executables in mingw. * lib/execute.c (execute): When spawnv fails with error ENOEXEC, run the program as a shell script. * lib/pipe.c (create_pipe): Likewise. * lib/w32spawn.h (prepare_spawn): Add a hidden element in front of the resulting array. 2008-09-29 Eric Blake * m4/arpa_inet_h.m4 (gl_REPLACE_ARPA_INET_H): Fix typo. 2008-08-24 Paolo Bonzini * doc/posix-functions/accept.texi: Update mingw problems. * doc/posix-functions/bind.texi: Update mingw problems. * doc/posix-functions/close.texi: Update mingw problems. * doc/posix-functions/connect.texi: Update mingw problems. * doc/posix-functions/getpeername.texi: Update mingw problems. * doc/posix-functions/getsockname.texi: Update mingw problems. * doc/posix-functions/getsockopt.texi: Update mingw problems. * doc/posix-functions/ioctl.texi: Update mingw problems. * doc/posix-functions/listen.texi: Update mingw problems. * doc/posix-functions/recv.texi: Update mingw problems. * doc/posix-functions/recvfrom.texi: Update mingw problems. * doc/posix-functions/select.texi: Update mingw problems. * doc/posix-functions/send.texi: Update mingw problems. * doc/posix-functions/sendto.texi: Update mingw problems. * doc/posix-functions/setsockopt.texi: Update mingw problems. * doc/posix-functions/socket.texi: Update mingw problems. 2008-09-29 Paolo Bonzini Bruno Haible * lib/sys_select.in.h: Include sys/time.h. * m4/sys_select.h.m4: Test that struct timeval is fully defined. * modules/sys_select: Depend on sys_time. * tests/test-sys_select.c: Test that sys/select.h defines struct timeval fully. 2008-09-29 Bruno Haible * lib/sys_socket.in.h: Wrap the definitions in 'extern "C"'. * lib/sys_select.in.h: Likewise. 2008-09-29 Bruno Haible * lib/winsock.c (rpl_close, rpl_socket): Remove unused variables. 2008-09-29 Bruno Haible * m4/sockets.m4 (gl_SOCKETS): Check also for the need to use -lsocket. Set LIBSOCKET instead of augmenting LIBS. * modules/sockets (Link): New section. * modules/sockets-tests (test_sockets_LDADD): New variable. * modules/sys_select-tests (test_sys_select_LDADD): New variable. * modules/poll-tests (test_poll_LDADD): New variable. * NEWS: Document the change. 2008-09-29 Bruno Haible * m4/arpa_inet_h.m4 (gl_REPLACE_ARPA_INET_H): New macro. * m4/inet_ntop.m4 (gl_INET_NTOP): Invoke it instead of assigning ARPA_INET_H directly. * m4/inet_pton.m4 (gl_INET_PTON): Likewise. 2008-09-28 Bruno Haible * m4/sys_socket_h.m4 (gl_PREREQ_SYS_H_WINSOCK2): New macro, extracted from gl_HEADER_SYS_SOCKET. (gl_HEADER_SYS_SOCKET): Invoke it. * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise. 2008-09-28 Bruno Haible * doc/posix-headers/sys_select.texi: Mention 'struct timeval' problem. * tests/test-sys_select.c: Include , for struct timeval. Needed on OSF/1 4.0. 2008-09-28 Bruno Haible Override open more carefully. * lib/open.c (orig_open): New function. (rpl_open): Use orig_open instead of open. * lib/fcntl.in.h: Add special invocation convention. * m4/open.m4 (gl_PREREQ_OPEN): New macro. (gl_FUNC_OPEN): Invoke it. Override freopen more carefully. * lib/freopen.c (orig_freopen): New function. (rpl_freopen): Use orig_freopen instead of freopen. * m4/freopen.m4 (gl_PREREQ_FREOPEN): New macro. (gl_FUNC_FREOPEN): Invoke it. Override fopen more carefully. * lib/fopen.c (orig_fopen): New function. (rpl_fopen): Use orig_fopen instead of fopen. * m4/fopen.m4 (gl_PREREQ_FOPEN): New macro. (gl_FUNC_FOPEN): Invoke it. Needed on AIX. Reported by Rainer Tammer . 2008-09-28 Bruno Haible * lib/pipe.h (create_pipe_out, create_pipe_bidi): Add comment about SIGPIPE. 2008-09-28 Bruno Haible * tests/test-sigaction.c (handler, main): Disable the check whether SA_RESETHAND has reverted the installed handler to SIG_DFL. Needed on glibc systems with LinuxThreads. 2008-09-28 Bruno Haible * doc/posix-functions/freopen.texi: Mention the trailing slash problem. * lib/stdio.in.h (fopen, freopen): Undefine before redefining. Needed with AIX xlc. * lib/fcntl.in.h (open): Likewise. Reported by Rainer Tammer . 2008-09-28 Bruno Haible * modules/posix_spawnp-tests: New file. * tests/test-posix_spawn.c: New file. * tests/test-posix_spawn.in.sh: New file. New module 'posix_spawnp'. * modules/posix_spawnp: New file. * lib/spawnp.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawnp.texi: Mention the new module. New module 'posix_spawn'. * modules/posix_spawn: New file. * lib/spawn.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawn.texi: Mention the new module. New module 'posix_spawnattr_destroy'. * modules/posix_spawnattr_destroy: New file. * lib/spawnattr_destroy.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawnattr_destroy.texi: Mention the new module. New module 'posix_spawnattr_setsigmask'. * modules/posix_spawnattr_setsigmask: New file. * lib/spawnattr_setsigmask.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawnattr_setsigmask.texi: Mention the new module. New module 'posix_spawnattr_getsigmask'. * modules/posix_spawnattr_getsigmask: New file. * lib/spawnattr_getsigmask.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawnattr_getsigmask.texi: Mention the new module. New module 'posix_spawnattr_setsigdefault'. * modules/posix_spawnattr_setsigdefault: New file. * lib/spawnattr_setdefault.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawnattr_setsigdefault.texi: Mention the new module. New module 'posix_spawnattr_getsigdefault'. * modules/posix_spawnattr_getsigdefault: New file. * lib/spawnattr_getdefault.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawnattr_getsigdefault.texi: Mention the new module. New module 'posix_spawnattr_setschedpolicy'. * modules/posix_spawnattr_setschedpolicy: New file. * lib/spawnattr_setschedpolicy.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawnattr_setschedpolicy.texi: Mention the new module. New module 'posix_spawnattr_getschedpolicy'. * modules/posix_spawnattr_getschedpolicy: New file. * lib/spawnattr_getschedpolicy.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawnattr_getschedpolicy.texi: Mention the new module. New module 'posix_spawnattr_setschedparam'. * modules/posix_spawnattr_setschedparam: New file. * lib/spawnattr_setschedparam.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawnattr_setschedparam.texi: Mention the new module. New module 'posix_spawnattr_getschedparam'. * modules/posix_spawnattr_getschedparam: New file. * lib/spawnattr_getschedparam.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawnattr_getschedparam.texi: Mention the new module. New module 'posix_spawnattr_setpgroup'. * modules/posix_spawnattr_setpgroup: New file. * lib/spawnattr_setpgroup.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawnattr_setpgroup.texi: Mention the new module. New module 'posix_spawnattr_getpgroup'. * modules/posix_spawnattr_getpgroup: New file. * lib/spawnattr_getpgroup.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawnattr_getpgroup.texi: Mention the new module. New module 'posix_spawnattr_setflags'. * modules/posix_spawnattr_setflags: New file. * lib/spawnattr_setflags.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawnattr_setflags.texi: Mention the new module. New module 'posix_spawnattr_getflags'. * modules/posix_spawnattr_getflags: New file. * lib/spawnattr_getflags.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawnattr_getflags.texi: Mention the new module. New module 'posix_spawnattr_init'. * modules/posix_spawnattr_init: New file. * lib/spawnattr_init.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawnattr_init.texi: Mention the new module. New module 'posix_spawn_file_actions_destroy'. * modules/posix_spawn_file_actions_destroy: New file. * lib/spawn_faction_destroy.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawn_file_actions_destroy.texi: Mention the new module. New module 'posix_spawn_file_actions_addopen'. * modules/posix_spawn_file_actions_addopen: New file. * lib/spawn_faction_addopen.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawn_file_actions_addopen.texi: Mention the new module. New module 'posix_spawn_file_actions_adddup2'. * modules/posix_spawn_file_actions_adddup2: New file. * lib/spawn_faction_adddup2.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawn_file_actions_adddup2.texi: Mention the new module. New module 'posix_spawn_file_actions_addclose'. * modules/posix_spawn_file_actions_addclose: New file. * lib/spawn_faction_addclose.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawn_file_actions_addclose.texi: Mention the new module. New module 'posix_spawn_file_actions_init'. * modules/posix_spawn_file_actions_init: New file. * lib/spawn_faction_init.c: New file, from GNU libc with modifications. * doc/posix-functions/posix_spawn_file_actions_init.texi: Mention the new module. New module 'posix_spawn-internal'. * modules/posix_spawn-internal: New file. * lib/spawn_int.h: New file, from GNU libc with modifications. * lib/spawni.c: New file, from GNU libc with modifications. * m4/posix_spawn.m4: New file. New module 'spawn'. * modules/spawn: New file. * lib/spawn.in.h: New file, from GNU libc with modifications. * m4/spawn_h.m4: New file. * doc/posix-headers/spawn.texi: Mention the new module. 2008-09-28 Bruno Haible * modules/sched-tests: New file. * tests/test-sched.c: New file. New module 'sched'. * modules/sched: New file. * lib/sched.in.h: New file. * m4/sched_h.m4: New file. * doc/posix-headers/sched.texi: Mention the new module. 2008-09-27 Eric Blake Fix previous patch, and tweak references to $0. * posix-modules: Call func_gnulib_dir before using $gnulib_dir. (func_version, func_gnulib_dir): Don't call this program gnulib-tool. (func_gnulib_dir, func_tmpdir, func_fatal_error): Avoid shell bugs with using $0 in function. * gnulib-tool (func_gnulib_dir, func_tmpdir): Likewise. (func_fatal_error): Reuse the name the user invoked us with. 2008-09-27 Bruno Haible * m4/iconv_h.m4 (gl_REPLACE_ICONV_H): New macro. (gl_ICONV_H_DEFAULTS): Initialize ICONV_H here... (gl_ICONV_H): Not here. * m4/iconv_open.m4 (gl_REPLACE_ICONV_OPEN): Invoke gl_REPLACE_ICONV_H instead of assigning ICONV_H directly. * m4/wchar.m4 (gl_REPLACE_WCHAR_H): New macro. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Invoke it instead of assigning WCHAR_H directly. 2008-09-27 Bruno Haible * lib/arpa_inet.in.h: Include the GL_LINK_WARNING anchor. * modules/arpa_inet (Depends-on): Add link-warning. (Makefile.am): Insert the definition of GL_LINK-WARNING. * modules/unistd (Makefile.am): Likewise. 2008-09-26 Bruno Haible * posix-modules (cvsdatestamp, last_checkin_date, version): Remove variables. (func_version): Essentially copied from gnulib-tool. (func_exit, func_gnulib_dir, func_tmpdir, func_fatal_error, func_readlink): Copied from gnulib-tool. 2008-09-26 Bruno Haible * gnulib-tool (func_version): Change directory to $gnulib_dir before invoking git-version-gen. 2008-09-26 Bruno Haible * posix-modules: Update to directory names changed on 2008-01-19. Remove commas in output before splitting into words. No more need to avoid 'ftruncate' since 2007-02-19. 2008-09-26 Bruno Haible * doc/posix-headers/errno.texi: Remove mention of module 'EOVERFLOW'. 2008-09-26 Bruno Haible * lib/fwriteerror.c (do_fwriteerror): Ignore error EPIPE. * modules/fwriteerror (Depends-on): Add errno. 2008-09-26 Bruno Haible * tests/test-vc-list-files-git.sh: Explain reason for skipping test. * tests/test-vc-list-files-cvs.sh: Likewise. 2008-09-26 Bruno Haible * doc/posix-headers/sys_resource.texi: Reorder items. 2008-09-26 Jim Meyering fts: tweak inode comparison function * lib/fts.c (fts_compare_ino): Sort on increasing, not decreasing inode numbers, as documented. fts: sort dirent entries on inode number before traversing This avoids a quadratic, seek-related performance penalty when operating on a directory containing many entries (measurable at 10k; 3.5 hours at 2 million entries with a cold cache) on certain types of file systems, including ext3 and ext4, but not tmpfs. * lib/fts.c (DT_MUST_BE, NOT_AN_INODE_NUMBER, D_INO): Define. (FTS_INODE_SORT_DIR_ENTRIES_THRESHOLD): Define if not defined. (S_MAGIC_TMPFS, S_MAGIC_NFS): Define. (fs_handles_readdir_ordered_dirents_efficiently): New function. (dirent_inode_sort_may_be_useful, fts_compare_ino): Likewise. (fts_build): Set the stat.st_ino member from D_INO. If it is likely to be useful, sort dirent entries on inode number. * m4/fts.m4 (gl_FUNC_FTS_CORE): Check for fstatfs, sys/vfs.h, and the struct statfs.f_type member. * modules/fts (Depends-on): Add d-ino. 2008-09-26 Bruno Haible * modules/sigpipe-die (Depends-on): Add sigpipe. * lib/stdio.in.h (fprintf, vfprintf, printf, vprintf, fputc, putc, putchar, fputs, puts, fwrite): Replace when REPLACE_STDIO_WRITE_FUNCS and GNULIB_STDIO_H_SIGPIPE are set. * lib/stdio-write.c: New file. * m4/stdio_h.m4 (gl_STDIO_H): Set GNULIB_FPRINTF, GNULIB_PRINTF, GNULIB_VFPRINTF, GNULIB_VPRINTF, GNULIB_FPUTC, GNULIB_PUTC, GNULIB_PUTCHAR, GNULIB_FPUTS, GNULIB_PUTS, GNULIB_FWRITE, REPLACE_STDIO_WRITE_FUNCS. (gl_STDIO_H_DEFAULTS): Initialize GNULIB_FPRINTF, GNULIB_PRINTF, GNULIB_VFPRINTF, GNULIB_VPRINTF, GNULIB_FPUTC, GNULIB_PUTC, GNULIB_PUTCHAR, GNULIB_FPUTS, GNULIB_PUTS, GNULIB_FWRITE, GNULIB_STDIO_H_SIGPIPE, REPLACE_STDIO_WRITE_FUNCS. * modules/stdio (Files): Add lib/stdio-write.c. (Makefile.am): Substitute GNULIB_FPRINTF, GNULIB_PRINTF, GNULIB_VFPRINTF, GNULIB_VPRINTF, GNULIB_FPUTC, GNULIB_PUTC, GNULIB_PUTCHAR, GNULIB_FPUTS, GNULIB_PUTS, GNULIB_FWRITE, GNULIB_STDIO_H_SIGPIPE, REPLACE_STDIO_WRITE_FUNCS. * m4/fprintf-posix.m4 (gl_REPLACE_FPRINTF): Define REPLACE_FPRINTF_POSIX. * m4/printf-posix-rpl.m4 (gl_REPLACE_PRINTF): Define REPLACE_PRINTF_POSIX. * m4/vfprintf-posix.m4 (gl_REPLACE_VFPRINTF): Define REPLACE_VFPRINTF_POSIX. * m4/vprintf-posix.m4 (gl_REPLACE_VPRINTF): Define REPLACE_VPRINTF_POSIX. * doc/posix-functions/fprintf.texi: Mention the sigpipe module and the SIGPIPE issue. * doc/posix-functions/fputc.texi: Likewise. * doc/posix-functions/fputs.texi: Likewise. * doc/posix-functions/fwrite.texi: Likewise. * doc/posix-functions/printf.texi: Likewise. * doc/posix-functions/putc.texi: Likewise. * doc/posix-functions/putchar.texi: Likewise. * doc/posix-functions/puts.texi: Likewise. * doc/posix-functions/vfprintf.texi: Likewise. * doc/posix-functions/vprintf.texi: Likewise. * modules/safe-write (Depends-on): Add write. * modules/sigpipe-tests: New file. * tests/test-sigpipe.c: New file. * tests/test-sigpipe.sh: New file. * modules/write: New file. * lib/unistd.in.h: Include . (write): New declaration. * lib/write.c: New file. * m4/write.m4: New file. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_UNISTD_H_SIGPIPE, GNULIB_WRITE, REPLACE_WRITE. * modules/unistd (Makefile.am): Substitute GNULIB_UNISTD_H_SIGPIPE, GNULIB_WRITE, REPLACE_WRITE. * doc/posix-functions/write.texi: Mention the write, sigpipe modules and the SIGPIPE issue. * lib/signal.in.h (SIGPIPE): Define to a replacement value. (raise): New declaration. * lib/sigprocmask.c (SIGPIPE_handler): New variable. (ext_signal): New function. (rpl_raise): New function. * m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Initialize GNULIB_SIGNAL_H_SIGPIPE. * modules/signal (Makefile.am): Substitute GNULIB_SIGNAL_H_SIGPIPE. * doc/posix-headers/signal.texi: Mention the SIGPIPE issue. * modules/sigpipe: New file. * m4/sigpipe.m4: New file. 2008-09-25 Derek Price Bruno Haible * gnulib-tool (func_import): Report all license incompatibilities, not just the first one. 2008-09-25 Bruno Haible * gnulib-tool (func_import): When computing the edits, consider not only the Makefile.ams that exist but also those that will be generated. 2008-09-25 Simon Josefsson * modules/sys_select-tests (Depends-on): Remove sys_select itself, fixes gnulib-tool --test warning about duplicate dependency. 2008-09-25 Bruno Haible * gnulib-tool: Don't ask the user to perform edits in the generated Makefile.ams. (func_emit_lib_Makefile_am): Emit empty SUBDIRS. Execute edits that apply to the Makefile.am being generated. (func_emit_tests_Makefile_am): Execute edits that apply to the Makefile.am being generated. (func_import): Setup list of Makefile.am edits before emitting the Makefile.ams, not at the end. (func_create_testdir): Update. Reported by Yoann Vandoorselaere . 2008-09-25 Yoann Vandoorselaere * gnulib-tool (func_import): Store the --tests-base option in the comment in gnulib-cache.m4. 2008-09-24 Paolo Bonzini * NEWS: Document increased portability that sys_select now provides. * lib/sys_select.in.h: Install select wrapper. * lib/sys_socket.in.h: Use more descriptive name when there is no select wrapper. * lib/winsock-select.c: New. * m4/sys_select_h.m4: Compile lib/winsock-select.c if WinSock is used. Require gl_HEADER_SYS_SOCKET. * modules/sys_select: Depend on alloca, add lib/winsock-select.c. * modules/sys_select-tests: Copy dependencies from modules/poll-tests. * tests/test-sys_select.c: Add functional tests. 2008-09-24 Eric Blake open, fopen: close fd leak in last patch * lib/open.c (rpl_open): Close fd before returning error. * lib/fopen.c (rpl_fopen): Close fd before returning error. * doc/posix-functions/open.texi (open): Document that Irix also has the bug. * doc/posix-functions/fopen.texi (fopen): Likewise. Reported by Paolo Bonzini. 2008-09-24 Bruno Haible Ensure that a filename ending in a slash cannot be used to access a non-directory. * lib/open.c (rpl_open): When the filename ends in a slash, use fstat() to check whether it's really a directory. * lib/fopen.c: Include fcntl.h, unistd.h. (rpl_fopen): When the filename ends in a slash, use open(), fstat(), and fdopen(). * modules/fopen (Depends-on): Add unistd. * tests/test-open.c (main): Try to open "/dev/null/" as a directory. * tests/test-fopen.c (main): Likewise. * doc/posix-functions/open.texi: Mention the HP-UX, Solaris bug. * doc/posix-functions/fopen.texi: Likewise. Reported by Eric Blake. 2008-09-23 Eric Blake c-stack: avoid compiler optimizations when provoking overflow * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Make recursion harder to optimize, to ensure a stack overflow occurs. * tests/test-c-stack.c (recurse): Likewise. Borrowed from libsigsegv. c-stack: work around Irix sigaltstack bug * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Check whether sigaltstack uses wrong end of stack_t (copied in part from libsigsegv). * lib/c-stack.c (c_stack_action) [!HAVE_LIBSIGSEGV]: Work around Irix bug, without requiring an over-allocation. * doc/posix-functions/sigaltstack.texi (sigaltstack): Document the bug. fopen: document mingw bug on directories * doc/posix-functions/fopen.texi (fopen): Mention mingw bug for not allowing a stream visiting a directory, even though reading from such a stream is not portable. 2008-09-23 Paolo Bonzini * lib/poll.c: Rewrite. * modules/poll: Depend on alloca. 2008-09-23 Paolo Bonzini * lib/sys_socket.in.h: Do not implement rpl_setsockopt here, instead define prototypes for a full set of wrappers. Ensure that Cygwin does not use the compatibility code, which is only for MinGW. * lib/winsock.c: New. * m4/sys_socket_h.m4: Compile lib/winsock.c if WinSock is being used. * modules/sys_socket: Add lib/winsock.c. * modules/poll-tests: Add errno and perror. * tests/test-poll.c: Use ioctl, not ioctlsocket. 2008-09-23 Paolo Bonzini * tests/test-poll.c: Downgrade minimum needed Winsock version. 2008-09-23 Bruno Haible * doc/posix-functions/*: Add info about functions missing on IRIX 5.3. * doc/glibc-functions/*: Likewise. 2008-09-23 Simon Josefsson * tests/test-perror.sh (tmpfiles): Cleanup temporary files on success. 2008-09-22 Eric Blake Bruno Haible vasnprintf: fix x86/glibc regression on printf("%La", 0.0L) * lib/vasnprintf.c (VASNPRINTF): Support 0.0 on platforms that supply %A but mishandle pseudo-NaN. Reported by Simon Josefsson. 2008-09-21 Bruno Haible * tests/test-lock.c (main): Tweak skip message. * tests/test-tls.c (main): Likewise. 2008-09-21 Bruno Haible * m4/sigaction.m4 (gl_SIGACTION): Remove unnecessary AC_SUBST. Check whether 'struct sigaction' has sa_sigaction here... (gl_PREREQ_SIG_HANDLER_H): ... not here. (gl_PREREQ_SIGACTION): Remove unnecessary AC_SUBST. 2008-09-21 Bruno Haible * MODULES.html.sh (Support for obsolete systems lacking ANSI C 89): New section. (Support for systems lacking ANSI C 89): Move stdlib, exit, strtol, strtoul, memchr, memcmp, memcpy, memmove, memset, strcspn, strpbrk to the new section. (Support for obsolete systems lacking POSIX:2001): New section. (String handling ): Move strdup to the new section. Suggested by Simon Josefsson and Paolo Bonzini. 2008-09-21 Bruno Haible * tests/test-vasnprintf-posix.c (test_function): Allow 3-digit exponents in %e and %g results on 'long double'. Needed for mingw's improved *printf functions. * tests/test-vasprintf-posix.c (test_function): Likewise. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. Reported by Eric Blake. 2008-09-21 Bruno Haible * tests/test-snprintf-posix.h (test_function): Remove useless ASSERTs. * tests/test-sprintf-posix.h (test_function): Likewise. 2008-09-21 Bruno Haible * modules/getpass (Depends-on): Add strdup-posix. New module 'strdup-posix'. * modules/strdup-posix: New file. * m4/strdup.m4 (gl_FUNC_STRDUP_POSIX): New macro. * lib/string.in.h (strdup): Replace if REPLACE_STRDUP is 1. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize REPLACE_STRDUP. * modules/string (Makefile.am): Substitute REPLACE_STRDUP. * doc/posix-functions/strdup.texi: Mention module strdup-posix. * MODULES.html.sh (Support for systems lacking POSIX:2001): Add strdup-posix. * modules/strdup (Depends-on): Remove malloc-posix. 2008-09-20 Bruno Haible * lib/fstrcmp.c: Add data about branch probabilities, from Ralf Wildenhues. 2008-09-20 Bruno Haible Ensure that wint_t gets defined on IRIX 5.3. * lib/wchar.in.h (wint_t): Define if not defined by the system. * lib/wctype.in.h (wint_t): Likewise. (__wctype_wint_t): Remove type. (isw*): Use wint_t instead of __wctype_wint_t. * m4/wchar.m4 (gl_WCHAR_H): Invoke gt_TYPE_WINT_T and set HAVE_WINT_T. * modules/wchar (Files): Add m4/wint_t.m4. (Makefile.am): Substitute HAVE_WINT_T. * tests/test-wchar.c: Check that wchar_t and wint_t are defined. * tests/test-wctype.c: Check that wint_t is defined. * doc/posix-headers/wchar.texi: Mention the IRIX 5 problem. * doc/posix-headers/wctype.texi: Likewise. Reported by Tom G. Christensen . 2008-09-18 Bruno Haible * gnulib-tool (func_exit): Update comment. 2008-09-18 Simon Josefsson * modules/getaddrinfo (Depends-on): Remove strdup, this module assumes strdup exists and does not depend on strdup to return ENOMEM on out of memory conditions. 2008-09-18 Bruno Haible * lib/vasnprintf.c (VASNPRINTF): When printing ±0.0L in NEED_PRINTF_INFINITE_LONG_DOUBLE case with 'e' format, always use two digits for the exponent. 2008-09-18 Jim Meyering Bruno Haible * lib/vasnprintf.c (decimal_point_char): Define also if NEED_PRINTF_INFINITE_LONG_DOUBLE. 2008-09-16 Bruno Haible and Eric Blake vasnprintf: support Irix 5.3 * lib/vasnprintf.c (VASNPRINTF): Also handle -0.0L on platforms that mishandle long double infinity. Reported by Tom G. Christensen. 2008-09-16 Bruno Haible * doc/glibc-functions/scandir.texi: Mention the function is missing on Solaris 9. * doc/glibc-functions/alphasort.texi: Likewise. Reported by Michael Haubenwallner . 2008-09-16 Jim Meyering posix-shell.m4: reject opensolaris's "sh (AT&T Research) 1993-12-28 s+" * m4/posix-shell.m4 (gl_POSIX_SHELL): Reject a shell that lets a umask modification leak out of a subshell. Otherwise, the opensolaris /bin/sh would be accepted and thus cause unwarranted failures in the coreutils test suite. 2008-09-16 Paolo Bonzini * tests/test-poll.c (connect_to_socket): Allow non-blocking connect to succeed. 2008-09-16 Jim Meyering avoid spurious test failure when library is built without ACL support * m4/acl.m4 (USE_ACL): Define as a shell variable, too, for... * modules/acl-tests (Makefile.am) [TESTS_ENVIRONMENT]: Add USE_ACL. * tests/test-file-has-acl.sh: Skip if USE_ACL == 0. * tests/test-copy-acl.sh: Likewise. 2008-09-15 Ralf Wildenhues * lib/fstrcmp.c (fstrcmp_bounded): Use a second, less quick upper bound based on character occurrence counts. 2008-09-15 Eric Blake tests: avoid some compiler warnings * tests/test-memchr.c (main): Pass NULL indirectly. * tests/test-closein.c (main): Avoid unused variable. 2008-09-15 Bruno Haible * m4/errno_h.m4 (gl_HEADER_ERRNO_H_BODY): Test for all the macros that are missing on OpenBSD 4.0 individually. Reported by Yoann Vandoorselaere . 2008-09-15 Bruno Haible * doc/posix-headers/errno.texi: Mention the Cygwin problem. * doc/posix-functions/strerror.texi: Mention also Cygwin. * doc/posix-functions/perror.texi: Likewise. * m4/errno_h.m4 (gl_HEADER_ERRNO_H_BODY): Test also whether ECANCELED is missing. Reported by Eric Blake. * lib/errno.in.h: Use replacement values >= 2000. Reported by Eric Blake. 2008-09-14 Ralf Wildenhues * lib/fstrcmp.c (EXTRA_CONTEXT_FIELDS): Add field 'edit_count_limit'. (EARLY_ABORT): Return true when the edit_count has grown too beyond the limit. (fstrcmp_bounded): Initialize the edit_count_limit. Return 0 when compareseq was aborted. 2008-09-14 Bruno Haible * lib/fstrcmp.c (EXTRA_CONTEXT_FIELDS): Combine xvec_edit_count and yvec_edit_count. (NOTE_DELETE, NOTE_INSERT): Increment the combined edit count. (fstrcmp_bounded): Simplify result computation accordingly. 2008-09-14 Ralf Wildenhues * lib/fstrcmp.h (fstrcmp_bounded): New declaration. (fstrcmp): Define in terms of fstrcmp_bounded. * lib/fstrcmp.c (fstrcmp_bounded): Renamed from fstrcmp. Add lower_bound argument. Return quickly if the result is certainly < lower_bound. * tests/test-fstrcmp.c (check_fstrcmp): Test also fstrcmp_bounded. 2008-09-14 Ralf Wildenhues * lib/diffseq.h (EARLY_ABORT): New macro. (compareseq): Change return type to bool. Return true when EARLY_ABORT evaluates to true. 2008-09-14 Bruno Haible * modules/perror-tests: New file. * tests/test-perror.sh: New file. * tests/test-perror.c: New file. New module 'perror'. * lib/stdio.in.h (perror): New declaration. * lib/perror.c: New file. * m4/perror.m4: New file. * modules/perror: New file. * MODULES.html.sh (Support for systems lacking POSIX:2001): Add perror. * doc/posix-functions/perror.texi: Mention the perror module. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize GNULIB_PERROR, REPLACE_PERROR. * modules/stdio (Makefile.am): Substitute GNULIB_PERROR, REPLACE_PERROR. 2008-09-14 Bruno Haible * modules/stdio (Makefile.am): Reorder to match the order in lib/stdio.in.h. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Likewise. 2008-09-13 Bruno Haible * lib/sys_socket.in.h (EINPROGRESS, ...): Remove definitions. 2008-09-13 Bruno Haible Extend strerror to cover the added errno values. * lib/strerror.c: Include errno.h and winsock2.h if it exists. (rpl_strerror): Provide error messages for the added errno values and for the WSA* values. * m4/strerror.m4 (gl_FUNC_STRERROR): Test REPLACE_STRERROR. (gl_FUNC_STRERROR_SEPARATE): If errno.h is replaced, always replace strerror. (gl_PREREQ_STRERROR): Test whether winsock2.h exists. * modules/strerror (Depends-on): Add errno. * doc/posix-functions/strerror.texi: Document the change. * tests/test-strerror.c (main): Check also the string for ETIMEDOUT and EOVERFLOW. 2008-09-13 Bruno Haible * modules/EOVERFLOW: Remove file. * m4/eoverflow.m4: Remove file. * modules/EOVERFLOW-tests: Remove file. * tests/test-EOVERFLOW.c: Remove file. * modules/fprintf-posix (Depends-on): Replace EOVERFLOW with errno. * modules/ftell (Depends-on): Likewise. * modules/getdelim (Depends-on): Likewise. * modules/getugroups (Depends-on): Likewise. * modules/poll (Depends-on): Likewise. * modules/snprintf (Depends-on): Likewise. * modules/sprintf-posix (Depends-on): Likewise. * modules/vasnprintf (Depends-on): Likewise. * modules/vasprintf (Depends-on): Likewise. * modules/vfprintf-posix (Depends-on): Likewise. * modules/vsnprintf (Depends-on): Likewise. * modules/vsprintf-posix (Depends-on): Likewise. * modules/xvasprintf (Depends-on): Likewise. * modules/unistdio/u8-vasnprintf (Depends-on): Likewise. * modules/unistdio/u8-vasprintf (Depends-on): Likewise. * modules/unistdio/u8-vsnprintf (Depends-on): Likewise. * modules/unistdio/u8-vsprintf (Depends-on): Likewise. * modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise. * modules/unistdio/u8-u8-vasprintf (Depends-on): Likewise. * modules/unistdio/u8-u8-vsnprintf (Depends-on): Likewise. * modules/unistdio/u8-u8-vsprintf (Depends-on): Likewise. * modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-u16-vasprintf (Depends-on): Likewise. * modules/unistdio/u16-u16-vsnprintf (Depends-on): Likewise. * modules/unistdio/u16-u16-vsprintf (Depends-on): Likewise. * modules/unistdio/u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-vasprintf (Depends-on): Likewise. * modules/unistdio/u16-vsnprintf (Depends-on): Likewise. * modules/unistdio/u16-vsprintf (Depends-on): Likewise. * modules/unistdio/u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-vasprintf (Depends-on): Likewise. * modules/unistdio/u32-vsnprintf (Depends-on): Likewise. * modules/unistdio/u32-vsprintf (Depends-on): Likewise. * modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-u32-vasprintf (Depends-on): Likewise. * modules/unistdio/u32-u32-vsnprintf (Depends-on): Likewise. * modules/unistdio/u32-u32-vsprintf (Depends-on): Likewise. * modules/unistdio/ulc-fprintf (Depends-on): Likewise. * modules/unistdio/ulc-vasnprintf (Depends-on): Likewise. * modules/unistdio/ulc-vasprintf (Depends-on): Likewise. * modules/unistdio/ulc-vfprintf (Depends-on): Likewise. * modules/unistdio/ulc-vsnprintf (Depends-on): Likewise. * modules/unistdio/ulc-vsprintf (Depends-on): Likewise. * MODULES.html.sh: Remove EOVERFLOW. * NEWS: Mention the change. 2008-09-13 Bruno Haible * modules/errno-tests: New file. * tests/test-errno.c: New file, incorporating tests/test-EOVERFLOW.c. * lib/errno.in.h: New file. * m4/errno_h.m4: New file, borrowing from m4/eoverflow.m4. * modules/errno: New file. * doc/posix-headers/errno.texi: Update documentation. * MODULES.html.sh (Support for systems lacking POSIX:2001): Add errno. 2008-09-13 Bruno Haible * tests/test-poll.c: Use #if for native Windows, rather than testing __MSVCRT__. 2008-09-13 Yoann Vandoorselaere Bruno Haible * lib/glob.c: Don't include on native Windows. (WINDOWS32): New macro. (glob) [WINDOW32]: Provide a reasonable replacement for getenv("HOME"). 2008-09-13 Bruno Haible * lib/glthread/cond.h [USE_SOLARIS_THREADS] (ETIMEDOUT): Remove macro. (glthread_cond_timedwait_multithreaded): New declaration. (glthread_cond_timedwait): Use it. * lib/glthread/cond.c [USE_SOLARIS_THREADS] (glthread_cond_timedwait_multithreaded): New function. 2008-09-12 Paolo Bonzini * modules/poll-tests: Do not check for io.h. * tests/test-poll.c: Check for __MSVCRT__ instead. 2008-09-12 Paolo Bonzini * lib/sys_socket.in.h (EINPROGRESS): Define for Winsock case. * modules/poll-tests: Add inet_pton, stdbool, sockets. * tests/test-poll.c: Use them. Use _pipe on Windows. 2008-09-12 Paolo Bonzini * modules/poll-tests: New. * tests/test-poll.c: New. 2008-09-12 Eric Blake frexp: test for NetBSD failure on -0.0 * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Enhance test, since some, but not all, bugs from NetBSD 3.0 have been fixed. * doc/posix-functions/frexp.texi (frexp): Document bug. Reported by Thomas Klausner. signbit: work around bug of HP-UX 10.20 cc with -0.0 literal * m4/signbit.m4 (gl_SIGNBIT_TEST_PROGRAM): Rewrite test to avoid literal -0.0. Reported by Jonathan C. Patschke . 2008-09-11 Yoann Vandoorselaere * lib/glthread/cond.h: Use dummy implementation also if USE_WIN32_THREADS. 2008-09-11 Yoann Vandoorselaere * modules/fnmatch-posix (License): Change to LGPLv2+. * modules/fnmatch-gnu (License): Likewise. 2008-09-11 Yoann Vandoorselaere * lib/poll.c (poll): Fix polling unconnected server sockets on WIN32. 2008-09-11 Jim Meyering * users.txt: Add gtk-vnc. 2008-09-08 Simon Josefsson * tests/test-bitrotate.c: Test 8/16-bit rotates with 0 and maximum rotate amounts. * lib/bitrotate.h: Doc fix, mention that N can be wider than minimally required for 16-bit and 8-bit rotates. * lib/bitrotate.h (rotl64, rotr64, rotl32, rotl32, rotl16, rotr16, rotl8, rotr8): Use UINT64_MAX, UINT32_MAX, UINT16_MAX, and UINT8_MAX instead of hard-coded constants. Suggested by Paul Eggert. 2008-09-07 Bruno Haible * tests/test-striconveh.c (main): Check behaviour when converting from UTF-7. Make striconveh work better with stateful encodings. * lib/striconveh.c (iconv_carefully, iconv_carefully_1): Don't assume that iconv does not increment the inptr when returning -1/EINVAL. 2008-09-07 Bruno Haible * build-aux/config.rpath: Update according to libtool-2.2.6. * build-aux/config.libpath: Likewise. 2008-09-06 Bruno Haible * lib/freadahead.c (freadahead): Add conditional for SLOW_BUT_NO_HACKS. * lib/freadptr.c (freadptr): Likewise. * lib/freadseek.c (freadptrinc): Likewise. Reported by Simon Josefsson. 2008-09-06 Bruno Haible * modules/freadptr (License): Change to LGPLv2+. * modules/freadseek (License): Likewise. Suggested by Eric Blake. * modules/memchr2 (License): Change to LGPLv2+. Approved by Eric Blake. 2008-09-04 Ralf Wildenhues Bruno Haible Make gnulib-tool work with native 'sed' on AIX. * gnulib-tool (sed_noop): New variable. (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am, func_import, func_add_or_update, func_create_testdir): Use it to initialize sed script variables. Reported by Albert Chin . 2008-09-04 Albert Chin Bruno Haible * m4/include_next.m4 (gl_INCLUDE_NEXT): Add check whether #include_next also works after #include directives. 2008-09-04 Ondřej Vašík getdate.y: reject an out-of-range timezone value * lib/getdate.y (time_zone_hhmm): Reject any TZ offset that is outside the range [-24...+24]. When specified with only one or two digits, * tests/test-getdate.c: Tests for the fix. * doc/getdate.texi: Document this change. 2008-09-03 Bruno Haible * doc/glibc-functions/strverscmp.texi: Mention the strverscmp module. 2008-09-02 Simon Josefsson * lib/bitrotate.h (rotl64, rotr64): Add. Suggested by Bruce Korb with ideas from Ben Pfaff , Bruno Haible and Eric Blake . * tests/test-bitrotate.c: Add more test vectors. 2008-09-02 Eric Blake vasnprintf-posix: handle large precision via %.*d * lib/vasnprintf.c (VASNPRINTF): Don't pass precision to snprintf when handling it ourselves. * tests/test-vasnprintf-posix.c (test_function): Add test. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. * tests/test-vasprintf-posix.c (test_function): Likewise. Reported by Alain Guibert. 2008-09-01 Eric Blake c-stack: make configure-time check more robust * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Check for successful sigaction call. Reported by Tom G. Christensen. 2008-09-01 Bruno Haible New module 'findprog-lgpl'. * modules/findprog-lgpl: New file. * lib/findprog-lgpl.c: New file. * lib/findprog.c: Compile nothing in findprog.c if findprog-lgpl.c is also compiled. Consider the possibly defined symbol IN_FINDPROG_LGPL to decide whether to use strdup or xstrdup, concatenated_filename or xconcatenated_filename. 2008-09-01 Bruno Haible Split module 'concat-filename' into 'concat-filename' (LGPL) and 'xconcat-filename' (GPL). * modules/concat-filename (Depends-on): Add malloc-posix, remove xalloc. (License): Change to LGPLv2+. * modules/xconcat-filename: New file. * lib/concat-filename.h (concatenated_filename): Change specification. (xconcatenated_filename): New declaration. * lib/concat-filename.c: Include errno.h, stdlib.h, not xalloc.h. (concatenated_filename): Use malloc instead of xalloc. Handle out-of- memory situations. * lib/xconcat-filename.c: New file. * NEWS: Mention the change. * lib/findprog.c: Include concat-filename.h, not filename.h. (find_in_path): Use xconcatenated_filename instead of concatenated_filename. * lib/javacomp.c: Include concat-filename.h, not filename.h. (is_envjavac_gcj43_usable, is_envjavac_oldgcj_14_14_usable, is_envjavac_oldgcj_14_13_usable, is_envjavac_nongcj_usable, is_gcj_present, is_gcj43_usable, is_oldgcj_14_14_usable, is_oldgcj_14_13_usable, is_javac_usable): Use xconcatenated_filename instead of concatenated_filename. * lib/javaexec.c: Include concat-filename.h, not filename.h. (execute_java_class): Use xconcatenated_filename instead of concatenated_filename. * modules/findprog (Depends-on): Add xconcat-filename, remove filename. * modules/javacomp (Depends-on): Likewise. * modules/javaexec (Depends-on): Likewise. 2008-09-01 Bruno Haible Split module 'filename' into 'filename' and 'concat-filename'. * modules/filename: Keep only lib/filename.h. (License): Change to LGPLv2+. * modules/concat-filename: New file, extracted from modules/filename. * lib/filename.h (concatenated_filename): Remove declaration. * lib/concat-filename.h: New file, extracted from lib/filename.h. * lib/concat-filename.c: Include concat-filename.h. * NEWS: Mention the change. 2008-09-01 Simon Josefsson * lib/bitrotate.h (rotl8, rotr8): Add. * modules/bitrotate (configure.ac): Need AC_REQUIRE([AC_C_INLINE]). (Description): Mention stdint.h. Reported by Bruno Haible . * lib/bitrotate.h (rotr16, rotl16): Fix mask value. Reported by Paolo Bonzini . 2008-08-31 Bruno Haible Assume Solaris specific bi-arch conventions on Solaris systems. * m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): On Solaris in 64-bit mode, set acl_libdirstem to lib/64. Also set acl_libdirstem2. * m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): If acl_libdirstem does not work, try acl_libdirstem2 as fallback. Otherwise treat acl_libdirstem2 like acl_libdirstem. (AC_LIB_LINKFLAGS_FROM_LIBS): Treat acl_libdirstem2 like acl_libdirstem. * NEWS: Mention the change. Reported by Ben Taylor . 2008-08-31 Jim Meyering * lib/strftime.h: Add comments describing the two added arguments. remove duplicate #include directives * lib/chdir-long.c [TEST_CHDIR]: Remove duplicate #include . * lib/putenv.c: Remove duplicate #include . 2008-08-31 Bruno Haible New module 'sigpipe-die'. * modules/sigpipe-die: New file. * lib/sigpipe-die.h: New file. * lib/sigpipe-die.c: New file. * MODULES.html.sh (Signal handling): Add sigpipe-die. 2008-08-31 Bruno Haible Don't override previously installed signal handlers. * lib/fatal-signal.c (saved_sigactions): New variable. (uninstall_handlers): Reset the signal to the saved handler, not to SIG_DFL (except when ignored). (install_handlers): Save the previous handlers. 2008-08-30 Bruno Haible * gnulib-tool (func_reset_sigpipe): New function. (func_get_automake_snippet, func_modules_transitive_closure, func_import): Invoke it before a join command that reads from stdin, to avoid "echo: write error: Broken pipe" error messages on stderr. Reported by Sam Steingold . 2008-08-30 Bruno Haible * m4/fopen.m4 (gl_FUNC_FOPEN): Test against bug with trailing slash. Code copied from m4/open.m4. * lib/fopen.c (rpl_fopen): Return NULL if the mode specifies write access and the filename ends in a slash. Code copied from lib/open.c. * doc/posix-functions/fopen.texi: Document bug with trailing slash. * tests/test-fopen.c (main): Check against bug with trailing slash. 2008-08-29 Bruno Haible Avoid some "gcc -pedantic" warnings. * m4/include_next.m4 (gl_INCLUDE_NEXT): Set also PRAGMA_SYSTEM_HEADER. * lib/arpa_inet.in.h: Use PRAGMA_SYSTEM_HEADER. * lib/dirent.in.h: Likewise. * lib/fcntl.in.h: Likewise. * lib/float.in.h: Likewise. * lib/iconv.in.h: Likewise. * lib/inttypes.in.h: Likewise. * lib/locale.in.h: Likewise. * lib/math.in.h: Likewise. * lib/netinet_in.in.h: Likewise. * lib/search.in.h: Likewise. * lib/signal.in.h: Likewise. * lib/stdarg.in.h: Likewise. * lib/stdint.in.h: Likewise. * lib/stdio.in.h: Likewise. * lib/stdlib.in.h: Likewise. * lib/string.in.h: Likewise. * lib/strings.in.h: Likewise. * lib/sys_select.in.h: Likewise. * lib/sys_socket.in.h: Likewise. * lib/sys_stat.in.h: Likewise. * lib/sys_time.in.h: Likewise. * lib/sysexits.in.h: Likewise. * lib/time.in.h: Likewise. * lib/unistd.in.h: Likewise. * lib/wchar.in.h: Likewise. * lib/wctype.in.h: Likewise. * modules/arpa_inet (Makefile.am): Also substitute PRAGMA_SYSTEM_HEADER. * modules/fchdir (Makefile.am): Likewise. * modules/fcntl (Makefile.am): Likewise. * modules/float (Makefile.am): Likewise. * modules/iconv_open (Makefile.am): Likewise. * modules/inttypes (Makefile.am): Likewise. * modules/locale (Makefile.am): Likewise. * modules/math (Makefile.am): Likewise. * modules/netinet_in (Makefile.am): Likewise. * modules/search (Makefile.am): Likewise. * modules/signal (Makefile.am): Likewise. * modules/stdarg (Makefile.am): Likewise. * modules/stdint (Makefile.am): Likewise. * modules/stdio (Makefile.am): Likewise. * modules/stdlib (Makefile.am): Likewise. * modules/string (Makefile.am): Likewise. * modules/strings (Makefile.am): Likewise. * modules/sys_select (Makefile.am): Likewise. * modules/sys_socket (Makefile.am): Likewise. * modules/sys_stat (Makefile.am): Likewise. * modules/sys_time (Makefile.am): Likewise. * modules/sysexits (Makefile.am): Likewise. * modules/time (Makefile.am): Likewise. * modules/unistd (Makefile.am): Likewise. * modules/wchar (Makefile.am): Likewise. * modules/wctype (Makefile.am): Likewise. Reported by Reuben Thomas . 2008-08-29 Bruno Haible * m4/include_next.m4 (gl_INCLUDE_NEXT): Don't define HAVE_INCLUDE_NEXT any more. 2008-08-29 Simon Josefsson * MODULES.html.sh (Misc): Add bitrotate. * modules/bitrotate: New file. * lib/bitrotate.h: New file. * modules/bitrotate-tests: New file. * tests/test-bitrotate.c: New file. * modules/crypto/gc-arctwo, modules/crypto/arctwo: Add dependency on the bitrotate module. * lib/arctwo.c: Use new bitrotate module. 2008-08-29 Jim Meyering bootstrap: merge changes from coreutils * build-aux/bootstrap (cp_mark_as_generated): Preserve perms of copied files. Remove a kludge, now that this is fixed. * build-aux/bootstrap: Fix unportable expr usage. (by Ralf Wildenhues) * build-aux/bootstrap: Remove $bt and $bt2 also when not using gettext. * build-aux/bootstrap: Remove coreutils-specific SUBDIRS-related code. 2008-08-29 Bruno Haible * MODULES.html.sh: Remove --cvs-urls option. 2008-08-28 Jose E. Marchesi (tiny change) maint.mk: adjust to file name change * top/maint.mk: s/Makefile.cfg/cfg.mk/. 2008-08-28 Jim Meyering * modules/getndelim2 (License): Relicense to LGPLv2+. Approved by Richard Stallman for the version of 1995, and by Paul Eggert, Bruno Haible, Eric Blake for their contributions. 2008-08-27 Paolo Bonzini * lib/getdelim.c (flockfile, funlockfile): Make all of them dummy if one is not available. Do not touch them if USE_UNLOCKED_IO, instead letting unlocked-io.h do that. (getc_maybe_unlocked): New. * m4/getdelim.m4 (gl_PREREQ_GETDELIM): Check for getc_unlocked. 2008-08-26 Eric Blake doc/INSTALL: resync from autoconf * doc/Makefile (INSTALL, INSTALL.ISO, INSTALL.UTF-8): Simplify. (INSTALL_PRELUDE): Delete; this is done more efficiently by moving... * install.texi [!autoconf]: ...here. Resync from autoconf. * INSTALL: Regenerate. * INSTALL.ISO: New file. * INSTALL.UTF-8: Likewise. 2008-08-26 Jim Meyering GNUmakefile: cfg.mk definitions override default autoreconf-rerun policy * top/GNUmakefile (_is-dist-target, _is-install-target): Make these definitions conditional, so that they may be overridden, too. 2008-08-26 Bruno Haible Generate INSTALL file variants with prettier quotes. * doc/Makefile (INSTALL_PRELUDE): New macro. (INSTALL): Use it. (INSTALL.ISO, INSTALL.UTF-8): New rules. 2008-08-26 Bruno Haible Run makeinfo in an English locale. * doc/Makefile (MAKEINFO): New variable. 2008-08-26 Bruno Haible * doc/Makefile (INSTALL): Use --no-validate instead of --no-warn. Suggested by Eric Blake. 2008-08-25 Bruno Haible * doc/Makefile (INSTALL): Generate with @firstparagraphindent set. 2008-08-25 Eric Blake c-stack: test that stack overflow can be caught * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Also check that platform allows handling stack overflow; at least OS/2 EMX has sigaltstack, but crashes before transferring control to handler on stack overflow. * lib/c-stack.c [HAVE_SIGALTSTACK]: Adjust conditions to also check for HAVE_STACK_OVERFLOW_HANDLING. Reported by Elbert Pol. 2008-08-25 Bruno Haible * doc/posix-functions/strftime.texi: Fix description of strftime module. 2008-08-24 Bruno Haible * tests/uniwidth/test-uc_width2.c: New file. * tests/uniwidth/test-uc_width2.sh: New file. * modules/uniwidth/width-tests (Files): Add the new files. (TESTS): Add uniwidth/test-uc_width2.sh. (TESTS_ENVIRONMENT): New variable. (check_PROGRAMS): Add test-uc_width2. (test_uc_width2_SOURCES): New variable. Fix uc_width(0x00AB) bug, introduced on 2007-07-08. * lib/uniwidth/width.c (nonspacing_table_data): Set bit for 0x00AD, not 0x00AB. Reported by Alexander V. Lukyanov . 2008-08-22 Eric Blake test-lock, test-tls: mention why a test is skipped * tests/test-lock.c (main) [!USE_*_THREADS]: Print why test is skipped. * tests/test-tls.c (main) [!USE_*_THREADS]: Likewise. count-one-bits: relax license * modules/count-one-bits (License): Relicense to LGPLv2+. Suggested by Ludovic Courtès, approved by Ben Pfaff. 2008-08-22 Andreas Schwab * m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_POSIX): Remove spurious space in assignment. 2008-08-21 Simon Josefsson * m4/autobuild.m4: Use TZ=UTC0 instead of TZ=UTC. Reported by Paul Eggert . 2008-08-20 Paolo Bonzini * modules/gettext: Add m4/threadlib.m4. 2008-08-19 Eric Blake test-c-stack: fix compilation failure on FreeBSD 5.0 * tests/test-c-stack.c [HAVE_SETRLIMIT]: Include prerequisite headers before . * doc/posix-headers/sys_resource.texi (sys/resource.h): Document the bug. Reported by Nelson H. F. Beebe. strverscmp: migrate from "strverscmp.h" to * modules/string (Makefile.am): Add new hooks. * modules/strverscmp (Files): Remove strverscmp.h. (Depends-on): Add string. (configure.ac): Add indicator. (Include): Mention new header. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Provide new defaults. * m4/strverscmp.m4 (gl_FUNC_STRVERSCMP): Inform string module of results. * lib/strverscmp.h: Delete. * lib/string.in.h (strverscmp): Provide declaration, when needed. * tests/test-strverscmp.c (includes): Adjust client. * lib/check-version.c (includes): Likewise. * NEWS: Document the change. strverscmp: add unit test * modules/strverscmp-tests: New file. * tests/test-strverscmp.c: Likewise. 2008-08-19 Simon Josefsson * lib/gc-gnulib.c: Indentation cleanup. Add some comments regarding Windows crypto stuff, from Mono. 2008-08-19 Adam Strzelecki (tiny change) * lib/gc-gnulib.c: Use CRYPT_VERIFY_CONTEXT. Try to use Intel CSP if present, for intel RND. Return error on failures. 2008-08-18 Ben Pfaff gitlog-to-changelog: give better diagnostic for failed pipe-open * build-aux/gitlog-to-changelog: Improve error message: suggest that the version of Git may be too old. 2008-08-18 Simon Josefsson * m4/autobuild.m4: Use TZ=UTC to avoid time zone complexity. Use ISO 8601 format. Suggested by Greg Troxel . 2008-08-18 Bruno Haible * lib/glthread/thread.h [USE_SOLARIS_THREADS]: Use thread_in_use(), not pthread_in_use(). 2008-08-18 Bruno Haible * lib/glthread/threadlib.c: Include . 2008-08-18 Bruno Haible * lib/glthread/lock.h [USE_SOLARIS_THREADS]: Fix glthread_recursive_lock_* macros. * lib/glthread/lock.c (glthread_recursive_lock_destroy_multithreaded): Fix syntax error. 2008-08-18 Bruno Haible * lib/glthread/thread.c: Avoid forcing a context switch right after thread creation. 2008-08-17 Bruno Haible * lib/glthread/thread.c: New file, based on code from tests/test-lock.c. * lib/glthread/thread.h: Provide Win32 specific implementation. * modules/thread (Files): Add lib/glthread/thread.c. (Depends-on): Add lock. (Makefile.am): Add glthread/thread.c to lib_SOURCES. 2008-08-17 Yoann Vandoorselaere New module 'yield'. * modules/yield: New file. * lib/glthread/yield.h: New file. * m4/yield.m4: New file. * MODULES.html.sh (Multithreading): Add yield. 2008-08-17 Yoann Vandoorselaere New module 'thread'. * modules/thread: New file. * lib/glthread/thread.h: New file. * m4/thread.m4: New file. * MODULES.html.sh (Multithreading): Add thread. 2008-08-17 Bruno Haible * lib/glthread/lock.h: Include always. * lib/glthread/tls.h: Likewise. * lib/glthread/cond.h: Likewise. 2008-08-17 Yoann Vandoorselaere New module 'cond'. * modules/cond: New file. * lib/glthread/cond.h: New file. * lib/glthread/cond.c: New file. * m4/cond.m4: New file. * MODULES.html.sh (Multithreading): Add cond. 2008-08-16 Eric Blake c-stack: fix regression on Irix 5.3 from 2008-06-21 * m4/c-stack.m4 (gl_PREREQ_C_STACK): Move check for sa_sigaction... * m4/sigaction.m4 (gl_PREREQ_SIG_HANDLER_H): ...here. (gl_PREREQ_SIGACTION): Depend on sig-handler.h prereq's. * m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Set the default. * modules/signal (Makefile.am): Use the value. * lib/signal.in.h (sa_sigaction) [HAVE_SIGACTION && !HAVE_STRUCT_SIGACTION_SA_SIGACTION]: Define. * doc/posix-headers/signal.texi (signal.h): Document this portability issue. * doc/posix-functions/sigaction.texi (sigaction): Likewise. Reported by Tom G. Christensen. 2008-08-17 Bruno Haible New module 'threadlib'. * modules/threadlib: New file. * lib/glthread/threadlib.c: New file, extracted from lib/glthread/lock.c. * lib/glthread/lock.c (dummy_thread_func, glthread_in_use): Remove functions. * m4/threadlib.m4: New file, from m4/lock.m4, renaming gl_LOCK to gl_THREADLIB and gl_LOCK_EARLY to gl_THREADLIB_EARLY. * m4/lock.m4 (gl_LOCK_EARLY, gl_LOCK_EARLY_BODY, gl_LOCK_BODY): Remove macros. (gl_LOCK): Just require gl_THREADLIB and perform checks for lock.h. (gl_DISABLE_THREADS): Remove macro. * modules/lock (Files): Remove build-aux/config.rpath. (Depends-on): Remove havelib. Add threadlib. (configure.ac-early): Remove section. * m4/tls.m4 (gl_TLS): Require gl_THREADLIB instead of gl_LOCK. * modules/tls (Depends-on): Remove lock. Add threadlib. (Link): New section, copied from threadlib. * MODULES.html.sh (Multithreading): Add threadlib. 2008-08-14 Bruno Haible * lib/glthread/lock.h (glthread_lock_lock, glthread_lock_unlock, glthread_lock_destroy, glthread_rwlock_rdlock, glthread_rwlock_wrlock, glthread_rwlock_unlock, glthread_rwlock_destroy, glthread_recursive_lock_lock, glthread_recursive_lock_unlock, glthread_recursive_lock_destroy): Define as macros always. * lib/glthread/lock.c (glthread_lock_lock_func): Renamed from glthread_lock_lock. (glthread_lock_unlock_func): Renamed from glthread_lock_unlock. (glthread_lock_destroy_func): Renamed from glthread_lock_destroy. (glthread_rwlock_rdlock_func): Renamed from glthread_rwlock_rdlock. (glthread_rwlock_wrlock_func): Renamed from glthread_rwlock_wrlock. (glthread_rwlock_unlock_func): Renamed from glthread_rwlock_unlock. (glthread_rwlock_destroy_func): Renamed from glthread_rwlock_destroy. (glthread_recursive_lock_lock_func): Renamed from glthread_recursive_lock_lock. (glthread_recursive_lock_unlock_func): Renamed from glthread_recursive_lock_unlock. (glthread_recursive_lock_destroy_func): Renamed from glthread_recursive_lock_destroy. 2008-08-14 Bruno Haible * lib/glthread/lock.h: Renamed from lib/lock.h. * lib/glthread/lock.c: Renamed from lib/lock.c. Update includes. * lib/glthread/tls.h: Renamed from lib/tls.h. * lib/glthread/tls.c: Renamed from lib/tls.c. Update includes. * lib/fstrcmp.c: Update includes. * lib/strsignal.c: Update includes. * modules/lock (Files, Makefile.am): Update. (Include): Change to "glthread/lock.h". * modules/tls (Files, Makefile.am): Update. (Include): Change to "glthread/tls.h". * tests/test-lock.c: Update includes. * tests/test-tls.c: Update includes. * NEWS: Mention the renamed header files. 2008-08-11 Jim Meyering * lib/fts_.h: Fix grammar (insert a missing "is") in a comment. 2008-08-11 Eric Blake test-c-stack: avoid C99-ism * tests/test-c-stack.c (main): Fix whitespace, move declaration before statement. Reported by Alain Guibert. 2008-08-10 Jim Meyering ensure that return value of uinttostr et al are not ignored * lib/inttostr.h (__GNUC_PREREQ): Define. (__attribute_warn_unused_result__): Define. (offtostr, imaxtostr, umaxtostr, uinttostr): Apply the attribute. 2008-08-07 Paolo Bonzini * lib/lock.c (glthread_recursive_lock_init_multithreaded) [!PTHREAD_RECURSIVE_MUTEX_INITIALIZER]: Fix typo. 2008-08-07 Jim Meyering * m4/inet_pton.m4: Fix typo in comment: s/inet_ntop/inet_pton/. * modules/mkstemp (License): Relicense under LGPLv2+. * modules/tempname (License): Likewise. 2008-08-06 Bruno Haible * lib/poll.c (poll): Further micro-optimization. 2008-08-06 Jim Meyering inet_pton.c: use locale-independent tolower * lib/inet_pton.c: Include rather than . (inet_pton6): Use c_tolower rather than tolower. * modules/inet_pton (Depends-on): Add c-ctype. 2008-08-06 Paolo Bonzini * lib/poll.c (poll): Avoid division when timeout is 0, cache _SC_OPEN_MAX, avoid repeated access to errno. Check for nfd < 0. 2008-08-06 Jim Meyering * modules/inet_pton (License): Relicense under LGPLv2+. 2008-08-03 Bruno Haible Additional non-aborting API for lock and tls. * lib/lock.h: Include . (glthread_lock_init): New macro/function. (gl_lock_init): Define as wrapper around glthread_lock_init. (glthread_lock_lock): New macro/function. (gl_lock_lock): Define as wrapper around glthread_lock_lock. (glthread_lock_unlock): New macro/function. (gl_lock_unlock): Define as wrapper around glthread_lock_unlock. (glthread_lock_destroy): New macro/function. (gl_lock_destroy): Define as wrapper around glthread_lock_destroy. (glthread_rwlock_init): New macro/function. (gl_rwlock_init): Define as wrapper around glthread_rwlock_init. (glthread_rwlock_rdlock): New macro/function. (gl_rwlock_rdlock): Define as wrapper around glthread_rwlock_rdlock. (glthread_rwlock_wrlock): New macro/function. (gl_rwlock_wrlock): Define as wrapper around glthread_rwlock_wrlock. (glthread_rwlock_unlock): New macro/function. (gl_rwlock_unlock): Define as wrapper around glthread_rwlock_unlock. (glthread_rwlock_destroy): New macro/function. (gl_rwlock_destroy): Define as wrapper around glthread_rwlock_destroy. (glthread_recursive_lock_init): New macro/function. (gl_recursive_lock_init): Define as wrapper around glthread_recursive_lock_init. (glthread_recursive_lock_lock): New macro/function. (gl_recursive_lock_lock): Define as wrapper around glthread_recursive_lock_lock. (glthread_recursive_lock_unlock): New macro/function. (gl_recursive_lock_unlock): Define as wrapper around glthread_recursive_lock_unlock. (glthread_recursive_lock_destroy): New macro/function. (gl_recursive_lock_destroy): Define as wrapper around glthread_recursive_lock_destroy. (glthread_once): New macro/function. (gl_once): Define as wrapper around glthread_once. Update function declarations. * lib/lock.c (glthread_rwlock_init_multithreaded): Renamed from glthread_rwlock_init. Return error code. (glthread_rwlock_rdlock_multithreaded): Renamed from glthread_rwlock_rdlock. Return error code. (glthread_rwlock_wrlock_multithreaded): Renamed from glthread_rwlock_wrlock. Return error code. (glthread_rwlock_unlock_multithreaded): Renamed from glthread_rwlock_unlock. Return error code. (glthread_rwlock_destroy_multithreaded): Renamed from glthread_rwlock_destroy. Return error code. (glthread_recursive_lock_init_multithreaded): Renamed from glthread_recursive_lock_init. Return error code. (glthread_recursive_lock_lock_multithreaded): Renamed from glthread_recursive_lock_lock. Return error code. (glthread_recursive_lock_unlock_multithreaded): Renamed from glthread_recursive_lock_unlock. Return error code. (glthread_recursive_lock_destroy_multithreaded): Renamed from glthread_recursive_lock_destroy. Return error code. (glthread_once_call): Make static. (glthread_once_multithreaded): Renamed from glthread_once. * lib/tls.h: Include . (glthread_tls_key_init): New macro/function. (gl_tls_key_init): Define as wrapper around glthread_tls_key_init. (glthread_tls_set): New macro/function. (gl_tls_set): Define as wrapper around glthread_tls_set. (glthread_tls_key_destroy): New macro/function. (gl_tls_key_destroy): Define as wrapper around glthread_tls_key_destroy. Update function declarations. * lib/tls.c (glthread_tls_get_multithreaded): Renamed from glthread_tls_get. Suggested by Yoann Vandoorselaere . 2008-08-04 Eric Blake gnumakefile: use space, not TAB, outside of targets * top/GNUmakefile (_dummy): Fix whitespace error in prior edit. 2008-08-02 Jim Meyering getdate.y: avoid locale-dependent date parsing failure In Turkish locales, getdate would fail to recognize keywords containing a lowercase "i". The solution is not to rely on locale-sensitive case-conversion. * lib/getdate.y: Include rather than . (lookup_word): Use c_toupper in place of toupper. (yylex, get_date): Use c_ prefixed variants of isspace and isalpha, too. Reported by Vefa Bicakci in . * modules/getdate (Depends-on): Add c-ctype. 2008-08-02 Bruno Haible * gnulib-tool (func_import): When updating or creating a .gitignore file, prepend each added line with a slash, and ignore leading slashes from the existing lines. Reported by Joel E. Denny . 2008-08-02 Ralf Wildenhues Portability fix for GNU make 3.79.1. * top/GNUmakefile: Avoid 'else COND', which older GNU make versions do not understand. 2008-08-01 Bruno Haible Work around bug of HP-UX 10.20 cc with -0.0 literal. * tests/test-isnanf.h (zero): New variable. (main): Avoid literal -0.0f. * tests/test-isnand.h (zero): New variable. (main): Avoid literal -0.0. * tests/test-isnanl.h (zero): New variable. (main): Avoid literal -0.0L. * tests/test-isnan.c (zerof, zerod, zerol): New variables. (test_float, test_double, test_long_double): Avoid literals -0.0f, -0.0, -0.0L. * tests/test-signbit.c (test_signbitf): Avoid literal -0.0f. (test_signbitd): Avoid literal -0.0. (test_signbitl): Avoid literal -0.0L. * tests/test-ceilf1.c (zero): New variable. (main): Avoid literal -0.0f. * tests/test-ceill.c (zero): New variable. (main): Avoid literal -0.0L. * tests/test-floorf1.c (zero): New variable. (main): Avoid literal -0.0f. * tests/test-floorl.c (zero): New variable. (main): Avoid literal -0.0L. * tests/test-roundf1.c (zero): New variable. (main): Avoid literal -0.0f. * tests/test-round1.c (zero): New variable. (main): Avoid literal -0.0. * tests/test-roundl.c (zero): New variable. (main): Avoid literal -0.0L. * tests/test-truncf1.c (zero): New variable. (main): Avoid literal -0.0f. * tests/test-trunc1.c (zero): New variable. (main): Avoid literal -0.0. * tests/test-truncl.c (zero): New variable. (main): Avoid literal -0.0L. * tests/test-frexp.c (zero): New variable. (main): Avoid literal -0.0. * tests/test-frexpl.c (zero): New variable. (main): Avoid literal -0.0L. * tests/test-ldexpl.c (zero): New variable. (main): Avoid literal -0.0L. * tests/test-snprintf-posix.h (have_minus_zero): Avoid literal -0.0. (zerod, zerol): New variables. (test_function): Avoid literals -0.0, -0.0L. * tests/test-sprintf-posix.h (have_minus_zero): Avoid literal -0.0. (zerod, zerol): New variables. (test_function): Avoid literals -0.0, -0.0L. * tests/test-vasnprintf-posix.c (have_minus_zero): Avoid literal -0.0. (zerod, zerol): New variables. (test_function): Avoid literals -0.0, -0.0L. * tests/test-vasprintf-posix.c (have_minus_zero): Avoid literal -0.0. (zerod, zerol): New variables. (test_function): Avoid literals -0.0, -0.0L. * tests/test-strtod.c (zero): New variable. (main): Avoid literal -0.0. Reported by Jonathan C. Patschke . 2008-07-31 Jim Meyering sha256.h: correct definition of SHA224_DIGEST_SIZE * lib/sha256.h (SHA224_DIGEST_SIZE): Define to 28, not 24. Reported by Paulie Pena IV . Define as 224 / 8, rather than as a literal. (SHA256_DIGEST_SIZE): Define as 256/8 rather than equivalent literal. * lib/sha512.h (SHA384_DIGEST_SIZE): Likewise, define as equiv: 384/8. (SHA512_DIGEST_SIZE): Likewise, define as equivalent quotient: 512/8. 2008-07-31 Bruno Haible * lib/regex_internal.h (BITSET_WORD_BITS): Make first conditional work on HP-UX 10.20 with "cc -Ae". Fix second conditional. Reported by Jonathan Patschke . 2008-07-31 Bruno Haible * gnulib-tool (func_import): Make change from 2008-06-23 more robust. Reported by Paolo Bonzini . 2008-07-30 Eric Blake test-strtod: allow compilation without -lm * tests/test-strtod.c (main): Avoid link dependence on fabs. Reported by Dennis Clarke . 2008-07-28 Jim Meyering bootstrap: work also when there are no .po files in po/ * build-aux/bootstrap (update_po_files): Complete the change that I began in bc960df8c789c878f1c1c54a28a3c2648dead8d9. 2008-07-27 Jim Meyering * users.txt: Add zile. 2008-07-26 Ben Pfaff Add missing dependencies on new m4/exponent[fdl].m4 files. * modules/isnanf-nolibm: Add m4/exponentf.m4. * modules/isnand-nolibm: Add m4/exponentd.m4. * modules/isnanl-nolibm: Add m4/exponentl.m4. * modules/signbit-tests: Use m4/exponent[fdl].m4 instead of m4/isnan[fdl].m4, because the macros actually used moved. Reported by Jim Meyering. 2008-07-14 Ben Pfaff Add isinf module. * lib/isinf.c: New file. * lib/math.in.h: Define isinf macro if we have decided to replace it. * m4/isinf.m4: New file. * m4/math_h.m4: Initialize and substitute variables for isinf module. * modules/isinf: New file. * modules/isinf-tests: New file. * modules/math: Add substitutions for new module. * tests/test-isinf.c: New file. * doc/posix-functions/isinf.texi: Mention new module. * MODULES.html.sh: Mention new module. 2008-07-14 Ben Pfaff Factor out some macros for use by additional modules. * m4/isnanf.m4 (gl_FLOAT_EXPONENT_LOCATION): Move into new file exponentf.m4. * m4/isnand.m4 (gl_DOUBLE_EXPONENT_LOCATION): Move into new file exponentd.m4. * m4/isnanl.m4 (gl_LONG_DOUBLE_EXPONENT_LOCATION): Move into new file exponentl.m4. * m4/exponentf.m4: New file. * m4/exponentd.m4: New file. * m4/exponentl.m4: New file. * modules/isnanf: Use new file m4/exponentf.m4. * modules/isnand: Use new file m4/exponentd.m4. * modules/isnanl: Use new file m4/exponentl.m4. 2008-07-23 Ulrich Drepper mktime.c: normalize tp->tm_isdst value to -1/0/1. * lib/mktime.c (__mktime_internal): Normalize tp->tm_isdst value. Reported by Michael Ringe in . * lib/canonicalize-lgpl.c (__realpath): Avoid buffer overflow after readlink on platforms without PATH_MAX. 2008-07-21 Eric Blake Warn, not fail, on stale version. * top/GNUmakefile (_curr-ver): Tone down previous patch. Don't allow installation with stale devel version number. * top/GNUmakefile (_is-install-target): New macro. (_curr-ver): Forbid installation with stale version number. 2008-07-20 Bruno Haible * modules/c-stack-tests (Makefile.am): Add LIBSIGSEGV to TESTS_ENVIRONMENT. * tests/test-c-stack2.sh: React differently if LIBSIGSEGV is in use. 2008-07-20 Bruno Haible * lib/c-stack.h (c_stack_action): Add documentation. * lib/c-stack.c (c_stack_action): Remove incomplete documentation. 2008-07-20 Bruno Haible * modules/canonicalize-lgpl (License): Relicense under LGPLv2+. * modules/readlink (License): Likewise. 2008-07-17 Eric Blake * modules/c-stack (Link): Fix typo. Make c-stack use libsigsegv, when available. * modules/c-stack (Depends-on): Add libsigsegv. * modules/c-stack-tests (Makefile.am): Link with libsigsegv, if needed. * lib/c-stack.c (SIGSTKSZ): Define fallback. (segv_handler, overflow_handler, c_stack_action) [HAVE_LIBSIGSEGV && !HAVE_XSI_STACK_OVERFLOW_HEURISTIC]: Add new implementation when libsigsegv is available, but only when using the library is necessary. * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Add comment, explaining why XSI check fails on Linux. (gl_PREREQ_C_STACK): Supply LIBCSTACK, LTLIBCSTACK. * tests/test-c-stack2.sh: Tweak skip message. * NEWS: Document new link-time requirements. 2008-07-16 Eric Blake c-stack: Expose false positives when not using libsigsegv. * modules/c-stack-tests (Files): Expand test. * tests/test-c-stack.c (main): Add means to conditionally trigger non-overflow SIGSEGV. * tests/test-c-stack2.sh: New file. 2008-07-14 Bruno Haible * m4/libsigsegv.m4: Remove unneeded AC_PREREQ. Reported by Eric Blake. 2008-07-14 Sam Steingold Bruno Haible New module libsigsegv. * modules/libsigsegv: New file. * m4/libsigsegv.m4: New file, from GNU clisp sigsegv.m4 with modifications. * MODULES.html.sh (Signal handling): New section. 2008-07-14 Bruno Haible * modules/unictype/ctype-* (Description): Add the word "function". Improves the resulting doc in MODULES.html. 2008-07-12 Ben Pfaff Add longlong module. * modules/longlong: New file. 2008-07-12 Bruno Haible * m4/isnan.m4 (gl_ISNAN): When the replacement is used, set ISNAN_LIBM to empty. 2008-07-10 Ben Pfaff Add isnan module. * doc/posix-functions/isnan.texi: Mention new module. * lib/math.in.h: Define isnan macro if we have decided to replace it. * m4/isnan.m4: New file. * m4/isnanl.m4 (gl_FUNC_ISNANL): Factor out some code into new macro gl_BUILD_ISNANL so that isnan.m4 can use that functionality also. (gl_FUNC_ISNANL_NO_LIBM): Factor out same code, to reduce redundancy. * m4/math_h.m4: Initialize and substitute variables for isnan module. * modules/isnan: New file. * modules/isnan-tests: New file. * modules/math: Add substitutions for new module. * tests/test-isnan.c: New file. * MODULES.html.sh: Mention new module. 2008-07-10 Ben Pfaff Add isnanf module. * lib/isnanf.m4: New file. * m4/isnanf.m4 (gl_FUNC_ISNANF): New macro. (gl_HAVE_ISNANF_IN_LIBM): New macro. (gl_BUILD_ISNANF): New macro used by gl_FUNC_ISNANF, gl_FUNC_ISNANF_NO_LIBM, and gl_FUNC_ISNAN. * modules/isnanf: New file. * modules/isnanf-tests: New file. * modules/isnanf-nolibm-tests: Add tests/test-isnanf.h to list of files. * tests/test-isnanf-nolibm.c: factored most of its contents into new file tests/test-isnanf.h. * tests/test-isnanf.h: New file. * tests/test-isnanf.c: New file. * MODULES.html.sh: Mention new module. * doc/glibc-functions/isnanf.texi: Mention new module. 2008-07-10 Ben Pfaff Add isnand module. * lib/isnand.h: New file. * m4/isnand.m4 (gl_FUNC_ISNAND): New macro. (gl_FUNC_ISNAND_NO_LIBM): Split partially into new macro gl_HAVE_ISNAND_NO_LIBM so that gl_FUNC_ISNAND can use that functionality also. (gl_BUILD_ISNAND): New macro used by gl_FUNC_ISNAND, gl_FUNC_ISNAND_NO_LIBM, and gl_FUNC_ISNAN. (gl_HAVE_ISNAND_IN_LIBM): New macro. * modules/isnand: New file. * modules/isnand-tests: New file. * modules/isnand-nolibm-tests: Add tests/test-isnand.h to list of files. * tests/test-isnand-nolibm.c: factored most of its contents into new file tests/test-isnand.h. * tests/test-isnand.h: New file. * tests/test-isnand.c: New file. * MODULES.html.sh: Mention new module. 2008-07-10 Ben Pfaff * lib/isnanf.h: Rename lib/isnanf-nolibm.h. * lib/isnand.h: Rename lib/isnand-nolibm.h. * tests/test-isnanf.c: Rename tests/test-isnanf-nolibm.c. * tests/test-isnand.c: Rename tests/test-isnand-nolibm.c. * modules/isnanf-nolibm: Update references to renamed files. * modules/isnand-nolibm: Likewise. * modules/isnanf-nolibm-tests: Likewise. * modules/isnand-nolibm-tests: Likewise. * lib/frexp.c: Likewise. * lib/isfinite.c: Likewise. * lib/signbitd.c: Likewise. * lib/signbitf.c: Likewise. * lib/vasnprintf.c: Likewise. * tests/test-ceilf1.c: Likewise. * tests/test-ceilf2.c: Likewise. * tests/test-floorf1.c: Likewise. * tests/test-floorf2.c: Likewise. * tests/test-frexp.c: Likewise. * tests/test-round1.c: Likewise. * tests/test-round2.c: Likewise. * tests/test-roundf1.c: Likewise. * tests/test-strtod.c: Likewise. * tests/test-trunc1.c: Likewise. * tests/test-trunc2.c: Likewise. * tests/test-truncf1.c: Likewise. * tests/test-truncf2.c: Likewise. * NEWS: Mention the renamed header files. 2008-07-11 Jim Meyering vc-list-files: make the last-resort awk code more portable * build-aux/vc-list-files: Don't rely on awk's "sub" command. /bin/awk from OpenSolaris 11's SUNWesu version 2008.03.22.10.56 does not support it. 2008-07-10 Eric Blake Work with tar's bootstrap. * gnulib-tool (func_emit_initmacro_end): Use m4_defn in the case where LIBSOURCES_DIR contains .#bootmp but must not be treated as an m4 comment. 2008-07-09 Jim Meyering posix-shell.m4: fix typo that made this test malfunction * m4/posix-shell.m4: Remove capitalization in variable name. 2008-07-08 Bruno Haible * m4/onceonly.m4: Update comments. Reported by Ben Pfaff . 2008-07-04 Jim Meyering * users.txt: Add vc-dwim. (bison, coreutils): Use the gitweb URL. 2008-07-03 Jim Meyering * users.txt: Add libffcall. From Sam Steingold. 2008-07-03 Ondřej Vašík getdate.y: do not ignore TZ with relative day, month or year offset * lib/getdate.y (get_date): Move the tz-handling block to follow the relative-date-handling, since otherwise, the latter would clobber the sole output (an updated Start value) of the tz-handling block. * tests/test-getdate.c: Tests for the fix 2008-07-03 Ralf Wildenhues Recognize 'foo_LIBRARIES += libgnu.a'. * gnulib-tool (func_emit_lib_Makefile_am): Recognize if a makefile snippet has already specified an installation location, also using '+='. 2008-07-02 Ondřej Vašík getdate.y: factor out common actions * lib/getdate.y (apply_relative_time, set_hhmmss): New functions. Use them in place of open-coded actions. 2008-07-01 Simon Josefsson Add self-test for getdate module. * modules/getdate-tests: New file. * tests/test-getdate.c: New file. 2008-06-29 Bruno Haible * gnulib-tool (func_import): Put gnulib-comp.m4 into .cvsignore or .gitignore. Reported by Sylvain Beucler . 2008-06-29 Bruno Haible * doc/gnulib-tool.texi (VCS Issues): Mention --no-vc-files option. * m4/gnulib-tool.m4: Update to match current gnulib-tool. 2008-06-29 Bruno Haible * gnulib-tool (func_import): Recommend to put gnulib-cache.m4 into EXTRA_DIST. Reported by Sylvain Beucler . 2008-06-26 Jim Meyering make several modules depend on the "open" module This provides slightly increased consistency when opening-for-write the name of a non-directory spelled with a trailing slash. * modules/chdir-safer: Likewise. * modules/chown: Likewise. * modules/clean-temp: Likewise. * modules/copy-file: Likewise. * modules/fchdir: Likewise. * modules/fcntl-safer: Likewise. * modules/pipe: Likewise. * modules/utime: Likewise. Prompted by Eric Blake and Bruno Haible. 2008-06-24 Andreas Schwab * m4/getdate.m4 (gl_C_COMPOUND_LITERALS): Don't test whether compound literals can be used as initializers for global variables. 2008-06-23 Eric Blake Make gnulib-cache.m4 easier to diff. * gnulib-tool (func_import): Allow newlines when reading cached gl_MODULES, and generate newlines when creating gnulib-cache.m4. 2008-06-23 Bruno Haible * m4/signalblocking.m4 (gl_PREREQ_SIG_HANDLER_H): Remove macro. (gl_PREREQ_SIGPROCMASK): Don't invoke it. * m4/sigaction.m4 (gl_PREREQ_SIG_HANDLER_H): New macro, moved here from m4/signalblocking.m4. (gl_PREREQ_SIGACTION): Don't invoke it. * m4/nanosleep.m4 (gl_PREREQ_NANOSLEEP): Invoke gl_PREREQ_SIG_HANDLER_H. * m4/fatal-signal.m4 (gl_FATAL_SIGNAL): Likewise. Don't check for sigaction here. 2008-06-23 Bruno Haible * lib/fatal-signal.c (fatal_signal_handler): Update comment. (install_handlers): Don't set the SA_RESETHAND flag. 2008-06-23 Bruno Haible * m4/sigaction.m4: Comment fixes. * lib/signal.in.h: Likewise. 2008-06-23 Eric Blake Fix typo. * tests/test-sigaction.c (MASK_SA_FLAGS): Add missing operator. Avoid SA_ namespace. * tests/test-sigaction.c (MASK_SA_FLAGS): Rename from SA_MASK. Reported by Ralf Wildenhues. Avoid test failure due to SA_RESTORER. * tests/test-sigaction.c (SA_MASK): New macro. (main): Avoid failing due to extension flags being set. Reported by Jim Meyering. Revert use of sig-handler.h in sigprocmask.c. * modules/sigprocmask (Files): Don't rely on sig-handler.h, since it requires the existence of struct sigaction. * lib/sigprocmask.c (handler_t): Restore typedef. (rpl_signal, old_handlers): Use local type. 2008-06-22 Bruno Haible * tests/test-stdint.c: Disable the INTMAX_MAX preprocessor test conditionally. Reported by Albert Chin . 2008-06-22 Bruno Haible * doc/posix-functions/siginterrupt.texi: Move note. * lib/signal.in.h (SA_RESTART): New macro. * lib/sigaction.c: Update comment. * m4/sigaction.m4 (gl_SIGACTION): Require gl_SIGNAL_H_DEFAULTS. * m4/signalblocking.m4 (gl_PREREQ_SIG_HANDLER_H): New macro. (gl_PREREQ_SIGPROCMASK): Invoke it. * m4/sigaction.m4 (gl_PREREQ_SIGACTION): Likewise. * lib/nanosleep.c (rpl_nanosleep): Setup newact only when it is needed. * lib/sigprocmask.c: Update a comment. 2008-06-21 Eric Blake Use sigaction module rather than signal(). * modules/c-stack (Depends-on): Add sigaction. * modules/fatal-signal (Depends-on): Likewise. * modules/nanosleep (Depends-on): Likewise. * modules/sigprocmask (Files): Add sig-handler.h. * modules/sigaction (Files): Likewise. * lib/sig-handler.h (get_handler): New file, suggested by Paul Eggert. * lib/c-stack.c (SIGACTION_WORKS): Simplify conditions. (c_stack_action) [!SIGACTION_WORKS]: Use sigaction, not signal. * lib/fatal-signal.c (uninstall_handlers, install_handlers) (init_fatal_signals): Likewise. * lib/nanosleep.c (rpl_nanosleep): Likewise. (siginterrupt): Delete fallback. * lib/sigprocmask.c (handler_t, old_handlers): Use sa_handler_t instead. * m4/nanosleep.m4 (gl_PREREQ_NANOSLEEP): Drop check for siginterrupt. New module sigaction, for mingw. * modules/sigaction: New module... * modules/sigaction-tests: ...and its test. * m4/sigaction.m4: New file. * lib/sigaction.c: Likewise. * tests/test-sigaction.c: Likewise. * m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Add sigaction variables. * modules/signal (Makefile.am): Likewise. * lib/signal.in.h (!@HAVE_SIGACTION@): Define replacements when needed. * doc/posix-headers/signal.texi (signal.h): Mention provided types. * doc/posix-functions/siginterrupt.texi (siginterrupt): Mention that sigaction is preferable. * doc/posix-functions/sigaction.texi (sigaction): Mention new module. * MODULES.html.sh (Support for systems lacking POSIX:2001): Add sigaction. Improve robustness of sigprocmask by overriding signal. * lib/signal.in.h (rpl_signal): Override signal when sigprocmask is in use. * lib/sigprocmask.c (blocked_handler): Reinstall block handler. (SIGKILL, SIGSTOP): Provide fallbacks. (rpl_signal): Implement. (old_handlers, blocked_set): Mark volatile, since sigprocmask and signal can be called inside handlers. Fix nanosleep module on mingw. * modules/nanosleep (Depends-on): Add sys_select. * lib/nanosleep.c (HAVE_SYS_SELECT_H): Rely on gnulib module. Fix licensing of sigprocmask. * modules/raise (License): Relicense as LGPL. 2008-06-21 Bruno Haible * lib/propername.c (proper_name_utf8): Don't use the transliterated result if it contains question marks. Reported by Michael Geng . 2008-06-19 Bruno Haible Fix CVS-ism. * doc/gnulib.texi: Include updated-stamp.texi. * doc/Makefile (GNULIB_TEXI_FILES): New variable. (updated-stamp.texi): New rule. (gnulib.info): Depend on it. * doc/.gitignore: Add updated-stamp.texi. Based on a patch by Thien-Thi Nguyen . 2008-06-19 Bruno Haible * doc/Makefile (gnulib.info): Update and simplify dependencies. Reported by Thien-Thi Nguyen . 2008-06-19 Eric Blake Fix VPATH 'make dist' with GNU make and non-VCS tarball. * top/GNUmakefile (_curr-ver): Don't use $(srcdir) unnecessarily. Reported by Stepan Kasal. 2008-06-18 Bruno Haible * lib/fatal-signal.c (init_fatal_signals): Add comment. Reported by Eric Blake. 2008-06-18 Eric Blake Work around cygwin 1.5.25 strsignal bug. * tests/test-strsignal.c: Allow for const char *. * doc/glibc-functions/strsignal.texi (strsignal): Document the bug. 2008-06-18 Simon Josefsson * users.txt: Update URL to article and add author/date information. 2008-06-17 Bruno Haible New macro gl_DISABLE_THREADS. * m4/lock.m4 (gl_LOCK_EARLY_BODY): Use value gl_use_threads_default if the user did not pass --enable-threads or --disable-threads option. (gl_DISABLE_THREADS): New macro. Reported by Eric Blake . 2008-06-17 Bruno Haible * lib/tls.h (gl_tls_key_init): Evaluate the destructor argument also when the macro ignores it. Based on a patch by Eric Blake . 2008-06-17 Bruno Haible * modules/tls (License): Change to LGPLv2+. Reported by Eric Blake. 2008-06-17 Eric Blake Simplify c-stack prerequisites. * lib/c-stack.c (includes): Remove unused . * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Posix 200x no longer requires to exist. Optimize setrlimit check. (gl_PREREQ_C_STACK): Remove check for unused getcontext and . Move c-stack test into testsuite. * modules/c-stack-tests: New file. * lib/c-stack.c [DEBUG]: Move test program... * tests/test-c-stack.c: ...into this new file. Skip rather than fail test if sigaltstack is lacking. * tests/test-c-stack.sh: New driver file. 2008-06-16 Eric Blake Use raise module consistently. * modules/fatal-signal (Depends-on): Add raise. * modules/sigprocmask (Depends-on): Likewise. * lib/fatal-signal.c (fatal_signal_handler): Rely on raise. * lib/sigprocmask.c (sigprocmask): Likewise. * m4/fatal-signal.m4 (gl_FATAL_SIGNAL): Likewise. * m4/signalblocking.m4 (gl_PREREQ_SIGPROCMASK): Likewise. Fix compliance bug in sigpending. * lib/sigprocmask.c (sigpending): Return pending array via parameter, not return value. 2008-06-14 Eric Blake Improve obstack-printf test code. * tests/test-obstack-printf.c (test_function): Fix comment, and simplify usage of obstack_* in macros. Add a test for coverage. Reported by Bruno Haible. 2008-06-14 Bruno Haible * lib/obstack_printf.c (obstack_vprintf): Define the stack-allocated array size as a constant, not as a const variable. * m4/obstack-printf.m4 (gl_FUNC_OBSTACK_PRINTF): Require AC_USE_SYSTEM_EXTENSIONS. * m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_POSIX): Likewise. Test whether the obstack_printf function actually exists. * modules/obstack-printf (Depends-on): Add extensions. (Include): Remove obstack.h. * modules/obstack-printf-posix (Depends-on): Add extensions. (Include): Remove obstack.h. 2008-06-13 Eric Blake Add obstack-printf and obstack-printf-posix modules. * modules/obstack-printf: New file. * modules/obstack-printf-posix: Likewise. * MODULES.html.sh (Misc): Mention them. * doc/glibc-functions/obstack_printf.texi (obstack_printf): Likewise. * doc/glibc-functions/obstack_vprintf.texi (obstack_vprintf): Likewise. * modules/stdio (Makefile.am): Accomodate new modules. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Likewise. * lib/stdio.in.h (rpl_obstack_printf, rpl_obstack_vprintf): Declare. * lib/obstack_printf.c (obstack_printf, obstack_vprintf): New functions. * m4/obstack-printf.m4 (gl_OBSTACK_PRINTF) (gl_REPLACE_OBSTACK_PRINTF): New macros * m4/obstack-printf-posix.m4 (gl_OBSTACK_PRINTF_POSIX): Likewise. * tests/test-obstack-printf.c: New file. * modules/obstack-printf-tests: Likewise. * modules/obstack-printf-posix-tests: Likewise. 2008-06-11 Bruno Haible * m4/open.m4 (gl_FUNC_OPEN): Add test against trailing slash bug. * lib/open.c: Include errno.h. (open): Fail when attempting to write to a file that has a trailing slash. * tests/test-open.c (main): Test against trailing slash bug. * doc/posix-functions/open.texi: Mention the trailing slash bug. 2008-06-10 Bruno Haible * tests/test-vc-list-files-git.sh: Make double use of 'exit'. Needed for $? to work inside the trap command, with various /bin/sh-s. * tests/test-vc-list-files-cvs.sh: Likewise. 2008-06-10 Bruno Haible * lib/acl-internal.h: Don't include gettext.h here. * lib/set-mode-acl.c: Include gettext.h here. * lib/copy-acl.c: Likewise. 2008-06-10 Bruno Haible * lib/wait-process.h (wait_subprocess): Add termsigp argument. * lib/wait-process.c (wait_subprocess): Likewise. * lib/execute.h (execute): Add termsigp argument. * lib/execute.c (execute): Likewise. * lib/csharpcomp.c (compile_csharp_using_pnet, compile_csharp_using_mono, compile_csharp_using_sscli): Update. * lib/csharpexec.c (execute_csharp_using_pnet, execute_csharp_using_mono, execute_csharp_using_sscli): Update. * lib/javacomp.c (compile_using_envjavac, compile_using_gcj, compile_using_javac, compile_using_jikes, is_envjavac_gcj, is_envjavac_gcj43, is_gcj_present, is_gcj_43, is_javac_present, is_jikes_present): Update. * lib/javaexec.c (execute_java_class): Update. * lib/javaversion.c (execute_and_read_line): Update. * NEWS: Document the changes. Reported by Eric Blake. 2008-06-10 Eric Blake Add missing include. * tests/test-strstr.c (includes): Add . * tests/test-strcasestr.c (includes): Likewise. * tests/test-memmem.c (includes): Likewise. 2008-06-10 Bruno Haible * lib/wait-process.c (wait_subprocess): Add an assertion. 2008-06-10 Bruno Haible * lib/wait-process.c (wait_subprocess): Try to fix waitid() based code. 2008-06-10 Bruno Haible * tests/test-memmem.c (main): Reset SIGALRM to default handling before using alarm(). * tests/test-strcasestr.c (main): Likewise. * tests/test-strstr.c (main): Likewise. 2008-06-09 Bruno Haible Work around the Solaris 10 ACE ACLs ABI change. * lib/acl-internal.h (acl_nontrivial, acl_ace_nontrivial): Don't declare if ACL_NO_TRIVIAL is present. (ACE_ACCESS_ALLOWED_ACE_TYPE, ACE_ACCESS_DENIED_ACE_TYPE, NEW_ACE_OWNER, NEW_ACE_GROUP, NEW_ACE_IDENTIFIER_GROUP, ACE_EVERYONE, NEW_ACE_READ_DATA, NEW_ACE_WRITE_DATA, NEW_ACE_EXECUTE): New macros. * lib/file-has-acl.c (acl_nontrivial, acl_ace_nontrivial): Don't define if ACL_NO_TRIVIAL is present. (acl_ace_nontrivial): Detect whether the old or new ABI is in use, and use the current ABI. (file_has_acl): Use same #if condition as elsewhere. * lib/set-mode-acl.c (qset_acl): Detect whether the old or new ABI is in use, and use the current ABI. * doc/acl-resources.txt: More doc about newer Solaris 10 versions. Reported by Jim Meyering. 2008-06-09 Eric Blake Work around environments that (stupidly) ignore SIGALRM. * m4/strstr.m4 (gl_FUNC_STRSTR): Reset SIGALRM to default handling before using alarm(). * m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise. * m4/memmem.m4 (gl_FUNC_MEMMEM): Likewise. Reported by Ian Beckwith . Produce autobuild blurb earlier in log. * modules/autobuild (configure.ac-early): Move AB_INIT here. 2008-06-09 Jim Meyering and Ondřej Vašík utimens.c: correct kernel bug work-around Ondřej Vašík found that the invalid return value of 280 indicates failure, not success, and the kernel bug we're trying to work around affects not just the utimensat call, but also the fallback futimens call. * lib/utimens.c (gl_futimens) [HAVE_UTIMENSAT]: Simulate failure, not success. [HAVE_FUTIMENS]: Use the same work-around, here. 2008-06-09 Jim Meyering add more guards around definition of ACE_-related code * lib/file-has-acl.c (acl_ace_nontrivial): Define only if ALLOW and ACE_OWNER are also defined. 2008-06-08 Bruno Haible * lib/acl-internal.h: Add me as co-author. * lib/file-has-acl.c: Likewise. * lib/set-mode-acl.c: Likewise. * lib/copy-acl.c: Likewise. 2008-06-08 Bruno Haible Add support for AIX ACLs. * lib/acl-internal.h (acl_nontrivial): New declaration. * lib/file-has-acl.c (acl_nontrivial): New function. (file_has_acl): Add implementation using AIX 4 ACL API. * lib/set-mode-acl.c (qset_acl): Likewise. * lib/copy-acl.c (qcopy_acl): Likewise. 2008-06-08 Bruno Haible Add support for HP-UX ACLs. * lib/acl-internal.h (acl_nontrivial): New declaration. * lib/file-has-acl.c (acl_nontrivial): New function. (file_has_acl): Add implementation using HP-UX 11 ACL API. * lib/set-mode-acl.c (qset_acl): Likewise. * lib/copy-acl.c (qcopy_acl): Likewise. 2008-06-08 Bruno Haible Add support for Cygwin ACLs. * lib/acl-internal.h (MODE_INSIDE_ACL): New macro for Solaris-like API. * lib/set-mode-acl.c (qset_acl) [!MODE_INSIDE_ACL]: Don't optimize away the chmod_or_fchmod call. * lib/copy-acl.c (qcopy_acl) [!MODE_INSIDE_ACL]: Likewise. 2008-06-08 Bruno Haible Fix bug with setuid modes in Solaris 10+ code. * lib/set-mode-acl.c (qset_acl): Call chmod_or_fchmod when acl_set succeeded, when the mode contains some special bits. 2008-06-08 Bruno Haible Add support for Solaris 7..10 ACLs. * lib/acl-internal.h (acl_nontrivial, acl_ace_nontrivial): New declarations. * lib/file-has-acl.c (acl_nontrivial, acl_ace_nontrivial): New functions. (file_has_acl): Add implementation using Solaris 7..10 ACL API. * lib/set-mode-acl.c (qset_acl): Likewise. * lib/copy-acl.c (qcopy_acl): Likewise. 2008-06-08 Bruno Haible * lib/acl-internal.h (acl_extended_nontrivial) [MacOS X]: New declaration. * lib/file-has-acl.c (acl_extended_nontrivial) [MacOS X]: New function. (acl_access_nontrivial): Remove MacOS X case. (file_has_acl): Use acl_extended_nontrivial. * lib/copy-acl.c (qcopy_acl): Likewise. 2008-06-08 Bruno Haible * lib/set-mode-acl.c (qset_acl): Trivial code simplifications. 2008-06-08 Jim Meyering * modules/acl (Maintainer): Add Bruno Haible. 2008-06-07 Bruno Haible Improve support for Tru64 ACLs. * lib/file-has-acl.c (file_has_acl): Don't test the ACL_TYPE_DEFAULT ACL on OSF/1. 2008-06-07 Bruno Haible Add support for MacOS X ACLs. * lib/file-has-acl.c (file_has_acl): Use ACL_TYPE_EXTENDED instead of ACL_TYPE_ACCESS and ACL_TYPE_DEFAULT. * lib/set-mode-acl.c (qset_acl): Likewise. * lib/copy-acl.c (qcopy_acl): Likewise. 2008-06-07 Bruno Haible Fix memory leak introduced on 2008-05-22. * lib/set-mode-acl.c (qset_acl) [!MODE_INSIDE_ACL]: Free ACLs after use. 2008-06-07 Bruno Haible * lib/set-mode-acl.c (qset_acl): Use acl_init(), not acl_from_text(), to construct an empty ACL. 2008-06-07 Bruno Haible * lib/set-mode-acl.c (chmod_or_fchmod): Document return value precisely. * lib/copy-acl.c (qcopy_acl): Trivial code simplifications. 2008-06-07 Bruno Haible * lib/copy-acl.c (qcopy_acl): Make the #if branches independent. * lib/set-mode-acl.c (qset_acl): Choose better local variable names. 2008-06-07 Bruno Haible * doc/posix-functions/_setjmp.texi: Explain the use of this function regardless of POSIX. * doc/posix-functions/_longjmp.texi: Likewise. * doc/posix-functions/setjmp.texi: Mention HP-UX as not counting as a SystemV platform in this case. 2008-06-06 Eric Blake Document abort() bugs. * doc/posix-functions/abort.texi (abort): Mention anomalies. * doc/posix-functions/setjmp.texi (setjmp): Mingw has setjmp. * doc/posix-functions/sigsetjmp.texi (sigsetjmp): Cygwin has sigsetjmp. * doc/posix-functions/siglongjmp.texi (siglongjmp): Cygwin has siglongjmp, but only as a macro. * doc/posix-functions/_longjmp.texi (_longjmp): Mention that this is obsolete. * doc/posix-functions/_setjmp.texi (_setjmp): Likewise. Tweak documentation to cover cygwin argz bugs. * m4/argz.m4 (gl_FUNC_ARGZ): Mention date of last known cygwin argz bug fix; no code change needed since no cygwin releases occurred between the last fix and the bug being tested. * doc/glibc-functions/argz_add.texi (argz_add): Document the argz module and recently fixed cygwin bugs. * doc/glibc-functions/argz_add_sep.texi (argz_add_sep): Likewise. * doc/glibc-functions/argz_append.texi (argz_append): Likewise. * doc/glibc-functions/argz_count.texi (argz_count): Likewise. * doc/glibc-functions/argz_create.texi (argz_create): Likewise. * doc/glibc-functions/argz_create_sep.texi (argz_create_sep): Likewise. * doc/glibc-functions/argz_delete.texi (argz_delete): Likewise. * doc/glibc-functions/argz_extract.texi (argz_extract): Likewise. * doc/glibc-functions/argz_insert.texi (argz_insert): Likewise. * doc/glibc-functions/argz_next.texi (argz_next): Likewise. * doc/glibc-functions/argz_replace.texi (argz_replace): Likewise. * doc/glibc-functions/argz_stringify.texi (argz_stringify): Likewise. Avoid gcc warning on cygwin. * lib/copy-acl.c (qcopy_acl) [!HAVE_ACL_GET_FILE && !ACL_NO_TRIVIAL]: Avoid unused variable. 2008-06-05 Eric Blake Be tolerant of UNKNOWN version in gnulib-tool test dir. * top/GNUmakefile (_dummy): Warn rather than reconfigure if git-version-gen fails to come up with a version. Reported by Simon Josefsson. 2008-06-05 Jim Meyering Paul Eggert utimens.c: work around a probable Linux kernel bug * lib/utimens.c (gl_futimens) [HAVE_UTIMENSAT]: Work around what appears to be a kernel bug that causes utimensat to return 280 instead of 0, indicating success. 2008-06-04 Bruno Haible * lib/copy-acl.c (qcopy_acl): Call qset_acl, not set_acl. Fixes 2008-06-01 commit. 2008-06-04 Bruno Haible * lib/acl-internal.h (acl_access_nontrivial): New declaration. * lib/file-has-acl.c (acl_access_nontrivial): New function. (file_has_acl): Use it. Save errno afterwards. * lib/copy-acl.c (qcopy_acl): Use acl_access_nontrivial. 2008-06-03 Bruno Haible * lib/file-has-acl.c (file_has_acl): Put Solaris 10 code after POSIX- draft code. Simplify #ifs. * lib/set-mode-acl.c (qset_acl): Don't test for symlink if !USE_ACL. Put Solaris code after POSIX-draft code. Fix comments regarding Solaris 10, HP-UX. Mention Cygwin. * lib/copy-acl.c (qcopy_acl): Simplify #ifs. 2008-06-03 Eric Blake Provide fallback for older kernels. * lib/utimens.c (gl_futimens) [HAVE_UTIMENSAT, HAVE_FUTIMENS]: Provide runtime fallback if kernel lacks support. Reported by Mike Frysinger. 2008-06-02 Bruno Haible * lib/acl-internal.h (ACL_NOT_WELL_SUPPORTED): Include EOPNOTSUPP if it exists. 2008-06-02 Bruno Haible * lib/acl_entries.c (acl_entries): Rewrite to use acl_get_entry. * lib/copy-acl.c (qcopy_acl): Update comment. 2008-06-02 Bruno Haible * lib/acl-entries.h: Enclose most definitions in #ifs for POSIX-draft like ACL APIs. 2008-06-02 Bruno Haible * tests/test-file-has-acl.sh: Use different code for Cygwin. * tests/test-set-mode-acl.sh: Likewise. * tests/test-copy-acl.sh: Likewise. * tests/test-copy-file.sh: Likewise. 2008-06-02 Bruno Haible * tests/test-file-has-acl.sh: Remove unused code. 2008-06-01 Bruno Haible * lib/copy-acl.c (qcopy_acl): New function, extracted from copy_acl. (copy_acl): Just a wrapper around qcopy_acl that emits the error messages. * lib/set-mode-acl.c (qset_acl): Document return value precisely. 2008-06-01 Bruno Haible * m4/acl.m4 (gl_FUNC_ACL): Separate the POSIX-like and the Solaris tests. Test for libpacl, needed for OSF/1. Test for extended ACLs, needed for MacOS X. Test for HP-UX API. Test for newer and older AIX APIs. * modules/acl-tests (configure.ac): Remove tests now contained in m4/acl.m4. 2008-06-02 Jim Meyering announce-gen: use a better key-server host name * build-aux/announce-gen (main): Recommend keys.gnupg.net, since it may be more consistently reliable. Suggested by Werner Koch in . 2008-06-01 Bruno Haible * lib/stdio-impl.h (fp_ub): Use fp_. Needed for DragonFly BSD. Reported by Voroskoi Andras . 2008-06-01 Voroskoi Andras (tiny change) * lib/stdio-impl.h [__DragonFly__]: Fix typo. 2008-06-01 Bruno Haible New ACL tests. * tests/test-file-has-acl.sh: New file. * tests/test-file-has-acl.c: New file. * tests/test-set-mode-acl.sh: New file. * tests/test-set-mode-acl.c: New file. * tests/test-copy-acl.sh: New file, based on tests/test-copy-file.sh. * tests/test-copy-acl.c: New file. * modules/acl-tests: New file, based on modules/copy-file-tests. * modules/copy-file-tests (Files): Remove tests/test-sameacls.c. (Depends-on): Add acl-tests. (configure.ac): Remove checks. (Makefile.am): Don't create test-sameacls program here any more. 2008-06-01 Bruno Haible * tests/test-copy-file.sh: Portability fixes for Solaris, HP-UX, IRIX. * tests/test-sameacls.c: Include progname.h. (main): Invoke set_program_name. Portability fixes for MacOS X, Solaris, HP-UX. 2008-06-01 Bruno Haible * lib/freadahead.c (freadahead) [__DragonFly__]: Use the __sreadahead function. Reported by VOROSKOI Andras . 2008-06-01 Bruno Haible * modules/rpmatch (Depends-on): Add strdup. 2008-06-01 Bruno Haible * lib/pipe.c: Include unistd-safer.h. (create_pipe): Ensure the returned file descriptors are not in {0,1,2}. * modules/pipe (Depends-on): Add unistd-safer. 2008-05-30 Simon Josefsson * modules/autobuild (configure.ac): Call AB_INIT. 2008-05-30 Simon Josefsson * tests/test-getaddrinfo.c: Don't print debug messages by default. Suggested by Bruno Haible . 2008-05-30 Simon Josefsson * tests/test-base64.c: Cast size_t to unsigned long when invoking printf. Use %lu instead of %d. Reported by Bruno Haible . 2008-05-29 Eric Blake Prefer new POSIX 200x interfaces over futimesat. * m4/utimens.m4 (gl_UTIMENS): Check for futimens, utimensat. * lib/utimens.c (gl_futimens): Use them for nanosecond resolution when available. [HAVE_BUGGY_NFS_TIME_STAMPS]: Allow C89 compilation. 2008-05-28 Bruno Haible * modules/stpcpy (License): Change to LGPLv2+. Requested by David Lutterkort . 2008-05-27 Bruno Haible * lib/localename.c (SUBLANG_TIBETAN_BHUTAN): Force value 2. Needed for current mingw. Reported by Jose E. Marchesi . 2008-05-27 Bruno Haible * modules/iconv_open (Link): New section, from module 'iconv'. * modules/striconv (Link): Likewise. * modules/striconveh (Link): Likewise. * modules/xstriconv (Link): Likewise. * modules/unicodeio (Link): Likewise. * modules/propername (Link): Likewise. Reported by Jim Meyering. 2008-05-26 Jim Meyering sha256: do not artificially restrict buffer length to be < 2^32 * lib/sha256.h (struct sha256_ctx) [buflen]: Change type from uint32_t to size_t. * lib/sha256.c (sha256_conclude_ctx): Change type of a local to match. avoid unaligned access errors, e.g., on sparc * lib/sha512.c (sha512_conclude_ctx): Use set_uint64 rather than direct access through a possibly-unaligned uint64* pointer. * lib/sha256.c (sha256_conclude_ctx): Use set_uint32 rather than direct access through a possibly-unaligned uint32* pointer. Prompted by this patch from Tom "spot" Callaway: http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/13638 sha512.c: fix typo in comment * lib/sha512.c (sha512_conclude_ctx): Length is 128-bit, not 64-bit. 2008-05-25 Bruno Haible * lib/set-mode-acl.c: Renamed from lib/acl.c. * modules/acl (Files): Add lib/set-mode-acl.c, remove lib/acl.c. (Makefile.am): Update lib_SOURCES. 2008-05-25 Bruno Haible * m4/acl.m4 (gl_FUNC_ACL): Don't set LIB_ACL_TRIVIAL. 2008-05-25 Jim Meyering useless-if-before-free: freed expr may have white-space differences * build-aux/useless-if-before-free: Recognize cases in which the freed expression differs from the tested one in embedded white space, e.g., if (p[i + 1]) free(p[i+1]). Correct thinko in prev: $1 was used, so we can't make any regexp shy. Improved tests now detect this. useless-if-before-free: accept white space in the expression. * build-aux/useless-if-before-free: For now, any white space in the expression must be identical in the free argument. useless-if-before-free: efficiency tweak * build-aux/useless-if-before-free: Make the expression-matching regexp "shy". Make the *outer* regexp shy, not the expr-matching one. update code-in-comment to accept cast of free arg * build-aux/useless-if-before-free: Update regexp. 2008-05-25 Bruno Haible * tests/test-sameacls.c: Renamed from tests/test-copy-file-sameacls.c. * modules/copy-file-tests (Files, Makefile.am): Update. * tests/test-copy-file.c (func_test_copy): Update. 2008-05-24 Andreas Färber (tiny change) * lib/stdbool.in.h [__HAIKU__]: Disable __BEOS__ workarounds. 2008-05-23 Bruno Haible Improve support for ACLs on OSF/1. * lib/acl.c (qset_acl): For OSF/1, use a string that ends in a comma. Remove fallback for unknown flavors of ACLs. 2008-05-22 Bruno Haible Add support for ACLs on OSF/1. * lib/acl-internal.h (acl_get_fd, acl_set_fd): New inline function replacements. (acl_free_text): New macro fallback. * lib/acl_entries.c (acl_entries): Use acl_free_text instead of acl_free. * m4/acl.m4 (gl_FUNC_ACL): Look also in libpacl library. Test for acl_free_text function. Require AC_C_INLINE. 2008-05-22 Bruno Haible Make copy_acl work on MacOS X 10.5. * lib/acl-internal.h (MODE_INSIDE_ACL): New macro. (ACL_NOT_WELL_SUPPORTED): On MacOS X, also handle ENOENT. * lib/acl.c (qset_acl): Add different code branch for !MODE_INSIDE_ACL. If MODE_INSIDE_ACL, don't assume that every system has the same text representation for ACLs as FreeBSD. * lib/copy-acl.c (copy_acl): Add support for platforms with !MODE_INSIDE_ACL. * lib/file-has-acl.c (file_has_acl): Likewise. * m4/acl.m4 (gl_FUNC_ACL): Test for some functions that are witness of FreeBSD, MacOS X, or IRIX, respectively. 2008-05-22 Bruno Haible * lib/acl.h: Don't include . (GETACLCNT): Move fallback to lib/acl-internal.h. * lib/acl-internal.h: Include here. (GETACLCNT): New macro fallback, moved here from lib/acl.h. 2008-05-22 Bruno Haible Split off copy_acl function to separate file. * lib/copy-acl.c: New file, extracted from lib/acl.c. * lib/acl.c (copy_acl): Moved function to separate file. * m4/acl.m4 (gl_FUNC_ACL): Remove unconditional AC_LIBOBJs. * modules/acl (Files): Add lib/copy-acl.c. (Makefiles.am): Augment lib_SOURCES. 2008-05-22 Bruno Haible * modules/copy-file-tests: New file. * tests/test-copy-file.sh: New file. * tests/test-copy-file.c: New file. * tests/test-copy-file-sameacls.c: New file. 2008-05-22 Eric Blake Avoid gcc warning. * tests/test-memcmp.c (main): Pass NULL indirectly. 2008-05-21 Bruno Haible Add reference doc about ACLs. * doc/acl-resources.txt: New file. * doc/acl-cygwin.txt: New file. 2008-05-21 Bruno Haible Avoid one more warning from gcc. * lib/vasnprintf.c (IF_LINT): Update comments. (VASNPRINTF): Use it also for the 'prefix' array initializer. 2008-05-21 Jim Meyering avoid a warning from gcc * lib/vasnprintf.c (IF_LINT): Define. (scale10_round_decimal_long_double): Use it to avoid a "may be used uninitialized" warning. (scale10_round_decimal_double): Likewise. 2008-05-21 Simon Josefsson * m4/memcmp.m4: When cross-compiling, assume memcmp works if it is declared. 2008-05-20 Bruno Haible * tests/test-memcmp.c (main): Test also the sign of the result. Test against two known bugs; code taken from autoconf's AC_FUNC_MEMCMP. 2008-05-20 Simon Josefsson * modules/memcmp-tests: New file. * tests/test-memcmp.c: New file. 2008-05-19 Bruno Haible * modules/propername (Notice, configure.ac): Put quoted "..." into --keyword option. * lib/propername.h: Update comments accordingly. Reported by Eric Blake. 2008-05-19 Martin Lambers (tiny change) * modules/getpass-gnu (Depends-on): Add fseeko. 2008-05-19 Simon Josefsson * modules/base64-tests: New file. 2008-05-19 Bo Borgerson * lib/base64.c (base64_decode_ctx): If a decode context structure was passed in use it to ignore newlines. If a context structure was _not_ passed in, continue to treat newlines as garbage (this is the historical behavior). Formerly base64_decode. (base64_decode_alloc_ctx): Formerly base64_decode_alloc. Now takes a decode context structure. * lib/base64.h (base64_decode): Macro for four-argument calls. (base64_decode_alloc): Likewise. * lib/base64.c (base64_decode_ctx): If a decode context structure was passed in use it to ignore newlines. If a context structure was _not_ passed in, continue to treat newlines as garbage (this is the historical behavior). Formerly base64_decode. (base64_decode_alloc_ctx): Formerly base64_decode_alloc. Now takes a decode context structure. * lib/base64.h (base64_decode): Macro for four-argument calls. (base64_decode_alloc): Likewise. 2008-05-19 Jim Meyering avoid a warning from gcc * lib/trim.c (IF_LINT): Define. (trim2): Use it to avoid a "may be used uninitialized" warning. Fix doc typo. * doc/glibc-functions/getpass.texi (getpass): s/PATH_MAX/PASS_MAX/. 2008-05-19 Bruno Haible * doc/glibc-functions/getpass.texi: Document limits of other implementations. 2008-05-19 Simon Josefsson Bruno Haible * doc/glibc-functions/getpass.texi: Document gnulib implementation. 2008-05-18 Bruno Haible * modules/propername: New file, from GNU gettext. * lib/propername.h: New file, from GNU gettext. * lib/propername.c: New file, from GNU gettext. * MODULES.html.sh (Internationalization functions): Add propername. 2008-05-16 Jim Meyering Bruno Haible Avoid some warnings from "gcc -Wshadow". * lib/vasnprintf.c (exp, remainder): Define to different identifiers. 2008-05-15 Eric Blake Extend previous patch to cygwin 1.7.0. * m4/memmem.m4 (gl_FUNC_MEMMEM): When cross-compiling, assume a fast implementation in cygwin >= 1.7.0. * m4/strstr.m4 (gl_FUNC_STRSTR): Likewise. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise. 2008-05-15 Bruno Haible * m4/memmem.m4 (gl_FUNC_MEMMEM): When cross-compiling, assume a fast implementation in glibc >= 2.9. * m4/strstr.m4 (gl_FUNC_STRSTR): Likewise. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise. 2008-05-15 Bruno Haible * MODULES.html.sh (Internationalization functions): Remove linebreak. (Unicode string functions): Add unilbrk/*. Reported by Karl Berry. 2008-05-15 Eric Blake Fix violation of replacement in regex. * lib/regcomp.c (re_compile_internal): Avoid implicit cast to bool. * lib/regexec.c (re_search_internal): Likewise. Reported by Heinrich Mislik . 2008-05-15 Jim Meyering avoid distracting test output when git or cvs is not found * tests/test-vc-list-files-cvs.sh: Suppress 'init' error output. * tests/test-vc-list-files-git.sh: Likewise. 2008-05-15 Eric Blake Glibc finally accepted the memmem speedup code, bugzilla #5514. * doc/glibc-functions/memmem.texi (memmem): Mention last broken glibc version. * doc/glibc-functions/strcasestr.texi (strcasestr): Likewise. * doc/posix-functions/strstr.texi (strstr): Likewise. * lib/str-two-way.h (MAX): Sychronize with glibc. 2008-05-15 Paolo Bonzini * lib/regcomp.c (optimize_utf8): Add a note on why we test opr.ctx_type. (calc_first): Initialize constraint field. (duplicate_node_closure): Use it instead of special casing ANCHORS. Fix grammar. (duplicate_node): Merge constraint field for all node types. (calc_eclosure_iter): Look at constraint field for all node types. * lib/regex_internal.c (create_cd_newstate): Don't look at opr.ctx_type. 2008-05-14 Bruno Haible Help GCC to do better code generation. * lib/eealloc.h (eemalloc) [GCC >= 3]: Declare with attribute 'malloc'. * lib/pagealign_alloc.h (pagealign_alloc, pagealign_xalloc): Likewise. * lib/xalloc.h (ATTRIBUTE_MALLOC): New macro. (xmalloc, xzalloc, xcalloc, xmemdup, xstrdup, xnmalloc, xcharalloc): Declare with attribute 'malloc' if supported. 2008-05-14 Lasse Collin use "echo STR|wc -c" rather than unportable "expr length STR" * build-aux/mktempd (mktempd): Vendor-supplied expr from at least OpenBSD 4.3 and Solaris 10 do not honor expr's "length" function. 2008-05-14 Jim Meyering use dd ibs=$n count=1 ... rather than less-portable head -c$n * build-aux/mktempd (rand_bytes): head's -cN option is not accepted by Solaris 10's /bin/head or by the one from HP-UX 11.x. Reported in http://sourceforge.net/forum/message.php?msg_id=4960334 via Collin Lasse. 2008-05-14 Eric Blake Avoid quadratic growth in gl_LIBSOURCES. * gnulib-tool (func_emit_initmacro_done): s/\(m4_append\)_uniq/\1/. Suggested by Bruno Haible. Test xmemdup0. * modules/xmemdup0-tests: New file. * tests/test-xmemdup0.c: Likewise. 2008-05-13 Eric Blake Split xmemdup0 into its own module. * modules/xmemdup0: New file. * lib/xmemdup0.h: Likewise. * lib/xmemdup0.c: Likewise. * MODULES.html.sh (Memory management functions): Add xmemdup0. * lib/xalloc.h (xmemdup0): Remove. * lib/xmalloc.c (xmemdup0): Likewise. 2008-05-13 Eric Blake Bruno Haible Reduce number of forks required during autoconf. * gnulib-tool (func_emit_initmacro_start): Prepare gl_LIBSOURCES_LIST and gl_LIBSOURCES_DIR. (func_emit_initmacro_end): Use them here in a single m4_syscmd... (func_emit_initmacro_done) : ...rather than in one m4_syscmd per file. : Move... * m4/gnulib-common.m4 (m4_foreach_w): ...here. 2008-05-13 Eric Blake * gnulib-tool: Fix various comment typos. 2008-05-12 Bruno Haible Tailor the linebreaking algorithm. * lib/unilbrk/tables.c (unilbrk_table): Change (IS,AL) entry. 2008-05-12 Bruno Haible Update to Unicode 5.0.0. * lib/unilbrk/tables.h (LBP_*): Add LBP_WJ, LBP_H2, LBP_H3, LBP_JL, LBP_JV, LBP_JT. Redistribute values. (unilbrk_table): Change size. * lib/unilbrk/tables.c (unilbrk_table): Change size. Update to match Unicode TR#14 rev. 22. * lib/unilbrk/gen-lbrk.c (LBP_*): Add LBP_WJ, LBP_H2, LBP_H3, LBP_JL, LBP_JV, LBP_JT. Redistribute values. (get_lbp): Update to match Unicode TR#14 rev. 21/22 and Unicode 5.0.0. (debug_output_lbp, fill_org_lbp, debug_output_org_lbp, output_lbp): Update. * lib/unilbrk/lbrkprop1.h: Regenerated. * lib/unilbrk/lbrkprop2.h: Regenerated. * lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks): Change handling of LBP_CM after LBP_ZW. Update for new value of LBP_BK. * lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks): Likewise. * lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks): Likewise. * tests/unilbrk/test-u8-possible-linebreaks.c (main): Update expected result. * tests/unilbrk/test-u16-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-u32-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-ulc-possible-linebreaks.c (main): Likewise. * tests/unilbrk/test-u8-width-linebreaks.c (main): Likewise. * tests/unilbrk/test-u16-width-linebreaks.c (main): Likewise. * tests/unilbrk/test-u32-width-linebreaks.c (main): Likewise. 2008-05-11 Bruno Haible * lib/unilbrk/gen-lbrk.c (output_lbp): Fix whitespace. 2008-05-11 Bruno Haible * lib/unilbrk/gen-lbrk.c: New file, from GNU gettext (gen-lbrkprop.c). * modules/unilbrk/gen-lbrk: New file. 2008-05-11 Bruno Haible * m4/sha256.m4 (gl_SHA256): Require AC_C_INLINE. * m4/sha512.m4 (gl_SHA512): Likewise. 2008-05-11 Jim Meyering New modules: crypto/sha256, crypto/sha512 (from coreutils) * modules/crypto/sha256: New file. * modules/crypto/sha512: Likewise. * lib/sha256.c: Likewise. * lib/sha256.h: Likewise. * lib/sha512.c: Likewise. * lib/sha512.h: Likewise. * lib/u64.h: Likewise. * m4/sha256.m4: Likewise. * m4/sha512.m4: Likewise. * MODULES.html.sh (Cryptographic computations (low-level)): List them. 2008-05-10 Bruno Haible * MODULES.html.sh (Environment variables ): Add unsetenv. (Input/Output ): Add xprintf. (Signal handling ): Add strsignal. (Cryptographic computations (high-level)): Add crypto/gc-camellia. (Core language properties): Add func. (Mathematics ): Add ceil, floor, frexp-nolibm. (Support for systems lacking POSIX:2001): Add environ, EOVERFLOW, strings. (Enhancements for POSIX:2001 functions): Add iconv_open-utf. (Input/output): New section. (File system functions): Add openat-die, stat-macros. (Networking functions): Add sockets. (Unicode string functions): Add unictype/*. (Support for building libraries and executables): Add gperf. (Support for building documentation): Add agpl-3.0. (Misc): Add nocrash. 2008-05-10 Bruno Haible * modules/unictype/gen-ctype: New file. 2008-05-10 Jim Meyering Make chdir-safer.c more efficient on a system with no symlinks. * lib/chdir-safer.c (chdir_no_follow): Skip lstat and fstat calls also if ELOOP is zero. Suggested by Bruno Haible. Make chdir-safer.c slightly safer. * lib/chdir-safer.c (chdir_no_follow): Test HAVE_WORKING_O_NOFOLLOW, not O_NOFOLLOW, in case the latter is nonzero and open ignores it. Avoid compile failure on systems without ELOOP (like mingw). * lib/chdir-safer.c (ELOOP): Define if not already defined. Reported by Bruno Haible. 2008-05-10 Bruno Haible * lib/unilbrk/ulc-common.c: Include c-strcaseeq.h instead of streq.h. (is_utf8_encoding): Use a case-insensitive comparison. * modules/unilbrk/ulc-common (Depends-on): Add c-strcaseeq. Remove streq. 2008-05-10 Bruno Haible * lib/unilbrk/ulc-common.c: Don't include . (iconv_string_length, iconv_string_keeping_offsets): Remove functions. * lib/unilbrk/ulc-common.h (iconv_string_length, iconv_string_keeping_offsets): Remove declarations. * lib/unilbrk/ulc-possible-linebreaks.c: Include , uniconv.h. Don't include , streq.h, xsize.h. (ulc_possible_linebreaks): Use u8_conv_from_encoding for doing the conversion. * lib/unilbrk/ulc-width-linebreaks.c: Include uniconv.h. Don't include , streq.h, xsize.h. (ulc_width_linebreaks): Use u8_conv_from_encoding for doing the conversion. * modules/unilbrk/ulc-common (Depends-on): Remove iconv. * modules/unilbrk/ulc-possible-linebreaks (Depends-on): Add uniconv/u8-conv-from-enc. Remove iconv_open, streq, xsize. * modules/unilbrk/ulc-width-linebreaks (Depends-on): Likewise. 2008-05-10 Bruno Haible * modules/unilbrk/ulc-width-linebreaks-tests: New file. * tests/unilbrk/test-ulc-width-linebreaks.c: New file. * modules/unilbrk/u32-width-linebreaks-tests: New file. * tests/unilbrk/test-u32-width-linebreaks.c: New file. * modules/unilbrk/u16-width-linebreaks-tests: New file. * tests/unilbrk/test-u16-width-linebreaks.c: New file. * modules/unilbrk/u8-width-linebreaks-tests: New file. * tests/unilbrk/test-u8-width-linebreaks.c: New file. * modules/unilbrk/ulc-possible-linebreaks-tests: New file. * tests/unilbrk/test-ulc-possible-linebreaks.c: New file. * modules/unilbrk/u32-possible-linebreaks-tests: New file. * tests/unilbrk/test-u32-possible-linebreaks.c: New file. * modules/unilbrk/u16-possible-linebreaks-tests: New file. * tests/unilbrk/test-u16-possible-linebreaks.c: New file. * modules/unilbrk/u8-possible-linebreaks-tests: New file. * tests/unilbrk/test-u8-possible-linebreaks.c: New file. 2008-05-10 Bruno Haible Split up 'linebreak' module. * lib/unilbrk.h: New file, based on lib/linebreak.h. * lib/unilbrk/lbrkprop1.h: New file, extracted from lib/lbrkprop.h. * lib/unilbrk/lbrkprop2.h: New file, renamed from lib/lbrkprop.h with modifications. * lib/unilbrk/tables.h: New file, extracted from lib/linebreak.c. * lib/unilbrk/tables.c: New file, extracted from lib/linebreak.c. * lib/unilbrk/u8-possible-linebreaks.c: New file, extracted from lib/linebreak.c. * lib/unilbrk/u16-possible-linebreaks.c: New file, extracted from lib/linebreak.c. * lib/unilbrk/u32-possible-linebreaks.c: New file, extracted from lib/linebreak.c. * lib/unilbrk/ulc-common.h: New file, extracted from lib/linebreak.c. * lib/unilbrk/ulc-common.c: New file, extracted from lib/linebreak.c. * lib/unilbrk/ulc-possible-linebreaks.c: New file, extracted from lib/linebreak.c. * lib/unilbrk/u8-width-linebreaks.c: New file, extracted from lib/linebreak.c. * lib/unilbrk/u16-width-linebreaks.c: New file, extracted from lib/linebreak.c. * lib/unilbrk/u32-width-linebreaks.c: New file, extracted from lib/linebreak.c. * lib/unilbrk/ulc-width-linebreaks.c: New file, extracted from lib/linebreak.c. * modules/unilbrk/base: New file. * modules/unilbrk/tables: New file. * modules/unilbrk/u8-possible-linebreaks: New file. * modules/unilbrk/u16-possible-linebreaks: New file. * modules/unilbrk/u32-possible-linebreaks: New file. * modules/unilbrk/ulc-common: New file. * modules/unilbrk/ulc-possible-linebreaks: New file. * modules/unilbrk/u8-width-linebreaks: New file. * modules/unilbrk/u16-width-linebreaks: New file. * modules/unilbrk/u32-width-linebreaks: New file. * modules/unilbrk/ulc-width-linebreaks: New file. * lib/linebreak.h: Remove file. * lib/linebreak.c: Remove file. * m4/linebreak.m4: Remove file. * modules/linebreak: Remove file. * NEWS: Mention the changes. 2008-05-09 Eric Blake Add xmemdup0. * lib/xalloc.h (xmemdup0): New prototype and C++ typesafe implementation. * lib/xmalloc.c (xmemdup0): New C implementation. 2008-05-08 Bruno Haible * m4/wctype.m4 (gl_WCTYPE_H): Correct indentation. 2008-05-07 Eric Blake Support cross-compilation of . * m4/wctype.m4 (gl_WCTYPE_H): Fix improper nesting in AC_CACHE_CHECK. 2008-05-06 Soren Hansen (tiny change) * build-aux/vc-list-files: Add support for bzr. 2008-05-03 Jim Meyering avoid failed assertion with tight malloc * tests/test-getndelim2.c: Correct an off-by-one assertion. 2008-05-03 Simon Josefsson * m4/inet_pton.m4: Set HAVE_DECL_INET_PTON to 0 when declarations are needed from arpa/inet.h. * m4/inet_ntop.m4: Likewise, for HAVE_DECL_INET_NTOP. Reported by Bruno Haible. 2008-05-02 Jim Meyering avoid compilation error on FreeBSD 6 * tests/test-getaddrinfo.c [!defined EAI_NODATA] (EAI_NODATA): Define. 2008-05-01 Jim Meyering useless-if-before-free: correct --help's exit status description * build-aux/useless-if-before-free (usage): Like grep, exit 0 for one or more matches, etc. Reported by Bruno Haible. vc-list-files: make the stand-alone gnulib test work * modules/vc-list-files-tests (configure.ac): Define and AC_SUBST abs_aux_dir. (Makefile.am) [TESTS_ENVIRONMENT]: Rather than passing $(abs_top_srcdir) to each script and having each of them duplicate the work of setting PATH, set PATH here, using the new variable, abs_aux_dir instead. * tests/test-vc-list-files-cvs.sh: Don't set PATH here. * tests/test-vc-list-files-git.sh: Likewise. Reported by Bruno Haible. 2008-05-01 Bruno Haible * lib/getndelim2.c (getndelim2): Fix newsize computation during reallocation. Rename 'done' to 'found_delimiter'. 2008-05-01 Jim Meyering vc-list-files: accommodate /bin/sh like the one from Solaris 10 * build-aux/vc-list-files: Use `...`, not $(...). 2008-04-30 Jim Meyering add tests for vc-list-files * modules/vc-list-files-tests: New module. * tests/test-vc-list-files-cvs.sh: New file. * tests/test-vc-list-files-git.sh: New file. avoid a warning from gcc * lib/getndelim2.c (IF_LINT): Define. (getndelim2): Use it to avoid a "may be used uninitialized" warning. vc-list-files: work properly with build-aux/cvsu, too * build-aux/vc-list-files: Hoist the "./"-removing code to apply to all cvs-based clauses. vc-list-files: work properly in the CVS+awk case, too * build-aux/vc-list-files: In the CVS+awk case, remove "./" prefix. vc-list-files: avoid use of ${*-*} that fails when /bin/sh is dash * build-aux/vc-list-files: Simplify ${*-*} to $dir, since we no longer take more than one file argument, so . Add quotes, just in case $dir ever contains a shell meta-character. Prompted by Soren Hansen in . 2008-04-29 Eric Blake Optimize getndelim2 to use block operations when possible. * modules/getndelim2 (Depends-on): Add stdbool, freadptr, freadseek, and memchr2. * lib/getndelim2.c (getndelim2): Use them for block reads. 2008-04-29 Bruno Haible * m4/inet_ntop.m4 (gl_INET_NTOP): Require gl_USE_SYSTEM_EXTENSIONS. * m4/inet_pton.m4 (gl_INET_PTON): Likewise. * modules/inet_ntop (Depends-on): Add extensions. * modules/inet_pton (Depends-on): Likewise. Reported by Simon Josefsson. 2008-04-29 Jim Meyering When the is more than one match in a block, match all of them. * build-aux/useless-if-before-free: Iterate through each block until there are no more matches. Fix broken useless-if-before-free script. * build-aux/useless-if-before-free: Fix typo: missing "?" after the expression to match cast of argument to free-like function. 2008-04-29 Eric Blake Use new header. * lib/getaddrinfo.c (includes): s/"inet_ntop.h"//. 2008-04-29 Jim Meyering Avoid test segfault on x86_64 due to lack of inet_ntop declaration. * tests/test-getaddrinfo.c: Include , now guaranteed by gnulib to exist and to declare e.g., inet_ntop. Don't include "inet_ntop.h", now removed. * m4/arpa_inet_h.m4: Remove trailing blanks. 2008-04-29 Eric Blake Silence valgrind on safe reads beyond potential array bounds. * lib/rawmemchr.valgrind: New file. * lib/strchrnul.valgrind: Likewise. * modules/rawmemchr (Files): Distribute new file. * modules/strchrnul (Files): Likewise. Suggested by Bruno Haible. 2008-04-29 Bruno Haible * lib/arpa_inet.in.h: Include system's if it exists. (inet_ntop, inet_pton): Change portability warning's wording. * m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET): Set HAVE_ARPA_INET_H. Invoke gl_CHECK_NEXT_HEADERS. (gl_ARPA_INET_H_DEFAULTS): Initialize ARPA_INET_H. * m4/inet_ntop.m4 (gl_INET_NTOP): Require gl_ARPA_INET_H_DEFAULTS and set ARPA_INET_H. * m4/inet_pton.m4 (gl_INET_PTON): Likewise. * modules/arpa_inet (Description): No longer only for systems that lack it. (Depends-on): Add include_next. (Makeile.am): Substitute INCLUDE_NEXT, NEXT_ARPA_INET_H, HAVE_ARPA_INET_H. 2008-04-29 Jim Meyering * modules/mkdir (License): Re-license as LGPLv2+. 2008-04-29 Bruno Haible * modules/rawmemchr (Maintainer): Set to Eric. * modules/strchrnul (Maintainer): Likewise. 2008-04-29 Simon Josefsson * m4/arpa_inet_h.m4 (gl_ARPA_INET_H_DEFAULTS): Set HAVE_DECL_INET_NTOP and HAVE_DECL_INET_PTON. * modules/arpa_inet (arpa/inet.h): Use them. 2008-04-28 Eric Blake Test getndelim2. * modules/getndelim2-tests: New file. * tests/test-getndelim2.c: Likewise. * lib/getndelim2.c (getndelim2): Never return 0. Lock the stream. * m4/getndelim2.m4 (gl_GETNDELIM2): Check for lock functions. * MODULES.html.sh: Document new module. 2008-04-20 Bruno Haible * lib/c-stack.c (die): Use raise. * modules/c-stack (Depends-on): Add raise. 2008-04-28 Bruno Haible Expect rpmatch to be declared. * lib/yesno.c (rpmatch): Remove declaration. Declare rpmatch. * lib/stdlib.in.h (rpmatch): New declaration. * lib/rpmatch.c: Include first. * m4/rpmatch.m4 (gl_FUNC_RPMATCH): Require AC_USE_SYSTEM_EXTENSIONS and gl_STDLIB_H_DEFAULTS. Set HAVE_RPMATCH. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_RPMATCH, HAVE_RPMATCH. * modules/rpmatch (Depends-on): Add stdlib, extensions. (configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR. (Include): Set to . * modules/stdlib (Makefile.am): Substitute GNULIB_RPMATCH and HAVE_RPMATCH. * NEWS: Document the change. 2008-04-28 Bruno Haible Change rpmatch to use nl_langinfo when appropriate. * lib/rpmatch.c: Include stdbool.h, string.h, langinfo.h. (N_): New macro. (localized_pattern): New function/macro. (try): Remove match, nomatch arguments. Copy the pattern into safe memory before caching it. (rpmatch): Use localized_pattern. Add translator comments. * m4/rpmatch.m4 (gl_PREREQ_RPMATCH): Test for nl_langinfo and YESEXPR. Suggested by Eric Blake. * modules/rpmatch (Depends-on): Add stdbool. 2008-04-28 Eric Blake Add rawmemchr module, matching glibc. * modules/string (Makefile.am): New indicator. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Set it. * lib/string.in.h (rawmemchr): Declare when appropriate. * modules/rawmemchr: New file. * m4/rawmemchr.m4: Likewise. * lib/rawmemchr.c: Likewise. * modules/rawmemchr-tests: Likewise. * tests/test-rawmemchr.c: Likewise. * doc/glibc-functions/rawmemchr.texi (rawmemchr): Document module. * modules/strchrnul (Depends-on): Add rawmemchr. * lib/strchrnul.c (strchrnul): Optimize a corner case. Whitespace cleanup. * tests/test-strchrnul.c: Reindent. * lib/strchrnul.c: Likewise. Optimize and test strchrnul. * lib/strchrnul.c (strchrnul): Rewrite to do parallel search. * modules/strchrnul-tests: New file. * tests/test-strchrnul.c: Likewise. Remove intprops dependency. * modules/memchr (Depends-on): Remove intprops. * modules/memrchr (Depends-on): Likewise. * modules/memchr2 (Depends-on): Likewise. * lib/memchr.c (__memchr): Hand-inline the TYPE_MAXIMUM check. * lib/memrchr.c (__memrchr): Likewise. * lib/memrchr2.c (memchr2): Likewise. Reported by Simon Josefsson. 2008-04-28 Simon Josefsson * m4/sys_socket_h.m4: Move AC_REQUIRE([AC_C_INLINE]) to top. Suggested by Ralf Wildenhues . 2008-04-28 Simon Josefsson * lib/inet_ntop.h, lib/inet_pton.h: Remove files. * lib/inet_ntop.c: Include arpa/inet.h instead of inet_ntop.h. * lib/inet_pton.c: Include arpa/inet.h instead of inet_pton.h. * lib/arpa_inet.in.h [@GNULIB_INET_NTOP@]: Inline inet_ntop.h declarations. [@GNULIB_INET_PTON@]: Inline inet_pton.h declarations. * m4/inet_pton.m4: Don't check for header files. * m4/inet_ntop.m4: Don't check for header files. 2008-04-28 Simon Josefsson * m4/sys_socket_h.m4: Require AC_C_INLINE when necessary. * lib/sys_socket.in.h (setsockopt): Use proper win32 tests (don't trigger for cygwin). Reported by Bruno Haible . 2008-04-28 Bruno Haible * doc/posix-functions/strdup.texi: Mention mingw problem. 2008-04-27 Bruno Haible * modules/stat-time-tests (Depends-on): Add sleep. * tests/test-stat-time.c (force_unlink): New function. (cleanup): Use it. (test_mtime): Remove the ctime related tests. (test_ctime): New function, containing the ctime related tests. (main): Call test_ctime, except on native Windows platforms. 2008-04-27 Bruno Haible * lib/rpmatch.c (rpmatch): Add some comments. Reported by James Youngman . 2008-04-27 Bruno Haible * m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Also test the behaviour on quiet NaNs. 2008-04-27 Bruno Haible Make test-yesno.sh work on mingw. * tests/test-yesno.sh: Postprocess the output to convert CR/LF to LF. * tests/test-yesno.c: Include yesno.h first. Include binary-io.h. (main): Set stdin to binary mode. * modules/yesno-tests (Depends-on): Add binary-io. 2008-04-27 Bruno Haible Fix 'isfinite' on x86, x86_64, ia64 platforms. * tests/test-isfinite.c (test_isfinitel): Also test the behavior on argument that lie outside the IEEE 854 domain. * m4/isfinite.m4 (gl_ISFINITEL_WORKS): New macro. (gl_ISFINITE): Use it. * doc/posix-functions/isfinite.texi: Document the fixed bugs. 2008-04-27 Bruno Haible Allow local renaming in config.h. * lib/memrchr.c (memrchr): Don't undefine outside libc. 2008-04-27 Bruno Haible * lib/memchr.c (__memchr): Change type of 'i'. * lib/memchr2.c (memchr2): Likewise. 2008-04-26 Eric Blake and Bruno Haible Optimize and test memrchr. * modules/memrchr (Depends-on): Add intprops. * lib/memrchr.c (__memrchr): Avoid false positives in loop. * modules/memrchr-tests: New file. * tests/test-memrchr.c: New file. 2008-04-26 Bruno Haible Add tentative support for DragonFly BSD. * lib/stdio-impl.h: Add macros for DragonFly BSD. * lib/fbufmode.c (fbufmode): Update conditionals. Use fp_ instead of fp. * lib/fflush.c (clear_ungetc_buffer, disable_seek_optimization, restore_seek_optimization, update_fpos_cache, rpl_fflush: Likewise. * lib/fpurge.c (fpurge): Likewise. * lib/freadable.c (freaadable): Likewise. * lib/freadahead.c (freadahead): Likewise. * lib/freading.c (freading): Likewise. * lib/freadptr.c (freadptr): Likewise. * lib/freadseek.c (freadptrinc): Likewise. * lib/fseeko.c (fseeko): Likewise. * lib/fseterr.c (fseterr): Likewise. * lib/fwritable.c (fwritable): Likewise. * lib/fwriting.c (fwriting): Likewise. 2008-04-26 Bruno Haible * lib/stdio-impl.h: New file. * lib/fbufmode.c: Include stdio-impl.h. (fbufmode): Use fp_, remove redundant #defines. * lib/fflush.c: Include stdio-impl.h. (clear_ungetc_buffer): Remove redundant #defines. * lib/fpurge.c: Include stdio-impl.h. (fpurge): Remove redundant #defines. * lib/freadable.c: Include stdio-impl.h. (freadable): Remove redundant #defines. * lib/freadahead.c: Include stdio-impl.h. (freadahead): Remove redundant #defines. * lib/freading.c: Include stdio-impl.h. (freading): Remove redundant #defines. * lib/freadptr.c: Include stdio-impl.h. (freadptr): Remove redundant #defines. * lib/freadseek.c: Include stdio-impl.h. (freadptrinc): Remove redundant #defines. * lib/fseeko.c: Include stdio-impl.h. (rpl_fseeko): Remove redundant #defines. * lib/fseterr.c: Include stdio-impl.h. (fseterr): Remove redundant #defines. * lib/fwritable.c: Include stdio-impl.h. (fwritable: Remove redundant #defines. * lib/fwriting.c: Include stdio-impl.h. (fwriting): Remove redundant #defines. * modules/fbufmode (Files): Add lib/stdio-impl.h. * modules/fflush (Files): Likewise. * modules/fpurge (Files): Likewise. * modules/freadable (Files): Likewise. * modules/freadahead (Files): Likewise. * modules/freading (Files): Likewise. * modules/freadptr (Files): Likewise. * modules/freadseek (Files): Likewise. * modules/fseeko (Files): Likewise. * modules/fseterr (Files): Likewise. * modules/fwritable (Files): Likewise. * modules/fwriting (Files): Likewise. 2008-04-26 Bruno Haible * lib/fflush.c (clear_ungetc_buffer, disable_seek_optimization, restore_seek_optimization, update_fpos_cache): New functions, extracted from rpl_fflush. (rpl_fflush): Use them. * m4/fflush.m4 (gl_PREREQ_FFLUSH): New macro. (gl_REPLACE_FFLUSH): Use it. 2008-04-26 Bruno Haible * tests/test-xstrtol.sh: Work around limitation of an old 'tr' program on Solaris. * tests/test-xstrtoimax.sh: Likewise. * tests/test-xstrtoumax.sh: Likewise. Reported by Ralf Wildenhues . 2008-04-26 Bruno Haible * modules/memchr-tests: New file. * tests/test-memchr.c; New file, based on tests/test-memchr2.c. 2008-04-26 Eric Blake Bruno Haible * lib/memchr.c: Include intprops.h. (__memchr): Optimize parallel detection of matching bytes. Rename local variables. Add explanatory comments. 2008-04-26 Bruno Haible Fix module 'memchr', broken since 2000-10-28. * lib/memchr.c: Outside glibc, define memchr, not __memchr. 2008-04-26 Bruno Haible * lib/memchr2.c (memchr2): Rename local variables. Add explanatory comments. 2008-04-25 Eric Blake Use native fstatat on cygwin 1.7.0. * m4/openat.m4 (gl_FUNC_OPENAT): Make sure lstat check is made first. 2008-04-23 Eric Blake Improve memchr2 performance. * lib/memchr2.c (memchr2): Further optimize parallel detection of NUL bytes. * modules/memchr2 (Depends-on): Use intprops.h. 2008-04-23 Simon Josefsson * lib/sys_socket.in.h (setsockopt): Be more type safe by declaring an inline function instead of a CPP macro. Patch by Ben Pfaff . 2008-04-23 Simon Josefsson * lib/arpa_inet.in.h: New file. * modules/arpa_inet (Files): Add lib/arpa_inet.in.h. (Makefile.am): Sed in substitute header file. * m4/arpa_inet_h.m4: Add gl_ARPA_INET_H_DEFAULTS and gl_ARPA_INET_MODULE_INDICATOR. Use them. * modules/inet_ntop (configure.ac): Use gl_ARPA_INET_MODULE_INDICATOR. * modules/inet_pton (configure.ac): Use gl_ARPA_INET_MODULE_INDICATOR. 2008-04-22 Jim Meyering * modules/verify (License): Re-license as LGPLv2+. 2008-04-22 Simon Josefsson * lib/sys_socket.in.h: Define setsockopt macro to cast fourth parameter to void* as per POSIX standard (MinGW uses char*). 2008-04-21 Bruno Haible * lib/wctype.in.h (iswalnum, iswalpha, iswblank, iswcntrl, iswdigit, iswgraph, iswlower, iswprint, iswpunct, iswspace, iswupper, iswxdigit): Define to replacements if REPLACE_ISWCNTRL is 1. * m4/wctype.m4 (gl_WCTYPE_H): Test whether the isw* functions work. If not, set WCTYPE_H to nonempty and REPLACE_ISWCNTRL to 1. * modules/wctype (Makefile.am): Substitute REPLACE_ISWCNTRL. * doc/posix-functions/iswalnum.texi: Mention the 'wctype' module and what it fixes. * doc/posix-functions/iswalpha.texi: Likewise. * doc/posix-functions/iswblank.texi: Likewise. * doc/posix-functions/iswcntrl.texi: Likewise. * doc/posix-functions/iswdigit.texi: Likewise. * doc/posix-functions/iswgraph.texi: Likewise. * doc/posix-functions/iswlower.texi: Likewise. * doc/posix-functions/iswprint.texi: Likewise. * doc/posix-functions/iswpunct.texi: Likewise. * doc/posix-functions/iswspace.texi: Likewise. * doc/posix-functions/iswupper.texi: Likewise. * doc/posix-functions/iswxdigit.texi: Likewise. Reported by Alain Guibert. 2008-04-21 Bruno Haible * m4/vsnprintf.m4 (gl_FUNC_VSNPRINTF): Fix typo in last commit. Patch by Alain Guibert. 2008-04-21 Bruno Haible Fix test failures on mingw. * tests/test-xstrtol.c (print_no_progname): New function. (main): Install it in error_print_progname hook. * tests/test-xstrtol.sh: Convert CR/LF to NL in output. * tests/test-xstrtoimax.sh: Likewise. * tests/test-xstrtoumax.sh: Likewise. 2008-04-21 Bruno Haible Fix test failure on mingw. * tests/test-argp-2.sh (func_compare): Remove CRs from sed's output. 2008-04-21 Bruno Haible * lib/localename.c (SUBLANG_TIBETAN_PRC, SUBLANG_TIBETAN_BHUTAN): Actually assign a value. 2008-04-20 Bruno Haible Fix conflict between modules 'canonicalize' and 'canonicalize-lgpl', take 2. * lib/canonicalize.c (canonicalize_file_name): Elide if the 'canonicalize-lgpl' module is also used. * lib/canonicalize-lgpl.c: Undo last change. * modules/canonicalize-lgpl (configure.ac): Invoke gl_MODULE_INDICATOR. 2008-04-20 Bruno Haible * lib/mkdir.c (mkdir): Undefine after the includes, not right after config.h. Provide _mkdir based fallback for mingw. * lib/sys_stat.in.h (mkdir): Define through an 'extern' declaration if REPLACE_MKDIR is 1. Otherwise, test for mingw directly. * m4/mkdir-slash.m4 (gl_FUNC_MKDIR_TRAILING_SLASH): Require gl_SYS_STAT_H_DEFAULTS. When doing the replacement, set REPLACE_MKDIR rather than defining mkdir in config.h. * m4/sys_stat_h.m4 (gl_SYS_STAT_MODULE_INDICATOR): New macro. (gl_SYS_STAT_H_DEFAULTS): New macro. (gl_HEADER_SYS_STAT_H): Require it. Don't set HAVE_DECL_MKDIR and HAVE_IO_H any more. * modules/sys_stat (Makefile.am): Substitute REPLACE_MKDIR instead of HAVE_DECL_MKDIR and HAVE_IO_H. 2008-04-20 Bruno Haible * lib/isapipe.c: Port to native Windows platforms. 2008-04-20 Bruno Haible * lib/gc-gnulib.c: Include before . 2008-04-21 Eric Blake Work around preprocessors that don't handle UINTMAX_MAX. * lib/memchr2.c (memchr2): Avoid embedded #if. Reported by Alain Guibert, fix suggested by Bruno Haible. 2008-04-21 Simon Josefsson * doc/posix-functions/strftime.texi (strftime): Explain better Windows incompatibility. Suggested by Micah Cowan . 2008-04-20 Bruno Haible * modules/uniconv/u32-conv-to-enc (Depends-on): Add unistr/u32-mblen, unistr/u8-mblen. 2008-04-20 Bruno Haible Fix test failure on platforms with non-GNU iconv. * lib/uniconv/u16-conv-to-enc.c (u16_to_u8_lenient): New function. (U_TO_U8): Use it, rather than u16_to_u8. * lib/uniconv/u-conv-to-enc.h (FUNC): Allow an incomplete sequence of units at the end of the input string. * modules/uniconv/u16-conv-to-enc (Depends-on): Update. 2008-04-20 Bruno Haible * tests/uniconv/test-u8-conv-to-enc.c (main): Accept result == NULL when the resulting length is 0. * tests/uniconv/test-u16-conv-to-enc.c (main): Likewise. 2008-04-20 Bruno Haible * m4/roundf.m4 (gl_FUNC_ROUNDF): Add test whether roundf actually works. * doc/posix-functions/roundf.texi: Mention roundf bug on mingw. 2008-04-20 Bruno Haible * tests/test-tsearch.c (main): Don't use initstate if it is missing. * modules/tsearch-tests (configure.ac): Test for initstate function. 2008-04-20 Bruno Haible * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Also provided a substitute for nlink_t if missing. * tests/test-sys_stat.c: Check the existence of the nlink_t type. 2008-04-19 Bruno Haible Work around snprintf bug on Linux libc5. * m4/printf.m4 (gl_SNPRINTF_SIZE1): New macro. * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Invoke gl_SNPRINTF_SIZE1. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise. * m4/snprintf.m4 (gl_FUNC_SNPRINTF): Likewise. Replace snprintf if that test failed. * m4/vsnprintf.m4 (gl_FUNC_VSNPRINTF): Likewise. * lib/vasnprintf.c (USE_SNPRINTF): Set to 0 on Linux libc5 systems. * modules/snprintf (Files): Add m4/printf.m4. * modules/vsnprintf (Files): Likewise. * doc/posix-functions/snprintf.texi: Document Linux libc5 problem. * doc/posix-functions/vsnprintf.texi: Likewise. 2008-04-19 Bruno Haible * lib/vasnprintf.c (floorlog10l, floorlog10): Reduce maximum error from 0.0058 to less than 10^-7. 2008-04-19 Bruno Haible Fix rounding when a precision is given. * lib/vasnprintf.c (is_borderline): New function. (VASNPRINTF): For %e and %g, consider replacing the digits 10....0 with 9...9x. * tests/test-vasnprintf-posix.c (test_function): Test rounding with %f, %e, %g. * tests/test-vasprintf-posix.c (test_function): Likewise. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. * tests/test-fprintf-posix.h (test_function): Test rounding with %f. * tests/test-printf-posix.h (test_function): Likewise. * tests/test-printf-posix.output: Update. Reported by John Darrington via Ben Pfaff . 2008-04-18 Simon Josefsson * doc/posix-functions/strftime.texi (strftime): Clarify platform. Suggested by Bruno Haible . 2008-04-17 Bruno Haible * lib/lock.h (gl_lock_destroy, gl_rwlock_destroy, gl_recursive_lock_destroy): Provide no-op definitions for the dummy implementation. Patch by Bruce Merry . 2008-04-17 Simon Josefsson * doc/posix-functions/strftime.texi (strftime): Mention that %e doesn't work under Windows. 2008-04-16 Bruno Haible * lib/localename.c (LANG_MAORI, LANG_QUECHUA, LANG_SOTHO, LANG_UIGHUR): New macros. (SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN, SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC, SUBLANG_CROATIAN_CROATIA, SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN, SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA, SUBLANG_MONGOLIAN_PRC, SUBLANG_QUECHUA_BOLIVIA, SUBLANG_QUECHUA_ECUADOR, SUBLANG_QUECHUA_PERU, SUBLANG_RUSSIAN_RUSSIA, SUBLANG_RUSSIAN_MOLDAVIA, SUBLANG_SPANISH_US, SUBLANG_TIBETAN_PRC, SUBLANG_TIBETAN_BHUTAN, SUBLANG_UIGHUR_PRC): New macros. (gl_locale_name_from_win32_LANGID): Refine code for Croatian/Bosnian, Mongolian, Russian, Spanish, Tibetan. Add code for Maori, Quechua, Northern Sotho, Uighur. 2008-04-16 Bruno Haible * lib/localename.c (SUBLANG_SINDHI_INDIA): New macro. (SUBLANG_SINDHI_PAKISTAN): Change value from 1 to 2. (gl_locale_name_from_win32_LANGID): Fix code for Sindhi. Reported by Daniel Bergström . 2007-12-25 KJK::Hyperion Bruno Haible * lib/localename.c (gl_locale_name_canonicalize) [WIN32_NATIVE]: New function. (gl_locale_name_from_win32_LANGID, gl_locale_name_from_win32_LCID): New functions, mostly extracted from gl_locale_name_default. (gl_locale_name_default): Use gl_locale_name_from_win32_LCID. 2008-04-16 Eric Blake Adjust strtod detection to catch glibc 2.7 bug. * m4/strtod.m4 (gl_FUNC_STRTOD): Test "nan()" behavior. Reported by John Gatewood Ham. 2008-04-16 Bruno Haible Add tentative support for Linux libc5. * lib/fbufmode.c (fbufmode) [__GNU_LIBRARY__==1]: Reuse glibc2 code. * lib/fpurge.c (fpurge): Likewise. * lib/freadable.c (freadable): Likewise. * lib/freadahead.c (freadahead): Likewise. * lib/freading.c (freading): Likewise. * lib/freadptr.c (freadptr): Likewise. * lib/freadseek.c (freadptrinc): Likewise. * lib/fseeko.c (rpl_fseeko): Likewise. * lib/fseterr.c (fseterr): Likewise. * lib/fwritable.c (fwritable): Likewise. * lib/fwriting.c (fwriting): Likewise. Reported by Alain Guibert . 2008-04-15 Bruno Haible * modules/mathl (configure.ac): Define module indicator. 2008-04-15 Bruno Haible * lib/logl.c (logl): Remove unused variables. 2008-04-15 Bruno Haible * lib/uniconv/u-conv-to-enc.h (FUNC): Fix return value when U_TO_U8 fails. 2008-04-15 Bruno Haible * lib/trim.c (trim2): Fix argument of isspace() macro. 2008-04-15 Paolo Bonzini * lib/tanl.c (kernel_tanl): Rename flag to invert, initialize it to 0. * lib/trigl.c (ieee754_rem_pio2l): Fix range checks. 2008-04-14 Bruno Haible * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Fix underquoting of AC_LANG_PROGRAM argument. * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Likewise. * m4/gethrxtime.m4 (gl_ARITHMETIC_HRTIME_T): Likewise. * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Likewise. * m4/inttypes.m4 (gl_INTTYPES_H): Likewise. * m4/math_h.m4 (gl_MATH_H): Likewise. * m4/mbstate_t.m4 (AC_TYPE_MBSTATE_T): Likewise. * m4/memmem.m4 (gl_FUNC_MEMMEM): Likewise. * m4/netinet_in_h.m4 (gl_HEADER_NETINET_IN): Likewise. * m4/physmem.m4 (gl_SYS__SYSTEM_CONFIGURATION): Likewise. * m4/putenv.m4 (gl_FUNC_PUTENV): Likewise. * m4/regex.m4 (gl_REGEX): Likewise. * m4/stdint.m4 (gl_INTEGER_TYPE_SUFFIX): Likewise. * m4/stdio_h.m4 (gl_STDIN_LARGE_OFFSET): Likewise. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise. * m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): Likewise. * m4/strndup.m4 (gl_FUNC_STRNDUP): Likewise. * m4/strstr.m4 (gl_FUNC_STRSTR): Likewise. * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise. * m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise. 2008-04-14 Jim Meyering test-strtod: fix typos: s/abs/fabs/ * tests/test-strtod.c (main): Use fabs, not narrowing-to-int "abs". 2008-04-13 Bruno Haible Fix conflict between modules 'canonicalize' and 'canonicalize-lgpl'. * lib/canonicalize-lgpl.c: Elide the contents if the 'canonicalize' module is also used and while not building the reloc-wrapper. 2008-04-13 Bruno Haible * tests/test-getaddrinfo.c (simple): Ignore EAI_NODATA error. 2008-04-13 Bruno Haible Fix AIX compilation failure introduced on 2008-04-02. * tests/test-frexp.c (exp): Undefine before redefining. * tests/test-frexpl.c (exp): Likewise. 2008-04-13 Bruno Haible Work around a HP-UX stdio bug. * tests/test-ftell.c (main): Disable the fseek/ftell test on HP-UX. * tests/test-ftello.c (main): Likewise. * doc/posix-functions/ftell.texi: Mention HP-UX bug. * doc/posix-functions/ftello.texi: Likewise. 2008-04-13 Bruno Haible Make test-signbit pass on HP-UX/hppa. * tests/test-signbit.c (minus_zerol): New variable. (test_signbitl): Use it. 2008-04-13 Bruno Haible Make truncl work on OSF/1 4.0. * m4/truncl.m4 (gl_FUNC_TRUNCL): Test whether truncl actually works. Set REPLACE_TRUNCL, not HAVE_DECL_TRUNCL. * lib/math.in.h (truncl): Test REPLACE_TRUNCL, not HAVE_DECL_TRUNCL. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_TRUNCL, not HAVE_DECL_TRUNCL. * modules/math (Makefile.am): Substitute REPLACE_TRUNCL, not HAVE_DECL_TRUNCL. * doc/posix-functions/truncl.texi: Document the OSF/1 4.0 problem. 2008-04-13 Bruno Haible * lib/unictype.h: Remove trailing comma from enumeration definitions. 2008-04-13 Bruno Haible * lib/count-one-bits.h (COUNT_ONE_BITS): Rewrite verification expression, so as to avoid HP-UX 11 cc compiler bug. 2008-04-13 Bruno Haible * m4/regex.m4 (gl_PREREQ_REGEX): Also check for . 2008-04-13 Bruno Haible * lib/git-merge-changelog.c: Remove empty declaration outside of functions. 2008-04-13 Bruno Haible * modules/quotearg-tests (Makefile.am): Define test_quotearg_LDADD. 2008-04-13 Bruno Haible * doc/posix-headers/sys_socket.texi: Document the problem on EMX. * lib/sys_socket.in.h (SHUT_RD, SHUT_WR, SHUT_RDWR): Define if missing. * m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Replace also if it exists but lacks definitions of the SHUT_* macros. * modules/sys_socket (Description): Update. Reported by Elbert Pol . 2008-04-13 Bruno Haible * lib/localcharset.c (OS2): Don't redefine if already defined. Reported by Elbert Pol . 2008-04-13 Bruno Haible * lib/binary-io.h [__EMX__]: Include . Reported by Elbert Pol . 2008-04-12 Bruno Haible * lib/fpucw.h: Enable the definitions also for x86_64. Needed for NetBSD/x86_64. Reported by Thomas Klausner . 2008-04-12 Bruno Haible * tests/test-strtod.c: Include isnand.h. (main): Use isnand instead of isnan. Reported by Jim Meyering. 2008-04-12 Bruno Haible * m4/isnanf.m4 (gl_ISNANF_WORKS): Add a test for a special NaN. Reported by Nelson H. F. Beebe . 2008-04-12 Jim Meyering * m4/math_h.m4 (gl_MATH_H): Fix typos. 2008-04-12 Bruno Haible * lib/freadptr.c (freadptr) [__EMX__]: Fix wrong assertion. Reported by Elbert Pol . 2008-04-12 Eric Blake Work around Solaris 10 math.h bug. * m4/math_h.m4 (gl_MATH_H): Check for bug. (gl_MATH_H_DEFAULTS): Set up default. * modules/math (Makefile.am): Replace new indicators. * lib/math.in.h (NAN, HUGE_VAL): Provide replacements. * tests/test-math.c (main): Test this. * m4/strtod.m4 (gl_FUNC_STRTOD): Don't rely on HUGE_VAL. * doc/posix-headers/math.texi (math.h): Mention bug. Reported by Nelson H. F. Beebe and Jim Meyering. 2008-04-11 Bruno Haible Adapt to future versions of Apple GCC. * lib/argp-fmtstream.h (ARGP_FS_EI): Don't test __GNUC_GNU_INLINE__. Reported by Peter O'Gorman . 2008-04-11 Bruno Haible * tests/test-getaddrinfo.c (simple): Ignore EAI_NONAME error. 2008-04-11 Bruno Haible * modules/strsignal-tests (Makefile.am): Define test_strsignal_LDADD. * modules/getaddrinfo-tests (Makefile.am): Define test_getaddrinfo_LDADD. 2008-04-11 Bruno Haible * lib/strsignal.c (_sys_siglist): Don't declare if already declared. (init): Fix syntax error. * m4/strsignal.m4 (gl_PREREQ_STRSIGNAL): Check whether _sys_siglist is declared. 2008-04-11 Bruno Haible * lib/glob.c: Include . Needed at least with IRIX cc. * modules/glob (Depends-on): Add stdbool. 2008-04-11 Bruno Haible * lib/trim.c: Include . 2008-04-11 Eric Blake Avoid compile failure on OS/2. * lib/regex_internal.h (internal_function): Disable optimization on OS/2 (__EMX__), where it caused compiler error. Reported by Elbert Pol. 2008-04-11 Bruno Haible Flush the standard error stream before aborting. Needed on mingw. * tests/test-argmatch.c (ASSERT): Call fflush(stderr) before abort(). * tests/test-array_list.c (ASSERT): Likewise. * tests/test-array_oset.c (ASSERT): Likewise. * tests/test-avltree_list.c (ASSERT): Likewise. * tests/test-avltree_oset.c (ASSERT): Likewise. * tests/test-avltreehash_list.c (ASSERT): Likewise. * tests/test-binary-io.c (ASSERT): Likewise. * tests/test-byteswap.c (ASSERT): Likewise. * tests/test-c-ctype.c (ASSERT): Likewise. * tests/test-c-strcasecmp.c (ASSERT): Likewise. * tests/test-c-strcasestr.c (ASSERT): Likewise. * tests/test-c-strncasecmp.c (ASSERT): Likewise. * tests/test-c-strstr.c (ASSERT): Likewise. * tests/test-canonicalize-lgpl.c (ASSERT): Likewise. * tests/test-canonicalize.c (ASSERT): Likewise. * tests/test-carray_list.c (ASSERT): Likewise. * tests/test-ceilf1.c (ASSERT): Likewise. * tests/test-ceilf2.c (ASSERT): Likewise. * tests/test-ceill.c (ASSERT): Likewise. * tests/test-count-one-bits.c (ASSERT): Likewise. * tests/test-fbufmode.c (ASSERT): Likewise. * tests/test-fflush2.c (ASSERT): Likewise. * tests/test-floorf1.c (ASSERT): Likewise. * tests/test-floorf2.c (ASSERT): Likewise. * tests/test-floorl.c (ASSERT): Likewise. * tests/test-fopen.c (ASSERT): Likewise. * tests/test-fpending.c (ASSERT): Likewise. * tests/test-fprintf-posix.c (ASSERT): Likewise. * tests/test-fpurge.c (ASSERT): Likewise. * tests/test-freadable.c (ASSERT): Likewise. * tests/test-freadahead.c (ASSERT): Likewise. * tests/test-freading.c (ASSERT): Likewise. * tests/test-freadptr.c (ASSERT): Likewise. * tests/test-freadptr2.c (ASSERT): Likewise. * tests/test-freadseek.c (ASSERT): Likewise. * tests/test-freopen.c (ASSERT): Likewise. * tests/test-frexp.c (ASSERT): Likewise. * tests/test-frexpl.c (ASSERT): Likewise. * tests/test-fseek.c (ASSERT): Likewise. * tests/test-fseeko.c (ASSERT): Likewise. * tests/test-fstrcmp.c (ASSERT): Likewise. * tests/test-ftell.c (ASSERT): Likewise. * tests/test-ftello.c (ASSERT): Likewise. * tests/test-func.c (ASSERT): Likewise. * tests/test-fwritable.c (ASSERT): Likewise. * tests/test-fwriting.c (ASSERT): Likewise. * tests/test-getdelim.c (ASSERT): Likewise. * tests/test-getline.c (ASSERT): Likewise. * tests/test-i-ring.c (ASSERT): Likewise. * tests/test-iconv-utf.c (ASSERT): Likewise. * tests/test-iconv.c (ASSERT): Likewise. * tests/test-isfinite.c (ASSERT): Likewise. * tests/test-isnand.c (ASSERT): Likewise. * tests/test-isnanf.c (ASSERT): Likewise. * tests/test-isnanl.h (ASSERT): Likewise. * tests/test-ldexpl.c (ASSERT): Likewise. * tests/test-linked_list.c (ASSERT): Likewise. * tests/test-linkedhash_list.c (ASSERT): Likewise. * tests/test-localename.c (ASSERT): Likewise. * tests/test-lseek.c (ASSERT): Likewise. * tests/test-mbscasecmp.c (ASSERT): Likewise. * tests/test-mbscasestr1.c (ASSERT): Likewise. * tests/test-mbscasestr2.c (ASSERT): Likewise. * tests/test-mbscasestr3.c (ASSERT): Likewise. * tests/test-mbscasestr4.c (ASSERT): Likewise. * tests/test-mbschr.c (ASSERT): Likewise. * tests/test-mbscspn.c (ASSERT): Likewise. * tests/test-mbsncasecmp.c (ASSERT): Likewise. * tests/test-mbspbrk.c (ASSERT): Likewise. * tests/test-mbspcasecmp.c (ASSERT): Likewise. * tests/test-mbsrchr.c (ASSERT): Likewise. * tests/test-mbsspn.c (ASSERT): Likewise. * tests/test-mbsstr1.c (ASSERT): Likewise. * tests/test-mbsstr2.c (ASSERT): Likewise. * tests/test-mbsstr3.c (ASSERT): Likewise. * tests/test-memchr2.c (ASSERT): Likewise. * tests/test-memmem.c (ASSERT): Likewise. * tests/test-open.c (ASSERT): Likewise. * tests/test-printf-frexp.c (ASSERT): Likewise. * tests/test-printf-frexpl.c (ASSERT): Likewise. * tests/test-printf-posix.c (ASSERT): Likewise. * tests/test-quotearg.c (ASSERT): Likewise. * tests/test-rbtree_list.c (ASSERT): Likewise. * tests/test-rbtree_oset.c (ASSERT): Likewise. * tests/test-rbtreehash_list.c (ASSERT): Likewise. * tests/test-round1.c (ASSERT): Likewise. * tests/test-roundf1.c (ASSERT): Likewise. * tests/test-roundl.c (ASSERT): Likewise. * tests/test-signbit.c (ASSERT): Likewise. * tests/test-sleep.c (ASSERT): Likewise. * tests/test-snprintf-posix.c (ASSERT): Likewise. * tests/test-snprintf.c (ASSERT): Likewise. * tests/test-sprintf-posix.c (ASSERT): Likewise. * tests/test-stat-time.c (ASSERT): Likewise. * tests/test-strcasestr.c (ASSERT): Likewise. * tests/test-strerror.c (ASSERT): Likewise. * tests/test-striconv.c (ASSERT): Likewise. * tests/test-striconveh.c (ASSERT): Likewise. * tests/test-striconveha.c (ASSERT): Likewise. * tests/test-strsignal.c (ASSERT): Likewise. * tests/test-strstr.c (ASSERT): Likewise. * tests/test-strtod.c (ASSERT): Likewise. * tests/test-trunc1.c (ASSERT): Likewise. * tests/test-trunc2.c (ASSERT): Likewise. * tests/test-truncf1.c (ASSERT): Likewise. * tests/test-truncf2.c (ASSERT): Likewise. * tests/test-truncl.c (ASSERT): Likewise. * tests/test-vasnprintf-posix.c (ASSERT): Likewise. * tests/test-vasnprintf-posix2.c (ASSERT): Likewise. * tests/test-vasnprintf.c (ASSERT): Likewise. * tests/test-vasprintf-posix.c (ASSERT): Likewise. * tests/test-vasprintf.c (ASSERT): Likewise. * tests/test-vfprintf-posix.c (ASSERT): Likewise. * tests/test-vprintf-posix.c (ASSERT): Likewise. * tests/test-vsnprintf-posix.c (ASSERT): Likewise. * tests/test-vsnprintf.c (ASSERT): Likewise. * tests/test-vsprintf-posix.c (ASSERT): Likewise. * tests/test-wcwidth.c (ASSERT): Likewise. * tests/test-xfprintf-posix.c (ASSERT): Likewise. * tests/test-xprintf-posix.c (ASSERT): Likewise. * tests/test-xvasprintf.c (ASSERT): Likewise. * tests/uniconv/test-u16-conv-from-enc.c (ASSERT): Likewise. * tests/uniconv/test-u16-conv-to-enc.c (ASSERT): Likewise. * tests/uniconv/test-u16-strconv-from-enc.c (ASSERT): Likewise. * tests/uniconv/test-u16-strconv-to-enc.c (ASSERT): Likewise. * tests/uniconv/test-u32-conv-from-enc.c (ASSERT): Likewise. * tests/uniconv/test-u32-conv-to-enc.c (ASSERT): Likewise. * tests/uniconv/test-u32-strconv-from-enc.c (ASSERT): Likewise. * tests/uniconv/test-u32-strconv-to-enc.c (ASSERT): Likewise. * tests/uniconv/test-u8-conv-from-enc.c (ASSERT): Likewise. * tests/uniconv/test-u8-conv-to-enc.c (ASSERT): Likewise. * tests/uniconv/test-u8-strconv-from-enc.c (ASSERT): Likewise. * tests/uniconv/test-u8-strconv-to-enc.c (ASSERT): Likewise. * tests/unictype/test-bidi_byname.c (ASSERT): Likewise. * tests/unictype/test-bidi_name.c (ASSERT): Likewise. * tests/unictype/test-bidi_of.c (ASSERT): Likewise. * tests/unictype/test-bidi_test.c (ASSERT): Likewise. * tests/unictype/test-block_list.c (ASSERT): Likewise. * tests/unictype/test-block_of.c (ASSERT): Likewise. * tests/unictype/test-block_test.c (ASSERT): Likewise. * tests/unictype/test-categ_and.c (ASSERT): Likewise. * tests/unictype/test-categ_and_not.c (ASSERT): Likewise. * tests/unictype/test-categ_byname.c (ASSERT): Likewise. * tests/unictype/test-categ_name.c (ASSERT): Likewise. * tests/unictype/test-categ_none.c (ASSERT): Likewise. * tests/unictype/test-categ_of.c (ASSERT): Likewise. * tests/unictype/test-categ_or.c (ASSERT): Likewise. * tests/unictype/test-categ_test_withtable.c (ASSERT): Likewise. * tests/unictype/test-combining.c (ASSERT): Likewise. * tests/unictype/test-decdigit.c (ASSERT): Likewise. * tests/unictype/test-digit.c (ASSERT): Likewise. * tests/unictype/test-mirror.c (ASSERT): Likewise. * tests/unictype/test-numeric.c (ASSERT): Likewise. * tests/unictype/test-pr_byname.c (ASSERT): Likewise. * tests/unictype/test-pr_test.c (ASSERT): Likewise. * tests/unictype/test-predicate-part1.h (ASSERT): Likewise. * tests/unictype/test-scripts.c (ASSERT): Likewise. * tests/unictype/test-sy_c_ident.c (ASSERT): Likewise. * tests/unictype/test-sy_java_ident.c (ASSERT): Likewise. * tests/unistdio/test-u16-asnprintf1.c (ASSERT): Likewise. * tests/unistdio/test-u16-vasnprintf1.c (ASSERT): Likewise. * tests/unistdio/test-u16-vasnprintf2.c (ASSERT): Likewise. * tests/unistdio/test-u16-vasnprintf3.c (ASSERT): Likewise. * tests/unistdio/test-u16-vasprintf1.c (ASSERT): Likewise. * tests/unistdio/test-u16-vsnprintf1.c (ASSERT): Likewise. * tests/unistdio/test-u16-vsprintf1.c (ASSERT): Likewise. * tests/unistdio/test-u32-asnprintf1.c (ASSERT): Likewise. * tests/unistdio/test-u32-vasnprintf1.c (ASSERT): Likewise. * tests/unistdio/test-u32-vasnprintf2.c (ASSERT): Likewise. * tests/unistdio/test-u32-vasnprintf3.c (ASSERT): Likewise. * tests/unistdio/test-u32-vasprintf1.c (ASSERT): Likewise. * tests/unistdio/test-u32-vsnprintf1.c (ASSERT): Likewise. * tests/unistdio/test-u32-vsprintf1.c (ASSERT): Likewise. * tests/unistdio/test-u8-asnprintf1.c (ASSERT): Likewise. * tests/unistdio/test-u8-vasnprintf1.c (ASSERT): Likewise. * tests/unistdio/test-u8-vasnprintf2.c (ASSERT): Likewise. * tests/unistdio/test-u8-vasnprintf3.c (ASSERT): Likewise. * tests/unistdio/test-u8-vasprintf1.c (ASSERT): Likewise. * tests/unistdio/test-u8-vsnprintf1.c (ASSERT): Likewise. * tests/unistdio/test-u8-vsprintf1.c (ASSERT): Likewise. * tests/unistdio/test-ulc-asnprintf1.c (ASSERT): Likewise. * tests/unistdio/test-ulc-vasnprintf1.c (ASSERT): Likewise. * tests/unistdio/test-ulc-vasnprintf2.c (ASSERT): Likewise. * tests/unistdio/test-ulc-vasnprintf3.c (ASSERT): Likewise. * tests/unistdio/test-ulc-vasprintf1.c (ASSERT): Likewise. * tests/unistdio/test-ulc-vsnprintf1.c (ASSERT): Likewise. * tests/unistdio/test-ulc-vsprintf1.c (ASSERT): Likewise. * tests/uniwidth/test-u16-strwidth.c (ASSERT): Likewise. * tests/uniwidth/test-u16-width.c (ASSERT): Likewise. * tests/uniwidth/test-u32-strwidth.c (ASSERT): Likewise. * tests/uniwidth/test-u32-width.c (ASSERT): Likewise. * tests/uniwidth/test-u8-strwidth.c (ASSERT): Likewise. * tests/uniwidth/test-u8-width.c (ASSERT): Likewise. * tests/uniwidth/test-uc_width.c (ASSERT): Likewise. Reported by Eric Blake. 2008-04-11 Bruno Haible * lib/wchar.in.h: Tweak comment. 2008-04-11 Bruno Haible Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5. * gnulib-tool (func_emit_initmacro_start): Emit an invocation of gl_COMMON. * m4/gnulib-common.m4 (gl_COMMON, gl_COMMON_BODY): New macros. 2008-04-11 Bruno Haible * modules/git-merge-changelog (git_merge_changelog_LDADD): Add LIBINTL. 2008-04-11 Simon Josefsson * lib/gc-gnulib.c: On Windows, use CryptGenRandom from CSP instead of attempting to use non-existing /dev/*random. Based on patch from Adam Strzelecki in . 2008-04-08 Bruno Haible Add tentative support for emx+gcc. * lib/fbufmode.c (fbufmode) [__EMX__]: Add conditional code. * lib/fpurge.c (fpurge): Likewise. * lib/freadable.c (freadable): Likewise. * lib/freadahead.c (freadahead): Likewise. * lib/freading.c (freading): Likewise. * lib/freadptr.c (freadptr): Likewise. * lib/freadseek.c (freadptrinc): Likewise. * lib/fseeko.c (rpl_fseeko): Likewise. * lib/fseterr.c (fseterr): Likewise. * lib/fwritable.c (fwritable): Likewise. * lib/fwriting.c (fwriting): Likewise. * m4/fpending.m4 (gl_FUNC_FPENDING): Add a variant for emx+gcc. 2008-04-09 Eric Blake Avoid some autoconf warnings. * m4/regex.m4 (gl_REGEX): s/AC_HELP_STRING/AS_HELP_STRING/. * m4/acl.m4 (gl_FUNC_ACL): Likewise. * m4/afs.m4 (gl_AFS): Likewise. * m4/gc-random.m4 (gl_GC_RANDOM): Likewise. * m4/include_next.m4 (gl_INCLUDE_NEXT): s/AC_FOREACH/m4_foreach_w/. * m4/absolute-header.m4 (gl_ABSOLUTE_HEADER): Likewise. * m4/stdint.m4 (gl_STDINT_BITSIZEOF, gl_CHECK_TYPES_SIGNED) (gl_INTEGER_TYPE_SUFFIX): Likewise. * m4/onceonly_2_57.m4 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE) (AC_CHECK_DECLS_ONCE): Likewise. Rename file... * m4/onceonly.m4: ...to this, and delete 2.54 variant, now that gnulib-tool requires autoconf 2.59 or better. * gnulib-tool (func_get_filelist): s/\(onceonly\)_2_57.m4/\1.m4/. 2008-04-08 Eric Blake Use 'git describe --match' if present (added in git 1.5.5). * build-aux/git-version-gen: Limit result to tags that match 'v*' if possible. 2008-04-08 Bruno Haible Add tentative support for OpenServer. * lib/fbufmode.c (fbufmode): Add conditional define for _flag, _base, _ptr, _cnt. * lib/fpurge.c (fpurge): Likewise. * lib/freadable.c (freadable): Likewise. * lib/freadahead.c (freadahead): Likewise. * lib/freading.c (freading): Likewise. * lib/freadptr.c (freadptr): Likewise. * lib/freadseek.c (freadptrinc): Likewise. * lib/fseeko.c (rpl_fseeko): Likewise. * lib/fseterr.c (fseterr): Likewise. * lib/fwritable.c (fwritable): Likewise. * lib/fwriting.c (fwriting): Likewise. Reported by Roger Cornelius and Brian K. White . 2008-04-06 Jim Meyering * gnulib-tool (func_add_or_update): s/backuped/backed up/ in diagnostic 2008-04-06 Bruno Haible Avoid possible error with non-ASCII bytes in UTF-8 locales. * tests/test-fprintf-posix.sh: Use "LC_ALL=C tr" instead of "tr". * tests/test-printf-posix.sh: Likewise. * tests/test-vfprintf-posix.sh: Likewise. * tests/test-vprintf-posix.sh: Likewise. * tests/test-xprintf-posix.sh: Likewise. 2008-04-06 Ralf Wildenhues * m4/double-slash-root.m4 (gl_DOUBLE_SLASH_ROOT): Fix quoting, hide error from 'ls', needed on OS/2. Report by Elbert Pol . 2008-04-04 Eric Blake Make test-fseeko.c failures meaningful. * tests/test-fseeko.c: Print line number on failure. * tests/test-fseek.c: Likewise. Reported by Nelson H. F. Beebe. Improve strtod bug detection check. * m4/strtod.m4 (gl_FUNC_STRTOD): Also check for hex-float parsing, required for Solaris 10. Reported by Bob Friesenhahn and Nelson H. F. Beebe. 2008-04-04 Bruno Haible * modules/relocatable-prog-wrapper (Files): Add m4/environ.m4. Needed by m4/setenv.m4. 2008-04-03 Eric Blake Ensure sane .version contents. * top/GNUmakefile (_dummy): Also delete .version when rebuilding version string. * build-aux/git-version-gen: Improve documentation. Make GNU make output nicer. * top/GNUmakefile [!_have-Makefile]: Add dependency on MAKECMDGOALS to enforce message for all command line targets. Set srcdir for use in maint.mk. Another maintainer tweak. * top/GNUmakefile (_is-dist-target): Allow maintainer-distcheck as a target that regenerates version. 2008-04-03 Jim Meyering vc-list-files: don't cause coreutils "make po-check" failure * build-aux/vc-list-files: Skip postprocessing when $2 is '.' 2008-04-03 Eric Blake Allow VPATH usage of vc-list-files. * build-aux/vc-list-files (scriptversion): Add timestamp. (options): Add --help, --version, -C. (CVS): Support installed cvsu. 2008-04-02 Bruno Haible Avoid some "statement with no effect" warnings from gcc. * tests/test-wctype.c (main): Explicitly ignore unused values. Reported by Jim Meyering. 2008-04-02 Jim Meyering Avoid some warnings from "gcc -Wshadow". * tests/test-frexp.c (exp): Define to a different identifier. * tests/test-frexpl.c (exp): Likewise. 2008-04-03 Jim Meyering bootstrap: remove dangling *.[ch] symlinks from lib * build-aux/bootstrap [dangling symlink removal]: Move find's -depth option to precede all others, to avoid a warning. Remove *.[ch] files too, and from "$source_base" (usually lib/). 2008-04-02 Bruno Haible Avoid some warnings from "gcc -Wshadow". * tests/tests-vfprintf-posix.c (my_fprintf): Move after test_function. * tests/tests-vprintf-posix.c (my_printf): Move after test_function. * tests/tests-vsnprintf-posix.c (my_snprintf): Move after test_function. * tests/tests-vsprintf-posix.c (my_sprintf): Move after test_function. Reported by Jim Meyering. 2008-04-01 Bruno Haible Fix test to work on IRIX 6.5 with cc. * tests/test-math.c (numeric_equal): New function. (main): Use it. 2008-04-01 Bruno Haible * doc/posix-headers/math.texi: Refine documentation of NAN problem. 2008-04-01 Bruno Haible * tests/test-vasnprintf-posix.c: Include nan.h instead of . (test_function): Use NaNd, NaNl instead of NAN or 0.0L/0.0L. * modules/vasnprintf-posix-tests (Files): Add tests/nan.h. (Depends-on): Remove math. * tests/test-vasprintf-posix.c: Include nan.h instead of . (test_function): Use NaNd, NaNl instead of NAN or 0.0L/0.0L. * modules/vasprintf-posix-tests (Files): Add tests/nan.h. (Depends-on): Remove math. * tests/test-snprintf-posix.h: Include nan.h instead of . (test_function): Use NaNd, NaNl instead of NAN or 0.0L/0.0L. * modules/snprintf-posix-tests (Files): Add tests/nan.h. (Depends-on): Remove math. * modules/vsnprintf-posix-tests (Files): Add tests/nan.h. (Depends-on): Remove math. * tests/test-sprintf-posix.h: Include nan.h instead of . (test_function): Use NaNd, NaNl instead of NAN or 0.0L/0.0L. * modules/sprintf-posix-tests (Files): Add tests/nan.h. (Depends-on): Remove math. * modules/vsprintf-posix-tests (Files): Add tests/nan.h. (Depends-on): Remove math. * tests/test-round1.c: Include nan.h. (main): Use NaNd instead of NAN. * modules/round-tests (Files): Add tests/nan.h. * tests/test-trunc1.c: Include nan.h. (main): Use NaNd instead of NAN. * modules/trunc-tests (Files): Add tests/nan.h. * tests/test-roundf1.c: Include nan.h. (main): Use NaNf instead of NAN. * modules/roundf-tests (Files): Add tests/nan.h. * tests/test-truncf1.c: Include nan.h. (main): Use NaNf instead of NAN. * modules/truncf-tests (Files): Add tests/nan.h. * tests/test-ceilf1.c: Include nan.h. (main): Use NaNf instead of NAN. * modules/ceilf-tests (Files): Add tests/nan.h. * tests/test-floorf1.c: Include nan.h. (main): Use NaNf instead of NAN. * modules/floorf-tests (Files): Add tests/nan.h. * tests/test-isnanf.c: Include nan.h instead of . (main): Use NaNf instead of NAN. * modules/isnanf-nolibm-tests (Files): Add tests/nan.h. * tests/test-isnand.c: Include nan.h instead of . (main): Use NaNd instead of NAN. * modules/isnand-nolibm-tests (Files): Add tests/nan.h. * tests/test-frexp.c: Include nan.h. (main): Use NaNd instead of NAN. * modules/frexp-tests (Files): Add tests/nan.h. * lib/isnan.c: Don't include . (FUNC): Don't use NAN macro. * modules/isnand-nolibm (Depends-on): Remove math. * modules/isnanf-nolibm (Depends-on): Remove math. * modules/isnanl (Depends-on): Remove math. * modules/isnanl-nolibm (Depends-on): Remove math. * tests/nan.h: New file. 2008-04-01 Eric Blake Fix typos. * tests/test-strtod.c (main): s/FLT_/DBL_/ for minimum and epsilon values to be the right type. For now, cater to gnulib strtod inaccuracies. * tests/test-strtod.c (main): Allow 1-ulp error on expected fractional results. While not as nice from a QoI perspective, it is a quicker patch than correctly implementing decimal to binary rounding. 2008-03-31 Eric Blake Guarantee a definition of NAN. * lib/math.in.h (NAN): Define if missing. * tests/test-math.c (main): Test it. * doc/posix-headers/math.texi (math.h): Document this. * lib/isnan.c (rpl_isnand): Use it. * tests/test-ceilf1.c (NaN): Delete, and use NAN instead. * tests/test-floorf1.c (NaN): Likewise. * tests/test-frexp.c (NaN): Likewise. * tests/test-isnand.c (NaN): Likewise. * tests/test-isnanf.c (NaN): Likewise. * tests/test-round1.c (NaN): Likewise. * tests/test-roundf1.c (NaN): Likewise. * tests/test-snprintf-posix.h (NaN): Likewise. * tests/test-sprintf-posix.h (NaN): Likewise. * tests/test-trunc1.c (NaN): Likewise. * tests/test-truncf1.c (NaN): Likewise. * tests/test-vasnprintf-posix.c (NaN): Likewise. * tests/test-vasprintf-posix.c (NaN): Likewise. * modules/isnand-nolibm (Depends-on): Add math. * modules/isnanf-nolibm (Depends-on): Likewise. * modules/isnanl (Depends-on): Likewise. * modules/isnanl-nolibm (Depends-on): Likewise. * modules/snprintf-posix-tests (Depends-on): Likewise. * modules/sprintf-posix-tests (Depends-on): Likewise. * modules/vsnprintf-posix-tests (Depends-on): Likewise. * modules/vsprintf-posix-tests (Depends-on): Likewise. * modules/vasnprintf-posix-tests (Depends-on): Likewise. * modules/vasprintf-posix-tests (Depends-on): Likewise. 2008-03-31 Bruno Haible * tests/test-strtod.c (main): Update results for OSF/1 platforms. * doc/posix-functions/strtod.texi: Likewise. 2008-03-31 Bruno Haible * tests/test-strtod.c (main): Don't use C99 syntax. 2008-03-31 Bruno Haible * tests/test-strtod.c (main): Don't test NAN macro. Needed for Solaris. Reported by Eric Blake. 2008-03-31 Jim Meyering Don't compare actual signbit return values. * tests/test-strtod.c (main): Rather, compare only their zero/non-zero nature. 2008-03-31 Eric Blake More strtod documentation. * doc/posix-functions/strtod.texi (strtod): Interpret more test failures as distinct bugs. 2008-03-30 Paul Eggert * lib/wchar.in.h [defined __need_mbstate_t]: Just include . Problem reported by Erik Benada in . 2008-03-30 Bruno Haible * tests/test-strtod.c: Add comments about which assertion fails on which platform. * doc/posix-functions/strtod.texi: Add info about many more platforms. 2008-03-30 Eric Blake Test signbit behavior on zeros. * tests/test-signbit.c (test_signbitf): Add tests for zero. (test_signbitd, test_signbitl): Likewise. More strtod touchups. * tests/test-strtod.c (main): Ignore tests for signbit on NaN, and sign of negative underflow, for now. Use .5, not .1. * doc/posix-functions/strtod.texi (strtod): Mention these limitations. Reported by Jim Meyering. 2008-03-30 Bruno Haible * lib/striconveh.h (mem_iconveh, str_iconveh): Optimize the conversion from UTF-8 to UTF-8//TRANSLIT in the same way as from UTF-8 to UTF-8. 2008-03-30 Bruno Haible Avoid failure when attempting to return empty iconv results on some platforms. * lib/striconveh.c (mem_cd_iconveh_internal): In the final memory allocation, don't report ENOMEM when the resulting string is empty. 2008-03-30 Bruno Haible Fix buffer overrun. * lib/vasnprintf.c (VASNPRINTF): If !USE_SNPRINTF && pad_ourselves: Don't consider the width for tmp_length. Check count against tmp_length before doing the padding. Ensure enough allocation during padding. 2008-03-30 Eric Blake strtod touchups. * lib/strtod.c (strtod): Avoid compiler warnings. Reported by Jim Meyering. 2008-03-30 Bruno Haible * lib/unistdio/u-vsprintf.h (EOVERFLOW): Remove fallback. * modules/unistdio/ulc-vsprintf (Depends-on): Add EOVERFLOW. * modules/unistdio/u8-vsprintf (Depends-on): Add EOVERFLOW. * modules/unistdio/u8-u8-vsprintf (Depends-on): Add EOVERFLOW. * modules/unistdio/u16-vsprintf (Depends-on): Add EOVERFLOW. * modules/unistdio/u16-u16-vsprintf (Depends-on): Add EOVERFLOW. * modules/unistdio/u32-vsprintf (Depends-on): Add EOVERFLOW. * modules/unistdio/u32-u32-vsprintf (Depends-on): Add EOVERFLOW. * lib/unistdio/u-vsnprintf.h (EOVERFLOW): Remove fallback. * modules/unistdio/ulc-vsnprintf (Depends-on): Add EOVERFLOW. * modules/unistdio/u8-vsnprintf (Depends-on): Add EOVERFLOW. * modules/unistdio/u8-u8-vsnprintf (Depends-on): Add EOVERFLOW. * modules/unistdio/u16-vsnprintf (Depends-on): Add EOVERFLOW. * modules/unistdio/u16-u16-vsnprintf (Depends-on): Add EOVERFLOW. * modules/unistdio/u32-vsnprintf (Depends-on): Add EOVERFLOW. * modules/unistdio/u32-u32-vsnprintf (Depends-on): Add EOVERFLOW. * lib/unistdio/u-vasprintf.h (EOVERFLOW): Remove fallback. * modules/unistdio/ulc-vasprintf (Depends-on): Add EOVERFLOW. * modules/unistdio/u8-vasprintf (Depends-on): Add EOVERFLOW. * modules/unistdio/u8-u8-vasprintf (Depends-on): Add EOVERFLOW. * modules/unistdio/u16-vasprintf (Depends-on): Add EOVERFLOW. * modules/unistdio/u16-u16-vasprintf (Depends-on): Add EOVERFLOW. * modules/unistdio/u32-vasprintf (Depends-on): Add EOVERFLOW. * modules/unistdio/u32-u32-vasprintf (Depends-on): Add EOVERFLOW. * lib/unistdio/ulc-vfprintf.c (EOVERFLOW): Remove fallback. * modules/unistdio/ulc-vfprintf (Depends-on): Add EOVERFLOW. * lib/unistdio/ulc-fprintf.c (EOVERFLOW): Remove fallback. * modules/unistdio/ulc-fprintf (Depends-on): Add EOVERFLOW. * lib/xvasprintf.c (EOVERFLOW): Remove fallback. * modules/xvasprintf (Depends-on): Add EOVERFLOW. * lib/vsprintf.c (EOVERFLOW): Remove fallback. * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Drop gl_EOVERFLOW. * modules/vsprintf-posix (Depends-on): Add EOVERFLOW. * lib/vsnprintf.c (EOVERFLOW): Remove fallback. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Drop gl_EOVERFLOW. * modules/vsnprintf (Depends-on): Add EOVERFLOW. * lib/vfprintf.c (EOVERFLOW): Remove fallback. * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Drop gl_EOVERFLOW. * modules/vfprintf-posix (Depends-on): Add EOVERFLOW. * lib/vasprintf.c (EOVERFLOW): Remove fallback. * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Drop gl_EOVERFLOW. * modules/vasprintf (Depends-on): Add EOVERFLOW. * lib/vasnprintf.c (EOVERFLOW): Remove fallback. * m4/vasnprintf.m4 (gl_FUNC_VASNPRINTF): Drop gl_EOVERFLOW. * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Drop gl_EOVERFLOW. * modules/vasnprintf (Files): Remove m4/eoverflow.m4. (Depends-on): Add EOVERFLOW. * modules/unistdio/ulc-vasnprintf (Files): Remove m4/eoverflow.m4. (Depends-on): Add EOVERFLOW. * modules/unistdio/u8-vasnprintf (Files): Remove m4/eoverflow.m4. (Depends-on): Add EOVERFLOW. * modules/unistdio/u8-u8-vasnprintf (Files): Remove m4/eoverflow.m4. (Depends-on): Add EOVERFLOW. * modules/unistdio/u16-vasnprintf (Files): Remove m4/eoverflow.m4. (Depends-on): Add EOVERFLOW. * modules/unistdio/u16-u16-vasnprintf (Files): Remove m4/eoverflow.m4. (Depends-on): Add EOVERFLOW. * modules/unistdio/u32-vasnprintf (Files): Remove m4/eoverflow.m4. (Depends-on): Add EOVERFLOW. * modules/unistdio/u32-u32-vasnprintf (Files): Remove m4/eoverflow.m4. (Depends-on): Add EOVERFLOW. * lib/sprintf.c (EOVERFLOW): Remove fallback. * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Drop gl_EOVERFLOW. * modules/sprintf-posix (Depends-on): Add EOVERFLOW. * lib/snprintf.c (EOVERFLOW): Remove fallback. * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Drop gl_EOVERFLOW. * modules/snprintf (Depends-on): Add EOVERFLOW. * lib/poll.c (EOVERFLOW): Remove fallback. * modules/poll (Depends-on): Add EOVERFLOW. * lib/getugroups.c (EOVERFLOW): Remove fallback. * modules/getugroups (Depends-on): Add EOVERFLOW. * lib/getdelim.c (EOVERFLOW): Remove fallback. * modules/getdelim (Depends-on): Add EOVERFLOW. * lib/ftell.c (EOVERFLOW): Remove fallback. * modules/ftell (Depends-on): Add EOVERFLOW. * lib/fprintf.c (EOVERFLOW): Remove fallback. * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Drop gl_EOVERFLOW. * modules/fprintf-posix (Depends-on): Add EOVERFLOW. * lib/c-stack.c (EOVERFLOW): Remove unused fallback. * modules/EOVERFLOW-tests: New file. * tests/test-EOVERFLOW.c: New file. * modules/EOVERFLOW: New file. * doc/posix-headers/errno.texi: Mention EOVERFLOW portability problem. 2008-03-30 Bruno Haible Fix bug introduced on 2007-06-10. * lib/vasnprintf.c (VASNPRINTF): When performing zero-padding, use spaces instead of 0 digits for 's' also when ENABLE_UNISTDIO. 2008-03-30 Bruno Haible Improve freadseek's efficiency after ungetc. * lib/freadseek.c: Include freadahead.h. (freadptrinc): New function, extracted from freadseek. (freadseek): Use it in a loop. Use freadahead to determine the number of loop iterations. * modules/freadseek (Depends-on): Add freadahead. (configure.ac): Require AC_C_INLINE. 2008-03-30 Bruno Haible * lib/freadseek.c (freadseek): Don't ignore the return value of freadptr. 2008-03-29 Eric Blake Add hex float support. * modules/strtod (Depends-on): Add c-ctype. (Link): Mention POW_LIB. * lib/strtod.c (strtod): Recognize hex floats. Don't allow whitespace between 'e' and exponent. * tests/test-strtod.c (main): Enable hex float tests. * doc/posix-functions/strtod.texi (strtod): Document what gnulib now provides. Document various strtod bugs, with some fixes. * doc/posix-functions/strtod.texi (strtod): Document bugs with "-0x", "inf", "nan", and hex constants. * doc/posix-functions/atof.texi (atof): Likewise. * modules/stdlib (Makefile.am): Support strtod. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Likewise. * m4/strtod.m4 (gl_FUNC_STRTOD): Fit in stdlib framework, and detect additional strtod bugs. * lib/stdlib.in.h (rpl_strtod): Add declarations. * lib/strtod.c (strtod): Return -0.0 on negative underflow. Use bool where appropriate. Parse 'inf' and 'nan'. * tests/test-strtod.c: New file. * modules/strtod (Depends-on): Add stdbool, stdlib. (configure.ac): Turn on module indicator. * modules/strtod-tests: New module. 2008-03-29 Eric Blake Fix ftell on mingw. * lib/ftell.c (EOVERFLOW): Define if the system lacks it. * modules/ftell-tests (Depends-on): Add binary-io. * modules/ftello-tests (Depends-on): Likewise. * tests/test-ftell.c (main): Enhance test to cover behavior after ungetc. Enforce binary mode. * tests/test-ftello.c (main): Likewise. Pass test-freadseek on cygwin. * modules/freadseek (Depends-on): Use freadptr, not freadahead. * lib/freadseek.c (freadseek): Don't increment beyond bounds of ungetc buffer. * tests/test-fflush2.c (main): Fix typo. 2008-03-29 Bruno Haible * tests/test-fflush2.c (main): Temporarily disable the contents of this test. * m4/fflush.m4 (gl_FUNC_FFLUSH): Add a TODO. Reported by Eric Blake. 2008-03-28 Simon Josefsson * lib/gc.h (enum Gc_hash): Add GC_SHA224. (GC_SHA224_DIGEST_SIZE): Add. * lib/gc-libgcrypt.c (gc_hash_open): Handle SHA-224. (gc_hash_digest_length): Likewise. (gc_hash_buffer): Likewise. 2008-03-25 Bruno Haible * doc/gnulib-tool.texi (gettextize and autopoint): Explain in more detail which gettext release to use. Reported by Simon Josefsson. 2008-03-26 Jim Meyering gnumakefile: remove file from $(top_builddir), not from $(top_srcdir) * modules/gnumakefile (clean-GNUmakefile): Also, use test ... && ... || : syntax rather than if-then ... fi. gnumakefile: Don't double-quote-expand $(VPATH) value. * modules/gnumakefile (clean-GNUmakefile): Use single quotes. 2008-03-24 Eric Blake Alter GNUmakefile to install into top directory. * modules/maintainer-makefile: Split, and add dependency... * modules/gnumakefile: to this new module. * build-aux/GNUmakefile: Move... * top/GNUmakefile: ...here. * build-aux/maint.mk: Move... * top/maint.mk: ...here. * MODULES.html.sh (Support for maintaining...): Document new module. 2008-03-23 Bruno Haible * gnulib-tool: New options --vc-files, --no-vc-files. (func_usage): Document them. (vc_files): New variable. (func_import): Consider vc_files. (func_create_testdir): Set vc_files to empty. Suggested by Jim Meyering and Karl Berry. 2008-03-23 Bruno Haible Fix regex compilation error on HP-UX 11. * m4/regex.m4 (gl_PREREQ_REGEX): Require AC_TYPE_MBSTATE_T. * modules/regex (Files): Add m4/mbstate_t.m4. Reported by Ton Voon . 2008-03-23 Bruno Haible * doc/gnulib-tool.texi (gettextize and autopoint): New section. 2008-03-23 Eric Blake Bruno Haible Install files from top/ in the destination directory. * gnulib-tool (func_get_automake_snippet): Synthesize an EXTRA_DIST augmentation also for the files from top/. (func_import, func_create_testdir): Rewrite file names: top/filename -> filename. 2008-03-23 Bruno Haible Tweak "gnulib --version" output. * gnulib-tool (func_version): Replace "-dirty" suffix with "-modified". 2008-03-23 Bruno Haible Tweak "gnulib --version" output. * gnulib-tool (func_version): Use date of last commit to ChangeLog, rather than contents of ChangeLog, when possible. 2008-03-21 Eric Blake More --version tweaks. * gnulib-tool (func_version): Obey GNU Coding Standards. Output date of last ChangeLog entry. 2008-03-21 Jim Meyering * build-aux/GNUmakefile (_have-git-version-gen): Split long line. 2008-03-20 Eric Blake VPATH fix. * build-aux/GNUmakefile (_have_git-version-gen): Look in correct dir. 2008-03-20 Simon Josefsson * build-aux/GNUmakefile: Make git-version-gen optional. Add _build-aux variable. Suggested by Eric Blake . 2008-03-20 Eric Blake Sync GNUmakefile with coreutils. * build-aux/GNUmakefile (have-Makefile): Rename... (_have-Makefile): ...to this, for namespace consideration. (GNUmakefile.cfg): Include, if present. (_autoreconf): Define a default. (_is-dist-target): New rule for rebuilds to pick up intra-release version. (maint-cfg.mk): Rename... (cfg.mk): ...to this. 2008-03-18 Jim Meyering New script and module: mktempd * MODULES.html.sh (maint+release support): Add mktempd. * build-aux/mktempd: New file. * modules/mktempd: New file. 2008-03-15 Jim Meyering Undo last change. * lib/sha1.c, lib/md5.c: 63 != ~63. Reported by Andreas Schwab. sha1.c, md5.c: Hoist a redundant expression. * lib/sha1.c (sha1_process_bytes): AND-off the low bits in "ctx->buflen" only once, before calling *_process_block. * lib/md5.c (md5_process_bytes): Likewise. 2008-03-14 Eric Blake Bump copyright year in files generated by gnulib-tool. * gnulib-tool (func_emit_copyright_notice): Extract copyright from gnulib-tool, rather than hard-coding it. Fix 'gnulib-tool --version' output to work with git. * gnulib-tool (func_gnulib_dir): New function, extracted from... (startup): ...here. (func_version): Use it to invoke git-version-gen, rather than relying on CVS keyword expansion. Modernize wording. (cvsdatestamp, last_checkin_date, version): Kill unused variables. 2008-03-12 Jim Meyering Recognize optional cast of the argument to free. * build-aux/useless-if-before-free: Update regexps. * build-aux/bootstrap (gnulib_tool): Remove trailing blanks. 2008-03-11 Bruno Haible Extend AC_LIB_LINKFLAGS to the situation of several libraries provided by a single package. * m4/lib-link.m4 (AC_LIB_FROMPACKAGE): New macro. (AC_LIB_LINKFLAGS_BODY): Use the information stored by AC_LIB_FROMPACKAGE. Use AC_ARG_WITH instead of AC_LIB_ARG_WITH. Reported by Sam Steingold . 2008-03-12 Sergey Poznyakoff * build-aux/bootstrap (version_controlled_file): Adapt for SVN repositories. 2008-03-11 Bruno Haible Avoid conflicts between local macro definitions. * m4/lib-link.m4 (AC_LIB_LINKFLAGS, AC_LIB_HAVE_LINKFLAGS, AC_LIB_LINKFLAGS_BODY): Use pushdef/popdef instead of define/undefine. 2008-03-10 Peter O'Gorman Bruno Haible Make va_copy work with some version of xlc on AIX 5.1. * lib/stdarg.in.h: New file. * m4/stdarg.m4 (gl_STDARG_H): Initialize STDARG_H and NEXT_STDARG_H. On AIX, use a file substitute. * modules/stdarg (Files): Add lib/stdarg.in.h. (Depends-on): Add include_next. (Makefile.am): Build a stdarg.h substitute if requested. * doc/posix-functions/va_copy.texi: Document the platforms lacking it. 2008-03-10 Bruno Haible * m4/include_next.m4 (gl_CHECK_NEXT_HEADERS): Document a restriction. * m4/absolute-header.m4 (gl_ABSOLUTE_HEADER): Likewise. Reported by Peter O'Gorman . 2008-03-10 Bruno Haible * modules/stdlib (Depends-on): Add include_next, remove absolute-header. 2008-03-09 Bruno Haible * lib/freadahead.h (freadahead): Document more precisely. * lib/freadahead.c (freadahead): When an ungetc is in effect, return the sum of both buffer sizes. * tests/test-freadahead.c (main): Also test behaviour after ungetc. * NEWS: Document the change. 2008-03-09 Bruno Haible Extend freadptr to return also the buffer size. * lib/freadptr.h (freadptr): Add sizep argument. * lib/freadptr.c: Include freadptr.h, not freadahead.h. (freadptr): Add sizep argument. Determine buffer size like freadahead does. * tests/test-freadptr.c: Don't include freadahead.h. (main): Adapt for new calling convention of freadptr. * tests/test-freadptr2.c: New file, based on tests/test-freadahead.c. * tests/test-freadptr2.sh: New file, based on tests/test-freadahead.sh. * modules/freadptr-tests (Files): Add tests/test-freadptr2.c, tests/test-freadptr2.sh. (Depends): Remove freadahead. (TESTS): Add test-freadptr2.sh. (check_PROGRAMS): Add test-freadptr2. 2008-03-09 Bruno Haible * doc/Makefile (%.pdf): Explain how to remedy the save_size error. Report and solution by Simon Josefsson. 2008-03-06 Bruno Haible Make fflush after ungetc work on BSD platforms. * lib/fflush.c (rpl_fflush): Discard ungetc buffer if possible. * tests/test-fflush2.c: New file. * tests/test-fflush2.sh: New file. * modules/fflush-tests (Files): Add tests/test-fflush2.sh, tests/test-fflush2.c. (Makefile.am): Build test-fflush2 and run test-fflush2.sh. * doc/posix-functions/fflush.texi: Document fflush after ungetc bug. 2008-03-06 Eric Blake Likewise for ftello. * modules/ftello (Dependencies): Add extensions. * m4/ftello.m4 (gl_FUNC_FTELLO): Require AC_USE_SYSTEM_EXTENSIONS. 2008-03-06 Bruno Haible * modules/fseeko (Dependencies): Add extensions. * m4/fseeko.m4 (gl_FUNC_FSEEKO): Require AC_USE_SYSTEM_EXTENSIONS. Needed on glibc systems. 2008-03-06 Bruno Haible * doc/gnulib-tool.texi (@nosuchmodulenote): Avoid line break inside email address. Reported by Thien-Thi Nguyen . 2008-03-06 Bruno Haible * users.txt: Add libgnupdf. 2008-03-06 Thien-Thi Nguyen (tiny change) * doc/gnulib-tool.texi (@nosuchmodulenote): New macro. (Header File Substitutes, Function Substitutes, Glibc Header File Substitutes, Glibc Function Substitutes): Use it. (Build robot for gnulib): Fix typo. 2008-03-06 Bruno Haible * doc/gnulib-tool.texi (VCS Issues): Small updates. Reported by Thien-Thi Nguyen . 2008-03-06 Bruno Haible * doc/func.texi: New file, extracted from doc/gnulib.texi. * doc/gnulib.texi: Include it. 2008-03-06 Simon Josefsson * modules/func (License): Change license to unlimited; there was no LGPL parts in the module anyway. 2008-03-06 Simon Josefsson * modules/__func__: Renamed to modules/func. * modules/__func__-tests: Renamed to modules/func-tests. * tests/test-__func__.c: Renamed to tests/test-func.c. * m4/__func__.m4: Renamed to m4/func.m4. * doc/gnulib.texi (__func__): Section renamed to func. Suggested by Eric Blake . 2008-03-06 Simon Josefsson * doc/gnulib.texi (__func__): Use C99 terminology when talking about __func__. Make example self-contained. Suggested by Eric Blake . * tests/test-__func__.c (main): Avoid extraneous () around __func. Suggested by Eric Blake . 2008-03-06 Simon Josefsson * modules/__func__: New file. * modules/__func__-tests: New file. * tests/test-__func__.c: New file. * m4/__func__.m4: New file. * doc/gnulib.texi (__func__): Document __func__ module. 2008-03-05 Simon Josefsson * modules/byteswap (License): Re-license as LGPLv2+. 2008-03-05 Simon Josefsson * doc/Makefile: Add pdf target. 2008-03-05 Simon Josefsson * modules/inline (License): Use 'unlimited', since there are only *.m4 files in this module. 2008-03-03 John E. Malmberg (tiny change) Bruno Haible Add support for HP C 7.1 on OpenVMS 8.3. * lib/alloca.in.h (alloca): Define as alias for DEC C on VMS. 2008-03-03 John E. Malmberg (tiny change) Update VMS specifics. * lib/getopt.c [VMS]: Remove include of unixlib.h. 2008-03-02 Jim Meyering Remove the last dependency on the "free" module. * m4/readutmp.m4 (gl_READUTMP): Don't require gl_FUNC_FREE. Reported by Bob Proulx. * lib/getdelim.c (getdelim): Don't leak memory upon failed realloc. Remove useless "if" tests before free. Deprecate "free" module. * doc/posix-functions/free.texi: Mention that this module is no longer useful. * modules/free (Notice): Say this module is obsolete. * modules/readutmp (Depends-on): Remove free. * lib/save-cwd.c (free_cwd): Remove useless "if" before free. * lib/putenv.c (putenv): Likewise. * lib/gc-gnulib.c (gc_cipher_close): Likewise. * lib/getaddrinfo.c (freeaddrinfo): Likewise. * tests/test-c-strcasestr.c (main): Likewise. * tests/test-c-strstr.c (main): Likewise. * tests/test-mbscasestr1.c (main): Likewise. * tests/test-mbscasestr2.c (main): Likewise. * tests/test-mbsstr1.c (main): Likewise. * tests/test-mbsstr2.c (main): Likewise. * tests/test-memmem.c (main): Likewise. * tests/test-strcasestr.c (main): Likewise. * tests/test-striconv.c (main): Likewise. * tests/test-striconveh.c (main): Likewise. * tests/test-striconveha.c (main): Likewise. * tests/test-strstr.c (main): Likewise. * build-aux/git-version-gen: Adjust a comment and the Usage string. bootstrap: sync from coreutils again * build-aux/bootstrap: Remove dangling m4/*.m4 symlinks. 2008-03-01 Jim Meyering bootstrap: sync from coreutils * build-aux/bootstrap (update_po_files): Copy a .po file into place also when the target doesn't exist. 2008-03-01 Eric Blake Fix bugs in last patch. * lib/memchr2.c (memchr2): Fix typo. * tests/test-memchr2.c: Test previous bug, and don't use GNU extension. Reported by Bruce Korb. New module 'memchr2'. * modules/memchr2: New file. * modules/memchr2-tests: Likewise. * lib/memchr2.h: Likewise. * lib/memchr2.c: Likewise, based on memchr.c. * tests/test-memchr2.c: New test. * MODULES.html.sh (String handling): Add memchr2. 2008-02-29 Bruno Haible * modules/freadseek-tests: New file. * tests/test-freadseek.sh: New file. * tests/test-freadseek.c: New file. New module 'freadseek'. * modules/freadseek: New file. * lib/freadseek.h: New file. * lib/freadseek.c: New file. * MODULES.html.sh (File stream based Input/Output): Add freadseek. 2008-02-29 Sergey Poznyakoff * users.txt: Add anubis, cpio, mailfromd, mailutils, radius, wydawca. * m4/argp.m4 (gl_ARGP): Use AC_TRY_LINK to test if program_invocation_name and program_invocation_short_name are present. 2008-02-28 Bruno Haible * tests/test-freadptr.c: Add a test for behaviour after ungetc. * tests/test-freadptr.sh: Also test non-seekable stdin. 2008-02-28 Sergey Poznyakoff * build-aux/bootstrap (source_base, m4_base) (doc_base, tests_base): New variables. (gnulib_tool_options): Do not hardcode base directories, use the above variables instead. 2008-02-28 Atsushi SAKAI * lib/xsize.h: Fix typo in comment: s/tupe/type/. 2008-02-28 Bruno Haible * modules/freadptr-tests: New file. * tests/test-freadptr.sh: New file. * tests/test-freadptr.c: New file. New module 'freadptr'. * modules/freadptr: New file. * lib/freadptr.h: New file. * lib/freadptr.c: New file. * MODULES.html.sh (File stream based Input/Output): Add freadptr. 2008-02-26 Karl Berry Sync from Libtool: * libltdl/argz.c (argz_add, argz_count): New functions. * libltdl/argz.in.h: Declare them. Report by Juan Manuel Guerrero . 2008-02-22 Bruno Haible * m4/time_r.m4 (gl_TIME_R): Also check that localtime_r's return type is a pointer type. Needed for HP-UX 10. * doc/posix-functions/localtime_r.texi: Mention HP-UX 10. * doc/posix-functions/gmtime_r.texi: Likewise. Reported by Peter O'Gorman . 2008-02-24 Bruno Haible * modules/environ-tests: New file. * tests/test-environ.c: New file. New module 'environ'. * modules/environ: New file. * lib/unistd.in.h (environ): New declaration. * m4/environ.m4: New file. (gt_CHECK_VAR_DECL): Moved here from m4/setenv.m4. Undefine gt_cv_var after use. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_ENVIRON and HAVE_DECL_ENVIRON. * modules/unistd (Makefile.am): Substitute also GNULIB_ENVIRON and HAVE_DECL_ENVIRON. * doc/posix-functions/environ.texi: Mention module 'environ'. Remove wrong claim that 'environ' is missing on some systems. * modules/execute (Depends-on): Add environ. * lib/execute.c (environ): Remove fallback declaration. * modules/pipe (Depends-on): Add environ. * lib/pipe.c (environ): Remove fallback declaration. * modules/setenv (Depends-on): Add environ. * lib/setenv.c (environ): Remove fallback declaration. * modules/unsetenv (Depends-on): Add environ. * lib/unsetenv.c (environ): Remove fallback declaration. * m4/setenv.m4 (gt_CHECK_VAR_DECL): Remove macro. Moved to m4/environ.m4. (gl_PREREQ_SETENV): Require gl_ENVIRON instead of testing for environ. (gl_PREREQ_UNSETENV): Likewise. 2008-02-24 Bruno Haible * doc/posix-functions/environ.texi: Document the MacOS X problem. 2008-02-20 Bob Proulx Enable use of older two part flavor 'git describe'. * build-aux/git-version-gen: If using the older two part flavor of git version then recreate the third part now present in the newer three part flavor of git describe. 2008-02-20 Martin Buchholz (tiny change) * lib/fts.c (fts_build): Typo correction to comment. 2008-02-17 Bruno Haible * lib/git-merge-changelog.c (main) [split_merged_entry]: Avoid generating no-op conflicts. 2008-02-17 Bruno Haible Speed up by 10%. * lib/git-merge-changelog.c (main): Use the iterator to iterate through result_entries, rather than an index-based loop. 2008-02-17 Bruno Haible Speed up by 25%. * lib/git-merge-changelog.c (struct entry): New fields 'hashcode', 'hashcode_cached'. (entry_create): New function. (entry_hashcode): Use the cached hashcode if possible. (read_changelog_file, try_split_merged_entry): Use entry_create. 2008-02-17 Bruno Haible Speed up from O(n^2) to O(n) for long ChangeLog files. * lib/git-merge-changelog.c: Include gl_rbtreehash_list.h. (read_changelog_file): Change implementation of entries_reversed list to rbtreehash. * modules/git-merge-changelog (Depends-on): Add rbtreehash-list. 2008-02-17 Bruno Haible New option --split-merged-entry. * lib/git-merge-changelog.c (FSTRCMP_STRICTER_THRESHOLD): New macro. (find_paragraph_end, try_split_merged_entry): New functions. (long_options): Add option --split-merged-entry. (usage): Document option --split-merged-entry. (main): Implement option --split-merged-entry. Reported by Eric Blake. 2008-02-17 Bruno Haible * lib/git-merge-changelog.c: Include c-strstr.h. (main): Support the "git pull --rebase" situation. * modules/git-merge-changelog (Depends-on): Add c-strstr. Reported by Eric Blake. 2008-02-16 Eric Blake Avoid doubling \ in common case of "c-maybe" quoting style. * lib/quotearg.c (quotearg_buffer_restyled): Don't escape \ when eliding outer quotes. * lib/quotearg.h: Document this. * tests/test-quotearg.c (result_strings, inputs, results_g) (flag_results, locale_results): Test it by adding a new string to each test group. (compare_strings): Test new string. 2008-02-13 Eric Blake Avoid trigraph quoting in default output. * lib/quotearg.h (enum quoting_flags): Add QA_SPLIT_TRIGRAPHS. * lib/quotearg.c (quotearg_buffer_restyled): Don't quote trigraphs unless explicitly requested. * tests/test-quotearg.c (flag_results, main): Add additional tests. 2008-02-13 Lasse Collin Don't rely on signed integer overflowing to negative value. * lib/getugroups.c (getugroups): Include . Instead, compare against INT_MAX, and increment only if the test passes. 2008-02-13 Jim Meyering and Eric Blake Avoid shadowing warning and compile errors on Linux. * tests/test-quotearg.c [ENABLE_NLS]: Disable forwarding macros on Linux. (dcgettext): Define a stub, for Linux. (results_g, main): Avoid warnings. 2008-02-12 Eric Blake Silence warning in last patch. * lib/quotearg.c (quotearg_buffer_restyled): Add missing const. Quotearg part 4: add tests, fix c-maybe colon quoting. * lib/quotearg.h: Improve documentation. * lib/quotearg.c (quotearg_buffer_restyled): Don't add extra escapes when adding outer quotes. When quoting trigraphs, use valid C notation. When quoting NUL, omit extra characters if next character is not digit. Alter prototype. (quotearg_buffer, quotearg_alloc_mem, quotearg_n_options): Adjust callers. * modules/quotearg-tests: New module. * tests/test-quotearg.c: New test. 2008-02-07 Eric Blake Quotearg part 3: add flag to control outer quote elision. * lib/quotearg.h (c_maybe_quoting_style): New style. (enum quoting_flags): Better documentation of flags. * lib/quotearg.c (quoting_style_args, quoting_style_vals): Add c-maybe style. (quotearg_buffer_restyled): Handle new flag to elide outer quotes. Quotearg part 2: add flag that can control NUL elision. * lib/quotearg.h (set_quoting_flags): New prototype. * lib/quotearg.c (struct quoting_options): Add flag field. (set_quoting_flags): New function. (quotearg_buffer_restyled): Add flags parameter. (quotearg_alloc_mem): Set the flag if length cannot be returned. (quotearg_n_options): Set the flag, since length cannot be returned. (quoting_options_from_style): Default flags correctly. Quotearg part 1: more wrappers, restore quotearg_char state. * lib/quotearg.h (quotearg_alloc_mem, quotearg_n_mem) (quotearg_mem, quotearg_style_mem, quotearg_char_mem) (quotearg_colon_mem): New wrappers. * lib/quotearg.c (quotearg_alloc, quotearg_char): Rewrite... (quotearg_alloc_mem, quotearg_char_mem): ...in terms of these new functions. (quotearg_n_mem, quotearg_mem, quotearg_style_mem) (quotearg_colon_mem): New functions. 2008-02-11 Bruno Haible * modules/git-merge-changelog (Makefile.am): Don't use -L and -l for a library in the current directory: it does not work with parallel make. Reported by Ralf Wildenhues . 2008-02-11 Bruno Haible * .gitattributes: New file. 2008-02-11 Jim Meyering useless-if-before-free: Fix reversed exit values. * build-aux/useless-if-before-free: Use correct values for EXIT_MATCH and EXIT_NO_MATCH. * build-aux/useless-if-before-free: Close stdout carefully. 2008-02-10 Bruno Haible New module 'git-merge-changelog'. * modules/git-merge-changelog: New file. * lib/git-merge-changelog.c: New file. 2008-02-10 Jim Meyering useless-if-before-free: New option: --list (-l). useless-if-before-free: Don't exit immediately upon open failure. * build-aux/useless-if-before-free: Exit 2 for errors. Upon failure to open a file, don't exit immediately. Rather, just warn and continue with any remaining files. 2008-02-10 Bruno Haible New abstract list operation 'node_set_value'. * lib/gl_list.h (gl_list_node_set_value): New function. (struct gl_list_implementation): New field node_set_value. * lib/gl_list.c (gl_list_node_set_value): New function. * lib/gl_array_list.c (gl_array_node_set_value): New function. (gl_array_list_implementation): Update. * lib/gl_carray_list.c (gl_carray_node_set_value): New function. (gl_carray_list_implementation): Update. * lib/gl_anylinked_list2.h (gl_linked_node_set_value): New function. * lib/gl_linked_list.c (gl_linked_list_implementation): Update. * lib/gl_linkedhash_list.c (gl_linkedhash_list_implementation): Update. * lib/gl_anytree_list2.h (gl_tree_node_set_value): New function. * lib/gl_avltree_list.c (gl_avltree_list_implementation): Update. * lib/gl_rbtree_list.c (gl_rbtree_list_implementation): Update. * lib/gl_avltreehash_list.c (gl_avltreehash_list_implementation): Update. * lib/gl_rbtreehash_list.c (gl_rbtreehash_list_implementation): Update. * lib/gl_sublist.c (gl_sublist_node_set_value): New function. (gl_sublist_list_implementation): Update. 2008-02-10 Bruno Haible * lib/diffseq.h: Write "ELEMENT const" instead of "const ELEMENT". Needed when ELEMENT is #defined to 'some_type *'. 2008-02-10 Jim Meyering New script and module: useless-if-before-free * MODULES.html.sh (maint+release support): Add useless-if-before-free. * build-aux/useless-if-before-free: New file. * modules/useless-if-before-free: New file. * build-aux/gitlog-to-changelog: Use committer date, not author date. xstrtol_error: Fix typo. * lib/xstrtol-error.c (xstrtol_error): The parameter was unused: s/exit_failure/exit_status/. 2008-02-09 Jim Meyering New script and module: gitlog-to-changelog * MODULES.html.sh (maint+release support): Add gitlog-to-changelog. * modules/gitlog-to-changelog: New file. * build-aux/gitlog-to-changelog: New file. 2008-02-08 Jim Meyering Avoid two "parameter unused" warnings. * lib/stat-time.h (get_stat_birthtime_ns, get_stat_birthtime): Mark "st" as used. Use "git COMMAND", not "git-COMMAND". * build-aux/bootstrap (version_controlled_file): s/git-rm/git-rm/. * build-aux/announce-gen (get_tool_versions): Correct a diagnostic. * build-aux/git-version-gen: Use "git status", not "git-status". 2008-02-07 Bruno Haible * lib/vasnprintf.c (VASNPRINTF): Don't use %n on native Woe32 systems. Avoids a crash on Windows Vista. Reported by Adam Strzelecki via Simon Josefsson . 2008-02-06 Bruno Haible Fix *printf behaviour regarding the left-adjust flag on HP-UX 10.20. * m4/printf.m4 (gl_PRINTF_FLAG_LEFTADJUST): New macro. * lib/vasnprintf.c (VASNPRINTF): Handle NEED_PRINTF_FLAG_LEFTADJUST. * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST): New macro. (gl_PREREQ_VASNPRINTF_WITH_EXTRAS): Invoke it. * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke gl_PRINTF_FLAG_LEFTADJUST and test its result. Invoke gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST. * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise. * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise. * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise. * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise. * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise. * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise. * tests/test-vasnprintf-posix.c (test_function): Add testcases for the left-adjust flag. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. * tests/test-vasprintf-posix.c (test_function): Likewise. * doc/posix-functions/fprintf.texi: Update. * doc/posix-functions/printf.texi: Update. * doc/posix-functions/snprintf.texi: Update. * doc/posix-functions/sprintf.texi: Update. * doc/posix-functions/vfprintf.texi: Update. * doc/posix-functions/vprintf.texi: Update. * doc/posix-functions/vsnprintf.texi: Update. * doc/posix-functions/vsprintf.texi: Update. Reported by Peter Fales . 2008-02-06 Bruno Haible Fix bug introduced on 2008-01-26. * lib/isnan.c (FUNC): Set to rpl_isnand, not rpl_isnan. 2008-02-06 Bruno Haible Fix bug introduced on 2007-06-10. * lib/vasnprintf.c (VASNPRINTF): Perform zero-padding also if !NEED_PRINTF_FLAG_ZERO. 2008-02-05 Peter O'Gorman getloadavg: use libperfstat on AIX5 * lib/getloadavg.c, m4/getloadavg.m4 [aix]: Use libperfstat 2008-02-03 Bruno Haible * lib/diffseq.h: Add comments about required #includes. Reported by Michael Biggs . 2008-02-01 Bruno Haible * users.txt: Add gnuit. 2008-01-31 Bruno Haible * lib/md4.c (set_uint32): Mark as inline. * lib/md5.c (set_uint32): Likewise. * lib/sha1.c (set_uint32): Likewise. * m4/md4.m4 (gl_MD4): Require AC_C_INLINE. * m4/md5.m4 (gl_MD5): Likewise. * m4/sha1.m4 (gl_SHA1): Likewise. 2008-01-31 Jim Meyering Use "sizeof VAR", rather than a literal "4". * lib/md5.c (md5_read_ctx): Use sizeof ctx->A, not 4. * lib/md4.c (md4_read_ctx): Likewise. * lib/sha1.c (sha1_read_ctx): Likewise. 2008-01-31 Simon Josefsson * tests/test-sha1.c: New file, based on test-md5.c. * modules/crypto/sha1-tests: New file. 2008-01-31 Simon Josefsson * lib/sha1.h (SHA1_DIGEST_SIZE): Define. 2008-01-31 Jim Meyering Prefer "sizeof v" over the equivalent "4". * lib/md4.c (set_uint32): Use "sizeof v" as memcpy length, not 4. * lib/md5.c (set_uint32): Likewise. * lib/sha1.c (set_uint32): Likewise. 2008-01-31 Simon Josefsson * lib/sha1.c (set_uint32): Mark function as static. 2008-01-31 Simon Josefsson md2: clarify comments to say that alignment is not required. * lib/md2.h: Remove warning about alignment in comment. * lib/md2.c (md2_read_ctx, md2_finish_ctx): Doc fix, alignment has never been required. 2008-01-31 Simon Josefsson md4: adapt alignment constraint fix from sha1. * lib/md4.c (set_uint32): New function, from sha1.c (md4_read_ctx): Use it. (md4_finish_ctx): Doc fix. * lib/md4.h: Doc fix. 2008-01-31 Simon Josefsson md5: adapt alignment constraint fix from sha1. * lib/md5.c (set_uint32): New function, from sha1.c (md5_read_ctx): Use it. (md5_finish_ctx): Doc fix. * lib/md5.h: Doc fix. 2008-01-30 Peter Palfrader sha1: remove the result buffer alignment constraint * lib/sha1.c (set_uint32): New function. (sha1_read_ctx): Rewrite to remove the result buffer alignment constraint. (sha1_finish_ctx): Remove comment warning about alignment constraint. * lib/sha1.h: Likewise. 2008-01-30 Andreas Schwab Bruno Haible * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Include and ensure a correct definition of LDBL_MIN_EXP. 2008-01-30 Karl Berry * config/srclist-update: try to preserve x bit on updates. * config/srclistvars.sh: update for karl. 2008-01-29 Jim Meyering vasnprintf.c: Avoid warning about unused label * lib/vasnprintf.c (VASNPRINTF) [!USE_SNPRINTF]: Guard the "overflow" label definition and associated code with the same cpp condition that guards the sole use of that label. 2008-01-26 Bruno Haible * m4/isnanl.m4 (gl_HAVE_ISNANL_NO_LIBM, gl_HAVE_ISNANL_IN_LIBM, gl_FUNC_ISNANL_WORKS): Test the GCC >= 4.0 built-in. * lib/isnanl.h (isnanl): Use the GCC >= 4.0 built-in. * lib/isnanl-nolibm.h (isnanl): Likewise. Reported by Paul Eggert . 2008-01-26 Bruno Haible * m4/isnand.m4 (gl_FUNC_ISNAND_NO_LIBM): Test the GCC >= 4.0 built-in. * lib/isnand.h (isnand): Use the GCC >= 4.0 built-in. 2008-01-26 Bruno Haible * m4/isnanf.m4 (gl_HAVE_ISNANF_NO_LIBM, gl_ISNANF_WORKS): Test the GCC >= 4.0 built-in. * lib/isnanf.h (isnanf): Use the GCC >= 4.0 built-in. 2008-01-26 Bruno Haible Rename isnan, applicable to 'double' only, to isnand. * modules/isnand-nolibm: Renamed from modules/isnan-nolibm. (Files): Add lib/isnand.h, lib/isnand.c. Remove lib/isnan.h. (configure.ac): Update. (Include): Replace "isnan.h" with "isnand.h". * m4/isnand.m4: Renamed from m4/isnan.m4. (gl_FUNC_ISNAND_NO_LIBM): Renamed from gl_FUNC_ISNAN_NO_LIBM. Set HAVE_ISNAND_IN_LIBC instead of HAVE_ISNAN_IN_LIBC. Build isnand.c instead of isnan.c. * lib/isnand.h: Renamed from lib/isnan.h. Test HAVE_ISNAND_IN_LIBC instead of HAVE_ISNAN_IN_LIBC. (isnand): Renamed from isnan. * lib/isnand.c: New file. * modules/isnand-nolibm-tests: Renamed from modules/isnan-nolibm-tests. (Files): Add tests/test-isnand.c. Remove tests/test-isnan.c. (Makefile.am): Update. * tests/test-isnand.c: Renamed from tests/test-isnan.c. Include isnand.h instead of isnan.h. (main): Test isnand instead of isnan. * modules/fprintf-posix (Depends-on): Add isnand-nolibm, remove isnan-nolibm. * modules/frexp (Depends-on): Likewise. * modules/frexp-tests (Depends-on): Likewise. * modules/frexp-nolibm (Depends-on): Likewise. * modules/frexp-nolibm-tests (Depends-on): Likewise. * modules/isfinite (Depends-on): Likewise. * modules/round-tests (Depends-on): Likewise. * modules/signbit (Depends-on): Likewise. * modules/signbit-tests (Depends-on): Likewise. * modules/snprintf-posix (Depends-on): Likewise. * modules/sprintf-posix (Depends-on): Likewise. * modules/trunc-tests (Depends-on): Likewise. * modules/unistdio/u8-vasnprintf (Depends-on): Likewise. * modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/ulc-vasnprintf (Depends-on): Likewise. * modules/vasnprintf-posix (Depends-on): Likewise. * modules/vasprintf-posix (Depends-on): Likewise. * modules/vfprintf-posix (Depends-on): Likewise. * modules/vsnprintf-posix (Depends-on): Likewise. * modules/vsprintf-posix (Depends-on): Likewise. * lib/frexp.c: Include isnand.h instead of isnan.h. (ISNAN): Set to isnand instead of isnan. * lib/isfinite.c: Include isnand.h instead of isnan.h. (gl_isfinited): Use isnand instead of isnan. * lib/signbitd.c: Include isnand.h instead of isnan.h. (gl_signbitd): Use isnand instead of isnan. * lib/vasnprintf.c: Include isnand.h instead of isnan.h. (is_infinite_or_zero, VASNPRINTF): Use isnand instead of isnan. * tests/test-frexp.c: Include isnand.h instead of isnan.h. (main): Use isnand instead of isnan. * tests/test-round1.c: Include isnand.h. (main): Use isnand instead of isnan. * tests/test-round2.c: Include isnand.h instead of isnan.h. (ISNAN): Set to isnand instead of isnan. * tests/test-trunc1.c: Include isnand.h. (main): Use isnand instead of isnan. * tests/test-trunc2.c: Include isnand.h instead of isnan.h. (equal): Use isnand instead of isnan. * MODULES.html.sh (Mathematics ): Replace isnan-nolibm with isnand-nolibm. * NEWS: Mention the change. 2008-01-25 Paul Eggert Bruno Haible * m4/signbit.m4 (gl_SIGNBIT): Require a macro definition. Test whether the GCC builtins for signbits are present and set REPLACE_SIGNBIT_USING_GCC if so. * lib/math.in.h (signbit): Define using GCC builtins if REPLACE_SIGNBIT_USING_GCC is set. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_SIGNBIT_USING_GCC. * modules/math (Makefile.am): Substitute REPLACE_SIGNBIT_USING_GCC. 2008-01-25 Jim Meyering Prefer over "config.h". See autoconf doc for explanation. * lib/poll.c: Include , not "config.h". * tests/test-getaddrinfo.c: Likewise. 2008-01-25 Simon Josefsson * modules/sockets-tests: New file. 2008-01-24 Simon Josefsson * modules/sockets: New module, can be used to call WSA_Startup and WSA_Cleanup when needed. * lib/sockets.h, lib/sockets.c: New files. * m4/sockets.m4: New file. * tests/test-sockets.c: New file. 2008-01-19 Bruno Haible * doc/posix-headers: Renamed from doc/headers. * doc/posix-functions: Renamed from doc/functions. * doc/gnulib.texi: Update. 2008-01-19 Bruno Haible * doc/glibc-functions/strcasestr.texi: Include contents of doc/functions/strcasestr.texi, fixing the list of platforms. * doc/functions/strcasestr.texi: Remove file. 2008-01-19 Bruno Haible * doc/glibc-functions/memmem.texi: Include contents of doc/functions/memmem.texi. * doc/functions/memmem.texi: Remove file. 2008-01-18 Bruno Haible * doc/glibc-functions/*.texi: New files. * doc/gnulib.texi (Glibc Function Substitutes): Completely rewritten to use the new files. 2008-01-17 Bruno Haible * tests/test-gethostname.c (main): Fix printf statement. 2008-01-17 Simon Josefsson * modules/gethostname-tests: New file. * tests/test-gethostname.c: New file. 2008-01-17 Simon Josefsson * lib/gethostname.c: Include string.h unconditionally, strncpy is used by the UNAME case. Reported by Bruno Haible . 2008-01-17 Eric Blake Convert c-strcasestr to be more efficient. * modules/c-strcasestr (Files): Use Two-Way, not KMP. (Depends-on): Add c-strcase, remove malloca, strnlen. * tests/test-c-strcasestr.c (main): Enhance test. * lib/c-strcasestr.c (c_strcasestr): Rewrite to new algorithm. 2007-01-16 Paolo Bonzini * build-aux/bootstrap (MSGID_BUGS_ADDRESS): New overridable variable. Use it in creating po/Makevars. 2008-01-15 Simon Josefsson * lib/gc-libgcrypt.c (gc_init): Disable secure memory by default. Applications that requires it should initialize libgcrypt manually. 2008-01-16 Simon Josefsson * lib/gethostname.c [!HAVE_UNAME]: Need string.h for strcpy. 2008-01-15 Paul Eggert Fix problem with getdate on mingw32 reported by Simon Josefsson in . * lib/getdate.y (get_date): Check "HAVE_DECL_TZNAME", not "defined tzname", when deciding whether to declare tzname. * lib/strftime.c (tzname): Likewise. 2008-01-15 Bruno Haible Work around a MacOS X 10.5 bug in frexpl(). * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Also check denormalized numbers. * doc/functions/frexpl.texi: Document the bug. Reported by Elias Pipping . 2008-01-14 Eric Blake Touch up previous patch. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Fix typo. * doc/functions/strcasestr.texi (strcasestr): Document OpenBSD bug. Convert strcasestr module to use Two-Way algorithm. * modules/strcasestr-simple: New module, based on the old strcasestr, but with Two-Way rather than KMP. * modules/strcasestr (Depends-on): Change to strcasestr-simple. * lib/string.in.h (rpl_strcasestr): Declare. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Check for linear performance. * lib/strcasestr.c (strcasestr): Simplify, and avoid malloc. * modules/string (Makefile.am): Support strcasestr. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Likewise. * modules/strcasestr-tests (Depends-on): Check for alarm. * tests/test-strcasestr.c: Augment test. * lib/str-two-way.h: Clean up stray macro. * NEWS: Document new module. * MODULES.html.sh (string handling): Likewise. * doc/functions/strcasestr.texi: New file. * doc/gnulib.texi (Function Substitutes): New node. Move memmem here, since it is not a POSIX function. 2008-01-14 Colin Watson Bruno Haible * m4/strsignal.m4 (gl_FUNC_STRSIGNAL): Also check whether strsignal works fine; if not, set REPLACE_STRSIGNAL. (gl_PREREQ_STRSIGNAL): Require AC_DECL_SYS_SIGLIST. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize REPLACE_STRSIGNAL. * lib/string.in.h (strsignal): Consider REPLACE_STRSIGNAL. * modules/string (Makefile.am): Substitute REPLACE_STRSIGNAL. * tests/test-strsignal.c (main): Check out-of-range signal numbers. 2008-01-14 Bruno Haible * modules/strsignal (Include): Change to . 2008-01-14 Colin Watson * modules/argp (Notice): Add a notice recommending to change XGETTEXT_OPTIONS. (configure.ac): Invoke AM_XGETTEXT_OPTION if it exists. 2008-01-13 Colin Watson * modules/strsignal-tests: New file. * tests/test-strsignal.c: New file. * lib/strsignal.c: New file, from glibc with modifications. * lib/siglist.h: New file, from glibc with modifications. * lib/string.in.h (strsignal): New declaration. * m4/strsignal.m4: New file. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize GNULIB_STRSIGNAL and HAVE_DECL_STRSIGNAL. * modules/strsignal: New file. * modules/string (Makefile.am): Substitute GNULIB_STRSIGNAL and HAVE_DECL_STRSIGNAL. 2008-01-13 Bruno Haible * m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): Check that the locale encoding is not ASCII. Needed for OpenBSD 4.0. * m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Likewise. * m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Likewise. 2008-01-13 Bruno Haible * lib/argp-fmtstream.h (__attribute__): Don't redefine if __STRICT_ANSI__ is set: it's not needed by any version of gcc. * lib/argp.h (__attribute__): Likewise. * lib/c-stack.c (__attribute__): Likewise. * lib/error.h (__attribute__): Likewise. * lib/fts.c (__attribute__): Likewise. * lib/openat.h (__attribute__): Likewise. * lib/stdio.in.h (__attribute__): Likewise. * lib/string.in.h (__attribute__): Likewise. * lib/utimens.c (__attribute__): Likewise. * lib/vasnprintf.h (__attribute__): Likewise. * lib/xalloc.h (__attribute__): Likewise. * lib/xprintf.h (__attribute__): Likewise. * lib/xstrtol.h (__attribute__): Likewise. * lib/xvasprintf.h (__attribute__): Likewise. 2008-01-12 Bruno Haible * doc/gnulib.texi (Glibc Header File Substitutes): New chapter. * doc/glibc-headers/a.out.texi: New file. * doc/glibc-headers/aliases.texi: New file. * doc/glibc-headers/alloca.texi: New file. * doc/glibc-headers/ar.texi: New file. * doc/glibc-headers/argp.texi: New file. * doc/glibc-headers/argz.texi: New file. * doc/glibc-headers/byteswap.texi: New file. * doc/glibc-headers/crypt.texi: New file. * doc/glibc-headers/endian.texi: New file. * doc/glibc-headers/envz.texi: New file. * doc/glibc-headers/err.texi: New file. * doc/glibc-headers/error.texi: New file. * doc/glibc-headers/execinfo.texi: New file. * doc/glibc-headers/fpu_control.texi: New file. * doc/glibc-headers/fstab.texi: New file. * doc/glibc-headers/fts.texi: New file. * doc/glibc-headers/getopt.texi: New file. * doc/glibc-headers/ieee754.texi: New file. * doc/glibc-headers/ifaddrs.texi: New file. * doc/glibc-headers/libintl.texi: New file. * doc/glibc-headers/mcheck.texi: New file. * doc/glibc-headers/mntent.texi: New file. * doc/glibc-headers/obstack.texi: New file. * doc/glibc-headers/paths.texi: New file. * doc/glibc-headers/printf.texi: New file. * doc/glibc-headers/pty.texi: New file. * doc/glibc-headers/resolv.texi: New file. * doc/glibc-headers/shadow.texi: New file. * doc/glibc-headers/sysexits.texi: New file. * doc/glibc-headers/ttyent.texi: New file. 2008-01-12 Jim Meyering announce-gen: emit Gnulib's git-based version string. * build-aux/announce-gen: Remove option: --gnulib-snapshot-time-stamp=S. New option --gnulib-version=V, where V is expected to be the output of running git describe in the gnulib directory. (get_tool_versions): Request feedback on xdelta. I suspect it's not useful, and plan to stop publishing an xdelta file with each coreutils release. * build-aux/announce-gen: Also check for lzma-compressed files. 2008-01-11 Bruno Haible * tests/test-memmem.c (main): Increase maximum allowed time. * tests/test-strstr.c (main): Likewise. 2008-01-11 Bruno Haible * doc/functions/memmem.texi: Add more precisions about platforms. * doc/functions/strstr.texi: Likewise. 2008-01-10 Eric Blake * m4/strstr.m4: Delete cruft from copy-n-paste. Reported by Bruno Haible. 2008-01-10 Bruno Haible Make c-strstr rely on strstr. * lib/c-strstr.c: Don't include str-kmp.h. (c_strstr): Define in terms of strstr. * modules/c-strstr (Files): Remove lib/str-kmp.h. (Depends-on): Remove stdbool, malloca, strnlen. Add strstr. 2008-01-10 Bruno Haible * doc/gnulib.texi (String Functions in C Locale): New section. * doc/c-ctype.texi: New file. * doc/c-strcase.texi: New file. * doc/c-strcaseeq.texi: New file. * doc/c-strcasestr.texi: New file. * doc/c-strstr.texi: New file. * doc/c-strtod.texi: New file. * doc/c-strtold.texi: New file. 2008-01-10 Eric Blake * lib/relocatable.h: Fix a comment. 2008-01-10 Eric Blake Share two-way algorithm. * lib/str-two-way.h: New file, merged from... * lib/memmem.c: ...here... * lib/strstr.c: ...and here. * modules/memmem (Files): Use it. * modules/strstr (Files): Likewise. Avoid quadratic strstr implementations. * lib/strstr.c: New file. * m4/strstr.m4: Likewise. * modules/strstr: Likewise. * modules/strstr-tests: Likewise. * tests/test-strstr.c: Likewise. * lib/string.in.h (rpl_strstr): Declare. (memmem) [GNULIB_POSIXCHECK]: Document speed issue. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Support strstr. * modules/string (Makefile.am): Likewise. * MODULES.html.sh (string handling): Mention new module. * doc/functions/strstr.texi (strstr): Document the bug. 2008-01-10 Bruno Haible * lib/relocatable.h (relocate): State whether result is freshly allocated or not. * lib/relocatable.c (relocate): Return a freshly allocated string instead of a pointer to a privately held string. Reported by Sylvain Beucler . 2008-01-10 Colin Watson * lib/canonicalize-lgpl.c [!_LIBC]: Fix typo in #if directive: s/S_ISNLK/S_ISLNK/. 2008-01-09 Bruno Haible * doc/functions/memmem.texi: Use the same structure as snprintf.texi and other files. * m4/memmem.m4 (gl_FUNC_MEMMEM): Say "guessing no" instead of "no" if it's only a guess. * modules/memmem: Simplify by depending on memmem-simple. 2008-01-09 Bruno Haible Work around OpenBSD 4.0 tdelete() bug. * m4/tsearch.m4 (gl_FUNC_TSEARCH): Also check tdelete's return value. * lib/search.in.h: If REPLACE_TSEARCH is 1, define tsearch etc. as macros and don't redefine the enum values. * m4/search_h.m4 (gl_SEARCH_H_DEFAULTS): Initialize REPLACE_TSEARCH. * modules/search (Makefile.am): Also substitute REPLACE_TSEARCH. * doc/functions/tdelete.texi: Document the OpenBSD 4.0 bug. 2008-01-09 Bruno Haible * tests/test-wcwidth.c: Include and localcharset.h. (main): Don't perform the tests if setlocale did not install a UTF-8 locale. Needed on OpenBSD 4.0. * modules/wcwidth-tests (Depends-on): Add localcharset. 2008-01-09 Paul Eggert gl_FUNC_ALLOCA no longer defines HAVE_ALLOCA_H unconditionally. See . * NEWS: announce this. * m4/alloca.m4 (gl_FUNC_ALLOCA): Don't define HAVE_ALLOCA_H. 2008-01-09 Simon Josefsson and Eric Blake Add memmem-simple module. * m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): New macro. (gl_FUNC_MEMMEM): Separate performance from presence checks. * modules/memmem-simple: New file. * modules/memmem (Description): Tweak. * MODULES.html.sh (string handling): Mention new module. * doc/functions/memmem.texi (memmem): Distinguish which flaws are addressed by memmem-simple. * NEWS: Document the difference. 2008-01-09 Eric Blake Give gcc some memmem optimization hints. * lib/string.in.h (memmem, memrchr, strchrnul, strnlen, strpbrk) (strcasestr): Declare as pure. * modules/memmem (Maintainer): Claim my implementation. 2008-01-09 Ralf Wildenhues Support AIX 6.1 and higher. * build-aux/config.libpath: Likewise. * build-aux/config.rpath: Likewise. 2008-01-08 Jim Meyering Bruno Haible * lib/printf-parse.c (PRINTF_PARSE): Handle a size specifier "q" on MacOS X and a size specifier "I64" on mingw. Needed for PRIdMAX. Reported by Peter Fales in . 2008-01-08 Bruno Haible * modules/unictype/category-of (Depends-on): Add unictype/category-none. * modules/unictype/category-and-tests (Depends-on): Add unictype/category-{L,N,Lu,Nd}. * modules/unictype/category-and-not-tests (Depends-on): Likewise. * modules/unictype/category-or-tests (Depends-on): Add unictype/category-{L,N}. * modules/unictype/category-name-tests (Depends-on): Add unictype/category-{Z,Nl}. Reported by Simon Josefsson. 2008-01-08 Bruno Haible * lib/str-kmp.h (knuth_morris_pratt_unibyte): Document the calling convention better. * lib/mbsstr.c (knuth_morris_pratt_multibyte): Likewise. * lib/mbscasestr.c (knuth_morris_pratt_multibyte): Likewise. Reported by Peter Miller . 2008-01-08 Eric Blake Rewrite memmem to guarantee linear complexity without malloc. * lib/memmem.c (memmem): Use Two-Way rather than Knuth-Morris-Pratt, to allow O(1) space usage. (critical_factorization, two_way_short_needle) (two_way_long_needle): New functions. (knuth_morris_pratt): Delete. * modules/memmem (Depends-on): No longer need malloca or stdbool. Add stdint. * tests/test-memmem.c (main): Add tests for periodic needle and sublinear performance. * doc/functions/memmem.texi (memmem): Document other deficiencies in cygwin and older glibc. 2008-01-08 Bruno Haible * modules/memmem-tests (Makefile.am): Remove TESTS_ENVIRONMENT augmentation. 2008-01-08 Mike Frysinger Add a configure time option: --disable-acl. * m4/acl.m4 (gl_FUNC_ACL): Wrap all ACL logic in a call to AC_ARG_ENABLE(acl). 2008-01-06 Simon Josefsson * tests/test-localename.c: Don't include obsolete "setenv.h". * modules/localename-tests (Depends-on): Need unsetenv. 2008-01-08 Ralf Wildenhues * DEPENDENCIES: Require Texinfo version 4.6 or newer. 2008-01-06 Colin Watson * users.txt: Add man-db. 2008-01-07 Bruno Haible * doc/gnulib-intro.texi (Library vs Reusable Code): Restore the previous section name. 2008-01-07 Bruno Haible * lib/progname.c (set_program_name): Don't strip off a leading "lt-" prefix outside a .libs directory. Suggested by Paul Eggert. 2008-01-01 Sylvain Beucler Bruno Haible Improve memory cleanup in 'relocatable' module. * lib/relocatable.h (compute_curr_prefix): Change return type to 'char *'. * lib/relocatable.c (compute_curr_prefix): Change return type to 'char *'. Free curr_installdir after use. (relocate): Free curr_prefix_better after use. * lib/progreloc.c (prepare_relocate): Free curr_prefix after use. 2008-01-01 Bruno Haible * tests/test-wcwidth.c (main): Relax test of U+2060. Avoids a test failure on older glibc systems. Reported by Peter Fales . 2008-01-05 Eric Blake Avoid quadratic system memmem. * m4/memmem.m4 (gl_FUNC_MEMMEM): Check for quadratic memmem. Reported by Ralf Wildenhues. Fix memmem test for mingw. * modules/memmem-tests (configure.ac): Check for alarm. * tests/test-memmem.c (main): Avoid alarm on platforms that lack it. * doc/functions/memmem.texi: New file. * doc/gnulib.texi (Function Substitutes): Add memmem. Reported by Bruno Haible. 2008-01-04 Bruno Haible * m4/strcase.m4 (gl_FUNC_STRCASECMP, gl_FUNC_STRNCASECMP): Require gl_HEADER_STRINGS_H_DEFAULTS, not gl_HEADER_STRING_H_DEFAULTS. 2008-01-04 Eric Blake Shorten duration of memmem test. * tests/test-memmem.c (main): Use alarm to declare failure if test is taking too long. Reported by Ralf Wildenhues. 2007-12-21 Simon Josefsson * modules/relocatable-prog-wrapper (Depends-on): Add intprops and string, needed by strerror. 2008-01-03 Colin Watson Bruno Haible * doc/gnulib-tool.texi (Localization): New section. 2008-01-02 Bruno Haible * lib/memmem.c (knuth_morris_pratt, memmem): Change all 'char *' variables to 'unsigned char *' type. Reported by Paul Eggert. 2008-01-02 Jim Meyering * lib/version-etc.c (COPYRIGHT_YEAR): Increase for new year. 2007-12-31 Jim Meyering Avoid use of private FTS type name. * lib/fts.c (fts_sort): Use FTSENT rather than "struct _ftsent". 2007-12-30 Karl Berry * doc/gnulib.texi (Library vs. Reusable Code): remove period, to work around defect in Texinfo and/or the standalone Info browser. 2007-12-30 Bruno Haible Unify 5 copies of the KMP code. * lib/str-kmp.h: New file. * lib/c-strcasestr.c: Include str-kmp.h. (knuth_morris_pratt): Remove function. (c_strcasestr): Update. * lib/c-strstr.c: Include str-kmp.h. (knuth_morris_pratt): Remove function. (c_strcasestr): Update. * lib/mbscasestr.c: Include str-kmp.h. (knuth_morris_pratt_unibyte): Remove function. * lib/mbsstr.c: Include str-kmp.h. (knuth_morris_pratt_unibyte): Remove function. * lib/strcasestr.c: Include str-kmp.h. (knuth_morris_pratt): Remove function. (strcasestr): Update. * modules/c-strcasestr (Files): Add lib/str-kmp.h. * modules/c-strstr (Files): Likewise. * modules/mbscasestr (Files): Likewise. * modules/mbsstr (Files): Likewise. * modules/strcasestr (Files): Likewise. Suggested by Paul Eggert. 2007-12-30 Bruno Haible * lib/xmalloca.c (xmmalloca): Don't define if HAVE_ALLOCA is not defined. 2007-12-30 Bruno Haible * lib/xmalloca.h: Include xalloc.h. (xnmalloca): New macro. 2007-12-30 Bruno Haible * lib/malloca.h (nmalloca): New macro. * lib/c-strcasestr.c (knuth_morris_pratt): Use it. * lib/c-strstr.c (knuth_morris_pratt): Likewise. * lib/mbscasestr.c (knuth_morris_pratt_unibyte, knuth_morris_pratt_multibyte): Likewise. * lib/mbsstr.c (knuth_morris_pratt_unibyte, knuth_morris_pratt_multibyte): Likewise. * lib/memmem.c (knuth_morris_pratt): Likewise. * lib/strcasestr.c (knuth_morris_pratt): Likewise. 2007-12-25 Bruno Haible Fixup after 2007-10-17 commit. Ensure that 'glob' stays under LGPLv2+. * lib/glob.c: Don't include openat.h. (link_exists2_p): Add back the code that deals with the !GLOB_ALTDIRFUNC case. (link_exists_p) [!_LIBC && !HAVE_FSTATAT]: Just call link_exists2_p and let it do the filename concatenation. * m4/glob.m4 (gl_PREREQ_GLOB): Add check for fstatat. * modules/glob (Depends-on): Remove openat. 2007-12-31 Bruno Haible * modules/dirfd (License): Change to LGPLv2+. Approved by Jim Meyering. 2007-12-29 Paul Eggert * lib/memmem.c (knuth_morris_pratt): Check for size_t overflow when multiplying M by sizeof (size_t). 2007-12-10 Martin Lambers Override getpagesize on mingw. * lib/getpagesize.c: New file. * m4/getpagesize.m4 (gl_FUNC_GETPAGESIZE): Enable replacement on mingw. * modules/getpagesize (Files): Add lib/getpagesize.c. * lib/unistd.in.h (getpagesize): Declare if we are using a replacement. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_GETPAGESIZE. * modules/unistd (Makefile.am): Substitute REPLACE_GETPAGESIZE. 2007-12-25 Bruno Haible * modules/localcharset (Notice): New field. (configure.ac): Define LOCALCHARSET_TESTS_ENVIRONMENT. Suggested by Ben Pfaff . 2007-12-25 Paul Eggert Bruno Haible Avoid using the syntax symbol() in formatted documentation. * MODULES.html.sh (func_module): When replacing symbol() with a hyperlink, remove the parentheses. Show an error if some remain. Recognize and render the '...' syntax. * doc/alloca-opt.texi: Remove parentheses from symbol reference. Rework. Add paragraph about GCC's inlining. * doc/alloca.texi: Likewise. * doc/error.texi: Remove parentheses from symbol reference. * doc/gnulib-intro.texi: Likewise. * doc/gnulib.texi (alloca, alloca-opt): New nodes. * modules/fnmatch (Description): Reword to say "the ... function". * modules/full-read (Description): Likewise. * modules/full-write (Description): Likewise. * modules/safe-read (Description): Likewise. * modules/safe-write (Description): Likewise. * modules/strchrnul (Description): Likewise. * modules/trim (Description): Likewise. * modules/error (Description): Remove parentheses from symbol references. * modules/verror (Description): Likewise. Reported by Karl Berry. 2007-12-25 Bruno Haible Fixup after 2007-10-16 commit. * lib/glob.c (glob_in_dir): Don't use ISO C99 syntax. 2007-12-24 Bruno Haible Make --enable-relocatable work with DESTDIR. * build-aux/install-reloc: Accept another argument 'destdir'. Use it to compute installdir from destprog. * m4/relocatable.m4 (gl_RELOCATABLE_BODY): In INSTALL_PROGRAM_ENV, also set the RELOC_DESTDIR variable. Reported by Левашев Иван . 2007-12-24 Bruno Haible Fix link error due to xalloc_die(). * lib/progreloc.c: When NO_XMALLOC is defined, use areadlink instead of xreadlink. * lib/relocwrapper.c: Update comments. * build-aux/install-reloc: Remove xreadlink.c from file list. * modules/relocatable-prog-wrapper (Files): Remove xreadlink.h and xreadlink.c. Reported by Левашев Иван . 2007-12-24 Bruno Haible Split setenv module into setenv and unsetenv. Get rid of setenv.h. * lib/setenv.h: Remove file. * lib/stdlib.in.h (setenv, unsetenv): New declarations, moved here from lib/setenv.h. * modules/setenv (Files): Remove lib/setenv.h, lib/unsetenv.c. (Depends-on): Add stdlib. (configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR. Don't invoke gl_FUNC_UNSETENV. (Include): Replace setenv.h with . * modules/unsetenv: New file. * lib/setenv.c: Include first, after alloca.h. * lib/unsetenv.c: Include first. * m4/setenv.m4 (gl_FUNC_SETENV, gl_FUNC_SETENV_SEPARATE): Require gl_STDLIB_H_DEFAULTS. Conditionally set HAVE_SETENV to 0. (gl_FUNC_UNSETENV): Require gl_STDLIB_H_DEFAULTS. Conditionally set HAVE_UNSETENV to 0. Set VOID_UNSETENV as an AC_SUBSTed variable. * modules/stdlib (Makefile.am): Substitute also GNULIB_SETENV, HAVE_SETENV, GNULIB_UNSETENV, HAVE_UNSETENV, VOID_UNSETENV. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_SETENV, HAVE_SETENV, GNULIB_UNSETENV, HAVE_UNSETENV, VOID_UNSETENV. * doc/functions/unsetenv.texi: Update. * modules/xsetenv (Depends-on): Add unsetenv. * modules/getdate (Depends-on): Likewise. * lib/xsetenv.h: Include instead of setenv.h. * lib/xsetenv.c: Don't include setenv.h. * lib/getdate.y: Likewise. * lib/relocwrapper.c: Likewise. * modules/relocatable-prog-wrapper (Files): Remove lib/setenv.h. (Depends-on): Add stdlib. * NEWS: Mention the changes. Reported by Левашев Иван . 2007-12-23 Bruno Haible * lib/memmem.c (memmem): Use lowercase variable names. Tab indentation. 2007-12-23 Bruno Haible * lib/c-strcasestr.c: Add more comments. * lib/c-strstr.c: Likewise. * lib/mbscasestr.c: Likewise. * lib/mbsstr.c: Likewise. * lib/strcasestr.c: Likewise. * lib/memmem.c: Likewise. 2007-12-23 Bruno Haible * tests/test-memmem.c: Include first. 2007-12-22 Bruno Haible * gnulib-tool (func_create_testdir): Change $auxdir while generating the contents of $testsbase. Reported by Ralf Wildenhues. 2007-12-22 Bruno Haible * gnulib-tool (func_emit_tests_Makefile_am): Replace local_ldadd with two variables local_ldadd_before, local_ldadd_last. 2007-12-20 Eric Blake Work around circular library issue when cross-compiling. * lib/progname.c (set_program_name): Use strncmp, not memcmp, so that progname.o does not need to pull in rpl_memcmp. 2007-12-19 Eric Blake Fix memmem to avoid O(n^2) worst-case complexity. * lib/memmem.c (knuth_morris_pratt): New function. (memmem): Use it if first few naive iterations fail. * m4/memmem.m4 (gl_FUNC_MEMMEM): Detect cygwin bug. * modules/memcmp (License): Set to LGPLv2+, not LGPL. * modules/memchr (License): Likewise. * modules/memmem (Depends-on): Add memcmp, memchr, stdbool, and malloca. * tests/test-memmem.c: Rewrite, borrowing ideas from test-mbsstr1.c; the old version wouldn't even compile! * modules/memmem-tests: New file. * lib/string.in.h (rpl_memmem): Add declaration. * modules/string (Makefile.am): Substitute REPLACE_MEMMEM. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Default for REPLACE_MEMMEM. 2007-12-18 Paul Eggert Fix problem with _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H on VMS. * lib/stdint.in.h (_GL_JUST_INCLUDE_SYSTEM_INTTYPES_H): Define before any system include files, and undef after them all. This should fix a problem on VMS reported by John E. Malmberg in . 2007-12-17 Eric Blake Revert addition of verify, for BSD/OS. * lib/fseeko.c [!HAVE_FSEEKO]: Allow off_t > long, even though it can't handle large files, for the sake of obsolete platforms. * modules/fseeko (Depends-on): Remove verify. * doc/functions/fseeko.texi (fseeko): Document BSD/OS limitation. * doc/functions/ftello.texi (ftello): Likewise. * doc/functions/fgetpos.texi (fgetpos): Likewise. Reported by Larry Jones. 2007-12-17 Petr Salinger getcwd.c: Use a more readable witness: HAVE_OPENAT_SUPPORT * lib/getcwd.c: Define and use HAVE_OPENAT_SUPPORT, in place of AT_FDCWD. 2007-12-17 Jim Meyering Port to GNU/kFreeBSD - FreeBSD kernel + GNU libc, which has no openat syscall, yet does define AT_FDCWD. * lib/getcwd.c: Undef AT_FDCWD if there is no openat function. * modules/getcwd (Depends-on): Add openat. Reported by Petr Salinger. 2007-12-17 Bruno Haible * m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Use GL_NOCRASH to avoid a segmentation fault of the configure test on x86_64 systems. 2007-12-15 Jim Meyering * build-aux/gnupload (GPG): Don't hard-code absolute name of gpg binary. 2007-12-13 Eric Blake Another fseek test. * tests/test-fseek.c (main): Also test ungetc handling. * tests/test-fseeko.c (main): Likewise. * modules/fseeko (Depends-on): Add verify. * lib/fseeko.c [!HAVE_FSEEKO]: Verify that off_t is not too large. Reported by Larry Jones. Fix fseeko on mingw. * lib/fseeko.c (rpl_fseeko) [_IOERR]: Reset EOF flag on successful seek. Beef up fseek tests. * tests/test-fseek.c (main): Also test eof handling. * tests/test-fseeko.c (main): Likewise. Reported by Larry Jones. 2007-12-13 Larry Jones (tiny change) Fix fseeko on BSD-based platforms. * lib/fseeko.c (rpl_fseeko) [__sferror]: Reset EOF flag on successful seek. 2007-12-12 Eric Blake Allow circular dependency of separate libtests.a * gnulib-tool (func_emit_tests_Makefile_am): Add AM_LIBTOOLFLAGS when use_libtests. 2007-12-11 Eric Blake Fix bug with -0.0L in previous patch. * lib/isnan.c (rpl_isnanl): Make robust to -0.0L and pad bits. * tests/test-isnan.c (main): Also test on zeroes. * tests/test-isnanf.c (main): Likewise. * tests/test-isnanl.h (main): Likewise. Detect pseudo-denormals on x86 even when cross-compiling. * lib/isnan.c (rpl_isnanl) [!KNOWN_EXPBIT0_LOCATION && USE_LONG_DOUBLE && x86]: Add one more check to filter out invalid bit patterns that happen to satisfy ==. Avoid link failures with separate libtests.a. * gnulib-tool (func_emit_tests_Makefile_am): Also list local_ldadd last, to satisfy circular dependencies. 2007-12-11 Eric Blake and Bruno Haible Fix OpenBSD 4.0 handling of long double. * m4/float_h.m4 (gl_FLOAT_H): Also claim OpenBSD is broken. * lib/float.in.h [__OpenBSD__]: Add fixes for OpenBSD. * doc/headers/float.texi (float.h): Document OpenBSD bug. 2007-12-11 Jim Meyering * users.txt: Add libvirt. Support versions of autoconf prior to 2.59c. * gnulib-tool (func_emit_initmacro_done): Define m4_foreach_w if it is not already defined. 2007-12-09 Bruno Haible Let 'gnulib-tool --import' collect sources needed for the tests in tests/ rather than in lib/. * gnulib-tool (func_emit_tests_Makefile_am): Accept use_libtests argument. If true, add rules to generate libtests.a, and put libtests.a into $(LDADD). Consider source files in subdirectories and set uses_subdirs. (func_emit_initmacro_start, func_emit_initmacro_end, func_emit_initmacro_done): Pass all arguments explicitly. (func_import): Determine two module lists main_modules, testsrelated_modules. Determine use_libtests. Determine two variables sed_transform_main_lib_file, sed_transform_testsrelated_lib_file instead of just sed_transform_lib_file. Determine two variables main_files and testsrelated_files. Compute 'files' as the union of both. Adjust sed_rewrite_old_files, sed_rewrite_new_files, func_add_or_update. In the generated gnulib-comp.m4, collect the object files for tests/ in different variables than those for lib/. Substitute LIBTESTS_LIBDEPS. (func_create_testdir): Combine the uses_subdirs results from func_emit_lib_Makefile_am and from func_emit_tests_Makefile_am. 2007-12-09 Bruno Haible * gnulib-tool (func_emit_tests_Makefile_am): Expand references to the build-aux directory. 2007-12-09 Bruno Haible * gnulib-tool (func_emit_tests_Makefile_am): Remove redundant code introduced on 2006-09-09. 2007-12-07 Jim Meyering Let these macros work also with autoconf-2.59. * m4/getline.m4 (gl_FUNC_GETLINE): Require only autoconf-2.59. 2.60 is not needed, since gnulib now permits use of AC_CHECK_DECLS_ONCE. * m4/getdelim.m4 (gl_FUNC_GETDELIM): Likewise. 2007-12-06 Jim Meyering Avoid a configure-time syntax error in gl_FUNC_ACL. * m4/acl.m4 (gl_FUNC_ACL): Be careful to check for the acl_trivial function in each branch, before testing the cache variable. 2007-12-04 Eric Blake Make scripts executable. * build-aux/config.guess: Add execute permissions. * build-aux/config.sub: Likewise. * build-aux/gendocs.sh: Likewise. Fix frexp on mingw. * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Detect mingw bug when cross-compiling. * doc/functions/frexp.texi (frexp): Document the bug. Make cygwin fseeko check more reliable. * m4/stdio_h.m4 (gl_STDIN_LARGE_OFFSET) [__CYGWIN__]: Use cygwin version numbers, rather than unrelated feature check. * doc/functions/fseeko.texi (fseeko): Tweak failure report. * doc/functions/ftello.texi (ftello): Likewise. Reported by Bruno Haible. * m4/strerror.m4: Bump version number. 2007-12-03 Bruno Haible * doc/functions/mprotect.texi: Mention the mingw problem. 2007-12-03 Eric Blake * m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): Ensure REPLACE_STRERROR is initialized before this macro. 2007-12-03 Paul Eggert Add support for Solaris 10 ACLs. Also, ACLs are Gnulib, not Autoconf. * modules/acl (configure.ac): Rename AC_FUNC_ACL to gl_FUNC_ACL. * m4/acl.m4 (gl_FUNC_ACL): Renamed from AC_FUNC_ACL. On Solaris, put -lsec in even for programs other than 'ls'. This fixes a problem for gettext reported by Bruno Haible in . * lib/acl.c (copy_acl, qset_acl) [USE_ACL && defined ACL_NO_TRIVIAL]: Add support for Solaris 10. This isn't efficient, but should get the job done for now. 2007-12-03 James Youngman * doc/regexprops-generic.texi: change "an close-group" to "a close-group" and "illegal" to "not allowed". 2007-11-23 Ralf Wildenhues * lib/unictype/pr_byname.c: Include unictype/pr_byname.h instead of pr_byname.h. Needed for the rare case when the maintainer has done "make maintainer-clean" in the source directory and then attempts a build outside the source directory. * lib/unictype/scripts.c: Include unictype/scripts_byname.h instead of scripts_byname.h. 2007-12-02 Martin Lambers Bruno Haible * lib/getpagesize.h: Remove file. * lib/unistd.in.h: Include declaration of getpagesize here. * m4/getpagesize.m4 (gl_FUNC_GETPAGESIZE): Renamed from gl_GETPAGESIZE. Invoke gl_UNISTD_H_DEFAULTS. Set HAVE_GETPAGESIZE, HAVE_OS_H, HAVE_SYS_PARAM_H. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GETPAGESIZE, HAVE_GETPAGESIZE, HAVE_OS_H, HAVE_SYS_PARAM_H. * modules/getpagesize (Files): Remove lib/getpagesize.h. (Depends-on): Add unistd. (configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR. (Include): Use instead of getpagesize.h. * modules/unistd (Makefile.am): Substitute also GNULIB_GETPAGESIZE, HAVE_GETPAGESIZE, HAVE_OS_H, HAVE_SYS_PARAM_H. * m4/pagealign_alloc.m4 (gl_PREREQ_PAGEALIGN_ALLOC): Remove gl_GETPAGESIZE invocation, already handled by module dependency. * lib/pagealign_alloc.c: Don't include getpagesize.h. 2007-12-02 Bruno Haible * modules/strings-tests: New file. * tests/test-strings.c: New file. Move declarations of str{,n}casecmp from to . * lib/strings.in.h: New file. * lib/string.in.h (strcasecmp, strncasecmp): Remove declarations. * m4/strings_h.m4: New file. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Remove initialization of HAVE_STRCASECMP, HAVE_DECL_STRNCASECMP. * modules/strings: New file. * modules/string (Makefile.am): Update. * modules/strcase (Include): Mention , not . Reported by Karl Berry. 2007-12-01 Eric Blake * m4/stdio_h.m4 (gl_STDIN_LARGE_OFFSET) [__CYGWIN__]: Rewrite to accommodate fix in cygwin 1.5.25. 2007-12-01 Jim Meyering Fix a bug that inhibited much of the utf8-optimization in regcomp.c. * lib/regcomp.c (optimize_utf8): Fix a typo, s/idx/ctx_type/, that would inhibit utf8-optimization of a regexp containing line- or buffer-anchors, e.g., `^', `$'. 2007-11-30 Bruno Haible * lib/lock.h (gl_recursive_lock_init) [PTHREAD && PTHREAD_RECURSIVE_MUTEX_INITIALIZER]: Call glthread_recursive_lock_init. * lib/lock.c (glthread_recursive_lock_init) [PTHREAD_RECURSIVE_MUTEX_INITIALIZER]: New function. Reported by Yoann Vandoorselaere . 2007-11-28 Paul Eggert New function qset_acl, like set_acl but with syscall semantics. * lib/acl.h (qset_acl): New decl. * lib/acl.c (qset_acl): New function. (set_acl): Use new function. Use more-consistent diagnostics. 2007-11-28 Jim Meyering * modules/physmem (License): Change from GPL to LGPLv2+. 2007-11-26 Bruno Haible * lib/vasnprintf.c (decode_long_double): Don't abort if the 'long double' type has excess precision. Reported by Jim Meyering in . 2007-11-25 Ralf Wildenhues * doc/fdl.texi, doc/gpl-3.0.texi, doc/lgpl-3.0.texi: Sync from . * modules/agpl-3.0, doc/agpl-3.0.texi: New module, with license text from same location. * doc/maintain.texi, doc/standards.texi: Sync from . 2007-11-22 Ondřej Vašík and Jim Meyering Adjust getdate' grammar to accept a slightly more regular language. E.g., accept "YYYYMMDD +N days" as well as "YYYYMMDD N days". Before, the former was rejected. * lib/getdate.y (digits_to_date_time): New function, factored out of ... (number): ...here. Just call digits_to_date_time. (hybrid): New non-terminal to handle an sequence consistently. 2007-11-18 Jim Meyering Pull my changes from coreutils: bootstrap: fix typo to enable use of $gnulib_tool_option_extras. * build-aux/bootstrap (gnulib_tool_options): Add a space before the use of $gnulib_tool_option_extras, so that it's separated from the preceding argument. Fix bootstrap failure to handle files like lib/uniwidth/cjk.h. * build-aux/bootstrap (cp_mark_as_generated): Create any required parent destination directories before copying a file into place. 2007-11-18 Sergey Poznyakoff bootstrap: work also with 4-argument variant of AC_INIT * build-aux/bootstrap (gnulib_extra_files): Adjust sed command. 2007-11-16 Paul Eggert Port test-getaddrinfo to Solaris. Problem reported by Bruno Haible in . * tests/test-getaddrinfo.c (simple): Add a comment asking for an explanation of setting 'hints'. Don't reject an implementation merely because it returns EAI_SERVICE. (EAI_SERVICE): Define to 0 if not defined. 2007-11-15 Paul Eggert The license of gnu-make and posix-shell is now "GPLed build tool". * modules/gnu-make (License): Likewise. * modules/posix-shell (License): Likewise. New module posix-shell, for determining a POSIX shell or perhaps something that is close enough to a POSIX shell. * m4/posix-shell.m4: New file. * modules/posix-shell: New file. * MODULES.html.sh: Mention new module. New module gnu-make, for determining whether we're using GNU Make. * m4/gnu-make.m4: New file. * modules/gnu-make: New file. * MODULES.html.sh: Mention new module. 2007-11-14 Jim Meyering Define a sometimes-link-required function using ARGMATCH_DIE_DECL. * tests/test-argmatch.c (ARGMATCH_DIE_DECL): When defined, use this macro to create a function _definition_. Remove useless "#undef ARGMATCH_DIE". 2007-11-14 Bruno Haible * lib/config.charset: Update for OpenBSD 4.1. Reported and helped by Ben Pfaff . 2007-11-12 Paul Eggert Document 64-bit #if problems in stdint.texi. * doc/headers/stdint.texi (stdint.h): Mention problems with 64-bit-#if, and how to work around them. Don't insist on 'long long int' support in the preprocessor. It breaks too many things. For example, PRIdMAX still uses a 'long long int' format with the latest Sun compiler, even though HAVE_LONG_LONG_INT isn't defined due to that compiler's preprocessor problem. This causes the latest coreutils to dump core on Solaris 10 sparc with the Sun C compiler. Instead, fix the 2007-10-16 problem in a different way, by evaluating the troublesome expressions at configure-time, not at #if-time. * m4/longlong.m4 (_AC_TYPE_LONG_LONG_SNIPPET): Don't test the preprocessor. * m4/inttypes.m4 (gl_INTTYPES_H): Move the #if checks into compile-time C checks, done at 'configure'-time. (gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION): New macro. * modules/inttypes (Makefile): Substitute the new symbols that gl_INTTYPES_H now generates. * lib/inttypes.in.h: Don't use constants wider than 'long' in #if. 2007-11-12 Bruno Haible Tests for Unicode character classification functions. * modules/unictype/bidicategory-byname-tests: New file. * modules/unictype/bidicategory-name-tests: New file. * modules/unictype/bidicategory-of-tests: New file. * modules/unictype/bidicategory-test-tests: New file. * modules/unictype/block-list-tests: New file. * modules/unictype/block-of-tests: New file. * modules/unictype/block-test-tests: New file. * modules/unictype/category-C-tests: New file. * modules/unictype/category-Cc-tests: New file. * modules/unictype/category-Cf-tests: New file. * modules/unictype/category-Cn-tests: New file. * modules/unictype/category-Co-tests: New file. * modules/unictype/category-Cs-tests: New file. * modules/unictype/category-L-tests: New file. * modules/unictype/category-Ll-tests: New file. * modules/unictype/category-Lm-tests: New file. * modules/unictype/category-Lo-tests: New file. * modules/unictype/category-Lt-tests: New file. * modules/unictype/category-Lu-tests: New file. * modules/unictype/category-M-tests: New file. * modules/unictype/category-Mc-tests: New file. * modules/unictype/category-Me-tests: New file. * modules/unictype/category-Mn-tests: New file. * modules/unictype/category-N-tests: New file. * modules/unictype/category-Nd-tests: New file. * modules/unictype/category-Nl-tests: New file. * modules/unictype/category-No-tests: New file. * modules/unictype/category-P-tests: New file. * modules/unictype/category-Pc-tests: New file. * modules/unictype/category-Pd-tests: New file. * modules/unictype/category-Pe-tests: New file. * modules/unictype/category-Pf-tests: New file. * modules/unictype/category-Pi-tests: New file. * modules/unictype/category-Po-tests: New file. * modules/unictype/category-Ps-tests: New file. * modules/unictype/category-S-tests: New file. * modules/unictype/category-Sc-tests: New file. * modules/unictype/category-Sk-tests: New file. * modules/unictype/category-Sm-tests: New file. * modules/unictype/category-So-tests: New file. * modules/unictype/category-Z-tests: New file. * modules/unictype/category-Zl-tests: New file. * modules/unictype/category-Zp-tests: New file. * modules/unictype/category-Zs-tests: New file. * modules/unictype/category-and-not-tests: New file. * modules/unictype/category-and-tests: New file. * modules/unictype/category-byname-tests: New file. * modules/unictype/category-name-tests: New file. * modules/unictype/category-none-tests: New file. * modules/unictype/category-of-tests: New file. * modules/unictype/category-or-tests: New file. * modules/unictype/category-test-withtable-tests: New file. * modules/unictype/combining-class-tests: New file. * modules/unictype/ctype-alnum-tests: New file. * modules/unictype/ctype-alpha-tests: New file. * modules/unictype/ctype-blank-tests: New file. * modules/unictype/ctype-cntrl-tests: New file. * modules/unictype/ctype-digit-tests: New file. * modules/unictype/ctype-graph-tests: New file. * modules/unictype/ctype-lower-tests: New file. * modules/unictype/ctype-print-tests: New file. * modules/unictype/ctype-punct-tests: New file. * modules/unictype/ctype-space-tests: New file. * modules/unictype/ctype-upper-tests: New file. * modules/unictype/ctype-xdigit-tests: New file. * modules/unictype/decimal-digit-tests: New file. * modules/unictype/digit-tests: New file. * modules/unictype/mirror-tests: New file. * modules/unictype/numeric-tests: New file. * modules/unictype/property-alphabetic-tests: New file. * modules/unictype/property-ascii-hex-digit-tests: New file. * modules/unictype/property-bidi-arabic-digit-tests: New file. * modules/unictype/property-bidi-arabic-right-to-left-tests: New file. * modules/unictype/property-bidi-block-separator-tests: New file. * modules/unictype/property-bidi-boundary-neutral-tests: New file. * modules/unictype/property-bidi-common-separator-tests: New file. * modules/unictype/property-bidi-control-tests: New file. * modules/unictype/property-bidi-embedding-or-override-tests: New file. * modules/unictype/property-bidi-eur-num-separator-tests: New file. * modules/unictype/property-bidi-eur-num-terminator-tests: New file. * modules/unictype/property-bidi-european-digit-tests: New file. * modules/unictype/property-bidi-hebrew-right-to-left-tests: New file. * modules/unictype/property-bidi-left-to-right-tests: New file. * modules/unictype/property-bidi-non-spacing-mark-tests: New file. * modules/unictype/property-bidi-other-neutral-tests: New file. * modules/unictype/property-bidi-pdf-tests: New file. * modules/unictype/property-bidi-segment-separator-tests: New file. * modules/unictype/property-bidi-whitespace-tests: New file. * modules/unictype/property-byname-tests: New file. * modules/unictype/property-combining-tests: New file. * modules/unictype/property-composite-tests: New file. * modules/unictype/property-currency-symbol-tests: New file. * modules/unictype/property-dash-tests: New file. * modules/unictype/property-decimal-digit-tests: New file. * modules/unictype/property-default-ignorable-code-point-tests: New file. * modules/unictype/property-deprecated-tests: New file. * modules/unictype/property-diacritic-tests: New file. * modules/unictype/property-extender-tests: New file. * modules/unictype/property-format-control-tests: New file. * modules/unictype/property-grapheme-base-tests: New file. * modules/unictype/property-grapheme-extend-tests: New file. * modules/unictype/property-grapheme-link-tests: New file. * modules/unictype/property-hex-digit-tests: New file. * modules/unictype/property-hyphen-tests: New file. * modules/unictype/property-id-continue-tests: New file. * modules/unictype/property-id-start-tests: New file. * modules/unictype/property-ideographic-tests: New file. * modules/unictype/property-ids-binary-operator-tests: New file. * modules/unictype/property-ids-trinary-operator-tests: New file. * modules/unictype/property-ignorable-control-tests: New file. * modules/unictype/property-iso-control-tests: New file. * modules/unictype/property-join-control-tests: New file. * modules/unictype/property-left-of-pair-tests: New file. * modules/unictype/property-line-separator-tests: New file. * modules/unictype/property-logical-order-exception-tests: New file. * modules/unictype/property-lowercase-tests: New file. * modules/unictype/property-math-tests: New file. * modules/unictype/property-non-break-tests: New file. * modules/unictype/property-not-a-character-tests: New file. * modules/unictype/property-numeric-tests: New file. * modules/unictype/property-other-alphabetic-tests: New file. * modules/unictype/property-other-default-ignorable-code-point-tests: New file. * modules/unictype/property-other-grapheme-extend-tests: New file. * modules/unictype/property-other-id-continue-tests: New file. * modules/unictype/property-other-id-start-tests: New file. * modules/unictype/property-other-lowercase-tests: New file. * modules/unictype/property-other-math-tests: New file. * modules/unictype/property-other-uppercase-tests: New file. * modules/unictype/property-paired-punctuation-tests: New file. * modules/unictype/property-paragraph-separator-tests: New file. * modules/unictype/property-pattern-syntax-tests: New file. * modules/unictype/property-pattern-white-space-tests: New file. * modules/unictype/property-private-use-tests: New file. * modules/unictype/property-punctuation-tests: New file. * modules/unictype/property-quotation-mark-tests: New file. * modules/unictype/property-radical-tests: New file. * modules/unictype/property-sentence-terminal-tests: New file. * modules/unictype/property-soft-dotted-tests: New file. * modules/unictype/property-space-tests: New file. * modules/unictype/property-terminal-punctuation-tests: New file. * modules/unictype/property-test-tests: New file. * modules/unictype/property-titlecase-tests: New file. * modules/unictype/property-unassigned-code-value-tests: New file. * modules/unictype/property-unified-ideograph-tests: New file. * modules/unictype/property-uppercase-tests: New file. * modules/unictype/property-variation-selector-tests: New file. * modules/unictype/property-white-space-tests: New file. * modules/unictype/property-xid-continue-tests: New file. * modules/unictype/property-xid-start-tests: New file. * modules/unictype/property-zero-width-tests: New file. * modules/unictype/scripts-tests: New file. * modules/unictype/syntax-c-ident-tests: New file. * modules/unictype/syntax-c-whitespace-tests: New file. * modules/unictype/syntax-java-ident-tests: New file. * modules/unictype/syntax-java-whitespace-tests: New file. * tests/unictype/test-bidi_byname.c: New file. * tests/unictype/test-bidi_name.c: New file. * tests/unictype/test-bidi_of.c: New file. * tests/unictype/test-bidi_test.c: New file. * tests/unictype/test-block_list.c: New file. * tests/unictype/test-block_of.c: New file. * tests/unictype/test-block_test.c: New file. * tests/unictype/test-categ_and.c: New file. * tests/unictype/test-categ_and_not.c: New file. * tests/unictype/test-categ_byname.c: New file. * tests/unictype/test-categ_name.c: New file. * tests/unictype/test-categ_none.c: New file. * tests/unictype/test-categ_of.c: New file. * tests/unictype/test-categ_or.c: New file. * tests/unictype/test-categ_test_withtable.c: New file. * tests/unictype/test-combining.c: New file. * tests/unictype/test-decdigit.c: New file. * tests/unictype/test-digit.c: New file. * tests/unictype/test-mirror.c: New file. * tests/unictype/test-numeric.c: New file. * tests/unictype/test-pr_byname.c: New file. * tests/unictype/test-pr_test.c: New file. * tests/unictype/test-predicate-part1.h: New file. * tests/unictype/test-predicate-part2.h: New file. * tests/unictype/test-scripts.c: New file. * tests/unictype/test-sy_c_ident.c: New file. * tests/unictype/test-sy_java_ident.c: New file. * tests/unictype/test-categ_C.c: New file, generated by gen-ctype.c for Unicode 5.0.0. * tests/unictype/test-categ_Cc.c: Likewise. * tests/unictype/test-categ_Cf.c: Likewise. * tests/unictype/test-categ_Cn.c: Likewise. * tests/unictype/test-categ_Co.c: Likewise. * tests/unictype/test-categ_Cs.c: Likewise. * tests/unictype/test-categ_L.c: Likewise. * tests/unictype/test-categ_Ll.c: Likewise. * tests/unictype/test-categ_Lm.c: Likewise. * tests/unictype/test-categ_Lo.c: Likewise. * tests/unictype/test-categ_Lt.c: Likewise. * tests/unictype/test-categ_Lu.c: Likewise. * tests/unictype/test-categ_M.c: Likewise. * tests/unictype/test-categ_Mc.c: Likewise. * tests/unictype/test-categ_Me.c: Likewise. * tests/unictype/test-categ_Mn.c: Likewise. * tests/unictype/test-categ_N.c: Likewise. * tests/unictype/test-categ_Nd.c: Likewise. * tests/unictype/test-categ_Nl.c: Likewise. * tests/unictype/test-categ_No.c: Likewise. * tests/unictype/test-categ_P.c: Likewise. * tests/unictype/test-categ_Pc.c: Likewise. * tests/unictype/test-categ_Pd.c: Likewise. * tests/unictype/test-categ_Pe.c: Likewise. * tests/unictype/test-categ_Pf.c: Likewise. * tests/unictype/test-categ_Pi.c: Likewise. * tests/unictype/test-categ_Po.c: Likewise. * tests/unictype/test-categ_Ps.c: Likewise. * tests/unictype/test-categ_S.c: Likewise. * tests/unictype/test-categ_Sc.c: Likewise. * tests/unictype/test-categ_Sk.c: Likewise. * tests/unictype/test-categ_Sm.c: Likewise. * tests/unictype/test-categ_So.c: Likewise. * tests/unictype/test-categ_Z.c: Likewise. * tests/unictype/test-categ_Zl.c: Likewise. * tests/unictype/test-categ_Zp.c: Likewise. * tests/unictype/test-categ_Zs.c: Likewise. * tests/unictype/test-ctype_alnum.c: Likewise. * tests/unictype/test-ctype_alpha.c: Likewise. * tests/unictype/test-ctype_blank.c: Likewise. * tests/unictype/test-ctype_cntrl.c: Likewise. * tests/unictype/test-ctype_digit.c: Likewise. * tests/unictype/test-ctype_graph.c: Likewise. * tests/unictype/test-ctype_lower.c: Likewise. * tests/unictype/test-ctype_print.c: Likewise. * tests/unictype/test-ctype_punct.c: Likewise. * tests/unictype/test-ctype_space.c: Likewise. * tests/unictype/test-ctype_upper.c: Likewise. * tests/unictype/test-ctype_xdigit.c: Likewise. * tests/unictype/test-decdigit.h: Likewise. * tests/unictype/test-digit.h: Likewise. * tests/unictype/test-numeric.h: Likewise. * tests/unictype/test-pr_alphabetic.c: Likewise. * tests/unictype/test-pr_ascii_hex_digit.c: Likewise. * tests/unictype/test-pr_bidi_arabic_digit.c: Likewise. * tests/unictype/test-pr_bidi_arabic_right_to_left.c: Likewise. * tests/unictype/test-pr_bidi_block_separator.c: Likewise. * tests/unictype/test-pr_bidi_boundary_neutral.c: Likewise. * tests/unictype/test-pr_bidi_common_separator.c: Likewise. * tests/unictype/test-pr_bidi_control.c: Likewise. * tests/unictype/test-pr_bidi_embedding_or_override.c: Likewise. * tests/unictype/test-pr_bidi_eur_num_separator.c: Likewise. * tests/unictype/test-pr_bidi_eur_num_terminator.c: Likewise. * tests/unictype/test-pr_bidi_european_digit.c: Likewise. * tests/unictype/test-pr_bidi_hebrew_right_to_left.c: Likewise. * tests/unictype/test-pr_bidi_left_to_right.c: Likewise. * tests/unictype/test-pr_bidi_non_spacing_mark.c: Likewise. * tests/unictype/test-pr_bidi_other_neutral.c: Likewise. * tests/unictype/test-pr_bidi_pdf.c: Likewise. * tests/unictype/test-pr_bidi_segment_separator.c: Likewise. * tests/unictype/test-pr_bidi_whitespace.c: Likewise. * tests/unictype/test-pr_combining.c: Likewise. * tests/unictype/test-pr_composite.c: Likewise. * tests/unictype/test-pr_currency_symbol.c: Likewise. * tests/unictype/test-pr_dash.c: Likewise. * tests/unictype/test-pr_decimal_digit.c: Likewise. * tests/unictype/test-pr_default_ignorable_code_point.c: Likewise. * tests/unictype/test-pr_deprecated.c: Likewise. * tests/unictype/test-pr_diacritic.c: Likewise. * tests/unictype/test-pr_extender.c: Likewise. * tests/unictype/test-pr_format_control.c: Likewise. * tests/unictype/test-pr_grapheme_base.c: Likewise. * tests/unictype/test-pr_grapheme_extend.c: Likewise. * tests/unictype/test-pr_grapheme_link.c: Likewise. * tests/unictype/test-pr_hex_digit.c: Likewise. * tests/unictype/test-pr_hyphen.c: Likewise. * tests/unictype/test-pr_id_continue.c: Likewise. * tests/unictype/test-pr_id_start.c: Likewise. * tests/unictype/test-pr_ideographic.c: Likewise. * tests/unictype/test-pr_ids_binary_operator.c: Likewise. * tests/unictype/test-pr_ids_trinary_operator.c: Likewise. * tests/unictype/test-pr_ignorable_control.c: Likewise. * tests/unictype/test-pr_iso_control.c: Likewise. * tests/unictype/test-pr_join_control.c: Likewise. * tests/unictype/test-pr_left_of_pair.c: Likewise. * tests/unictype/test-pr_line_separator.c: Likewise. * tests/unictype/test-pr_logical_order_exception.c: Likewise. * tests/unictype/test-pr_lowercase.c: Likewise. * tests/unictype/test-pr_math.c: Likewise. * tests/unictype/test-pr_non_break.c: Likewise. * tests/unictype/test-pr_not_a_character.c: Likewise. * tests/unictype/test-pr_numeric.c: Likewise. * tests/unictype/test-pr_other_alphabetic.c: Likewise. * tests/unictype/test-pr_other_default_ignorable_code_point.c: Likewise. * tests/unictype/test-pr_other_grapheme_extend.c: Likewise. * tests/unictype/test-pr_other_id_continue.c: Likewise. * tests/unictype/test-pr_other_id_start.c: Likewise. * tests/unictype/test-pr_other_lowercase.c: Likewise. * tests/unictype/test-pr_other_math.c: Likewise. * tests/unictype/test-pr_other_uppercase.c: Likewise. * tests/unictype/test-pr_paired_punctuation.c: Likewise. * tests/unictype/test-pr_paragraph_separator.c: Likewise. * tests/unictype/test-pr_pattern_syntax.c: Likewise. * tests/unictype/test-pr_pattern_white_space.c: Likewise. * tests/unictype/test-pr_private_use.c: Likewise. * tests/unictype/test-pr_punctuation.c: Likewise. * tests/unictype/test-pr_quotation_mark.c: Likewise. * tests/unictype/test-pr_radical.c: Likewise. * tests/unictype/test-pr_sentence_terminal.c: Likewise. * tests/unictype/test-pr_soft_dotted.c: Likewise. * tests/unictype/test-pr_space.c: Likewise. * tests/unictype/test-pr_terminal_punctuation.c: Likewise. * tests/unictype/test-pr_titlecase.c: Likewise. * tests/unictype/test-pr_unassigned_code_value.c: Likewise. * tests/unictype/test-pr_unified_ideograph.c: Likewise. * tests/unictype/test-pr_uppercase.c: Likewise. * tests/unictype/test-pr_variation_selector.c: Likewise. * tests/unictype/test-pr_white_space.c: Likewise. * tests/unictype/test-pr_xid_continue.c: Likewise. * tests/unictype/test-pr_xid_start.c: Likewise. * tests/unictype/test-pr_zero_width.c: Likewise. * tests/unictype/test-sy_c_whitespace.c: Likewise. * tests/unictype/test-sy_java_whitespace.c: Likewise. 2007-11-12 Bruno Haible Unicode character classification functions. * lib/unictype.h: New file. * modules/unictype/base: New file. * modules/unictype/category-L: New file. * modules/unictype/category-Lu: New file. * modules/unictype/category-Ll: New file. * modules/unictype/category-Lt: New file. * modules/unictype/category-Lm: New file. * modules/unictype/category-Lo: New file. * modules/unictype/category-M: New file. * modules/unictype/category-Mn: New file. * modules/unictype/category-Mc: New file. * modules/unictype/category-Me: New file. * modules/unictype/category-N: New file. * modules/unictype/category-Nd: New file. * modules/unictype/category-Nl: New file. * modules/unictype/category-No: New file. * modules/unictype/category-P: New file. * modules/unictype/category-Pc: New file. * modules/unictype/category-Pd: New file. * modules/unictype/category-Ps: New file. * modules/unictype/category-Pe: New file. * modules/unictype/category-Pi: New file. * modules/unictype/category-Pf: New file. * modules/unictype/category-Po: New file. * modules/unictype/category-S: New file. * modules/unictype/category-Sm: New file. * modules/unictype/category-Sc: New file. * modules/unictype/category-Sk: New file. * modules/unictype/category-So: New file. * modules/unictype/category-Z: New file. * modules/unictype/category-Zs: New file. * modules/unictype/category-Zl: New file. * modules/unictype/category-Zp: New file. * modules/unictype/category-C: New file. * modules/unictype/category-Cc: New file. * modules/unictype/category-Cf: New file. * modules/unictype/category-Cs: New file. * modules/unictype/category-Co: New file. * modules/unictype/category-Cn: New file. * modules/unictype/category-or: New file. * modules/unictype/category-of: New file. * modules/unictype/category-test: New file. * modules/unictype/category-test-withtable: New file. * modules/unictype/category-byname: New file. * modules/unictype/category-none: New file. * modules/unictype/category-and: New file. * modules/unictype/category-and-not: New file. * modules/unictype/category-name: New file. * modules/unictype/combining-class: New file. * modules/unictype/category-all: New file. * modules/unictype/bidicategory-all: New file. * modules/unictype/bidicategory-byname: New file. * modules/unictype/bidicategory-name: New file. * modules/unictype/bidicategory-of: New file. * modules/unictype/bidicategory-test: New file. * modules/unictype/decimal-digit: New file. * modules/unictype/digit: New file. * modules/unictype/numeric: New file. * modules/unictype/mirror: New file. * modules/unictype/property-white-space: New file. * modules/unictype/property-alphabetic: New file. * modules/unictype/property-other-alphabetic: New file. * modules/unictype/property-not-a-character: New file. * modules/unictype/property-default-ignorable-code-point: New file. * modules/unictype/property-other-default-ignorable-code-point: New file. * modules/unictype/property-deprecated: New file. * modules/unictype/property-logical-order-exception: New file. * modules/unictype/property-variation-selector: New file. * modules/unictype/property-private-use: New file. * modules/unictype/property-unassigned-code-value: New file. * modules/unictype/property-uppercase: New file. * modules/unictype/property-other-uppercase: New file. * modules/unictype/property-lowercase: New file. * modules/unictype/property-other-lowercase: New file. * modules/unictype/property-titlecase: New file. * modules/unictype/property-soft-dotted: New file. * modules/unictype/property-id-start: New file. * modules/unictype/property-other-id-start: New file. * modules/unictype/property-id-continue: New file. * modules/unictype/property-other-id-continue: New file. * modules/unictype/property-xid-start: New file. * modules/unictype/property-xid-continue: New file. * modules/unictype/property-pattern-white-space: New file. * modules/unictype/property-pattern-syntax: New file. * modules/unictype/property-join-control: New file. * modules/unictype/property-grapheme-base: New file. * modules/unictype/property-grapheme-extend: New file. * modules/unictype/property-other-grapheme-extend: New file. * modules/unictype/property-grapheme-link: New file. * modules/unictype/property-bidi-control: New file. * modules/unictype/property-bidi-left-to-right: New file. * modules/unictype/property-bidi-hebrew-right-to-left: New file. * modules/unictype/property-bidi-arabic-right-to-left: New file. * modules/unictype/property-bidi-european-digit: New file. * modules/unictype/property-bidi-eur-num-separator: New file. * modules/unictype/property-bidi-eur-num-terminator: New file. * modules/unictype/property-bidi-arabic-digit: New file. * modules/unictype/property-bidi-common-separator: New file. * modules/unictype/property-bidi-block-separator: New file. * modules/unictype/property-bidi-segment-separator: New file. * modules/unictype/property-bidi-whitespace: New file. * modules/unictype/property-bidi-non-spacing-mark: New file. * modules/unictype/property-bidi-boundary-neutral: New file. * modules/unictype/property-bidi-pdf: New file. * modules/unictype/property-bidi-embedding-or-override: New file. * modules/unictype/property-bidi-other-neutral: New file. * modules/unictype/property-hex-digit: New file. * modules/unictype/property-ascii-hex-digit: New file. * modules/unictype/property-ideographic: New file. * modules/unictype/property-unified-ideograph: New file. * modules/unictype/property-radical: New file. * modules/unictype/property-ids-binary-operator: New file. * modules/unictype/property-ids-trinary-operator: New file. * modules/unictype/property-zero-width: New file. * modules/unictype/property-space: New file. * modules/unictype/property-non-break: New file. * modules/unictype/property-iso-control: New file. * modules/unictype/property-format-control: New file. * modules/unictype/property-dash: New file. * modules/unictype/property-hyphen: New file. * modules/unictype/property-punctuation: New file. * modules/unictype/property-line-separator: New file. * modules/unictype/property-paragraph-separator: New file. * modules/unictype/property-quotation-mark: New file. * modules/unictype/property-sentence-terminal: New file. * modules/unictype/property-terminal-punctuation: New file. * modules/unictype/property-currency-symbol: New file. * modules/unictype/property-math: New file. * modules/unictype/property-other-math: New file. * modules/unictype/property-paired-punctuation: New file. * modules/unictype/property-left-of-pair: New file. * modules/unictype/property-combining: New file. * modules/unictype/property-composite: New file. * modules/unictype/property-decimal-digit: New file. * modules/unictype/property-numeric: New file. * modules/unictype/property-diacritic: New file. * modules/unictype/property-extender: New file. * modules/unictype/property-ignorable-control: New file. * modules/unictype/property-test: New file. * modules/unictype/property-byname: New file. * modules/unictype/property-all: New file. * modules/unictype/scripts: New file. * modules/unictype/scripts-all: New file. * modules/unictype/block-of: New file. * modules/unictype/block-test: New file. * modules/unictype/block-list: New file. * modules/unictype/block-all: New file. * modules/unictype/syntax-c-whitespace: New file. * modules/unictype/syntax-java-whitespace: New file. * modules/unictype/syntax-c-ident: New file. * modules/unictype/syntax-java-ident: New file. * modules/unictype/ctype-alnum: New file. * modules/unictype/ctype-alpha: New file. * modules/unictype/ctype-cntrl: New file. * modules/unictype/ctype-digit: New file. * modules/unictype/ctype-graph: New file. * modules/unictype/ctype-lower: New file. * modules/unictype/ctype-print: New file. * modules/unictype/ctype-punct: New file. * modules/unictype/ctype-space: New file. * modules/unictype/ctype-upper: New file. * modules/unictype/ctype-xdigit: New file. * modules/unictype/ctype-blank: New file. * lib/unictype/bidi_byname.c: New file. * lib/unictype/bidi_name.c: New file. * lib/unictype/bidi_of.c: New file. * lib/unictype/bidi_test.c: New file. * lib/unictype/bitmap.h: New file. * lib/unictype/block_test.c: New file. * lib/unictype/blocks.c: New file. * lib/unictype/categ_C.c: New file. * lib/unictype/categ_Cc.c: New file. * lib/unictype/categ_Cf.c: New file. * lib/unictype/categ_Cn.c: New file. * lib/unictype/categ_Co.c: New file. * lib/unictype/categ_Cs.c: New file. * lib/unictype/categ_L.c: New file. * lib/unictype/categ_Ll.c: New file. * lib/unictype/categ_Lm.c: New file. * lib/unictype/categ_Lo.c: New file. * lib/unictype/categ_Lt.c: New file. * lib/unictype/categ_Lu.c: New file. * lib/unictype/categ_M.c: New file. * lib/unictype/categ_Mc.c: New file. * lib/unictype/categ_Me.c: New file. * lib/unictype/categ_Mn.c: New file. * lib/unictype/categ_N.c: New file. * lib/unictype/categ_Nd.c: New file. * lib/unictype/categ_Nl.c: New file. * lib/unictype/categ_No.c: New file. * lib/unictype/categ_P.c: New file. * lib/unictype/categ_Pc.c: New file. * lib/unictype/categ_Pd.c: New file. * lib/unictype/categ_Pe.c: New file. * lib/unictype/categ_Pf.c: New file. * lib/unictype/categ_Pi.c: New file. * lib/unictype/categ_Po.c: New file. * lib/unictype/categ_Ps.c: New file. * lib/unictype/categ_S.c: New file. * lib/unictype/categ_Sc.c: New file. * lib/unictype/categ_Sk.c: New file. * lib/unictype/categ_Sm.c: New file. * lib/unictype/categ_So.c: New file. * lib/unictype/categ_Z.c: New file. * lib/unictype/categ_Zl.c: New file. * lib/unictype/categ_Zp.c: New file. * lib/unictype/categ_Zs.c: New file. * lib/unictype/categ_and.c: New file. * lib/unictype/categ_and_not.c: New file. * lib/unictype/categ_byname.c: New file. * lib/unictype/categ_name.c: New file. * lib/unictype/categ_none.c: New file. * lib/unictype/categ_of.c: New file. * lib/unictype/categ_or.c: New file. * lib/unictype/categ_test.c: New file. * lib/unictype/combining.c: New file. * lib/unictype/ctype_alnum.c: New file. * lib/unictype/ctype_alpha.c: New file. * lib/unictype/ctype_blank.c: New file. * lib/unictype/ctype_cntrl.c: New file. * lib/unictype/ctype_digit.c: New file. * lib/unictype/ctype_graph.c: New file. * lib/unictype/ctype_lower.c: New file. * lib/unictype/ctype_print.c: New file. * lib/unictype/ctype_punct.c: New file. * lib/unictype/ctype_space.c: New file. * lib/unictype/ctype_upper.c: New file. * lib/unictype/ctype_xdigit.c: New file. * lib/unictype/decdigit.c: New file. * lib/unictype/digit.c: New file. * lib/unictype/identsyntaxmap.h: New file. * lib/unictype/mirror.c: New file. * lib/unictype/numeric.c: New file. * lib/unictype/pr_alphabetic.c: New file. * lib/unictype/pr_ascii_hex_digit.c: New file. * lib/unictype/pr_bidi_arabic_digit.c: New file. * lib/unictype/pr_bidi_arabic_right_to_left.c: New file. * lib/unictype/pr_bidi_block_separator.c: New file. * lib/unictype/pr_bidi_boundary_neutral.c: New file. * lib/unictype/pr_bidi_common_separator.c: New file. * lib/unictype/pr_bidi_control.c: New file. * lib/unictype/pr_bidi_embedding_or_override.c: New file. * lib/unictype/pr_bidi_eur_num_separator.c: New file. * lib/unictype/pr_bidi_eur_num_terminator.c: New file. * lib/unictype/pr_bidi_european_digit.c: New file. * lib/unictype/pr_bidi_hebrew_right_to_left.c: New file. * lib/unictype/pr_bidi_left_to_right.c: New file. * lib/unictype/pr_bidi_non_spacing_mark.c: New file. * lib/unictype/pr_bidi_other_neutral.c: New file. * lib/unictype/pr_bidi_pdf.c: New file. * lib/unictype/pr_bidi_segment_separator.c: New file. * lib/unictype/pr_bidi_whitespace.c: New file. * lib/unictype/pr_byname.c: New file. * lib/unictype/pr_byname.gperf: New file. * lib/unictype/pr_combining.c: New file. * lib/unictype/pr_composite.c: New file. * lib/unictype/pr_currency_symbol.c: New file. * lib/unictype/pr_dash.c: New file. * lib/unictype/pr_decimal_digit.c: New file. * lib/unictype/pr_default_ignorable_code_point.c: New file. * lib/unictype/pr_deprecated.c: New file. * lib/unictype/pr_diacritic.c: New file. * lib/unictype/pr_extender.c: New file. * lib/unictype/pr_format_control.c: New file. * lib/unictype/pr_grapheme_base.c: New file. * lib/unictype/pr_grapheme_extend.c: New file. * lib/unictype/pr_grapheme_link.c: New file. * lib/unictype/pr_hex_digit.c: New file. * lib/unictype/pr_hyphen.c: New file. * lib/unictype/pr_id_continue.c: New file. * lib/unictype/pr_id_start.c: New file. * lib/unictype/pr_ideographic.c: New file. * lib/unictype/pr_ids_binary_operator.c: New file. * lib/unictype/pr_ids_trinary_operator.c: New file. * lib/unictype/pr_ignorable_control.c: New file. * lib/unictype/pr_iso_control.c: New file. * lib/unictype/pr_join_control.c: New file. * lib/unictype/pr_left_of_pair.c: New file. * lib/unictype/pr_line_separator.c: New file. * lib/unictype/pr_logical_order_exception.c: New file. * lib/unictype/pr_lowercase.c: New file. * lib/unictype/pr_math.c: New file. * lib/unictype/pr_non_break.c: New file. * lib/unictype/pr_not_a_character.c: New file. * lib/unictype/pr_numeric.c: New file. * lib/unictype/pr_other_alphabetic.c: New file. * lib/unictype/pr_other_default_ignorable_code_point.c: New file. * lib/unictype/pr_other_grapheme_extend.c: New file. * lib/unictype/pr_other_id_continue.c: New file. * lib/unictype/pr_other_id_start.c: New file. * lib/unictype/pr_other_lowercase.c: New file. * lib/unictype/pr_other_math.c: New file. * lib/unictype/pr_other_uppercase.c: New file. * lib/unictype/pr_paired_punctuation.c: New file. * lib/unictype/pr_paragraph_separator.c: New file. * lib/unictype/pr_pattern_syntax.c: New file. * lib/unictype/pr_pattern_white_space.c: New file. * lib/unictype/pr_private_use.c: New file. * lib/unictype/pr_punctuation.c: New file. * lib/unictype/pr_quotation_mark.c: New file. * lib/unictype/pr_radical.c: New file. * lib/unictype/pr_sentence_terminal.c: New file. * lib/unictype/pr_soft_dotted.c: New file. * lib/unictype/pr_space.c: New file. * lib/unictype/pr_terminal_punctuation.c: New file. * lib/unictype/pr_test.c: New file. * lib/unictype/pr_titlecase.c: New file. * lib/unictype/pr_unassigned_code_value.c: New file. * lib/unictype/pr_unified_ideograph.c: New file. * lib/unictype/pr_uppercase.c: New file. * lib/unictype/pr_variation_selector.c: New file. * lib/unictype/pr_white_space.c: New file. * lib/unictype/pr_xid_continue.c: New file. * lib/unictype/pr_xid_start.c: New file. * lib/unictype/pr_zero_width.c: New file. * lib/unictype/scripts.c: New file. * lib/unictype/sy_c_ident.c: New file. * lib/unictype/sy_c_whitespace.c: New file. * lib/unictype/sy_java_ident.c: New file. * lib/unictype/sy_java_whitespace.c: New file. * lib/unictype/bidi_of.h: New file, generated by gen-ctype.c for Unicode 5.0.0. * lib/unictype/blocks.h: Likewise. * lib/unictype/categ_C.h: Likewise. * lib/unictype/categ_Cc.h: Likewise. * lib/unictype/categ_Cf.h: Likewise. * lib/unictype/categ_Cn.h: Likewise. * lib/unictype/categ_Co.h: Likewise. * lib/unictype/categ_Cs.h: Likewise. * lib/unictype/categ_L.h: Likewise. * lib/unictype/categ_Ll.h: Likewise. * lib/unictype/categ_Lm.h: Likewise. * lib/unictype/categ_Lo.h: Likewise. * lib/unictype/categ_Lt.h: Likewise. * lib/unictype/categ_Lu.h: Likewise. * lib/unictype/categ_M.h: Likewise. * lib/unictype/categ_Mc.h: Likewise. * lib/unictype/categ_Me.h: Likewise. * lib/unictype/categ_Mn.h: Likewise. * lib/unictype/categ_N.h: Likewise. * lib/unictype/categ_Nd.h: Likewise. * lib/unictype/categ_Nl.h: Likewise. * lib/unictype/categ_No.h: Likewise. * lib/unictype/categ_P.h: Likewise. * lib/unictype/categ_Pc.h: Likewise. * lib/unictype/categ_Pd.h: Likewise. * lib/unictype/categ_Pe.h: Likewise. * lib/unictype/categ_Pf.h: Likewise. * lib/unictype/categ_Pi.h: Likewise. * lib/unictype/categ_Po.h: Likewise. * lib/unictype/categ_Ps.h: Likewise. * lib/unictype/categ_S.h: Likewise. * lib/unictype/categ_Sc.h: Likewise. * lib/unictype/categ_Sk.h: Likewise. * lib/unictype/categ_Sm.h: Likewise. * lib/unictype/categ_So.h: Likewise. * lib/unictype/categ_Z.h: Likewise. * lib/unictype/categ_Zl.h: Likewise. * lib/unictype/categ_Zp.h: Likewise. * lib/unictype/categ_Zs.h: Likewise. * lib/unictype/categ_of.h: Likewise. * lib/unictype/combining.h: Likewise. * lib/unictype/ctype_alnum.h: Likewise. * lib/unictype/ctype_alpha.h: Likewise. * lib/unictype/ctype_blank.h: Likewise. * lib/unictype/ctype_cntrl.h: Likewise. * lib/unictype/ctype_digit.h: Likewise. * lib/unictype/ctype_graph.h: Likewise. * lib/unictype/ctype_lower.h: Likewise. * lib/unictype/ctype_print.h: Likewise. * lib/unictype/ctype_punct.h: Likewise. * lib/unictype/ctype_space.h: Likewise. * lib/unictype/ctype_upper.h: Likewise. * lib/unictype/ctype_xdigit.h: Likewise. * lib/unictype/decdigit.h: Likewise. * lib/unictype/digit.h: Likewise. * lib/unictype/mirror.h: Likewise. * lib/unictype/numeric.h: Likewise. * lib/unictype/pr_alphabetic.h: Likewise. * lib/unictype/pr_ascii_hex_digit.h: Likewise. * lib/unictype/pr_bidi_arabic_digit.h: Likewise. * lib/unictype/pr_bidi_arabic_right_to_left.h: Likewise. * lib/unictype/pr_bidi_block_separator.h: Likewise. * lib/unictype/pr_bidi_boundary_neutral.h: Likewise. * lib/unictype/pr_bidi_common_separator.h: Likewise. * lib/unictype/pr_bidi_control.h: Likewise. * lib/unictype/pr_bidi_embedding_or_override.h: Likewise. * lib/unictype/pr_bidi_eur_num_separator.h: Likewise. * lib/unictype/pr_bidi_eur_num_terminator.h: Likewise. * lib/unictype/pr_bidi_european_digit.h: Likewise. * lib/unictype/pr_bidi_hebrew_right_to_left.h: Likewise. * lib/unictype/pr_bidi_left_to_right.h: Likewise. * lib/unictype/pr_bidi_non_spacing_mark.h: Likewise. * lib/unictype/pr_bidi_other_neutral.h: Likewise. * lib/unictype/pr_bidi_pdf.h: Likewise. * lib/unictype/pr_bidi_segment_separator.h: Likewise. * lib/unictype/pr_bidi_whitespace.h: Likewise. * lib/unictype/pr_combining.h: Likewise. * lib/unictype/pr_composite.h: Likewise. * lib/unictype/pr_currency_symbol.h: Likewise. * lib/unictype/pr_dash.h: Likewise. * lib/unictype/pr_decimal_digit.h: Likewise. * lib/unictype/pr_default_ignorable_code_point.h: Likewise. * lib/unictype/pr_deprecated.h: Likewise. * lib/unictype/pr_diacritic.h: Likewise. * lib/unictype/pr_extender.h: Likewise. * lib/unictype/pr_format_control.h: Likewise. * lib/unictype/pr_grapheme_base.h: Likewise. * lib/unictype/pr_grapheme_extend.h: Likewise. * lib/unictype/pr_grapheme_link.h: Likewise. * lib/unictype/pr_hex_digit.h: Likewise. * lib/unictype/pr_hyphen.h: Likewise. * lib/unictype/pr_id_continue.h: Likewise. * lib/unictype/pr_id_start.h: Likewise. * lib/unictype/pr_ideographic.h: Likewise. * lib/unictype/pr_ids_binary_operator.h: Likewise. * lib/unictype/pr_ids_trinary_operator.h: Likewise. * lib/unictype/pr_ignorable_control.h: Likewise. * lib/unictype/pr_iso_control.h: Likewise. * lib/unictype/pr_join_control.h: Likewise. * lib/unictype/pr_left_of_pair.h: Likewise. * lib/unictype/pr_line_separator.h: Likewise. * lib/unictype/pr_logical_order_exception.h: Likewise. * lib/unictype/pr_lowercase.h: Likewise. * lib/unictype/pr_math.h: Likewise. * lib/unictype/pr_non_break.h: Likewise. * lib/unictype/pr_not_a_character.h: Likewise. * lib/unictype/pr_numeric.h: Likewise. * lib/unictype/pr_other_alphabetic.h: Likewise. * lib/unictype/pr_other_default_ignorable_code_point.h: Likewise. * lib/unictype/pr_other_grapheme_extend.h: Likewise. * lib/unictype/pr_other_id_continue.h: Likewise. * lib/unictype/pr_other_id_start.h: Likewise. * lib/unictype/pr_other_lowercase.h: Likewise. * lib/unictype/pr_other_math.h: Likewise. * lib/unictype/pr_other_uppercase.h: Likewise. * lib/unictype/pr_paired_punctuation.h: Likewise. * lib/unictype/pr_paragraph_separator.h: Likewise. * lib/unictype/pr_pattern_syntax.h: Likewise. * lib/unictype/pr_pattern_white_space.h: Likewise. * lib/unictype/pr_private_use.h: Likewise. * lib/unictype/pr_punctuation.h: Likewise. * lib/unictype/pr_quotation_mark.h: Likewise. * lib/unictype/pr_radical.h: Likewise. * lib/unictype/pr_sentence_terminal.h: Likewise. * lib/unictype/pr_soft_dotted.h: Likewise. * lib/unictype/pr_space.h: Likewise. * lib/unictype/pr_terminal_punctuation.h: Likewise. * lib/unictype/pr_titlecase.h: Likewise. * lib/unictype/pr_unassigned_code_value.h: Likewise. * lib/unictype/pr_unified_ideograph.h: Likewise. * lib/unictype/pr_uppercase.h: Likewise. * lib/unictype/pr_variation_selector.h: Likewise. * lib/unictype/pr_white_space.h: Likewise. * lib/unictype/pr_xid_continue.h: Likewise. * lib/unictype/pr_xid_start.h: Likewise. * lib/unictype/pr_zero_width.h: Likewise. * lib/unictype/scripts.h: Likewise. * lib/unictype/scripts_byname.gperf: Likewise. * lib/unictype/sy_c_ident.h: Likewise. * lib/unictype/sy_c_whitespace.h: Likewise. * lib/unictype/sy_java_ident.h: Likewise. * lib/unictype/sy_java_whitespace.h: Likewise. * lib/unictype/Makefile: New file. * lib/unictype/gen-ctype.c: New file, based on gen-unicode-ctype.c in glibc. * lib/unictype/3level.h: New file, copied from glibc. * lib/unictype/3levelbit.h: New file. 2007-11-11 Bruno Haible * modules/gperf: New file. * modules/iconv_open (Depends-on): Add it. (Makefile.am): Remove the GPERF definition. 2007-11-11 Bruno Haible * m4/round.m4 (gl_FUNC_ROUND): Test against NetBSD 3.0 bug. * doc/functions/round.texi: Mention the NetBSD 3.0 bug. 2007-11-11 Bruno Haible * tests/test-argmatch.c (ARGMATCH_DIE): Undefine. (usage): Remove function. 2007-11-11 Bruno Haible * m4/roundf.m4 (gl_FUNC_ROUNDF): Use gl_FUNC_FLOORF_LIBS and gl_FUNC_CEILF_LIBS. * m4/round.m4 (gl_FUNC_ROUND): Use gl_FUNC_FLOOR_LIBS and gl_FUNC_CEIL_LIBS. * m4/roundl.m4 (gl_FUNC_ROUNDL): Use gl_FUNC_FLOORL_LIBS and gl_FUNC_CEILL_LIBS. * modules/roundf (Files): Add m4/floorf.m4, m4/ceilf.m4. * modules/round (Files): Add m4/floor.m4, m4/ceil.m4. * modules/roundl (Files): Add m4/floorl.m4, m4/ceill.m4. 2007-11-11 Bruno Haible * m4/roundf.m4 (gl_FUNC_ROUNDF): Handle the case that floorf and roundf were declared but do not exist on functions. * m4/roundl.m4 (gl_FUNC_ROUNDL): Handle the case that floorl and roundl were declared but do not exist on functions. * lib/round.c (HAVE_FLOOR_AND_CEIL): Use HAVE_FLOORF_AND_CEILF and HAVE_FLOORL_AND_CEILL, respectively. Needed for Sun C on Solaris 10. 2007-11-11 Bruno Haible * m4/roundf.m4 (gl_FUNC_ROUNDF): Set REPLACE_ROUNDF instead of HAVE_DECL_ROUNDF. Remove redundant AC_SUBST. * m4/round.m4 (gl_FUNC_ROUND): Set REPLACE_ROUND instead of HAVE_DECL_ROUND. Remove redundant AC_SUBST. * m4/roundl.m4 (gl_FUNC_ROUNDL): Set REPLACE_ROUNDL instead of HAVE_DECL_ROUNDL. Remove redundant AC_SUBST. * lib/math.in.h (roundf): Use REPLACE_ROUNDF instead of HAVE_DECL_ROUNDF. (round): Use REPLACE_ROUND instead of HAVE_DECL_ROUND. (roundl): Use REPLACE_ROUNDL instead of HAVE_DECL_ROUNDL. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_ROUND* instead of HAVE_DECL_ROUND*. * modules/math (Makefile.am): Update. 2007-11-10 Bruno Haible * m4/vasnprintf.m4 (gl_PREREQ_PRINTF_PARSE): Use same check for ptrdiff_t as m4/intl.m4. 2007-11-10 Jim Meyering Avoid link failure for the argmatch test. * tests/test-argmatch.c (usage): Define function to avoid a link failure: argmatch_die requires a usage function. 2007-11-09 Bruno Haible * doc/functions/snprintf.texi: Mention BeOS deficiency. * doc/functions/vsnprintf.texi: Likewise. * lib/vasnprintf.c (VASNPRINTF): Ensure that we never call snprintf with a size argument < 2. 2007-11-09 Bruno Haible * lib/vasnprintf.c (VASNPRINTF): Increase reallocation of snprintf buffer. Fixes an inefficiency introduced on 2007-11-03. 2007-11-09 Bruno Haible * m4/locale-tr.m4 (gt_LOCALE_TR_UTF8) [BeOS]: Make this test return none instead of tr_TR. Fixes a failure of test-c-strcasecmp.c. 2007-11-08 Jim Meyering Change cache variable name prefix "jm_" to "gl_" everywhere. * m4/d-type.m4, m4/jm-winsz1.m4, m4/jm-winsz2.m4, m4/link-follow.m4: * m4/putenv.m4, m4/strtoimax.m4, m4/strtoumax.m4, m4/unlink-busy.m4: * m4/uptime.m4: s/gl_/jm_/ 2007-11-07 Bruno Haible Update to GNU gettext 0.17. * m4/intl.m4: Update to GNU gettext 0.17. * m4/po.m4: Likewise. * modules/gettext (Files): Remove m4/ulonglong.m4. (configure.ac): Require gettext infrastructure from version 0.17. 2007-11-06 Bruno Haible * lib/fbufmode.c (fbufmode) [QNX]: Use numerical values for flags; the symbolic values are not defined in a public header. * lib/freadable.c (freadable) [QNX]: Likewise. * lib/freadahead.c (freadahead) [QNX]: Likewise. * lib/freading.c (freading) [QNX]: Likewise. * lib/fseterr.c (fseterr) [QNX]: Likewise. * lib/fwritable.c (fwritable) [QNX]: Likewise. * lib/fwriting.c (fwriting) [QNX]: Likewise. * lib/fpurge.c (fpurge) [QNX]: Likewise. Add a return statement. Reported by Alain Magloire. * m4/fpending.m4 (gl_FUNC_FPENDING): Add a variant for QNX. 2007-11-05 Bruno Haible * lib/vasnprintf.c (VASNPRINTF): Expand the NEED_PRINTF_DIRECTIVE_A code when NEED_PRINTF_LONG_DOUBLE or NEED_PRINTF_DOUBLE is set. Needed on Cygwin, where !NEED_PRINTF_DIRECTIVE_A && NEED_PRINTF_DOUBLE. Reported by Eric Blake. 2007-10-27 Ralf Wildenhues Bruno Haible * modules/malloc (configure.ac): Define GNULIB_MALLOC_GNU always. * modules/realloc (configure.ac): Define GNULIB_REALLOC_GNU always. * lib/realloc.c (SYSTEM_MALLOC_GLIBC_COMPATIBLE): New macro. (malloc): Undefine also before including . (rpl_realloc): Turn malloc(0) into malloc(1) if necessary. Needed on OSF/1 4.0. 2007-11-05 Jim Meyering git-version-gen: sync from coreutils. * build-aux/git-version-gen: Add comments. Change the first '-' to '.' in the snapshot version string, e.g., 6.9-377-08144 -> 6.9.377-08144 Remove first parameter. Don't declare a version "-dirty" merely because a time stamp has changed. 2007-11-04 Bruno Haible * lib/lock.h: Protect all macro definitions containing an 'if' statement through a "do { ... } while (0)". * lib/tls.h: Likewise. 2007-11-04 Bruno Haible * lib/vasnprintf.c (DCHAR_IS_TCHAR, DCHAR_CPY): Undefine at the end. 2007-11-04 Bruno Haible * m4/printf.m4 (gl_PRINTF_ENOMEM): Use GL_NOCRASH. * modules/fprintf-posix (Depends-on): Add nocrash. * modules/snprintf-posix (Depends-on): Likewise. * modules/sprintf-posix (Depends-on): Likewise. * modules/vasnprintf-posix (Depends-on): Likewise. * modules/vasprintf-posix (Depends-on): Likewise. * modules/vfprintf-posix (Depends-on): Likewise. * modules/vsnprintf-posix (Depends-on): Likewise. * modules/vsprintf-posix (Depends-on): Likewise. * modules/unistdio/u8-vasnprintf (Depends-on): Likewise. * modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/ulc-vasnprintf (Depends-on): Likewise. 2007-11-04 Bruno Haible * modules/nocrash: New file. * m4/nocrash.m4: New file, taken from GNU clisp. Code taken from GNU libsigsegv, with permission of GNU libsigsegv's copyright holders. 2007-11-04 Bruno Haible * tests/test-vasnprintf-posix.c (test_function): Add some tests of precision handling. * tests/test-vasprintf-posix.c (test_function): Likewise. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. Fix *printf behaviour for large precisions on mingw and BeOS. * m4/printf.m4 (gl_PRINTF_PRECISION): New macro. * lib/vasnprintf.c (VASNPRINTF): Handle NEED_PRINTF_UNBOUNDED_PRECISION. * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_PRECISION): New macro. (gl_PREREQ_VASNPRINTF_WITH_EXTRAS): Invoke it. * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke gl_PRINTF_PRECISION and test its result. Invoke gl_PREREQ_VASNPRINTF_PRECISION. * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise. * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise. * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise. * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise. * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise. * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise. * doc/functions/fprintf.texi: Update. * doc/functions/printf.texi: Update. * doc/functions/snprintf.texi: Update. * doc/functions/sprintf.texi: Update. * doc/functions/vfprintf.texi: Update. * doc/functions/vprintf.texi: Update. * doc/functions/vsnprintf.texi: Update. * doc/functions/vsprintf.texi: Update. 2007-11-04 Bruno Haible * lib/vasnprintf.c (scale10_round_decimal_decoded): Fix shift loop. 2007-11-04 Bruno Haible * modules/relocatable-prog (Files): Add m4/lib-ld.m4. Reported by Sylvain Beucler . 2007-11-03 Bruno Haible * tests/test-fprintf-posix2.sh: New file. * tests/test-fprintf-posix2.c: New file. * modules/fprintf-posix-tests (Files): Add them. (TESTS): Add test-fprintf-posix2.sh. (configure.ac): Check for getrlimit and setrlimit. (check_PROGRAMS): Add test-fprintf-posix2. * tests/test-printf-posix2.sh: New file. * tests/test-printf-posix2.c: New file. * modules/printf-posix-tests (Files): Add them. (TESTS): Add test-printf-posix2.sh. (configure.ac): Check for getrlimit and setrlimit. (check_PROGRAMS): Add test-printf-posix2. Fix *printf behaviour in out-of-memory situations on MacOS X and *BSD. * m4/printf.m4 (gl_PRINTF_ENOMEM): New macro. * lib/vasnprintf.c: Implement NEED_PRINTF_DOUBLE. (decode_double): New function, copied from decode_long_double. (scale10_round_decimal_decoded): New function, extracted from scale10_round_decimal_long_double. (scale10_round_decimal_long_double): Use it. (scale10_round_decimal_double): New function. (floorlog10): New function. (VASNPRINTF): Handle NEED_PRINTF_DOUBLE case. * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_ENOMEM): New macro. (gl_PREREQ_VASNPRINTF_WITH_EXTRAS): Invoke it. * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke gl_PRINTF_ENOMEM and test its result. Invoke gl_PREREQ_VASNPRINTF_ENOMEM. * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise. * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise. * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise. * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise. * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise. * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise. * modules/fprintf-posix (Depends-on): Add frexp-nolibm. * modules/snprintf-posix (Depends-on): Likewise. * modules/sprintf-posix (Depends-on): Likewise. * modules/vasnprintf-posix (Depends-on): Likewise. * modules/vasprintf-posix (Depends-on): Likewise. * modules/vfprintf-posix (Depends-on): Likewise. * modules/vsnprintf-posix (Depends-on): Likewise. * modules/vsprintf-posix (Depends-on): Likewise. * doc/functions/fprintf.texi: Update. * doc/functions/printf.texi: Update. * doc/functions/snprintf.texi: Update. * doc/functions/sprintf.texi: Update. * doc/functions/vfprintf.texi: Update. * doc/functions/vprintf.texi: Update. * doc/functions/vsnprintf.texi: Update. * doc/functions/vsprintf.texi: Update. 2007-11-03 Bruno Haible * modules/frexp-nolibm-tests: New file. * modules/frexp-nolibm: New file. * m4/frexp.m4 (gl_FUNC_FREXP_NO_LIBM): New macro. 2007-11-03 Bruno Haible * lib/vasnprintf.c (VASNPRINTF): Don't assume that snprintf's return value is C99 compliant. Needed for OSF/1 5.1. 2007-11-03 Bruno Haible Fix out-of-memory handling of vasnprintf. * lib/printf-parse.c: Include . (PRINTF_PARSE): When failing, set errno to EINVAL or ENOMEM. * lib/vasnprintf.c (VASNPRINTF): When PRINTF_PARSE fails, assume errno is already set. 2007-11-02 Eric Blake Fix tests on cygwin. * modules/xprintf-posix-tests (Makefile.am): Link against -lintl. 2007-11-01 Bruno Haible * lib/stdlib.in.h (putenv): Remove the "not POSIX compliant everywhere" warning. * doc/functions/putenv.texi: Clarify that the 'putenv' module is not needed for POSIX compatibility. 2007-11-01 Paul Eggert * m4/putenv.m4 (gl_FUNC_PUTENV): Also mention that we're checking for compatibility with GNU. 2007-11-01 Bruno Haible * lib/putenv.c: Include . Remove rpl_putenv declaration. (putenv): Renamed from rpl_putenv. Change argument type from 'const char *' to 'char *'. * m4/putenv.m4 (gl_FUNC_PUTENV): Require gl_STDLIB_H_DEFAULTS. Instead of defining putenv in config.h, just set REPLACE_PUTENV. * modules/putenv (Depends-on): Add stdlib. (configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR. (Include): Use . * lib/stdlib.in.h (putenv): New declaration. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_PUTENV and REPLACE_PUTENV. * modules/stdlib (Makefile.am): Substitute GNULIB_PUTENV and REPLACE_PUTENV. Needed for MacOS X 10.5.0. Reported by Peter O'Gorman . 2007-11-01 Jim Meyering Treat an empty date string exactly like "0". * lib/getdate.y (get_date): Once any isspace or TZ= prefix is consumed, if the remaining date string (to be parsed) is empty, use "0". Reported by Mischa Molhoek and discussed in this thread: . 2007-10-31 Bruno Haible * m4/intmax_t.m4 (gl_AC_TYPE_INTMAX_T, gt_AC_TYPE_INTMAX_T): Use AC_TYPE_LONG_LONG_INT instead of gl_AC_TYPE_LONG_LONG. * m4/uintmax_t.m4 (gl_AC_TYPE_UINTMAX_T): Use AC_TYPE_UNSIGNED_LONG_LONG_INT instead of gl_AC_TYPE_UNSIGNED_LONG_LONG. * m4/longlong.m4 (gl_AC_TYPE_LONG_LONG): Remove macro. * m4/ulonglong.m4 (gl_AC_TYPE_UNSIGNED_LONG_LONG): Remove macro. 2007-10-31 Bruno Haible * m4/longlong.m4 (_AC_TYPE_LONG_LONG_SNIPPET): New macro, extracted from AC_TYPE_LONG_LONG_INT and AC_TYPE_UNSIGNED_LONG_LONG_INT. (AC_TYPE_LONG_LONG_INT): Use it. (AC_TYPE_UNSIGNED_LONG_LONG_INT): Moved here from m4/ulonglong.m4. Use it as well. * m4/ulonglong.m4 (AC_TYPE_UNSIGNED_LONG_LONG_INT): Remove macro; moved to m4/longlong.m4. * modules/stdint (Files): Remove m4/ulonglong.m4. * modules/strtoull (Files): Use m4/longlong.m4 instead of m4/ulonglong.m4. * modules/strtoumax (Files): Likewise. 2007-10-30 Bruno Haible * modules/xvasprintf-posix: New file. Suggested by Eric Blake. 2007-10-30 Bruno Haible * modules/xprintf-posix-tests: New file. * tests/test-xprintf-posix.sh: New file. * tests/test-xprintf-posix.c: New file. * tests/test-xfprintf-posix.c: New file. * modules/xprintf-posix: New file. 2007-10-30 Ralf Wildenhues * modules/fbufmode-tests (MOSTLYCLEANFILES): Remove temp files. * modules/freadable-tests (MOSTLYCLEANFILES): Likewise. * modules/fwritable-tests (MOSTLYCLEANFILES): Likewise. 2007-10-29 Bruno Haible * m4/floorf.m4 (gl_FUNC_FLOORF_LIBS): Rename the cache variable to contain the special marker '_cv_'. * m4/floor.m4 (gl_FUNC_FLOOR_LIBS): Likewise. * m4/floorl.m4 (gl_FUNC_FLOORL_LIBS): Likewise. * m4/ceilf.m4 (gl_FUNC_CEILF_LIBS): Likewise. * m4/ceil.m4 (gl_FUNC_CEIL_LIBS): Likewise. * m4/ceill.m4 (gl_FUNC_CEILL_LIBS): Likewise. Reported by Ralf Wildenhues. 2007-10-29 Bruno Haible * gnulib-tool (func_import): When --lgpl is not specified, set sed_transform_lib_file to convert LGPL and GPLv2+ copyright headers to GPLv3. Reported by Simon Josefsson. 2007-10-28 Bruno Haible * lib/math.in.h: Test REPLACE_ISFINITE instead of HAVE_DECL_ISFINITE. * m4/isfinite.m4 (gl_ISFINITE): Initialize REPLACE_ISFINITE instead of HAVE_DECL_ISFINITE. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Update. * modules/math (Makefile.am): Substitute REPLACE_ISFINITE instead of HAVE_DECL_ISFINITE. 2007-10-28 Bruno Haible * lib/stdint.in.h (_STDINT_MAX): Subtract 1 from an unused signed integer shift in the signed case. Fixes warnings with OSF/1 5.1 cc. 2007-10-28 Bruno Haible Fix link errors with Sun C 5.0 on Solaris 10. * m4/floorf.m4 (gl_FUNC_FLOORF): Consider also the case that the function is declared but not present in the compiler's libm. * m4/floorl.m4 (gl_FUNC_FLOORL): Likewise. * m4/ceilf.m4 (gl_FUNC_CEILF): Likewise. * m4/ceill.m4 (gl_FUNC_CEILL: Likewise. * lib/math.in.h: Test REPLACE_CEILF instead of HAVE_DECL_CEILF. Test REPLACE_CEILL instead of HAVE_DECL_CEILL. Test REPLACE_FLOORF instead of HAVE_DECL_FLOORF. Test REPLACE_FLOORL instead of HAVE_DECL_FLOORL. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Update. * modules/math (Makefile.am): Substitute REPLACE_CEILF instead of HAVE_DECL_CEILF, REPLACE_CEILL instead of HAVE_DECL_CEILL, REPLACE_FLOORF instead of HAVE_DECL_FLOORF, REPLACE_FLOORL instead of HAVE_DECL_FLOORL. 2007-10-28 Bruno Haible * m4/floorl.m4 (gl_FUNC_FLOORL_LIBS): New macro, extracted from gl_FUNC_FLOORL. Cache the result. (gl_FUNC_FLOORL): Use it. * m4/ceill.m4 (gl_FUNC_CEILL_LIBS): New macro, extracted from gl_FUNC_CEILL. Cache the result. (gl_FUNC_CEILL): Use it. * m4/floor.m4 (gl_FUNC_FLOOR_LIBS): New macro, extracted from gl_FUNC_FLOOR. Cache the result. (gl_FUNC_FLOOR): Use it. * m4/ceil.m4 (gl_FUNC_CEIL_LIBS): New macro, extracted from gl_FUNC_CEIL. Cache the result. (gl_FUNC_CEIL): Use it. * m4/floorf.m4 (gl_FUNC_FLOORF_LIBS): New macro, extracted from gl_FUNC_FLOORF. Cache the result. (gl_FUNC_FLOORF): Use it. * m4/ceilf.m4 (gl_FUNC_CEILF_LIBS): New macro, extracted from gl_FUNC_CEILF. Cache the result. (gl_FUNC_CEILF): Use it. 2007-10-28 Bruno Haible * gnulib-tool: Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3. (func_usage): Document --lgpl with argument. Handle --lgpl=... arguments. (func_import): Recognize also gl_LGPL calls with an argument. When --lgpl=2 is used and the module's license is just LGPL, report an error. Set sed_transform_lib_file according to the lgpl variable. In the generated files, use --lgpl or gl_LGPL invocations with argument, if necessary. * doc/gnulib-intro.texi (Copyright): Explain how to get modules under an LGPv2+ license. * doc/gnulib-tool.texi (Modified imports): Update explanation of gl_LGPL macro. 2007-10-28 Ralf Wildenhues Bruno Haible * lib/unistr.h (u8_uctomb_aux): Declare also if !HAVE_INLINE. (u16_uctomb_aux): Likewise. * lib/unistr/u8-uctomb-aux.c (u8_uctomb_aux): Define also if !HAVE_INLINE. * lib/unistr/u16-uctomb-aux.c (u16_uctomb_aux): Likewise 2007-10-28 Bruno Haible * modules/error: Add a notice recommending to change XGETTEXT_OPTIONS. Invoke AM_GETTEXT_OPTION if it exists. * modules/vasprintf: Likewise. * modules/verror: Likewise. * modules/xprintf: Likewise. * modules/xvasprintf: Likewise. 2007-10-27 Ben Pfaff * lib/math.in.h: Define isfinite macro and prototypes for gl_isfinitef, gl_isfinited, gl_isfinitel if we are providing implementations. * m4/math_h.m4: New substitutions for isfinite module. * lib/isfinite.c: New file. * m4/isfinite.m4: New file. * modules/math: Replace isfinite-related @VARS@ in math.in.h. * modules/isfinite: New file. * modules/isfinite-tests: New file. * tests/tests-isfinite.c: New file. * doc/functions/isfinite.texi: Mention isfinite module. * MODULES.html.sh: Mention new module. 2007-10-27 Ben Pfaff Ralf Wildenhues reported that Tru64 4.0D declares the round functions but does not have definitions. * m4/check-math-lib.m4 (gl_CHECK_MATH_LIB): If the target function cannot be found in any library, set the output variable to "missing" instead of "". * m4/round.m4: Also use our substitute if we cannot find round in any library, even if it is declared. * m4/roundf.m4: Likewise for roundf. * m4/roundl.m4: Likewise for roundl. * lib/math.in.h: Undefine roundf, round, roundl before defining their replacements, to allow for hypothetical systems where these may be defined as macros but not available in libraries. 2007-10-27 Bruno Haible * doc/gnulib.texi: Invoke @firstparagraphindent. * doc/gnulib-tool.texi (Simple update): Mention possible incompatible changes in gnulib. (Source changes): New section. 2007-10-26 Bruno Haible * m4/gnulib-common.m4 (AC_C_RESTRICT): New overriding definition, borrowed from autoconf. 2007-10-26 Bruno Haible * lib/strerror.c (rpl_strerror): Return "Unknown error ..." also if strerror returned the empty string. Needed on HP-UX 11.00. 2007-10-24 Micah Cowan Remove vestiges of cvs-gnulib-checkout process. Now we use git. * build-aux/bootstrap: Remove support for now-unnecessary option, --cvs-user, and envvars CVS_USER, CVS_RSH. 2007-10-24 Jim Meyering Avoid diagnostics from sha1sum when there is no cached checksum. * build-aux/bootstrap (update_po_files): Skip the sha1sum check if the po.s1 file hasn't been created yet. * build-aux/bootstrap: Sync from coreutils: 2007-10-24 Jim Meyering Get gnulib from the git repository, not from an obsolete cvs one. * build-aux/bootstrap: Suggestion from Micah Cowan. 2007-10-04 Jim Meyering * build-aux/bootstrap (slurp): Adapt to _.h -> .in.h name change. (update_po_files): Work also when there are no .po files in po/. 2007-10-24 Paul Eggert * README: Append ".git" to git and cg examples. Problem reported by Benoit Sigoure. 2007-10-23 Micah Cowan * users.txt: Add wget. 2007-10-23 Ralf Wildenhues Fix linking of some unistdio tests on FreeBSD. * modules/unistdio/u16-vsnprintf-tests (test_u16_vsprintf1_LDADD): Add @LIBINTL@. * modules/unistdio/u16-vsprintf-tests (test_u16_vsnprintf1_LDADD): Likewise. * modules/unistdio/u32-vsnprintf-tests (test_u32_vsnprintf1_LDADD): Likewise. * modules/unistdio/u32-vsprintf-tests (test_u32_vsprintf1_LDADD): Likewise. * modules/unistdio/u8-vsnprintf-tests (test_u8_vsnprintf1_LDADD): Likewise. * modules/unistdio/u8-vsprintf-tests (test_u8_vsprintf1_LDADD): Likewise. * modules/unistdio/ulc-vsnprintf-tests (test_ulc_vsnprintf1_LDADD): Likewise. * modules/unistdio/ulc-vsprintf-tests (test_ulc_vsprintf1_LDADD): Likewise. Fix linking of some uniconv tests on FreeBSD. * modules/uniconv/u16-conv-from-enc-tests (test_u16_conv_from_enc_LDADD): Link $(LDADD) before @LIBICONV@. * modules/uniconv/u16-conv-to-enc-tests (test_u16_conv_to_enc_LDADD): Likewise. * modules/uniconv/u16-strconv-from-enc-tests (test_u16_strconv_from_enc_LDADD): Likewise. * modules/uniconv/u16-strconv-to-enc-tests (test_u16_strconv_to_enc_LDADD): Likewise. * modules/uniconv/u32-conv-from-enc-tests (test_u32_conv_from_enc_LDADD): Likewise. * modules/uniconv/u32-conv-to-enc-tests (test_u32_conv_to_enc_LDADD): Likewise. * modules/uniconv/u32-strconv-from-enc-tests (test_u32_strconv_from_enc_LDADD): Likewise. * modules/uniconv/u32-strconv-to-enc-tests (test_u32_strconv_to_enc_LDADD): Likewise. * modules/uniconv/u8-conv-from-enc-tests (test_u8_conv_from_enc_LDADD): Likewise. * modules/uniconv/u8-conv-to-enc-tests (test_u8_conv_to_enc_LDADD): Likewise. * modules/uniconv/u8-strconv-from-enc-tests (test_u8_strconv_from_enc_LDADD): Likewise. * modules/uniconv/u8-strconv-to-enc-tests (test_u8_strconv_to_enc_LDADD): Likewise. 2007-10-22 Bruno Haible * lib/stdint.in.h: Add check that intmax_t and uintmax_t have the same size. 2007-10-22 Eric Blake Tweak x*printf documentation. * lib/xprintf.c (xprintf, xvprintf, xfprintf, xvfprintf): Adjust variable name and comments. Suggested by Bruno Haible. 2007-10-22 Bruno Haible * lib/acl.c (copy_acl): Fix file name in comment. 2007-10-22 Paul Eggert Fix Tru64 problem with stdbool.h. * lib/stdbool.in.h (false, true): [! (defined __cplusplus || defined __BEOS__) && !defined __GNUC__]: Don't declare as an enum in this situation; it runs afoul of Tru64. Problem reported by Steven M. Schweda in . 2007-10-22 Eric Blake Also wrap vf?printf. * lib/xprintf.h (xvprintf, xvfprintf): New declarations. * lib/xprintf.c (xprintf, xfprintf): Work for C89. (xvprintf, xvfprintf): New functions. 2007-10-22 Ralf Wildenhues * modules/fstrcmp-tests (test_fstrcmp_LDADD): New, add @LIBINTL@ for FreeBSD 6.2, $(LIBTHREAD) for AIX 4.3.3. * lib/uniconv/u16-conv-to-enc.c (U_MBLEN): Define. * lib/uniconv/u32-conv-to-enc.c (U_MBLEN): Likewise. 2007-10-22 Paul Eggert * lib/acl.c (copy_acl): Adjust to IRIX 6.5. Problem reported by Bruno Haible. 2007-10-22 Ralf Wildenhues * lib/getloadavg.c [defined (__osf__) && (defined (__alpha) || defined (__alpha__)]: Undef `sys' after including sys/table.h, for Tru64 4.0D. * tests/test-i-ring.c: Work for C89. 2007-10-22 Bruno Haible * m4/ulonglong.m4 (AC_TYPE_UNSIGNED_LONG_LONG_INT): Use -1ull, not -1u, in preprocessor expression, so that we don't test for the bug in HP-UX 11.00 cpp. Testing for this bug caused problems; see . 2007-10-22 Eric Blake * tests/test-yesno.sh: Silence stderr during test. 2007-10-22 Simon Josefsson * modules/crypto/gc-camellia: New file. * m4/gc-camellia.m4: New file. * lib/gc-libgcrypt.c (gc_cipher_open): Support Camellia. * lib/gc.h (enum Gc_cipher): Add GC_CAMELLIA128, GC_CAMELLIA256. 2007-10-22 Simon Josefsson * build-aux/maint.mk (gzip_rsyncable): Don't fail if gzip sends --help to stdout. Reported by sms@antinode.org (Steven M. Schweda). 2007-10-22 Simon Josefsson * users.txt: Fix link to libksba. 2007-10-21 Ben Pfaff * modules/roundf-tests: Add dependency on floorf, ceilf to allow round.c roundf implementation that depends on floorf and ceilf to be tested unconditionally. 2007-10-21 Ben Pfaff * m4/check-libm-func.m4: Removed. * m4/check-math-lib.m4: New file. * m4/round.m4: Rewrite to use gl_CHECK_MATH_LIB. * m4/roundf.m4: Ditto, and fix lack of HAVE_DECL_ROUNDF definition and lack of AC_LIBOBJ([roundf]). * m4/roundl.m4: Ditto, and similarly for roundl. * modules/round: Reference new m4 file. * modules/roundf: Ditto. * modules/roundl: Ditto. * tests/test-round2.c (main): Use ROUND instead of round. Bug report from Bruno Haible. 2007-10-21 Bruno Haible * lib/printf-parse.c: Don't assume exists in IN_LIBASPRINTF context. 2007-10-21 Bruno Haible * tests/test-wcwidth.c (main): Allow negative result for some control characters. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Check also the width of U+200B. Needed on OSF/1 5.1. 2007-10-21 Bruno Haible * tests/test-floorf1.c: Include isnanf.h. (main): Use isnanf() instead of isnan(). * tests/test-ceilf1.c: Include isnanf.h. (main): Use isnanf() instead of isnan(). * tests/test-truncf1.c: Include isnanf.h. (main): Use isnanf() instead of isnan(). * tests/test-roundf1.c: Include isnanf.h. (main): Use isnanf() instead of isnan(). 2007-10-21 Eric Blake * users.txt: Update URL for m4. 2007-10-21 Bruno Haible * users.txt: Add clisp. Update URLs to Simon Josefsson's projects. 2007-10-21 Bruno Haible * gnulib-tool (func_create_megatestdir): Determine the cvsdate from Git's management files if the CVS files are not present. 2007-10-20 Bruno Haible * lib/count-one-bits.h (COUNT_ONE_BITS): Use the builtin also for gcc-3.4.x. 2007-10-20 Ben Pfaff * lib/math.in.h: Declare round, roundf, roundl if we are providing implementations. * m4/math_h.m4: New substitutions for round, roundf, roundl modules. * lib/round.c: New file. * lib/roundf.c: New file. * lib/roundl.c: New file. * m4/round.m4: New file. * m4/roundf.m4: New file. * m4/roundl.m4: New file. * m4/check-libm-func-m4: New file. * modules/math: Replace round, roundf, roundl related @VARS@ in math.in.h. * modules/round: New file. * modules/round-tests: New file. * modules/roundf: New file. * modules/roundf-tests: New file. * modules/roundl: New file. * modules/roundl-tests: New file. * tests/test-round1.c: New file. * tests/test-round2.c: New file. * tests/test-roundf1.c: New file. * tests/test-roundf2.c: New file. * tests/test-roundl.c: New file. * doc/functions/round.texi: Mention round module. * doc/functions/roundf.texi: Mention roundf module. * doc/functions/roundl.texi: Mention roundl module. * MODULES.html.sh: Mention new modules. Thanks to Bruno Haible for suggestions. 2007-10-20 Jim Meyering * lib/xprintf.c: Include unconditionally. Change xprintf's license to GPL. * modules/xprintf (License): s/LGPL/GPL/, since this module depends on modules (exit and exitfail) which are GPL. Suggestion from Bruno Haible. xprintf fixes. * lib/xprintf.c (xprintf, xfprintf): Use va_end. Use a clearer diagnostic. Patch from Bruno Haible. 2007-10-20 Bruno Haible * lib/vasnprintf.c (VASNPRINTF): Don't report overflow if the available length is INT_MAX and sizeof (DCHAR_T) > sizeof (TCHAR_T). Reported by Ralf Wildenhues . 2007-10-20 Bruno Haible * tests/test-floorf2.c (correct_result_p): Don't rely on excess precision in the comparison result > x - 1 or similar. * tests/test-ceilf2.c (correct_result_p): Likewise. * tests/test-truncf2.c (correct_result_p): Likewise. * tests/test-trunc2.c (correct_result_p): Likewise. Reported by Ralf Wildenhues . 2007-10-20 Bruno Haible * modules/ceil: New file. * m4/ceil.m4: New file. * doc/functions/ceil.texi: Mention the 'ceil' module. 2007-10-20 Bruno Haible * modules/floor: New file. * m4/floor.m4: New file. * doc/functions/floor.texi: Mention the 'floor' module. 2007-10-20 Bruno Haible * modules/ceilf-tests (Depends-on): Add fprintf-posix. Needed for use of %a. * modules/floorf-tests (Depends-on): Likewise. * modules/truncf-tests (Depends-on): Likewise. * modules/trunc-tests (Depends-on): Likewise. Reported by Ben Pfaff. 2007-10-19 Jim Meyering * lib/xprintf.c (xprintf, xfprintf): Test err < 0, not just "err". Don't bother testing specific errno values. Just test ferror. New module: xprintf * modules/xprintf, lib/xprintf.c, lib/xprintf.h: New files. 2007-10-19 Bruno Haible * modules/csharpexec (Makefile.am): Use @FOO@ syntax instead of $(FOO) syntax. * modules/javaexec (Makefile.am): Likewise. * modules/relocatable-prog (Makefile.am): Likewise. Suggested by Jim Meyering. 2007-10-18 Bruno Haible * lib/vasnprintf.c (VASNPRINTF): Don't use %n on glibc >= 2.3 systems. Reported by Jim Meyering. 2007-10-18 Eric Blake * modules/filenamecat-tests (Makefile.am): Link against -lintl. 2007-10-18 Bruno Haible * m4/printf.m4 (gl_PRINTF_DIRECTIVE_N, gl_SNPRINTF_DIRECTIVE_N): Put the format string into writable memory. Needed in Fortify conditions. 2007-10-18 Colin Watson (tiny change) Bruno Haible * lib/trim.c: Include config.h unconditionally. Include trim.h always. Include ctype.h always. Include stdlib.h, not mbuiter.h, for MB_CUR_MAX. * modules/trim (Depends-on): Add mbchar. (configure.ac): Add gl_FUNC_MBRTOWC. (Makefile.am): Augment lib_SOURCES. 2007-10-17 Paul Eggert Modify glob.c to use fstatat and dirfd, to simplify it. Suggested by Eric Blake. * lib/glob.c (__fxstatat64) [!_LIBC]: New macro. Don't include ; not used. (link_exists2_p, glob_in_dir) [!_LIBC]: No longer a special case. (link_exists_p): Simplify implementation, since we can now assume dirfd and fstatat. * modules/glob (Depends-on): Add dirfd, openat. Remove stdbool. 2007-10-17 Ralf Wildenhues * gnulib-tool (func_get_dependencies): Fix sed script to match only tests. 2007-10-17 Bruno Haible * m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): On Cygwin, don't allow locale names without encoding suffix. * m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Likewise. * m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Likewise. 2007-10-16 Bruno Haible * lib/getcwd.c (__getcwd): Define with explicit rpl_ prefix. * lib/getgroups.c (getgroups): Likewise. * lib/gettimeofday.c (localtime, gmtime, tzset): Likewise. 2007-10-16 Bruno Haible * modules/absolute-header (License): Change from LGPL to LGPLv2+. * modules/malloc-posix (License): Likewise. * modules/realloc-posix (License): Likewise. * modules/calloc-posix (License): Likewise. * modules/intprops (License): Change from GPL to LGPL, with Paul Eggert's approval. 2007-10-16 Paul Eggert Merge glibc changes into lib/glob.c. * lib/glob.c (glob_in_dir): Sync with glibc/posix/glob.c, dated 2007-10-15 04:59:03 UTC. Here are the changes: 2007-10-14 Ulrich Drepper * lib/glob.c: Reimplement link_exists_p to use fstatat64. * lib/glob.c: Add some branch prediction throughout. 2007-10-07 Ulrich Drepper [BZ #5103] * lib/glob.c (glob): Recognize patterns starting \/. 2007-02-14 Jakub Jelinek [BZ #3996] * lib/glob.c (attribute_hidden): Define if not defined. (glob): Unescape dirname, filename or username when needed and not GLOB_NOESCAPE. Handle \/ correctly. Handle GLOB_MARK if filename is NULL. Handle unescaped [ in pattern without closing ]. Don't pass GLOB_CHECK down to recursive glob for directories. (__glob_pattern_type): New function. (__glob_pattern_p): Implement using __glob_pattern_type. (glob_in_dir): Handle GLOB_NOCHECK patterns containing no meta characters and backslashes if not GLOB_NOESCAPE or unterminated [. Remove unreachable code. 2006-09-30 Ulrich Drepper * lib/glob.c (glob_in_dir): Add some comments and asserts to explain why there are no leaks. 2006-09-25 Jakub Jelinek [BZ #3253] * lib/glob.c (glob_in_dir): Don't alloca one struct globlink at a time, rather allocate increasingly bigger arrays of pointers, if possible with alloca, if too large with malloc. 2007-10-16 Paul Eggert Check for 64-bit int errors in HP-UX 10.20 preprocessor. Problem reported by H.Merijn Brand in . * m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Check preprocessor too. * m4/ulonglong.m4 (AC_TYPE_UNSIGNED_LONG_LONG_INT): Likewise. 2007-10-15 Bruno Haible * lib/fchdir.c (close, open, closedir, opendir, dup, dup2): Define with explicit rpl_ prefix. * lib/fopen.c (fopen): Likewise. * lib/freopen.c (freopen): Likewise. * lib/iconv.c (iconv): Likewise. * lib/iconv_close.c (iconv_close): Likewise. 2007-10-15 Ralf Wildenhues * m4/iconv_open (gl_FUNC_ICONV_OPEN_UTF): Fix cache variable name. 2007-10-15 Bruno Haible * m4/getaddrinfo.m4 (gl_GETADDRINFO, gl_PREREQ_GETADDRINFO): Use instead of since we only need NULL. Reported by Ben Pfaff . 2007-10-15 Bruno Haible * doc/gnulib-tool.texi (Initial import): Swap order of -I directives. Replace paragraph talking about LIBOBJS. Reported by Colin Watson . 2007-10-15 Bruno Haible * m4/getaddrinfo.m4 (gl_GETADDRINFO, gl_PREREQ_GETADDRINFO): Include before using NULL. 2007-10-15 Simon Josefsson * m4/getaddrinfo.m4: Use NULL rather than 0 for pointers. Reported by Albert Chin . 2007-10-14 Bruno Haible * modules/iconv_open-utf-tests: New file. * tests/test-iconv-utf.c: New file. Enhance iconv_open to support UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE. * modules/iconv_open-utf: New file. * lib/iconv.in.h (_ICONV_UTF8_UTF*, _ICONV_UTF*_UTF8): New macros. (iconv, iconv_close): New declarations. * lib/iconv_open.c: Include c-strcase.h. Don't require ICONV_FLAVOR to be defined. (iconv_open): Add special handling of conversion between UTF-8 and UTF-{16,32}{BE,LE}. * lib/iconv.c: New file, incorporating code from GNU libiconv 1.11. * lib/iconv_close.c: New file. * m4/iconv_open.m4 (gl_REPLACE_ICONV_OPEN): New macro, extracted from gl_FUNC_ICONV_OPEN. (gl_FUNC_ICONV_OPEN): Use it. (gl_FUNC_ICONV_OPEN_UTF): New macro. * m4/iconv_h.m4 (gl_ICONV_H_DEFAULTS): Initialize also REPLACE_ICONV and REPLACE_ICONV_UTF. * modules/iconv_open (Depends-on): Add c-strcase. (Makefile.am): Substitute also REPLACE_ICONV, REPLACE_ICONV_UTF, ICONV_CONST. * doc/functions/iconv_open.texi: Mention the iconv_open-utf module. 2007-10-13 Albert Chin Bruno Haible * m4/getaddrinfo.m4 (gl_GETADDRINFO): Perform the test for getaddrinfo through a link check that includes . Needed for OSF/1 5.1. 2007-10-13 Bruno Haible * lib/argp-fmtstream.h (ARGP_FS_EI): If __GNUC_STDC_INLINE__ is defined, use the ISO C99 inline semantics. * lib/argp.h (ARGP_EI): Likewise. 2007-10-13 Bruno Haible Handle 'inline' change in gcc 4.3.0. * lib/argp-fmtstream.h (argp_fmtstream_putc, argp_fmtstream_puts, argp_fmtstream_write, argp_fmtstream_set_lmargin, argp_fmtstream_set_rmargin, argp_fmtstream_set_wmargin, argp_fmtstream_point): Disable 'extern' declaration if the function definition is going to be provided inline. (ARGP_FS_EI): If __GNUC_STDC_INLINE__ is defined, use the GNU C inline semantics, not the ISO C99 inline semantics. * lib/argp.h (argp_usage, _option_is_short, _option_is_end): Disable 'extern' declaration if the function definition is going to be provided inline. (ARGP_EI): Don't assume GNU C. If __GNUC_STDC_INLINE__ is defined, use the GNU C inline semantics, not the ISO C99 inline semantics. With GCC 4.2, avoid a warning. 2007-10-13 Bruno Haible * lib/freading.h (freading): Enable the use of __freading for glibc >= 2.7. * lib/freading.c (freading): Likewise. 2007-10-12 Paul Eggert * lib/argp-fmtstream.h (ARGP_FS_EI): Work around GCC 4.2.1 diagnostic "warning: C99 inline functions are not supported; using GNU89". 2007-10-12 Bruno Haible * lib/ceil.c (FUNC): Avoid rounding errors for values near a power of 2. * tests/test-ceilf2.c: New file. * modules/ceilf-tests: (Files, Depends-on, Makefile.am): Add new test. * tests/test-ceilf1.c: Renamed from tests/test-ceilf.c. * modules/ceilf-tests: Update. 2007-10-12 Bruno Haible * lib/floor.c (FUNC): Avoid rounding errors for values near a power of 2. * tests/test-floorf2.c: New file. * modules/floorf-tests: (Files, Depends-on, Makefile.am): Add new test. * tests/test-floorf1.c: Renamed from tests/test-floorf.c. * modules/floorf-tests: Update. 2007-10-12 Bruno Haible * tests/test-trunc2.c: New file. * modules/trunc-tests: (Files, Depends-on, Makefile.am): Add new test. * tests/test-trunc1.c: Renamed from tests/test-trunc.c. * modules/trunc-tests: Update. 2007-10-12 Bruno Haible * lib/trunc.c (FUNC): Avoid rounding errors for values near a power of 2. * tests/test-truncf2.c: New file. * modules/truncf-tests: (Files, Depends-on, Makefile.am): Add new test. * tests/test-truncf1.c: Renamed from tests/test-truncf.c. * modules/truncf-tests: Update. 2007-10-11 Eric Blake Don't claim strerror is broken on Interix. * doc/functions/strerror.texi (strerror): Known broken systems are now Solaris 8, and not Interix. * m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): No longer filter out Interix on cross-compile. Reported by Martin Koeppe in http://lists.gnu.org/r/bug-gnulib/2007-10/msg00005.html. 2007-10-11 Bruno Haible * modules/i-ring-tests: New file. * tests/test-i-ring.c: Renamed from lib/i-ring-test.c. Use ASSERT instead of assert. 2007-10-11 Bruno Haible * modules/filenamecat-tests: New file. * tests/test-filenamecat.c: New file, extracted from lib/filenamecat.c. * lib/filenamecat.c: Remove test code. 2007-10-11 Paul Eggert Simplify and modernize strerror substitute, partly to fix Solaris 8 bug. * lib/strerror.c: Include always, to test interface, and to remove the need for the dummy. Include intprops.h to compute width instead of doing it ourselves and missing a CHAR_BIT declaration, which broke tar 1.19 on Solaris 8. (strerror): Define it to return NULL if there's no system strerror. (rpl_strerror): Use INT_STRLEN_BOUND to compute bound. Omit !HAVE_STRERROR code. We don't need to worry about supporting ancient pre-strerror Unix systems well any more. Saying "unknown system error" is enough. * lib/string.in.h (strerror): Simplify the ifdef to reflect the simpler strerror.c implementation. * m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE, gl_PREREQ_STDERROR): Simplify the tests to reflect the simpler strerror implementation. * modules/strerror (Depends-on): Add intprops. 2007-10-09 Eric Blake Silence test-fpending. * modules/fpending-tests (Files): Add wrapper script. * tests/test-fpending.sh: New file. 2007-10-09 Bruno Haible * MODULES.html.sh (func_module): Don't create a hyperlink for function names like 'printf_frexp'. (Misc): Add crc, memxor. (Characteristics of floating types): New section. (Mathematics): Add ceilf, ceill, floorf, floorl, frexpl-nolibm, isnanf-nolibm, signbit, trunc, truncf, truncl. (Enhancements for ISO C 99 functions): New subsection Input/output. (Support for systems lacking POSIX:2001): Add arpa_inet, calloc-posix, fcntl, fopen, freopen, fseek, fseeko, ftell, ftello, iconv_open, locale, malloc-posix, netinet_in, open, realloc-posix, signal, sleep. (Compatibility checks for POSIX:2001 functions): Add clock-time. (Enhancements for POSIX:2001 functions): Add chdir-long. (File system functions): Add areadlink, chdir-safer, read-file. Remove cycle-check. (File system as inode set): New section. (Date and time): Add gethrxtime. (Multithreading): Add openmp. (Internationalization functions): Add localename. (Unicode string functions): Add unistr/u*-mbsnlen. (Support for maintaining and releasing projects): Add git-version-gen. (Lone files): Remove directories. 2007-10-08 Ben Pfaff * lib/xmalloca.h: Fix typo in comment. 2007-10-08 Paul Eggert * lib/xnanosleep.c (xnanosleep): Don't assume GCC 4.3.0 behavior when avoiding problems with integer overflow. Use a portable test instead. 2007-10-08 Simon Josefsson * modules/dummy (License): Change to LGPLv2+. * modules/float (License): Likewise * modules/realloc (License): Likewise * modules/stdlib (License): Likewise 2007-10-07 Bruno Haible * trunc.c (TWO_MANT_DIG): Change type to DOUBLE. * floor.c (TWO_MANT_DIG): Likewise. * ceil.c (TWO_MANT_DIG): Likewise. Reported by Ben Pfaff. 2007-10-07 Bruno Haible Avoid gcc warnings "declaration of 'exp' shadows a global declaration". * lib/math.in.h (frexp, frexpl): Change parameter name to 'expptr'. * lib/frexp.c (FUNC): Likewise. * lib/printf-frexp.h (printf_frexp): Likewise. * lib/printf-frexpl.h (printf_frexpl): Likewise. * lib/printf-frexp.c (FUNC): Likewise. Suggested by Jim Meyering. 2007-10-07 Jim Meyering Make xnanosleep's integer overflow test more robust. * lib/xnanosleep.c (xnanosleep): Declare a temporary to be "volatile", so that gcc-4.3.0 doesn't optimize away this test for overflow. 2007-10-07 Bruno Haible * NEWS: Mention the license change. * doc/gnulib-intro.texi (Copyright): Update the meaning of the license abbreviations in the modules files. Change copyright notice from GPLv2+ to GPLv3+. * README: Change copyright notice. * MODULES.html.sh: Likewise. * build-aux/bootstrap.conf: Likewise. * build-aux/config.libpath: Likewise. * build-aux/csharpcomp.sh.in: Likewise. * build-aux/csharpexec.sh.in: Likewise. * build-aux/install-reloc: Likewise. * build-aux/javacomp.sh.in: Likewise. * build-aux/javaexec.sh.in: Likewise. * build-aux/ldd.sh.in: Likewise. * build-aux/reloc-ldflags: Likewise. * build-aux/relocatable.sh.in: Likewise. * build-aux/x-to-1.in: Likewise. * check-module: Likewise. * config/srclistvars.sh: Likewise. * gnulib-tool: Likewise. * lib/acl-internal.h: Likewise. * lib/acl.c: Likewise. * lib/acl.h: Likewise. * lib/acl_entries.c: Likewise. * lib/areadlink-with-size.c: Likewise. * lib/areadlink.c: Likewise. * lib/areadlink.h: Likewise. * lib/argmatch.c: Likewise. * lib/argmatch.h: Likewise. * lib/argp-ba.c: Likewise. * lib/argp-eexst.c: Likewise. * lib/argp-fmtstream.c: Likewise. * lib/argp-fmtstream.h: Likewise. * lib/argp-fs-xinl.c: Likewise. * lib/argp-help.c: Likewise. * lib/argp-namefrob.h: Likewise. * lib/argp-parse.c: Likewise. * lib/argp-pin.c: Likewise. * lib/argp-pv.c: Likewise. * lib/argp-pvh.c: Likewise. * lib/argp-xinl.c: Likewise. * lib/argp.h: Likewise. * lib/at-func.c: Likewise. * lib/atanl.c: Likewise. * lib/backupfile.c: Likewise. * lib/backupfile.h: Likewise. * lib/basename.c: Likewise. * lib/binary-io.h: Likewise. * lib/byteswap.in.h: Likewise. * lib/c-stack.c: Likewise. * lib/c-stack.h: Likewise. * lib/c-strcasestr.c: Likewise. * lib/c-strcasestr.h: Likewise. * lib/c-strstr.c: Likewise. * lib/c-strstr.h: Likewise. * lib/c-strtod.c: Likewise. * lib/calloc.c: Likewise. * lib/canon-host.c: Likewise. * lib/canon-host.h: Likewise. * lib/canonicalize-lgpl.c: Likewise. * lib/canonicalize.c: Likewise. * lib/canonicalize.h: Likewise. * lib/ceil.c: Likewise. * lib/ceilf.c: Likewise. * lib/ceill.c: Likewise. * lib/chdir-long.c: Likewise. * lib/chdir-long.h: Likewise. * lib/chdir-safer.c: Likewise. * lib/chdir-safer.h: Likewise. * lib/chown.c: Likewise. * lib/classpath.c: Likewise. * lib/classpath.h: Likewise. * lib/clean-temp.c: Likewise. * lib/clean-temp.h: Likewise. * lib/cloexec.c: Likewise. * lib/close-stream.c: Likewise. * lib/closein.c: Likewise. * lib/closein.h: Likewise. * lib/closeout.c: Likewise. * lib/closeout.h: Likewise. * lib/concat-filename.c: Likewise. * lib/copy-file.c: Likewise. * lib/copy-file.h: Likewise. * lib/count-one-bits.h: Likewise. * lib/crc.c: Likewise. * lib/crc.h: Likewise. * lib/creat-safer.c: Likewise. * lib/csharpcomp.c: Likewise. * lib/csharpcomp.h: Likewise. * lib/csharpexec.c: Likewise. * lib/csharpexec.h: Likewise. * lib/cycle-check.c: Likewise. * lib/cycle-check.h: Likewise. * lib/diacrit.c: Likewise. * lib/diacrit.h: Likewise. * lib/diffseq.h: Likewise. * lib/dirchownmod.c: Likewise. * lib/dirent.in.h: Likewise. * lib/dirfd.c: Likewise. * lib/dirfd.h: Likewise. * lib/dirname.c: Likewise. * lib/dirname.h: Likewise. * lib/dummy.c: Likewise. * lib/dup-safer.c: Likewise. * lib/dup2.c: Likewise. * lib/eealloc.h: Likewise. * lib/error.c: Likewise. * lib/error.h: Likewise. * lib/euidaccess.c: Likewise. * lib/exclude.c: Likewise. * lib/exclude.h: Likewise. * lib/execute.c: Likewise. * lib/execute.h: Likewise. * lib/exitfail.c: Likewise. * lib/exitfail.h: Likewise. * lib/expl.c: Likewise. * lib/fatal-signal.c: Likewise. * lib/fatal-signal.h: Likewise. * lib/fbufmode.c: Likewise. * lib/fbufmode.h: Likewise. * lib/fchdir.c: Likewise. * lib/fchmodat.c: Likewise. * lib/fchownat.c: Likewise. * lib/fcntl--.h: Likewise. * lib/fcntl-safer.h: Likewise. * lib/fcntl.in.h: Likewise. * lib/fd-safer.c: Likewise. * lib/fflush.c: Likewise. * lib/file-has-acl.c: Likewise. * lib/file-set.c: Likewise. * lib/file-type.c: Likewise. * lib/file-type.h: Likewise. * lib/fileblocks.c: Likewise. * lib/filemode.c: Likewise. * lib/filemode.h: Likewise. * lib/filename.h: Likewise. * lib/filenamecat.c: Likewise. * lib/filenamecat.h: Likewise. * lib/findprog.c: Likewise. * lib/findprog.h: Likewise. * lib/float.in.h: Likewise. * lib/floor.c: Likewise. * lib/floorf.c: Likewise. * lib/floorl.c: Likewise. * lib/fopen-safer.c: Likewise. * lib/fopen.c: Likewise. * lib/fpending.c: Likewise. * lib/fpending.h: Likewise. * lib/fprintf.c: Likewise. * lib/fprintftime.h: Likewise. * lib/fpucw.h: Likewise. * lib/fpurge.c: Likewise. * lib/fpurge.h: Likewise. * lib/freadable.c: Likewise. * lib/freadable.h: Likewise. * lib/freadahead.c: Likewise. * lib/freadahead.h: Likewise. * lib/freading.c: Likewise. * lib/freading.h: Likewise. * lib/free.c: Likewise. * lib/freopen.c: Likewise. * lib/frexp.c: Likewise. * lib/frexpl.c: Likewise. * lib/fseek.c: Likewise. * lib/fseterr.c: Likewise. * lib/fseterr.h: Likewise. * lib/fstatat.c: Likewise. * lib/fstrcmp.c: Likewise. * lib/fstrcmp.h: Likewise. * lib/fsusage.c: Likewise. * lib/fsusage.h: Likewise. * lib/ftell.c: Likewise. * lib/ftello.c: Likewise. * lib/fts-cycle.c: Likewise. * lib/fts.c: Likewise. * lib/fts_.h: Likewise. * lib/full-read.c: Likewise. * lib/full-read.h: Likewise. * lib/full-write.c: Likewise. * lib/full-write.h: Likewise. * lib/fwritable.c: Likewise. * lib/fwritable.h: Likewise. * lib/fwriteerror.c: Likewise. * lib/fwriteerror.h: Likewise. * lib/fwriting.c: Likewise. * lib/fwriting.h: Likewise. * lib/gcd.c: Likewise. * lib/gcd.h: Likewise. * lib/getcwd.c: Likewise. * lib/getdate.h: Likewise. * lib/getdate.y: Likewise. * lib/getdomainname.c: Likewise. * lib/getdomainname.h: Likewise. * lib/getgroups.c: Likewise. * lib/gethostname.c: Likewise. * lib/gethrxtime.c: Likewise. * lib/gethrxtime.h: Likewise. * lib/getloadavg.c: Likewise. * lib/getndelim2.c: Likewise. * lib/getndelim2.h: Likewise. * lib/getnline.c: Likewise. * lib/getnline.h: Likewise. * lib/getopt.c: Likewise. * lib/getopt.in.h: Likewise. * lib/getopt1.c: Likewise. * lib/getopt_int.h: Likewise. * lib/getpagesize.h: Likewise. * lib/getsubopt.c: Likewise. * lib/gettime.c: Likewise. * lib/getugroups.c: Likewise. * lib/getugroups.h: Likewise. * lib/getusershell.c: Likewise. * lib/gl_anyavltree_list1.h: Likewise. * lib/gl_anyavltree_list2.h: Likewise. * lib/gl_anyhash_list1.h: Likewise. * lib/gl_anyhash_list2.h: Likewise. * lib/gl_anylinked_list1.h: Likewise. * lib/gl_anylinked_list2.h: Likewise. * lib/gl_anyrbtree_list1.h: Likewise. * lib/gl_anyrbtree_list2.h: Likewise. * lib/gl_anytree_list1.h: Likewise. * lib/gl_anytree_list2.h: Likewise. * lib/gl_anytree_oset.h: Likewise. * lib/gl_anytreehash_list1.h: Likewise. * lib/gl_anytreehash_list2.h: Likewise. * lib/gl_array_list.c: Likewise. * lib/gl_array_list.h: Likewise. * lib/gl_array_oset.c: Likewise. * lib/gl_array_oset.h: Likewise. * lib/gl_avltree_list.c: Likewise. * lib/gl_avltree_list.h: Likewise. * lib/gl_avltree_oset.c: Likewise. * lib/gl_avltree_oset.h: Likewise. * lib/gl_avltreehash_list.c: Likewise. * lib/gl_avltreehash_list.h: Likewise. * lib/gl_carray_list.c: Likewise. * lib/gl_carray_list.h: Likewise. * lib/gl_linked_list.c: Likewise. * lib/gl_linked_list.h: Likewise. * lib/gl_linkedhash_list.c: Likewise. * lib/gl_linkedhash_list.h: Likewise. * lib/gl_list.c: Likewise. * lib/gl_list.h: Likewise. * lib/gl_oset.c: Likewise. * lib/gl_oset.h: Likewise. * lib/gl_rbtree_list.c: Likewise. * lib/gl_rbtree_list.h: Likewise. * lib/gl_rbtree_oset.c: Likewise. * lib/gl_rbtree_oset.h: Likewise. * lib/gl_rbtreehash_list.c: Likewise. * lib/gl_rbtreehash_list.h: Likewise. * lib/gl_sublist.c: Likewise. * lib/gl_sublist.h: Likewise. * lib/group-member.c: Likewise. * lib/group-member.h: Likewise. * lib/hard-locale.c: Likewise. * lib/hard-locale.h: Likewise. * lib/hash-pjw.c: Likewise. * lib/hash-pjw.h: Likewise. * lib/hash-triple.c: Likewise. * lib/hash.c: Likewise. * lib/hash.h: Likewise. * lib/human.c: Likewise. * lib/human.h: Likewise. * lib/i-ring.c: Likewise. * lib/i-ring.h: Likewise. * lib/idcache.c: Likewise. * lib/imaxabs.c: Likewise. * lib/imaxdiv.c: Likewise. * lib/inet_pton.c: Likewise. * lib/inet_pton.h: Likewise. * lib/intprops.h: Likewise. * lib/inttostr.c: Likewise. * lib/inttostr.h: Likewise. * lib/inttypes.in.h: Likewise. * lib/isapipe.c: Likewise. * lib/isdir.c: Likewise. * lib/isnan.c: Likewise. * lib/isnan.h: Likewise. * lib/isnanf.c: Likewise. * lib/isnanf.h: Likewise. * lib/isnanl-nolibm.h: Likewise. * lib/isnanl.c: Likewise. * lib/isnanl.h: Likewise. * lib/javacomp.c: Likewise. * lib/javacomp.h: Likewise. * lib/javaexec.c: Likewise. * lib/javaexec.h: Likewise. * lib/javaversion.c: Likewise. * lib/javaversion.h: Likewise. * lib/javaversion.java: Likewise. * lib/lbrkprop.h: Likewise. * lib/lchmod.h: Likewise. * lib/lchown.c: Likewise. * lib/ldexpl.c: Likewise. * lib/linebreak.c: Likewise. * lib/linebreak.h: Likewise. * lib/linebuffer.c: Likewise. * lib/linebuffer.h: Likewise. * lib/locale.in.h: Likewise. * lib/logl.c: Likewise. * lib/long-options.c: Likewise. * lib/long-options.h: Likewise. * lib/lstat.c: Likewise. * lib/lstat.h: Likewise. * lib/math.in.h: Likewise. * lib/mbchar.c: Likewise. * lib/mbchar.h: Likewise. * lib/mbfile.h: Likewise. * lib/mbiter.h: Likewise. * lib/mbscasecmp.c: Likewise. * lib/mbscasestr.c: Likewise. * lib/mbschr.c: Likewise. * lib/mbscspn.c: Likewise. * lib/mbslen.c: Likewise. * lib/mbsncasecmp.c: Likewise. * lib/mbsnlen.c: Likewise. * lib/mbspbrk.c: Likewise. * lib/mbspcasecmp.c: Likewise. * lib/mbsrchr.c: Likewise. * lib/mbssep.c: Likewise. * lib/mbsspn.c: Likewise. * lib/mbsstr.c: Likewise. * lib/mbstok_r.c: Likewise. * lib/mbswidth.c: Likewise. * lib/mbswidth.h: Likewise. * lib/mbuiter.h: Likewise. * lib/memcasecmp.c: Likewise. * lib/memcasecmp.h: Likewise. * lib/memchr.c: Likewise. * lib/memcmp.c: Likewise. * lib/memcoll.c: Likewise. * lib/memcoll.h: Likewise. * lib/memcpy.c: Likewise. * lib/memrchr.c: Likewise. * lib/mkancesdirs.c: Likewise. * lib/mkdir-p.c: Likewise. * lib/mkdir-p.h: Likewise. * lib/mkdir.c: Likewise. * lib/mkdirat.c: Likewise. * lib/mkdtemp.c: Likewise. * lib/mkstemp-safer.c: Likewise. * lib/mkstemp.c: Likewise. * lib/modechange.c: Likewise. * lib/modechange.h: Likewise. * lib/mountlist.c: Likewise. * lib/mountlist.h: Likewise. * lib/mpsort.c: Likewise. * lib/nanosleep.c: Likewise. * lib/obstack.c: Likewise. * lib/obstack.h: Likewise. * lib/open-safer.c: Likewise. * lib/open.c: Likewise. * lib/openat-die.c: Likewise. * lib/openat-priv.h: Likewise. * lib/openat-proc.c: Likewise. * lib/openat.c: Likewise. * lib/openat.h: Likewise. * lib/pagealign_alloc.c: Likewise. * lib/pagealign_alloc.h: Likewise. * lib/physmem.c: Likewise. * lib/physmem.h: Likewise. * lib/pipe-safer.c: Likewise. * lib/pipe.c: Likewise. * lib/pipe.h: Likewise. * lib/posixtm.c: Likewise. * lib/posixtm.h: Likewise. * lib/posixver.c: Likewise. * lib/printf-frexp.c: Likewise. * lib/printf-frexp.h: Likewise. * lib/printf-frexpl.c: Likewise. * lib/printf-frexpl.h: Likewise. * lib/printf.c: Likewise. * lib/progname.c: Likewise. * lib/progname.h: Likewise. * lib/progreloc.c: Likewise. * lib/putenv.c: Likewise. * lib/quote.c: Likewise. * lib/quote.h: Likewise. * lib/quotearg.c: Likewise. * lib/quotearg.h: Likewise. * lib/raise.c: Likewise. * lib/readline.c: Likewise. * lib/readline.h: Likewise. * lib/readlink.c: Likewise. * lib/readtokens.c: Likewise. * lib/readtokens.h: Likewise. * lib/readtokens0.c: Likewise. * lib/readtokens0.h: Likewise. * lib/readutmp.c: Likewise. * lib/readutmp.h: Likewise. * lib/realloc.c: Likewise. * lib/relocwrapper.c: Likewise. * lib/rename-dest-slash.c: Likewise. * lib/rename.c: Likewise. * lib/rmdir.c: Likewise. * lib/rpmatch.c: Likewise. * lib/safe-read.c: Likewise. * lib/safe-read.h: Likewise. * lib/safe-write.c: Likewise. * lib/safe-write.h: Likewise. * lib/same-inode.h: Likewise. * lib/same.c: Likewise. * lib/same.h: Likewise. * lib/save-cwd.c: Likewise. * lib/save-cwd.h: Likewise. * lib/savedir.c: Likewise. * lib/savedir.h: Likewise. * lib/savewd.c: Likewise. * lib/savewd.h: Likewise. * lib/search.in.h: Likewise. * lib/setenv.c: Likewise. * lib/setenv.h: Likewise. * lib/settime.c: Likewise. * lib/sh-quote.c: Likewise. * lib/sh-quote.h: Likewise. * lib/sig2str.c: Likewise. * lib/sig2str.h: Likewise. * lib/signal.in.h: Likewise. * lib/signbitd.c: Likewise. * lib/signbitf.c: Likewise. * lib/signbitl.c: Likewise. * lib/sigprocmask.c: Likewise. * lib/sincosl.c: Likewise. * lib/sleep.c: Likewise. * lib/sprintf.c: Likewise. * lib/sqrtl.c: Likewise. * lib/stat-time.h: Likewise. * lib/stdio--.h: Likewise. * lib/stdio-safer.h: Likewise. * lib/stdlib--.h: Likewise. * lib/stdlib-safer.h: Likewise. * lib/stdlib.in.h: Likewise. * lib/stpcpy.c: Likewise. * lib/stpncpy.c: Likewise. * lib/strchrnul.c: Likewise. * lib/strcspn.c: Likewise. * lib/strerror.c: Likewise. * lib/strftime.c: Likewise. * lib/strftime.h: Likewise. * lib/striconveh.c: Likewise. * lib/striconveh.h: Likewise. * lib/striconveha.c: Likewise. * lib/striconveha.h: Likewise. * lib/stripslash.c: Likewise. * lib/strnlen1.c: Likewise. * lib/strnlen1.h: Likewise. * lib/strtod.c: Likewise. * lib/strtoimax.c: Likewise. * lib/strtok_r.c: Likewise. * lib/strtol.c: Likewise. * lib/strtoll.c: Likewise. * lib/strtoul.c: Likewise. * lib/strtoull.c: Likewise. * lib/sysexits.in.h: Likewise. * lib/tempname.c: Likewise. * lib/tempname.h: Likewise. * lib/timespec.h: Likewise. * lib/tls.c: Likewise. * lib/tls.h: Likewise. * lib/tmpdir.c: Likewise. * lib/tmpdir.h: Likewise. * lib/tmpfile-safer.c: Likewise. * lib/tmpfile.c: Likewise. * lib/trigl.c: Likewise. * lib/trigl.h: Likewise. * lib/trim.c: Likewise. * lib/trim.h: Likewise. * lib/trunc.c: Likewise. * lib/truncf.c: Likewise. * lib/truncl.c: Likewise. * lib/tsearch.c: Likewise. * lib/unicodeio.c: Likewise. * lib/unicodeio.h: Likewise. * lib/unistd--.h: Likewise. * lib/unistd-safer.h: Likewise. * lib/unistdio/ulc-fprintf.c: Likewise. * lib/unistdio/ulc-vfprintf.c: Likewise. * lib/unlinkdir.c: Likewise. * lib/unlinkdir.h: Likewise. * lib/unlocked-io.h: Likewise. * lib/unsetenv.c: Likewise. * lib/userspec.c: Likewise. * lib/utime.c: Likewise. * lib/utimecmp.c: Likewise. * lib/utimecmp.h: Likewise. * lib/utimens.c: Likewise. * lib/verify.h: Likewise. * lib/verror.c: Likewise. * lib/verror.h: Likewise. * lib/version-etc-fsf.c: Likewise. * lib/version-etc.c: Likewise. * lib/version-etc.h: Likewise. * lib/vfprintf.c: Likewise. * lib/vprintf.c: Likewise. * lib/vsprintf.c: Likewise. * lib/w32spawn.h: Likewise. * lib/wait-process.c: Likewise. * lib/wait-process.h: Likewise. * lib/wcwidth.c: Likewise. * lib/write-any-file.c: Likewise. * lib/xalloc-die.c: Likewise. * lib/xalloc.h: Likewise. * lib/xasprintf.c: Likewise. * lib/xgetcwd.c: Likewise. * lib/xgetcwd.h: Likewise. * lib/xgetdomainname.c: Likewise. * lib/xgetdomainname.h: Likewise. * lib/xgethostname.c: Likewise. * lib/xmalloc.c: Likewise. * lib/xmalloca.c: Likewise. * lib/xmalloca.h: Likewise. * lib/xmemcoll.c: Likewise. * lib/xnanosleep.c: Likewise. * lib/xreadlink.c: Likewise. * lib/xreadlink.h: Likewise. * lib/xsetenv.c: Likewise. * lib/xsetenv.h: Likewise. * lib/xstriconv.c: Likewise. * lib/xstriconv.h: Likewise. * lib/xstrndup.c: Likewise. * lib/xstrndup.h: Likewise. * lib/xstrtod.c: Likewise. * lib/xstrtod.h: Likewise. * lib/xstrtol-error.c: Likewise. * lib/xstrtol.c: Likewise. * lib/xstrtol.h: Likewise. * lib/xtime.h: Likewise. * lib/xvasprintf.c: Likewise. * lib/xvasprintf.h: Likewise. * lib/yesno.c: Likewise. * lib/yesno.h: Likewise. * posix-modules: Likewise. * tests/test-alloca-opt.c: Likewise. * tests/test-arcfour.c: Likewise. * tests/test-arctwo.c: Likewise. * tests/test-argmatch.c: Likewise. * tests/test-argp-2.sh: Likewise. * tests/test-argp.c: Likewise. * tests/test-arpa_inet.c: Likewise. * tests/test-array_list.c: Likewise. * tests/test-array_oset.c: Likewise. * tests/test-atexit.c: Likewise. * tests/test-avltree_list.c: Likewise. * tests/test-avltree_oset.c: Likewise. * tests/test-avltreehash_list.c: Likewise. * tests/test-base64.c: Likewise. * tests/test-binary-io.c: Likewise. * tests/test-byteswap.c: Likewise. * tests/test-c-ctype.c: Likewise. * tests/test-c-strcasecmp.c: Likewise. * tests/test-c-strcasestr.c: Likewise. * tests/test-c-strncasecmp.c: Likewise. * tests/test-c-strstr.c: Likewise. * tests/test-canonicalize-lgpl.c: Likewise. * tests/test-canonicalize.c: Likewise. * tests/test-carray_list.c: Likewise. * tests/test-ceilf.c: Likewise. * tests/test-ceill.c: Likewise. * tests/test-count-one-bits.c: Likewise. * tests/test-crc.c: Likewise. * tests/test-dirname.c: Likewise. * tests/test-fbufmode.c: Likewise. * tests/test-fcntl.c: Likewise. * tests/test-fflush.c: Likewise. * tests/test-floorf.c: Likewise. * tests/test-floorl.c: Likewise. * tests/test-fopen.c: Likewise. * tests/test-fprintf-posix.c: Likewise. * tests/test-fprintf-posix.h: Likewise. * tests/test-fpurge.c: Likewise. * tests/test-freadable.c: Likewise. * tests/test-freadahead.c: Likewise. * tests/test-freading.c: Likewise. * tests/test-freopen.c: Likewise. * tests/test-frexp.c: Likewise. * tests/test-frexpl.c: Likewise. * tests/test-fseek.c: Likewise. * tests/test-fseeko.c: Likewise. * tests/test-fseterr.c: Likewise. * tests/test-fstrcmp.c: Likewise. * tests/test-ftell.c: Likewise. * tests/test-ftello.c: Likewise. * tests/test-fwritable.c: Likewise. * tests/test-fwriting.c: Likewise. * tests/test-getaddrinfo.c: Likewise. * tests/test-getpass.c: Likewise. * tests/test-gettimeofday.c: Likewise. * tests/test-hmac-md5.c: Likewise. * tests/test-hmac-sha1.c: Likewise. * tests/test-iconv.c: Likewise. * tests/test-iconvme.c: Likewise. * tests/test-inttypes.c: Likewise. * tests/test-isnan.c: Likewise. * tests/test-isnanf.c: Likewise. * tests/test-isnanl-nolibm.c: Likewise. * tests/test-isnanl.c: Likewise. * tests/test-isnanl.h: Likewise. * tests/test-ldexpl.c: Likewise. * tests/test-linked_list.c: Likewise. * tests/test-linkedhash_list.c: Likewise. * tests/test-locale.c: Likewise. * tests/test-localename.c: Likewise. * tests/test-lock.c: Likewise. * tests/test-lseek.c: Likewise. * tests/test-malloca.c: Likewise. * tests/test-math.c: Likewise. * tests/test-mbscasecmp.c: Likewise. * tests/test-mbscasestr1.c: Likewise. * tests/test-mbscasestr2.c: Likewise. * tests/test-mbscasestr3.c: Likewise. * tests/test-mbscasestr4.c: Likewise. * tests/test-mbschr.c: Likewise. * tests/test-mbscspn.c: Likewise. * tests/test-mbsncasecmp.c: Likewise. * tests/test-mbspbrk.c: Likewise. * tests/test-mbspcasecmp.c: Likewise. * tests/test-mbsrchr.c: Likewise. * tests/test-mbsspn.c: Likewise. * tests/test-mbsstr1.c: Likewise. * tests/test-mbsstr2.c: Likewise. * tests/test-mbsstr3.c: Likewise. * tests/test-md5.c: Likewise. * tests/test-memmem.c: Likewise. * tests/test-netinet_in.c: Likewise. * tests/test-open.c: Likewise. * tests/test-printf-frexp.c: Likewise. * tests/test-printf-frexpl.c: Likewise. * tests/test-printf-posix.c: Likewise. * tests/test-printf-posix.h: Likewise. * tests/test-rbtree_list.c: Likewise. * tests/test-rbtree_oset.c: Likewise. * tests/test-rbtreehash_list.c: Likewise. * tests/test-read-file.c: Likewise. * tests/test-rijndael.c: Likewise. * tests/test-search.c: Likewise. * tests/test-signbit.c: Likewise. * tests/test-sleep.c: Likewise. * tests/test-snprintf-posix.c: Likewise. * tests/test-snprintf-posix.h: Likewise. * tests/test-snprintf.c: Likewise. * tests/test-sprintf-posix.c: Likewise. * tests/test-sprintf-posix.h: Likewise. * tests/test-stat-time.c: Likewise. * tests/test-stdbool.c: Likewise. * tests/test-stdint.c: Likewise. * tests/test-stdio.c: Likewise. * tests/test-stdlib.c: Likewise. * tests/test-stpncpy.c: Likewise. * tests/test-strcasestr.c: Likewise. * tests/test-striconv.c: Likewise. * tests/test-striconveh.c: Likewise. * tests/test-striconveha.c: Likewise. * tests/test-string.c: Likewise. * tests/test-sys_select.c: Likewise. * tests/test-sys_socket.c: Likewise. * tests/test-sys_stat.c: Likewise. * tests/test-sys_time.c: Likewise. * tests/test-sysexits.c: Likewise. * tests/test-time.c: Likewise. * tests/test-tls.c: Likewise. * tests/test-trunc.c: Likewise. * tests/test-truncf.c: Likewise. * tests/test-truncl.c: Likewise. * tests/test-unistd.c: Likewise. * tests/test-vasnprintf-posix.c: Likewise. * tests/test-vasnprintf-posix2.c: Likewise. * tests/test-vasnprintf.c: Likewise. * tests/test-vasprintf-posix.c: Likewise. * tests/test-vasprintf.c: Likewise. * tests/test-verify.c: Likewise. * tests/test-vfprintf-posix.c: Likewise. * tests/test-vprintf-posix.c: Likewise. * tests/test-vsnprintf-posix.c: Likewise. * tests/test-vsnprintf.c: Likewise. * tests/test-vsprintf-posix.c: Likewise. * tests/test-wchar.c: Likewise. * tests/test-wctype.c: Likewise. * tests/test-wcwidth.c: Likewise. * tests/test-xstrtol.c: Likewise. * tests/test-xvasprintf.c: Likewise. * tests/uniconv/test-u16-conv-from-enc.c: Likewise. * tests/uniconv/test-u16-conv-to-enc.c: Likewise. * tests/uniconv/test-u16-strconv-from-enc.c: Likewise. * tests/uniconv/test-u16-strconv-to-enc.c: Likewise. * tests/uniconv/test-u32-conv-from-enc.c: Likewise. * tests/uniconv/test-u32-conv-to-enc.c: Likewise. * tests/uniconv/test-u32-strconv-from-enc.c: Likewise. * tests/uniconv/test-u32-strconv-to-enc.c: Likewise. * tests/uniconv/test-u8-conv-from-enc.c: Likewise. * tests/uniconv/test-u8-conv-to-enc.c: Likewise. * tests/uniconv/test-u8-strconv-from-enc.c: Likewise. * tests/uniconv/test-u8-strconv-to-enc.c: Likewise. * tests/uniname/test-uninames.c: Likewise. * tests/unistdio/test-u16-asnprintf1.c: Likewise. * tests/unistdio/test-u16-asnprintf1.h: Likewise. * tests/unistdio/test-u16-printf1.h: Likewise. * tests/unistdio/test-u16-vasnprintf1.c: Likewise. * tests/unistdio/test-u16-vasnprintf2.c: Likewise. * tests/unistdio/test-u16-vasnprintf3.c: Likewise. * tests/unistdio/test-u16-vasprintf1.c: Likewise. * tests/unistdio/test-u16-vsnprintf1.c: Likewise. * tests/unistdio/test-u16-vsprintf1.c: Likewise. * tests/unistdio/test-u32-asnprintf1.c: Likewise. * tests/unistdio/test-u32-asnprintf1.h: Likewise. * tests/unistdio/test-u32-printf1.h: Likewise. * tests/unistdio/test-u32-vasnprintf1.c: Likewise. * tests/unistdio/test-u32-vasnprintf2.c: Likewise. * tests/unistdio/test-u32-vasnprintf3.c: Likewise. * tests/unistdio/test-u32-vasprintf1.c: Likewise. * tests/unistdio/test-u32-vsnprintf1.c: Likewise. * tests/unistdio/test-u32-vsprintf1.c: Likewise. * tests/unistdio/test-u8-asnprintf1.c: Likewise. * tests/unistdio/test-u8-asnprintf1.h: Likewise. * tests/unistdio/test-u8-printf1.h: Likewise. * tests/unistdio/test-u8-vasnprintf1.c: Likewise. * tests/unistdio/test-u8-vasnprintf2.c: Likewise. * tests/unistdio/test-u8-vasnprintf3.c: Likewise. * tests/unistdio/test-u8-vasprintf1.c: Likewise. * tests/unistdio/test-u8-vsnprintf1.c: Likewise. * tests/unistdio/test-u8-vsprintf1.c: Likewise. * tests/unistdio/test-ulc-asnprintf1.c: Likewise. * tests/unistdio/test-ulc-asnprintf1.h: Likewise. * tests/unistdio/test-ulc-printf1.h: Likewise. * tests/unistdio/test-ulc-vasnprintf1.c: Likewise. * tests/unistdio/test-ulc-vasnprintf2.c: Likewise. * tests/unistdio/test-ulc-vasnprintf3.c: Likewise. * tests/unistdio/test-ulc-vasprintf1.c: Likewise. * tests/unistdio/test-ulc-vsnprintf1.c: Likewise. * tests/unistdio/test-ulc-vsprintf1.c: Likewise. * tests/uniwidth/test-u16-strwidth.c: Likewise. * tests/uniwidth/test-u16-width.c: Likewise. * tests/uniwidth/test-u32-strwidth.c: Likewise. * tests/uniwidth/test-u32-width.c: Likewise. * tests/uniwidth/test-u8-strwidth.c: Likewise. * tests/uniwidth/test-u8-width.c: Likewise. * tests/uniwidth/test-uc_width.c: Likewise. * config/srclist-update: Likewise. (fixlicense): Update to GPLv3+. Change copyright notice from LGPLv2.1+ to LGPLv3+. * tests/test-tsearch.c: Change copyright notice. Change copyright notice from LGPLv2.0+ to LGPLv3+. * lib/c-strcaseeq.h: Change copyright notice. * lib/streq.h: Likewise. * lib/uniconv.h: Likewise. * lib/uniconv/u-conv-from-enc.h: Likewise. * lib/uniconv/u-conv-to-enc.h: Likewise. * lib/uniconv/u-strconv-from-enc.h: Likewise. * lib/uniconv/u-strconv-to-enc.h: Likewise. * lib/uniconv/u16-conv-from-enc.c: Likewise. * lib/uniconv/u16-conv-to-enc.c: Likewise. * lib/uniconv/u16-strconv-from-enc.c: Likewise. * lib/uniconv/u16-strconv-from-locale.c: Likewise. * lib/uniconv/u16-strconv-to-enc.c: Likewise. * lib/uniconv/u16-strconv-to-locale.c: Likewise. * lib/uniconv/u32-conv-from-enc.c: Likewise. * lib/uniconv/u32-conv-to-enc.c: Likewise. * lib/uniconv/u32-strconv-from-enc.c: Likewise. * lib/uniconv/u32-strconv-from-locale.c: Likewise. * lib/uniconv/u32-strconv-to-enc.c: Likewise. * lib/uniconv/u32-strconv-to-locale.c: Likewise. * lib/uniconv/u8-conv-from-enc.c: Likewise. * lib/uniconv/u8-conv-to-enc.c: Likewise. * lib/uniconv/u8-strconv-from-enc.c: Likewise. * lib/uniconv/u8-strconv-from-locale.c: Likewise. * lib/uniconv/u8-strconv-to-enc.c: Likewise. * lib/uniconv/u8-strconv-to-locale.c: Likewise. * lib/uniname.h: Likewise. * lib/uniname/uniname.c: Likewise. * lib/unistdio.h: Likewise. * lib/unistdio/u-asnprintf.h: Likewise. * lib/unistdio/u-asprintf.h: Likewise. * lib/unistdio/u-printf-args.c: Likewise. * lib/unistdio/u-printf-args.h: Likewise. * lib/unistdio/u-printf-parse.h: Likewise. * lib/unistdio/u-snprintf.h: Likewise. * lib/unistdio/u-sprintf.h: Likewise. * lib/unistdio/u-vasprintf.h: Likewise. * lib/unistdio/u-vsnprintf.h: Likewise. * lib/unistdio/u-vsprintf.h: Likewise. * lib/unistdio/u16-asnprintf.c: Likewise. * lib/unistdio/u16-asprintf.c: Likewise. * lib/unistdio/u16-printf-parse.c: Likewise. * lib/unistdio/u16-snprintf.c: Likewise. * lib/unistdio/u16-sprintf.c: Likewise. * lib/unistdio/u16-u16-asnprintf.c: Likewise. * lib/unistdio/u16-u16-asprintf.c: Likewise. * lib/unistdio/u16-u16-snprintf.c: Likewise. * lib/unistdio/u16-u16-sprintf.c: Likewise. * lib/unistdio/u16-u16-vasnprintf.c: Likewise. * lib/unistdio/u16-u16-vasprintf.c: Likewise. * lib/unistdio/u16-u16-vsnprintf.c: Likewise. * lib/unistdio/u16-u16-vsprintf.c: Likewise. * lib/unistdio/u16-vasnprintf.c: Likewise. * lib/unistdio/u16-vasprintf.c: Likewise. * lib/unistdio/u16-vsnprintf.c: Likewise. * lib/unistdio/u16-vsprintf.c: Likewise. * lib/unistdio/u32-asnprintf.c: Likewise. * lib/unistdio/u32-asprintf.c: Likewise. * lib/unistdio/u32-printf-parse.c: Likewise. * lib/unistdio/u32-snprintf.c: Likewise. * lib/unistdio/u32-sprintf.c: Likewise. * lib/unistdio/u32-u32-asnprintf.c: Likewise. * lib/unistdio/u32-u32-asprintf.c: Likewise. * lib/unistdio/u32-u32-snprintf.c: Likewise. * lib/unistdio/u32-u32-sprintf.c: Likewise. * lib/unistdio/u32-u32-vasnprintf.c: Likewise. * lib/unistdio/u32-u32-vasprintf.c: Likewise. * lib/unistdio/u32-u32-vsnprintf.c: Likewise. * lib/unistdio/u32-u32-vsprintf.c: Likewise. * lib/unistdio/u32-vasnprintf.c: Likewise. * lib/unistdio/u32-vasprintf.c: Likewise. * lib/unistdio/u32-vsnprintf.c: Likewise. * lib/unistdio/u32-vsprintf.c: Likewise. * lib/unistdio/u8-asnprintf.c: Likewise. * lib/unistdio/u8-asprintf.c: Likewise. * lib/unistdio/u8-printf-parse.c: Likewise. * lib/unistdio/u8-snprintf.c: Likewise. * lib/unistdio/u8-sprintf.c: Likewise. * lib/unistdio/u8-u8-asnprintf.c: Likewise. * lib/unistdio/u8-u8-asprintf.c: Likewise. * lib/unistdio/u8-u8-snprintf.c: Likewise. * lib/unistdio/u8-u8-sprintf.c: Likewise. * lib/unistdio/u8-u8-vasnprintf.c: Likewise. * lib/unistdio/u8-u8-vasprintf.c: Likewise. * lib/unistdio/u8-u8-vsnprintf.c: Likewise. * lib/unistdio/u8-u8-vsprintf.c: Likewise. * lib/unistdio/u8-vasnprintf.c: Likewise. * lib/unistdio/u8-vasprintf.c: Likewise. * lib/unistdio/u8-vsnprintf.c: Likewise. * lib/unistdio/u8-vsprintf.c: Likewise. * lib/unistdio/ulc-asnprintf.c: Likewise. * lib/unistdio/ulc-asprintf.c: Likewise. * lib/unistdio/ulc-printf-parse.c: Likewise. * lib/unistdio/ulc-snprintf.c: Likewise. * lib/unistdio/ulc-sprintf.c: Likewise. * lib/unistdio/ulc-vasnprintf.c: Likewise. * lib/unistdio/ulc-vasprintf.c: Likewise. * lib/unistdio/ulc-vsnprintf.c: Likewise. * lib/unistdio/ulc-vsprintf.c: Likewise. * lib/unistr.h: Likewise. * lib/unistr/u-cpy-alloc.h: Likewise. * lib/unistr/u-cpy.h: Likewise. * lib/unistr/u-endswith.h: Likewise. * lib/unistr/u-move.h: Likewise. * lib/unistr/u-set.h: Likewise. * lib/unistr/u-startswith.h: Likewise. * lib/unistr/u-stpcpy.h: Likewise. * lib/unistr/u-stpncpy.h: Likewise. * lib/unistr/u-strcat.h: Likewise. * lib/unistr/u-strcpy.h: Likewise. * lib/unistr/u-strcspn.h: Likewise. * lib/unistr/u-strdup.h: Likewise. * lib/unistr/u-strlen.h: Likewise. * lib/unistr/u-strncat.h: Likewise. * lib/unistr/u-strncpy.h: Likewise. * lib/unistr/u-strnlen.h: Likewise. * lib/unistr/u-strpbrk.h: Likewise. * lib/unistr/u-strspn.h: Likewise. * lib/unistr/u-strstr.h: Likewise. * lib/unistr/u-strtok.h: Likewise. * lib/unistr/u16-check.c: Likewise. * lib/unistr/u16-chr.c: Likewise. * lib/unistr/u16-cmp.c: Likewise. * lib/unistr/u16-cpy-alloc.c: Likewise. * lib/unistr/u16-cpy.c: Likewise. * lib/unistr/u16-endswith.c: Likewise. * lib/unistr/u16-mblen.c: Likewise. * lib/unistr/u16-mbsnlen.c: Likewise. * lib/unistr/u16-mbtouc-aux.c: Likewise. * lib/unistr/u16-mbtouc-unsafe-aux.c: Likewise. * lib/unistr/u16-mbtouc-unsafe.c: Likewise. * lib/unistr/u16-mbtouc.c: Likewise. * lib/unistr/u16-mbtoucr.c: Likewise. * lib/unistr/u16-move.c: Likewise. * lib/unistr/u16-next.c: Likewise. * lib/unistr/u16-prev.c: Likewise. * lib/unistr/u16-set.c: Likewise. * lib/unistr/u16-startswith.c: Likewise. * lib/unistr/u16-stpcpy.c: Likewise. * lib/unistr/u16-stpncpy.c: Likewise. * lib/unistr/u16-strcat.c: Likewise. * lib/unistr/u16-strchr.c: Likewise. * lib/unistr/u16-strcmp.c: Likewise. * lib/unistr/u16-strcpy.c: Likewise. * lib/unistr/u16-strcspn.c: Likewise. * lib/unistr/u16-strdup.c: Likewise. * lib/unistr/u16-strlen.c: Likewise. * lib/unistr/u16-strmblen.c: Likewise. * lib/unistr/u16-strmbtouc.c: Likewise. * lib/unistr/u16-strncat.c: Likewise. * lib/unistr/u16-strncmp.c: Likewise. * lib/unistr/u16-strncpy.c: Likewise. * lib/unistr/u16-strnlen.c: Likewise. * lib/unistr/u16-strpbrk.c: Likewise. * lib/unistr/u16-strrchr.c: Likewise. * lib/unistr/u16-strspn.c: Likewise. * lib/unistr/u16-strstr.c: Likewise. * lib/unistr/u16-strtok.c: Likewise. * lib/unistr/u16-to-u32.c: Likewise. * lib/unistr/u16-to-u8.c: Likewise. * lib/unistr/u16-uctomb-aux.c: Likewise. * lib/unistr/u16-uctomb.c: Likewise. * lib/unistr/u32-check.c: Likewise. * lib/unistr/u32-chr.c: Likewise. * lib/unistr/u32-cmp.c: Likewise. * lib/unistr/u32-cpy-alloc.c: Likewise. * lib/unistr/u32-cpy.c: Likewise. * lib/unistr/u32-endswith.c: Likewise. * lib/unistr/u32-mblen.c: Likewise. * lib/unistr/u32-mbsnlen.c: Likewise. * lib/unistr/u32-mbtouc-unsafe.c: Likewise. * lib/unistr/u32-mbtouc.c: Likewise. * lib/unistr/u32-mbtoucr.c: Likewise. * lib/unistr/u32-move.c: Likewise. * lib/unistr/u32-next.c: Likewise. * lib/unistr/u32-prev.c: Likewise. * lib/unistr/u32-set.c: Likewise. * lib/unistr/u32-startswith.c: Likewise. * lib/unistr/u32-stpcpy.c: Likewise. * lib/unistr/u32-stpncpy.c: Likewise. * lib/unistr/u32-strcat.c: Likewise. * lib/unistr/u32-strchr.c: Likewise. * lib/unistr/u32-strcmp.c: Likewise. * lib/unistr/u32-strcpy.c: Likewise. * lib/unistr/u32-strcspn.c: Likewise. * lib/unistr/u32-strdup.c: Likewise. * lib/unistr/u32-strlen.c: Likewise. * lib/unistr/u32-strmblen.c: Likewise. * lib/unistr/u32-strmbtouc.c: Likewise. * lib/unistr/u32-strncat.c: Likewise. * lib/unistr/u32-strncmp.c: Likewise. * lib/unistr/u32-strncpy.c: Likewise. * lib/unistr/u32-strnlen.c: Likewise. * lib/unistr/u32-strpbrk.c: Likewise. * lib/unistr/u32-strrchr.c: Likewise. * lib/unistr/u32-strspn.c: Likewise. * lib/unistr/u32-strstr.c: Likewise. * lib/unistr/u32-strtok.c: Likewise. * lib/unistr/u32-to-u16.c: Likewise. * lib/unistr/u32-to-u8.c: Likewise. * lib/unistr/u32-uctomb.c: Likewise. * lib/unistr/u8-check.c: Likewise. * lib/unistr/u8-chr.c: Likewise. * lib/unistr/u8-cmp.c: Likewise. * lib/unistr/u8-cpy-alloc.c: Likewise. * lib/unistr/u8-cpy.c: Likewise. * lib/unistr/u8-endswith.c: Likewise. * lib/unistr/u8-mblen.c: Likewise. * lib/unistr/u8-mbsnlen.c: Likewise. * lib/unistr/u8-mbtouc-aux.c: Likewise. * lib/unistr/u8-mbtouc-unsafe-aux.c: Likewise. * lib/unistr/u8-mbtouc-unsafe.c: Likewise. * lib/unistr/u8-mbtouc.c: Likewise. * lib/unistr/u8-mbtoucr.c: Likewise. * lib/unistr/u8-move.c: Likewise. * lib/unistr/u8-next.c: Likewise. * lib/unistr/u8-prev.c: Likewise. * lib/unistr/u8-set.c: Likewise. * lib/unistr/u8-startswith.c: Likewise. * lib/unistr/u8-stpcpy.c: Likewise. * lib/unistr/u8-stpncpy.c: Likewise. * lib/unistr/u8-strcat.c: Likewise. * lib/unistr/u8-strchr.c: Likewise. * lib/unistr/u8-strcmp.c: Likewise. * lib/unistr/u8-strcpy.c: Likewise. * lib/unistr/u8-strcspn.c: Likewise. * lib/unistr/u8-strdup.c: Likewise. * lib/unistr/u8-strlen.c: Likewise. * lib/unistr/u8-strmblen.c: Likewise. * lib/unistr/u8-strmbtouc.c: Likewise. * lib/unistr/u8-strncat.c: Likewise. * lib/unistr/u8-strncmp.c: Likewise. * lib/unistr/u8-strncpy.c: Likewise. * lib/unistr/u8-strnlen.c: Likewise. * lib/unistr/u8-strpbrk.c: Likewise. * lib/unistr/u8-strrchr.c: Likewise. * lib/unistr/u8-strspn.c: Likewise. * lib/unistr/u8-strstr.c: Likewise. * lib/unistr/u8-strtok.c: Likewise. * lib/unistr/u8-to-u16.c: Likewise. * lib/unistr/u8-to-u32.c: Likewise. * lib/unistr/u8-uctomb-aux.c: Likewise. * lib/unistr/u8-uctomb.c: Likewise. * lib/unitypes.h: Likewise. * lib/uniwidth.h: Likewise. * lib/uniwidth/cjk.h: Likewise. * lib/uniwidth/u16-strwidth.c: Likewise. * lib/uniwidth/u16-width.c: Likewise. * lib/uniwidth/u32-strwidth.c: Likewise. * lib/uniwidth/u32-width.c: Likewise. * lib/uniwidth/u8-strwidth.c: Likewise. * lib/uniwidth/u8-width.c: Likewise. * lib/uniwidth/width.c: Likewise. 2007-10-07 Bruno Haible * lib/inttypes.in.h: Change copyright notice from LGPL to GPL. The file is still under LGPL (see modules/inttypes). 2007-10-06 Bruno Haible * modules/trunc (Dependencies): Add 'extensions'. * m4/trunc.m4 (gl_FUNC_TRUNC): Require gl_USE_SYSTEM_EXTENSIONS. Reported by Ben Pfaff . 2007-10-06 Bruno Haible * modules/freopen-tests: New file. * tests/test-freopen.c: New file. * modules/fopen-tests: New file. * tests/test-fopen.c: New file. * modules/fopen: New file. * lib/fopen.c: New file. * m4/fopen.m4: New file. * modules/freopen: New file. * lib/freopen.c: New file. * m4/freopen.m4: New file. * lib/stdio.in.h (fopen, freopen): New declarations. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize also GNULIB_FOPEN, GNULIB_FREOPEN, REPLACE_FOPEN, REPLACE_FREOPEN. * modules/stdio (Makefile.am): Substitute also GNULIB_FOPEN, GNULIB_FREOPEN, REPLACE_FOPEN, REPLACE_FREOPEN. * doc/functions/fopen.texi: Mention the 'fopen' module. * doc/functions/freopen.texi: Mention the 'freopen' module. 2007-10-06 Bruno Haible * modules/open-tests: New file. * tests/test-open.c: New file. * modules/open: New file. * lib/open.c: New file. * m4/open.m4: New file. * lib/fchdir.c (open): If the gnulib module 'open' is used, do what lib/open.c does. * lib/fcntl.in.h (open): Declare also if replaced by the 'open' module. * m4/fcntl_h.m4 (gl_FCNTL_MODULE_INDICATOR, gl_FCNTL_H_DEFAULTS): New macros. (gl_FCNTL_H): Require gl_FCNTL_H_DEFAULTS. * modules/fcntl (Makefile.am): Also substitute GNULIB_OPEN and REPLACE_OPEN. * doc/functions/open.texi: Mention the 'open' module. 2007-10-04 Bruno Haible * modules/ceill-tests: New file. * tests/test-ceill.c: New file. * modules/ceill: New file. * lib/ceill.c: Replace entire file. * m4/ceill.m4: New file. * lib/math.in.h (ceill): Replace declaration. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_CEILL. * modules/math (Makefile.am): Substitute also GNULIB_CEILL. * doc/functions/ceill.texi: Mention the 'ceill' module. * modules/mathl (Files): Remove lib/ceill.c. (Depends-on): Add ceill. 2007-10-04 Bruno Haible * modules/ceilf-tests: New file. * tests/test-ceilf.c: New file. * modules/ceilf: New file. * lib/ceil.c: New file. * lib/ceilf.c: New file. * m4/ceilf.m4: New file. * lib/math.in.h (ceilf): New declaration. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_CEILF and HAVE_DECL_CEILF. * modules/math (Makefile.am): Substitute also GNULIB_CEILF and HAVE_DECL_CEILF. * doc/functions/ceilf.texi: Mention the 'ceilf' module. 2007-10-04 Bruno Haible * modules/floorl-tests: New file. * tests/test-floorl.c: New file. * modules/floorl: New file. * lib/floorl.c: Replace entire file. * m4/floorl.m4: New file. * lib/math.in.h (floorl): Replace declaration. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_FLOORL. * modules/math (Makefile.am): Substitute also GNULIB_FLOORL. * doc/functions/floorl.texi: Mention the 'floorl' module. * modules/mathl (Files): Remove lib/floorl.c. (Depends-on): Add floorl. 2007-10-04 Bruno Haible * modules/floorf-tests: New file. * tests/test-floorf.c: New file. * modules/floorf: New file. * lib/floor.c: New file. * lib/floorf.c: New file. * m4/floorf.m4: New file. * lib/math.in.h (floorf): New declaration. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_FLOORF and HAVE_DECL_FLOORF. * modules/math (Makefile.am): Substitute also GNULIB_FLOORF and HAVE_DECL_FLOORF. * doc/functions/floorf.texi: Mention the 'floorf' module. 2007-10-04 Benoit Sigoure Bruno Haible Advertise for the Git server instead of the CVS server. * doc/gnulib-intro.texi (Steady Development): Mention the Git repository instead of the CVS one. * doc/gnulib-tool.texi (VCS Issues): Renamed from "CVS Issues". Talk about all VCS systems generically. * doc/gnulib.texi (Introduction): Capitalize `Git'. 2007-10-04 Bruno Haible * doc/gnulib.texi (Function Substitutes): Explain what an absent module means. Reported by Benoît Sigoure . 2007-10-04 Bruno Haible * modules/truncl-tests: New file. * tests/test-truncl.c: New file. * modules/truncl: New file. * lib/truncl.c: New file. * m4/truncl.m4: New file. * lib/math.in.h (truncl): New declaration. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_TRUNCL and HAVE_DECL_TRUNCL. * modules/math (Makefile.am): Substitute also GNULIB_TRUNCL and HAVE_DECL_TRUNCL. * doc/functions/truncl.texi: Mention the 'truncl' module. 2007-10-04 Bruno Haible * modules/truncf-tests: New file. * tests/test-truncf.c: New file. * modules/truncf: New file. * lib/trunc.c: Make paramerizable through USE_* macros. * lib/truncf.c: New file. * m4/truncf.m4: New file. * lib/math.in.h (truncf): New declaration. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_TRUNCF and HAVE_DECL_TRUNCF. * modules/math (Makefile.am): Substitute also GNULIB_TRUNCF and HAVE_DECL_TRUNCF. * doc/functions/truncf.texi: Mention the 'truncf' module. 2007-10-03 Bruno Haible * gnulib-tool (func_get_automake_snippet): Synthesize an EXTRA_DIST augmentation also for tests modules. * modules/argp-tests (Makefile.am): Remove EXTRA_DIST augmentation. * modules/atexit-tests (Makefile.am): Likewise. * modules/binary-io-tests (Makefile.am): Likewise. * modules/c-strcase-tests (Makefile.am): Likewise. * modules/canonicalize-lgpl-tests (Makefile.am): Likewise. * modules/canonicalize-tests (Makefile.am): Likewise. * modules/closein-tests (Makefile.am): Likewise. * modules/fprintf-posix-tests (Makefile.am): Likewise. * modules/freadahead-tests (Makefile.am): Likewise. * modules/fseek-tests (Makefile.am): Likewise. * modules/fseeko-tests (Makefile.am): Likewise. * modules/ftell-tests (Makefile.am): Likewise. * modules/ftello-tests (Makefile.am): Likewise. * modules/isnanl-nolibm-tests (Makefile.am): Likewise. * modules/isnanl-tests (Makefile.am): Likewise. * modules/lseek-tests (Makefile.am): Likewise. * modules/mbscasecmp-tests (Makefile.am): Likewise. * modules/mbscasestr-tests (Makefile.am): Likewise. * modules/mbschr-tests (Makefile.am): Likewise. * modules/mbscspn-tests (Makefile.am): Likewise. * modules/mbsncasecmp-tests (Makefile.am): Likewise. * modules/mbspbrk-tests (Makefile.am): Likewise. * modules/mbspcasecmp-tests (Makefile.am): Likewise. * modules/mbsrchr-tests (Makefile.am): Likewise. * modules/mbsspn-tests (Makefile.am): Likewise. * modules/mbsstr-tests (Makefile.am): Likewise. * modules/printf-posix-tests (Makefile.am): Likewise. * modules/snprintf-posix-tests (Makefile.am): Likewise. * modules/sprintf-posix-tests (Makefile.am): Likewise. * modules/tsearch-tests (Makefile.am): Likewise. * modules/uniname/uniname-tests (Makefile.am): Likewise. * modules/unistdio/u16-vasnprintf-tests (Makefile.am): Likewise. * modules/unistdio/u32-vasnprintf-tests (Makefile.am): Likewise. * modules/unistdio/u8-vasnprintf-tests (Makefile.am): Likewise. * modules/unistdio/ulc-vasnprintf-tests (Makefile.am): Likewise. * modules/vasnprintf-posix-tests (Makefile.am): Likewise. * modules/vfprintf-posix-tests (Makefile.am): Likewise. * modules/vprintf-posix-tests (Makefile.am): Likewise. * modules/vsnprintf-posix-tests (Makefile.am): Likewise. * modules/vsprintf-posix-tests (Makefile.am): Likewise. * modules/xstrtoimax-tests (Makefile.am): Likewise. * modules/xstrtol-tests (Makefile.am): Likewise. * modules/xstrtoumax-tests (Makefile.am): Likewise. * modules/yesno-tests (Makefile.am): Likewise. 2007-10-03 Bruno Haible * modules/trunc-tests: New file. * tests/test-trunc.c: New file. * modules/trunc: New file. * lib/trunc.c: New file. * m4/trunc.m4: New file. * lib/math.in.h (trunc): New declaration. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_TRUNC and HAVE_DECL_TRUNC. * modules/math (Makefile.am): Substitute also GNULIB_TRUNC and HAVE_DECL_TRUNC. * doc/functions/trunc.texi: Mention the 'trunc' module. 2007-10-03 Bruno Haible * tests/test-fpending.c: New file, mostly copied from coreutils/lib/t-fpending.c. * modules/fpending-tests: New file. 2007-10-03 Bruno Haible Port the stdio extensions to QNX (untested). * lib/fseterr.c (fseterr): Add support for QNX. * lib/fbufmode.c (fbufmode): Likewise. * lib/freadable.c (freadable): Likewise. * lib/fwritable.c (fwritable): Likewise. * lib/freading.c (freading): Likewise. * lib/fwriting.c (fwriting): Likewise. * lib/freadahead.c (freadahed): Likewise. * lib/fpurge.c (fpurge): Likewise. * lib/fseeko.c (rpl_fseeko): Likewise. 2007-10-03 Bruno Haible Jim Meyering Eric Blake * doc/relocatable.texi: Use @command instead of @program. 2007-10-02 Jim Meyering Perform one more "_.h" -> ".in.h" substitution. * modules/unistd (Makefile.am) [unistd.h]: Use unistd.h.in instead of unistd_.h here, too. 2007-10-01 Bruno Haible * gnulib-tool (func_emit_initmacro_done): Special case for alloca.c. Needed for the alloca-opt module. 2007-09-30 Bruno Haible * lib/alloca.in.h: Renamed from lib/alloca_.h. * modules/alloca-opt (Files, Makefile.am): Use alloca.in.h instead of alloca_.h. * lib/argz.in.h: Renamed from lib/argz_.h. * modules/argz (Files, Makefile.am): Use argz.in.h instead of argz_.h. * lib/byteswap.in.h: Renamed from lib/byteswap_.h. * modules/byteswap (Files, Makefile.am): Use byteswap.in.h instead of byteswap_.h. * lib/dirent.in.h: Renamed from lib/dirent_.h. * modules/fchdir (Files, Makefile.am): Use dirent.in.h instead of dirent_.h. * lib/fcntl.in.h: Renamed from lib/fcntl_.h. * modules/fcntl (Files, Makefile.am): Use fcntl.in.h instead of fcntl_.h. * lib/float.in.h: Renamed from lib/float_.h. * modules/float (Files, Makefile.am): Use float.in.h instead of float_.h. * lib/fnmatch.in.h: Renamed from lib/fnmatch_.h. * modules/fnmatch (Files, Makefile.am): Use fnmatch.in.h instead of fnmatch_.h. * lib/getopt.in.h: Renamed from lib/getopt_.h. * modules/getopt (Files, Makefile.am): Use getopt.in.h instead of getopt_.h. * lib/glob.in.h: Renamed from lib/glob_.h. * modules/glob (Files, Makefile.am): Use glob.in.h instead of glob_.h. * lib/iconv.in.h: Renamed from lib/iconv_.h. * modules/iconv_open (Files, Makefile.am): Use iconv.in.h instead of iconv_.h. * lib/inttypes.in.h: Renamed from lib/inttypes_.h. * modules/inttypes (Files, Makefile.am): Use inttypes.in.h instead of inttypes_.h. * lib/locale.in.h: Renamed from lib/locale_.h. * modules/locale (Files, Makefile.am): Use locale.in.h instead of locale_.h. * lib/math.in.h: Renamed from lib/math_.h. * modules/math (Files, Makefile.am): Use math.in.h instead of math_.h. * lib/netinet_in.in.h: Renamed from lib/netinet_in_.h. * modules/netinet_in (Files, Makefile.am): Use netinet_in.in.h instead of netinet_in_.h. Add dependency. * lib/poll.in.h: Renamed from lib/poll_.h. * modules/poll (Files, Makefile.am): Use poll.in.h instead of poll_.h. * lib/search.in.h: Renamed from lib/search_.h. * modules/search (Files, Makefile.am): Use search.in.h instead of search_.h. * lib/signal.in.h: Renamed from lib/signal_.h. * modules/signal (Files, Makefile.am): Use signal.in.h instead of _signal.h. * lib/stdbool.in.h: Renamed from lib/stdbool_.h. * modules/stdbool (Files, Makefile.am): Use stdbool.in.h instead of stdbool_.h. * lib/stdint.in.h: Renamed from lib/stdint_.h. * modules/stdint (Files, Makefile.am): Use stdint.in.h instead of stdint_.h. * lib/stdio.in.h: Renamed from lib/stdio_.h. * modules/stdio (Files, Makefile.am): Use stdio.in.h instead of stdio_.h. * lib/stdlib.in.h: Renamed from lib/stdlib_.h. * modules/stdlib (Files, Makefile.am): Use stdlib.in.h instead of stdlib_.h. * lib/string.in.h: Renamed from lib/string_.h. * modules/string (Files, Makefile.am): Use string.in.h instead of string_.h. * doc/gnulib-tool.texi (Initial import): Update. * lib/sys_select.in.h: Renamed from lib/sys_select_.h. * modules/sys_select (Files, Makefile.am): Use sys_select.in.h instead of sys_select_.h. Add dependency. * lib/sys_socket.in.h: Renamed from lib/sys_socket_.h. * modules/sys_socket (Files, Makefile.am): Use sys_socket.in.h instead of sys_socket_.h. * lib/sys_stat.in.h: Renamed from lib/sys_stat_.h. * modules/sys_stat (Files, Makefile.am): Use sys_stat.in.h instead of sys_stat_.h. * lib/sys_time.in.h: Renamed from lib/sys_time_.h. * modules/sys_time (Files, Makefile.am): Use sys_time.in.h instead of sys_time_.h. * lib/sysexits.in.h: Renamed from lib/sysexits_.h. * modules/sysexits (Files, Makefile.am): Use sysexits.in.h instead of sysexits_.h. * lib/time.in.h: Renamed from lib/time_.h. * modules/time (Files, Makefile.am): Use time.in.h instead of time_.h. * lib/unistd.in.h: Renamed from lib/unistd_.h. * modules/unistd (Files, Makefile.am): Use unistd.in.h instead of unistd_.h. * lib/wchar.in.h: Renamed from lib/wchar_.h. * modules/wchar (Files, Makefile.am): Use wchar.in.h instead of wchar_.h. * lib/wctype.in.h: Renamed from lib/wctype_.h. * modules/wctype (Files, Makefile.am): Use wctype.in.h instead of wctype_.h. * build-aux/bootstrap (slurp): Update. * lib/.cppi-disable: Update. 2007-09-30 Bruno Haible * tests/test-getaddrinfo.c (AF_UNSPEC): Provide a fallback definition. Needed on BeOS. 2007-09-30 Bruno Haible * modules/dirname-tests (check_PROGRAMS): Renamed from noinst_PROGRAMS. 2007-09-29 Bruno Haible * lib/stdio_.h (getdelim, getline): Add identifiers. Doc tweak. 2007-09-29 Bruno Haible * lib/xreadlink.c (xreadlink): Simplify to a wrapper around areadlink. * modules/xreadlink (Depends-on): Add areadlink, remove readlink etc. * build-aux/install-reloc: Compile also areadlink.c. * modules/relocatable-prog-wrapper (Files): Add lib/areadlink.[hc]. 2007-09-29 Bruno Haible * gnulib-tool (func_emit_initmacro_done): Indentation. 2007-09-29 Bruno Haible * README: Add CVS checkout update instructions. Info from Bob Proulx . 2007-09-28 Eric Blake Provide move-if-change. * build-aux/move-if-change: New file, based on best practice rather than any canonical upstream location. 2007-09-28 Jim Meyering Fix canonicalize loop-detection corner case. Do not attempt to stat the symlink values stored via seen_triple. Without this, coreutils' tests/misc/readlink-fp-loop test would fail on linux-2.6.18, (but not 2.6.22). * lib/canonicalize.c (seen_triple): Use triple_compare_ino_str, not triple_compare. The former compares dev,ino,filename, while the latter would actually stat dirname(filename) when dev and ino were equal. * lib/hash-triple.c: Install . (STREQ): Define. (triple_compare_ino_str): New function. * lib/hash-triple.h (triple_compare_ino_str): Declare it. 2007-09-28 Eric Blake Enforce that AC_REPLACE_FUNCS files exist. * gnulib-tool (func_emit_initmacro_done): Make AC_LIBSOURCES override check for typos. Fix test-closein on Solaris 10. * tests/test-closein.c (main): Don't assume stdin can be inherited closed on all systems. * tests/test-closein.sh: Likewise. Reported by Piotr Tarnowski. 2007-09-28 Jim Meyering * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Fix typo in comment. 2007-09-27 Jim Meyering canonicalize: Avoid a false-positive cycle failure. * modules/canonicalize (Depends-on): Add file-set and hash-triple. Sort. Remove cycle-check. * lib/canonicalize.c: Include file-set.h and hash-triple.h, not cycle-check.h. (seen_triple): New function. (canonicalize_filename_mode): Use it instead of cycle-check. * tests/test-canonicalize.c: Add a test for this bug. * tests/test-canonicalize.sh: Set up and run the test. New module, file-set, from coreutils. * modules/file-set: Define it. * lib/file-set.c, lib/file-set.h: Implement. New module, hash-triple, from coreutils. * modules/hash-triple: Define it. * lib/hash-triple.c, lib/hash-triple.h: Implement. 2007-09-25 Eric Blake Fix strerror on Interix. * lib/string_.h (strerror): Declare replacement. * doc/functions/strerror.texi (strerror): Document the Interix shortcoming. * modules/string (Makefile.am): Support new hooks. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Add new hooks. * m4/strerror.m4 (gl_FUNC_STRERROR): Defer to gl_FUNC_STRERROR_SEPARATE. (gl_FUNC_STRERROR_SEPARATE): Check for Interix bug. * lib/strerror.c (rpl_strerror): Provide replacement. * modules/strerror (Depends-on): Add string. (configure.ac): Detect use of module. * tests/test-strerror.c: New file. * modules/strerror-tests: New test module. * modules/argp (Depends-on): Add strerror. * modules/error (Depends-on): Likewise. Reported by Martin Koeppe. 2007-09-24 Bruno Haible * README: Update git instructions. 2007-09-24 Eric Blake Revert fpending breakage from 2007-09-08. * m4/fpending.m4 (gl_FUNC_FPENDING): Don't require existence of __fpending.c. 2007-09-24 Jim Meyering filenamecat.c: Add a test. * lib/filenamecat.c (main) [TEST_FILE_NAME_CONCAT]: Add a test showing how the function works when DIR is the empty string. 2007-09-21 Simon Josefsson * tests/test-canonicalize.sh: Turn on executable bit. 2007-09-19 Eric Blake * README: Update CVS instructions. 2007-09-18 Bruno Haible * modules/areadlink: New file. * lib/areadlink.h (areadlink): New declaration. * lib/areadlink.c: New file, based on lib/xreadlink.c. 2007-09-17 Jim Meyering * lib/savewd.c (ESTALE) [!defined]: Define. Reported to be required on Interix by Martin Koeppe. 2007-09-17 Bruno Haible * gnulib-tool (func_version): Use $version. 2007-09-16 Bruno Haible * m4/printf.m4 (gl_PRINTF_LONG_DOUBLE, gl_PRINTF_INFINITE, gl_PRINTF_INFINITE_LONG_DOUBLE): Increase buf's size from 100 to 10000. Needed on glibc-2.6.1 with -fstack-protector -D_FORTIFY_SOURCE=2. Reported by Greg Schafer . 2007-09-15 Bruno Haible * gnulib-tool (sed): Try a little harder to make bash understand the alias. Reported by Bruce Korb . 2007-09-13 Eric Blake * ChangeLog: Remove conflict markers. 2007-09-13 Simon Josefsson * lib/gc-gnulib.c (gc_hash_open): Catch NULL calloc return value. Reported by Bruno Haible . 2007-09-12 Bruno Haible * m4/lock.m4: Don't provide an AC_USE_SYSTEM_EXTENSIONS definition. (gl_LOCK_EARLY_BODY): Use AC_GNU_SOURCE when AC_USE_SYSTEM_EXTENSIONS is not defined. 2007-09-12 Eric Blake Track CVS Autoconf on AC_USE_SYSTEM_EXTENSIONS. * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Update to CVS Autoconf definition. * modules/euidaccess (Depends-on): Add extensions, for AC_USE_SYSTEM_EXTENSIONS with autoconf <= 2.59. * modules/fnmatch (Depends-on): Likewise. * modules/getaddrinfo (Depends-on): Likewise. * modules/getdelim (Depends-on): Likewise. * modules/getline (Depends-on): Likewise. * modules/getsubopt (Depends-on): Likewise. * modules/gettext (Depends-on): Likewise. * modules/group-member (Depends-on): Likewise. * modules/mbchar (Depends-on): Likewise. * modules/memmem (Depends-on): Likewise. * modules/mempcpy (Depends-on): Likewise. * modules/memrchr (Depends-on): Likewise. * modules/pagealign_alloc (Depends-on): Likewise. * modules/readutmp (Depends-on): Likewise. * modules/stpcpy (Depends-on): Likewise. * modules/stpncpy (Depends-on): Likewise. * modules/strchrnul (Depends-on): Likewise. * modules/strndup (Depends-on): Likewise. * modules/strsep (Depends-on): Likewise. * modules/strverscmp (Depends-on): Likewise. * modules/vasprintf (Depends-on): Likewise. * modules/wcwidth (Depends-on): Likewise. * m4/euidaccess.m4 (gl_FUNC_EUIDACCESS): AC_GNU_SOURCE will be obsolete in Autoconf 2.62; use AC_USE_SYSTEM_EXTENSIONS instead. * m4/fnmatch.m4 (gl_FUNC_FNMATCH_GNU): Likewise. * m4/getaddrinfo.m4 (gl_PREREQ_GETADDR_INFO): Likewise. * m4/getdelim.m4 (gl_FUNC_GETDELIM): Likewise. * m4/getline.m4 (gl_FUNC_GETLINE): Likewise. * m4/getsubopt.m4 (gl_FUNC_GETSUBOPT): Likewise. * m4/glob.m4 (gl_PREREQ_GLOB): Likewise. * m4/group-member.m4 (gl_FUNC_GROUP_MEMBER): Likewise. * m4/mbchar.m4 (gl_MBCHAR): Likewise. * m4/memmem.m4 (gl_FUNC_MEMMEM): Likewise. * m4/mempcpy.m4 (gl_FUNC_MEMPCPY): Likewise. * m4/memrchr.m4 (gl_FUNC_MEMRCHR): Likewise. * m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Likewise. * m4/pagealign_alloc.m4 (gl_PAGEALIGN_ALLOC): Likewise. * m4/readutmp.m4 (gl_READUTMP): Likewise. * m4/regex.m4 (gl_PREREQ_REGEX): Likewise. * m4/stpcpy.m4 (gl_FUNC_STPCPY): Likewise. * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Likewise. * m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Likewise. * m4/strndup.m4 (gl_FUNC_STRNDUP): Likewise. * m4/strnlen.m4 (gl_FUNC_STRNLEN): Likewise. * m4/strsep.m4 (gl_FUNC_STRSEP): Likewise. * m4/strverscmp.m4 (gl_FUNC_STRVERSCMP): Likewise. * m4/vasprintf.m4 (gl_PREREQ_VASPRINTF_H): Likewise. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise. * m4/lock.m4 (gl_LOCK_EARLY_BODY): Likewise, but provide fallback, so that lock.m4 can be used in gettext without extensions module. 2007-09-11 Bruno Haible * m4/isc-posix.m4: Remove file. Suggested by Eric Blake. 2007-09-11 Eric Blake * ChangeLog: Restore lines accidentally truncated 2007-04-06. 2007-09-10 Bruno Haible * posix-modules: Fix typo in error message. Reported by Matt . 2007-09-09 Bruno Haible * doc/functions/getdelim.texi: Update list of platforms lacking the function. * doc/functions/getline.texi: Likewise. 2007-09-09 Jim Meyering * lib/hash.c (hash_initialize): Detect calloc failure. Reported by Bruno Haible. 2007-09-09 Bruno Haible * lib/canonicalize-lgpl.c (__realpath): Set errno to ENOMEM when malloc or realloc fails. 2007-09-09 Bruno Haible * modules/getcwd (Depends-on): Add malloc-posix. * modules/glob (Depends-on): Likewise. * modules/putenv (Depends-on): Likewise. * modules/strdup (Depends-on): Likewise. * modules/getdelim (Depends-on): Add realloc-posix. * modules/read-file (Depends-on): Likewise. 2007-09-09 Bruno Haible * m4/malloc.m4 (gl_CHECK_MALLOC_POSIX): New macro. (gl_FUNC_MALLOC_POSIX): Require it. * m4/realloc.m4 (gl_FUNC_REALLOC_POSIX): Likewise. * m4/calloc.m4 (gl_FUNC_CALLOC_POSIX): Likewise. * modules/realloc (Files): Add m4/malloc.m4. * modules/calloc (Files): Likewise. 2007-09-09 Bruno Haible * modules/malloc-posix: New file. * modules/malloc (Depends-on): Add malloc-posix. * lib/malloc.c: Include errno.h. (rpl_malloc): Merge the requirements of a glibc-compatible malloc and a POSIX-compatible malloc into a single function. Set ENOMEM when returning NULL. * m4/malloc.m4: New file. * doc/functions/malloc.texi: Mention the malloc-posix module. * lib/stdlib_.h (malloc): New declaration. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_MALLOC_POSIX and HAVE_MALLOC_POSIX. * modules/stdlib (stdlib.h): Substitute also GNULIB_MALLOC_POSIX and HAVE_MALLOC_POSIX. 2007-09-09 Bruno Haible * modules/realloc-posix: New file. * modules/realloc (Depends-on): Add realloc-posix. * lib/realloc.c: Include errno.h. (rpl_realloc): Merge the requirements of a glibc-compatible realloc and a POSIX-compatible realloc into a single function. Set ENOMEM when returning NULL. * m4/realloc.m4: New file. * doc/functions/realloc.texi: Mention the realloc-posix module. * lib/stdlib_.h (realloc): New declaration. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_REALLOC_POSIX and HAVE_REALLOC_POSIX. * modules/stdlib (stdlib.h): Substitute also GNULIB_REALLOC_POSIX and HAVE_REALLOC_POSIX. 2007-09-09 Bruno Haible * modules/calloc-posix: New file. * modules/calloc (Depends-on): Add calloc-posix. * lib/calloc.c: Include errno.h. (rpl_calloc): Merge the requirements of a glibc-compatible calloc and a POSIX-compatible calloc into a single function. Set ENOMEM when returning NULL. * m4/calloc.m4 (gl_FUNC_CALLOC_POSIX): New macro. * doc/functions/calloc.texi: Mention the calloc-posix module. * lib/stdlib_.h (calloc): New declaration. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_CALLOC_POSIX and HAVE_CALLOC_POSIX. * modules/stdlib (stdlib.h): Substitute also GNULIB_CALLOC_POSIX and HAVE_CALLOC_POSIX. 2007-09-09 Bruno Haible Allow for modules to show an arbitrary notice. * modules/TEMPLATE-EXTENDED: Add 'Notice' field. * gnulib-tool: New option --extract-notice. (func_usage): Document it. (sed_extract_prog): Update. (func_get_notice): New function. (func_modules_notice): New function. (func_import, func_create_testdir): Invoke it. Suggested by Jim Meyering. 2007-09-09 Bruno Haible * gnulib-tool: New options --verbose, --quiet. (func_usage): Document them. (verbose): New variable. (func_execute_command): New function. (func_import): Don't show the module list and the file list if $verbose < 0. (func_create_testdir): Likewise. Use func_execute_command. (func_create_megatestdir): Use func_execute_command. 2007-09-08 Bruno Haible * gnulib-tool (func_import): Prefer rsync over wget when available, for fetching the PO files. 2007-09-08 Bruno Haible * posix-modules: New file. Portions copied from gnulib-tool. * doc/gnulib.texi (POSIX Substitutes Library): New chapter. 2007-09-08 Jim Meyering Rename __fpending.c -> fpending.c and __fpending.h -> fpending.h * lib/fpending.h: Rename from __fpending.h. * lib/fpending.c: Rename from __fpending.c. Include "fpending.h", not "__fpending.h". * lib/__fpending.h, lib/__fpending.c: Remove files. * modules/fpending (Files): Reflect new file names. * lib/close-stream.c: Include "fpending.h", not "__fpending.h". 2007-09-08 Bruno Haible * m4/inttypes-h.m4: Remove stub file. 2007-09-07 Simon Josefsson * doc/headers/stdint.texi: Discuss #include_next issue. 2007-09-06 Paul Eggert * build-aux/bootstrap: Remove obsolete comment about wget --help. 2007-09-06 Yoann Vandoorselaere * m4/time_h.m4 (gl_CHECK_TYPE_STRUCT_TIMESPEC): Fix misspelling in variable name. 2007-09-03 Jim Meyering New module: git-version-gen. * modules/git-version-gen: New file. Import changes from coreutils for bootstrap script. * build-aux/bootstrap (WGET_COMMAND): Remove code to set this variable. bootstrap: uses rsync to download the .po files * build-aux/bootstrap (po_download_command_format): New global. (download_po_files): Use rsync. (update_po_files): Don't remove .po files after download, so future rsync runs can take advantage of the copies. * build-aux/bootstrap (gnulib_tool): Make sha1sum check quietly. Solve the unnecessary-.po-file-regeneration problem once and for all. * build-aux/bootstrap (download_po_files): New function, renamed from get_translations. Now, downloads, but doesn't update LINGUAS. (update_po_files): New function. bootstrap: Ignore more. * build-aux/bootstrap (symlink_to_dir): Add a directory name like uniwidth to e.g., lib/.gitignore. (slurp): Handle the sys_stat_.h -> sys mapping, too. * build-aux/bootstrap: New setting: vc_ignore. (insert_sorted_if_absent): Create $file if absent. Adapt to new, possibly empty, list: $vc_ignore. bootstrap: generate more ignorable names * build-aux/bootstrap (slurp): When generating ignorable names, also map .sin to .sed, .gperf to .c, and .y to .c. 2007-09-03 Jim Meyering * build-aux/git-version-gen: New file, from coreutils. For details, see http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=commitdiff;h=bfe49f506 2007-09-02 Bruno Haible Fix mis-recognition of 'mcs' on QNX 6. * m4/csharpcomp.m4 (gt_CSHARPCOMP): Test whether the "mcs --version" output contains the string "Mono". * lib/csharpcomp.c (compile_csharp_using_mono): Likewise. Reported by at . 2007-09-01 Bruno Haible Fix collision between uniwidth/* and linebreak modules. * lib/linebreak.h (locale_charset, uc_width, u8_width, u16_width, u32_width): Remove declarations. * lib/linebreak.c: Include uniwidth.h, uniwidth/cjk.h, streq.h. (u32_mbtouc_unsafe, streq9, streq8, streq7, streq6, streq5, streq4, streq3, streq2, streq1, streq0): Remove functions. (STREQ): Remove macro. (is_cjk_encoding): Remove function. (nonspacing_table_data, nonspacing_table_ind): Remove constants. (uc_width, u8_width, u16_width, u32_width): Remove functions. * modules/linebreak (Depends-on): Add streq, uniwidth/width. * NEWS: Document the change. 2007-09-01 Bruno Haible * lib/streq.h: Add double-inclusion guard. 2007-09-01 Karl Berry * MODULES.html.sh: Rename mreadlink_with_size to areadlink_with_size. 2007-08-28 Jim Meyering Rename mreadlink_with_size to areadlink_with_size. * NEWS: Document the change. * lib/mreadlink-with-size.c (mreadlink_with_size): Rename this to... * lib/areadlink-with-size.c (areadlink_with_size): ...this. * lib/mreadlink.h: Rename this to... * lib/areadlink.h: ...this. * modules/mreadlink-with-size: Rename this to... * modules/areadlink-with-size: ...this. * lib/canonicalize.c: Reflect the renaming. * modules/canonicalize: Likewise. 2007-08-26 Bruno Haible * gnulib-tool (func_import): When deciding which files to remove, consider also dangling symbolic links. Reported by Eric Blake. 2007-08-26 Bruno Haible * gnulib-tool (func_ln_if_changed): Use "test -h", not "test -L". 2007-08-23 Simon Josefsson * lib/readline.c: Don't include getline.h, the prototype is now found in stdio.h. 2007-08-23 Jim Meyering Getdelim touchup. * lib/getdelim.c (getdelim): Don't bother to save/restore errno around the funlockfile call, since funlockfile never sets errno. Don't set errno upon failed realloc. 2007-08-22 Eric Blake Getline touchups. * lib/getdelim.c (getdelim): Revert regression that required *n to be 0 when *lineptr is NULL. Preserve errno across funlockfile. * m4/getdelim.m4 (gl_FUNC_GETDELIM): Check for declaration of getdelim, rather than whether implementation is missing. * m4/getline.m4 (gl_FUNC_GETLINE): Likewise for getline. * lib/stdio_.h (getline): Also declare if replacement is required. * doc/functions/getdelim.texi: New file. * doc/functions/getline.texi: Likewise. * doc/gnulib.texi (Function Substitutes): Add new files. Reported by Bruno Haible. 2007-08-22 Ludovic Courtès * users.txt: Add Guile. 2007-08-22 Eric Blake * tests/test-getdelim.c (main): Use remove, not unlink. * tests/test-getline.c (main): Likewise. Move getline and getdelim into stdio.h, per POSIX 200x. * modules/getline (Files): Remove getline.h. (Depends-on): Add stdio. (configure.ac): Add module indicator. * modules/getdelim (Files): Remove getdelim.h. (Depends-on): Add stdio. (configure.ac): Add module indicator. * modules/stdio (Makefile.am): Work with new indicators. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Add new defaults. * m4/getdelim.m4 (gl_FUNC_GETDELIM): Work with stdio needs. * m4/getline.m4 (gl_FUNC_GETLINE): Likewise. * lib/getdelim.h: Delete. * lib/getline.h: Delete. * lib/stdio_.h (getdelim, getline): Declare. * modules/getdelim-tests: New module. * modules/getline-tests: Likewise. * tests/test-getdelim.c: New file. * tests/test-getline.c: Likewise. * NEWS: Document the change. * lib/getline.c: Update choice of header. * lib/csharpcomp.c: Likewise. * lib/getpass.c: Likewise. * lib/javacomp.c: Likewise. * lib/javaversion.c: Likewise. * lib/yesno.c: Likewise. * lib/getdelim.c: Likewise. (getdelim): Set errno on failure, and avoid memory leak. 2007-08-19 Bruno Haible * modules/closein (Depends-on): Add freadahead. * lib/closein.c: Include freadahead.h. (close_stdin): Skip the fseeko and fflush calls if freadahead(stdin) is zero. 2007-08-19 Bruno Haible * modules/freadahead-tests: New file. * tests/test-freadahead.sh: New file. * tests/test-freadahead.c: New file. * modules/freadahead: New file. * lib/freadahead.h: New file. * lib/freadahead.c: New file. * MODULES.html.sh (File stream based Input/Output): Add freadahead, fbufmode, fpurge, freadable, fwritable. 2007-08-19 Eric Blake Test yesno in combination with closein. * lib/yesno.c (yesno): Document use of stdin. * modules/yesno-tests (Files): New module. * tests/test-yesno.c (main): New file. * tests/test-yesno.sh: Likewise. 2007-08-19 Bruno Haible * lib/fbufmode.c (fbufmode): Add tentative support for Solaris/AMD64. * lib/fseeko.c (rpl_fseeko): Likewise. * lib/fseterr.c (fseterr): Likewise. 2007-08-19 Bruno Haible * tests/test-lseek.c (main): Disable a test for BeOS. * doc/functions/lseek.texi: Document the BeOS bug. 2007-08-19 Bruno Haible Eric Blake * lib/lseek.c: Include . (rpl_lseek): Add workaround code also for Unix platforms. Needed for BeOS. * m4/lseek.m4 (gl_FUNC_LSEEK): When cross-compiling, fail on BeOS. * doc/functions/lseek.texi: Document BeOS definiency. 2007-08-18 Bruno Haible * modules/fstrcmp-tests: New file. * tests/test-fstrcmp.c: New file. 2007-08-18 Bruno Haible * modules/fstrcmp: New file, from GNU gettext with modifications. * lib/fstrcmp.h: New file, from GNU gettext. * lib/fstrcmp.c: New file, from GNU gettext. * MODULES.html.sh (String handling): Add fstrcmp. 2007-08-18 Bruno Haible * lib/diffseq.h (struct context): Change type of 'heuristic' field to 'bool'. (diag, compareseq): Remove const from the ctxt argument. (USE_HEURISTIC): Undefine at the end. 2007-08-18 Jim Meyering New file: lib/idcache.h * NEWS: Mention the addition. * modules/idcache (Files): Add lib/idcache.h * lib/idcache.c: Include "idcache.h". Don't include . Add a FIXME comment. Move file-scoped "static" declarations to the top. * lib/idcache.h: New file. Include here, instead. 2007-08-17 Bruno Haible and Paul Eggert * MODULES.html.sh: Add diffseq. * modules/diffseq: New file. * lib/diffseq.h: New file, from GNU gettext with a few minor changes, extracted from GNU gettext's fstrcmp.c and GNU diff's analyze.c. 2007-08-15 Paul Eggert Import changes from coreutils for bootstrap script. 2007-07-21 Paul Eggert * build-aux/bootstrap (slurp): Work even in environments where "ls" defaults to "ls -A". Put in a FIXME, though, since the current code does not slurp files whose names start with ".", and this looks like it might be a troublesome area. 2007-07-11 Jim Meyering If there's a GPL vN copyright comment, require that N == 3. 2007-07-08 Jim Meyering Run the coreutils-specific code only if tests/Makefile.am.in exists. * build-aux/bootstrap (mam_template): Move definition out of loop. Create symlinks for gl/{lib,m4}/*, just as for gnulib/{lib,m4}/*. * build-aux/bootstrap (symlink_to_dir): Rename function from symlink_to_gnulib. Add a directory parameter. Update all callers. (cp_mark_as_generated): Also check for -- and link to -- files in gl/. 2007-07-08 Jim Meyering Adapt to deeper hierarchy in gnulib. * build-aux/bootstrap (symlink_to_dir): If the destination directory doesn't exist, create it. This is required at least for "lib/uniwidth/cjk.h". 2007-05-15 Jim Meyering * build-aux/bootstrap: Now that generated Makefile.am files are no longer under version control, they must be created at bootstrap time. 2007-08-14 Ben Pfaff * lib/count-one-bits.h: Add comments. From Bruno Haible. 2007-08-14 Paul Eggert * lib/count-one-bits.h: Don't include ; no longer needed given the changes below. (COUNT_ONE_BITS): Use 'verify' rather than 'verify_true'. Work even on hosts that have padding bits beyond the supported 64. 2007-08-10 Paul Eggert * NEWS: In xstrtol, remove STRTOL_FATAL_ERROR and add xstrtol_fatal. * lib/xstrtol.h: Don't include exitfail.h; that's now internal to xstrtol.c. Include getopt.h, since xstrtol_fatal's signature depends on it. (xstrtol_error): Remove. (xstrtol_fatal): New decl, replacing the functionality of xstrtol_error but with a different signature. (ATTRIBUTE_NORETURN, __attribute__): New macros. * lib/xstrtol-error.c: Include exitfail.h. (xstrtol_fatal): New function, with a different signature from the old xstrtol_error, so that the caller need not worry about passing in an exit status, or about storage management of the option argument. (xstrtol_error): Now a static function. Redo signature to implement xstrtol_fatal. Output the correct number of hyphens in front of the option so that the caller need not worry about storage management. (N_): New macro. (_): Remove; not used now. * modules/xstrtol: Depend on getopt. * tests/test-xstrtol.c (main): Use new xstrtol_error function instead of old STRTOL_FATAL_ERROR macro. * tests/test-xstrtol.sh (t-xstrtol.xo): Adjust to match new behavior of test program. * tests/test-xstrtoimax.sh (t-xstrtoimax.xo): Likewise. * tests/test-xstrtoumax.sh (t-xstrtoumax.xo): Likewise. 2007-08-08 Eric Blake * lib/xstrtol-error.c: Add missing include. Move xstrtol messages into gnulib domain, when --pobase is used. * lib/xstrtol.h (_STRTOL_ERROR): Move messages out of macro... * lib/xstrtol-error.c (xstrtol_error): ...into new file. * modules/xstrtol (Files): Distribute new file. * m4/xstrtol.m4 (gl_XSTRTOL): Build new file. * lib/xstrtol.c (TESTING_XSTRTO): Move tests... * tests/test-xstrtol.c: ...into new file. * tests/test-xstrtoul.c: Also test xstrtoul. * tests/test-xstrtoimax.c: Also test xstrtoimax. * tests/test-xstrtoumax.c: Also test xstrtoumax. * tests/test-xstrtol.sh: Drive the tests. * tests/test-xstrtoimax.sh: Likewise. * tests/test-xstrtoumax.sh: Likewise. * modules/xstrtol-tests: New module. * modules/xstrtoimax-tests: Likewise. * modules/xstrtoumax-tests: Likewise. 2007-08-08 Jim Meyering New function: mfile_name_concat. * lib/filenamecat.c (mfile_name_concat): New function, just like file_name_concat, but return NULL upon failure rather than exiting with a diagnostic. * lib/filenamecat.h: Declare it. 2007-08-07 Bruno Haible * m4/inttypes.m4 (gl_INTTYPES_H): Use GL_TRIGGER_STDC_LIMIT_MACROS instead of __STDC_LIMIT_MACROS_TRIGGER. This avoids a redefinition warning from gcc. Reported by Eric Blake. 2007-08-07 Simon Josefsson * modules/crypto/arctwo (License): Use the synonymous term "LGPLv2+". * modules/crypto/arcfour (License): Likewise. * modules/crypto/des-tests (License): Likewise. * modules/crypto/gc-arctwo-tests (License): Likewise. * modules/crypto/gc-des-tests (License): Likewise. * modules/crypto/gc-hmac-md5-tests (License): Likewise. * modules/crypto/gc-hmac-sha1-tests (License): Likewise. * modules/crypto/gc-md2-tests (License): Likewise. * modules/crypto/gc-md4-tests (License): Likewise. * modules/crypto/gc-md5-tests (License): Likewise. * modules/crypto/gc-pbkdf2-sha1-tests (License): Likewise. * modules/crypto/gc-rijndael-tests (License): Likewise. * modules/crypto/gc-sha1-tests (License): Likewise. * modules/crypto/gc-tests (License): Likewise. * modules/crypto/hmac-md5 (License): Likewise. * modules/crypto/hmac-sha1 (License): Likewise. * modules/crypto/md2-tests (License): Likewise. * modules/crypto/md4-tests (License): Likewise. * modules/crypto/md5 (License): Likewise. * modules/crypto/rijndael (License): Likewise. * modules/crypto/sha1 (License): Likewise. * modules/memxor (License): Likewise. 2007-08-06 Paul Eggert and Bruno Haible * NEWS: Describe interface changes to human, xstrtol. * lib/human.h: Include . (human_options): Return enum strtol_error, not int. Remove bool arg; take int * instead. * lib/human.c: Don't include "gettext.h". (_): Remove; no longer used. Don't include , since human.h does it. (human_options): Adjust to abovementioned interface changes. Do not report error to stderr; that's now the caller's responsibility. * lib/xstrtol.c (main) [defined TESTING_XSTRTO]: Adjust to interface change. * lib/xstrtol.h (_STRTOL_ERROR): Take Option, Arg rather than Str, Argument_type_string. All uses changed. Put " argument" in diagnostics to make them clearer. Change wording of suffix message for clarity. (STRTOL_FATAL_ERROR): Take Option, Arg rather than Str, Argument_type_string. (STRTOL_FATAL_WARN): Remove; no longer used. * modules/human (Depends-on): Remove gettext-h. 2007-08-06 Simon Josefsson * build-aux/maint.mk, build-aux/GNUmakefile: Relicense to GPLv3+. 2007-07-31 Bruno Haible * m4/stdint.m4 (gl_STDINT_H): Test whether WCHAR_MIN and WCHAR_MAX are defined by (as opposed to , as on Dragonfly). Reported by Joerg Sonnenberger . 2007-07-31 Bruno Haible * lib/fflush.c (rpl_fflush): On BSD systems, use the __SNPT flag. Suggested by Joerg Sonnenberger . 2007-07-30 Bruno Haible * modules/base64 (License): Use the synonymous term "LGPLv2+". * modules/c-ctype (License): Likewise. * modules/c-strcase (License): Likewise. * modules/check-version (License): Likewise. * modules/iconv (License): Likewise. * modules/iconv_open (License): Likewise. * modules/read-file (License): Likewise. * modules/striconv (License): Likewise. * modules/strverscmp (License): Likewise. * modules/vasprintf (License): Likewise. * modules/crypto/des (License): Likewise. * modules/crypto/gc (License): Likewise. * modules/crypto/gc-arcfour (License): Likewise. * modules/crypto/gc-arctwo (License): Likewise. * modules/crypto/gc-des (License): Likewise. * modules/crypto/gc-hmac-md5 (License): Likewise. * modules/crypto/gc-hmac-sha1 (License): Likewise. * modules/crypto/gc-md2 (License): Likewise. * modules/crypto/gc-md4 (License): Likewise. * modules/crypto/gc-md5 (License): Likewise. * modules/crypto/gc-pbkdf2-sha1 (License): Likewise. * modules/crypto/gc-random (License): Likewise. * modules/crypto/gc-rijndael (License): Likewise. * modules/crypto/gc-sha1 (License): Likewise. * modules/crypto/md2 (License): Likewise. * modules/crypto/md4 (License): Likewise. 2007-07-30 Jim Meyering * lib/fts.c (fts_read): Upon failure to chdir into a subdirectory, set fts_info to FTS_DNR, not to FTS_ERR, so that the caller knows it has valid stat data. This bug would cause du not to count the sizes of inaccessible directories. Patch by Bryan Mason , via Jose Maria Plans in . 2007-07-25 Peter O'Gorman Bruno Haible * m4/include_next.m4 (gl_INCLUDE_NEXT): Test whether #include_next really works. Needed because AIX 4.3 "xlc -E" doesn't understand #include_next, gives a diagnostic about it, but reports no error in the exit code. Reported by Gary V. Vaughan . 2007-07-24 Ben Pfaff Improve name: "count-one-bits" is better than "popcount". * MODULES.html.sh: Update name. * lib/popcount.h: Renamed lib/count-one-bits.h. (popcount): Renamed count_one_bits. (popcountl): Renamed count_one_bits_l. (popcountll): Renamed count_one_bits_ll. * m4/popcount.m4: Renamed m4/count-one-bits.m4. * modules/popcount: Renamed module/count-one-bits. * modules/popcount-tests: Renamed module/count-one-bits-tests. * tests/test-popcount.c: Renamed tests/test-count-one-bits.c. 2007-07-23 Ben Pfaff * lib/popcount.h (popcount32): Reduce size of constants, to allow better code generation, and add U to large constants to avoid warnings, in non-GCC case. Suggested by Bruno Haible. 2007-07-23 Ben Pfaff * lib/popcount.h: Use verify_true instead of if...abort. * modules/popcount: Depend on verify module. Suggested by Jim Meyering. 2007-07-23 Bruno Haible * gnulib-tool (func_import): Create a .cvsignore file also when the directory is not yet in CVS but the toplevel directory is. When creating a .cvsignore file, add ".deps" and ".dirstamp" to it. Reported by Karl Berry. 2007-07-22 Ben Pfaff * lib/popcount.h: Use faster, branchless algorithm for non-GCC case. Suggested by Eric Blake. 2007-07-22 Ben Pfaff New module: popcount. * MODULES.html.sh: Add popcount. * modules/popcount: New file. * modules/popcount-tests: New file. * tests/test-popcount.c: New file. * lib/popcount.h: New file. * m4/popcount.m4: New file. 2007-07-22 Paul Eggert * build-aux/announce-gen: Update to GPLv3. * build-aux/config.guess: Update from config. 2007-07-21 Bruno Haible * lib/error.c (_) [ENABLE_NLS]: Define to gettext. * lib/verror.c (_) [ENABLE_NLS]: Likewise. 2007-07-20 Jim Meyering * check-module: Diagnose a self-dependency. 2007-07-19 Bruno Haible * gnulib-tool (func_import): Don't abort if pobase or po_domain is empty. Reported by Eric Blake. 2007-07-18 Bruno Haible * gnulib-tool: New options --po-base, --po-domain. (func_usage): Document them. (pobase, po_domain): New variables. (func_emit_lib_Makefile_am): Augment AM_CPPFLAGS, defining DEFAULT_TEXT_DOMAIN. (func_emit_po_Makevars, func_emit_po_POTFILES_in): New functions. (func_import): Consider pobase and po_domain. Create a po/ directory. (func_create_testdir): Set pobase and po_domain to empty. * build-aux/po/Makefile.in.in: New file, from GNU gettext 0.16.1. * build-aux/po/remove-potcdate.sin: New file, from GNU gettext 0.16.1. 2007-07-18 Bruno Haible * gnulib-tool (func_get_automake_snippet): Synthesize also an EXTRA_DIST augmentation for files in build-aux/. 2007-07-16 Bruno Haible * modules/lseek (License): Use the synonymous term "LGPLv2+". * modules/getdelim (License): Likewise. 2007-07-16 Yoann Vandoorselaere * modules/arpa_inet (License): Use the synonymous term LGPLv2+. * modules/d-type (License): Likewise. * modules/extensions (License): Likewise. * modules/fnmatch (License): Likewise. * modules/fseeko (License): Likewise. * modules/getaddrinfo (License): Likewise. * modules/getline (License): Likewise. * modules/getlogin_r (License): Likewise. * modules/getpass (License): Likewise. * modules/gettimeofday (License): Likewise. * modules/glob (License): Likewise. * modules/inet_ntop (License): Likewise. * modules/malloc (License): Likewise. * modules/malloca (License): Likewise. * modules/memmem (License): Likewise. * modules/mempcpy (License): Likewise. * modules/memset (License): Likewise. * modules/minmax (License): Likewise. * modules/mktime (License): Likewise. * modules/netinet_in (License): Likewise. * modules/pathmax (License): Likewise. * modules/poll (License): Likewise. * modules/regex (License): Likewise. * modules/snprintf (License): Likewise. * modules/stdbool (License): Likewise. * modules/stdint (License): Likewise. * modules/stdio (License): Likewise. * modules/strcase (License): Likewise. * modules/strcasestr (License): Likewise. * modules/strdup (License): Likewise. * modules/string (License): Likewise. * modules/strndup (License): Likewise. * modules/strnlen (License): Likewise. * modules/strpbrk (License): Likewise. * modules/strptime (License): Likewise. * modules/strsep (License): Likewise. * modules/sys_select (License): Likewise. * modules/sys_socket (License): Likewise. * modules/sys_stat (License): Likewise. * modules/sys_time (License): Likewise. * modules/time (License): Likewise. * modules/time_r (License): Likewise. * modules/timegm (License): Likewise. * modules/unistd (License): Likewise. * modules/vsnprintf (License): Likewise. * modules/wctype (License): Likewise. 2007-07-16 Ralf Wildenhues * modules/argz (License): LGPLv2+. 2007-07-15 Karl Berry * doc/gnulib.texi: revise node structure per new fdl.texi. 2007-07-14 Bruno Haible * lib/uniname/gen-uninames.lisp (main): Emit a "do not edit" line to the output file. * lib/uniname/uninames.h: Regenerated. 2007-07-14 Karl Berry * doc/*gpl*.texi, doc/fdl.texi: new versions, consistently omitting sectioning and index commands. 2007-07-13 Bruno Haible New gnulib-tool option --more-symlinks. * gnulib-tool (func_usage): Document --more-symlinks. (do_copyrights): New variable. Recognize option --more-symlinks. (func_import): Don't add a copyright notice transform to sed_transform_lib_file if do_copyrights is empty. 2007-07-13 Bruno Haible * lib/vasnprintf.c (decimal_point_char): Define also if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !NEED_PRINTF_DIRECTIVE_A. Reported by Clemens Koller via Gary V. Vaughan . 2007-07-13 Paul Eggert * lib/inttypes_.h: Undo previous change, since it was fixed in a different way in the 2007-07-02 fix to m4/inttypes.m4. 2007-07-13 Bruno Haible * lib/stdint_.h: Fix typo: _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H was misspelled as _GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H. 2007-07-13 Jim Meyering df: Don't fail for Tru64's "file-on-file mount". * m4/fsusage.m4 (gl_FSUSAGE): Reject Tru64's buggy statvfs, so we fall through and use statfs instead. Details here: Reported by Albert Chin. 2007-07-13 Bruno Haible * modules/alloca-opt (License): Use the synonymous term "LGPLv2+". * modules/configmake (License): Likewise. * modules/gettext (License): Likewise. * modules/gettext-h (License): Likewise. * modules/include_next (License): Likewise. * modules/link-warning (License): Likewise. * modules/localcharset (License): Likewise. * modules/localename (License): Likewise. * modules/lock (License): Likewise. * modules/relocatable-lib-lgpl (License): Likewise. * modules/size_max (License): Likewise. * modules/vasnprintf (License): Likewise. * modules/wchar (License): Likewise. * modules/xsize (License): Likewise. 2007-07-13 Bruno Haible * gnulib-tool (func_import): Treat LGPLv2 as synonymous to LGPL. (func_create_testdir): Handle copying terms "GPLv2+" and "LGPLv2+". 2007-07-12 Bruno Haible * doc/gnulib-intro.texi (Copyright): Clarify the license abbreviations in the modules files. 2007-07-11 Karl Berry * MODULES.html.sh (func_module): use sed -e '\|^'"${includefile}"'$|d' instead of /.../d, to avoid errors on $includefile's containing /. 2007-07-10 Sergey Poznyakoff * gnulib-tool (func_import): Avoid duplication of --avoid statements (func_dest_tmpfilename,func_create_testdir): Translate `-' in file names to `_' in variable names. 2007-07-10 Eric Blake * lib/version-etc.c (version_etc_va): Default to GPLv3+. * NEWS: Document this change. 2007-07-08 Bruno Haible Update to Unicode 5.0. * lib/uniwidth/width.c (nonspacing_table_data): Add U+00AD, U+0350..U+035F, U+05A2, U+05BA, U+05C5, U+05C7, U+0600..U+0603, U+0610..U+0615, U+0656..U+065E, U+07EB..U+07F3, U+0A01, U+0AE2..U+0AE3, U+0CBC. Remove U+0CBF, U+0CC6. Add U+0CE2..U+0CE3, U+135F, U+17B4..U+17B5, U+17DD. Remove U+180E. Add U+1920..U+1922, U+1927..U+192B, U+1932, U+1939..U+193B, U+1A17..U+1A18, U+1B00..U+1B03, U+1B34, U+1B36..U+1B3A, U+1B3C, U+1B42, U+1B6B..U+1B73, U+1DC0..U+1DCA, U+1DFE..U+1DFF, U+20EB..U+20EF, U+A802, U+A806, U+A80B, U+A825..U+A826, U+10A01..U+10A03, U+10A05..U+10A06, U+10A0C..U+10A0F, U+10A38..U+10A3A, U+10A3F, U+1D242..U+1D244. (nonspacing_table_ind): Update. (uc_width): Assign width 0 to U+E0100..U+E01EF. Assign width 1 to U+4DC0..U+4DFF. Assign width 2 to U+2329..U+232A, U+FE10..U+FE1F. 2007-07-08 Bruno Haible Update to Unicode 5.0. * lib/uniname/gen-uninames.lisp (main): Add the range 0x12xxx to the code transform. Extend the name index field of unicode_name_to_code and unicode_code_to_name from 16 to 24 bits. * lib/uniname/uniname.c (unicode_character_name, unicode_name_character): Add the range 0x12xxx to the code transform. * lib/uniname/uninames.h: Regenerated. * tests/uniname/UnicodeDataNames.txt: Update to Unicode 5.0. 2007-07-07 Bruno Haible * modules/wcwidth-tests: New file. * tests/test-wcwidth.c: New file. Work around MacOS X wcwidth() bug. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Test against MacOS X 10.3 bug. * lib/wcwidth.c: Include localcharset.h, streq.h, uniwidth.h. (rpl_wcwidth): Special-case the UTF-8 locales. Fall back to the original wcwidth in non-UTF-8 locales. * modules/wcwidth (Depends-on): Add localcharset, streq, uniwidth/width. * doc/functions/wcwidth.texi: Update. 2007-07-07 Bruno Haible * lib/wchar_.h: Include the GL_LINK_WARNING macro. (wcwidth): New declaration. * m4/wchar.m4 (gl_WCHAR_MODULE_INDICATOR, gl_WCHAR_H_DEFAULTS): New macros. (gl_WCHAR_H): Require gl_WCHAR_H_DEFAULTS. Don't set WCHAR_H to empty here. Prepare for creating unconditionally. * modules/wchar (Depends-on): Add link-warning. (Makefile.am): Substitute also GNULIB_WCWIDTH, HAVE_DECL_WCWIDTH, REPLACE_WCWIDTH, and GL_LINK_WARNING. * lib/wcwidth.h: Remove file. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Require gl_WCHAR_H_DEFAULTS. Set HAVE_DECL_WCWIDTH, REPLACE_WCWIDTH, WCHAR_H. * modules/wcwidth (Files): Remove lib/wcwidth.h. (configure.ac): Invoke gl_WCHAR_MODULE_INDICATOR. (Include): Replace wcwidth.h with . * lib/wcwidth.c: Include instead of wcwidth.h. * lib/mbchar.h: Don't include wcwidth.h. * lib/mbswidth.c: Likewise. * NEWS: Mention the change. 2007-07-07 Bruno Haible * lib/wcwidth.c: New file, extracted from lib/wcwidth.h. * lib/wcwidth.h: Don't include wctype.h. Replace inline function definition with an external declaration. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Use wcwidth.c when wcwidth is not defined as a function. Remove AC_C_INLINE requirement. * modules/wcwidth (Files): Add lib/wcwidth.c. (Makefile.am): Remove redundant statement. 2007-07-07 Bruno Haible * MODULES.html.sh (Unicode string functions): Add the new modules. * tests/uniwidth/test-u32-strwidth.c: New file. * modules/uniwidth/u32-strwidth-tests: New file. * lib/uniwidth/u32-strwidth.c: New file. * modules/uniwidth/u32-strwidth: New file. * tests/uniwidth/test-u16-strwidth.c: New file. * modules/uniwidth/u16-strwidth-tests: New file. * lib/uniwidth/u16-strwidth.c: New file. * modules/uniwidth/u16-strwidth: New file. * tests/uniwidth/test-u8-strwidth.c: New file. * modules/uniwidth/u8-strwidth-tests: New file. * lib/uniwidth/u8-strwidth.c: New file. * modules/uniwidth/u8-strwidth: New file. * tests/uniwidth/test-u32-width.c: New file. * modules/uniwidth/u32-width-tests: New file. * lib/uniwidth/u32-width.c: New file. * modules/uniwidth/u32-width: New file. * tests/uniwidth/test-u16-width.c: New file. * modules/uniwidth/u16-width-tests: New file. * lib/uniwidth/u16-width.c: New file. * modules/uniwidth/u16-width: New file. * tests/uniwidth/test-u8-width.c: New file. * modules/uniwidth/u8-width-tests: New file. * lib/uniwidth/u8-width.c: New file. * modules/uniwidth/u8-width: New file. * tests/uniwidth/test-uc_width.c: New file. * modules/uniwidth/width-tests: New file. * lib/uniwidth/width.c: New file, from GNU libiconv. * lib/uniwidth/cjk.h: New file, from GNU libiconv. * modules/uniwidth/width: New file. * lib/uniwidth.h: New file, from GNU libiconv. * modules/uniwidth/base: New file. 2007-07-07 Bruno Haible * lib/uniname.h: New file, from GNU gettext. * lib/uniname/gen-uninames.lisp: New file, from GNU gettext. * lib/uniname/uninames.h: New file, from GNU gettext. * lib/uniname/uniname.c: New file, from GNU gettext. * tests/uniname/test-uninames.sh: New file. * tests/uniname/test-uninames.c: New file, from GNU gettext. * tests/uniname/UnicodeDataNames.txt: New file, from GNU gettext. * modules/uniname/base: New file. * modules/uniname/uniname: New file. * modules/uniname/uniname-tests: New file. * MODULES.html.sh (Unicode string functions): Add the new modules. 2007-07-06 Bruno Haible * doc/Makefile (TEXI2HTML): Specify a --reference-limit. 2007-07-06 Bruno Haible * lib/sys_time_.h: Use a recursion-safe inclusion guard rather than a split double-inclusion guard. Needed for cygwin, where includes which includes which include . Reported by Eric Blake. 2007-07-06 Eric Blake Fix testing canonicalize on cygwin. * modules/canonicalize-lgpl-tests (test_canonicalize_lgpl_LDADD): Revert patch from 2007-06-19. * tests/test-canonicalize-lgpl.c (main): Instead, skip test when canonicalize module is also in use. * tests/test-canonicalize.c: New file. * tests/test-canonicalize.sh: Likewise. * modules/canonicalize-tests: Likewise. 2007-07-06 Jim Meyering * lib/getugroups.c (getugroups): Detect getgrent failure. Adjust comment to reflect reality: this function may return -1. 2007-07-05 Sergey Poznyakoff * build-aux/bootstrap (TP_URL,get_translations): Update to use the new TP address. (usage): Fix typo (gnulib_mk): New variable. 2007-07-05 Jim Meyering Don't let endgrent clobber errno, no matter how improbable. * lib/getugroups.c (getugroups): Save and restore errno around endgrent call. Close the group DB even when failing with 2^31 or more members. * lib/getugroups.c (getugroups): Don't return without calling endgrent. 2007-07-04 Jim Meyering * lib/getugroups.h: New file. * lib/getugroups.c: Include "getugroups.h". Remove uses of "register" keyword. Move local variable, "cp", down into scope where used. Give "username" parameter the "const" attribute. * modules/getugroups (Files): Add lib/getugroups.h 2007-07-04 Karl Berry * MODULES.html.sh (func_all_modules): Complete rename of gpl/lgpl to gpl-2.0 and lgpl-2.1, and add gpl-3.0. 2007-07-02 Bruno Haible * m4/inttypes.m4 (gl_INTTYPES_H): Define __STDC_LIMIT_MACROS in C++ mode, when inttypes.h comes from gnulib. Reported by Joel E. Denny . 2007-07-02 Simon Josefsson * NEWS: Mention lgpl module name change. * modules/lgpl-2.1: Renamed from lgpl. * NEWS: Mention gpl module name change. * modules/gpl-3.0: New file, based on gpl-2.0. * modules/gpl-2.0: Renamed from gpl. * modules/gpl: Fix filename, doc/gpl.texi is now found at doc/gpl-2.0.texi. 2007-07-02 Paul Eggert * lib/inttypes_.h [defined __cplusplus&&!defined __STDC_LIMIT_MACROS]: #define __STDC_LIMIT_MACROS temporarily while including , so that __STDC_LIMIT_MACROS is defined. Problem reported by Joel E. Denny in . 2007-07-01 Bruno Haible * lib/unistdio.h: New file. * lib/unistdio/u-asnprintf.h: New file. * lib/unistdio/u-asprintf.h: New file. * lib/unistdio/u-printf-args.c: New file. * lib/unistdio/u-printf-args.h: New file. * lib/unistdio/u-printf-parse.h: New file. * lib/unistdio/u-snprintf.h: New file. * lib/unistdio/u-sprintf.h: New file. * lib/unistdio/u-vasprintf.h: New file. * lib/unistdio/u-vsnprintf.h: New file. * lib/unistdio/u-vsprintf.h: New file. * lib/unistdio/ulc-asnprintf.c: New file. * lib/unistdio/ulc-asprintf.c: New file. * lib/unistdio/ulc-fprintf.c: New file, based on lib/fprintf.c. * lib/unistdio/ulc-printf-parse.c: New file. * lib/unistdio/ulc-snprintf.c: New file. * lib/unistdio/ulc-sprintf.c: New file. * lib/unistdio/ulc-vasnprintf.c: New file. * lib/unistdio/ulc-vasprintf.c: New file. * lib/unistdio/ulc-vfprintf.c: New file, based on lib/vfprintf.c. * lib/unistdio/ulc-vsnprintf.c: New file. * lib/unistdio/ulc-vsprintf.c: New file. * lib/unistdio/u8-asnprintf.c: New file. * lib/unistdio/u8-asprintf.c: New file. * lib/unistdio/u8-printf-parse.c: New file. * lib/unistdio/u8-snprintf.c: New file. * lib/unistdio/u8-sprintf.c: New file. * lib/unistdio/u8-vasnprintf.c: New file. * lib/unistdio/u8-vasprintf.c: New file. * lib/unistdio/u8-vsnprintf.c: New file. * lib/unistdio/u8-vsprintf.c: New file. * lib/unistdio/u8-u8-asnprintf.c: New file. * lib/unistdio/u8-u8-asprintf.c: New file. * lib/unistdio/u8-u8-snprintf.c: New file. * lib/unistdio/u8-u8-sprintf.c: New file. * lib/unistdio/u8-u8-vasnprintf.c: New file. * lib/unistdio/u8-u8-vasprintf.c: New file. * lib/unistdio/u8-u8-vsnprintf.c: New file. * lib/unistdio/u8-u8-vsprintf.c: New file. * lib/unistdio/u16-asnprintf.c: New file. * lib/unistdio/u16-asprintf.c: New file. * lib/unistdio/u16-printf-parse.c: New file. * lib/unistdio/u16-snprintf.c: New file. * lib/unistdio/u16-sprintf.c: New file. * lib/unistdio/u16-vasnprintf.c: New file. * lib/unistdio/u16-vasprintf.c: New file. * lib/unistdio/u16-vsnprintf.c: New file. * lib/unistdio/u16-vsprintf.c: New file. * lib/unistdio/u16-u16-asnprintf.c: New file. * lib/unistdio/u16-u16-asprintf.c: New file. * lib/unistdio/u16-u16-snprintf.c: New file. * lib/unistdio/u16-u16-sprintf.c: New file. * lib/unistdio/u16-u16-vasnprintf.c: New file. * lib/unistdio/u16-u16-vasprintf.c: New file. * lib/unistdio/u16-u16-vsnprintf.c: New file. * lib/unistdio/u16-u16-vsprintf.c: New file. * lib/unistdio/u32-asnprintf.c: New file. * lib/unistdio/u32-asprintf.c: New file. * lib/unistdio/u32-printf-parse.c: New file. * lib/unistdio/u32-snprintf.c: New file. * lib/unistdio/u32-sprintf.c: New file. * lib/unistdio/u32-vasnprintf.c: New file. * lib/unistdio/u32-vasprintf.c: New file. * lib/unistdio/u32-vsnprintf.c: New file. * lib/unistdio/u32-vsprintf.c: New file. * lib/unistdio/u32-u32-asnprintf.c: New file. * lib/unistdio/u32-u32-asprintf.c: New file. * lib/unistdio/u32-u32-snprintf.c: New file. * lib/unistdio/u32-u32-sprintf.c: New file. * lib/unistdio/u32-u32-vasnprintf.c: New file. * lib/unistdio/u32-u32-vasprintf.c: New file. * lib/unistdio/u32-u32-vsnprintf.c: New file. * lib/unistdio/u32-u32-vsprintf.c: New file. * tests/unistdio/test-ulc-asnprintf1.c: New file. * tests/unistdio/test-ulc-asnprintf1.h: New file. * tests/unistdio/test-ulc-printf1.h: New file. * tests/unistdio/test-ulc-vasnprintf1.c: New file. * tests/unistdio/test-ulc-vasnprintf2.c: New file. * tests/unistdio/test-ulc-vasnprintf2.sh: New file. * tests/unistdio/test-ulc-vasnprintf3.c: New file. * tests/unistdio/test-ulc-vasnprintf3.sh: New file. * tests/unistdio/test-ulc-vasprintf1.c: New file. * tests/unistdio/test-ulc-vsnprintf1.c: New file. * tests/unistdio/test-ulc-vsprintf1.c: New file. * tests/unistdio/test-u8-asnprintf1.c: New file. * tests/unistdio/test-u8-asnprintf1.h: New file. * tests/unistdio/test-u8-printf1.h: New file. * tests/unistdio/test-u8-vasnprintf1.c: New file. * tests/unistdio/test-u8-vasnprintf2.c: New file. * tests/unistdio/test-u8-vasnprintf2.sh: New file. * tests/unistdio/test-u8-vasnprintf3.c: New file. * tests/unistdio/test-u8-vasnprintf3.sh: New file. * tests/unistdio/test-u8-vasprintf1.c: New file. * tests/unistdio/test-u8-vsnprintf1.c: New file. * tests/unistdio/test-u8-vsprintf1.c: New file. * tests/unistdio/test-u16-asnprintf1.c: New file. * tests/unistdio/test-u16-asnprintf1.h: New file. * tests/unistdio/test-u16-printf1.h: New file. * tests/unistdio/test-u16-vasnprintf1.c: New file. * tests/unistdio/test-u16-vasnprintf2.c: New file. * tests/unistdio/test-u16-vasnprintf2.sh: New file. * tests/unistdio/test-u16-vasnprintf3.c: New file. * tests/unistdio/test-u16-vasnprintf3.sh: New file. * tests/unistdio/test-u16-vasprintf1.c: New file. * tests/unistdio/test-u16-vsnprintf1.c: New file. * tests/unistdio/test-u16-vsprintf1.c: New file. * tests/unistdio/test-u32-asnprintf1.c: New file. * tests/unistdio/test-u32-asnprintf1.h: New file. * tests/unistdio/test-u32-printf1.h: New file. * tests/unistdio/test-u32-vasnprintf1.c: New file. * tests/unistdio/test-u32-vasnprintf2.c: New file. * tests/unistdio/test-u32-vasnprintf2.sh: New file. * tests/unistdio/test-u32-vasnprintf3.c: New file. * tests/unistdio/test-u32-vasnprintf3.sh: New file. * tests/unistdio/test-u32-vasprintf1.c: New file. * tests/unistdio/test-u32-vsnprintf1.c: New file. * tests/unistdio/test-u32-vsprintf1.c: New file. * modules/unistdio/base: New file. * modules/unistdio/u-printf-args: New file. * modules/unistdio/ulc-asnprintf: New file. * modules/unistdio/ulc-asprintf: New file. * modules/unistdio/ulc-fprintf: New file. * modules/unistdio/ulc-printf-parse: New file. * modules/unistdio/ulc-snprintf: New file. * modules/unistdio/ulc-sprintf: New file. * modules/unistdio/ulc-vasnprintf: New file. * modules/unistdio/ulc-vasprintf: New file. * modules/unistdio/ulc-vfprintf: New file. * modules/unistdio/ulc-vsnprintf: New file. * modules/unistdio/ulc-vsprintf: New file. * modules/unistdio/u8-asnprintf: New file. * modules/unistdio/u8-asprintf: New file. * modules/unistdio/u8-printf-parse: New file. * modules/unistdio/u8-snprintf: New file. * modules/unistdio/u8-sprintf: New file. * modules/unistdio/u8-vasnprintf: New file. * modules/unistdio/u8-vasprintf: New file. * modules/unistdio/u8-vsnprintf: New file. * modules/unistdio/u8-vsprintf: New file. * modules/unistdio/u8-u8-asnprintf: New file. * modules/unistdio/u8-u8-asprintf: New file. * modules/unistdio/u8-u8-snprintf: New file. * modules/unistdio/u8-u8-sprintf: New file. * modules/unistdio/u8-u8-vasnprintf: New file. * modules/unistdio/u8-u8-vasprintf: New file. * modules/unistdio/u8-u8-vsnprintf: New file. * modules/unistdio/u8-u8-vsprintf: New file. * modules/unistdio/u16-asnprintf: New file. * modules/unistdio/u16-asprintf: New file. * modules/unistdio/u16-printf-parse: New file. * modules/unistdio/u16-snprintf: New file. * modules/unistdio/u16-sprintf: New file. * modules/unistdio/u16-vasnprintf: New file. * modules/unistdio/u16-vasprintf: New file. * modules/unistdio/u16-vsnprintf: New file. * modules/unistdio/u16-vsprintf: New file. * modules/unistdio/u16-u16-asnprintf: New file. * modules/unistdio/u16-u16-asprintf: New file. * modules/unistdio/u16-u16-snprintf: New file. * modules/unistdio/u16-u16-sprintf: New file. * modules/unistdio/u16-u16-vasnprintf: New file. * modules/unistdio/u16-u16-vasprintf: New file. * modules/unistdio/u16-u16-vsnprintf: New file. * modules/unistdio/u16-u16-vsprintf: New file. * modules/unistdio/u32-asnprintf: New file. * modules/unistdio/u32-asprintf: New file. * modules/unistdio/u32-printf-parse: New file. * modules/unistdio/u32-snprintf: New file. * modules/unistdio/u32-sprintf: New file. * modules/unistdio/u32-vasnprintf: New file. * modules/unistdio/u32-vasprintf: New file. * modules/unistdio/u32-vsnprintf: New file. * modules/unistdio/u32-vsprintf: New file. * modules/unistdio/u32-u32-asnprintf: New file. * modules/unistdio/u32-u32-asprintf: New file. * modules/unistdio/u32-u32-snprintf: New file. * modules/unistdio/u32-u32-sprintf: New file. * modules/unistdio/u32-u32-vasnprintf: New file. * modules/unistdio/u32-u32-vasprintf: New file. * modules/unistdio/u32-u32-vsnprintf: New file. * modules/unistdio/u32-u32-vsprintf: New file. * modules/unistdio/ulc-asnprintf-tests: New file. * modules/unistdio/ulc-vasnprintf-tests: New file. * modules/unistdio/ulc-vasprintf-tests: New file. * modules/unistdio/ulc-vsnprintf-tests: New file. * modules/unistdio/ulc-vsprintf-tests: New file. * modules/unistdio/u8-asnprintf-tests: New file. * modules/unistdio/u8-vasnprintf-tests: New file. * modules/unistdio/u8-vasprintf-tests: New file. * modules/unistdio/u8-vsnprintf-tests: New file. * modules/unistdio/u8-vsprintf-tests: New file. * modules/unistdio/u16-asnprintf-tests: New file. * modules/unistdio/u16-vasnprintf-tests: New file. * modules/unistdio/u16-vasprintf-tests: New file. * modules/unistdio/u16-vsnprintf-tests: New file. * modules/unistdio/u16-vsprintf-tests: New file. * modules/unistdio/u32-asnprintf-tests: New file. * modules/unistdio/u32-vasnprintf-tests: New file. * modules/unistdio/u32-vasprintf-tests: New file. * modules/unistdio/u32-vsnprintf-tests: New file. * modules/unistdio/u32-vsprintf-tests: New file. * MODULES.html.sh (Unicode string functions): Add the new modules. 2007-07-01 Bruno Haible * lib/sprintf.c (sprintf): Limit the available length estimation, to avoid address wraparound. * lib/vsprintf.c (vsprintf): Likewise. * modules/sprintf-posix (Dependencies): Add stdint. * modules/vsprintf-posix (Dependencies): Likewise. 2007-07-01 Bruno Haible * gnulib-tool (self_abspathname): Determine PATH_SEPARATOR and handle Windows PATH as well. Conservative double-quoting. Comments. 2007-07-01 Bruno Haible Eric Blake Ralf Wildenhues * gnulib-tool (self_abspathname): Fix algorithm to cope with empty components in $PATH, denoting '.'. 2007-07-01 Ralf Wildenhues * gnulib-tool: Fix indentation. (func_create_megatestdir): Likewise. Report by Bruno Haible. 2007-06-30 Ralf Wildenhues Sync from Automake. * build-aux/gnupload: Fix shell portability issues with for loops. Report by Karl Berry. 2007-06-29 Simon Josefsson * build-aux/maint.mk (POURL): Use translationproject.org. 2007-06-27 Simon Josefsson Bruno Haible * m4/getaddrinfo.m4 (gl_GETADDRINFO): Require gl_HEADER_SYS_SOCKET before using HAVE_WS2TCPIP_H. Check for gai_strerror through an explicit link test, rather than AC_REPLACE_FUNCS - for mingw. (gl_PREREQ_GETADDRINFO): Require gl_HEADER_SYS_SOCKET before using HAVE_SYS_SOCKET_H and HAVE_WS2TCPIP_H. 2007-06-27 Bruno Haible * build-aux/config.rpath: Upgrade to libtool-1.5.24. * build-aux/config.libpath: Upgrade to libtool-1.5.24. 2007-06-26 Karl Berry * MODULES.html.sh: remove xreadlink-with-size. 2007-06-23 Paul Eggert * lib/time_.h: Port to Solaris 8 with Sun Studio 11, using a method that I hope also handles the double-include problem noted by Bruno Haible in . 2007-06-23 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Don't let the 'mostlyclean' target fail if the last subdirectory could not be removed. Reported by Karl Berry. 2007-06-23 Bruno Haible * gnulib-tool (echo): Add a speedier workaround for ksh. * tests/test-echo.sh: Likewise. 2007-06-23 Bruno Haible * gnulib-tool (echo): Add workarounds also for bash versions < 2.04. * tests/test-echo.sh: Likewise. 2007-06-23 Ralf Wildenhues * gnulib-tool (IFS): Initialize early, so we don't set it to empty later. (self_abspathname): Rewrite algorithm to set it, reindent. (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am) (func_create_megatestdir): Merge some sed scripts. 2007-06-23 Paul Eggert * m4/include_next.m4 (gl_CHECK_NEXT_HEADERS): Check some typos exposed by Sun Studio 11 cc on Solaris 8. 2007-06-22 Bruno Haible * gnulib-tool (echo): Ensure the echo primitive does not interpret backslashes. * tests/test-echo.sh: New file. 2007-06-22 Ralf Wildenhues * gnulib-tool (func_add_or_update, func_create_testdir): Do not simplify `sed_replace_build_aux' scripts, they are portable but echoing them with `echo' is not. Report and analysis by Fernando Ferreira . 2007-06-21 Karl Berry * config/srclist.txt: guess we can't handle the licenses via srclist at the moment. 2007-06-21 Paul Eggert * MODULES.html.sh: Add include_next. * modules/include_next: New file. 2007-06-20 Paul Eggert * m4/include_next.m4 (gl_INCLUDE_NEXT): Define and AC_SUBST INCLUDE_NEXT. (gl_CHECK_NEXT_HEADERS): New macro. * m4/fcntl_h.m4 (gl_FCNTL_H): use gl_CHECK_NEXT_HEADERS instead of the obsolescent gl_ABSOLUTE_HEADER. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Likewise. * m4/float_h.m4 (gl_FLOAT_H): Likewise. * m4/iconv_h.m4 (gl_ICONV_H): Likewise. * m4/inttypes.m4 (gl_INTTYPES_H): Likewise. * m4/locale_h.m4 (gl_LOCALE_H): Likewise. * m4/math_h.m4 (gl_MATH_H): Likewise. * m4/netinet_in_h.m4 (gl_HEADER_NETINET_IN): Likewise. * m4/search_h.m4 (gl_SEARCH_H): Likewise. * m4/signal_h.m4 (gl_SIGNAL_H): Likewise. * m4/stdint.m4 (gl_STDINT_H): Likewise. * m4/stdio_h.m4 (gl_STDIO_H): Likewise. * m4/stdlib_h.m4 (gl_STDLIB_H): Likewise. * m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Likewise. * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise. * m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise. * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Likewise. * m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Likewise. * m4/sysexits.m4 (gl_SYSEXITS): Likewise. * m4/time_h.m4 (gl_HEADER_TIME_H_BODY): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H): Likewise. * m4/wchar.m4 (gl_WCHAR_H): Likewise. * m4/wctype.m4 (gl_WCTYPE_H): Likewise. * m4/inttypes.m4 (gl_INTTYPES_H): Define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H to avoid the problem of unclean builds, since ABSOLUTE_INTTYPES_H is no longer being defined. * m4/stdint.m4 (gl_STDINT_H): Likewise, for _GL_JUST_INCLUDE_SYSTEM_STDINT_H. * lib/fcntl_.h: Use @INCLUDE_NEXT@ @NEXT_foo_H@ rather than @HAVE_INCLUDE_NEXT@ and @ABSOLUTE_foo_H@. * lib/float_.h: Likewise. * lib/inttypes_.h: Likewise. * lib/math_.h: Likewise. * lib/search_.h: Likewise. * lib/signal_.h: Likewise. * lib/stdint_.h: Likewise. * lib/stdio_.h: Likewise. * lib/stdlib_.h: Likewise. * lib/string_.h: Likewise. * lib/sys_stat_.h: Likewise. * lib/sys_time_.h: Likewise. * lib/time_.h: Likewise. * lib/unistd_.h: Likewise. * lib/wchar_.h: Likewise. * lib/wctype_.h: Likewise. * lib/dirent_.h: Likewise. * lib/iconv_.h: Likewise. * lib/locale_.h: Likewise. * lib/netinet_in_.h: Likewise. * lib/sys_select_.h: Likewise. * lib/sys_socket_.h: Likewise. * lib/sysexits_.h: Likewise. * modules/fcntl (Depends-on): Depend on include_next, not absolute_header. (Makefile): Substitute INCLUDE_NEXT and NEXT_foo_H, not HAVE_INCLUDE_NEXT and ABSOLUTE_foo_H. * modules/fchdir: Likewise. * modules/float: Likewise. * modules/iconv_open: Likewise. * modules/inttypes: Likewise. * modules/locale: Likewise. * modules/math: Likewise. * modules/netinet_in: Likewise. * modules/search: Likewise. * modules/signal: Likewise. * modules/stdint: Likewise. * modules/stdio: Likewise. * modules/stdlib: Likewise. * modules/string: Likewise. * modules/sys_select: Likewise. * modules/sys_socket: Likewise. * modules/sys_stat: Likewise. * modules/sys_time: Likewise. * modules/sysexits: Likewise. * modules/time: Likewise. * modules/unistd: Likewise. * modules/wchar: Likewise. * modules/wctype: Likewise. * modules/sys_stat: Change maintainer to "all". * modules/unistd: Likewise. 2007-06-20 Karl Berry * config/srclist.txt: track www changes in license files. 2007-06-20 Sergey Poznyakoff * build-aux/bootstrap: Remove stray dot. Make sure build_aux settings are honored when linking gnulib_extra_files. 2007-06-19 Eric Blake * modules/canonicalize-lgpl-tests (test_canonicalize_lgpl_LDADD): Allow compilation on cygwin. 2007-06-19 Jim Meyering xreadlink-with-size: Remove module. No longer used. Ex-callers now use xreadlink or mreadlink-with-size. * modules/xreadlink-with-size: Remove module. * lib/xreadlink-with-size.c: Remove file. * lib/xreadlink.h (xreadlink_with_size): Remove prototype. (xreadlink): Remove inaccurate comment. The one in xreadlink.c, just before the function definition *is* accurate. Eliminate one way canonicalize_filename_mode could exit. * lib/canonicalize.c (canonicalize_filename_mode): Use mreadlink_with_size, not xreadlink_with_size. 2007-06-18 Paul Eggert Detect porting problems to FreeBSD/arm, which has time_t wider than long int. Original problem reported for GNU diff by Xin Li in . * modules/getdate (Depends-on): Add intprops, verify. * lib/getdate.y: Include intprops.h, verify.h. Verify that time_t is an integer type no wider than long int. 2007-06-18 Jim Meyering New module: mreadlink-with-size. * MODULES.html.sh: Add mreadlink-with-size. * modules/mreadlink-with-size: New module * modules/canonicalize (Depends-on): Depend on mreadlink-with-size, not xreadlink-with-size. * lib/mreadlink-with-size.c, lib/mreadlink.h: New files. 2007-06-16 Bruno Haible * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Catch the MacOS X 10.4 bug. * doc/functions/frexpl.texi: Document the MacOS X 10.4 bug. Reported by Gary V. Vaughan . 2007-06-15 Paul Eggert Revamp lchown so that it lives in unistd.h where it belongs. * lib/lchown.h: Remove. * lib/dirchownmod.c: Don't include lib/lchown.h. * lib/fchownat.c: Likewise. * lib/openat.c: Likewise. * lib/lchown.c (REPLACE_CHOWN): Define to 0 if the system chown does not follow symlinks. (EOPNOTSUPP): Define if not defined. * lib/unistd_.h (chown): Do not replace if REPLADE_CHOWN is defined to 0. (lchown): New decl. * m4/lchown.m4 (gl_FUNC_LCHOWN): Require gl_UNISTD_H_DEFAULTS. Do not check for lchown decl. Set REPLACE_LCHOWN. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Set GNULIB_LCHOWN, REPLACE_LCHOWN. * modules/chown: Make it clear it follows symlinks. * modules/lchown: Make it clear it doesn't follow symlinks. (Files): Remove lib/lchown.h (Depends-on): Add unistd. (configure.ac): Add gl_UNISTD_MODULE_INDICATOR([lchown]). (Include): Include , not "lchown.h". * modules/unistd (unistd.h): Substitude GNULIB_LCHOWN and REPLACE_LCHOWN. 2007-06-15 Jim Meyering Change license (GPL to LGPL) of fsusage and dependents. * modules/fsusage (License): Change to LGPL. * modules/full-read (License): Likewise. * modules/full-write (License): Likewise. * modules/safe-read (License): Likewise. * modules/safe-write (License): Likewise. 2007-06-14 Ben Pfaff Missing part of allocsa -> malloca transition. * modules/relocatable-prog-wrapper: gl_ALLOCSA should be gl_MALLOCA. 2007-06-12 Bruno Haible * m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Guess no when cross-compiling to ia64, x86_64, i386. Reported by Eric Blake. 2007-06-12 Bruno Haible * m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Guess no also when cross-compiling to x86_64. 2007-06-12 Paul Eggert * m4/absolute-header.m4 (gl_ABSOLUTE_HEADER): Fix POSIX sed portability glitch reported by Ralf Wildenhues in . * m4/regex.m4 (gl_REGEX): Catch a bug with [[:alnum:]_-] reported by Vin Shelton. 2007-06-11 Bruno Haible * lib/printf-args.c (PRINTF_FETCHARGS) [ENABLE_UNISTDIO]: Fix NULL replacement string. Reported by Eric Blake. 2007-06-10 Bruno Haible Prepare vasnprintf code for use with Unicode strings. * lib/printf-args.h (PRINTF_FETCHARGS): New macro. (arg_type) [ENABLE_UNISTDIO]: Define TYPE_U8_STRING, TYPE_U16_STRING, TYPE_U32_STRING. (argument) [ENABLE_UNISTDIO]: Add a_u8_string, a_u16_string, a_u32_string variants. (PRINTF_FETCHARGS): Renamed from printf_fetchargs. * lib/printf-args.c: Don't include config.h and the specification header if PRINTF_FETCHARGS is already defined. (PRINTF_FETCHARGS): Renamed from printf_fetchargs. (PRINTF_FETCHARGS) [ENABLE_UNISTDIO]: Add code for TYPE_U8_STRING, TYPE_U16_STRING, TYPE_U32_STRING. * lib/printf-parse.h [ENABLE_UNISTDIO] (u8_directive, u8_directives, u16_directive, u16_directives, u32_directive, u32_directives): New types. (ulc_printf_parse, u8_printf_parse, u16_printf_parse, u32_printf_parse): New declarations. * lib/printf-parse.c: Don't include config.h and the specification header if PRINTF_PARSE is already defined. Eliminate the set of parameters for WIDE_CHAR_VERSION; the user of this file must provide them now. Include c-ctype.h. (PRINTF_PARSE) [ENABLE_UNISTDIO]: Add code implementing the 'U' directive and CHAR_T_ONLY_ASCII. * lib/vasnprintf.c: Don't include config.h and the specification header if VASNPRINTF is already defined. (DCHAR_IS_TCHAR, DCHAR_CPY): New macros. (VASNPRINTF): Use PRINTF_FETCHARGS instead of printf_fetchargs. Use DCHAR_CPY. Handle the case that DCHAR_T and FCHAR_T are not the same type. Handle the case that TCHAR_T and FCHAR_T are not of the same size. Handle the case that DCHAR_T and TCHAR_T are not the same type, add a conversion from TCHAR_T[] to DCHAR_T[], and rework the padding code accordingly. (VASNPRINTF) [ENABLE_UNISTDIO]: Implement the 'U' directive. Enable pad_ourselves also in this case, with the 'c' and 's' directives, and with a different notion of "width". * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_WITH_EXTRAS): New macros. 2007-06-10 Bruno Haible * modules/unistr/u32-mbsnlen: New file. * lib/unistr/u32-mbsnlen.c: New file. * modules/unistr/u16-mbsnlen: New file. * lib/unistr/u16-mbsnlen.c: New file. * modules/unistr/u8-mbsnlen: New file. * lib/unistr/u8-mbsnlen.c: New file. * lib/unistr.h (u8_mbsnlen, u16_mbsnlen, u32_mbsnlen): New declarations. 2007-06-10 Bruno Haible * lib/string_.h (mbsnlen): New declaration. * lib/mbsnlen.c: New file. * m4/mbsnlen.m4: New file. * modules/mbsnlen: New file. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Set GNULIB_MBSNLEN. * modules/string (string.h): Substitute GNULIB_MBSNLEN. * MODULES.html.sh (Internationalization functions): Add mbsnlen. 2007-06-10 Bruno Haible * lib/mbslen.c: Include , needed for MB_CUR_MAX. 2007-06-10 Bruno Haible * lib/mbiter.h: Include , needed for ptrdiff_t. * lib/mbuiter.h: Likewise. 2007-06-10 Bruno Haible * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF): Check for _snprintf declaration. 2007-06-10 Karl Berry * config/srclist.txt: remove gettext entries, Bruno prefers to update individually. 2007-06-10 Bruno Haible * lib/vasnprintf.c (VASNPRINTF) [!USE_SNPRINTF]: Remove variable 'maxlen'. Ensure only length + width bytes are allocated, not length + 1 + width. 2007-06-09 Bruno Haible * lib/vasnprintf.c (FCHAR_T, DCHAR_T, TCHAR_T): New macros. (CHAR_T): Remove macro. (VASNPRINTF): Update. 2007-06-09 Bruno Haible * MODULES.html.sh (Unicode string functions): Add the new modules. * modules/uniconv/u32-conv-to-enc: New file. * lib/uniconv/u32-conv-to-enc.c: New file. * modules/uniconv/u32-conv-to-enc-tests: New file. * tests/uniconv/test-u32-conv-to-enc.c: New file. * modules/uniconv/u16-conv-to-enc: New file. * lib/uniconv/u16-conv-to-enc.c: New file. * lib/uniconv/u-conv-to-enc.h: New file. * modules/uniconv/u16-conv-to-enc-tests: New file. * tests/uniconv/test-u16-conv-to-enc.c: New file. * modules/uniconv/u8-conv-to-enc: New file. * lib/uniconv/u8-conv-to-enc.c: New file. * modules/uniconv/u8-conv-to-enc-tests: New file. * tests/uniconv/test-u8-conv-to-enc.c: New file. * lib/uniconv.h (u8_conv_to_encoding, u16_conv_to_encoding, u32_conv_to_encoding): New declarations. 2007-06-09 Bruno Haible * tests/uniconv/test-u32-strconv-to-enc.c (main): Remove unused code. 2007-06-09 Bruno Haible Rename 'allocsa' -> 'malloca', 'freesa' -> 'freea'. * modules/malloca: Renamed from modules/allocsa, updated. * lib/malloca.h: Renamed from lib/allocsa.h, updated. * lib/malloca.c: Renamed from lib/allocsa.c, updated. * lib/malloca.valgrind: Renamed from lib/allocsa.valgrind, updated. * m4/malloca.m4: Renamed from m4/allocsa.m4, updated. * modules/malloca-tests: Renamed from modules/allocsa-tests, updated. * tests/test-malloca.c: Renamed from tests/test-allocsa.c, updated. * modules/xmalloca: Renamed from modules/xallocsa, updated. * lib/xmalloca.h: Renamed from lib/xallocsa.h, updated. * lib/xmalloca.c: Renamed from lib/xallocsa.c, updated. * modules/c-strcasestr (Depends-on): Update. * lib/c-strcasestr.c: Update. * modules/c-strstr (Depends-on): Update. * lib/c-strstr.c: Update. * modules/canonicalize-lgpl (Depends-on): Update. * lib/canonicalize-lgpl.c: Update. * modules/clean-temp (Depends-on): Update. * lib/clean-temp.c: Update. * modules/csharpcomp (Depends-on): Update. * lib/csharpcomp.c: Update. * modules/csharpexec (Depends-on): Update. * lib/csharpexec.c: Update. * modules/javacomp (Depends-on): Update. * lib/javacomp.c: Update. * modules/javaexec (Depends-on): Update. * lib/javaexec.c: Update. * modules/mbscasestr (Depends-on): Update. * lib/mbscasestr.c: Update. * modules/mbsstr (Depends-on): Update. * lib/mbsstr.c: Update. * modules/setenv (Depends-on): Update. * lib/setenv.c: Update. * modules/strcasestr (Depends-on): Update. * lib/strcasestr.c: Update. * modules/striconveha (Depends-on): Update. * lib/striconveha.c: Update. * modules/relocatable-prog-wrapper (Files): Update. * lib/relocwrapper.c: Update. * build-aux/install-reloc: Update. * MODULES.html.sh (Memory management functions ): Update. 2007-06-08 Bruno Haible Port to uClibc. * lib/fbufmode.c (fbufmode): Add special code for uClibc. * lib/fpurge.c (fpurge): Likewise. * lib/freading.c (freading): Likewise. * lib/fseeko.c (rpl_fseeko): Likewise. * lib/fseterr.c (fseterr): Likewise. * lib/fwriting.c (fwriting): Likewise. * tests/test-fflush.c (main): Avoid a failure on uClibc. 2007-06-08 Bruno Haible * m4/intlmacosx.m4: New file, extracted from gettext.m4. * m4/gettext.m4 (gt_INTL_MACOSX): Remove macro, moved to intlmacosx.m4. * modules/gettext (Files): Add m4/intlmacosx.m4. 2007-06-07 Bruno Haible * modules/localename-tests: New file. * tests/test-localename.c: New file. New module 'localename'. * lib/localename.h: New file. * lib/localename.c: New file, from GNU gettext. * m4/localename.m4: New file. * modules/localename: New file. 2007-06-07 Bruno Haible Work around the lack of on some builds of uClibc. * doc/headers/wchar.texi: Update. * lib/wchar_.h: Include only if it exists. * m4/wchar.m4 (gl_WCHAR_H): Check for . Set HAVE_WCHAR_H. * m4/stdint.m4 (gl_STDINT_H): Check for . (gl_STDINT_TYPE_PROPERTIES): Don't try to include if it doesn't exist. * modules/wchar (wchar.h): Substitute HAVE_WCHAR_H. * modules/mbfile (Depends-on): Add wchar. * modules/mbiter (Depends-on): Likewise. * modules/mbuiter (Depends-on): Likewise. Reported by Simon Josefsson. 2007-06-06 Paul Eggert Work around problem reported by Steven M. Schweda in : Tru64 5.1B with the Compaq compiler environment installed declares an 'isblank' function but does not define it in the C library. * lib/fnmatch.c (isblank): Check for HAVE_ISBLANK, too. * lib/regex_internal.h (isblank): Likewise. * m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH): Check for isblank existence. * m4/regex.m4 (gl_PREREQ_REGEX): Likewise. 2007-06-05 Bruno Haible Fix *printf so that it recognizes non-IEEE numbers on i386, x86_64, ia64. * modules/printf-safe: New file. * modules/fprintf-posix (Depends-on): Add printf-safe. * modules/printf-posix (Depends-on): Likewise. * modules/snprintf-posix (Depends-on): Likewise. * modules/sprintf-posix (Depends-on): Likewise. * modules/vasnprintf-posix (Depends-on): Likewise. * modules/vasprintf-posix (Depends-on): Likewise. * modules/vfprintf-posix (Depends-on): Likewise. * modules/vprintf-posix (Depends-on): Likewise. * modules/vsnprintf-posix (Depends-on): Likewise. * modules/vsprintf-posix (Depends-on): Likewise. * m4/printf.m4 (gl_PRINTF_INFINITE_LONG_DOUBLE): Require AC_C_BIGENDIAN. Define CHECK_PRINTF_SAFE if printf-safe is used. Test non-IEEE numbers on i386, x86_64, ia64. When cross-compiling, guess "no" on i386, x86_64, ia64. * tests/test-snprintf-posix.h (LDBL80_WORDS): New macro. (test_function): Check result of %La, %Lf, %Le, %Lg on non-IEEE numbers on i386, x86_64, ia64. * tests/test-sprintf-posix.h (LDBL80_WORDS): New macro. (test_function): Check result of %La, %Lf, %Le, %Lg on non-IEEE numbers on i386, x86_64, ia64. * tests/test-vasnprintf-posix.c: Include float.h. (LDBL80_WORDS): New macro. (test_function): Check result of %La, %Lf, %Le, %Lg on non-IEEE numbers on i386, x86_64, ia64. * tests/test-vasprintf-posix.c: Include float.h. (LDBL80_WORDS): New macro. (test_function): Check result of %La, %Lf, %Le, %Lg on non-IEEE numbers on i386, x86_64, ia64. * tests/test-snprintf-posix.c: Include float.h. * tests/test-sprintf-posix.c: Likewise. * tests/test-vsnprintf-posix.c: Likewise. * tests/test-vsprintf-posix.c: Likewise. 2007-06-05 Bruno Haible Fix isnanl so that it recognizes non-IEEE numbers on i386, x86_64, ia64. * m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Require AC_C_BIGENDIAN. Test non-IEEE numbers on i386, x86_64, ia64. (gl_LONG_DOUBLE_EXPONENT_LOCATION): Require AC_C_BIGENDIAN. * lib/isnan.c (FUNC): Add special code for i386, x86_64, ia64. * tests/test-isnanl.h: Include float.h. (main): Check also non-IEEE numbers on i386, x86_64, ia64. 2007-06-05 Bruno Haible * lib/vasnprintf.c (VASNPRINTF): Do the extra handling of NaN and Inf also the %a / %A. Handle the %a / %A code before this extra handling. 2007-06-05 Bruno Haible * lib/vasnprintf.c [NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE]: Include fpucw.h. 2007-06-05 Bruno Haible * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE): Fix typo in variable name. 2007-06-05 Eric Blake * m4/lseek.m4 (gl_FUNC_LSEEK): Work when cross-compiling. Reported by Simon Josefsson. 2007-06-04 Bruno Haible Avoid test failures on some PowerPC platforms. * tests/test-printf-frexpl.c (MIN_NORMAL_EXP, MIN_SUBNORMAL_EXP): Define differently for PowerPC. * tests/test-frexpl.c (MIN_NORMAL_EXP): Likewise. Reported by Gary V. Vaughan . 2007-06-02 Bruno Haible Fix test-stdint failure on FreeBSD/ia64. * m4/stdint.m4 (gl_STDINT_H): Check the values of PTRDIFF_MIN, PTRDIFF_MAX, SIG_ATOMIC_MIN, SIG_ATOMIC_MAX, SIZE_MAX, WCHAR_MIN, WCHAR_MAX, WINT_MIN, WINT_MAX entirely, not only for plausibility. * doc/headers/stdint.texi: Update. 2007-06-01 Bruno Haible * tests/test-binary-io.c (main): Pass a third argument to open(). Reported by Gary V. Vaughan . 2007-06-01 Bruno Haible * doc/functions/frexpl.texi: Update for mingw. 2007-06-01 Bruno Haible * tests/test-lseek.c (main): Disable test of errno for invalid third argument. * doc/functions/lseek.texi: Update. Reported by Gary V. Vaughan . 2007-05-28 Bruno Haible * m4/intl.m4 (AM_INTL_SUBDIR): Substitute variables WOE32, WINDRES. 2007-05-31 Eric Blake * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Guess no on mingw when cross compiling. 2007-05-30 Eric Blake and Bruno Haible Work around mingw test failures exposed by m4-1.4.9b. * m4/stdint.m4 (gl_STDINT_H): Detect mingw bug. * tests/test-unistd.c: Disable uid_t and git_t tests for the moment. 2007-05-30 Bruno Haible * tests/test-lseek.c: Explicitly close file descriptors 0 and 1 before assuming that they are closed. Needed on HP-UX 11. 2007-05-29 Bruno Haible Fix a problem with #include_next. * lib/dirent_.h: Split the double-inclusion guard. * lib/fcntl_.h: Likewise. * lib/float_.h: Likewise. * lib/iconv_.h: Likewise. * lib/inttypes_.h: Likewise. * lib/locale_.h: Likewise. * lib/math_.h: Likewise. * lib/netinet_in_.h: Likewise. * lib/search_.h: Likewise. * lib/signal_.h: Likewise. * lib/stdint_.h: Likewise. * lib/stdio_.h: Likewise. * lib/stdlib_.h: Likewise. * lib/string_.h: Likewise. * lib/sys_select_.h: Likewise. * lib/sys_socket_.h: Likewise. * lib/sys_stat_.h: Likewise. * lib/sys_time_.h: Likewise. * lib/sysexits_.h: Likewise. * lib/time_.h: Likewise. * lib/unistd_.h: Likewise. * lib/wchar_.h: Likewise. * lib/wctype_.h: Likewise. 2007-05-29 Bruno Haible * tests/test-unistd.c: Disable the tests for useconds_t and intptr_t for the moment. 2007-05-29 Bruno Haible * m4/isnan.m4 (gl_DOUBLE_EXPONENT_LOCATION): Silence the AC_C_BIGENDIAN invocation. Reported by Eric Blake. 2007-05-29 Bruno Haible * m4/isnanf.m4 (gl_FLOAT_EXPONENT_LOCATION): Fix typo in cross- compiling case. 2007-05-29 Eric Blake Bruno Haible * m4/isnanf.m4 (gl_FUNC_ISNANF_NO_LIBM): Avoid syntax error on cross compiles. 2007-05-28 Eric Blake * modules/closein-tests (test_closein_LDADD): Support test on cygwin with libtool. 2007-05-28 Bruno Haible * tests/uniconv/test-u16-conv-from-enc.c: Remove #ifdef HAVE_CONFIG_H. * tests/uniconv/test-u16-strconv-from-enc.c: Likewise. * tests/uniconv/test-u16-strconv-to-enc.c: Likewise. * tests/uniconv/test-u32-conv-from-enc.c: Likewise. * tests/uniconv/test-u32-strconv-from-enc.c: Likewise. * tests/uniconv/test-u32-strconv-to-enc.c: Likewise. * tests/uniconv/test-u8-conv-from-enc.c: Likewise. * tests/uniconv/test-u8-strconv-from-enc.c: Likewise. * tests/uniconv/test-u8-strconv-to-enc.c: Likewise. 2007-05-28 Eric Blake Unconditionally include in unit tests. * tests/test-alloca-opt.c: Remove #ifdef HAVE_CONFIG_H. * tests/test-allocsa.c, tests/test-arcfour.c, tests/test-arctwo.c, tests/test-argmatch.c, tests/test-argp.c, tests/test-array_list.c, tests/test-array_oset.c, tests/test-atexit.c, test-avltree_list.c, test-avltree_oset.c, test-avltreehash_list.c, test-base64.c, test-binary-io.c, test-c-ctype.c, test-c-strcasecmp.c, test-c-strcasestr.c, test-c-strncasecmp.c, test-c-strstr.c, test-canonicalize-lgpl.c, test-carray_list.c, test-crc.c, test-des.c, test-dirname.c, test-fflush.c, test-fprintf-posix.c, test-gc-arcfour.c, test-gc-arctwo.c, test-gc-des.c, test-gc-hmac-md5.c, test-gc-hmac-sha1.c, test-gc-md2.c, test-gc-md4.c, test-gc-md5.c, test-gc-pbkdf2-sha1.c, test-gc-rijndael.c, test-gc-sha1.c, test-gc.c, test-getpass.c, test-hmac-md5.c, test-hmac-sha1.c, test-iconv.c, test-linked_list.c, test-linkedhash_list.c, test-lock.c, test-mbscasecmp.c, test-mbscasestr1.c, test-mbscasestr2.c, test-mbscasestr3.c, test-mbscasestr4.c, test-mbschr.c, test-mbscspn.c, test-mbsncasecmp.c, test-mbspbrk.c, test-mbspcasecmp.c, test-mbsrchr.c, test-mbsspn.c, test-mbsstr1.c, test-mbsstr2.c, test-mbsstr3.c, test-md2.c, test-md4.c, test-md5.c, test-memmem.c, test-printf-posix.c, test-rbtree_list.c, test-rbtree_oset.c, test-rbtreehash_list.c, test-read-file.c, test-rijndael.c, test-snprintf-posix.c, test-snprintf.c, test-sprintf-posix.c, test-stdint.c, test-strcasestr.c, test-striconv.c, test-striconveh.c, test-striconveha.c, test-tls.c, test-vasnprintf-posix.c, test-vasnprintf-posix2.c, test-vasnprintf.c, test-vasprintf-posix.c, test-vasprintf.c, test-verify.c, test-vfprintf-posix.c, test-vprintf-posix.c, test-vsnprintf-posix.c, test-vsnprintf.c, test-vsprintf-posix.c, test-xvasprintf.c: Likewise. 2007-05-28 Bruno Haible * gnulib-tool (func_import): Remember the --with-tests command-line option through the macro gl_WITH_TESTS in the gnulib-cache.m4. Reported by Eric Blake. 2007-05-28 Bruno Haible * modules/ftell-tests: New file. * tests/test-ftell.c: New file, based on tests/test-ftello.c. * tests/test-ftell.sh: New file, based on tests/test-ftello.sh. * lib/ftell.c: New file. * modules/ftell: New file. * m4/ftell.m4: New file. * doc/functions/ftell.texi: Update. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_FTELL, REPLACE_FTELL. * lib/stdio_.h (rpl_ftell): New declaration. * modules/stdio (Makefile.am): Substitute also GNULIB_FTELL, REPLACE_FTELL. 2007-05-28 Eric Blake * lib/allocsa.h (safe_alloca): Avoid compiler warning. 2007-05-28 Bruno Haible * modules/fseek-tests: New file. * tests/test-fseek.c: New file, based on tests/test-fseeko.c. * tests/test-fseek.sh: New file, based on tests/test-fseeko.sh. * lib/fseek.c: New file. * modules/fseek: New file. * m4/fseek.m4: New file. * doc/functions/fseek.texi: Update. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_FSEEK, REPLACE_FSEEK. * lib/stdio_.h (rpl_fseek): New declaration. * modules/stdio (Makefile.am): Substitute also GNULIB_FSEEK, REPLACE_FSEEK. 2007-05-28 Bruno Haible * lib/stdio_.h (fflush): More comments. 2007-05-28 Bruno Haible * m4/lseek.m4 (gl_FUNC_LSEEK): When not cross-compiling, perform a real runtime test. 2007-05-28 Eric Blake Improve lseek module. * lib/lseek.c (rpl_lseek): Detect EBADF on mingw. * lib/unistd_.h (lseek): Scale back link warning message. * tests/test-lseek.c: Beef up test. * tests/test-lseek.sh: Exercise more facets of lseek. Reported by Bruno Haible. 2007-05-28 Bruno Haible * tests/test-unistd.c: Test all the types that is expected to define. 2007-05-27 Bruno Haible * m4/iconv.m4 (AM_ICONV_LINK): Fix 2007-03-31 patch. 2007-05-27 Bruno Haible * modules/openmp: New file. * m4/openmp.m4: New file, taken from autoconf's CVS with changes by Noah Misch. 2007-05-26 Bruno Haible * modules/chdir-long (Depends-on): Add fchdir. * modules/chdir-safer (Depends-on): Likewise. * modules/fts (Depends-on): Likewise. * modules/fts-lgpl (Depends-on): Likewise. * modules/openat (Depends-on): Likewise. * modules/savewd (Depends-on): Likewise. 2007-05-24 Eric Blake Fix lseek on mingw. * modules/lseek: New module. * m4/lseek.m4: New file. * lib/lseek.c: New file. * modules/lseek-tests: New file. * tests/test-lseek.c: New file. * tests/test-lseek.sh: New file. * MODULES.html.sh: Document lseek module. * modules/fflush (Depends-on): Add lseek, fseeko. * modules/fseeko (Depends-on): Likewise. * modules/ftello (Depends-on): Likewise. * m4/fseeko.m4 (gl_FUNC_FSEEKO): Replace fseek[o] if lseek is broken. * m4/ftello.m4 (gl_FUNC_FTELLO): Replace ftell[o] if lseek is broken. * m4/fflush.m4 (gl_REPLACE_FFLUSH): Trigger fseeko module. * lib/fseeko.c (rpl_fseeko): Quit early on non-seekable files. * lib/ftello.c (rpl_ftello): Likewise. * tests/test-fseeko.c (main): Test this. * tests/test-fseeko.sh: Likewise. * tests/test-ftello.c (main): Likewise. * tests/test-ftello.sh: Likewise. * lib/stdio_.h (fseek, ftell): Simplify, since missing fseeko now implies replacing fseek. * modules/stdio (Makefile.am): No longer need HAVE_FSEEKO, HAVE_FTELLO. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add lseek info. * modules/unistd (Makefile.am): Likewise. * lib/unistd_.h (lseek): Declare a replacement. * doc/functions/lseek.texi (lseek): Document this fix. * doc/functions/fseek.texi (fseek): Likewise. * doc/functions/ftell.texi (ftell): Likewise. 2007-05-24 Bruno Haible * tests/test-vasnprintf-posix.c (test_function): Allow up to 50 bytes in the printed representation of a NaN. * tests/test-vasprintf-posix.c (test_function): Likewise. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. Reported by Eric Blake. 2007-05-23 Eric Blake Fix fseeko/ftello on cygwin 1.5.24. * doc/functions/fseeko.texi (fseeko): Document the fix. * doc/functions/ftello.texi (ftello): Document the fix. * doc/functions/stdin.texi (stdin): Document the cygwin bug. * doc/functions/stdout.text (stdout): New file. * doc/functions/stderr.text (stderr): New file. * doc/gnulib.texi (Function Substitutes): Use new files. * tests/test-fseeko.c (main): Check for broken fseeko on cygwin prior to 1.7.0. * tests/test-ftello.c (main): Likewise for ftello. * tests/test-fseeko.sh: New file. * tests/test-ftello.sh: New file. * modules/fseeko-tests (Makefile.am): Ensure test-fseeko is run with seekable stdin. * modules/ftello-tests (Makefile.am): Likewise for test-ftello. * m4/fseeko.m4 (gl_FUNC_FSEEKO): Detect the cygwin bug. (gl_REPLACE_FSEEKO): New macro. * m4/ftello.m4 (gl_FUNC_FTELLO, gl_REPLACE_FTELLO): Likewise. * modules/fseeko (Files): Distribute fseeko.c. * modules/ftello (Files): Distribute ftello.c. * lib/fseeko.c (rpl_fseeko) [__CYGWIN__]: Convert stdin to 64-bit mode. * lib/ftello.c (rpl_ftello): New file. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Allow replacement of fseeko, ftello. (gl_STDIN_LARGE_OFFSET): New macro. * modules/stdio (Makefile.am): Perform the replacement. * lib/stdio_.h (rpl_fseeko, rpl_ftello): Define when needed. 2007-05-23 Bruno Haible * lib/stdio_.h (fseeko, ftello): Provide a link warning only if GNULIB_POSIXCHECK is defined. 2007-05-21 Bruno Haible * m4/printf.m4 (gl_PRINTF_INFINITE, gl_PRINTF_INFINITE_LONG_DOUBLE): Check also the output for NaN arguments. When cross-compiling, guess no on IRIX. * lib/vasnprintf.c: Update comments. * tests/test-vasnprintf-posix.c (strisnan): New function. (test_function): Use it. * tests/test-vasprintf-posix.c (strisnan): New function. (test_function): Use it. * tests/test-snprintf-posix.h (strisnan): New function. (test_function): Use it. * tests/test-sprintf-posix.h (strisnan): New function. (test_function): Use it. Reported by Eric Blake. 2007-05-20 Bruno Haible * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Add test for large finite numbers that fails on BeOS. * doc/functions/frexpl.texi: Update. 2007-05-20 Jim Meyering * NEWS: Mention the incompatible change (s/futimens/gl_futimens/) forced upon us by glibc-2.6. 2007-05-20 Bruno Haible Fix *printf result for NaN, Inf on AIX, Solaris, OSF/1. * m4/printf.m4 (gl_PRINTF_INFINITE): Update cross-compiling guesses. (gl_PRINTF_INFINITE_LONG_DOUBLE): New macro. * lib/vasnprintf.c: Use NEED_PRINTF_INFINITE_DOUBLE instead of NEED_PRINTF_INFINITE. (is_infinitel): New function. (VASNPRINTF): Handle NEED_PRINTF_INFINITE_LONG_DOUBLE case. * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE): Renamed from gl_PREREQ_VASNPRINTF_INFINITE. (gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE): New macro. * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke gl_PRINTF_INFINITE_LONG_DOUBLE and test its result. Invoke gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE and gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE instead of gl_PREREQ_VASNPRINTF_INFINITE. * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise. * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise. * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise. * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise. * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise. * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise. * doc/functions/fprintf.texi: Update. * doc/functions/printf.texi: Update. * doc/functions/snprintf.texi: Update. * doc/functions/sprintf.texi: Update. * doc/functions/vfprintf.texi: Update. * doc/functions/vprintf.texi: Update. * doc/functions/vsnprintf.texi: Update. * doc/functions/vsprintf.texi: Update. 2007-05-20 Bruno Haible * m4/frexpl.m4 (gl_FUNC_FREXPL_NO_LIBM): Set REPLACE_FREXPL if frexpl was not found in libc. * m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Likewise. 2007-05-20 Bruno Haible * tests/test-vasnprintf-posix.c (test_function): Allow NaN to be printed as "-nan" instead of "nan". * tests/test-vasprintf-posix.c (test_function): Likewise. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. Needed for HP-UX 11. 2007-05-20 Jim Meyering Fix buggy test for the fchownat-deref bug. * m4/openat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG): Create the dangling symlink required for the run-test. Without it, this test would always declare that fchownat doesn't work, and client code would unnecessarily use the replacement function with fixed libc. (gl_FUNC_FCHOWNAT): Eliminate a variable that wasn't initialized. Reported by Greg Schafer. 2007-05-19 Bruno Haible * m4/isnanf.m4 (gl_ISNANF_WORKS): New macro. (gl_FUNC_ISNANF_NO_LIBM): Invoke it. * lib/isnan.c (FUNC): Use run-time expressions for SGI compiler. Needed for IRIX 6.5 and Solaris 2.5.1. 2007-05-19 Bruno Haible * tests/test-vasnprintf-posix.c (have_minus_zero): New function. (test_function): Skip tests involving -0.0 on platforms where -0.0 = 0.0. * tests/test-vasprintf-posix.c (have_minus_zero): New function. (test_function): Skip tests involving -0.0 on platforms where -0.0 = 0.0. * tests/test-snprintf-posix.h (have_minus_zero): New function. (test_function): Skip tests involving -0.0 on platforms where -0.0 = 0.0. * tests/test-sprintf-posix.h (have_minus_zero): New function. (test_function): Skip tests involving -0.0 on platforms where -0.0 = 0.0. * tests/test-fprintf-posix.h (test_function): Remove all -0.0 related tests. * tests/test-printf-posix.h (test_function): Likewise. * tests/test-printf-posix.output: Remove all -0.0 related results. Needed for IRIX 6.5. 2007-05-19 Bruno Haible * tests/test-vasnprintf-posix.c (test_function): Allow NaN to be printed as "nan0x7fffffff" instead of "nan". * tests/test-vasprintf-posix.c (test_function): Likewise. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. * tests/test-fprintf-posix.h (NaN): Remove macro. (test_function): Remove all NaN related tests. * tests/test-printf-posix.h (NaN): Remove macro. (test_function): Remove all NaN related tests. * tests/test-printf-posix.output: Remove all NaN related results. Needed for IRIX 6.5. 2007-05-19 Bruno Haible * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Fix C89 syntax error in test code. * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Likewise. 2007-05-19 Bruno Haible * lib/float_.h: New file. * m4/float_h.m4: New file. * modules/float: New file. * modules/isnanl (Dependencies): Add float. * modules/isnanl-nolibm (Dependencies): Likewise. * modules/mathl (Dependencies): Likewise. * modules/printf-frexpl (Dependencies): Likewise. * modules/signbit (Dependencies): Likewise. * modules/vasnprintf (Dependencies): Likewise. * doc/headers/float.texi: Update. 2007-05-19 Jim Meyering * lib/utimens.c (gl_futimens): Rename from futimens, now that glibc-2.6 declares futimens. * lib/utimens.h: Likewise. 2007-05-19 Bruno Haible Avoid test failures on mingw. * tests/test-fprintf-posix.sh: Convert CR/LF to LF in output. * tests/test-printf-posix.sh: Likewise. * tests/test-vfprintf-posix.sh: Likewise. * tests/test-vprintf-posix.sh: Likewise. 2007-05-19 Bruno Haible Fix *printf result for NaN, Inf, -0.0 on mingw. * m4/printf.m4 (gl_PRINTF_INFINITE): New macro. * lib/vasnprintf.c: Include math.h and isnan.h. (is_infinite_or_zero): New function. (VASNPRINTF): Fix also the handling of infinite or zero 'double' values in the %f, %F, %e, %E, %g, %G directives. * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_INFINITE): New macro. * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke gl_PRINTF_INFINITE and test its result. Invoke gl_PREREQ_VASNPRINTF_INFINITE. * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise. * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise. * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise. * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise. * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise. * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise. * doc/functions/fprintf.texi: Update. * doc/functions/printf.texi: Update. * doc/functions/snprintf.texi: Update. * doc/functions/sprintf.texi: Update. * doc/functions/vfprintf.texi: Update. * doc/functions/vprintf.texi: Update. * doc/functions/vsnprintf.texi: Update. * doc/functions/vsprintf.texi: Update. 2007-05-19 Bruno Haible * lib/vasnprintf.c (convert_to_decimal): Add an extra_zeroes argument. (scale10_round_decimal_long_double): Inline scale10_round_long_double. Instead of multiplying with 10^k, set extra_zeroes to k. (scale10_round_long_double): Remove function. 2007-05-18 Bruno Haible * lib/vasnprintf.c (VASNPRINTF) [NEED_PRINTF_FLAG_ZERO]: Fix logic bug introduced on 2007-05-06. 2007-05-18 Bruno Haible * tests/test-vasnprintf-posix.c (test_function): Also test the %e and %g directives. * tests/test-vasprintf-posix.c (test_function): Likewise. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. 2007-05-18 Bruno Haible * tests/test-vasnprintf-posix.c (SIZEOF): New macro. (strmatch): New function. (test_function): Test the %f directive on numbers of various exponents. * tests/test-vasprintf-posix.c (SIZEOF): New macro. (strmatch): New function. (test_function): Test the %f directive on numbers of various exponents. * tests/test-snprintf-posix.h (strmatch): New function. (test_function): Test the %f directive on numbers of various exponents. * tests/test-sprintf-posix.h (strmatch): New function. (test_function): Test the %f directive on numbers of various exponents. * tests/test-snprintf-posix.c (SIZEOF): New macro. * tests/test-sprintf-posix.c (SIZEOF): New macro. * tests/test-vsnprintf-posix.c (SIZEOF): New macro. * tests/test-vsprintf-posix.c (SIZEOF): New macro. 2007-05-18 Bruno Haible Add support for 'long double' number output. * m4/printf.m4 (gl_PRINTF_LONG_DOUBLE): New macro. * lib/vasnprintf.c: Include math.h and float+.h. (mp_limb_t): New type. (GMP_LIMB_BITS): New macro. (mp_twolimb_t): New type. (GMP_TWOLIMB_BITS): New macro. (mpn_t): New type. (multiply, divide, convert_to_decimal, decode_long_double, scale10_round_long_double, scale10_round_decimal_long_double, floorlog10l): New functions. (VASNPRINTF) [NEED_PRINTF_LONG_DOUBLE]: Implement 'long double' support for the %f, %F, %e, %E, %g, %G directives. * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_LONG_DOUBLE): New macro. * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke gl_PRINTF_LONG_DOUBLE and test its result. Invoke gl_PREREQ_VASNPRINTF_LONG_DOUBLE. * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise. * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise. * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise. * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise. * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise. * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise. * modules/fprintf-posix (Depends-on): Add frexpl-nolibm. * modules/snprintf-posix (Depends-on): Likewise. * modules/sprintf-posix (Depends-on): Likewise. * modules/vasnprintf-posix (Depends-on): Likewise. * modules/vasprintf-posix (Depends-on): Likewise. * modules/vfprintf-posix (Depends-on): Likewise. * modules/vsnprintf-posix (Depends-on): Likewise. * modules/vsprintf-posix (Depends-on): Likewise. * modules/vasnprintf (Files): Add lib/float+.h. * doc/functions/fprintf.texi: Update. * doc/functions/printf.texi: Update. * doc/functions/snprintf.texi: Update. * doc/functions/sprintf.texi: Update. * doc/functions/vfprintf.texi: Update. * doc/functions/vprintf.texi: Update. * doc/functions/vsnprintf.texi: Update. * doc/functions/vsprintf.texi: Update. 2007-05-18 Bruno Haible * lib/vasnprintf.c (USE_SNPRINTF): Define to 0 on BeOS. 2007-05-18 Bruno Haible * lib/vasnprintf.c (VASNPRINTF) [WIN32]: Use %I64d instead of %lld for printing 64-bit integers. Needed for mingw. 2007-05-18 Bruno Haible * m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Invoke gl_FUNC_FREXPL_WORKS. * modules/printf-frexpl (Files): Add m4/frexpl.m4. 2007-05-18 Bruno Haible * modules/frexpl-nolibm-tests: New file. * modules/frexpl-nolibm: New file. * m4/frexpl.m4 (gl_FUNC_FREXPL_NO_LIBM): New macro. 2007-05-17 Paul Eggert * lib/dirent_.h: Prefer #include_next to #include @ABSOLUTE_FOO_H@ if @HAVE_INCLUDE_NEXT@. This works better with GCC 4.2, which otherwise issues a lot of warnings. * lib/iconv_.h, lib/locale_.h, lib/netinet_in_.h, lib/sys_select_.h: * lib/sys_socket_.h, lib/sys_stat_.h, lib/sysexits_.h, lib/unistd_.h: Likewise. * modules/fchdir (dirent.h): Substitute @HAVE_INCLUDE_NEXT@. * modules/iconv_open (iconv.h): Likewise. * modules/locale (locale.h): Likewise. * modules/netinet_in (netinet/in.h): Likewise. * modules/sys_select (sys_select.h): Likewise. * modules/sys_socket (sys/socket.h): Likewise. * modules/sys_stat (sys/stat.h): Likewise. * modules/sysexits (sysexits.h): Likewise. * modules/unistd (unistd.h): Likewise. 2007-05-17 Ralf Wildenhues * modules/closein-tests (Makefile.am): Distribute `test-closein.sh'. 2007-05-17 Bruno Haible * tests/test-printf-posix.output: Renamed from tests/test-fprintf-posix.out. * modules/fprintf-posix-tests: Update. * modules/printf-posix-tests: Update. * modules/vfprintf-posix-tests: Update. * modules/vprintf-posix-tests: Update. * tests/test-fprintf-posix.sh: Update. * tests/test-printf-posix.sh: Update. * tests/test-vfprintf-posix.sh: Update. * tests/test-vprintf-posix.sh: Update. Reported by Ralf Wildenhues. 2007-05-16 Paul Eggert * lib/fcntl_.h: Prefer #include_next to #include @ABSOLUTE_FOO_H@ if @HAVE_INCLUDE_NEXT@. This works better with GCC 4.2, which otherwise issues a lot of warnings. * lib/inttypes_.h, lib/math_.h, lib/search_.h, lib/signal_.h: * lib/stdint_.h, lib/stdio_.h, lib/stdlib_.h, lib/string_.h: * lib/sys_time_.h, lib/time_.h, lib/wchar_.h, lib/wctype_.h: Likewise. * lib/stdlib_.h: Don't bother with #pragma GCC system_header, as it should no longer be needed. * lib/string_.h: Likewise. * modules/absolute-header (HAVE_INCLUDE_NEXT): New 'make' define. * modules/fcntl (fcntl.h): Substitute @HAVE_INCLUDE_NEXT@. * modules/inttypes (inttypes.h): Likewise. * modules/math (math.h): Likewise. * modules/search (search.h): Likewise. * modules/signal (signal.h): Likewise. * modules/stdint (stdint.h): Likewise. * modules/stdio (stdio.h): Likewise. * modules/stdlib (stdlib.h): Likewise. * modules/string (string.h): Likewise. * modules/sys_time (sys/time.h): Likewise. * modules/time (time.h): Likewise. * modules/wchar (wchar.h): Likewise. * modules/wctype (wtype.h): Likewise. 2007-05-16 Thien-Thi Nguyen (tiny change) * doc/gnulib-tool.texi (CVS Issues): Fix typo. 2007-05-13 Bruno Haible * stpcpy.m4 (gl_FUNC_STPCPY): Require AC_C_RESTRICT. * stpncpy.m4 (gl_FUNC_STPNCPY): Likewise. * strsep.m4 (gl_FUNC_STRSEP): Likewise. * strtok_r.m4 (gl_FUNC_STRTOK_R): Likewise. (gl_PREREQ_STRTOK_R): Don't require it here. 2007-05-13 Bruno Haible * lib/stdlib_.h (mkdtemp, mkstemp): Comment out argument name. Needed when used in C++ mode. 2007-05-12 Bruno Haible * lib/linebuffer.h: Tweak doc. * lib/linebuffer.c: Likewise. 2007-05-12 James Youngman * lib/linebuffer.c (readlinebuffer_delim): New function, like readlinebuffer, but use a caller-specified delimiter. (readlinebuffer): Just call readlinebuffer_delim with '\n' as the delimiter. * lib/linebuffer.h (readlinebuffer_delim): Declare it. 2007-05-12 Sergey Poznyakoff * m4/openat.m4 (gl_FUNC_OPENAT): Do not require openat-die. * modules/openat (Files): Remove openat-die.c. (Depends-on): Add openat-die. * modules/openat-die: New module. 2007-05-06 Bruno Haible * m4/printf.m4 (gl_PRINTF_FLAG_GROUPING, gl_VSNPRINTF_ZEROSIZE_C99): Update with info about Cygwin. * doc/functions/fprintf.texi: Update. * doc/functions/printf.texi: Update. * doc/functions/snprintf.texi: Update. * doc/functions/sprintf.texi: Update. * doc/functions/vfprintf.texi: Update. * doc/functions/vprintf.texi: Update. * doc/functions/vsnprintf.texi: Update. * doc/functions/vsprintf.texi: Update. Reported by Eric Blake. 2007-05-06 Bruno Haible * lib/vasnprintf.c (VASNPRINTF) [NEED_PRINTF_FLAG_ZERO]: Perform the padding ourselves for the floating-point directives. * m4/printf.m4 (gl_PRINTF_FLAG_ZERO): New macro. * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_FLAG_ZERO): New macro. * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Invoke gl_PRINTF_FLAG_ZERO and test its result. Invoke gl_PREREQ_VASNPRINTF_FLAG_ZERO. * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise. * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Likewise. * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise. * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise. * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise. * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise. * tests/test-snprintf-posix.h (test_function): Also check the width and some flags in the %f directive. * tests/test-sprintf-posix.h (test_function): Likewise. * tests/test-vasnprintf-posix.c (test_function): Likewise. * tests/test-vasprintf-posix.c (test_function): Likewise. * doc/functions/fprintf.texi: Update. * doc/functions/printf.texi: Update. * doc/functions/snprintf.texi: Update. * doc/functions/sprintf.texi: Update. * doc/functions/vfprintf.texi: Update. * doc/functions/vprintf.texi: Update. * doc/functions/vsnprintf.texi: Update. * doc/functions/vsprintf.texi: Update. 2007-05-06 Bruno Haible * lib/vasnprintf.c (VASNPRINTF) [NEED_PRINTF_FLAG_GROUPING]: Don't pass the ' flag character to sprintf or snprintf. * m4/printf.m4 (gl_PRINTF_FLAG_GROUPING): New macro. * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_FLAG_GROUPING): New macro. * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Invoke gl_PRINTF_FLAG_GROUPING and test its result. Invoke gl_PREREQ_VASNPRINTF_FLAG_GROUPING. * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise. * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Likewise. * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise. * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise. * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise. * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise. * tests/test-snprintf-posix.h (test_function): Also check the grouping flag. * tests/test-sprintf-posix.h (test_function): Likewise. * tests/test-vasnprintf-posix.c (test_function): Likewise. * tests/test-vasprintf-posix.c (test_function): Likewise. * doc/functions/fprintf.texi: Update. * doc/functions/printf.texi: Update. * doc/functions/snprintf.texi: Update. * doc/functions/sprintf.texi: Update. * doc/functions/vfprintf.texi: Update. * doc/functions/vprintf.texi: Update. * doc/functions/vsnprintf.texi: Update. * doc/functions/vsprintf.texi: Update. 2007-05-01 Bruno Haible * tests/test-argp-2.sh (func_compare): Drop .exe suffix. 2007-05-03 Paul Eggert * m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Use better comment for D_INO_IN_DIRENT. Problem reported by James Youngman. 2007-05-02 Paul Eggert * m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Test whether readdir returns garbage in d_ino. Problem reported by Kaz Sasayama in . 2007-05-02 Sergey Poznyakoff * lib/argp-help.c (struct hol_entry): New member `ord'. (HOL_ENTRY_PTRCMP): Use ord for comparison (hol_sort): Initialize ord. 2007-05-01 Bruno Haible * doc/functions/_Exit_C99.texi: Renamed from doc/functions/_Exit.texi. Reported by Eric Blake. * doc/gnulib.texi (Function Substitutes): Update. 2007-05-01 Bruno Haible * doc/functions.texi: Remove file, now redundant through doc/functions/*.texi. 2007-05-01 Bruno Haible * modules/argp (Depends-on): Add sleep. 2007-05-01 Bruno Haible * modules/sleep-tests: New file. * tests/test-sleep.c: New file. * modules/sleep: New file. * lib/sleep.c: New file. * m4/sleep.m4: New file. * lib/unistd_.h (sleep): New declaration. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_SLEEP, HAVE_SLEEP. * modules/unistd (Makefile.am): Substitute GNULIB_SLEEP, HAVE_SLEEP. * doc/functions/sleep.texi: Document the sleep module. 2007-05-01 Bruno Haible * lib/sigprocmask.h: Remove file. * lib/signal_.h: Incorporate the previous contents of sigprocmask.h. * lib/sigprocmask.c: Include instead of sigprocmask.h. * m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Substitute GNULIB_SIGPROCMASK, HAVE_POSIX_SIGNALBLOCKING, HAVE_SIGSET_T. * m4/signalblocking.m4 (gl_SIGNALBLOCKING): Require gl_SIGNAL_H_DEFAULTS. Set HAVE_POSIX_SIGNALBLOCKING as a shell variable. (gl_PREREQ_SIGPROCMASK): Require gl_SIGNAL_H_DEFAULTS. Set HAVE_SIGSET_T as a shell variable. * modules/signal (Makefile.am): Substitute GNULIB_SIGPROCMASK, HAVE_POSIX_SIGNALBLOCKING, HAVE_SIGSET_T into signal.h. * modules/sigprocmask (Files): Remove lib/sigprocmask.h. (Depends-on): Add signal. Remove verify. (configure.ac): Invoke gl_SIGNAL_MODULE_INDICATOR. (Include): Mention instead of sigprocmask.h. * NEWS: Mention the change. * lib/fatal-signal.c: Don't include sigprocmask.h. 2007-05-01 Bruno Haible * modules/signal: New file. * lib/signal_.h: New file. * m4/signal_h.m4: New file. 2007-05-01 Bruno Haible * lib/wctype_.h: Test HAVE_ISWCNTRL at configure time. * m4/wctype.m4 (gl_WCTYPE_H): Substitute HAVE_ISWCNTRL. * modules/wctype (Makefile.am): Substitute HAVE_ISWCNTRL instead of HAVE_WCTYPE_CTMP_BUG into wctype.h. 2007-05-01 Bruno Haible * lib/sys_stat_.h: Test HAVE_LSTAT, HAVE_DECL_MKDIR, HAVE_IO_H at configure time. * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Substitute HAVE_LSTAT, HAVE_DECL_MKDIR, HAVE_IO_H via AC_SUBST. * modules/sys_stat (Makefile.am): Substitute their values into sys/stat.h. 2007-05-01 Bruno Haible * lib/glob_.h: Test HAVE_SYS_CDEFS_H at configure time. * m4/glob.m4 (gl_PREREQ_GLOB): Substitute HAVE_SYS_CDEFS_H via AC_SUBST. * modules/glob (Makefile.am): Put HAVE_SYS_CDEFS_H value into glob.h. 2007-05-01 Bruno Haible * doc/header/assert.texi: Undo last change: don't mention the gnulib 'assert' module here. 2007-05-01 Bruno Haible * doc/functions/*.texi: New files. * doc/functions/google-ranking.txt: New file. * doc/gnulib.texi (Function Substitutes): New chapter. (ctime, inet_ntoa): Remove sections. * doc/ctime.texi: Remove file. * doc/inet_ntoa.texi: Remove file. * doc/Makefile (gnulib.info, gnulib.html, gnulib.dvi): Update dependencies. (%.info): New rule, specifying a --reference-limit. 2007-05-01 Bruno Haible * MODULES.html.sh (posix_functions): Remove 'exec', 'toc'. 2007-05-01 Bruno Haible * modules/mkdir (Depends-on): Add sys_stat, because sys_stat provides the portability of 'mkdir' to mingw systems. 2007-05-01 Bruno Haible * doc/headers/google-ranking.txt: New file. 2007-04-30 Eric Blake Prefer fseeko to fseek. * modules/getpass (Depends-on): Add fseeko. * lib/getpass.c (getpass): Use fseeko, not fseek. 2007-04-30 Sergey Poznyakoff * lib/argp-help.c (hol_entry_cmp): Option sorting algorithm assumes the sorting is stable, while most qsort implementations are not. Use argument addresses to ensure they never compare as equal. * tests/test-argp-2.sh (usage-indent test): Fix output (func_compare): Restore diff options * tests/test-argp.c: Restore #include "progname.h" 2007-04-29 Bruno Haible * m4/printf.m4 (gl_VSNPRINTF_ZEROSIZE_C99): New macro. * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Invoke gl_VSNPRINTF_ZEROSIZE_C99. Test gl_cv_func_vsnprintf_zerosize_c99. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise. * modules/snprintf-posix-tests (Files): Add tests/test-snprintf.c. (configure.ac): Define CHECK_SNPRINTF_POSIX. (TESTS, check_PROGRAMS): Add test-snprintf. * modules/vsnprintf-posix-tests (Files): Add tests/test-vsnprintf.c. (configure.ac): Define CHECK_VSNPRINTF_POSIX. (TESTS, check_PROGRAMS): Add test-vsnprintf. * tests/test-snprintf.c (main) [!CHECK_SNPRINTF_POSIX]: Disable assertions that fail on HP-UX, OSF/1, or IRIX. * tests/test-vsnprintf.c (main) [!CHECK_VSNPRINTF_POSIX]: Likewise. 2007-04-29 Bruno Haible * MODULES.html.sh (posix_functions): Remove 'contents'. 2007-04-29 Karl Berry * config/srclist.txt (gendocs_template_min): new entry. 2007-04-29 Bruno Haible Work around fpurge bug on BSD systems. * modules/fpurge (Makefile.am): Compile fpurge.c unconditionally. * m4/fpurge.m4 (gl_FUNC_FPURGE): Don't invoke AC_LIBOBJ. * lib/fpurge.h (fpurge): Don't handle __fpurge wrapper here. Define fpurge to rpl_fpurge if the system already has this function. * lib/fpurge.c (fpurge): Handle also the __fpurge wrapper case and the case where the system already has this function. Correct invariants on BSD systems. * lib/fseeko.c (rpl_fseeko): Update recognition of preceding fflush on BSD systems. 2007-04-29 Sergey Poznyakoff * lib/argp-help.c (hol_cluster_cmp): Reverse comparison. Change proposed by Sven Verdoolaege. * tests/test-argp.c: Fix option ordering. Test deeply clustered options. * tests/test-argp-2.sh (func_compare): Use diff instead of cmp. (usage and help tests): Update 2007-04-29 Bruno Haible * tests/test-fflush.c (main): Use a file of size 17, not 10. Print more information in case of failure. Disable a test on BeOS. 2007-04-29 Bruno Haible * tests/**/test-*.[hc] (ASSERT): Use fprintf to show the line number. This helps debugging on systems on which no gdb is available. 2007-04-29 Bruno Haible * lib/freading.h: Improve comments. * lib/fwriting.h: Likewise. * tests/test-freading.c (main): Don't check freading immediately after repositioning. Needed for glibc. 2007-04-29 Bruno Haible * lib/freading.c (freading): Trivial simplification. 2007-04-28 Bruno Haible * tests/test-fwriting.c (main): Also test the interaction between fflush and fwriting. * modules/fwriting-tests (Depends-on): Add fflush. * tests/test-freading.c (main): Also test the interaction between fflush and freading. * modules/freading-tests (Depends-on): Add fflush. 2007-04-28 Bruno Haible * lib/stdio_.h (fseek, ftell): Provide link warnings suggesting to use fseeko and ftello. Suggested by Eric Blake. 2007-04-28 Jim Meyering Avoid false-negative in gl_STDINT_H's C99 conformance test. * m4/stdint.m4 (gl_STDINT_H): When checking whether stdint.h conforms to C99, include all of gl_STDINT_INCLUDES, not just . 2007-04-27 Eric Blake * doc/headers/assert.texi (assert.h): Document assert module use. 2007-04-27 Bruno Haible * doc/headers/*.texi: New files. * doc/gnulib.texi (Header File Substitutes): New chapter. * doc/Makefile (gnulib.info, gnulib.html, gnulib.dvi): Specify dependencies. (standards.info ,standards.html, standards.dvi): Update dependencies. (mostlyclean, clean): New targets. 2007-04-27 Bruno Haible * lib/sysexits_.h: Renamed from lib/sysexit_.h. * modules/sysexits (Files, Makefile.am): Update. * lib/sys_socket_.h: Renamed from lib/socket_.h. * modules/sys_socket (Files, Makefile.am): Update. * lib/sys_stat_.h: Renamed from lib/stat_.h. * modules/sys_stat (Files, Makefile.am): Update. 2007-04-27 Eric Blake * lib/freading.h: Improve comments. * lib/fwriting.h: Likewise. * lib/fflush.c: Likewise. Fix closein for mingw. * modules/closein-tests: Add tests for closein. * tests/test-closein.c: New file. * tests/test-closein.sh: Likewise. * lib/unistd_.h [!SEEK_CUR]: Mingw also needs stdlib.h for _exit. * lib/closein.c (close_stdin): Don't fflush non-seekable streams. 2007-04-27 Bruno Haible * lib/inttypes_.h [_DECC]: Don't use #include_next if the compiler version is < 6. * lib/math_.h [__DECC]: Likewise. * lib/stdio_.h [__DECC]: Likewise. * lib/stdlib_.h [__DECC]: Likewise. * lib/string_.h [__DECC]: Likewise. * lib/time_.h [__DECC]: Likewise. * lib/wchar_.h [__DECC]: Likewise. * lib/wctype_.h [__DECC]: Likewise. 2007-04-27 Bruno Haible * tests/test-fbufmode.c (main): Relax test, to avoid failure on mingw. 2007-04-27 Bruno Haible * lib/fflush.c: Add comments. * modules/fpurge-tests (Depends-on): Add fflush. * modules/freadable-tests (Depends-on): Likewise. * modules/fwritable-tests (Depends-on): Likewise. 2007-04-27 Charles Wilson * m4/argz.m4 (gl_FUNC_ARGZ): Use !HAVE_WORKING_ARGZ instead of SYSTEM_ARGZ_IS_BROKEN. Also, minor stylistic improvements. Report by Bruno Haible . 2007-04-26 Eric Blake Fix fflush on mingw. * modules/fflush (Depends-on): Add freading. * lib/fflush.c (rpl_fflush): Use freading to avoid losing buffered but unread data. 2007-04-26 Eric Blake and Bruno Haible Implement freading and fwriting. * lib/freading.c: New file. * lib/freading.h: Likewise. * m4/freading.m4: Likewise. * modules/freading: Likewise. * modules/freading-tests: Likewise. * tests/test-freading.c: Likewise. * lib/fwriting.c: New file. * lib/fwriting.h: Likewise. * m4/fwriting.m4: Likewise. * modules/fwriting: Likewise. * modules/fwriting-tests: Likewise. * tests/test-fwriting.c: Likewise. * MODULES.html.sh (File stream based Input/Output): Mention them. 2007-04-26 Bruno Haible * lib/stdio_.h (fseeko, ftello): Check that off_t has the same size as 'long' when we assume it. Suggested by Eric Blake. 2007-04-26 Bruno Haible Ensure fseeko, ftello are declared on glibc systems. * modules/fflush (configure.ac-early): Require AC_FUNC_FSEEKO. * modules/fseeko (configure.ac-early): Likewise. * modules/ftello (configure.ac-early): Likewise. * m4/fflush.m4 (gl_REPLACE_FFLUSH): Don't define HAVE_FSEEKO, rely on AC_FUNC_FSEEKO for this. * m4/fseeko.m4 (gl_FUNC_FSEEKO): Inline gl_CHECK_FSEEKO. (gl_CHECK_FSEEKO): Remove macro. 2007-04-26 Bruno Haible * tests/test-fflush.c (main): Also check the ftell result after fflush and fseek/fseeko. * lib/fflush.c (rpl_fflush): For BSD implementations, update the file descriptor position cache in the stream. * lib/fseeko.c (rpl_fseeko): Likewise. 2007-04-26 Bruno Haible * modules/fflush-tests (Depends-on): Add fseeko. 2007-04-25 Charles Wilson Ralf Wildenhues * lib/argz_.h: ensure error_t definition is obtained in same mechanism system argz.h would have. * m4/argz.m4 (gl_FUNC_ARGZ): add new test to check if $host's argz facilities are known bad. Err on the side of caution if cross-compiling. 2007-04-25 Eric Blake * lib/fpurge.c (includes): Use stdlib.h for free. * tests/test-fflush.c (main): Also test fflush-fseeko. 2007-04-25 Bruno Haible Make fflush+fseek POSIX-compliant on FreeBSD and MacOS X. * lib/fseeko.c: New file. * lib/stdio_.h: Include when off_t is needed. (fseeko, fseek): Define to replacements if REPLACE_FFLUSH. * m4/fseeko.m4 (gl_CHECK_FSEEKO): New macro, extracted from gl_FUNC_FSEEKO. (gl_FUNC_FSEEKO): Invoke it. * m4/fflush.m4 (gl_REPLACE_FFLUSH): Arrange to compile fseeko.c. Invoke gl_CHECK_FSEEKO. Define HAVE_FSEEKO. * modules/fflush (Files): Add lib/fseeko.c, m4/fseeko.m4. 2007-04-25 Bruno Haible * modules/fflush (Depends-on): Add ftello. 2007-04-25 Bruno Haible * modules/ftello-tests: New file. * tests/test-ftello.c: New file. * modules/ftello: New file. * m4/ftello.m4: New file. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_FTELLO, HAVE_FTELLO. * lib/stdio_.h (ftello): New declaration. * modules/stdio (Makefile.am): Substitute also GNULIB_FTELLO, HAVE_FTELLO. 2007-04-25 Bruno Haible * modules/fseeko-tests: New file. * tests/test-fseeko.c: New file. * modules/fseeko: New file. * m4/fseeko.m4: New file. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_FSEEKO, HAVE_FSEEKO. * lib/stdio_.h (fseeko): New declaration. * modules/stdio (Makefile.am): Substitute also GNULIB_FSEEKO, HAVE_FSEEKO. 2007-04-25 Bruno Haible * lib/stdio_.h (fflush): Add support for GNULIB_POSIXCHECK. 2007-04-25 Bruno Haible * lib/unistd_.h: Include if needed to get the SEEK_* macros. * tests/test-stdio.c: Check that the various SEEK_* macros are defined. * tests/test-unistd.c: Likewise. * tests/test-fcntl.c: Likewise. 2007-04-23 Eric Blake * lib/fflush.c: Fix missing include. Reported by Bruno Haible. 2007-04-23 Bruno Haible * lib/fpurge.c (fpurge) [glibc, BSD]: Free a malloc()ed ungetc buffer. Reported by Eric Blake. 2007-04-23 Bruno Haible * lib/fbufmode.c (fbufmode): Port to Solaris/SPARC64. 2007-04-23 Bruno Haible * lib/fseterr.c (fseterr): Don't hardcode the value of _IOERR. 2007-04-23 Bruno Haible * tests/test-fbufmode.c (main): Be prepared to a failure of setvbuf. Needed on HP-UX 11. 2007-04-16 Eric Blake Make fflush rely on fpurge. * lib/fflush.c (rpl_fflush): Rely on fpurge module, rather than open coding all variants. * modules/fflush (Depends-on): Add fpurge and unistd. * modules/fflush-tests (Depends-on): Unistd is no longer extra. * m4/fflush.m4 (gl_REPLACE_FFLUSH): Simplify. Fix --with-tests compilation on cygwin. * modules/argmatch-tests (Makefile.am): List gnulib library first in LDADD. * modules/argp-tests (Makefile.am): Likewise. * modules/array-list-tests (Makefile.am): Likewise. * modules/array-oset-tests (Makefile.am): Likewise. * modules/avltree-list-tests (Makefile.am): Likewise. * modules/avltree-oset-tests (Makefile.am): Likewise. * modules/avltreehash-list-tests (Makefile.am): Likewise. * modules/carray-list-tests (Makefile.am): Likewise. * modules/dirname-tests (Makefile.am): Likewise. * modules/frexp-tests (Makefile.am): Likewise. * modules/isnanl-tests (Makefile.am): Likewise. * modules/linked-list-tests (Makefile.am): Likewise. * modules/linkedhash-list-tests (Makefile.am): Likewise. * modules/lock-tests (Makefile.am): Likewise. * modules/rbtree-list-tests (Makefile.am): Likewise. * modules/rbtree-oset-tests (Makefile.am): Likewise. * modules/rbtreehash-list-tests (Makefile.am): Likewise. * modules/tls-tests (Makefile.am): Likewise. * modules/tsearch-tests (Makefile.am): Likewise. * modules/xvasprintf-tests (Makefile.am): Likewise. Fix fpurge for cygwin. * lib/fpurge.c (fpurge): Fix order of operation flub, and return a value. * modules/fpurge-tests (Depends-on): Clean up trash. 2007-04-16 Simon Josefsson * lib/gc-libgcrypt.c (gc_hash_open): Shut up compiler warnings. * m4/autobuild.m4: Re-indent. 2007-04-13 Bruno Haible * modules/fpurge-tests: New file. * tests/test-fpurge.c: New file. * modules/fpurge: New file. * lib/fpurge.h: New file. * lib/fpurge.c: New file. * m4/fpurge.m4: New file. 2007-04-13 Bruno Haible * modules/fbufmode-tests: New file. * tests/test-fbufmode.c: New file. * modules/fbufmode: New file. * lib/fbufmode.h: New file. * lib/fbufmode.c: New file. * m4/fbufmode.m4: New file. 2007-04-13 Bruno Haible * modules/fwritable-tests: New file. * tests/test-fwritable.c: New file. * modules/fwritable: New file. * lib/fwritable.h: New file. * lib/fwritable.c: New file. * m4/fwritable.m4: New file. 2007-04-13 Bruno Haible * modules/freadable-tests: New file. * tests/test-freadable.c: New file. * modules/freadable: New file. * lib/freadable.h: New file. * lib/freadable.c: New file. * m4/freadable.m4: New file. 2007-04-13 Bruno Haible * modules/fflush-tests (Makefile.am): Remove EXTRA_DIST. Augment MOSTLYCLEANFILES. 2007-04-13 Paul Eggert * build-aux/bootstrap (gnulib_tool_option_extras): New var, used by gzip bootstrap.conf to avoid dragging in i18n machinery. (gnulib_tool_option): Use it. 2007-04-13 Bruno Haible * tests/test-vasnprintf-posix.c (test_function): Add tests for %f and %F directives. * tests/test-vasprintf-posix.c (test_function): Likewise. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. * tests/test-fprintf-posix.h (test_function): Likewise. * tests/test-printf-posix.h (test_function): Likewise. * tests/test-fprintf-posix.out: Likewise. 2007-04-13 Bruno Haible * modules/lock-tests (configure.ac): For LIBSCHED, try also -lposix4. * modules/tls-tests (configure.ac): Likewise. Reported by Arto C. Nirkko . 2007-04-13 Bruno Haible * lib/tls.c (glthread_tls_get): Fix return type. Patch by Arto C. Nirkko . 2007-04-12 Eric Blake * modules/gettime (Depends-on): Remove gettime. Reported by Dmitry V. Levin. 2007-04-12 Bruno Haible * modules/fflush (Include): Mention . * modules/strtoimax (Include): Mention . * modules/strtoumax (Include): Likewise. 2007-04-12 Eric Blake * .cvsignore: New file. * .gitignore: Likewise. 2007-04-12 Bruno Haible * modules/iconv-tests (test_iconv_LDADD): Mention -liconv after LDADD, not before, since $(LDADD) often contains libgnu.a. * modules/striconv-tests (test_striconv_LDADD): Likewise. * modules/striconveh-tests (test_striconveh_LDADD): Likewise. * modules/striconveha-tests (test_striconveha_LDADD): Likewise. Needed on Cygwin. 2007-04-12 Eric Blake Work around glibc's failure to flush stdin on fclose. * lib/closein.c (close_stdin): Flush stdin before closing. Work around glibc's failure to reset seekable stdin on exit. * modules/closein: New module. * lib/closein.c: New file. * lib/closein.h: Likewise. * m4/closein.m4: Likewise. * MODULES.html.sh (File stream based Input/Output): Document it. 2007-04-12 Simon Josefsson * gnulib-tool: Rename generated 'autobuild' script to 'do-autobuild' in --create-megatestdir output. * doc/gnulib.texi (Build robot for gnulib): Fix. 2007-04-12 Simon Josefsson * modules/sysexits (Depends-on): Add absolute-header. 2007-04-12 Eric Blake No need to preserve errno on success. * lib/fflush.c (rpl_fflush): Simplify errno tracking. Reported by Bruno Haible. 2007-04-12 Simon Josefsson * MODULES.html.sh (Support for maintaining and releasing projects): Add autobuild. Suggested by Eric Blake . 2007-04-12 Simon Josefsson * gnulib-tool (func_modules_add_dummy): Respect --avoid=dummy. 2007-04-12 Simon Josefsson * modules/autobuild: New module. * m4/autobuild.m4: New file. 2007-04-11 Bruno Haible * lib/vasnprintf.c (VASNPRINTF): Implement the %F directive using the %f directive, if NEED_PRINTF_DIRECTIVE_F is defined. * m4/printf.m4 (gl_PRINTF_DIRECTIVE_F): New macro. * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_F): New macro. * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement. * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Invoke gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement. * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Invoke gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement. * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Invoke gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement. * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Invoke gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement. * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Invoke gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Invoke gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement. * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Invoke gl_PRINTF_DIRECTIVE_F. Test gl_cv_func_printf_directive_f. Invoke gl_PREREQ_VASNPRINTF_DIRECTIVE_F for the replacement. Reported by Eric Blake. 2007-04-11 Bruno Haible * m4/printf.m4 (gl_PRINTF_DIRECTIVE_A): Fix test. It always failed. 2007-04-10 Bruno Haible * m4/printf.m4 (gl_PRINTF_DIRECTIVE_A): Add a test for correct result for NaN and Infinity. Needed on FreeBSD 6.1. * tests/test-vasnprintf-posix.c (test_function): Undo last change regarding results for "%010a" of Infinity and NaN. * tests/test-vasprintf-posix.c (test_function): Likewise. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. * tests/test-fprintf-posix.h (test_function): Likewise. * tests/test-printf-posix.h (test_function): Likewise. * tests/test-fprintf-posix.out: Likewise. 2007-04-10 Bruno Haible * modules/locale-tests: New file. * tests/test-locale.c: New file. * modules/locale: New file. * lib/locale_.h: New file. * m4/locale_h.m4: New file. 2007-04-10 Paul Eggert Bruno Haible * m4/signbit.m4 (gl_SIGNBIT): When the sign bit position could not be determined, test for availability of the copysignf, copysign, copysignl functions. * lib/signbitf.c (gl_signbitf): Use copysignf if available in libc. * lib/signbitd.c (gl_signbitd): Use copysign if available in libc. * lib/signbitl.c (gl_signbitl): Use copysignl if available in libc. 2007-04-09 Eric Blake * lib/stdio_.h [REPLACE_FFLUSH]: Declare rpl_fflush. * modules/stdio (Makefile.am): Support fflush. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Likewise. * modules/fflush: New file. * lib/fflush.c: Likewise. * m4/fflush.m4: Likewise. * modules/fflush-tests: New test. * tests/test-fflush.c: Likewise. * MODULES.html.sh (Input/output ): Document new module. 2007-04-06 Bruno Haible * lib/vasnprintf.c: Include . Don't include float+.h. (VASNPRINTF): Use signbit for faster determination whether to print a minus sign. * modules/vasnprintf (Files): Remove lib/float+.h. * modules/fprintf-posix (Depends-on): Add signbit. * modules/snprintf-posix (Depends-on): Likewise. * modules/sprintf-posix (Depends-on): Likewise. * modules/vasnprintf-posix (Depends-on): Likewise. * modules/vasprintf-posix (Depends-on): Likewise. * modules/vfprintf-posix (Depends-on): Likewise. * modules/vsnprintf-posix (Depends-on): Likewise. * modules/vsprintf-posix (Depends-on): Likewise. 2007-04-06 Bruno Haible * tests/test-frexp.c (main): Test also the sign bit of zero results. * tests/test-frexpl.c (main): Likewise. * tests/test-ldexpl.c (main): Likewise. * modules/frexp-tests (Depends-on): Add signbit. * modules/frexpl-tests (Depdends-on): Likewise. * modules/ldexpl-tests (Depdends-on): Likewise. 2007-04-06 Bruno Haible * modules/signbit-tests: New file. * tests/test-signbit.c: New file. * modules/signbit: New file. * lib/signbitf.c: New file. * lib/signbitd.c: New file. * lib/signbitl.c: New file. * m4/signbit.m4: New file. * lib/math_.h (gl_signbitf, gl_signbitd, gl_signbitl): New declarations. (signbit): New macro. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_SIGNBIT and REPLACE_SIGNBIT. * modules/math (Makefile.am): Substitute also GNULIB_SIGNBIT and REPLACE_FREXPL into math.h. 2007-04-06 Bruno Haible * modules/isnanf-nolibm-tests: New file. * tests/test-isnanf.c: New file. * modules/isnanf-nolibm: New file. * lib/isnanf.h: New file. * lib/isnanf.c: New file. * lib/isnan.c: Consider the USE_FLOAT macro. * m4/isnanf.m4: New file. 2007-04-06 Bruno Haible * modules/gettext-h (configure.ac): AC_SUBST LIBINTL and LTLIBINTL. (Link): New section. * modules/canonicalize-lgpl-tests (Makefile.am): Undo last change. 2007-04-06 Bruno Haible Assume the 'long double' type. * m4/longdouble.m4: Remove file. * config/srclist.txt: Don't mention longdouble.m4. * lib/allocsa.h: Assume HAVE_LONG_DOUBLE to be true. * lib/float+.h: Likewise. * lib/frexp.c: Likewise. * lib/printf-args.h: Likewise. * lib/printf-args.c: Likewise. * lib/printf-frexp.c: Likewise. * lib/printf-parse.c: Likewise. * lib/vasnprintf.c: Likewise. * m4/allocsa.m4: Remove gt_TYPE_LONGDOUBLE invocation. * m4/intl.m4: Likewise. * m4/isnanl.m4: Likewise. * m4/printf.m4: Likewise. * m4/printf-frexpl.m4: Likewise. * m4/vasnprintf.m4: Likewise. * modules/allocsa (Files): Remove m4/longdouble.m4. * modules/gettext (Files): Likewise. * modules/relocatable-prog-wrapper (Files): Likewise. * modules/vasnprintf (Files): Likewise. * modules/isnanl (Files): Likewise. (Include): Simplify. * modules/isnanl-nolibm (Files): Remove m4/longdouble.m4. (Include): Simplify. * modules/printf-frexpl (Files): Remove m4/longdouble.m4. (Include): Simplify. * modules/snprintf-posix-tests (Files): Remove m4/longdouble.m4. (configure.ac): Remove gt_TYPE_LONGDOUBLE invocation. * modules/sprintf-posix-tests (Files): Remove m4/longdouble.m4. (configure.ac): Remove gt_TYPE_LONGDOUBLE invocation. * modules/vasnprintf-posix-tests (Files): Remove m4/longdouble.m4. (configure.ac): Remove gt_TYPE_LONGDOUBLE invocation. * modules/vasprintf-posix-tests (Files): Remove m4/longdouble.m4. (configure.ac): Remove gt_TYPE_LONGDOUBLE invocation. * modules/vsnprintf-posix-tests (Files): Remove m4/longdouble.m4. (configure.ac): Remove gt_TYPE_LONGDOUBLE invocation. * modules/vsprintf-posix-tests (Files): Remove m4/longdouble.m4. (configure.ac): Remove gt_TYPE_LONGDOUBLE invocation. * tests/test-isnanl-nolibm.c: Assume HAVE_LONG_DOUBLE to be true. * tests/test-isnanl.c: Likewise. * tests/test-snprintf-posix.h: Likewise. * tests/test-sprintf-posix.h: Likewise. * tests/test-vasnprintf-posix.c: Likewise. * tests/test-vasnprintf-posix2.c: Likewise. * tests/test-vasprintf-posix.c: Likewise. 2007-04-06 Bruno Haible Fix problem with Compaq (ex-DEC) Desktop C compiler on Tru64. * lib/math_.h [__DECC]: Include the overridden include file through #include_next, outside the double-inclusion guard. * lib/stdio_.h [__DECC]: Likewise. * lib/stdlib_.h [__DECC]: Likewise. * lib/string_.h [__DECC]: Likewise. * lib/time_.h [__DECC]: Likewise. * lib/wchar_.h [__DECC]: Likewise. * lib/wctype_.h [__DECC]: Likewise. * lib/inttypes_.h [__DECC]: Likewise. Reported by Albert Chin in . 2007-04-04 Eric Blake * m4/stdint.m4 (gl_STDINT_H): Detect WINT_MAX bug in cygwin 1.5.x. 2007-04-04 Bruno Haible * m4/printf.m4 (gl_PRINTF_DIRECTIVE_A): Add a test for correct rounding. Don't assume that FreeBSD 6 and NetBSD 4 pass this test. 2007-04-04 Bruno Haible * tests/test-vasnprintf-posix.c (test_function): Allow two possible results for "%010a" of Infinity and NaN. * tests/test-vasprintf-posix.c (test_function): Likewise. * tests/test-snprintf-posix.h (test_function): Likewise. * tests/test-sprintf-posix.h (test_function): Likewise. * tests/test-fprintf-posix.h (test_function): Remove these tests. * tests/test-printf-posix.h (test_function): Likewise. * tests/test-fprintf-posix.out: Update. Needed for FreeBSD 6.1. 2007-04-04 Bruno Haible * DEPENDENCIES: Remove mentions of tar and gzip, since they are not directly used by the gnulib modules nor by gnulib-tool. 2007-04-04 Paul Eggert * DEPENDENCIES: Give overall description of version dependency desirability. Use more-typical names for apps. Add shell, coreutils, diffutils, grep, tar, gzip. 2007-04-04 Simon Josefsson * MODULES.html.sh: Rename crypto modules. Remove iconvme. 2007-04-04 Karl Berry * MODULES.html.sh (func_module): missing '. 2007-04-03 Bruno Haible * modules/argmatch-tests (Makefile.am): New variable test_argmatch_LDADD. * modules/argp-tests (Makefile.am): New variable test_argp_LDADD. * modules/array-list-tests (Makefile.am): New variable test_array_list_LDADD. * modules/array-oset-tests (Makefile.am): New variable test_array_oset_LDADD. * modules/avltree-list-tests (Makefile.am): New variable test_avltree_list_LDADD. * modules/avltree-oset-tests (Makefile.am): New variable test_avltree_oset_LDADD. * modules/avltreehash-list-tests (Makefile.am): New variable test_avltreehash_list_LDADD. * modules/canonicalize-lgpl-tests (Makefile.am): New variable test_canonicalize_lgpl_LDADD. * modules/carray-list-tests (Makefile.am): New variable test_carray_list_LDADD. * modules/dirname-tests (Makefile.am): New variable test_dirname_LDADD. * modules/linked-list-tests (Makefile.am): New variable test_linked_list_LDADD. * modules/linkedhash-list-tests (Makefile.am): New variable test_linkedhash_list_LDADD. * modules/rbtree-list-tests (Makefile.am): New variable test_rbtree_list_LDADD. * modules/rbtree-oset-tests (Makefile.am): New variable test_rbtree_oset_LDADD. * modules/rbtreehash-list-tests (Makefile.am): New variable test_rbtreehash_list_LDADD. * modules/xvasprintf-tests (Makefile.am): New variable test_xvasprintf_LDADD. Reported by Eric Blake. 2007-04-03 Eric Blake * DEPENDENCIES: Weaken m4 requirements. 2007-04-03 Bruno Haible * modules/frexp-tests (configure.ac): Remove AC_SUBST. * modules/isnanl-tests (configure.ac): Likewise. 2007-04-03 Ben Pfaff * modules/iconv_open: Add $(srcdir)/ to source directory references in Makefile fragments that call gperf, to fix VPATH builds. 2007-04-03 Bruno Haible * modules/ldexpl (Depends-on): Add isnanl, remove isnanl-nolibm. * lib/ldexpl.c: Undo last change. 2007-04-03 Bruno Haible * modules/printf-frexpl (Depends-on): Undo last change. (Files): Add m4/ldexpl.m4. 2007-04-03 Bruno Haible * m4/isnanl.m4 (gl_FUNC_ISNANL): Substitute ISNANL_LIBM. * modules/isnanl (Link): New section. * m4/frexp.m4 (gl_FUNC_FREXP): Substitute FREXP_LIBM. * modules/frexp (Link): New section. * m4/frexpl.m4 (gl_FUNC_FREXPL): Substitute FREXPL_LIBM. * modules/frexpl (Link): New section. * m4/ldexpl.m4 (gl_FUNC_LDEXPL): Substitute LDEXPL_LIBM. * modules/ldexpl (Link): New section. 2007-04-03 Bruno Haible * modules/TEMPLATE-EXTENDED: New file. * gnulib-tool (func_all_modules, func_verify_module): Exclude it. 2007-04-03 Bruno Haible * DEPENDENCIES: New file. Suggested by Simon Josefsson. 2007-04-03 Bruno Haible * doc/gnulib.texi: Escape @. 2007-04-03 James Youngman and Paul Eggert * lib/stat-time.h (get_stat_birthtime): Check for zero-valued birthtime on all systems that have birthtime, not just those which use st_birthtimensec rather than st_birthtim. Putting zero in st_birthtim.tv_sec is how (for example) FreeBSD/x86 6.1 indicates that the birth time is not available for files on an NFS mount. 2007-04-03 Simon Josefsson * modules/memxor: Move back from crypto/, suggested by Bruno. * modules/crypto/hmac-sha1: Fix memxor dependency. * modules/crypto/gc: Moved from ../. 2007-04-02 Eric Blake * lib/ldexpl.c (includes): Avoid libm. * modules/printf-frexpl (Depends-on): Depend on ldexpl. 2007-04-02 Bruno Haible * lib/sysexit_.h (EX_OK): Disable the EX_OK definition from on IRIX. 2007-04-02 Bruno Haible * m4/intdiv0.m4 (gt_INTDIV0): Avoid performing the test for real on x86 or x86_64 platforms running MacOS X. Reported by Ryan Schmidt <@ryandesign.com>. 2007-04-02 Bruno Haible * m4/intdiv0.m4 (gt_INTDIV0): When cross-compiling, treat x86_64 like i386. 2007-04-01 Simon Josefsson * modules/crypto/arcfour: Moved from ../. * modules/crypto/arcfour-tests: Moved from ../. * modules/crypto/arctwo: Moved from ../. * modules/crypto/arctwo-tests: Moved from ../. * modules/crypto/des: Moved from ../. * modules/crypto/des-tests: Moved from ../. * modules/crypto/gc-arcfour: Moved from ../. * modules/crypto/gc-arcfour-tests: Moved from ../. * modules/crypto/gc-arctwo: Moved from ../. * modules/crypto/gc-arctwo-tests: Moved from ../. * modules/crypto/gc-des: Moved from ../. * modules/crypto/gc-des-tests: Moved from ../. * modules/crypto/gc-hmac-md5: Moved from ../. * modules/crypto/gc-hmac-md5-tests: Moved from ../. * modules/crypto/gc-hmac-sha1: Moved from ../. * modules/crypto/gc-hmac-sha1-tests: Moved from ../. * modules/crypto/gc-md2: Moved from ../. * modules/crypto/gc-md2-tests: Moved from ../. * modules/crypto/gc-md4: Moved from ../. * modules/crypto/gc-md4-tests: Moved from ../. * modules/crypto/gc-md5: Moved from ../. * modules/crypto/gc-md5-tests: Moved from ../. * modules/crypto/gc-pbkdf2-sha1: Moved from ../. * modules/crypto/gc-pbkdf2-sha1-tests: Moved from ../. * modules/crypto/gc-random: Moved from ../. * modules/crypto/gc-rijndael: Moved from ../. * modules/crypto/gc-rijndael-tests: Moved from ../. * modules/crypto/gc-sha1: Moved from ../. * modules/crypto/gc-sha1-tests: Moved from ../. * modules/crypto/gc-tests: Moved from ../. * modules/crypto/hmac-md5: Moved from ../. * modules/crypto/hmac-md5-tests: Moved from ../. * modules/crypto/hmac-sha1: Moved from ../. * modules/crypto/hmac-sha1-tests: Moved from ../. * modules/crypto/md2: Moved from ../. * modules/crypto/md2-tests: Moved from ../. * modules/crypto/md4: Moved from ../. * modules/crypto/md4-tests: Moved from ../. * modules/crypto/md5: Moved from ../. * modules/crypto/md5-tests: Moved from ../. * modules/crypto/memxor: Moved from ../. * modules/crypto/rijndael: Moved from ../. * modules/crypto/rijndael-tests: Moved from ../. * modules/crypto/sha1: Moved from ../. 2007-03-30 James Youngman * tests/test-stat-time.c (prepare_test): use chmod() rather than rename() to change the ctime of a file (because ctime is unaffected by rename on jfs2 on AIX 5.1). (main): Start by doing cleanup, in case a previous run failed leaving test files behind. 2007-03-31 Bruno Haible Support old proprietary implementations of iconv. * modules/iconv_open: New file. * lib/iconv_.h: New file. * m4/iconv_h.m4: New file. * lib/iconv_open.c: New file. * lib/iconv_open-aix.gperf: New file. * lib/iconv_open-hpux.gperf: New file. * lib/iconv_open-irix.gperf: New file. * lib/iconv_open-osf.gperf: New file. * m4/iconv_open.m4: New file. * modules/linebreak (Depends-on): Add iconv_open. * modules/striconv (Depends-on): Likewise. * modules/striconveh (Depends-on): Likewise. * modules/unicodeio (Depends-on): Likewise. * lib/striconveh.h (mem_cd_iconveh, str_cd_iconveh): Allow cd to be (iconv_t)(-1). * lib/striconveh.c (mem_cd_iconveh_internal): Use an indirect conversion if cd is (iconv_t)(-1). (mem_iconveh, str_iconveh): Don't fail just because a direct conversion is not possible. 2007-03-31 Bruno Haible * tests/test-striconveha.c (main): Don't expect "autodetect_jp" to work on Solaris either. Protect also second use of "autodetect_jp". 2007-03-31 Bruno Haible * m4/frexpl.m4 (gl_FUNC_FREXPL): Set HAVE_DECL_FREXPL to 0 when the function is not present. 2007-03-31 Bruno Haible * m4/ldexpl.m4 (gl_FUNC_LDEXPL): Set HAVE_DECL_LDEXPL to 0 when the function is not present. 2007-03-31 Bruno Haible * m4/iconv.m4 (AM_ICONV_LINK): Fix 2007-03-29 patch. Test also against a bug in HP-UX iconv_open(). 2007-03-31 Bruno Haible * MODULES.html.sh (func_module): Don't show gnulib-common.m4. (Mathematics ): New section, add fpieee. (Input/output ): Add fseterr. (Mathematics ): New section, add printf-frexp. (Container data structures): Add sublist. (Core language properties): Add fpucw, inline. (Functions for greatest-width integer types ): Add imaxabs, imaxdiv, inttypes. (Mathematics ): Add frexp, frexpl, isnan-nolibm, isnanl, isnanl-nolibm, ldexp. (Mathematics ): New section, add printf-frexpl. (Support for systems lacking POSIX:2001): Add fprintf-posix, printf-posix, snprintf-posix, sprintf-posix, string, search, socklen, sys_select, sys_socket, vasnprintf-posix, vasprintf-posix, vfprintf-posix, vprintf-posix, vsnprintf-posix, vsprintf-posix. (Unicode string functions): Add unistr/u*-mbtoucr. (Java): Add javacomp-script, javaexec-script. (C#): Add csharpcomp-script, csharpexec-script. (Support for building libraries and executables): Add havelib, relocatable-*. (Support for maintaining and releasing projects): Renamed from 'Support for maintaining and release projects'. Add announce-gen. 2007-03-31 Bruno Haible * README: Talk primarily about git. (git and CVS): Renamed from CVS. * doc/gnulib.texi (Introduction, Build robot for gnulib): Mention that gnulib is available through git. * doc/gnulib-tool.texi (CVS Issues): Mention git and svn as well. 2007-03-30 Bruno Haible * lib/alloca_.h: Change prefix of double-inclusion guard macro to _GL_. * lib/poll_.h: Likewise. * lib/stat_.h: Likewise. * lib/sys_time_.h: Likewise. * lib/sysexit_.h: Likewise. * lib/glob_.h: Prefix double-inclusion guard macro with _GL_. * lib/stdbool_.h: Likewise. * lib/byteswap_.h: Add double-inclusion guard. 2007-03-30 Sergey Poznyakoff * lib/sysexit_.h: Prefix double-inclusion guard macro with _GNULIB. 2007-03-30 Karl Berry * config/srclist-update: double space after USA in the license substitution, since that's how it's usually (?) written. 2007-03-30 Paul Eggert * lib/write-any-file.c (can_write_any_file): Fix else-else bug reported by Bruno Haible. 2007-03-29 Bruno Haible * m4/iconv.m4 (AM_ICONV_LINK): Require AC_CANONICAL_HOST. Test against a bug in AIX iconv(). 2007-03-29 Bruno Haible * modules/ldexpl-tests: New file. * tests/test-ldexpl.c: New file. 2007-03-29 Bruno Haible * lib/ldexpl.c: Include fpucw.h. (ldexpl): Use BEGIN/END_LONG_DOUBLE_ROUNDING. Skip the last unneeded multiplication. * modules/ldexpl (Depends-on): Add fpucw. 2007-03-29 Bruno Haible * modules/ldexpl: New file. * m4/ldexpl.m4: New file. * lib/math_.h (ldexpl): Define to a replacement if REPLACE_LDEXPL is set. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize also GNULIB_LDEXPL, REPLACE_LDEXPL. * modules/math (Makefile.am): Substitute also GNULIB_LDEXPL, REPLACE_LDEXPL. * m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Invoke gl_FUNC_LDEXPL_WORKS. * m4/mathl.m4 (gl_FUNC_LONG_DOUBLE_MATH): Remove test for ldexpl. * modules/mathl (Files): Remove lib/ldexpl.c. (Depends-on): Add ldexpl. 2007-03-29 Bruno Haible * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Declare frexpl. 2007-03-29 Bruno Haible * tests/test-striconveh.c (main): Don't assume that a direct conversion between ISO-8859-1 and ISO-8859-2 is possible. Needed for OSF/1, IRIX and possibly also HP-UX. * tests/test-striconveha.c (main): Don't expect "autodetect_jp" to work on AIX, IRIX, HP-UX, OSF/1. * tests/uniconv/test-u16-conv-from-enc.c (main): Likewise. * tests/uniconv/test-u16-strconv-from-enc.c (main): Likewise. * tests/uniconv/test-u32-conv-from-enc.c (main): Likewise. * tests/uniconv/test-u32-strconv-from-enc.c (main): Likewise. * tests/uniconv/test-u8-conv-from-enc.c (main): Likewise. * tests/uniconv/test-u8-strconv-from-enc.c (main): Likewise. 2007-03-29 Bruno Haible * tests/test-stat-time.c: Include , not . 2007-03-29 Paul Eggert * lib/acl-internal.h (acl_get_fd, acl_set_fd): undef before defining, to work around a problem on OSF/1 5.1 reported by Bruno Haible. 2007-03-29 Eric Blake * lib/acl-internal.h: Remove redundant include. (ACL_NOT_WELL_SUPPORTED): Also filter on EBUSY, returned by Cygwin when a file is locked. 2007-03-29 Bruno Haible * lib/vasprintf.c [IN_LIBASPRINTF]: Include different specification file. * lib/asprintf.c [IN_LIBASPRINTF]: Likewise. 2007-03-29 Paul Eggert * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Don't bother to try to remove a parent directory if the child couldn't be removed (except for the first rmdir, which could fail because the child doesn't exist). Problem reported by Jeff Blaine in . 2007-03-28 Bruno Haible * lib/striconveh.c (utf8conv_carefully): New function. (mem_cd_iconveh_internal): Invoke it. 2007-03-28 Bruno Haible * lib/striconveh.c (mem_cd_iconveh_internal): Use u8_mbtoucr instead of u8_mbtouc in order to distinguish invalid and incomplete UTF-8 input. * modules/striconveh (Depends-on): Add unistr/u8-mbtoucr. Replace utf8-ucs4 with unistr/u8-mbtouc. Replace ucs4-utf8 with unistr/u8-uctomb. 2007-03-28 Bruno Haible * modules/unistr/u8-mbtoucr: New file. * lib/unistr/u8-mbtoucr.c: New file. * modules/unistr/u16-mbtoucr: New file. * lib/unistr/u16-mbtoucr.c: New file. * modules/unistr/u16-mbtoucr: New file. * lib/unistr/u16-mbtoucr.c: New file. * lib/unistr.h (u8_mbtoucr, u16_mbtoucr, u32_mbtoucr): New declarations. 2007-03-27 Simon Josefsson Bruno Haible * m4/vasprintf.m4: Convert AC_SUBST into shell variable for REPLACE_VASPRINTF. Set HAVE_VASPRINTF. Add AC_REQUIRE([gl_STDIO_H_DEFAULTS]). * m4/stdio_h.m4: Add stubs for vasprintf too. * modules/stdio: Support vasprintf in sed command. * modules/vasprintf: Depend on stdio for prototypes. Remove vasprintf.h. Add stdio module indicator. * lib/stdio_.h: Declare asprintf and vasprintf, based on vasprintf.h. * lib/vasprintf.h: File removed. * lib/asprintf.c: Use stdio.h instead of vasprintf.h. * lib/vasprintf.c: Ditto. * lib/xvasprintf.c: Ditto. * tests/test-vasprintf-posix.c: Ditto. * tests/test-vasprintf.c: Ditto. 2007-03-27 Bruno Haible Make vasnprintf multithread-safe. * lib/vasnprintf.c (decimal_point_char): New function. (VASNPRINTF): Use it. Suggested by Simon Josefsson. 2007-03-27 Eric Blake Support sub-second birthtime on cygwin. * m4/stat-time.m4 (gl_STAT_BIRTHTIME): Also check for st_birthtim. * lib/stat-time.h (STAT_TIMESPEC): Adjust comments. (get_stat_birthtime): Also work with st_birthtim. 2007-03-27 Paul Eggert * lib/stat-time.h (USE_BIRTHTIME): Remove. (get_stat_atime_ns, get_stat_ctime_ns, get_stat_mtime_ns): (get_stat_birthtime_ns): Do not try to use "spare" fields. (get_stat_birthtime_ns): Simplify compile-time tests. (get_stat_birthtime): Change the API to look like get_stat_mtime etc., except return a negative tv_nsec on error. * m4/stat-time.m4 (gl_STAT_TIME, gl_STAT_BIRTHTIME): Don't check for "spare" fields. (gl_STAT_BIRTHTIME): Don't check for struct stat.st_birthtimespec.tv_sec or for struct stat.st_birthtime, as these tests aren't used. * tests/test-stat-time.c (test_birthtime): Adjust to new API. 2007-03-27 Bruno Haible * lib/stat-time.h: Include . 2007-03-27 James Youngman * lib/stat-time.h (get_stat_birthtime): New function for retrieving st_birthtime as provided by UFS2 (hence *BSD). * m4/stat-time.m4 (gl_STAT_BIRTHTIME): Probe for st_birthtime and its variants. * modules/stat-time (configure.ac): call gl_STAT_BIRTHTIME. * modules/stat-time-test: New file. * tests/test-stat-time.c: New test, devised by Bruno Haible. 2007-03-26 Bruno Haible Better support of signalling NaNs. * lib/atanl.c: Include isnanl.h. (atanl): Perform test for NaN at the beginning of the function and through a call to isnanl. * lib/cosl.c: Include isnanl.h. (cosl): Perform test for NaN at the beginning of the function and through a call to isnanl. * lib/ldexpl.c: Include isnanl.h. (ldexpl): Perform test for NaN through a call to isnanl. * lib/logl.c: Include isnanl.h. (logl): Perform test for NaN at the beginning of the function and through a call to isnanl. * lib/sinl.c: Include isnanl.h. (sinl): Perform test for NaN at the beginning of the function and through a call to isnanl. * lib/sqrtl.c: Include isnanl.h. (sqrtl): Perform test for NaN at the beginning of the function and through a call to isnanl. * lib/tanl.c: Include isnanl.h. (tanl): Perform test for NaN at the beginning of the function and through a call to isnanl. * lib/trigl.c (ieee754_rem_pio2l): Remove test for NaN. * modules/mathl (Depends-on): Add isnanl. 2007-03-26 Eric Blake * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_A): Fix regression in logic sense of previous patch. 2007-03-26 Bruno Haible * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_A): Don't use unportable shell command "if ! ...". Reported by Ralf Wildenhues. 2007-03-25 Bruno Haible * lib/sysexit_,h: If HAVE_SYSEXITS_H is defined, include the original file, and only add EX_CONFIG. * m4/sysexits.m4 (gl_SYSEXITS): If exists, check its absolute file name and whether it is sufficient. Substitute also HAVE_SYSEXITS_H and ABSOLUTE_SYSEXITS_H. * modules/sysexits (Makefile.am): Substitute HAVE_SYSEXITS_H and ABSOLUTE_SYSEXITS_H into sysexits.h. 2007-03-25 Bruno Haible * lib/getaddrinfo.c (getaddrinfo): Don't access hints->ai_flags when hints is NULL. 2007-03-25 Bruno Haible * lib/uniconv/u8-conv-from-enc.c (u8_conv_from_encoding): Add a cast. * lib/uniconv/u8-strconv-to-enc.c (u8_strconv_to_encoding): Likewise. 2007-03-25 Bruno Haible * lib/vasnprintf.c: Include langinfo.h. (VASNPRINTF): Prefer nl_langinfo over localeconv, since it's more multithread-safe. * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF_DIRECTIVE_A): New macro. * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_POSIX): Invoke it. * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Likewise. * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise. * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise. * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise. * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_POSIX): Likewise. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX: Likewise. * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise. Reported by Simon Josefsson. 2007-03-25 Bruno Haible * lib/printf-parse.c [!IN_LIBINTL]: Include , for intmax_t. (PRINTF_PARSE): Make the support for size specifier 'j' unconditional. * modules/vasnprintf (Depends-on): Add stdint. 2007-03-25 Bruno Haible * modules/fpieee: New file. * m4/fpieee.m4: New file. * modules/isnan-nolibm (Depends-on): Add fpieee. * modules/isnanl-nolibm (Depends-on): Add fpieee. * modules/isnanl (Depends-on): Add fpieee. 2007-03-25 Bruno Haible * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): Test also finite numbers. 2007-03-25 Bruno Haible Avoid test failures on IRIX 6.5. * tests/test-frexpl.c (MIN_NORMAL_EXP): New macro. (main): Use it. * tests/test-printf-frexpl.c (MIN_NORMAL_EXP, MIN_SUBNORMAL_EXP): New macros. (main): Use them. 2007-03-25 Bruno Haible * m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS): New macro. (gl_FUNC_FREXPL): Invoke it. Set REPLACE_FREXPL to 1 if it frexpl exists but doesn't work. * lib/math_.h (frexpl): Define as a replacement macro if REPLACE_FREXPL is set. Don't provide a prototype if REPLACE_FREXPL is not set. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_FREXPL. * modules/math (Makefile.am): Substitute also REPLACE_FREXPL into math.h. 2007-03-25 Bruno Haible * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Add check whether frexp(inf) returns inf. Needed on IRIX 6.5. 2007-03-25 Bruno Haible * tests/test-frexpl.c: Include isnanl-nolibm.h. (main): Use isnanl instead of x != x idiom. * modules/frexpl-tests (Depends-on): Add isnanl-nolibm. * tests/test-frexp.c: Include isnan.h. (main): Use isnan instead of x != x idiom. * modules/frexp-tests (Depends-on): Add isnan-nolibm. 2007-03-25 Bruno Haible * tests/test-frexp.c (NaN): New function/macro. (main): Use it instead of 0.0 / 0.0. * tests/test-isnan.c (NaN): New function/macro. (main): Use it instead of 0.0 / 0.0. * tests/test-vasnprintf-posix.c (NaN): New function/macro. (test_function): Use it instead of 0.0 / 0.0. * tests/test-vasprintf-posix.c (NaN): New function/macro. (test_function): Use it instead of 0.0 / 0.0. * tests/test-snprintf-posix.h (NaN): New function/macro. (test_function): Use it instead of 0.0 / 0.0. * tests/test-sprintf-posix.h (NaN): New function/macro. (test_function): Use it instead of 0.0 / 0.0. * tests/test-fprintf-posix.h (NaN): New function/macro. (test_function): Use it instead of 0.0 / 0.0. * tests/test-printf-posix.h (NaN): New function/macro. (test_function): Use it instead of 0.0 / 0.0. * lib/isnan.c (FUNC): Work around a DEC C compiler bug. 2007-03-25 Bruno Haible * lib/glob_.h: Include . Avoids warnings on AIX 5.1. 2007-03-25 Bruno Haible * lib/regexec.c (merge_state_with_log): Make static. 2007-03-25 Bruno Haible * lib/trigl.c (kernel_rem_pio2): Make static. 2007-03-25 Bruno Haible * lib/sincosl.c (sincosl_table): Make static. 2007-03-25 Bruno Haible * lib/argp.h (__restrict): Define to empty, rather than to 'restrict', if the compiler does not support C99. 2007-03-25 Bruno Haible * modules/time (Makefile.am): Ensure all rule action lines start with a tab. 2007-03-24 Bruno Haible * modules/tsearch-tests: New file. * tests/test-tsearch.sh: New file. * tests/test-tsearch.c: New file, mostly copied from glibc. * modules/search-tests: New file. * tests/test-search.c: New file. * modules/search: New file. * lib/search_.h: New file, incorporating lib/tsearch.h. * m4/search_h.m4: New file. * lib/tsearch.h: Remove file. * lib/tsearch.c: Include search.h instead of tsearch.h. * m4/tsearch.m4 (gl_FUNC_TSEARCH): Require gl_SEARCH_H_DEFAULTS. Set HAVE_TSEARCH. * modules/tsearch (Files): Remove lib/tsearch.h. (Depends-on): Add search. (configure.ac): Invoke gl_SEARCH_MODULE_INDICATOR. (Include): Change tsearch.h into search.h. 2007-03-24 Bruno Haible * modules/fpucw: New file. * lib/fpucw.h: New file. * lib/frexp.c: Include fpucw.h. (DECL_ROUNDING, BEGIN_ROUNDING, END_ROUNDING): New macros. (FUNC): Use them. * lib/printf-frexp.c: Include fpucw.h. (DECL_ROUNDING, BEGIN_ROUNDING, END_ROUNDING): New macros. (FUNC): Use them. * lib/vasnprintf.c: Include fpucw.h. (VASNPRINTF): Invoke BEGIN/END_LONG_DOUBLE_ROUNDING around the 'long double' calculations. * tests/test-frexpl.c: Include fpucw.h. (main): Invoke BEGIN_LONG_DOUBLE_ROUNDING. * tests/test-printf-frexpl.c: Include fpucw.h. (main): Invoke BEGIN_LONG_DOUBLE_ROUNDING. * modules/frexpl (Depends-on): Add fpucw. * modules/printf-frexpl (Depends-on): Likewise. * modules/fprintf-posix (Depends-on): Likewise. * modules/snprintf-posix (Depends-on): Likewise. * modules/sprintf-posix (Depends-on): Likewise. * modules/vasnprintf-posix (Depends-on): Likewise. * modules/vasprintf-posix (Depends-on): Likewise. * modules/vfprintf-posix (Depends-on): Likewise. * modules/vsnprintf-posix (Depends-on): Likewise. * modules/vsprintf-posix (Depends-on): Likewise. * modules/frexpl-tests (Depends-on): Likewise. * modules/printf-frexpl-tests (Depends-on): Likewise. 2007-03-24 Bruno Haible * lib/float+.h: New file. * lib/isnan.c: Include float+.h. (SIZE): New macro. (FUNC): Compare only SIZE bytes of the value. * lib/vasnprintf.c: Include float+.h. (VASNPRINTF): When comparing against +0.0L or +0.0, compare only SIZEOF_LDBL or SIZEOF_DBL bytes. * modules/isnan-nolibm (Files): Add lib/float+.h. * modules/isnanl-nolibm (Files): Add lib/float+.h. * modules/isnanl (Files): Add lib/float+.h. * modules/vasnprintf (Files): Add lib/float+.h. 2007-03-24 Bruno Haible * lib/vasnprintf.c [!HAVE_LONG_DOUBLE]: Include printf-frexp.h. Don't include isnanl-nolibm.h. 2007-03-24 Bruno Haible * tests/test-read-file.c (main): Don't produce spurious output for expected situations. Make the test fail if it encountered unexpected results. 2007-03-24 Bruno Haible * m4/locale-fr.m4 (gt_LOCALE_FR): Remove the special-casing of NetBSD, since its fr_FR.ISO8859-1 locale wouldn't pass the tests. 2007-03-24 Bruno Haible * m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): Fix last change. 2007-03-24 Bruno Haible * modules/unistr/base (Depends-on): Remove utf8-ucs4-unsafe, utf16-ucs4-unsafe, utf8-ucs4, utf16-ucs4, ucs4-utf8, ucs4-utf16. * modules/unistr/u8-mbtouc: Add source files from module utf8-ucs4. * modules/utf8-ucs4: Turn into a symbolic link to module unistr/u8-mbtouc. * modules/unistr/u8-mbtouc-unsafe: Add source files from module utf8-ucs4-unsafe. * modules/utf8-ucs4-unsafe: Turn into a symbolic link to module unistr/u8-mbtouc-unsafe. * modules/unistr/u16-mbtouc: Add source files from module utf16-ucs4. * modules/utf16-ucs4: Turn into a symbolic link to module unistr/u16-mbtouc. * modules/unistr/u16-mbtouc-unsafe: Add source files from module utf16-ucs4-unsafe. * modules/utf16-ucs4-unsafe: Turn into a symbolic link to module unistr/u16-mbtouc-unsafe. * modules/unistr/u8-uctomb: Add source files from module utf4-utf8. * modules/ucs4-utf8: Turn into a symbolic link to module unistr/u8-ubtomb. * modules/unistr/u16-uctomb: Add source files from module utf4-utf16. * modules/ucs4-utf16: Turn into a symbolic link to module unistr/u16-ubtomb. 2007-03-24 Bruno Haible * lib/unistr/u8-mbtouc-aux.c: Renamed from lib/unistr/utf8-ucs4.c. Enable the function only if HAVE_INLINE. * lib/unistr/u8-mbtouc-unsafe-aux.c: Renamed from lib/unistr/utf8-ucs4-unsafe.c. Enable the function only if HAVE_INLINE. * lib/unistr/u16-mbtouc-aux.c: Renamed from lib/unistr/utf16-ucs4.c. Enable the function only if HAVE_INLINE. * lib/unistr/u16-mbtouc-unsafe-aux.c: Renamed from lib/unistr/utf16-ucs4-unsafe.c. Enable the function only if HAVE_INLINE. * lib/unistr/u8-uctomb-aux.c: Renamed from lib/unistr/ucs4-utf8.c. Enable the function only if HAVE_INLINE. * lib/unistr/u16-uctomb-aux.c: Renamed from lib/unistr/ucs4-utf16.c. Enable the function only if HAVE_INLINE. * modules/utf8-ucs4: Update. * modules/utf8-ucs4-unsafe: Update. * modules/utf16-ucs4: Update. * modules/utf16-ucs4-unsafe: Update. * modules/ucs4-utf8: Update. * modules/ucs4-utf16: Update. 2007-03-24 Bruno Haible * lib/utf8-ucs4.h: Remove file. * lib/utf8-ucs4-unsafe.h: Remove file. * lib/utf16-ucs4.h: Remove file. * lib/utf16-ucs4-unsafe.h: Remove file. * lib/ucs4-utf8.h: Remove file. * lib/ucs4-utf16.h: Remove file. * lib/unistr.h: Include their previous contents. * m4/utf-ucs4.m4: Remove file. * m4/ucs4-utf.m4: Remove file. * modules/utf8-ucs4 (Files): Remove lib/utf8-ucs4.h. (Depends-on): Add unistr/base. (configure.ac): Remove gl_UTF_UCS4. (Makefile.am): Update. (Include): Change to unistr.h. * modules/utf8-ucs4-unsafe (Files): Remove lib/utf8-ucs4-unsafe.h. (Depends-on): Add unistr/base. (configure.ac): Remove gl_UTF_UCS4. (Makefile.am): Update. (Include): Change to unistr.h. * modules/utf16-ucs4 (Files): Remove lib/utf16-ucs4.h. (Depends-on): Add unistr/base. (configure.ac): Remove gl_UTF_UCS4. (Makefile.am): Update. (Include): Change to unistr.h. * modules/utf16-ucs4-unsafe (Files): Remove lib/utf16-ucs4-unsafe.h. (Depends-on): Add unistr/base. (configure.ac): Remove gl_UTF_UCS4. (Makefile.am): Update. (Include): Change to unistr.h. * modules/ucs4-utf8 (Files): Remove lib/ucs4-utf8.h. (Depends-on): Add unistr/base. (configure.ac): Remove gl_UCS4_UTF. (Makefile.am): Update. (Include): Change to unistr.h. * modules/ucs4-utf16 (Files): Remove lib/ucs4-utf16.h. (Depends-on): Add unistr/base. (configure.ac): Remove gl_UCS4_UTF. (Makefile.am): Update. (Include): Change to unistr.h. * lib/unistr/utf8-ucs4.c: Include unistr.h instead of utf8-ucs4.h. * lib/unistr/utf8-ucs4-unsafe.c: Include unistr.h instead of utf8-ucs4-unsafe.h. * lib/unistr/utf16-ucs4.c: Include unistr.h instead of utf16-ucs4.h. * lib/unistr/utf16-ucs4-unsafe.c: Include unistr.h instead of utf16-ucs4-unsafe.h. * lib/unistr/ucs4-utf8.c: Include unistr.h instead of ucs4-utf8.h. * lib/unistr/ucs4-utf16.c: Include unistr.h instead of ucs4-utf16.h. * lib/unistr/u8-chr.c: Don't include ucs4-utf8.h. * lib/unistr/u8-strchr.c: Likewise. * lib/unistr/u8-strrchr.c: Likewise. * lib/unistr/u16-chr.c: Don't include ucs4-utf16.h. * lib/unistr/u16-strchr.c: Likewise. * lib/unistr/u16-strrchr.c: Likewise. * lib/striconveh.c: Update. * lib/linebreak.c: Update. 2007-03-24 Bruno Haible * lib/argp-help.c (fill_in_uparams, canon_doc_option): Cast the arguments of isspace, isalpha, isalnum, isdigit to 'unsigned char'. 2007-03-22 Bruno Haible * lib/strptime.c (__strptime_internal): Use ANSI C syntax. 2007-03-23 Paul Eggert * MODULES.html.sh (File system functions): New module write-any-file. * modules/write-any-file, lib/write-any-file.c, lib/write-any-file.h: * m4/write-any-file.m4: New files. 2007-03-23 Eric Blake * gnulib-tool: Rearrange space-tab sequences, since some editors like to eat them. 2007-03-23 Eric Blake * lib/version-etc.c (version_etc_va): Update license wording to be more concise. Recommended by Richard Stallman. 2007-03-22 Bruno Haible * lib/poll.c (MSG_PEEK): New fallback definition. 2007-03-22 Bruno Haible * modules/sys_socket-tests (configure.ac): Check for shutdown function. * tests/test-sys_socket.c (a): Test only if shutdown() exists. (main): Update. Fixes a compilation error on BeOS. 2007-03-22 Bruno Haible * modules/frexpl-tests: New file. * tests/test-frexpl.c: New file. * modules/frexpl: New file. * m4/frexpl.m4: New file. * modules/math (Makefile.am): Also substitute GNULIB_FREXPL into math.h. * lib/math_.h (frexpl): Test GNULIB_FREXPL instead of GNULIB_MATHL. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_FREXPL. * modules/mathl (Files): Remove lib/frexpl.c, lib/frexp.c. (Depends-on): Add frexpl. Remove isnanl-nolibm. * m4/mathl.m4 (gl_FUNC_LONG_DOUBLE_MATH): Don't test for frexpl. 2007-03-22 Bruno Haible * lib/frexpl.c: Share code with lib/frexp.c. * modules/mathl (Files): Add lib/frexp.c. (Depends-on): Add isnanl-nolibm. 2007-03-22 Bruno Haible * modules/printf-frexp (Files): Add m4/frexp.m4. * m4/printf-frexp.m4 (gl_FUNC_PRINTF_FREXP): Define HAVE_FREXP_IN_LIBC only if the found frexp function actually works. 2007-03-22 Bruno Haible * lib/frexp.c: Remove older implementation that uses divisions. 2007-03-21 Bruno Haible * modules/frexp-tests: New file. * tests/test-frexp.c: New file. * modules/frexp: New file. * lib/frexp.c: New file. * m4/frexp.m4: New file. * lib/math_.h (frexp): New declaration. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Also initialize GNULIB_FREXP and REPLACE_FREXP. * modules/math (math.h): Also substitute GNULIB_FREXP, REPLACE_FREXP. 2007-03-21 Bruno Haible * modules/isnanl-tests: New file. * tests/test-isnanl.c: New file. * modules/isnanl: New file. * lib/isnanl.h: New file. * m4/isnanl.m4 (gl_FUNC_ISNANL): New macro. (gl_FUNC_ISNANL_NO_LIBM): Invoke gl_HAVE_ISNANL_NO_LIBM, gl_FUNC_ISNANL_WORKS. (gl_HAVE_ISNANL_NO_LIBM, gl_HAVE_ISNANL_IN_LIBM, gl_FUNC_ISNANL_WORKS): New macros. 2007-03-21 Bruno Haible * modules/isnanl-nolibm (Files): Add lib/isnanl-nolibm.h, remove lib/isnanl.h. (Include): Update. * lib/isnanl-nolibm.h: Renamed from lib/isnanl.h. * lib/vasnprintf.c: Update. * modules/isnanl-nolibm-tests (Files): Add tests/test-isnanl-nolibm.c, tests/test-isnanl.h, remove tests/test-isnanl.c. (Makefile.am): Update. * tests/test-isnanl-nolibm.c: New file. * tests/test-isnanl.h: New file. * tests/test-isnanl.c: Remove file. 2007-03-21 Jim Meyering When trying to open ".", treat ESTALE like EACCES. * lib/savewd.c (savewd_save): Resort to forking not just upon failure with EACCES, but also when errno is ESTALE. 2007-03-20 Bruno Haible * lib/string_.h (strndup): Enable declaration also if HAVE_STRNDUP. Needed on AIX 5.1. Reported by Matthew Woehlke. 2007-03-19 Paul Eggert Suggestions by Bruno Haible: * lib/acl-internal.h: Include "gettext.h" rather than rolling our own. (ACL_NOT_WELL_SUPPORTED): Parenthesize arg when used. * modules/acl (Depends-on): Add gettext. 2007-03-19 Bruno Haible * modules/iconvme: Remove file. * lib/iconvme.h: Remove file. * lib/iconvme.c: Remove file. * m4/iconvme.m4: Remove file. 2007-03-19 Bruno Haible * doc/relocatable-maint.texi: Break long shell script line. Suggested by Thien-Thi Nguyen . 2007-03-19 Paul Eggert Add limited support for Solaris 10 ZFS-style ACLs: just enough to handle file_has_acl. * lib/acl-internal.h, lib/acl_entries.c, lib/file-has-acl.c: New files. * lib/acl.c: Move header inclusions and related macro defns into lib/acl-internal.h. (S_ISLNK): Remove defn, since that's now done for us. (file_has_acl): Move to lib/file-has-acl.c. Call acl_trivial if available. This is the crucial part of the fix. (acl_entries): Move to lib/acl_entries.c. Now extern, since it's shared within the library. Rewrite a bit, partly to make it compatible with the GNU coding style. * m4/acl.m4 (AC_FUNC_ACL): Add AC_LIBOBJ([file-has-acl]). Remove unnecessary double-quotes. Don't test for acl_to_text; the build will catch that. Replace acl_entries if it doesn't exist and it is needed. Check for -lsec and acl_trivial (as used on Solaris 10). * modules/acl (Files): Add lib/acl-internal.h, lib/acl_entries.c, lib/file-has-acl.c. (Depends-on): Add sys_stat, for S_ISLNK. 2007-03-19 Ben Pfaff * doc/gnulib.texi: Fix typos. Suggested by Thien-Thi Nguyen . 2007-03-19 Paul Eggert * lib/getcwd.c (__getcwd): Remove redundant comparison of buf to NULL. If size is zero here, buf must be zero. 2007-03-19 Simon Josefsson * des.c: Remove weak_keys_chksum. Reported by Bruno Haible . 2007-03-18 Bruno Haible * lib/vasnprintf.c (VASNPRINTF): Undo first part of last patch. Suggested by Eric Blake. 2007-03-18 Ben Pfaff * doc/relocatable.texi: Recommend using as prefix a directory that does not exist and will never be created. Based on discussion with Bruno Haible, Ralf Wildenhues, Matthew Woehlke, and others. 2007-03-17 Bruno Haible * lib/fchownat.c: Include lchown.h. 2007-03-17 Bruno Haible Fix endless loop when the given allocated size was > INT_MAX. * lib/vasnprintf.c (EOVERFLOW): New fallback definition. (VASNPRINTF): Fail with EOVERFLOW when the given allocated size is larger than INT_MAX, or when it grow to a value larger than INT_MAX. * lib/vsprintf.c (vsprintf): Don't pass a size > INT_MAX to vasnprintf. * lib/sprintf.c (sprintf): Likewise. 2007-03-17 Bruno Haible * tests/test-argp-2.sh (func_compare): Output a context diff. 2007-03-17 Bruno Haible * m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): Check also the locale's decimal-point character. 2007-03-17 Bruno Haible * lib/vasnprintf.c (VASNPRINTF): Clear out the memory used for arg_mem before comparing it. Needed because on some platforms (e.g. x86) a 'long double' occupies less bytes than sizeof (long double). 2007-03-17 Bruno Haible * tests/test-crc.c (main): Make printf statements 64-bit clean. * tests/test-gc-pbkdf2-sha1.c (main): Likewise. * tests/test-getaddrinfo.c (simple): Likewise. * tests/test-read-file.c (main): Likewise. 2007-03-17 Bruno Haible * tests/test-dirname.c (main): Make printf statements 64-bit clean. 2007-03-17 Bruno Haible * tests/test-xvasprintf.c (test_xvasprintf, test_xasprintf): Remove unused variable. 2007-03-17 Bruno Haible * tests/test-c-strcasecmp.c: Include c-strcase.h. * tests/test-c-strncasecmp.c: Likewise. 2007-03-17 Bruno Haible * modules/stdlib (Depends-on): Add unistd. * lib/stdlib_.h: Include if mkstemp is desired. Needed for MacOS X 10.3. 2007-03-17 Bruno Haible * lib/unistr/u-strdup.h: Include . 2007-03-17 Bruno Haible * lib/unistr/u-cpy-alloc.h: Include . 2007-03-17 Bruno Haible * gnulib-tool (func_import): Update .cvsignore and .gitignore files to reflect files copied from gnulib (with or without modifications). Suggested by Jim Meyering. 2007-03-17 Eric Blake * NEWS: Document stdlib change from 2007-02-18. 2007-03-17 Jim Meyering Detect use of AC_CONFIG_AUX_DIR also when its argument is quoted. * build-aux/bootstrap: Put ""s around use of $build_aux, in case someone uses a name containing shell meta-characters. Reported by Alfred M. Szmidt. * build-aux/bootstrap: Don't use \> in grep regexp. For HP-UX. 2007-03-16 Alfred M. Szmidt * build-aux/bootstrap (with_gettext): New variable. Run autopoint and copy gettext configuration files only if configure.ac contains a use of AM_GNU_GETTEXT_VERSION. 2007-03-16 Alfred M. Szmidt * build-aux/bootstrap (gnulib_name): New variable. (gnulib_tool_options): Use it. 2007-03-13 Simon Josefsson * tests/test-des.c: Use new namespace. 2007-03-15 Bruno Haible * lib/dummy.c (gl_dummy_symbol): Renamed from 'dummy'. Reported by James Youngman . 2007-03-15 Bruno Haible * lib/glob.c (glob): Add 'restrict' so that prototype matches the declared prototype. Needed with cc on OSF/1 5.1. 2007-03-15 Bruno Haible * lib/gl_list.h (gl_listelement_dispose_fn): New type. (gl_list_create_empty, gl_list_create): Add dispose_fn argument. (struct gl_list_implementation): Add dispose_fn argument to the 'create_empty', 'create' methods. (struct gl_list_impl_base): Add field 'dispose_fn'. * lib/gl_list.c (gl_list_create_empty, gl_list_create): Add dispose_fn argument. * lib/gl_array_list.c (gl_array_create_empty, gl_array_create): Add dispose_fn argument. (gl_array_remove_node, gl_array_remove_at, gl_array_list_free): Call dispose_fn on the dropped values. * lib/gl_carray_list.c (gl_carray_create_empty, gl_carray_create): Add dispose_fn argument. (gl_carray_remove_at, gl_carray_list_free): Call dispose_fn on the dropped values. * lib/gl_anyavltree_list2.h (gl_tree_create): Add dispose_fn argument. (gl_tree_remove_node): Call dispose_fn on the dropped value. * lib/gl_anyrbtree_list2.h (gl_tree_create): Add dispose_fn argument. (gl_tree_remove_node): Call dispose_fn on the dropped value. * lib/gl_anytree_list2.h (gl_tree_create_empty): Add dispose_fn argument. (gl_tree_list_free): Call dispose_fn on the dropped values. * lib/gl_anytreehash_list2.h (gl_tree_list_free): Call dispose_fn on the dropped values. * lib/gl_anylinked_list2.h (gl_linked_create_empty, gl_linked_create): Add dispose_fn argument. (gl_linked_remove_node, gl_linked_remove_at, gl_linked_list_free): Call dispose_fn on the dropped values. * lib/gl_sublist.c (gl_sublist_create_empty, gl_sublist_create_fill): Add dispose_fn argument. (gl_sublist_create): Initialize the 'dispose_fn' field. * lib/clean-temp.c (create_temp_dir, register_fd): Update. * tests/test-array_list.c (main): Update. * tests/test-carray_list.c (main): Update. * tests/test-avltree_list.c (main): Update. * tests/test-rbtree_list.c (main): Update. * tests/test-avltreehash_list.c (main): Update. * tests/test-rbtreehash_list.c (main): Update. * tests/test-linked_list.c (main): Update. * tests/test-linkedhash_list.c (main): Update. * tests/test-array_oset.c (main): Update. 2007-03-15 Bruno Haible * lib/gl_oset.h (gl_setelement_dispose_fn): New type. (gl_oset_create_empty): Add dispose_fn argument. (struct gl_oset_implementation): Add dispose_fn argument to 'create_empty' method. (struct gl_oset_impl_base): Add dispose_fn field. * lib/gl_oset.c (gl_oset_create_empty): Add dispose_fn argument. * lib/gl_array_oset.c (gl_array_create_empty): Add dispose_fn argument. (gl_array_remove_at, gl_array_free): Call dispose_fn on the dropped values. * lib/gl_anytree_oset.h (gl_tree_create_empty): Add dispose_fn argument. (gl_tree_oset_free): Call dispose_fn on the dropped values. * lib/gl_avltree_oset.c (gl_tree_remove_node): Call dispose_fn on the dropped value. * lib/gl_rbtree_oset.c (gl_tree_remove_node): Call dispose_fn on the dropped value. * tests/test-array_oset.c (main): Update. * tests/test-avltree_oset.c (main): Update. * tests/test-rbtree_oset.c (main): Update. * lib/gl_anytreehash_list1.h (add_to_bucket): Update. 2007-03-13 Bruno Haible * tests/test-stdbool.c (i): Update after last patch. 2007-03-12 Bruno Haible * lib/quotearg.c: Include early, before the definition of the iswprint macro. Needed on Solaris 2.5.1. 2007-03-12 Bruno Haible * tests/test-printf-frexp.c (main): Declare x as volatile. 2007-03-12 Simon Josefsson * doc/gnulib.texi (Build robot for gnulib): New section. 2007-03-12 Jim Meyering * build-aux/bootstrap: New file. * build-aux/bootstrap.conf: New file, from coreutils. 2007-03-11 Bruno Haible * m4/cycle-check.m4 (gl_CYCLE_CHECK): Require AC_C_INLINE. 2007-03-12 Simon Josefsson * lib/des.h, lib/des.c, lib/gc-gnulib.c: Use gl_ namespace, to avoid collisions with 'des_setkey'. Reported by Bruno Haible . Also change 'tripledes_' to '3des_'. 2007-03-11 Bruno Haible * m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): If the test program fails to compile, set LOCALE_TR_UTF8 to 'none' instead of empty. 2007-03-11 Bruno Haible * lib/stdint_.h (INT64_MIN, INTMAX_MIN): Avoid using the ~INT..._MAX formula. Needed for SunPRO C 5.0. 2007-03-11 Bruno Haible * modules/long-options (Depends-on): Add getopt. 2007-03-11 Bruno Haible * modules/modechange (Depends-on): Add stdbool. 2007-03-11 Bruno Haible * modules/i-ring (Depends-on): Add stdbool. 2007-03-11 Bruno Haible * modules/gc-des (Depends-on): Add stdbool. 2007-03-11 Bruno Haible * m4/mktime.m4 (gl_PREREQ_MKTIME): Require AC_C_INLINE. 2007-03-11 Bruno Haible * m4/mempcpy.m4 (gl_FUNC_MEMPCPY): Require AC_C_RESTRICT. 2007-03-11 Bruno Haible * lib/unistr/u32-mbtouc-unsafe.c (u32_mbtouc_unsafe): Fix syntax error. 2007-03-11 Bruno Haible * lib/vasnprintf.c (sprintf): Undefine. 2007-03-11 Bruno Haible * lib/isnan.c (rpl_isnan, rpl_isnanl): Work around bug regarding initializers in SunPRO C and Compaq C compilers. 2007-03-11 Bruno Haible * lib/gl_array_oset.c (gl_array_iterator_next): Make pointer decrementing code ANSI C compliant. 2007-03-11 Bruno Haible * lib/dummy.c [__sun]: Define a dummy variable, not just a typedef. Needed for Solaris 2.5.1 ranlib and SunPRO C 5.0. 2007-03-11 Bruno Haible * tests/test-stdbool.c (s, d, e, xlcbug): Disable checks that gnulib's substitute doesn't pass. 2007-03-11 Bruno Haible * lib/vasnprintf.c (snprintf): Undefine. Avoids an endless recursion. 2007-03-11 Bruno Haible * gnulib-tool (func_create_megatestdir): Create also an autobuild script, for submission to autobuild.josefsson.org. 2007-03-10 Bruno Haible * modules/canonicalize-lgpl-tests: New file. * tests/test-canonicalize-lgpl.sh: New file. * tests/test-canonicalize-lgpl.c: New file. * modules/c-strcase-tests: New file. * tests/test-c-strcase.sh: New file. * tests/test-c-strcasecmp.c: New file. * tests/test-c-strncasecmp.c: New file. * modules/atexit-tests: New file. * tests/test-atexit.sh: New file. * tests/test-atexit.c: New file. 2007-03-10 Bruno Haible * tests/test-binary-io.sh: Use temporary filenames that are not so likely to clash with those of other tests (in a parallel make). * tests/test-binary-io.c: Likewise. 2007-03-10 Bruno Haible * lib/fseterr.c (fseterr): Port to Solaris/SPARC64. Deactivate the fallback; use #error instead. Suggested by Simon Josefsson. 2007-03-10 Bruno Haible * gnulib-tool (func_create_testdir): Treat MOSTLYCLEANFILES like CLEANFILES. Put spaces in each line of $cleaned_files, not only the first and the last. 2007-03-10 Bruno Haible * lib/stdint_.h (uint_least64_t): Fix typo in last patch. 2007-03-10 Bruno Haible * modules/snprintf-posix-tests (EXTRA_DIST): New variable. Needed for "make distcheck". * modules/sprintf-posix-tests (EXTRA_DIST): Likewise. * modules/vsnprintf-posix-tests (EXTRA_DIST): Likewise. * modules/vsprintf-posix-tests (EXTRA_DIST): Likewise. 2007-03-10 Bruno Haible * modules/allocsa-tests (test_allocsa_SOURCES): Remove redundant variable. * modules/dirname-tests (test_dirname_SOURCES): Remove redundant variable. 2007-03-09 Eric Blake and Matthew Woehlke (tiny change) * lib/stdint_.h (int64_t, uint64_t): Don't undefine if 64-bit types are not being provided by gnulib. (GL_INT64_T, GL_UINT64_T): New witnesses of whether gnulib 64-bit types are supported. 2007-03-10 Bruno Haible * lib/stdio_.h (__attribute__): New macro. (fprintf, vfprintf, printf, vprintf, snprintf, vsnprintf, sprintf, vsprintf): Specify __attribute__ __format__ for GCC. Suggested by Eric Blake. 2007-03-09 Bruno Haible * modules/printf-posix-tests: New file. * tests/test-printf-posix.sh: New file. * tests/test-printf-posix.c: New file. * modules/printf-posix: New file. * lib/printf.c: New file. * m4/printf-posix-rpl.m4: New file. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_PRINTF_POSIX, REPLACE_PRINTF. * lib/stdio_.h (printf): New declaration. (format, __format__, ____printf____, ____scanf____, ____strftime____, ____strfmon____): New macros. * modules/stdio (Makefile.am): Substitute also GNULIB_PRINTF_POSIX, REPLACE_PRINTF. 2007-03-09 Bruno Haible * tests/test-vasnprintf-posix2.sh: New file. * tests/test-vasnprintf-posix2.c: New file. * modules/vasnprintf-posix-tests (Files): Add them and m4/locale-fr.m4. (configure.ac): Invoke gt_LOCALE_FR and gt_LOCALE_FR_UTF8. (Makefile.am): Activate test-vasnprintf-posix2.sh. * lib/vasnprintf.c (VASNPRINTF): For the 'a' and 'A' directives, use a locale dependent decimal point, rather than always '.'. 2007-03-09 Eric Blake * lib/stdlib_.h (EXIT_FAILURE): GNU code expects this to be 1, in spite of platforms like Tandem/NSK that define it to -1. 2007-03-08 Bruno Haible * modules/vprintf-posix-tests: New file. * tests/test-vprintf-posix.sh: New file. * tests/test-vprintf-posix.c: New file. * tests/test-printf-posix.h: New file. * modules/vprintf-posix: New file. * lib/vprintf.c: New file. * m4/vprintf-posix.m4: New file. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_VPRINTF_POSIX, REPLACE_VPRINTF. * lib/stdio_.h (vprintf): New declaration. * modules/stdio (Makefile.am): Substitute also GNULIB_VPRINTF_POSIX, REPLACE_VPRINTF. 2007-03-08 Bruno Haible * modules/fprintf-posix-tests: New file. * tests/test-fprintf-posix.sh: New file. * tests/test-fprintf-posix.c: New file. * modules/fprintf-posix: New file. * lib/fprintf.c: New file. * m4/fprintf-posix.m4: New file. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_FPRINTF_POSIX, REPLACE_FPRINTF. * lib/stdio_.h (fprintf): New declaration. * modules/stdio (Makefile.am): Substitute also GNULIB_FPRINTF_POSIX, REPLACE_FPRINTF. 2007-03-08 Bruno Haible * modules/vfprintf-posix-tests: New file. * tests/test-vfprintf-posix.sh: New file. * tests/test-vfprintf-posix.c: New file. * tests/test-fprintf-posix.h: New file. * tests/test-fprintf-posix.out: New file. * modules/vfprintf-posix: New file. * lib/vfprintf.c: New file. * m4/vfprintf-posix.m4: New file. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_VFPRINTF_POSIX, REPLACE_VFPRINTF. * lib/stdio_.h (vfprintf): New declaration. * modules/stdio (Makefile.am): Substitute also GNULIB_VFPRINTF_POSIX, REPLACE_VFPRINTF. 2007-03-08 Bruno Haible * lib/stdio_.h: Treat __need___FILE like __need_FILE. 2007-03-08 Bruno Haible * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_POSIX): Use 'case' statements instead of 'expr' invocations. * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_POSIX): Likewise. * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Likewise. * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): Likewise. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_POSIX): Likewise. * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_POSIX): Likewise. Suggested by Paul Eggert. 2007-03-08 Bruno Haible * modules/fseterr-tests: New file. * tests/test-fseterr.c: New file. * modules/fseterr: New file. * lib/fseterr.h: New file. * lib/fseterr.c: New file. 2007-03-08 Bruno Haible * lib/fnmatch_.h: Convert tabs in the middle of lines to spaces. * lib/getopt_.h: Likewise. * lib/mbswidth.h: Likewise. * lib/setenv.h: Likewise. * lib/vasnprintf.h: Likewise. * lib/vasprintf.h: Likewise. * lib/verror.h: Likewise. * lib/xsetenv.h: Likewise. * lib/xvasprintf.h: Likewise. 2007-03-08 Jim Meyering * users.txt: Add parted. * ChangeLog: Restore 1500 lines mistakenly removed from the end. 2007-03-07 Bruno Haible * m4/printf.m4: Make the shell script snippets copy&pastable. 2007-03-02 Bruno Haible * lib/netinet_in_.h: New file. * m4/netinet_in_h.m4 (gl_HEADER_NETINET_IN): Test whether netinet/in.h is self-contained. Set ABSOLUTE_NETINET_IN_H, HAVE_NETINET_IN_H. * modules/netinet_in (Files): Add lib/netinet_in_.h. (Depends-on): Add absolute-header. (Makefile.am): Substitute ABSOLUTE_NETINET_IN_H, HAVE_NETINET_IN_H into netinet/in.h. 2007-03-03 Bruno Haible * lib/sys_select_.h: New file. * m4/sys_socket_h.m4 (gl_HEADER_SYS_SELECT): Test whether sys/select.h is self-contained. Set ABSOLUTE_SYS_SELECT_H, HAVE_SYS_SELECT_H. * modules/sys_select (Files): Add lib/sys_select_.h. (Depends-on): Add absolute-header. (Makefile.am): Substitute ABSOLUTE_SYS_SELECT_H, HAVE_SYS_SELECT_H into sys/select.h. 2007-03-02 Bruno Haible * lib/socket_.h: If sys/socket.h exists, include that and before it. Turn HAVE_WINSOCK2_H and HAVE_WS2TCPIP_H into configute-time values. * m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Test also whether is self-contained. Set ABSOLUTE_SYS_SOCKET_H, HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H, HAVE_WS2TCPIP_H. * modules/sys_socket (Depends-on): Add absolute-header. (Makefile.am): Substitute ABSOLUTE_SYS_SOCKET_H, HAVE_SYS_SOCKET_H, HAVE_WINSOCK2_H, HAVE_WS2TCPIP_H into sys/socket.h. (Include): Remove requirement of inclusion of . 2007-03-02 Bruno Haible * lib/byteswap_.h (bswap_32): Fix formula. 2007-03-06 Bruno Haible * modules/sprintf-posix-tests: New file. * tests/test-sprintf-posix.c: New file. * modules/sprintf-posix: New file. * lib/sprintf.c: New file. * m4/sprintf-posix.m4: New file. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_SPRINTF_POSIX, REPLACE_SPRINTF. * lib/stdio_.h (sprintf): New declaration. * modules/stdio (Makefile.am): Substitute also GNULIB_SPRINTF_POSIX, REPLACE_SPRINTF. 2007-03-06 Bruno Haible * modules/vsprintf-posix-tests: New file. * tests/test-vsprintf-posix.c: New file. * tests/test-sprintf-posix.h: New file. * modules/vsprintf-posix: New file. * lib/vsprintf.c: New file. * m4/vsprintf-posix.m4: New file. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also GNULIB_VSPRINTF_POSIX, REPLACE_VSPRINTF. * lib/stdio_.h (vsprintf): New declaration. * modules/stdio (Makefile.am): Substitute also GNULIB_VSPRINTF_POSIX, REPLACE_VSPRINTF. 2007-03-06 Bruno Haible * modules/vsnprintf (Depend-on): Remove minmax. 2007-03-06 Bruno Haible * modules/snprintf-posix-tests: New file. * tests/test-snprintf-posix.c: New file. * modules/snprintf-posix: New file. * m4/snprintf-posix.m4: New file. * m4/snprintf.m4 (gl_REPLACE_SNPRINTF): New macro, extracted from gl_FUNC_SNPRINTF. (gl_FUNC_SNPRINTF): Invoke it. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also REPLACE_SNPRINTF. * lib/stdio_.h (snprintf): Define as a replacement if REPLACE_SNPRINTF is set. * modules/stdio (Makefile.am): Substitute also REPLACE_SNPRINTF. 2007-03-06 Bruno Haible * modules/vsnprintf-posix-tests: New file. * tests/test-vsnprintf-posix.c: New file. * tests/test-snprintf-posix.h: New file. * modules/vsnprintf-posix: New file. * m4/vsnprintf-posix.m4: New file. * m4/vsnprintf.m4 (gl_REPLACE_VSNPRINTF): New macro, extracted from gl_FUNC_VSNPRINTF. (gl_FUNC_VSNPRINTF): Invoke it. * m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Set also REPLACE_VSNPRINTF. * lib/stdio_.h (vsnprintf): Define as a replacement if REPLACE_VSNPRINTF is set. * modules/stdio (Makefile.am): Substitute also REPLACE_VSNPRINTF. 2007-03-06 Bruno Haible * m4/vasnprintf.m4 (gl_REPLACE_VASNPRINTF): Test for vasnprintf here. * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_POSIX): ... not here. 2007-03-06 Bruno Haible * lib/math_.h (acosl): Declare also if HAVE_DECL_ACOSL is set. (asinl): Declare also if HAVE_DECL_ASINL is set. (atanl): Declare also if HAVE_DECL_ATANL is set. (ceill): Declare also if HAVE_DECL_CEILL is set. (cosl): Declare also if HAVE_DECL_COSL is set. (expl): Declare also if HAVE_DECL_EXPL is set. (floorl): Declare also if HAVE_DECL_FLOORL is set. (frexpl): Declare also if HAVE_DECL_FREXPL is set. (ldexpl): Declare also if HAVE_DECL_LDEXPL is set. (logl): Declare also if HAVE_DECL_LOGL is set. (sinl): Declare also if HAVE_DECL_SINL is set. (sqrtl): Declare also if HAVE_DECL_SQRTL is set. (tanl): Declare also if HAVE_DECL_TANL is set. * modules/math (Makefile.am): Substitute the values of HAVE_DECL_*. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Set HAVE_DECL_* to 1. * m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Fix tests for the declaration of frexpl, ldexpl. * modules/printf-frexpl (Depends-on): Add math. * lib/printf-frexp.c (frexpl, ldexpl): Undo last change. 2007-03-05 Bruno Haible * m4/printf-frexpl.m4 (gl_FUNC_PRINTF_FREXPL): Also test whether frexpl and ldexpl are declared. * lib/printf-frexp.c (frexpl, ldexpl): Provide fallback declarations. 2007-03-05 Bruno Haible * gnulib-tool (func_get_automake_snippet): Don't synthesize an EXTRA_lib_SOURCES augmentation for the relocatable-prog-wrapper module. 2007-03-05 Bruno Haible * lib/stdio_.h: Include . 2007-03-05 Bruno Haible * m4/printf.m4 (gl_SNPRINTF_DIRECTIVE_N): New macro. 2007-03-05 Bruno Haible * m4/printf.m4: Update with info about OpenBSD 3.9, HP-UX 10.20, NetBSD 4, from Ralf Wildenhues. 2007-03-04 Bruno Haible * lib/vasprintf.h: Update #if logic for the case when the functions exist but are overridden. 2007-03-04 Bruno Haible * m4/printf.m4 (gl_PRINTF_DIRECTIVE_A): Exclude two buggy implementations: glibc-2.4 and MacOS X 10.3. * tests/test-vasnprintf-posix.c (test_function): Test also the case that exhibits the bugs in glibc-2.4 and MacOS X 10.3. * tests/test-vasprintf-posix.c (test_function): Likewise. 2007-03-04 Bruno Haible * modules/vasprintf-posix-tests: New file. * tests/test-vasprintf-posix.c: New file. * modules/vasprintf-posix: New file. * lib/vasprintf.h (asprintf, vasprintf): Rename if REPLACE_VASPRINTF is defined. * m4/vasprintf-posix.m4: New file. * m4/vasprintf.m4 (gl_REPLACE_VASPRINTF): New macro, extracted from gl_FUNC_VASPRINTF. (gl_FUNC_VASPRINTF): Invoke it. * m4/vasnprintf.m4 (gl_REPLACE_VASNPRINTF): Define REPLACE_VASNPRINTF here. * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_POSIX): Not here. 2007-03-04 Bruno Haible * lib/sys_time_.h: Rename GETTIMEOFDAY_REPLACEMENT to REPLACE_GETTIMEOFDAY. * modules/sys_time (Makefile.am): Likewise. * m4/sys_time_h.m4: Likewise. * m4/gettimeofday.m4: Likewise. 2007-03-04 Bruno Haible * modules/vasnprintf-posix-tests: New file. * tests/test-vasnprintf-posix.c: New file. * modules/vasnprintf-posix: New file. * lib/vasnprintf.c: Include isnan.h, isnanl.h, printf-frexp.h, printf-frexpl.h. (VASNPRINTF): Handle the 'a' and 'A' directives here, if needed. * lib/vasnprintf.h (asnprintf, vasnprintf): Rename if REPLACE_VASNPRINTF is defined. * m4/vasnprintf.m4 (gl_REPLACE_VASNPRINTF): New macro, extracted from gl_FUNC_VASNPRINTF. (gl_FUNC_VASNPRINTF): Invoke it. * m4/vasnprintf-posix.m4: New file. * m4/printf.m4: New file. 2007-03-04 Bruno Haible Compile progreloc.c only if --enable-relocatable is specified. * m4/relocatable.m4 (gl_RELOCATABLE): Arrange to compile progreloc.c if --enable-relocatable was specified. * modules/relocatable-prog (Makefile.am): Remove progreloc.c from lib_SOURCES. 2007-03-04 Jim Meyering * lib/acl.c (ACL_NOT_WELL_SUPPORTED): New macro. Use it consistently, rather than enumerating errno constants. 2007-03-04 Bruno Haible * modules/xvasprintf-tests: New file. * tests/test-xvasprintf.c: New file. * modules/vasprintf-tests: New file. * tests/test-vasprintf.c: New file. * modules/vasnprintf-tests: New file. * tests/test-vasnprintf.c: New file. * modules/vsnprintf-tests: New file. * tests/test-vsnprintf.c: New file. * modules/snprintf-tests: New file. * tests/test-snprintf.c: New file. 2007-03-04 Bruno Haible Compile relocatable.c only if --enable-relocatable is specified. * m4/relocatable-lib.m4 (gl_RELOCATABLE_LIBRARY_BODY): Renamed from gl_RELOCATABLE_LIBRARY. (gl_RELOCATABLE_LIBRARY, gl_RELOCATABLE_LIBRARY_SEPARATE): New macros. * m4/relocatable.m4 (gl_RELOCATABLE): Invoke gl_RELOCATABLE_LIBRARY. (gl_RELOCATABLE_BODY): Require gl_RELOCATABLE_LIBRARY_BODY instead of gl_RELOCATABLE_LIBRARY. * modules/relocatable-lib (configure.ac): Invoke gl_RELOCATABLE_LIBRARY. (Makefile.am): Remove lib_SOURCES. * modules/relocatable-lib-lgpl (configure.ac): Invoke gl_RELOCATABLE_LIBRARY. (Makefile.am): Remove lib_SOURCES. * modules/relocatable-prog (Makefile.am): Don't compile relocatable.c always. * modules/relocatable-prog-wrapper (configure.ac): Invoke gl_RELOCATABLE_LIBRARY_SEPARATE instead of gl_RELOCATABLE_LIBRARY. 2007-03-04 Bruno Haible * modules/argmatch-tests: New file. * tests/test-argmatch.c: New file. * tests/test-allocsa.c (main): Halve the number of loop runs. * modules/alloca-opt-tests: New file. * tests/test-alloca-opt.c: New file. 2007-03-04 Jim Meyering Work around difference between Linux ACLs and Solaris 10 ZFS. * lib/acl.c (set_acl): Revert to using chmod_or_fchmod also for EINVAL. 2007-03-03 Bruno Haible * modules/relocatable-prog (Depends-on): Add back progreloc's dependencies: canonicalize-lgpl, xalloc, xreadlink, stdbool, unistd. 2007-03-03 Bruno Haible * modules/relocatable-lib-lgpl: Renamed from modules/relocatable-lib. * modules/relocatable-lib: New file. 2007-03-03 Bruno Haible * modules/relocatable-prog: Renamed from modules/relocatable. * doc/relocatable-maint.texi: Talk about module 'relocatable-prog'. 2007-03-03 Bruno Haible * modules/relocatable-script (Files): Add doc/relocatable.texi, m4/relocatable-lib.m4. (Depends-on): Remove 'relocatable'. (configure.ac): Add gl_RELOCATABLE_NOP. 2007-03-03 Bruno Haible * modules/relocatable-prog-wrapper: New file. * modules/relocatable (Depends-on): Add it. Remove all other dependencies except progname. (Files): Remove build-aux/install-reloc, lib/relocwrapper.c. * m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): New macro. (gl_FUNC_STRERROR): Nop. * lib/strerror.c: Compile the file only if !HAVE_STRERROR. * m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): New macro. * lib/setenv.c: Compile the file only if _LIBC || !HAVE_SETENV. * m4/readlink.m4 (gl_FUNC_READLINK_SEPARATE): New macro. (gl_FUNC_READLINK): Update. * m4/canonicalize-lgpl.m4 (gl_CANONICALIZE_LGPL_SEPARATE): New macro. 2007-03-03 Bruno Haible * lib/xreadlink.c: Include unconditionally. * modules/xreadlink (Depends-on): Add unistd. * modules/xreadlink-with-size (Depends-on): Likewise. 2007-03-03 Bruno Haible * m4/setenv.m4 (gl_FUNC_SETENV, gl_FUNC_UNSETENV): New macros, extracted from gt_FUNC_SETENV. (gt_FUNC_SETENV): Remove macro. * modules/setenv (configure.ac): Add gl_FUNC_SETENV, gl_FUNC_UNSETENV, remove gt_FUNC_SETENV. 2007-03-03 Bruno Haible * m4/relocatable-lib.m4 (gl_RELOCATABLE_LIBRARY): Define ENABLE_RELOCATABLE here. * m4/relocatable.m4 (gl_RELOCATABLE_BODY): Don't define it here. 2007-03-03 Bruno Haible * modules/rbtreehash-list-tests (Depends-on): Add progname. * tests/test-rbtreehash_list.c: Include progname.h. (main): Call set_program_name. * modules/rbtree-oset-tests (Depends-on): Add progname. * tests/test-rbtree_oset.c: Include progname.h. (main): Call set_program_name. * modules/rbtree-list-tests (Depends-on): Add progname. * tests/test-rbtree_list.c: Include progname.h. (main): Call set_program_name. * modules/linked-list-tests (Depends-on): Add progname. * tests/test-linked_list.c: Include progname.h. (main): Call set_program_name. 2007-03-03 Bruno Haible * lib/glob-libc.h (_Restrict_): New macro, copied from lib/regex.h. All uses of __restrict changed to _Restrict_. * lib/glob_.h (__restrict): Remove macro. 2007-03-02 Bruno Haible * modules/gettext (configure.ac): Require gettext infrastructure from version 0.16.1. 2007-03-02 Bruno Haible * modules/linkedhash-list-tests (Depends-on): Add progname. * tests/test-linkedhash_list.c: Include progname.h. (main): Call set_program_name. * modules/carray-list-tests (Depends-on): Add progname. * tests/test-carray_list.c: Include progname.h. (main): Call set_program_name. * modules/avltreehash-list-tests (Depends-on): Add progname. * tests/test-avltreehash_list.c: Include progname.h. (main): Call set_program_name. * modules/avltree-oset-tests (Depends-on): Add progname. * tests/test-avltree_oset.c: Include progname.h. (main): Call set_program_name. * modules/avltree-list-tests (Depends-on): Add progname. * tests/test-avltree_list.c: Include progname.h. (main): Call set_program_name. * modules/array-oset-tests (Depends-on): Add progname. * tests/test-array_oset.c: Include progname.h. (main): Call set_program_name. * modules/array-list-tests (Depends-on): Add progname. * tests/test-array_list.c: Include progname.h. (main): Call set_program_name. * modules/argp-tests (Depends-on): Add progname. * tests/test-argp.c: Include argp.h first. Include progname.h. (main): Call set_program_name. 2007-03-02 Paul Eggert * doc/gnulib-tool.texi (Initial import): Reword description of _FILE_OFFSET_BITS and _GNU_SOURCE, since they sometimes have a limited effect even if defined after the first system include. 2007-03-01 Bruno Haible * build-aux/config.libpath: Update to libtool-1.5.22. Reported by Albert Chin . 2007-03-01 Bruno Haible * doc/relocatable-maint.texi: Recommend to set foo_CPPFLAGS, not foo_CFLAGS. Reported by Ralf Wildenhues. 2007-03-01 Bruno Haible * build-aux/install-reloc: Remove object files left over by some compilers. Reported by Ralf Wildenhues. 2007-03-01 Bruno Haible * build-aux/install-reloc: Break long lines. 2007-03-01 Bruno Haible * doc/relocatable.texi: Document that it may not work on OpenBSD. Reported by Ralf Wildenhues. 2007-03-01 Bruno Haible * doc/gnulib-tool.texi (Initial import): Remove paragraph about include ordering constraints. 2007-03-01 Paul Eggert Followup to the 2007-02-12 patch, using suggestions from Bruno Haible in . * doc/gnulib-tool.texi (Initial import): Mention _FILE_OFFSET_BITS as another example. * lib/time_.h: Fix misspelling. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Require gl_HEADER_TIME_H_DEFAULTS. * m4/strptime.m4 (gl_FUNC_STRPTIME): Likewise. * m4/time_r.m4 (gl_TIME_R): Likewise. * m4/timegm.m4 (gl_FUNC_TIMEGM): Likewise. 2007-03-01 Bruno Haible * m4/utimecmp.m4 (gl_UTIMECMP): Don't require gl_TIMESPEC. * m4/utimens.m4 (gl_UTIMENS): Likewise. 2007-03-01 Jim Meyering * modules/xreadlink (Maintainer): Add my name. * modules/xreadlink-with-size (Depends-on): Alphabetize. 2007-02-26 Ben Pfaff Bruno Haible * build-aux/install-reloc: Compile also c-ctype.c. * build-aux/relocatable.sh.in: New file. * doc/relocatable.texi: New file. * doc/relocatable-maint.texi: New file. * doc/gnulib.texi: Include relocatable-maint.texi. * lib/progreloc.c: Include unistd.h unconditionally. * lib/relocwrapper.c: Include unistd.h unconditionally. Include c-ctype.h. (add_dotbin): Use c_tolower. * m4/relocatable-lib.m4: New file, extracted from m4/relocatable.m4. (gl_RELOCATABLE_LIBRARY): Renamed from AC_RELOCATABLE_LIBRARY. (gl_RELOCATABLE_NOP): Renamed from AC_RELOCATABLE_NOP. * m4/relocatable.m4 (AC_RELOCATABLE_LIBRARY, AC_RELOCATABLE_NOP): Move to m4/relocatable-lib.m4. (gl_RELOCATABLE): Renamed from AC_RELOCATABLE. Set also RELOCATABLE_CONFIG_H_DIR, RELOCATABLE_SRC_DIR, RELOCATABLE_BUILD_DIR. (gl_RELOCATABLE_BODY): Renamed from AC_RELOCATABLE_BODY. Don't require obsolete macro AC_EXEEXT. Don't check for unistd.h. Don't set SET_RELOCATABLE. Instead set RELOCATABLE_LDFLAGS, INSTALL_PROGRAM_ENV. * modules/relocatable: New file. * modules/relocatable-lib: New file. * modules/relocatable-script: New file. 2007-02-28 Bruno Haible Import --enable-relocatable infrastructure. * build-aux/config.libpath: New file, from GNU gettext. * build-aux/install-reloc: New file, from GNU gettext. * build-aux/reloc-ldflags: New file, from GNU gettext. * lib/relocatable.h: New file, from GNU gettext. * lib/relocatable.c: New file, from GNU gettext. * lib/relocwrapper.c: New file, from GNU gettext. * m4/relocatable.m4: New file, from GNU gettext. 2007-02-28 Bruno Haible * MODULES.html.sh (File system functions): Add xreadlink-with-size. * modules/xreadlink: New file, from GNU gettext with modifications. * lib/xreadlink.c: New file, from GNU gettext. * lib/xreadlink.h: Add comments. (xreadlink): New declaration. * modules/xreadlink-with-size: Renamed from modules/xreadlink. (Files): Remove m4/xreadlink.m4. Replace lib/xreadlink.c with lib/xreadlink-with-size.c. (configure.ac): Remove gl_XREADLINK invocation. (Makefile.am): Augment lib_SOURCES. * m4/xreadlink.m4: Remove file. * lib/xreadlink-with-size.c: Renamed from lib/xreadlink.c. (xreadlink_with_size): Renamed from xreadink. * lib/xreadlink.h (xreadlink_with_size): Renamed from xreadink. * modules/canonicalize (Depends-on): Replace xreadlink with xreadlink-with-size. * lib/canonicalize.c (canonicalize_filename_mode): Update. 2007-02-25 Jim Meyering * build-aux/announce-gen: When complaining about excess arguments, list them. 2007-02-25 Paul Eggert * README: Document signed integer overflow situation more accurately. 2007-02-25 Bruno Haible * lib/vasnprintf.c (VASNPRINTF): Fix estimate of size needed for a 'a' or 'A' conversion. 2007-02-25 Bruno Haible * modules/filename: Renamed from modules/pathname. (Files): Replace lib/pathname.h with lib/filename.h. Replace lib/concatpath.c with lib/concat-filename.c. (Makefile.am): Update. (Include): Replace pathname.h with filename.h. * lib/filename.h: Renamed from lib/pathname.h. (concatenated_filename): Renamed from concatenated_pathname. * lib/concat-filename.c: Renamed from lib/concatpath.c. (concatenated_filename): Renamed from concatenated_pathname. * lib/findprog.c: Include filename.h instead of pathname.h. (find_in_path): Update. * lib/javacomp.c: Include filename.h instead of pathname.h. (is_envjavac_gcj43_usable, is_envjavac_oldgcj_14_14_usable, is_envjavac_oldgcj_14_13_usable, is_envjavac_nongcj_usable, is_gcj_present, is_gcj43_usable, is_oldgcj_14_14_usable, is_oldgcj_14_13_usable, is_javac_usable): Update. * lib/javaexec.c: Include filename.h instead of pathname.h. (execute_java_class): Update. * modules/findprog: Update. * modules/javacomp: Update. * modules/javaexec: Update. * MODULES.html.sh (File system functions): Add 'filename', remove 'pathname'. 2007-02-25 Bruno Haible * modules/printf-frexpl-tests: New file. * tests/test-printf-frexpl.c: New file. * modules/printf-frexpl: New file. * lib/printf-frexpl.h: New file. * lib/printf-frexpl.c: New file. * m4/printf-frexpl.m4: New file. 2007-02-25 Bruno Haible * modules/printf-frexp-tests: New file. * tests/test-printf-frexp.c: New file. * modules/printf-frexp: New file. * lib/printf-frexp.h: New file. * lib/printf-frexp.c: New file. * m4/printf-frexp.m4: New file. 2007-02-25 Bruno Haible Assume automake >= 1.10 for the tests. * modules/arcfour-tests (TESTS): Remove $(EXEEXT) suffix. * modules/arctwo-tests: Likewise. * modules/argp-tests: Likewise. * modules/avltree-list-tests: Likewise. * modules/avltree-oset-tests: Likewise. * modules/avltreehash-list-tests: Likewise. * modules/carray-list-tests: Likewise. * modules/crc-tests: Likewise. * modules/des-tests: Likewise. * modules/gc-arcfour-tests: Likewise. * modules/gc-arctwo-tests: Likewise. * modules/gc-des-tests: Likewise. * modules/gc-hmac-md5-tests: Likewise. * modules/gc-hmac-sha1-tests: Likewise. * modules/gc-md2-tests: Likewise. * modules/gc-md4-tests: Likewise. * modules/gc-md5-tests: Likewise. * modules/gc-pbkdf2-sha1-tests: Likewise. * modules/gc-rijndael-tests: Likewise. * modules/gc-sha1-tests: Likewise. * modules/gc-tests: Likewise. * modules/getaddrinfo-tests: Likewise. * modules/hmac-md5-tests: Likewise. * modules/hmac-sha1-tests: Likewise. * modules/linked-list-tests: Likewise. * modules/linkedhash-list-tests: Likewise. * modules/lock-tests: Likewise. * modules/md2-tests: Likewise. * modules/md4-tests: Likewise. * modules/md5-tests: Likewise. * modules/rbtree-list-tests: Likewise. * modules/rbtree-oset-tests: Likewise. * modules/rbtreehash-list-tests: Likewise. * modules/read-file-tests: Likewise. * modules/rijndael-tests: Likewise. * modules/stdint-tests: Likewise. * modules/tls-tests: Likewise. 2007-02-24 Bruno Haible * lib/isnanl.h (isnanl): Define through isnan if isnan is a macro. * m4/isnan.m4 (gl_FUNC_ISNAN_NO_LIBM): Don't check for isnan as a function; instead check whether isnan with a double argument links. * m4/isnanl.m4 (gl_FUNC_ISNANL_NO_LIBM): Don't check for isnanl as a function; instead check whether isnan with a 'long double' argument links. Reported by Eric Blake . 2007-02-24 Bruno Haible * lib/isnan.c: Support the 'long double' case if USE_LONG_DOUBLE is defined. * lib/isnanl.c: Remove all code. Just include isnan.c. * modules/isnanl-nolibm (Files): Add lib/isnan.c. 2007-02-25 Jim Meyering Avoid conflicting types for 'unsetenv' on FreeBSD. * lib/putenv.c (_unsetenv): Rename from "unsetenv", to avoid conflicting with FreeBSD's (5.0 and 6.1) function declaration in stdlib.h. 2007-02-24 Bruno Haible * modules/isnanl-nolibm-tests: New file. * tests/test-isnanl.c: New file. * modules/isnanl-nolibm: New file. * lib/isnanl.h: New file. * lib/isnanl.c: New file. * m4/isnanl.m4: New file. 2007-02-24 Bruno Haible * modules/isnan-nolibm-tests: New file. * tests/test-isnan.c: New file. * modules/isnan-nolibm: New file. * lib/isnan.h: New file. * lib/isnan.c: New file. * m4/isnan.m4: New file. 2007-02-24 Bruno Haible * lib/frexpl.c (frexpl): Correct return values for x = 1.0L. Don't assume that an exponent fits in 20 bits. 2007-02-24 Jim Meyering * m4/regex.m4: Update the description of the configure-time option, --without-included-regex, to state accurately what the defaults are, and perhaps to give people an idea why using this option is risky. 2007-02-24 Paul Eggert * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Check for a nanosleep that loops on small arguments. This attempts to avoid the problem Bruno Haible reported for AIX 4.3.2 in . 2007-02-23 Bruno Haible * m4/perl.m4 (gl_PERL): Require version 5.005, not 5.003. Needed for help2man. 2007-02-23 Karl Berry * doc/gnulib-tool.texi (CVS Issues): mention that when foo_.h exists, foo.h should be cvs-ignored, not committed. 2007-02-23 Eric Blake * lib/getdate.h (includes): Include , not "timespec.h". * lib/stat-time.h (includes): Likewise. * lib/utimecmp.c (includes): Likewise. * lib/utimens.h (includes): Likewise. * lib/getdate.y (includes): Also include "timespec.h" for use internal to the module. * modules/utimens (Depends-on): Revert yesterday's patch. * modules/nanosleep (Depends-on): Add missing dependency. 2007-02-22 Bruno Haible * lib/glob.c: Don't include getlogin_r.h. 2007-02-22 Jim Meyering * modules/utimens (Depends-on): Add timespec, required for utimens.h's inclusion of timespec.h. 2007-02-21 Paul Eggert * lib/getcwd.c (__getcwd): Undo previous change; it mishandled long unreadable paths in GNU/Linux. Problem reported by Andreas Schwab in . I'll try to think of a better way to fix the Solaris problem. * lib/getcwd.c (__getcwd): Don't assume getcwd (NULL, 0) works like glibc; on Solaris 10, it fails with errno == EINVAL. POSIX says the behavior is unspecified if the first argument is NULL, so play it safe and never pass NULL to the system getcwd. 2007-02-21 Jim Meyering * lib/gettimeofday.c (rpl_gettimeofday): Remove declaration of gettimeofday. It would conflict with the one now always provided via sys_time_.h. Reported by Matthew Woehlke, as an IRIX 6.5 build failure. 2007-02-20 Paul Eggert Minor fixups to port to Solaris 10 with Sun C 5.8. * lib/getcwd.c [!_LIBC]: Include dirfd.h, since we use dirfd. * modules/getcwd (Depends-on): Add dirfd. * lib/putenv.c (putenv): #undef it. (rpl_putenv): New decl. (malloc, free): Include rather than prototyping separately. 2007-02-20 Bruno Haible * modules/stdio-tests: New file. * tests/test-stdio.c: New file. * modules/vsnprintf (Files): Remove lib/vsnprintf.h. (Depends-on): Add stdio. (configure.ac): Invoke gl_STDIO_MODULE_INDICATOR. (Include): Use instead of vsnprintf.h. * m4/vsnprintf.m4 (gl_FUNC_VSNPRINTF): Require gl_STDIO_H_DEFAULTS. Set HAVE_DECL_VSNPRINTF. * lib/vsnprintf.c: Include instead of vsnprintf.h. * modules/snprintf (Files): Remove lib/snprintf.h. (Depends-on): Add stdio. (configure.ac): Invoke gl_STDIO_MODULE_INDICATOR. (Include): Use instead of snprintf.h. * m4/snprintf.m4 (gl_FUNC_SNPRINTF): Require gl_STDIO_H_DEFAULTS. Set HAVE_DECL_SNPRINTF. * lib/snprintf.c: Include instead of snprintf.h. * lib/getaddrinfo.c: Likewise. * modules/stdio: New file. * lib/stdio_.h: New file, incorporating snprintf.h and vsnprintf.h. * lib/snprintf.h: Remove file. * lib/vsnprintf.h: Remove file. * lib/.cppi-disable: Remove snprintf.h. * m4/stdio_h.m4: New file. * MODULES.html.sh (Support for systems lacking ISO C 99): Add stdio. 2007-02-20 Jim Meyering * lib/ftruncate.c [HAVE_CHSIZE]: Document that this code is used by e.g., mingw. From Bruno Haible. 2007-02-19 Bruno Haible * lib/string_.h: Use "#pragma GCC system_header" to suppress some gcc warnings. Reported by Ben Pfaff . 2007-02-19 Bruno Haible * m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): Don't request a complaint mail from mingw users. 2007-02-19 Bruno Haible * lib/stdlib_.h: Use "#pragma GCC system_header" to suppress some gcc warnings. Reported by Joel E. Denny via Paul Eggert. 2007-02-19 Jim Meyering Don't use FD after a successful "fdopendir (fd)". * lib/getcwd.c (__getcwd) [AT_FDCWD]: fdopendir (fd) usually closes fd. Reset it by calling dirfd on the just-obtained DIR*. * m4/ftruncate.m4: Adjust comment to give this module a 3-year reprieve. Prompted by a report from Bruno Haible that mingw lacks ftruncate. 2007-02-18 Bruno Haible * lib/readlink.c: Include . * m4/readlink.m4 (gl_FUNC_READLINK): Require gl_UNISTD_H_DEFAULTS. Set HAVE_READLINK. * modules/readlink (Depends-on): Add unistd. (configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR. (Include): Add . * lib/getlogin_r.h: Remove file. * lib/getlogin_r.c: Include instead of getlogin_r.h. * m4/getlogin_r.m4 (gl_GETLOGIN_R_SUBSTITUTE): Remove macro. (gl_GETLOGIN_R): Inline it here. Require gl_UNISTD_H_DEFAULTS. Set HAVE_DECL_GETLOGIN_R. * modules/getlogin_r (Files): Remove lib/getlogin_r.h. (configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR. (Include): Use instead of getlogin_r.h. * lib/getcwd.h: Remove file. * lib/getcwd.c: Include instead of getcwd.h. * lib/xgetcwd.c: Likewise. * m4/getcwd.m4 (gl_FUNC_GETCWD): Require gl_UNISTD_H_DEFAULTS. Set REPLACE_GETCWD. Don't define __GETCWD_PREFIX. * modules/getcwd (Files): Remove lib/getcwd.h. (Depends-on): Add unistd. (configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR. (Include): Use instad of getcwd.h. * lib/ftruncate.c: Include first. * m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): Require gl_UNISTD_H_DEFAULTS. Set HAVE_FTRUNCATE. * modules/ftruncate (Depends-on): Add unistd. (configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR. * lib/fchdir.c: Include first. * lib/dirent_.h: Test REPLACE_FCHDIR, not FCHDIR_REPLACEMENT. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Require gl_UNISTD_H_DEFAULTS instead of gl_HEADER_UNISTD_DEFAULTS. Set REPLACE_FCHDIR. Don't set UNISTD_H. * modules/fchdir (configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR. (Makefile.am): Substitute also REPLACE_FCHDIR into dirent.h. * lib/dup2.c: Include first. * m4/dup2.m4 (gl_FUNC_DUP2): Require gl_UNISTD_H_DEFAULTS. Set HAVE_DUP2. * modules/dup2 (Depends-on): Add unistd. (configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR. * lib/chown.c: Include first. Undefine chown later. * m4/chown.m4 (gl_FUNC_CHOWN): Require gl_UNISTD_H_DEFAULTS. Set REPLACE_CHOWN. Don't define chown as a macro here. * modules/chown (Depends-on): Add unistd. (configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR. * lib/unistd_.h: Test HAVE_UNISTD_H determined at configure time. Add definition for GL_LINK_WARNING. (chown, dup2): New declarations. (fchdir): Test REPLACE_FCHDIR, not FCHDIR_REPLACEMENT. Provide optional link warning. (ftruncate): New declaration. (getcwd): New declaration, taken from old getcwd.h. (getlogin_r): New declaration, taken from old getlogin_r.h. (readlink): New declaration. * m4/unistd_h.m4 (gl_UNISTD_H): Renamed from gl_HEADER_UNISTD. Don't set UNISTD_H. Inline gl_PREREQ_UNISTD. Set HAVE_UNISTD_H. (gl_PREREQ_UNISTD): Remove macro. (gl_UNISTD_MODULE_INDICATOR): New macro. (gl_UNISTD_H_DEFAULTS): Renamed from gl_HEADER_UNISTD_DEFAULTS. Set many new variables. Don't set UNISTD_H. * modules/unistd (Description): Change. (Depends-on): Add link-warning. (configure.ac): Update. (Makefile.am): Create unistd.h always. Substitute many new variables into it. 2007-02-18 Bruno Haible * lib/stdlib_.h (getsubopt): New declaration, copied from getsubopt.h. * modules/stdlib (stdlib.h): Also substitute GNULIB_GETSUBOPT and HAVE_GETSUBOPT. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Also initialize GNULIB_GETSUBOPT and HAVE_GETSUBOPT. * lib/getsubopt.h: Remove file. * modules/getsubopt (Files): Remove lib/getsubopt.h. (Depends-on): Add stdlib. (configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR. (Includes): Use instead of getsubopt.h. * m4/getsubopt.m4 (gl_FUNC_GETSUBOPT): Require gl_STDLIB_H_DEFAULTS. Set HAVE_GETSUBOPT. * lib/getsubopt.c: Don't include getsubopt.h. 2007-02-18 Bruno Haible * modules/fchdir (Depends-on): Add dup2. 2007-02-18 Bruno Haible * lib/stdlib_.h: Handle glibc's special invocation convention specially. 2007-02-18 Bruno Haible * modules/stdlib-tests: New file. * tests/test-stdlib.c: New file. * modules/mkstemp (Files): Remove lib/mkstemp.h. (Depends-on): Add stdlib. (configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR. (Includes): Use instead of mkstemp.h. * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Require gl_STDLIB_H_DEFAULTS. Set REPLACE_MKSTEMP. Remove definition of __MKSTEMP_PREFIX. * lib/mkstemp.c: Don't include mkstemp.h. * lib/mkstemp-safer.c: Include instead of mkstemp.h. * lib/stdlib--.h: Don't include mkstemp.h. * modules/mkdtemp (Files): Remove lib/mkdtemp.h. (Depends-on): Add stdlib. (configure.ac): Invoke gl_STDLIB_MODULE_INDICATOR. (Includes): Use instead of mkdtemp.h. * m4/mkdtemp.m4 (gt_FUNC_MKDTEMP): Require gl_STDLIB_H_DEFAULTS. Set HAVE_MKDTEMP. * lib/mkdtemp.c: Don't include mkdtemp.h. * lib/clean-temp.c: Don't include mkdtemp.h. * modules/exit (Files): Remove lib/exit.h. (Depends-on): Add stdlib. (Makefile.am): Remove lib_SOURCES. (Include): Use instead of exit.h. * lib/argmatch.c: Don't include exit.h. * lib/execute.c: Likewise. * lib/pagealign_alloc.c: Likewise. * lib/pipe.c: Likewise. * lib/wait-process.c: Likewise. * lib/copy-file.c: Include instead of exit.h. * lib/exitfail.c: Likewise. * lib/savewd.c: Likewise. * lib/xsetenv.c: Likewise. * modules/stdlib: New file. * lib/stdlib_.h: New file, incorporating exit.h, mkdtemp.h, mkstemp.h and extra comments about mkstemp(). * lib/exit.h: Remove file. * lib/mkdtemp.h: Remove file. * lib/mkstemp.h: Remove file. * m4/stdlib_h.m4: New file. * MODULES.html.sh (Support for systems lacking ANSI C 89): Add stdlib. 2007-02-18 Bruno Haible * modules/math-tests: New file. * tests/test-math.c: New file. * modules/math: New file. * modules/mathl (Files): Remove lib/mathl.h. (Depends-on): Add math. (Makefile.am): Don't mention mathl.h. (Include): Use instead of mathl.h. * lib/math_.h: New file. * lib/mathl.h: Remove file. * lib/acosl.c: Include and first. Don't include mathl.h. * lib/asinl.c: Likewise. * lib/atanl.c: Likewise. * lib/ceill.c: Likewise. * lib/cosl.c: Likewise. * lib/expl.c: Likewise. * lib/floorl.c: Likewise. * lib/frexpl.c: Likewise. * lib/ldexpl.c: Likewise. * lib/logl.c: Likewise. * lib/sincosl.c: Likewise. * lib/sinl.c: Likewise. * lib/sqrtl.c: Likewise. * lib/tanl.c: Likewise. * lib/trigl.c: Likewise. * m4/math_h.m4: New file. * MODULES.html.sh (Mathematics): Add math. 2007-02-17 Bruno Haible * modules/wctype-tests: New file. * tests/test-wctype.c: New file. * modules/wchar-tests: New file. * tests/test-wchar.c: New file. * modules/unistd-tests: New file. * tests/test-unistd.c: New file. * modules/time-tests: New file. * tests/test-time.c: New file. * modules/sysexits-tests: New file. * tests/test-sysexits.c: New file. * modules/sys_time-tests: New file. * tests/test-sys_time.c: New file. * modules/sys_stat-tests: New file. * tests/test-sys_stat.c: New file. * modules/sys_socket-tests: New file. * tests/test-sys_socket.c: New file. * modules/sys_select-tests: New file. * tests/test-sys_select.c: New file. * modules/string-tests: New file. * tests/test-string.c: New file. * modules/stdbool-tests: New file. * tests/test-stdbool.c: New file. * modules/netinet_in-tests: New file. * tests/test-netinet_in.c: New file. * modules/inttypes-tests: New file. * tests/test-inttypes.c: New file. * modules/fcntl-tests: New file. * tests/test-fcntl.c: New file. * modules/byteswap-tests: New file. * tests/test-byteswap.c: New file. * modules/arpa_inet-tests: New file. * tests/test-arpa_inet.c: New file. 2007-02-17 Bruno Haible * lib/inttypes_.h: Add definition for GL_LINK_WARNING. (imaxabs, imaxdiv, strtoimax, strtoumax): Don't declare the function if the corresponding module is not enabled. Emit link warnings if the function is used nevertheless. * m4/inttypes.m4 (gl_INTTYPES_H): Never use the existing . Don't AC_SUBST HAVE_DECL_IMAXABS, HAVE_DECL_IMAXDIV, HAVE_DECL_STRTOIMAX, HAVE_DECL_STRTOUMAX. (gl_INTTYPES_MODULE_INDICATOR, gl_INTTYPES_H_DEFAULTS): New macros. * modules/inttypes (Depends-on): Add link-warning. (Makefile.am): Copy the contents of build-aux/link-warning.h into inttypes.h. Substitute also GNULIB_IMAXABS, GNULIB_IMAXDIV, GNULIB_STRTOIMAX, GNULIB_STRTOUMAX. * modules/imaxabs (configure.ac): Invoke gl_INTTYPES_MODULE_INDICATOR. * modules/imaxdiv (configure.ac): Likewise. * modules/strtoimax (configure.ac): Likewise. * modules/strtoumax (configure.ac): Likewise. 2007-02-17 Bruno Haible * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Include the contents of gl_STRING_MODULE_INDICATOR_DEFAULTS. (gl_STRING_MODULE_INDICATOR_DEFAULTS): Remove macro. (gl_HEADER_STRING_H_BODY, gl_STRING_MODULE_INDICATOR): Update. 2007-02-17 Bruno Haible * modules/link-warning: New file. * build-aux/link-warning.h: New file, extracted from lib/string_.h. * lib/string_.h (GL_LINK_WARNING): Remove definition. * modules/string (Depends-on): Add link-warning. (Makefile.am): Copy the contents of build-aux/link-warning.h into string.h. * MODULES.html.sh (Support for building libraries and executables): Add link-warning. 2007-02-17 Bruno Haible * lib/string_.h (memmem, mempcpy, memrchr, stpcpy, stpncpy, strcasecmp, strncasecmp, strchr, strchrnul, strdup, strndup, strnlen, strcspn, strpbrk, strspn, strrchr, strsep, strstr, strcasestr, strtok_r): Break long lines. 2007-02-17 Ben Pfaff Bruno Haible * modules/tmpfile: New file. * lib/tmpfile.c: New file. * m4/tmpfile.m4: New file. * MODULES.html.sh (func_all_modules): New section "Input/output". 2007-02-15 Bruno Haible * lib/clean-temp.c [WIN32 && !CYGWIN]: Include . (supports_delete_on_close): New function. (open_temp, fopen_temp): Use _O_TEMPORARY when supported. 2007-02-14 Bruno Haible * modules/mbspcasecmp-tests: New file. * tests/test-mbspcasecmp.sh: New file. * tests/test-mbspcasecmp.c: New file. New module mbspcasecmp. * modules/mbspcasecmp: New file. * lib/mbspcasecmp.c: New file. * lib/string_.h (strncasecmp): Change warning message. (mbspcasecmp): New declaration. * m4/mbspcasecmp.m4: New file. * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize GNULIB_MBSPCASECMP. * modules/string (string.h): Also substitute GNULIB_MBSPCASECMP. * MODULES.html.sh (Internationalization functions): Add mbspcasecmp. 2007-02-14 Bruno Haible * modules/mbsncasecmp-tests: New file. * tests/test-mbsncasecmp.sh: New file. * tests/test-mbsncasecmp.c: New file. New module mbsncasecmp. * modules/mbsncasecmp: New file. * lib/mbsncasecmp.c: New file. * lib/string_.h (mbsncasecmp): New declaration. * m4/mbsncasecmp.m4: New file. * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize GNULIB_MBSNCASECMP. * modules/string (string.h): Also substitute GNULIB_MBSNCASECMP. * MODULES.html.sh (Internationalization functions): Add mbsncasecmp. 2007-02-14 Paul Eggert * lib/exclude.c (FNM_EXTMATCH): Define if system does not. Verify that it doesn't overlap with our flags. (fnmatch_no_wildcards): Don't use strcasecmp or strncasecmp, which do not have the desired effect in multibyte locales; instead, use mbscasecmp. * modules/exclude (Depends-on): Depend on mbscasecmp, not strcase. Add dependency on xalloc. Depend on fnmatch, not fnmatch-gnu, since we don't require GNU fnmatch ourselves (if our users require it, they should do so explicitly). Fix regex code so it doesn't rely on strcasecmp. * lib/regex_internal.h: Include only if _LIBC is defined. Otherwise, include gnulib's langinfo.h. * lib/regcomp.c (init_dfa): Don't use strcasecmp, as it can have undesirable behavior in non-C locales. Instead, rely on localecharset. * m4/regex.m4 (gl_PREREQ_REGEX): Don't require AM_LANGINFO_CODESET. * modules/regex (FILES): Remove m4/codeset.m4. (Depends-on): Add localcharset. Remove strcase. 2007-02-13 Ralf Wildenhues * m4/unlinkdir.m4 (gl_UNLINKDIR): Fix m4 quoting bug. * m4/unlink-busy.m4 (gl_FUNC_UNLINK_BUSY_TEXT): Likewise. 2007-02-13 Bruno Haible * m4/intdiv0.m4 (gt_INTDIV0): Assume ANSI C. Fix underquoting bug. Reported by Ralf Wildenhues . 2007-02-12 Bruno Haible * lib/string_.h (memmem, mempcpy, memrchr, stpcpy, stpncpy, strchrnul, strdup, strndup, strnlen, strpbrk, strsep, strtok_r): If GNULIB_POSIXCHECK and the gnulib module not enabled, provoke a link- time warning rather than a link error. 2007-02-12 Bruno Haible * m4/locale-fr.m4 (gt_LOCALE_FR): Fix m4 quoting bug. * m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Likewise. Reported by Ralf Wildenhues . 2007-02-12 Paul Eggert * lib/string_.h (strncasecmp): Fix typo: this macro takes 3 args, not 2. 2007-02-12 Paul Eggert New module 'time', so that apps can include as per POSIX and GNU instead of separate include files like time_r.h and timegm.h. This implementation tries out a simpler approach for replacing decls in standard include files (as compared to the string module), somewhat as an experiment. * config/srclist.txt: Comment out mktime.c for now. * doc/gnulib-tool.texi (Initial import): Don't use time_r as an example since it doesn't apply any more. Use generic wording instead. * MODULES.html.sh (Support for systems lacking POSIX:2001): New module 'time'. * lib/time_.h, m4/time_h.m4, modules/time: New files. * lib/strptime.h, lib/time_r.h, lib/timegm.h: Remove. * lib/mktime.c: Include config.h depending on _LIBC, not HAVE_CONFIG_H. Don't include ; no longer needed since we assume C89. * lib/mktime.c: Don't include "time_r.h"; no longer needed. * lib/strftime.c: Likewise. * lib/time_r.c: Likewise. * lib/nanosleep.c (nanosleep): #undef after include files, not before. * lib/nanosleep.c: Include first, to check interface. * lib/strptime.c: Likewise. * lib/time_r.c: Likewise. * lib/timegm.c: Likewise. * lib/strptime.c: Don't include strptime.h or time_r.h; no longer needed. * lib/timegm.c: Don't include timegm.h; no longer needed. * lib/timespec.h: Don't include before ; time.h now handles any problems in that area. (struct timespec, nanosleep): Remove; time.h now arranges for these. * lib/xnanosleep.c: Don't include timespec.h; no longer needed now that time.h defines struct timespec. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Check that nanosleep is declared. Set REPLACE_NANOSLEEP. Don't AC_DEFINE nanosleep; the time module now handles that. * m4/strptime.m4 (gl_FUNC_STPRTIME): Set REPLACE_STRPTIME. * m4/time_r.m4 (gl_TIME_R): Don't define HAVE_TIME_R_POSIX; no longer needed. Set REPLACE_LOCALTIME. * m4/timegm.m4 (gl_FUNC_TIMEGM): Set REPLACE_TIMEGM. * m4/timespec.m4 (gl_CHECK_TYPE_STRUCT_TIMESPEC): Move to time_h.m4. (gl_TIMESPEC): Don't check for sys/time.h or struct timespec or nanosleep; time_h.m4 now does that. Don't require gl_USE_SYSTEM_EXTENSIONS; no longer needed directly, and the time module handles this now. * modules/getdate (Depends-on): Remove timespec. Add time. * modules/nanosleep (Depends-on): Likewise. * modules/stat-time (Depends-on): Likewise. * modules/nanosleep (Include): Include time.h, not timespec.h. * modules/strptime (Files): Remove lib/strptime.h. (Depends-on): Add extensions, time. (Include): Include time.h, not strptime.h. * modules/time_r (Files): Remove lib/time_r.h. (Depends-on): Add time. (Include): Include time.h, not time_r.h. * modules/timegm: Likewise. * modules/timespec (Description): Now does timespec-related decls of our own, instead of struct timespec itself. (Depends-on): Add time; remove extensions. (Maintainer): Add self. * modules/utimecmp (Depends-on): Add time; remove timespec. * modules/utimens (Depends-on): Likewise. * modules/xnanosleep (Depends-on): Likewise. 2007-02-11 Bruno Haible * lib/c-strstr.c: Include allocsa.h. (knuth_morris_pratt): Use allocsa/freesa instead of malloc/free. * lib/c-strcasestr.c: Include allocsa.h. (knuth_morris_pratt): Use allocsa/freesa instead of malloc/free. * lib/strcasestr.c: Include allocsa.h. (knuth_morris_pratt): Use allocsa/freesa instead of malloc/free. * lib/mbsstr.c: Include allocsa.h. (knuth_morris_pratt_unibyte, knuth_morris_pratt_multibyte): Use allocsa/freesa instead of malloc/free. * lib/mbscasestr.c: Include allocsa.h. (knuth_morris_pratt_unibyte, knuth_morris_pratt_multibyte): Use allocsa/freesa instead of malloc/free. * modules/c-strstr (Depends-on): Add allocsa. * modules/c-strcasestr (Depends-on): Likewise. * modules/strcasestr (Depends-on): Likewise. * modules/mbsstr (Depends-on): Likewise. * modules/mbscasestr (Depends-on): Likewise. 2007-02-11 Bruno Haible * lib/mbsspn.c (mbsspn): Fix bug. Remove unnecessary strlen call. * modules/mbsspn-tests: New file. * tests/test-mbsspn.sh: New file. * tests/test-mbsspn.c: New file. 2007-02-11 Bruno Haible * lib/mbspbrk.c (mbspbrk): Remove unneeded cast. * modules/mbspbrk-tests: New file. * tests/test-mbspbrk.sh: New file. * tests/test-mbspbrk.c: New file. 2007-02-11 Bruno Haible * lib/mbscspn.c (mbscspn): Remove unnecessary strlen call and unneeded cast. * modules/mbscspn-tests: New file. * tests/test-mbscspn.sh: New file. * tests/test-mbscspn.c: New file. 2007-02-11 Bruno Haible * modules/mbscasecmp-tests: New file. * tests/test-mbscasecmp.sh: New file. * tests/test-mbscasecmp.c: New file. 2007-02-11 Bruno Haible Ensure O(n) worst-case complexity of mbscasestr. * lib/mbscasestr.c: Include stdbool.h. (knuth_morris_pratt_unibyte, knuth_morris_pratt_multibyte): New functions. (mbscasestr): Add some bookkeeping. Invoke knuth_morris_pratt_* when the bookkeeping indicates that it's worth it. * modules/mbscasestr (Depends-on): Add stdbool, mbslen, strnlen. * modules/mbscasestr-tests: New file. * tests/test-mbscasestr1.c: New file. * tests/test-mbscasestr2.sh: New file. * tests/test-mbscasestr2.c: New file. * tests/test-mbscasestr3.sh: New file. * tests/test-mbscasestr3.c: New file. * tests/test-mbscasestr4.sh: New file. * tests/test-mbscasestr4.c: New file. * m4/locale-tr.m4: New file. 2007-02-11 Bruno Haible Ensure O(n) worst-case complexity of mbsstr. * lib/mbsstr.c: Include stdbool.h. (knuth_morris_pratt_unibyte, knuth_morris_pratt_multibyte): New functions. (mbsstr): Add some bookkeeping. Invoke knuth_morris_pratt_* when the bookkeeping indicates that it's worth it. * modules/mbsstr (Depends-on): Add stdbool, mbslen, strnlen. * modules/mbsstr-tests: New file. * tests/test-mbsstr1.c: New file. * tests/test-mbsstr2.sh: New file. * tests/test-mbsstr2.c: New file. * tests/test-mbsstr3.sh: New file. * tests/test-mbsstr3.c: New file. * m4/locale-fr.m4: New file. 2007-02-11 Bruno Haible * lib/mbsrchr.c (mbsrchr): Fix bug. * modules/mbsrchr-tests: New file. * tests/test-mbsrchr.sh: New file. * tests/test-mbsrchr.c: New file. 2007-02-11 Bruno Haible * lib/mbschr.c (mbschr): Fix bug. * modules/mbschr-tests: New file. * tests/test-mbschr.sh: New file. * tests/test-mbschr.c: New file. * m4/locale-zh.m4: New file. 2007-02-11 Bruno Haible Support for copying multibyte string iterators. * lib/mbiter.h: Include . (mbiter_multi_copy): New function. (mbi_copy): New macro. * lib/mbuiter.h: Include . (mbuiter_multi_copy): New function. (mbui_copy): New macro. 2007-02-11 Bruno Haible New module mbslen. * modules/mbslen: New file. * lib/mbslen.c: New file. * lib/string_.h (mbslen): New declaration. * m4/mbslen.m4: New file. * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize GNULIB_MBSLEN. * modules/string (string.h): Also substitute GNULIB_MBSLEN. * MODULES.html.sh (Internationalization functions): Add mbslen. 2007-02-11 Bruno Haible Ensure O(n) worst-case complexity of strcasestr substitute. * lib/strcasestr.c: Include stdbool.h. (knuth_morris_pratt): New function. (strcasestr): Add some bookkeeping. Invoke knuth_morris_pratt when the bookkeeping indicates that it's worth it. * modules/strcasestr (Depends-on): Add stdbool, strnlen. * modules/strcasestr-tests: New file. * tests/test-strcasestr.c: New file. 2007-02-11 Bruno Haible Ensure O(n) worst-case complexity of c_strcasestr. * lib/c-strcasestr.c: Include stdbool.h, string.h. (knuth_morris_pratt): New function. (c_strcasestr): Add some bookkeeping. Invoke knuth_morris_pratt when the bookkeeping indicates that it's worth it. * modules/c-strcasestr (Depends-on): Add stdbool, strnlen. * modules/c-strcasestr-tests: New file. * tests/test-c-strcasestr.c: New file. 2007-02-11 Bruno Haible Ensure O(n) worst-case complexity of c_strstr. * lib/c-strstr.c: Include stdbool.h, string.h. (knuth_morris_pratt): New function. (c_strstr): Add some bookkeeping. Invoke knuth_morris_pratt when the bookkeeping indicates that it's worth it. * modules/c-strstr (Depends-on): Add stdbool, strnlen. * lib/c-strstr.c: Complete rewrite for maintainability. * modules/c-strstr-tests: New file. * tests/test-c-strstr.c: New file. 2007-02-11 Bruno Haible * m4/javacomp.m4 (gt_JAVACOMP): Work around a 'tr' bug in coreutils 5.2.1 and earlier, whereby \055 was treated just like the range delimiter '-'. Reported by Joel E. Denny . 2007-02-08 Bruno Haible * modules/regex (Depends-on): Add stdbool. Reported by Dalibor Topic . 2007-02-05 Paul Eggert * m4/regex.m4 (gl_REGEX): Check for glibc bug #3957. Prefer returning from main to exiting from it. Remove unnecessary parens after sizeof. 2007-02-05 Bruno Haible New module mbssep. * modules/mbssep: New file. * lib/mbssep.c: New file. * lib/string_.h (strsep): Add a conditional link warning. (mbssep): New declaration. * m4/mbssep.m4: New file. * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize GNULIB_MBSSEP. * modules/string (string.h): Also substitute GNULIB_MBSSEP. * MODULES.html.sh (Internationalization functions): Add mbssep. 2007-02-05 Bruno Haible * lib/strsep.c (strsep): Fix actions in case of no delimiters. Optimize search in case of 1 delimiter. 2007-02-05 Paolo Bonzini * lib/acl.h: Include sys/types.h before sys/acl.h. 2007-02-05 Paolo Bonzini Merge upstream fix for glibc bugzilla #3957: 2007-02-05 Jakub Jelinek * lib/regcomp.c (parse_bracket_exp): Set '\n' bit rather than '\0' bit for RE_HAT_LISTS_NOT_NEWLINE. (build_charclass_op): Remove bogus comment. 2007-02-05 Simon Josefsson * lib/gc.h, lib/gc-libgcrypt.c: Support SHA-256/384/512. 2007-02-04 Paul Eggert * lib/getsubopt.c [!_LIBC]: Include config.h and getsubopt.h. * lib/memmem.c [!defined _LIBC]: Include config.h. 2007-02-04 Bruno Haible * lib/string_.h (GL_LINK_WARNING2): Put the word "warning:" into the warning message. 2007-02-04 Bruno Haible New module mbstok_r. * modules/mbstok_r: New file. * lib/mbstok_r.c: New file. * lib/string_.h (strtok_r): Change argument names to match the comments. Add a conditional link warning. (mbstok_r): New declaration. * m4/mbstok_r.m4: New file. * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize GNULIB_MBSTOK_R. * modules/string (string.h): Also substitute GNULIB_MBSTOK_R. * MODULES.html.sh (Internationalization functions): Add mbstok_r. 2007-02-04 Bruno Haible New module mbsspn. * modules/mbsspn: New file. * lib/mbsspn.c: New file. * lib/string_.h (strspn): Add a conditional link warning. (mbsspn): New declaration. * m4/mbsspn.m4: New file. * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize GNULIB_MBSSPN. * modules/string (string.h): Also substitute GNULIB_MBSSPN. * MODULES.html.sh (Internationalization functions): Add mbsspn. 2007-02-04 Bruno Haible New module mbspbrk. * modules/mbspbrk: New file. * lib/mbspbrk.c: New file. * lib/string_.h (strpbrk): Add a conditional link warning. (mbspbrk): New declaration. * m4/mbspbrk.m4: New file. * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize GNULIB_MBSPBRK. * modules/string (string.h): Also substitute GNULIB_MBSPBRK. * MODULES.html.sh (Internationalization functions): Add mbspbrk. 2007-02-04 Bruno Haible New module mbscspn. * modules/mbscspn: New file. * lib/mbscspn.c: New file. * lib/string_.h (strcspn): Add a conditional link warning. (mbscspn): New declaration. * m4/mbscspn.m4: New file. * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize GNULIB_MBSCSPN. * modules/string (string.h): Also substitute GNULIB_MBSCSPN. * MODULES.html.sh (Internationalization functions): Add mbscspn. 2007-02-04 Bruno Haible New module mbscasestr, reduced goal of strcasestr. * modules/mbscasestr: New file. * lib/mbscasestr.c: New file, copied from lib/strcasestr.c. (mbscasestr): Renamed from strcasestr. * lib/strcasestr.c: Don't include mbuiter.h. (strcasestr): Remove support for multibyte locales. * lib/string_.h (strcasestr): Don`t rename. Declare only if missing. Change the conditional link warning. (mbscasestr): New declaration. * m4/mbscasestr.m4: New file. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Enable the replacement only if the system does not have strcasestr. Set HAVE_STRCASESTR instead of REPLACE_STRCASESTR. (gl_PREREQ_STRCASESTR): Don't require gl_FUNC_MBRTOWC. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize HAVE_STRCASESTR instead of REPLACE_STRCASESTR. (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize GNULIB_MBSCASESTR. * modules/string (string.h): Also substitute GNULIB_MBSCASESTR. Substitute HAVE_STRCASESTR instead of REPLACE_STRCASESTR. * modules/strcasestr (Files): Remove m4/mbrtowc.m4. (Depends-on): Remove mbuiter. * MODULES.html.sh (Internationalization functions): Add mbscasestr. 2007-02-04 Bruno Haible Simplify handling of strncasecmp. * lib/string_.h (strncasecmp): Remove test for GNULIB_STRCASE. Change the conditional link warning. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Initialize HAVE_STRCASECMP, not REPLACE_STRCASECMP. (gl_STRING_MODULE_INDICATOR_DEFAULTS): Don't initialize GNULIB_STRCASE. * modules/strcase (configure.ac): Don't invoke gl_STRING_MODULE_INDICATOR. * modules/string (string.h): Don't substitute GNULIB_STRCASE. 2007-02-04 Bruno Haible New module mbscasecmp, reduced goal of strcasecmp. * modules/mbscasecmp: New file. * lib/mbscasecmp.c: New file, copied from lib/strcasecmp.c. (mbscasecmp): Renamed from strcasecmp. * lib/strcasecmp.c: Don't include mbuiter.h. (strcasecmp): Remove support for multibyte locales. * lib/string_.h (strcasecmp): Don`t rename. Declare only if missing. Change the conditional link warning. (mbscasecmp): New declaration. * m4/mbscasecmp.m4: New file. * m4/strcase.m4 (gl_FUNC_STRCASECMP): Enable the replacement only if the system lacks strcasecmp. Set HAVE_STRCASECMP instead of REPLACE_STRCASECMP. (gl_PREREQ_STRCASECMP): Don't require gl_FUNC_MBRTOWC. * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize GNULIB_MBSCASECMP. * modules/string (string.h): Also substitute GNULIB_MBSCASECMP. Substitute HAVE_STRCASECMP instead of REPLACE_STRCASECMP. * modules/strcase (Files): Remove m4/mbrtowc.m4. (Depends-on): Remove mbuiter. * MODULES.html.sh (Internationalization functions): Add mbscasecmp. 2007-02-04 Bruno Haible New module mbsstr. Remove module strstr. * modules/mbsstr: New file. * modules/strstr: Remove file. * lib/mbsstr.c: Renamed from lib/strstr.c. (mbsstr): Renamed from strstr. * lib/string_.h (strstr): Remove declaration. Change the conditional link warning. (mbsstr): New declaration. * m4/mbsstr.m4: New file. * m4/strstr.m4: Remove file. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Don't initialize REPLACE_STRSTR. (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize GNULIB_MBSSTR. Don't initialize GNULIB_STRSTR. * modules/string (string.h): Also substitute GNULIB_MBSSTR. Don't substitute GNULIB_STRSTR and REPLACE_STRSTR. * MODULES.html.sh (Internationalization functions): Add mbsstr. (Support for systems lacking ANSI C 89): Remove strstr. 2007-02-04 Bruno Haible New module mbsrchr. * modules/mbsrchr: New file. * lib/mbsrchr.c: New file. * lib/string_.h (strrchr): Add a conditional link warning. (mbsrchr): New declaration. * m4/mbsrchr.m4: New file. * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize GNULIB_MBSRCHR. * modules/string (string.h): Also substitute GNULIB_MBSRCHR. * MODULES.html.sh (Internationalization functions): Add mbsrchr. 2007-02-04 Bruno Haible New module mbschr. * modules/mbschr: New file. * lib/mbschr.c: New file. * lib/string_.h (strchr): Add a conditional link warning. (mbschr): New declaration. * m4/mbschr.m4: New file. * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR_DEFAULTS): Initialize GNULIB_MBSCHR. * modules/string (string.h): Also substitute GNULIB_MBSCHR. * MODULES.html.sh (Internationalization functions): Add mbschr. 2007-02-04 Paul Eggert * lib/stdbool_.h: Mention that bool bit-fields aren't supported. * modules/stdarg (configure.ac-early): Require AC_PROG_CC_STDC. 2007-02-04 Bruno Haible New module description section 'configure.ac-early'. * gnulib-tool (sed_extract_prog): Recognize configure.ac-early. (func_get_autoconf_early_snippet): New function. (func_import, func_create_testdir): Use it. Remove special cases for modules 'extensions' and 'lock'. * modules/extensions (configure.ac-early): Require gl_USE_SYSTEM_EXTENSIONS. * modules/lock (configure.ac-early): Require gl_LOCK_EARLY. 2007-02-04 Bruno Haible Make use of gcj-4.3's -fsource and -ftarget option. * m4/javacomp.m4 (gt_JAVACOMP): Test whether gcj is in version >= 4.3, and if so try the options -fsource and -ftarget. * lib/javacomp.c (compile_using_gcj): Add fsource_option, source_version, ftarget_option, target_version arguments. (is_envjavac_gcj43, is_envjavac_gcj43_usable): New functions. (is_envjavac_oldgcj_14_14_usable): Renamed from is_envjavac_gcj_14_14_usable. (is_envjavac_oldgcj_14_13_usable): Renamed from is_envjavac_gcj_14_13_usable. (is_gcj_present): Update. (is_gcj_43, is_gcj43_usable): New functions. (is_oldgcj_14_14_usable): Renamed from is_gcj_14_14_usable. Update. (is_oldgcj_14_13_usable): Renamed from is_gcj_14_13_usable. Update. (compile_java_class): Test whether gcj is in version >= 4.3, and if so try the options -fsource and -ftarget. 2007-02-03 Paul Eggert * lib/xalloc.h (x2nrealloc): Fix an unlikely bug in the overflow checking code. Set N = ceil (1.5 * N) rather than to a slightly larger value. 2007-02-03 Jim Meyering Give tools a better chance to allocate space for very large buffers. * lib/xalloc.h (x2nrealloc): Use 3/2, not 2, as buffer size factor. Make pwd and readlink work also when run with an unreadable parent dir on systems with openat support. * lib/getcwd.c (__getcwd) [HAVE_PARTLY_WORKING_GETCWD]: Use the system provided getcwd function, even when we have openat support. Reported by Dmitry V. Levin in . 2007-02-02 Bruno Haible * lib/string_.h (memmem, mempcpy, memrchr, stpcpy, stpncpy, strchrnul, strdup, strndup, strnlen, strpbrk, strsep, strtok_r): Provoke a link error only if GNULIB_POSIXCHECK is defined. Needed to avoid artificial portability problems if one of these functions is only used on specific platforms. Reported by Paul Eggert. 2007-02-02 Paul Eggert Avoid mempcpy in the regex code, as the string.h mempcpy stuff is causing more trouble than it's curing. * lib/regex_internal.h (__mempcpy): Remove. * lib/regcomp.c (regerror): Rewrite to avoid the need for mempcpy (and make the code a tad smaller to boot). * m4/regex.m4 (gl_PREREQ_REGEX): Don't check for mempcpy. 2007-02-02 Jim Meyering * modules/arpa_inet: Put AC_PROG_MKDIR_P in the configure.ac: section, not in the Makefile.am: one. 2007-02-02 Eric Blake * lib/strchrnul.c: Always include config.h first. * modules/mountlist (Depends-on): Revert 2007-01-31 change, gnulib strstr is not necessary here. 2007-02-02 Simon Josefsson * m4/socklen.m4: Fix typo. 2007-02-02 Eric Blake * modules/arpa_inet (Makefile.am): Use MKDIR_P to avoid races. * modules/netinet_in (Makefile.am): Likewise. 2007-02-01 Bruno Haible * lib/string_.h (GL_LINK_WARNING): New macro. (strcasecmp, strstr, strcasestr): If provided by the system, conditionally define as a macro that leads to a warning instead of to an error. (strncasecmp): Conditionally define as a macro that leads to a warning. 2007-02-01 Karl Berry * config/srclist.txt (strtok_r.c): lose sync, no more strtok_r.h. 2007-02-01 Bruno Haible * MODULES.html.sh (Unicode string functions): Update after 2007-01-27 renamings. 2007-02-01 Eric Blake * modules/regex (Depends-on): Revert dependence on mempcpy. * lib/regex_internal.h [! _LIBC && !__mempcpy]: Undo string module's definition of mempcpy. Reported by Paul Eggert. 2007-02-01 Paul Eggert * lib/string_.h: If the gnulib module XYZ is not present, undefine the symbol XYZ before redefining it. This fixes a problem with programs that don't use XYZ, when compiled on systems that define XYZ to something else. 2007-01-31 Paul Eggert * lib/mkdir-p.c (make_dir_parents): Close a race condition that occurs when "mkdir -m foo" creates a setgid directory that is (1) writeable to group or other and (2) is intended to have a special mode bit that is set or cleared. In such a case, the directory should be neither group- nor other-writeable until the special mode bits are right. 2007-01-31 Eric Blake * modules/mountlist (Depends-on): Add strstr. * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR): Correct m4 usage bug. * modules/string (Makefile.am): Remove redundant replacement. * modules/regex (Depends-on): Add mempcpy. 2007-01-31 Bruno Haible New module description field 'Link'. * gnulib-tool (func_usage): Document --extract-link-directive. (sed_extract_prog): Recognize 'Link' directive. (func_get_link_directive): New function. (func_import): Show summary of link directives. Handle --extract-link-directive option. * modules/acl (Link): New section. * modules/clock-time (Link): New section. * modules/euidaccess (Link): New section. * modules/gettext (Link): New section. * modules/iconv (Link): New section. * modules/lock (Link): New section. * modules/nanosleep (Link): New section. * modules/readline (Link): New section. 2007-01-27 Bruno Haible Enforce the use of gnulib modules for unportable functions. * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR): New macro. (gl_STRING_MODULE_INDICATOR_DEFAULTS): New macro. (gl_HEADER_STRING_H_BODY): Require it. * lib/string_.h: If the gnulib module XYZ is not present, redefine the symbol XYZ to one that gives a link error. * modules/string (Makefile.am): Also substitute the GNULIB_* variables. * modules/memmem (configure.ac): Invoke gl_STRING_MODULE_INDICATOR. * modules/mempcpy (configure.ac): Likewise. * modules/memrchr (configure.ac): Likewise. * modules/stpcpy (configure.ac): Likewise. * modules/stpncpy (configure.ac): Likewise. * modules/strcase (configure.ac): Likewise. * modules/strcasestr (configure.ac): Likewise. * modules/strchrnul (configure.ac): Likewise. * modules/strdup (configure.ac): Likewise. * modules/strndup (configure.ac): Likewise. * modules/strnlen (configure.ac): Likewise. * modules/strpbrk (configure.ac): Likewise. * modules/strsep (configure.ac): Likewise. * modules/strstr (configure.ac): Likewise. * modules/strtok_r (configure.ac): Likewise. 2007-01-31 Jean-Louis Martineau (tiny change) * lib/gai_strerror.c (values): Add EAI_OVERFLOW. 2007-01-30 Jim Meyering * lib/mpsort.c (mpsort): Remove spurious "return" in void function. 2007-01-29 Bruno Haible * lib/allocsa.h: Use '#if HAVE_*' instead of '#ifdef HAVE_*'. * lib/execute.c: Likewise. * lib/pipe.c: Likewise. * lib/printf-args.h: Likewise. * lib/printf-args.c: Likewise. * lib/printf-parse.c: Likewise. * lib/vasnprintf.c: Likewise. 2007-01-29 Eric Blake * lib/memrchr.c: Assume unconditionally, to pull in declaration. 2007-01-29 Paul Eggert * lib/strptime.h (strptime): Use 'restrict' for args where POSIX requires this. * lib/strptime.c (strptime): Likewise. Change license notice from LGPL to GPL, since gnulib-tool will change this as needed. Include if _LIBC is not defined, not if HAVE_CONFIG_H is defined. Include "strptime.h" first, to check interface. Do not #undef _LIBC and _NL_CURRENT. Do not include ; no longer needed. Include "time_r.h" and declare ptime_locale_status only if _LIBC is not defined. (__P): Remove unused macro. (match_string): Bring back glibc version, but use it only if _LIBC is defined. (__strptime_internal): Compile tm_gmtoff code if _LIBC is defined, too. Remove unnecessary assertion and abort() call. Use #ifdef _NL_CURRENT rather than #if 0, for benefit of glibc. * m4/strptime.m4: Fix serial number comment. (gl_FUNC_STRPTIME): Require AC_C_RESTRICT, gl_TM_GMTOFF. * modules/strptime (Files): Add m4/tm_gmtoff.m4. (Depends-on): Add time_r. 2007-01-29 Bruno Haible * MODULES.html.sh (Support for systems lacking POSIX:2001): Add strptime. * modules/strptime (Depends-on): Add stdbool. * lib/strptime.h: Include always. Add comments. 2007-01-29 Yoann Vandoorselaere * modules/strptime: New file. * lib/strptime.h: New file. * lib/strptime.c: New file. * m4/strptime.m4: New file. 2007-01-28 Paul Eggert * MODULES.html.sh: New module mpsort. * lib/mpsort.c, lib/mpsort.h, m4/mpsort.m4, modules/mpsort: New files. * lib/regex.h (_Restrict_): Renamed from __restrict, to avoid a circularity problem with HP-UX ia64 reported by Bob Proulx in . All uses changed. (_Restrict_arr_): Renamed from __restrict_arr, for similar reasons. All uses changed. * lib/regcomp.c, lib/regexec.c: Change all uses from __restrict to _Restrict_. * lib/regexec.c (regexec): Declare pmatch with _Restrict_arr_, so that the parameter matches the prototype. 2007-01-28 Jim Meyering * modules/sys_time (Makefile.am) [MOSTLYCLEANFILES]: Do use sys/time.h here, reverting that part of the previous patch: . 2007-01-28 Bruno Haible * modules/sys_time (Makefile.am): Build sys/time.h only when it's the value of $(SYS_TIME_H). [MOSTLYCLEANFILES]: Now that sys/time.h is created only when needed, remove it conditionally, too. [added by Jim Meyering] * m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Set SYS_TIME_H. * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): (gl_FUNC_GETTIMEOFDAY_CLOBBER): Set SYS_TIME_H when setting GETTIMEOFDAY_REPLACEMENT to 1. 2007-01-28 Bruno Haible * m4/unistd_h.m4 (gl_HEADER_UNISTD_DEFAULTS): New macro. (gl_HEADER_UNISTD): Require it. Don't set UNISTD_H to empty here. * m4/fchdir.m4 (gl_FUNC_FCHDIR): Require gl_HEADER_UNISTD_DEFAULTS. Set UNISTD_H instead of UNISTD_H2. * modules/fchdir (BUILT_SOURCES): Drop $(UNISTD_H2). 2007-01-28 Bruno Haible * modules/mbchar (Makefile.am): Add mbchar.c to lib_SOURCES. * m4/mbchar.m4 (gl_MBCHAR): Remove AC_LIBOBJ invocation. 2007-01-28 Ralf Wildenhues * gnulib-tool (func_emit_lib_Makefile_am, func_add_or_update) (func_create_testdir): Ensure C locale for `grep' and `tr' character ranges. (func_create_megatestdir): Avoid one `grep'. Fix bug in ACLOCAL_AMFLAGS parsing state machine. 2007-01-27 Bruno Haible * modules/unistr/base: Update. 2007-01-27 Bruno Haible Rename u32-mbtouc -> u32-mbtouc-unsafe, u32-mbtouc-safe -> u32-mbtouc, u32_mbtouc -> u32_mbtouc_unsafe, u32_mbtouc_safe -> u32_mbtouc. * modules/unistr/u32-mbtouc-unsafe: Renamed from modules/unistr/u32-mbtouc. * lib/unistr/u32-mbtouc-unsafe.c: Renamed from lib/unistr/u32-mbtouc.c. * lib/unistr.h: Update. * lib/linebreak.c: Update. * modules/unistr/u32-mbtouc: Renamed from modules/unistr/u32-mbtouc-safe. * lib/unistr/u32-mbtouc.c: Renamed from lib/unistr/u32-mbtouc-safe.c. * lib/unistr.h: Update. * lib/unistr/u32-to-u8.c: Update. * lib/unistr/u32-to-u16.c: Update. 2007-01-27 Bruno Haible Rename utf16-ucs4 -> utf16-ucs4-unsafe, utf16-ucs4-safe -> utf16-ucs4, u16_mbtouc -> u16_mbtouc_unsafe, u16_mbtouc_safe -> u16_mbtouc. * modules/utf16-ucs4-unsafe: Renamed from modules/utf16-ucs4. * lib/utf16-ucs4-unsafe.h: Renamed from lib/utf16-ucs4.h. * lib/unistr/utf16-ucs4-unsafe.c: Renamed from lib/unistr/utf16-ucs4.c. * modules/unistr/u16-mbtouc-unsafe: Renamed from modules/unistr/u16-mbtouc. * lib/unistr/u16-mbtouc-unsafe.c: Renamed from lib/unistr/u16-mbtouc.c. * lib/unistr.h: Update. * lib/linebreak.c: Update. * modules/linebreak: Update. * modules/utf16-ucs4: Renamed from modules/utf16-ucs4-safe. * lib/utf16-ucs4.h: Renamed from lib/utf16-ucs4-safe.h. * lib/unistr/utf16-ucs4.c: Renamed from lib/unistr/utf16-ucs4-safe.c. * modules/unistr/u16-mbtouc: Renamed from modules/unistr/u16-mbtouc-safe. * lib/unistr/u16-mbtouc.c: Renamed from lib/unistr/u16-mbtouc-safe.c. * lib/unistr.h: Update. * lib/unistr/u16-to-u8.c: Update. * modules/unistr/u16-to-u8: Update. * lib/unistr/u16-to-u32.c: Update. * modules/unistr/u16-to-u32: Update. 2007-01-27 Bruno Haible Rename utf8-ucs4 -> utf8-ucs4-unsafe, utf8-ucs4-safe -> utf8-ucs4, u8_mbtouc -> u8_mbtouc_unsafe, u8_mbtouc_safe -> u8_mbtouc. * modules/utf8-ucs4-unsafe: Renamed from modules/utf8-ucs4. * lib/utf8-ucs4-unsafe.h: Renamed from lib/utf8-ucs4.h. * lib/unistr/utf8-ucs4-unsafe.c: Renamed from lib/unistr/utf8-ucs4.c. * modules/unistr/u8-mbtouc-unsafe: Renamed from modules/unistr/u8-mbtouc. * lib/unistr/u8-mbtouc-unsafe.c: Renamed from lib/unistr/u8-mbtouc.c. * lib/unistr.h: Update. * lib/striconveh.c: Update. * modules/striconveh: Update. * lib/linebreak.c: Update. * modules/linebreak: Update. * modules/utf8-ucs4: Renamed from modules/utf8-ucs4-safe. * lib/utf8-ucs4.h: Renamed from lib/utf8-ucs4-safe.h. * lib/unistr/utf8-ucs4.c: Renamed from lib/unistr/utf8-ucs4-safe.c. * modules/unistr/u8-mbtouc: Renamed from modules/unistr/u8-mbtouc-safe. * lib/unistr/u8-mbtouc.c: Renamed from lib/unistr/u8-mbtouc-safe.c. * lib/unistr.h: Update. * lib/striconveh.c: Update. * modules/striconveh: Update. * lib/unistr/u8-to-u16.c: Update. * modules/unistr/u8-to-u16: Update. * lib/unistr/u8-to-u32.c: Update. * modules/unistr/u8-to-u32: Update. 2007-01-27 Ralf Wildenhues Sync from Libtool. * lib/argz.c: Do not include strings.h nor memory.h, include string.h unconditionally. Patch by Simon Josefsson. 2007-01-27 Bruno Haible * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): New macro, extracted from gl_HEADER_STRING_H_BODY. (gl_HEADER_STRING_H_BODY): Require it. * m4/memmem.m4 (gl_FUNC_MEMMEM): Require gl_HEADER_STRING_H_DEFAULTS. * m4/mempcpy.m4 (gl_FUNC_MEMPCPY): Likewise. * m4/memrchr.m4 (gl_FUNC_MEMRCHR): Likewise. * m4/stpcpy.m4 (gl_FUNC_STPCPY): Likewise. * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Likewise. * m4/strcase.m4 (gl_FUNC_STRCASECMP, gl_FUNC_STRNCASECMP): Likewise. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Likewise. * m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Likewise. * m4/strdup.m4 (gl_FUNC_STRDUP): Likewise. * m4/strndup.m4 (gl_FUNC_STRNDUP): Likewise. * m4/strnlen.m4 (gl_FUNC_STRNLEN): Likewise. * m4/strpbrk.m4 (gl_FUNC_STRPBRK): Likewise. * m4/strsep.m4 (gl_FUNC_STRSEP): Likewise. * m4/strstr.m4 (gl_FUNC_STRSTR): Likewise. * m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Likewise. 2007-01-27 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am): If $for_test is true, turn check_PROGRAMS into noinst_PROGRAMS. (func_emit_tests_Makefile_am): Likewise. Also don't initialize check_PROGRAMS in this case. (func_import): Set for_test to false. (func_create_testdir): Set for_test to true. 2007-01-27 Yoann Vandoorselaere Bruno Haible * modules/strcasestr (Files): Remove lib/strcasestr.h. (Depends-on): Add string. (Includes): Use instead of strcasestr.h. * modules/string (Makefile.am): Also substitute the value of REPLACE_STRCASESTR. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Don't define strcasestr here; assume strcasestr is declared in not . Also set REPLACE_STRCASESTR. * m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Provide a default value for REPLACE_STRCASESTR. * lib/strcasestr.h: Remove file. * lib/strcasestr.c: Include instead of strcasestr.h. * lib/string_.h (strcasestr): New declaration. 2007-01-27 Bruno Haible * lib/string_.h: Use 'extern'. 2007-01-27 Jim Meyering * lib/regex_internal.c (re_string_reconstruct): Remove declaration of set-but-not-used local, "q". * lib/mempcpy.c: Include before . This fixes a compilation error on HP-UX, due to the system's "restrict"-using mempcpy prototype. 2007-01-26 Bruno Haible Small optimization. * lib/javacomp.c: Include c-strstr.h. (is_envjavac_gcj): Use c_strstr instead of strstr. * modules/javacomp (Depends-on): Add c-strstr, remove strstr. 2007-01-26 Bruno Haible * MODULES.html.sh (Unicode string functions): Add the new modules. * modules/uniconv/u32-strconv-to-locale: New file. * lib/uniconv/u32-strconv-to-locale.c: New file. * modules/uniconv/u16-strconv-to-locale: New file. * lib/uniconv/u16-strconv-to-locale.c: New file. * modules/uniconv/u8-strconv-to-locale: New file. * lib/uniconv/u8-strconv-to-locale.c: New file. * modules/uniconv/u32-strconv-from-locale: New file. * lib/uniconv/u32-strconv-from-locale.c: New file. * modules/uniconv/u16-strconv-from-locale: New file. * lib/uniconv/u16-strconv-from-locale.c: New file. * modules/uniconv/u8-strconv-from-locale: New file. * lib/uniconv/u8-strconv-from-locale.c: New file. * modules/uniconv/u32-strconv-to-enc: New file. * lib/uniconv/u32-strconv-to-enc.c: New file. * modules/uniconv/u32-strconv-to-enc-tests: New file. * tests/uniconv/test-u32-strconv-to-enc.c: New file. * modules/uniconv/u16-strconv-to-enc: New file. * lib/uniconv/u16-strconv-to-enc.c: New file. * lib/uniconv/u-strconv-to-enc.h: New file. * modules/uniconv/u16-strconv-to-enc-tests: New file. * tests/uniconv/test-u16-strconv-to-enc.c: New file. * modules/uniconv/u8-strconv-to-enc: New file. * lib/uniconv/u8-strconv-to-enc.c: New file. * modules/uniconv/u8-strconv-to-enc-tests: New file. * tests/uniconv/test-u8-strconv-to-enc.c: New file. * modules/uniconv/u32-strconv-from-enc: New file. * lib/uniconv/u32-strconv-from-enc.c: New file. * modules/uniconv/u32-strconv-from-enc-tests: New file. * tests/uniconv/test-u32-strconv-from-enc.c: New file. * modules/uniconv/u16-strconv-from-enc: New file. * lib/uniconv/u16-strconv-from-enc.c: New file. * modules/uniconv/u16-strconv-from-enc-tests: New file. * tests/uniconv/test-u16-strconv-from-enc.c: New file. * modules/uniconv/u8-strconv-from-enc: New file. * lib/uniconv/u8-strconv-from-enc.c: New file. * lib/uniconv/u-strconv-from-enc.h: New file. * modules/uniconv/u8-strconv-from-enc-tests: New file. * tests/uniconv/test-u8-strconv-from-enc.c: New file. * modules/uniconv/u32-conv-from-enc: New file. * lib/uniconv/u32-conv-from-enc.c: New file. * modules/uniconv/u32-conv-from-enc-tests: New file. * tests/uniconv/test-u32-conv-from-enc.c: New file. * modules/uniconv/u16-conv-from-enc: New file. * lib/uniconv/u16-conv-from-enc.c: New file. * lib/uniconv/u-conv-from-enc.h: New file. * modules/uniconv/u16-conv-from-enc-tests: New file. * tests/uniconv/test-u16-conv-from-enc.c: New file. * modules/uniconv/u8-conv-from-enc: New file. * lib/uniconv/u8-conv-from-enc.c: New file. * modules/uniconv/u8-conv-from-enc-tests: New file. * tests/uniconv/test-u8-conv-from-enc.c: New file. * modules/uniconv/base: New file. * lib/uniconv.h: New file. 2007-01-26 Paul Eggert * doc/gnulib-tool.texi (Initial import): Update to match current behavior with strdup module. * lib/.cppi-disable: Remove strcase.h, strdup.h, strndup.h, strnlen.h. * lib/memmem.h: Remove; all uses removed. This is now done by . * lib/mempcpy.h: Likewise. * lib/memrchr.h: Likewise. * lib/stpcpy.h: Likewise. * lib/stpncpy.h: Likewise. * lib/strcase.h: Likewise. * lib/strchrnul.h: Likewise. * lib/strdup.h: Likewise. * lib/strndup.h: Likewise. * lib/strnlen.h: Likewise. * lib/strpbrk.h: Likewise. * lib/strsep.h: Likewise. * lib/strstr.h: Likewise. * lib/strtok_r.h: Likewise. * lib/string_.h: New file. * lib/argp-namefrob.h: Don't include no-longer-existent include files. Rely on instead. * lib/canon-host.c: Likewise. * lib/chdir-long.c: Likewise. * lib/concatpath.c: Likewise. * lib/exclude.c: Likewise. * lib/fchdir.c: Likewise. * lib/getaddrinfo.c: Likewise. * lib/getcwd.c: Likewise. * lib/getsubopt.c: Likewise. * lib/glob.c: Likewise. * lib/hard-locale.c: Likewise. * lib/iconvme.c: Likewise. * lib/javacomp.c: Likewise. * lib/mempcpy.c: Likewise. * lib/memrchr.c: Likewise. * lib/regex_internal.h: Likewise. * lib/stpncpy.c: Likewise. * lib/strcasecmp.c: Likewise. * lib/strchrnul.c: Likewise. * lib/strdup.c: Likewise. * lib/striconv.c: Likewise. * lib/striconveh.c: Likewise. * lib/striconveha.c: Likewise. * lib/strncasecmp.c: Likewise. * lib/strndup.c: Likewise. * lib/strnlen.c: Likewise. * lib/strsep.c: Likewise. * lib/strstr.c: Likewise. * lib/strtok_r.c: Likewise. * lib/userspec.c: Likewise. * lib/w32spawn.h: Likewise. * lib/xstrndup.c: Likewise. * lib/mountlist.c (strstr): Remove decl. * m4/string_h.m4: New file. * m4/memmem.m4 (gl_FUNC_MEMMEM): Set HAVE_DECL_MEMMEM if necessary. * m4/mempcpy.m4 (gl_FUNC_MEMPCPY): Set HAVE_MEMPCPY if necessary. * m4/memrchr.m4 (gl_FUNC_MEMRCHR): Set HAVE_MEMRCHR * m4/stpcpy.m4 (gl_FUNC_STPCPY): Set HAVE_STPCPY if necessary. * m4/stpncpy.m4 (gl_PREREQ_STPNCPY): Set HAVE_STPNCPY if necessary. * m4/strcase.m4 (gl_FUNC_STRCASECMP): Set REPLACE_STRCASECMP if necessary. (gl_FUNC_STRNCASECMP): Set HAVE_DECL_STRNCASECMP if necessary. * m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Set HAVE_STRCHRNUL if necessary. * m4/strdup.m4 (gl_FUNC_STRDUP): Set HAVE_DECL_STRDUP if necessary. * m4/strndup.m4 (gl_FUNC_STRNDUP): Set HAVE_DECL_STRNLEN and HAVE_DECL_STRDUP if necessary. (gl_PREREQ_STRNLEN): Don't bother to check for strnlen decl, since gl_FUNC_STRNDUP does that now. * m4/strnlen.m4 (gl_FUNC_STRNLEN): Set HAVE_DECL_STRNLEN if necessary. Check for decl here... (gl_PREREQ_STRNLEN): ... not here. * m4/strpbrk.m4 (gl_FUNC_STRPBRK): Set HAVE_STRPBRK if necessary. * m4/strsep.m4 (gl_FUNC_STRSEP): Set HAVE_STRSEP if necessary. * m4/strstr.m4 (gl_FUNC_STRSTR): Set REPLACE_STRSTR if necessary. * m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Set HAVE_DECL_STRTOK_R if necessary. * modules/string: New file. * modules/memmem (Files): Remove special-purpose include file. (Depends-on): Add string. (Include): Include , not the removed file. * modules/mempcpy: Likewise. * modules/memrchr: Likewise. * modules/stpcpy: Likewise. * modules/stpncpy: Likewise. * modules/strcase: Likewise. * modules/strchrnul: Likewise. * modules/strdup: Likewise. * modules/strndup: Likewise. * modules/strnlen: Likewise. * modules/strpbrk: Likewise. * modules/strsep: Likewise. * modules/strstr: Likewise. * modules/strtok_r: Likewise. * tests/test-dirname.c: Don't include "strdup.h", since now suffices. * tests/test-memmem.c: Don't include "memmem.h", since now suffices. 2007-01-25 Bruno Haible * lib/striconveh.c (mem_cd_iconveh_internal): Ignore *lengthp if *resultp is 0. * lib/unistr/u16-to-u8.c (u16_to_u8): Fix u8_uctomb invocation. * lib/unistr/u32-to-u8.c (u32_to_u8): Likewise. * lib/unistr/u8-to-u16.c (u8_to_u16): Fix u16_uctomb invocation. * lib/unistr/u32-to-u16.c (u32_to_u16): Likewise. * modules/unistr/u8-to-u16 (Depends-on): Add missing modules. * modules/unistr/u8-to-u32 (Depends-on): Add missing modules. * modules/unistr/u16-to-u8 (Depends-on): Add missing modules. * modules/unistr/u16-to-u32 (Depends-on): Add missing modules. * modules/unistr/u32-to-u8 (Depends-on): Add missing modules. * modules/unistr/u32-to-u16 (Depends-on): Add missing modules. 2007-01-24 Bruno Haible Don't AC_REQUIRE autoconf macros that invoke AC_LIBOBJ. See . * m4/argp.m4 (gl_ARGP): Invoke, don't require, gl_GETOPT_SUBSTITUTE. * m4/fts.m4 (gl_FUNC_FTS, gl_FUNC_FTS_LGPL): Invoke, don't require, gl_FUNC_FTS_CORE. (gl_FUNC_FTS_CORE): Invoke, don't require, gl_FUNC_OPENAT. * m4/lstat.m4 (gl_FUNC_LSTAT): Invoke, don't require, AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK. * m4/memcmp.m4 (gl_FUNC_MEMCMP): Invoke, don't require, AC_FUNC_MEMCMP. * m4/mktime.m4 (gl_FUNC_MKTIME): Invoke, don't require, AC_FUNC_MKTIME. * m4/openat.m4 (gl_FUNC_OPENAT): Invoke, don't require, gl_FUNC_FCHOWNAT. * m4/strftime.m4 (gl_FUNC_GNU_STRFTIME): Invoke, don't require, gl_FUNC_STRFTIME. * m4/strtod.m4 (gl_FUNC_STRTOD): Invoke, don't require, AC_FUNC_STRTOD. Reported by Ralf Wildenhues. 2007-01-24 Bruno Haible Drop AC_REQUIRE calls that are redundant with the module dependencies. * m4/canon-host.m4 (gl_PREREQ_CANON_HOST): Don't require gl_GETADDRINFO. * m4/chdir-long.m4 (gl_PREREQ_CHDIR_LONG): Don't require AM_STDBOOL_H, gl_FUNC_MEMPCPY, gl_FUNC_OPENAT, gl_FUNC_MEMRCHR. * m4/openat.m4 (gl_PREREQ_OPENAT): Don't require gl_SAVE_CWD. 2007-01-24 Paul Eggert * m4/fnmatch.m4 (_AC_FUNC_FNMATCH_IF): Add test for glibc bug 361. Don't use 'exit'; just return from 'main'. (_AC_LIBOBJ_FNMATCH): Check for headers and functions just once. * lib/fnmatch_.h: Readjust white space and comments to match glibc, to avoid spurious diffs. 2007-01-23 Paul Eggert * lib/fnmatch_loop.c (internal_fnmatch) [!_LIBC]: #if-out the 2004-12-01 change by Jakub Jelinek, since this code won't compile if !LIBC. Problem reported by Bob Proulx. 2007-01-23 Bruno Haible * lib/striconveh.c: Include c-strcaseeq.h. (mem_iconveh, str_iconveh): Use STRCASEEQ instead of c_strcasecmp. * modules/striconveh (Depends-on): Add c-strcaseeq. 2007-01-23 Bruno Haible * MODULES.html.sh (String handling): Add streq, c-strcaseeq. * modules/c-strcaseeq: New file. * lib/c-strcaseeq.h: New file. * modules/streq: New file. * lib/streq.h: New file. 2007-01-23 Bruno Haible * modules/striconveha-tests: New file. * tests/test-striconveha.c: New file. * lib/striconveha.h: Include . (mem_iconveha, str_iconveha): Add 'transliterate' argument. * lib/striconveha.c: Include allocsa.h, strdup.h, c-strcase.h. (mem_iconveha_notranslit): Renamed from mem_iconveha. (mem_iconveha): New function. (str_iconveha_notranslit): Renamed from str_iconveha. (str_iconveha): New function. * modules/striconveha (Depends-on): Add stdbool, allocsa, strdup, c-strcase. 2007-01-23 Bruno Haible * lib/striconveha.c (mem_iconveha): Fix endless recursion. Try all encodings without forgiving before trying any encoding with handler. (str_iconveha): Try all encodings without forgiving before trying any encoding with handler. 2007-01-23 Paul Eggert Import the following changes from libc. 2005-10-14 Ulrich Drepper * lib/fnmatch_loop.c: Adjust for changed secondary hash function. 2004-12-01 Jakub Jelinek * lib/fnmatch_loop.c (internal_fnmatch): Clear is_seqval after normal_bracket label. 2004-09-01 Jakub Jelinek [BZ #361] * lib/fnmatch_loop.c (FCT): For backslash between brackets, branch to normal_bracket after fetching the next character. 2007-01-22 Bruno Haible * lib/striconveh.h (mem_cd_iconveh, mem_iconveh): Add 'offsets' argument. * lib/striconveh.c (iconv_carefully_1): New function. (mem_cd_iconveh_internal, mem_cd_iconveh, mem_iconveh): Add 'offsets' argument. (str_cd_iconveh): Update. * lib/striconveha.h (mem_iconveha): Add 'offsets' argument. * lib/striconveha.c (mem_iconveha): Add 'offsets' argument. * tests/test-striconveh.c (MAGIC): New macro. (new_offsets): New function. (main): Test call with and without offsets. 2007-01-22 Bruno Haible * modules/sys_stat (Makefile.am): Use @MKDIR_P@ instead of $(MKDIR_P). * modules/sys_select (Makefile.am): Likewise. * modules/sys_socket (Makefile.am): Likewise. * modules/sys_time (Makefile.am): Likewise. 2007-01-22 Paul Eggert * modules/gettimeofday (License): Change from GPL to LGPL, since gettimeofday is a library function. 2007-01-22 Yoann Vandoorselaere * lib/poll.c (rpl_poll): Don't check against FD_SETSIZE under Win32. 2007-01-21 Bruno Haible * m4/gnulib-common.m4 (AC_PROG_MKDIR_P): New macro. 2007-01-21 Bruno Haible * modules/striconveha: New file. * lib/striconveha.h: New file. * lib/striconveha.c: New file. * MODULES.html.sh (Internationalization functions): Add striconveha. * lib/striconv.c (str_iconv): Optimize the case of an empty input string. * lib/striconveh.c (mem_iconveh, str_iconveh): Likewise. 2007-01-21 Bruno Haible * lib/striconv.c (str_iconv): Guarantee errno is set when strdup fails. * lib/striconveh.c (str_iconveh): Likewise. 2007-01-21 Bruno Haible * lib/striconveh.h (mem_iconveh): New declaration. * lib/striconveh.c (mem_iconveh): New function. * tests/test-striconveh.c (main): Add tests for mem_iconveh. 2007-01-21 Bruno Haible * lib/xstriconv.h (xmem_cd_iconv): Change specification. * lib/striconveh.h (mem_cd_iconveh): Change specification. * lib/striconveh.c (mem_cd_iconveh): Don't free the user-supplied original result buffer. (str_cd_iconveh): Update. * tests/test-striconveh.c (main): Update. * lib/striconv.h (mem_cd_iconv): Change specification. * lib/striconv.c (mem_cd_iconv): Don't free the user-supplied original result buffer. (str_cd_iconv): Update. * tests/test-striconv.c (main): Update. 2007-01-21 Bruno Haible * gnulib-tool: Fix test whether sed is GNU sed supporting --posix. 2007-01-20 Jim Meyering * lib/userspec.c (parse_with_separator): If a user or group string starts with "+", skip the corresponding name-to-ID look-up, since such a look-up must fail: user and group names may not include "+". 2007-01-19 Paul Eggert * lib/poll.c: Include sys/time.h and time.h unconditionally, since we now assume the sys_time module. * m4/poll.m4 (gl_PREREQ_POLL): Don't require AC_HEADER_TIME or check for sys/time.h; no longer needed. * modules/poll (Depends-on): Depend on sys_time. 2007-01-18 Bruno Haible * m4/mktime.m4 (AC_FUNC_MKTIME): Remove test for . * m4/strftime.m4 (gl_FUNC_STRFTIME): Likewise. * m4/tempname.m4 (gl_PREREQ_TEMPNAME): Remove tests for sys/time.h and gettimeofday. * tests/test-gettimeofday.c: Include . (dummy): Remove variable. * m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Renamed from gl_HEADER_SYS_TIME_H. (gl_HEADER_SYS_TIME_H): New macro. * lib/sys_time_.h: Test GETTIMEOFDAY_REPLACEMENT instead of HAVE_GETTIMEOFDAY_POSIX_SIGNATURE and GETTIMEOFDAY_CLOBBERS_LOCALTIME. * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY, gl_FUNC_GETTIMEOFDAY_CLOBBER): Set GETTIMEOFDAY_REPLACEMENT instead of HAVE_GETTIMEOFDAY_POSIX_SIGNATURE and GETTIMEOFDAY_CLOBBERS_LOCALTIME. * m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H): Initialize GETTIMEOFDAY_REPLACEMENT instead of HAVE_GETTIMEOFDAY_POSIX_SIGNATURE and GETTIMEOFDAY_CLOBBERS_LOCALTIME. * modules/sys_time (sys/time.h): Substitute GETTIMEOFDAY_REPLACEMENT instead of HAVE_GETTIMEOFDAY_POSIX_SIGNATURE and GETTIMEOFDAY_CLOBBERS_LOCALTIME. * m4/gettimeofday.m4 (gl_GETTIMEOFDAY_REPLACE_LOCALTIME): Undo the last change; it caused a compilation error when cross-compiling to Cygwin. 2007-01-18 Jim Meyering Use "$(MKDIR_P) sys", not race-prone "test -d sys || mkdir sys". * modules/sys_stat (Makefile.am): Use "$(MKDIR_P) sys", rather than the race-prone "test -d sys || mkdir sys". (configure.ac): Use AC_PROG_MKDIR_P. * modules/sys_select: Likewise. * modules/sys_socket: Likewise. * modules/sys_time: Likewise. 2007-01-18 Eric Blake * m4/gettimeofday.m4 (gl_GETTIMEOFDAY_REPLACE_LOCALTIME): Also replace gettimeofday. * lib/gettimeofday.c (rpl_gettimeofday): Declare with replacement name, to avoid infinite recursion. 2007-01-17 Paul Eggert * MODULES.html.sh (Support for systems lacking POSIX:2001): New module sys_time. * lib/gethrxtime.c: Include , since we can no longer assume timespec.h defines struct timeval. * lib/settime.c: Likewise. * lib/utimens.c: Likewise. * lib/gettime.c (gettime): Remove test against HAVE_GETTIMEOFDAY, since we now assume the gettimeofday module. * lib/tempname.c (__gen_tempname): Likewise. * lib/gettimeofday.h: Remove. * lib/gettimeofday.c: Include instead of "gettimeofday.h". Don't include and ; shouldn't be needed. Include , for 'time()'. (localtime_buffer_addr): Also use this workaround if TZSET_CLOBBERS_LOCALTIME. Set to a dummy static variable by default, to simplify the uses. All uses changed. (localtime, gmtime, tzset, gettimeofday): Reformat slightly so that #undef is inside {}, and 'const' follows type name consistently. (tzset): Define replacement only if TZSET_CLOBBERS_LOCALTIME. (gettimeofday): Do not use the maximum possible value for tv->tv_usec, since that might break usages other than ls.c. Instead, we'll leave ls.c alone. This undoes today's patch by Bruno. Add a compile-time warning for 1s-clock resolution; we've never observed the problem but might as well keep the canary. * lib/nanosleep.c: Include timespec.h first, for interface check. * lib/nanosleep.c: Include unconditionally, since we now assume the sys_time module. * lib/tempname.c: Likewise. * lib/timespec.h: Likewise. * lib/nanosleep.c: Don't worry about TIME_WITH_SYS_TIME; no longer needed. * lib/strftime.c: Likewise. * lib/timespec.h: Likewise. * lib/posixtm.c: Include posixtm.h first, for interface check. Don't worry about TM_IN_SYS_TIME; that's wayyy obsolete. * lib/posixtm.h: Include stdbool.h and time.h, for proper interface. * lib/strftime.c: Don't include ; shouldn't be needed. * lib/sys_time_.h: New file. * lib/timespec.h (struct timespec): Use long int, not long. * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): (gl_FUNC_GETTIMEOFDAY_CLOBBER, gl_PREREQ_GETTIMEOFDAY): Remove obsolescent call to AC_HEADER_TIME. * m4/mktime.m4 (AC_FUNC_MKTIME): Likewise. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise. * m4/strftime.m4 (gl_FUNC_STRFTIME): Likewise. * m4/timespec.m4 (gl_TIMESPEC, gl_CHECK_TYPE_STRUCT_TIMESPEC): Likewise. * m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): Likewise. * m4/utimbuf.m4 (gl_CHECK_TYPE_STRUCT_UTIMBUF): Likewise. * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): Move sys/time.h tests into the sys_time module. Check for gettimeofday just once. Prefix our variables with gl_, not with ac_ or jm_. Tighten test for gettimeofday signature to just check the signature. Merely compile it, since linking doesn't test signature. Improve test for whether gettimeofday.o is actually needed. (gl_FUNC_GETTIMEOFDAY_CLOBBER): Renamed from AC_FUNC_GETTIMEOFDAY_CLOBBER. All uses changed. Use AC_RUN_IFELSE rather than AC_TRY_RUN. If clobbering, set and define GETTIMEOFDAY_CLOBBERS_LOCALTIME. (gl_GETTIMEOFDAY_REPLACE_LOCALTIME): Don't define GETTIMEOFDAY_CLOBBERS_LOCALTIME; that's gl_FUNC_GETTIMEOFDAY_CLOBBER's job. Don't define tzset; that's gl_FUNC_TZSET_CLOBBER's job. * m4/mktime.m4 (AC_FUNC_MKTIME): Just include rather than worrying about sys/time.h. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Don't bother worrying about TIME_WITH_SYS_TIME. * m4/stat-time.m4 (gl_STAT_TIME): Likewise. * m4/posixtm.m4 (gl_POSIXTM): Remove obsolescent call to AC_STRUCT_TM. * m4/sys_time_h.m4: New file. * m4/tzset.m4 (gl_FUNC_TZSET_CLOBBER): Require gl_HEADER_SYS_TIME_H. Don't include sys/time.h. Return from main rather than exiting. Define TZSET_CLOBBERS_LOCALTIME, for consistency with other names; all uses changed. * modules/gethrxtime (Depends-on): Add sys_time. * modules/gettime (Depends-on): Likewise. * modules/gettimeofday (Depends-on): Likewise. * modules/nanosleep (Depends-on): Likewise. * modules/settime (Depends-on): Likewise. * modules/tempname (Depends-on): Likewise. * modules/utimens (Depends-on): Likewise. * modules/gettimeofday (Files): Remove lib/gettimeofday.h. (Include): Change back to . (Maintainer): Add self. * modules/sys_time: New file. * modules/tempname (Depends-on): Add gettimeofday. * tests/test-gettimeofday.c: Include rather than gettimeofday.h. 2007-01-17 Bruno Haible * gnulib-tool (func_get_license): Revert last patch. Instead, let the license default to GPL. (func_create_testdir): Don't complain if a module is LGPL and its tests module depends on GPLed modules. 2007-01-17 Bruno Haible * lib/gettimeofday.c (gettimeofday): Add code for the case HAVE_GETTIMEOFDAY && !GETTIMEOFDAY_CLOBBERS_LOCALTIME. Use the maximum possible value for tv->tv_usec, rather than the minimum one. 2005-10-08 Martin Lambers 2005-10-08 Paul Eggert 2007-01-16 Bruno Haible * modules/gettimeofday (Files): Add lib/gettimeofday.h. (configure.ac): Remove AC_FUNC_GETTIMEOFDAY_CLOBBER. Add gl_FUNC_GETTIMEOFDAY. (Include): Add gettimeofday.h. * m4/gettimeofday.m4 (gl_FUNC_GETTIMEOFDAY): New macro. (AC_FUNC_GETTIMEOFDAY_CLOBBER): Don't invoke gl_PREREQ_GETTIMEOFDAY. (gl_GETTIMEOFDAY_REPLACE_LOCALTIME): Define GETTIMEOFDAY_CLOBBERS_LOCALTIME. Invoke gl_PREREQ_GETTIMEOFDAY here. (gl_PREREQ_GETTIMEOFDAY): Check for and _ftime. * lib/gettimeofday.h: New file. * lib/gettimeofday.c: Include . (localtime_buffer_addr, rpl_localtime, rpl_gmtime, rpl_tzset): Define only if GETTIMEOFDAY_CLOBBERS_LOCALTIME. (rpl_gettimeofday) [!HAVE_GETTIMEOFDAY]: Use _ftime() when available; fall back on time(). * tests/test-gettimeofday.c: New file. * modules/gettimeofday-tests: New file. 2007-01-16 Eric Blake * modules/fnmatch (Depends-on): Depend on wchar. * lib/fnmatch.c (WIDE_CHAR_SUPPORT): Assume . * m4/fnmatch.m4: Likewise. * modules/mbchar (Makefile.am): Assume . * m4/mbchar.m4: Likewise. * modules/mbswidth (Depends-on): Depend on wchar. * lib/mbswidth.c: Assume . * m4/mbswidth.m4: Likewise. * modules/quotearg (Depends-on): Depend on wchar. * lib/quotearg.c: Assume . * m4/quotearg.m4: Likewise. * modules/regex (Depends-on): Depend on wchar. * lib/regex_internal.h: Assume . * m4/regex.m4: Likewise. * modules/stdint (Depends-on): Depend on wchar. * lib/stdint_.h [!defined WCHAR_MIN]: Assume . * m4/stdint.m4: Likewise. * tests/test-stdint.c [HAVE_WINT_T]: Likewise. * modules/strftime (Depends-on): Depend on wchar. * lib/strftime.c (DO_MULTIBYTE): Assume . * modules/strtol (Depends-on): Depend on wchar. * lib/strtol.c: Assume . * modules/wcwidth (Depends-on): Depend on wchar. * lib/wcwidth.h: Assume . * m4/wcwidth.m4: Likewise. 2007-01-16 Bruno Haible * modules/csharpexec-script: New, created from... * modules/csharpexec: ... this. 2007-01-16 Paolo Bonzini * modules/javaexec-script: New, created from... * modules/javaexec: ... this. 2007-01-16 Yoann Vandoorselaere * modules/poll (Dependencies): Add sys_select. 2007-01-15 Jim Meyering * m4/readutmp.m4 (gl_READUTMP): Work around AIX 4.3 struct- redefinition bug when using both and headers. * lib/readutmp.h: Likewise. Reported by Daniel Richard G. in . 2007-01-15 Bruno Haible * modules/striconveh: New file. * lib/striconveh.h: New file. * lib/striconveh.c: New file. * MODULES.html.sh (Internationalization functions): Add striconveh. * modules/striconveh-tests: New file. * tests/test-striconveh.c: New file. 2007-01-15 Bruno Haible * lib/striconv.c (str_cd_iconv): Use the first algorithm if iconv is not from GNU libiconv or GNU libc. 2007-01-15 Bruno Haible * doc/gnulib-intro.texi (Copyright): Explain the different license terms for module descriptions, autoconf macros, tests, documentation. 2007-01-14 Bruno Haible * modules/striconv-tests: New file. * tests/test-striconv.c: New file. 2007-01-14 Bruno Haible * modules/iconv-tests: New file. * tests/test-iconv.c: New file. 2007-01-14 Bruno Haible * gnulib-tool (func_get_license): For test modules, use the license of the main module. 2007-01-14 Bruno Haible * modules/iconv (Include): Clarify that can only be included if iconv is found to exist. 2007-01-14 Bruno Haible * modules/c-ctype-tests: New file. * tests/test-c-ctype.c: New file. 2007-01-14 Bruno Haible * modules/binary-io-tests: New file. * tests/test-binary-io.sh: New file. * tests/test-binary-io.c: New file. 2007-01-14 Bruno Haible * modules/array-oset-tests: New file. * tests/test-array_oset.c: New file. 2007-01-14 Bruno Haible * modules/array-list-tests: New file. * tests/test-array_list.c: New file. 2007-01-14 Bruno Haible * gnulib-tool (func_create_testdir): Don't unnecessarily run configure and make. Reported by Simon Josefsson in 2007-01-14 Bruno Haible * modules/allocsa-tests: New file. * tests/test-allocsa.c: New file. 2007-01-14 Bruno Haible * modules/fchdir (Depends-on): Add absolute-header. * modules/unistd (Depends-on): Likewise. 2006-12-30 Bruno Haible * modules/fchdir: New file. * modules/unistd (Files): Add lib/unistd_.h. (Makefile.am): Generate unistd.h from unistd_.h. * lib/fchdir.c: New file. * lib/dirent_.h: New file. * lib/unistd_.h: New file. * lib/fcntl_.h (open) [FCHDIR_REPLACEMENT]: New replacement. * m4/fchdir.m4: New file. * m4/unistd_h.m4 (gl_PREREQ_UNISTD): New macro. (gl_HEADER_UNISTD): Invoke it. * lib/dup-safer.c (dup_safer) [FCHDIR_REPLACEMENT]: Use the dup function. * lib/backupfile.c (opendir, closedir): Undefine. * lib/chown.c (open, close): Undefine. * lib/clean-temp.c (open, close): Undefine. * lib/copy-file.c (open, close): Undefine. * lib/execute.c (open, close): Undefine. * lib/fsusage.c (open, close): Undefine. * lib/gc-gnulib.c (open, close): Undefine. * lib/getcwd.c (opendir, closedir): Undefine. * lib/glob.c (opendir, closedir): Undefine. * lib/javacomp.c (open, close): Undefine. * lib/mountlist.c (open, close, opendir, closedir): Undefine. * lib/openat-proc.c (open, close): Undefine. * lib/pagealign_alloc.c (open, close): Undefine. * lib/pipe.c (open, close): Undefine. * lib/progreloc.c (open, close): Undefine. * lib/savedir.c (opendir, closedir): Undefine. * lib/utime.c (open, close): Undefine. * MODULES.html.sh (Support for systems lacking POSIX:2001): Add fchdir. 2007-01-10 Bruno Haible * lib/striconv.c (mem_cd_iconv): Align the temporary buffer. 2007-01-12 Eric Blake Provide a robust . Further simplifications are now possible in other modules, but not included here. * modules/wchar: New module. * m4/wchar.m4: New file. * lib/wchar_.h: Likewise. * modules/mbchar (Depends-on): Depend on wchar, as the first use of the new module. * MODULES.html.sh (Extended multibyte and wide character utilities): New section. 2007-01-12 Paul Eggert * lib/xreadlink.c (SYMLINK_MAX) [!defined SYMLINK_MAX]: Define to a reasonable default for memory allocation. (xreadlink): Don't allocate a huge buffer, to work around a buggy file system that reports garbage st_size values for symlinks. Problem reported by Liyang Hu. 2007-01-11 Simon Josefsson * gnulib-tool (func_all_modules): Exclude all .* files (e.g., Emacs .#* auto-save files). 2007-01-11 Bruno Haible * gnulib-tool (func_all_modules): Exclude all files inside the CVS directory. 2007-01-10 Paul Eggert Use @...@ consistently in lib/wctype_.h. * lib/wctype_.h [HAVE_WINT_T]: Go back to using @...@, but rely on it being set to 1 or 0. * m4/wctype.m4 (gl_WCTYPE_H): Set HAVE_WINT_T to 1 or 0, and go back to AC_SUBSTing it. * modules/wctype (Makefile.am): Undo previous change. 2007-01-10 Eric Blake * lib/wctype_.h [HAVE_WINT_T]: Rely on AC_DEFINE. * m4/wctype.m4 (gl_WCTYPE_H): No need to AC_SUBST(HAVE_WINT_T). * modules/wctype (Makefile.am): Likewise. Reported by Chris McGuire. 2007-01-10 Jim Meyering fts.c: a small readability/maintainability improvement * lib/fts.c (fts_read): Make this code slightly more readable and maintainable by hoisting the "sp->fts_cur = p" assignments to immediately follow the statements that set P. Derived from the patch by Miloslav Trmac in http://bugzilla.redhat.com/222089. 2007-01-10 Eric Blake * lib/wctype_.h [HAVE_WINT_T]: Include before , to work around BSDI bug in BSD/OS 4.0.1. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise. * m4/wint_t.m4 (gt_TYPE_WINT_T): Likewise. Reported by Chris McGuire. 2007-01-09 Ralf Wildenhues * gnulib-tool (func_all_modules): Use POSIX conforming escaping in sed script. 2007-01-09 Bruno Haible * MODULES.html.sh: Accept options --cvs-urls, --git-urls. (repo_url_prefix, repo_url_suffix, repo_url_suffix_repl): New variables. (func_module): Use them. 2007-01-09 Bruno Haible * modules/unistr/base: New file. * lib/unistr.h: New file. * modules/unistr/u8-to-u16: New file. * lib/unistr/u8-to-u16.c: New file. * modules/unistr/u8-to-u32: New file. * lib/unistr/u8-to-u32.c: New file. * modules/unistr/u16-to-u8: New file. * lib/unistr/u16-to-u8.c: New file. * modules/unistr/u16-to-u32: New file. * lib/unistr/u16-to-u32.c: New file. * modules/unistr/u32-to-u8: New file. * lib/unistr/u32-to-u8.c: New file. * modules/unistr/u32-to-u16: New file. * lib/unistr/u32-to-u16.c: New file. * modules/unistr/u8-check: New file. * modules/unistr/u16-check: New file. * modules/unistr/u32-check: New file. * lib/unistr/u8-check.c: New file. * lib/unistr/u16-check.c: New file. * lib/unistr/u32-check.c: New file. * modules/unistr/u8-chr: New file. * modules/unistr/u16-chr: New file. * modules/unistr/u32-chr: New file. * lib/unistr/u8-chr.c: New file. * lib/unistr/u16-chr.c: New file. * lib/unistr/u32-chr.c: New file. * modules/unistr/u8-cmp: New file. * modules/unistr/u16-cmp: New file. * modules/unistr/u32-cmp: New file. * lib/unistr/u8-cmp.c: New file. * lib/unistr/u16-cmp.c: New file. * lib/unistr/u32-cmp.c: New file. * modules/unistr/u8-cpy: New file. * modules/unistr/u16-cpy: New file. * modules/unistr/u32-cpy: New file. * lib/unistr/u8-cpy.c: New file. * lib/unistr/u16-cpy.c: New file. * lib/unistr/u32-cpy.c: New file. * lib/unistr/u-cpy.h: New file. * modules/unistr/u8-cpy-alloc: New file. * modules/unistr/u16-cpy-alloc: New file. * modules/unistr/u32-cpy-alloc: New file. * lib/unistr/u8-cpy-alloc.c: New file. * lib/unistr/u16-cpy-alloc.c: New file. * lib/unistr/u32-cpy-alloc.c: New file. * lib/unistr/u-cpy-alloc.h: New file. * modules/unistr/u8-endswith: New file. * modules/unistr/u16-endswith: New file. * modules/unistr/u32-endswith: New file. * lib/unistr/u8-endswith.c: New file. * lib/unistr/u16-endswith.c: New file. * lib/unistr/u32-endswith.c: New file. * lib/unistr/u-endswith.h: New file. * modules/unistr/u8-mblen: New file. * modules/unistr/u16-mblen: New file. * modules/unistr/u32-mblen: New file. * lib/unistr/u8-mblen.c: New file. * lib/unistr/u16-mblen.c: New file. * lib/unistr/u32-mblen.c: New file. * modules/unistr/u8-mbtouc: New file. * modules/unistr/u16-mbtouc: New file. * modules/unistr/u32-mbtouc: New file. * lib/unistr/u8-mbtouc.c: New file. * lib/unistr/u16-mbtouc.c: New file. * lib/unistr/u32-mbtouc.c: New file. * modules/unistr/u8-mbtouc-safe: New file. * modules/unistr/u16-mbtouc-safe: New file. * modules/unistr/u32-mbtouc-safe: New file. * lib/unistr/u8-mbtouc-safe.c: New file. * lib/unistr/u16-mbtouc-safe.c: New file. * lib/unistr/u32-mbtouc-safe.c: New file. * modules/unistr/u8-move: New file. * modules/unistr/u16-move: New file. * modules/unistr/u32-move: New file. * lib/unistr/u8-move.c: New file. * lib/unistr/u16-move.c: New file. * lib/unistr/u32-move.c: New file. * lib/unistr/u-move.h: New file. * modules/unistr/u8-next: New file. * modules/unistr/u16-next: New file. * modules/unistr/u32-next: New file. * lib/unistr/u8-next.c: New file. * lib/unistr/u16-next.c: New file. * lib/unistr/u32-next.c: New file. * modules/unistr/u8-prev: New file. * modules/unistr/u16-prev: New file. * modules/unistr/u32-prev: New file. * lib/unistr/u8-prev.c: New file. * lib/unistr/u16-prev.c: New file. * lib/unistr/u32-prev.c: New file. * modules/unistr/u8-set: New file. * modules/unistr/u16-set: New file. * modules/unistr/u32-set: New file. * lib/unistr/u8-set.c: New file. * lib/unistr/u16-set.c: New file. * lib/unistr/u32-set.c: New file. * lib/unistr/u-set.h: New file. * modules/unistr/u8-startswith: New file. * modules/unistr/u16-startswith: New file. * modules/unistr/u32-startswith: New file. * lib/unistr/u8-startswith.c: New file. * lib/unistr/u16-startswith.c: New file. * lib/unistr/u32-startswith.c: New file. * lib/unistr/u-startswith.h: New file. * modules/unistr/u8-stpcpy: New file. * modules/unistr/u16-stpcpy: New file. * modules/unistr/u32-stpcpy: New file. * lib/unistr/u8-stpcpy.c: New file. * lib/unistr/u16-stpcpy.c: New file. * lib/unistr/u32-stpcpy.c: New file. * lib/unistr/u-stpcpy.h: New file. * modules/unistr/u8-stpncpy: New file. * modules/unistr/u16-stpncpy: New file. * modules/unistr/u32-stpncpy: New file. * lib/unistr/u8-stpncpy.c: New file. * lib/unistr/u16-stpncpy.c: New file. * lib/unistr/u32-stpncpy.c: New file. * lib/unistr/u-stpncpy.h: New file. * modules/unistr/u8-strcat: New file. * modules/unistr/u16-strcat: New file. * modules/unistr/u32-strcat: New file. * lib/unistr/u8-strcat.c: New file. * lib/unistr/u16-strcat.c: New file. * lib/unistr/u32-strcat.c: New file. * lib/unistr/u-strcat.h: New file. * modules/unistr/u8-strchr: New file. * modules/unistr/u16-strchr: New file. * modules/unistr/u32-strchr: New file. * lib/unistr/u8-strchr.c: New file. * lib/unistr/u16-strchr.c: New file. * lib/unistr/u32-strchr.c: New file. * modules/unistr/u8-strcmp: New file. * modules/unistr/u16-strcmp: New file. * modules/unistr/u32-strcmp: New file. * lib/unistr/u8-strcmp.c: New file. * lib/unistr/u16-strcmp.c: New file. * lib/unistr/u32-strcmp.c: New file. * modules/unistr/u8-strcpy: New file. * modules/unistr/u16-strcpy: New file. * modules/unistr/u32-strcpy: New file. * lib/unistr/u8-strcpy.c: New file. * lib/unistr/u16-strcpy.c: New file. * lib/unistr/u32-strcpy.c: New file. * lib/unistr/u-strcpy.h: New file. * modules/unistr/u8-strcspn: New file. * modules/unistr/u16-strcspn: New file. * modules/unistr/u32-strcspn: New file. * lib/unistr/u8-strcspn.c: New file. * lib/unistr/u16-strcspn.c: New file. * lib/unistr/u32-strcspn.c: New file. * lib/unistr/u-strcspn.h: New file. * modules/unistr/u8-strdup: New file. * modules/unistr/u16-strdup: New file. * modules/unistr/u32-strdup: New file. * lib/unistr/u8-strdup.c: New file. * lib/unistr/u16-strdup.c: New file. * lib/unistr/u32-strdup.c: New file. * lib/unistr/u-strdup.h: New file. * modules/unistr/u8-strlen: New file. * modules/unistr/u16-strlen: New file. * modules/unistr/u32-strlen: New file. * lib/unistr/u8-strlen.c: New file. * lib/unistr/u16-strlen.c: New file. * lib/unistr/u32-strlen.c: New file. * lib/unistr/u-strlen.h: New file. * modules/unistr/u8-strmblen: New file. * modules/unistr/u16-strmblen: New file. * modules/unistr/u32-strmblen: New file. * lib/unistr/u8-strmblen.c: New file. * lib/unistr/u16-strmblen.c: New file. * lib/unistr/u32-strmblen.c: New file. * modules/unistr/u8-strmbtouc: New file. * modules/unistr/u16-strmbtouc: New file. * modules/unistr/u32-strmbtouc: New file. * lib/unistr/u8-strmbtouc.c: New file. * lib/unistr/u16-strmbtouc.c: New file. * lib/unistr/u32-strmbtouc.c: New file. * modules/unistr/u8-strncat: New file. * modules/unistr/u16-strncat: New file. * modules/unistr/u32-strncat: New file. * lib/unistr/u8-strncat.c: New file. * lib/unistr/u16-strncat.c: New file. * lib/unistr/u32-strncat.c: New file. * lib/unistr/u-strncat.h: New file. * modules/unistr/u8-strncmp: New file. * modules/unistr/u16-strncmp: New file. * modules/unistr/u32-strncmp: New file. * lib/unistr/u8-strncmp.c: New file. * lib/unistr/u16-strncmp.c: New file. * lib/unistr/u32-strncmp.c: New file. * modules/unistr/u8-strncpy: New file. * modules/unistr/u16-strncpy: New file. * modules/unistr/u32-strncpy: New file. * lib/unistr/u8-strncpy.c: New file. * lib/unistr/u16-strncpy.c: New file. * lib/unistr/u32-strncpy.c: New file. * lib/unistr/u-strncpy.h: New file. * modules/unistr/u8-strnlen: New file. * modules/unistr/u16-strnlen: New file. * modules/unistr/u32-strnlen: New file. * lib/unistr/u8-strnlen.c: New file. * lib/unistr/u16-strnlen.c: New file. * lib/unistr/u32-strnlen.c: New file. * lib/unistr/u-strnlen.h: New file. * modules/unistr/u8-strpbrk: New file. * modules/unistr/u16-strpbrk: New file. * modules/unistr/u32-strpbrk: New file. * lib/unistr/u8-strpbrk.c: New file. * lib/unistr/u16-strpbrk.c: New file. * lib/unistr/u32-strpbrk.c: New file. * lib/unistr/u-strpbrk.h: New file. * modules/unistr/u8-strrchr: New file. * modules/unistr/u16-strrchr: New file. * modules/unistr/u32-strrchr: New file. * lib/unistr/u8-strrchr.c: New file. * lib/unistr/u16-strrchr.c: New file. * lib/unistr/u32-strrchr.c: New file. * modules/unistr/u8-strspn: New file. * modules/unistr/u16-strspn: New file. * modules/unistr/u32-strspn: New file. * lib/unistr/u8-strspn.c: New file. * lib/unistr/u16-strspn.c: New file. * lib/unistr/u32-strspn.c: New file. * lib/unistr/u-strspn.h: New file. * modules/unistr/u8-strstr: New file. * modules/unistr/u16-strstr: New file. * modules/unistr/u32-strstr: New file. * lib/unistr/u8-strstr.c: New file. * lib/unistr/u16-strstr.c: New file. * lib/unistr/u32-strstr.c: New file. * lib/unistr/u-strstr.h: New file. * modules/unistr/u8-strtok: New file. * modules/unistr/u16-strtok: New file. * modules/unistr/u32-strtok: New file. * lib/unistr/u8-strtok.c: New file. * lib/unistr/u16-strtok.c: New file. * lib/unistr/u32-strtok.c: New file. * lib/unistr/u-strtok.h: New file. * modules/unistr/u8-uctomb: New file. * modules/unistr/u16-uctomb: New file. * modules/unistr/u32-uctomb: New file. * lib/unistr/u8-uctomb.c: New file. * lib/unistr/u16-uctomb.c: New file. * lib/unistr/u32-uctomb.c: New file. * MODULES.html.sh (Unicode string functions): Add the new modules. 2007-01-08 Bruno Haible * gnulib-tool (func_all_modules): Use find, not ls, to traverse the modules directory. Filter out CVS, ChangeLog, COPYING, README also from subdirectories. 2007-01-08 Karl Berry * doc/error.texi: mention that main() fns must set program_name when progname is used. 2007-01-08 Paul Eggert * m4/wctype.m4 (gl_WCTYPE_H): Compute ABSOLUTE_WCTYPE_H even if WCTYPE_H is empty, for the benefit of builds from non-distclean directories. Problem reported by Eric Blake in . 2007-01-08 Bruno Haible * m4/canonicalize.m4 (AC_FUNC_CANONICALIZE_FILE_NAME): Remove PROVIDE_CANONICALIZE_FILENAME_MODE macro definition. * lib/canonicalize.h: Test GNULIB_CANONICALIZE instead of PROVIDE_CANONICALIZE_FILENAME_MODE. * modules/canonicalize (configure.ac): Use gl_MODULE_INDICATOR. 2007-01-08 Bruno Haible * m4/fts.m4 (gl_FUNC_FTS_LGPL): Remove _LGPL_PACKAGE macro definition. * lib/fts_.h (_LGPL_PACKAGE): Remove macro. Use !GNULIB_FTS instead of _LGPL_PACKAGE. * lib/fts.c: Likewise. * modules/fts (configure.ac): Use gl_MODULE_INDICATOR. 2006-12-25 Bruno Haible * modules/utf8-ucs4-safe: New file. * lib/utf8-ucs4-safe.h: New file. * lib/unistr/utf8-ucs4-safe.c: New file. * modules/utf16-ucs4-safe: New file. * lib/utf16-ucs4-safe.h: New file. * lib/unistr/utf16-ucs4-safe.c: New file. * MODULES.html.sh (Unicode string functions): Add the new modules. 2007-01-08 Bruno Haible * modules/utf8-ucs4 (Files, lib_SOURCES): Add unistr/utf8-ucs4.c. (Depends-on): Add unitypes. * lib/utf8-ucs4.h: Add double-inclusion guard. Include unitypes.h. (u8_mbtouc_aux): Move out to separate file. (u8_mbtouc): Use ucs4_t, uint8_t types. * lib/unistr/utf8-ucs4.c: New file. * modules/utf16-ucs4 (Files, lib_SOURCES): Add unistr/utf16-ucs4.c. (Depends-on): Add unitypes. * lib/utf16-ucs4.h: Add double-inclusion guard. Include unitypes.h. (u16_mbtouc_aux): Move out to separate file. (u16_mbtouc): Use ucs4_t, uint16_t types. * lib/unistr/utf16-ucs4.c: New file. * modules/ucs4-utf8 (Files, lib_SOURCES): Add unistr/ucs4-utf8.c. (Depends-on): Add unitypes. * lib/ucs4-utf8.h: Add double-inclusion guard. Include unitypes.h. (u8_uctomb_aux): Move out to separate file. (u8_uctomb): Use ucs4_t, uint8_t types. * lib/unistr/ucs4-utf8.c: New file. * modules/ucs4-utf16 (Files, lib_SOURCES): Add unistr/ucs4-utf16.c. (Depends-on): Add unitypes. * lib/ucs4-utf16.h: Add double-inclusion guard. Include unitypes.h. (u16_uctomb_aux): Move out to separate file. (u16_uctomb): Use ucs4_t, uint16_t types. * lib/unistr/ucs4-utf16.c: New file. 2006-12-25 Bruno Haible * modules/unitypes: New file. * lib/unitypes.h: New file. * MODULES.html.sh (func_all_modules): New section "Unicode string functions". Move ucs4-utf8, ucs4-utf16, utf8-ucs4, utf16-ucs4 to this section. Add unitypes. 2007-01-08 Bruno Haible Avoid variable names that conflict with those from libtool. * m4/lib-link.m4 (AC_LIB_RPATH, AC_LIB_LINKFLAGS_BODY, AC_LIB_LINKFLAGS_FROM_LIBS): Rename libext to acl_libext, shlibext to acl_shlibext, libname_spec to acl_libname_spec, library_names_spec to acl_library_names_spec, hardcode_* to acl_hardcode_*. Reported by Ralf Wildenhues. 2007-01-08 Bruno Haible * m4/gc-arcfour.m4 (gl_GC_ARCFOUR): Remove GC_USE_ARCFOUR macro definition. * m4/gc-arctwo.m4 (gl_GC_ARCTWO): Remove GC_USE_ARCTWO macro definition. * m4/gc-des.m4 (gl_GC_DES): Remove GC_USE_DES macro definition. * m4/gc-hmac-md5.m4 (gl_GC_HMAC_MD5): Remove GC_USE_HMAC_MD5 macro definition. * m4/gc-hmac-sha1.m4 (gl_GC_HMAC_SHA1): Remove GC_USE_HMAC_SHA1 macro definition. * m4/gc-md2.m4 (gl_GC_MD2): Remove GC_USE_MD2 macro definition. * m4/gc-md4.m4 (gl_GC_MD4): Remove GC_USE_MD4 macro definition. * m4/gc-md5.m4 (gl_GC_MD5): Remove GC_USE_MD5 macro definition. * m4/gc-random.m4 (gl_GC_RANDOM): Remove GC_USE_RANDOM macro definition. * m4/gc-rijndael.m4 (gl_GC_RIJNDAEL): Remove GC_USE_RIJNDAEL macro definition. * m4/gc-sha1.m4 (gl_GC_SHA1): Remove GC_USE_SHA1 macro definition. * lib/gc-gnulib.c: Use GNULIB_GC_ instead of GC_USE_. * lib/gc-libgcrypt.c: Likewise. * modules/gc-arcfour (configure.ac): Use gl_MODULE_INDICATOR. * modules/gc-arctwo (configure.ac): Likewise. * modules/gc-des (configure.ac): Likewise. * modules/gc-hmac-md5 (configure.ac): Likewise. * modules/gc-hmac-sha1 (configure.ac): Likewise. * modules/gc-md2 (configure.ac): Likewise. * modules/gc-md4 (configure.ac): Likewise. * modules/gc-md5 (configure.ac): Likewise. * modules/gc-random (configure.ac): Likewise. * modules/gc-rijndael (configure.ac): Likewise. * modules/gc-sha1 (configure.ac): Likewise. 2007-01-08 Bruno Haible * m4/close-stream.m4 (gl_CLOSE_STREAM): Remove GNULIB_CLOSE_STREAM macro definition. * m4/fcntl-safer.m4 (gl_FCNTL_SAFER): Remove GNULIB_FCNTL_SAFER macro definition. * m4/stdio-safer.m4 (gl_FOPEN_SAFER): Remove GNULIB_FOPEN_SAFER macro definition. * modules/close-stream (configure.ac): Invoke gl_MODULE_INDICATOR. * modules/fcntl-safer (configure.ac): Likewise. * modules/fopen-safer (configure.ac): Likewise. * modules/fwriteerror (configure.ac): Likewise. Remove explicit GNULIB_FWRITEERROR macro definition. 2007-01-08 Bruno Haible * m4/gnulib-common.m4: New file. * gnulib-tool (func_get_autoconf_snippet): Undo last change. (func_get_filelist): Add m4/gnulib-common.m4. 2007-01-08 Bruno Haible * m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Simplify the sorting command. 2007-01-08 Jim Meyering Use a more robust test for a "can't happen" condition. * lib/fts.c (fts_read): Revert the change of 2006-11-22, since it narrowed the st_size value. Presuming the "can't happen" condition is true, that narrowing could conceivably convert an invalid st_size value into a valid one. Instead, use a change based on Matthew Woehlke's original patch. Slight readability improvement: use an assert-like macro in place of literal "abort ()" uses. * lib/fts.c (fts_assert): Define. (fts_set_stat_required, cwd_advance_fd, fts_read, fd_ring_check): Use this macro instead of a bare 'abort'. 2007-01-05 Paul Eggert Don't worry about using IRIX 5.3's wctype.h broken definitions; simply work around them. * lib/wctype_.h: Remove test for HAVE_WCTYPE_CTMP_BUG. (iswalnum, iswalpha, iswblank, iswcntrl, iswdigit, iswgraph, iswlower): (iswprint, iswpunct, iswspace, iswupper, iswxdigit): Undef before declaring. Don't bother to define as macros, since the standard doesn't require it. * m4/wctype.m4 (WCTYPE_H, ABSOLUTE_WCTYPE_H): Simplify, since we no longer worry about IRIX 5.3. (HAVE_WCTYPE_CTMP_BUG): Remove. 2007-01-04 Paul Eggert * lib/wctype_.h (_ctmp_) [HAVE_WCTYPE_CTMP_BUG]: Now of type wchar_t, not wint_t. Also, include , to fix another IRIX bug. * m4/wctype.m4 (gl_WCTYPE_H): Likewise. Problems reported by Georg Schwarz for IRIX 5.3. * gnulib-tool (autoconf_minversion): Take the maximum version number found, not the minimum. Problem reported by James Youngman. 2007-01-03 Karl Berry * doc/error.texi: new file, explaining interaction with progname. * doc/gnulib.texi: include it. Update copyright. 2007-01-03 Simon Josefsson * gnulib-tool (func_create_testdir): Run AC_CANONICAL_BUILD and AC_CANONICAL_HOST, to improve autobuild outputs. 2007-01-03 Paolo Bonzini Yoann Vandoorselaere * lib/poll.c (poll): Use recv on Mac OS X to distinguish connected sockets, server sockets, and other file descriptors. Count errors to compute the return value. Reorder the code a bit to be easier to follow. Don't set event bits that were not requested (except POLLERR and POLLHUP). 2007-01-01 Bruno Haible * modules/lchmod (Include): Require lchmod.h, not lchown.h. 2007-01-03 Jim Meyering * modules/fts-lgpl (Depends-on): Add i-ring. Reported by Bruno Haible. 2007-01-02 Bruno Haible * modules/settime (Include): Require timespec.h. * modules/nanosleep (Include): Likewise. 2007-01-01 Bruno Haible * gnulib-tool (func_emit_copyright_notice): Bump year. (func_get_autoconf_snippet): Emit a GNULIB_ macro. 2007-01-01 Bruno Haible Improve support for OpenBSD. * build-aux/config.rpath (libname_spec): Export. (library_names_spec): New variable. Export. * m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Extract libname_spec and library_names_spec from the config.rpath output. Locate shared library through the name pattern in library_names_spec. 2007-01-01 Eric Blake * lib/version-etc.c (COPYRIGHT_YEAR): Bump for new year. 2006-12-30 Paul Eggert * gnulib-tool (SORT): Remove, since we no longer assume GNU sort. Rewrite so as not to assume GNU sort or "tail -1". Also, don't assume the C locale, and avoid an "eval" that could cause trouble. Problem with SORT reported by Bob Proulx. * lib/getpagesize.h (getpagesize) [defined __amigaos4__]: Define. Trivial patch from Henning Nielsen Lund, originally sent to bug-grep@gnu.org today. 2006-12-29 Paul Eggert * lib/acl.h: Include sys/types.h and sys/stat.h, for mode_t and struct stat. Problem reported by Henning Nielsen Lund. * lib/acl.c: Include acl.h first, to check interface. Don't bother to include sys/types.h and sys/stat.h again. 2006-12-28 Paul Eggert Import the following change from libc; problem reported by Sven Verdoolaege. 2005-10-13 Ulrich Drepper [BZ #1373] * lib/argp.h: Remove __NTH for __argp_usage inline function. 2006-12-28 Jim Meyering * build-aux/announce-gen: Do not assume that the package builds any of tar.gz, tar.bz2, and .xdelta files. Suggestion from Simon Josefsson. 2006-12-28 Simon Josefsson * modules/announce-gen: New file. 2006-12-27 Paul Eggert * lib/mbchar.h: Just include ; the wctype module handles its gotchas now. * lib/mbswidth.c: Likewise. * lib/wcwidth.h: Likewise. * m4/mbchar.m4 (gl_MBCHAR): Don't bother checking for wctype.h and iswcntrl; the wctype module does this stuff now. * m4/mbswidth.m4 (gl_MBSWIDTH): Likewise. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Likewise. * modules/mbchar (Depends-on): Add wctype. * modules/mbswidth (Depends-on): Likewise. * modules/wcwidth (Depends-on): Likewise. 2006-12-27 Eric Blake * lib/fnmatch.c: Reinstate inclusion of , since this module uses more than what is required to provide. 2006-12-26 Eric Blake * gnulib-tool (sed_extract_prog): Avoid space-tab. 2006-12-26 Eric Blake * modules/absolute-header: New module. * modules/fcntl (Depends-on): Depend on it. * modules/inttypes (Depends-on): Likewise. * modules/stdint (Depends-on): Likewise. * modules/sys_stat (Depends-on): Likewise. * modules/wctype (Depends-on): Likewise. * MODULES.html.sh (Support for building libraries and executables): Document it. 2006-12-25 Paul Eggert * gnulib-tool (SED): Remove, undoing previous change. The problem was that it broke coreutils on Solaris, because "sed --posix" leaked into a makefile. (sed): New alias, if 'alias' and GNU sed. 2006-12-24 Jim Meyering Work around an fchownat bug in glibc-2.4: http://lists.ubuntu.com/archives/ubuntu-users/2006-September/093218.html This bug would cause "chown -RP ... DIR" to follow symlinks in DIR, in spite of the -P option. * m4/openat.m4 (gl_FUNC_FCHOWNAT, gl_FUNC_FCHOWNAT_DEREF_BUG): New macros. (gl_PREREQ_OPENAT): Require gl_FUNC_FCHOWNAT. * modules/openat (Files): Add lib/fchownat.c. * lib/openat.c (fchownat): Don't define here. Move to... * lib/fchownat.c: ...this new file. 2006-12-23 Paul Eggert Fix bug reported by Bruno Haible in where quotearg.c didn't compile on Mac OS X 10.2 because it lacks and wint_t. * lib/wctype_.h (__wctype_wint_t): New type. Include , , only if HAVE_WINT_T. (iswalnum, iswalpha, iswblank, iswcntrl, iswdigit, iswgraph): (iswlower, iswprint, iswpunct, iswspace, iswupper, ixwxdigit): Arg is now of type __wctype_wint_t, not wint_t. * m4/wctype.m4 (gl_WCTYPE_H): Require gt_TYPE_WINT_T, and substitute HAVE_WINT_T. * modules/wctype (Files): Add m4/wint_t.m4. (wctype.h): Substitute HAVE_WINT_T. 2006-12-23 Bruno Haible * lib/safe-read.h [C++]: Wrap declarations in extern "C". 2006-12-23 Bruno Haible * lib/canonicalize-lgpl.c (__realpath): Test HAVE_READLINK instead of S_ISLNK. Needed because gnulib's sys/stat.h replacement defines S_ISLNK on mingw. 2006-12-22 Bruno Haible * lib/copy-file.c: Include acl.h. (copy_file_preserving) [USE_ACL]: Use copy_acl instead of chmod. Close the file descriptors only after being done with copy_acl. * modules/copy-file (Depends-on): Add acl. 2006-12-22 Bruno Haible * gnulib-tool (SED): New variable. Use $SED instead of sed everywhere. 2006-12-22 Bruno Haible * modules/no-c++: New file. * m4/no-c++.m4: New file. * MODULES.html.sh (Support for building libraries and executables): Add no-c++. 2006-12-22 Paul Eggert * m4/mktime.m4 (AC_FUNC_MKTIME): Sync from Autoconf. Include , and use its INT_MAX to rewrite the j loop so that it does not overflow 'int'. Problem reported by Ralf Wildenhues in . Play it safe by shifting left by 1 rather than multiplying by 2, as GCC is less likely to optimize this away when the value is signed (when it assumes overflow leads to undefined behavior). Also, don't assume time_t uses two's complement. 2006-12-21 Paul Eggert * MODULES.html.sh: New module wctype. * lib/wctype_.h, m4/wctype.m4, modules/wctype: New files. * lib/fnmatch.c: Don't bother to include before , since the new wctype module should fix this. * lib/quotearg.c: Include unconditionally, since the wctype module should arrange for it. * lib/regex_internal.h: Likewise. * m4/quotearg.m4 (gl_QUOTEARG): Don't check for wctype.h or iswprint, since the wctype module should handle this now. * m4/regex.m4 (gl_PREREQ_REGEX): Don't check for wctype.h. * modules/fnmatch (Depends-on): Add wctype. * modules/quotearg (Depends-on): Likewise. * modules/regex (Depends-on): Likewise. 2006-12-19 Bruno Haible * lib/strdup.h [C++]: Wrap definitions in extern "C". Suggested by Lorenzo Bettini . 2006-12-19 Ralf Wildenhues * modules/savewd (Depends-on): Fix dependency on fcntl. 2006-12-18 Paul Eggert * m4/stdint.m4 (gl_STDINT_H): Set STDINT_H to empty if stdint.h conforms to C99, rather than relying on the user's environment setting of STDINT_H. 2006-12-18 Paul Eggert and Eric Blake * lib/dirname.h (DOUBLE_SLASH_IS_DISTINCT_ROOT): Default to 0, not 1. This is more consistent with the other defines here. * m4/double-slash-root.m4 (gl_DOUBLE_SLASH_ROOT): Port to z/OS. Problem reported by Paul Gilmartin. Change local vars to use gl_ prefix rather than ac_. Don't define DOUBLE_SLASH_IS_DISTINCT_ROOT to 0, for consistency with other defines. * modules/double-slash-root: New module. * modules/dirname (Files): Remove m4/double-slash-root.m4. (Depends-on): Add double-slash-root. * MODULES.html.sh (File system functions): Mention new module. 2006-12-14 Paul Eggert * lib/yesno.c [!ENABLE_NLS]: Don't include getline.h. (yesno) [!ENABLE_NLS]: Don't invoke getline or rpmatch. This is for the benefit of gzip, which doesn't do i18n. 2006-12-12 Jim Meyering * m4/acl.m4 (gl_ACL_GET_FILE): Fix logic error. Reported by Andreas Schwab . 2006-12-12 Bruno Haible Merge these changes. 2006-09-05 Bruno Haible * lib/iconvme.c (iconv_string): No need to save and restore errno when iconv_alloc succeeded. (iconv_alloc): Don't assume that malloc() or realloc(), when failing, sets errno to ENOMEM. (malloc on GNU/kFreeBSD doesn't.) No need to test for " && dest " at the end - dest is always != NULL there. Call iconv with 4xNULL arguments initially, to reset the state. Call iconv with 2xNULL arguments, also to flush the state storage. Handle the IRIX iconv behaviour. Realloc the final result, to throw away unused memory. 2006-12-11 Paul Eggert * m4/openat.m4 (gl_FUNC_OPENAT): Don't compile mkdirat and fchmodat unconditionally, since glibc 2.4 has them. Problem reported by Arkadiusz Miskiewicz. 2006-12-10 Bruno Haible * gnulib-tool (func_import): Show the include files only for those modules that are copied and specified. Reported by Karl Berry. 2006-12-08 Jim Meyering * build-aux/announce-gen ($VERSION): Don't use of $Revision...$. Instead, use Emacs' time-stamp write hook. Note that the time is UTC. * build-aux/announce-gen: Add two new options, both optional: --bootstrap-tools=TOOL_LIST a comma-separated list of tools, e.g., autoconf,automake,bison,gnulib --gnulib-snapshot-date=DATE if gnulib is in the bootstrap tool list, then report this as the snapshot date. If not specified, use the current date/time. If you specify a date here, be sure it's UTC. 2006-12-05 Ralf Wildenhues * tests/test-argp-2.sh: Fix test to match actual output. (func_compare): Fix sed script to be portable. 2006-12-05 Paul Eggert * lib/utimens.c (futimens) [HAVE_BUGGY_NFS_TIME_STAMPS]: Add a workaround for this case. It is not autoconfigured now; offhand it's hard to see how to autoconfigure it. 2006-12-03 Paul Eggert * lib/mkdir-p.c (make_dir_parents): Fix race condition when making a directory that is about to be chowned. Such a directory's initial file permissions should permit the owner only and this should not be changed until after the chown, since the group and other bits would be incorrect if they granted permission before the chown. Fix porting problem for iswctype reported by Georg Schwarz in: http://lists.gnu.org/r/bug-coreutils/2006-12/msg00017.html * lib/fnmatch.c (WIDE_CHAR_SUPPORT): Require HAVE_ISWCTYPE, too. * lib/regex_internal.h (RE_ENABLE_I18N): Likewise. * m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH): Check for iswctype, too. * m4/regex.m4 (gl_PREREQ_REGEX): Likewise. 2006-12-03 Jim Meyering * lib/fts.c (fts_load): Don't set sp->fts_dev here, since p->fts_statp may not yet be defined. (fts_read): Instead, set it in the caller, once p->fts_statp is sure to be defined, and corresponds to a top-level directory. This bug made du -x fail. Here's the coreutils test case: http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=commit;h=ba45154d8e9f Reported by Mike Frysinger. 2006-12-01 Jim Meyering * modules/savewd (Depends-on): Add fcntl_h to avoid self-test build failure due to missing definition of HAVE_WORKING_O_NOFOLLOW. Reported by Simon Josefsson. 2006-11-30 Jim Meyering * m4/warning.m4: Use the all-permissive copyright notice recommended by RMS (rather than LGPL). * m4/vararrays.m4: Likewise. * m4/flexmember.m4: Likewise. 2006-11-29 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am): Initialize also noinst_LIBRARIES. Augment noinst_LIBRARIES and noinst_LTLIBRARIES using +=. Reported by Simon Josefsson . 2006-11-28 James Youngman * README: Advise users that they might find the bug-gnulib@gnu.org and autotools-announce@gnu.org mailing lists useful. 2006-11-28 Bruno Haible * m4/ptrdiff_max.m4: Remove file. 2006-11-21 Bruno Haible * m4/eoverflow.m4 (gl_EOVERFLOW): Use AC_COMPUTE_INT instead of _AC_COMPUTE_INT. (AC_COMPUTE_INT): Add fallback definition for autoconf < 2.61. * m4/ptrdiff_max.m4 (gl_PTRDIFF_MAX): Use AC_COMPUTE_INT instead of _AC_COMPUTE_INT. (AC_COMPUTE_INT): Add fallback definition for autoconf < 2.61. * m4/size_max.m4 (gl_SIZE_MAX): Use AC_COMPUTE_INT instead of _AC_COMPUTE_INT. (AC_COMPUTE_INT): Add fallback definition for autoconf < 2.61. 2006-11-28 Jim Meyering * lib/regcomp.c (parse_branch): Rename local, exp->expr, to avoid warning from "gcc -Wshadow" about shadowing the builtin. 2006-11-27 Bruno Haible * m4/stdint.m4 (gl_STDINT_BITSIZEOF): Use AC_COMPUTE_INT instead of _AC_COMPUTE_INT. (AC_COMPUTE_INT): Add fallback definition for autoconf < 2.61. 2006-11-27 Bruno Haible Paul Eggert * lib/regex.h (__restrict_arr): Redo logic of #if, for clarity. 2006-11-26 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am): Initialize also noinst_LTLIBRARIES. 2006-11-27 Paul Eggert Bruno Haible * lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS): Define to 0 if compiling with "gcc -ansi". 2006-11-26 Paul Eggert Fix some incompatibilities with gcc -ansi -pedantic. * lib/regex.h (__restrict_arr): Don't use the [restrict] syntax if compiling pedantically with GCC, unless it's C99 or later. Don't trust sys/cdefs.h's definition of __restrict_arr, either, as it mishandles gcc -ansi -pedantic as well. * lib/regex_internal.h (re_token_t): Don't use enum bitfields if gcc -pedantic. * lib/regexec.c (check_node_accept_bytes): Don't use auto initializers for struct if -pedantic, unless it's C99 or later. 2006-11-25 Nix (tiny change) * m4/fcntl_h.m4 (gl_FCNTL_H): Test the atime, not the mtime. Don't close an fd more than once. Identical atimes indicate success, not failure. 2006-11-22 Robinson Mittmann (tiny change) * lib/sincosl.c (kernel_sinl): Fix typo in threshold. 2006-11-23 Jim Meyering * build-aux/announce-gen: New file. From coreutils. 2006-11-22 Jim Meyering Work around a compile-time error from the HP-UX 11.00 /bin/cc. * lib/fts.c (enum Fts_stat): Give this previously-anon enum a name. (fts_read): Use a temporary to narrow the overused st_size member before using it in a switch statement. Reported by Matthew Woehlke. * m4/clock_time.m4 (gl_CLOCK_TIME): Quote AC_SUBST argument. * m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Likewise. 2006-11-20 Bruno Haible * gettext.m4 (AM_GNU_GETTEXT): Revert 2005-07-28 patch: Use changequote instead of pairs of brackets. Reported by Andreas Schwab . 2006-11-21 Jim Meyering * lib/fts.c (fts_safe_changedir): Move a declaration "up", so as to remain compatible with older compilers. Patch from Michael Deutschmann. 2006-11-20 Paul Eggert * MODULES.html.sh (File system functions): Add openat. * lib/openat.h (rpl_fstatat): New macro, if [HAVE_OPENAT && ! LSTAT_FOLLOWS_SLASHED_SYMLINK. (fstatat): Define to rpl_fstatat under the same conditions, unless COMPILING_FSTATAT. * m4/openat.m4 (gl_FUNC_OPENAT): Compile fstatat.c too, if fstatat seems to have the bug. * lib/fstatat.c: New file. * modules/openat (Files): Add it. 2006-11-20 Bruno Haible * Makefile: New file. 2006-11-20 Jim Meyering The beginnings of syntax-related checks for gnulib. * lib/Makefile: New file. * lib/t-idcache: New script. Ensure that the two halves of idcache.c stay in sync. * lib/idcache.c: Adjust comments in user- and group- portions to be more accurate, and to be consistent with one another. 2006-11-20 Jim Meyering * lib/idcache.c: Restore most of the 2006-11-06 patch, so as to continue using the flexible array member (thus, this module performs half as many malloc calls), with the addition that... (getgroup, getuser): Consistently record a non-match via an empty "name" string, and map an empty string match to a NULL return value. * modules/idcache (Depends-on): Re-add flexmember. * lib/idcache.c (getuser): Remove all uses of the register keyword. (getuidbyname, getgroup, getgidbyname): Likewise. Use cleaner syntax: NULL rather than 0. * lib/idcache.c (getuidbyname, getgidbyname): Return NULL, not 0. 2006-11-20 Paul Eggert * lib/idcache.c: Undo most recent patch, dated 2006-11-06. It mishandled the case where the group was missing. Problem reported by Greg Schafer. * modules/idcache: Likewise. 2006-11-18 Jim Meyering * check-module (%exempt_header): Add exception for some conditionally-included headers. * modules/i-ring (Depends-on): Add verify. (License): Change to LGPL. 2006-11-16 Paul Eggert * modules/getaddrinfo (Depends-on): Remove inttostr; add snprintf. * lib/getaddrinfo.c: Include snprintf.h rather than intprops.h and inttostr.h. Use snprintf rather than uinttostr, so that LGPLed code doesn't depend on GPLed. 2006-11-17 Paul Eggert * modules/inline (License): Change from GPL to LGPL. 2006-11-17 Jim Meyering * modules/d-type (License): Switch to LGPL. 2006-11-15 Bruno Haible * m4/alloca.m4 (gl_FUNC_ALLOCA): Fix the AC_CACHE_CHECK message. 2006-11-15 Eric Blake * m4/allocsa.m4 (gl_ALLOCSA): Don't invoke macro already picked up by the module dependency. 2006-11-15 Yoann Vandoorselaere Bruno Haible * gnulib-tool (func_create_testdir): Add license consistency check. 2006-11-15 Eric Blake * m4/alloca.m4 (gl_FUNC_ALLOCA): Use AC_CACHE_CHECK to avoid a random "(cached)" in configure output. 2006-11-14 Ralf Wildenhues * m4/inttypes.m4 (gl_INTTYPES_H): Use AC_CACHE_CHECK so that the test for conforming inttypes.h is both announced and cached. * MODULES.html.sh (seen_modules, seen_files): New variables. (func_module): Rewrite to use a few less gnulib-tool and sed invocations. Avoid a couple of quadratic algorithms for ... (missed_modules, missed_files): ... these, with ... (func_append, func_tmpdir): ... these new functions, from gnulib-tool. Analogously, install traps for cleanup. * tests/test-gc.c (main): Remove unused variables. * tests/test-read-file.c: Include stdlib.h, for 'free'. 2006-11-14 Paul Eggert * modules/inttostr (License): Change to LGPL. 2006-11-14 Eric Blake * modules/tempname (License): Change to LGPL. 2006-11-14 Eric Blake * doc/functions.texi (Function Portability): *printf functions on Cygwin now understand all POSIX size specifiers. 2006-11-14 Bruno Haible * modules/c-ctype (License): Change to LGPL. 2006-11-12 Bruno Haible * m4/lib-link.m4 (AC_LIB_LINKFLAGS, AC_LIB_HAVE_LINKFLAGS, AC_LIB_LINKFLAGS_BODY): Also set a LIB${NAME}_PREFIX variable. Needed for GNOME libraries, for which the include files are installed in subdirectories of $prefix/include. 2006-11-12 Bruno Haible * m4/lib-link.m4: Require at least autoconf-2.54. (AC_LIB_LINKFLAGS_BODY) [autoconf < 2.61]: Turn dots into the library name to underscores for the --with option. 2006-11-13 Bruno Haible * gnulib-tool (func_create_testdir): Set gl_source_base correctly in the tests directory. Reported by Ralf Wildenhues. 2006-11-13 Bruno Haible * gnulib-tool (func_emit_initmacro_start): Also override AC_LIBSOURCES. (func_emit_initmacro_end): Undo the override here. (func_emit_initmacro_done): Emit a definition for gl_LIBSOURCES. Works around the famous automake error in coreutils. 2006-11-13 Eric Blake * lib/gl_anytree_oset.h (gl_tree_search_atleast): Return the element, not its node. 2006-11-12 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am): Replace occurrences of '$(top_srcdir)/build-aux/', taking into account the real auxdir. 2006-11-12 Bruno Haible * gnulib-tool: New option --local-symlink. (func_usage): Document it. (lsymbolic): New variable. (func_import, func_create_testdir): If --symlink was not specified, test whether --local-symlink was specified and the file comes from the local_gnulib_dir. 2006-11-12 Bruno Haible * gnulib-tool (func_ln): New function. (func_ln_if_changed, func_create_testdir): Use it instead of "ln -s". 2006-11-12 Bruno Haible Finish support for source files in subdirectories. * gnulib-tool (func_emit_lib_Makefile_am): If some of the source files are in subdirectories, set uses_subdirs and add 'subdir-objects' to AUTOMAKE_OPTIONS. (func_import, func_create_testdir): Invoke AM_PROG_CC_C_O in this case. 2006-11-12 Bruno Haible * gnulib-tool (func_get_automake_snippet): Synthesize also an EXTRA_lib_SOURCES augmentation. (func_emit_lib_Makefile_am): Initialize EXTRA_lib..._SOURCES to empty. 2006-11-12 Jim Meyering Make fts (in FTS_CWDFD mode) more efficient by caching a few open file descriptors. This also averts a failure on systems with native openat support when a traversed directory lacks "x" access. * lib/fts_.h: Include "i-ring.h" (struct FTS) [fts_fd_ring]: New member. * lib/fts.c (RESTORE_INITIAL_CWD): Also call fd_ring_clear. (FCHDIR): Add parentheses. (fd_ring_check, fd_ring_print) [!FTS_DEBUG]: Define away. (cwd_advance_fd): Add a 3rd parameter. Adjust all callers. When descending, rather than simply closing the previous fts_cwd_fd value, push that file descriptor onto the ring. (same_fd, fd_ring_print, fd_ring_check) [FTS_DEBUG]: New functions. (fts_open): Initialize the new fd_ring member. (fts_close): Clear the ring. (fts_safe_changedir): When possible, use our new fd_ring to skip the diropen and fstat and dev/ino comparison that would normally accompany a virtual `chdir ("..")'. * modules/fts (Depends-on): Add i-ring. * modules/i-ring: New module. * lib/i-ring.c, lib/i-ring.h, lib/i-ring-test.c: New files. * m4/i-ring.m4: New file. 2006-11-12 Ralf Wildenhues * gnulib-tool (func_create_testdir): Fix replacement of `build-aux' in configure.ac. Run autotools in gltests subdirectory. (func_create_testdir, func_create_megatestdir, test): There is no need for '--force' in most autotool invocations in a new tree. Actually fail the whole test if any of the tools, or the configure or make stages fail. Sync from Automake. * build-aux/gnupload: Revert last change. Add pointer to upload instructions of the GNU Maintenance Instructions. Suggestion by Karl Berry. 2006-11-10 Jim Meyering * lib/fts.c [FTS_DEBUG]: Don't try to print a pointer via %s. 2006-11-09 Paul Eggert * lib/gettext.h (dgettext, dcgettext, ngettext) [! ENABLE_NLS]: (dngettext, dcngettext, bindtextdomain) [! ENABLE_NLS]: (bind_textdomain_codeset) [! ENABLE_NLS]: Evaluate all the arguments. That way, callers get compatible behavior if the arguments have side effects. Also, it avoids some GCC diagnostics in some cases; Joel E. Denny reported problems when Bison was configured with --enable-gcc-warnigs. 2006-11-10 Jim Meyering * m4/inline.m4 (gl_INLINE): Check with the compiler, not cpp, so that relevant options in CFLAGS (like -O, -fno-inline) are taken into account. 2006-11-10 Jim Meyering * modules/inline: New file/module. * modules/xalloc (Files): Remove m4/inline.m4. (Depends-on): Add inline, instead. * modules/oset: Likewise. * modules/list: Likewise. 2006-11-09 Paul Eggert * lib/stdint_.h (uintmax_t): Fix typo: int64_t -> uint64_t. Problem reported by Matthew Woehlke. 2006-11-09 Bruno Haible * lib/tempname.c (gen_tempname): Remove variant that invokes __gen_tempname. * m4/tempname.m4 (gl_FUNC_GEN_TEMPNAME): Don't test for __gen_tempname. 2006-11-08 Bruno Haible * m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Set ac_cv_type_long_long_int to 'yes' instead of 'cross-compiling'. 2006-11-08 Paul Eggert * lib/quotearg.h (quotearg_free): New decl. * lib/quotearg.c (quotearg_free): New function. (slot0, nslots, slotvec0, slotvec): Now file-scope so that quotearg_free can get at them. 2006-11-08 Ralf Wildenhues Sync from Automake. * build-aux/gnupload: Add missing 'gnu' to example URL. Report by Karl Berry. 2006-11-08 Bruno Haible * m4/inline.m4 (gl_INLINE): Also test __NO_INLINE__. Suggested by Paul Eggert. 2006-11-08 Jim Meyering * lib/fts.c [!_LGPL_PACKAGE]: Don't include fcntl--.h twice. It's already included if !_LIBC. (fts_safe_changedir): Add a comment. 2006-11-07 Paul Eggert * m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Detect bug in Tandem NonStop Kernel (OSS) cc -O circa 2004, reported by Matthew Woehlke. * lib/xalloc.h (XMALLOC, XNMALLOC, XZALLOC, XCALLOC): Move definitions up, to avoid colliding with change below. (static_inline) [HAVE_INLINE]: New macro. (xnmalloc, xnrealloc, x2nrealloc, xcharalloc): Provide extern decls when !HAVE_INLINE. Do not define unless static_inline is defined, either by us or by xmalloc.c. Use static_inline rather than static inline. (XCALLOC): Optimize sizeof(T) = 1 case. * lib/xmalloc.c (static_inline) [!HAVE_INLINE]: New macro. 2006-11-07 Bruno Haible * lib/xalloc.h (XNMALLOC): Restore optimization of sizeof(T) = 1 case. * m4/xalloc.m4 (gl_PREREQ_XALLOC): Require gl_INLINE instead of AC_C_INLINE. * modules/xalloc (Files): Add m4/inline.m4. 2006-11-07 Ralf Wildenhues * README: Fix typo. * doc/gnulib.texi (Miscellaneous Notes): Likewise, rename... (Miscellanous Notes): ...from this. 2006-11-07 Paul Eggert * m4/flexmember.m4 (AC_C_FLEXIBLE_ARRAY_MEMBER): Mention that offsetof should be used instead of sizeof. From Bruno Haible. 2006-11-07 Bruno Haible * lib/w32spawn.h (prepare_spawn): Use XNMALLOC instead of xmalloc. 2006-11-06 Paul Eggert Simplify xmalloc expressions. Add overflow check in xmalloc arguments. * lib/gl_anyavltree_list2.h (create_subtree_with_contents): (gl_tree_create, gl_tree_add_first, gl_tree_add_last): (gl_tree_add_before, gl_tree_add_after): Use XMALLOC instead of xmalloc, and XCALLOC instead of xzalloc. * lib/gl_anyhash_list2.h (hash_resize): Likewise. * lib/gl_anylinked_list2.h (gl_linked_create_empty, gl_linked_create): (gl_linked_add_first, gl_linked_add_last, gl_linked_add_before): (gl_linked_add_after, gl_linked_add_at): Likewise. * lib/gl_anyrbtree_list2.h (create_subtree_with_contents): (gl_tree_create, gl_tree_add_first, gl_tree_add_last): (gl_tree_add_before, gl_tree_add_after): Likewise. * lib/gl_anytree_list2.h (gl_tree_create_empty): Likewise. * lib/gl_anytree_oset.h (gl_tree_create_empty): Likewise. * lib/gl_anytreehash_list1.h (add_to_bucket): Likewise. 2006-11-06 Ralf Wildenhues * lib/gl_oset.h: Use C comment style, not C++ comment style. 2006-11-06 Bruno Haible * m4/inline.m4: New file. * m4/gl_list.m4 (gl_LIST): Require gl_INLINE. * modules/list (Files): Add m4/inline.m4. * modules/oset (Files): Likewise. 2006-11-06 Paul Eggert * lib/idcache.c: Include , for offsetof. (struct userid.name): Change from char * to a flexible array member. All uses changed. * modules/idcache (Depends-on): Add flexmember. * MODULES.html.sh (Core language properties): New module flexmember. * modules/flexmember, m4/flexmember.m4: New files. * lib/xalloc.h (xnmalloc, xnrealloc, x2nrealloc): Now static inline functions that are identical with the old xnmalloc_inline, xnrealloc_inline, x2nrealloc_inline of lib/xmalloc.c. This is so that we can avoid some unnecessary integer multiplications and divisions in the common case where the element size is known at compile time. (XNMALLOC) [HAVE_INLINE]: Remove special case, which is no longer needed. (xnboundedmalloc): Remove. (XMALLOC, XNMALLOC, XZALLOC, XCALLOC): Use lower-case letters for arguments, for consistency with rest of this header. (xcharalloc): Rewrite using XNMALLOC. * lib/xmalloc.c (xnmalloc_inline, xnmalloc, xnrealloc_inline): (xnrealloc, x2nrealloc_inline, x2nrealloc): Remove. The *_inline versions have been moved to lib/xalloc.h and renamed to be the non-*_inline versions. (xmalloc, xrealloc): Implement without reference to the xnmalloc and xnrealloc functions, since those functions are now inline and now call us. (x2realloc): Invoke x2realloc, not x2realloc_inline, to accommodate renaming described above. * m4/xalloc.m4 (gl_PREREQ_XMALLOC): Remove AC_C_INLINE since xmalloc.c no longer uses inline directly. gl_PREREQ_XALLOC now captures the dependency in AC_C_INLINE. New module canonicalize-lgpl, proposed by Charles Wilson in with a few small changes afterwards. * MODULES.html.sh (File system functions): New module canonicalize-lgpl. * lib/canonicalize.h: Add comments for canonicalize_filename_mode and canonicalize_file_name. * lib/canonicalize-lgpl.c, m4/canonicalize-lgpl.m4: * modules/canonicalize-lgpl: New files. 2006-11-05 Bruno Haible * gnulib-tool (func_import, func_create_testdir): Create directories also for files in subdirectories of lib/. 2006-11-05 Bruno Haible * lib/gl_array_list.c (gl_array_iterator_next): Make pointer decrement ANSI C compliant. 2006-11-03 Bruno Haible Simplify xmalloc expressions. Add overflow check in xmalloc arguments. * m4/xalloc.m4 (gl_PREREQ_XALLOC): Require AC_C_INLINE. * lib/xalloc.h (XMALLOC, XNMALLOC, XZALLOC, XCALLOC): New macros. (xnboundedmalloc): New inline function. * lib/classpath.c (new_classpath): Use XNMALLOC instead of xmalloc. * lib/clean-temp.c (create_temp_dir): Use XNMALLOC, XMALLOC instead of xmalloc. * lib/concatpath.c (concatenated_pathname): Use XNMALLOC instead of xmalloc. * lib/fatal-signal.c (at_fatal_signal): Use XNMALLOC instead of xmalloc. * lib/findprog.c (find_in_path): Use XNMALLOC instead of xmalloc. * lib/gl_array_list.c (gl_array_create_empty): Use XMALLOC instead of xmalloc. (gl_array_create): Use XNMALLOC, XMALLOC instead of xmalloc. * lib/gl_array_oset.c (gl_array_create_empty): Use XNMALLOC instead of xmalloc. * lib/gl_avltree_oset.c (gl_tree_add_first, gl_tree_add_before, gl_tree_add_after): Use XMALLOC instead of xmalloc. * lib/gl_carray_list.c (gl_carray_create_empty): Use XMALLOC instead of xmalloc. (gl_carray_create): Use XNMALLOC, XMALLOC instead of xmalloc. * lib/gl_rbtree_oset.c (gl_tree_add_first, gl_tree_add_before, gl_tree_add_after): Use XMALLOC instead of xmalloc. * lib/gl_sublist.c (gl_sublist_create): Use XMALLOC instead of xmalloc. * lib/pagealign_alloc.c (new_memnode): Use XMALLOC instead of xmalloc. * lib/sh-quote.c (shell_quote_argv): Use XNMALLOC instead of xmalloc. * lib/xvasprintf.c (xstrcat): Use XNMALLOC instead of xmalloc. 2006-11-03 Bruno Haible * lib/c-ctype.h [C++]: Define functions without name mangling. * lib/fwriteerror.h [C++]: Likewise. * lib/gcd.h [C++]: Likewise. * lib/linebreak.h [C++]: Likewise. 2006-11-03 Paul Eggert * lib/canonicalize.h: (canonicalize_mode_t, CAN_EXISTING): (CAN_ALL_BUT_LAST, CAN_MISSING, canonicalize_filename_mode): Define only if PROVIDE_CANONICALIZE_FILENAME_MODE is defined. * m4/canonicalize.m4 (AC_FUNC_CANONICALIZE_FILE_NAME): Check for functions and headers just once. Check for declaration of canonicalize_file_name. Define PROVIDE_CANONICALIZE_FILENAME_MODE. 2006-11-02 Charles Wilson * gnulib-tool (func_import): Fix typo in actioncmd. 2006-11-02 Bruno Haible * gnulib-tool (func_get_automake_snippet): Interpret a backslash- newline sequence in the Makefile.am snippet as a space, like "make" does. Reported by Roger Persson . 2006-11-01 Bruno Haible * m4/strcase.m4 (gl_FUNC_STRNCASECMP): Check whether strncasecmp is already declared in . * lib/strcase.h (strncasecmp): Don't declare it if yes. 2006-11-01 Bruno Haible * m4/strcase.m4 (gl_FUNC_STRCASECMP): Don't define strcasecmp here. * lib/strcase.h: Include . (strcasecmp): Define to rpl_strcasecmp here. 2006-11-01 Bruno Haible * lib/printf-parse.c (PRINTF_PARSE): Cast malloc/realloc results. 2006-11-01 Eric Blake * lib/mkstemp-safer.c (mkstemp_safer): Allow C++ compilation. * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Allow C++ configuration. 2006-10-29 Bruno Haible Make it compile in C++ mode. * lib/full-write.c (full_rw): Add a cast. 2006-11-01 Bruno Haible * gnulib-tool (func_get_automake_snippet): Change sed_combine_lines to be POSIX compliant. Reported by Roger Persson . 2006-11-01 Eric Blake * lib/getopt_.h: Fix comments. 2006-10-31 Eric Blake * modules/tmpdir (Depends-on): Add sys_stat. * modules/mkdtemp (Depends-on): Add tempname, drop unistd. * lib/mkdtemp.c (gen_tempname): Remove; tempname covers this. * lib/tmpdir.c (S_ISDIR): Simplify, thanks to sys_stat. * m4/mkdtemp.m4 (gl_PREREQ_MKDTEMP): Simplify, thanks to tempname. 2006-10-31 Paul Eggert Avoid some C++ diagnostics reported by Bruno Haible. * lib/quotearg.c (clone_quoting_options): Use xmemdup rather than xmalloc. (quotearg_alloc): Use xcharalloc rather than xmalloc. (struct slotvec): Move to top level. (quotearg_n_options): Rewrite to avoid xmalloc. * lib/xalloc.h (xcharalloc): New function. * (xrealloc, xnrealloc, x2realloc, x2nrealloc, xmemdup): [defined __cplusplus]: Add function template that provides result type propagation. This part of the change is from Bruno Haible. 2006-10-29 Bruno Haible Make it compile in C++ mode. * lib/striconv.c (mem_cd_iconv): Cast malloc/realloc result. * lib/strnlen1.c (strnlen1): Cast memchr result. * lib/mbchar.h (mb_copy): Rename arguments to 'new_mbc', 'old_mbc'. * lib/clean-temp.c (string_equals, string_hash): Add casts. (create_temp_dir): Rename local variable 'template'. (compile_csharp_using_sscli): Add cast. * lib/fatal-signal.c (at_fatal_signal): Cast xmalloc result. * lib/findprog.c (find_in_path): Likewise. * lib/linebreak.c (mbs_width_linebreaks): Cast malloc result. * lib/wait-process.c (register_slave_subprocess): Likewise. 2006-10-22 Bruno Haible * modules/tsearch: New file. * lib/tsearch.h: New file. * lib/tsearch.c: New file, from glibc-2.5 with small modifications. * m4/tsearch.m4: New file. * MODULES.html.sh (Support for systems lacking POSIX:2001): Add tsearch. 2006-10-29 Eric Blake * lib/arcfour.c: Assume config.h. * lib/arctwo.c: Likewise. * lib/base64.c: Likewise. * lib/check-version.c: Likewise. * lib/crc.c: Likewise. * lib/des.c: Likewise. * lib/gc-gnulib.c: Likewise. * lib/gc-libgcrypt.c: Likewise. * lib/gc-pbkdf2-sha1.c: Likewise. * lib/getaddrinfo.c: Likewise. * lib/getdelim.c: Likewise. * lib/getline.c: Likewise. * lib/hmac-md5.c: Likewise. * lib/hmac-sha1.c: Likewise. * lib/iconvme.c: Likewise. * lib/md2.c: Likewise. * lib/md4.c: Likewise. * lib/memxor.c: Likewise. * lib/read-file.c: Likewise. * lib/readline.c: Likewise. * lib/rijndael-alg-fst.c: Likewise. * lib/rijndael-api-fst.c: Likewise. * lib/xgetdomainname.c: Likewise. 2006-10-28 Eric Blake * lib/xstrndup.c: Assume config.h. 2006-10-27 Paul Eggert Move stat.h-substitute stuff from lib/stat-macros.h to lib/stat_.h. stat-macros.h is now for our own macros, whereas stat_h is for macros in the name space. * lib/stat-macros.h: Remove copyright notice, as this file is now tiny. (STAT_MACROS_H): Remove. (S_IFMT, S_ISBLK, S_ISCHR, S_ISDIR, S_ISFIFO, S_ISLNK, S_ISNAM): (S_ISMPB, S_ISMPC, S_ISNWK, S_ISREG, S_ISSOCK, S_ISDOOR, S_ISPORT): (S_TYPEISMQ, S_TYPEISTMO, S_TYPEISSEM, S_TYPEISSHM, S_ISCTG, S_ISOFD): (S_ISOFL, S_ISWHT, S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IRGRP): (S_IROTH, S_IWUSR, S_IWGRP, S_IWOTH, S_IXUSR, S_IXGRP, S_IXOTH): (S_IRWXU, S_IRWXG, S_IRWXO, S_IXUGO, S_IRWXUGO): Move these macros to ... * lib/stat_.h: here. Don't include stat-macros.h. * lib/canonicalize.c: Don't include stat-macros.h. * lib/chown.c: Likewise. * lib/euidaccess.c: Likewise. * lib/file-type.c: Likewise. * lib/filemode.c: Likewise. * lib/glob.c: Likewise. * lib/isapipe.c: Likewise. * lib/lchown.c: Likewise. * lib/lstat.c: Likewise. * lib/mkdir-p.c: Likewise. * lib/rmdir.c: Likewise. * m4/lchown.m4 (gl_FUNC_LCHOWN): Don't require gl_STAT_MACROS. * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Don't check for io.h unless mkdir isn't declared, to speed up 'configure'. Always create sys/stat.h, since it's unlikely any real sys/stat.h would define all the S_* symbols. * modules/canonicalize (Depends-on): Depend on sys_stat, not stat-macros. * modules/chown: Likewise. * modules/euidaccess: Likewise. * modules/filemode: Likewise. * modules/file-type: Likewise. * modules/glob: Likewise. * modules/isapipe: Likewise. * modules/lchown: Likewise. * modules/lstat: Likewise. * modules/mkancesdirs: Likewise. * modules/rmdir: Likewise. * modules/mkdir-p (Depends-on): Also depend on sys_stat. * modules/modechange: Likewise. * modules/stat-macros (Files): Remove m4/stat-macros.m4. (configure.ac): Remove gl_STAT_MACROS. * modules/sys_stat (Depends-on): Remove stat-macros. 2006-10-27 Bruno Haible * m4/signed.m4: Remove file. * m4/vasnprintf.m4 (gl_PREREQ_PRINTF_ARGS_: Remove bh_C_SIGNED invocation. * modules/vasnprintf (Files): Remove m4/signed.m4. 2006-10-27 Bruno Haible Update to GNU gettext 0.16. * modules/gettext (Files): Add m4/intl.m4, m4/intldir.m4. Remove m4/inttypes-h.m4, m4/signed.m4. * m4/gettext.m4: Update to GNU gettext 0.16. * m4/intl.m4: New file, from GNU gettext. * m4/intldir.m4: New file, from GNU gettext. * config/srclist.txt: Update 2006-10-27 Eric Blake * MODULES.html.sh: Document tempname. * modules/mkstemp (Depends-on): Add tempname, and drop transitive dependencies. (Files): Move lib/tempname.c... * modules/tempname: ...to this new module. * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Remove tempname checks. (gl_PREREQ_TEMPNAME): Move... * m4/tempname.m4: ...to this new file. * lib/mkstemp.c (includes) [!_LIBC]: Use tempname.h. * modules/sys_stat (Depends-on): Add stat-macros. * lib/stat_.h (includes): Pick up stat macros. * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Replace if stat macros are broken. * lib/tempname.c (includes): No need to include "stat-macros.h". (__gen_tempname) [!_LIBC]: Expose as gen_tempname. (direxists, __path_search) [!_LIBC]: Don't compile these in gnulib; the tmpdir module covers that. * lib/tempname.h: New file. 2006-10-26 Paul Eggert * COPYING: Explain how gnulib-tool converts licence headers. Almost all wording by Eric Blake. 2006-10-25 Paul Eggert * lib/mbchar.h (is_basic_table): Make read-only. * lib/mbchar.c (is_basic_table): Likewise. Reported by John Darrington. 2006-10-25 Bruno Haible * lib/progname.h (set_program_name): Undefine before defining. 2006-10-25 Bruno Haible * lib/gettext.h (_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS): Define to false for non-gcc C++ compilers. Reported by Nelson H. F. Beebe . 2006-10-24 Bruno Haible * lib/striconv.c (mem_cd_iconv, str_cd_iconv): Treat all non-GNU iconv implementations like Irix iconv. 2006-10-24 Paul Eggert * modules/vararrays: New file. * m4/vararrays.m4: New file, taken from diffutils. * MODULES.html.sh: New module vararrays. 2006-10-24 Karl Berry * doc/gnulib-intro.texi: --- instead of --; non-naive naive. Don't call GNU Unix. 2006-10-24 Ralf Wildenhues * users.txt: Add Libtool. Sync from Libtool: 2006-10-24 Paul Eggert * lib/argz.c: Remove check for HAVE_CONFIG_H, to conform to gnulib's policy of including config.h unconditionally. 2006-10-24 Bruno Haible * modules/wcwidth (Files): Add m4/wint_t.m4. * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Require gt_TYPE_WINT_T. * lib/wcwidth.h (iswprint): Use 'int' if 'wint_t' is not defined. 2006-10-24 Paul Eggert * lib/getdate.y (yyerror): Make the arguments pointer-to-const, to pacify GCC with some -W flags enabled. Problem reported by Bruno Haible. 2006-10-24 Jim Meyering * MODULES.html.sh: Remove uinttostr. It's not a module. Reported by Karl Berry. 2006-10-23 Bruno Haible * lib/fts.c (fts_build): Move variable declaration, for C89 compliance. 2006-10-24 Bruno Haible * lib/gl_list.h: Use C comment style, not C++ comment style. 2006-10-23 Eric Blake * lib/getaddrinfo.c (includes): Add missing include. 2006-10-23 Bruno Haible Paul Eggert Ability to rename obstack_free. * lib/obstack.h (__obstack_free): New macro. Declare instead of obstack_free. (obstack_free): Invoke the __obstack_free macro. * lib/obstack.c (obstack_free): Use __obstack_free macro. 2006-10-23 Bruno Haible Paul Eggert * lib/argp.h (argp_parse, __argp_parse): Comment out the identifiers __argc, __argv from the declaration. (They are defined as macros on mingw.) 2006-10-22 Bruno Haible * doc/gnulib-intro.texi: New file. * doc/gnulib.texi: Include it. 2006-10-21 Bruno Haible * doc/gnulib.texi: Split the chapter "Gnulib" into 3 chapters "Introduction", "Miscellanous Notes", "Particular Modules". 2006-10-21 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Change mostlyclean-local rule to avoid sh syntax error from bash versions 2.00..2.05 when $(MOSTLYCLEANDIRS) is empty. 2006-10-23 Jim Meyering * lib/getaddrinfo.c (getnameinfo): Use new lightweight uinttostr, in place of snprintf. * modules/inttostr (Files): Add lib/uinttostr.c. * lib/uinttostr.c (inttostr): New file/function. * lib/inttostr.h (uinttostr): Declare. * m4/inttostr.m4: Add AC_LIBOBJ([uinttostr]). * MODULES.html.sh (Numeric conversion functions ): Add uinttostr. * modules/getaddrinfo (Depends-on): Remove snprintf. Add inttostr. 2006-10-21 Paul Eggert * lib/canonicalize.c (ELOOP): Define if not already defined. Problem reported by Bruno Haible in . 2006-10-21 Paul Eggert * lib/stdint_.h [defined _AIX]: Don't include . Problem reported by Perry Smith and Ville Laurikari. * lib/getndelim2.c (SSIZE_MAX): Use same defn that getdelim.c uses. 2006-10-19 Bruno Haible * lib/getndelim2.c (SSIZE_MAX): Provide fallback definition. Needed for mingw. 2006-10-19 Bruno Haible * lib/openat-priv.h (EOPNOTSUPP): Provide fallback definition. Needed for mingw. 2006-10-19 Bruno Haible * m4/size_max.m4 (gl_SIZE_MAX): Cache the result. 2006-10-19 Bruno Haible * m4/allocsa.m4 (gl_ALLOCSA): Invoke gl_FUNC_ALLOCA, don't AC_REQUIRE it. 2006-10-19 Bruno Haible * m4/alloca.m4 (gl_FUNC_ALLOCA): Cache the result of the AC_EGREP_CPP invocation. 2006-10-19 Bruno Haible * gnulib-tool (func_create_testdir): Don't include ftruncate and mountlist by default. 2006-10-16 Bruno Haible * lib/c-strstr.c: Include c-strstr.h. 2006-10-18 Charles Wilson * gnulib-tool: Don't clobber $sourcebase when $local_gnulib_dir ends in a slash. 2006-10-18 Bruno Haible * lib/lock.h [C++]: Wrap definitions in extern "C". 2006-10-18 Bruno Haible * gnulib-tool (func_emit_initmacro_end): Remove duplicates from the gl_LIBOBJS list. 2006-10-18 Bruno Haible * lib/findprog.c (find_in_path): Avoid "gcc -Wwrite-strings" warning. 2006-10-19 Paul Eggert * lib/xstrtol.h: Include gettext.h. (_STRTOL_ERROR): Wrap English-language formats inside gettext. Problem reported by Eric Blake. * modules/xstrtol (Depends-on): Add gettext-h. 2006-10-19 Paul Eggert (tiny change) * lib/strftime.c (advance): New macro. (add): Use it to avoid adding 0 to a FILE *. FILE can be an incomplete type, so you can't add 0 to it. Problem and patch reported by Eelco Dolstra for dietlibc. 2006-10-18 Jim Meyering * lib/readutmp.c (desirable_utmp_entry): Use "bool" as the type for a local, and rename it: s/up/user_proc/. 2006-10-18 Sergey Poznyakoff * lib/readutmp.c (desirable_utmp_entry): Implement new flag: READ_UTMP_USER_PROCESS. * lib/readutmp.h (READ_UTMP_USER_PROCESS): New flag 2006-10-17 Paul Eggert * lib/localcharset.c: Do not check HAVE_SETLOCALE. * m4/localcharset.m4 (gl_LOCALCHARSET): Don't check for setlocale. 2006-10-17 Eric Blake * lib/sigprocmask.c (sigprocmask): Fix typo. * m4/signalblocking.m4 (gl_PREREQ_SIGPROCMASK): Fix typo. * modules/clean-temp (Makefile.am): Don't add to make output... (configure.ac): ...instead define SIGNAL_SAFE_LIST inside config.h. 2006-10-17 Bruno Haible * lib/gettext.h (gettext, ngettext, pgettext, npgettext): Define differently if DEFAULT_TEXT_DOMAIN is set. 2006-10-16 Bruno Haible * lib/clean-temp.c: Include fwriteerror.h. 2006-10-16 Bruno Haible * getndelim2.m4 (gl_GETNDELIM2): Remove 2003-10-23 hack. 2006-10-16 Bruno Haible * m4/signalblocking.m4 (gl_PREREQ_SIGPROCMASK): Also test for sigset_t. * lib/sigprocmask.h: Include . (sigset_t): Use the system's definition if present. 2006-10-17 Eric Blake * lib/xvasprintf.c (includes): Assume config.h. * lib/xasprintf.c (includes): Likewise. 2006-10-16 Paul Eggert * lib/fsusage.c (PROPAGATE_ALL_ONES): Don't assume uintmax_t is at least as wide as intmax_t. 2006-10-16 Alexandre Duret-Lutz (Imported from Automake.) * build-aux/gnupload: Update to version 1.1 of directive file. 2006-10-16 Eric Blake * modules/configmake (Makefile.am): Add pkglibexecdir support, to match Automake 1.10a. 2006-10-14 Bruno Haible * modules/sigprocmask: New file. * lib/sigprocmask.h: New file. * lib/sigprocmask.c: New file. * m4/signalblocking.m4 (gl_SIGNALBLOCKING): Renamed from gt_SIGNALBLOCKING. When not defining HAVE_POSIX_SIGNALBLOCKING, request sigprocmask.o. (gl_PREREQ_SIGPROCMASK): New macro. * modules/fatal-signal (Files): Remove m4/signalblocking.m4. (Depends-on): Add sigprocmask. * m4/fatal-signal.m4 (gl_FATAL_SIGNAL): Don't require gt_SIGNALBLOCKING. Test for 'raise' only once. * lib/fatal-signal.c: Include sigprocmask.h. (fatal_signal_set, init_fatal_signal_set, block_fatal_signals, unblock_fatal_signals): Define always. * MODULES.html.sh (Support for systems lacking POSIX:2001): Add sigprocmask. 2006-10-14 Paul Eggert Sync from Automake. * build-aux/install-sh (posix_mkdir): Reject FreeBSD 6.1 mkdir -p -m, which incorrectly sets the mode of an existing destination directory. In some cases the unpatched install-sh could do the equivalent of "chmod 777 /" or "chmod 0 /" on a buggy FreeBSD system. We hope this is rare in practice, but it's clearly worth fixing. Problem reported by Alex Unleashed in . Also, don't bother to check for -m bugs unless we're using -m; suggested by Stepan Kasal. 2006-10-14 Ralf Wildenhues Sync from Automake. * build-aux/depcomp (gcc3): Put dependency extraction flags before the `-c' flag, so they appear at the same position as in %FASTDEP% mode in depend2.am. Fixes build failure for FreeBSD's c89, which ignores unknown options only after the first non-option. Bug report against M4 by Nelson H. F. Beebe. 2006-10-13 Jim Meyering Fix a bug in yesterday's change. * lib/fts.c (fts_open): When using FTS_XDEV|FTS_NOSTAT, p->fts_statp->st_dev would be used uninitialized. Ensures that we always call fts_stat on the very first entry. Miklos Szeredi reported that find -xdev stopped working. 2006-10-12 Bruno Haible * gnulib-tool (func_get_automake_snippet): Append an automatically computed EXTRA_DIST augmentation. * modules/acl (Makefile.am): Remove EXTRA_DIST augmentation. * modules/alloca-opt (Makefile.am): Likewise. * modules/allocsa (Makefile.am): Likewise. * modules/arcfour (Makefile.am): Likewise. * modules/arctwo (Makefile.am): Likewise. * modules/argmatch (Makefile.am): Likewise. * modules/argz (Makefile.am): Likewise. * modules/atexit (Makefile.am): Likewise. * modules/backupfile (Makefile.am): Likewise. * modules/byteswap (Makefile.am): Likewise. * modules/c-strtod (Makefile.am): Likewise. * modules/c-strtold (Makefile.am): Likewise. * modules/calloc (Makefile.am): Likewise. * modules/canon-host (Makefile.am): Likewise. * modules/canonicalize (Makefile.am): Likewise. * modules/chdir-long (Makefile.am): Likewise. * modules/chdir-safer (Makefile.am): Likewise. * modules/check-version (Makefile.am): Likewise. * modules/chown (Makefile.am): Likewise. * modules/cloexec (Makefile.am): Likewise. * modules/close-stream (Makefile.am): Likewise. * modules/closeout (Makefile.am): Likewise. * modules/crc (Makefile.am): Likewise. * modules/csharpexec (Makefile.am): Likewise. * modules/cycle-check (Makefile.am): Likewise. * modules/des (Makefile.am): Likewise. * modules/dev-ino (Makefile.am): Likewise. * modules/dirfd (Makefile.am): Likewise. * modules/dirname (Makefile.am): Likewise. * modules/dup2 (Makefile.am): Likewise. * modules/eealloc (Makefile.am): Likewise. * modules/error (Makefile.am): Likewise. * modules/euidaccess (Makefile.am): Likewise. * modules/exclude (Makefile.am): Likewise. * modules/exitfail (Makefile.am): Likewise. * modules/fcntl-safer (Makefile.am): Likewise. * modules/fcntl (Makefile.am): Likewise. * modules/file-type (Makefile.am): Likewise. * modules/fileblocks (Makefile.am): Likewise. * modules/filemode (Makefile.am): Likewise. * modules/filenamecat (Makefile.am): Likewise. * modules/fnmatch (Makefile.am): Likewise. * modules/fopen-safer (Makefile.am): Likewise. * modules/fpending (Makefile.am): Likewise. * modules/fprintftime (Makefile.am): Likewise. * modules/free (Makefile.am): Likewise. * modules/fsusage (Makefile.am): Likewise. * modules/ftruncate (Makefile.am): Likewise. * modules/fts (Makefile.am): Likewise. * modules/gc-arcfour (Makefile.am): Likewise. * modules/gc-des (Makefile.am): Likewise. * modules/gc-hmac-md5 (Makefile.am): Likewise. * modules/gc-hmac-sha1 (Makefile.am): Likewise. * modules/gc-md4 (Makefile.am): Likewise. * modules/gc-pbkdf2-sha1 (Makefile.am): Likewise. * modules/gc-sha1 (Makefile.am): Likewise. * modules/gc (Makefile.am): Likewise. * modules/getaddrinfo (Makefile.am): Likewise. * modules/getcwd (Makefile.am): Likewise. * modules/getdelim (Makefile.am): Likewise. * modules/getdomainname (Makefile.am): Likewise. * modules/getgroups (Makefile.am): Likewise. * modules/gethostname (Makefile.am): Likewise. * modules/gethrxtime (Makefile.am): Likewise. * modules/getline (Makefile.am): Likewise. * modules/getloadavg (Makefile.am): Likewise. * modules/getlogin_r (Makefile.am): Likewise. * modules/getndelim2 (Makefile.am): Likewise. * modules/getopt (Makefile.am): Likewise. * modules/getpagesize (Makefile.am): Likewise. * modules/getpass-gnu (Makefile.am): Likewise. * modules/getpass (Makefile.am): Likewise. * modules/getsubopt (Makefile.am): Likewise. * modules/gettime (Makefile.am): Likewise. * modules/gettimeofday (Makefile.am): Likewise. * modules/getugroups (Makefile.am): Likewise. * modules/getusershell (Makefile.am): Likewise. * modules/glob (Makefile.am): Likewise. * modules/group-member (Makefile.am): Likewise. * modules/hard-locale (Makefile.am): Likewise. * modules/hash (Makefile.am): Likewise. * modules/hmac-md5 (Makefile.am): Likewise. * modules/hmac-sha1 (Makefile.am): Likewise. * modules/human (Makefile.am): Likewise. * modules/idcache (Makefile.am): Likewise. * modules/imaxabs (Makefile.am): Likewise. * modules/imaxdiv (Makefile.am): Likewise. * modules/inet_ntop (Makefile.am): Likewise. * modules/inet_pton (Makefile.am): Likewise. * modules/intprops (Makefile.am): Likewise. * modules/inttostr (Makefile.am): Likewise. * modules/inttypes (Makefile.am): Likewise. * modules/isapipe (Makefile.am): Likewise. * modules/javaversion (Makefile.am): Likewise. * modules/lchmod (Makefile.am): Likewise. * modules/lchown (Makefile.am): Likewise. * modules/localcharset (Makefile.am): Likewise. * modules/long-options (Makefile.am): Likewise. * modules/lstat (Makefile.am): Likewise. * modules/malloc (Makefile.am): Likewise. * modules/mathl (Makefile.am): Likewise. * modules/mbchar (Makefile.am): Likewise. * modules/md2 (Makefile.am): Likewise. * modules/md4 (Makefile.am): Likewise. * modules/md5 (Makefile.am): Likewise. * modules/memcasecmp (Makefile.am): Likewise. * modules/memchr (Makefile.am): Likewise. * modules/memcmp (Makefile.am): Likewise. * modules/memcoll (Makefile.am): Likewise. * modules/memcpy (Makefile.am): Likewise. * modules/memmem (Makefile.am): Likewise. * modules/memmove (Makefile.am): Likewise. * modules/mempcpy (Makefile.am): Likewise. * modules/memrchr (Makefile.am): Likewise. * modules/memset (Makefile.am): Likewise. * modules/memxor (Makefile.am): Likewise. * modules/mkancesdirs (Makefile.am): Likewise. * modules/mkdir-p (Makefile.am): Likewise. * modules/mkdir (Makefile.am): Likewise. * modules/mkdtemp (Makefile.am): Likewise. * modules/mkstemp (Makefile.am): Likewise. * modules/mktime (Makefile.am): Likewise. * modules/modechange (Makefile.am): Likewise. * modules/mountlist (Makefile.am): Likewise. * modules/nanosleep (Makefile.am): Likewise. * modules/obstack (Makefile.am): Likewise. * modules/openat (Makefile.am): Likewise. * modules/pagealign_alloc (Makefile.am): Likewise. * modules/pathmax (Makefile.am): Likewise. * modules/physmem (Makefile.am): Likewise. * modules/poll (Makefile.am): Likewise. * modules/posixtm (Makefile.am): Likewise. * modules/posixver (Makefile.am): Likewise. * modules/putenv (Makefile.am): Likewise. * modules/quote (Makefile.am): Likewise. * modules/quotearg (Makefile.am): Likewise. * modules/raise (Makefile.am): Likewise. * modules/read-file (Makefile.am): Likewise. * modules/readline (Makefile.am): Likewise. * modules/readlink (Makefile.am): Likewise. * modules/readtokens (Makefile.am): Likewise. * modules/readutmp (Makefile.am): Likewise. * modules/realloc (Makefile.am): Likewise. * modules/regex (Makefile.am): Likewise. * modules/rename-dest-slash (Makefile.am): Likewise. * modules/rename (Makefile.am): Likewise. * modules/rijndael (Makefile.am): Likewise. * modules/rmdir (Makefile.am): Likewise. * modules/rpmatch (Makefile.am): Likewise. * modules/safe-read (Makefile.am): Likewise. * modules/safe-write (Makefile.am): Likewise. * modules/same-inode (Makefile.am): Likewise. * modules/same (Makefile.am): Likewise. * modules/save-cwd (Makefile.am): Likewise. * modules/savedir (Makefile.am): Likewise. * modules/setenv (Makefile.am): Likewise. * modules/settime (Makefile.am): Likewise. * modules/sha1 (Makefile.am): Likewise. * modules/sig2str (Makefile.am): Likewise. * modules/snprintf (Makefile.am): Likewise. * modules/stat-macros (Makefile.am): Likewise. * modules/stat-time (Makefile.am): Likewise. * modules/stdbool (Makefile.am): Likewise. * modules/stdint (Makefile.am): Likewise. * modules/stdlib-safer (Makefile.am): Likewise. * modules/stpcpy (Makefile.am): Likewise. * modules/stpncpy (Makefile.am): Likewise. * modules/strcase (Makefile.am): Likewise. * modules/strcasestr (Makefile.am): Likewise. * modules/strchrnul (Makefile.am): Likewise. * modules/strcspn (Makefile.am): Likewise. * modules/strdup (Makefile.am): Likewise. * modules/strerror (Makefile.am): Likewise. * modules/strftime (Makefile.am): Likewise. * modules/strndup (Makefile.am): Likewise. * modules/strnlen (Makefile.am): Likewise. * modules/strpbrk (Makefile.am): Likewise. * modules/strsep (Makefile.am): Likewise. * modules/strstr (Makefile.am): Likewise. * modules/strtod (Makefile.am): Likewise. * modules/strtoimax (Makefile.am): Likewise. * modules/strtok_r (Makefile.am): Likewise. * modules/strtol (Makefile.am): Likewise. * modules/strtoll (Makefile.am): Likewise. * modules/strtoul (Makefile.am): Likewise. * modules/strtoull (Makefile.am): Likewise. * modules/strtoumax (Makefile.am): Likewise. * modules/strverscmp (Makefile.am): Likewise. * modules/sys_socket (Makefile.am): Likewise. * modules/sys_stat (Makefile.am): Likewise. * modules/sysexits (Makefile.am): Likewise. * modules/time_r (Makefile.am): Likewise. * modules/timegm (Makefile.am): Likewise. * modules/timespec (Makefile.am): Likewise. * modules/tmpfile-safer (Makefile.am): Likewise. * modules/trim (Makefile.am): Likewise. * modules/unistd-safer (Makefile.am): Likewise. * modules/unlinkdir (Makefile.am): Likewise. * modules/unlocked-io (Makefile.am): Likewise. * modules/userspec (Makefile.am): Likewise. * modules/utime (Makefile.am): Likewise. * modules/utimecmp (Makefile.am): Likewise. * modules/utimens (Makefile.am): Likewise. * modules/vasnprintf (Makefile.am): Likewise. * modules/vasprintf (Makefile.am): Likewise. * modules/vsnprintf (Makefile.am): Likewise. * modules/xalloc (Makefile.am): Likewise. * modules/xgetcwd (Makefile.am): Likewise. * modules/xnanosleep (Makefile.am): Likewise. * modules/xreadlink (Makefile.am): Likewise. * modules/xstrtod (Makefile.am): Likewise. * modules/xstrtol (Makefile.am): Likewise. * modules/xstrtold (Makefile.am): Likewise. * modules/yesno (Makefile.am): Likewise. * modules/getdate (Makefile.am): Don't add getdate.h to EXTRA_DIST. 2006-10-12 Paul Eggert * modules/error (Makefile.am): Distribute files through EXTRA_DIST, not lib_SOURCES. 2006-10-12 Eric Blake * modules/error (Makefile.am): Distribute files in /lib. * modules/obstack (Makefile.am): Likewise. 2006-10-12 Bruno Haible * modules/acl (Makefile.am): Distribute all files in lib/ through EXTRA_DIST. * modules/arcfour (Makefile.am): Likewise. * modules/arctwo (Makefile.am): Likewise. * modules/argmatch (Makefile.am): Likewise. * modules/argz (Makefile.am): Likewise. * modules/atexit (Makefile.am): Likewise. * modules/backupfile (Makefile.am): Likewise. * modules/c-strtod (Makefile.am): Likewise. * modules/c-strtold (Makefile.am): Likewise. * modules/calloc (Makefile.am): Likewise. * modules/canon-host (Makefile.am): Likewise. * modules/canonicalize (Makefile.am): Likewise. * modules/chdir-long (Makefile.am): Likewise. * modules/chdir-safer (Makefile.am): Likewise. * modules/check-version (Makefile.am): Likewise. * modules/chown (Makefile.am): Likewise. * modules/cloexec (Makefile.am): Likewise. * modules/close-stream (Makefile.am): Likewise. * modules/closeout (Makefile.am): Likewise. * modules/crc (Makefile.am): Likewise. * modules/cycle-check (Makefile.am): Likewise. * modules/des (Makefile.am): Likewise. * modules/dirfd (Makefile.am): Likewise. * modules/dirname (Makefile.am): Likewise. * modules/dup2 (Makefile.am): Likewise. * modules/euidaccess (Makefile.am): Likewise. * modules/exclude (Makefile.am): Likewise. * modules/exitfail (Makefile.am): Likewise. * modules/fcntl-safer (Makefile.am): Likewise. * modules/file-type (Makefile.am): Likewise. * modules/fileblocks (Makefile.am): Likewise. * modules/filemode (Makefile.am): Likewise. * modules/filenamecat (Makefile.am): Likewise. * modules/fnmatch (Makefile.am): Likewise. * modules/fopen-safer (Makefile.am): Likewise. * modules/fpending (Makefile.am): Likewise. * modules/fprintftime (Makefile.am): Likewise. * modules/free (Makefile.am): Likewise. * modules/fsusage (Makefile.am): Likewise. * modules/ftruncate (Makefile.am): Likewise. * modules/fts (Makefile.am): Likewise. * modules/gc (Makefile.am): Likewise. * modules/gc-pbkdf2-sha1 (Makefile.am): Likewise. * modules/getaddrinfo (Makefile.am): Likewise. * modules/getcwd (Makefile.am): Likewise. * modules/getdelim (Makefile.am): Likewise. * modules/getdomainname (Makefile.am): Likewise. * modules/getgroups (Makefile.am): Likewise. * modules/gethostname (Makefile.am): Likewise. * modules/gethrxtime (Makefile.am): Likewise. * modules/getline (Makefile.am): Likewise. * modules/getloadavg (Makefile.am): Likewise. * modules/getlogin_r (Makefile.am): Likewise. * modules/getopt (Makefile.am): Likewise. * modules/getpass (Makefile.am): Likewise. * modules/getpass-gnu (Makefile.am): Likewise. * modules/getsubopt (Makefile.am): Likewise. * modules/gettime (Makefile.am): Likewise. * modules/gettimeofday (Makefile.am): Likewise. * modules/getugroups (Makefile.am): Likewise. * modules/getusershell (Makefile.am): Likewise. * modules/glob (Makefile.am): Likewise. * modules/group-member (Makefile.am): Likewise. * modules/hard-locale (Makefile.am): Likewise. * modules/hash (Makefile.am): Likewise. * modules/hmac-md5 (Makefile.am): Likewise. * modules/hmac-sha1 (Makefile.am): Likewise. * modules/human (Makefile.am): Likewise. * modules/idcache (Makefile.am): Likewise. * modules/imaxabs (Makefile.am): Likewise. * modules/imaxdiv (Makefile.am): Likewise. * modules/inet_ntop (Makefile.am): Likewise. * modules/inet_pton (Makefile.am): Likewise. * modules/inttostr (Makefile.am): Likewise. * modules/isapipe (Makefile.am): Likewise. * modules/lchown (Makefile.am): Likewise. * modules/long-options (Makefile.am): Likewise. * modules/lstat (Makefile.am): Likewise. * modules/malloc (Makefile.am): Likewise. * modules/mathl (Makefile.am): Likewise. * modules/mbchar (Makefile.am): Likewise. * modules/md2 (Makefile.am): Likewise. * modules/md4 (Makefile.am): Likewise. * modules/md5 (Makefile.am): Likewise. * modules/memcasecmp (Makefile.am): Likewise. * modules/memchr (Makefile.am): Likewise. * modules/memcmp (Makefile.am): Likewise. * modules/memcoll (Makefile.am): Likewise. * modules/memcpy (Makefile.am): Likewise. * modules/memmem (Makefile.am): Likewise. * modules/memmove (Makefile.am): Likewise. * modules/mempcpy (Makefile.am): Likewise. * modules/memrchr (Makefile.am): Likewise. * modules/memset (Makefile.am): Likewise. * modules/memxor (Makefile.am): Likewise. * modules/mkancesdirs (Makefile.am): Likewise. * modules/mkdir (Makefile.am): Likewise. * modules/mkdir-p (Makefile.am): Likewise. * modules/mkdtemp (Makefile.am): Likewise. * modules/mkstemp (Makefile.am): Likewise. * modules/mktime (Makefile.am): Likewise. * modules/modechange (Makefile.am): Likewise. * modules/mountlist (Makefile.am): Likewise. * modules/nanosleep (Makefile.am): Likewise. * modules/openat (Makefile.am): Likewise. * modules/pagealign_alloc (Makefile.am): Likewise. * modules/physmem (Makefile.am): Likewise. * modules/poll (Makefile.am): Likewise. * modules/posixtm (Makefile.am): Likewise. * modules/posixver (Makefile.am): Likewise. * modules/putenv (Makefile.am): Likewise. * modules/quote (Makefile.am): Likewise. * modules/quotearg (Makefile.am): Likewise. * modules/raise (Makefile.am): Likewise. * modules/read-file (Makefile.am): Likewise. * modules/readline (Makefile.am): Likewise. * modules/readlink (Makefile.am): Likewise. * modules/readtokens (Makefile.am): Likewise. * modules/readutmp (Makefile.am): Likewise. * modules/realloc (Makefile.am): Likewise. * modules/regex (Makefile.am): Likewise. * modules/rename (Makefile.am): Likewise. * modules/rename-dest-slash (Makefile.am): Likewise. * modules/rijndael (Makefile.am): Likewise. * modules/rmdir (Makefile.am): Likewise. * modules/rpmatch (Makefile.am): Likewise. * modules/safe-read (Makefile.am): Likewise. * modules/safe-write (Makefile.am): Likewise. * modules/same (Makefile.am): Likewise. * modules/save-cwd (Makefile.am): Likewise. * modules/savedir (Makefile.am): Likewise. * modules/setenv (Makefile.am): Likewise. * modules/settime (Makefile.am): Likewise. * modules/sha1 (Makefile.am): Likewise. * modules/sig2str (Makefile.am): Likewise. * modules/snprintf (Makefile.am): Likewise. * modules/stdlib-safer (Makefile.am): Likewise. * modules/stpcpy (Makefile.am): Likewise. * modules/stpncpy (Makefile.am): Likewise. * modules/strcase (Makefile.am): Likewise. * modules/strcasestr (Makefile.am): Likewise. * modules/strchrnul (Makefile.am): Likewise. * modules/strcspn (Makefile.am): Likewise. * modules/strdup (Makefile.am): Likewise. * modules/strerror (Makefile.am): Likewise. * modules/strftime (Makefile.am): Likewise. * modules/strndup (Makefile.am): Likewise. * modules/strnlen (Makefile.am): Likewise. * modules/strpbrk (Makefile.am): Likewise. * modules/strsep (Makefile.am): Likewise. * modules/strstr (Makefile.am): Likewise. * modules/strtod (Makefile.am): Likewise. * modules/strtoimax (Makefile.am): Likewise. * modules/strtok_r (Makefile.am): Likewise. * modules/strtol (Makefile.am): Likewise. * modules/strtoll (Makefile.am): Likewise. * modules/strtoul (Makefile.am): Likewise. * modules/strtoull (Makefile.am): Likewise. * modules/strtoumax (Makefile.am): Likewise. * modules/strverscmp (Makefile.am): Likewise. * modules/time_r (Makefile.am): Likewise. * modules/timegm (Makefile.am): Likewise. * modules/tmpfile-safer (Makefile.am): Likewise. * modules/unistd-safer (Makefile.am): Likewise. * modules/unlinkdir (Makefile.am): Likewise. * modules/userspec (Makefile.am): Likewise. * modules/utime (Makefile.am): Likewise. * modules/utimecmp (Makefile.am): Likewise. * modules/utimens (Makefile.am): Likewise. * modules/vasnprintf (Makefile.am): Likewise. * modules/vasprintf (Makefile.am): Likewise. * modules/vsnprintf (Makefile.am): Likewise. * modules/xalloc (Makefile.am): Likewise. * modules/xgetcwd (Makefile.am): Likewise. * modules/xnanosleep (Makefile.am): Likewise. * modules/xreadlink (Makefile.am): Likewise. * modules/xstrtod (Makefile.am): Likewise. * modules/xstrtol (Makefile.am): Likewise. * modules/xstrtold (Makefile.am): Likewise. * modules/yesno (Makefile.am): Likewise. 2006-10-12 Jim Meyering * m4/getloadavg.m4: Revert the change below. * m4/getloadavg.m4 (gl_GETLOADAVG): Test for the existence of lib/getloadavg.c using "ls -L", not "test -f". The latter would fail with a symlink, which is what coreutils' ./bootstrap now creates by default. 2006-10-12 Bruno Haible * lib/inttypes_.h (_LONG_LONG_FORMAT_PREFIX): Don't define for MSVC or mingw. (_PRI64_PREFIX, _PRIu64_PREFIX, _SCN64_PREFIX, _SCNu64_PREFIX): Handle MSVC and mingw explicitly. 2006-10-11 Simon Josefsson Bruno Haible Add support for multiple gnulib-tool invocations in the scope of a single configure.ac file. * gnulib-tool (func_emit_lib_Makefile_am): In the _LIBADD variable, use a private [LT]LIBOBJS variant. Define a _DEPENDENCIES variable with the same contents as the _LIBADD variable. (func_emit_initmacro_start, func_emit_initmacro_end, func_emit_initmacro_done): New functions. (func_import, func_create_testdir): Invoke them. Allow the identifiers gl_LIBOBJS and gl_LTLIBOBJS. 2006-10-11 Bruno Haible * gnulib-tool (GETTEXTPATH, AUTOHEADER, AUTOPOINT): New variables. (func_create_testdir): Don't create po/Makefile.am, don't invoke autoreconf. Instead, invoke autopoint explicitly but move back the *.m4 files from gnulib. 2006-10-11 Bruno Haible * gnulib-tool (func_usage): Make module names after --create-testdir optional. (func_create_testdir): If no module was specified, use nearly all modules. 2006-10-12 Jim Meyering Big performance improvement for fts-based tools that use FTS_NOSTAT. Avoid spurious inode-mismatch problems on non-POSIX file systems. Details: http://article.gmane.org/gmane.comp.lib.gnulib.bugs/7416 * lib/fts_.h (FTS_DEFER_STAT): Define new flag. (FTS_OPTIONMASK): Extend the mask to reflect this addition. * lib/fts.c (DT_IS_KNOWN, DT_MUST_BE): Define. (FTS_NO_STAT_REQUIRED, FTS_STAT_REQUIRED): Define. (fts_set_stat_required): New function. (fts_open): Defer the calls to fts_stat, if possible or requested. Move the code that maps a command-line fts_info value FTS_DOT to FTS_D into fts_stat itself. (fts_read): Perform any required (deferred) fts_stat call. (fts_build): Likewise, for the directory we're about to open and read. In the readdir loop, carefully decide whether each entry will require an eventual call to fts_stat, using dirent.d_type info if available. (fts_stat): Move the test for whether to honor FTS_COMFOLLOW on a command line argument into this function. Update all callers. Map a return value of FTS_DOT to FTS_D for a command line argument. * modules/fts (Depends-on): Add d-type. Alphabetize. Thanks to Miklos Szeredi for his tenacity and for the initial bug report about "find" failing on a FUSE-based file system. * lib/fts.c (fts_open): Use consistent indentation. 2006-10-12 Paul Eggert * m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Renamed from gl_USE_SYSTEM_EXTENSIONS, to fix a coreutils bootstrap failure reported by Jim Meyering. All uses of cache variables renamed to match Autoconf's. (gl_USE_SYSTEM_EXTENSIONS): New macro, which simply requires the other one. * m4/rename-dest-slash.m4 (gl_FUNC_RENAME_TRAILING_DEST_SLASH): Fix misspelling in diagnostic. 2006-10-11 Paul Eggert * lib/mkdir-p.c (HAVE_FCHMOD): Define to false if not already defined. Problem reported by Matthew Woehlke. * lib/inttypes_.h (_LONG_LONG_FORMAT_PREFIX): New macro. Add support for Tandem NonStop R series. (_PRI64_PREFIX, _PRIu64_PREFIX, _SCN64_PREFIX, _SCNu64_PREFIX): Use new macro. * lib/rename-dest-slash.c: Include stdbool.h but not string.h. (has_trailing_slash): Omit size arg; all callers changed. Omit 'inline', since it doesn't help performance and we'd need to configure it. Don't count //, ///, etc. as having a trailing slash. As a side effect, this removes a C99ism reported by Matthew Woehlke. (rpl_rename_dest_slash): On failure, use rename's errno rather than (in some cases) an incorrect or junk errno. Simplify code by removing need to compute length; this does cause it to make two passes instead of one over the file name, but it's worth it. * m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Undo previous change, since Autoconf's version may no longer be appropriate now that we are using CVS Autoconf's version. Add support for Tandem. 2006-10-11 Paul Eggert Bruno Haible * lib/allocsa.h (sa_alignment_longlong, sa_alignment_max): Test HAVE_LONG_LONG_INT instead of HAVE_LONG_LONG. * m4/allocsa.m4 (gl_ALLOCSA): Invoke AC_TYPE_LONG_LONG_INT instead of gl_AC_TYPE_LONG_LONG. * lib/printf-args.h (arg_type, argument): Test HAVE_LONG_LONG_INT instead of HAVE_LONG_LONG. * lib/printf-args.c (printf_fetchargs): Likewise. * lib/printf-parse.c (PRINTF_PARSE): Likewise. * lib/vasnprintf.c (VASNPRINTF): Likewise. * m4/vasnprintf.m4 (gl_PREREQ_PRINTF_ARGS, gl_PREREQ_PRINTF_PARSE, gl_PREREQ_VASNPRINTF): Invoke AC_TYPE_LONG_LONG_INT instead of gl_AC_TYPE_LONG_LONG. 2006-10-11 Bruno Haible * m4/longlong.m4: Add comments. * m4/ulonglong.m4: Likewise. 2006-10-10 Bruno Haible Make it possible to #define stpcpy, strdup to aliases. * lib/stpcpy.c (stpcpy) [!_LIBC]: Don't undefine. * lib/strdup.c (strdup) [!_LIBC]: Don't undefine. 2006-10-10 Bruno Haible Make it possible to #define gcd to an alias. * lib/gcd.c: Include config.h. 2006-10-10 Bruno Haible Make it possible to #define c_isascii to an alias. * lib/c-ctype.h: Don't define the macros if NO_C_CTYPE_MACROS is defined. Undefine the macros before defining them, to avoid gcc warnings. * lib/c-ctype.c: Include config.h. Don't undefine the macros; instead, define NO_C_CTYPE_MACROS early. 2006-10-10 Bruno Haible Make it possible to #define set_program_name to an alias. * lib/progname.c: Don't undefine set_program_name; instead, undefine ENABLE_RELOCATABLE early. 2006-10-10 Paul Eggert Port to Tandem NSK OSS, which has 64-bit signed int but at most 32-bit unsigned int. Problem reported by Matthew Woehlke in: http://lists.gnu.org/r/bug-coreutils/2006-10/msg00062.html More generally, don't assume that 64-bit signed int is available if unsigned int is, and vice versa. * lib/inttypes_.h (_PRIu64_PREFIX, _SCNu64_PREFIX): Depend on unsigned symbols, not on their signed counterparts. * lib/stdint_.h (uint64_t, uint_least64_t, uint_fast64_t, uintmax_t): (UINT64_MAX, UINT_LEAST64_MAX, UINT_FAST64_MAX, UINTMAX_MAX): (UINT64_C, UINTMAX_C): Likewise. * lib/strtoimax.c (strtoll): Depend on signed symbols, not their unsigned counterparts. (Have_long_long, Unsigned): New macros. (Int): Renamed from INT. (strtoimax): Use the new macros. * m4/stdint.m4 (gl_STDINT_H): Require AC_TYPE_UNSIGNED_LONG_LONG_INT and substitute HAVE_UNSIGNED_LONG_LONG_INT. * modules/inttypes (inttypes.h): Substitute HAVE_UNSIGNED_LONG_LONG_INT. * modules/stdint (stdint.h): Likewise. (Files): Add m4/ulonglong.m4. 2006-10-10 Bruno Haible Fix a gcc -Wshadow warning. * lib/gl_anyhash_list2.h (hash_resize): Rename local variable 'index' to 'bucket'. * lib/gl_anylinked_list2.h (gl_linked_search_from_to, gl_linked_indexof_from_to): Likewise. * lib/gl_linkedhash_list.c (add_to_bucket, remove_from_bucket): Likewise. * lib/gl_anytreehash_list1.h (add_to_bucket, remove_from_bucket): Likewise. * lib/gl_anytreehash_list2.h (gl_tree_search_from_to): Likewise. Reported by Eric Blake. 2006-10-09 Paul Eggert * lib/filemode.h [HAVE_DECL_STRMODE]: Include unistd.h too, for NetBSD. Problem reported by Bruno Haible. 2006-10-09 Jim Meyering * lib/lchown.c: Include before "stat-macros.h". Patch from Bruno Haible. 2006-10-09 Jim Meyering * lib/fts-cycle.c (leave_dir): When "leaving" a top level directory due to FTS_SKIP, don't copy the parent's uninitialized dev/ino values. Trigger with e.g., mkdir d && valgrind ./chmod u+rwx d d 2006-10-08 Paul Eggert Don't include twice; this doesn't work in some cases, e.g., when config.h has "#define intmax_t long long int" and we include , , in that order. Problem reported by Matthew Woehlke in: http://lists.gnu.org/r/bug-coreutils/2006-10/msg00073.html * lib/fprintftime.c: Don't include config.h or fprintftime.h. * lib/fts-cycle.c: Don't include config.h. * lib/strftime.c: Include fprintftime.h if FPRINTFTIME is defined. * lib/xstrtoimax.c: Remove copyright notice since it's short tnow. Don't include config.h or xstrtol.h. Define STRTOL_T_MINIMUM and STRTOL_T_MAXIMUM unconditionally, since we now assume gnulib inttypes.h. * lib/xstrtoumax.c: Likewise. * lib/xstrtol.c: Include config.h and xstrtol.h after defining __strtol and the like, so that this module is more like its siblings. (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM) [! defined STRTOL_T_MINIMUM]: Remove; no longer needed now that we assume gnulib inttypes.h. 2006-10-08 Bruno Haible * doc/gnulib-tool.texi: Emphasize the drawbacks of the --symlink option. 2006-10-07 Jim Meyering * modules/inttypes (inttypes.h): Revert what seems to have been an inadvertent part of today's change: use "|", not "/" in the substitution for the "/"-containing string, $(ABSOLUTE_INTTYPES_H). 2006-10-07 Bruno Haible * modules/sublist: New file. 2006-10-07 Bruno Haible * modules/alloca-opt (alloca.h): Add a "DO NOT EDIT" comment. * modules/argz (argz.h): Likewise. * modules/arpa_inet (arpa/inet.h): Likewise. * modules/byteswap (byteswap.h): Likewise. * modules/configmake (configmake.h): Likewise. * modules/fcntl (fcntl.h): Likewise. * modules/fnmatch (fnmatch.h): Likewise. * modules/getopt (getopt.h): Likewise. * modules/glob (glob.h): Likewise. * modules/inttypes (inttypes.h): Likewise. * modules/netinet_in (netinet/in.h): Likewise. * modules/poll (poll.h): Likewise. * modules/stdbool (stdbool.h): Likewise. * modules/stdint (stdint.h): Likewise. * modules/sys_select (sys/select.h): Likewise. * modules/sys_socket (sys/socket.h): Likewise. * modules/sys_stat (sys/stat.h): Likewise. * modules/sysexits (sysexits.h): Likewise. * modules/unistd (unistd.h): Likewise. * gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Add a "DO NOT EDIT" comment to the generated file. (func_import): Likewise for gnulib-comp.m4. 2006-10-07 Bruno Haible * lib/gl_sublist.h: New file. * lib/gl_sublist.c: New file. 2006-10-06 Paul Eggert * lib/mkancesdirs.c (mkancesdirs): Pass to MAKE_DIR both the full file name (relative to the original working directory) and the file name component (relative to the temporary working directory). All callers changed. * lib/mkancesdirs.h (mkancesdirs): Adjust prototype to match. * lib/mkdir-p.c (make_dir_parents): Likewise. * lib/mkdir-p.h (make_dir_parents): Likewise. 2006-10-06 Eric Blake Define several macros for use by the clean-temp module. * m4/close-stream.m4 (gl_CLOSE_STREAM): Define GNULIB_CLOSE_STREAM. * m4/fcntl-safer.m4 (gl_FCNTL_SAFER): Define GNULIB_FCNTL_SAFER. * m4/stdio-safer.m4 (gl_FOPEN_SAFER): Define GNULIB_FOPEN_SAFER. * lib/clean-temp.h (close_stream_temp): New declaration. * lib/clean-temp.c (includes): Pull in headers according to what other modules are in use. (close_stream_temp) [GNULIB_CLOSE_STREAM]: New function. 2006-10-06 Bruno Haible * lib/javacomp.c (write_temp_file): Use fopen_temp, fwriteerror_temp instead of fopen, fwriteerror. 2006-10-06 Bruno Haible * lib/clean-temp.h (cleanup_temp_file, cleanup_temp_subdir, cleanup_temp_dir_contents, cleanup_temp_dir): Change return type to int. * lib/clean-temp.c (do_unlink, do_rmdir, cleanup_temp_file, cleanup_temp_subdir, cleanup_temp_dir_contents, cleanup_temp_dir): Return an error indicator. Suggested by Eric Blake. 2006-10-06 Bruno Haible * lib/clean-temp.c (PATH_MAX): Provide a fallback for GNU Hurd. Reported by Eric Blake. 2006-10-06 Bruno Haible * modules/closeout (Description): Mention stderr too. 2006-10-06 Bruno Haible and Paul Eggert * lib/closeout.c (close_stdout): Also close stderr. * lib/closeout.h: Update comment. 2006-10-05 Paul Eggert Fix some Darwin-7.9.0 porting problems reported by Bruno Haible in . * lib/dirchownmod.c: Include lchown.h. * lib/lchown.c: Don't include files that lchown.h now includes. Don't declare chown, since lchown.h now does that. * lib/lchown.h: Include errno.h, sys/types.h, unistd.h. (lchown): Define to rpl_chown if lchown is declared but does not exist. Declare using a prototype if lchown is not declared. Add a copyright notice. * lib/mkstemp.h: Include . * lib/openat.c: Include lchown.h. * lib/fcntl_.h (O_NOFOLLOW): Don't depend on O_NOFOLLOW_IS_INEFFECTIVE; we now test for that separately. * lib/fts.c (fts_safe_changedir): Inspect HAVE_WORKING_O_NOFOLLOW rather than O_NOFOLLOW, when testing whether it's possible to avoid a race condition reliably. * lib/savewd.c (savewd_chdir): Likewise. Remove macros that are no longer needed now that stdint.h is reliable. * lib/fsusage.c (UINTMAX_MAX): Remove. * lib/human.c (SIZE_MAX, UINTMAX_MAX): Remove. * lib/utimecmp.c (SIZE_MAX): Remove. * m4/lchown.m4 (gl_FUNC_LCHOWN): Check whether lchown is declared. * m4/fcntl_h.m4 (gl_FCNTL_H): Define HAVE_WORKING_O_NOFOLLOW instead of O_NOFOLLOW_IS_INEFFECTIVE. Define HAVE_WORKING_O_NOATIME if O_NOATIME works. 2006-10-05 Bruno Haible * lib/gl_list.h (gl_sortedlist_search_from_to, gl_sortedlist_indexof_from_to): New declarations. (gl_list_implementation): New fields sortedlist_search_from_to, sortedlist_indexof_from_to. (gl_sortedlist_search_from_to, gl_sortedlist_indexof_from_to): New inline functions. * lib/gl_list.c (gl_sortedlist_search_from_to, gl_sortedlist_indexof_from_to): New functions. * lib/gl_array_list.c (gl_array_sortedlist_indexof_from_to): New function. (gl_array_sortedlist_indexof, gl_array_sortedlist_search): Use it. (gl_array_sortedlist_search_from_to): New function. (gl_array_list_implementation): Update. * lib/gl_carray_list.c (gl_carray_sortedlist_indexof_from_to): New function. (gl_carray_sortedlist_indexof, gl_carray_sortedlist_search): Use it. (gl_carray_sortedlist_search_from_to): New function. (gl_carray_list_implementation): Update. * lib/gl_anylinked_list2.h (gl_linked_sortedlist_search_from_to, gl_linked_sortedlist_indexof_from_to): New functions. * lib/gl_linked_list.c (gl_linked_list_implementation): Update. * lib/gl_linkedhash_list.c (gl_linkedhash_list_implementation): Update. * lib/gl_anytree_list2.h (gl_tree_sortedlist_search_from_to, gl_tree_sortedlist_indexof_from_to): New functions. * lib/gl_avltree_list.c (gl_avltree_list_implementation): Update. * lib/gl_avltreehash_list.c (gl_avltreehash_list_implementation): Update. * lib/gl_rbtree_list.c (gl_rbtree_list_implementation): Update. * lib/gl_rbtreehash_list.c (gl_avltreehash_list_implementation): Update. 2006-10-05 Bruno Haible * lib/gl_list.h (gl_list_search_from, gl_list_search_from_to, gl_list_indexof_from, gl_list_indexof_from_to): New declarations. (struct gl_list_implementation): Add fields search_from_to, indexof_from_to. Remove fields search, indexof. (gl_list_search): Use the search_from_to method. (gl_list_search_from, gl_list_search_from_to): New functions. (gl_list_indexof): Use the indexof_from_to method. (gl_list_indexof_from, gl_list_indexof_from_to): New functions. * lib/gl_list.c (gl_list_search): Use the search_from_to method. (gl_list_search_from, gl_list_search_from_to): New functions. (gl_list_indexof): Use the indexof_from_to method. (gl_list_indexof_from, gl_list_indexof_from_to): New functions. * lib/gl_array_list.c (gl_array_indexof_from_to): Renamed from gl_array_indexof. Add start_index, end_index arguments. (gl_array_search_from_to): Renamed from gl_array_search. Add start_index, end_index arguments. (gl_array_remove, gl_array_list_implementation): Update. * lib/gl_carray_list.c (gl_carray_indexof_from_to): Renamed from gl_carray_indexof. Add start_index, end_index arguments. (gl_carray_search_from_to): Renamed from gl_carray_search. Add start_index, end_index arguments. (gl_carray_remove, gl_carray_list_implementation): Update. * lib/gl_anylinked_list2.h (gl_linked_search_from_to): Renamed from gl_linked_search. Add start_index, end_index arguments. (gl_linked_indexof_from_to): Renamed from gl_linked_indexof. Add start_index, end_index arguments. (gl_linked_remove): Update. * lib/gl_linked_list.c (gl_linked_list_implementation): Update. * lib/gl_linkedhash_list.c (gl_linkedhash_list_implementation): Update. * lib/gl_anytree_list1.h (iterstack_item_t): Change type of 'rightp' field to 'size_t'. * lib/gl_anytree_list2.h (gl_tree_search_from_to): Renamed from gl_tree_search. Add start_index, end_index arguments. (gl_tree_indexof_from_to): Renamed from gl_tree_indexof. Add start_index, end_index arguments. (gl_tree_remove): Update. * lib/gl_avltree_list.c (gl_avltree_list_implementation): Update. * lib/gl_rbtree_list.c (gl_rbtree_list_implementation): Update. * lib/gl_anytreehash_list1.h (compare_position_threshold): New function. * lib/gl_anytreehash_list2.h (gl_tree_search_from_to): Renamed from gl_tree_search. Add start_index, end_index arguments. (gl_tree_indexof_from_to): Renamed from gl_tree_indexof. Add start_index, end_index arguments. * lib/gl_avltreehash_list.c (gl_avltreehash_list_implementation): Update. * lib/gl_rbtreehash_list.c (gl_rbtreehash_list_implementation): Update. 2006-10-05 Bruno Haible * modules/fwriteerror (configure.ac): Define GNULIB_FWRITEERROR. * lib/clean-temp.h (open_temp, fopen_temp, close_temp, fclose_temp, fwriteerror_temp): New declarations. * lib/clean-temp.c (uintptr_t): Provide fallback definition. (descriptors): New variable. (cleanup): First, close the descriptors. (register_fd, unregister_fd, open_temp, fopen_temp, close_temp, fclose_temp, fwriteerror_temp): New functions. 2006-10-04 Jim Meyering * lib/fts.c (fts_open): Tiny comment change. 2006-10-04 Bruno Haible Make it possible to invoke AC_GNU_SOURCE after gl_LOCK_EARLY. * m4/lock.m4 (gl_LOCK_EARLY_BODY): New macro, extracted code from gl_LOCK_BODY. (gl_LOCK_EARLY): Require gl_LOCK_EARLY_BODY, not gl_LOCK_BODY. (gl_LOCK_BODY): Remove settings of CPPFLAGS, now done in gl_LOCK_EARLY_BODY. (gl_LOCK): Require gl_LOCK_BODY. 2006-10-04 Bruno Haible * lib/gl_oset.h (gl_setelement_threshold_fn): New type. (gl_oset_search_atleast): New declaration. (struct gl_oset_implementation): Add field 'search_atleast'. (gl_oset_search_atleast): New inline function. * lib/gl_oset.c (gl_oset_search_atleast): New function. * lib/gl_array_oset.c (gl_array_search_atleast): New function. (gl_array_oset_implementation): Update. * lib/gl_anytree_oset.h (gl_tree_search_atleast): New function. * lib/gl_avltree_oset.c (gl_avltree_oset_implementation): Update. * lib/gl_rbtree_oset.c (gl_rbtree_oset_implementation): Update. 2006-10-04 Bruno Haible * lib/fatal-signal.c (fatal_signals) [WOE32]: Add the SIGBREAK signal. 2006-10-03 Bruno Haible * lib/gl_rbtreehash_list.c (gl_rbtreehash_list_implementation): Renamed from gl_avltreehash_list_implementation. 2006-10-03 Bruno Haible * lib/gl_oset.c (gl_oset_add): Fix return type. 2006-10-02 Paolo Bonzini (tiny change) * lib/quotearg.c (mbstate_t) [!HAVE_MBRTOWC]: #define to int. 2006-10-02 Eric Blake * modules/strnlen (Depends-on): Add extensions. 2006-10-02 Eric Blake * m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Use autoconf's definition in 2.60+. 2006-10-02 Dmitry V. Levin * lib/fts.c (fts_close, fts_build, fts_palloc): Remove redundant checks. 2006-10-02 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am): Don't add no-dependencies to the AUTOMAKE_OPTIONS. Reported by Jim Meyering. 2006-09-29 Paul Eggert Work around bug in Solaris 10 /proc file system: /proc/self/fd/NNN/.. isn't the parent directory of the directory whose file descriptor is NNN. This needs to be worked around at run time, not compile time, since a program might be built on Solaris 8, where things work, and run on Solaris 10. * lib/openat-priv.h (BUILD_PROC_NAME): Remove. All callers changed to use the following interface instead: (OPENAT_BUFFER_SIZE): New macro. (openat_proc_name): New function. * lib/at-func.c (AT_FUNC_NAME): Adjust to above changes. * lib/openat.c (openat_permissive, openat_needs_fchdir, fdopendir): Likewise. * lib/openat-proc.c: New file. * modules/openat (Files): Add lib/openat-proc.c. (Depends-on): Add same-inode, stdbool. * m4/openat.m4 (gl_FUNC_OPENAT): Add AC_LIBOBJ(openat-proc). 2006-09-29 Bruno Haible * lib/fwriteerror.h (fwriteerror_no_ebadf): New declaration. * lib/(do_fwriteerror): Renamed from fwriteerror. Add ignore_ebadf argument. Set stdout_closed before testing for ferror, not after. (fwriteerror, fwriteerror_no_ebadf): New functions. 2006-09-28 Ralf Wildenhues * m4/intmax.m4 (gt_TYPE_INTMAX_T): Avoid unused variables warning. 2006-09-28 Paolo Bonzini * lib/poll.c (rpl_poll) [__APPLE__]: Use FIONREAD instead of MSG_PEEK. * m4/poll.m4: Look for sys/ioctl.h and sys/filio.h. 2006-09-28 Jim Meyering * lib/mkdir-p.c: Include "dirchownmod.h", not "dirchownmod.c". Include . 2006-09-28 Bruno Haible * modules/avltreehash-list (Depends-on): Add stdint, remove size_max. * modules/linkedhash-list (Depends-on): Likewise. * modules/rbtreehash-list (Depends-on): Likewise. 2006-09-28 Bruno Haible * lib/strndup.h: Simplify the redefinition of strndup. (_GL_CONCAT, _GL_XCONCAT, __STRNDUP_ID): Remove macros. * m4/strndup.m4 (gl_FUNC_STRNDUP): Don't define __STRNDUP_PREFIX. 2006-09-28 Bruno Haible * lib/gl_avltreehash_list.c: Include instead of size_max.h. * lib/gl_linkedhash_list.c: Likewise. * lib/gl_rbtreehash_list.c: Likewise. 2006-09-27 Paul Eggert * lib/canon-host.c (canon_host_r): Work around bug in Darwin 7.9.0 getaddrinfo. * lib/__fpending.h: Don't include unless HAVE_DECL___FPENDING. This avoids a bug with lsbcc, where it causes to cause a compile-time error. Problem reported by Nelson H. F. Beebe. * lib/getpass.c: Likewise, except for HAVE_DECL___FSETLOCKING instead of HAVE_DECL___PENDING. * m4/fpending.m4 (gl_FUNC_FPENDING): Check for stdio_ext at most once. * m4/getpass.m4 (gl_PREREQ_GETPASS): Check for __fsetlocking's declaration. 2006-09-27 Jim Meyering This file could end up with a definition for a function named __strndup, rather than rpl_strndup on a system with incomplete weak_alias support. * lib/strndup.c (strndup): Rename from __strndup. Remove #defines that used to map __strndup to strndup. Don't use K&R prototypes. Remove LIBC-related code, since this file is not sync'd with glibc. * lib/strndup.h: Revamp, accordingly. * m4/strndup.m4: Modernize. 2006-09-26 Paul Eggert * modules/savewd (Depends-on): Add 'raise'. * lib/savewd.c: Include , for 'raise'. 2006-09-26 Jim Meyering * m4/acl.m4 (AC_FUNC_ACL): Disable ACL support altogether when we detect Darwin 8.7.0's acl_get_file bug. Rearrange to perform the new (below) run-test while $LIBS contains any acl-related library. Set USE_ACL at the end. (gl_ACL_GET_FILE): New function. 2006-09-26 Eric Blake * lib/verror.c: Include unconditionally. 2006-09-25 Paul Eggert * modules/clock-time (Maintainer): Add self. * modules/getlogin_r (Depends-on): Add extensions. 2006-09-25 Ralf Wildenhues * modules/clock-time: New module. * modules/nanosleep (Depends-on): Add clock-time. * modules/gethrxtime (Depends-on): Likewise. * modules/gettime (Depends-on): Likewise. * modules/settime (Depends-on): Likewise. * modules/fts-lgpl: Depend on openat. * modules/mkancesdirs: Depend on savewd. * modules/mkdir-p: Likewise. 2006-09-25 Ralf Wildenhues * m4/host-os.m4 (gl_HOST_OS): Require AC_CANONICAL_HOST. * m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Rename cache variable from `gl_have_arbitrary_file_name_length_limit' to `gl_cv_have_arbitrary_file_name_length_limit', so that caching actually works between configure runs. 2006-09-25 Ralf Wildenhues Bruno Haible * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Include . 2006-09-25 Jim Meyering * m4/fcntl_h.m4 (gl_FCNTL_H): Fix typo in test for failed open. This typo caused coreutils/tests/dd/misc to fail on Darwin 8.7.0. 2006-09-25 Eric Blake * gnulib-tool (func_import, func_create_testdir): Fix typos in exec's in 2006-09-18 patch when shuffling fds. 2006-09-25 Bruno Haible * m4/getloadavg.m4 (gl_GETLOADAVG): Fix directory in error message. Reported by Jim Meyering. 2006-09-24 Jim Meyering * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Don't use '>' to compare a pointer against a literal "0". That caused failures with at least HP-UX's hpcc. 2006-09-22 Simon Josefsson * modules/gc-sha1: * modules/gc-md4: * modules/gc-hmac-sha1: * modules/gc-hmac-md5: * modules/gc-des: * modules/gc-arcfour: Distribute more files. 2006-09-22 Ralf Wildenhues * lib/gl_anylinked_list2.h [lint] (gl_linked_iterator) (gl_linked_iterator_from_to): Initialize struct completely. * lib/gl_anytree_list2.h [lint] (gl_tree_iterator): Likewise. (gl_tree_iterator_from_to): Likewise * lib/gl_anytree_oset.h [lint] (gl_tree_iterator): Likewise. * lib/gl_array_list.c [lint] (gl_array_iterator) (gl_array_iterator_from_to): Likewise. * lib/gl_array_oset.c [lint] (gl_array_iterator): Likewise. * lib/gl_carray_list.c [lint] (gl_carray_iterator) (gl_carray_iterator_from_to): Likewise. * lib/gc-gnulib.c [GC_USE_HMAC_SHA1]: include hmac.h for hmac_sha1. * lib/md4.c (md4_process_block): Remove unused variable. * lib/rijndael-api-fst.c (rijndaelBlockDecrypt): GCC suggests parentheses for clarity. 2006-09-22 Ralf Wildenhues * modules/bison-i18n (Depends-on): Add gettext. 2006-09-22 Ralf Wildenhues * m4/fsusage.m4 (gl_STATFS_TRUNCATES): Avoid unused variable. * m4/getdate.m4 (gl_C_COMPOUND_LITERALS): Likewise. * m4/jm-winsz1.m4 (gl_HEADER_TIOCGWINSZ_IN_TERMIOS_H): Likewise; also add missing comma that caused broken test. * m4/link-follow.m4 (gl_AC_FUNC_LINK_FOLLOWS_SYMLINK): Include stdlib.h, for `abort'. * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Avoid unused variables. * m4/mkdir-slash.m4 (gl_FUNC_MKDIR_TRAILING_SLASH): Check for and include unistd.h if present, for `rmdir'. * m4/physmem.m4 (gl_SYS__SYSTEM_CONFIGURATION): Avoid unused variables. * m4/putenv.m4 (gl_FUNC_PUTENV): Rewrite using AC_RUN_IFELSE, and in the process include standard headers for prototypes. * m4/readutmp.m4 (gl_READUTMP): Require AC_GNU_SOURCE, so utmpxname gets declared on GNU/Linux. * m4/rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Check for and include unistd.h, for `rmdir'. * m4/time_r.m4 (gl_TIME_R): Avoid unused variables. * m4/fnmatch.m4 (_AC_FUNC_FNMATCH_IF): Avoid expression that is always true. * m4/strndup.m4 (gl_FUNC_STRNDUP): include stdlib.h, for `free'. * m4/sockpfaf.m4 (gl_SOCKET_FAMILIES): Avoid gcc -Wall warnings. 2006-09-22 Ralf Wildenhues * gnulib-tool (func_version): Create output all at once. This may help avoid triggering unnecessary SIGPIPEs, and at any rate it doesn't hurt. 2006-09-22 Ralf Wildenhues Bruno Haible * m4/lock.m4 (gl_LOCK_BODY): Avoid unused variables warning. * m4/mbswidth.m4 (gl_MBSWIDTH): Likewise. * m4/signed.m4 (bh_C_SIGNED): Likewise. * m4/vasprintf.m4 (gl_PREREQ_VASPRINTF_H): New macro. (gl_FUNC_VASPRINTF): Invoke it. 2006-09-22 Bruno Haible * m4/getloadavg.m4 (gl_GETLOADAVG): Expect the directory of getloadavg.c as first argument. 2006-09-22 Bruno Haible * gnulib-tool (func_import, func_create_testdir): Set gl_source_base at the beginning of the gl_INIT macro. * modules/getloadavg (configure.ac): Pass $gl_source_base to gl_GETLOADAVG. 2006-09-22 Bruno Haible * gnulib-tool (func_create_megatestdir): Don't include the config-h module. Suggested by Ralf Wildenhues. 2006-09-20 Paul Eggert Import this patch from libc: 2006-09-06 Jakub Jelinek * lib/regex_internal.c (re_string_reconstruct): Handle offset < pstr->valid_raw_len && pstr->offsets_needed case. Ensure no bytes read before raw_mbs array. Pass a saved copy of pstr->valid_len - 1 rather than pstr->valid_raw_len - 1 to re_string_context_at. * m4/regex.m4 (gl_REGEX): Check for locale.h, since the test now requires it. (gl_PREREQ_REGEX): Don't check for locale.h any more, since gl_REGEX now does it for us. (gl_REGEX): Add test taken from http://sourceware.org/ml/libc-hacker/2006-09/msg00008.html. * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Require AC_SYS_LARGEFILE. Check that large offsets work. Modernize Autoconf usages. Prefer "yes" to mean a good thing rather than a bad. Don't put "#define mkstemp" in config.h, as this might interfere with standard system headers that "#define mkstemp mkstemp64". * modules/mkstemp (Depends-on): Add extensions, so that mkstemp is visible on some platforms. (Makefile.am): Add mkstemp.h to EXTRA_DIST. (Include): Change to "mkstemp.h" from . (Files): Add mkstemp.h. * lib/mkstemp.h: New file, since some standard headers #define mkstemp. * lib/mkstemp.c: Revamp to put the !_LIBC code together. Include "mkstemp.h". Make the _LIBC code resemble glibc original more, e.g., use K&R style. * lib/mkstemp-safer.c: Include "mkstemp.h" instead of . (mkstemp): Remove, since mkstemp.h does this for us. * lib/stdlib--.h: Include mkstemp.h. Import this patch from libc: 2006-04-07 Ulrich Drepper * lib/tempname.c (__gen_tempname): Change attempts_min into a macro. Use preprocessor to decide how to initialize attempts [Coverity CID 67]. 2006-09-20 Bruno Haible * lib/mkdtemp.c: Import from libc. 2006-04-07 Ulrich Drepper * sysdeps/posix/tempname.c (__gen_tempname): Change attempts_min into a macro. Use preprocessor to decide how to initialize attempts [Coverity CID 67]. 2001-11-27 Paul Eggert * sysdeps/posix/tempname.c (__gen_tempname): Try at least ATTEMPTS_MIN or TMP_MAX times, whichever is greater. 2006-09-19 Ralf Wildenhues * gnulib-tool (func_exit): New function, to allow to pass the exit status portably through the trap. Use everywhere. (--help, --version): Signal a write error. (trap): catch SIGPIPE, for write errors. Exit at the end of the trap, with the correct exit status. 2006-09-19 Karl Berry * doc/gnulib.texi: note about the license texinfo files. 2006-09-19 Eric Blake * gnulib-tool: Avoid space-tab. 2006-09-18 Paul Eggert * lib/getaddrinfo.c (getaddrinfo) [defined HAVE_IPV6]: Fix typo that prevented coreutils 6.1 from building. Problem reported by Petter Reinholdtsen. 2006-09-18 Paul Eggert * gnulib-tool (avoidlist): Fix typo that broke options like --avoid=lock that are used by coreutils bootstrap. 2006-09-18 Mark D. Baushke * m4/inttypes.m4 (gl_INTTYPES_H): Quote "test" args more systematically. 2006-09-18 Jim Meyering * lib/savewd.c (savewd_restore): Don't shadow: s/status/child_status/. 2006-09-18 Bruno Haible * modules/inttypes (Files): Remove m4/inttypes-h.m4. 2006-09-18 Bruno Haible * m4/inttypes-h.m4 (gl_HEADER_INTTYPES_H): Remove macro. * m4/inttypes-pri.m4: Require autoconf >= 2.52. (gt_INTTYPES_PRI): Invoke AC_CHECK_HEADERS on inttypes.h. Test ac_cv_header_inttypes_h instead of gl_cv_header_inttypes_h. * m4/gettext.m4: Require autoconf >= 2.52. (gt_INTL_SUBDIR_CORE): Invoke AC_CHECK_HEADERS on inttypes.h. * m4/inttypes.m4 (gl_INTTYPES_H): Test ac_cv_header_inttypes_h instead of gl_cv_header_inttypes_h. 2006-09-18 Bruno Haible * lib/javaversion.c: Include configmake.h. 2006-09-18 Bruno Haible * gnulib-tool (func_import, func_create_testdir): Use exec tricks to avoid that the while loops be executed in a subshell. 2006-09-18 Bruno Haible * MODULES.html.sh (func_module): Break long lines. Suggested by Bruce Korb . 2006-09-17 Ralf Wildenhues Speed up by a factor of 1.12. * gnulib-tool (nl): New variable. (func_import): Rewrite include directive extraction to only read each directive once. 2006-09-17 Bruno Haible * modules/javaversion (Makefile.am): Remove DEFS setting. (Depends-on): Add configmake, for PKGDATADIR definition. 2006-09-17 Bruno Haible * gnulib-tool (func_create_testdir): Rewrite all files at once. 2006-09-17 Bruno Haible * gnulib-tool (func_append): New function, stolen from libtool.m4. (func_modules_transitive_closure, func_modules_add_dummy, func_modules_to_filelist, func_import, func_create_testdir, func_create_megatestdir, ...): Use it wherever possible. Suggested by Ralf Wildenhues. 2006-09-16 Karl Berry * doc/fdl.texi (ADDENDUM): switch to @heading from @appendixsubsec, to avoid sectioning errors. * doc/lgpl.texi, gpl.texi (Copying): downcase @unnumbered title. [ifinfo]: blank line after @center-ed titles. * doc/lgpl.texi (Library Copying): Rename main node to GNU LGPL. Spell FSF address consistently with others. (These changes approved by rms.) 2006-09-15 Ralf Wildenhues Speed up by a factor of 1.61. * gnulib-tool (func_modules_transitive_closure): Rewrite to not check already checked module names again. 2006-09-15 Ralf Wildenhues Speed up by a factor of 1.13. * gnulib-tool (func_import): Rewrite all old_files at once; likewise for new_files, and the input to func_add_or_update. 2006-09-15 Ralf Wildenhues * gnulib-tool (func_all_modules, func_modules_to_filelist, func_import, func_create_testdir, ...): Change 'sort | uniq' to 'sort -u'. 2006-09-15 Paul Eggert * modules/mkancesdirs (Depends-on): Add fcntl. * modules/savewd: New file. * MODULES.html.sh (File system functions): Add savewd. * modules/configmake (Makefile.am): Add support for the Automake-supplied PKGLIBDIR, PKGINCLUDEDIR, PKGDATADIR. 2006-09-15 Paul Eggert * m4/savewd.m4: New file. 2006-09-15 Paul Eggert * lib/dirchownmod.c: Don't include fcntl.h; no longer needed. (dirchownmod): New arg FD. All callers changed. Use FD rather than opening the directory ourself, as opening is now the caller's responsibility. * lib/dirchownmod.h: Likewise. * lib/mkancesdirs.c: Include , for portability to older hosts that require before . Include fcntl.h, savewd.h, and unistd.h, not dirname.h and stat-macros.h. (test_dir): Remove. (mkancesdirs): Return length of prefix of FILE that has already been made, or -2 if there is a child doing the work. Redo algorithm so that it is O(N) rather than O(N**2). Optimize away ".", and treat ".." specially since it might stray back into already-created areas. Use a subprocess if necessary. New arg WD; all users changed. MAKE_DIR function should now return 1 if it creates a directory that is not readable. Return -2 if a child process is spun off. * lib/mkancesdirs.h: Include , for ptrdiff_t. Adjust signature to match code. * lib/mkdir-p.c: Include dirname.h, for IS_ABSOLUTE_FILE_NAME. (make_dir_parents): Use a subprocess if necessary. New arg WD; all users changed. * lib/savewd.c, lib/savewd.h: New files. 2006-09-15 Jim Meyering * modules/rename-dest-slash: New module. * MODULES.html.sh (posix_compat): Add it here. * modules/rename: Reflect vb_FUNC_RENAME -> gl_FUNC_RENAME change. 2006-09-15 Jim Meyering * m4/rename-dest-slash.m4 (gl_FUNC_RENAME_TRAILING_DEST_SLASH): New file. * m4/rename.m4 (gl_FUNC_RENAME): Rename from vb_FUNC_RENAME. 2006-09-15 Jim Meyering * lib/rename-dest-slash.c (has_trailing_slash): Use FILE_SYSTEM_PREFIX_LEN, for non-POSIX systems. (rpl_rename_dest_slash): Perform the cheaper trailing slash test before testing whether SRC is a directory. Suggestions from Bruno Haible. Avoid a warning about an unused variable. * lib/regex_internal.c (re_dfa_add_node): Move declaration of "type" into the #ifdef block where it's used. * lib/rename-dest-slash.c: New file. 2006-09-14 Bruno Haible * lib/allocsa.c: Include unconditionally. * lib/asnprintf.c: Likewise. * lib/asprintf.c: Likewise. * lib/c-strcasecmp.c: Likewise. * lib/c-strcasestr.c: Likewise. * lib/c-strncasecmp.c: Likewise. * lib/c-strstr.c: Likewise. * lib/classpath.c: Likewise. * lib/clean-temp.c: Likewise. * lib/concatpath.c: Likewise. * lib/copy-file.c: Likewise. * lib/csharpcomp.c: Likewise. * lib/csharpexec.c: Likewise. * lib/execute.c: Likewise. * lib/fatal-signal.c: Likewise. * lib/findprog.c: Likewise. * lib/fwriteerror.c: Likewise. * lib/gl_array_list.c: Likewise. * lib/gl_array_oset.c: Likewise. * lib/gl_avltree_list.c: Likewise. * lib/gl_avltree_oset.c: Likewise. * lib/gl_avltreehash_list.c: Likewise. * lib/gl_carray_list.c: Likewise. * lib/gl_linked_list.c: Likewise. * lib/gl_linkedhash_list.c: Likewise. * lib/gl_list.c: Likewise. * lib/gl_oset.c: Likewise. * lib/gl_rbtree_list.c: Likewise. * lib/gl_rbtree_oset.c: Likewise. * lib/gl_rbtreehash_list.c: Likewise. * lib/imaxabs.c: Likewise. * lib/imaxdiv.c: Likewise. * lib/javacomp.c: Likewise. * lib/javaexec.c: Likewise. * lib/javaversion.c: Likewise. * lib/linebreak.c: Likewise. * lib/localcharset.c: Likewise. * lib/lock.c: Likewise. * lib/mbchar.c: Likewise. * lib/mbswidth.c: Likewise. * lib/mkdtemp.c: Likewise. * lib/pipe.c: Likewise. * lib/printf-args.c: Likewise. * lib/printf-parse.c: Likewise. * lib/progname.c: Likewise. * lib/progreloc.c: Likewise. * lib/readlink.c: Likewise. * lib/sh-quote.c: Likewise. * lib/stpcpy.c: Likewise. * lib/stpncpy.c: Likewise. * lib/strcasecmp.c: Likewise. * lib/strcasestr.c: Likewise. * lib/strcspn.c: Likewise. * lib/striconv.c: Likewise. * lib/strncasecmp.c: Likewise. * lib/strnlen1.c: Likewise. * lib/strstr.c: Likewise. * lib/strtok_r.c: Likewise. * lib/tls.c: Likewise. * lib/tmpdir.c: Likewise. * lib/unicodeio.c: Likewise. * lib/unsetenv.c: Likewise. * lib/vasnprintf.c: Likewise. * lib/vasprintf.c: Likewise. * lib/wait-process.c: Likewise. * lib/xallocsa.c: Likewise. * lib/xsetenv.c: Likewise. * lib/xstriconv.c: Likewise. 2006-09-13 Simon Josefsson * m4/getdate.m4: Don't AC_LIBOBJ([getdate]), automake takes care of that internally, suggested by Ralf Wildenhues . 2006-09-13 Simon Josefsson * gnulib-tool (func_emit_lib_Makefile_am): Use $(LIBOBJS), not @LIBOBJS@. Suggested by Ralf Wildenhues . 2006-09-13 Paul Eggert * lib/_fpending.c: Include unconditionally, since we no longer worry about uses that don't define HAVE_CONFIG_H. * lib/acl.c, lib/alloca.c, lib/argmatch.c, lib/atexit.c: * lib/backupfile.c, lib/basename.c, lib/c-stack.c, lib/c-strtod.c: * lib/calloc.c,lib/ canon-host.c, lib/canonicalize.c, lib/chdir-long.c: * lib/chdir-safer.c, lib/chown.c, lib/cloexec.c, lib/close-stream.c: * lib/closeout.c, lib/creat-safer.c, lib/cycle-check.c, lib/diacrit.c: * lib/dirchownmod.c, lib/dirfd.c, lib/dirname.c, lib/dup-safer.c: * lib/dup2.c, lib/error.c, lib/euidaccess.c, lib/exclude.c: * lib/exitfail.c, lib/fchmodat.c, lib/fchown-stub.c, lib/fd-safer.c: * lib/file-type.c, lib/fileblocks.c, lib/filemode.c, lib/filenamecat.c: * lib/fnmatch.c, lib/fopen-safer.c, lib/fprintftime.c, lib/free.c: * lib/fsusage.c, lib/ftruncate.c, lib/fts-cycle.c, lib/fts.c: * lib/full-write.c, lib/gai_strerror.c, lib/getcwd.c, lib/getdate.y: * lib/getdomainname.c, lib/getgroups.c, lib/gethostname.c: * lib/gethrxtime.c, lib/getloadavg.c, lib/getlogin_r.c: * lib/getndelim2.c, lib/getnline.c, lib/getopt.c, lib/getopt1.c: * lib/getpass.c, lib/gettime.c, lib/gettimeofday.c, lib/getugroups.c: * lib/getusershell.c, lib/glob.c, lib/group-member.c: * lib/hard-locale.c, lib/hash-pjw.c, lib/hash.c, lib/human.c: * lib/idcache.c, lib/inet_ntop.c, lib/inet_pton.c, lib/inttostr.c: * lib/isdir.c, lib/lchown.c, lib/linebuffer.c, lib/long-options.c: * lib/lstat.c, lib/malloc.c, lib/md5.c, lib/memcasecmp.c, lib/memchr.c: * lib/memcmp.c, lib/memcoll.c, lib/memcpy.c, lib/memmove.c: * lib/memrchr.c, lib/mkancesdirs.c, lib/mkdir-p.c, lib/mkdir.c: * lib/mkdirat.c, lib/mkstemp-safer.c, lib/mkstemp.c, lib/modechange.c: * lib/mountlist.c, lib/nanosleep.c, lib/obstack.c, lib/open-safer.c: * lib/openat-die.c, lib/openat.c, lib/pagealign_alloc.c, lib/physmem.c: * lib/pipe-safer.c, lib/posixtm.c, lib/posixver.c, lib/putenv.c: * lib/quote.c, lib/quotearg.c, lib/raise.c, lib/readtokens.c: * lib/readtokens0.c, lib/readutmp.c, lib/realloc.c, lib/regex.c: * lib/rename.c, lib/rmdir.c, lib/rpmatch.c, lib/safe-read.c: * lib/same.c, lib/save-cwd.c, lib/savedir.c, lib/setenv.c: * lib/settime.c, lib/sha1.c, lib/sig2str.c, lib/snprintf.c: * lib/strdup.c, lib/strerror.c, lib/strftime.c, lib/stripslash.c: * lib/strndup.c, lib/strnlen.c, lib/strpbrk.c, lib/strtod.c: * lib/strtoimax.c, lib/strtol.c, lib/strverscmp.c, lib/tempname.c: * lib/time_r.c, lib/timegm.c, lib/tmpfile-safer.c, lib/unlinkdir.c: * lib/userspec.c, lib/utime.c, lib/utimecmp.c, lib/utimens.c: * lib/version-etc-fsf.c, lib/version-etc.c, lib/xalloc-die.c: * lib/xgetcwd.c, lib/xgethostname.c, lib/xmalloc.c, lib/xmemcoll.c: * lib/xnanosleep.c, lib/xreadlink.c, lib/xstrtod.c, lib/xstrtoimax.c: * lib/xstrtol.c, lib/xstrtoumax.c, lib/yesno.c: Likewise. 2006-09-13 Eric Blake * lib/getopt.c: Fix typo in last commit. 2006-09-12 Sergey Poznyakoff * lib/argp-help.c (argp_doc): Make sure NULL is not passed to dgettext. 2006-09-12 Jim Meyering * lib/nanosleep.c: Include before sys/select.h, to avoid compilation failure (due to use of pid_t in latter) on NetBSD 1.6. Reported by Nelson H. F. Beebe. 2006-09-10 Sergey Poznyakoff * lib/argp-parse.c (__argp_parse) [!_LIBC]: Make sure program_invocation_name and program_invocation_short_name are initialized. * lib/argp-namefrob.h: Move declarations of program_invocation_name and program_invocation_short_name to argp.h, so they are visible to user programs. * lib/argp.h: Likewise 2006-09-10 Bruno Haible * modules/mkdtemp (Files): Remove m4/ulonglong.m4, m4/stdint_h.m4, m4/inttypes_h.m4, m4/uintmax_t.m4. 2006-09-10 Bruno Haible * m4/mkdtemp.m4 (gl_PREREQ_MKDTEMP): Don't require gl_AC_TYPE_UINTMAX_T. 2006-09-10 Bruno Haible * lib/mkdtemp.c: Include always. Don't include . 2006-09-09 Sergey Poznyakoff * lib/argp.h (struct argp): Document the N_("..") "\v" N_("..") convention. Text proposed by Bruno Haible. (struct argp_option): Document the use of N_() wrappers. * lib/argp-help.c (argp_doc): Split the untranslated doc string on '\v', and translate the two parts separately, instead of feeding the whole string to gettext. This allows to exclude '\v' from the strings visible to the translator by writing doc strings as N_("..") "\v" N_(".."). 2006-09-09 Paul Eggert * config/srclist.txt: Undo latest change; the bug was fixed. 2006-09-09 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am): Eliminate lib_LDFLAGS assignments if building a library without libtool. (func_emit_tests_Makefile_am): Likewise. Handle lib_* variables as in func_emit_lib_Makefile_am. (func_import): When building a static library libfoo.a, arrange to define variables LIBFOO_LIBDEPS and LIBFOO_LTLIBDEPS. (func_create_testdir): Likewise. * modules/gc (configure.ac, Makefile.am): If building statically, augment gl_libdeps and gl_ltlibdeps instead of lib_LDFLAGS. * modules/iconvme (configure.ac, Makefile.am): Likewise. * modules/striconv (configure.ac, Makefile.am): Likewise. Based on a suggestion by Ralf Wildenhues. 2006-09-08 Paul Eggert * m4/mktime.m4 (AC_FUNC_MKTIME): Sync from Autoconf. Check for unistd.h too, since Autoconf doesn't assume POSIX. Also: 2006-09-08 Paul Eggert Add year_2050_test to catch glibc bug 2821 . 2006-08-15 Paul Eggert Prefer #ifdef to #if. 2006-04-02 Paul Eggert Return from 'main' instead of calling 'exit'. 2006-09-08 Paul Eggert * lib/mktime.c (guess_time_tm): Fix bug where mktime returned the maximum time_t value rather than (time_t) -1. Problem originally reported by William Bardwell . * lib/isapipe.h (HAVE_FIFO_PIPES) [!defined HAVE_FIFO_PIPES]: Moved to here ... * lib/isapipe.c (HAVE_FIFO_PIPES) [!defined HAVE_FIFO_PIPES]: ... from here. 2006-09-08 Paul Eggert * config/srclist.txt: Temporarily comment out mktime.c until glibc bug 2821 is fixed. 2006-09-08 Jim Meyering Don't make generated files read-only. That would bother too many people. However, do retain the ability to work when targets are read-only: remove the destination and temporary files before writing them (when generated via sed or echo), or by using the -f option for both cp and mv commands. Suggestion to use -f from Paul Eggert. * modules/alloca-opt, modules/argz, modules/arpa_inet: * modules/byteswap, modules/configmake, modules/fcntl: * modules/fnmatch, modules/getopt, modules/glob, modules/inttypes: * modules/localcharset, modules/netinet_in, modules/poll: * modules/stdbool, modules/stdint, modules/sys_select: * modules/sys_socket, modules/sys_stat, modules/sysexits: 2006-09-08 Jim Meyering Avoid new build failure on FreeBSD 6.0. * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Include when testing whether getmntinfo uses statvfs. Patch by Pavel Tsekov, in . 2006-09-07 Ralf Wildenhues * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Don't use plain echo. 2006-09-07 Jim Meyering Fix global typo in last change: use chmod u-w, not chmod u-x. Spotted by Paul Eggert and Bruce Korb. * modules/alloca-opt, modules/argz, modules/arpa_inet: * modules/byteswap, modules/configmake, modules/fcntl: * modules/fnmatch, modules/getopt, modules/glob, modules/inttypes: * modules/localcharset, modules/netinet_in, modules/poll: * modules/stdbool, modules/stdint, modules/sys_select: * modules/sys_socket, modules/sys_stat, modules/sysexits: 2006-09-06 Jim Meyering Make generated files be read-only. * modules/alloca-opt (Makefile.am): Work also when $@ is read-only. Ensure that each generated file is now read-only. * modules/argz: Likewise. * modules/arpa_inet: Likewise. * modules/byteswap: Likewise. * modules/configmake: Likewise. * modules/fcntl: Likewise. * modules/fnmatch: Likewise. * modules/getopt: Likewise. * modules/glob: Likewise. * modules/inttypes: Likewise. * modules/netinet_in: Likewise. * modules/poll: Likewise. * modules/stdbool: Likewise. * modules/stdint: Likewise. * modules/sys_select: Likewise. * modules/sys_socket: Likewise. * modules/sys_stat: Likewise. * modules/sysexits: Likewise. * modules/localcharset: Same as above, but continue using temporary file named "t-$@" (why different?) rather than the "$@-t" used everywhere else. * modules/sysexits (Makefile.am): Replace literal occurrences of "sysexit.h" more readable, and more consistent, "$@". 2006-09-06 Bruno Haible * modules/striconv: New file. * modules/xstriconv: New file. * MODULES.html.sh (Internationalization functions): Add striconv, xstriconv. 2006-09-06 Bruno Haible * modules/gc (Makefile.am): Augment lib_LDFLAGS, not lib_LIBADD. * modules/iconvme (Makefile.am): Likewise. Also handle the case of not using libtool correctly. 2006-09-06 Bruno Haible * lib/striconv.h: New file. * lib/striconv.c: New file, merging iconvme.c with GNU gettext's iconvstring.c. * lib/xstriconv.h: New file. * lib/xstriconv.c: New file. 2006-09-06 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am): Initialize also lib_..._LDFLAGS. 2006-09-05 Ralf Wildenhues * lib/argz_.h: Sync from Libtool. 2006-09-04 George Bosilca and Ralf Wildenhues * lib/libltdl/argz_.h: It's __cplusplus, not _cplusplus. 2006-09-05 Davide Angelocola * modules/trim: New file. 2006-09-05 Davide Angelocola * lib/trim.h: New file. * lib/trim.c: New file. 2006-09-05 Bruno Haible * MODULES.html.sh (String handling): Add trim. 2006-09-04 Karl Berry * config/srclist.txt (signed.m4, gettext.m4): changes not propagated until next release. 2006-09-03 Bruno Haible * m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Locate mingw shared libraries correctly. 2006-09-01 Paul Eggert * m4/getloadavg.m4 (gl_GETLOADAVG): Use CONFIGURING_GETLOADAVG, not gl_GETLOADAVG. Omit unneeded semicolons. Problems reported by Ralf Wildenhues in . (gl_PREREQ_GETLOADAVG): Use AC_DEFUN, not m4_define. Put at the end, which is the usual gnulib style. * m4/fstypename.m4 (gl_FSTYPENAME): Use AC_CHECK_MEMBERS instead of doing all the work ourselves. * m4/fsusage.m4 (gl_PREREQ_FSUSAGE_EXTRA): Don't check for sys/statvfs.h since the code doesn't use HAVE_SYS_STATVFS_H. 2006-09-01 Paul Eggert * lib/getloadavg.c: Use CONFIGURING_GETLOADAVG, not gl_GETLOADAVG. Problem reported by Ralf Wildenhues in . * lib/mountlist.c: All uses of HAVE_F_FSTYPENAME_IN_STATFS replaced by HAVE_STRUCT_STATFS_F_FSTYPENAME. 2006-09-01 Paul Eggert * gnulib-tool (func_emit_lib_Makefile_am): Fix typos in yesterday's patch by changing test -n to test -z. 2006-08-31 Paul Eggert * modules/getloadavg (Files): Add m4/getloadavg.m4. (configure.ac): AC_FUNC_GETLOADAVG -> gl_GETLOADAVG, as the former is now obsolescent. * modules/chdir-long (Depends-on): Add fcntl. 2006-08-31 Paul Eggert * m4/fnmatch.m4: Add comment that Autoconf AC_FUNC_FNMATCH is obsolescent, and programs should use gnulib instead. * m4/getloadavg.m4: New file, with contents taken from Autoconf but with prefixes changed. 2006-08-31 Paul Eggert * lib/getloadavg.c [defined gl_GETLOADAVG]: Don't include config.h or stdbool.h, because they might not exist while configuring. * lib/chdir-long.c: Include , for O_DIRECTORY. Don't include unistd.h or limits.h; not needed, since chdir-long.h does that for us. (O_DIRECTORY): Remove. 2006-08-31 Eric Blake * gnulib-tool: Don't let emacs change spaces to TAB. 2006-08-31 Bruno Haible * gnulib-tool: When calling func_import more than once, do it in a subshell. Reported by Eric Blake . 2006-08-31 Bruno Haible * gnulib-tool (nl): Remove variable. (sed_transform_lib_file): Use more robust test for config-h module. (func_import): Fix typo in 2006-08-25 patch. 2006-08-31 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am): When --makefile-name was specified, augment Makefile.am variables instead of assigning them. 2006-08-30 Paul Eggert Work around a bug in both the Linux and SunOS 64-bit kernels: nanosleep mishandles sleeps for longer than 2**31 seconds. Problem reported by Frank v Waveren in . * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Require gl_CLOCK_TIME. Check for nanosleep bug. (LIB_NANOSLEEP): Append clock_gettime library if needed. 2006-08-30 Paul Eggert Work around a bug in both the Linux and SunOS 64-bit kernels: nanosleep mishandles sleeps for longer than 2**31 seconds. Problem reported by Frank v Waveren in . * lib/nanosleep.c (BILLION): New constant. (getnow) [HAVE_BUG_BIG_NANOSLEEP]: New functions. (rpl_nanosleep) [HAVE_BUG_BIG_NANOSLEEP]: Completely new implementation. 2006-08-30 Paul Eggert * modules/nanosleep (Depends-on): Add gettime. 2006-08-30 Paul Eggert and Simon Josefsson and Oskar Liljeblad * MODULES.html.sh (Support for building documentation): Add gpl, lgpl. * gnulib-tool (func_import): New license type 'unmodifiable license text'. * modules/fdl: Use it. Longer description. * module/gpl, module/lgpl: New files. 2006-08-30 Jim Meyering * lib/isapipe.c (isapipe): Rename local s/fd/fd_pair/ to avoid shadowing the parameter. 2006-08-29 Ralf Wildenhues Sync from Libtool: 2006-08-28 Ralf Wildenhues * lib/libltdl/argz.c: Use `#ifdef HAVE_CONFIG_H', to facilitate code sharing with gnulib. Report by Eric Blake. 2006-08-29 Paul Eggert * modules/isapipe: New file. * MODULES.html.sh (File descriptor based Input/Output): Add isapipe. 2006-08-29 Paul Eggert * modules/configmake (Makefile.am): Add a comment, and omit the CONFIGMAKE_ prefix from generated macro names. Suggested by Bruno Haible. 2006-08-29 Paul Eggert * m4/isapipe.m4: New file. 2006-08-29 Paul Eggert * lib/isapipe.c, lib/isapipe.h: New files. 2006-08-29 Jim Meyering * modules/configmake (Makefile.am): Make configmake.h depend on Makefile. Otherwise, a stale configmake.h could hang around. 2006-08-29 Eric Blake * lib/error.c (error_at_line, print_errno_message): Match libc, after resolution of upstream bug 3044. 2006-08-29 Bruno Haible * modules/localcharset (Depends-on): Add configmake. (Makefile.am): Remove setting of LIBDIR through DEFS. 2006-08-29 Bruno Haible * lib/localcharset.c: Include configmake.h in order to get LIBDIR defined. 2006-08-28 Paul Eggert * modules/fcntl: New file. * modules/chdir-safer (Depends-on): Add fcntl. * modules/fts: Likewise. * modules/mkdir-p: Likewise. * modules/stdint (Makefile.am): Do not substitute ABSOLUTE_INTTYPES_H. This undoes the most recent change, since we're now addressing the problem in a different way. * gnulib-tool (emit_lib_Makefile_am): Don't put $makefile_name into output, since the output might be called Makefile.am even if $makefile_name is something different. (func_import): Use $makefile_am rather than ${makefile_name-Makefile.am}, to fix a bug where makefile_name was empty. * modules/inttypes (Files): Add m4/inttypes-h.m4. 2006-08-28 Paul Eggert * m4/inttypes.m4 (gl_INTTYPES_H): Move ABSOLUTE_INTTYPES_H code here... * m4/stdint.m4 (gl_STDINT_H): ... from here. This undoes the most recent change to stdint.m4, since we're now addressing the problem in a different way. 2006-08-28 Paul Eggert * m4/fcntl_h.m4: New file. 2006-08-28 Paul Eggert * lib/fcntl_.h: New file. * lib/chdir-safer.c (O_DIRECTORY, O_NOFOLLOW): Remove, now that we have the fcntl module. * lib/dirchownmod.c: Likewise. * lib/fts.c: Likewise. * lib/inttypes_.h [defined _GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H]: Include @ABSOLUTE_INTTYPES_H@ if available, but do nothing else. * lib/stdint_.h (_GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H): Define just before including , to avoid circular inclusion. 2006-08-28 Jim Meyering * doc/visibility.texi: Actually read and correct the grammar of the sentence affected by yesterday's change. 2006-08-28 Eric Blake * modules/inttypes (Makefile.am): Fix sed error when inttypes.h needs wrapper. 2006-08-28 Eric Blake * m4/inttypes.m4 (gl_INTTYPES_H): Fix missing #endif. 2006-08-28 Eric Blake * m4/codeset.m4 (AM_LANGINFO_CODESET): Avoid compiler warning. 2006-08-28 Bruno Haible * modules/c-strstr: New file, from GNU gettext. * MODULES.html.sh (String handling): Add c-strstr. 2006-08-28 Bruno Haible * m4/inttypes.m4 (gl_INTTYPES_H): Don't test for the existence of SCNX* macros. Reported by Eric Blake. 2006-08-28 Bruno Haible * lib/vasnprintf.c (EOVERFLOW): Remove definition. (VASNPRINTF): Return a string of length > INT_MAX without failing. * lib/vasprintf.c: Include errno.h, limits.h. (EOVERFLOW): New fallback definition. (vasprintf): Test here whether the string length is > INT_MAX. * lib/vsnprintf.c: Include errno.h, limits.h. (EOVERFLOW): New fallback definition. (vsnprintf): Fix bug when generated string was too long for the buffer. Test here whether the string length is > INT_MAX. 2006-08-28 Bruno Haible * lib/inttypes_.h (SCNX*): Remove definitions. Reported by Eric Blake. 2006-08-28 Bruno Haible * lib/c-strstr.h: New file, from GNU gettext. * lib/c-strstr.c: New file, from GNU gettext. 2006-08-28 Bruno Haible * gnulib-tool: Reorder some statements. 2006-08-28 Bruno Haible * gnulib-tool: New option --makefile-name. (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Use $makefile_name. (func_import): Write $makefile_name to the cache file, and read it from there unless explicitly specified. Use $makefile_name as file name instead of Makefile.am. Adjust the recommendations accordingly. 2006-08-28 Bruno Haible * gnulib-tool (func_verify_module): Check against misapplying patch. 2006-08-28 Bruno Haible * gnulib-tool (func_relativize, func_relconcat): New functions. Give an error if --local-dir is given with --update. Remove trailing slashes from $local_gnulib_dir. (func_import): Store the relativized $local_gnulib_dir in gnulib-cache.m4, and read it from there if not specified explicitly. 2006-08-28 Bruno Haible * gnulib-tool (func_get_tests_module): Don't assume that $gnulib_dir is the current directory. Respect also $local_gnulib_dir. 2006-08-28 Bruno Haible Simon Josefsson BeOS portability. * lib/getaddrinfo.c (PF_INET, PF_UNSPEC): New macros. 2006-08-27 Jim Meyering * doc/visibility.texi: Remove duplicate word: "pointer". 2006-08-26 Bruno Haible * modules/inttypes (Files): Add lib/inttypes_.h, remove lib/inttypes.h. Add m4/inttypes.m4, remove m4/_inttypes_h.m4 and m4/include_next.m4. (Makefile.am): Create inttypes.h from inttypes_.h. * modules/stdint (Makefile.am): Substitute also ABSOLUTE_INTTYPES_H. * modules/imaxabs: New file. * modules/imaxdiv: New file. 2006-08-26 Bruno Haible * m4/inttypes.m4: New file. * m4/_inttypes_h.m4: Remove file. * m4/inttypes-pri.m4 (gt_INTTYPES_PRI): Also AC_SUBST PRI_MACROS_BROKEN. * m4/stdint.m4 (gl_STDINT_H): Define also ABSOLUTE_INTTYPES_H. * m4/imaxabs.m4: New file. * m4/imaxdiv.m4: New file. 2006-08-26 Bruno Haible * lib/inttypes_.h: New file. * lib/inttypes.h: Remove file. * lib/stdint_.h: Include through its absolute filename. * lib/imaxabs.c: New file. * lib/imaxdiv.c: New file. 2006-08-25 Paul Eggert New config-h module, so that "make" output needn't be cluttered by -DHAVE_CONFIG_H. * MODULES.html.sh (Support for building libraries and executables): Add config-h. * modules/config-h: New file. * gnulib-tool (nl, sed_transform_lib_file): New vars. (func_import): Turn "#ifdef HAVE_CONFIG_H" to "#if 1" if the config-h module is used. New configmake module, so that "make" output needn't be cluttered by fluff like '-DLIBDIR=\"/usr/local/lib\"'. * MODULES.html.sh (Support for building libraries and executables): Add configmake. * modules/configmake: New file. 2006-08-25 Paul Eggert * m4/config-h.m4: New file. 2006-08-24 Paul Eggert * config/srclist.txt: Add elisp-comp. 2006-08-24 Paul Eggert * MODULES.html.sh (Support for building libraries and executables): Add elisp-comp. * build-aux/elisp-comp: New file. * modules/elisp-comp: New file. 2006-08-24 Bruno Haible * gnulib-tool (func_create_testdir): Use non-default values of sourcebase and m4base. 2006-08-24 Bruno Haible * MODULES.html.sh (Compatibility checks for POSIX:2001 functions: Fix HTML structure. 2006-08-23 Paul Eggert * modules/openat (Depends-on): Add lchown. 2006-08-23 Bruno Haible * gnulib-tool (func_import, func_create_testdir): Emit an invocation of gl_LOCK_EARLY instead of gl_LOCK. 2006-08-23 Bruno Haible * m4/lock.m4 (gl_LOCK_BODY): Change the default value of gl_use_threads on OSF/1 to no. Reported by Stephen Cartwright . 2006-08-23 Bruno Haible * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Don't consider BeOS statvfs as unusable. * m4/lock.m4 (gl_LOCK_EARLY): Renamed from gl_LOCK. (gl_LOCK_BODY): Remove gl_PREREQ_LOCK invocation. (gl_LOCK): New macro. 2006-08-22 Simon Josefsson * modules/gc-md5 (Makefile.am): Need to add md5.h, after changes to md5 module. 2006-08-22 Simon Josefsson * MODULES.html.sh: Add "Support for maintaining and release projects". * build-aux/gnupload: New file, from coreutils. 2006-08-22 Paul Eggert Avoid the need for AC_LIBSOURCES in m4 macros. * modules/arcfour (EXTRA_DIST): Add arcfour.h. * modules/arctwo (EXTRA_DIST): Add arctwo.h. * modules/check-version (EXTRA_DIST): Add check-version.h. * modules/crc (EXTRA_DIST): Add crc.h. * modules/des (EXTRA_DIST): Add des.h. * modules/gc (EXTRA_DIST): Add gc.h. * modules/getdelim (EXTRA_DIST): Add getdelim.h. * modules/getline (EXTRA_DIST): Add getline.h. * modules/getlogin_r (EXTRA_DIST): Add getlogin_r.h. * modules/hmac-md5 (EXTRA_DIST): Add hmac.h. * modules/hmac-sha1 (EXTRA_DIST): Add hmac.h. * modules/md2 (EXTRA_DIST): Add md2.h. * modules/md4 (EXTRA_DIST): Add md4.h. * modules/pagealign_alloc (EXTRA_DIST): Add pagealign_alloc.h. * modules/read-file (EXTRA_DIST): Add read-file.h. * modules/readline (EXTRA_DIST): Add readline.h. * modules/rijndael (EXTRA_DIST): Add rijndael-alg-fst.h, rijndael-api-fst.h. 2006-08-22 Paul Eggert * m4/rijndael.m4 (gl_ARCFOUR): * m4/arctwo.m4 (gl_ARCTWO): * m4/check-version.m4 (gl_CHECK_VERSION): * m4/crc.m4 (gl_CRC): * m4/des.m4 (gl_DES): * m4/gc-pbkdf2-sha1.m4 (gl_GC_PBKDF2_SHA1): * m4/gc.m4 (gl_GC): * m4/getdelim.m4 (gl_FUNC_GETDELIM): * m4/getline.m4 (gl_FUNC_GETLINE): * m4/getlogin_r.m4 (gl_GETLOGIN_R_SUBSTITUTE): * m4/hmac-md5.m4 (gl_HMAC_MD5): * m4/hmac-sha1.m4 (gl_HMAC_SHA1): * m4/md2.m4 (gl_MD2): * m4/md4.m4 (gl_MD4): * m4/pagealign_alloc.m4 (gl_PAGEALIGN_ALLOC): * m4/read-file.m4 (gl_FUNC_READ_FILE): * m4/readline.m4 (gl_FUNC_READLINE): * m4/rijndael.m4 (gl_RIJNDAEL): Don't use AC_LIBSOURCES; instead, rely on the files in ../modules/ to get the necessary .h files and whatnot. 2006-08-22 Paul Eggert * config/srclist.txt: Remove gnupload, since coreutils now syncs from gnulib rather than the other way around. * config/srclistvars.sh (COREUTILS): Remove. 2006-08-22 Jim Meyering * modules/mkdir-p (Makefile.am): Fix typo: s/lib+SOURCES/lib_SOURCES/. * modules/getpass-gnu (Makefile.am): Add getpass.h to EXTRA_DIST. 2006-08-22 Eric Blake * modules/regexprops-generic: New file. * MODULES.html.sh (Support for building documentation): List it. 2006-08-22 Eric Blake * m4/stdint_h.m4 (gl_AC_HEADER_STDINT_H): Avoid compiler warning. * m4/inttypes_h.m4 (gl_AC_HEADER_INTTYPES_H): Likewise. * m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Likewise. * m4/intmax_t.m4 (gt_AC_TYPE_INTMAX_T): Likewise. 2006-08-22 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am): Don't treat lib_LIBRARIES and lib_LTLIBRARIES like the other lib_* variables. 2006-08-22 Bruno Haible * build-aux/x-to-1.in: New file, from GNU gettext. 2006-08-22 Bruno Haible * m4/readutmp.m4 (gl_READUTMP): Compile readutmp.c only if or exists. 2006-08-22 Bruno Haible * lib/readutmp.h: Skip most definitions if neither nor exists. 2006-08-21 Paul Eggert BeOS portability. * lib/dirchownmod.c (dirchownmod): Don't use fchmod if it doesn't exist. Problem reported by Bruno Haible. 2006-08-21 Paul Eggert Avoid the need for AC_LIBSOURCES in m4 macros. * modules/acl (EXTRA_DIST): Add acl.h. * modules/argmatch (Files): Add m4/argmatch.m4. (configure.ac): Add gl_ARGMATCH. (EXTRA_DIST): Renamed from lib_SOURCES, for consistency with the other modules. Remove argmatch.c. * modules/backupfile (EXTRA_DIST): Add backupfile.h. * modules/c-strtod (EXTRA_DIST): Add c-strtod.h. * modules/c-strtold (EXTRA_DIST): Add c-strtod.c, c-strtod.h. * modules/canonhost (EXTRA_DIST): Add c-canonhost.h. * modules/canonicalize (EXTRA_DIST): Add canonicalize.h. * modules/chdir-long (EXTRA_DIST): Add chdir-long.h. * modules/chdir-safer (EXTRA_DIST): Add chdir-safer.h. * modules/cloexec (EXTRA_DIST): Add cloexec.h. * modules/close-stream (EXTRA_DIST): Add close-stream.h. * modules/closeout (EXTRA_DIST): Add closeout.h. * modules/cycle-check (EXTRA_DIST): Add cycle-check.h. * modules/dev-ino (EXTRA_DIST): Add dev-ino.h. * modules/dirfd (EXTRA_DIST): Add dirfd.h. * modules/dirname (EXTRA_DIST): Renamed from lib_SOURCES. Add dirname.h; remove basename.c and stripslash.c. * modules/exclude (EXTRA_DIST): Add exclude.h. * modules/exitfail (EXTRA_DIST): Add exitfail.h. * modules/fcntl-safer (EXTRA_DIST): Add fcntl-safer.h fcntl--.h. * modules/file-type (EXTRA_DIST): Add file-type.h. * modules/filemode (EXTRA_DIST): Add filemode.h. * modules/filenamecat (EXTRA_DIST): Add filenamecat.h. * modules/fopen-safer (EXTRA_DIST): Add stdio-safer.h stdio--.h. * modules/fpending (EXTRA_DIST): Add __fpending.h. * modules/fprintftime (EXTRA_DIST): Add fprintftime.h. * modules/fsusage (EXTRA_DIST): Add fsusage.h. * modules/fts (EXTRA_DIST): Add fts_.h fts-cycle.c. * modules/getcwd (EXTRA_DIST): Add getcwd.h. * modules/getdate (EXTRA_DIST): Add getdate.c. * modules/gethrxtime (EXTRA_DIST): Add gethrxtime.h xtime.h. * modules/getpagesize (EXTRA_DIST): Add getpagesize.h. * modules/getpass (EXTRA_DIST): Add getpass.h. * modules/glob (EXTRA_DIST): Add glob_.h glob-libc.h. * modules/group-member (EXTRA_DIST): Add group-member.h. * modules/hard-locale (EXTRA_DIST): Add hard-locale.h. * modules/hash (EXTRA_DIST): Add hash.h. * modules/human (EXTRA_DIST): Add human.h. * modules/inttypes (EXTRA_DIST): Add inttypes.h. * modules/lchmod (EXTRA_DIST): Add lchmod.h. * modules/lchown (EXTRA_DIST): Add lchown.h. * modules/long-options (EXTRA_DIST): Add long-options.h. * modules/lstat (EXTRA_DIST): Add lstat.h. * modules/md5 (EXTRA_DIST): Add memcasecmp.h. * modules/memcoll (EXTRA_DIST): Add memcoll.h. * modules/mempcpy (EXTRA_DIST): Add mempcpy.h. * modules/memrchr (EXTRA_DIST): Add memrchr.h. * modules/memxor (EXTRA_DIST): Add memxor.h. * modules/mkancesdirs (EXTRA_DIST): Add mkancesdirs.h. * modules/mkdir-p (EXTRA_DIST): Add modechange.h. * modules/mountlist (EXTRA_DIST): Add mountlist.h. * modules/openat (EXTRA_DIST): Add at-func.c openat.h openat-priv.h. * modules/pathmax (EXTRA_DIST): Add pathmax.h. * modules/physmem (EXTRA_DIST): Add physmem.h. * modules/posixtm (EXTRA_DIST): Add posixtm.h. * modules/posixver (EXTRA_DIST): Add posixver.h. * modules/quote (EXTRA_DIST): Add quote.h. * modules/quotearg (EXTRA_DIST): Add quotearg.h. * modules/readtokens (EXTRA_DIST): Add readtokens.h. * modules/readutmp (EXTRA_DIST): Add readutmp.h. * modules/regex (EXTRA_DIST): Add regcomp.c regex.h regex_internal.c regex_internal.h regexec.c. * modules/safe-read (EXTRA_DIST): Add safe-read.h. * modules/safe-write (EXTRA_DIST): Add safe-write.h. * modules/same (EXTRA_DIST): Add same.h. * modules/same-inode (EXTRA_DIST): Add same-inode.h. * modules/save-cwd (EXTRA_DIST): Add save-cwd.h. * modules/savedir (EXTRA_DIST): Add savedir.h. * modules/sha1 (EXTRA_DIST): Add sha1.h. * modules/sig2str (EXTRA_DIST): Add sig2str.h. * modules/stat-macros (EXTRA_DIST): Add stat-macros.h. * modules/stat-time (EXTRA_DIST): Add stat-time.h. * modules/stdlib-safer (EXTRA_DIST): Add stdlib-safer.h stdlib--.h. * modules/strdup (EXTRA_DIST): Add strdup.h. * modules/strftime (EXTRA_DIST): Add strftime.h. * modules/strndup (EXTRA_DIST): Add strndup.h. * modules/strnlen (EXTRA_DIST): Add strnlen.h. * modules/strverscmp (EXTRA_DIST): Add strverscmp.h. * modules/time_r (EXTRA_DIST): Add time_r.h. * modules/timespec (EXTRA_DIST): Add timespec.h. * modules/tmpfile-safer (EXTRA_DIST): Add stdio-safer.h stdio--.h. * modules/unistd-safer (EXTRA_DIST): Add unistd-safer.h unistd--.h. * modules/unlinkdir (EXTRA_DIST): Add unlinkdir.h. * modules/unlocked-io (EXTRA_DIST): Add unlocked-io.h. * modules/userspec (EXTRA_DIST): Add userspec.h. * modules/utimecmp (EXTRA_DIST): Add utimecmp.h. * modules/utimens (EXTRA_DIST): Add utimens.h. * modules/xalloc (EXTRA_DIST): Add xalloc.h. * modules/xgetcwd (EXTRA_DIST): Add xgetcwd.h. * modules/xnanosleep (EXTRA_DIST): Add xnanosleep.h. * modules/xreadlink (EXTRA_DIST): Add xreadlink.h. * modules/xstrtod (EXTRA_DIST): Add xstrtod.h. * modules/xstrtol (EXTRA_DIST): Add xstrtol.h. * modules/xstrtold (EXTRA_DIST): Add xstrtod.c xstrtod.h. * modules/yesno (EXTRA_DIST): Add yesno.h. 2006-08-21 Paul Eggert * m4/mkdir-p.m4 (gl_MKDIR_PARENTS): Check for fchmod. * m4/argmatch.m4: New file, from coreutils with AC_LIBSOURCES removed. * m4/dev-ino.m4, same-inode.m4: Remove. * m4/_inttypes_h.m4 (gl_INTTYPES_H): * m4/acl.m4 (AC_FUNC_ACL): * m4/backupfile.m4 (gl_BACKUPFILE): * m4/c-strtod.m4 (gl_C99_STRTOLD): * m4/canon-host.m4 (gl_CANON_HOST): * m4/canonicalize.m4 (AC_FUNC_CANONICALIZE_FILE_NAME): * m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): * m4/chdir-safer.m4 (gl_CHDIR_SAFER): * m4/cloexec.m4 (gl_CLOEXEC): * m4/close-stream.m4 (gl_CLOSE_STREAM): * m4/closeout.m4 (gl_CLOSEOUT): * m4/dirfd.m4 (gl_FUNC_DIRFD): * m4/dirname.m4 (gl_DIRNAME): * m4/exclude.m4 (gl_EXCLUDE): * m4/exitfail.m4 (gl_EXITFAIL): * m4/fcntl-safer.m4 (gl_FCNTL_SAFER): * m4/file-type.m4 (gl_FILE_TYPE): * m4/filemode.m4 (gl_FILEMODE): * m4/filenamecat.m4 (gl_FILE_NAME_CONCAT): * m4/fpending.m4 (gl_FUNC_FPENDING): * m4/fprintftime.m4 (gl_FPRINTFTIME): * m4/fts.m4 (gl_FUNC_FTS): * m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): * m4/getdate.m4 (gl_GETDATE): * m4/gethrxtime.m4 (gl_GETHRXTIME): * m4/getpagesize.m4 (gl_GETPAGESIZE): * m4/getpass.m4 (gl_FUNC_GETPASS): * m4/gettime.m4 (gl_GETTIME): * m4/getugroups.m4 (gl_GETUGROUPS): * m4/glob.m4 (gl_GLOB_SUBSTITUTE): * m4/group-member.m4 (gl_FUNC_GROUP_MEMBER): * m4/hard-locale.m4 (gl_HARD_LOCALE): * m4/hash.m4 (gl_HASH): * m4/idcache.m4 (gl_IDCACHE): * m4/lchmod.m4 (gl_FUNC_LCHMOD): * m4/lchown.m4 (gl_FUNC_LCHOWN): * m4/long-options.m4 (gl_LONG_OPTIONS): * m4/lstat.m4 (gl_FUNC_LSTAT): * m4/md5.m4 (gl_MD5): * m4/memcasecmp.m4 (gl_MEMCASECMP): * m4/memcoll.m4 (gl_MEMCOLL): * m4/mempcpy.m4 (gl_FUNC_MEMPCPY): * m4/memrchr.m4 (gl_FUNC_MEMRCHR): * m4/memxor.m4 (gl_MEMXOR): * m4/mkancesdirs.m4 (gl_MKANCESDIRS): * m4/mkdir-p.m4 (gl_MKDIR_PARENTS): * m4/modechange.m4 (gl_MODECHANGE): * m4/mountlist.m4 (gl_MOUNTLIST): * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): * m4/openat.m4 (gl_FUNC_OPENAT): * m4/pathmax.m4 (gl_PATHMAX): * m4/physmem.m4 (gl_PHYSMEM): * m4/posixtm.m4 (gl_POSIXTM): * m4/posixver.m4 (gl_POSIXVER): * m4/quote.m4 (gl_QUOTE): * m4/quotearg.m4 (gl_QUOTEARG): * m4/readtokens.m4 (gl_READTOKENS): * m4/readutmp.m4 (gl_READUTMP): * m4/regex.m4 (gl_REGEX): * m4/safe-read.m4 (gl_SAFE_READ): * m4/safe-write.m4 (gl_SAFE_WRITE): * m4/same.m4 (gl_SAME): * m4/save-cwd.m4 (gl_SAVE_CWD): * m4/savedir.m4 (gl_SAVEDIR): * m4/settime.m4 (gl_SETTIME): * m4/sha1.m4 (gl_SHA1): * m4/sig2str.m4 (gl_FUNC_SIG2STR): * m4/stat-macros.m4 (gl_STAT_MACROS): * m4/stat-time.m4 (gl_STAT_TIME): * m4/stdio-safer.m4 (gl_FOPEN_SAFER): * m4/stdlib-safer.m4 (gl_STDLIB_SAFER): * m4/strdup.m4 (gl_FUNC_STRDUP): * m4/strftime.m4 (gl_FUNC_GNU_STRFTIME): * m4/strndup.m4 (gl_FUNC_STRNDUP): * m4/strnlen.m4 (gl_FUNC_STRNLEN): * m4/strverscmp.m4 (gl_FUNC_STRVERSCMP): * m4/time_r.m4 (gl_TIME_R): * m4/timespec.m4 (gl_TIMESPEC): * m4/unistd-safer.m4 (gl_UNISTD_SAFER): * m4/unlinkdir.m4 (gl_UNLINKDIR): * m4/unlocked-io.m4 (gl_FUNC_GLIBC_UNLOCKED_IO): * m4/userspec.m4 (gl_USERSPEC): * m4/utimecmp.m4 (gl_UTIMECMP): * m4/utimens.m4 (gl_UTIMENS): * m4/xalloc.m4 (gl_XALLOC): * m4/xgetcwd.m4 (gl_XGETCWD): * m4/xnanosleep.m4 (gl_XNANOSLEEP): * m4/xreadlink.m4 (gl_XREADLINK): * m4/xstrtod.m4 (gl_XSTRTOD): * m4/yesno.m4 (gl_YESNO): Don't use AC_LIBSOURCES; instead, rely on the files in ../modules/ to get the necessary .h files and whatnot. 2006-08-21 Mark D. Baushke Bruno Haible * gnulib-tool (func_verify_module): Work around Sun's non-POSIX 1003.2 /bin/sh understanding of '!' conditional negation. 2006-08-21 Jim Meyering * modules/openat (Depends-on): Really alphabetize. * modules/acl (Depends-on): Add error and quote. * check-module (find_included_lib_files): Add at-func.c to the ok-to-include-more-than-once white list. * modules/openat (Depends-on): Add lstat. Alphabetize. 2006-08-21 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Emit a pkgdata_DATA variable only if some snippets add contents to it. Reported by Martin Lambers . 2006-08-21 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am): If the snippets already specify an installation location, don't emit a noinst_LIBRARIES or noinst_LTLIBRARIES assignment. 2006-08-21 Bruno Haible BeOS portability. * modules/mbchar (Include): Don't test HAVE_WCTYPE_H any more, since BeOS has mbrtowc() but no . 2006-08-21 Bruno Haible BeOS portability. * m4/mbchar.m4 (gl_MBCHAR): Compile mbchar.c also if doesn't exist. 2006-08-21 Bruno Haible BeOS portability. * lib/mbchar.h: Include only if it exists. 2006-08-20 Paul Eggert Remove files that are no longer needed by their respective modules. * m4/obstack.m4: Remove. * m4/strerror_r.m4: Remove. * m4/uint32_t.m4: Remove. * m4/uintptr_t.m4: Remove. * m4/ullong_max.m4: Remove. * m4/xstrtoimax.m4: Remove. * m4/xstrtoumax.m4: Remove. * m4/cycle-check.m4 (gl_CYCLE_CHECK): Do not require gl_AC_TYPE_UINTMAX_T, gl_STRUCT_DEV_INO, or gl_SAME_INODE, since gnulib dependencies now capture this. * m4/cycle-check.m4 (gl_CYCLE_CHECK): Do not use AC_LIBSOURCES, since gnulib modules now do this. * m4/fsusage.m4 (gl_FSUSAGE): Likewise. * m4/human.m4 (gl_HUMAN): Likewise. * m4/inttostr.m4 (gl_INTTOSTR): Likewise. * m4/xstrtol.m4 (gl_XSTRTOL): Likewise. * m4/filemode.m4 (gl_FILEMODE): Require AC_STRUCT_ST_DM_MODE. * m4/filemode.m4 (gl_PREREQ_FSUSAGE_EXTRA): Do not require gl_AC_TYPE_INTMAX_T or gl_AC_TYPE_UINTMAX_T, since we now require stdint. * m4/human.m4 (gl_HUMAN): Likewise. * m4/inttostr.m4 (gl_PREREQ_INTTOSTR): Likewise. * m4/mkstemp.m4 (gl_PREREQ_TEMPNAME): Likewise. * m4/strtoimax.m4 (gl_PREREQ_STRTOIMAX): Likewise. * m4/strtoumax.m4 (gl_PREREQ_STRTOUMAX): Likewise. * m4/xstrtol (gl_XSTRTOL): Likewise. * m4/gethrxtime.m4 (gl_XTIME): gl_AC_TYPE_LONG_LONG -> AC_TYPE_LONG_LONG_INT. * m4/strtoimax.m4 (gl_PREREQ_STRTOIMAX): Likewise. * m4/strtoll.m4 (gl_FUNC_STRTOLL): Likewise. * m4/strtoull.m4 (gl_FUNC_STRTOULL): Likewise, for unsigned long. * m4/strtoumax.m4 (gl_PREREQ_STRTOUMAX): Likewise. * m4/human.m4 (gl_HUMAN): Do not require AM_STDBOOL_H since we depend on stdbool. * m4/xstrtol.m4 (gl_PREREQ_XSTRTOL_H, gl_PREREQ_XSTRTOL): Remove. (gl_PREREQ_XSTRTOUL): Remove. * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Check for hasmntopt. * m4/posixver.m4: Fix comment since head -1 now works even in POSIX mode. 2006-08-20 Paul Eggert Add and change modules to make it easier for coreutils to use gnulib-tool. * modules/backupfile (Files): Remove m4/d-ino.m4. (Depends-on): Add d-ino. * modules/cycle-check (Depends-on): Add stdint. (lib_SOURCES): Add cycle-check.h. * modules/d-ino: New module. * modules/d-type: New module. * modules/error (Files): Remove m4/strerror_r.m4. * modules/filemode (Files): Add m4/st_dm_mode.m4. * modules/fsuage (Files): Remove m4/ulonglong.m4, m4/stdint_h.m4, m4/inttypes_h.m4, m4/uintmax_t.m4. (Depends-on): Add stdint. (lib_SOURCES): Add fsusage.h. * modules/getcwd (Files): Remove d-ino.m4. (Depends-on): Add d-ino. * modules/getndelim2 (Depends-on): Add stdint. * modules/glob (Files): Remove m4/d-type.m4. (Depends-on): Add d-type. * modules/host-os: New module. * modules/human (Files): Remove m4/ulonglong.m4, m4/stdint_h.m4, m4/inttypes_h.m4, m4/uintmax_t.m4. * Depends-on: Add stdint. (lib_SOURCES): Add human.h. * modules/inttostr (Files): Remove m4/intmax_t.m4, m4/inttostr.m4, m4/inttypes_h.m4, m4/longlong.m4, m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4. (Depends-on): Add stdint. (EXTRA_DIST): Add inttostr.h. * modules/lchmod: New module. * modules/link-follow: New module. * modules/mkdir-p (Files): Remove lib/lchmod.h, m4/lchmod.m4. (Depends-on): Add lchmod. * modules/mkstemp (Files): Remove m4/ulonglong.m4, m4/stdint_h.m4, m4/inttypes_h.m4, m4/uintmax_t.m4. (Depends-on): Add stdint. * modules/obstack (Files): Remove m4/inttypes_h.m4, m4/obstack.m4, m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4. (Depends-on): Add stdint. (configure.ac): Change gl_OBSTACK to AC_FUNC_OBSTACK. * modules/perl: New module. * modules/regex (Depends-on): Add stdint. * modules/rmdir-errno: New module. * modules/strtoimax (Files): Remove m4/stdint_h.m4, m4/inttypes_h.m4, m4/intmax_t.m4. (Depends-on): Add stdint. * modules/strtoumax (Files): Remove m4/stdint_h.m4, m4/inttypes_h.m4, m4/uintmax_t.m4. (Depends-on): Add stdint. * modules/unlink-busy: New module. * modules/utimecmp (Depends-on): Add stdint. * modules/uptime: New module. * modules/winsz-ioctl: New module. * modules/winsz-termios: New module. * modules/xnanosleep (Depends-on): Add nanosleep. * modules/ullong_max: Remove. * modules/xstrtoimax (Files): Remove m4/xstrtoimax.m4. (configure.ac): Remove gl_XSTRTOIMAX; no action needed now. * modules/xstrtol (Files): Remove m4/ulonglong.m4, m4/longlong.m4, m4/stdint_h.m4, m4/inttypes_h.m4, m4/uintmax_t.m4, m4/intmax_t.m4. (Depends-on): Add inttypes. (lib_SOURCES): Add xstrtol.h. * modules/xstrtoumax (Files): Remove m4/xstrtoumax.m4. (configure.ac): Remove gl_XSTRTOUMAX; no action needed now. * MODULES.html.sh: Move 'assert' into the assert section. Move 'dummy' into the linking section. Remove ullong_max. Add section for compatibility checks for POSIX:2001 functions, and put d-ino, d-type, link-follow, rmdir-errno, unlink-busy, winsz-ioctl, and winsz-termios into it. Add lchmod. Add top-level Misc section and put host-os, perl, and uptime into it. 2006-08-20 Paul Eggert * lib/cycle-check.h: Include unconditionally, since we now assume the stdint module. Do not include inttypes.h. * lib/fsusage.h: Likewise. * lib/getndelim2.c: Likewise. * lib/human.h: Likewise. * lib/inttostr.h: Likewise. * lib/obstack.c: Likewise. * lib/regex_internal.h: Likewise. * lib/tempname.c: Likewise. * lib/utimecmp.c: Likewise. * lib/xstrtol.h: Likewise. * lib/stat_.h: Fix typo: HAVE_FUNC_LSTAT -> HAVE_LSTAT. * lib/strtoimax.c: Adjust to macro name changes in Autoconf, e.g., HAVE_LONG_LONG -> HAVE_LONG_LONG_INT. * lib/xtime.h: Likewise. 2006-08-19 Paul Eggert * modules/openat (Files): Add lib/fchmodat.c. Fixes problem reported by Jay Youngman. 2006-08-19 Paul Eggert * lib/fchmodat.c: New file, from coreutils. This was inadvertently omitted in the 2006-08-17 update. Problem reported by Jay Youngman. 2006-08-18 Paul Eggert Bruno Haible * m4/bison-i18n.m4 (BISON_I18N): Also handle the case where yacc exists and is a script that invokes bison. Tighten the code. Add comments. 2006-08-18 Jim Meyering * m4/gethrxtime.m4 (gl_PREREQ_GETHRXTIME): Also check for CLOCK_REALTIME, since gethrxtime may revert to using clock_gettime via gettime.c. Gabor Z. Papp reported that gethrxtime-using programs failed to link due to unresolved clock_gettime on a linux-2.4.x system. 2006-08-18 Bruno Haible * modules/bison-i18n: New file. * MODULES.html.sh (Internationalization functions): Add it. 2006-08-18 Bruno Haible * m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Also check for sys/statvfs.h. When getmntinfo was found, check its declaration and set either MOUNTED_GETMNTINFO or MOUNTED_GETMNTINFO2 depending on it. 2006-08-18 Bruno Haible * m4/bison-i18n.m4: New file, from bison. 2006-08-18 Bruno Haible * lib/mountlist.c [MOUNTED_GETMNTINFO2]: Include sys/statvfs.h. (ME_DUMMY): Treat "kernfs" as a dummy. (read_file_system_list) [MOUNTED_GETMNTINFO2]: Implement. 2006-08-17 Paul Eggert Update from coreutils. 2006-08-15 Jim Meyering * m4/openat.m4 (gl_FUNC_OPENAT): Add at-func.c via AC_LIBSOURCES. 2006-01-17 Jim Meyering * m4/fts.m4 (gl_FUNC_FTS_CORE): Depend on gl_FUNC_OPENAT. 2006-01-11 Jim Meyering * m4/openat.m4 (gl_FUNC_OPENAT): Require and compile fchmodat.c. Check for the lchmod function. 2006-08-17 Paul Eggert Update from coreutils. * lib/__fpending.h: Add copyright notice. * lib/fprintftime.h: Likewise. * lib/savedir.c: Use (C) in copyright notice. * lib/savedir.h: Likewise. 2006-08-15 Jim Meyering * lib/at-func.c: New file, with the logic of all emulated at-functions. * lib/openat-priv.h: Include and define ENOSYS, in support of the EXPECTED_ERRNO macro. * lib/openat.c (fstatat, unlinkat, fchownat): Remove function definitions. Instead, define the appropriate symbols and include "at-func.c". * lib/mkdirat.c (mkdirat): Likewise. * lib/fchmodat.c (fchmodat): Likewise. (ENOSYS): Remove definition. * lib/openat.c: Don't include , now that "openat-priv.h" does it. Don't include "unistd--.h" -- it wasn't ever used. 2006-01-17 Jim Meyering Rewrite fts.c not to change the current working directory, by using openat, fstatat, fdopendir, etc.. * lib/fts.c [! _LIBC]: Include "openat.h" and "unistd--.h". (HAVE_OPENAT_SUPPORT): Define. [_LIBC] (fchdir): Don't undef or define; no longer used. (FCHDIR): Define in terms of cwd_advance_fd rather than fchdir. Now, this `function' always succeeds, and consumes its file descriptor parameter -- so callers must not close such FDs. Update callers. (diropen_fd, opendirat, cwd_advance_fd): New functions. (diropen): Add parameter, SP. Adjust all callers. Implement using diropen_fd, rather than open. (fts_open): Initialize new member, fts_cwd_fd. Remove fts_rft-setting code. (fts_close): Close fts_cwd_fd, if necessary. (__opendir2): Define in terms of opendir or opendirat, depending on whether the FST_NOCHDIR flag is set. (fts_build): Since fts_safe_changedir consumes its FD, and since this code must do `closedir(dirp)', dup the dirfd(dirp) argument, and close the dup'd file descriptor upon failure. (fts_stat): Use fstatat(...AT_SYMLINK_NOFOLLOW) in place of lstat. (fts_safe_changedir): Tweak semantics to reflect that this function now calls cwd_advance_fd and hence consumes its FD argument. * lib/fts_.h [struct FTS] (fts_cwd_fd): New member. [struct FTS] (fts_rft): Remove now-unused member. [struct FTS] (fts_cycle.state): Improve comment. * lib/openat.c (openat_needs_fchdir): New function. * lib/openat.h (openat_needs_fchdir): Declare it. 2006-08-16 Paul Eggert * lib/memcoll.c (memcoll): Set errno = 0 in the shortcut case, too. Problem and fix reported by Pádraig Brady in . 2006-08-15 Paul Eggert * modules/cycle-check (configure.ac): Add gl_CYCLE_CHECK. 2006-08-15 Paul Eggert * lib/memcoll.c (memcoll): Optimize for the common case where the arguments are bytewise equal. 2006-08-15 Paul Eggert * doc/regexprops-generic.texi: Add a copyright notice. 2006-08-15 Bruno Haible * modules/tmpdir (License): Change to LGPL. 2006-08-15 Bruno Haible * gnulib-tool (func_all_modules, func_verify_module): COPYING is not a module. 2006-08-14 Simon Josefsson * config/srclist.txt: Add gnupload. 2006-08-14 Paul Eggert Change copyright notice from LGPL 2 to GPL 2, since that's the standard form used in the gnulib repository. * tests/test-lock.c: Likewise. * tests/test-stdint.c: Likewise. * tests/test-tls.c: Likewise. * users.txt: Add bison, diffutils, libprelude, prelude-lml, prelude-manager. User shorter URLs for GNU projects, without '?'. Add copyright notice. * check-module: Add copyright notice. Output a copyright notice if "--version" is specified. * modules/COPYING: New file. * tests/test-getaddrinfo.c: Add copyright notice. * tests/test-verify.c: Likewise. 2006-08-14 Paul Eggert Change copyright notice from LGPL 2 to GPL 2, since that's the standard form used in the gnulib repository. * lib/lock.c: LGPL -> GPL. * lib/lock.h: Likewise. * lib/strnlen1.c: Likewise. * lib/strnlen1.h: Likewise. * lib/tls.c: Likewise. * lib/tls.h: Likewise. * lib/tmpdir.c: Likewise. * lib/TODO: Remove; this belongs only in coreutils. 2006-08-14 Paul Eggert Add copyright notices to long-enough files that lack them, since otherwise the files aren't clearly free. Use the same notice that getdate.texi already uses. * doc/alloca-opt.texi: Add copyright notice. * doc/alloca.texi: Likewise. * doc/ctime.texi: Likewise. * doc/functions.texi: Likewise. * doc/gcd.texi: Likewise. * doc/gnulib-tool.texi: Likewise. * doc/inet_ntoa.texi: Likewise. * doc/visibility.texi: Likewise. * doc/getdate.texi: Update FDL version from 1.1 to 1.2. * doc/quote.texi: Add copyright notice. * doc/solaris-versions: Add SunOS 5.10, SunOS 1.x, SunOS 4.0, SunOS 4.0.x, SunOS 4.1.1.1, SunOS 4.1.1_U1, SunOS 4.1.3B. SunOS 4.1.3 was Solaris 1.1A. Remove space before B in Solaris 1.1.1B. Mention SunOS 5.11. Mention that everything before SunOS 5.7 is now obsolete, and give a pointer to the Sun list. Add copyright notice. 2006-08-14 Paul Eggert * config/srclistvars.sh: Add copyright notice. 2006-08-14 Eric Blake Import the following change from libc: 2006-08-12 Ulrich Drepper Upstream bug 2997. * lib/misc/error.c: Add space between program name and message if file name is missing. 2006-08-12 Karl Berry * config/srclist.txt (ssize_t.m4, sig_atomic_t.m4, signalblocking.m4): remove, these originate in gnulib now. 2006-08-11 Ralf Wildenhues * doc/Makefile (standards.info standards.html standards.dvi): Also depend on make-stds.texi. 2006-08-11 Paul Eggert * lib/pipe-safer.c (pipe_safer): Fix misspelling: HAVE_FUNC_PIPE -> HAVE_PIPE. Fix a file descriptor leak when fd_safer fails. * lib/regex_internal.c (re_string_skip_chars): Don't assume WEOF fits in wchar_t. Problem reported by Eric Blake. * lib/snprintf.c (snprintf): memcpy LEN bytes, not SIZE - 1, when LEN is smaller than SIZE. Suggested by Bruno Haible. Also, help the compiler to keep LEN in a register. 2006-08-11 Eric Blake * users.txt: Sort. Add tar. 2006-08-11 Bruno Haible * users.txt: New file. 2006-08-11 Bruno Haible * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Include and before . Needed for OSF/1 and BSD/OS. 2006-08-10 Paul Eggert * modules/snprintf (Depends-on): Remove minmax. (Maintainer): Add self and Bruno. 2006-08-10 Paul Eggert * lib/.cppi-disable: Add snprintf.h, socket_.h. * lib/snprintf.c: Include and . (EOVERFLOW): Define if the system does not. Do not include "minmax.h"; it wasn't used. (snprintf): Don't assume size_t promotes to an unsigned type. Fix bug when generated string was too long for the buffer: the buffer's contents are supposed to be the initial prefix of the output. Don't assume vasnprintf returns EOVERFLOW if the size exceeds INT_MAX; do the check ourselves. Import the following changes from libc: 2006-06-02 Jakub Jelinek * lib/posix/regex_internal.c (re_string_skip_chars): If no character has been converted at all, set *last_wc to WEOF. If mbrtowc failed, set wc to the byte which couldn't be converted. (re_string_reconstruct): Don't clear valid_raw_len before calling re_string_skip_chars. If wc is WEOF after re_string_skip_chars, set tip_context using re_string_context_at. 2006-05-02 Ulrich Drepper * lib/posix/regex.h: g++ still cannot handled [restrict]. 2006-04-21 Ulrich Drepper * lib/posix/regex.h: Remove special handling for VMS. 2006-08-10 Jim Meyering * modules/same-inode: New module. * modules/dev-ino: New module. * modules/cycle-check: Depend on these modules, rather than simply including their .h files. (Makefile.am): Don't list cycle-check.[ch] here, now that they're required via m4/cycle-check.m4. * modules/same: Depend on new same-inode module, rather than including same-inode.h. * modules/chdir-safer: New file. * modules/chown (Depends-on): Add stat-macros. 2006-08-10 Jim Meyering * m4/cycle-check.m4: New file. Require gl_STRUCT_DEV_INO and gl_SAME_INODE. * m4/dev-ino.m4, m4/same-inode.m4: New files. 2006-08-10 Eric Blake * modules/verror (Depends-on): Remove bogus gl_VERROR that snuck in from original proposal. 2006-08-10 Eric Blake and Ralf Wildenhues * gnulib-tool (func_import): Detect unexpanded macros in gnulib namespace. 2006-08-10 Bruno Haible * gnulib-tool (func_create_testdir): Detect unexpanded macros here as well. 2006-08-09 Paul Eggert Sync from coreutils. 2006-07-19 Mike Frysinger * lib/mountlist.c [ME_REMOTE]: Filter out cifs. Reported by Toralf Förster in . 2006-08-09 Paul Eggert * modules/restrict: Remove; no longer needed now that we assume Autoconf 2.59 or later. * MODULES.html.sh: Remove 'restrict'. * modules/argp (Depends-on): Remove 'restrict'. * modules/base64 (Depends-on): Likewise. * modules/gc (Depends-on): Likewise. * modules/getaddrinfo (Depends-on): Likewise. * modules/glob (Depends-on): Likewise. * modules/inet_ntop (Depends-on): Likewise. * modules/inet_pton (Depends-on): Likewise. * modules/memxor (Depends-on): Likewise. * modules/regex (Depends-on): Likewise. * modules/strtok_r (Depends-on): Likewise. * modules/time_r (Depends-on): Likewise. 2006-08-09 Paul Eggert * m4/argp.m4 (gl_ARGP): Require AC_C_RESTRICT. * m4/gc.m4 (gl_PREREQ_GC): Likewise. * m4/glob.m4 (gl_PREREQ_GLOB): Likewise. * m4/inet_ntop.m4 (gl_PREREQ_INET_NTOP): Likewise. * m4/inet_pton.m4 (gl_PREREQ_INET_PTON): Likewise. * m4/memxor.m4 (gl_MEMXOR): Likewise. * m4/restrict.m4: Remove; no longer needed. All remaining uses of gl_C_RESTRICT replaced by AC_C_RESTRICT. Merge from coreutils. * m4/regex.m4 (gl_PREREQ_REGEX): Require AC_C_RESTRICT, not gl_C_RESTRICT, now that we assume Autoconf 2.59 or later. * m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Likewise. * m4/time_r.m4 (gl_TIME_R): Likewise. 2006-08-09 Karl Berry * config/srclist.txt: no more gettext-tools, per Bruno. 2006-08-08 Eric Blake * modules/verror: New module. * MODULES.html.sh: Document it. 2006-08-08 Eric Blake * lib/verror.h, lib/verror.c: New files. 2006-08-08 Eric Blake * lib/verror.c (verror_at_line): Work around glibc bug 2997, so that verror_at_line output complies with GNU Coding Standards even when file is NULL. 2006-08-07 Bruno Haible * lib/allocsa.h (sa_alignof) [_AIX]: Also consider 'long long' in newer versions of AIX. Reported by Ralf Wildenhues. 2006-08-07 Bruno Haible * gnulib-tool (func_create_testdir): Wrap the set of autoconf snippets in an AC_DEFUN. Needed so that the autoconf snippets can use AC_REQUIRE. 2006-08-06 Ralf Wildenhues * gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Initialize pkgdata_DATA. * modules/javaversion (Makefile.am): Add to pkgdata_DATA, rather than overriding it. 2006-08-06 Eric Blake * lib/error.h: Fold in some upstream changes from glibc. * lib/error.c: Likewise. 2006-08-04 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Make the mostlyclean-local rule depend on mostlyclean-generic. Reported by Jim Meyering. Solution suggested by Ralf Wildenhues. 2006-07-31 Bruno Haible * m4/localcharset.m4 (gl_LOCALCHARSET): Remove tests for , , . 2006-07-30 Bruno Haible * modules/readlink (License): Change to LGPL. 2006-07-30 Bruno Haible * modules/javaversion (Makefile.am): Distribute javaversion.java and javaversion.class. Also install javaversion.class in $(pkgdatadir) and set PKGDATADIR to point to it. 2006-07-30 Bruno Haible * modules/csharpexec (configure.ac): Comment out macro invocation. * modules/javaexec (configure.ac): Likewise. * modules/javacomp-script (configure.ac): Likewise. * modules/csharpcomp-script (configure.ac): Use AC_REQUIRE. 2006-07-30 Bruno Haible * modules/clean-temp (Depends-on): Add linkedhash-list, remove linked-list. 2006-07-30 Bruno Haible * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Assume exists. 2006-07-30 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Initialize MOSTLYCLEANFILES to core and *.stackdump, so that core dumps get removed. 2006-07-29 Bruno Haible Make it possible for gnulib-tool to work with locally modified or augmented gnulib repositories. * gnulib-tool (func_usage): Document --local-dir option. (local_gnulib_dir): New variable. Handle --local-dir option. (func_lookup_file): New function. (func_all_modules, func_verify_module): Look also in $local_gnulib_dir. (func_get_description, func_get_filelist, func_get_description, func_get_filelist, func_get_dependencies, func_get_autoconf_snippet, func_get_automake_snippet, func_get_include_directive, func_get_license, func_get_maintainer): Use func_lookup_file. (func_import, func_create_testdir): Use func_lookup_file. 2006-07-29 Bruno Haible * modules/setenv (Depends-on): Add unistd. 2006-07-29 Bruno Haible * lib/setenv.c: Undo unintended modification done on 2006-02-27. 2006-07-29 Bruno Haible * lib/localcharset.c: Assume , , exist. 2006-07-29 Bruno Haible * gnulib-tool (import, update): If there is no Makefile.am, look at aclocal.m4, instead of bailing out. 2006-07-29 Bruno Haible * gnulib-tool (func_usage): Revert most of the 2006-07-15 change. Categorize the options by when they are useful. 2006-07-29 Bruno Haible * gnulib-tool (func_usage): Document option --no-libtool. Handle option --no-libtool. (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Update for changed semantics of $libtool variable. (func_import): Likewise. If libtool is not used, show this through an option --no-libtool. (func_create_testdir): Update. 2006-07-29 Bruno Haible * gnulib-tool (func_import): Extend error message about missing --doc-base. 2006-07-29 Bruno Haible * gnulib-tool (func_import): Don't create the $docbase directory if there is no file to store there. 2006-07-29 Bruno Haible * gnulib-tool (autoconf_minversion): If a --dir option is given and relevant, look for configure.ac there, not in the current directory. Also use a simple search for AC_PREREQ, not "autoconf --trace". 2006-07-29 Bruno Haible * gnulib-tool (SORT): New variable. (func_usage): Undocument --assume-autoconf option. Remove --assume-autoconf option handling. (autoconf_minversion): Determine from the contents of configure.ac. (func_import): Remove autoconf_minversion handling. Suggested by Eric Blake. 2006-07-29 Bruno Haible * doc/gnulib-tool.texi (gl_LIBTOOL): Mention --no-libtool option. 2006-07-29 Bruno Haible * config/srclist.txt (*setenv.[ch]): Remove rules. 2006-07-28 Yoann Vandoorselaere * m4/inet_pton.m4, inet_ntop.m4: Check for netinet/in.h too. 2006-07-28 Yoann Vandoorselaere * lib/inet_ntop.h, inet_pton.h: Need to include netinet/in.h before arpa/inet.h. 2006-07-28 Simon Josefsson * modules/inet_ntop (Depends-on): Depend on arpa_inet. * modules/inet_pton (Depends-on): Likewise. 2006-07-28 Simon Josefsson * m4/netinet_in_h.m4: New file. 2006-07-28 Simon Josefsson * lib/inet_ntop.h, inet_pton.h: No need to guard netinet/in.h #include's. 2006-07-28 Simon Josefsson * lib/inet_ntop.h, inet_pton.h: No need to guard arpa/inet.h #include's. 2006-07-28 Paul Eggert * lib/modechange.c (mode_compile): Numeric modes now affect setuid and setgid on directories only if they set these bits. * lib/modechange.h: Remove obsolete comment about masks. 2006-07-28 Eric Blake * lib/regex_internal.h (struct re_dfa_t) [!_LIBC]: Avoid invalid C89 macro expansion. 2006-07-28 Bruno Haible * lib/inet_ntop.h, inet_pton.h: Use #if HAVE* instead of #ifdef HAVE*. 2006-07-28 Bruno Haible * m4/mbchar.m4 (gl_MBCHAR): Also test for iswcntrl. 2006-07-28 Bruno Haible * lib/mbchar.h (iswalnum, iswalpha, iswblank, iswcntrl, iswdigit, iswgraph, iswlower, iswprint, iswpunct, iswspace, iswupper, iswxdigit): Define fallbacks. Avoids link error on FreeBSD 4.x. Reported by Yoann Vandoorselaere . * lib/wcwidth.h (iswprint): Assume an ASCII compatible wide character encoding. * lib/mbswidth.c (iswcntrl): Likewise. 2006-07-27 Bruno Haible * m4/stdint.m4 (gl_STDINT_H): Define __STDC_CONSTANT_MACROS during the test. 2006-07-27 Bruno Haible * lib/stdint_.h (INT*_C, UINT*_C) [C++]: Define these if __STDC_CONSTANT_MACROS is defined, not if __STDC_LIMIT_MACROS is defined. 2006-07-26 Eric Blake * m4/unistd-safer.m4 (gl_UNISTD_SAFER): Check for missing pipe. 2006-07-26 Eric Blake * lib/mkstemp-safer.c [! HAVE_MKSTEMP]: Add prototype for platforms like mingw that lack mkstemp. * lib/pipe-safer.c (pipe_safer) [!HAVE_FUNC_PIPE]: Provide fallback to avoid compilation warning on mingw. 2006-07-26 Bruno Haible * m4/stdint.m4 (gl_STDINT_H): Also verify the existence of the macros INT*_MIN, INT_LEAST*_MAX, INT_LEAST*_MIN, UINT_LEAST*_MAX, INT_FAST*_MIN, INTPTR_MIN. 2006-07-25 Bruno Haible * modules/version-etc (Depends-on): Add stdarg. 2006-07-25 Bruno Haible * m4/stdint.m4 (gl_INTEGER_TYPE_SUFFIX): Avoid 'eval' in front of complex commands. 2006-07-25 Bruno Haible * lib/version-etc.c (version_etc_va): Use va_copy, assumed to be defined in or config.h. 2006-07-24 Paul Eggert * m4/stdio-safer.m4 (gl_FOPEN_SAFER, gl_TMPFILE_SAFER): New macros. (gl_STDIO_SAFER): Remove. 2006-07-24 Paul Eggert * MODULES.html.sh (File stream based Input/Output): Add fopen-safer, tmpfile-safer; remove stdio-safer. * modules/getusershell (Depends-on): Change stdio-safer to fopen-safer. * modules/fopen-safer, modules/tmpfile-safer: New files. * modules/stdio-safer: Remove. 2006-07-24 Bruno Haible * modules/tmpdir: New file. * MODULES.html.sh (File system functions): Add it. 2006-07-24 Bruno Haible * modules/javacomp (Depends-on): Add unistd, javaversion, binary-io, getline, pathname, fwriteerror, clean-temp, xvasprintf, strstr. 2006-07-24 Bruno Haible * modules/clean-temp: New file. 2006-07-24 Bruno Haible * m4/tmpdir.m4: New file, from GNU gettext. 2006-07-24 Bruno Haible * lib/tmpdir.h: New file, from GNU gettext. * lib/tmpdir.c: New file, from GNU gettext. 2006-07-24 Bruno Haible * lib/clean-temp.h: New file, from GNU gettext. * lib/clean-temp.c: New file, from GNU gettext. 2006-07-23 Eric Blake * modules/stdio-safer (Files): Add tmpfile-safer.c. (Depends-on): Add binary-io. 2006-07-23 Eric Blake * m4/stdio-safer.m4 (gl_STDIO_SAFER): Add tmpfile-safer.c. 2006-07-23 Eric Blake * lib/tmpfile-safer.c: New file. * lib/stdio-safer.h (fopen_safer): Add prototype. * lib/stdio--.h (tmpfile): Make safer. 2006-07-23 Bruno Haible * lib/gl_anylinked_list2.h (ASYNCSAFE): New macro. (gl_linked_add_first, gl_linked_add_last, gl_linked_add_before, gl_linked_add_after, gl_linked_add_at, gl_linked_remove_node, gl_linked_remove_at): Use it. 2006-07-22 Yoann Vandoorselaere and Simon Josefsson * lib/getaddrinfo.h (AI_PASSIVE): Make sure it is defined. * lib/getaddrinfo.c (getaddrinfo): Support AI_PASSIVE. 2006-07-22 Paul Eggert * modules/close-stream: New file. * modules/closeout (Description): Make it clear that it exits with a diagnostic on error. (Depends-on): Add close-stream. Remove fpending, stdbool. * MODULES.html.sh (File stream based Input/Output): Add close-stream. 2006-07-22 Paul Eggert * m4/close-stream.m4: New file. 2006-07-22 Paul Eggert * lib/close-stream.c, lib/close-stream.h: New files. 2006-07-22 Bruno Haible Merge from GNU gettext 0.15. 2006-05-01 Bruno Haible * build-aux/javacomp.sh.in: Update for changed javacomp.m4. 2006-07-22 Bruno Haible * modules/javaversion: New file. * MODULES.html.sh (Java): Add javaversion. 2006-03-12 Bruno Haible * build-aux/javaexec.sh.in: Update for changed javaexec.m4. 2005-12-04 Bruno Haible * build-aux/csharpexec.sh.in: Add support for 'clix' launcher (untested). 2006-06-21 Bruno Haible Avoid warnings from recent versions of mcs. * build-aux/csharpcomp.sh.in (options_mcs): Don't use options -o, -L, -r any more. Use options documented since mcs-1.0 instead. Similarly for -g. 2005-12-04 Bruno Haible * build-aux/csharpcomp.sh.in: Suffix for resources is .resources, not .resource. 2005-07-09 Bruno Haible * build-aux/csharpcomp.sh.in (options_csc): For -l option, add a .dll suffix. Reported by Mark Junker . 2006-07-22 Bruno Haible * modules/gettext: Upgrade to gettext-0.15. (Files): Remove m4/isc-posix.m4. Add m4/lock.m4, m4/visibility.m4. Replace m4/inttypes.m4 with m4/inttypes-h.m4. 2006-07-22 Bruno Haible Merge from GNU gettext 0.15. 2006-03-25 Bruno Haible * lib-link.m4 (AC_LIB_LINKFLAGS_FROM_LIBS): New macro. 2006-07-21 Bruno Haible * javacomp.m4 (gt_JAVACOMP): Convert target_version "null" to "1.1". 2006-05-09 Bruno Haible * javacomp.m4 (gt_JAVACOMP): On Cygwin, set CLASSPATH_SEPARATOR to a semicolon. Use CLASSPATH_SEPARATOR for the conftestver execution. 2006-05-01 Bruno Haible * javacomp.m4 (gt_JAVACOMP): Accept a source-version and an optional target-version argument. Verify that the compiler groks source of the specified source-version, or add -source option as necessary. Verify that the compiler produces bytecode in the specified target-version, or add -target and -source options as necessary. Make the result of the test available as variable CONF_JAVAC. Also log error output in config.log. 2006-03-11 Bruno Haible * javacomp.m4 (gt_JAVACOMP): Treat gcj-4.x like gcj-3.x. 2006-05-09 Bruno Haible * javaexec.m4 (gt_JAVAEXEC): On Cygwin, set CLASSPATH_SEPARATOR to a semicolon. 2006-03-12 Bruno Haible * javaexec.m4 (gt_JAVAEXEC): Make the result of the test available as variable CONF_JAVA, for subsequent autoconf tests. Also log error output in config.log. 2006-07-19 Bruno Haible * getline.m4 (AM_FUNC_GETLINE): When cross-compiling, assume that getline works on glibc2 systems. Needed to avoid trouble in relocatable.c. Reported by Nils Magnus Larsgard . 2005-12-04 Bruno Haible * csharpexec.m4 (gt_CSHARPEXEC): Add support for 'clix' launcher (untested). 2005-12-04 Bruno Haible * csharpcomp.m4 (gt_CSHARPCOMP): Also set CSHARPCOMPFLAGS. 2006-07-22 Bruno Haible * gettext.m4: Update from GNU gettext-0.15. * nls.m4: Likewise. * po.m4: Likewise. * inttypes-pri.m4: Likewise. * inttypes-h.m4: Renamed from inttypes.m4. (gl_HEADER_INTTYPES_H): Renamed from gt_HEADER_INTTYPES_H. 2006-07-22 Bruno Haible Merge from GNU gettext 0.15. 2005-07-05 Bruno Haible * printf-args.c (printf_fetchargs): Work around broken definition of wint_t on mingw. 2005-02-12 Bruno Haible * xallocsa.h: Add extern "C" for C++. 2006-05-17 Bruno Haible Cygwin portability. * progreloc.c (WIN32_NATIVE): Renamed from WIN32. 2006-04-30 Bruno Haible * progreloc.c: Include if available. (find_executable): Use _NSGetExecutablePath when possible. 2006-05-06 Charles Wilson * progreloc.c (maybe_executable) [CYGWIN]: Use the access() function. 2005-12-29 Bruno Haible * progreloc.c (set_program_name_and_installdir): Fix compilation error. 2005-12-04 Bruno Haible Cygwin portability. * progreloc.c: Include also on Cygwin. (find_executable): Add support for Cygwin. (set_program_name_and_installdir): Handle also platforms with nonempty EXEEXT. 2006-07-11 Bruno Haible * javacomp.c: Fix a comment. Reported by Jim Meyering. 2006-04-30 Bruno Haible * javacomp.h (compile_java_class): Add source_version, target_version arguments. * javacomp.c: Rewritten to choose only a compiler that respects the specified source_version and target_version. 2006-06-27 Bruno Haible Assume correct S_ISDIR macro. * mkdtemp.c: Remove test of STAT_MACROS_BROKEN. 2006-07-22 Bruno Haible * javaversion.h: New file, from GNU gettext. * javaversion.c: New file, from GNU gettext. * javaversion.java: New file, from GNU gettext. * javaversion.class: New file, from GNU gettext. 2006-05-17 Bruno Haible Cygwin portability. * javaexec.c (execute_java_class): Test for jview program also on Cygwin. 2006-04-09 Bruno Haible * fatal-signal.c: Don't include string.h. (at_fatal_signal): Use a copying loop instead of memcpy. 2005-12-04 Bruno Haible * csharpexec.c: Add support for 'clix' launcher (untested). (execute_csharp_using_sscli): New function. (execute_csharp_program): Call it. 2006-06-21 Bruno Haible Avoid warnings from recent versions of mcs. * csharpcomp.c (compile_csharp_using_mono): Don't use options -o, -L, -r any more. Use options documented since mcs-1.0 instead. Similarly for -g. 2005-07-09 Bruno Haible * csharpcomp.c (compile_csharp_using_sscli): For -l option, add a .dll suffix. Reported by Mark Junker . 2006-06-17 Bruno Haible * config.charset: Update for NetBSD 3.0. 2006-05-17 Bruno Haible Cygwin portability. * localcharset.c (WIN32_NATIVE): Renamed from WIN32. 2006-05-16 Bruno Haible * localcharset.c [CYGWIN]: Include . (get_charset_aliases): For Cygwin, return the same CPxxx aliases list as under WIN32. (locale_charset) [CYGWIN]: Try to retrieve the encoding from the environment variables. Fall back to GetACP(). 2006-04-05 Bruno Haible * config.charset: Update Juan Manuel Guerrero's address. 2005-02-12 Bruno Haible * allocsa.h: Add extern "C" for C++. 2005-02-10 Bruno Haible * allocsa.h (sa_alignof): Define differently with AIX xlc, to avoid a bug of this compiler on AIX 3.2.5 dealing with enums. 2006-07-22 Bruno Haible * gettext.h: Update to GNU gettext-0.15. 2006-07-22 Bruno Haible * config/srclist.txt: Resync printf-args.c, vasnprintf.c, localcharset.c, mkdtemp.c, config.rpath, lib-ld.m4, lib-link.m4, lib-prefix.m4, longdouble.m4, ssize_t.m4. 2006-07-21 Eric Blake * modules/stdlib-safer: New file. * MODULES.html.sh (File stream based Input/Output): Add stdlib-safer. 2006-07-21 Eric Blake * lib/stdlib-safer.h: New file from coreutils, required by stdlib--.h. 2006-07-20 Paul Eggert * gnulib-tool (func_usage): Document --assume-autoconf='latest-stable'. 2006-07-20 Bruno Haible * gnulib-tool: Recognize new option --assume-autoconf. (autoconf_minversion): New variable. (func_get_filelist): Use it to decide whether to add onceonly_2_57.m4. 2006-07-20 Bruno Haible * MODULES.html.sh (func_all_modules): Add a missing func_begin_table. 2006-07-19 Derek R. Price * lib/getaddrinfo.h: Don't define unimplemented AI_* flags. Reindent and repaginate. 2006-07-19 Derek Price * doc/gnulib.texi (Libtool and Windows): Eliminate passive voice. Correct grammar. 2006-07-17 Bruno Haible * modules/list: New file. * modules/array-list: New file. * modules/carray-list, modules/carray-list-tests: New files. * modules/linked-list, modules/linked-list-tests: New files. * modules/avltree-list, modules/avltree-list-tests: New files. * modules/rbtree-list, modules/rbtree-list-tests: New files. * modules/linkedhash-list, modules/linkedhash-list-tests: New files. * modules/avltreehash-list, modules/avltreehash-list-tests: New files. * modules/rbtreehash-list, modules/rbtreehash-list-tests: New files. * modules/oset: New file. * modules/array-oset: New file. * modules/avltree-oset, modules/avltree-oset-tests: New files. * modules/rbtree-oset, modules/rbtree-oset-tests: New files. * tests/test-carray_list.c: New file. * tests/test-linked_list.c: New file. * tests/test-avltree_list.c: New file. * tests/test-rbtree_list.c: New file. * tests/test-linkedhash_list.c: New file. * tests/test-avltreehash_list.c: New file. * tests/test-rbtreehash_list.c: New file. * tests/test-avltree_oset.c: New file. * tests/test-rbtree_oset.c: New file. * MODULES.html.sh (Container data structures): New section. 2006-07-17 Bruno Haible * m4/gl_list.m4: New file. 2006-07-17 Bruno Haible * lib/gl_list.h: New file. * lib/gl_list.c: New file. * lib/gl_array_list.h: New file. * lib/gl_array_list.c: New file. * lib/gl_carray_list.h: New file. * lib/gl_carray_list.c: New file. * lib/gl_linked_list.h: New file. * lib/gl_linked_list.c: New file. * lib/gl_anylinked_list1.h: New file. * lib/gl_anylinked_list2.h: New file. * lib/gl_avltree_list.h: New file. * lib/gl_avltree_list.c: New file. * lib/gl_anyavltree_list1.h: New file. * lib/gl_anyavltree_list2.h: New file. * lib/gl_rbtree_list.h: New file. * lib/gl_rbtree_list.c: New file. * lib/gl_anyrbtree_list1.h: New file. * lib/gl_anyrbtree_list2.h: New file. * lib/gl_anytree_list1.h: New file. * lib/gl_anytree_list2.h: New file. * lib/gl_linkedhash_list.h: New file. * lib/gl_linkedhash_list.c: New file. * lib/gl_anyhash_list1.h: New file. * lib/gl_anyhash_list2.h: New file. * lib/gl_avltreehash_list.h: New file. * lib/gl_avltreehash_list.c: New file. * lib/gl_rbtreehash_list.h: New file. * lib/gl_rbtreehash_list.c: New file. * lib/gl_anytreehash_list1.h: New file. * lib/gl_anytreehash_list2.h: New file. * lib/gl_oset.h: New file. * lib/gl_oset.c: New file. * lib/gl_array_oset.h: New file. * lib/gl_array_oset.c: New file. * lib/gl_avltree_oset.h: New file. * lib/gl_avltree_oset.c: New file. * lib/gl_rbtree_oset.h: New file. * lib/gl_rbtree_oset.c: New file. * lib/gl_anytree_oset.h: New file. 2006-07-16 Paul Eggert * m4/mkancesdirs.m4: New file. * m4/mkdir-p.m4 (gl_MKDIR_PARENTS): Mention dirchownmod.c, dirchownmod.h. Don't require AC_FUNC_ALLOCA, gl_AFS, gl_CHDIR_SAFER; no longer needed. Require gl_FUNC_LCHOWN, since dirchownmod.c needs it. 2006-07-16 Paul Eggert * lib/dirchownmod.c, lib/dirchownmod.h, lib/mkancesdirs.c: * lib/mkancesdirs.h: New files. * lib/mkdir-p.c: Don't include alloca.h, stdio.h, sys/types.h, unistd.h, string.h, chdir-safer.h, dirname.h, lchmod.h, lchown.h, save-cwd.h. Instead, include dirchownmod.h and mkancesdirs.h. (make_dir_parents): New args MAKE_ANCESTOR, OPTIONS, ANNOUNCE, MODE_BITS. Remove options VERBOSE_FMT_STRING, CWD_ERRNO. All callers changed. Revamp internals significantly, by not attempting to create directories that are temporarily more permissive than the final results. Do not attempt to use save_cwd/restore_cwd; it isn't worth it for mkdir and install. This removes some race conditions, fixes some bugs, and simplifies things. Use new dirchownmod function to do owner and mode changes. * lib/mkdir-p.h: Likewise. * lib/modechange.c (octal_to_mode): New function. (struct mode_change): New member mentioned. (make_node_op_equals): New arg mentioned. All callers changed. (mode_compile): Keep track of which mode bits the user has explicitly mentioned. (mode_adjust): New arg DIR, so that we implement the X op correctly. New arg PMODE_BITS, to keep track of which mode bits the user mentioned; it treats S_ISUID and S_ISGID speciall. All callers changed. * lib/modechange.h: Likewise. 2006-07-16 Paul Eggert * MODULES.html.sh: Add mkancestors. * modules/mkancesdirs: New module. * modules/mkdir-p (Files): Remove lib/chdir-safer.c, lib/chdir-safer.h, lib/same-inode.h, m4/afs.m4, m4/chdir-safer.m4. The chdir-safer and afs files are now orphans; I'll remove them unless someone speaks up. Add lib/dirchownmod.c, lib/dirchownmod.h. (Depends-on): Remove alloca, chown, save-cwd, dirname. Add lchown, mkancesdirs. (Maintainer): Add self. 2006-07-15 Karl Berry * gnulib-tool: help message wording/arrangement. 2006-07-14 Simon Josefsson * doc/gnulib.texi (Libtool and Windows): New section. 2006-07-12 Simon Josefsson * modules/gendocs (License): Fix license, approved by Karl. 2006-07-12 Eric Blake * MODULES.html.sh: Add gendocs. 2006-07-11 Eric Blake * modules/fdl: New module, to install doc/fdl.texi. * MODULES.html.sh: Add new section for documentation modules. * gnulib-tool: Avoid space-tab. (--doc-base): New option, to manage files from doc. 2006-07-11 Eric Blake * m4/absolute-header.m4: Fix comments to match recent change. 2006-07-11 Eric Blake * gnulib-tool: List --doc-base before --tests-base. 2006-07-11 Derek R. Price * lib/glob.c: s/NAMLEN/_D_EXACT_NAMLEN/. 2006-07-11 Bruno Haible * README: Mention where to put documentation. 2006-07-10 Ralf Wildenhues * doc/functions.texi, gnulib-tool.texi, gnulib.texi: Fix some typos. 2006-07-10 Paul Eggert * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Like today's change to stdint.m4. 2006-07-10 Paul Eggert * m4/stdint.m4 (gl_STDINT_H): Like yesterday's change to absolute-header.m4. Also, set ABSOLUTE_STDINT_H to a string "no/such/file/stdint.h" when there is no such file, so that the resulting C code can be parsed by dodgy compilers. Problems reported by Bob Proulx. 2006-07-10 Derek R. Price * lib/backupfile.c, dirfd.h, fts.c, getcwd.c, glob.c, glob_.h: Ignore the obsolescent !HAVE_DIRENT_H case. Consolidate NAMLEN macros into the GNU _D_EXACT_NAMLEN. * lib/savedir.c: Likewise. (savedirstream): Use _D_EXACT_NAMLEN in preference to strlen. 2006-07-10 Derek R. Price and Paul Eggert * m4/backupfile.m4, d-ino.m4, d-type.m4, dirfd.m4, fts.m4, getcwd.m4: * m4/savedir.m4: Ignore the obsolescent !HAVE_DIRENT_H case. Consolidate NAMLEN macros into the GNU _D_EXACT_NAMLEN. 2006-07-09 Paul Eggert * m4/absolute-header.m4 (gl_ABSOLUTE_HEADER): Use "" rather than <> around the absolute name, to work around a problem with the HP-UX 11.23 native C compiler, reported by Bob Proulx. 2006-07-09 Paul Eggert * doc/maintain.texi, make-stds.texi: Sync from . 2006-07-09 Paul Eggert * build-aux/depcomp, build-aux/install-sh: Sync from Automake. 2006-07-09 Jim Meyering * m4/glob.m4: Remove a doubled word in a comment. 2006-07-09 Jim Meyering * lib/argp-pv.c: Remove a doubled word in a comment. * lib/check-version.c (check_version): Likewise. * lib/javacomp.c (compile_java_class): Likewise. 2006-07-08 Paul Eggert * gnulib-tool (func_get_filelist): Don't echo m4/onceonly_2_57.m4, for the benefit of people using Autoconf 2.60. If you want to support older Autoconf versions you can copy m4/onceonly_2_57.m4 (or m4/onceonly.m4, if pre-2.57) manually. 2006-07-08 Jim Meyering * m4/link-follow.m4: Remove one of two adjacent "whether"s in a comment. * m4/getopt.m4: Remove one of two adjacent "your"s in a comment. * m4/regex.m4 (gl_REGEX): Remove one of two adjacent "the"s in a comment. 2006-07-08 Jim Meyering * lib/getndelim2.h (getndelim2): Remove doubled "after" in comment. 2006-07-07 Simon Josefsson * tests/test-crc.c: Change expected crc value, the test vector were probably computed using the old broken crc.c? 2006-07-06 Simon Josefsson * modules/sys_socket (Files): Add m4/sockpfaf.m4 (this module is now the canonical place for the M4 file). * modules/getaddrinfo (Files): Remove m4/sockpfaf.m4, we get it from the sys_socket dependency now. * modules/inet_pton (Files): Ditto. * modules/inet_ntop (Files): Ditto. 2006-07-06 Ralf Wildenhues (tiny change) * modules/getusershell (configure.ac): Use gl_FUNC_GETUSERSHELL, not gl_PREREQ_GETUSERSHELL. 2006-07-06 Ralf Wildenhues * m4/_inttypes_h.m4 (gl_INTTYPES_H): Use AC_CHECK_DECLS_ONCE with only one argument, for Autoconf 2.60. * m4/fileblocks.m4 (gl_PREREQ_FILEBLOCKS): AC_CHECK_DECLS_ONCE may expand to nothing, so add a shell command to avoid syntax error. * m4/getpass.m4 (gl_PREREQ_GETPASS): Likewise. 2006-07-06 Ralf Wildenhues * lib/strtod.c (strtod): cast the argument of tolower to unsigned char. 2006-07-06 Paul Eggert * m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH): Don't check for getenv decl; no longer needed. Check for isblank decl. * m4/mkstemp.m4 (gl_PREREQ_TEMPNAME): Don't check for getenv decl. * m4/regex.m4 (gl_PREREQ_REGEX): Dheck for isblank decl instead of existence. 2006-07-06 Paul Eggert * lib/getloadavg.c: Use __VMS, not VMS. * lib/getopt.c: Likewise. * lib/getpagesize.h: Likewise. * lib/glob.c: Remove most VMS cruft; it hasn't been tested for a while and probably does not work. 2006-07-06 Paul Eggert * lib/.cppi-disable: Add wcwidth. * lib/fnmatch.c (ISBLANK): Remove. All uses changed to isblank. (isblank) [! (defined isblank || HAVE_DECL_ISBLANK)]: New macro. (ISGRAPH): Remove. All uses changed to isgraph. (FOLD) [!defined _LIBC]: Remove special case. * lib/getdate.y (lookup_word): Remove no-longer-needed call to islower. * lib/regex_internal.h (isblank): Depend on HAVE_DECL_ISBLANK, not HAVE_ISBLANK. * lib/strftime.c (TOLOWER, TOUPPER) [!defined _LIBC]: Remove special case. 2006-07-06 Jim Hyslop (tiny change) * lib/getaddrinfo.c: Changes to compile under MSVC6: changed '#if WIN32_NATIVE' to '#ifdef' & moved WSAAPI macro inside brackets. Other minor changes to suppress some compiler warnings. 2006-07-06 Derek R. Price and Paul Eggert * m4/backupfile.m4 (gl_BACKUPFILE): Check for dirent.h, instead of invoking obsolescent AC_HEADER_DIRENT macro. * m4/d-ino.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_INO): Likewise. * m4/d-type.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE): Likewise. * m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise. * m4/fts.m4 (gl_FUNC_FTS_CORE): Likewise. * m4/getcwd.m4 (gl_PREREQ_GETCWD): Likewise. * m4/glob.m4 (gl_PREREQ_GLOB): Likewise. * m4/savedir.m4 (gl_SAVEDIR): Likewise. * m4/readdir.m4: Remove; no longer needed. 2006-07-06 Derek R. Price and Paul Eggert * lib/backupfile.c [HAVE_DIRENT_H && ! HAVE_NDIR_H]: Don't worry about this obsolete case any more. (HAVE_DIR): Remove. All uses removed; we now assume you can read directories. * lib/dirfd.h [HAVE_DIRENT_H && ! HAVE_NDIR_H]: Don't worry about this obsolete case any more. * lib/fts.c: Likewise. * lib/getcwd.c: Likewise. * lib/glob.h: Likewise. * lib/savedir.c: Likewise. 2006-07-05 Paul Eggert * m4/xstrtol.m4 (gl_PREREQ_XSTRTOL): Use AC_CHECK_DECLS_ONCE rather than AC_CHECK_DECLS for strtoimax and strtoumax. * m4/getusershell.m4 (gl_PREREQ_GETUSERSHELL): Remove; no longer needed. All uses removed. * m4/strtol.m4 (gl_PREREQ_STRTOL): Likewise. * m4/strtoul.m4 (gl_PREREQ_STRTOUL): Likewise. * m4/exclude.m4 (gl_EXCLUDE): Don't check for isascii; no longer needed. * m4/getdate.m4 (gl_GETDATE): Likewise. * m4/getusershell.m4 (gl_PREREQ_GETUSERSHELL): Likewise. * m4/memcasecmp.m4 (gl_MEMCASECMP): Likewise. * m4/strtod.m4 (gl_FUNC_STRTOD): Likewise. * m4/strtol.m4 (gl_PREREQ_STRTOL): Likewise. * m4/strtoul.m4 (gl_PREREQ_STRTOUL): Likewise. * m4/xstrtol.m4 (gl_PREREQ_XSTRTOL): Likewise. * m4/exclude.m4 (gl_EXCLUDE): Don't require AC_C_INLINE; no longer needed. 2006-07-05 Paul Eggert * lib/memcasecmp.c: Include . (memcasecmp): Don't assume UCHAR_MAX <= INT_MAX. * lib/strtod.c (strtod): Don't assume isspace works on negative chars. Don't assume isdigit succeeds only on '0' through '9'. 2006-07-05 Eric Blake * modules/getaddrinfo (Depends-on): Add snprintf. 2006-07-05 Eric Blake * m4/sockpfaf.m4 (gl_SOCKET_FAMILIES): Use gl_HEADER_SYS_SOCKET to avoid 'header present but could not be compiled' on cygwin. 2006-07-05 Eric Blake * lib/getaddrinfo.h (NI_NUMERICHOST, NI_NUMERICSERV): Define if missing from netdb.h. * lib/getaddrinfo.c (includes): Include inet_ntop and snprintf. 2006-07-05 Derek R. Price * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Don't require AC_HEADER_STDC; no longer needed. * m4/exclude.m4 (gl_EXCLUDE): Likewise. * m4/getdate.m4 (gl_GETDATE): Likewise. * m4/getusershell.m4 (gl_PREREQ_GETUSERSHELL): Likewise. * m4/memcasecmp.m4 (gl_MEMCASECMP): Likewise. * m4/strtod.m4 (gl_FUNC_STRTOD): Likewise. * m4/strtol.m4 (gl_PREREQ_STRTOL): Likewise. * m4/xstrtol.m4 (gl_PREREQ_XSTRTOL): Likewise. 2006-07-05 Derek R. Price * lib/exclude.c (IN_CTYPE_DOMAIN, is_space): Remove; no longer needed. All uses of is_space replaced by isspace. * lib/exit.h: Don't talk about STDC_HEADERS. * lib/fnmatch.c (ISASCII): Remove; no longer needed. All uses removed. (ISPRINT, ISDIGIT, ISALNUM, ISALPHA, ISCNTRL, ISLOWER, ISPUNCT): (ISSPACE, ISUPPER, ISXDIGIT): Remove; no longer needed. All uses replaced by isprint etc. * lib/getdate.y (IN_CTYPE_DOMAIN, ISSPACE, ISALPHA, ISLOWER): Likewise. * lib/getusershell.c (IN_CTYPE_DOMAIN, ISSPACE): Likewise. * lib/memcasecmp.c (IN_CTYPE_DOMAIN, ISLOWER, TOUPPER): Likewise. * lib/strtod.c (IN_CTYPE_DOMAIN, ISSPACE, ISDIGIT, TOLOWER): Likewise. * lib/strtol.c (IN_CTYPE_DOMAIN): Likewise. * lib/xstrtol.c (IN_CTYPE_DOMAIN, ISSPACE): Likewise. 2006-07-05 Bruno Haible * m4/strndup.m4 (gl_FUNC_STRNDUP): When cross-compiling, check whether the function exists, before testing against AIX. Reported by Martin Lambers . 2006-07-04 Paul Eggert * modules/cycle-check (lib_SOURCES): Add same-inode.h. From Mark D. Baushke. 2006-07-04 Paul Eggert * m4/absolute-header.m4 (gl_ABSOLUTE_HEADER): Prepend three slashes to the absolute name, not just one, to bypass Sun C 5.8's "warning: #include of /usr/include/... may be non-portable". 2006-07-04 Eric Blake * modules/dirname-tests: New test module. * tests/test-dirname.c: New file, replacing dirname.c TEST_DIRNAME section that was recently deleted. 2006-07-04 Bruno Haible Assume ANSI C header files and functions. * lib/mbswidth.c (IN_CTYPE_DOMAIN, ISPRINT, ISCNTRL): Remove macros. (mbsnwidth): Use isprint, iscntrl instead. 2006-07-03 Paul Eggert Merge from coreutils. * MODULES.html.sh: Add xstrtold. * modules/xstrtold: New file. * modules/cycle-check (Files): Add lib/same-inode.h. * modules/dirname (Files): Add m4/double-slash-root.m4. * modules/getcwd (Files): Add m4/getcwd-abort-bug.m4. * modules/mkdir-p (Files): Add lib/same-inode.h. * modules/same (Files): Add lib/same-inode.h. 2006-07-03 Paul Eggert * m4/absolute-header.m4: Renamed from full-header-path.m4. This is to keep the terminology clean; POSIX talks about "absolute pathnames", not "full pathnames", but the GNU Coding Standards say to use "path" for something else; so use "absolute" to keep both sides happy. (gl_ABSOLUTE_HEADER): Renamed from gl_FULL_HEADER_PATH. Set gl_absolute_header, not gl_full_header_path. Set gl_cv_absolute_
, not gl_full_path_
. Define ABSOLUTE_
, not FULL_PATH_
. All uses changed. Merge from coreutils. 2006-06-30 Paul Eggert * m4/c-strtod.m4 (gl_C_STRTOLD): Add c-strtod.c to LIBSOURCES. Require gl_USE_SYSTEM_EXTENSIONS, not gl_C_STRTOD, since we don't want to require the building of c-strtod.o. * m4/lib-check.m4 (cu_LIB_CHECK): Remove SEQ_LIBM, since seq no longer needs -lm directly. * m4/xstrtod.m4 (gl_XSTRTOLD): New macro. 2006-06-19 Paul Eggert * m4/lib-ignore.m4 (gl_IGNORE_UNUSED_LIBRARIES): Prefer binutils's --as-needed option if available. Problem reported by Albert Chin in . However, use -Wl,--as-needed, not bare --as-needed, since HP-UX 11.11 cc merely issues a bunch of annoying warnings for --as-needed (this problem was reported by Bob Proulx). Also, try linking with -lm to detect a bug in binutils 2.16 (this problem was reported by Ralf Wildenhues). 2006-06-18 Jim Meyering Test for a bug that causes glibc's getcwd to suffer a failed assertion. * m4/getcwd-abort-bug.m4 (gl_FUNC_GETCWD_ABORT_BUG): New file and macro. * m4/getcwd.m4 (gl_FUNC_GETCWD): If we detect support for getcwd_null, also check for glibc-2.4's abort-inducing bug. * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Fix typo. Low-probability clean-up should be to use rmdir to get rid of the just-created directory, not unlink. * m4/ftruncate.m4 (gl_FUNC_FTRUNCATE): If ftruncate is missing, make configure fail, and request a bug report to inform us about it. Add a comment that, barring reports to the contrary, in 2007 we'll assume ftruncate is universally available. 2006-04-17 Paul Eggert * m4/filemode.m4 (gl_FILEMODE): Check for strmode declaration. 2006-03-12 Jim Meyering * m4/chdir-safer.m4 (gl_CHDIR_SAFER): Add same-inode.h to the list. * m4/cycle-check.m4 (gl_CYCLE_CHECK): Likewise. * m4/same.m4 (gl_SAME): Likewise. * m4/root-dev-ino.m4 (gl_ROOT_DEV_INO): Likewise. 2006-03-11 Eric Blake * m4/double-slash-root.m4: New file, provides gl_DOUBLE_SLASH_ROOT. * m4/dirname.m4 (gl_DIRNAME): Use gl_DOUBLE_SLASH_ROOT. * m4/dos.m4 (FILE_SYSTEM_PREFIX_LEN): Move from here to dirname.h. (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE): New define. 2006-07-03 Paul Eggert * lib/stdint_.h: Include after @FULL_PATH_STDINT_H@, for MacOS X 10.4.6. Don't mention . Problems reported by Mark D. Baushke, one in . Merge from coreutils. * lib/.cppi-disable: Add stdint_.h. * lib/.cvsignore: Add stdint.h. 2006-06-30 Paul Eggert * lib/xstrtod.c (XSTRTOD, DOUBLE): New macros, so that we can support both double and long double versions. (XSTRTOD): Renamed from xstrtod. Use DOUBLE internally. * lib/xstrtold.c: New file. * lib/xstrtod.h (xstrtold): New decl. 2006-05-22 Paul Eggert * lib/filemode.c (setst): Remove. (strmode): Rewrite to avoid setst. This makes the code shorter, (arguably) clearer, and the generated code is a bit smaller on my Debian GNU/Linux stable x86 host. 2006-04-17 Paul Eggert * lib/filemode.c: Include "filemode.h" first, to test the interface. Assume that filemode.h includes sys/types.h and sys/stat.h. (HAVE_ST_DM_MODE): New macro, moved here from ls.c. (ftypelet): Reorder to put common cases first, for efficiency. Add 'P', 'w'. Remove 'M', since it's now the caller's responsibility to do 'M'. (strmode): Renamed from mode_string, and now stores 12 bytes instead of 10, for compatibility with FreeBSD. All callers changed. (filemodestring): Now stores 12 bytes instead of 10, and sets file types that can't be deduced solely from st_mode. First arg is now a const pointer. * lib/filemode.h (HAVE_DECL_STRMODE): Include for strmode. (strmode): Renamed from mode_string. (filemodestring): New decl. * lib/stat-macros.h: Don't undef S_ISDOOR, since it's never buggy. (S_ISDOOR): Don't bother with S_IFDOOR, since that code is never needed. (S_ISPORT, S_ISWHT): New macros, if not already defined. 2006-04-12 Paul Eggert * lib/fsusage.c: Don't include or , since fsusage.h now does that. Include fsusage.h first, to test interface. Prefer statvfs if it works, since it's blessed by POSIX. Attempt at most one method (the old code could have generated decls that didn't conform to C89, not that this was ever exercised). * lib/fsusage.h: Include and if they exist. 2006-03-19 Jim Meyering Work even in a chroot where d_ino values for entries in "/" don't match the stat.st_ino values for the same names. * lib/getcwd.c (__getcwd): When no d_ino value matches the target inode number, iterate through all entries again, using lstat instead. Reported by Kenshi Muto in http://bugs.debian.org/355810, and by Zouhir Hafidi in https://bugzilla.redhat.com/bugzilla/190656. * lib/getcwd.c (__getcwd): Clarify a comment. Use memcpy in place of a call to strcpy. 2006-03-12 Jim Meyering * lib/fts-cycle.c (leave_dir): If cycle-check's saved dev-ino pair matches that of the current directory (which we're about to chdir ".." out of), then save the dev-ino of the parent, instead. * lib/same-inode.h (SAME_INODE): New file/macro. * lib/chdir-safer.c (SAME_INODE): Remove definition. Include "same-inode.h", instead. * lib/same.c: Likewise. * lib/cycle-check.h: Include "same-inode.h". (CYCLE_CHECK_REFLECT_CHDIR_UP): Define. * lib/cycle-check.c (SAME_INODE): Remove definition. * lib/root-dev-ino.h: Include "same-inode.h". 2006-03-11 Eric Blake * lib/same.c (same_name): s/base_name/last_component/ * lib/backupfile.c (check_extension, numbered_backup): Likewise. * lib/filenamecat.c (file_name_concat): Likewise. 2006-03-11 Eric Blake , Paul Eggert * lib/dirname.h (FILE_SYSTEM_PREFIX_LEN): Move here from dos.m4. [FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX]: Don't treat 1: as a drive prefix. (IS_ABSOLUTE_FILE_NAME): Treat all drive letters as absolute on platforms like cygwin with FILE_SYSTEM_DRIVE_PREFIX_IS_ABSOLUTE. (last_component): New method. * lib/dirname.c (dir_len): Determine when drive letters need a subsequent slash. Preserve // when it is special. (dir_name): Don't append dot when drive letter is absolute. [TEST_DIRNAME]: Move into a full-blown gnulib test. * lib/basename.c (base_name): New semantics - malloc the result. Preserve // when it is special. Preserve relative files that look like drive letters. (base_len): Preserve // when it is special. (last_component): New method, similar to old base_name semantics. * lib/stripslash.c (strip_trailing_slashes): Use last_component, not base_name. Strip redundant slashes from ///. 2006-07-03 Jim Meyering * lib/cycle-check.h (CYCLE_CHECK_REFLECT_CHDIR_UP): Abort if this macro is used before the first cycle_check call. 2006-07-03 Eric Blake * modules/dirname (Depends-on): Add xstrndup. 2006-07-02 Paul Eggert * m4/stdint.m4 (gl_STDINT_H): Use more-mnemonic identifiers for test cases, so that config.log is a bit easier to follow. 2006-07-02 Paul Eggert * lib/stdint_.h (intmax_t, uintmax_t): Prefer long to long long if both are 64 bits, since this seems to be the tradition, and this prevents gcc -Wformat from warning about usages with PRIuMAX. If we ever run into a host that prefers long long to long in this case, we'll need another configure-time test. Problem reported by Jim Meyering. 2006-07-02 Eric Blake * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Simplify by using AC_CHECK_DECLS. 2006-07-01 Paul Eggert * modules/inttypes (Depends-on): No longer depends on stdint. * modules/stdint (Description): Say more about assumptions. Say that the fast types might differ. Say macros are used. (Files): Remove m4/size_max.m4, m4/wchar_t.m4. Add m4/longlong.m4. (Makefile.am): Revise list of substituted symbols to match new stdint.m4. * modules/stdint-tests (Files): Add m4/wchar_t.m4, m4/wint_t.m4. (configure.ac): Add gt_TYPE_WCHAR_T, gt_TYPE_WINT_T. * tests/test-stdint.c (verify_same_types) [! (__GNUC__ >= 2 && DO_PEDANTIC)]: Put in a decl, so that the code conforms to C99/C89. Test for WCHAR_MIN and WCHAR_MAX only if HAVE_WCHAR_T. Test for WINT_MIN and WINT_MAX only if HAVE_WINT_T. 2006-07-01 Paul Eggert * m4/longlong.m4 (AC_TYPE_LONG_LONG_INT): Backport from Autoconf 2.60, but fix a bug, by requiring at least 64 bits. * m4/ulonglong.m4 (AC_TYPE_UNSIGNED_LONG_LONG_INT): Likewise. * m4/longlong.m4 (gl_AC_TYPE_LONG_LONG): Now just call AC_TYPE_LONG_LONG_INT. This macro is obsolete and will go soon. * m4/ulonglong.m4 (gl_AC_TYPE_UNSIGNED_LONG_LONG): Likewise. * m4/stdint.m4 (gl_STDINT_H): Rewrite to accommodate stdint_.h changes. Make 2.59 a prerequisite. Check and substitute for HAVE_LONG_LONG_INT. Rely on Autoconf to check for stdint.h and inttypes.h. Do not use special include files; just use the defaults. Check for sys/inttypes.h and sys/bitypes.h in the usual way now. Remove no-longer-needed tests for HAVE_LONG_64BIT, HAVE_LONG_LONG_64BIT, int8_t, int16_t, int32_t, int64_t, uint8_t, uint16_t, uint32_t uint64_t, int_least8_t, int_least16_t, int_least32_t, int_least64_t, uint_least8_t, uint_least16_t, uint_least32_t, uint_least64_t, int_fast8_t, int_fast16_t, int_fast32_t, int_fast64_t, uint_fast8_t uint_fast16_t, uint_fast32_t, uint_fast64_t, intptr_t, uintptr_t, intmax_t, uintmax_t, INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX, INT32_MIN, INT32_MAX, UINT32_MAX, INT64_MIN, INT64_MAX, UINT64_MAX, INT_LEAST8_MIN, INT_LEAST8_MAX, UINT_LEAST8_MAX, INT_LEAST16_MIN, INT_LEAST16_MAX, UINT_LEAST16_MAX, INT_LEAST32_MIN, INT_LEAST32_MAX, UINT_LEAST32_MAX, INT_LEAST64_MIN, INT_LEAST64_MAX, UINT_LEAST64_MAX, INT_FAST8_MIN, INT_FAST8_MAX, UINT_FAST8_MAX, INT_FAST16_MIN, INT_FAST16_MAX, UINT_FAST16_MAX, INT_FAST32_MIN, INT_FAST32_MAX, UINT_FAST32_MAX, INT_FAST64_MIN, INT_FAST64_MAX, UINT_FAST64_MAX, INTPTR_MIN, INTPTR_MAX, UINTPTR_MAX, INTMAX_MIN, INTMAX_MAX, UINTMAX_MAX, PTRDIFF_MIN, PTRDIFF_MAX, SIG_ATOMIC_MIN, SIG_ATOMIC_MAX, SIZE_MAX, WCHAR_MIN, WCHAR_MAX, WINT_MIN, WINT_MAX. Check for C99 conformance more strictly, by detecting bugs in glibc 2.4, Solaris 10, and OpenBSD 3.9. On the other hand do not check for things that C99 does not require, e.g., int8_t. If a test isn't needed unless isn't working, and is unlikely to be needed for any other reason, then don't do it unless isn't working. Do not check for ptrdiff_t or size_t, since we assume C89 freestanding at least. Do not check for sig_atomic_t, wchar_t, or wint_t, since the code now does the right thing even if the types are not defined. Instead use: (gl_STDINT_TYPE_PROPERTIES): New macro. (gl_HEADER_STDINT_H, gl_HEADER_INTTYPES_H): Remove. Don't bother testing whether clashes, as Autoconf does this for us now. All uses removed. (gl_STDINT_CHECK_TYPES, gl_STDINT_MISSING_BOUND): (gl_STDINT_MISSING_BOUNDS, gl_STDINT_MISSING_BOUNDS2): (gl_CHECK_TYPE_SAME): Remove; no longer needed. (gl_STDINT_BITSIZEOF): Don't bother to check whether the type exists, since we'll return 0 anyway in that case. (gl_INTEGER_TYPE_SUFFIX, gl_STDINT_INCLUDES): New macros. 2006-07-01 Paul Eggert * lib/stdint_.h (_GL_STDINT_H): Renamed from _STDINT_H, to avoid possible collision with system files. (, , ) [defined __cplusplus && ! defined __STDC_CONSTANT_MACROS)]: Do not include, since we don't need WCHAR_MIN and WCHAR_MAX in this case. (): Do not include; no longer needed. (): Include if @HAVE_SYS_TYPES_H@, not if (defined(__OpenBSD__) || defined(__bsdi__) || defined(__sgi)). (): Include if @HAVE_SYS_INTTYPES_H@ && !@HAVE_INTTYPES_H@, not if (defined(__FreeBSD__) && (__FreeBSD__ >= 3) && (__FreeBSD__ <= 4)). (__STDINT_H__) [@HAVE_STDINT_H@ && defined __sgi && ! defined __c99]: Define, to work around IRIX incompatibility. (@FULL_PATH_STDINT_H@) [!(defined(__sgi) && @HAVE_INTTYPES_H@ && !defined(__c99))]: Include in this case too, since it's harmless now. () [@HAVE_INTTYPES_H@]: Include, since it's no longer dangerous to do so. (@FULL_PATH_INTTYPES_H@) [(defined(__hpux) || defined(_AIX)) && @HAVE_INTTYPES_H@]: Do not include, since we now include . (_STDINT_MIN, _STDINT_MAX): New macros. (int8_t, uint8_t, int16_t, uint16_t, int32_t, uint32_t, int64_t): (uint64_t, int_least8_t, uint_least8_t, int_least16_t): (uint_least16_t, int_least32_t, uint_least32_t, int_least64_t): (uint_least64_t, int_fast8_t, uint_fast8_t, int_fast16_t): (uint_fast16_t, int_fast32_t, uint_fast32_t, int_fast64_t): (uint_fast64_t, intptr_t, uintptr_t, intmax_t, uintmax_t): Now macros, not typedefs; this simplifies things quite a bit. Use long int for all types narrower than int64_t. (intmax_t, uintmax_t, INTMAX_C, UINTMAX_C): Define in terms of long long int or int64_t or long int, not int64_t or int32_t. This saves some compile-time testing. (INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX): (INT32_MIN, INT32_MAX, UINT32_MAX, INT64_MIN, INT64_MAX): (UINT64_MAX, INT_LEAST8_MIN, INT_LEAST8_MAX, UINT_LEAST8_MAX): (INT_LEAST16_MIN, INT_LEAST16_MAX, UINT_LEAST16_MAX): (INT_LEAST32_MIN, INT_LEAST32_MAX, UINT_LEAST32_MAX): (INT_LEAST64_MIN, INT_LEAST64_MAX, UINT_LEAST64_MAX, INT_FAST8_MIN): (INT_FAST8_MAX, UINT_FAST8_MAX, INT_FAST16_MIN, INT_FAST16_MAX): (UINT_FAST16_MAX, INT_FAST32_MIN, INT_FAST32_MAX, UINT_FAST32_MAX): (INT_FAST64_MIN, INT_FAST64_MAX, UINT_FAST64_MAX, INTPTR_MIN): (INTPTR_MAX, UINTPTR_MAX, INTMAX_MIN, INTMAX_MAX, UINTMAX_MAX): (PTRDIFF_MIN, PTRDIFF_MAX, SIG_ATOMIC_MIN, SIG_ATOMIC_MAX): (SIZE_MAX, WCHAR_MIN, WCHAR_MAX, WINT_MIN, WINT_MAX): undef any previous version and define our own version, for simplicity and consistency with the new macros for types. (PTRDIFF_MIN, PTRDIFF_MAX, SIG_ATOMIC_MIN, SIG_ATOMIC_MAX): (SIZE_MAX, WCHAR_MIN, WCHAR_MAX, WINT_MIN, WINT_MAX): Simplify definitions by using _STDINT_MIN and _STDINT_MAX where appropriate. Rely on new symbols @PTRDIFF_T_SUFFIX@, @SIG_ATOMIC_T_SUFFIX@, @SIZE_T_SUFFIX@, @WCHAR_T_SUFFIX@, @WINT_T_SUFFIX@ to keep things simple here. (UINT8_C, UINT16_C, UINT32_C, INT64_C, UINT64_C): Simplify by assuming typical 8/16/32/64 host, since we're already doing that elsewhere anyway. Use (LONG_MAX >> 31 >> 31 == 1) rather than @HAVE_LONG_64BIT@, and assume long long int is 64 bits if available. This speeds up 'configure'. 2006-07-01 Eric Blake * m4/stdarg.m4 (gl_STDARG_H): Use proper AH_VERBATIM. Reported by Andreas Buening. 2006-07-01 Eric Blake * m4/stdarg.m4 (gl_STDARG_H): Properly parenthesize gl_va_copy. 2006-06-30 Jim Hyslop (tiny change) * lib/getaddrinfo.c: fixed typo 2006-06-29 Jim Meyering * modules/strftime (Maintainer): Add my name, since with the FPRINTFTIME changes strftime.c has forked from glibc. 2006-06-29 Eric Blake * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Use AC_C_INLINE. 2006-06-29 Eric Blake * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): New file. 2006-06-29 Eric Blake * lib/stat_.h: New file. 2006-06-29 Eric Blake * lib/stat_.h (rpl_mkdir): Declare inline, to avoid warnings about unused static function. 2006-06-29 Eric Blake * doc/functions.texi (Function Portability): Document missing lstat on mingw. 2006-06-29 Eric Blake * MODULES.html.sh: Add sys_stat. * modules/sys_stat: New module. * modules/mkstemp (Depends-on): Add sys_stat. 2006-06-29 Derek R. Price * m4/strftime.m4: Don't call AC_FUNC_STRFTIME. 2006-06-29 Derek R. Price * m4/c-bs-a.m4: Removed. 2006-06-29 Derek R. Price * lib/strftime.c: Assume strftime() exists. 2006-06-29 Derek Price * modules/c-bs-a: Removed - \a is C89. * MODULES.html.sh: Remove c-bs-a. 2006-06-29 Bruno Haible * modules/wcwidth (License): Change to LGPL. 2006-06-28 Simon Josefsson * tests/test-getaddrinfo.c: Test getnameinfo too. Call WSAStartup on _WIN32. * modules/getaddrinfo (Depends-on): Add inet_ntop, needed by getnameinfo. 2006-06-28 Simon Josefsson * m4/getaddrinfo.m4: Look for getnameinfo prototypes too. 2006-06-28 Simon Josefsson * lib/getaddrinfo.c: Try to load ws2_32.dll on Windows, to find the functions there. It will succeed on Windows XP, but on Windows 2000 and (presumably) earlier, it will fail, and use the internal re-implementation. (use_win32_p): New function. (getaddrinfo): Use strtoul on servname, to support numeric ports. Support AI_NUMERICSERV to disable getservbyname. (getnameinfo): New function, only supports NI_NUMERICHOST|NI_NUMERICSERV for now. * lib/getaddrinfo.h: Test and check for AI_* flags separately, MinGW only have some of them. Add AI_NUMERICSERV. Add prototype for getnameinfo. 2006-06-28 Eric Blake * modules/wcwidth: New file. * modules/mbchar (Depends-on): Add wcwidth. * modules/mbswidth (Depends-on): Add wcwidth. * MODULES.html.sh: Add wcwidth. 2006-06-28 Eric Blake * m4/mbswidth.m4 (gl_MBSDWIDTH): Move wcwidth from here... * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): ...to this new file. 2006-06-28 Eric Blake * lib/xvasprintf.h: Fix comments. 2006-06-28 Eric Blake * lib/mbchar.h (wcwidth): Include wcwidth.h. * lib/mbswidth.c (wcwidth): Move from here... * lib/wcwidth.h: ...to this new file. 2006-06-28 Derek R. Price * m4/savedir.m4: Remove AC_FUNC_CLOSEDIR_VOID requirement. * m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH): Don't require AC_C_CONST, since it's obsolete. * m4/strftime.m4 (gl_FUNC_GNU_STRFTIME): Likewise. 2006-06-28 Derek R. Price * lib/savedir.c (CLOSEDIR): Remove. All uses changed to closedir. Autoconf 2.60 says this stuff was obsolete. 2006-06-28 Bruno Haible * modules/wcwidth (Files): Add m4/wchar_t.m4. 2006-06-28 Bruno Haible * m4/wcwidth.m4 (gl_FUNC_WCWIDTH): Also require AC_C_INLINE and gt_TYPE_WCHAR_T. 2006-06-28 Bruno Haible * lib/wcwidth.h: Declare nothing if !HAVE_WCHAR_T. Provide a fallback declaration for wcwidth. * lib/mbswidth.c: Restore the includes of and . 2006-06-28 Bruno Haible * lib/mkdtemp.c [MINGW]: Include . (mkdir): Define using _mkdir. 2006-06-28 Bruno Haible * lib/getaddrinfo.h: Fix POSIX URL. * lib/getaddrinfo.c (WIN32_NATIVE): New macro. Use it instead of _WIN32. (use_win32_p): Make static. (getaddrinfo): Reject service name if it is empty or does not consist solely of decimal digits, or if its value is > 65535. (getnameinfo): Remove useless casts. 2006-06-27 Simon Josefsson * modules/sys_select: New file, suggested by Bruno Haible, Paul Eggert and Martin Lambers. 2006-06-27 Simon Josefsson * m4/sys_select_h.m4: New file, suggested by Bruno Haible, Paul Eggert and Martin Lambers. 2006-06-27 Bruno Haible * m4/stdint.m4 (gl_STDINT_BITSIZEOF): For nonexistent types, set the result to 0, not to empty. Reported by Martin Neitzel . 2006-06-27 Bruno Haible * lib/stdint_.h (intmax_t, uintmax_t): Undefine before typedef. 2006-06-26 Simon Josefsson * m4/inet_ntop.m4: Don't check for sys/types.h, we assume it is present. 2006-06-26 Paul Eggert * lib/base64.c (B64): Use _ as the formal parameter, not x, to avoid bug in IBM C V6 for AIX. Problem reported by Larry Jones in . 2006-06-26 Mark D. Baushke * m4/stdint.m4 (gl_STDINT_H): Treat BSD/OS like OpenBSD. 2006-06-26 Bruno Haible * modules/stdint (Makefile.am): Also substitute HAVE_WCHAR_H. 2006-06-26 Bruno Haible * m4/stdint.m4 (gl_STDINT_H): Test also for . 2006-06-26 Bruno Haible * m4/stdint.m4 (gl_STDINT_H): Don't include when using the SGI C compiler in pre-C99 mode. Suggested by Mark D. Baushke and Larry Jones. 2006-06-26 Bruno Haible * lib/stdint_.h: Include if necessary for WCHAR_MIN or WCHAR_MAX. Reported by Mark D. Baushke and Larry Jones. 2006-06-26 Bruno Haible * lib/stdint_.h: Don't include when using the SGI C compiler in pre-C99 mode. Suggested by Mark D. Baushke and Larry Jones. 2006-06-23 Simon Josefsson Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am): Define MOSTLYCLEANDIRS. Emit mostlyclean-local rule. (func_emit_tests_Makefile_am): Likewise. * modules/sys_socket (Makefile.am): Use MOSTLYCLEANDIRS. 2006-06-23 Mark D. Baushke * lib/stdint_.h: Treat BSD/OS like OpenBSD. 2006-06-23 Bruno Haible * tests/test-stdint.c: Update to match ISO C 99 Technical Corrigendum 1. 2006-06-23 Bruno Haible * m4/stdint.m4 (gl_STDINT_H): Treat IRIX like OpenBSD. 2006-06-23 Bruno Haible * lib/stdint_.h: Treat IRIX like OpenBSD. 2006-06-23 Bruno Haible * lib/stdint_.h (UINT8_C, UINT16_C, UINT32_C): Define according to ISO C 99 Technical Corrigendum 1. 2006-06-22 Simon Josefsson * m4/sockpfaf.m4: Include winsock2.h too, to make it work under MinGW. 2006-06-22 Paul Eggert * lib/glob.c (collated_compare): Remove 'const' uses that weren't needed. Some compiler complained about some of them. Problem reported by Larry Jones in . 2006-06-21 Simon Josefsson * tests/test-getaddrinfo.c: New file. * modules/getaddrinfo-tests: New file. * MODULES.html.sh: Add inet_pton. * modules/inet_pton: New file. 2006-06-21 Simon Josefsson * m4/getaddrinfo.m4: Don't define WINVER. Look for gethostbyname in -lws2_32 too. Fixes getaddrinfo on Windows 2000, with the price of using the (limited) gnulib implementation on Windows XP. * m4/inet_pton.m4: New file. 2006-06-21 Simon Josefsson * lib/getaddrinfo.c (getaddrinfo): Set ai_family in the return variable. * lib/socket_.h: Don't define WINVER. * lib/inet_pton.h, inet_pton.c: New file, taken from glibc but slightly modified to work in gnulib. 2006-06-21 Simon Josefsson * doc/gnulib.texi (Windows sockets): Add. 2006-06-21 Paul Eggert * lib/read-file.c (fread_file): Start with buffer allocation of 0 bytes rather than 1 byte; this simplifies the code. Don't invoke feof; it's not needed. Refactor to avoid duplicate code to free buffer and save/restore errno. (internal_read_file): Remove unused local. 2006-06-20 Paul Eggert * lib/openat.c (openat): Use ?:, not if, to work around GCC bug 4210 . Problem reported by Denis Excoffier in . 2006-06-19 Yoann Vandoorselaere * modules/sys_socket, modules/socklen: Include sys/types since FreeBSD 4.x's sys/socket.h needs it. 2006-06-19 Simon Josefsson * lib/inet_ntop.c: Always build inet_ntop4, since inet_ntop6 calls it. 2006-06-19 Paul Eggert * lib/alloca_.h (alloca) [defined alloca]: Don't define or declare. 2006-06-19 Bruno Haible * m4/stdint.m4 (gl_STDINT_H): Enclose the values of FULL_PATH_STDINT_H and FULL_PATH_INTTYPES_H in angle brackets. Reported by Mark D. Baushke . 2006-06-17 Eric Blake * m4/rmdir-errno.m4 (gl_FUNC_FMDIR_NOTEMPTY): Assume errno.h declares errno. 2006-06-17 Bruno Haible * m4/stdint.m4 (gl_STDINT_H) [FreeBSD >= 5]: Don't include . 2006-06-17 Bruno Haible * m4/setenv.m4 (gl_PREREQ_SETENV, gl_PREREQ_UNSETENV): Remove test whether errno is declared. Assume declares errno. 2006-06-17 Bruno Haible * lib/stdint_.h [FreeBSD >= 5]: Don't include . 2006-06-17 Bruno Haible * lib/stdint_.h (_UINT8_T, _UINT32_T, _UINT64_T): New macros. Fixes a problem on Solaris 2.5.1. 2006-06-16 Eric Blake * lib/unsetenv.c [!defined errno]: Assume errno.h declares errno. * lib/unicodeio.c [!defined errno]: Likewise. * lib/strtol.c [!defined errno]: Likewise. * lib/strtod.c [!defined errno]: Likewise. 2006-06-15 Eric Blake * m4/ssize_t.m4 (gt_TYPE_SSIZE_T): Work in spite of -Werror. 2006-06-15 Eric Blake * config/srclist.txt (ssize_t.m4): Lose sync. 2006-06-15 Bruno Haible * modules/stdint (Files): Include m4/full-header-path.m4, m4/size_max.m4, m4/wchar_t.m4. (Makefile.am): Many more substitutions. * modules/stdint-tests: New file. * tests/test-stdint.c: New file. 2006-06-15 Bruno Haible * m4/stdint.m4 (gl_STDINT_H): Rewritten to produce a complete stdint.h. (gl_HEADER_STDINT_H, gl_HEADER_INTTYPES_H, gl_STDINT_CHECK_TYPES, gl_STDINT_MISSING_BOUND, gl_STDINT_MISSING_BOUNDS, gl_STDINT_MISSING_BOUNDS2, gl_STDINT_BITSIZEOF, gl_CHECK_TYPES_SIGNED, gl_CHECK_TYPE_SAME): New macros. 2006-06-15 Bruno Haible * m4/size_max.m4 (gl_SIZE_MAX): Make it work also when cross-compiling. 2006-06-15 Bruno Haible * lib/stdint_.h: Rewritten to be fully auto-configured. Fixes bug on HP-UX/IA64. 2006-06-11 Paul Eggert * lib/getdate.y (__attribute__): Don't define if already defined. Problem reported by Larry Jones. * lib/utimens.c (__attribute__): Likewise. 2006-06-04 Paul Eggert * lib/regexec.c (group_nodes_into_DFAstates): Fix a buffer overrun reported by Andreas Schwab. 2006-05-30 Ralf Wildenhues Bruno Haible * m4/strndup.m4 (gl_FUNC_STRNDUP): Replace the AC_REPLACE_FUNCS with a check for the declaration of strnlen and a run test that exposes the AIX 5.1 strnlen bug. In the failure case, #define strndup to rpl_strndup. 2006-05-30 Ralf Wildenhues Bruno Haible * lib/strndup.c (strndup) [!_LIBC]: Don't undefine macro definition. 2006-05-28 Ralf Wildenhues * m4/c-strtod.m4 (gl_C99_STRTOLD): Use a link test rather than a compile test, for Tru64 4.0D. 2006-05-28 Karl Berry * config/srclist.txt (printf-args.c): lose sync. 2006-05-26 Martin Lambers * lib/getpass.c: Updates the test for the native W32 API, and adds missing includes, thus fixing compilation warnings. 2006-05-25 Sergey Poznyakoff * lib/exclude.c (exclude_fnmatch): New function. (excluded_file_name): Call exclude_fnmatch. * lib/exclude.h (excluded_file_name): New prototype 2006-05-25 Paul Eggert * lib/tempname.c (small_open, large_open): New macros. (__open, __open64) [!_LIBC]: Remove. (__gen_tempname): Use small_open and large_open instead of __open and __open64. This fixes a portability bug on HP-UX 11.11i reported by Simon Wing-Tang in . 2006-05-24 Bruno Haible * lib/printf-args.c (printf_fetchargs): Turn NULL pointers for TYPE_STRING and TYPE_WIDE_STRING into a non-NULL replacement. Reported by Thorsten Maerz via Aaron Stone . 2006-05-19 Paul Eggert * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Rename cache variables to use gl_ rather than jm_. Link, don't run, so that cross-compiles are allowed. Check that resulting type is arithmetic. Move AC_REQUIRE and AC_CHECK_HEADERS_ONCE outside of AC_CACHE_CHECK, since they're not really conditional on the cache. (gl_PREREQ_NANOSLEEP): Check for sys/select.h. 2006-05-19 Paul Eggert * lib/nanosleep.c [HAVE_SYS_SELECT_H]: Include . Use the usual Autoconf way to include and/or sys/time.h. (my_usleep): Don't mishandle maximum value. 2006-05-19 Jim Meyering * lib/getugroups.c: Correct an outdated comment. From Bruno Haible. 2006-05-17 Bruno Haible Cygwin portability. * lib/classpath.c (PATH_SEPARATOR) [CYGWIN]: Define as ':'. 2006-05-17 Bruno Haible * lib/stdint_.h: Fix recognition of Cygwin. 2006-05-15 Bruno Haible * build-aux/config.rpath: Improve support for Sun C 5.9 on Linux, based on libtool patch by Ralf Wildenhues. 2006-05-14 Paul Eggert * m4/stdbool.m4 (AC_HEADER_STDBOOL): Fix overly-picky test for C99 conformance; (bool) 0.5 is an integer constant expression, but (bool) -0.5 is not. Problem reported by Fedor Sergeev in . 2006-05-11 Simon Josefsson * m4/xvasprintf.m4: Fix obvious typo. 2006-05-11 Jim Meyering * lib/sha1.c (sha1_buffer): Correct comment: s/MD5/SHA1/. From James Lemley. 2006-05-10 Simon Josefsson * lib/md4.c: Typo fix, update copyright years. (K1, K2): Don't use L because it turn computations into 64-bit on 64-bit platforms. 2006-05-10 Paul Eggert * lib/crc.c (crc32_update): Remove unnecessary L suffix. * lib/md4.c (rol): Cast right-shift arg to uint32_t to prevent unwanted sign propagation, e.g., on hosts with 64-bit int. There still are some problems with reeelly weird theoretical hosts (e.g., 33-bit int) but it's not worth worrying about now. * lib/sha1.c (rol): Likewise. (K1, K2, K3, K4): Remove unnecessary L suffix. 2006-05-10 Bruno Haible * lib/des.c: Cast to avoid warnings. 2006-05-09 Bruno Haible * modules/xvasprintf (Files): Add m4/xvasprintf.m4. (Depends-on): Depend also on xsize, stdarg. (configure.ac): Add gl_XVASPRINTF. 2006-05-09 Bruno Haible * m4/xvasprintf.m4: New file. 2006-05-09 Bruno Haible * lib/xvasprintf.c: Include limits.h, string.h, xsize.h. (EOVERFLOW): Define fallback value. (xstrcat): New function. (xvasprintf): Recognize the special case of a string concatenation. 2006-05-08 Eric Blake * gnulib-tool (func_version): Base copyright year on CVS date. (func_emit_copyright_notice): New function. (func_emit_lib_Makefile_am): Use it. (func_emit_tests_Makefile_am): Likewise. (func_import): Likewise. 2006-05-08 Bruno Haible * modules/stdarg: New file. * MODULES.html.sh (func_all_modules): Add section for . 2006-05-08 Bruno Haible * m4/stdarg.m4: New file, from GNU gettext. 2006-05-08 Bruno Haible * config/srclist.txt (build-aux/config.rpath): different from latest release. 2006-05-08 Bruno Haible * build-aux/config.rpath: Add support for Sun C 5.9 on Linux. 2006-05-05 Jim Meyering * m4/warning.m4: New file, derived from bison's file by the same name. 2006-05-03 Bruno Haible * lib/stdint_.h: Shorter URL. * lib/inttypes.h: Likewise. 2006-05-02 Paul Eggert * modules/inttypes (Maintainer): Change from Derek Price to 'all'. 2006-05-02 Paul Eggert * lib/verify.h: Document the internals better. Most of this change was written by Bruno Haible. 2006-05-02 Paul Eggert * doc/verify.texi: New file, partly based on a proposal by Bruno Haible. 2006-05-02 Bruno Haible * m4/full-header-path.m4 (gl_FULL_HEADER_PATH): Move the include_next test from here... * m4/_inttypes_h.m4 (gl_INTTYPES_H): ... to here. 2006-04-29 Bruno Haible * lib/gcd.c: Use WORD_T and GCD instead of unsigned long and gcd. Suggested by Oskar Liljeblad . 2006-04-29 Bruno Haible * gnulib-tool: Make --update option actually work. 2006-04-29 Bruno Haible * doc/gcd.texi: New file. * doc/gnulib.texi: Include it. 2006-04-25 Paul Eggert * lib/getdate.y (get_date): When adding relative date, start with the initial time, not with the result of the first mktime call. 2006-04-25 Bruno Haible * gnulib-tool (func_import): Output the include directives in three blocks, sorted separately. Reported by Ben Pfaff . 2006-04-24 Paul Eggert * m4/unlink-busy.m4 (gl_FUNC_UNLINK_BUSY_TEXT): Use prototype to define main with arguments, for C++. Reported by Eric Blake. * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Prefer 'int main ()' to 'int main (void)', for C++. * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Likewise. * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Specify a return type for 'main', for C99 and C++. 2006-04-24 Paul Eggert * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Use return, not exit. Don't assume that exit status -1 is valid. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise. * m4/putenv.m4 (gl_FUNC_PUTENV): Likewise. * m4/rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Likewise. * m4/readdir.m4 (GL_FUNC_READDIR): Include . * m4/rename.m4 (vb_FUNC_RENAME): Likewise. * m4/unlink-busy.m4 (gl_FUNC_UNLINK_BUSY_TEXT): Use AC_RUN_IFELSE, not AC_TRY_RUN. Use return, not exit. Don't assume that functions can be used without declaring them, or that you can exit with status -1. * m4/utimes-null.m4 (gl_FUNC_UTIMES_NULL): Likewise. 2006-04-24 Karl Berry * config/srclist.txt (longdouble.m4): sync lost. 2006-04-24 Eric Blake * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Avoid unused variable warning. 2006-04-24 Bruno Haible * m4/poll.m4 (gl_FUNC_POLL): When cross-compiling, reject also the poll() implementation in AIX. Reported by Ralf Wildenhues . 2006-04-24 Bruno Haible * m4/poll.m4 (gl_FUNC_POLL): Rearrange code, so that POLL_H gets assigned exactly once. 2006-04-23 Claudio Fontana Bruno Haible * modules/gettext (Makefile.am): Add a -I flag for . * gnulib-tool (func_emit_lib_Makefile_am): Emit empty default value for AM_CPPFLAGS. 2006-04-23 Bruno Haible * modules/copy-file: Depend on unistd. * modules/execute: Likewise. * modules/fatal-signal: Likewise. * modules/findprog: Likewise. * modules/mkdtemp : Likewise. * modules/pipe: Likewise. * modules/wait-process: Likewise. 2006-04-23 Bruno Haible * lib/fwriteerror.c (fwriteerror): Call fclose also when an error condition was already detected. Reported by Ben Pfaff . 2006-04-23 Bruno Haible * lib/copy-file.c: Include unconditionally. * lib/execute.c: Likewise. * lib/fatal-signal.c: Likewise. * lib/findprog.c: Likewise. * lib/mkdtemp.c: Likewise. * lib/pipe.h: Likewise. * lib/pipe.c: Likewise. * lib/wait-process.h: Likewise. 2006-04-23 Bruno Haible * gnulib-tool (func_usage): Fix --import description. Document --update. (func_import): Create temporary file in a temporary directory, if --dry-run is specified. Silence errors from 'grep' when there are no m4 files in $m4dir. (func_create_testdir): Silence errors from 'grep' when there are no m4 files in $m4dir. Reported by Karl Berry . 2006-04-20 Bruno Haible * m4/argp.m4 (gl_ARGP): Don't call AC_CHECK_DECLS_ONCE with more than one argument, so that the code will be portable to Autoconf 2.60. * m4/getlogin_r.m4 (gl_PREREQ_GETLOGIN_R): Likewise. * m4/getpass.m4 (gl_PREREQ_GETPASS): Likewise. * m4/unlocked-io.m4 (gl_FUNC_GLIBC_UNLOCKED_IO): Likewise. 2006-04-19 Derek Price Eric Blake * m4/full-header-path.m4 (gl_FULL_HEADER_PATH): Use rather than "/full/path.h". Update comment to match. Shorten & generalize m4_translit call via AS_TR_CPP. 2006-04-19 Derek Price Eric Blake * lib/inttypes.h: Correct grammar in comment. 2006-04-18 Derek Price Paul Eggert * modules/inttypes: New file. * modules/strtoimax, modules/strtoumax: Depend on inttypes. 2006-04-18 Derek Price Paul Eggert * m4/_inttypes_h.m4, m4/full-header-path.m4, m4/include_next.m4: New files. 2006-04-18 Derek Price Paul Eggert * lib/inttypes.h: New file. * lib/strtoimax.c: Assume . 2006-04-15 Paul Eggert * lib/utimens.c (futimens): glibc futimesat messes up if /proc isn't mounted. Problem reported by Kir Kolyshkin. 2006-04-13 Paul Eggert * lib/regcomp.c (init_dfa): Don't use wchar_t or wctype_t if RE_ENABLE_I18N is not defined. Problem reported by Mark D. Baushke via Derek R. Price. * lib/regex.h (RE_DUP_MAX): Update comment to match current implementation. 2006-04-12 Eric Blake * modules/time_r (Makefile.am): Remove lib_SOURCES line, as this is now done automatically by the corresponding Autoconf macro. 2006-04-11 Paul Eggert * m4/time_r.m4 (gl_TIME_R): Add AC_LIBSOURCES for time_r.c and time_r.h. 2006-04-09 Paul Eggert Merge regex changes from libc, removing some of our POSIX-conformance changes that were rejected and redoing them in a less-intrusive way. * lib/regcomp.c (re_compile_internal, init_dfa): Length arg is now size_t, not Idx. All uses changed. (peek_token): Forward decl now says internal_function. (__re_error_msgid, __re_error_msgid_idx): Now static rather than extern with attribute_hidden. (re_compile_pattern) [!defined _LIBC]: Use K&R-style defn. For some reason libc prefers K&R style defns for external functions. (regerror) [!defined _LIBC]: Likewise. (re_set_syntax, re_compile_fastmap, regcomp, regfree, re_comp): (seek_collating_symbol_entry, lookup_collation_sequence_value): (build_range_exp, build_collating_symbol): Use K&R-style defn. (re_compile_fastmap): Use '\0' to memset, not 0. (utf8_sb_map): Make the calculations more obvious. (init_dfa, parse_bracket_exp, build_charclass_op): Call calloc and cast result, as glibc does. (init_word_char, fetch_token, peek_token, peek_token_bracket): (build_range_exp, build_collating_symbol): Now internal functions. * lib/regex.c [!defined _LIBC]: Allow compiling with C++ compilers. * lib/regex.h (__USE_GNU_REGEX): New macro. Don't depend on _REGEX_SOURCE any more; depend on _GNU_SOURCE instead. Don't depend on VMS; depend on __VMS instead, for POSIX namespace cleanness. (regoff_t): Define to ssize_t, not long int. Remove the REG_ macros named below. Instead, make the old names (e.g., RE_BACKSLASH_ESCAPE_IN_LISTS) visible only if __USE_GNU_REGEX. (REG_BACKSLASH_ESCAPE_IN_LISTS): (REG_BK_PLUS_QM, REG_CHAR_CLASSES, REG_CONTEXT_INDEP_ANCHORS): (REG_CONTEXT_INDEP_OPS, REG_CONTEXT_INVALID_OPS): (REG_DOT_NEWLINE, REG_DOT_NOT_NULL, REG_HAT_LISTS_NOT_NEWLINE): (REG_INTERVALS, REG_LIMITED_OPS, REG_NEWLINE_ALT): (REG_NO_BK_BRACES, REG_NO_BK_PARENS, REG_NO_BK_REFS): (REG_NO_BK_VBAR, REG_NO_EMPTY_RANGES): (REG_UNMATCHED_RIGHT_PAREN_ORD, REG_NO_POSIX_BACKTRACKING): (REG_NO_GNU_OPS, REG_DEBUG, REG_INVALID_INTERVAL_ORD): (REG_IGNORE_CASE, REG_CARET_ANCHORS_HERE): (REG_CONTEXT_INVALID_DUP, REG_NO_SUB, REG_SYNTAX_EMACS): (REG_SYNTAX_AWK, REG_SYNTAX_GNU_AWK, REG_SYNTAX_POSIX_AWK): (REG_SYNTAX_GREP, REG_SYNTAX_EGREP, REG_SYNTAX_POSIX_EGREP): (REG_SYNTAX_ED, REG_SYNTAX_SED, _REG_SYNTAX_POSIX_COMMON): (REG_SYNTAX_POSIX_BASIC, REG_SYNTAX_POSIX_MINIMAL_BASIC): (REG_SYNTAX_POSIX_EXTENDED, REG_SYNTAX_POSIX_MINIMAL_EXTENDED): (REG_DUP_MAX, REG_UNALLOCATED, REG_REALLOCATE, REG_FIXED): (REG_NREGS): Remove. All uses replaced by the old RE_* names. (RE_BACKSLASH_ESCAPE_IN_LISTS): (RE_BK_PLUS_QM, RE_CHAR_CLASSES, RE_CONTEXT_INDEP_ANCHORS): (RE_CONTEXT_INDEP_OPS, RE_CONTEXT_INVALID_OPS): (RE_DOT_NEWLINE, RE_DOT_NOT_NULL, RE_HAT_LISTS_NOT_NEWLINE): (RE_INTERVALS, RE_LIMITED_OPS, RE_NEWLINE_ALT): (RE_NO_BK_BRACES, RE_NO_BK_PARENS, RE_NO_BK_REFS): (RE_NO_BK_VBAR, RE_NO_EMPTY_RANGES): (RE_UNMATCHED_RIGHT_PAREN_ORD, RE_NO_POSIX_BACKTRACKING): (RE_NO_GNU_OPS, RE_DEBUG, RE_INVALID_INTERVAL_ORD): (RE_IGNORE_CASE, RE_CARET_ANCHORS_HERE): (RE_CONTEXT_INVALID_DUP, RE_NO_SUB): Don't bother having these macros be independent of each others' values, since they no longer exist in the POSIX name space. Rename the following member names back to their old names, unless !__USE_GNU_REGEX. All uses changed back. (buffer): Renamed from re_buffer. (allocated): Renamed from re_allocated. (used): Renamed from re_used. (syntax): Renamed from re_syntax. (fastmap): Renamed from re_fastmap. (translate): Renamed from re_translate. (can_be_null): Renamed from re_can_be_null. (regs_allocated): Renamed from re_regs_allocated. (fastmap_accurate): Renamed from re_fastmap_accurate. (no_sub): Renamed from re_no_sub. (not_bol): Renamed from re_not_bol. (not_eol): Renamed from re_not_eol. (newline_anchor): Renamed from re_newline_anchor. (num_regs): Renamed from rm_num_regs. (start): Renamed from rm_start. (end): Renamed from rm_end. (free_state): Move up a bit. * lib/regex_internal.h (inline) [__GNUC__ < 3 && defined _LIBC]: #define to be empty. (ASCII_CHARS): New macro, replacing all uses of 0x80 and/or SBC_MAX / 2 when that is what is intended. (SBC_MAX): Define to UCHAR_MAX + 1, not 256. (__re_error_msgid, __re_error_msgid_idx): Remove decls; not needed. (MAX): New macro. (re_xmalloc, re_calloc, re_xrealloc, re_x2realloc): Remove. All uses changed back to re_malloc, etc. It's now the caller's responsibility to check for overflow; all callers changed. (re_alloc_oversized, re_x2alloc_oversized, re_xnmalloc, re_xnrealloc): (re_x2nrealloc): Remove. (free_state): Remove decl. * lib/regexc.c (regexec, re_match, re_search, re_match_2, re_search_2): (re_set_registers, re_exec): Use K&R-style defn. 2006-01-31 Roland McGrath * lib/regcomp.c (calc_eclosure_iter): Remove dead variables. Reported by Mike Frysinger . 2006-01-15 Andreas Jaeger [BZ #1950] * lib/regex_internal.c (re_string_reconstruct): Adjust for build_wcs_upper_buffer change. (build_wcs_upper_buffer): Change return type. 2005-12-10 Ulrich Drepper * lib/regex_internal.h: Include if available. 2005-12-06 Paolo Bonzini * lib/regex_internal.h (SIZE_MAX): Provide a default definition. 2005-10-14 Ulrich Drepper * lib/regcomp.c: Adjust for changed secondary hash function. 2005-09-30 Ulrich Drepper * lib/regex.h: Pretty printing. Clean up namespace a bit. 2005-09-30 Jakub Jelinek * lib/regexec.c (update_cur_sifted_state, check_arrival, check_arrival_add_next_nodes): Avoid using uninitialized variable. 2005-09-06 Paul Eggert Ulrich Drepper [BZ #1302] * lib/regex_internal.h (bitset_t): Renamed from bitset. All uses changed. (bitset_word_t): Renamed from bitset_word. All uses changed. 2005-09-22 Ulrich Drepper [BZ #281] * lib/regex.h: Define RE_TRANSLATE_TYPE as unsigned char *. * lib/regcomp.c: Remove unnecessary uses of unsigned RE_TRANSLATE_TYPE. * lib/regex_internal.h: Likewise. * lib/regex_internal.c: Likewise. * lib/regexec.c: Likewise. Based on a patch by Stepan Kasal . 2005-09-07 Ulrich Drepper * lib/regexec.c (find_recover_state): Remove unnecessary initialization. (transit_state_bkref): Make DFA a const pointer. (get_subexp): Likewise. (check_arrival): Likewise. (update_cur_sifted_state): Likewise. (re_search_internal): Likewise. (prune_impossible_nodes): Likewise. (acquire_init_state_context): Likewise. (proceed_next_node): Likewise. (set_regs): Likewise. (free_fail_stack_return): Likewise. (check_arrival_expand_ecl): Mark DFA parameter as const. (check_arrival_expand_ecl_sub): Likewise. (check_subexp_limits): Likewise. (sub_epsilon_src_nodes): Likewise. (add_epsilon_src_nodes): Likewise. (merge_state_array): Likewise. (update_regs): Likewise. (build_trtable): Likewise. (sift_states_backward): Mark MCTX parameter as const. (build_sifted_states): Likewise. (update_cur_sifted_state): Likewise. (sift_states_mkref): Likewise. (check_arrival_expand_ecl): Mark eclosure as const. (check_dst_limits_calc_pos_1): Likewise. * lib/regex_internal.h (re_match_context_t): Make dfa a const pointer. 2005-09-06 Ulrich Drepper * lib/regexec.c (merge_state_with_log): Define dfa as const pointer. (transit_state_sb): Likewise. (transit_state_mb): Likewise. (sift_states_iter_mb): Likewise. (check_arrival_add_next_nodes): Likewise. (check_node_accept_bytes): Change first parameter to pointer-to-const. [_LIBC] (re_search_2_stub): Use mempcpy. * lib/regex_internal.c (re_string_reconstruct): Avoid calling mbrtowc for very simple UTF-8 case. * lib/regex_internal.c (re_acquire_state): Make DFA pointer arg a pointer-to-const. (re_acquire_state_context): Likewise. * lib/regex_internal.h: Adjust prototypes. * lib/regex.c: Prevent using C++ compilers. * lib/regex_internal.c (re_acquire_state): Minor code rearrangement. (re_acquire_state_context): Likewise. 2006-04-09 Paul Eggert * modules/regex (Depends-on): Add ssize_t. 2006-04-09 Paul Eggert * m4/regex.m4 (gl_REGEX): Check for new glibc interface to translation table. 2006-04-09 Paul Eggert * doc/gnulib-tool.texi (Modified imports): pathname -> file name. 2006-03-29 Mark D. Baushke Bruno Haible * lib/stdint_.h: On OpenBSD, don't redefine types already included in and . 2006-03-25 Ralf Wildenhues * m4/argz.m4 (gl_FUNC_ARGZ): If we define `error_t', also define `__error_t_defined', so argp.h will not typedef the former. 2006-03-25 Paul Eggert * m4/regex.m4 (gl_REGEX): Don't insist on REG_SYNTAX_POSIX_EGREP, REG_SYNTAX_EMACS, and REG_IGNORE_CASE. Settle for the traditional glibc names. Even if glibc is changed to conform to POSIX, the traditional names will be available anyway, since regex depends on the extensions module. Also, fix a longstanding typo in the implementation of Spencer ERE test #75 from grep 2.3. Problems reported by Emanuele Giaquinta. Also, change sense of cached variable, so that the message makes sense. 2006-03-24 Simon Josefsson * lib/base64.c: Fix problems reported by Eric Blake , including some doc fixes. (base64_encode_alloc): Fix +1 bug on allocation failures. 2006-03-24 Ralf Wildenhues * lib/base64.c (base64_encode): Do not read past end of array with unsanitized input on systems with CHAR_BIT > 8. 2006-03-24 Eric Blake * lib/time_r.c (copy_string_result): Remove, as it is no longer used. 2006-03-22 Karl Berry * config/srclist.txt (*setenv.[ch]): get from coreutils. * config/srclistvars.sh (COREUTILS): new var. 2006-03-17 Jim Meyering * m4/regex.m4 (gl_REGEX): Fix typo in last change: s/_REGEX_WIDE_OFFSETS/_REGEX_LARGE_OFFSETS/. 2006-03-16 Paul Eggert * m4/regex.m4 (gl_REGEX): Don't check for off_t, since the code no longer needs it. Instead, check that regoff_t is as least as wide as ptrdiff_t. Don't define _REGEX_WIDE_OFFSETS unless using the included regex, so that our regex.h stays compatible with the installed regex. This is helpful for installers who configure --without-included-regex. Problem reported by Emanuele Giaquinta. 2006-03-16 Paul Eggert * lib/regex.h (regoff_t) [defined _REGEX_LARGE_OFFSETS]: Typedef to long int, not to off_, as POSIX will likely change in that direction. 2006-03-15 Eric Blake * m4/dirfd.m4 (gl_FUNC_DIRFD): Use AC_REQUIRE for AC_HEADER_DIRENT. 2006-03-13 Sergey Poznyakoff * lib/argp-help.c (validate_uparams): Fix typo * lib/argp-parse.c (argp_default_options): Consistently begin help messages with a lowercase letter. 2006-03-11 Paul Eggert * lib/time_r.h (asctime_r, ctime_r): Remove. These functions can overrun buffers and shouldn't be used (much as gets shouldn't be used). * lib/time_r.c (asctime_r, ctime_r): Likewise. 2006-03-08 Simon Josefsson * m4/gc-random.m4: Permit 'no' as variable values and fix warnings, suggested by Ralf Wildenhues . 2006-03-08 Simon Josefsson * m4/gc-random.m4: Call AC_CANONICAL_HOST and use $host_os instead of $target, suggested by Ralf Wildenhues . 2006-03-08 Simon Josefsson * lib/gc-gnulib.c (randomize): Don't open files called 'no', they signal that configure disabled the device. 2006-03-08 Simon Josefsson * build-aux/maint.mk: Fix refresh-po, to handle no translated languages. 2006-03-07 Simon Josefsson * modules/getopt (Depends-on): Add unistd. * modules/unistd: New file. 2006-03-07 Simon Josefsson * modules/gc-random: New file. 2006-03-07 Simon Josefsson * m4/unistd_h.m4: New file. 2006-03-07 Simon Josefsson * m4/readline.m4 (gl_FUNC_READLINE): Rewrite the cached part of the test to be side-effect free by storing the result in the cache variable gl_cv_lib_readline, and moving the assignment of LIBREADLINE and LTLIBREADLINE outside the COMMANDS-TO-SET-IT. From Ralf Wildenhues . 2006-03-07 Simon Josefsson * m4/gc-random.m4: New file, mostly from gc.m4. Warn instead of error on missing devices (the functions will return an error). * m4/gc.m4: Move random stuff to gc-random.m4 2006-03-07 Simon Josefsson * lib/unistd_.h: New file. 2006-03-07 Simon Josefsson * lib/gc-libgcrypt.c, gc-gnulib.c: Use GC_USE_RANDOM. 2006-03-07 Paul Eggert * m4/unistd_h.m4 (gl_HEADER_UNISTD): Rename, to match modules file. Problem reported by Juan Manuel Guerrero. 2006-03-07 Paul Eggert * lib/c-stack.c: Include unistd.h unconditionally, since we now assume the unistd module. * lib/getlogin_r.c: Likewise. * lib/getlogin_r.h: Likewise. * lib/glob.c: Likewise. * lib/pagealign_alloc.c: Likewise. * lib/unistd_.h: Remove; no longer needed. 2006-03-07 Paul Eggert * MODULES.html.sh (Support for systems lacking POSIX:2001): Add unistd. * modules/c-stack (Depends-on): Add unistd. * modules/getlogin_r: Likewise. * modules/glob: Likewise. * modules/pagealign_alloc: Likewise. * modules/unistd (Files): Remove lib/unistd_.h. (EXTRA_DIST): Remove. (unistd.h): Create using 'echo' rather than 'cp', so that we don't need unistd_.h. (MOSTLYCLEANFILES): Remove unistd.h-t. 2006-03-03 Simon Josefsson * build-aux/maint.mk: Add several syntax checks from CoreUtils. 2006-03-03 Simon Josefsson * build-aux/maint.mk: Add refresh-po rule, based on ideas from libidn and bison. 2006-03-03 Simon Josefsson * build-aux/maint.mk: Add indent target. 2006-03-03 Ralf Wildenhues (tiny change) * m4/poll.m4 (gl_FUNC_POLL): If we deem poll(2) unacceptable, use our replacement poll.h in any case, to avoid a differing declaration from a system header. Seen on AIX. 2006-03-01 Simon Josefsson * lib/readline.c: Fix typo, tiny patch from Stepan Kasal . 2006-03-01 Paul Eggert * modules/gettime (Depends-on): Add extensions module. * modules/nanosleep (Depends-on): Likewise. * modules/settime (Depends-on): Likewise. 2006-03-01 Paul Eggert * m4/clock_time.m4 (gl_CLOCK_TIME): Require gl_USE_SYSTEM_EXTENSIONS, not merely AC_GNU_SOURCE, for the benefit of Solaris 10 when compiled pedantically. * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise. * m4/timespec.m4 (gl_TIMESPEC): Likewise. * m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Use "=" with "test", not "==". Reported by Ralf Wildenhues. 2006-03-01 Karl Berry * doc/Copyright/request-*: new files, synced from gnuorg. 2006-03-01 Karl Berry * config/srclist.txt (Copyright/*): new entries. 2006-02-28 Simon Josefsson * lib/getopt.c: Protect #include of unistd.h, for MSVS. 2006-02-27 Simon Josefsson * lib/base64.h: Indent #define's. From Jim Meyering . 2006-02-27 Jim Meyering Revert the change of 2006-02-24, so these files can continue to be sync'd from gettext. * lib/mkdtemp.c, setenv.c, unsetenv.c: *Un*-normalize inclusion of `config.h'. 2006-02-26 Paul Eggert * modules/intprops: New file. * MODULES.html.sh (Numeric conversion functions ): Add intprops. * modules/getloadavg (Files): Remove lib/intprops.h. (Depends-on): Add intprops. * modules/human: Likewise. * modules/inttostr: Likewise. * modules/openat: Likewise. * modules/sig2str: Likewise. * modules/userspec: Likewise. * modules/utimecmp: Likewise. * modules/xnanosleep: Likewise. * modules/xstrtol: Likewise. 2006-02-24 Ralf Wildenhues (tiny changes) * modules/xstrtod: Omit xstrtod.h, xstrtod.c; they're in LIB_SOURCES. * modules/lock-tests (TESTS): Use $(EXEEXT). * modules/tls-tests: Likewise. * modules/argp-tests: Likewise. (check_PROGRAMS): New var, replacing... (noinst_PROGRAMS, test_argp_SOURCES): Remove. 2006-02-24 Ralf Wildenhues * lib/mkdtemp.c, lib/setenv.c, lib/unsetenv.c: Normalize inclusion of `config.h'. 2006-02-24 Paul Eggert * lib/glob.c: Say "invalid" rather than "illegal" in comments. 2006-02-22 Ralf Wildenhues Sync from coreutils. * m4/mkdir-p.m4 (gl_MKDIR_PARENTS): Require gl_FUNC_LCHMOD and gl_CHDIR_SAFER. 2006-02-22 Jim Meyering Sync from coreutils. * m4/chdir-safer.m4: New file. 2006-02-20 Paul Eggert * lib/getcwd.c (AT_FDCWD): Work around a bug in Solaris 9 and 10, where AT_FDCWD exceeds INT_MAX. * lib/openat.h (AT_FDCWD): Likewise. 2006-02-17 Eric Blake * m4/getaddrinfo.m4 (gl_GETADDRINFO): Fix caching error. 2006-02-16 Simon Josefsson * modules/getaddrinfo (Depends-on): Add sys_socket. 2006-02-15 Simon Josefsson * build-aux/maint.mk: Add dsyntax-check rule. 2006-02-15 Eric Blake * m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Don't attempt using winsock2.h or ws2tcpip.h when sys/socket.h is present. Fixes 'present but cannot compile' warnings on cygwin. * m4/socklen.m4 (gl_TYPE_SOCKLEN_T): Use gl_HEADER_SYS_SOCKET. Don't use ws2tcpip.h if sys/socket.h works. * m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Use gl_HEADER_SYS_SOCKET. (gl_GETADDRINFO): Don't use ws2tcpip.h when sys/socket.h is present. 2006-02-14 Simon Josefsson * modules/maintainer-makefile (Files): Rename. * build-aux/GNUmakefile: Rename Makefile.maint to maint.mk and (the local) Makefile.cfg to maint-cfg.mk. * build-aux/Makefile.maint, build-aux/maint.mk: Renamed the former to the latter. * modules/maintainer-makefile: New module. * build-aux/Makefile.maint: New file, from GNU CoreUtils, although severaly stripped to make it possible to build it up from scratch with reliable tests. * build-aux/GNUmakefile: New file, from GNU CoreUtils with some fixes to permit overriding the default actions when configure and makefile are not available. 2006-02-14 Paul Eggert Sync from coreutils. * modules/lstat (Depends-on): Don't depend on xalloc. (License): Change from GPL to LGPL, since this is now simply a replacement for a libc function. 2006-02-14 Jim Meyering Sync from coreutils. Eliminate the unwelcome (albeit unlikely) possibility of xmalloc failure on deficient systems, and simplify gnulib lgpl dependencies. * lib/lstat.c (rpl_lstat): Rewrite to use stat() in place of the xmalloc/lstat combination. Based on a patch from Bruno Haible. * lib/xalloc-die.c: Remove unused definition of N_. 2006-02-14 Jim Meyering Sync from coreutils. * m4/ls-mntd-fs.m4 (AC_FUNC_GETMNTENT): Invoke AC_CHECK_FUNCS(getmntent) unconditionally so that tests of $ac_cv_func_getmntent (e.g., in gl_LIST_MOUNTED_FILE_SYSTEMS) need not double-quote uses of that variable, to accommodate the rare case in which getmntent is available in none of the libraries checked. This happens at least on FreeBSD 5.0. 2006-02-13 Simon Josefsson * gnulib-tool (Usage): Fix --import, from karl@freefriends.org (Karl Berry). 2006-02-13 Sergey Poznyakoff * lib/argp-fmtstream.c: Restore another bugfix lost on 2005-12-12 2006-02-07 Sergey Poznyakoff * lib/argp-namefrob.h: Restore changes accidentally lost during the "autoupdate" on 2005-12-12. 2006-02-07 Paul Eggert * modules/closeout (Depends-on): Remove atexit. 2006-02-07 Paul Eggert * lib/closeout.c (close_stdout): Don't assume 'bool' converts nonzero ints to 0 or 1, as this isn't true for the stdbool.h substitute. 2006-02-05 Paul Eggert * m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Don't #define __EXTENSIONS__ if this causes compilation to fail. Problem reported by Nelson H. F. Beebe with Solaris 10 and Sun C 5.7 c89 -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED. 2006-01-27 Paul Eggert * lib/fnmatch.c (L_): Renamed from L, to work around a bug in Mac OS X 10.3.9 with GCC 3 reported by Claudio Fontana in . All uses changed. 2006-01-26 Simon Josefsson * lib/socket_.h: Set WINVER to 0x0501, to make sure getaddrinfo prototype is visible on mingw32. * lib/getaddrinfo.h: Define EAI_ADDRFAMILY and EAI_SYSTEM if not set, for mingw32. * lib/gai_strerror.c, getaddrinfo.h: Protect netdb.h #include (for mingw32). 2006-01-26 Paul Eggert * lib/fts.c (diropen): Open with O_NOCTTY | O_NONBLOCK too. Don't attempt to open for write; this always fails, at least on POSIX hosts. This reinstates the 2006-01-09 change, which was inadvertently removed. 2006-01-26 Bruno Haible * gnulib-tool (func_import): Use "trap 'exit $?' instead of "trap :". Reported by Paul Eggert. 2006-01-26 Bruno Haible Paul Eggert * lib/stdbool_.h (_Bool) [(! (defined __cplusplus || defined __BEOS__) && !defined __GNUC__ && !(defined __HP_cc || defined __xlc__ || (defined __SUNPRO_C && (__SUNPRO_C < 0x550 || __STDC__ == 1)) || defined __sgi))]: #define to signed char in these cases too; this simplifies the code (so that we don't have to worry about HP-UX, AIX, SunPRO, etc., separately) and makes it more conservative. 2006-01-25 Simon Josefsson * m4/getaddrinfo.m4: Look for getaddrinfo inside ws2tcip.h and -lws2_32. Protect sys/socket.h and netdb.h #include's. Include ws2tcpip.h with WINVER=0x0501. All for mingw32. 2006-01-25 Sergey Poznyakoff * lib/argp-namefrob.h: Bugfix. Remove stray # 2006-01-25 Paul Eggert * m4/stdbool.m4 (AC_HEADER_STDBOOL): Check for xlc bug if __GCC__ too, so that we test the test. Check for yet another HP-UX cc bug involving *bool |= bool. 2006-01-25 Karl Berry * config/srclist.txt (vasnprintf.c): sync lost. 2006-01-25 Jim Meyering Sync from the stable (b5) branch of coreutils: * lib/fts.c (fts_children): Don't let close() clobber errno from failed fchdir(). * lib/fts.c (fts_stat): When following a symlink-to-directory, don't necessarily interpret stat-fails+lstat-succeeds as indicating a dangling symlink. That can also happen at least for ELOOP. The fix: return FTS_SLNONE only when the stat errno is ENOENT. FYI, this bug predates the inclusion of fts.c in coreutils. * lib/fts.c (fts_open): Put new maxarglen declaration and uses in their own block, so pre-c99 compilers don't object. Avoid the double-free (first in fts_read, second in fts_close) that would occur when an `active' directory is made inaccessible (e.g., via chmod a-x) during a traversal. * lib/fts.c (fts_read): After a failed fchdir, update sp->fts_cur before returning. Reproduce this failure by mkdir -p a/b; cd a; chmod a-x . b Reported by Stavros Passas. 2006-01-25 Jim Meyering * lib/fileblocks.c: Remove more useless parentheses. * lib/readutmp.h: Likewise. 2006-01-25 Bruno Haible * lib/stdbool_.h (_Bool) [IRIX cc]: Define as 'signed char', to avoid warnings. Reported by Paul Eggert. 2006-01-25 Bruno Haible * gnulib-tool (func_import): Use "trap :" instead of "trap -" to get rid of a trap command. For Solaris sh. Reported by Mark D. Baushke . 2006-01-24 Simon Josefsson * lib/socket_.h (SHUT_WR, SHUT_RDWR): Don't hardcode, suggested by Bruno. 2006-01-24 Karl Berry * config/srclist.txt (argp-namefrob.h): sync lost. 2006-01-24 Jim Meyering * modules/openat (Files): Add lib/intprops.h. From Mark D. Baushke. 2006-01-24 Jim Meyering * m4/openat.m4 (gl_FUNC_OPENAT): Add AC_LIBSOURCES([intprops.h]). Reported by Mark D. Baushke. 2006-01-24 Jim Meyering * lib/socket_.h: Remove useless parentheses in uses of cpp `defined'. 2006-01-24 Bruno Haible * modules/strnlen (Maintainer): Change from glibc to all. 2006-01-24 Bruno Haible * m4/stdbool.m4 (AC_HEADER_STDBOOL): Check for IBM and HP-UX bugs. Patch by Paul Eggert. 2006-01-24 Bruno Haible * lib/stdbool_.h (_Bool) [__cplusplus]: Don't define if the compiler already has it. Report and patch by Albert Chin-A-Young on 2005-11-26. * lib/stdbool_.h (_Bool) [HP-UX cc, AIX cc,xlc]: Define as 'signed char' to avoid problems with the built-in _Bool type. Reported by Paul Eggert on 2005-11-26. 2006-01-24 Bruno Haible * gnulib-tool (func_import): Avoid constructing complicated sed expressions inside backquote. Report and solution by Mark D. Baushke . 2006-01-23 Ulrich Drepper These changes imported from libc. * lib/getopt.c: Use __fxprintf instead of inline stream orientation test and two separate function calls. * lib/strndup.c (__strndup): Add libc_hidden_def. 2006-01-23 Simon Josefsson * modules/lock-tests: Use check_PROGRAMS instead of noinst_PROGRAMS. Remove the test_*_SOURCES variable: automake infers it by default. * modules/tls-tests: Likewise. 2006-01-23 Paul Eggert Work around porting bugs reported by Dieter in . * lib/getopt.c (_NOPROTO): Remove; no longer needed. Include and in all environments; it's safe now. Include "getopt.h" first, to check interface. (getenv): Declare only if defined HAVE_DECL_GETENV && !HAVE_DECL_GETENV. * lib/strndup.c [!_LIBC]: Include "strndup.h" to get prototype. (__strndup): Revert to K&R-style function dfns, the glibc style. * lib/strnlen.c: Don't claim it's taken from glibc; it's not. (strnlen, __strnlen): Remove #defines and #undefs; not needed. Include strnlen.h first, to get prototype properly. (strnlen): Renamed from __strnlen. Remove weak alias. 2006-01-23 Paul Eggert * m4/getopt.m4 (gl_PREREQ_GETOPT): Check for getenv decl. 2006-01-23 Paul Eggert * config/srclist.txt: Adjust to reflect glibc reorganization. This affects only comments. 2006-01-22 Ralf Wildenhues (tiny change) * gnulib-tool, build-aux/csharpcomp.sh.in: Do not pass `-q' to mktemp. Reported by Bruce Korb . 2006-01-22 Paul Eggert * lib/quotearg.c (quotearg_buffer_restyled): Add "default: break;" to pacify gcc -Wswitch-default. 2006-01-22 Bruno Haible * lib/vasnprintf.c (VASNPRINTF): In the computation of the size of the temporary buffer for sprintf, take into account the precision also for 'd', 'i', 'u', 'o', 'x', 'X'. 2006-01-21 Sergey Poznyakoff * modules/argp-tests: New module * tests/test-argp.c: New file * tests/test-argp-2.sh: New file 2006-01-21 Sergey Poznyakoff * lib/argp-help.c (usage_long_opt): Do not print DOC options. (__argp_base_name): Removed * lib/argp-namefrob.h (__argp_basename): Removed definition. Was a typo. (__argp_base_name): Provide macro definition or extern declaration depending on the configuration 2006-01-20 Simon Josefsson * modules/inet_ntop (Depends-on): Depend on sys_socket. 2006-01-20 Simon Josefsson * lib/inet_ntop.h: Unconditionally include sys/socket.h. 2006-01-20 Paul Eggert * m4/lib-ignore.m4 (gl_IGNORE_UNUSED_LIBRARIES): Use -Wl,-z,ignore rather than -Xlinker -z -Xlinker ignore, as it's more portable. Suggested by Bruno Haible. 2006-01-20 Karl Berry * config/srclist.txt (argp-fmtstream.h, localcharset.c): comment out until changes propagate, I guess. 2006-01-19 Simon Josefsson * m4/socklen.m4: Look in ws2tcpip.h too, for mingw32. 2006-01-19 Simon Josefsson * lib/socket_.h: Map SHUT_RD, SHUT_WR, SHUT_RDWR correctly. 2006-01-19 Simon Josefsson * gnulib-tool: Set check_PROGRAMS. * modules/arcfour-tests, modules/arctwo-tests, modules/crc-tests, modules/des-tests, modules/gc-arcfour-tests, modules/gc-arctwo-tests, modules/gc-des-tests, modules/gc-hmac-md5-tests, modules/gc-hmac-sha1-tests, modules/gc-md2-tests, modules/gc-md4-tests, modules/gc-md5-tests, modules/gc-pbkdf2-sha1-tests, modules/gc-rijndael-tests, modules/gc-sha1-tests, modules/gc-tests, modules/hmac-md5-tests, modules/hmac-sha1-tests, modules/md2-tests, modules/md4-tests, modules/md5-tests, modules/readline, modules/rijndael-tests: Use check_PROGRAMS instead of noinst_PROGRAMS to be able to remove test_*_SOURCES. 2006-01-18 Simon Josefsson * modules/socklen (Depends-on): Depend on sys_socket. 2006-01-18 Simon Josefsson * modules/arcfour-tests, modules/arctwo-tests, modules/crc-tests, modules/des-tests, modules/gc-arcfour-tests, modules/gc-arctwo-tests, modules/gc-des-tests, modules/gc-hmac-md5-tests, modules/gc-hmac-sha1-tests, modules/gc-md2-tests, modules/gc-md4-tests, modules/gc-md5-tests, modules/gc-pbkdf2-sha1-tests, modules/gc-rijndael-tests, modules/gc-sha1-tests, modules/gc-tests, modules/hmac-md5-tests, modules/hmac-sha1-tests, modules/md2-tests, modules/md4-tests, modules/md5-tests, modules/readline, modules/rijndael-tests: Add $(EXEEXT) to automake TESTS variable, for mingw32. 2006-01-17 Simon Josefsson * modules/socklen (Include): Need sys/socket.h. 2006-01-17 Bruno Haible * modules/ssize_t (Include): Add . 2006-01-16 Paul Eggert * m4/lib-ignore.m4 (gl_IGNORE_UNUSED_LIBRARIES): Don't use ldd, as it's not portable and it doesn't work with cross-compiles. Problem reported by Bruno Haible. Fix missing-$ typo in 'test "gl_cv_ignore_unused_libraries" ...' that prevented -zignore from being used with Sun's C compiler. 2006-01-12 Simon Josefsson * lib/base64.c: Fix warning, reported by Bruno Haible and patch by Paul Eggert . 2006-01-12 Bruno Haible * modules/ldd: New file. * build-aux/ldd.sh.in: New file. * MODULES.html.sh (Support for building libraries and executables): Add ldd. 2006-01-12 Bruno Haible * m4/ldd.m4: New file. 2006-01-12 Bruno Haible * gnulib-tool (func_import, func_create_testdir): Don't go into an endless loop while replacing $auxdir with build-aux. 2006-01-11 Simon Josefsson * lib/stdint_.h (SIZE_MAX): Add missing (. 2006-01-11 Paul Eggert Sync from coreutils. * lib/md5.c: Fix commentary typos. (alignof, UNALIGNED_P): No need for a GCC-specific version. * lib/md5.h (__attribute__): Remove; unused. * lib/sha1.c: Fix commentary to match md5 better. * lib/sha1.h (struct sha1_ctx): Use a word buffer, not a byte buffer, so that we don't need to worry about alignment. All uses changed. This merges the 2005-10-28 md5 change into sha1. 2006-01-11 Jim Meyering Sync from coreutils. * lib/md5.c (OP): Fix spacing. 2006-01-11 Bruno Haible Ensure automatic ordering between gl_LOCK and gl_ARGP. * m4/lock.m4 (gl_LOCK_BODY): Renamed from gl_LOCK. (gl_LOCK): New macro, requiring gl_LOCK_BODY. 2006-01-11 Bruno Haible Ensure automatic ordering between gl_LOCK and gl_ARGP. * gnulib-tool (func_import, func_create_testdir): Put gl_LOCK into the "early" section as well. 2006-01-11 Bruno Haible Avoid "ar: no archive members specified" error on MacOS X. * gnulib-tool (func_modules_add_dummy): New function. (func_import, func_create_testdir): Invoke it. 2006-01-11 Bruno Haible * gnulib-tool (func_import, func_create_testdir): Replace build-aux with $auxdir in AC_CONFIG_FILES statements. 2006-01-11 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Initialize also noinst_HEADERS to empty. 2006-01-11 Bruno Haible * gnulib-tool (AUTOMAKEPATH, AUTOCONF, ACLOCAL, AUTOMAKE): New variables. (func_create_megatestdir): Call aclocal, autoconf, automake here, not autoreconf. 2006-01-11 Bruno Haible * gnulib-tool (AUTOCONF, ACLOCAL, AUTOMAKE, AUTORECONF): Make overridable by the user. Reported by Ralf Wildenhues . 2006-01-10 Simon Josefsson * modules/sys_socket: New file. 2006-01-10 Simon Josefsson * m4/sys_socket_h.m4: New file. 2006-01-10 Simon Josefsson * lib/socket_.h: New file. 2006-01-10 Paul Eggert * modules/readutmp (Maintainer): Add myself. 2006-01-10 Paul Eggert * m4/memcoll.m4 (gl_MEMCOLL): Don't require AC_FUNC_MEMCMP, undoing the 2002-12-31 change. Problem and fix reported by Bruno Haible. People who are still concerned with buggy memcmp implementations can invoke gl_FUNC_MEMCMP themselves. 2006-01-10 Paul Eggert * lib/regex_internal.h (BITSET_WORD_BITS): Work around a bug in 64-bit PGC (before version 6.1-2), where the preprocessor mishandles large unsigned values as if they were signed. Problem reported by Claudio Fontana in . 2006-01-10 Jim Meyering Avoid the double-free (first in fts_read, second in fts_close) that would occur when an `active' directory is made inaccessible (e.g., via chmod a-x) during a traversal. * lib/fts.c (fts_read): After a failed fchdir, update sp->fts_cur before returning. Reproduce this failure by mkdir -p a/b; cd a; chmod a-x . b Reported by Stavros Passas. Sync from coreutils. * lib/sha1.c: Tweak grammar in a comment. 2006-01-10 Jim Meyering * m4/fpending.m4: Also include , for Dragonfly. Patch by Joerg Sonnenberger. 2006-01-10 Bruno Haible * modules/readutmp: Depend on module free. * modules/strtok_r: Depend on module restrict. 2006-01-10 Bruno Haible * modules/gettext (configure.ac): Add an invocation of AM_GNU_GETTEXT_VERSION. Needed since autoreconf is used by gnulib-tool. 2006-01-10 Bruno Haible * m4/localcharset.m4 (gl_LOCALCHARSET): Also test for getc_unlocked. Reported by Werner Lemberg . 2006-01-10 Bruno Haible * lib/localcharset.c: Update from GNU gettext. 2006-01-10 Bruno Haible * lib/argp.h (__const): Remove macro. Use const instead. * lib/argp-fmtstream.h (__const): Likewise. * lib/glob_.h (__const): Remove macro. * lib/glob-libc.h: Use const instead of __const. 2006-01-10 Bruno Haible * gnulib-tool (func_emit_tests_Makefile_am): Emit an empty SUBDIR variable. Needed to avoid an automake error regarding the 'gettext' module. 2006-01-09 Simon Josefsson * modules/inet_ntop (Depends-on): Add restrict. 2006-01-09 Simon Josefsson * modules/gc-rijndael-tests (License): Put under LGPL. * modules/gc-des-tests (License): Likewise. * modules/gc-arcfour-tests (License): Likewise. * modules/gc-arctwo-tests (License): Likewise. * modules/gc-pbkdf2-sha1-tests (License): Likewise. * modules/gc-hmac-sha1-tests (Files): Likewise. * modules/gc-hmac-md5-tests (License): Likewise. * modules/gc-sha1-tests (License): Likewise. * modules/gc-md5-tests (License): Likewise. * modules/gc-md4-tests (License): Likewise. * modules/gc-md2-tests (License): Likewise. * modules/gc-tests (License): Likewise. * modules/des-tests (License): Likewise. * modules/md4-tests (License): Likewise. * modules/md2-tests (License): Likewise. 2006-01-09 Paul Eggert Sync from coreutils: * MODULES.html.sh (build_lib): New section, with new lib-ignore module. * modules/lib-ignore: New file. * modules/mkdir-p (Files): Add chdir-safer.c, chdir-safer.h, lchmod.h, chdir-safer.m4, lchmod.m4. * modules/openat: Add mkdirat.c, openat-priv.h. 2006-01-09 Paul Eggert Sync from coreutils. * m4/lib-ignore.m4: New file. * m4/lchmod.m4: New file. 2006-01-09 Paul Eggert Sync from coreutils. * lib/chdir-long.c (cdb_free): Don't bother trying to open directory for write access: POSIX says that must fail. * lib/fts.c (diropen): Likewise. * lib/save-cwd.c (save_cwd): Likewise. * lib/chdir-long.c (cdb_free): Open with O_NOCTTY | O_NONBLOCK as well, for minor improvements on hosts that lack O_DIRECTORY. * lib/chown.c (rpl_chown) [CHOWN_MODIFIES_SYMLINK]: Don't try O_WRONLY unless O_RDONLY failed wth EACCES. Fall back on chown if open failed with EACCES. * lib/gettime.c (gettime) [!defined OK_TO_USE_1S_CLOCK]: Report an error at compile-time if only a 1-second nominal clock resolution is found. * lib/lchmod.h: New file. * lib/mkdir-p.c: Include lchmod.h, lchown.h. (make_dir_parents): Use lchown rather than chown, and lchmod rather than chmod. * lib/mountlist.c (ME_DUMMY): "none" and "proc" file systems are dummies too. Problem with "none" reported by Bob Proulx. Problem with "proc" reported by n0dalus. * lib/mountlist.c: Include . (dev_from_mount_options) [defined MOUNTED_GETMNTENT1 || defined MOUNTED_GETMNTENT2]: New function. It no longer assumes "dev=" has the System V meaning on Linux (since it doesn't). It also parses "dev=" more carefully. (read_file_system_list) [defined MOUNTED_GETMNTENT1 || defined MOUNTED_GETMNTENT2]: Use it. MOUNTED_GETMNTENT2 is new here; the code didn't used to look for dev= in that case. * lib/posixtm.h (PDS_PRE_2000): New macro. * lib/posixtm.c (year): Arg is now syntax_bits rather than allow_century. All usages changed. Reject dates outside the range 1969-1999 if PDS_PRE_2000 is used. 2006-01-09 Paul Eggert Sync from coreutils. * doc/getdate.texi (General date syntax): Invalid dates are rejected. (Time of day items): Mention the possibility of leap seconds. Problem reported by Dr. David Alan Gilbert. 2006-01-09 Jim Meyering Sync from coreutils. * lib/version-etc.c (COPYRIGHT_YEAR): Update to 2006. * lib/chdir-safer.h, lib/chdir-safer.c: New files. * lib/modechange.c (mode_compile): Reject an invalid mode string that starts with an octal digit. From Andreas Gruenbacher. * lib/openat.c: Include "fcntl--.h" and "unistd--.h", to map open and dup to open_safer and dup_safer, respectively. (openat_permissive): Fix typo in comment. * lib/openat.c: Don't include , , , "gettext.h"; either no longer needed or are guaranteed by openat.h. (_): Remove; no longer needed. (openat): Renamed from rpl_openat; no need for rpl_openat since openat.h renames openat for us. Replace most of the body with a call to openat_permissive, to avoid duplicate code. Port to (probably hypothetical) environments were mode_t is wider than int. (openat_permissive): Require mode arg, so that we can check types better. Put it just after flags. Change cwd failure indicator from pointer-to-bool to pointer-to-errno-value. All callers changed. Invoke openat_save_fail and/or openat_restore_fail if cwd_errno is null, so that openat can call us. (openat_permissive, fdopendir, fstatat, unlinkat): Simplify errno handling to avoid some duplicate code, as it's OK to set errno on success. * lib/openat.h: Revamp code so that function macros depend on __OPENAT_PREFIX only, not also on AT_FDCWD. (openat_ro): Remove. Caller changed to use openat_permissive. (openat_permissive): Now a macro, if not a function. (openat_restore_fail, openat_save_fail): Now always functions, since mkdirat needs them even if __OPENAT_PREFIX is defined. * lib/openat-priv.h: New file, defining macros used by mkdirat.c and openat.c. * lib/mkdirat.c: Include openat-priv.h. Remove definitions of macros defined therein. * lib/openat.c: Likewise. * lib/mkdirat.c (mkdirat): New file and function. * lib/openat.h (mkdirat): Declare. * lib/openat.c (fdopendir): Don't change errno when returning non-NULL. * lib/openat.h (openat_permissive): Declare. (openat_ro): Define. * lib/openat.c (EXPECTED_ERRNO): New macro. (openat_permissive): New function -- used in remove.c rewrite. (all functions): Set errno just before returning, only if there was an actual failure. Use EXPECTED_ERRNO rather than comparing against only ENOTDIR. Emulate openat-family functions using Linux's procfs, if possible. Idea and some code based on Ulrich Drepper's glibc changes. * lib/openat.c: (BUILD_PROC_NAME): New macro. Include , , "alloca.h" and "intprops.h". (rpl_openat): Emulate by trying to open /proc/self/fd/%d/%s, before falling back on save_cwd and restore_cwd. (fdopendir, fstatat, unlinkat): Likewise. * lib/openat.c (fstatat, unlinkat): Perform the syscall directly, skipping the save_cwd...restore_cwd overhead, if FILE is absolute. * lib/openat.c (rpl_openat): Use the promoted type (int), not mode_t, as second argument to va_arg. Otherwise, some versions of gcc warn that `if this code is reached, the program will abort'. 2006-01-09 Jim Meyering Sync from coreutils. * m4/openat.m4 (gl_FUNC_OPENAT): Require and compile mkdirat.c. Require openat-priv.h. 2006-01-09 Bruno Haible * modules/strnlen (Include): Use strnlen.h. 2006-01-09 Bruno Haible * m4/stdint.m4 (gl_STDINT_H): Also test for . 2006-01-09 Bruno Haible * lib/sysexit_.h (EX_OK): New macro. Suggested by Martin Lambers . 2006-01-09 Bruno Haible * lib/stdint_.h: On Linux libc4 and libc5, include and don't define _STDINT_H_NEED_SIGNED_INT_TYPES. 2006-01-09 Bruno Haible * lib/stdint_.h (SIZE_MAX): Write the value without involving negative numbers. 2006-01-09 Bruno Haible * lib/javacomp.sh.in: Move to ../build-aux/javacomp.sh.in. * lib/javaexec.sh.in: Move to ../build-aux/javaexec.sh.in. * lib/csharpcomp.sh.in: Move to ../build-aux/csharpcomp.sh.in. * lib/csharpexec.sh.in: Move to ../build-aux/csharpexec.sh.in. 2006-01-09 Bruno Haible * build-aux/javacomp.sh.in: New file, moved from lib/. * modules/javacomp-script (Files): Update. (configure.ac): Add AC_CONFIG_FILES invocation. (EXTRA_DIST): Remove variable. * build-aux/javaexec.sh.in: New file, moved from lib/. * modules/javaexec (Files): Update. (configure.ac): Add AC_CONFIG_FILES invocation. (EXTRA_DIST): Remove javaexec.sh.in. * build-aux/csharpcomp.sh.in: New file, moved from lib/. * modules/csharpcomp-script (Files): Update. (configure.ac): Add AC_CONFIG_FILES invocation. (EXTRA_DIST): Remove variable. * build-aux/csharpexec.sh.in: New file, moved from lib/. * modules/csharpexec (Files): Update. (configure.ac): Add AC_CONFIG_FILES invocation. (EXTRA_DIST): Remove csharpexec.sh.in. 2006-01-09 Andreas Gruenbacher Sync from coreutils. Add POSIX ACL support * lib/acl.h (copy_acl, set_acl): Add declarations. * lib/acl.c (acl_entries): Add fallback implementation for POSIX ACL systems other than Linux. (chmod_or_fchmod): New function: use fchmod when possible, and chmod otherwise. (file_has_acl): Add a POSIX ACL implementation, with a Linux-specific subcase. (copy_acl): Add: copy an acl and S_ISUID, S_ISGID, and S_ISVTX from one file to another. Fall back to fchmod/chmod when acls are unsupported. (set_acl): Add: set a file's acl and S_ISUID, S_ISGID, and S_ISVTX to a defined value. Fall back to fchmod/chmod when acls are unsupported. 2006-01-09 Andreas Gruenbacher Sync from coreutils. * m4/acl.m4 (AC_FUNC_ACL): Add POSIX ACL and Linux-specific acl tests. 2006-01-07 Bruno Haible * gnulib-tool (func_import): Add an AC_PROG_RANLIB dependency to gl_EARLY. 2006-01-04 Paul Eggert * lib/strftime.c (tzname): Don't declare if it is already #defined. Problem reported for Mingw by Mark Junker. 2006-01-04 Paul Eggert * README: Gnulib normally doesn't generate a tarball. 2006-01-03 Paul Eggert * lib/xtime.h (xtime_make, xtime_nonnegative_nsec, xtime_nsec): Use long int, not int, for nanosecond counts, so that people who are used to POSIX struct timespec won't be surprised. Reported by Jim Meyering. 2005-12-28 Bruno Haible * build-aux/config.rpath: Update from GNU gettext. 2005-12-16 Jim Meyering * modules/fprintftime: New module. * MODULES.html.sh (Date and time ): Add fprintftime. 2005-12-16 Jim Meyering * m4/fprintftime.m4: New file. 2005-12-16 Jim Meyering * lib/fprintftime.c, lib/fprintftime.h: New files. 2005-12-15 Simon Josefsson * modules/socklen (configure.ac): Fix M4 macro name, to align with new m4/socklen.m4. 2005-12-10 Sergey Poznyakoff * m4/argp.m4: Define HAVE_DECL_PROGRAM_INVOCATION_NAME and HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 2005-12-10 Sergey Poznyakoff * lib/argp-fmtstream.c (__argp_fmtstream_update): Fix coredump * lib/argp-help.c (fill_in_uparams): Check if the constructed struct uparams is valid. Fall back to the default values if it is not. 2005-12-09 Sergey Poznyakoff * modules/argp (Files): Add argp-pin.c (Depends-on): dirname (lib_SOURCES): Add argp-pin.c 2005-12-09 Sergey Poznyakoff * m4/argp.m4: Check if program_invocation_name and program_invocation_short_name are declared and define appropriate macros if they are not. 2005-12-09 Sergey Poznyakoff * lib/argp-help.c (__argp_base_name): New function (__argp_short_program_name): Rewrite using __argp_base_name * lib/argp-namefrob.h: Define program_invocation_name and program_invocation_short_name if requested (__argp_base_name): Add prototype * lib/argp-parse.c (argp_def): Use gettext wrappers (argp_default_parser): Use __argp_base_name * lib/argp-pin.c: New file. Defines program_invocation_name and program_invocation_short_name on systems that lack them. 2005-12-07 Paul Eggert * m4/stat-time.m4 (gl_STAT_TIME): Add check for TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC, to fix IRIX 5.3 porting problem reported by Georg Schwarz in . 2005-12-07 Paul Eggert * lib/stat-time.h (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC, to fix IRIX 5.3 porting problem reported by Georg Schwarz in . 2005-12-05 Bruno Haible * lib/csharpcomp.sh.in (options_csc): For -l option, add a .dll suffix. * lib/csharpcomp.c (compile_csharp_using_sscli): Likewise. Reported by Mark Junker . 2005-12-02 Paul Eggert * m4/socklen.m4 (gl_TYPE_SOCKLEN_T): Renamed from gl_SOCKLEN_T. Use implementation from Albert Chin, with some comments/corrections by Stepan Kasal and myself. 2005-12-02 Bruno Haible * gnulib-tool (func_import): Accept GPLed build tool modules when --lgpl is given. * modules/csharpcomp-script: New file. * modules/csharpcomp: Depend on it. * modules/javacomp-script: New file. * modules/javacomp: Depend on it. Suggested by Simon Josefsson. 2005-12-01 Paul Eggert * m4/regex.m4 (gl_REGEX): Check whether off_t can be used in a switch statement, to work around an HP-UX 10.20 compiler bug reported by Peter O'Gorman. 2005-11-29 Paul Eggert * modules/savedir (Depends-on): Add openat. 2005-11-29 Paul Eggert * lib/stdint_.h (intmax_t) [defined intmax_t]: Do not declare. (uintmax_t) [defined uintmax_t]: Do not declare. (SIZE_MAX) [defined SIZE_MAX]: Do not define. This works around a problem if intmax_t.m4 and/or uintmax_t.m4 and/or size_max.m4 are also used. Problem reported by Mark D. Baushke. (SIZE_MAX): Define to ((size_t) -1), not (~(size_t)0), for the sake of portability to weird hosts that C allows (though we don't know of any practical examples). * lib/savedir.h (fdsavedir): New decl. * lib/savedir.c (fdsavedir, savedirstream): New functions; the latter contains most of the former guts of savedir. (savedir): Use savedirstream. Include "openat.h". 2005-11-25 Paul Eggert * modules/obstack (Files): Add m4/ulonglong.m4. Problem reported by Davide Angelocola. 2005-11-15 Paul Eggert * lib/xstrtod.c: Don't bother with #pragma STDC FENV_ACCESS ON, as coreutils no longer futzes with rounding modes. 2005-11-14 Jim Meyering * lib/mkstemp-safer.c: Include , required for possible replacement of mkstemp. 2005-11-10 Simon Josefsson * lib/readline.c: Remove EOL. 2005-11-10 Paul Eggert * modules/gethrxtime (Depends-on): Add gettime. 2005-11-10 Paul Eggert * m4/gethrxtime.m4 (gl_PREREQ_GETHRXTIME): Don't require AC_HEADER_TIME or gettimeofday; no longer needed. 2005-11-10 Paul Eggert * lib/gethrxtime.c: Include "timespec.h" rather than the sys/time / time business. (gethrxtime) [! (HAVE_NANOUPTIME || (defined CLOCK_MONOTONIC && HAVE_CLOCK_GETTIME) || HAVE_MICROUPTIME)]: Fall back on gettime rather than rolling our own approximation. 2005-11-08 Eric Blake * lib/inet_ntop.h: Use #if !, not #ifndef, for AC_CHECK_DECLS. 2005-11-08 Eric Blake * lib/getaddrinfo.h: Use #if !, not #ifndef, for AC_CHECK_DECLS. 2005-11-04 Bruno Haible * gnulib-tool: Implement --update mode. 2005-10-30 Paul Eggert Fix porting problem reported by Theodoros V. Kalamatianos. * lib/utimens.c (futimens) [HAVE_WORKING_UTIMES && HAVE_FUTIMES]: Don't assume that futimes failing means we must fail. 2005-10-30 Paul Eggert * m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Revamp wording and local variables to suggest the intended function of the PATH_MAX check. 2005-10-30 Kean Johnston Trivial changes to support SCO systems. * m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Check for MAXPATHLEN as well as PATH_MAX. * m4/fpending.m4 (gl_FUNC_FPENDING): Correct check for SCO systems, where __ptr is null when no I/O is pending. 2005-10-29 Paul Eggert * lib/getcwd.c (__getcwd): Don't assume that system calls after readdir leave errno alone. Problem reported by Dmitry V. Levin. 2005-10-28 Simon Josefsson * tests/test-gc-md4.c, tests/test-gc-md5.c, tests/test-gc-sha1.c: Test more. * tests/test-gc-md2.c, tests/test-md2.c: New files. * modules/md2, modules/md2-tests: New files. 2005-10-28 Simon Josefsson * m4/inet_ntop.m4: More tests. * m4/gc-md2.m4, md2.m4: New file. 2005-10-28 Simon Josefsson * lib/inet_ntop.h, inet_ntop.c: Make it work under mingw32: Add "restrict" keywords, as per POSIX. Protect the function declaration around HAVE_DECL_INET_NTOP rather than HAVE_INET_NTOP. Don't use K&R prototypes. Check the sprintf return values. Re-define EAFNOSUPPORT if not present. Indent. * lib/md5.h, md5.c: Simplify buffer handling visavi alignment, suggested by Bruno Haible . * lib/gc-gnulib.c, gc-libgcrypt.c: Check calloc return value. * lib/gc.h: Add MD2 and RMD160 length defines. Add prototypes. * lib/gc-libgcrypt.c: Add MD2 (which is not available through libgcrypt). * lib/gc-gnulib.c: Add MD2. Implement gc_hash_* API. * lib/md2.h, lib/md2.c: New files. 2005-10-28 Paul Eggert * lib/savedir.c (savedir): Don't assume that xrealloc etc. leave errno alone. Problem reported by Frederic Jolliton. 2005-10-27 Paul Eggert * modules/verify (License): Change from GPL to LGPL. This is a tiny module and there are apparently near-equivalents that are under the BSD license. 2005-10-24 Simon Josefsson * modules/sha1: Relicense to LGPL. 2005-10-24 Simon Josefsson * lib/md4.h: Shrink buffer size, now that we changed the type. 2005-10-23 Simon Josefsson * gnulib-tool (func_import): Fix --tests-base. 2005-10-22 Simon Josefsson * modules/arcfour (Depends-on): Need stdint. 2005-10-22 Simon Josefsson * m4/gc.m4: Don't be fooled by --disable-*random-device parameters, suggested by Bruno Haible . Fix error messages. 2005-10-22 Simon Josefsson * lib/md4.h, md4.c: Simplify buffer handling visavi alignment, suggested by Bruno Haible . 2005-10-22 Simon Josefsson * lib/crc.h: Include stddef.h, for size_t. 2005-10-22 Simon Josefsson * lib/arcfour.h, arcfour.c: Use fixed size indices in the arcfour_context struct (simplify test vector testing in GNU Shishi). 2005-10-21 Simon Josefsson * modules/des, modules/des-tests: New files. * modules/gc-des, modules/gc-des-tests: New files. * tests/test-des.c, tests/test-gc-des.c: New file. 2005-10-21 Simon Josefsson * modules/arctwo, modules/arctwo-tests: New files. * tests/test-arctwo.c: New file. * modules/gc-arctwo, modules/gc-arctwo-tests: New files. * tests/test-gc-arctwo.c: New file. 2005-10-21 Simon Josefsson * m4/gc.m4: Don't use libgcrypt if gcrypt.h isn't found, suggested by Bruno Haible . * m4/gc-des.m4: New file. 2005-10-21 Simon Josefsson * m4/arctwo.m4: New file. * m4/gc-arctwo.m4: New file. 2005-10-21 Simon Josefsson * lib/rijndael-api-fst.c: Fix bugs in CBC mode for more than one block. 2005-10-21 Simon Josefsson * lib/hmac-md5.c (hmac_md5): Add comments, suggested by Bruno Haible . * lib/hmac-sha1.c (hmac_sha1): Likewise. * lib/crc.c (crc32_update): Actually use crc parameter, suggested by Bruno Haible . * lib/crc.h: Include stdint.h directly, suggested by Bruno Haible . 2005-10-21 Simon Josefsson * lib/gc-libgcrypt.c (gc_cipher_open): Handle ECB. 2005-10-21 Simon Josefsson * lib/gc-gnulib.c: Support ARCTWO in CBC mode. 2005-10-21 Simon Josefsson * lib/des.h, lib/des.c: New files. * lib/gc-gnulib.c: Support DES.c 2005-10-21 Simon Josefsson * lib/arctwo.h, lib/arctwo.c: New files. * lib/gc-gnulib.c: Support ARCTWO. 2005-10-21 Simon Josefsson * lib/arctwo.h (arctwo_setkey): Protect variable in CPP macro, suggested by Ralf Wildenhues . 2005-10-21 Simon Josefsson * gnulib-tool (func_import, func_create_testdir): Define automake conditional GL_COND_LIBTOOL if libtool is used (to be used by modules Makefile.am snippet), suggested by Bruno Haible . * modules/gc (Makefile.am): Use it. 2005-10-21 Bruno Haible * gnulib-tool (func_import, func_create_testdir): Add quoting to last patch. 2005-10-19 Simon Josefsson * tests/test-gc-rijndael.c: New file. * modules/gc-rijndael, modules/gc-rijndael-test: New files. 2005-10-19 Simon Josefsson * tests/test-gc-md4.c, tests/test-gc-md5.c: Test gc_hash_buffer interface too. 2005-10-19 Simon Josefsson * tests/test-gc-arcfour.c: New file. * modules/gc-arcfour, modules/gc-arcfour-tests: New files. 2005-10-19 Simon Josefsson * modules/gc-md4, modules/gc-md4-tests: New file. * tests/test-gc-md4.c: New file. 2005-10-19 Simon Josefsson * m4/gc-md4.m4: New file. 2005-10-19 Simon Josefsson * m4/gc-hmac-md5.m4, gc-hmac-sha1.m4, gc-md4.m4, gc-md5.m4, gc-sha1.m4: Fix typo, suggested by Stepan Kasal . 2005-10-19 Simon Josefsson * m4/gc-arcfour.m4: New file. * m4/gc-rijndael.m4: New file. 2005-10-19 Simon Josefsson * lib/gc.h, gc-gnulib.c, gc-libgcrypt.c: Support MD4. 2005-10-19 Simon Josefsson * lib/gc-gnulib.c: Support ARCFOUR. 2005-10-19 Simon Josefsson * lib/gc-gnulib.c: Implement gc_cipher_* API, currently only with AES support. * lib/gc.h: Add ECB enum type. * lib/hmac-md5.c, hmac-sha1.c: Include memxor.h. 2005-10-18 Simon Josefsson * tests/test-md5.c: New file. * modules/md5-tests: New file. 2005-10-18 Simon Josefsson * tests/test-md4.c: New file. * modules/md4, modules/md4-tests: New files. 2005-10-18 Simon Josefsson * m4/md4.m4: New file. 2005-10-18 Simon Josefsson * lib/md4.h, lib/md4.c: New files, based on md5.?. 2005-10-17 Stepan Kasal * gnulib-tool (func_create_testdir): Omit the second check whether BUILT_SOURCES in nonempty. 2005-10-17 Simon Josefsson * tests/test-rijndael.c: New file. 2005-10-17 Simon Josefsson * modules/sha1: Depend on stdint instead of md5. * modules/md5: Depend on stdint, remove uint32_t. 2005-10-17 Simon Josefsson * modules/gc-sha1-tests: New file. * tests/test-gc-sha1.c: New file. 2005-10-17 Simon Josefsson * m4/md5.m4: Remove call to uint32_t.m4. 2005-10-17 Simon Josefsson * lib/sha1.c: Use uint32_t instead of md5_uint32.t * lib/sha1.h: Use stdint.h and uint32_t instead of md5_uint32 from md5.h. * lib/md5.c: Use uin32_t. Fix non-gcc UNALIGNED_P macro. * lib/md5.h: Use stdint.h and uint32_t. Doc fix. 2005-10-17 Simon Josefsson * lib/gc.h, gc-libgcrypt.c: Add more hash types/functions. 2005-10-17 Simon Josefsson * lib/gc.h, gc-libgcrypt.c: Add ciphers. 2005-10-17 Simon Josefsson * lib/gc-libgcrypt.c (gc_hmac_sha1): Fix assert. * lib/gc.h (gc_nonce, gc_pseudo_random, gc_random): Add prototypes. 2005-10-17 Bruno Haible * m4/stdbool.m4 (AC_HEADER_STDBOOL): Change the return statement so that it can also be used in a test. 2005-10-16 Bruno Haible * gnulib-tool (func_emit_tests_Makefile_am): Also define TESTS_ENVIRONMENT, so that individual tests can augment it. * gnulib-tool (func_create_testdir): Use an intermediate target for building $(BUILT_SOURCES). Needed because BUILT_SOURCES can contain macros, like $(ALLOCA_H), which cannot be passed through the command line. 2005-10-15 Simon Josefsson * modules/rijndael-tests: New file. * modules/rijndael: New file. 2005-10-15 Simon Josefsson * m4/rijndael.m4: New file. 2005-10-15 Simon Josefsson * lib/rijndael-api-fst.h, lib/rijndael-api-fst.c: New files. * lib/rijndael-alg-fst.h, lib/rijndael-alg-fst.c: New files. 2005-10-14 Simon Josefsson * tests/test-arcfour.c: New file. * modules/arcfour, modules/arcfour-tests: New files. 2005-10-14 Simon Josefsson * m4/arcfour.m4: New file. 2005-10-14 Simon Josefsson * lib/arcfour.h, lib/arcfour.c: New files. 2005-10-14 Roland McGrath Import from libc. [BZ #1331] * lib/obstack.h [!__STDC__] (obstack_int_grow_fast): Fix misnamed macro argument. Reported by Matej Vela . 2005-10-14 Paul Eggert * lib/obstack.c [defined _LIBC && defined USE_IN_LIBIO]: Don't include ; no longer needed. 2005-10-14 Paul Eggert * config/srclist.txt: Add glibc bug 321 for obstack.c, obstack.h. 2005-10-14 Jakub Jelinek and Ulrich Drepper Import from libc. * lib/obstack.c (print_and_abort) [defined _LIBC]: Use __fxprintf instead of inline stream orientation test and two separate function calls. Pay no attention to USE_IN_LIBIO. 2005-10-13 Simon Josefsson * modules/gc-hmac-md5-tests: New file. * tests/test-gc-hmac-sha1.c: New file. * tests/test-gc.c (main): Remove MD5 and HMAC-MD5 tests. * modules/gc-hmac-md5-tests: New file. * tests/test-gc-md5.c: New file. * modules/gc-md5-tests: New file. 2005-10-13 Simon Josefsson * lib/gc-pbkdf2-sha1.c (gc_pbkdf2_sha1): Optimize CEIL computation. Move memory allocation outside of loop. 2005-10-13 Paul Eggert * lib/mkdir-p.c (make_dir_parents): Don't report an error if an intermediate directory is in a read-only file system. Problem reported by Eric Blake. 2005-10-13 Oskar Liljeblad * modules/human (Depends-on): Depend on xstrtoumax, not xstrtol. 2005-10-12 Simon Josefsson * tests/test-hmac-sha1.c: New file. * modules/hmac-sha1-tests: New file. * modules/hmac-sha1: New file. 2005-10-12 Simon Josefsson * modules/gc-sha1: New file. 2005-10-12 Simon Josefsson * modules/gc-pbkdf2-sha1, modules/gc-pbkdf2-sha1-tests: New files. * tests/test-gc-pbkdf2-sha1.c: New file. 2005-10-12 Simon Josefsson * modules/gc-md5, modules/gc-hmac-md5: New files. * modules/gc (Files): Remove md5, memxor and hmac files. 2005-10-12 Simon Josefsson * m4/gc-pbkdf2-sha1.m4: New file. * m4/gc-hmac-sha1.m4: New file. * m4/gc-sha1: New file. * m4/hmac-sha1.m4: New file. 2005-10-12 Simon Josefsson * m4/gc-md5.m4, m4/gc-hmac-md5.m4: New files. * m4/gc.m4: Don't call gl_MD5, gl_MEMXOR or gl_HMAC_MD5. 2005-10-12 Simon Josefsson * lib/gc.h, gc-gnulib.c, gc-libgcrypt.c: Use Gc_rc for return types, suggested by Bruno Haible . 2005-10-12 Simon Josefsson * lib/gc.h, gc-gnulib.c, gc-libgcrypt.c: Support SHA-1. 2005-10-12 Simon Josefsson * lib/gc-pbkdf2-sha1.c: New file. * lib/gc.h: Add gc_pbkdf2_sha1 prototype. 2005-10-12 Simon Josefsson * lib/gc-libgcrypt.c (gc_hmac_sha1): New function. * lib/gc-gnulib.c (gc_hmac_sha1): New function. 2005-10-12 Simon Josefsson * lib/gc-gnulib.c: Condition MD5 and HMAC-MD5 use on GC_USE_MD5 and GC_USE_HMAC_MD5, respectively. * lib/gc-libgcrypt.c (gc_md5): Fix assert call. (gc_md5): Fix typo. * lib/gc.h (gc_hash_buffer): Use gc_hash in prototype. * lib/gc-libgcrypt.c (gc_hash_buffer): Ditto. * lib/gc-gnulib.c (gc_hash_buffer): Ditto. 2005-10-12 Bruno Haible * m4/stdbool.m4 (gl_STDBOOL_H): Define as an alias of AM_STDBOOL_H. Reported by Stepan Kasal . 2005-10-11 Simon Josefsson * tests/test-crc.c: New file. * modules/crc, modules/crc-tests: New files. 2005-10-11 Simon Josefsson * m4/crc.m4: New file. 2005-10-11 Simon Josefsson * lib/gc.h: Add gc_hash and gc_hash_buffer. * lib/gc-gnulib.c (gc_hash_buffer): Add. Reorder #include's. * lib/gc-libgcrypt.c (gc_hash_buffer): Add. 2005-10-11 Simon Josefsson * lib/crc.h, lib/crc.c: New files. * lib/gc.h (gc_hash_buffer): Add doc. 2005-10-11 Bruno Haible * modules/c-strcasestr: New file. * MODULES.html.sh (String handling ): Add c-strcasestr. 2005-10-11 Bruno Haible * modules/c-strcase: New file. * MODULES.html.sh (String handling ): Add c-strcase. 2005-10-11 Bruno Haible * lib/strcasecmp.c: Include limits.h. (strcasecmp): Avoid integer overflow on exotic platforms. * lib/strncasecmp.c: Include limits.h. (strncasecmp): Avoid integer overflow on exotic platforms. Reported by Paul Eggert. 2005-10-11 Bruno Haible * lib/c-strcasestr.h: New file, from GNU gettext. * lib/c-strcasestr.c: New file, from GNU gettext. 2005-10-11 Bruno Haible * lib/c-strcase.h: New file, from GNU gettext. * lib/c-strcasecmp.c: New file, from GNU gettext. * lib/c-strncasecmp.c: New file, from GNU gettext. 2005-10-10 Paul Eggert * modules/mempcpy (License): GPL -> LGPL. * modules/strchrnul (License): Likewise. * modules/sysexits (License): Likewise. 2005-10-08 Simon Josefsson * config/srclist.txt: Bug 1423 is closed, but 1439 remains. 2005-10-07 Simon Josefsson * m4/memxor.m4: Remove gl_C_RESTRICT call. 2005-10-06 Simon Josefsson * tests/test-hmac-md5.c: New file. * modules/hmac-md5-tests: New file. * modules/hmac-md5: New file. 2005-10-06 Simon Josefsson * m4/hmac-md5.m4: New file. * m4/memxor.m4: Require gl_C_RESTRICT. 2005-10-06 Simon Josefsson * lib/memxor.c (memxor): Avoid casts and warnings. 2005-10-06 Simon Josefsson * lib/hmac-md5.c: New file. * lib/hmac.h: New file. 2005-10-06 Paul Eggert * m4/stdbool.m4 (AC_HEADER_STDBOOL): Check that bool promotes to int, not unsigned int, to catch the AIX 5.3 compiler bug. 2005-10-05 Simon Josefsson * modules/memxor: New file. * modules/iconv (Files): Move config.rpath to havelib, it is used there. * modules/havelib (Files): Add config.rpath. 2005-10-05 Simon Josefsson * m4/memxor.m4: New file. 2005-10-05 Simon Josefsson * lib/memxor.c (memxor): Fix compiler error. * lib/md5.h (MD5_DIGEST_SIZE, MD5_BLOCK_SIZE): Add, see also . * lib/memxor.h, lib/memxor.c: New files. * lib/getaddrinfo.h: Don't protect sys/types.h with HAVE_SYS_TYPES_H, we assume all systems have it, suggested by Jim Meyering . Remove HAVE_SYS_SOCKET_H test too, to see if any systems lack sys/socket.h; mingw32 is known to lack it, but we don't support it yet anyway. Also remove HAVE_NETDB_H test, for same reasons. 2005-10-05 Simon Josefsson * config/srclist.txt: Add glibc bug 1423 for md5.h. 2005-10-05 Paul Eggert * m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Don't check for sys/socket.h, netdb.h, sys/types.h; the checks areno longer needed, since the source code now assumes these .h files. 2005-10-05 Derek Price * lib/getdelim.c (SIZE_MAX): New macro, if not already defined. 2005-10-05 Bruno Haible * modules/stdint (License): Change to LGPL. 2005-10-04 Simon Josefsson * lib/getaddrinfo.h: Move sys/types.h include first, reported by "Mark D. Baushke" . 2005-10-04 Bruno Haible * lib/verify.h (verify_true): Provide alternative definition for C++. 2005-10-03 Paul Eggert * lib/getdelim.c: Include getdelim.h first. Include . (SSIZE_MAX): New macro, if not already defined. (getdelim): Fix buffer overrun on 64-bit hosts with lines longer than 2 GiB. 2005-10-02 Paul Eggert Sync from coreutils. * m4/openat.m4 (gl_FUNC_OPENAT): Check for fdopendir. * m4/ullong_max.m4 (gl_ULLONG_MAX): Simplify so that it merely defines ULONG_MAX_LT_ULLONG_MAX. Thomas M.Ott reports that ULLONG_MAX doesn't work with 2.7.2.1. 2005-10-02 Paul Eggert * modules/xreadlink (Makefile.am): Remove lib_SOURCES. From Ben Pfaff. * modules/exclude (Depends-on): Depend on verify. * modules/strtoimax (Depends-on): Likewise. * modules/utimecmp (Depends-on): Likewise. 2005-10-02 Paul Eggert * lib/exclude.c: Include verify.h. (verify): Remove. All callers changed to use verify.h's version. * lib/strtoimax.c: Likewise. * lib/utimecmp.c: Likewis.e Sync from coreutils. * lib/.cppi-disable: Add getaddrinfo.h, getdelim.h, getline.h, getpass.c, mbchar.h, mbuiter.h, strcase.h, strnlen.h, strnlen1.h. * lib/.cvsignore: Add fts.h, search.h, t-fpending. * lib/settime.c (settime): Fix { typo in previous patch. Also, don't bother returning ENOSYS if settimeofday or stime fails; just let them return whatever errno they want to return. * lib/utimens.c: Include unistd.h, for dup2. (futimens): Fix typo: HAVE_FUTIMESAT was misspelled in an #if. (futimens) [! HAVE_FUTIMESAT]: If !file, set errno before returning -1. 2005-10-02 Jim Meyering Sync from coreutils. * m4/utimes.m4 (gl_FUNC_UTIMES): Detect the version of utimes from glibc-2.2.5 that fails for read-only files. 2005-10-02 Jim Meyering Sync from coreutils. * lib/fts-cycle.c [HAVE_CONFIG_H]: Include . * lib/openat-die.c: Use `#ifdef HAVE_CONFIG_H', not `#if HAVE_CONFIG_H'. * lib/openat.c (fdopendir): Do not define if HAVE_FDOPENDIR. Remove AT_FDCWD test. Do not consume the fd unless successful. * lib/openat.h (fdopendir): Do not define if HAVE_FDOPENDIR. * lib/settime.c (settime): Move the HAVE_STIME block `up' into an #elif block, so that we don't even try to compile it if settimeofday is available. This works around a compilation failure on OSF1 V5.1, due to stime requiring a `long int*' while tv_sec is `int'. 2005-10-02 Alfred M. Szmidt Sync from coreutils. * m4/chdir-long.m4 (gl_FUNC_CHDIR_LONG): Compare $gl_have_path... against `yes', rather than just testing for nonempty. 2005-10-01 Simon Josefsson * m4/getaddrinfo.m4: Include sys/types.h for sys/socket.h, on FreeBSD and Darwin. * m4/getaddrinfo.m4: Use AC_GNU_SOURCE, GNU only declare getaddrinfo as an (POSIX) extension. Check for sys/types.h, sys/socket.h, and netdb.h too, needed by getaddrinfo.h. Check if getaddrinfo, freeaddrinfo and gai_strerror are declared by the POSIX headers. Check if struct addrinfo is declared. 2005-10-01 Simon Josefsson * lib/getaddrinfo.h: Protect #include's of sys/socket.h and netdb.h. Only define struct addrinfo if !HAVE_STRUCT_ADDRINFO. Protect AI_* and EAI_* definitions. Protect function declarations. 2005-10-01 Jim Meyering Sync from coreutils. * m4/getaddrinfo.m4 (gl_GETADDRINFO): Look for getservbyname in these libraries [inet nsl socket xnet]. Nelson Beebe reported that with native cc on Solaris 7, getaddrinfo.c requires -lsocket. * m4/getaddrinfo.m4 (gl_GETADDRINFO): Check for gethostbyname in the inet and nsl libraries. Required on Solaris 5.7. 2005-10-01 Jim Meyering Sync from coreutils. * m4/getaddrinfo.m4 (gl_GETADDRINFO): Check for gethostbyname in the inet and nsl libraries. Required on Solaris 5.7. 2005-10-01 Eric Blake (tiny change) * lib/getdelim.c (getdelim): Remove unused variables. 2005-09-29 Paul Eggert * lib/xtime.h (XTIME_PRECISION): Now of type int, not long long int, so that the code works even with ancient cpp. Portability problem with GCC 2.7.2.1 reported by Thomas M.Ott. 2005-09-27 Paul Eggert * modules/regex (Depends-on): Add strcase. * modules/gethostname (Licence): Change from GPL to LGPL, since gethostname.c is a trivial implementation of a standard library function. * modules/poll (License): Change from GPL to LGPL, since it's derived from LGPL code. 2005-09-27 Jim Meyering * lib/getcwd.c: Change #ifdefHAVE_CONFIG_H to #ifdef HAVE_CONFIG_H. * lib/intprops.h (signed_type_or_expr__): Define. (INT_STRLEN_BOUND) [__GNUC__]: Use a slightly tighter bound for unsigned types. 2005-09-26 Paul Eggert * lib/verify.h (verify_expr): Remove, replacing with: (verify_true): New macro that returns true instead of void. (verify_type__): Remove. (verify): Use verify_true rather than verify_type__. 2005-09-26 Bruno Haible * modules/mbchar (Include): Mention that HAVE_WCHAR_H && HAVE_WCTYPE_H is necessary. (lib_SOURCES): Remove mbchar.c. * modules/mbfile (Include): Mention that HAVE_MBRTOWC is necessary. (Files): Add m4/mbrtowc.m4. * modules/mbiter: Likewise. * modules/mbuiter: Likewise. 2005-09-26 Bruno Haible * m4/mbchar.m4 (gl_MBCHAR): Check for wchar.h and wctype.h. Don't compile mbchar.c if they are not both present. * m4/mbfile.m4 (gl_MBFILE): Require gl_FUNC_MBRTOWC. * m4/mbiter.m4 (gl_MBITER): Likewise. * m4/strstr.m4 (gl_PREREQ_STRSTR): Use AC_REQUIRE. * m4/strcasestr.m4 (gl_PREREQ_STRCASESTR): Likewise. * m4/strcase.m4 (gl_PREREQ_STRCASECMP): Likewise. 2005-09-25 Jim Meyering * modules/inet_ntop (Depends-on): Add socklen, since inet_ntop.c also uses socklen_t. 2005-09-24 Paul Eggert * lib/utimens.c (ENOSYS): Define if not already defined. (futimens): Support having a null PATH if the file descriptor is nonnegative. * lib/regex_internal.h (__GNUC_PREREQ, always_inline, inline, pure): Remove. (__attribute): Define to empty unless GCC 3.1 or later. This works around a core dump on OpenBSD 3.4, which has GCC 2.95.3, which dumps core when given __attribute__(()). It also simplifies other tests, since we really don't want to bother with worrying about which ancient version of GCC supported what. Original problem reported by Yoann Vandoorselaere, with part of the fix suggested by Derek Price. 2005-09-24 Jim Meyering * lib/verify.h (verify_type__): Use `unsigned int' as the bitfield type so we can once again use a positive bitfield width of 1 -- now we don't have to explain why we were using a bitfield width of 2. 2005-09-23 Paul Eggert * m4/regex.m4 (gl_REGEX): If replacing, define regcomp to rpl_regcomp, and similarly for the other external symbols. Problem reported by James Gallager. * m4/fnmatch.m4 (_AC_FUNC_FNMATCH_IF): Catch Sun Studio 10u1 on Linux bug reported by Jim Meyering. * m4/utimens.m4 (gl_UTIMENS): Check for futimesat. * m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Undo previous change; not needed, since socklen is a prerequisite module. 2005-09-23 Paul Eggert * lib/getaddrinfo.c [HAVE_NETINET_IN_H]: Include . Problem reported by Eric Blake. (getaddrinfo): Initialize se so that it's not garbage. Redo internal storage allocation so that it doesn't make unportable assumptions about alignment. Fix a memory leak. * lib/utimens.c (futimens): Use futimesat if available. Prefer it to futimes since it doesn't have the futimes bug. * lib/verify.h (GL_CONCAT0, GL_CONCAT): Remove. (verify): Don't use the __LINE__ trick, as it doesn't work in general. Instead, declare a function that returns a pointer to an array, and use verify_type__ to declare the size of the array. Problem and germ of a solution reported by Bruno Haible. (verify_type__): Use 2, not 1, for bitfield size, to avoid a warning with Irix 6.5 cc. Problem reported by Bruno Haible. 2005-09-23 Jim Meyering Sync from coreutils. Correct build failure (socklen_t not defined) on at least mips-sgi-irix6.5 and alphaev67-dec-osf5.1. * m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Require gl_SOCKLEN_T. 2005-09-23 Jim Meyering * modules/getaddrinfo (Depends-on): Add socklen. 2005-09-23 Bruno Haible * tests/test-verify.c: New file. 2005-09-22 Paul Eggert Sync from coreutils. * modules/argmatch (Depends-on): Add verify. * modules/getloadavg (Depends-on): Depend on fcntl-safer, not unistd-safer. * modules/save-cwd (Depends-on): Likewise. * modules/openat (Files): Add lib/openat-die.c. (Depends-on): Remove error, exitfail. Add dirname. * modules/verify: New file. * MODULES.html.sh (Diagnostics ): New section, with "verify" module. 2005-09-22 Paul Eggert Sync from coreutils. * m4/backupfile.m4, calloc.m4, chown.m4, cloexec.m4, dup2.m4: * m4/fileblocks.m4, free.m4, ftruncate.m4, getcwd.m4, getpagesize.m4: * m4/getugroups.m4, group-member.m4, idcache.m4, link-follow.m4: * m4/mkstemp.m4, mktime.m4, mountlist.m4, nanosleep.m4, pathmax.m4: * m4/physmem.m4, posixver.m4, putenv.m4, safe-read.m4, same.m4: * m4/save-cwd.m4, stdio-safer.m4, unistd-safer.m4, unlinkdir.m4: * m4/userspec.m4, xgetcwd.m4, xreadlink.m4: Don't bother checking for string.h, stdlib.h, unistd.h. * m4/fts.m4 (gl_FUNC_FTS_CORE): Don't require AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK; that's now the lstat module's job. * m4/jm-macros.m4 (gl_MACROS): Likewise. * m4/prereq.m4 (gl_PREREQ): Add gl_FUNC_LSTAT. * m4/getdate.m4 (gl_C_COMPOUND_LITERALS): New macro. (gl_GETDATE): Use it. * m4/mkdir-p.m4 (gl_MKDIR_PARENTS): Don't bother checking for unistd.h. 2005-09-22 Paul Eggert Sync from coreutils. * lib/.cppi-disable: Add regcomp.c, regex_internal.c, regex_internal.h, stat-time.h. * lib/argmatch.h: Include verify.h (ARGMATCH_VERIFY): Use verify rather than rolling our own. (ARGMATCH_ASSERT): Remove; unused. * lib/canonicalize.c: Assume STDC_HEADERS. * lib/exclude.c: Include "strcase.h". * lib/regex_internal.h [!defined _LIBC]: Likewise. * lib/getusershell.c: Include stdio--.h rather than stdio.h and stdio-safer.h. (getusershell): Call fopen, not fopen_safer. * lib/save-cwd.c: Include fcntl--.h rather than fcntl.h. Do not include unistd-safer.h. (save_cwd): Don't call fd_safer; no longer needed now that we include fcntl--.h. * lib/getdate.y (relative_time): New type. (RELATIVE_TIME_0): New constant. (parser_control): Use relative_time instead of doing it ourselves. (%union): Add new relative_time rel member. (tYEAR_UNIT, tMONTH_UNIT, tHOUR_UNIT, tMINUTE_UNIT, tSEC_UNIT): Now typeless. (relunit, relunit_snumber): Now of type rel. (zone, rel, relunit, get_date): Adjust to above changes. * lib/getloadavg.c: Include fcntl--.h rather than fcntl.h. Do not include unistd-safer.h. (getloadavg): Don't call fd_safer; no longer needed now that we include fcntl--.h. * lib/mkdir-p.c (ENOSYS): Define to EEXIST if not defined. (make_dir_parents): Treat ENOSYS like EEXIST. Improve quality of diagnostics on restore_cwd failure. * lib/mkdir-p.h (make_dir): Remove. All uses replaced by mkdir. (make_dir_parents): Last arg is now int * (for errno), not bool *. * lib/mkdir-p.c (make_dir, make_dir_parents): Likewise. Rewrite "mkdir -p" algorithm to avoid the need for "stat" each time through the loop. Do not diagnose restore_cwd failure; that is the caller's job (and perhaps the caller does not care). * lib/mkdir-p.c (CLEANUP_CWD, CLEANUP): Remove. (make_dir_parents): Revamp to avoid need for CLEANUP_CWD, CLEANUP. If the file already exists but is not a directory, don't bother to try to make its parents. Close potential file descriptor leak if we can't chdir("/") (!). Don't always return true if chdir($PWD) fails; return true only if the requested action was done successfully (except for the chdir($PWD)). Don't log final directory unless we actually made it. Refactor to avoid duplicate code to fix up permissions. Don't attempt to fix up parent permissions if chdir($PWD) fails. * lib/strftime.c (my_strftime): Rewrite the previous change slightly, to make it a bit faster and (I hope) clearer. * lib/strftime.c (my_strftime): Add support for %:z, %::z, %:::z. Fix bug in formats like %2N. * lib/verify.h: New file. 2005-09-22 Paul Eggert Sync from coreutils. * m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO): Check for netinet/in.h. 2005-09-22 Jim Meyering Sync from coreutils. * m4/lstat.m4 (gl_FUNC_LSTAT): Use AC_LIBSOURCES to require lstat.c and lstat.h. Remove obsolete comment. * m4/xreadlink.m4: Use AC_LIBSOURCES and AC_LIBOBJ. * m4/xstrtod.m4: Likewise. * m4/openat.m4 (gl_FUNC_OPENAT): Add openat-die.c. 2005-09-22 Jim Meyering Sync from coreutils. * lib/backupfile.c: Use ARGMATCH_VERIFY, just in case. * lib/posixtm.c (posixtime) [lint]: Initialize *all* of tm0, not just the .tm_year member, since otherwise gcc-4.0 would now warn about tm_zone, tm_gmtoff, tm_isdst, tm_yday, tm_wday. * lib/quotearg.c (quotearg_n_options): Change code to be suboptimal, in order to avoid an unsuppressible warning from gcc on 64-bit systems. * lib/getdate.y (get_date): Undo part of the 2005-04-04 change, so that the command "date -d'2005-03-27 +1 day'" succeeds once again, even when run in a time zone for which daylight savings time is in effect for the starting date. * lib/mkdir-p.c (make_dir_parents): Don't let a failed chdir($PWD) stop us from restricting permissions of just-created absolute-named directories. * lib/mkdir-p.c (CLEANUP_CWD): Return *true*, not false when failing to restore initial working directory. * lib/mkdir-p.c (make_dir_parents): New parameter: different_working_dir, to tell caller if/when we change the working directory and are unable to return to the initial one. * lib/mkdir-p.h (make_dir_parents): Update prototype. * lib/mkdir-p.c (CLEANUP_CWD): Change one more `return 1' to `return false'. This fixes a bug introduced on 2004-07-30. * lib/openat.c (fdopendir): Be sure to close the supplied file descriptor before returning. This makes our replacement implementation a little closer to Solaris's, where fdopendir ties the file descriptor to the returned DIR* pointer. * lib/openat.c (unlinkat): New function. * lib/openat.h (unlinkat): Add prototype. * lib/openat-die.c (openat_save_fail): Rename from openat_save_die. (openat_restore_fail): Rename from openat_restore_die. * lib/openat.c, openat.h: Reflect s/_die/_fail/ renaming. Provide an alternative to exiting immediately upon save_cwd or restore_cwd failure. Now, an application can arrange e.g., to perform a longjump in that case. * lib/openat.c: Include dirname.h. Use IS_ABSOLUTE_FILE_NAME rather than testing for leading slash. (rpl_openat, fdopendir, fstatat): Call openat_save_die and openat_restore_die rather than calling error directly. Don't include "error.h" or "exitfail.h"; they're no longer needed. * lib/openat-die.c (openat_save_die, openat_restore_die): New file. * lib/openat.h (openat_save_die, openat_restore_die): Declare and define. * lib/strftime.c [FPRINTFTIME] (fprintftime): Provide a new interface: size_t fprintftime (FILE *fp, char const *fmt, struct tm const *tm, int utc, int nanoseconds); Background: date should not have to allocate a megabyte of virtual memory to handle a format argument like +%1048575T. When implemented with strftime, it must allocate such a buffer, use strftime to fill it in, print it, then free it. With fprintftime, it simply prints everything and exits. With no need for memory allocation, that's one fewer way to fail. * lib/strftime.c (my_strftime): Parse the colons of %:::z *after* the optional field width, not before, so we accept %9:z, not %:9z. (my_strftime): Be sure to use L_('x') for literals. * lib/backupfile.c, lib/canon-host.c, lib/canonicalize.c, lib/chown.c: * lib/cloexec.c, lib/dup-safer.c, lib/dup2.c, lib/euidaccess.c: * lib/fd-safer.c, lib/fileblocks.c, lib/fopen-safer.c, lib/fsusage.c: * lib/ftruncate.c, lib/getcwd.c, lib/getcwd.h, lib/getloadavg.c: * lib/getopt_.h, lib/getpagesize.h, lib/getugroups.c: * lib/group-member.c, lib/human.h, lib/idcache.c, lib/mkdir-p.c: * lib/mountlist.c, lib/nanosleep.c, lib/pathmax.h, lib/physmem.c: * lib/posixver.c, lib/putenv.c, lib/raise.c, lib/safe-read.c: * lib/same.c, lib/save-cwd.c, lib/setenv.c, lib/settime.c: * lib/tempname.c, lib/unlinkdir.c, lib/unsetenv.c, lib/userspec.c: * lib/xgethostname.c, lib/xreadlink.c: Assume HAVE_UNISTD_H, i.e., include unconditionally. * lib/chown.c, lib/cloexec.c, lib/dup-safer.c, lib/dup2.c: * lib/fsusage.c, lib/getcwd.c, lib/getloadavg.c, lib/mountlist.c: * lib/openat.h, lib/save-cwd.c, lib/tempname.c: Assume HAVE_FCNTL_H (i.e., include unconditionally, and don't include ). 2005-09-22 Eric Blake (tiny change) Sync from coreutils. * lib/getloadavg.c (getloadavg) [__CYGWIN__]: Port to cygwin. [__linux__]: Allocate a big enough buffer for /proc/loadavg. [!LDAV_DONE]: Avoid unused variable warning. 2005-09-21 Bruno Haible * lib/unicodeio.h (unicode_to_mb): New declaration. 2005-09-20 Derek Price * lib/getaddrinfo.c: Don't include included from getaddrinfo.h. 2005-09-20 Bruno Haible * gnulib-tool: Remove trailing slashes from the values specified for --source-base, --m4-base, --tests-base, --aux-dir. Suggested by Simon Josefsson . 2005-09-20 Bruno Haible * gnulib-tool (func_all_modules, func_modules_transitive_closure, func_modules_to_filelist, func_import, func_create_testdir): Make all sorting results locale-independent, so that gnulib-cache.m4 doesn't change when gnulib-tool is invoked in a different locale. 2005-09-19 Simon Josefsson * m4/socklen.m4: Fix typo. 2005-09-19 Ralf Wildenhues Use a consistent style for including . * lib/__fpending.c, lib/acl.c, lib/argmatch.c, lib/argp-help.c, lib/argp-parse.c, lib/argp-pvh.c, lib/backupfile.c, lib/basename.c, lib/c-stack.c, lib/calloc.c, lib/check-version.c, lib/cloexec.c, lib/closeout.c, lib/copy-file.c, lib/creat-safer.c, lib/cycle-check.c, lib/dirfd.c, lib/dirname.c, lib/dup-safer.c, lib/dup2.c, lib/euidaccess.c, lib/exclude.c, lib/exitfail.c, lib/fatal-signal.c, lib/fd-safer.c, lib/file-type.c, lib/fileblocks.c, lib/filemode.c, lib/filenamecat.c, lib/findprog.c, lib/fnmatch.c, lib/fopen-safer.c, lib/free.c, lib/fsusage.c, lib/ftruncate.c, lib/full-write.c, lib/fwriteerror.c, lib/getaddrinfo.c, lib/getcwd.c, lib/getdelim.c, lib/getline.c, lib/getlogin_r.c, lib/getndelim2.c, lib/getnline.c, lib/getopt1.c, lib/getpass.c, lib/group-member.c, lib/hard-locale.c, lib/hash-pjw.c, lib/hash.c, lib/human.c, lib/idcache.c, lib/inet_ntop.c, lib/isdir.c, lib/long-options.c, lib/malloc.c, lib/memcasecmp.c, lib/memcmp.c, lib/memcoll.c, lib/memcpy.c, lib/memmove.c, lib/mkdir-p.c, lib/modechange.c, lib/mountlist.c, lib/open-safer.c, lib/physmem.c, lib/pipe-safer.c, lib/pipe.c, lib/poll.c, lib/posixver.c, lib/progname.c, lib/progreloc.c, lib/putenv.c, lib/quote.c, lib/quotearg.c, lib/readline.c, lib/readlink.c, lib/realloc.c, lib/regex.c, lib/rename.c, lib/rmdir.c, lib/rpmatch.c, lib/safe-read.c, lib/same.c, lib/save-cwd.c, lib/savedir.c, lib/sig2str.c, lib/strcspn.c, lib/strerror.c, lib/stripslash.c, lib/strncasecmp.c, lib/strndup.c, lib/strnlen.c, lib/strnlen1.c, lib/strsep.c, lib/strstr.c, lib/strtod.c, lib/strtoimax.c, lib/strtol.c, lib/strverscmp.c, lib/tempname.c, lib/time_r.c, lib/userspec.c, lib/utimecmp.c, lib/version-etc-fsf.c, lib/version-etc.c, lib/wait-process.c, lib/xalloc-die.c, lib/xgetcwd.c, lib/xmalloc.c, lib/xmemcoll.c, lib/xnanosleep.c, lib/xreadlink.c, lib/xsetenv.c, lib/xstrndup.c, lib/xstrtoimax.c, lib/xstrtol.c, lib/xstrtoumax.c, lib/yesno.c: Standardize inclusion of config.h. * lib/__fpending.h, lib/dirfd.h, lib/getdate.h, lib/human.h, lib/inttostr.h: Removed inclusion of config.h from header files. * lib/inttostr.c: Adjusted in-tree users. * lib/timespec.h: Remove superfluous warning to include config.h. * lib/atexit.c, lib/chdir-long.c, lib/chown.c, lib/fchown-stub.c, lib/getgroups.c, lib/gettimeofday.c, lib/lchown.c, lib/lstat.c, lib/mkdir.c, lib/mkstemp.c, lib/nanosleep.c, lib/openat.c, lib/raise.c, lib/readtokens0.c, lib/readutmp.c, lib/unlinkdir.c: Guard inclusion of config.h with HAVE_CONFIG_H. 2005-09-19 Jim Meyering * modules/pathmax (License): Change to LGPL. 2005-09-19 Derek Price * config/srclist.txt: glibc's glob.h is now in lib/glob-libc.h. 2005-09-19 Bruno Haible * gnulib-tool (import): Provide default for --tests-base. 2005-09-19 Bruno Haible * doc/quote.texi: New file, extracted from gnulib.texi. * doc/ctime.texi: New file, extracted from gnulib.texi. * doc/inet_ntoa.texi: New file, extracted from gnulib.texi. * doc/gnulib-tool.texi: New file, extracted from gnulib.texi. * doc/gnulib.texi: Include them. 2005-09-18 Bruno Haible Portability fix. * gnulib-tool (func_readlink): New function. (func_ln_if_changed): Use it. 2005-09-18 Bruno Haible * gnulib-tool: Support --with-tests also with --import. (func_emit_tests_Makefile_am): Use variables $m4base and $testsbase. (func_import): Use variables $testsbase and $inctests. Emit a gl_TESTS_BASE form into gnulib-cache.m4. Create $testsbase/Makefile.am. Remind the user to add AC_CONFIG_FILES($testsdir/Makefile) and SUBDIRS += $testsdir. (func_create_testdir): Update. 2005-09-18 Bruno Haible * gnulib-tool: Revise --dry-run implementation. Use variable $doit instead of $dry_run. (func_cp_if_changed, func_mv_if_changed): Remove functions. (func_ln_if_changed): Don't handle dry-run here. (func_import): In dry-run mode, detect more precisely which actions would be performed, and don't use "...ing" verbs. 2005-09-18 Bruno Haible * gnulib-tool (func_tmpdir): New function, taken from GNU gettextize. (func_import): Use join on two temporary files instead of three nested loops, in order to determine which files are new or old. 2005-09-18 Bruno Haible * gnulib-tool (func_import): Comment out code that spits out the new files with --dry-run. 2005-09-18 Bruno Haible * doc/gnulib.texi (Invoking gnulib-tool): 50% rewritten. 2005-09-16 Paul Eggert * lib/stat-time.h: New file. * lib/timespec.h (ST_TIME_CMP_NS, ST_TIME_CMP, ATIME_CMP, CTIME_CMP): (MTIME_CMP, TIMESPEC_NS): Remove. Now done by stat-time.h, in a different way. (timespec_cmp): New function. * lib/utimecmp.c: Include stat-time.h. (SYSCALL_RESOLUTION): Depend on whether various struct stat members exist, not on the obsolescent ST_MTIM_NSEC. (utimecmp): Use the new stat-time functions rater than TIMESPEC_NS. 2005-09-16 Paul Eggert * config/srclist.txt: Remove glibc bug 1033 and uncomment mktime.c. 2005-09-16 Paul Eggert * MODULES.html.sh (File system functions): Add stat-time. * modules/stat-time: New file. * modules/timespec (Files): Remove m4/st_mtim.m4; this is now done in a different way, by the stat-time module. * modules/utimecmp (Depends-on): Add stat-time. 2005-09-15 Paul Eggert * m4/st_mtim.m4: Remove. Superseded by... * m4/stat-time.m4: New file. * m4/timespec.m4 (gl_TIMESPEC): Require AC_C_INLINE. Do not invoke AC_STRUCT_ST_MTIM_NSEC; no longer needed. 2005-09-15 Derek Price * m4/strstr.m4 (gl_FUNC_STRSTR): Don't define strstr here. 2005-09-15 Derek Price * lib/regex_internal.h: Blank `pure' for GNUC < 3. * lib/regex_internal.c: Ditto, using this... (__GNUC_PREREQ): ...new macro. * lib/regcomp.c, regexec.c: Blank `always_inline' for GNUC < 3.1 using... (__GNUC_PREREQ): ...this new macro. * lib/strstr.h: Include string.h. Define strstr as a macro here. 2005-09-15 Derek Price Paul Eggert * lib/regcomp.c, regexec.c, regex_internal.c: Back out previous changes, consolidating in... * lib/regex_internal.h: ...this file. 2005-09-13 Jim Meyering * lib/canon-host.c: Filter through gnu indent and reword comments slightly. * lib/canon-host.h (ch_strerror_r): Tweak cpp indentation and spacing. 2005-09-13 Derek Price * lib/canon-host.c (canon_host_r): Set *cherror on memory allocation failure. Reported by Jim Meyering . 2005-09-12 Ralf Wildenhues (tiny change) * lib/base64.c: Typo. (base64_encode): Put b64str in initialized data section. 2005-09-12 Paul Eggert Merge glibc and coreutils changes into gnulib, plus a few extra fixes. * lib/md5.c: Use #error rather than a string. (CYCLIC): New macro, from glibc source. Use it instead of rol. * lib/md5.h (__GNUC_PREREQ, __THROW): Define if not defined already. (__attribute__): Define to empty for non recent-GCC. (__md5_buffer, __md5_finish_ctx, __md5_init_ctx, __md5_process_block): (__md5_process_bytes, __md5_read_ctx, __md5_stream): Renamed from their non-__ counterparts, with new macros replacing them if not _LIBC. Add __THROW attribute. (rol): Remove. (struct md5_ctx): Align buffer if using GCC. * lib/sha1.h (struct sha1_ctx): Likewise. * lib/sha1.c (SWAP): Renamed from the NOTSWAP. All uses changed. The old name was backwards. (NOTSWAP): Remove; not used. (rol): New macro, moved here from md5.h. (sha1_process_block): Remove a FIXME that doesn't make sense. 2005-09-12 Derek Price Return usable errors from canon-host. * lib/canon-host.h: New file. * lib/canon-host.c (canon_host): Wrap... (canon_host_r): ...this new function, which now relies exclusively on getaddrinfo. (ch_strerror): New function. (last_cherror): New global. * lib/getaddrinfo.c: Move include of getaddrinfo.h first to test interface. (getaddrinfo): Add AI_CANONNAME functionality. Don't do arithmetic on void *. (freeaddrinfo): Free ai->ai_canonname when set. 2005-09-12 Derek Price Make canon-host require getaddrinfo. * m4/canon-host.m4 (gl_CANON_HOST): Remove most dependencies. AC_LIBSOURCE canon-host.h. Call... (gl_PREREQ_CANON_HOST): ...this new function, which requires gl_GETADDRINFO. * m4/getaddrinfo.m4 (gl_GETADDRINFO): Compile gai_strerror when needed. 2005-09-12 Derek Price * modules/canon-host: Add canon-host.h. Depend on getaddrinfo. Make LGPL. * modules/getaddrinfo: Add link to opengroup spec. Depend on strdup. 2005-09-12 Derek Price * lib/gai_strerror.c: Include config.h when available. Include getaddrinfo.h before other headers to test interface. Reported by Larry Jones . 2005-09-12 Derek Price Paul Eggert * modules/glob (Files): Add glob-libc.h. 2005-09-12 Derek Price Paul Eggert * m4/glob.m4 (gl_GLOB_SUBSTITUTE): AC_LIBSOURCES for glob.c, glob_.h, glob-libc.h. (gl_PREREQ_GLOB): Remove _SYS_CDEFS_H hack; no longer needed. 2005-09-12 Derek Price Paul Eggert * lib/glob-libc.h: Renamed from glob_.h. The new version is taken from libc's glob.h, except with '#ifdef __GLOB_GNULIB' protecting things that should be done only in gnulib contexts. * lib/glob_.h: New file, containing only the glob things needed for gnulib. (GLOB_PREFIX): Remove. All uses changed to look for __GLOB_GNULIB. (__GLOB_CONCAT, __GLOB_XCONCAT, __GLOB_ID): Remove; no longer needed. (glob, globfree, glob_pattern_p): Now defined simply in terms of rpl_glob, rpl_globfree, rpl_glob_pattern_p. (__GLOB_GNULIB): New macro, to keep the glob.h changes clearer and to respect the namespace rules better. 2005-09-08 Simon Josefsson * modules/socklen: New file. 2005-09-08 Simon Josefsson * m4/socklen.m4: New file. 2005-09-08 Paul Eggert * modules/utimens (Files): Add m4/utimbuf.m4, since m4/utimens.m4 requires gl_CHECK_TYPE_STRUCT_UTIMBUF. Reported by Sergey Poznyakoff. 2005-09-08 Paul Eggert * lib/glob.c (glob, globfree, __glob_pattern_p): Use old-style function definitions, since that's the preferred style in glibc. Fix a minor spacing issue, and update copyright notice to match glibc's. 2005-09-08 Paul Eggert * config/srclist.txt: Remove glibc bug 1061; it's been fixed. 2005-09-06 Simon Josefsson * lib/getpass.c (getpass): Fix typo, test for HAVE_TCSETATTR and not TCSETATTR. Reported by Derek Price . 2005-09-06 Paul Eggert * lib/regex_internal.h (bitset_not): Add parens to avoid gcc -Wall warning. 2005-09-06 Paul Eggert * config/srclist.txt: Add glibc bug 1302. 2005-09-05 Paul Eggert Change bitset word type from unsigned int to unsigned long int, as this has better performance on typical 64-bit hosts. Port bitset code to hosts with unusual word sizes. * lib/regcomp.c (build_equiv_class, build_charclass, build_range_exp): (build_collating_symbol): Prefer bitset to re_bitset_ptr_t in prototypes, when the actual argument is a bitset. This is merely a style issue, but it makes it clearer that an entire array is expected. (re_compile_fastmap_iter, init_dfa, init_word_char, optimize_subexps): * lib/regcomp.c (lower_subexp, parse_bracket_exp, built_charclass_op): Port to the case where bitset_word is not the same as unsigned int. * lib/regex_internal.h (bitset_set, bitset_clear, bitset_contain): (bitset_not, bitset_merge, bitset_set_all, bitset_mask): Likewise. * lib/regexec.c (check_dst_limits_calc_pos_1, check_subexp_matching_top): (build_trtable, group_nodes_into_DFAstates): Likewise. * lib/regcomp.c (re_compile_fastmap_iter, utf8_sb_map, optimize_utf8): Don't assume that SBC_MAX is a multiple of BITSET_WORD_BITS. * lib/regex_internal.h (bitset_set_all, bitset_not): Likewise. * lib/regexec.c (group_nodes_into_DFAstates): Likewise. * lib/regcomp.c (utf8_sb_map): Don't assume UINT_MAX == 0xffffffff. * lib/regcomp.c (optimize_subexps, lower_subexp): Work even if bitset_word has holes in its bitwise representation. * lib/regex_internal.h (BITSET_WORD_BITS): Likewise. * lib/regexec.c (check_dst_limits_calc_pos_1, check_subexp_matching_top): Likewise. * lib/regex_internal.c (re_string_reconstruct): Don't assume UCHAR_MAX == 255. * lib/regex_internal.h (bitset_set_all): Likewise. * lib/regex_internal.h (BITSET_WORD_BITS): Renamed from UINT_BITS. All uses changed. (BITSET_WORDS): Renamed from BITSET_UINTS. All uses changed. (bitset_word): New type, replacing 'unsigned int' for bitset uses. All uses changed. (BITSET_WORD_MAX): New macro. (bitset_set, bitset_clear, bitset_contain, bitset_empty): (bitset_set_all, bitset_copy): Now inline functions, not macros. (bitset_empty, bitset_copy): Prefer sizeof (bitset) to multiplying it out ourselves. (bitset_not_merge): Remove; unused. (bitset_contain): Return bool, not unsigned int with one bit on. All callers changed. * lib/regexec.c (build_trtable): Don't assume bitset has no stricter alignment than re_node_set; do this by defining a new internal type struct dests_alloc and using it to allocate memory. 2005-09-05 Bruno Haible * gnulib-tool (func_import): Fix comparison in handling of symbolic links. 2005-09-04 Martin Lambers (tiny change) * modules/size_max (Makefile.am): Add size_max.h 2005-09-04 Derek Price * gnulib-tool (func_import): Fix reversed $symbolic logic. 2005-09-03 Simon Josefsson * gnulib-tool: Fix typo. 2005-09-03 Simon Josefsson * config/srclist.txt: Add glibc bug 1293. 2005-09-03 Derek Price * m4/getlogin_r (gl_GETLOGIN_R): Fix cut & paste error. From Larry Jones . 2005-09-02 Simon Josefsson * modules/socklen: New file. 2005-09-02 Simon Josefsson * modules/havelib: New module. * modules/gettext, modules/iconv, modules/lock, modules/readline: Use havelib. 2005-09-02 Paul Eggert Check for arithmetic overflow when calculating sizes, to prevent some buffer-overflow issues. These patches are conservative, in the sense that when I couldn't determine whether an overflow was possible, I inserted a run-time check. * lib/regex_internal.h (re_xmalloc, re_xrealloc, re_x2realloc): New macros. (SIZE_MAX) [!defined SIZE_MAX]: New macro. (re_alloc_oversized, re_x2alloc_oversized, re_xnmalloc): (re_xnrealloc, re_x2nrealloc): New inline functions. * lib/regcomp.c (init_dfa, analyze, build_range_exp, parse_bracket_exp): (build_equiv_class, build_charclass): Check for arithmetic overflow in size expression calculations. * lib/regex_internal.c (re_string_realloc_buffers): (build_wcs_upper_buffer, re_node_set_add_intersect): (re_node_set_init_union, re_node_set_insert, re_node_set_insert_last): (re_dfa_add_node, register_state): Likewise. * lib/regexec.c (re_search_stub, re_copy_regs, re_search_internal): (prune_impossible_nodes, push_fail_stack, set_regs, check_arrival): (build_trtable, extend_buffers, match_ctx_init, match_ctx_add_entry): (match_ctx_add_subtop, match_ctx_add_sublast): Likewise. 2005-09-02 Paul Eggert * modules/inttostr (Files): Add m4/inttypes_h.m4, m4/stdint_h.m4, m4/ulonglong.m4. Problem reported by Martin Lambers. 2005-09-02 Bruno Haible Support for lib vs. lib64 distinction on biarch platforms. * m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): New macro. (AC_LIB_PREFIX): Require it. Use $acl_libdirstem instead of 'lib'. * m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Likewise. 2005-09-02 Bruno Haible * gnulib-tool (import): In the other first-use case, provide defaults as well. 2005-09-02 Bruno Haible * config/srclist.txt: lib-link.m4 and lib-prefix.m4 currently have patches not yet found in the latest gettext release. 2005-09-01 Paul Eggert * lib/glob.c (GET_LOGIN_NAME_MAX): Renamed from LOGIN_NAME_MAX, to avoid a collision with bits/local_lim.h in glibc. All uses changed. Problem reported by Dmitry V. Levin in . * lib/regex_internal.c (build_wcs_upper_buffer): Fix portability bugs in int versus size_t comparisons. (re_string_context_at): Fix bug where the code assumed that Idx is signed. Use bool where appropriate. * lib/regcomp.c (re_set_fastmap): ICASE arg is bool, not int. All callers changed. (calc_eclosure_iter): Likewise, for ROOT arg. (parse_bracket_element): Likewise, for ACCEPT_HYPHEN arg. (build_charclass_op): Likewise, for NON_MATCH arg. * lib/regex_internal.c (re_string_allocate, re_string_construct): (re_string_construct_common): Likewise, for ICASE arg. * lib/regexec.c (re_search_2_stub, re_search_stub): Likewise, for RET_LEN arg. (check_matching): Likewise, for FL_LONGEST_MATCH arg. (set_regs): Likewise, for FL_BACKTRACK arg. * lib/regcomp.c (re_compile_fastmap_iter, optimize_utf8): (duplicate_node_closure, calc_inveclosure, calc_eclosure): (calc_eclosure_iter, parse_bracket_exp): Use bool for internal variables that are booleans. * lib/regexec.c (re_search_internal, check_matching, proceed_next_node): (set_regs, build_sifted_states, sift_states_bkref): (check_arrival_add_next_nodes, check_arrival_expand_ecl_sub): (expand_bkref_cache, build_trtable, group_nodes_into_DFAstates): (find_collation_sequence_value): Likewise. * lib/regex_internal.c (re_node_set_insert, re_node_set_insert_last): (re_node_set_compare): Return bool, not int. All callers changed. * lib/regexec.c (check_halt_node_context, check_dst_limits): (build_trtable, check_node_accept): Likewise. * lib/regex_internal.h: Include stdbool.h. Fix bugs uncovered when converting to bool. * lib/regcomp.c (calc_eclosure_iter): Check for storage allocation failure instead of charging ahead blindly. * lib/regex_internal.c (register_state): Likewise. * lib/regexec.c (re_search_2_stub): Use simpler method than boolean for freeing internal storage. (group_nodes_into_DFA_states): Use unsigned int, not int, for bitset pieces used as boolean, to avoid undefined behavior on hosts that do int overflow checking. 2005-09-01 Paul Eggert * config/srclist.txt: Add glibc bugs 1285-1287. 2005-09-01 Jim Meyering * m4/lchown.m4: Require gl_FUNC_CHOWN, for the definition of CHOWN_MODIFIES_SYMLINK, which is used by lchown.c. Require gl_STAT_MACROS, too. 2005-09-01 Bruno Haible * gnulib-tool (import): In the first-use case, provide defaults. 2005-09-01 Bruno Haible * gnulib-tool (func_import): Remove the .tmp files. 2005-09-01 Bruno Haible * gnulib-tool (func_import): Fix handling of symbolic links. 2005-08-31 Paul Eggert On 64-bit hosts (where size_t is 64 bits and int is 32 bits), the old glibc regex code mishandles strings longer than 2**31 bytes. This patch fixes this when the regex code is used in gnulib (i.e., outside glibc). This patch should not affect the use of the regex code inside glibc. No doubt this problem also needs to be handled for glibc as well, but the result will be an incompatible change to the glibc ABI, and the old ABI will have to be supported too. That can be the subject for another patch. * lib/regex.h (_REGEX_LARGE_OFFSETS): New feature-test macro, governing whether the rest of this patch is active. By default, the macro is disabled and the patch has no effect. (regoff_t) [defined _REGEX_LARGE_OFFSETS]: Define to off_t, not int. (__re_idx_t, __re_size_t, __re_long_size_t): New types. (struct re_pattern_buffer, re_search, re_search_2, re_match): (re_match_2, re_set_registers): Use the new types. * lib/regex_internal.h (Idx, re_hashval_t): New types. (REG_MISSING, REG_ERROR, REG_VALID_INDEX, REG_VALID_NONZERO_INDEX): New macros. (re_node_set, re_charset_t, re_token_t, re_string_realloc_buffers): (re_string_context_at, bin_tree_t, re_dfastate_t): (struct re_state_table_entry, state_array_t, re_sub_match_last_t): (re_sub_match_top_t, re_match_context_t, re_sift_context_t): (struct re_fail_stack_ent_t, struct re_fail_stack_t, struct re_dfa_t): (re_string_char_size_at, re_string_wchar_at): (re_string_elem_size_at): Use the new types and macros to port to 64-bit hosts. Use unsigned types for internal values, so that the code mostly works even for arrays larger than SSIZE_MAX. * lib/regcomp.c (re_compile_internal, init_dfa, duplicate_node): (search_duplicated_node, calc_eclosure_iter, fetch_number): (parse_reg_exp, parse_branch, parse_expression, parse_sub_exp): (build_equiv_class, build_charclass, re_compile_fastmap_iter): (free_dfa_content, create_initial_state, optimize_utf8, analyze): (optimize_subexps, calc_first, link_nfa_nodes, duplicate_node_closure): (calc_inveclosure, parse_dup_op, build_range_exp): (build_collating_symbol, parse_bracket_exp, build_charclass_op): (fetch_number, create_token_tree, mark_opt_subexp): Likewise. * lib/regex_internal.c (re_string_construct_common, create_ci_newstate): (create_cd_newstate, re_string_allocate, re_string_construct): (re_string_realloc_buffers, build_wcs_upper_buffer): (re_string_skip_chars, build_upper_buffer, re_string_translate_buffer): (re_string_reconstruct, re_string_peek_byte_case): (re_string_fetch_byte_case, re_string_context_at): (re_node_set_alloc, re_node_set_init_1, re_node_set_init_2): (re_node_set_init_copy, re_node_set_add_intersect): (re_node_set_init_union, re_node_set_merge, re_node_set_insert): (re_node_set_insert_last, re_node_set_compare, re_node_set_contains): (re_node_set_remove_at, re_dfa_add_node, calc_state_hash): (re_acquire_state, re_acquire_state_context, register_state): Likewise. * lib/regex.c (match_ctx_init, match_ctx_add_entry, search_cur_bkref_entry): (match_ctx_add_subtop, match_ctx_add_sublast, sift_ctx_init): (re_search_internal, re_search_2_stub, re_search_stub) (re_copy_regs, check_matching, check_halt_state_context, update_regs): (push_fail_stack, sift_states_iter_mb, build_sifted_states): (update_cur_sifted_state, check_dst_limits): (check_dst_limits_calc_pos_1, check_dst_limits_calc_pos): (check_subexp_limits, sift_states_bkref, merge_state_array): (check_subexp_matching_top, get_subexp, get_subexp_sub): (find_subexp_node, check_arrival, check_arrival_add_next_nodes): (check_arrival_expand_ecl, check_arrival_expand_ecl_sub): (expand_bkref_cache, check_node_accept_bytes): (group_nodes_into_DFAstates, check_node_accept, regexec, re_match): (re_search, re_match_2, re_search_2, prune_impossible_nodes): (acquire_init_state_context, check_halt_node_context): (proceed_next_node, pop_fail_stack, set_regs, free_fail_stack_return): (sift_states_backward, clean_state_log_if_needed): (sub_epsilon_src_nodes, add_epsilone_src_nodes, merge_state_with_log): (find_recover_state, transit_state_sb, transit_state_mb): (transit_state_bkref, build_trtable, match_ctx_clean): Likewise. * lib/regcomp.c (parse_dup_op): Add an extra test if Idx is unsigned, to work around an assumption that REG_MISSING is negative. * lib/regcomp.c (re_comp) [defined _REGEX_RE_COMP || defined _LIBC]: (seek_collating_symbol_entry) [defined _LIBC]: (lookup_collation_sequence_value) [defined _LIBC]: (build_range_exp, build_collating_symbol) [defined _LIBC]: Use prototypes rather than old-style function definitions. * lib/regexec.c (re_exec) [defined _REGEX_RE_COMP || defined _LIBC]: (transit_state_sb) [0]: (find_collation_sequence_value) [defined _LIBC]: Likewise. * lib/regexec.c (re_search_internal): Simplify update of rm_so and rm_eo. * lib/regcomp.c (re_compile_fastmap_iter, init_dfa, init_word_char): (optimize_subexps, lower_subexp): Don't assume 1<<31 has defined behavior on hosts with 32-bit int, since the signed shift might overflow. Use 1u<<31 instead. * lib/regex_internal.h (bitset_set, bitset_clear, bitset_contain): Likewise. * lib/regexec.c (check_dst_limits_calc_pos_1, check_subexp_matching_top): Likewise. * lib/regcomp.c (optimize_subexps, lower_subexp): Use CHAR_BIT rather than 8, for clarity. * lib/regexec.c (check_dst_limits_calc_pos_1): (check_subexp_matching_top): Likewise. * lib/regcomp.c (init_dfa): Make table_size unsigned, so that we don't have to worry about portability issues when shifting it left. Remove no-longer-needed test for table_size > 0. * lib/regcomp.c (parse_sub_exp): Do not shift more bits than there are in a word, as the resulting behavior is undefined. * lib/regexec.c (check_dst_limits_calc_pos_1): Likewise; in one case, a <= should have been an <, and in another case the whole test was missing. * lib/regex_internal.h (BYTE_BITS): Remove. All uses changed to the standard name CHAR_BIT. * lib/regexec.c (match_ctx_add_entry): Don't assume that ~0 == -1; this is not true on one's complement and signed-magnitude hosts. * lib/regex_internal.h (re_sub_match_top_t): Remove unused member next_last_offset. (struct re_dfa_t): Remove unused member states_alloc. * lib/regcomp.c (init_dfa): Don't initialize unused members. 2005-08-31 Paul Eggert * m4/regex.m4 (gl_REGEX): Require AC_SYS_LARGEFILE, Define _REGEX_LARGE_OFFSETS). Test for regoff_t/off_t bug in 64-bit and large-file glibc and in 32-bit large-file Solaris. 2005-08-31 Paul Eggert * lib/regex_internal.c (re_string_reconstruct): Don't assume buffer lengths fit in regoff_t; this isn't true if regoff_t is the same width as size_t. * lib/regex.c (re_search_internal): 5th arg is LAST_START (= START + RANGE) instead of RANGE. This avoids overflow problems when regoff_t is the same width as size_t. All callers changed. (re_search_2_stub): Check for overflow when adding the sizes of the two strings. (re_search_stub): Check for overflow when adding START to RANGE; if it occurs, substitute the extreme value. 2005-08-31 Paul Eggert * config/srclist.txt: Add glibc bugs 1273, 1278-1282, 1284. 2005-08-31 Jim Meyering * lib/regcomp.c (search_duplicated_node): Make first pointer arg a pointer-to-const. * lib/regex_internal.c (create_ci_newstate, create_cd_newstate): (register_state): Likewise. * lib/regexec.c (search_cur_bkref_entry, check_dst_limits): (check_dst_limits_calc_pos_1, check_dst_limits_calc_pos): (group_nodes_into_DFAstates): Likewise. 2005-08-31 Jim Meyering * check-module: Add a FIXME comment. 2005-08-31 Eric Blake * modules/unistd-safer (Files): Add unistd--.h. * modules/stdio-safer (Files): Add stdio--.h. 2005-08-31 Derek Price * lib/getdelim.c (getdelim): Return EOF on EOF. Reported by Larry Jones . 2005-08-31 Bruno Haible Avoid unnecessary diffs in the generated lib/Makefile.am. * gnulib-tool (func_emit_lib_Makefile_am): Don't write the cmd into the generated files. (func_import): Don't set cmd. 2005-08-31 Bruno Haible * lib/strstr.c: Include , for NULL. * lib/strcasestr.c: Likewise. Reported by Yoann Vandoorselaere . 2005-08-31 Bruno Haible * gnulib-tool: New option --macro-prefix. (func_import): Use macro_prefix. (import): Handle option --macro-prefix. 2005-08-31 Bruno Haible * gnulib-tool (import): Rename most ac_* variables to cached_*. Also use new variables cached_lgpl, cached_libtool. 2005-08-31 Bruno Haible * gnulib-tool (func_import): Require AC_GNU_SOURCE etc. instead of always instantiating them. 2005-08-31 Bruno Haible * gnulib-tool (func_import): Read the previous cached settings from gnulib-cache.m4 and gnulib-comp.m4. Remove files that were earlier added by gnulib but are now dropped. Warn when a gnulib file overwrites a non-gnulib file. 2005-08-31 Bruno Haible * gnulib-tool (func_import): Generate two files gnulib-cache.m4 and gnulib-comp.m4 instead of a single gnulib.m4, to make it easy for projects that don't keep autogenerated files in CVS. Put into actioncmd only the specified modules, not the transitive closure. 2005-08-31 Bruno Haible * gnulib-tool (func_import): Fix defaulting of $libname and $libtool. Create directories that shall be filled. (import): Don't look for gl_* macros in configure.ac. Recurse across all directories containing a gnulib-cache.m4 files, if meaningful. 2005-08-31 Bruno Haible * gnulib-tool (func_import): Emit also a stub for gl_LIBTOOL. (import): Set seen_libtool when we see gl_LIBTOOL. 2005-08-31 Bruno Haible * gnulib-tool (func_import): Also copy m4/gnulib-tool.m4. Omit declaration macro definitions from generated gnulib.m4. 2005-08-30 Oskar Liljeblad * lib/iconvme.h: Add prototype for iconv_alloc. 2005-08-29 Simon Josefsson * lib/iconvme.c: Fix errno. 2005-08-29 Bruno Haible * gnulib-tool: Enclose all occurrences of $destdir in "...", so that it works when the directory contains spaces. 2005-08-29 Bruno Haible * gnulib-tool (import): Avoid unnecessary spaces in $avoidlist. 2005-08-29 Bruno Haible * gnulib-tool (func_import): Emit more comments into gnulib.m4. Emit more advice. 2005-08-29 Bruno Haible and Stepan Kasal * check-module: If more parameters are given, check each of them separately; add more exceptions, as noted by Jim Meyering. (check_module): New procedure. (%exempt_header): Now contains all exceptions. 2005-08-29 Ben Pfaff * modules/byteswap (Makefile.am): Fix rule to not assume GNU make. 2005-08-29 Oskar Liljeblad * lib/iconvme.c: Split iconv_string into iconv_alloc. 2005-08-28 Bruno Haible * m4/gnulib-tool.m4: New file. 2005-08-27 Jim Meyering * modules/unistd-safer (Files): Add pipe-safer.c. * modules/fcntl-safer (Files): Add creat-safer.c. 2005-08-27 Jim Meyering * m4/stdlib-safer.m4: New file. From coreutils. * m4/stdio-safer.m4 (gl_STDIO_SAFER): Add stdio--.h. * m4/fcntl-safer.m4 (gl_FCNTL_SAFER): Add creat-safer.c to the AC_LIBSOURCES list and arrange to compile it via AC_LIBOBJ. * m4/unistd-safer.m4 (gl_UNISTD_SAFER): Likewise, add pipe-safer.c. Add pipe-safer.c and unistd--.h to the AC_LIBSOURCES list. 2005-08-27 Jim Meyering * lib/fopen-safer.c: Merge minor changes from coreutils. * lib/dup-safer.c: Likewise. * lib/fd-safer.c: Likewise. Merge from coreutils. * lib/stdio--.h: New file. * lib/stdlib--.h: New file. * lib/mkstemp-safer.c: New file. GNU tar needs these. * lib/pipe-safer.c: New file. * lib/creat-safer.c: New file. * lib/fcntl--.h (creat): Define to creat_safer. * lib/fcntl-safer.h: Include and declare creat_safer. * lib/unistd--.h (pipe): Define to pipe_safer. * lib/unistd-safer.h: Declare pipe_safer. 2005-08-26 Simon Josefsson * lib/getpass.c: Use _WIN32 instead of WIN32, suggested by Bruno Haible . 2005-08-26 Paul Eggert * lib/regex_internal.h: Remove all references to RE_NO_INTERNAL_PROTOTYPES; no longer neeeded now that we assume C89 or better. (bitset_not, bitset_merge, bitset_not_merge): (bitset_mask, re_string_allocate, re_string_construct): (re_string_reconstruct, re_string_destruct, re_string_elem_size_at): (re_string_char_size_at, re_string_wchar_at, re_string_peek_byte_case): (re_string_fetch_byte_case, re_node_set_alloc, re_node_set_init_1): (re_node_set_init_2, re_node_set_init_copy, re_node_set_add_intersect): (re_node_set_init_union, re_node_set_merge, re_node_set_insert): (re_node_set_insert_last, re_node_set_compare, re_node_set_contains): (re_node_set_remove_at, re_dfa_add_node, re_acquire_state): (re_acquire_state_context): Remove unnecessary forward decls. (re_string_char_size_at, re_string_wchar_at, re_string_elem_size_at): Put __attribute at function definition, now that the function decl has been removed. * lib/regex_internal.c (re_string_peek_byte_case): (re_string_fetch_byte_case, re_node_set_compare, re_node_set_contains): Likewise. 2005-08-25 Stepan Kasal * m4/regex.m4: Add AC_PREREQ(2.50). (gl_REGEX): If --with-included-regex was given, skip the autodetection. 2005-08-25 Simon Josefsson * m4/getpass.m4: Check for termios.h, tcgetattr, tcsetattr, and __fsetlocking. 2005-08-25 Simon Josefsson * lib/getpass.c: Add WIN32 implementation. Conditionalize use of termios.h, tcgetattr, tcsetattr and __fsetlocking. Remove some GLIBC specific code. 2005-08-25 Paul Eggert Make regex safe for g++. This fixes one real bug (an "err" that should have been "*err"). g++ problem reported by Sam Steingold. * lib/regex_internal.h (re_calloc): New macro, consistent with re_malloc etc. All callers of calloc changed to use re_calloc. * lib/regex_internal.c (build_wcs_upper_buffer): Return reg_errcode_t, not int. All callers changed. * lib/regcomp.c (re_compile_fastmap_iter): Don't use alloca (mb_cur_max); just use an array of size MB_LEN_MAX. * lib/regexec.c (push_fail_stack): Use re_realloc, not realloc. (find_recover_state): Change "err" to "*err"; this fixes what appears to be a real bug. (check_arrival_expand_ecl_sub): Be consistent about reg_errcode_t versus int. 2005-08-25 Paul Eggert * modules/regex (Depends-on): Add malloc, since the code assumes that !malloc(0) means failure. 2005-08-25 Paul Eggert * lib/regexec.c (set_regs): Don't alloca with an unbounded size. alloca modernization/simplification for regex. * lib/regex.c: Remove portability cruft for alloca. This no longer needs to be at the start of the file, and can be moved into regex_internal.h and simplified. * lib/regex_internal.h: Include . (__libc_use_alloca) [!defined _LIBC]: New macro. * lib/regexec.c (build_trtable): Remove "#ifdef _LIBC", since the code now works outside glibc. 2005-08-25 Paul Eggert * config/srclist.txt: Add glibc bugs 1241, 1245. 2005-08-25 Jim Meyering * lib/open-safer.c: Include . Otherwise, we'd lose LARGEFILE support in any file using e.g. "fcntl--.h" 2005-08-25 Bruno Haible * m4/minmax.m4: Require autoconf 2.52. (gl_MINMAX_IN_HEADER): Add comments. Use m4_pushdef/m4_popdef instead of define/undefine. Use AS_TR_SH and AS_TR_CPP as more robust alternatives of translit over the alphabet. Based on a patch from Stepan Kasal . 2005-08-24 Simon Josefsson * tests/test-getpass.c: New file. 2005-08-24 Paul Eggert * m4/regex.m4 (gl_REGEX): Use POSIX-compliant spellings when testing for GNU regex features. 2005-08-24 Paul Eggert * lib/regcomp.c (regerror): 2nd arg is 'restrict', as per POSIX. * lib/regex.h (regerror): Likewise. * lib/regex.c: Do not include , as POSIX no longer requires this. (The code never needed it.) * lib/regcomp.c, regex_internal.c, regex_internal.h, regexec.c: All uses of recently-renamed identifiers changed to use the new, POSIX-compliant names. The code will build and run just fine without these changes, but it's better to eat our own dog food and use the standard-conforming names. * lib/regex.h: Fix a multitude of POSIX name space violations. These changes have an effect only for programs that define _POSIX_C_SOURCE, _POSIX_SOURCE, or _XOPEN_SOURCE; they do not change anything for programs compiled in the normal way. Also, there is no effect on the ABI. (_REGEX_SOURCE): New macro. Do not include if _XOPEN_SOURCE and VMS are both defined and _GNU_SOURCE is not; this fixes a name space violation. Rename the following macros to obey POSIX requirements. The old names are still visible as macros if _REGEX_SOURCE is defined. (REG_BACKSLASH_ESCAPE_IN_LISTS): renamed from RE_BACKSLASH_ESCAPE_IN_LISTS. (REG_BK_PLUS_QM): renamed from RE_BK_PLUS_QM. (REG_CHAR_CLASSES): renamed from RE_CHAR_CLASSES. (REG_CONTEXT_INDEP_ANCHORS): renamed from RE_CONTEXT_INDEP_ANCHORS. (REG_CONTEXT_INDEP_OPS): renamed from RE_CONTEXT_INDEP_OPS. (REG_CONTEXT_INVALID_OPS): renamed from RE_CONTEXT_INVALID_OPS. (REG_DOT_NEWLINE): renamed from RE_DOT_NEWLINE. (REG_DOT_NOT_NULL): renamed from RE_DOT_NOT_NULL. (REG_HAT_LISTS_NOT_NEWLINE): renamed from RE_HAT_LISTS_NOT_NEWLINE. (REG_INTERVALS): renamed from RE_INTERVALS. (REG_LIMITED_OPS): renamed from RE_LIMITED_OPS. (REG_NEWLINE_ALT): renamed from RE_NEWLINE_ALT. (REG_NO_BK_BRACES): renamed from RE_NO_BK_BRACES. (REG_NO_BK_PARENS): renamed from RE_NO_BK_PARENS. (REG_NO_BK_REFS): renamed from RE_NO_BK_REFS. (REG_NO_BK_VBAR): renamed from RE_NO_BK_VBAR. (REG_NO_EMPTY_RANGES): renamed from RE_NO_EMPTY_RANGES. (REG_UNMATCHED_RIGHT_PAREN_ORD): renamed from RE_UNMATCHED_RIGHT_PAREN_ORD. (REG_NO_POSIX_BACKTRACKING): renamed from RE_NO_POSIX_BACKTRACKING. (REG_NO_GNU_OPS): renamed from RE_NO_GNU_OPS. (REG_DEBUG): renamed from RE_DEBUG. (REG_INVALID_INTERVAL_ORD): renamed from RE_INVALID_INTERVAL_ORD. (REG_IGNORE_CASE): renamed from RE_ICASE. This renaming is a bit unusual, since we can't clash with the POSIX REG_ICASE. (REG_CARET_ANCHORS_HERE): renamed from RE_CARET_ANCHORS_HERE. (REG_CONTEXT_INVALID_DUP): renamed from RE_CONTEXT_INVALID_DUP. (REG_NO_SUB): renamed from RE_NO_SUB. (REG_SYNTAX_EMACS): renamed from RE_SYNTAX_EMACS. (REG_SYNTAX_AWK): renamed from RE_SYNTAX_AWK. (REG_SYNTAX_GNU_AWK): renamed from RE_SYNTAX_GNU_AWK. (REG_SYNTAX_POSIX_AWK): renamed from RE_SYNTAX_POSIX_AWK. (REG_SYNTAX_GREP): renamed from RE_SYNTAX_GREP. (REG_SYNTAX_EGREP): renamed from RE_SYNTAX_EGREP. (REG_SYNTAX_POSIX_EGREP): renamed from RE_SYNTAX_POSIX_EGREP. (REG_SYNTAX_ED): renamed from RE_SYNTAX_ED. (REG_SYNTAX_SED): renamed from RE_SYNTAX_SED. (_REG_SYNTAX_POSIX_COMMON): renamed from _RE_SYNTAX_POSIX_COMMON. (REG_SYNTAX_POSIX_BASIC): renamed from RE_SYNTAX_POSIX_BASIC. (REG_SYNTAX_POSIX_MINIMAL_BASIC): renamed from RE_SYNTAX_POSIX_MINIMAL_BASIC. (REG_SYNTAX_POSIX_EXTENDED): renamed from RE_SYNTAX_POSIX_EXTENDED. (REG_SYNTAX_POSIX_MINIMAL_EXTENDED): renamed from RE_SYNTAX_POSIX_MINIMAL_EXTENDED. (REG_DUP_MAX): renamed from RE_DUP_MAX. No need to undef it. (REG_UNALLOCATED): Renamed from REGS_UNALLOCATED. (REG_REALLOCATE): Renamed from REGS_REALLOCATE. (REG_FIXED): Renamed from REGS_FIXED. (REG_NREGS): Renamed from RE_NREGS. (REG_ICASE, REG_NEWLINE, REG_NOSUB): Do not depend on the values of other REG_* macros, since POSIX says the user is allowed to #undef these macros selectively. (reg_errcode_t): Update comment stating what other tables need to be consistent. Rename the following enum values to obey POSIX requirements. The old names are still visible as macros. (_REG_ENOSYS): Renamed from REG_ENOSYS. Define even if _XOPEN_SOURCE is not defined, since GNU is supposed to be a superset of POSIX as much as possible, and since we want reg_errcode_t to be a signed type for implementation consistency. (_REG_NOERROR): Renamed from REG_NOERROR. (_REG_NOMATCH): Renamed from REG_NOMATCH. (_REG_BADPAT): Renamed from REG_BADPAT. (_REG_ECOLLATE): Renamed from REG_ECOLLATE. (_REG_ECTYPE): Renamed from REG_ECTYPE. (_REG_EESCAPE): Renamed from REG_EESCAPE. (_REG_ESUBREG): Renamed from REG_ESUBREG. (_REG_EBRACK): Renamed from REG_EBRACK. (_REG_EPAREN): Renamed from REG_EPAREN. (_REG_EBRACE): Renamed from REG_EBRACE. (_REG_BADBR): Renamed from REG_BADBR. (_REG_ERANGE): Renamed from REG_ERANGE. (_REG_ESPACE): Renamed from REG_ESPACE. (_REG_BADRPT): Renamed from REG_BADRPT. (_REG_EEND): Renamed from REG_EEND. (_REG_ESIZE): Renamed from REG_ESIZE. (_REG_ERPAREN): Renamed from REG_ERPAREN. (REG_ENOSYS, REG_NOERROR, REG_NOMATCH, REG_BADPAT, REG_ECOLLATE): (REG_ECTYPE, REG_EESCAPE, REG_ESUBREG, REG_EBRACK, REG_EPAREN): (REG_EBRACE, REG_BADBR, REG_ERANGE, REG_ESPACE, REG_BADRPT, REG_EEND): (REG_ESIZE, REG_ERPAREN): Now macros, not enum constants. (_REG_RE_NAME, _REG_RM_NAME): New macros. (REG_TRANSLATE_TYPE): Renamed from RE_TRANSLATE_TYPE. All uses changed. But support the old name if the new one is not defined and if _REGEX_SOURCE. Change the following member names in struct re_pattern_buffer. The old names are still supported if !_REGEX_SOURCE. The new names are always supported, regardless of _REGEX_SOURCE. (re_buffer): Renamed from buffer. (re_allocated): Renamed from allocated. (re_used): Renamed from used. (re_syntax): Renamed from syntax. (re_fastmap): Renamed from fastmap. (re_translate): Renamed from translate. (re_can_be_null): Renamed from can_be_null. (re_regs_allocated): Renamed from regs_allocated. (re_fastmap_accurate): Renamed from fastmap_accurate. (re_no_sub): Renamed from no_sub. (re_not_bol): Renamed from not_bol. (re_not_eol): Renamed from not_eol. (re_newline_anchor): Renamed from newline_anchor. Change the following member names in struct re_registers. The old names are still supported if !_REGEX_SOURCE. The new names are always supported, regardless of _REGEX_SOURCE. (rm_num_regs): Renamed from num_regs. (rm_start): Renamed from start. (rm_end): Renamed from end. (re_set_syntax, re_compile_pattern, re_compile_fastmap): (re_search, re_search_2, re_match, re_match_2, re_set_registers): Prepend __ to parameter names. Undo yesterday's changes. 2005-08-24 Paul Eggert * config/srclist.txt: Remove glibc bug 1233 and add 1236, which supersedes it. Add glibc bugs 1237, 1238, 1240. Comment out lib/regex.c. 2005-08-24 Jim Meyering Sync from coreutils. * m4/fcntl-safer.m4: New file. * m4/xgetcwd.m4: Use AC_LIBSOURCES and AC_LIBOBJ to indicate source and object files for this module. 2005-08-24 Jim Meyering Sync from coreutils. * lib/fcntl--.h, lib/fcntl-safer.h, lib/open-safer.c: New files. 2005-08-24 Jim Meyering * modules/xgetcwd (Makefile.am): Remove `lib_SOURCES += ...' line, now that xgetcwd.m4 requires xgetcwd.c and xgetcwd.h. 2005-08-24 Jim Meyering * modules/fcntl-safer: New module. * modules/fts (Depends-on): Add fcntl-safer. * MODULES.html.sh (File descriptor based Input/Output): Add fcntl-safer. 2005-08-24 Bruno Haible Support for unit test modules. * modules/README: Mention tests modules. * modules/TEMPLATE-TESTS: New file. * gnulib-tool: New options --extract-tests-module, --with-tests and --tests-base (unused for the moment). (testsbase, inctests): New variables. (func_all_modules): Exclude TEMPLATE-TESTS and *-tests. (func_verify_module): Exclude TEMPLATE-TESTS. (func_verify_nontests_module, func_verify_tests_module): New functions. (func_get_dependencies): Add implicit dependency for tests modules. (func_get_tests_module): New function. (func_modules_transitive_closure): When --with-tests was specified, include the unit tests as well, unless explicitly avoided. (func_emit_lib_Makefile_am): Ignore the tests modules here. (func_emit_tests_Makefile_am): New function. (func_create_testdir): When --with-tests was specified, emit a tests/ directory. * MODULES.html.sh (Future developments): Update. 2005-08-24 Bruno Haible * modules/tls-tests: New file. * tests/test-tls.c: New file, from GNU gettext. 2005-08-24 Bruno Haible * modules/lock-tests: New file. * tests/test-lock.c: New file, from GNU gettext. 2005-08-24 Bruno Haible * lib/lock.h: Add multiple inclusion guard. * lib/tls.h: Add multiple inclusion guard. 2005-08-24 Bruno Haible * gnulib-tool: Add support for the --aux-dir option to --create-testdir, --create-megatestdir, --test, --megatest. (func_create_testdir, func_create_megatestdir): Optionally emit a AC_CONFIG_AUX_DIR directive. (create-testdir, create-megatestdir, test, megatest): Provide a default value for $auxdir. 2005-08-24 Bruno Haible * gnulib-tool (import): Use compound statement instead of subshell where possible. 2005-08-24 Bruno Haible * gnulib-tool (import): Change --aux-dir default to "build-aux". 2005-08-24 Bruno Haible * gnulib-tool (func_version): Update. 2005-08-24 Bruno Haible * gnulib-tool (func_import, func_create_testdir, func_create_megatestdir): Quote all autoconf macro arguments. 2005-08-24 Bruno Haible * gnulib-tool (func_create_megatestdir): Call autoreconf without the option --force, because --force causes the aclocal.m4 of each subdirectory to be newer than the corresponding config.h.in. 2005-08-23 Paul Eggert * m4/regex.m4 (gl_INCLUDED_REGEX): Remove; no longer used. All contents moved to gl_REGEX. (gl_REGEX): Don't bother checking whether lib/regex.c exists; assume that it does. 2005-08-23 Paul Eggert * lib/regex.h (REG_NOSYS) [!defined _XOPEN_SOURCE && 200112L <= _POSIX_C_SOURCE]: Define, since POSIX requires it as of 2001. (_REG_ENOSYS) [! (defined _XOPEN_SOURCE || 200112L <= _POSIX_C_SOURCE)]: New private symbol, used to keep the enum signed in all cases. * lib/regex.h (RE_NO_EMPTY_RANGES): Fix doc bug reported by James Youngman in . * lib/regex_internal.c (re_string_skip_chars, register_state): (calc_state_hash): Remove forward decls; no longer needed now that we use prototypes. * lib/regexec.c (acquire_init_state_context, check_halt_node_context): (proceed_next_node, pop_fail_stack, sub_epsilon_src_nodes): (clean_state_log_if_needed): Likewise. 2005-08-23 Paul Eggert * config/srclist.txt: Add glibc bugs 1231-1233. 2005-08-20 Paul Eggert Fix problems reported by Sam Steingold in . * lib/regexec.c (sift_states_bkref): Fix portability bug: the code assumed that reg_errcode_t is a signed type, which is not necessarily true if _XOPEN_SOURCE is not defined. * lib/regex_internal.c (calc_state_hash): Put 'inline' before type, since some compilers warn about it otherwise. 2005-08-20 Paul Eggert * lib/regcomp.c (create_initial_state): Remove duplicate decl. (init_word_char, create_initial_state, duplicate_node_closure): (fetch_token, peek_token_bracket, build_range_exp): (build_collating_symbol): Remove forward decls; no longer needed now that we use prototypes. * lib/regcomp.c: (re_compile_pattern, re_set_syntax, re_compile_fastmap): (re_compile_fastmap_iter, regcomp, regerror, regfree): (re_compile_internal, init_dfa, init_word_char, free_workarea_compile): (create_initial_state, optimize_utf8, analyze, postorder, preorder): (optimize_subexps, lower_subexps, lower_subexp, calc_first, calc_next): (link_nfa_nodes, duplicate_node_closure, search_duplicated_node): (duplicate_node, calc_inveclosure, calc_eclosure, calc_eclosure_iter): (fetch_token, peek_token, peek_token_bracket, parse, parse_reg_exp): (parse_branch, parse_expression, parse_sub_exp, parse_dup_op): (build_range_exp, build_collating_symbol, parse_bracket_exp): (parse_bracket_element, parse_bracket_symbol, build_equiv_class): (build_charclass, build_charclass_op, fetch_number, create_tree): (create_token_tree, mark_opt_subexp, duplicate_tree): Use prototypes rather than old-style definitions. * lib/regex_internal.c: (re_string_allocate, re_string_construct, re_string_realloc_buffers): (re_string_construct_common, build_wcs_buffer, build_wcs_upper_buffer): (re_string_skip_chars, build_upper_buffer, re_string_translate_buffer): (re_string_reconstruct, re_string_peek_byte_case): (re_string_fetch_byte_case, re_string_destruct, re_string_context_at): (re_node_set_alloc, re_node_set_init_1, re_node_set_init_2): (re_node_set_init_copy, re_node_set_add_intersect): (re_node_set_init_union, re_node_set_merge, re_node_set_insert): (re_node_set_insert_last, re_node_set_compare, re_node_set_contains): (re_node_set_remove_at, re_dfa_add_node, calc_state_hash): (re_acquire_state, re_acquire_state_context, register_state): (create_ci_newstate, create_cd_newstate, free_state): Likewise. * lib/regexec.c (regexec, re_match, re_search, re_match_2, re_search_2): (re_search_2_stub, re_search_stub, re_copy_regs, re_set_registers): (re_search_internal, prune_impossible_nodes): (acquire_init_state_context, check_matching, static): (check_halt_node_context, check_halt_state_context, proceed_next_node): (push_fail_stack, pop_fail_stack, set_regs, free_fail_stack_return): (update_regs, sift_states_backward, build_sifted_states): (clean_state_log_if_needed, merge_state_array): (update_cur_sifted_state, add_epsilon_src_nodes): (sub_epsilon_src_nodes, check_dst_limits, check_dst_limits_calc_pos_1): (check_dst_limits_calc_pos, check_subexp_limits, sift_states_bkref): (sift_states_iter_mb, transit_state, merge_state_with_log, static): (find_recover_state, check_subexp_matching_top, transit_state_mb): (transit_state_bkref, get_subexp, get_subexp_sub, find_subexp_node): (check_arrival, check_arrival_add_next_nodes): (check_arrival_expand_ecl, check_arrival_expand_ecl_sub): (expand_bkref_cache, build_trtable, group_nodes_into_DFAstates): (check_node_accept_bytes, check_node_accept, extend_buffers): (match_ctx_init, match_ctx_clean, match_ctx_free, match_ctx_add_entry): (search_cur_bkref_entry, match_ctx_add_subtop, match_ctx_add_sublast): (sift_ctx_init): Likewise. * lib/regex_internal.h: (re_string_allocate, re_string_construct, re_string_reconstruct): (re_string_realloc_buffers, build_wcs_buffer, build_wcs_upper_buffer): (build_upper_buffer, re_string_translate_buffer, re_string_destruct): (re_string_elem_size_at, re_string_char_size_at, re_string_wchar_at): (re_string_context_at, re_string_peek_byte_case): (re_string_fetch_byte_case): Declare even if RE_NO_INTERNAL_PROTOTYPES is defined, since we now use prototypes always. * lib/regex.h (_RE_ARGS): Remove. No longer needed, since we assume C89 or better. All uses removed. 2005-08-20 Paul Eggert * config/srclist.txt: Add glibc bugs 1220-1227. 2005-08-20 Jim Meyering * lib/regexec.c (regexec, re_search_stub) [!_LIBC]: Omit declaration of unused local, dfa. 2005-08-20 Bruno Haible * m4/regex.m4 (gl_PREREQ_REGEX): Require AC_GNU_SOURCE. 2005-08-19 Paul Eggert * lib/regex_internal.c (re_string_realloc_buffers, re_node_set_insert): (re_node_set_insert_last, re_dfa_add_node): Rename local variables to avoid GCC shadowing warnings. 2005-08-19 Paul Eggert * lib/regex_internal.c (re_acquire_state, re_acquire_state_context) [defined lint]: Suppress bogus uninitialized-variable warnings. * lib/regcomp.c (duplicate_node): Return new index, not an error code, and let the caller return REG_ESPACE if out of space. This removes an uninitialied-variable warning with GCC 4.0.1, and also avoids taking the address of a local variable. All callers changed. 2005-08-19 Paul Eggert * config/srclist.txt: Comment out $LIBCSRC/posix/regex_internal.c, $LIBCSRC/posix/regexec.c. Add glibc bug 1217 for regcomp.c. 2005-08-19 Jim Meyering * lib/regexec.c (proceed_next_node): Redo local variables to avoid GCC shadowing warnings. 2005-08-18 Bruno Haible * lib/strstr.c (strstr): Fix return value in multibyte case. * lib/strcasestr.c (strcasestr): Likewise. 2005-08-17 Paul Eggert * lib/regex.h: Remove useless space-before-tab. From coreutils. 2005-08-17 Jim Meyering Make the %s format (seconds since the epoch) work for a negative number and when used with a zero-padded field width, e.g. %015s. * lib/strftime.c (my_strftime): Move the `do_number_sign_and_padding' label so that it precedes the code to set `digits'. Otherwise, %0Ns wouldn't work. Before this change, `date -d @-22 +%05s' would print `00-22'. Now, it prints `-0022', as it should. 2005-08-17 Bruno Haible * modules/strstr (Files): Add m4/mbrtowc.m4. (Depends-on): Add mbuiter. 2005-08-17 Bruno Haible * modules/strcasestr: New file. * MODULES.html.sh (String handling, based on ANSI C 89): Add strcasestr. 2005-08-17 Bruno Haible * modules/strcase (Depends-on): Add mbuiter. Remove strnlen1, mbchar. 2005-08-17 Bruno Haible * modules/mbuiter: New file. * MODULES.html.sh (Extended multibyte and wide character utilities): Add mbuiter. 2005-08-17 Bruno Haible * m4/strstr.m4 (gl_FUNC_STRSTR): Use the replacement function always. (gl_PREREQ_STRSTR): Use gl_FUNC_MBRTOWC. 2005-08-17 Bruno Haible * m4/strcasestr.m4: New file. 2005-08-17 Bruno Haible * lib/strstr.h: Ignore HAVE_STRSTR, always declare the gnulib function. * lib/strstr.c: Completely rewritten, with multibyte locale support. 2005-08-17 Bruno Haible * lib/strcasestr.h: New file. * lib/strcasestr.c: New file. 2005-08-17 Bruno Haible * lib/strcasecmp.c: Use mbuiter.h. 2005-08-17 Bruno Haible * lib/mbuiter.h: New file. 2005-08-16 Paul Eggert * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Do not override the results of gl_GETOPT_SUBSTITUTE. That way, if both gl_GETOPT_SUBSTITUTE and gl_GETOPT are both invoked via different paths (as happens with GNU tar CVS because it uses both argp and getopt), the former wins. 2005-08-16 Bruno Haible * modules/tls: New file. * MODULES.html.sh (Multithreading): Add tls. 2005-08-16 Bruno Haible * modules/strnlen1: New file. * MODULES.html.sh (String handling): Add strnlen1. 2005-08-16 Bruno Haible * modules/strcase (Files): Add m4/mbrtowc.m4. (Depends-on): Add strnlen1, mbchar. 2005-08-16 Bruno Haible * modules/mbiter: New file. * MODULES.html.sh (Extended multibyte and wide character utilities): Add mbiter. 2005-08-16 Bruno Haible * modules/mbfile: New file. * MODULES.html.sh (Extended multibyte and wide character utilities): Add mbfile. 2005-08-16 Bruno Haible * modules/mbchar: New file. * MODULES.html.sh (Extended multibyte and wide character utilities): New section. 2005-08-16 Bruno Haible * m4/tls.m4: New file, from GNU gettext. 2005-08-16 Bruno Haible * m4/strcase.m4 (gl_FUNC_STRCASECMP): Use the replacement function always. (gl_PREREQ_STRCASECMP): Use gl_FUNC_MBRTOWC. 2005-08-16 Bruno Haible * m4/mbiter.m4: New file. 2005-08-16 Bruno Haible * m4/mbfile.m4: New file. 2005-08-16 Bruno Haible * m4/mbchar.m4: New file. 2005-08-16 Bruno Haible * lib/tls.h: New file, from GNU gettext. * lib/tls.c: New file, from GNU gettext. 2005-08-16 Bruno Haible * lib/strnlen1.h: New file. * lib/strnlen1.c: New file. 2005-08-16 Bruno Haible * lib/strcasecmp.c (struct mbiter_multi): Remove at_end field. (mbi_init): Update. (mbi_avail, mbi_advance): Let the iteration end before the terminating NUL byte, not after it. 2005-08-16 Bruno Haible * lib/strcase.h (strcasecmp): Add note in comments. * lib/strncasecmp.c: Use code from strcasecmp.c. * lib/strcasecmp.c: Use mbchar module. Define private mbiter variant. (strcasecmp): Work correctly in multibyte locales. 2005-08-16 Bruno Haible * lib/mbiter.h: New file. 2005-08-16 Bruno Haible * lib/mbfile.h: New file. 2005-08-16 Bruno Haible * lib/mbchar.h: New file. * lib/mbchar.c: New file. 2005-08-16 Bruno Haible * lib/mbchar.h (mb_cmp, mb_casecmp): Order the invalid characters after the valid ones. Makes the comparison operations transitive: cmp (a, b) < 0 && cmp (b, c) < 0 ==> cmp (a, c) < 0. * lib/strcasecmp.c (strcasecmp): Use mb_casecmp. 2005-08-15 Simon Josefsson * modules/ssize_t (License): Change to 'unlimited'. * gnulib-tool (sed_extract_prog): Recognize 'unlimited' license. 2005-08-15 Paul Eggert * config/srclist.txt: Comment out $LIBCSRC/posix/regex.h. Add comments for each pending glibc patch. 2005-08-15 Bruno Haible * lib/regex.h (__restrict_arr): Don't define to __restrict if __cplusplus is defined. 2005-08-14 Jim Meyering Sync from coreutils. * lib/fts-cycle.c (setup_dir, enter_dir, leave_dir, free_dir): Use the hash-table-based cycle-detection code not just when FTS_TIGHT_CYCLE_CHECK if specified, but also with FTS_LOGICAL. Reported by James Youngman in . * lib/fts_.h: Mention that with FTS_LOGICAL, we use FTS_TIGHT_CYCLE_CHECK. * lib/fts.c (fts_cross_check) [FTS_DEBUG]: s/active_dir_ht/fts_cycle.ht/. This lets us compile with -DFTS_DEBUG, once again. * lib/fts.c [! _LIBC]: Include "lstat.h" rather than rolling our own. * lib/fts.c (fd_safer): Remove decl. Include fcntl--.h rather than unistd-safer.h (fts_safe_changedir): Don't call fd_safer; no longer needed now that we include fcntl--.h. 2005-08-12 Simon Josefsson * modules/getndelim2: Use ssize_t module. * modules/getnline: Likewise. * modules/safe-read: Likewise. * modules/xreadlink: Likewise. * modules/ssize_t: New file. 2005-08-12 Simon Josefsson * m4/readline.m4: Look for termcap, curses or ncurses if required. 2005-08-12 Simon Josefsson * MODULES.html.sh (Support for systems lacking POSIX:2001): Add ssize_t. 2005-08-12 Simon Josefsson * MODULES.html.sh (Extra functions based on ANSI C 89: Misc): Add readline, getdelim and check_version. (Support for systems lacking ISO C 99: Sizes of integer types): Add size_max. 2005-08-12 Bruno Haible * m4/readline.m4 (gl_FUNC_READLINE): Look for ncurses first. 2005-08-11 Simon Josefsson * modules/readline: New file. * modules/strnlen (Files): Add strnlen.h. 2005-08-11 Simon Josefsson * m4/readline.m4: New file. 2005-08-11 Simon Josefsson * lib/readline.h, readline.c: New file. 2005-08-11 Simon Josefsson * doc/gnulib.texi (Initial import, Finishing touches): Mention gl_AVOID. 2005-08-11 Bruno Haible * lib/strnlen.h (strnlen): Change parameter name to match comment. 2005-08-10 Stepan Kasal * m4/onceonly_2_57.m4: Really require Autoconf 2.57. 2005-08-10 Simon Josefsson * tests/test-iconvme.c: New file. 2005-08-10 Simon Josefsson * m4/strnlen.m4: New file. * m4/strndup.m4: Don't check for strnlen declaration, done in strnlen.m4. 2005-08-10 Simon Josefsson * lib/strndup.c: Use strnlen.h. * lib/strnlen.h: New file. 2005-08-08 Ralf Wildenhues (tiny change) * README: Typos. 2005-08-02 Simon Josefsson * modules/readline: New file. 2005-08-02 Simon Josefsson * modules/getdelim: New file. * modules/getline: Rewrite, don't use getndelim2. 2005-08-02 Simon Josefsson * m4/getline.m4: Separate out getdelim stuff into separate module. * m4/getdelim.m4: New file. 2005-08-02 Simon Josefsson * lib/getline.h, getline.c: Rewrite. * lib/getdelim.h, lib/getdelim.c: New files, ported from glibc. 2005-07-31 Bruno Haible * lib/lock.h (gl_lock_initializer): New macro. (gl_lock_define_initialized): Use it. (gl_rwlock_initializer): New macro. (gl_rwlock_define_initialized): Use it. (gl_recursive_lock_initializer): New macro. (gl_recursive_lock_define_initialized): Use it. 2005-07-30 Karl Berry * doc/gnulib.texi (Initial import): mention -I$(top_builddir)/lib. Report from Ben Pfaff, regarding getopt. 2005-07-26 Paul Eggert Add support to getopt for Emacs, which doesn't use LIBOBJS in the normal way. * m4/getopt.m4 (gl_GETOPT_SUBSTITUTE_HEADER): New macro. (gl_GETOPT_SUBSTITUTE): Use it. Invoke gl_PREREQ_GETOPT. (gl_GETOPT_IFELSE, gl_GETOPT_CHECK_HEADERS): New macros. (gl_GETOPT): Use the new macros. Most of the implementation is moved to the new macros. This is for programs like Emacs that don't want all the functionality of gl_GETOPT. 2005-07-26 Bruno Haible * m4/lock.m4: Update from GNU gettext. 2005-07-26 Bruno Haible * lib/lock.h: Update from GNU gettext. * lib/lock.c: Update from GNU gettext. 2005-07-25 Paul Eggert * m4/regex.m4 (gl_INCLUDED_REGEX): Use AC_RUN_IFELSE instead of the obsolescent AC_TRY_RUN. Include the default includes files, for 'exit'. 2005-07-24 Bruno Haible * modules/visibility: New file. * MODULES.html.sh (Misc): Add visibility. 2005-07-24 Bruno Haible * m4/visibility.m4: New file. 2005-07-24 Bruno Haible * doc/visibility.texi: New file. 2005-07-22 Bruno Haible * modules/alloca-opt (Makefile.am): Remove explicit dependency on $(ALLOCA_H), redundant through BUILT_SOURCES. * modules/argz (Makefile.am): Remove explicit dependency on $(ARGZ_H), redundant through BUILT_SOURCES. * modules/byteswap (Makefile.am): Remove explicit dependency on $(BYTESWAP_H), redundant through BUILT_SOURCES. * modules/fnmatch (Makefile.am): Remove explicit dependency on $(FNMATCH_H), redundant through BUILT_SOURCES. * modules/getopt (Makefile.am): Remove explicit dependency on $(GETOPT_H), redundant through BUILT_SOURCES. * modules/glob (Makefile.am): Remove explicit dependency on $(GLOB_H), redundant through BUILT_SOURCES. * modules/poll (Makefile.am): Remove explicit dependency on $(POLL_H), redundant through BUILT_SOURCES. * modules/stdbool (Makefile.am): Remove explicit dependency on $(STDBOOL_H), redundant through BUILT_SOURCES. * modules/stdint (Makefile.am): Remove explicit dependency on $(STDINT_H), redundant through BUILT_SOURCES. * modules/sysexits (Makefile.am): Add $(SYSEXITS_H) to BUILT_SOURCES. Remove explicit dependency on $(SYSEXITS_H). Reported by Alexandre Duret-Lutz . 2005-07-18 Simon Josefsson * lib/check-version.c (check_version): Accept identical versions too. 2005-07-18 Bruno Haible * modules/lock: New file. * MODULES.html.sh (Multithreading): New section. 2005-07-18 Bruno Haible * m4/lock.m4: New file, from GNU gettext. 2005-07-18 Bruno Haible * lib/lock.h: New file, from GNU gettext. * lib/lock.c: New file, from GNU gettext. 2005-07-18 Bruno Haible * lib/lock.h (gl_once_t): New type. (gl_once_define, gl_once): New macros. * lib/lock.c (fresh_once): New variable. (glthread_once, glthread_once_call, glthread_once_singlethreaded): New functions. 2005-07-16 Simon Josefsson * doc/gnulib.texi (Library version handling): Add ELF symbol collision workaround, suggested by Bruno. 2005-07-15 Paul Eggert * modules/xalloc (Depends-on): Add xalloc-die. * modules/xvasprintf (Depends-on): Add xalloc-die. 2005-07-15 Paul Eggert * lib/quotearg.c: Add translator comment suggested by Bruno Haible, with a minor change. 2005-07-15 Bruno Haible * m4/poll.m4 (gl_FUNC_POLL): Check against MacOS X 10.4 poll() bug. When using lib/poll.c, define poll as rpl_poll. 2005-07-14 Paul Eggert * modules/argp (Depends-on): Remove unlocked-io. 2005-07-14 Derek Price * m4/glob.m4 (gl_GLOB): Cache glob interface check result. Add check for glob symlink bug. 2005-07-14 Bruno Haible * m4/argp.m4 (gl_ARGP): Remove invocation of gl_FUNC_GLIBC_UNLOCKED_IO. Instead, test for *_unlocked function declarations directly. 2005-07-11 Simon Josefsson * modules/size_max: New file. * modules/xsize: Depend on size_max module for size_max.m4. 2005-07-11 Simon Josefsson * lib/size_max.h: New file. 2005-07-11 Paul Eggert * lib/version-etc-fsf.c (version_etc_copyright): Parameterize the copyright symbol and the year. * lib/version-etc.c (COPYRIGHT_YEAR): New constant. (version_etc_va): Use parameterized copyright notice. Reword to conform to the current GNU coding standards. 2005-07-11 Karl Berry * doc/gnulib.texi (Quoting): new node. (Initial import): more info, from Patrice. 2005-07-11 Bruno Haible * gnulib-tool (func_usage): Document option --avoid. (Command line options): Handle --avoid. (func_acceptable): New function. (func_modules_transitive_closure): Use it. 2005-07-11 Bruno Haible * MODULES.html.sh: Use shortcut URLs to the www.opengroup.org site. Reported by Jim Meyering. 2005-07-10 Bruno Haible * m4/size_max.m4 (gl_SIZE_MAX): Cast ~(size_t)0 back to size_t. Needed when size_t is smaller than 'unsigned int'. Reported by Paul Eggert. 2005-07-09 Sergey Poznyakoff * modules/argp (Depends-on): Add unlocked-io 2005-07-09 Sergey Poznyakoff * lib/argp-namefrob.h: Include unlocked-io.h. Removed unnecessary block of defines. 2005-07-08 Paul Eggert * config/srclist.txt: Comment out regcomp.c, since we have a porting fix now. 2005-07-08 Eric Blake (tiny change) and Paul Eggert * lib/regcomp.c (init_dfa, build_range_exp): Store __btowc value in wint_t, not wchar_t. Remove now-unnecessary cast. 2005-07-07 Paul Eggert * modules/regex (Files): Add lib/regex_internal.c, lib/regex_internal.h, lib/regexec.c, lib/regcomp.c, m4/codeset.m4. (Depends-on): Add extensions. (Makefile.am): Remove lib_SOURCES; now done by m4 code. 2005-07-07 Paul Eggert * m4/backupfile.m4 (gl_BACKUPFILE): Use AC_CHECK_FUNCS_ONCE on pathconf. * m4/same.m4 (gl_SAME): Likewise. Require AC_SYS_LONG_FILE_NAMES; bug reported by Gerrit P. Haase. * m4/regex.m4: Adjust to new libc regex implementation. (gl_INCLUDED_REGEX): Add AC_LIBSOURCES for all the .c and .h parts of (the new) regex. Quote the m4 stuff better. Check for RE_ICASE bug of old gnulib. Check for REG_STARTEND of recent libc. Rename local variables from jm_* to gl_*. Quote operand of "test -f". Say "recent enough" version of libc, not "version 2". (gl_PREREQ_REGEX): Remove AC_FUNC_ALLOCA, since alloca is a prerequisite module. Remove AC_HEADER_STDC; no longer needed. Check for locale.h, isblank, mbrtowc, wcrtomb, wcscoll. Remove check for btowc, isascii. Require AM_LANGINFO_CODESET. 2005-07-07 Paul Eggert * lib/regex.c, regex.h: Sync from libc. * lib/regcomp.c, lib/regexec_internal.c, lib/regex_internal.h: * lib/regexec.c: New files, synced from libc, except that regex_internal.h currently has a small porting fix. 2005-07-07 Paul Eggert * config/srclist.txt: Add regcomp.c, regex.c, regex.h, regex_internal.c, regexec.c. Add regex_internal.h too, but as a comment, since the libc version is currently broken in gnulib mode. 2005-07-06 Paul Eggert Support programs like Emacs that use gnulib but not gettext. * MODULES.html.sh (Internationalization functions): Add gettext-h. * modules/gettext-h: New file. * modules/gettext (Files): Remove lib/gettext.h. (Depends-on): Add gettext-h. (Makefile.am): Remove lib_SOURCES. * modules/argmatch, modules/c-stack, modules/closeout: * modules/copy-file, modules/csharpcomp, modules/csharpexec: * modules/execute, modules/file-type, modules/getaddrinfo: * modules/getopt, modules/human, modules/javacomp: * modules/javaexec, modules/mkdir-p, modules/obstack: * modules/openat, modules/pagealign_alloc, modules/pipe: * modules/quotearg, modules/regex, modules/rpmatch: * modules/unicodeio, modules/userspec, modules/version-etc: * modules/wait-process, modules/xalloc-die, modules/xmemcoll: * modules/xsetenv: Depend on gettext-h, not gettext. 2005-07-05 Paul Eggert * gnulib-tool (func_import): Add support for 'public domain' license. * modules/alloca, modules/atexit, modules/memmove: Now public domain, not GPL. * modules/dup2, modules/getpagesize, modules/malloc, modules/memset: * modules/realloc, modules/strerror, modules/strtod: Now LGPL, not GPL. 2005-07-05 Bruno Haible * m4/mbrtowc.m4 (gl_FUNC_MBRTOWC): Upgrade to version from current autoconf CVS. Needed for mingw. 2005-07-03 Paul Eggert Remove the dependency of the strftime module on the tzset module. * modules/strftime (Depends-on): Remove dependency on tzset. 2005-07-03 Paul Eggert Remove the dependency of the strftime module on the tzset module. * m4/strftime.m4 (gl_FUNC_STRFTIME): Don't require gl_FUNC_TZSET_CLOBBER. 2005-07-03 Paul Eggert Remove the dependency of the strftime module on the tzset module. * lib/strftime.c (my_strftime) [! defined _LIBC && ! HAVE_RUN_TZSET_TEST]: Copy the input structure, to work around some of the bug with Solaris 2.5.1 and Solaris 2.6. If you still care about these old Solaris releases, you should also use the tzset module, but we won't require it as a dependency any more since we don't want LGPLed code to depend on GPLed code. 2005-07-02 Jim Meyering * m4/chown.m4, cloexec.m4, dup2.m4, fsusage.m4: * m4/getcwd-path-max.m4, getcwd.m4, mkstemp.m4, mountlist.m4: * m4/pagealign_alloc.m4, save-cwd.m4, unistd-safer.m4: Don't check for fcntl.h, and don't test for HAVE_FCNTL_H. 2005-07-02 Jim Meyering * lib/backupfile.c (backup_args): Change a `0' to NULL. 2005-07-01 Paul Eggert * lib/xnanosleep.c: Include timespec.h, since OpenBSD 3.4 declares only 'struct timespec;' (!). 2005-07-01 Jim Meyering * lib/chown.c, cloexec.c, dup-safer.c, dup2.c, fsusage.c, getcwd.c: * lib/getloadavg.c, mountlist.c, openat.h, pagealign_alloc.c: * lib/save-cwd.c, tempname.c: Assume HAVE_FCNTL_H (i.e., include unconditionally, and don't include ). 2005-06-29 Jim Meyering * lib/mkdir-p.c (make_dir_parents): Don't apply sizeof to a hard-coded type name. Use the variable name instead. * lib/idcache.c (getuser, getuidbyname, getgroup, getgidbyname): Likewise. 2005-06-28 Simon Josefsson * modules/check-version (Files): Add check-version.m4. 2005-06-28 Simon Josefsson * m4/check-version.m4: New file, suggested by Jim Meyering . 2005-06-28 Simon Josefsson * lib/check-version.h, lib/check-version.c: New files. 2005-06-28 Simon Josefsson * lib/base64.c (base64_encode): Indent. Rename 'b64' to avoid collision with global variable. Better indentation. Don't increment buffer pointer beyond buffer end. Based on comments from Paul Eggert . * lib/base64.h: Indent. 2005-06-28 Simon Josefsson * doc/gnulib.texi (Library version handling): New section. 2005-06-28 Jim Meyering * check-module (find_included_lib_files): Hard-code another pair of exceptions: fts.c includes fts-cycle.c and unistd-safer.h but modules/fts-lgpl (correctly) does not list those files. * modules/canonicalize (Files): Add lib/pathmax.h. 2005-06-25 Simon Josefsson * modules/check-version: New file. 2005-06-24 Paul Eggert * lib/canon-host.c (canon-host): Append trailing "," to 0 in initializer of struct addrinfo, as an indication that we don't care how many members the structure has. 2005-06-24 Derek Price and Bruno Haible Remove stat module & update lstat. * m4/lstat.m4 (gl_FUNC_LSTAT): Drop AC_FUNC_LSTAT in favor of AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK. * m4/stat.m4: Remove this file. 2005-06-24 Derek Price and Bruno Haible Remove stat module & update lstat. * lib/stat.c: Remove this file... (slash_aware_lstat): ...moving this content and its support... * lib/lstat.c (rpl_lstat): ...into here. * lib/lstat.h: New file. 2005-06-24 Derek Price and Bruno Haible Remove stat module & update lstat. * config/srclist.txt (libc sources): Remove stat. 2005-06-24 Derek Price and Bruno Haible Remove stat module & update lstat. * MODULES.html.sh (stat): Remove. * MODULES.html: Regenerated. * modules/lstat (Description): Correct function name. (Files): Add "lstat.h". (Depends-on): Remove stat, add xalloc, stat-macros. * modules/stat: Remove this file. (Include): Add "lstat.h", remove . 2005-06-23 Paul Eggert * lib/mktime.c: Include even if !DEBUG. (From glibc.) (ranged_convert): Don't save conversion in a temporary struct. This causes a warning with GCC 4.0.0, and anyway in the typical case it's not worth the extra 100 bytes or so of code. (ranged_convert, __mktime_internal): When calling a function via a pointer P, use P () rather than (*P) (), as we now assume C89 or better. 2005-06-22 Paul Eggert * lib/readutmp.c (desirable_utmp_entry): Fix bug where "who -b" and "who -r" failed to give output. Problem reported by Tim Waugh. * lib/xmalloc.c (HAVE_GNU_CALLOC): New constant. (xcalloc): Use it to avoid needless tests. Problem reported by Jim Meyering. 2005-06-20 Derek Price * m4/bison.m4: Note that precious decls of YACC & YFLAGS will be unnecessary for Autoconfs > 2.59c. 2005-06-16 Sergey Poznyakoff * lib/argp.h (__option_is_short): Check upper limit of __key. Isprint() requires its argument to have the value of an unsigned char or EOF. 2005-06-16 Jim Meyering * lib/calloc.c (rpl_calloc): Allocate a 1-byte buffer (not 1xS or Nx1) when either N or S is zero. 2005-06-16 Derek Price * m4/bison.m4: Declare YACC & YFLAGS precious. 2005-06-10 Paul Eggert * lib/fnmatch.c (fnmatch): If there is an encoding error in a multibyte string or pattern, fall back on unibyte matching. Problem reported by James Youngman. 2005-06-08 Bruno Haible * modules/csharpcomp: New file. * MODULES.html.sh (C#): Add csharpcomp. 2005-06-08 Bruno Haible * m4/csharpcomp.m4: New file, from GNU gettext. 2005-06-08 Bruno Haible * lib/csharpcomp.h: New file, from GNU gettext. * lib/csharpcomp.c: New file, from GNU gettext. * lib/csharpcomp.sh.in: New file, from GNU gettext. 2005-06-08 Bruno Haible * lib/binary-io.h (fileno): Undefine before defining it. Avoids a gcc warning on mingw. 2005-06-07 Derek Price Sync from CVS. * lib/glob_.h: Indent nested #ifdef. 2005-06-02 Paul Eggert Sync from coreutils. Use "file name" when talking about file names, instead of "filename" or "path", as per the GNU coding standards. * lib/mkdir-p.c: Renamed from makepath.c. (make_dir_parents): Renamed from make_path. All callers changed. * lib/mkdir-p.h: Likewise. All includers changed. * lib/filenamecat.c: Renamed from path-concat.c. (file_name_concat): Renamed from path_concat. All callers changed. [TEST_FILE_NAME_CONCAT]: Renamed from TEST_PATH_CONCAT. * lib/filenamecat.h: Likewise. All includers changed. * lib/acl.c: Don't use "path" or "filename" to mean "file name" in comments or local variable names. * lib/basename.c: Likewise. * lib/canonicalize.c, canonicalize.h: Likewise. * lib/dirname.c, dirname.h: Likewise. * lib/euidaccess.c: Likewise. * lib/exclude.c: Likewise * lib/fnmatch_.h, fnmatch_loop.c: Likewise. * lib/fsusage.c, fsuage.h: Likewise. * lib/fts.c, fts_.h: Likewise. * lib/getcwd.c: Likewise. * lib/getloadavg.c: Likewise. * lib/mkstemp.c: Likewise. * lib/mountlist.c, mountlist.h: Likewise. * lib/openat.c, openat.h: Likewise. * lib/readlink-stub.c: Likewise. * lib/readutmp.c, readutmp.h: Likewise. * lib/rename.c: Likewise. * lib/rmdir.c: Likewise. * lib/same.c: Likewise. * lib/savedir.c: Likewise. * lib/stripslash.c: Likewise. * lib/tempname.c: Likewise. * lib/xreadlink.c: Likewise. * lib/exclude.c (excluded_file_name): Renamed from excluded_filename. All uses changed. * lib/exclude.h: Likewise. * lib/euidaccess.c (getuid, getgid, getuid, getegid) [!defined _POSIX_VERSION]: Remove decls; not needed these days. * lib/idcache.c (getpwuid, getpwnam, getgrgid, getgrnam) [!defined _POSIX_VERSION]: Remove decls; not needed these days. * lib/pathmax.h: Include unconditionally, since other files have been getting away with it for years (MORE/BSD 4.3 is extinct now). * lib/userspec.c (getpwnam, getgrnam, getgrgid) [!defined _POSIX_VERSION]: Remove decls; not needed these days. * lib/pathmax.h (_POSIX_PATH_MAX) [!defined _POSIX_PATH_MAX]: Define to 256, not 255, as per modern POSIX. 2005-06-02 Paul Eggert Sync from coreutils. Use "file name" when talking about file names, instead of "filename" or "path", as per the GNU coding standards. * MODULES.html.sh: mkdir-p renamed from makepath. filenamecat renamed from path-concat. * modules/filenamecat: Renamed from modules/path-concat. (Files): filenamecat.h and filenamecat.c renamed from path-concat.h and path-concat.c. (configure.ac): gl_FILE_NAME_CONCAT, not gl_PATH_CONCAT. (Include): filenamecat.h, not path-concat.h. * modules/mkdir-p: Renamed from modules/makepath. (Files): mkdir-p.h and mkdir-p.c renamed from makepath.h and makepath.c. (configure.ac): gl_MKDIR_PARENTS, not gl_MAKEPATH. (Include): mkdir-p.h, not makepath.h. 2005-06-02 Paul Eggert Sync from coreutils. * m4/mkdir-p.m4: Renamed from makepath.m4. (gl_MKDIR_PARENTS): Renamed from gl_MAKEPATH. All uses changed. Rename files from makepath.c to mkdir-p.c, and from makepath.h to mkdir-p.h. * m4/filenamecat.m4: Renamed from path-concat.m4. (gl_FILE_NAME_CONCAT): Renamed from gl_PATH_CONCAT. All uses changed. Rename files from path-concat.c to filenamecat.c, and from path-concat.h to filenamecat.h. * m4/getcwd-path-max.m4: Don't use "path" or "filename" to mean "file name" in local variables or comments. * m4/rename.m4: Likewise. 2005-06-01 Bruno Haible * modules/csharpexec: New file. * MODULES.html.sh (C#): New section. 2005-06-01 Bruno Haible * m4/csharp.m4: New file, from GNU gettext. * m4/csharpexec.m4: New file, from GNU gettext. 2005-06-01 Bruno Haible * lib/csharpexec.h: New file, from GNU gettext. * lib/csharpexec.c: New file, from GNU gettext. * lib/csharpexec.sh.in: New file, from GNU gettext. 2005-05-31 Derek Price Paul Eggert Sync from cvs. * m4/glob.m4: s/MISSING_SYS_CDEFS_H/_SYS_CDEFS_H/ and comment. 2005-05-31 Derek Price Paul Eggert Sync from cvs. * lib/glob_.h: s/MISSING_SYS_CDEFS_H/_SYS_CDEFS_H/ and comment. 2005-05-29 Derek Price * config/srclist.txt (glob_.h, glob.c): Add these files. 2005-05-29 Derek Price * MODULES.html.sh: Add glob to Enhanced POSIX.2001 section. * modules/glob: New file. * modules/getlogin_r: Add link to POSIX spec in description. 2005-05-29 Derek Price Paul Eggert * m4/glob.m4: New file. 2005-05-29 Derek Price Paul Eggert * lib/glob_.h, lib/glob.c: New files. 2005-05-27 Paul Eggert * modules/fts (Files): Remove m4/inttypes-pri.m4. * modules/fts-lgpl (Depends-on): Remove gettext. 2005-05-27 Paul Eggert * m4/fts.m4 (gl_FUNC_FTS_CORE): Don't check for inttypes.h or stdint.h, and don't require gt_INTTYPES_PRI. 2005-05-27 Paul Eggert * lib/getlogin_r.c (getlogin_r): Don't set errno to 0 on return. * lib/fts.c: Don't worry about debugging on pre-C99-compatible hosts; the configuration hassle isn't worth it. Include inttypes.h and stdint.h unconditionally if FTS_DEBUG. (LONGEST_MODIFIER, PRIuMAX): Remove. 2005-05-27 Bruno Haible * lib/getlogin_r.h: Remove second include of . 2005-05-26 Paul Eggert * m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Define _POSIX_PTHREAD_SEMANTICS for Solaris. 2005-05-25 Derek Price * MODULES.html.sh: Add getlogin_r to POSIX.2001 support section. 2005-05-25 Derek Price Paul Eggert * modules/getlogin_r, m4/getlogin_r.m4: New files. * lib/getlogin_r.c, getlogin_r.h: New files. 2005-05-25 Bruno Haible Derek Price * lib/getlogin_r.h: Simplify API documentation. 2005-05-23 Derek Price * modules/minmax (Files): Add m4/minmax.m4. (configure.ac): Add gl_MINMAX. 2005-05-22 Paul Eggert * lib/fts.c (fd_safer) [_LGPL_PACKAGE]: New static function, so that unistd-safer.h (GPL'ed code) need not be included. 2005-05-22 Bruno Haible * m4/minmax.m4: New file. Based on a patch by Derek Price . 2005-05-22 Bruno Haible * lib/stdint_.h (_STDINT_H_HAVE_INT64): New macro. Use it in #ifdefs. (INT64_MIN): Fix definition. Suggested by Paul Eggert . * lib/stdint_.h (_STDINT_H_NEED_SIGNED_INT_TYPES): Renamed from NEED_SIGNED_INT_TYPES. * lib/stdint_.h (_STDINT_H_HAVE_SYSTEM_INTTYPES): Renamed from HAVE_SYSTEM_INTTYPES. 2005-05-22 Bruno Haible * lib/minmax.h: Include only when it defines MIN, MAX. Also include if it defines MIN, MAX. Based on a patch by Derek Price . 2005-05-21 Jim Meyering * modules/fts (Files): Add m4/inttypes-pri.m4. (Depends-on): Add lstat and remove gettext. Alphabetize. 2005-05-20 Paul Eggert New fts module. * lib/fts.c: Don't include "cycle-check.h" or "hash.h". (setup_dir, free_dir): New functions. (enter_dir, leave_dir): Define trivial alternatives of _LGPL_PACKAGE. Move to fts-cycle.c if !_LGPL_PACKAGE. (HT_INITIAL_SIZE, ENTER_DIR): Remove. All uses removed. (LEAVE_DIR): Fix typo: pass Fts and Ent to leave_dir. (struct Active_dir, AD_compare, AD_hash, enter_dir, leave_dir): Move to fts-cycle.c. (fts_open): Use setup_dir. (fts_close): Use free_dir. (fts_read): Have just one copy of the ENTER_DIR code rather than three. This adds a label and some gotos, but the alternatives were messier. Check for memory allocation failure when entering a dir. (fts_stat) [_LGPL_PACKAGE]: Bring back glibc cycle detection code. * lib/fts_.h (_LGPL_PACKAGE) [defined _LIBC]: New macro. (FTS): New member fts_cycle, that is a union that contains the old active_dir_ht and cycle_state. All uses changed to mention fts_cycle.ht and fts_cycle.state. * lib/fts-cycle.c: New file, containing GPL'ed code migrated out of fts.c, with the following changes: (setup_dir, free_dir): New functions. (enter_dir): Now returns bool. Return true if successful, false if memory exhausted. All callers changed. Do not bother partly cleaning up on memory allocation failure; that is free_dir's job. However, free ad if hash_insert fails, to avoid memory leak. (enter_dir, leave_dir): Accommodate change to FTS by inspecting fts->fts_options to see which union member to use. 2005-05-20 Paul Eggert * m4/fts.m4 (gl_FUNC_FTS_CORE): Renamed from gl_FUNC_FTS. (gl_FUNC_FTS, gl_FUNC_FTS_LGPL): New macros. 2005-05-20 Paul Eggert * MODULES.html.sh (File system functions): Add fts, fts-lgpl. 2005-05-20 Jim Meyering * lib/unlinkdir.h (cannot_unlink_dir) [UNLINK_CANNOT_UNLINK_DIR]: Now a macro, to pacify GCC. 2005-05-20 Eric Blake (tiny change) * m4/chown.m4 (gl_FUNC_CHOWN): Correct sense of test for honoring IDs of -1. 2005-05-20 Eric Blake (tiny change) * lib/chown.c (rpl_chown): Return -1 on failure. 2005-05-18 Paul Eggert * m4/canonicalize.m4 (AC_FUNC_CANONICALIZE_FILE_NAME]): Don't check for stddef.h. * m4/fts.m4 (gl_FUNC_FTS): Don't require AC_HEADER_STDC, as we don't use its results. Don't check for fcntl.h, stddef.h, stdlib.h, string.h, unistd.h, since we include them unconditionally. Don't require AM_STDBOOL_H, since stdbool is a prerequisite. Don't require AC_C_CONST, AC_TYPE_SIZE_T or check for ptrdiff_t since we assume C89 or better. Don't require AC_FUNC_CLOSEDIR_VOID, AC_FUNC_LSTAT, or AC_FUNC_STAT, as we don't use their results. Don't check for fchdir, memmove, memset, strrchr, as we use them unconditionally. * m4/gettimeofday.m4 (AC_FUNC_GETTIMEOFDAY_CLOBBER): Don't define GETTIMEOFDAY_CLOBBERS_LOCALTIME_BUFFER, since nobody uses it. 2005-05-18 Paul Eggert * lib/canonicalize.c: Include canonicalize.h first, to test interface. Include unconditionally, since we assume C89 now. All uses of PTR_INT_TYPE replaced by ptrdiff_t. * lib/fts.c: Include fts_.h first, to check interface. Do not include intprops.h; no longer needed. Include cycle-check.h and hash.h, since fts_.h no longer does. Remove unnecessary casts of closedir to void. (fts_build): Use a simpler method (not involving TYPE_SIGNED) to decide whether to decrement nlinks. * lib/fts_.h: Do not include hash.h or cycle-check.h; no longer needed. (FTS): Use struct hash_table * instead of Hash_table, so that we no longer need to include hash.h here. 2005-05-18 Jim Meyering * modules/dirfd (License): Change to LGPL. Most of the code is already in the public domain. 2005-05-18 Jim Meyering * m4/fts.m4 (AC_LIBSOURCES): Add intprops.h to the list. Reported by Yoann Vandoorselaere. 2005-05-17 Jim Meyering * m4/fts.m4: New file, from coreutils. 2005-05-17 Jim Meyering * lib/fts.c, lib/fts_.h: New files, from coreutils. 2005-05-14 Paul Eggert Sync from coreutils. * m4/unlinkdir.m4: New file. 2005-05-14 Paul Eggert Sync from coreutils. * lib/unlinkdir.c, lib/unlinkdir.h: New files. * lib/gethrxtime.c, lib/gethrxtime.h, lib/getpass.h, lib/mountlist.h, lib/path-concat.c, lib/regex.h, lib/unlocked-io.h, lib/xtime.h: White space changes only. * lib/makepath.c (make_path): Port to hosts where leading "//" is special. * lib/yesno.c: Include getline.h, not ctype.h. (yesno): Don't remove leading white space; POSIX doesn't allow it. Use getline to remove arbitrary restriction on response length. 2005-05-14 Paul Eggert * config/srclist-update: Spell out "Street" in FSF postal mail address; this is the style the FSF seems to prefer. * build-aux/depcomp, build-aux/install-sh, build-aux/mdate-sh, build-aux/missing, build-aux/mkinstalldirs: Sync from Automake; this updates FSF postal mail address. Sync from coreutils. * modules/unlinkdir: New file. * modules/yesno (Depends-on): Add getline. * MODULES.html.sh (File system functions): Add unlinkdir. 2005-05-13 Paul Eggert * lib/byteswap_.h, lib/getsubopt.h, lib/iconvme.h, lib/strsep.c, lib/strsep.h: Change the initial comment to refer to GPL, not LGPL. gnulib-tool will change it to LGPL as needed. * lib/__fpending.c, lib/acl.c, lib/acl.h, lib/alloca_.h, lib/allocsa.c, lib/allocsa.h, lib/argmatch.c, lib/argmatch.h, lib/argp-ba.c, lib/argp-eexst.c, lib/argp-fmtstream.c, lib/argp-fmtstream.h, lib/argp-fs-xinl.c, lib/argp-help.c, lib/argp-namefrob.h, lib/argp-parse.c, lib/argp-pv.c, lib/argp-pvh.c, lib/argp-xinl.c, lib/argp.h, lib/argz.c, lib/argz_.h, lib/asnprintf.c, lib/asprintf.c, lib/atanl.c, lib/backupfile.c, lib/backupfile.h, lib/base64.c, lib/base64.h, lib/basename.c, lib/binary-io.h, lib/byteswap_.h, lib/c-ctype.c, lib/c-ctype.h, lib/c-stack.c, lib/c-stack.h, lib/c-strtod.c, lib/calloc.c, lib/canon-host.c, lib/canonicalize.c, lib/canonicalize.h, lib/ceill.c, lib/chdir-long.c, lib/chdir-long.h, lib/chown.c, lib/classpath.c, lib/classpath.h, lib/cloexec.c, lib/closeout.c, lib/closeout.h, lib/concatpath.c, lib/config.charset, lib/copy-file.c, lib/copy-file.h, lib/cycle-check.c, lib/cycle-check.h, lib/diacrit.c, lib/diacrit.h, lib/dirfd.c, lib/dirfd.h, lib/dirname.c, lib/dirname.h, lib/dummy.c, lib/dup-safer.c, lib/dup2.c, lib/eealloc.h, lib/error.c, lib/error.h, lib/euidaccess.c, lib/exclude.c, lib/exclude.h, lib/execute.c, lib/execute.h, lib/exit.h, lib/exitfail.c, lib/exitfail.h, lib/expl.c, lib/fatal-signal.c, lib/fatal-signal.h, lib/fd-safer.c, lib/file-type.c, lib/file-type.h, lib/fileblocks.c, lib/filemode.c, lib/filemode.h, lib/findprog.c, lib/findprog.h, lib/floorl.c, lib/fnmatch.c, lib/fnmatch_.h, lib/fnmatch_loop.c, lib/fopen-safer.c, lib/free.c, lib/frexpl.c, lib/fsusage.c, lib/fsusage.h, lib/full-read.c, lib/full-read.h, lib/full-write.c, lib/full-write.h, lib/fwriteerror.c, lib/fwriteerror.h, lib/gai_strerror.c, lib/gcd.c, lib/gcd.h, lib/getaddrinfo.c, lib/getaddrinfo.h, lib/getcwd.c, lib/getcwd.h, lib/getdate.h, lib/getdate.y, lib/getdomainname.c, lib/getdomainname.h, lib/getgroups.c, lib/gethostname.c, lib/gethrxtime.c, lib/gethrxtime.h, lib/getline.c, lib/getline.h, lib/getloadavg.c, lib/getndelim2.c, lib/getndelim2.h, lib/getnline.c, lib/getnline.h, lib/getopt.c, lib/getopt1.c, lib/getopt_.h, lib/getopt_int.h, lib/getpagesize.h, lib/getpass.c, lib/getpass.h, lib/getsubopt.c, lib/getsubopt.h, lib/gettext.h, lib/gettime.c, lib/gettimeofday.c, lib/getugroups.c, lib/getusershell.c, lib/group-member.c, lib/group-member.h, lib/hard-locale.c, lib/hard-locale.h, lib/hash-pjw.c, lib/hash-pjw.h, lib/hash.c, lib/hash.h, lib/human.c, lib/human.h, lib/iconvme.c, lib/iconvme.h, lib/idcache.c, lib/inet_ntop.h, lib/intprops.h, lib/inttostr.c, lib/inttostr.h, lib/isdir.c, lib/javacomp.c, lib/javacomp.h, lib/javacomp.sh.in, lib/javaexec.c, lib/javaexec.h, lib/javaexec.sh.in, lib/lbrkprop.h, lib/lchown.c, lib/ldexpl.c, lib/linebreak.c, lib/linebreak.h, lib/linebuffer.c, lib/linebuffer.h, lib/localcharset.c, lib/localcharset.h, lib/logl.c, lib/long-options.c, lib/long-options.h, lib/lstat.c, lib/makepath.c, lib/makepath.h, lib/malloc.c, lib/mathl.h, lib/mbswidth.c, lib/mbswidth.h, lib/md5.c, lib/md5.h, lib/memcasecmp.c, lib/memcasecmp.h, lib/memchr.c, lib/memcmp.c, lib/memcoll.c, lib/memcoll.h, lib/memcpy.c, lib/memmem.c, lib/memmem.h, lib/mempcpy.c, lib/mempcpy.h, lib/memrchr.c, lib/memrchr.h, lib/memset.c, lib/minmax.h, lib/mkdir.c, lib/mkdtemp.c, lib/mkdtemp.h, lib/mkstemp.c, lib/mktime.c, lib/modechange.c, lib/modechange.h, lib/mountlist.c, lib/mountlist.h, lib/nanosleep.c, lib/obstack.c, lib/obstack.h, lib/openat.c, lib/openat.h, lib/pagealign_alloc.c, lib/pagealign_alloc.h, lib/path-concat.c, lib/path-concat.h, lib/pathmax.h, lib/pathname.h, lib/physmem.c, lib/physmem.h, lib/pipe.c, lib/pipe.h, lib/poll.c, lib/poll_.h, lib/posixtm.c, lib/posixtm.h, lib/posixver.c, lib/printf-args.c, lib/printf-args.h, lib/printf-parse.c, lib/printf-parse.h, lib/progname.c, lib/progname.h, lib/progreloc.c, lib/putenv.c, lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h, lib/raise.c, lib/readlink.c, lib/readtokens.c, lib/readtokens.h, lib/readtokens0.c, lib/readtokens0.h, lib/readutmp.c, lib/readutmp.h, lib/realloc.c, lib/ref-add.sin, lib/ref-del.sin, lib/regex.c, lib/regex.h, lib/rename.c, lib/rmdir.c, lib/rpmatch.c, lib/safe-read.c, lib/safe-read.h, lib/safe-write.c, lib/safe-write.h, lib/same.c, lib/same.h, lib/save-cwd.c, lib/save-cwd.h, lib/savedir.c, lib/savedir.h, lib/setenv.c, lib/setenv.h, lib/settime.c, lib/sh-quote.c, lib/sh-quote.h, lib/sha1.c, lib/sha1.h, lib/sig2str.c, lib/sig2str.h, lib/sincosl.c, lib/snprintf.c, lib/snprintf.h, lib/sqrtl.c, lib/stat-macros.h, lib/stat.c, lib/stdbool_.h, lib/stdint_.h, lib/stdio-safer.h, lib/stpcpy.c, lib/stpcpy.h, lib/stpncpy.c, lib/stpncpy.h, lib/strcase.h, lib/strcasecmp.c, lib/strchrnul.c, lib/strchrnul.h, lib/strcspn.c, lib/strdup.c, lib/strdup.h, lib/strerror.c, lib/strftime.c, lib/strftime.h, lib/stripslash.c, lib/strndup.c, lib/strndup.h, lib/strnlen.c, lib/strpbrk.c, lib/strpbrk.h, lib/strsep.c, lib/strsep.h, lib/strstr.c, lib/strstr.h, lib/strtod.c, lib/strtoimax.c, lib/strtok_r.c, lib/strtok_r.h, lib/strtol.c, lib/strtoll.c, lib/strtoul.c, lib/strtoull.c, lib/strverscmp.c, lib/strverscmp.h, lib/sysexit_.h, lib/tempname.c, lib/time_r.c, lib/time_r.h, lib/timegm.c, lib/timegm.h, lib/timespec.h, lib/trigl.c, lib/trigl.h, lib/ucs4-utf16.h, lib/ucs4-utf8.h, lib/unicodeio.c, lib/unicodeio.h, lib/unistd-safer.h, lib/unlocked-io.h, lib/unsetenv.c, lib/userspec.c, lib/utf16-ucs4.h, lib/utf8-ucs4.h, lib/utime.c, lib/utimecmp.c, lib/utimecmp.h, lib/utimens.c, lib/vasnprintf.c, lib/vasnprintf.h, lib/vasprintf.c, lib/vasprintf.h, lib/version-etc-fsf.c, lib/version-etc.c, lib/version-etc.h, lib/vsnprintf.c, lib/vsnprintf.h, lib/w32spawn.h, lib/wait-process.c, lib/wait-process.h, lib/xalloc-die.c, lib/xalloc.h, lib/xallocsa.c, lib/xallocsa.h, lib/xasprintf.c, lib/xgetcwd.c, lib/xgetcwd.h, lib/xgetdomainname.c, lib/xgetdomainname.h, lib/xgethostname.c, lib/xmalloc.c, lib/xmemcoll.c, lib/xnanosleep.c, lib/xreadlink.c, lib/xreadlink.h, lib/xsetenv.c, lib/xsetenv.h, lib/xsize.h, lib/xstrndup.c, lib/xstrndup.h, lib/xstrtod.c, lib/xstrtod.h, lib/xstrtoimax.c, lib/xstrtol.c, lib/xstrtol.h, lib/xstrtoumax.c, lib/xtime.h, lib/xvasprintf.c, lib/xvasprintf.h, lib/yesno.c, lib/yesno.h: Update FSF postal mail address. 2005-05-13 Paul Eggert * MODULES.html.sh, README, gnulib-tool, tests/test-base64.c, tests/test-memmem.c, tests/test-stpncpy.c: Update FSF postal mail address. 2005-05-13 Bruno Haible * lib/stdint_.h (int64_t, uint64_t, int_least64_t, uint_least64_t, int_fast64_t, uint_fast64_t, intmax_t, uintmax_t, INT64_MIN, INT64_MAX, UINT64_MAX, INT_LEAST64_MIN, INT_LEAST64_MAX, UINT_LEAST64_MAX, INT_FAST64_MIN, INT_FAST64_MAX, UINT_FAST64_MAX, INTMAX_MIN, INTMAX_MAX, UINTMAX_MAX, INT64_C, UINT64_C, INTMAX_C, UINTMAX_C): Add support for 64-bit integers in the MSVC compiler. 2005-05-12 Sergey Poznyakoff * modules/getdate (Makefile.am): Add getdate.c to EXTRA_DIST 2005-05-12 Eric Blake (tiny change) * gnulib-tool (func_import): Sort and uniquify recommended includes. 2005-05-11 Paul Eggert * doc/getdate.texi (General date syntax): Don't say that date date --iso-8601=ns generates acceptable dates; it doesn't yet. Problem reported by Nic Ferrier. 2005-05-10 Yoann Vandoorselaere * lib/getaddrinfo.c: Don't fail when SOCK_STREAM or SOCK_DGRAM are specified in ai_socktype. Fix invalid ai_protocol check. ai_protocol is usually set to 0 or depending on ai_family/ai_socktype to IPPROTO_TCP / IPPROTO_UDP. Checking for SOCK_STREAM / SOCK_DGRAM in ai_protocol was invalid. Set ai_socktype / ai_protocol in the returned addrinfo structure. 2005-05-10 Simon Josefsson * m4/getaddrinfo.m4: Look in libnsl/libsocket for getaddrinfo, from Yoann Vandoorselaere . 2005-05-10 Karl Berry * doc/fdl.texi, gpl.texi, lgpl.texi, COPYING: update FSF address (from http://www.gnu.org/licenses). * doc/COPYING.LIB: also rename to COPYING.LESSER. * doc/COPYING.DOC: remove; per rms, only needed in doc files, so fdl.texi suffices. 2005-05-10 Karl Berry * config/srclist.txt (COPYING.LESSER): rename from COPYING.LIB. (COPYING.DOC): remove. * config/srclist-update: new FSF address. 2005-05-10 Derek Price * m4/getopt.m4 (gl_GETOPT): Check for Solaris 10 bug, not decl, when possible. 2005-05-09 Yoann Vandoorselaere Bruno Haible * modules/inet_ntop: New file. * MODULES.html.sh (Support for systems lacking POSIX:2001): Add inet_ntop. 2005-05-09 Yoann Vandoorselaere Bruno Haible * m4/inet_ntop.m4: New file. 2005-05-09 Yoann Vandoorselaere Bruno Haible * lib/inet_ntop.h: New file. * lib/inet_ntop.c: New file, from glibc with modifications. 2005-05-09 Paul Eggert * modules/time_r (License): Change to LGPL. * modules/extensions (License): Change to LGPL. Actually, the license is more permissive than that, but currently gnulib-tool doesn't know how to handle more-permissive licenses. * modules/stat-macros (Depends-on): Don't depend on stat-macros (!). Problem reported by Dave Love. 2005-05-08 Jim Meyering * lib/classpath.c (PATH_SEPARATOR): Remove insignificant trailing blank. 2005-05-06 Paul Eggert * modules/argmatch (Depends-on): Add stdbool. * modules/backupfile (Depends-on): Likewise. * modules/chdir-long (Depends-on): Likewise. * modules/closeout (Depends-on): Likewise. * modules/cycle-check (Depends-on): Likewise. * modules/dirname (Depends-on): Likewise. * modules/fnmatch (Depends-on): Likewise. * modules/fsusage (Depends-on): Likewise. * modules/fwriteerror (Depends-on): Likewise. * modules/getcwd (Depends-on): Likewise. * modules/getloadavg (Depends-on): Likewise. * modules/hard-locale (Depends-on): Likewise. * modules/makepath (Depends-on): Likewise. * modules/mountlist (Depends-on): Likewise. * modules/nanosleep (Depends-on): Likewise. * modules/posixtm (Depends-on): Likewise. * modules/quotearg (Depends-on): Likewise. * modules/readtokens (Depends-on): Likewise. * modules/readtokens0 (Depends-on): Likewise. * modules/readutmp (Depends-on): Likewise. * modules/save-cwd (Depends-on): Likewise. * modules/strftime (Depends-on): Likewise. * modules/userspec (Depends-on): Likewise. * modules/utimecmp (Depends-on): Likewise. * modules/xgetcwd (Depends-on): Likewise. * modules/xnanosleep (Depends-on): Likewise. * modules/xstrtod (Depends-on): Likewise. * modules/yesno (Depends-on): Likewise. 2005-05-05 Paul Eggert * m4/getopt.m4 (gl_GETOPT): Check for Solaris 10 getopt, and avoid needless checks. 2005-05-01 Paul Eggert Merge from coreutils. Among other things, add bulletproofing for cases where stdin, stdout, or stderr are closed. * lib/fd-safer.c: New file. * lib/fcntl-safer.h, open-safer.c: Remove. * lib/chdir-long.c: Fix comment "fetish" -> "coreutils". * lib/dup-safer.c: Include unistd-safer.h first. Don't include errno.h. (dup_safer) [!defined F_DUPFD]: Let fd_safer do the real work. * lib/file-type.h: Don't assume invoker included sys/stat.h first. * lib/file-type.c: Rely on file-type.h change. * lib/getloadavg.c: Include unistd-safer.h. (getloadavg): Use safer open. * lib/getusershell.c: Include "stdio-safer.h". (getusershell): Use safer fopen. * lib/long-options.c (long_options): Use NULL rather than 0. * lib/modechange.h (mode_free): Remove; all callers changed to invoke 'free'. * lib/modechange.c: Likewise. xstrtol.h, stdbool.h, stddef.h: Don't include; no longer needed. (MODE_DONE): New constant. (struct mode_change): Remove 'next' member. (make_node_op_equals): New function; like the old one of the same name, except it allocates an array. (mode_compile, mode_create_from_ref): Use it. (mode_compile): Allocate result as an array, not a linked list. Parse octal string ourself, so that we catch mistakes like "+0". (mode_adjust): Arg is an array, not a linked list. * lib/modechange.c: Include stat-macros.h, xalloc.h. (S_ISDIR, S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR): (S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH, S_IRXWU): (S_IRWXG, S_IRWXO, CHMOD_MODE_BITS): Remove. This is now stat-macros.h's job. (talloc): Remove. All callers replaced by xalloc, so that our invokers don't have to worry about reporting memory failures. (make_node_op_equals): Remove. (MODE_ORDINARY_CHAGE, MODE_X_IF_ANY_X, MODE_COPY_EXISTING): New constants. (struct mode_change): Moved here from modechange.h. (mode_append_entry): Remove. (mode_compile): Remove MASKED_OPS arg, since it encouraged apps to have incorrect behavior. Use simpler algorithm for head and tail. Don't futz with umask; that's now the job of mode_adjust. Detect more invalid usages rather than having somewhat-random behavior. Don't insert an "a=" action, as that leads to incorrect behavior. (mode_compile, mode_create_from_ref): Return NULL on error instead of an enum, since now there's only one way to have an error. All callers changed. (mode_adjust): Accept new arg UMASK_VALUE, and interpret it at the correct time. Simplify calculation of "+u" and its ilk. Don't mishandle "+X". (mode_free): Remove "register" and localize decls. * lib/modechange.h (MODE_X_IF_ANY_X, MODE_COPY_EXISTING): (struct mode_change): Move to modechange.c; callers don't need to see this stuff. (MODE_MASK_EQUALS, MODE_MASK_PLUS, MODE_MASK_MINUS, MODE_MASK_ALL): (MODE_INVALID, MODE_MEMORY_EXHAUSTED, MODE_BAD_REFERENCE): Remove. (mode_change, mode_adjust): Reflect the new signatures noted above. * lib/nanosleep.c (rpl_nanosleep): Include "timespec.h" before macros that might redefine system include files. (siginterrupt) [!HAVE_SIGINTERRUPT]: New macro. (my_usleep): Use NULL rather than (void *) 0. (rpl_nanosleep) [!defined SA_NOCLDSTOP]: Use siginterrupt to specify that system calls should be interrupted. (rpl_nanosleep): Move initialization of suspended closer to call of my_usleep. * lib/readutmp.h (read_utmp): New arg OPTIONS. All uses changed. * lib/readutmp.c: Likewise. Include signal.h, stdbool.h. (desirable_utmp_entry): New function. (read_utmp) [defined UTMP_NAME_FUNCTION]: Redo memory allocation using x2nrealloc, to simplify logic. (read_utmp) [!defined UTMP_NAME_FUNCTION]: Check for overflow in size calculation. Do not assume utmp file is a regular file. * lib/readutmp.h (UT_PID): Moved here from ../src/who.c. (READ_UTMP_CHECK_PIDS): New constant. * lib/save-cwd.c: Include unistd-safer.h. (save_cwd): Use fd_safer. * lib/tempname.c (S_ISDIR, S_IRUSR, S_IRUSR, S_IWUSR, S_IXUSR): Remove. [!_LIBC] Include "stat-macros.h" instead. * lib/unistd-safer.h (fd_safer): New decl. 2005-05-01 Paul Eggert * modules/getloadavg (Depends-on): Add unistd-safer. * modules/getusershell (Depends-on): Add stdio-safer. * modules/lstat (Depends-on): Remove xalloc. * modules/mkstemp (Depends-on): Add stat-macros. * modules/modechange (Depends-on): Remove xstrtol. Add stat-macros, xalloc. * modules/save-cwd (Depends-on): Add unistd-safer. * modules/stdio-safer (Makefile.am): Remove lib_SOURCES. * modules/unistd-safer (Files): Add lib/fd-safer.c (Makefile.am): Remove lib_SOURCES. * MODULES.html.sh (Enhancements for POSIX:2001 functions): Remove fcntl-safer; unistd-safer supersedes it. 2005-05-01 Paul Eggert * m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Don't require AC_HEADER_STAT. * m4/lchown.m4 (gl_FUNC_CHOWN): Likewise. (gl_PREREQ_CHOWN): Remove. * m4/lstat.m4 (gl_FUNC_LSTAT): Require AC_FUNC_LSTAT instead of calling it. Don't require AC_HEADER_STAT. (gl_PREREQ_LSTAT): Remove. * m4/mkstemp.m4 (gl_PREREQ_TEMPNAME): Check stdint.h only once. Don't require AC_HEADER_STAT. * m4/rmdir.m4 (gl_FUNC_RMDIR): Don't require AC_HEADER_STAT. (gl_PREREQ_RMDIR): Remove. * m4/canonicalize.m4 (AC_FUNC_CANONICALIZE_FILE_NAME): Don't mention stat-macros.h or AC_HEADER_STAT, since we'll make the stat-macros module a prerequisite. * m4/file-type.m4 (gl_FILE_TYPE): Likewise. * m4/filemode.m4 (gl_FILEMODE): Likewise. * m4/makepath.m4 (gl_MAKEPATH): Likewise. * m4/modechange.m4 (gl_MODECHANGE): Likewise. * m4/clock_time.m4 (gl_CLOCK_TIME): Use gl_ rather than fetish_ for variable names. * m4/rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Renamed from fetish_FUNC_RMDIR_NOTEMPTY. All uses changed. Use gl_ for variable prefixes. * m4/fcntl-safer.m4: Remove. * m4/stdio-safer.m4 (gl_STDIO_SAFER): Use AC_LIBSOURCES and AC_LIBOBJ. * m4/unistd-safer.m4 (gl_UNISTD_SAFER): Likewise. Invoke gl_PREREQ_FD_SAFER. (gl_PREREQ_FD_SAFER): New macro. * m4/nanosleep.m4 (gl_PREREQ_NANOSLEEP): Check for siginterrupt. * m4/readutmp.m4 (gl_READUTMP): Require AC_C_INLINE. Use AC_CHECK_HEADERS_ONCE and AC_CHECK_FUNCS_ONCE when possible. Remove duplicate call to AC_LIBOBJ(readutmp). (gl_PREREQ_READUTMP): Remove. All uses inlined. * m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Check for message, not for MAP_ANON. Problem reported by Moriyoshi Koizumi to bug-cvs. 2005-05-01 Paul Eggert * MODULES.html.sh (Misc): Add byteswap. 2005-05-01 Oskar Liljeblad * modules/getcwd (Depends-on): Add extensions. * modules/openat (Depends-on): Likewise. 2005-05-01 Oskar Liljeblad * modules/byteswap: New file. 2005-05-01 Oskar Liljeblad * m4/byteswap.m4: New file. 2005-05-01 Oskar Liljeblad * lib/byteswap_.h: New file. 2005-04-25 Karl Berry * m4/gettext.m4: Update from GNU gettext 0.14.4. 2005-04-25 Albert Chin * lib/regex.c: Include , as a workaround to a Compaq Desktop Toolkit C bug. 2005-04-21 Oskar Liljeblad * gnulib-tool (Options): Add -s for --symlink/--symbolic. (func_ln_if_changed): Remove forcibly for no error message in case file does not exist. 2005-04-19 Simon Josefsson * gnulib-tool (Options): Make --symlink mean --symbolic. 2005-04-18 Oskar Liljeblad * doc/gnulib.texi (Initial import): Fix. Mention --aux-dir. 2005-04-16 Simon Josefsson * modules/getpass-gnu (Makefile.am): Don't mention getpass.h. 2005-04-15 Simon Josefsson * m4/getpass.m4 (gl_FUNC_GETPASS): Use AC_LIBSOURCES. 2005-04-15 Simon Josefsson * gnulib-tool: Rename --symlink to --symbolic. 2005-04-15 Oskar Liljeblad * gnulib-tool: Add -s, --symlink option to gnulib-tool to make symbolic links to files instead of copying/moving. Add --aux-dir, specifying directory relative --dir where auxiliary build tools are placed. 2005-04-14 Bruno Haible * modules/allocsa (License): Change to LGPL. Requested by Yoann Vandoorselaere . 2005-04-13 Paul Eggert * lib/getdate.y (zone): Allow relunit_snumber after tZONE, so that "UTC +1 second" continues to work. Problem reported by Dmitry V. Levin. (relunit_snumber): New rule. (relunit): Use it. 2005-04-12 Paul Eggert * lib/getdate.y (universal_time_zone_table): New constant. (time_zone_table): Remove GMT, UT, UTC entries; they're now in universal_time_zone_table. (lookup_zone): Prefer universal_time_zone_table to local_time_zone_table, so that "GMT" time stamps are allowed in London during the summer. Problem reported by Ian Abbott. 2005-04-12 Jim Meyering * lib/human.c (humblock): Set *options even when returning due to xstrtoumax conversion failure. Thanks to a used-uninitialized warning from gcc-4. 2005-04-09 Jim Meyering * lib/posixtm.c (posixtime) [lint]: Avoid spurious warning from gcc-4's -Wuninitialized: initialize tm0.tm_year. 2005-04-04 Paul Eggert * lib/getdate.y (parser_control): rels_seen is now a boolean, not a count, since there's no maximum. All uses changed. Add member dsts_seen. (local_zone): Accumulate dsts_seen rather than relying on tm_isdst not being INT_MAX. (get_date): Initialize dsts_seen, and check that it doesn't go over 1. Use pc_rels_seen to decide whether a date is absolute. * lib/getdate.y (number): Don't overwrite year. (get_date): Initialize pc.year.digits to 0, not 4, to enable above check. 2005-04-02 Simon Josefsson * lib/getaddrinfo.h: Fix OpenBSD compilation failure, inspired by tiny patch from Yoann Vandoorselaere . 2005-03-28 Eric Blake (tiny change) * m4/getcwd-path-max.m4: Return success on systems such as Cygwin where no absolute path name can be longer than PATH_MAX. 2005-03-27 Jim Meyering * lib/argmatch.c: Clarify comment: null-terminated -> NULL-terminated. 2005-03-26 Paul Eggert * lib/intprops.h (INT_STRLEN_BOUND, INT_BUFSIZE_BOUND): "one's complement" -> "ones' complement" in comment, as per Knuth. "value of type" -> "type or expression" in comment. * lib/mktime.c, strftime.c: Propagate intprops.h comment nits. 2005-03-26 Jim Meyering Comment nits. * lib/intprops.h: Add the apostrophe in `(one|two)'s complement'. Correct typos: s/or/of/. 2005-03-26 Jim Meyering * modules/check-include-files: Move to ../ and rename to... * check-module: ...this. 2005-03-25 Jim Meyering * modules/xvasprintf (Files): Add xalloc.h. 2005-03-23 Paul Eggert * modules/gettext (Files): config/config.rpath -> build-aux/config.rpath * modules/iconv (Files): Likewise. Problem reported by Oskar Liljeblad. 2005-03-23 Jim Meyering * modules/check-include-files: New script to check for missing dependencies, multiple includes, etc. * modules/c-strtold (Depends-on): Add xalloc. * modules/c-strtod (Depends-on): Add xalloc. * modules/hash (Depends-on): Add xalloc. (Files): Remove lib/xalloc.h. * modules/gethrxtime (Files): Add lib/gethrxtime.h. * modules/userspec (Files): Add lib/inttostr.h. 2005-03-23 Jim Meyering * lib/canonicalize.c: Remove duplicate `#include "stat-macros.h"'. 2005-03-22 Jim Meyering * modules/stat-macros: New module. * modules/canonicalize, modules/euidaccess, modules/file-type, * modules/filemode, modules/lchown, modules/makepath, * modules/rmdir, modules/stat: Depend on new stat-macros module rather than listing lib/stat-macros.h manually. Don't add stat-macros.h to lib_SOURCES or list it in Files: section. 2005-03-22 Jim Meyering * m4/stat-macros.m4 (gl_STAT_MACROS): New file/macro. 2005-03-22 Bruno Haible * config/srclist.txt: Replace target directory 'config' with 'build-aux'. * config/config.guess, config.sub, config.rpath, depcomp, install-sh: * config/mdate-sh, missing, mkinstalldirs, texinfo.tex: Move to ../build-aux/. 2005-03-21 Paul Eggert * modules/chdir-long (Depends-on): Add mempcpy. * modules/acl, modules/backupfile, modules/c-strtod, modules/c-strtold, modules/canon-host, modules/canonicalize, modules/cloexec, modules/closeout, modules/dirfd, modules/dirname, modules/exclude, modules/exitfail, modules/file-type, modules/filemode, modules/fpending, modules/fsusage, modules/getcwd, modules/getdate, modules/getline, modules/getpagesize, modules/getpass, modules/getugroups, modules/group-member, modules/hard-locale, modules/hash, modules/human, modules/idcache, modules/inttostr, modules/long-options, modules/makepath, modules/md5, modules/memcasecmp, modules/memcoll, modules/modechange, modules/mountlist, modules/path-concat, modules/pathmax, modules/physmem, modules/posixtm, modules/posixver, modules/quote, modules/quotearg, modules/readtokens, modules/readutmp, modules/safe-read, modules/safe-write, modules/same, modules/savedir, modules/settime, modules/sha1, modules/sig2str, modules/strdup, modules/strftime, modules/strndup, modules/strverscmp, modules/timespec, modules/unlocked-io, modules/userspec, modules/utimecmp, modules/utimens, modules/xalloc, modules/xstrtol, modules/yesno: Remove lib_SOURCES line from Makefile.am section, as this is now done automatically by the corresponding Autoconf macro. 2005-03-21 Jim Meyering Changes imported from coreutils. * lib/cycle-check.c: Don't include xalloc.h. * lib/path-concat.c: Don't include assert.h. (path_concat): Remove assertion that would have triggered for ABASE starting with more than one slash. Reported by Andreas Schwab. * lib/path-concat.c (path_concat): Set *BASE_IN_RESULT properly when ABASE is an absolute file name. Correct the description of this function. Include . Add an assertion and a test driver. This fixes a bug introduced on 2004-07-02. Andreas Schwab reported the resulting failure of cp --parents: http://lists.gnu.org/r/bug-coreutils/2005-01/msg00130.html 2005-03-21 Jim Meyering * m4/chdir-long.m4 (gl_PREREQ_CHDIR_LONG): Invoke gl_FUNC_MEMRCHR. * m4/memrchr.m4 (gl_FUNC_MEMRCHR): Check for memrchr decl. 2005-03-21 Jim Meyering and Paul Eggert * m4/acl.m4, m4/backupfile.m4, m4/c-strtod.m4, m4/canon-host.m4, m4/canonicalize.m4, m4/cloexec.m4, m4/closeout.m4, m4/dirfd.m4, m4/dirname.m4, m4/exclude.m4, m4/exitfail.m4, m4/file-type.m4, m4/filemode.m4, m4/fpending.m4, m4/fsusage.m4, m4/getcwd.m4, m4/getdate.m4, m4/getline.m4, m4/getpagesize.m4, m4/getpass.m4, m4/getugroups.m4, m4/group-member.m4, m4/hard-locale.m4, m4/hash.m4, m4/human.m4, m4/idcache.m4, m4/inttostr.m4, m4/long-options.m4, m4/makepath.m4, m4/md5.m4, m4/memcasecmp.m4, m4/memcoll.m4, m4/modechange.m4, m4/mountlist.m4, m4/nanosleep.m4, m4/path-concat.m4, m4/pathmax.m4, m4/physmem.m4, m4/posixtm.m4, m4/posixver.m4, m4/quote.m4, m4/quotearg.m4, m4/readtokens.m4, m4/readutmp.m4, m4/safe-read.m4, m4/safe-write.m4, m4/same.m4, m4/savedir.m4, m4/settime.m4, m4/sha1.m4, m4/sig2str.m4, m4/strdup.m4, m4/strftime.m4, m4/strndup.m4, m4/strverscmp.m4, m4/timespec.m4, m4/unlocked-io.m4, m4/userspec.m4, m4/utimecmp.m4, m4/utimens.m4, m4/xalloc.m4, m4/xnanosleep.m4, m4/xstrtol.m4, m4/yesno.m4: Use AC_LIBSOURCES and AC_LIBOBJ to indicate source and object files for these modules. 2005-03-18 Paul Eggert * lib/strftime.c (my_strftime): If the underlying strftime returns 0 (which shouldn't happen), generate nothing instead of returning 0 immediately, so that nstrftime (NULL, ...) doesn't return 0. 2005-03-16 Bruno Haible * modules/stdint (Makefile.am): Use HAVE_LONG_LONG_64BIT instead of HAVE_LONGLONG_64BIT. 2005-03-16 Bruno Haible * m4/stdint.m4 (gl_STDINT_H): Define HAVE_LONG_LONG_64BIT instead of HAVE_LONGLONG_64BIT. 2005-03-16 Bruno Haible * lib/stdint_.h: Use HAVE_LONG_LONG_64BIT instead of HAVE_LONGLONG_64BIT. 2005-03-15 Paul Eggert * lib/strftime.c (my_strftime): Prepend space to format so that we can reliably distinguish strftime failure from empty output on POSIX hosts. 2005-03-15 Paul Eggert * lib/iconvme.c (SIZE_MAX): New macro, if not already defined. (iconv_string): Don't guess a size-zero buffer, as that might cause buffer overrun. Instead, avoid multiplying by MB_LEN_MAX if the result would be 'too large', where 'too large' is (heuristically) the square root of SIZE_MAX, divided by MB_LEN_MAX to allay overflow concerns. This will prevent some unwanted malloc failures when the inputs are very large. 2005-03-15 Karl Berry * config/srclist.txt (config.rpath): from gettext. * config/config.rpath: update. 2005-03-15 Bruno Haible * lib/regex.c (byte_re_match_2_internal): Rename local variable 'not' to 'negate'. * lib/regex.c (byte_re_match_2_internal): Reduce scope of same_str_p variable. * lib/regex.c (EXTEND_BUFFER, regcomp): Cast the realloc/malloc results. 2005-03-14 Simon Josefsson * lib/timegm.h: Use proper prototype CPP guards, reported by Dave Love . 2005-03-14 Paul Eggert * lib/mktime.c (TYPE_TWOS_COMPLEMENT, TYPE_ONES_COMPLEMENT, TYPE_SIGNED_MAGNITUDE, TYPE_MINIMUM, TYPE_MAXIMUM): Sync from intprops.h. * lib/strtol.c: Likewise. 2005-03-14 Jim Meyering * lib/strftime.c (my_strftime) [HAVE_STRFTIME && ! (_NL_CURRENT && HAVE_STRUCT_ERA_ENTRY)]: Initialize the first byte of ubuf[] to be nonzero so that we (and caller) can detect the difference between a valid zero-length expansion and an error return, even when the underlying strftime fails before writing anything into that location. 2005-03-14 Bruno Haible * m4/lib-link.m4, gettext.m4, nls.m4, po.m4: Update from GNU gettext 0.14.3. 2005-03-10 Jim Meyering * m4/save-cwd.m4 (gl_SAVE_CWD): Check for fchdir. 2005-03-10 Jim Meyering * lib/save-cwd.c [!HAVE_FCHDIR]: Define open, fchdir, and chdir_long so that this module works on systems without fchdir. 2005-03-09 Paul Eggert Factor int-properties macros into a single file, except for glibc-related files. * lib/intprops.h: New file. * lib/getloadavg.c: Include it instead of limits.h. (INT_STRLEN_BOUND): Remove. * lib/human.c: Include intprops.h. (group_number): Use INT_STRLEN_BOUND instead of rolling it ourself. * lib/human.h (LONGEST_HUMAN_READABLE): Use 146/485 rather than 302/1000. * lib/inttostr.h: Include intprops.h instead of limits.h. (INT_STRLEN_BOUND, INT_BUFSIZE_BOUND): Remove. * lib/mktime.c (TYPE_IS_INTEGER, TYPE_TWOS_COMPLEMENT): New macros, for consistency with intprops.h. (time_t_is_integer, twos_complement_arithmetic): Use them. * lib/sig2str.h: Include , intprops.h. (INT_STRLEN_BOUND): Remove. * lib/strftime.c (TYPE_SIGNED): Remove. (INT_STRLEN_BOUND): Switch to same implementation as intprops.h. * lib/strtol.c: Adjust comments to match intprops.h. * lib/userspec.c: Include intprops.h. (TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Remove. * lib/utimecmp.c, xnanosleep.c, xstrtol.c: Likewise. * lib/utimecmp.c (utimecmp): Use TYPE_IS_INTEGER, TYPE_TWOS_COMPLEMENT instead of rolling our own expressions. * lib/xstrtol.c: Include xstrtol.h first, to test interface. * lib/strftime.c: Include . Use bool where appropriate, instead of int. (my_strftime): Do not mishandle years close to INT_MAX, by doing the right thing even if adding 1900 would overflow. Similarly for tm_mon + 1 and tm_yday + 1. Make %Y always equivalent to %C%y, and similarly for %G and %g. (DO_NUMBER, DO_NUMBER_SPACEPAD): Set digits to d, not a conditional. (DO_SIGNED_NUMBER): New macro. (my_strftime) [HAVE_TZNAME]: Don't dump core if tp->tm_dst > 1. 2005-03-07 Bruno Haible * m4/mmap-anon.m4 (MAP_FILE, MAP_FAILED): Remove definitions. 2005-03-07 Bruno Haible * lib/pagealign_alloc.c (MAP_FILE, MAP_FAILED): Define fallbacks. 2005-03-04 Derek R. Price * gnulib-tool (func_cp_if_changed, func_mv_if_changed): New functions. (func_import): Only replace files via --import when they have actually changed. 2005-03-03 Derek R. Price * m4/mmap-anon.m4: New file. * m4/pagealign_alloc.m4: New file. 2005-03-03 Derek R. Price Bruno Haible * modules/pagealign_alloc: New file. * MODULES.html.sh (Memory management functions): Add pagealign_alloc. 2005-03-03 Derek R. Price Bruno Haible * lib/pagealign_alloc.h: New file. * lib/pagealign_alloc.c: New file. 2005-03-03 Bruno Haible * m4/inttypes.m4, isc-posix.m4, once-only.m4: Use an all-permissive copyright notice, recommended by RMS. 2005-03-02 Bruno Haible * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Undo the replacement here. Because of AIX, the replacement has to be done only after is included, therefore not in config.h. stpncpy.h does the replacement, and stpncpy.c uses it. 2005-03-02 Bruno Haible * lib/stpncpy.h (stpncpy): Define as a macro without arguments, so that stpncpy.c uses it. 2005-03-01 Paul Eggert Remove workaround for bug in Linux kernel 2.6.8 or thereabouts. The workaround isn't strictly needed for POSIX conformance, and it's too much of a pain to configure and maintain. We'll ask people to fix their kernels instead. * lib/xnanosleep.c: Don't include gethrxtime.h or xtime.h. (NANOSLEEP_BUG_WORKAROUND): Remove. (xnanosleep): Remove the workaround. 2005-03-01 Paul Eggert * modules/gettime (Makefile.am): Remove lib_SOURCES line. Reported by Derek Price. (Include): Add "timespec.h". * modules/xnanosleep (Depends-on): Remove gethrxtime. 2005-03-01 Paul Eggert * m4/xnanosleep.m4 (gl_XNANOSLEEP): Remove configuration attempting to detect nanosleep bug. 2005-03-01 Bruno Haible * lib/vasnprintf.c (EOVERFLOW): Define to a fallback if needed. 2005-02-26 Paul Eggert * modules/gethrxtime: New file. * modules/xnanosleep (Files): Add m4/xnanosleep.m4. (Depends-on): Add gethrxtime. (configure.ac): Add gl_XNANOSLEEP. (Makefile.am): Remove lib_SOURCES line. 2005-02-25 Paul Eggert * m4/gethrxtime.m4, m4/xnanosleep.m4: New files. * m4/gettime.m4 (gl_GETTIME): Check for nanotime. 2005-02-25 Paul Eggert * lib/gethrxtime.h, lib/gethrxtime.c, lib/xtime.h: New files. * lib/timespec.h (gettime): Return void, since it always succeeds now. All uses changed. * lib/gettime.c (gettime): Likewise. [HAVE_NANOTIME]: Prefer nanotime. Assume gettimeofday succeeds, as POSIX requires. Assime time () succeeds, since other code already does. * lib/xnanosleep.c: Include xtime.h and gethrxtime.h, not xalloc.h. (timespec_subtract): Remove. (NANOSLEEP_BUG_WORKAROUND): New constant. (xnanosleep): Use gethrxtime rather than gettime; this simplifies things considerably. Use it only on GNU/Linux hosts, since the workaround shouldn't be needed elsewhere. 2005-02-24 Bruno Haible * modules/gettext (Files): Add m4/glibc2.m4. 2005-02-24 Bruno Haible * m4/gettext.m4, intdiv0.m4, intmax.m4, inttypes-pri.m4, lcmessage.m4: * m4/lib-link.m4, lib-prefix.m4, nls.m4, po.m4, printf-posix.m4: * m4/progtest.m4: Update from GNU gettext 0.14.2. * m4/glibc2.m4: New file, from GNU gettext 0.14.2. 2005-02-24 Bruno Haible * lib/localcharset.c: Update from GNU gettext 0.14.2. * lib/config.charset: Update from GNU gettext 0.14.2. 2005-02-24 Bruno Haible * lib/gettext.h: Update from GNU gettext 0.14.2. 2005-02-23 Simon Josefsson * m4/iconvme.m4: New file. 2005-02-23 Jim Meyering * m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Revert yesteday's change. Thanks to Bruno Haible for catching it. 2005-02-22 Simon Josefsson * modules/iconvme: New file. * MODULES.html.sh: Add iconvme. 2005-02-22 Simon Josefsson * lib/iconvme.h, lib/iconvme.c: New files, from libc. 2005-02-22 Simon Josefsson * config/srclist.txt: Sync iconvme.h, iconvme.c from libc. 2005-02-22 Jim Meyering * m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Fix typo: s/ifndef/ifdef/. 2005-02-20 Neil Conway * lib/xgethostname.c (xgethostname): Check for ENOMEM, which is returned by OSX/Darwin if the specified buffer is not large enough for the hostname. 2005-02-03 Sergey Poznyakoff * lib/argp-help.c (__argp_help): Create a fake struct argp_state and pass it to _help, otherwise the latter coredumps trying to dereference state.root_argp. 2005-02-03 Paul Eggert * modules/chdir-long (Depends-on): Add memrchr. * modules/memrchr (Files): Add lib/memrchr.h. (Include): "memrchr.h". 2005-02-03 Paul Eggert * m4/memrchr.m4 (gl_FUNC_MEMRCHR): Add AC_LIBSOURCES, for memrchr.h. 2005-02-03 Paul Eggert * lib/memrchr.h: New file. * lib/chdir-long.c: Include it. * lib/memrchr.c [!defined _LIBC]: Include it rather than Don't bother including stddef.h. 2005-02-01 Paul Eggert * lib/mountlist.h (MOUNTLIST_H_): New macro, to protect against double inclusion. Include , for dev_t. (ME_DUMMY, ME_REMOTE): Move from here.... * lib/mountlist.c (ME_DUMMY, ME_REMOTE): To here. (ME_DUMMY): Count "subfs" as a dummy. Problem reported by Dmitry V. Levin. Include mountlist.h first, to test the interface. 2005-01-29 Bruno Haible * lib/progname.c (program_name): Initialize. Needed when linking statically on MacOS X. 2005-01-28 Paul Eggert Sync from coreutils. * modules/getloadavg (Files): Remove m4/getloadavg.m4. (Depends-on): Add c-strtod. (configure.ac): Replace gl_FUNC_GETLOADAVG with AC_FUNC_GETLOADAVG. 2005-01-28 Paul Eggert Sync from coreutils. * m4/getloadavg.m4, glibc.m4, search-libs.m4: Remove. Remove files that are specific to coreutils. * m4/check-decl.m4, jm-macros.m4, lib-check.m4, prereq.m4: Remove. 2005-01-28 Bruno Haible * modules/javacomp: New file. * MODULES.html.sh (Java): Add javacomp. 2005-01-28 Bruno Haible * m4/javacomp.m4: New file, from GNU gettext. 2005-01-28 Bruno Haible * lib/javacomp.sh.in: New file, from GNU gettext. * lib/javacomp.h: New file, from GNU gettext. * lib/javacomp.c: New file, from GNU gettext. 2005-01-26 Simon Josefsson * lib/gai_strerror.c: Use GPL in header. 2005-01-26 Bruno Haible * modules/javaexec: New file. * MODULES.html.sh (Java): Add javaexec. 2005-01-26 Bruno Haible * m4/javaexec.m4: New file, from GNU gettext. 2005-01-26 Bruno Haible * lib/javaexec.sh.in: New file, from GNU gettext. * lib/javaexec.h: New file, from GNU gettext. * lib/javaexec.c: New file, from GNU gettext. 2005-01-24 Sergey Poznyakoff * modules/lchown (Depends-on): Remove lchown.h 2005-01-24 Sergey Poznyakoff * m4/sysexits.m4 (gl_SYSEXITS): Reverted logic. SYSEXITS_H must be defined if the header file was not found, in order to provide a replacement. Reported by Todd Vierling 2005-01-24 Sergey Poznyakoff * lib/argp-help.c (hol_entry_help): Avoid using non-constant initializers for struct pentry_state. (__argp_error): Check return value of __asprintf (__argp_failure): Translate error message * lib/argp-parse.c: Removed braces around the expansion of N_() 2005-01-23 Paul Eggert * m4/acl.m4, afs.m4, alloca.m4, argp.m4, assert.m4, atexit.m4, backupfile.m4, base64.m4, bison.m4, c-bs-a.m4, c-stack.m4, c-strtod.m4, calloc.m4, canon-host.m4, canonicalize.m4, clock_time.m4, cloexec.m4, closeout.m4, d-ino.m4, d-type.m4, dirfd.m4, dirname.m4, dos.m4, dup2.m4, error.m4, euidaccess.m4, exclude.m4, exitfail.m4, extensions.m4, fcntl-safer.m4, file-type.m4, fileblocks.m4, filemode.m4, fnmatch.m4, fpending.m4, free.m4, fstypename.m4, fsusage.m4, ftruncate.m4, getaddrinfo.m4, getcwd-path-max.m4, getcwd.m4, getdate.m4, getdomainname.m4, getgroups.m4, gethostname.m4, getline.m4, getndelim2.m4, getnline.m4, getopt.m4, getpagesize.m4, getpass.m4, getsubopt.m4, gettime.m4, gettimeofday.m4, getugroups.m4, getusershell.m4, group-member.m4, hard-locale.m4, hash.m4, host-os.m4, human.m4, idcache.m4, inttostr.m4, isdir.m4, jm-winsz1.m4, jm-winsz2.m4, link-follow.m4, long-options.m4, ls-mntd-fs.m4, lstat.m4, makepath.m4, mathl.m4, md5.m4, memcasecmp.m4, memchr.m4, memcmp.m4, memcoll.m4, memcpy.m4, memmem.m4, memmove.m4, memrchr.m4, memset.m4, mkdir-slash.m4, mkstemp.m4, mktime.m4, modechange.m4, mountlist.m4, nanosleep.m4, obstack.m4, path-concat.m4, pathmax.m4, perl.m4, physmem.m4, poll.m4, posixtm.m4, posixver.m4, putenv.m4, quote.m4, quotearg.m4, readdir.m4, readtokens.m4, readutmp.m4, regex.m4, rename.m4, restrict.m4, rmdir-errno.m4, rmdir.m4, rpmatch.m4, same.m4, savedir.m4, settime.m4, sha1.m4, sig2str.m4, snprintf.m4, sockpfaf.m4, st_dm_mode.m4, st_mtim.m4, stat.m4, stdint.m4, stdio-safer.m4, strchrnul.m4, strdup.m4, strerror.m4, strerror_r.m4, strftime.m4, strndup.m4, strnlen.m4, strsep.m4, strtod.m4, strtoimax.m4, strtok_r.m4, strtol.m4, strtoll.m4, strtoul.m4, strtoull.m4, strtoumax.m4, strverscmp.m4, sysexits.m4, time_r.m4, timegm.m4, timespec.m4, tm_gmtoff.m4, tzset.m4, uint32_t.m4, uintptr_t.m4, unistd-safer.m4, unlink-busy.m4, unlocked-io.m4, uptime.m4, userspec.m4, utimbuf.m4, utime.m4, utimecmp.m4, utimens.m4, utimes-null.m4, vsnprintf.m4, xalloc.m4, xgetcwd.m4, xreadlink.m4, xstrndup.m4, xstrtod.m4, xstrtoimax.m4, xstrtol.m4, xstrtoumax.m4, yesno.m4: Use an all-permissive copyright notice, recommended by RMS. 2005-01-21 Paul Eggert * modules/chdir-long (Depends-on): Remove mempcpy. 2005-01-21 Jim Meyering * lib/openat.h (AT_SYMLINK_NOFOLLOW): Define to 4096, so it's the same value as for Solaris 9. * lib/chdir-long.c (chdir_long): Rewrite to remove limitation on component length. This included changing the parameter to be of type `char *' rather than `char const *'. * lib/chdir-long.h (chdir_long): Update prototype. * lib/openat.c (fdopendir, fstatat): New functions. * lib/openat.h: Include headers required for use of DIR and struct stat. [AT_SYMLINK_NOFOLLOW]: Define. (fdopendir, fstatat): Add prototypes. 2005-01-21 Bruno Haible * modules/classpath: New file. * MODULES.html.sh (Java): Add classpath. 2005-01-21 Bruno Haible * lib/classpath.h: New file, from GNU gettext. * lib/classpath.c: New file, from GNU gettext. 2005-01-20 Simon Josefsson * modules/version-etc-fsf: New file. 2005-01-20 Simon Josefsson * lib/version-etc-fsf.c: New file, with version_etc_copyright. * lib/version-etc.c: Remove version_etc_copyright. * lib/version-etc.h (version_etc_copyright): Use [] instead of * in prototype, suggested by Paul Eggert . 2005-01-20 Simon Josefsson * lib/base64.h (isbase64): Add. * lib/base64.c (isb64): Rename to isbase64, use to_uchar instead of using a unsigned prototype, don't inline. (base64_decode): Use it. 2005-01-20 Paul Eggert * m4/save-cwd.m4 (gl_SAVE_CWD): Remove check for fcntl; we now assume it. 2005-01-20 Paul Eggert * lib/save-cwd.c (save_cwd): Remove code to support the case where fchdir is missing or flaky. 2005-01-20 Paul Eggert * MODULES.html.sh (Command-line arguments): Add version-etc-fsf. 2005-01-19 Paul Eggert * modules/mempcpy (Makefile.am): Remove mention of mempcpy.h; AC_LIBSOURCES now does this. * MODULES.html.sh (Sizes of integer types ): New element, with new ullong_max module. 2005-01-19 Bruno Haible * modules/sh-quote: New file. * MODULES.html.sh (Executing programs): Add sh-quote. 2005-01-19 Bruno Haible * lib/sh-quote.h: New file, from GNU gettext. * lib/sh-quote.c: New file, from GNU gettext. 2005-01-18 Paul Eggert Merge from coreutils. * m4/ullong_max.m4: New file. * m4/jm-macros.m4 (gl_MACROS): Require gl_ULLONG_MAX. (gl_MACROS): Assume localeconv exists. 2005-01-18 Paul Eggert Merge changes from coreutils, as described below in several changelogs dated today. * lib/save-cwd.c: Include "save-cwd.h" before other include files. (O_DIRECTORY): Remove; not needed here, since "." must be a directory. All uses removed. (save_cwd): Use __sgi || __sun, not sun || __sun. __sun is universal on Suns, and we also need to test for IRIX. Revamp code to use 'if' rather than '#if'. Avoid unnecessary comparison of cwd->desc to 0. * lib/utimens.c (futimens): Robustify the previous patch, by checking for known valid error numbers rather than observed invalid ones. 2005-01-18 Paul Eggert * modules/ullong_max: New file. * modules/chdir-long, modules/openat: New files. * modules/save-cwd (Depends-on): Depend on chdir-long. (Makefile.am): Remove lib_SOURCES; now handled by AC_LIBSOURCES. 2005-01-18 Jim Meyering Merge from coreutils. * m4/chdir-long.m4, m4/openat.m4: New files. * m4/save-cwd.m4 (gl_SAVE_CWD): Add AC_LIBSOURCES for save-cwd.c, save-cwd.h. Add AC_LIBOBJ for save-cwd. * m4/chown.m4 (gl_FUNC_CHOWN): When cross-compiling, assume that chown is sane and DOES follow symlinks. Besides, testing 20 different systems found no broken chown implementations. Prompted by a change in rsync's copy of this macro. * m4/jm-macros.m4 (gl_MACROS): Require gl_FUNC_CHDIR_LONG. * m4/lchown.m4 (gl_FUNC_LCHOWN): Use AC_LIBSOURCES. * m4/utimes.m4: Work around tests/touch/empty-file failure on a system (sparc64, Linux-2.4.28, glibc-2.3.3) that didn't honor utimes' NULL-means-set-to-current-time semantics. Remove temporary file immediately, rather than waiting for configure's at-exit trap code to do it. 2005-01-18 Jim Meyering * lib/version-etc.c (version_etc_copyright): Update copyright date. * lib/utimens.c (futimens): Account for the fact that futimes can also fail with errno == ENOSYS or errno == ENOENT. Patch from Dmitry V. Levin. Change the name of the robust chdir function from chdir to chdir_long. * lib/save-cwd.c: Include chdir-long.h rather than chdir.h. (restore_cwd): Use chdir_long, not chdir. * lib/chdir-long.c: Renamed from chdir.c. * lib/chdir-long.h: Renamed from chdir.h. [!defined PATH_MAX]: Define chdir_long to chdir on systems like the Hurd. 2005-01-18 Bruno Haible * m4/allocsa.m4, m4/codeset.m4, m4/copy-file.m4, m4/eaccess.m4: * m4/eealloc.m4, m4/eoverflow.m4, m4/execute.m4, m4/fatal-signal.m4: * m4/findprog.m4, m4/glibc21.m4, m4/iconv.m4, m4/intmax_t.m4: * m4/inttypes_h.m4, m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: * m4/linebreak.m4, m4/localcharset.m4, m4/longdouble.m4: * m4/longlong.m4, m4/mbrtowc.m4, m4/mbstate_t.m4, m4/mbswidth.m4: * m4/mkdtemp.m4, m4/pipe.m4, m4/readlink.m4, m4/safe-read.m4: * m4/safe-write.m4, m4/setenv.m4, m4/sig_atomic_t.m4: * m4/signalblocking.m4, m4/signed.m4, m4/size_max.m4, m4/ssize_t.m4: * m4/stdbool.m4, m4/stdint_h.m4, m4/stpcpy.m4, m4/stpncpy.m4: * m4/strcase.m4, m4/strcspn.m4, m4/strpbrk.m4, m4/strstr.m4: * m4/ucs4-utf.m4, m4/uintmax_t.m4, m4/ulonglong.m4, m4/unicodeio.m4: * m4/utf-ucs4.m4, m4/vasnprintf.m4, m4/vasprintf.m4: * m4/wait-process.m4, m4/wchar_t.m4, m4/wint_t.m4, m4/xsize.m4: Use an all-permissive copyright notice, recommended by RMS. 2005-01-18 Bob Proulx * lib/obstack.c [DEFAULT_ALIGNMENT]: Use an intermediate type to simplify offsetof() macro construct to avoid compile failure with native HP-UX 11.0 ANSI C compiler. 2005-01-17 Bruno Haible * lib/stpncpy.c: Remove HAVE_STPNCPY and gnu_stpncpy renaming, redundant because stpncpy.m4 takes care of it. 2005-01-17 Bruno Haible * lib/progreloc.c: Include xalloc.h instead of xmalloc.h. 2005-01-17 Bruno Haible * lib/progreloc.c (xstrdup): Define as strdup if no xmalloc should be used. 2005-01-17 Bruno Haible * lib/fwriteerror.h (fwriteerror): Change specification to include fclose. * lib/fwriteerror.c: Include . (fwriteerror): At the end, close the file stream. Record whether stdout was already closed. 2005-01-17 Bruno Haible * lib/execute.c (environ): Declare if needed. * lib/pipe.c (environ): Likewise. Reported by Michael Schloh von Bennewitz . 2005-01-11 Sergey Poznyakoff * modules/argp: Depend on vsnprintf 2005-01-10 Jim Meyering * modules/closeout (Depends-on): Add atexit. 2005-01-06 Bruno Haible * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Rename stpncpy to gnu_stpncpy here. 2005-01-04 Paul Eggert * lib/human.c (SIZE_MAX, UINTMAX_MAX): Move these conditional definitions to be after all include files, to avoid collisions. Problem reported by Bob Proulx. 2005-01-04 Jim Meyering Changes imported from coreutils. * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Rather than using "conftestXXXXXX" as the mkstemp template, use a temporary directory and an 8.3-friendly template to avoid trouble on systems like DJGPP. Reported by Juan M. Guerrero via Stepan Kasal. * m4/(gl_FUNC_MKSTEMP): Include for the declaration of close. Remove the temporary directory right away, rather than waiting for configure's at-exit trap code to do it. Suggestion from Stepan Kasal. 2005-01-01 Simon Josefsson * gnulib-tool: Print #include directives when --import'ing. 2004-12-28 Simon Josefsson * tests/test-base64.c: Include required header files. Remove unused variables. 2004-12-28 Paul Eggert * modules/error (Depends-on): Remove gettext. 2004-12-28 Paul Eggert * lib/error.c [!_LIBC && !ENABLE_NLS]: Do not include "gettext.h"; not needed. This removes a dependency on the gettext module. [defined _LIBC]: Do not include ; not needed. 2004-12-24 Paul Eggert * m4/c-strtod.m4 (gl_C99_STRTOLD): New macro. (gl_C_STRTOD): Use it instead of AC_CHECK_DECLS_ONCE(strtold). 2004-12-24 Paul Eggert * lib/c-strtod.c (STRTOD): Depend on HAVE_C99_STRTOLD, not HAVE_DECL_STRTOLD. 2004-12-23 Paul Eggert * modules/getdate (Depends-on): Remove alloca-opt. 2004-12-23 Paul Eggert * m4/getdate.m4 (gl_GETDATE): Remove AC_FUNC_ALLOCA. 2004-12-23 Paul Eggert * lib/argp-parse.c: Include . (alignof, alignto): New macros. (parser_init): Don't assume that void * is aligned sufficiently for struct option. * lib/getdate.y (YYSTACK_USE_ALLOCA): Define to 0, since there's no need to extend the stack. (YYINITDEPTH): New macro, so that the initial stack isn't overly large. 2004-12-22 Sergey Poznyakoff * lib/argp-parse.c (parser_init): Avoid arithmetics on void pointers. 2004-12-19 Paul Eggert * modules/regex (lib_SOURCES): Remove regex.c, undoing previous (2004-10-24) change. Apparently this was a false alarm. * modules/getdate: Depend on alloca-opt, not alloca. 2004-12-19 Paul Eggert * lib/alloca_.h: Conditionalize on _GNULIB_ALLOCA_H, not _ALLOCA_H. Remove now-obsolete comment about AIX. * lib/getdate.y: Include only if HAVE_ALLOCA. (YYSTACK_USE_ALLOCA): Define to 0 if !HAVE_ALLOCA. (YYMAXDEPTH): New macro. 2004-12-18 Simon Josefsson * modules/alloca: Depend on alloca-opt, instead of duplicating it. 2004-12-18 Bruno Haible * m4/fatal-signal.m4 (gl_FATAL_SIGNAL): Also test for sigaction. 2004-12-18 Bruno Haible * lib/fatal-signal.c (fatal_signals): Make non-const. (init_fatal_signals): New function. (uninstall_handlers, install_handlers): Ignore signals that were set to SIG_IGN. (at_fatal_signal): Call init_fatal_signals. (init_fatal_signal_set): Likewise. Ignore signals that were set to SIG_IGN. Reported by Paul Eggert. 2004-12-18 Bruno Haible * doc/alloca.texi: New file. * doc/alloca-opt.texi: New file. 2004-12-17 Jim Meyering * config/install-sh: Use `(exit N); exit N', not `(exit N); exit'. Otherwise, install-sh could exit with improper exit status when exiting via a trapped interrupt. Thanks to a report from Bob Proulx. 2004-12-16 Simon Josefsson * tests/test-base64.c: Add license. 2004-12-15 Stepan Kasal * gnulib-tool (func_emit_lib_Makefile_am): Shorten a long sed command. 2004-12-12 Paul Eggert * modules/getcwd (Files): Add m4/d-ino.m4. Suggested by Mark D. Baushke. 2004-12-08 Paul Eggert * lib/getdate.y (textint): New member "negative". (time_zone_hhmm): New function. Expect 14 shift-reduce conflicts, not 13. (o_colon_minutes): New rule. (time, zone): Use it to add support for +HH:MM, UTC+HH:MM. (yylex): Set the "negative" member of signed numbers. 2004-12-08 Paul Eggert * doc/getdate.texi (Time of day items, Time zone items): Describe new formats +00:00, UTC+00:00. 2004-12-07 Paul Eggert * m4/ls-mntd-fs.m4 (AC_FUNC_GETMNTENT): Fix typo in previous change: spurious "-l"s. Problem reported by Stepan Kasal. 2004-12-06 Paul Eggert * m4/ls-mntd-fs.m4 (AC_FUNC_GETMNTENT): New macro, to work around bug in Autoconf 2.59. Problem reported by Mark D. Baushke. 2004-12-04 Simon Josefsson * modules/getaddrinfo (License): Add LGPL, reported by Yoann Vandoorselaere . 2004-12-04 Paul Eggert Changes imported from coreutils. * m4/hard-locale.m4 (gl_HARD_LOCALE): Assume locale.h and setlocale exist. * m4/human.m4 (gl_HUMAN): Assume locale.h and localeconv exist. 2004-12-04 Paul Eggert Changes imported from coreutils. * lib/hard-locale.c: Assume exists. Include "strdup.h". (GLIBC_VERSION): New macro. (hard_locale): Assume setlocale exists. Rewrite to avoid #ifdef. Use strdup rather than malloc + strcpy. * lib/human.c: Assume exists. (human_readable): Assume localeconv exists. 2004-12-04 Paul Eggert * modules/hard-locale (Depends-on): Add strdup. 2004-12-01 Jakub Jelinek * lib/mktime.c (__mktime_internal): If SEC_REQUESTED != SEC, convert T2, not T. (Imported from libc.) 2004-11-30 Simon Josefsson * modules/restrict (License): Change to LGPL. 2004-11-30 Simon Josefsson * m4/restrict.m4: Add copyright and copying conditions. 2004-11-30 Simon Josefsson * m4/base64.m4: New file. 2004-11-30 Simon Josefsson * MODULES.html.sh (Extra functions based on ANSI C 89): Add base64. * tests/test-base64.c: New file. * modules/base64: New file. 2004-11-30 Paul Eggert * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Define HAVE_PARTLY_WORKING_GETCWD if getcwd is partly working. * m4/readutmp.m4 (gl_READUTMP): Don't check for sys/param.h. 2004-11-30 Paul Eggert * lib/getcwd.c (is_ENAMETOOLONG): New macro. (__getcwd.c): Don't restore errno; glibc doesn't. [HAVE_PARTLY_WORKING_GETCWD && !defined AT_FDCWD]: Try system getcwd first, falling back to our code only if its results look suspicious. Ensure that the resulting buffer is only as large as necessary. * lib/readutmp.c: Include readutmp.h first. Include , since readutmp.h no longer does that. * lib/readutmp.h: Don't include , , ; not needed to establish interface. (errno): Remove decl. (HAVE_STRUCT_XTMP_UT_TYPE): Remove; no longer needed. (UT_TYPE_EQ, UT_TYPE_NOT_DEFINED, UT_TYPE_BOOT_TIME, UT_TYPE_USER_PROCESS, IS_USER_PROCESS): New macros. 2004-11-28 Simon Josefsson * lib/base64.h, base64.c: New file. 2004-11-27 Paul Eggert * lib/getcwd.h: New file, which I forgot to check in on 2004-11-25. 2004-11-26 Paul Eggert * modules/getcwd (Files): Add lib/getcwd.h, m4/getcwd.m4. (Depends-on): Remove pathmax, same. Add mempcpy. (configure.ac): GL_FUNC_GETCWD_PATH_MAX -> gl_FUNC_GETCWD. (Makefile.am): Append getcwd.h to lib_SOURCES. (Include): Add getcwd.h. (Maintainer): Change from Jim Meyering to "all, glibc", since getdate now uses intended-for-glibc code. * modules/xgetcwd (Files): Remove m4/getcwd.m4. (Depends-on): Depend on getcwd. Do not depend on pathmax. 2004-11-25 Paul Eggert Fix problems reported by Scott S. Tinsley for HP-UX 11.11 using HP's ANSI C compiler. * lib/fsusage.c (statvfs) [HAVE_SYS_STATVFS_H]: Remove decl. Declaring int functions causes warnings on some modern systems and shouldn't be needed to compile on ancient ones. * lib/same.c (MIN) [defined MIN]: Don't define, since it's already defined. * lib/getcwd.c: Replace by a copy of glibc/sysdeps/posix/getcwd.c, but with the following changes. (__set_errno): Parenthesize properly. Include . (MIN, MAX, MATCHING_INO): New macros. (__getcwd): Define with prototype, not K&R form. Use heuristics to allocate default buffer on stack if possible. If AT_FDCWD is defined, use openat and fstatat to avoid O(N**2) behavior, and to avoid the PATH_MAX limit when computing ../../../../... Use MATCHING_INO to compare inode number to file. Check for arithmetic overflow in size calculations. Fix bug in reallocation of dot array that caused getcwd to fail on directories nested deeper than 75. Be more careful about saving errno on error. Do not use realloc; use only free+malloc, as this is a bit more flexible and avoids a needless copy operation. Do not inspect st_dev and st_ino for symbolic links; POSIX doesn't specify the latter. Check for closedir errors. Avoid needless casts. Use "#ifdef weak_alias" around weak_alias, to be like other glibc code. The following changes to getcwd.c have effect only when used in gnulib; they have no effect inside glibc proper. (#pragma alloca) [defined _AIX && !defined __GNUC__]: Remove, as alloca isn't used. (alloca, __alloca): Likewise. [!_LIBC]: Include "getcwd.h", "mempcpy.h". Include , , , unconditionally, as gnulib assumes C89 or better. Do not include . (errno) [!defined __GNU_LIBRARY__ && !defined STDC_HEADERS]: Remove no-longer-necessary 'extern int errno' decl; gnulib assumes C89 or better. (NULL) [!defined NULL]: Remove; we assume C89 or better. Include in a way that is compatible with modern Autoconf. (_D_ALLOC_NAMELEN, _D_EXACT_NAMLEN): New macros, if not already defined. Include if _LIBC, not if __GNU_LIBRARY__. Use "_LIBC", not "defined _LIBC", for consistency. (HAVE_MEMPCPY): Remove; no longer needed now that gnulib has a mempcpy module. (__lstat, __closedir, __opendir, __readdir) [!_LIBC]: New macros. (GETCWD_RETURN_TYPE): Remove. All uses replaced by char *. * lib/xgetcwd.c: David MacKenzie's old code was removed, so give credit only to Jim Meyering and adjust the copyright dates. Do not include , , , , , "pathmax.h". Instead, include "xgetcwd.h" (first) and "getcwd.h". (INITIAL_BUFFER_SIZE): Remove. (xgetcwd): Rely on getcwd, since we now depend on a reliable one. 2004-11-25 Paul Eggert * m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX): Renamed from GL_FUNC_GETCWD_PATH_MAX for consistency. All uses changed. Use the _ONCE methods, for efficiency. Check for fcntl.h. In test program, include and if available. Remove old K&R cruft from test program. Check for common errors in GNU/Linux, OpenBSD, and Solaris. Just set gl_cv_func_getcwd_path_max; don't do AC_LIBOBJ, as that's getcwd.m4's job. * m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Renamed from AC_FUNC_GETCWD_NULL. All used changed. Change cache variable name accordingly. (gl_FUNC_GETCWD, gl_PREREQ_GETCWD): New macros. Revamp to accommodate new getcwd.c. * m4/jm-macros.m4 (gl_MACROS): Don't require GL_FUNC_GETCWD_PATH_MAX. * m4/prereq.m4 (gl_PREREQ): Add gl_FUNC_MEMPCPY. * m4/xgetcwd.m4 (gl_XGETCWD): Replace with gl_FUNC_GETCWD, since that's all we need now. 2004-11-23 Sergey Poznyakoff * m4/argp.m4 (gl_ARGP): Require gl_GETOPT_SUBSTITUTE unconditionally: argp-parse.c depends on getopt internals, that means we should always use our getopt, to be on the safe side. * m4/getopt.m4 (gl_GETOPT): Check if GETOPT_H is already set, in order not to spoil the result of an eventual previous invocation of gl_GETOPT_SUBSTITUTE. 2004-11-23 Sergey Poznyakoff * lib/getopt_.h: Re-addition of __getopt_argv_const caused redefinition warnings. To avoid them, include the defines in `#if !defined __need_getopt ... #endif'. The only place where __getopt_argv_const is used is in definitions of getopt_long and getopt_long_only below, which are as well protected by `#ifndef __need_getopt'. [defined __GETOPT_PREFIX && !defined __need_getopt]: Undef __need_getopt after including and These headers might have defined it. 2004-11-23 Paul Eggert * m4/utimens.m4 (gl_UTIMENS): Check for futimes function. 2004-11-23 Paul Eggert * lib/utimens.c (__attribute__, ATTRIBUTE_UNUSED): New macros. (futimens): New function, which uses futimes if available. (futimens, utimens): Support timespec==NULL, with same semantics as utime and utimens. * lib/utimens.h (futimens): New decl. 2004-11-23 Jim Meyering * lib/getopt_.h: Remove trailing blanks. 2004-11-23 Jim Meyering * lib/__fpending.c: Add comment. 2004-11-22 Paul Eggert * modules/canonicalize (Depends-on): Add xreadlink. Problem reported by James Youngman. 2004-11-20 Paul Eggert * lib/getopt_.h (__GETOPT_CONCAT, __GETOPT_XCONCAT, __GETOPT_ID): New macros. (getopt, getopt_long, getopt_long_only, optarg, opterr, optind, optopt): Use them instead of invoking ## directly; otherwise, the symbols will be __GETOPT_PREFIXgetopt rather than rpl_getopt. 2004-11-19 Bruno Haible * lib/strtok_r.c: Move comments from here... * lib/strtok_r.h: ... to here. 2004-11-17 Paul Eggert * m4/calloc.m4 (_AC_FUNC_CALLOC_IF): Check for buggy calloc implementations that mishandle size_t overflow. 2004-11-17 Paul Eggert * lib/realloc.c (rpl_realloc): Call 'free' if n==0, since realloc might fail. Problem reported by Yoann Vandoorselaere. * lib/calloc.c (rpl_calloc): Defend against buggy calloc implementations that mishandle size_t overflow. 2004-11-16 Paul Eggert * modules/canon-host (Depends-on): Add strdup. 2004-11-16 Paul Eggert * m4/canon-host.m4 (gl_CANON_HOST): Check for getaddrinfo. 2004-11-16 Paul Eggert * lib/canon-host.c: Include "strdup.h". (canon_host): Use getaddrinfo if available, so that IPv6 works. Use strdup instead of malloc/strcpy to duplicate strings. * lib/human.h (LONGEST_HUMAN_READABLE): Add 1 for space before unit. (human_space_before_unit): New constant. * lib/human.c (human_readable): Support it. * lib/xgetcwd.c: Include , for PATH_MAX. (xgetcwd): Set errno correctly when failing. Work around Solaris 9 bug: getcwd sets errno==ERANGE even though the failure is actually due to a PATH_MAX problem. Further getopt changes to make it more likely that glibc will buy the changes back. * lib/getopt.c (POSIXLY_CORRECT): New constant. (getopt): Use it, so to preserve glibc semantic * lib/getopt1.c (getopt_long, getopt_long_only): Arg is char * const * when compiling for libc. * lib/getopt_.h (__getopt_argv_const): Bring it back. (getopt_long, getopt_long_only): Use it. * lib/getopt.c (_getopt_initialize, _getopt_internal_r, _getopt_internal): New arg POSIXLY_CORRECT. All callers changed. (getopt): Argv is now char * const *, as per standard. (_getopt_internal_r, _getopt_internal): Argv is now char **, not char *__getopt_argv_const *. * lib/getopt1.c (getopt_long, _getopt_long_r, getopt_long_only, _getopt_long_only_r): Likewise. * lib/getopt_.h (getopt, getopt_long, geopt_long_only): Likewise. * lib/getopt_int.h (_getopt_internal, _getopt_internal_r, _getopt_long_r, _getopt_long_only_r): Likewise. * lib/getopt_.h (__getopt_argv_const): Remove. (getopt): Argv is now char * const *, as per standard. * lib/getdate.y (tORDINAL): New token. (day, relunit): Allow it for relative times. (relative_time_table): Use tORDINAL for ordinals. 2004-11-16 Paul Eggert * doc/getdate.texi (General date syntax): "next" is 1, not 2. Document that "second" isn't allowed as an ordinal number. 2004-11-16 Jim Meyering * modules/closeout (Depends-on): Add fpending. 2004-11-15 Jim Meyering * lib/closeout.c: Include "__fpending.h" once again. Include . (close_stdout): Don't fail just because stdout was closed initially, since some programs don't write to stdout in the normal course of operation (other than --version and --help), and we don't want this function to make e.g. `touch file >&-' fail. But do fail if it was closed and someone has tried to write to it. E.g., `printf foo >&-' must fail. 2004-11-13 Jim Meyering * m4/jm-macros.m4: Do require gl_FUNC_FPENDING. 2004-11-12 Simon Josefsson * config/srclist.txt: Add strtok_r.c, glibc bought our changes, but a small doc fix is still pending. 2004-11-11 Simon Josefsson * modules/strtok_r: New file. * MODULES.html.sh (Support for systems lacking POSIX:2001): Add strtok_r. 2004-11-11 Simon Josefsson * m4/strtok_r.m4: New file. * m4/getopt.m4: Replace opterr. 2004-11-11 Simon Josefsson * lib/strtok_r.h, strtok_r.c: New file. 2004-11-11 Paul Eggert * m4/getopt.m4 (gl_GETOPT_SUBSTITUTE): Define __GETOPT_PREFIX instead of replacing opterr, getopt, etc. This should handle the powerpc-apple-darwin5.5 problem recently noted by Simon Josefsson. 2004-11-11 Paul Eggert * lib/getopt_.h (__getopt_argv_const): New macro, to be used so that we can stop lying to compilers about the constness of argv when we are compiled outside glibc. (getopt, getopt_long, getopt_long_only): Use it. * lib/getopt.c (_getopt_initialize, _getopt_internal_r, _getopt_internal, getopt): Likewise. * lib/getopt1.c (getopt_long, _getopt_long_r, getopt_long_only, _getopt_long_only_r): Likewise. * lib/getopt_int.h (_getopt_internal, _getopt_internal_r, _getopt_long_r, _getopt_long_only_r): Likewise. * lib/getopt_.h [defined __GETOPT_PREFIX && !defined __need_getopt]: Include and , and if available. Then rename getopt to __GETOPT_PREFIX##getopt, and so forth for the other external symbols. (getopt) [!defined __GNU_LIBRARY]: Use prototype, not old-style declaration, since the above renaming now works around collisions. 2004-11-11 Jim Meyering * lib/linebreak.c: Remove trailing blanks. * lib/alloca_.h: Likewise. * lib/acosl.c: Likewise. * lib/euidaccess.c: Likewise. * lib/allocsa.h: Likewise. 2004-11-10 Simon Josefsson * m4/getaddrinfo.m4: New file. 2004-11-10 Simon Josefsson * lib/getaddrinfo.h, lib/getaddrinfo.c: New files. 2004-11-10 Simon Josefsson * MODULES.html.sh (Support for systems lacking POSIX:2001): Add getaddrinfo. * modules/getaddrinfo: New file. 2004-11-10 Paul Eggert * m4/prereq.m4 (gl_PREREQ): Require gt_FUNC_SETENV. 2004-11-10 Paul Eggert * lib/mktime.c (SHR): New macro, which is a portable substitute for >> that should work even on Crays. (TIME_T_MIDPOINT, ydhms_diff, __mktime_internal): Use it. Problem reported by Mark D. Baushke in . * lib/getdate.y (SHR): Likewise. (tm_diff): Use it. * lib/strftime.c (SHR): Likewise. (tm_diff): Use it. * lib/quotearg.c (struct quoting_options): Use unsigned int for quote_these_too, so that right shifts are well defined. All uses changed. 2004-11-10 Jim Meyering Ensure that no close failure goes unreported. * lib/closeout.c (close_stdout): Always close stdout. I.e., don't return early when it seems there's nothing to flush. Don't include __fpending.h. 2004-11-10 Jim Meyering * modules/closeout (Depends-on): Remove fpending. 2004-11-10 Jim Meyering * m4/jm-macros.m4 (gl_MACROS): Don't require gl_FUNC_FPENDING. 2004-11-09 Paul Eggert * m4/strftime.m4 (_gl_STRFTIME_PREREQS): Remove. Move its body to gl_FUNC_STRFTIME. (gl_FUNC_STRFTIME): Use AC_CHECK_FUNCS_ONCE and AC_CHECK_HEADERS_ONCE and AC_REQUIRE when possible, to avoid duplicate checks. Check for . 2004-11-09 Paul Eggert * lib/strftime.c (DO_MULTIBYTE): Check for wchar.h, too. 2004-11-09 Bruno Haible * m4/sockpfaf.m4: New file. 2004-11-05 Bruno Haible * lib/readlink.c: Include stddef.h, needed for size_t on Woe32. Reported by Mark D. Baushke . 2004-11-04 Bruno Haible 2004-09-11 Bruno Haible * allocsa.valgrind: New file. 2004-02-06 Bruno Haible * allocsa.h (sa_alignof): Define differently with HP-UX cc, to avoid a bug of this cc on HP-UX 10.20 dealing with enums. Reported by Christopher Seip . 2004-11-04 Bruno Haible * modules/allocsa (Files): Add lib/allocsa.valgrind. (Makefile.am): Distribute it. 2004-11-03 Paul Eggert * lib/xreadlink.c (xreadlink): AIX and HP-UX readlink return -1 with errno == ERANGE if the buffer is too small. Problem reported by Mark D. Baushke. 2004-11-03 Albert Chin Paul Eggert * m4/uint32_t.m4 (gl_AC_TYPE_UINT32_T): When determining uint32_t equivalent, substitute $ac_type for equivalent type rather than blindly using uint32_t *always* which won't work if uint32_t is not available. Define _UINT32_T to work around typedef of uint32_t if , , or used on Solaris 2.5.1. 2004-11-02 Paul Eggert * m4/jm-macros.m4: Sync from coreutils. (gl_MACROS): Check for mbrlen, for pathchk. (gl_CHECK_ALL_TYPES): Require AC_TYPE_MBSTATE_T, for pathchk. 2004-11-02 Paul Eggert * lib/xreadlink.c (MAXSIZE): New macro. (xreadlink): Use it instead of SSIZE_MAX. Ensure initial buffer size does not exceed MAXSIZE. Avoid cast. As suggested by Mark D. Baushke in , if readlink fails with buffer size just under MAXSIZE, try again with MAXSIZE. 2004-11-02 Paul Eggert * config/srclist.txt: Add mktime.c; glibc bought all our changes. 2004-11-02 Derek R. Price and Paul Eggert * lib/getdate.y [!TEST]: Include , since we use sprintf now. (get_date): Overparenthesize to avoid GCC warning. 2004-11-02 Bruno Haible * m4/setenv.m4 (gt_FUNC_SETENV): Define VOID_UNSETENV if unsetenv() returns void. 2004-11-02 Bruno Haible * lib/setenv.h (unsetenv): Define as a macro if the system's unsetenv() function returns void. 2004-11-01 Paul Eggert * m4/getpass.m4 (gl_PREREQ_GETPASS): Check for declarations of fflush_unlocked, flockfile, funlockfile, funlockfile, fputs_unlocked, putc_unlocked. 2004-11-01 Paul Eggert * lib/getpass.c (fflush_unlocked, flockfile, funlockfile) (funlockfile, fputs_unlocked, putc_unlocked): Don't define if already declared. 2004-10-29 Paul Eggert * modules/getdate (Files): Add doc/getdate.texi. (Depends-on): Add setenv, xalloc. 2004-10-29 Paul Eggert * lib/getdate.y: Add support for TZ="foo" within a date string. Fix some bugs near time_t boundaries. Reject dates with out-of-range components, e.g., "Sept 31". Include , "setenv.h", "xalloc.h". (ISDIGIT_LOCALE): Remove; unused. Note that the TZ and time functions used here are not reentrant. (mktime_ok, get_tz): New functions. (TZBUFSIZE): New constant. (get_date): Parse leading TZ="foo". Reject out-of-range components;. This requires that we sometimes generate our own TZ="XXX..." setting. 2004-10-29 Paul Eggert * doc/getdate.texi: New file, from coreutils with modifications for the new TZ parsing. 2004-10-27 Derek R. Price * lib/mktime.c (not_equal_tm): Remove redundant check. 2004-10-24 Paul Eggert * modules/regex (lib_SOURCES): Add regex.c. Reported by James Youngman in . 2004-10-24 Paul Eggert * lib/getdate.y: Use Bison 1.875 features, and some minor code cleanups. This change does not affect semantics. Don't include ; no longer needed. Don't include unlocked-io.h; only the "#if TEST" code uses stdio, and performance isn't crucial there. (PC, YYLEX_PARAM, YYPARSE_PARAM): Remove; replaced by Bison 1.875 features as described below. All uses of "PC." replaced by "pc->". (YYSTYPE): Add a forward declaration. (yylex, yyerror): Use full prototypes in forward decls. Use "%pure-parser" rather than obsolescent "%pure_parser". Use %parse-param and %lex-param instead of obsolescent YYPARSE_PARAM and YYLEX_PARAM. (meridian_table, month_and_day_table, time_units_table, relative_time_table, time_zone_table, military_table, lookup_zone, lookup_word, get_date): Use NULL instead of 0 where appropriate. (to_hour): Avoid abort (), to avoid a dependency on stdlib.h. (yyerror, yylex): Now accepts parser_control * arg. (main) [TEST]: Use '\0' rather than 0 for char. 2004-10-22 Paul Eggert * m4/getpagesize.m4 (gl_GETPAGESIZE): Check for . 2004-10-22 Paul Eggert * lib/getpagesize.c (getpagesize): Don't assume exists. It's now the caller's responsibility to handle the case where !HAVE_GETPAGESIZE && !defined getpagesize. * lib/mktime.c (leapyear): Arg is long int, not int. 2004-10-18 Paul Eggert * lib/argp-fs-xinl.c, argp-xinl.c: Update from glibc. 2004-10-17 Paul Eggert * gnulib-tool (func_emit_lib_Makefile_am): Fix typo: a $ was missing. Problem reported by James Youngman. 2004-10-16 Simon Josefsson * gnulib-tool: Fix comments. Fix parse problem. (func_emit_lib_Makefile_am): Don't hard code a in libgl_a_SOURCES. 2004-10-15 Paul Eggert * m4/getopt.m4 (gl_GETOPT): Detect and reject the incompatible BSD implementation of getopt_long. Problem reported by Alexander Taler in: http://lists.gnu.org/r/bug-gnulib/2004-10/msg00103.html 2004-10-15 Bruno Haible * gnulib-tool: Untabify. Initialize supplied_libname. (func_usage): More homogenous output. (func_modules_transitive_closure, func_modules_to_filelist, func_emit_lib_Makefile_am): New functions. (func_import): New function, extracted from big case statement. Use func_get_license, func_modules_transitive_closure, func_modules_to_filelist, func_emit_lib_Makefile_am. Initialize opt_lgpl. Don't use test -a, as it's not portable. (func_create_testdir): Use func_modules_transitive_closure, func_modules_to_filelist, func_emit_lib_Makefile_am. 2004-10-15 Bruno Haible * gnulib-tool (func_import): Let gl_INIT define LTALLOCA when needed. 2004-10-15 Bruno Haible * gnulib-tool (func_emit_lib_Makefile_am): Add markers to separate the portions belonging to each module. Suggested by Derek Robert Price . 2004-10-12 Simon Josefsson * lib/getpass.c (fflush_unlocked, flockfile, funlockfile) (fputs_unlocked, putc_unlocked) [!_LIBCS && !USE_UNLOCKED_IO]: Map to real functions. 2004-10-11 Yoann Vandoorselaere * modules/vsnprintf: New file. 2004-10-11 Yoann Vandoorselaere * m4/vsnprintf.m4: New file. 2004-10-11 Yoann Vandoorselaere * lib/vsnprintf.h: New file. * lib/vsnprintf.c: New file. 2004-10-11 Bruno Haible * MODULES.html.sh (Support for systems lacking ISO C 99): Add vsnprintf. 2004-10-10 Paul Eggert * config/srclistvars.sh: Add GNUSTANDARDS (for eggert only). 2004-10-07 Bruno Haible * lib/snprintf.c (snprintf): Avoid a memory allocation if the result fits into the provided buffer. 2004-10-06 Paul Eggert * lib/diacrit.c, diacrit.h: Add GPL notice. * lib/atanl.c, logl.c: Add GPL notice, to match glibc's added LGPL notice. * lib/atanl.c (atanl): Keep the code as similar to glibc as possible. * lib/logl.c (logl): Keep the code as similar to glibc as possible. This avoids a potential constant-folding bug. 2004-10-05 Bruno Haible * m4/strsep.m4 (gl_FUNC_STRSEP): Require AC_GNU_SOURCE. Don't check for the declaration of strsep. 2004-10-05 Bruno Haible * lib/strsep.h: Don't declare strsep() if HAVE_STRSEP. 2004-10-04 Simon Josefsson * modules/memmem: New file. * tests/test-memmem.c: New file. * MODULES.html.sh (Extra functions based on ANSI C 89): Add memmem. 2004-10-04 Simon Josefsson * m4/memmem.m4: New file. 2004-10-04 Simon Josefsson * lib/memmem.h: New file. * lib/memmem.c: New file, taken from glibc. 2004-10-04 Simon Josefsson * lib/error.c, md5.c, regex.c: Use '#if USE_UNLOCKED_IO' instead of '#ifdef USE_UNLOCKED_IO'. 2004-10-04 Simon Josefsson * config/srclist.txt: Add memmem from glibc. 2004-10-04 Paul Eggert * modules/xalloc (Files, Makefile.am): Remove xstrdup.c. * modules/argmatch, modules/argp, modules/closeout, modules/error, modules/exclude, modules/getdate, modules/getline, modules/getndelim2, modules/getpass, modules/getpass-gnu, modules/getusershell, modules/linebuffer, modules/md5, modules/mountlist, modules/posixtm, modules/readtokens, modules/readutmp, modules/regex, modules/sha1, modules/version-etc, modules/yesno: Remove dependency on unlocked-io. 2004-10-04 Paul Eggert * m4/xalloc.m4 (gl_PREREQ_XSTRDUP): Remove. All uses removed. * m4/unlocked-io.m4: Add copyright notice. (gl_FUNC_GLIBC_UNLOCKED_IO): Define USE_UNLOCKED_IO. 2004-10-04 Paul Eggert * lib/xalloc.h (xmemdup): Renamed from xclone. All uses changed. * lib/xmalloc.c (xmemdup): Likewise. * lib/xalloc.h (CCLONE, CLONE, NEW, XCALLOC, XMALLOC, XREALLOC, XFREE): Remove these long-obsolescent macros. * lib/xmalloc.c (xstrdup): Implementation moved here from xstrdup.c * lib/xstrdup.c: Remove. * lib/regex.c (re_comp): Cast gettext return value to char *, Problem reported by Martin Neitzel via Mark D. Baushke. 2004-10-04 Paul Eggert * lib/argmatch.c, closeout.c, error.c, exclude.c, getdate.y, getndelim2.c, getpass.c, getusershell.c, linebuffer.c, md5.c, mountlist.c, posixtm.c, readtokens.c, readutmp.c, regex.c, sha1.c, version-etc.c, yesno.c: Include "unlocked-io.h" only if USE_UNLOCKED_IO. * lib/unlocked-io.h: Don't worry about USE_UNLOCKED_IO; that's now the includer's responsibility. Sync from coreutils. * lib/modechange.c (mode_compile): Don't decrement a pointer that points to the start of a string, as the C Standard says the resulting behavior is undefined. * lib/backupfile.h (enum backuptype): Rename none -> no_backups, simple -> simple_backups, numbered_existing -> numbered_existing_backups, numbered -> numbered_backups to avoid shadowing problems. All uses changed. * lib/argmatch.c (enum backuptype) [defined TEST]: Likewise. * lib/backupfile.c (check_extension, numbered_backup): Rename locals to avoid shadowing 'basename'. * lib/backupfile.h (VALID_BACKUP_TYPE): Don't evaluate arg more than once. * lib/.cppi-disable: Add getopt_.h, getopt_int.h. * lib/.cvsignore: Add getopt.h. 2004-10-04 Bruno Haible * modules/README: New file. * gnulib-tool (func_all_modules, func_verify_module): modules/README is not a module. 2004-10-02 Jim Meyering * lib/dirfd.h, getpagesize.h: Add copyright notice. 2004-10-01 Yoann Vandoorselaere * modules/strsep: New file. 2004-10-01 Yoann Vandoorselaere * m4/strsep.m4: New file. 2004-10-01 Yoann Vandoorselaere * lib/strsep.h: New file. * lib/strsep.c: New file. 2004-10-01 Simon Josefsson * lib/snprintf.c (snprintf): Handle size==0. 2004-10-01 Simon Josefsson Bruno Haible * lib/snprintf.c: Include , , . (snprintf): Declare 'args'. 2004-10-01 Paul Eggert * lib/snprintf.c: Remove comments as to why each header is needed. 2004-10-01 Bruno Haible * MODULES.html.sh: Add strsep. 2004-09-30 Simon Josefsson * modules/snprintf: New file. 2004-09-30 Simon Josefsson * m4/snprintf.m4: New file. 2004-09-30 Simon Josefsson * lib/snprintf.h, lib/snprintf.c: New files. 2004-09-30 Sergey Poznyakoff * lib/argp-help.c (canon_doc_option): Fixed coredump if *name==NULL (hol_entry_help): Never translate an empty string. Do not translate option tag (opt->name) if OPTION_NO_TRANS is set * lib/argp.h (OPTION_NO_TRANS): New option. 2004-09-30 Paul Eggert * modules/argp (Maintainer): Replace Simon Josefsson by Sergey Poznyakoff. 2004-09-30 Paul Eggert * config/srclist.txt: Comment-out argp/argp.h, until we get the argp changes merged back into glibc. 2004-09-30 Paul Eggert * MODULES.html.sh (Support for systems lacking ISO C 99): Add snprintf. 2004-09-29 Oskar Liljeblad * lib/xvasprintf.c: Include xalloc.h. (xvasprintf): Use xalloc_die, not xmalloc_die. 2004-09-29 Bruno Haible * modules/alloca-opt: New file, derived from modules/alloca. * modules/allocsa: Depend on alloca-opt instead of alloca. * modules/setenv: Likewise. * modules/vasnprintf: Likewise. * MODULES.html.sh: Add alloca-opt. 2004-09-28 Simon Josefsson * gnulib-tool: New parameter --lgpl, to asseert that modules are LGPL, and to replace license template from GPL to LGPL. 2004-09-28 Paul Eggert * modules/dummy: Change license to LGPL. 2004-09-28 Paul Eggert * lib/dummy.c: Change copyright notice to FSF, and license to GPL. 2004-09-24 Simon Josefsson * modules/minmax (License): Change from GPL to LGPL. 2004-09-23 Simon Josefsson * gnulib-tool (--import): Typo. 2004-09-23 Simon Josefsson * gnulib-tool (--import): Make sure *.m4 end up in m4/ by default. 2004-09-22 Bruno Haible * modules/*: Add 'License' field. * gnulib-tool: Accept --extract-license option. (func_get_license): New function. 2004-09-21 Bruno Haible * modules/vasnprintf (Files): Add m4/stdint_h.m4, m4/inttypes_h.m4. Reported by Simon Josefsson. 2004-09-20 Paul Eggert * modules/inttostr (Files): Add m4/longlong.m4, since it uses gl_AC_TYPE_LONG_LONG. 2004-09-20 Paul Eggert * config/srclist.txt: Add getsubopt.c, since libc bought our changes. 2004-09-18 Simon Josefsson and Paul Eggert * gnulib-tool: Replace various ad-hoc automake/autoconf/aclocal calls with autoreconf. Define GL_LIB. 2004-09-14 Karl Berry * config/srclist.txt: unsync setenv.c, sigh. 2004-09-13 Paul Eggert * lib/argp-pvh.c (argp_program_version_hook): Provide initial value. Problem reported by Bruno Haible in: http://lists.gnu.org/r/bug-tar/2004-09/msg00023.html 2004-09-13 Paul Eggert * config/srclist.txt: Comment out argp-pvh.c. 2004-09-11 Paul Eggert * lib/mempcpy.h: Wrap the entire include file inside #ifndef mempcpy, in case some system header has #define'd it. Problem reported by Soeren D. Schulze in . 2004-09-09 Karl Berry * regex.[ch]: delete from the root. These were supposed to be synced with emacs cvs, but this has not happened for about a year, and anyway nothing else uses emacs regex.[ch]. bug-gnulib mail from Jeff Bailey, 9 Sep 2004 15:49:24 -0700. lib/regex[.ch] is untouched. 2004-09-09 Bruno Haible * modules/vasnprintf (Files): Add m4/eoverflow.m4. 2004-09-09 Bruno Haible * m4/eoverflow.m4: New file, taken from GNU libiconv eilseq.m4 with modifications. * m4/vasnprintf.m4 (gl_FUNC_VASNPRINTF): Require gl_EOVERFLOW. 2004-09-08 Oskar Liljeblad * modules/xvasprintf: New file. * MODULES.html.sh (Extra functions based on ANSI C 89): Add vasprintf. 2004-09-08 Oskar Liljeblad * lib/xvasprintf.h: New file. * lib/xvasprintf.c: New file. * lib/xasprintf.c: New file. 2004-09-08 Bruno Haible * m4/stdint.m4: New file, taken from GNU clisp with modifications. 2004-09-08 Bruno Haible * lib/vasnprintf.c (VASNPRINTF): Signal EOVERFLOW if the resulting length is > INT_MAX. * lib/vasprintf.c (vasprintf): Don't test for length > INT_MAX any more. 2004-09-08 Bruno Haible * lib/stdint_.h: New file, taken from GNU clisp. 2004-09-08 Bruno Haible Oskar Liljeblad * modules/stdint: New file. * MODULES.html.sh (Support for systems lacking ISO C 99): Add stdint. 2004-08-19 Paul Eggert Import from coreutils. * lib/userspec.c: Don't use , so that we don't use alloca on strings on unbounded length. alloca's performance benefits aren't that important here. (V_STRDUP): Remove. (parse_with_separator): New function, with most of the internals of the old parse_user_spec. Allow user to omit both user and group, for compatibility with FreeBSD. Clone only the user name, not the entire spec. Do not set *uid, *gid unless entirely successful. Avoid memory leak in some failing cases. Fix regression for USER.GROUP reported by Dmitry V. Levin in (parse_user_spec): Rewrite to use parse_with_separator. 2004-08-19 Paul Eggert * modules/userspec: Don't depend on alloca. 2004-08-19 Paul Eggert * m4/userspec.m4 (gl_USERSPEC): Don't require AC_FUNC_ALLOCA. 2004-08-17 Paul Eggert * MODULES.html.sh: Add xalloc-die, c-strtod, c-strtold, raise, readtokens0, getcwd, fcntl-safer, canonicalize, cycle-check, utimecmp, utimens, xnanosleep. Rename sha to sha1. 2004-08-16 Simon Josefsson * gnulib-tool: Use sed instead of autoconf --trace, inspired by libtoolize behaviour by "Gary V. Vaughan" . Add --dry-run for --import. Let user provided command line parameters override configure.ac settings. 2004-08-12 Simon Josefsson * m4/getopt.m4 (gl_GETOPT_SUBSTITUTE): New macro, as discussed with Paul Eggert in threads rooted at and . Before, the test was empty, and relied on ELIDE_CODE in source code.) (gl_PREREQ_GETOPT): New macro. (gl_GETOPT): Use them. 2004-08-12 Simon Josefsson * lib/getopt.c, getopt1.c: Remove ELIDE_CODE hack. * lib/getopt_.h: Renamed from getopt.h. 2004-08-12 Simon Josefsson * gnulib-tool: Add --source-base, --m4-base, --libtool options. Change default library name from libfoo to libgnu. Now, if you have a configure.ac that says: gl_SOURCE_BASE(gl) gl_M4_BASE(gl/m4) gl_MODULES(error getopt etcetera) gl_INIT you can import all you need by running: ../gnulib/gnulib-tool --import * modules/getopt (Files): Rename getopt.h to getopt_.h. (Makefile.am): Rewrite, use logic from argz. (Include): Use instead of "getopt.h". 2004-08-12 Paul Eggert * modules/argp (Files): Add m4/unlocked-io.m4. (Depends-on): Add extensions. 2004-08-12 Paul Eggert * m4/argp.m4 (gl_ARGP): Do not check for argp.h or argp_parse; nobody uses HAVE_ARGP_H or HAVE_ARGP_PARSE. Require gl_FUNC_GLIBC_UNLOCKED_IO, gl_USE_SYSTEM_EXTENSIONS. Check for program_invocation_name, program_invocation_short_name, flockfile, funlockfile, features.h, _getopt_long_only_r. 2004-08-12 Paul Eggert * lib/argp-help.c, argp-parse.c: Use "gettext.h" instead of its complicated substitute. * lib/argp-help.c: Include , for program_invocation_short_name and program_invocation_name. (__argp_basename) [!_LIBC]: Remove; the only use was replaced by its body. (__argp_short_program_name): Change condition from !defined __argp_short_program_name to ! (defined _LIBC || HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME), to match argp-namefrob.h. (__argp_failure): Don't assume strerror_r returns char *. * lib/argp-parse.c (N_): Define unconditionally. (argp_default_options): Fill out initializers with 0 to avoid gcc warnings. 2004-08-12 Paul Eggert * config/srclist.txt: Remove getopt.c, getopt.h (renamed to getopt_.h), getopt1.c. 2004-08-11 Paul Eggert Merge from coreutils. * m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH): Check for wmemchr and wmemcpy. * m4/obstack.m4 (gl_PREREQ_OBSTACK): Require gl_AC_HEADER_INTTYPES_H, gl_AC_HEADER_STDINT_H, gl_AC_TYPE_UINTMAX_T. 2004-08-11 Paul Eggert Merge from coreutils. * lib/fnmatch.c (WIDE_CHAR_SUPPORT): Don't set to 1 if missing wmemchr or wmemcpy. Problem reported by Robert Dahlem for Reliant Unix 5.43. * lib/obstack.c: Include and if available. (union fooround): Use uintmax_t, not long int. The rest is a merge from libc: [defined _LIBC]: Include . (_obstack) [defined _LIBC]: Remove after 2.3.4. * lib/settime.c (settime): Recode to avoid warning with Sun Forte C 6U2. * lib/strverscmp.c: Convert to UTF-8. 2004-08-11 Paul Eggert * modules/obstack (Files): Add m4/inttypes_h.m4, m4/stdint_h.m4, m4/uintmax_t.m4. 2004-08-09 Paul Eggert * modules/xalloc-die: New file. * modules/xalloc: Remove dependencies on error, gettext, exitfail. * modules/md5 (Files): Add m4/uint32_t.m4. * modules/sha1: Renamed from modules/sha. (Files): Rename lib/sha.h to lib/sha1.h. Rename lib/sha.c to lib/sha1.c. Rename m4/sha.m4 to m4/sha1.m4. (lib_SOURCES): Likewise. (configure.ac): Rename gl_SHA to gl_SHA1. (Include): sha.h -> sha1.h. 2004-08-09 Paul Eggert * m4/uint32_t.m4, m4/uintptr_t.m4: New files. * m4/sha1.m4: Renamed from sha.m4. (gl_SHA1): Renamed from gl_SHA. All uses changed. 2004-08-09 Paul Eggert * lib/obstack.h (obstack_empty_p): Don't assume that chunk->contents is suitably aligned. * lib/obstack.c (_obstack_begin, _obstack_begin_1, _obstack_newchunk): Likewise. Problem reported by Benno in . * lib/chown.c (rpl_chown): Work even if the file is writeable but not readable. This could be improved further but it'd take some work. 2004-08-08 Simon Josefsson * modules/xgethostname (Depends-on): Remove exit and error (not used). * modules/getpass-gnu: Add getpass.h. (Depends-on): Add stdbool. * modules/getpass: Add getpass.h. 2004-08-08 Simon Josefsson * m4/getpass.m4 (gl_FUNC_GETPASS, gl_FUNC_GETPASS_GNU): Check getpass declaration. 2004-08-08 Simon Josefsson * lib/xgethostname.c: Don't include error.h (not used). * lib/getpass.h: Add. * lib/getpass.c: Include getpass.h first. 2004-08-08 Paul Eggert * lib/xalloc-die.c: New file. * lib/xalloc.h (xalloc_fail_func, xalloc_msg_memory_exhausted): Remove. All uses removed. * lib/xmalloc.c (xalloc_fail_func, xalloc_msg_memory_exhausted): Likewise. Move inclusions of gettext.h, error.h, exitfail.h to xalloc-die.c. (_, N_, xalloc_die): Move to xalloc-die.c. * lib/userspec.c (parse_user_spaec): Use xstrdup rather than strdup, so that we needn't mess with xalloc_msg_memory_exhausted. * lib/sha1.h: Renamed from sha.h. (SHA1_H): Renamed from _SHA_H. (sha1_ctx): Renamed from sha_ctx. (sha1_init_ctx): Renamed from sha_init_ctx. (sha1_process_block): Renamed from sha_process_block. (sha1_process_bytes): Renamed from sha_process_bytes. (sha1_finish_ctx): Renamed from sha_finish_ctx. (sha1_read_ctx): Renamed from sha_read_ctx. (sha1_stream): Renamed from sha_stream. (sha1_buffer): Renamed from sha_buffer. * lib/sha1.c: Likewise; renamed from sha.c. Do not include . Include rather than . 2004-08-08 Bruno Haible * lib/pathname.h (FILE_SYSTEM_PREFIX_LEN): Renamed from FILESYSTEM_PREFIX_LEN. * lib/progreloc.c: Likewise. * lib/concatpath.c (concatenated_pathname): Use FILE_SYSTEM_PREFIX_LEN. 2004-08-06 Simon Josefsson * modules/progname (Depends-on): Don't depend on stdbool. 2004-08-06 Simon Josefsson * modules/getsubopt: New file. * MODULES.html.sh (Support for systems lacking POSIX:2001): Add getsubopt. 2004-08-06 Paul Eggert More merge from coreutils. * m4/utimens.m4, m4/utimecmp.m4: New files. * m4/backupfile.m4, euidacces.m4, acl.m4, afs.m4, calloc.m4, dirfd.m4, fsusage.m4, jm-macros.m4, ls-mntd-fs.m4, md5.m4, mountlist.m4, prereq.m4, sha.m4: Import changes from coreutils. 2004-08-06 Paul Eggert More merge from coreutils. * modules/raise, modules/readtokens0, modules/utimens: * modules/utimecmp, module/xnanosleep: New files. * modules/strftime: Add lib/strftime.h. Change include from to "strftime.h". * modules/yesno: Add lib/yesno.h. * modules/backupfile: Remove lib/addext.c. * modules/euidaccess: Add stat-macros.h. * modules/canonicalize, modules/euidaccess, modules/filemode, modules/lchown, modules/makepath, modules/rmdir, modules/stat: Likewise. 2004-08-06 Paul Eggert Merge from tar. * lib/argp-help.c (make_hol, hol_append): Don't assume that SIZE_MAX is a valid preprocessor constant. (__argp_basename): Change from "#ifndef _LIBC" to "#ifndef __argp_short_program_name", so that we don't compile these functions for tar. More merges from coreutils. * lib/raise.c, lib/readtokens0.h, lib/readtokens0.c, lib/strftime.h: * lib/utimens.h, lib/utimens.c, lib/utimecmp.h, lib/utimecmp.c: * lib/xnanosleep.h, lib/xnanosleep.c, lib/yesno.h: New files. * lib/addext.c: Remove; no longer needed. * lib/yesno.c, lib/argmatch.h, lib/argmatch.c, lib/backupfile.h, lib/backupfile.c, lib/euidaccess.c, lib/filemode.c, lib/closeout.c, lib/dup2.c, lib/exclude.c, lib/fileblocks.c, lib/filemode.c, lib/fnmatch.c, lib/fnmtahc_loop.c, lib/fopen-safer.c, lib/fsusage.c, lib/fsusage.h, lib/ftruncate.c, lib/full-write.c, lib/getdate.y, lib/getloadavg.c, lib/getugroups.c, lib/hard-locale.c, lib/hard-locale.h, lib/hash.c, lib/human.c, lib/human.h, lib/lchown.c, lib/lchown.h, lib/makepath.c, lib/makepath.h, lib/md5.c, lib/md5.h, lib/memchr.c, lib/memcoll.c, lib/memrchr.c, lib/modechange.c, lib/modechange.h, lib/mountlist.c, lib/mountlist.h, lib/nanosleep.c, lib/posixtm.c, lib/putenv.c, quotearg.c, lib/quotearg.h, lib/readtokens.c, lib/readutmp.c, lib/readutmp.h, lib/rmdir.c, lib/safe-read.c, lib/save-cwd.c, lib/savedir.c, lib/setenv.c, lib/sig2str.c, lib/stat.c, lib/strtoimax.c, lib/strverscmp.c, lib/userspec.c, lib/utime.c, lib/version-etc.c., lib/xgethostname.c, lib/xmemcoll.c, lib/xreadlink.c, lib/xstrtod.c, lib/xstrtod.h, lib/xstrtoimax.c, lib/xstrtol.c, lib/xstrtol.h, lib/xstrtoumax.c: Import changes from coreutils. 2004-08-05 Simon Josefsson * m4/strdup.m4: Always run gl_PREREQ_STRDUP, since strdup.h need it. 2004-08-05 Simon Josefsson * m4/getsubopt.m4: New file. 2004-08-05 Paul Eggert Merge from coreutils. * m4/c-strtod.m4, m4/canonicalize.m4, m4/fcntl-safer.m4: * m4/getcwd-path-max.m4: New files. * m4/dos.m4 (gl_AC_DOS): filesystem -> file system renaming. FILESYSTEM_PREFIX_LEN -> FILE_SYSTEM_PREFIX_LEN. FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX -> FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX. FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR -> FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR. * m4/path-concat.m4 (gl_PATH_CONCAT): Don't require gl_AC_DOS, the prerequisite modules now handle the DOS stuff. Don't check for unistd.h. 2004-08-05 Paul Eggert Merge from coreutils. * lib/.gdb-history: Remove; this doesn't belong here. * lib/c-strtod.c, lib/c-strtod.h, lib/c-strtold.c, lib/cycle-check.c: * lib/cycle-check.h, lib/dev-ino.h, lib/canonicalize.h: * lib/canonicalize.c, lib/fcntl-safer.h, lib/fcntl-safer.c: * lib/getcwd.c: New files. * lib/dirname.h: Include . (FILE_SYSTEM_PREFIX_LEN): Renamed from FILESYSTEM_PREFIX_LEN, for consistency with POSIX terminology. All uses changed. (IS_ABSOLUTE_FILE_NAME, IS_RELATIVE_FILE_NAME): New macros. (strip_trailing_slashes): Use bool for booleans. * lib/stripslash.c (strip_trailing_slashes): Likewise. * lib/error.c: Work around bug in OpenBSD 3.4 sterror_r: it sometimes returns a positive errno value even when it succeeds. (print_errno_message) [!LIBC]: Fall back on strerror if __strerror_r fails. * lib/path-concat.c (mempcpy): Don't define if a system header defines it. Don't include stdio.h, stdlib.h, unistd.h, strdup.h. (longest_relative_suffix): New function. (path_concat): Use it. Assume first argument is not NULL. Port to DOS. Omit redundant separators. Report an error instead of returning NULL. Use mempcpy instead of memcpy. (xpath_concat): Remove: not declared or used. * lib/same.h: Include (same_name): Return bool, not int. * lib/same.c (same_name): Likewise. (errno): Don't declare; we assume C89 or better now. * lib/stat-macros (S_ISCTG, S_ISOFD, S_ISOFL): New macros, if not already defined. * lib/xgetcwd.c (errno): Don't declare; we assume C89 or better now. * lib/dup-safer.c (errno): Likewise. 2004-08-05 Paul Eggert Merge from coreutils. * modules/c-strtod, modules/c-strtold, modules/canonicalize: * modules/cycle-check, modules/fcntl-safer, modules/getcwd: New files. * modules/path-concat: Don't depend on strdup. 2004-08-03 Simon Josefsson * lib/strdup.h: Only use HAVE_DECL_STRDUP if defined. * lib/progname.h: Don't include stdbool.h. 2004-08-03 Paul Eggert * modules/fatal: Remove, as the "fatal" module wasn't used or working. * MODULES.html.sh (func_all_modules): Remove fatal. 2004-08-03 Paul Eggert * m4/fatal.m4: Remove, as the "fatal" module wasn't used or working. 2004-08-03 Paul Eggert * lib/fatal.c, fatal.h: Remove as the "fatal" module wasn't used or working. 2004-08-02 Simon Josefsson * lib/getsubopt.h: New file, with comments from Bruno Haible. * lib/getsubopt.c: New file, from glibc, but slightly modified based on suggestions from Paul Eggert . 2004-08-01 Simon Josefsson * lib/xgetdomainname.c: Include stdlib.h, for free(). 2004-07-19 Bruno Haible * MODULES.html.sh (func_all_modules): Add dummy. 2004-07-16 Simon Josefsson * modules/dummy: New file. 2004-07-16 Simon Josefsson * lib/dummy.c: New file. 2004-07-16 Bruno Haible * lib/backupfile.h: Add extern "C" for C++. * lib/closeout.h: Likewise. * lib/copy-file.h: Likewise. * lib/findprog.h: Likewise. * lib/full-write.h: Likewise. * lib/pathname.h: Likewise. * lib/progname.h: Likewise. * lib/stpcpy.h: Likewise. * lib/stpncpy.h: Likewise. * lib/strcase.h: Likewise. * lib/strstr.h: Likewise. * lib/xalloc.h: Likewise. * lib/mbswidth.h: Add extern "C" for C++. Reported by Albert Chin-A-Young . 2004-07-13 Robert Millan * m4/host-os.m4: s/KNetBSD/kNetBSD/g and s/KFreeBSD/kFreeBSD/g. 2004-07-09 Simon Josefsson * lib/getndelim2.c: Include stddef.h, for ptrdiff_t. (FreeBSD 4.9 failed without this.) 2004-07-09 Paul Eggert * modules/chown (Files): Add lib/fchown-stub.c, since gl_PREREQ_CHOWN invokes AC_LIBOBJ(fchown-stub). 2004-07-09 Paul Eggert * lib/fchown-stub.c: New file. 2004-06-24 Jim Meyering * lib/obstack.h (obstack_base): Cast to (void *), per documentation. 2004-06-22 Paul Eggert * modules/argz: Omit "#include". * MODULES.html.sh (func_all_modules): Add calloc, to match 2004-06-01 addition of calloc module. 2004-06-22 Paul Eggert * m4/argz.m4: New file, which is autoupdated from libtool. 2004-06-22 Paul Eggert * lib/argz.c, lib/argz_.h: New files, which are autoupdated from libtool. 2004-06-22 Paul Eggert * config/srclist-update: Don't insist on "USA." before the close-comment, as libtool omits the period and puts the */ on a separate line. * config/srclist.txt: Add argz.c, argz_.h, argz.m4. * config/srclistvars.sh: Add LIBTOOL (for eggert only). 2004-06-22 Gary V. Vaughan * modules/argz: New file. * MODULES.html.sh (func_all_modules): Add argz. 2004-06-12 Jim Meyering and Paul Eggert * modules/hash (Files): Add lib/xalloc.h. * modules/pipe (Depends-on): Add wait-process. * modules/stat (Depends-on): Add xalloc. * modules/userspec (Files): Add lib/userspec.h. * modules/xstrtol (Depends-on): Add error. 2004-06-10 Jim Meyering * lib/calloc.c: New file. 2004-06-06 Paul Eggert * lib/getdate.y (yylex): Allow space between sign and number. Problem reported by Dan Jacobson. 2004-06-01 Paul Eggert Merge from coreutils CVS. * m4/backupfile.m4, dirname.m4, human.m4, inttypes.m4, longlong.m4, makepath.m4, memchr.m4, memcmp.m4, mountlist.m4, path-concat.m4, putenv.m4, quotearg.m4, readutmp.m4, strtoimax.m4, strtoll.m4, strtoull.m4, strtoumax.m4, ulonglong.m4, vasnprintf.m4, xstrtol.m4: Fix copyright date and/or serial number. * m4/chown.m4 (gl_PREREQ_CHOWN): Check for fcntl.h. See if we need an fchown replacement. (gl_FUNC_CHOWN_FOLLOWS_SYMLINK): New macro. (gl_FUNC_CHOWN): Require gl_FUNC_CHOWN_FOLLOWS_SYMLINK, and use the replacement function if we detect either defect. * m4/prereq.m4 (gl_PREREQ): Add gl_ALLOCSA, gl_CLOEXEC, gl_INTTOSTR, gl_UTIMECMP. 2004-06-01 Paul Eggert and Jim Meyering Merge from coreutils CVS. * lib/stat-macros.h: New file, with contents from file-type.h and coreutils' system.h. * lib/file-type.c: Include "stat-macros.h". * lib/file-type.h (file_type): Move all macro definitions to new file, stat-macros.h. * modules/file-type: Add lib/stat-macros.h. * lib/chown.c (rpl_chown) [CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE]: Wrap old code with this conditional. [CHOWN_MODIFIES_SYMLINK]: Try to work around a chown function that does not dereference symlinks. * lib/lchown.c (lchown) [CHOWN_MODIFIES_SYMLINK]: Just call chown. * lib/xreadlink.c: Include xreadlink.h first, to catch .h file dependency problems. (xreadlink): Accept new arg SIZE, for efficiency. All decls and uses changed. * lib/xreadlink.h: Include , for size_t. * lib/.cppi-disable: Add alloca_.h, allocsa.h, exit.h, getndelim2.h, gettext.h, localcharset.h, strdup.h, strndup.h, strtoul.c, time_r.h. * lib/.cvsignore: Add alloca.h, fnmatch.h, poll.h, stdbool.h, sysexits.h. 2004-06-01 Jim Meyering * m4/calloc.m4: New file. * modules/calloc: New file. 2004-05-31 Paul Eggert * m4/stdbool.m4 (AC_HEADER_STDBOOL): Detect _Bool bug in HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. Problem reported by Jim Meyering. Also, fix a typo in a diagnostic. 2004-05-30 Paul Eggert * m4/xalloc.m4 (gl_PREREQ_XMALLOC): Do not require AC_FUNC_MALLOC or AC_FUNC_REALLOC. 2004-05-30 Paul Eggert * modules/hash (Depends-on): Remove malloc, realloc. * modules/xalloc (Depends-on): Likewise. * README: Mention that the 'free' module works around the problem with 'free (0)'. Mention LIA-1 and C99. Add a copyright notice. * lib/xmalloc.c (HAVE_MALLOC, HAVE_REALLOC): Do not require these macros to be defined. (xnmalloc_inline, xnrealloc_inline, xcalloc): Do not die if the allocator returns NULL because the requested size is zero. 2004-05-20 Paul Eggert * lib/malloc/obstack.c (_obstack) [defined _LIBC]: Bring back this var. Add comment explaining why libc still defines it. This merges the following patch from glibc: http://sources.redhat.com/ml/libc-alpha/2004-05/msg00157.html 2004-05-20 Andreas Schwab * m4/free.m4: Replace free if it not known to work, not the other way round. 2004-05-19 Paul Eggert * lib/obstack.c (_obstack): Remove unused variable. It hasn't been present in glibc since revision 1.1 of this file. * lib/obstack.h (_obstack_free, obstack_1grow, obstack_1grow_fast, obstack_alignment_mask, obstack_alloc, obstack_base, obstack_blank, obstack_blank_fast, obstack_chunk_size, obstack_copy, obstack_copy0, obstack_finish, obstack_grow, obstack_grow0, obstack_init, obstack_int_grow, obstack_int_grow_fast, obstack_make_room, obstack_memory_used, obstack_next_free, obstack_object_size, obstack_ptr_grow, obstack_ptr_grow_fast, obstack_room): Remove declarations of nonexistent functions. 2004-05-18 Karl Berry * config/srclist.txt: break link for vasnprintf.c. 2004-05-17 Paul Eggert Port obstack to the AS/400, where pointers are 16 bytes wide and you cannot cast an integer to a valid pointer. This patch is currently waiting to be integrated into glibc; see . * lib/obstack.h (__PTR_TO_INT, __INT_TO_PTR): Remove. All uses of __INT_TO_PTR (PTR_TO_INT ...) replaced by __PTR_ALIGN. (__BPTR_ALIGN, __PTR_ALIGN): New macros. (struct obstack): temp member is now a union of a pointer and an integer, instead of an integer. All integer uses changed. This does not affect the physical layout of struct obstack, except on hosts (like the AS/400) where the size or alignment of void * is greater than that of ptrdiff_t. (obstack_finish) [! (defined __GNUC__ && defined __STDC__ && __STDC__)]: Store temporary in pointer member of union, not integer member. * lib/obstack.c: Include , for offsetof. (struct fooalign): Remove; it doesn't need a name. (union fooround): Change double to long double, and add void *. (DEFAULT_ALIGNMENT): Use offsetof to compute. (DEFAULT_ALIGNMENT, DEFAULT_ROUNDING): Now an enum constant, not a macro. Hence the values are always int; so remove all casts-to-int in uses. 2004-05-17 Paul Eggert * config/srclist.txt: Break link for argp-help.c and argp-parse.c until we can get this patch merged into glibc. 2004-05-17 Derek R. Price Paul Eggert * m4/argp: Depend on alloca. 2004-05-17 Derek R. Price Paul Eggert * lib/argp-help.c, argp-parse.c: Assume rather than freecoding. 2004-05-17 Bruno Haible * lib/vasnprintf.c (VASNPRINTF): Correctly handle the case of a precision that consists of a '.' followed by an empty digit string. Patch by Tor Lillqvist . 2004-05-16 Paul Eggert * modules/getdate: Depend on alloca. * modules/setenv: Likewise. 2004-05-16 Paul Eggert * m4/alloca.m4 (gl_FUNC_ALLOCA): Define HAVE_ALLOCA_H always, for backward compatibility with older code. We need our own alloca.h if _AIX is defined. Define HAVE_ALLOCA if we discover it under some other name, and our alloca.h will define it. 2004-05-16 Paul Eggert Derek Price * lib/alloca.c: Include , to get our interface. * lib/alloca_.h: Use __alloca on AIX, so that we don't have to include first. Use C89 prototype for alloca; this requires including for size_t. Use extern "C" if C++. Use #elif for simplicity, since we can assume C89 now. Don't try to source the system alloca.h since it will not be found and to prevent recursively including its replacement. * lib/fnmatch.c: Include instead of opencoding. * lib/regex.c: Likewise. 2004-05-16 Derek Price Paul Eggert getline cleanup. This changes the getndelim2 API: both order of arguments, and meaning of delim2 (now uses EOF, not 0, to indicate no delimiter). * lib/getline.c: Don't include stddef.h or stdio.h, since our interface does that. (getline): Always use getdelim, so that we don't have two copies of this code. * lib/getndelim2.c: Include , , if available. (PTRDIFF_MAX, SIZE_MAX, SSIZE_MAX): Define if not defined. (GETNDELIM2_MAXIMUM): New macro. (getndelim2): Reorder arguments. delim==EOF now means no delimiter, instead of the old practice of delim2==0. All callers changed. Return -1 on overflow, instead of returning junk. Do not set *linesize unless allocation succeeds. * lib/getndelim2.h: Do not include stddef.h; no longer needed, now that we include sys/types.h. * lib/getnline.h: Likewise. * lib/getndelim2.h (GETNLINE_NO_LIMIT): New macro. (getndelim2): Reorder arguments. * lib/getnline.c (getnline, getndelim): Don't discard the NMAX argument. (getnline): Invoke getndelim, to avoid code duplication. * lib/getnline.h (GETNLINE_NO_LIMIT): New macro, used instead of (size_t) -1 by callers of the getnline family. 2004-05-13 Paul Eggert * m4/gettime.m4 (gl_GETTIME): Require gl_TIMESPEC. Check for gettimeofday. * m4/settime.m4 (gl_SETTIME): Require gl_TIMESPEC. Check for settimeofday, stime. 2004-05-13 Paul Eggert * lib/nanosleep.c (suspended): Change its type from int to sig_atomic_t volatile. (first_call): Make it private to rpl_nanosleep, and have it be zero initially as that's a bit faster. (my_usleep): Round up fractional times instead of truncating them, as this is the usual meaning for 'sleep'. * lib/gettime.c (gettime): Fall back on `time' if `gettimeofday' doesn't work. * lib/settime.c: Include , for stime (on Solaris 8, anyway). (ENOSYS): Define if not defined. (settime): Fall back on stime if it exists and settimeofday fails. But don't bother with fallbacks if a method fails with errno == EPERM. 2004-05-11 Jim Meyering Prior to this change, the save_cwd caller required read access to the current directory on most systems (ones with the fchdir function). * lib/save-cwd.c (save_cwd) [HAVE_FCHDIR]: If opening `.' read-only fails, try write-only, and finally, resort to using xgetcwd. 2004-05-06 Paul Eggert * lib/obstack.c, obstack.h: Import changes from libc. 2004-05-04 Derek Price * modules/argp: Remove dependency on alloca. 2004-04-28 Bruno Haible * lib/findprog.c (find_in_path): Treat Cygwin like Windows, since it also implicitly appends .exe to executables. * lib/localcharset.c (ISSLASH): Treat Cygwin like Windows, since it now accepts Windows pathnames. * lib/pathname.h (ISSLASH, IS_PATH_WITH_DIR, FILESYSTEM_PREFIX_LEN): Treat Cygwin like Windows, since it now accepts Windows pathnames. * lib/progreloc.c (ISSLASH, IS_PATH_WITH_DIR, FILESYSTEM_PREFIX_LEN): Treat Cygwin like Windows, since it now accepts Windows pathnames. Reported by Derek Robert Price . 2004-04-27 Derek Price * m4/dos.m4 (gl_AC_DOS): Add Cygwin to list of Windows/DOS environments that accept backslashes and drive letters in paths. 2004-04-21 Karl Berry * config/srclist.txt (localcharset.c): break sync. 2004-04-20 Paul Eggert * m4/host-os.m4: Add a copyright notice. 2004-04-20 Jim Meyering * modules/dirfd: Change UTILS_ macro name prefix to gl_. * modules/mkstemp: Likewise. * modules/mkdir: Likewise. Change UTILS_ to gl_ in AC_DEFINE'd names. Change utils_- and jm_-prefixed variables, too. * m4/mkdir-slash.m4 (gl_FUNC_MKDIR_TRAILING_SLASH): Renamed from UTILS_FUNC_MKDIR_TRAILING_SLASH. * m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Renamed from UTILS_FUNC_MKSTEP. * m4/dirfd.m4 (gl_FUNC_DIRFD): Rename from UTILS_FUNC_DIRFD. Don't emit trailing blanks. Also rename jm_-prefixed variables to have gl_ prefix. * m4/host-os.m4 (gl_HOST_OS): Rename from UTILS_HOST_OS. Also rename jm_-prefixed variables to have gl_ prefix. * m4/jm-macros.m4: Reflect the renamings. * m4/prereq.m4: Likewise. 2004-04-20 Jim Meyering * lib/getndelim2.c (getndelim2): Upon realloc failure, don't leak memory. 2004-04-20 Jim Meyering Bruno Haible * lib/localcharset.c (get_charset_aliases) [!VMS && !WIN32]: Don't leak memory when realloc fails. 2004-04-19 Jim Meyering * m4/readutmp.m4 (gl_PREREQ_READUTMP): Require gl_FUNC_FREE, now that readutmp.c may call `free (0)'. 2004-04-19 Bruno Haible * m4/mbrtowc.m4: Change jm_ to gl_ in cache variables as well. * m4/inttypes_h.m4: Likewise. * m4/stdint_h.m4: Likewise. * m4/intmax_t.m4: Likewise. * m4/uintmax_t.m4: Likewise. 2004-04-18 Jim Meyering * m4/prereq.m4: Don't forbid jm_ prefix. * m4/afs.m4, m4/allocsa.m4, m4/assert.m4, m4/backupfile.m4: * m4/bison.m4, m4/check-decl.m4, m4/chown.m4, m4/d-ino.m4: * m4/d-type.m4, m4/dirname.m4, m4/dos.m4, m4/error.m4, m4/fpending.m4: * m4/fstypename.m4, m4/fsusage.m4, m4/ftruncate.m4, m4/getdate.m4: * m4/getgroups.m4, m4/gettext.m4, m4/glibc21.m4, m4/group-member.m4: * m4/human.m4, m4/intmax.m4, m4/intmax_t.m4, m4/inttostr.m4: * m4/inttypes.m4, m4/inttypes_h.m4, m4/jm-macros.m4, m4/jm-winsz1.m4: * m4/jm-winsz2.m4, m4/lchown.m4, m4/lib-check.m4, m4/link-follow.m4: * m4/localcharset.m4, m4/longlong.m4, m4/ls-mntd-fs.m4, m4/lstat.m4: * m4/makepath.m4, m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4: * m4/memcmp.m4, m4/mkdtemp.m4, m4/mkstemp.m4, m4/mountlist.m4: * m4/nanosleep.m4, m4/path-concat.m4, m4/perl.m4, m4/prereq.m4: * m4/putenv.m4, m4/quotearg.m4, m4/regex.m4, m4/stat.m4: * m4/stdint_h.m4, m4/strftime.m4, m4/strtoimax.m4, m4/strtoll.m4: * m4/strtoull.m4, m4/strtoumax.m4, m4/timespec.m4, m4/uintmax_t.m4: * m4/ulonglong.m4, m4/unlink-busy.m4, m4/unlocked-io.m4, m4/uptime.m4, * m4/utimbuf.m4, m4/utime.m4, m4/utimes-null.m4, m4/vasnprintf.m4: * m4/xstrtoimax.m4, m4/xstrtol.m4, m4/xstrtoumax.m4: Change jm_ to gl_ in AC_DEFINE'd names. Update all uses. 2004-04-18 Jim Meyering * lib/readutmp.c (read_utmp) [UTMP_NAME_FUNCTION]: Upon realloc failure, don't leak memory and do call END_UTMP_ENT. 2004-04-18 Jim Meyering Change jm_ to gl_ in AC_DEFINE'd names. * modules/assert, modules/chown, modules/fpending: * modules/ftruncate, modules/getgroups, modules/group-member: * modules/lchown, modules/lstat, modules/memcmp: * modules/nanosleep, modules/putenv, modules/stat: * modules/strftime, modules/unlocked-io, modules/utime: * modules/xstrtoimax, modules/xstrtoumax: 2004-04-16 Jim Meyering * m4/prereq.m4 (jm_PREREQ_STAT): Remove macro. It is specific to coreutils' stat program. (gl_PREREQ): Don't require jm_PREREQ_STAT. 2004-04-12 Paul Eggert * config/srclist.txt: Restore setenv.c, unsetenv.c from gettext. Add intmax.m4, printf-posix.m4, sig_atomic_t.m4, signalblocking.m4, ssize_t.m4. * lib/unsetenv.c: Regenerate: this subtracts 1 from the copyright year (!). * m4/printf-posix.m4: Regenerate. * modules/inttostr (EXTRA_DIST): Move inttostr.c here.... (lib_SOURCES): from here. * modules/getopt (lib_SOURCES): Add getopt_int.h. 2004-04-12 Jim Meyering * MODULES.html.sh (func_all_modules): Add cloexec, inttostr, free, tzset. 2004-04-11 Paul Eggert * lib/inttostr.h: Include unconditionally, since we assume C89. (CHAR_BIT): Remove, since we assume C89. Include if available, as per current Autoconf CVS advice. 2004-03-31 Jim Meyering * m4/prereq.m4: Require AC_FUNC_MALLOC, not jm_FUNC_MALLOC. Require AC_FUNC_REALLOC, not jm_FUNC_REALLOC. * m4/xalloc.m4: Likewise. 2004-03-30 Paul Eggert Merge from coreutils. * m4/inttostr.m4: New file. * m4/getdate.m4 (gl_GETDATE): Remove time-related stuff. Require AM_STDBOOL_H and gl_TIMESPEC instead. Require gl_CLOCK_TIME. * m4/clock_time.m4 (gl_CLOCK_TIME): Require AC_GNU_SOURCE. 2004-03-30 Paul Eggert * lib/cloexec.h, cloexec.c (set_cloexec_flag): Return int not bool, to be more consistent with Unix conventions. Suggested by Bruno Haible. Merge from coreutils. * modules/inttostr: New file. * lib/imaxtostr.c, lib/inttostr.c, lib/inttostr.h, lib/offtostr.c: * lib/umaxtostr.c: New files. * modules/getdate: Depend on timespec, stdbool, gettime. * lib/getdate.h: Include stdbool.h, and timespec.h instead of the usual dance. (get_date): Change signature to support fractional time stamps. All callers changed. * lib/getdate.y: Include "getdate.h" first, as we can now assume C89 and don't need to worry about 'const'. Similarly, include "unlocked-io.h" near start, not in middle. Include . (textint.value): Use long int rather than int. (textint.digits): Use size_t rather than int. (BILLION, LOG10_BILLION): New constants. (parser_control): New member rel_ns. Members day_ordinal, time_zone, month, day, hour, minutes, rel_year, rel_month, rel_day, rel_hour, rel_minutes, rel_seconds are now long int, not int. Member seconds is now struct timespec, not int. New member timespec_seen. Members dates_seen, days_seen, local_zones_seen, rels_seen, times_seen, zones_seen are now size_t, not int. (%union.intval): Now long int, not int. New member timespec. (tSDECIMAL_NUMBER, tUDECIMAL_NUMBER): New tokens. (seconds, signed_seconds, unsigned_seconds): New nonterminals. (spec): Now is a timespec or an item list. (timespec, items): New nonterminals. (time, rel, relunit, number, get_date): Add support for fractional seconds. (time): Fix bug: seconds weren't cleared in "00:00 +0000" syntax. (gmtime, localtime, mktime): Remove decls; not needed with C89. (to_hour): First arg is now long int, not int. (to_year): Returns long int, not int. Don't treat year -70 like 70. (tm_diff): Returns long int, not int. (lookup_word): Use bool instead of int when appropriate. (yylex): Use size_t for count, not int. Detect overflow when parsing large integer constants. Add support for fractions. (get_date): Make pointers 'const' if possible. Use more-portable code to detect integer overflow. (main) [TEST]: Adjust to above changes. Test for localtime failure. Don't use ctime; it's not reliable if the year has >4 digits. * lib/human.c (humblock): Inspect BLOCKSIZE if BLOCK_SIZE isn't set. This is for compatibility with BSD. * lib/timespec.h (ST_TIME_CMP_NS, ST_TIME_CMP): Define. (ATIME_CMP, CTIME_CMP, MTIME_CMP, TIMESPEC_NS): Likewise. From coreutils' system.h. * lib/userspec.c: Don't include "posixver.h". (parse_user_spec): Fall back on USER.GROUP parsing, regardless of POSIX version, as POSIX 1003.1-2001 allows that behavior as a compatible extension. Simplify code by removing a boolean int that was always nonzero if a string was nonnull. 2004-03-30 Jim Meyering Merge from coreutils. Avoid a configure-time warning about sys/ucred.h on OSF V4.0. * m4/ls-mntd-fs.m4: Test for sys/ucred.h separately, since on some systems one must include before it. Reported by Christian Krackowizer. 2004-03-30 Jim Meyering Merge from coreutils. * lib/mountlist.c [HAVE_SYS_UCRED_H]: Include grp.h before sys/ucred.h. * lib/readtokens.c (readtoken): Don't leak 64 bytes when reading an empty input stream. * lib/readtokens.c: Include . (readtoken): Use `size_t' rather than int/long. All callers adjusted. Use `bool' rather than `int' where appropriate. Use memset rather than an explicit loop. Use x2nrealloc rather than xrealloc. Allow the use of `\0' as a delimiter. (readtokens): Likewise. * lib/readtokens.h (readtoken, readtokens): Update prototypes. 2004-03-30 Jim Meyering * modules/realloc (Files): Remove m4/realloc.m4. (configure.ac): Depend on AC_FUNC_REALLOC, rather than jm_FUNC_REALLOC. * modules/malloc (Files): Remove m4/malloc.m4. (configure.ac): Depend on AC_FUNC_MALLOC, rather than jm_FUNC_MALLOC. * m4/realloc.m4: Remove file, since now it does no more than AC_REQUIRE([AC_FUNC_REALLOC]), and that can be done via the `configure.ac' section of module/realloc. * m4/malloc.m4: Likewise, but for AC_FUNC_MALLOC. 2004-03-30 Bruno Haible * lib/getloadavg.c (getloadavg): Don't assume setlocale returns nonnull. 2004-03-29 Paul Eggert Merge changes to getloadavg.c from coreutils and Emacs. * modules/getloadvg: Depend on cloexec and xalloc. * lib/getloadavg.c [!defined HAVE_SETLOCALE] (setlocale): Define to an expression, not to the empty string. Include cloexec.h and xalloc.h. (getloadavg): Restore LC_NUMERIC locale after setting it temporarily. Use set_cloexec_flag rather than rolling our own. * lib/cloexec.c, lib/cloexec.h: New files. 2004-03-29 Paul Eggert * m4/cloexec.m4: New file. 2004-03-18 Paul Eggert * lib/getopt.h: Sync with libc CVS. 2004-03-18 Paul Eggert Bruno Haible * m4/mbswidth.m4 (gl_MBSWIDTH): Also test whether declares mbswidth. 2004-03-18 Paul Eggert Bruno Haible * lib/mbswidth.h: Include only if HAVE_DECL_MBSWIDTH_IN_WCHAR_H, not on all platforms that have . * lib/mbswidth.c: Include and before . 2004-03-09 Paul Eggert * modules/getopt: Add lib/getopt_int.h. * lib/argp-parse.c, getopt.c, getopt.h, getopt1.c: Sync with libc CVS. * lib/getopt_int.h: New file, also synced from libc. 2004-03-09 Paul Eggert * config/srclistvars.sh: Add GNUWWWLICENSES for eggert. * config/srclist.txt: Sync getopt with libc. Add getopt_int.h. Bring back getopt.c, getopt.h, getopt1.c. 2004-03-07 Paul Eggert * m4/c-stack.m4 (gl_PREREQ_C_STACK): Renamed from jm_PREREQ_C_STACK. All uses changed. Check for sa_sigaction member; this fixes a bug first reported by Jason Andrade in . 2004-03-07 Paul Eggert * lib/c-stack.c (SIGACTION_WORKS): New macro. Use it instead of long '#if' expressions. Unlike the code it replaces, it does not depend on (defined _SC_PAGESIZE). However, it does depend on HAVE_STRUCT_SIGACTION_SA_SIGACTION; this last change fixes a bug first reported by Jason Andrade in . 2004-02-25 Simon Josefsson * m4/strdup.m4 (gl_PREREQ_STRDUP): Check whether strdup is declared. 2004-02-25 Simon Josefsson * lib/strdup.h: New file. * lib/strdup.c: Include it. * lib/path-concat.c: Include strdup.h. Drop strdup declaration. * lib/userspec.c: Include strdup.h. Drop strdup declaration. 2004-02-23 Karl Berry * doc/maintain.texi, doc/standards.texi, doc/make-stds.texi: new files (from fencepost.gnu.org:/gd/gnuorg). 2004-02-23 Karl Berry * config/srclistvars.sh (GNUORG) [karl]: redefine. * config/srclist.txt: add maintain/standards documents. 2004-02-22 Bruno Haible * modules/xalloc: Remove dependency on stdbool. Reported by Derek Robert Price . 2004-02-18 Bruno Haible * m4/xsize.m4 (gl_XSIZE): Require AC_C_INLINE. Reported by Derek Robert Price . 2004-02-16 Karl Berry * config/mkinstalldirs, install-sh: update from automake. 2004-02-06 Karl Berry * m4/po.m4: update from gettext 0.14.1. 2004-02-06 Karl Berry * lib/config.charset: update from gettext 0.14.1. 2004-02-05 Paul Eggert Add comments and code, prompted by suggestions from Bruno Haible for sh-quote. * lib/quotearg.h (quotearg_alloc): New decl. Improve the comments describing the enum quoting_style values. * lib/quotearg.c (quotearg_alloc): New function. (quotearg_buffer_restyled): Treat lone { and } as special. Treat = as special. Work around bug with older shells that "see" a '\' that is really the 2nd byte of a multibyte char. Quote empty string with shell_quoting_style. 2004-02-03 Bruno Haible * modules/pipe: New file. * MODULES.html.sh (func_all_modules): Add pipe. * m4/pipe.m4: New file, from GNU gettext. 2004-02-03 Bruno Haible * lib/pipe.h: New file, from GNU gettext. * lib/pipe.c: New file, from GNU gettext. 2004-01-27 Bruno Haible * modules/execute: New file. * MODULES.html.sh (func_all_modules): Add execute. * m4/execute.m4: New file, from GNU gettext. 2004-01-27 Bruno Haible * lib/execute.h: New file, from GNU gettext. * lib/execute.c: New file, from GNU gettext. * lib/w32spawn.h: New file, from GNU gettext. 2004-01-24 Paul Eggert Merge from diffutils. * lib/file-type.c (file_type): Add typed memory objects. * lib/file-type.h (S_TYPEISTMO): New macro. * lib/c-stack.h (c_stack_action): Remove argv argument. * lib/c-stack.c (c_stack_action): Likewise. All uses changed. (die): Don't calculate message unless segv_action returns. (get_stack_location, min_address_from_argv, max_address_from_argv, volatile stack_base, volatile_stack_size): Remove. (segv_handler): If ! HAVE_XSI_STACK_OVERFLOW_HEURISTIC, assume that every segmentation violation is a stack overflow. (Ouch!) See Debian bug 136249 (still outstanding) for more info about why HAVE_XSI_STACK_OVERFLOW_HEURISTIC fails on Linux kernels. 2004-01-24 Paul Eggert Exit-status fix from coreutils. Use exit_failure consistently in place of EXIT_FAILURE, so that program exit statuses are consistent on failure. * lib/argmatch.c (ARGMATCH_DIE) [! defined ARGMATCH_DIE]: Include "exitfail.h", and use exit_failure rather than EXIT_FAILURE. * lib/argmatch.h: Comment fix to match the above. * lib/obstack.c (obstack_exit_failure) [!defined _LIBC]: Now a macro referring to exit_failure, instead of a separate variable. Include "exitfail.h" to get it. * lib/xstrtol.h: Include "exitfail.h". (STRTOL_FATAL_ERROR): Exit with status exit_failure, not 2. * lib/long-options.c (parse_long_options): Use prototype for usage function arg. Pass it EXIT_SUCCESS rather than 0, for clarity. 2004-01-23 Paul Eggert * modules/argmatch, modules/obstack, modules/xstrtol: Depend on exitfail. 2004-01-21 Jim Meyering * lib/mktime.c (__mktime_internal) [!_LIBC]: Define to mktime_internal so as not to conflict with a different-sized __mktime_internal function in GNU libc. * lib/timegm.c (__mktime_internal) [!_LIBC]: Likewise. Problem building statically-linked `ls' reported by Michael Brunnbauer. 2004-01-20 Karl Berry * config/config.guess: update from config. * config/srclistvars.sh: GNUWWWLICENSES for karl. 2004-01-20 Bruno Haible Safer stack allocation. * modules/setenv: Depend on allocsa instead of alloca. * lib/setenv.c: Include allocsa.h. (alloca): Remove fallback definition. (freea): Remove macro. (__add_to_environ) [!_LIBC]: Use allocsa instead of alloca. Use freesa instead of freea. 2004-01-20 Bruno Haible * m4/eealloc.m4: New file, from GNU gettext. 2004-01-20 Bruno Haible * m4/allocsa.m4: New file, from GNU gettext. 2004-01-20 Bruno Haible * modules/xallocsa: New file. * MODULES.html.sh (func_all_modules): Add xallocsa. * lib/xallocsa.h: New file, from GNU gettext. * lib/xallocsa.c: New file, from GNU gettext. 2004-01-20 Bruno Haible * lib/wait-process.c: On Windows, include windows.h. Needed on mingw. 2004-01-20 Bruno Haible * lib/wait-process.c (wait_subprocess): Add ignore_sigpipe argument. * lib/wait-process.c (wait_subprocess): Likewise. Handle SIGPIPE specially. 2004-01-20 Bruno Haible * lib/wait-process.c (wait_process): Disable the 2003-10-31 waitid() patch. 2004-01-20 Bruno Haible * lib/wait-process.c (cleanup_slaves): Use ANSI C declaration. 2004-01-20 Bruno Haible * modules/eealloc: New file. * MODULES.html.sh (func_all_modules): Add eealloc. * lib/eealloc.h: New file. 2004-01-20 Bruno Haible * lib/binary-io.h: Avoid warnings on Cygwin. 2004-01-20 Bruno Haible * modules/allocsa: New file. * MODULES.html.sh (func_all_modules): Add allocsa. * lib/allocsa.h: New file, from GNU gettext. * lib/allocsa.c: New file, from GNU gettext. 2004-01-18 Karl Berry * doc/gpl.texi, doc/lgpl.texi: new files. 2004-01-18 Karl Berry * config/srclistvars.sh (GNUWWWLICENSES): new variable. * config/srclist.txt ({fdl,gpl,lgpl}.text): get from there. 2004-01-18 Simon Josefsson * modules/strdup (Files, Makefile.am): Add strdup.h. 2004-01-15 Paul Eggert * modules/poll: Add BUILT_SOURCES. Prefer "$@" to "poll.h" in rule for building poll.h. All this is for consistency with alloca and fnmatch. * modules/same: Depend on stdbool. 2004-01-15 Paul Eggert Merge from coreutils. * m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Check for uintptr_t. * m4/posixver.m4 (gl_POSIXVER): Require gl_DEFAULT_POSIX2_VERSION. (gl_DEFAULT_POSIX2_VERSION): Move the documentation from 'configure' into 'config.hin', so that 'configure --help' isn't burdened by it and we don't have to worry about its formatting there. Reword the documentation so that it's more succinct and can be run together into a single paragraph. * m4/same.m4 (gl_SAME): Check for pathconf. 2004-01-15 Paul Eggert Merge from coreutils. * lib/posixver.c: Include posixver.h. * lib/same.c: Include , . (_POSIX_NAME_MAX): Define if not defined. (MIN): New macro. (same_name): If file names are silently truncated, report that the file names are the same if they are the same after the silent truncation. * lib/xstrtod.h (xstrtod): Accept an extra arg, specifying the conversion function. * lib/xstrtod.c (xstrtod): Likewise. All callers changed to include c-strtod.h and use c_strtod. Don't include stdlib.h; no longer needed. 2004-01-15 Jim Meyering Merge from coreutils. * m4/clock_time.m4 (gl_CLOCK_TIME): Don't set LIB_CLOCK_GETTIME if no library is required. * m4/jm-macros.m4: Don't require UTILS_SYS_OPEN_MAX. * m4/jm-macros.m4 (jm_MACROS): Require gl_FUNC_FREE. * m4/jm-macros.m4 (jm_MACROS): Require autoconf-2.58. (AC_LANG_SOURCE): Remove definition, now that we require autoconf-2.58. * m4/jm-macros.m4 (jm_MACROS): Don't require AC_FUNC_FTW. * m4/lib-check.m4 (jm_LIB_CHECK): Do not set LIB_CRYPT to the value, $ac_cv_search_crypt, if it's "none required". * m4/posixver.m4 (gl_DEFAULT_POSIX2_VERSION): New macro. * m4/prereq.m4 (jm_PREREQ): Require AC_FUNC_GETLOADAVG, not gl_FUNC_GETLOADAVG. * m4/prereq.m4 (jm_PREREQ): Require gl_READTOKENS, gl_MD5, gl_MAKEPATH, gl_LONG_OPTIONS, and gl_IDCACHE, gl_GETUGROUPS. 2004-01-15 Jim Meyering Merge from coreutils. * lib/md5.h (rol) [__GNUC__ && __i386__]: Don't use `asm' code. These days, gcc-3.x does better all by itself. Patch from Dean Gaudet: http://mail.gnu.org/r/bug-coreutils/2003-11/msg00144.html * lib/posixver.c (DEFAULT_POSIX2_VERSION): Use definition of new, optional configure-time default. * lib/version-etc.c (version_etc_copyright): Update copyright date. * lib/xreadlink.c (xreadlink): Correct outdated comment. 2004-01-15 Alexandre Duret-Lutz Merge from coreutils. * m4/nanosleep.m4 (jm_FUNC_NANOSLEEP): Do not set LIB_NANOSLEEP to the value, $ac_cv_search_nanosleep, if it's "none required". 2004-01-14 Paul Eggert * lib/fnmatch_loop.c (ALLOCA_LIMIT): Remove macro, which collided with like-named macro in fnmatch.c. (EXT): Use an internal constant instead. Merge fnmatch patches from glibc. * lib/fnmatch.c (mbsinit): Remove define. Add libc_hidden_ver (__fnmatch, fnmatch). * lib/fnmatch_loop.c (FCT): Cast to int32_t and UCHAR when appropriate. Adjust to renaming of collseq_table_lookup to __collseq_table_lookup. 2004-01-14 Karl Berry * config/install-sh: update from automake. 2004-01-13 Karl Berry * config/install-sh: update from automake. 2004-01-09 Karl Berry * config/install-sh: update from automake. 2004-01-05 Karl Berry * config/config.{sub,guess}: update from config. 2003-12-31 Karl Berry * config/depcomp: update from automake. 2003-12-14 Karl Berry * lib/config.charset: update from gettext-runtime. 2003-12-03 Paul Eggert * lib/getgroups.c (getgroups): xmalloc takes one argument, not two. Bug reported by Alfred M. Szmidt. 2003-12-03 Bruno Haible Upgrade from gettext-0.13. * modules/gettext (Files): Add m4/intmax.m4, m4/longdouble.m4, m4/longlong.m4, m4/printf-posix.m4, m4/signed.m4, m4/size_max.m4, m4/wchar_t.m4, m4/wint_t.m4, m4/xsize.m4. * m4/gettext.m4: Upgrade from gettext-0.13. * m4/po.m4: Upgrade from gettext-0.13. * m4/size_max.m4 (gl_SIZE_MAX): Don't use the _ONCE macros here. * m4/intmax.m4: New file, from gettext-0.13. * m4/printf-posix.m4: New file, from gettext-0.13. 2003-11-29 Karl Berry * lib/argp-{help.c,parse.c,namefrob.h}, argp.h: update from libc. 2003-11-25 Paul Eggert Bruno Haible * lib/printf-parse.h: Don't include sys/types.h. (ARG_NONE): New macro. (char_directive): Change type of *arg_index fields to size_t. * lib/printf-parse.c: Don't include sys/types.h. (SSIZE_MAX): Remove macro. (PRINTF_PARSE): Change the type of the arg_index variables to size_t. Remove unnecessary overflow check. * lib/vasnprintf.c (VASNPRINTF): Update for type change of *arg_index fields. 2003-11-25 Bruno Haible * modules/vasnprintf (Files): Remove m4/ssize_t.m4. 2003-11-25 Bruno Haible * m4/vasnprintf.m4 (gl_PREREQ_PRINTF_PARSE): Don't require gt_TYPE_SSIZE_T. 2003-11-24 Paul Eggert * modules/alloca: Remove dependency on xalloc. 2003-11-24 Paul Eggert * lib/alloca.c: Remove dependency on xalloc module. (xalloc_die): Remove. (memory_full) [!defined emacs]: New macro. [!defined emacs]: Don't include xalloc.h. (alloca): Invoke memory_full, not xalloc_die, if malloc fails or address arithmetic overflows. Change datatypes a bit to avoid unnecessary casts. 2003-11-22 Jim Meyering * lib/xmalloc.c (x2nrealloc_inline): Fix typos in comments: s/size/size_t/. 2003-11-21 Karl Berry * config/config.{sub,guess}: update from config. 2003-11-18 Karl Berry * config/config.{sub,guess}: update from config. * config/(printf-{parse,args}.[ch]): sync broken, sigh. 2003-11-17 Paul Eggert * README: Mention that S+T cannot overflow if S is the size of an existing object and T is sufficiently small. 2003-11-17 Jim Meyering On systems without utime and without a utimes function capable of dealing with a NULL struct utimbuf* argument, this utime replacement could -- in unusual circumstances -- leak a file descriptor. * lib/utime.c: Include and . (utime_null): Be sure to close `fd' and to preserve errno. Reported by Geoff Collyer via Arnold Robbins. 2003-11-17 Bruno Haible * modules/vasnprintf (Files): Add m4/ssize_t.m4. (Depends-on): Add xsize. 2003-11-17 Bruno Haible * m4/vasnprintf.m4 (gl_PREREQ_PRINTF_PARSE): Require gt_TYPE_SSIZE_T. 2003-11-17 Bruno Haible * lib/vasnprintf.c (alloca): Remove fallback definition. (freea): Remove definition. (VASNPRINTF): Use alloca only for small sizes, say <= 4000 bytes. Reported by Paul Eggert. 2003-11-16 Paul Eggert Bruno Haible Protect against address arithmetic overflow. * lib/printf-args.h: Include stddef.h. (arguments): Change type of field 'count' to size_t. * lib/printf-args.c (printf_fetchargs): Use size_t instead of 'unsigned int' where appropriate. * lib/printf-parse.h: Include sys/types.h. (char_directive): Change type of *arg_index fields to ssize_t. (char_directives): Change type of fields 'count', max_*_length to size_t. * lib/printf-parse.c: Include sys/types.h and xsize.h. (SSIZE_MAX): Define fallback value. (PRINTF_PARSE): Use size_t instead of 'unsigned int' and ssize_t instead of 'int' where appropriate. Check a_allocated, d_allocated against overflow. Reject %m$ argument numbers > SSIZE_MAX + 1. * lib/vasnprintf.c: Include xsize.h. (VASNPRINTF): Use size_t instead of 'unsigned int' where appropriate. Check alloca, malloc, realloc, ENSURE_ALLOCATION arguments against overflow. Avoid wraparound when converting a width or precision from decimal to binary. 2003-11-16 Bruno Haible Update from GNU gettext. * lib/printf-parse.c: Generalize to it can be compiled for wide strings. (PRINTF_PARSE, CHAR_T, DIRECTIVE, DIRECTIVES): New macros. * lib/vasnprintf.c: Generalize to it can be compiled for wide strings. (VASNPRINTF, CHAR_T, DIRECTIVE, DIRECTIVES, PRINTF_PARSE, USE_SNPRINTF, SNPRINTF): New macros. Don't include if the file is used inside libintl. (local_wcslen): New function, for Solaris 2.5.1. (VASNPRINTF): Use it instead of wcslen. 2003-11-16 Bruno Haible * lib/xsize.h (xmax): New function. (xsum, xsum3, xsum4): Declare as "pure" functions. 2003-11-12 Paul Eggert * modules/xalloc (Files): Undo latest change, since xalloc.h no longer needs SIZE_MAX or PTRDIFF_MAX. 2003-11-12 Paul Eggert * m4/xalloc.m4 (gl_PREREQ_XALLOC): Do not require gl_SIZE_MAX or gl_PTRDIFF_MAX. 2003-11-12 Paul Eggert * lib/xstrtol.c (__xstrtol): Remove "break" immediately after "return", to pacify some unknown compiler. Problem reported by Joerg Schilling. 2003-11-12 Paul Eggert * lib/xalloc.h: Do not include or . (xalloc_oversized): Use sizeof (ptrdiff_t) and sizeof (size_t) for the heuristic, rather than PTRDIFF_MAX and SIZE_MAX. This heuristic is just as accurate as far as we know, and it removes a dependency on size_max.m4 and ptrdiff_max.m4. 2003-11-11 Bruno Haible * modules/xsize (Files): Add m4/size_max.m4. * modules/xalloc (Files): Add m4/size_max.m4, m4/ptrdiff_max.m4. 2003-11-11 Bruno Haible * m4/size_max.m4: New file. * m4/ptrdiff_max.m4: New file. * m4/xsize,m4 (gl_XSIZE): Require gl_SIZE_MAX. * m4/xalloc.m4 (gl_PREREQ_XALLOC): New macro. (gl_XALLOC): Invoke it. 2003-11-11 Bruno Haible * lib/xsize.h (SIZE_MAX): Remove fallback definition. * lib/xalloc.h: Include limits.h. Assume SIZE_MAX and PTRDIFF_MAX are defined. 2003-11-10 Paul Eggert * lib/xalloc.h (xalloc_oversized): [! (defined PTRDIFF_MAX && PTRDIFF_MAX < SIZE_MAX)]: Fix off-by-one error that would have rejected some allocations of exactly SIZE_MAX - 2 bytes. From Bruno Haible. [defined PTRDIFF_MAX && PTRDIFF_MAX < SIZE_MAX]: Use SIZE_MAX, not (size_t) -1, since it's defined here. 2003-11-09 Karl Berry * config/mkinstalldirs, depcomp, mdate-sh: update from automake. 2003-11-06 Paul Eggert * lib/xalloc.h [HAVE_STDINT_H]: Include . (xalloc_oversized) [! (PTRDIFF_MAX < SIZE_MAX)]: Reject sizes of exactly SIZE_MAX bytes. * lib/xreadlink.c: Include "xalloc.h" before checking whether SIZE_MAX is defined, since "xalloc.h" now defines SIZE_MAX on modern hosts. 2003-11-05 Bruno Haible * lib/xsize.h: Include limits.h, to avoid a possible collision with SIZE_MAX defined in on Solaris. 2003-11-04 Jim Meyering * modules/sysexits: Use the `$(VAR)' notation for AC_SUBST'd variable names, rather than @VAR@. * modules/poll: Likewise. 2003-11-04 Bruno Haible * modules/xsize: New file. * modules/linebreak: Depend on xsize. * MODULES.html.sh (func_all_modules): Add xsize. 2003-11-04 Bruno Haible * m4/xsize.m4: New file. 2003-11-04 Bruno Haible * lib/xsize.h: New file. * lib/linebreak.c: Include xsize.h. (mbs_possible_linebreaks, mbs_width_linebreaks): Check malloc() argument for overflow. Suggested by Paul Eggert. 2003-11-03 Karl Berry * config/config.{guess,sub}: update from config. 2003-11-03 Jim Meyering * modules/userspec (lib_SOURCES): Add userspec.h. (Include): Add "userspec.h". Improve description. 2003-11-03 Jim Meyering * lib/userspec.c: Include "userspec.h". * lib/userspec.h: New file. 2003-11-03 Bruno Haible * m4/wait-process.m4 (gl_WAIT_PROCESS): Also check for waitid. 2003-11-03 Bruno Haible * lib/wait-process.c (wait_process): Use waitid with WNOWAIT if available, to avoid (extremely rare) race condition. Suggested by Paul Eggert. 2003-11-02 Karl Berry * config/srclist.txt (vasprintf.c): sync broken, sigh. 2003-10-31 Paul Eggert * lib/mountlist.h (struct mount_entry.me_type_malloced): New member. * lib/mountlist.c (SIZE_MAX): Define if not defined already. (read_filesystem_list): Set and use me_type_malloced. Use "sizeof *me" rather than "sizeof (struct mount_entry)" (or whatever the type happens to be), for brevity and consistency. Check for size calculation overflow on Alphas running OSF/1. 2003-10-31 Jim Meyering * lib/hash.c: Include "xalloc.h" for use of xalloc_oversized. * lib/linebuffer.c: Include for declaration of memset. 2003-10-30 Paul Eggert Bruno Haible * lib/vasprintf.c: Include , . (vasprintf): Fail if the resulting length doesn't fit in an 'int'. 2003-10-30 Paul Eggert * m4/host-os.m4 (UTILS_HOST_OS): Change netbsd*-gnu pattern back to netbsd*-gnu*. Suggested by Robert Millan. 2003-10-29 Paul Eggert * modules/group-member: Depend on stdbool. 2003-10-29 Paul Eggert * m4/xalloc.m4 (gl_XALLOC): Undo previous change. 2003-10-29 Paul Eggert * m4/host-os.m4 (UTILS_HOST_OS): Resurrect netbsd*-gnu. Add comments to it, and to knetbsd*-gnu and kfreebsd*-gnu. Remove the '*' from after the 'gnu' in these cases. This fixes some bugs in the previous change, and is based on suggestions by Robert Millan. 2003-10-29 Paul Eggert * lib/xalloc.h (xalloc_oversized): Now a macro, not a function, so that it works even if SIZE_MAX < N. Do not include ; no longer needed. * lib/quotearg.c (quotearg_n_options): Use it. * lib/group-member.c: Include . (free_group_info): Arg is now const *; don't free arg. (get_group_info): Now returns bool and accepts struct group_info *, rather than returning a malloc'ed struct group_info *. All uses changed. Check for overflow in internal size calculation. * lib/getusershell.c (readname): Simplify the code by using x2nrealloc rather than xmalloc/xrealloc. * lib/linebuffer.c (initbuffer, readlinebuffer): Simplify the code by using x2realloc rather than xmalloc/xrealloc. Also, fix a C conformance bug: the old code used a pointer after freeing the storage that it addressed. * lib/hash.c (hash_initialize): Simplify the code by using xalloc_oversized rather than doing it by hand. * lib/getgroups.c (getgroups): Don't use xrealloc, since we don't need the buffer preserved. Use free and xmalloc instead. * lib/quotearg.c (quotearg_n_options): Likewise. Use a simpler test for size overflow. Don't use xalloc_oversized because unsigned int might be wider than size_t (!); this suggests that we should switch from unsigned int to size_t for slot numbers. 2003-10-28 Paul Eggert * m4/host-os.m4 (UTILS_HOST_OS): Identify GNU/KFreeBSD and GNU/KNetBSD. These implementations use glibc atop the FreeBSD and NetBSD kernels. Requested by Richard Stallman. 2003-10-27 Paul Eggert * lib/exclude.c (new_exclude): Use xzalloc rather than xmalloc to allocate the returned structure. Do not allocate a subarray, as x2nrealloc will do that. (add_exclude): Use x2nrealloc to reallocate ex->exclude, instead of xnrealloc. (add_exclude_file): Use x2realloc instead of malloc + xnrealloc. 2003-10-27 Bruno Haible * lib/stdbool_.h: Better support for BeOS. 2003-10-26 Paul Eggert * m4/xalloc.m4 (gl_XALLOC): Requore AC_C_INLINE, since xalloc.h now uses inline. 2003-10-26 Paul Eggert * lib/xalloc.h (xalloc_oversized): New static inline function, for callers that want to do their own size-overflow checking. Include , since xalloc_oversized returns bool. * lib/xalloc.c (array_size_overflow): Remove. All callers changed to use xalloc_oversized. Add two functions x2realloc, x2nrealloc, for programs that grow arrays dynamically by doubling their sizes. * lib/xalloc.h (x2realloc, x2nrealloc): New decls. * lib/xmalloc.c (x2nrealloc_inline, x2nrealloc, x2realloc): New functions. Port to C99 semantics for 'inline' of external functions. Bug reported by Bruno Haible. * lib/xmalloc.c (xnmalloc_inline): New static inline function, with the old contents of xnmalloc. (xnmalloc, xmalloc): Use it. (xnrealloc_inline): New static inline function, with the old contents of xnrealloc. (xnrealloc, xrealloc): Use it. * lib/alloc.c (alloca): xmalloc cannot return NULL, so don't test for that. 2003-10-26 Karl Berry * config/srclist.txt (COPYING.DOC): no longer available from /gd/gnuorg; don't know where the ultimate source is. 2003-10-25 Paul Eggert Fix several address-calculation bugs in the hash modules, plus some minor code cleanup. * lib/hash.h: Include , for bool. * lib/hash.c: Don't include , since hash.h does it now. * lib/hash.h (Hash_hasher, hash_get_n_buckets, hash_get_n_buckets_used, hash_get_n_entries, hash_get_max_bucket_length, hash_get_entries, hash_do_for_each, hash_string, hash_initialize, hash_rehash): Use size_t rather than unsigned. * lib/hash.c (struct hash_table, hash_get_n_buckets, hash_get_n_buckets_used, hash_get_n_entries, hash_get_max_bucket_length, hash_table_ok, hash_print_statistics, hash_get_entries, hash_do_for_each, hash_string, is_prime, next_prime, hash_initialize, hash_rehash, hash_delete, hash_print): Likewise. (SIZE_MAX): Define if not defined. (hash_get_max_bucket_length, hash_table_ok, hash_lookup, hash_get_first, hash_get_next, hash_get_entries, hash_do_for_each, hash_print): Use const * when possible. (hash_string): Use (unsigned char) *P rather than *(unsigned char *) P. (check_tuning): Fix bug: if tuning parameters were very close to 0 or 1, rounding errors could have caused subscript violations. (hash_initialize, allocate_entry, hash_print): Remove unnecessary cast. (hash_initialize): Add 'fail:' label to free table and return NULL, and use it to simplify code. Use calloc rather than clearing the storage ourself. (hash_initialize, hash_rehash): Check for arithmetic overflow in buffer size calculations. * lib/hash-pjw.h (hash_pjw): Use size_t, not unsigned. Include , for size_t. * lib/hash-pjw.c (hash_pjw): Likewise. Switch to method described by Bruno Haible. Include , for CHAR_BIT. (SIZE_BITS): New macro. 2003-10-23 Paul Eggert * m4/getline.m4 (AM_FUNC_GETLINE): Don't include getndelim2.o twice into LIBOBJS; this breaks on some hosts. Problem reported by Derek Robert Price in . This patch can be withdrawn after Autoconf 2.58 is required for gnulib. * m4/getndelim2.m4 (gl_GETNDELIM2): Likewise. 2003-10-21 Paul Eggert * lib/getndelim2.c (getndelim2): When size calculation overflows, ceiling the allocation at NMAX bytes rather than silently discarding input bytes before NMAX is reached. This makes a difference only if NMAX exceeds SIZE_MAX / 2. * lib/obstack.c: Merge from glibc. [defined _LIBC]: Include , not "obstack.h". Add libc_hidden_def (_obstack_newchunk). (_obstack_free) [! defined _LIBC]: Remove. [defined _LIBC]: Make a strong alias from obstack_free, rather than a clone of the function body. (fputs) [defined _LIBC && defined USE_IN_LIBIO]: Remove. [defined _LIBC && !defined USE_IN_LIBIO]: Include . * lib/obstack.h: Indenting cleanup, to make it easier to merge with glibc. (obstack_grow, obstack_grow0): Remove unnecessary parentheses around arg to memcpy. * lib/obstack.h (obstack_1grow_fast): Properly parenthesize arg. (obstack_ptr_grow_fast, obstack_int_grow_fast): Don't use lvalue casts, as GCC plans to remove support for them in GCC 3.5. Reported by Joseph S. Myers. This bug was also present in the non-GCC version, indicating that this code had always been buggy and had never been widely used. (obstack_1grow, obstack_ptr_grow, obstack_int_grow, obstack_blank): Use the fast variant of each macro, rather than copying the definiens of the fast variant; that way, we'll be more likely to catch future bugs in the fast variants. 2003-10-20 Bruno Haible * modules/wait-process: New file. * MODULES.html.sh (func_all_modules): Add wait-process. 2003-10-20 Bruno Haible * m4/wait-process.m4: New file. 2003-10-20 Bruno Haible * lib/wait-process.h: New file, from GNU gettext. * lib/wait-process.c: New file, from GNU gettext. 2003-10-19 Jim Meyering * lib/vasnprintf.c (vasnprintf): Work around losing snprintf on HPUX 10.20. 2003-10-18 Karl Berry * config/config.guess: update from config. 2003-10-16 Paul Eggert * lib/getgroups.c: Include , . (getgroups): First arg is int, not size_t. Don't let 'free' mangle errno. 2003-10-16 Paul Eggert * README: Mention that gnulib assumes that (foo *) NULL + 0 == NULL. 2003-10-16 Karl Berry * config/config.{guess,sub}: update from config. 2003-10-16 Jim Meyering * lib/xmalloc.c: Include , for declarations of memset and memcpy. 2003-10-15 Paul Eggert * lib/exclude.c: Do not include or . (SIZE_MAX): Remove. (new_exclude, add_exclude_file): Initial size no longer needs to be a power of 2. (add_exclude, add_exclude_file): Use xnrealloc instead of rolling our own address arithmetic overflow checking. * lib/fnmatch.c (SIZE_MAX): Define if standard headers don't. (fnmatch): Do not alloca more than 2000 wide characters; instead, use malloc for large buffers. Check for address arithmetic overflow, and return -1 with errno set to ENOMEM in that case. * lib/fnmatch_loop.c (ALLOCA_LIMIT): New macro. (NEW_PATTERN): Do not alloca more than 8000 bytes; instead, return -1. Check for address arithmetic overflow. 2003-10-14 Paul Eggert Handle invalid suffixes and overflow independently, so that callers can treat them independently as needed. Fix some bugs in suffix handling, e.g., "100k@" was not diagnosed as an invalid suffix for a human-readable blocksize. The major caller-visible change is the addition of a new LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW enum value, indicating that both overflow and suffix chars were found. * lib/human.c (humblock): Don't check separately for invalid suffix char; that is xstrtoumax's job (now that its bug is fixed). * lib/xstrtoimax.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM) [defined INTMAX_MAX]: New macros. * lib/xstrtol.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM, TYPE_MINIMUM, TYPE_MAXIMUM): New macros. (bkm_scale, bkm_scale_by_power): Return strtol_error, not int. (bkm_scale, bkm_scale_by_power, __xstrtol): Return maximal values if overflow occurs, as it's what __strtol does and it's more useful in practice. (__xstrtol): If __strtol reports some error other than ERANGE, reflect it to the caller as LONGINT_INVALID. If it reports ERANGE, continue the rest of parsing, and report LONGINT_OVERFLOW | LONGINT_INVALID_SUFFIX_CHAR if both errors occur. * lib/xstrtol.h (LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW): New enum value. (_STRTOL_ERROR): Handle it. Abort when given unknown error codes. * lib/xstrtoul.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM): New macros. * lib/xstrtoumax.c (STRTOL_T_MINIMUM, STRTOL_T_MAXIMUM) [defined UINTMAX_MAX]: New macros. 2003-10-14 Bruno Haible * modules/fatal-signal: Add m4/sig_atomic_t.m4 to file list. 2003-10-14 Bruno Haible * m4/sig_atomic_t: New file, from GNU gettext. * m4/fatal-signal.m4 (gl_FATAL_SIGNAL): Require gt_TYPE_SIG_ATOMIC_T. 2003-10-14 Bruno Haible * lib/fatal-signal.h: Improved comments. Suggested by Paul Eggert. * lib/fatal-signal.c: Use sig_atomic_t. Suggested by Paul Eggert. Also use volatile where needed. 2003-10-12 Paul Eggert * modules/xalloc: Do not depend on 'exit'. Depend on 'stdbool'. Change maintainer from Bruno Haible to 'all'. 2003-10-12 Paul Eggert * m4/xalloc.m4 (gl_PREREQ_XMALLOC): Require AC_C_INLINE. 2003-10-12 Paul Eggert * lib/xalloc.h (xnmalloc, xzalloc, xnrealloc, xclone): New decls. (XMALLOC, XCALLOC, XREALLOC, XFREE, CCLONE, CLONE): Deprecate, and define in terms of the other primitives. * lib/xmalloc.c: Include stdbool.h; do not include exit.h. (SIZE_MAX): Define if not already defined. (array_size_overflow): New function. (xalloc_die): Abort instead of exiting if 'error' returns. (xnmalloc, xnrealloc, xzalloc, xclone): New functions. (xmalloc, xrealloc): Use them. (xcalloc): Check for address arithmetic overflow. * lib/xstrdup.c (xstrdup): Use xclone, since memcpy should be a bit faster than strcpy. 2003-10-10 Simon Josefsson * modules/argp (Depends-on): Add restrict and strcase. 2003-10-10 Simon Josefsson * m4/argp.m4: Add AC_C_INLINE. 2003-10-08 Paul Eggert Merge getpass from libc, plus a few fixes. * lib/getpass.c (HAVE_STDIO_EXT) [_LIBC]: Define to 1. Include . Include if HAVE_STDIO_H, otherwise define __fsetlocking to empty. [_LIBC]: Do not include "getline.h" or "unlocked-io.h", but do include . Do not include ; not needed. [_LIBC]: Include . (NOTCANCEL_MODE): New macro. (flockfile, funlockfile) [_LIBC]: New macros. (__libc_cleanup_push, __libc_cleanup_pop, __getline, __tcgetattr) [!_LIBC]: New macros. (call_fclose): New function. (getpass): Use it. Save tty stream separately; this simplifies the code and makes it more reliable if stdin happens to equal stdout. Invoke __fsetlocking on tty. Handle thread cancellation if needed. Namespace cleanup (use __tcgetattr, __getline). Use bool for Booleans. [USE_IN_LIBIO]: Handle wide streams. [!_LIBC]: Unconditionally do the fseek, since we don't know what stream might go where. * lib/unlocked-io.h: Include , so that the caller doesn't have to include before us. (clearerr_unlocked, feof_unlocked, ferror_unlocked, fflush_unlocked, fgets_unlocked, fputc_unlocked, fputs_unlocked, fread_unlocked, fwrite_unlocked, getc_unlocked, getchar_unlocked, putc_unlocked, putchar_unlocked): Define to the unlocked counterpart if not declared, so that we can use getpass.c code from libc without rewriting it. (flockfile, ftrylockfile, funlockfile): New macros. 2003-10-08 Paul Eggert * modules/getpass: Depend on stdbool. 2003-10-08 Paul Eggert * m4/getpass.m4 (gl_PREREQ_GETPASS): Check for stdio_ext.h. 2003-10-07 Karl Berry * config/config.{guess,sub}: update from config. 2003-10-06 Jim Meyering Bruno Haible This lets translators provide better translations for the "Written by ..." part of --version output. * lib/version-etc.h: Include stdarg.h. (version_etc_copyright): Declare as readonly. (version_etc): Make this function variadic with a NULL-terminated list of author name strings. (version_etc_va): New declaration. * lib/version-etc.c: Include stdarg.h, stdlib.h. (version_etc_copyright): Declare as readonly. (version_etc_va): New function. Provide a different translatable string for each possible number of authors < 10. Abbreviate when there are 10 authors or more. (version_etc): Make this function variadic. Call version_etc_va. Suggestion from Gary V. Vaughan. * lib/long-options.h (parse_long_options): Change prototype: the authors string is moved to the end and becomes variadic. * lib/long-options.c: Include stdarg.h. (parse_long_options): Make this function variadic, too. Call version_etc_va, not version_etc. 2003-10-06 Bruno Haible * modules/version-etc-2: Remove file. * MODULES.html.sh (func_all_modules): Remove version-etc-2. 2003-10-06 Bruno Haible * modules/fatal-signal: New file. * MODULES.html.sh (func_all_modules): Add fatal-signal. 2003-10-06 Bruno Haible * m4/fatal-signal.m4: New file. * m4/signalblocking.m4: New file, from GNU gettext. 2003-10-06 Bruno Haible * lib/version-etc-2.h: Remove file. * lib/version-etc-2.c: Remove file. 2003-10-06 Bruno Haible * lib/fatal-signal.h: New file, from GNU gettext. * lib/fatal-signal.c: New file, from GNU gettext. 2003-10-05 Paul Eggert * README: Rework advice for preventing empty .o files. Don't recommend ELIDE constructs. Recommend , not . 2003-10-04 Karl Berry * lib/argp*: update from libc. 2003-10-04 Karl Berry * config/config.{guess,sub}: update from config. 2003-10-02 Bruno Haible * modules/lchown (Include): Add lchown.h. * modules/time_r (Include): Use "..." syntax. * modules/xgetdomainname (Include): Add xgetdomainname.h. 2003-10-01 Simon Josefsson * MODULES.html.sh (func_all_modules): Move gethostname from section 'based on' to section 'lacking' POSIX:2001. 2003-10-01 Larry Jones * lib/getpass.c (getpass): Use a no-op fseek when switching from input to output mode on the same stream. 2003-09-29 Paul Eggert * lib/strftime.c (tm_diff) [! HAVE_TM_GMTOFF]: Fix arg typo in previous patch. 2003-09-28 Jim Meyering * lib/error.c: Correct cpp indentation. 2003-09-27 Paul Eggert * modules/free: New file. 2003-09-27 Paul Eggert * m4/free.m4: New file. 2003-09-27 Paul Eggert * lib/minmax.h (MIN, MAX) [__STDC__ && defined __GNUC__ && __GNUC__ >= 2]: Omit the special code that used __typeof__, since we worry that it could be more trouble than it's worth. See: http://mail.gnu.org/r/bug-gnulib/2003-01/msg00090.html http://mail.gnu.org/r/bug-gnulib/2003-01/msg00095.html * lib/free.c: New file. 2003-09-27 Oskar Liljeblad Trivial fixes to Makefile.am parts of module listings. * modules/strstr: Append strstr.h to lib_SOURCES. * modules/strcase: Likewise, for strcase.h. 2003-09-27 Karl Berry * config/mkinstalldirs: update from automake. 2003-09-26 Paul Eggert * lib/error.c (SIZE_MAX) [!defined SIZE_MAX]: Define. (error_tail): Do not loop, reallocating temporary buffer, since the output cannot contain more wide characters than the input contains bytes, the size must be big enough already. This avoids one potential size overflow calculation. Check for size overflow when calculating temporary buffer size. Free temporary buffer when done, if it was allocated with malloc; this plugs a memory leak. Remove casts from void * to pointers, that are no longer needed now that we're assuming C89 or better. Merge error changes from glibc. * lib/error.c, error.h: Update copyright notice header to match glibc. * lib/error.c [defined _LIBC]: Include , . (error, error_at_line) [defined _LIBC && defined __libc_ptf_call]: Disable cancellation while printing error. * lib/error.h: Prepend __ to parameter names. 2003-09-26 Jim Meyering * lib/error.c (error_tail): Move some declarations into inner scope where the local variables are used. 2003-09-26 Bruno Haible * m4/stpncpy.m4 (gl_FUNC_STPNCPY): Add comments about the AIX stpncpy(). Don't define stpncpy through config.h; it's now done through stpncpy.h. 2003-09-26 Bruno Haible * lib/stpncpy.h (gnu_stpncpy): New declaration. (stpncpy): Define as alias for gnu_stpncpy. * lib/stpncpy.c [!_LIBC]: Define gnu_stpncpy, not stpncpy. 2003-09-25 Simon Josefsson * lib/xgetdomainname.h: New file. * lib/xgetdomainname.c: New file. 2003-09-25 Simon Josefsson Bruno Haible * modules/getdomainname: New file. * modules/xgetdomainname: New file. * MODULES.html.sh (func_all_modules): Add getdomainname, xgetdomainname. 2003-09-25 Simon Josefsson Bruno Haible * m4/getdomainname.m4: New file. 2003-09-25 Simon Josefsson Bruno Haible * lib/getdomainname.h: New file. * lib/getdomainname.c: New file. 2003-09-25 Karl Berry * lib/argp-fmtstream.c, argp-help.c: update from libc. 2003-09-25 Karl Berry * config/install-sh: update from automake. 2003-09-25 Bruno Haible * modules/version-etc-2: New file, from modules/version-etc with modifications. * MODULES.html.sh (func_all_modules): Add version-etc-2. 2003-09-25 Bruno Haible * lib/version-etc-2.h: New file, from version-etc.h with modifications. * lib/version-etc-2.c: New file, from version-etc.c with modifications. 2003-09-24 Simon Josefsson * modules/xgethostname: Add xgethostname.h. 2003-09-24 Paul Eggert * lib/linebuffer.c (freebuffer): Don't free the argument, just the buffer associated with the argument. Bug reported by Simon Josefsson. 2003-09-24 Paul Eggert * README: Document assumptions that 'int' is at least 32 bits wide, that integer arithmetic is 2's complement without overflow, that there are no holes in integer values, that adding sizes of two nonoverlapping objects can't overflow, and that all-bits-zero yields scalar zero. Fix spelling and capitalization typos. 2003-09-19 Karl Berry * lib/argp.h: update from libc. 2003-09-17 Paul Eggert * m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Call AC_BEFORE first, to avoid spurious warnings like "AC_RUN_IFELSE was called before gl_USE_SYSTEM_EXTENSIONS" from autoreconf. 2003-09-17 Paul Eggert * gnulib-tool: Use "test -h", not "test -L", for portability to Solaris 8 /bin/sh. (This bug is fixed in Solaris 9.) (tags_regexp): Remove, since \| doesn't conform to POSIX. (sed_extract_prog): Issue s commands one-by-one, rather than using \| in one s command. 2003-09-16 Paul Eggert * lib/linebuffer.c (readlinebuffer): Return NULL immediately upon input error, instead of returning NULL the next time we are called (and therefore losing track of errno). 2003-09-16 Bruno Haible * gnulib-tool (func_create_testdir): Warn about duplicated dependencies. 2003-09-15 Paul Eggert * modules/argmatch, modules/fatal, modules/obstack, modules/xalloc, modules/xgethostname: Sort dependencies by importance, not alphabetically. 2003-09-15 Paul Eggert * lib/getndelim2.c (getndelim2): Don't trash errno when a read fails, so that the caller gets the proper errno. * lib/readutmp.c (read_utmp): Likewise. Check for fstat error. Close stream and free storage when failing. 2003-09-14 Karl Berry * config/srclist.txt (strdup.c): disable for c89 changes. 2003-09-14 Jim Meyering * lib/getloadavg.c: Correct cpp indentation. * lib/strdup.c: Likewise. * lib/vasnprintf.c: Likewise. 2003-09-14 Bruno Haible * modules/fwriteerror: New file. * MODULES.html.sh (func_all_modules): Add fwriteerror. 2003-09-14 Bruno Haible * lib/fwriteerror.h: New file. * lib/fwriteerror.c: New file. 2003-09-12 Paul Eggert * modules/argmatch, modules/exitfail, modules/fatal, modules/obstack, modules/xgethostname, modules/xalloc: Depend on exit. 2003-09-12 Paul Eggert * m4/error.m4: Require AC_FUNC_STRERROR_R rather than invoking it. * m4/extensions.m4 (gl_USE_SYSTEM_EXTENSIONS): Require AC_AIX and AC_MINIX, too, so that their extensions are available. * m4/prereq.m4 (jm_PREREQ_ADDEXT): Remove. All uses removed. This macro has been superseded by gl_BACKUPFILE. More patches to assume C89 or better. * m4/error.m4 (gl_ERROR): Don't check for vprintf. * m4/check-decl.m4 (jm_CHECK_DECLS): Include , unconditionally. * m4/closeout.m4 (gl_CLOSEOUT): Don't check for stdlib.h. * m4/gettimeofday.m4 (AC_FUNC_GETTIMEOFDAY_CLOBBER): Include , unconditionally. * m4/lstat.m4 (gl_PREREQ_LSTAT): Don't check for stdlib.h, free. * m4/readdir.m4 (GL_FUNC_READDIR): Don't check for string.h. * m4/readutmp.m4 (gl_PREREQ_READUTMP): Don't check for standard C headers or for string.h. * m4/strtoumax.m4 (gl_PREREQ_STRTOUMAX): Don't check for stdlib.h or strtoul. * m4/mkstemp.m4 (jm_PREREQ_TEMPNAME): Do not require standard C headers. * m4/strdup.m4 (gl_PREREQ_STRDUP): Likewise. * m4/userspec.m4 (gl_USERSPEC): Likewise. * m4/xalloc.m4 (gl_PREREQ_XMALLOC): Likewise. * m4/xstrtod.m4 (gl_XSTRTOD): Likewise. * m4/xstrtol.m4 (gl_PREREQ_XSTRTOL): Likewise. * m4/strftime.m4 (_jm_STRFTIME_PREREQS): Don't check for limits.h, memcpy, memset. (jm_FUNC_GNU_STRFTIME): Don't require standard C headers. * m4/strtod.m4 (gl_FUNC_STRTOD): Do not check for float.h. * m4/strtoimax.m4 (gl_PREREQ_STRTOIMAX): Do not check for stdlib.h, strtol. * m4/strtol.m4 (gl_FUNC_STRTOL): Do not check for limits.h. * m4/userspec.m4 (gl_USERSPEC): Do not check for string.h. * m4/xstrtol.m4 (gl_PREREQ_XSTRTOL): Do not check for string.h, strtol, strtoul. 2003-09-12 Paul Eggert * lib/argmatch.c, fatal.c, xgethostname.c, xmalloc.c: Include exit.h. * lib/obstack.c [!defined _LIBC]: Likewise. * lib/argmatch.c (EXIT_FAILURE): Remove; now done by exit.h * lib/exitfail.c, fatal.c, xgethostname.c, xmalloc.c: Likewise. * lib/exitfail.c: Don't include stdlib.h; no longer needed. More changes to assume C89 or better. * lib/error.c (error_tail): Assume vprintf. * lib/argmatch.c (getenv): Remove decl. * lib/progreloc.c (get_full_program_name): Define via prototype. * lib/setenv.c (clearenv): Likewise. * lib/stpncpy.c: Do not include or ; not needed. * lib/strdup.c: Include , unconditionally. (malloc, memcpy): Remove decls. * lib/strftime.c (HAVE_LIMITS_H, STDC_HEADERS) [defined _LIBC]: Remove. (HAVE_MEMCPY) [defined emacs && !defined HAVE_BCOPY]: Remove. Include , , , unconditionally. (memcpy): Remove macro. (MEMCPY) [!defined COMPILE_WIDE]: Define to memcpy unconditionally. (__P): Remove. All uses removed. (PTR): Remove. All uses changed to void *. (CHAR_BIT, NULL): Remove. (spaces, zeros, memset_space, memset_zero) [!defined memset && !defined HAVE_MEMSET && !defined _LIBC]: Remove. (LOCALE_PARAM, LOCALE_PARAM_DECL): Remove. (memcpy_lowcase, memcpy_uppcase, tm_diff, iso_week_days): Define with prototype. Remove now-unnecessary prototype decl. (extra_args_spec): Assume ANSI C. All uses changed. (extra_args_spec_iso): Remove. (my_strftime, emacs_strftimeu): Define via prototype. * lib/strtod.c: Include , , unconditionally. (DBL_MAX, DBL_MIN, HUGE_VAL, NULL): Remove decls. * lib/strtoimax.c: Include unconditionally. (strtoul, strtol): Remove decls. * lib/strtol.c (STDC_HEADERS, HAVE_LIMITS_H, NULL, ULONG_MAX, LONG_MAX): Remove. Include , , , unconditionally. (LOCALE_PARAM_DECL): Remove. All uses changed to LOCALE_PARAM_PROTO. (LOCALE_PARAM_PROTO): New macro. (INTERNAL, INTERNAL1, WEAKNAME): Assume ANSI C, not K&R. (INTERNAL (strtol), strtol): Define with a prototype. (PARAMS): Remove. All uses removed. * lib/tempname.c: Include unconditionally. * lib/userspec.c: Include , unconditionally. * lib/xgethostname.c (main): Define with a prototype. * lib/xmalloc.c: Include "xalloc.h" first, to check interface. Include unconditionally. (calloc, malloc, realloc, free): Remove decls. * lib/xstrtod.c: Include "xstrtod.h" first, to check interface. Include unconditionally. Sort include file names. (strtod): Remove. (xstrtod): Define with a prototype. * lib/xstrtol.c: Include , unconditionally. (strtol, strtoul): Remove decls. 2003-09-11 Paul Eggert More patches to assume C89 or better. * m4/strndup.m4 (gl_PREREQ_STRNDUP): Remove STDC_HEADERS check. * m4/strnlen.m4 (gl_PREREQ_STRNLEN): Don't check for memory.h, string.h, memchr, STDC_HEADERS. 2003-09-11 Paul Eggert * lib/strndup.c: Don't include , . Include , unconditionally. Remove now-unnecessary cast to char *. * lib/strnlen.c: Include unconditionally. * lib/yesno.c (yesno): Define with a prototype. 2003-09-11 Bruno Haible * config/srclist.txt (setenv.c, unsetenv.c): Disable for the moment. 2003-09-10 Jim Meyering * lib/error.c: Correct indentation of cpp directives. 2003-09-10 Bruno Haible * m4/strcspn.m4 (gl_PREREQ_STRCSPN): Remove check. * m4/strpbrk.m4 (gl_PREREQ_STRPBRK): Remove check. * m4/strstr.m4 (gl_PREREQ_STRSTR): Remove check. * m4/unicodeio.m4 (gl_UNICODEIO): Remove check. * m4/setenv.m4 (gl_PREREQ_SETENV, gl_PREREQ_UNSETENV): Remove and checks. * m4/xreadlink.m4 (gl_XREADLINK): Remove check. * m4/yesno.m4 (gl_YESNO): Remove check. 2003-09-10 Bruno Haible * lib/strcspn.c: Include unconditionally. * lib/strpbrk.c: Include unconditionally. * lib/strstr.c: Include unconditionally. * lib/unicodeio.c: Include unconditionally. * lib/setenv.c: Include and unconditionally. * lib/unsetenv.c: Likewise. * lib/xreadlink.c: Include unconditionally. * lib/yesno.c: Include unconditionally. (rpmatch): Add prototype. 2003-09-09 Paul Eggert More patches to assume C89 or better. * m4/getcwd.m4 (AC_FUNC_GETCWD_NULL): Don't check for stdlib.h. * m4/getopt.m4 (gl_GETOPT): Don't check for string.h. * m4/getugroups.m4 (gl_GETUGROUPS): Do not check for standard C headers or for string.h. * m4/getusershell.m4 (gl_PREREQ_GETUSERSHELL): Do not check for stdlib.h. * m4/group-member.m4 (gl_PREREQ_GROUP_MEMBER): Do not require standard C headers. * m4/hard-locale.m4 (gl_HARD_LOCALE): Do not check for stdlib.h, string.h. * m4/hash.m4 (gl_HASH): Do not check for stdlib.h, malloc, free. * m4/human.m4 (gl_HUMAN): Do not check for stdlib.h, string.h, getenv. * m4/idcache.m4 (gl_IDCACHE): Do not check for standard C headers, or for string.h. * m4/long-options.m4 (gl_LONG_OPTIONS): Do not check for stdlib.h. * m4/makepath.m4 (gl_MAKEPATH): Do not check for string.h or standard C headers. * m4/md5.m4 (gl_MD5): Don't check for limits.h, standard C headers, memcpy. * m4/sha.m4 (gl_SHA): Don't check for standard Cheaders, memcpy. * m4/memchr.m4 (jm_PREREQ_MEMCHR): Don't check for limits.h, stdlib.h. * m4/memcmp.m4 (gl_PREREQ_MEMCMP): Don't check for string.h. * m4/memcoll.m4 (gl_MEMCOLL): Likewise. * m4/memrchr.c (gl_PREREQ_MEMRCHR): Don't check for limits.h. * m4/mkdir-slash.m4 (gl_PREREQ_MKDIR): Don't check for stdlib.h, string.h, free. * m4/mktime.m4 (gl_PREREQ_MKTIME): Don't check for standard C headers. * m4/modechange.m4 (gl_MODECHANGE): Don't check for standard C headers. * m4/mountlist.m4 (gl_PREREQ_MOUNTLIST_EXTRA): Don't check for standard C headers, or for string.h. * m4/obstack.m4 (gl_OBSTACK): Don't check for stddefe.h, string.h. (gl_PREREQ_OBSTACK): Don't check for stdlib.h. * m4/path-concat.m4 (gl_PATH_CONCAT): Don't check for standard C headers, memory.h, stdlib.h, string.h, strings.h. * m4/posixtm.m4 (gl_POSIXTM): Don't check for stdlib.h, string.h. * m4/posixver.m4 (gl_POSIXVER): Don't check for getenv. * m4/putenv.m4 (gl_PREREQ_PUTENV): Don't check for string.h, memcpy, strchr. * m4/readtokens.m4 (gl_READTOKENS): Don't check for standard C headers, memory.h, string.h. * m4/regex.m4 (jm_PREREQ_REGEX): Do not check for limits.h, string.h. * m4/rename.m4 (gl_PREREQ_RENAME): Do not check for stdlib.h, string.h, free. * m4/rpmatch.m4 (gl_PREREQ_RPMATCH): Don't check for standard C headers. * m4/same.m4 (gl_SAME): Don't check for stdlib.h, string.h, free. * m4/save-cwd.m4 (gl_SAVE_CWD): Don't check for standard C headers. * m4/savedir.m4 (gl_SAVEDIR): Don't check for standard C headers. * m4/strchrnul.m4 (gl_PREREQ_STRCHRNUL): Don't check for string.h. * m4/xgetcwd.m4 (gl_XGETCWD): Don't check for stdlib.h. 2003-09-09 Paul Eggert More K&R removal. * lib/acosl.c (main): Use a prototype. * lib/asinl.c, cosl.c, expl.c, frexpl.c, ldexpl.c, sinl.c, tanl.c: Likewise. * lib/getloadavg.c (getloadavg, main): Define via prototypes. * lib/getopt.h (struct option.name): Assume C89, and use 'const'. (getopt, etopt_long, getopt_long_only, _getopt_internal) [defined __GNU_LIBRARY__]: Assume C89, so we can always declare with a prototype. * lib/getopt.c (const): Remove macro. Include unconditionally. (my_index): Remove; all uses changed to strchr. (strlen): Remove decl. (exchange): Remove forward decl; no longer needed. (exchange, _getopt_initialize, _getopt_internal, getopt, main): Define with prototype. * lib/getopt1.c (const): Remove macro. (getopt_long, getopt_long_only, main): Define with prototype. * lib/getugroups.c: Include unconditionally. * lib/getusershell.c: Include unconditionally. (getusershell, setusershell, endusershell, readname, main): Define with prototypes. * lib/group-member.c: Include group-member.h first. Include unconditionally. * lib/hard-locale.c: Include hard-locale.h first. Include , unconditionally. * lib/hash.c (free, malloc): Remove decls. Include unconditionally. * lib/human.c: Include , unconditionally. (getenv): Do not declare. * lib/idcache.c: Include unconditionally. * lib/long-options.c: Include long-options.h first, to test interface. Include unconditionally. * lib/makepath.c: Include makepath.h first, to test interface. Include and unconditionally. * lib/linebuffer.c: Include . (free): Remove decl. * lib/malloc.c: Include , for malloc; don't bother with stddef.h. rpl_malloc returns void *, not char *. * lib/realloc.c (rpl_realloc): Likewise. Also, define with a prototype. * lib/md5.h: Include unconditionally. (UINT_MAX_32_BITS): Don't worry about non-__STDC__ case. (__P): Remove; all uses removed. * lib/md5.c: Include "md5.h" first. (md5_init_ctx, md5_read_ctx, md5_finish_ctx, md5_stream, md5_buffer, md5_process_bytes, md5_process_block): Define with prototypes. * lib/sha.h (__P): Remove all uses. (It wasn't defined??) * lib/sha.c: Include "sha.h" first. Include , unconditionally. * lib/memchr.c (__ptr_t): Remove; all uses changed to void *. * lib/memcmp.c (__ptr_t): Likewise. * lib/memrchr.c (__ptr_t): Likewise. * lib/memchr.c, memcmp.c, memcoll.c, memrchr.c: Include unconditionally. * lib/memchr.c, memrchr.c: Include unconditionally. * lib/memchr.c: Include unconditionally. * lib/memchr.c (LONG_MAX): Remove. * lib/memrchr.c (LONG_MAX): Likewise. * lib/memchr.c (__memchr): Define via a prototype. * lib/memrchr.c (__memrchr): Likewise. * lib/memcmp.c (__P): Remove, and remove all uses. (memcmp_bytes, memcmp_common_alignment, memcmp_not_common_alignment): Remove forward decls; no longer needed. * lib/memcpy.c, memmove.c, memset.c: Include . Use types required by C89 in prototype. * lib/mkdir.c: Include , unconditionally. * lib/savedir.c: Likewise. * lib/mkdir.c (free): Remove decl. * lib/rmdir.c (rmdir): Define with a prototype. * lib/savedir.c: Include savedir.h first, to test interface. * lib/mktime.c (STDC_HEADERS): Remove. Include , unconditionally. * lib/modechange.c: Include unconditionally. (malloc): Remove decl. * lib/mountlist.c: Include , unconditionally. (free): Remove decl. * lib/obstack.h (PTR_INT_TYPE) [!defined __PTRDIFF_TYPE__]: Define to ptrdiff_t, without bothering to check HAVE_STDDEF_H. (This type really should be intptr_t, but that's a C99ism.) (_obstack_memcpy): Remove: all uses changed to memcpy. Include unconditionally. (struct obstack): Assume __STDC__ for types of members chunkfun, freefun, extra_arg. (_obstack_newchunk, _obstack_free, _obstack_begin, _obstack_begin_1, _obstack_memory_used, obstack_alloc_failed_handler, obstack_init, obstack_begin, obstack_specify_allocation, obstack_specify_allocation_with_arg, obstack_chunkfun, obstack_freefun, obstack_free) [! (defined __STDC__ && __STDC__)]: Remove unprototyped decls and the macros that use them. * lib/obstack.c (POINTER): Remove. All uses changed to void *. (obstack_alloc_failed_handler, CALL_CHUNKFUN, CALL_FREEFUN, _obstack_begin, _obstack_begin_1, _obstack_allocated_p) (defined __STDC__ && __STDC__)]: Remove nonprototyped code. Include unconditionally. (_obstack_begin, _obstack_begin_1, _obstack_newchunk, _obstack_allocated_p, _obstack_free, obstack_free, _obstack_memory_used, print_and_abort): Define using prototypes. (obstack_1grow, obstack_1grow_fast, obstack_alloc, obstack_base, obstack_blank, obstack_blank_fast, obstack_copy, obstack_copy0, obstack_finish, obstack_grow, obstack_grow0, obstack_make_room, obstack_next_free, obstack_object_size, obstack_room) [0]: Remove unused, unprototyped code. * lib/path-concat.c: Include , unconditionally. * lib/physmem.c (physmem_total, physmem_available, main): Define with prototypes. * lib/posixtm.c: Include , unconditionally. (main): Define with a prototype. * lib/posixver.c (getenv): Remove decl. * lib/putenv.c (malloc): Returns void *, not char *. Include unconditionally. (strchr, memcpy, NULL): Do not define. * lib/readtokens.c: Include readtokens.h first, to test interface. Include , unconditionally. (init_tokenbuffer): Define with a prototype. * lib/regex.c (PARAMS): Remove. All uses removed. All uses of _RE_ARGS removed, too. Include , , , unconditionally. (bzero): Assume memset exists. (memcmp, memcpy, NULL): Remove. (SIGN_EXTEND_CHAR): Remove; all uses replaced by casts to signed char, or assignments to local vars of type signed char. (init_syntax_once, PREFIX(extract_number_and_incr), PREFIX(print_partial_compiled_pattern), PREFIX(print_compiled_pattern), PREFIX(print_double_string), convert_mbs_to_wcs, print_fastmap, re_set_syntax, PREFIX(regex_grow_registers), PREFIX(regex_compile), PREFIX(store_op1), PREFIX(store_op2), PREFIX(insert_op1), PREFIX(insert_op2), PREFIX(at_begline_loc_p), PREFIX(at_endline_loc_p), group_in_compile_stack, insert_space, wcs_compile_range, byte_compile_range, truncate_wchar, PREFIX(re_compile_fastmap), re_compile_fastmap, re_set_registers, re_search, re_search_2, PREFIX(re_search_2), re_match, re_match_2, count_mbs_length, wcs_re_match_2_internal, byte_re_match_2_internal, PREFIX(group_match_null_string_p), PREFIX(alt_match_null_string_p), PREFIX(common_op_match_null_string_p), PREFIX(bcmp_translate), re_compile_pattern, re_comp, re_exec, regcomp, regexec, regerror, regfree, PREFIX(extract_number)): Define with prototype. Remove now-unnecessary declaration, if any. (byte_compile_range, PREFIX(regex_compile), re_comp, re_exec, regcomp, regexec): Remove now-unnecessary casts among pointer types. * lib/regex.h (_RE_ARGS): Remove. All uses removed. * lib/rename.c: Include , unconditionally. (free): Remove decl. * lib/rpmatch.c: Include unconditionally. * lib/same.c: Include , unconditionally. (free): Remove decl. * lib/save-cwd.c: Include unconditionally. * lib/xgetcwd.c: Likewise. * lib/stat.c: Include , unconditionally. (free): Remove decl. * lib/strchrnul.c (strchrnul): Define with a prototype. Fix bug: c_in was not converted to char before searching. The following changes are not K&R related: * lib/group-member.h: Include , so that this file is self-contained. * lib/makepath.h: Likewise. * lib/getusershell.c (readname, default_index, line_size, readname): Use size_t, not int, for sizes. (readname): If the size overflows, report an error instead of looping forever. 2003-09-09 Paul Eggert * config/srclist.txt: Do not get getopt.h, getopt1.c, or regex.h from libc. 2003-09-09 Paul Eggert * README: New section: portability guidelines. 2003-09-09 Derek Robert Price * m4/getndelim2.m4 (gl_PREREQ_GETNDELIM2): Assume stdlib.h per the C89 spec. 2003-09-09 Derek Robert Price * lib/getndelim2.c: Assume stdlib.h per the C89 spec. 2003-09-08 Paul Eggert Assume C89 or better; remove K&R cruft. A few of these changes were first proposed by Derek Robert Price in . * lib/addext.c: Include unconditionally. * lib/backupfile.c: Include , unconditionally. Don't declare getenv or malloc. * lib/alloca.c: Include , unconditionally. (POINTER_TYPE, pointer): Remove; all uses changed to void *. (NULL): Remove. (find_stack_direction, alloca): Use prototypes. * lib/atexit.c (atexit): Define using a prototype. * lib/basename.c, dirname.c, stripslash.c: Include unconditionally. * lib/bcopy.c: Include . (bcopy): Define with prototype, using 'const' and 'void' and 'size_t'. * lib/canon-host.c: Include , unconditionally. * lib/error.h (error, error_at_line, error_print_progname) [! (defined (__STDC__) && __STDC__)]: Remove decls. * lib/error.c: Include error.h first, to check interface. Include , , unconditionally. (VA_START): Remove; all uses changeed to va_start. (exit, strerror): Remove decls. (error_print_progname): Prototype uncondionally. Don't include ; no longer needed. (private_strerror): Remove. (error_tail): Always define. (error, error_at_line): Assume C89 or better; always use prototypes. * lib/fatal.c: Include "fatal.h" first, to test interface. Include , , unconditionally. (VA_START): Remove; all uses changed to va_start. [! (HAVE_VPRINTF || HAVE_DOPRNT || _LIBC)]: Remove support for this case. (exit): Remove decl. (fatal): Prototype unconditionally. Assume va_start works. Abort at end, to pacify gcc. * lib/euidaccess.c (main): Define with a prototype. * lib/exclude.c: Include , unconditionally. * lib/exitfail.c: Include unconditionally. * lib/fnmatch_.h (__P): Remove. All uses changed to assume prototypes. * lib/fnmatch.c: Include fnmatch.h first, to test interface. Include , , unconditionally. (getenv): Remove decl. (fnmatch): Define using a prototype. * lib/fnmatch_loop.c (FCT): Remove forward decl; no longer needed. (FCT): Define using a prototype. * lib/getdate.y: Include , unconditionally. * lib/gethostname.c: Include . (gethostname): Define with prototype. Length is size_t, not int. 2003-09-08 Paul Eggert Assume C89 or better; remove K&R cruft. * m4/alloca.m4 (gl_PREREQ_ALLOCA): Don't check for stdlib.h, string.h. * m4/backupfile.m4 (gl_BACKUPFILE): Don't check for stdlib.h, string.h, getenv, malloc. * m4/dirname.m4 (gl_DIRNAME): Don't check for string.h or C standard headers. * m4/canon-host.m4 (gl_CANON_HOST): Don't check for string.h, stdlib.h. * m4/error.m4 (jm_PREREQ_ERROR): Do not require STDC headers, and do not check for strerror. * m4/exclude.m4: Do not check for stdlib.h, string.h, strings.h. * m4/exitfail.m4 (gl_EXITFAIL): Do not check for stdlib.h. * m4/fatal.m4 (gl_FATAL): Do not require STDC headers, and do not check for doprnt or vprintf. * m4/fnmatch.m4 (gl_PREREQ_FNMATCH_EXTRA): Remove. All uses removed. * m4/getdate.m4 (gl_GETDATE): Don't check for stdlib.h or string.h. 2003-09-08 Paul Eggert * lib/getversion.c: Remove; was migrated to backupfile.c in 1997. getversion.c should have been removed then, but was accidentally preserved. * lib/utime.c [!HAVE_UTIMES_NULL]: Include , . (utime_null): Fix typo: 'st' was sometimes called 'sb'. 2003-09-08 Karl Berry * config/config.sub, config.guess, srclistvars.sh: update from savannah config, forget about prep. * config/depcomp, missing: update from automake. 2003-09-07 Paul Eggert * modules/time_r: Depend on 'restrict'. Fix from Simon Josefsson in . 2003-09-07 Paul Eggert * lib/time_r.c (gmtime_r, localtime_r): Fix silly typo: missing arg to copy_tm_result. Bug reported by Simon Josefsson in . 2003-09-06 Paul Eggert * m4/time_r.m4: New file. * m4/mktime.m4 (gl_PREREQ_MKTIME): Remove check for limits.h. * m4/timegm.m4 (gl_FUNC_TIMEGM): Assume that timegm is buggy if mktime is. Check for timegm declaration. (gl_PREREQ_TIMEGM): Require gl_FUNC_MKTIME. Do not check for gmtime_r. Replace mktime if __mktime_internal does not exist and if mktime hasn't been replaced already. 2003-09-06 Paul Eggert * lib/time_r.c, lib/time_r.h: New files. * lib/mktime.c (my_mktime_localtime_r): Remove; all uses changed to __localtime_r. (__localtime_r) [!defined _LIBC]: New macro. Include . (__mktime_internal) [!defined _LIBC]: Now extern, not static. * lib/strftime.c (my_strftime_gmtime_r): Remove; all uses changed to __gmtime_r. (my_strftime_localtime_r): Remove; all uses changed to __localtime_r. (__gtime_r, __localtime_r) [!HAVE_TM_GMTOFF]: New macros. Include . * lib/timegm.c: Switch to glibc implementation, with the following changes: [defined HAVE_CONFIG_H]: Include . [!defined _LIBC]: Include "timegm.h" rather than . (__mktime_internal) [!defined _LIBC]: New decl. (__gmtime_r) [!defined _LIBC]: New macro and function. (timegm): Use a prototype, since gnulib assumes C89. Do not bother declaring tmp to be const, as it's not really usefu. * lib/timegm.h: Hoist "#include " out of #ifdef. (timegm): Declare only if HAVE_DECL_TIMEGM. 2003-09-06 Paul Eggert * MODULES.html.sh (func_all_modules): Add time_r. * modules/time_r: New file. * modules/mktime, modules/strftime, modules/timegm: Depend on time_r. * modules/timegm: Depend on mktime. Change maintainer to "all, glibc". 2003-09-03 Paul Eggert * lib/human.c (human_readable): Fix bug that rounded 10501 to 10k. Bug reported by Lute Kamstra in . * lib/getdate.y (relative_time_table): Use tDAY_UNIT for "tomorrow", "yesterday", "today", and "now" rather than tMINUTE_UNIT. Of course with correspondingly smaller numbers for tomorrow and yesterday. From Tadayoshi Funaba. Originally installed into sh-utils on 1999-08-07, but the patch got lost (I guess during the coreutils merge?). 2003-08-31 Simon Josefsson * modules/timegm: New file. * MODULES.html.sh (func_all_modules): Add timegm. 2003-08-31 Simon Josefsson * m4/timegm.m4: New file. 2003-08-31 Simon Josefsson * lib/timegm.h: New file. * lib/timegm.c: New file. Based on wget-1.8.2/src/http.c:mktime_from_utc. 2003-08-31 Karl Berry * lib/argp.h: update from libc. 2003-08-28 Bruno Haible * m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH): Remove AC_DEFINE of fnmatch here. This avoids havoc on compilers for which '#define fnmatch rpl_fnmatch' followed by '#define fnmatch fnmatch_posix' gives an error. 2003-08-28 Bruno Haible * lib/binary-io.h: Undefine O_BINARY before defining it. This avoids a warning on QNX, which defines O_BINARY to 000000. 2003-08-27 Jim Meyering * m4/mkstemp.m4: Require that the system mkstemp be able to create 70 temporary files, not just 30. Tru64 V4.0F's mkstemp function would fail after 32. Reported by Danny Levinson. Details here: http://mail.gnu.org/r/bug-coreutils/2003-08/msg00124.html 2003-08-24 Bruno Haible * lib/binary-io.h: Include , to avoid a compilation error when MSVC7 is included later. 2003-08-22 Simon Josefsson * modules/strndup (Makefile.am): Add strndup.h to lib_SOURCES. 2003-08-20 Karl Berry * m4/lib-ld.m4: serial 1003 from gettext, no changes besides serial. 2003-08-20 Bruno Haible * modules/progname: New file. * MODULES.html.sh (func_all_modules): Add progname. 2003-08-20 Bruno Haible * lib/progname.h: New file, from GNU gettext. * lib/progname.c: New file, from GNU gettext. * lib/progreloc.c: New file, from GNU gettext. 2003-08-19 Jim Meyering * m4/lib-ld.m4: Revert yesterday's change, per Bruno's request here: http://mail.gnu.org/r/bug-gnulib/2003-08/msg00155.html 2003-08-19 Bruno Haible * m4/xalloc.m4 (gl_PREREQ_XSTRDUP): Don't check for any more. 2003-08-19 Bruno Haible * lib/xstrdup.c: Assume exists. 2003-08-18 Paul Eggert * modules/stdbool: Add BUILT_SOURCES. Prefer $@ to target name in makefile rules. 2003-08-18 Jim Meyering * m4/getloadavg.m4: Use [\t ], not [ \t] (where \t is a literal TAB). * m4/lib-ld.m4: Likewise. 2003-08-18 Jim Meyering * lib/setenv.h: Indent nested cpp directive. * lib/vasnprintf.c: Remove trailing blanks. 2003-08-17 Simon Josefsson * modules/xstrndup: New file. * MODULES.html.sh (func_all_modules): Add xstrndup. 2003-08-17 Simon Josefsson * modules/argp: Fix autoconf macro name. Add more dependencies. 2003-08-17 Simon Josefsson * m4/xstrndup.m4: New file. 2003-08-17 Simon Josefsson * m4/argp.m4: New file. 2003-08-17 Simon Josefsson Bruno Haible * lib/xstrndup.h: New file. * lib/xstrndup.c: New file. 2003-08-17 Bruno Haible * modules/strndup (Files, Include): Add lib/strndup.h. 2003-08-17 Bruno Haible * modules/euidaccess (Files): Add lib/euidaccess.h. 2003-08-17 Bruno Haible * lib/strndup.h: New file. 2003-08-17 Bruno Haible * gnulib-tool (func_create_testdir): Handle gl_USE_SYSTEM_EXTENSIONS like AC_GNU_SOURCE. * modules/extensions (configure.ac): Comment out the invocation of gl_USE_SYSTEM_EXTENSIONS. 2003-08-16 Paul Eggert Merges from coreutils, etc. * m4/rpmatch.m4 (gl_PREREQ_RPMATCH): Insert ':' to prevent a syntax error in gl_FUNC_MATCH. This fixes a bug I introduced on 2003-05-28. * m4/readlink.m4 (gl_PREREQ_READLINK): Renamed from gl_PREREQ_READLINE, fixing a typo. * m4/host-os.m4 (UTILS_HOST_OS): Add GNU/NetBSD, GNU/FreeBSD. * m4/hash.m4 (gl_HASH): Use AM_STDBOOL_H, not AC_HEADER_STDBOOL. 2003-08-16 Paul Eggert Document merge from coreutils. * modules/alloca: Append $(ALLOCA_H) to BUILT_SOURCES. * modules/fnmatch: Append $(FNMATCH_H) to BUILT_SOURCES. * modules/utime: Add m4/utimes-null.m4. 2003-08-16 Paul Eggert * lib/regex.h, strdup.c, strtoll.c, strtoul.c: Do not normalize white space, undoing this 2003-08-12 change: 2003-08-16 Paul Eggert * config/srclist.txt: Get regex.h, strdup.c, strtoll.c, strtoul.c from libc, undoing this 2003-08-12 change: 2003-08-16 Jim Meyering Merges from coreutils. * m4/readdir.m4 (GL_FUNC_READDIR): Change name to have GL_ (not jm_) prefix. Adjust cache variables similarly. Create 500 rather than just 300 files, to exercise bug on Darwin6.5, too. * m4/perl.m4 (jm_PERL): Use $am_missing_run, not undefined $missing_dir. * m4/jm-winsz1.m4: Require AC_SYS_POSIX_TERMIOS, not AM_SYS_POSIX_TERMIOS. Reported by mkc@mathdogs.com. Also change use of $am_cv_sys_posix_termios to $ac_cv_sys_posix_termios. Reported by Andreas Schwab. * m4/getgroups.m4 (jm_FUNC_GETGROUPS): Rewrite to use AC_FUNC_GETGROUPS and (if needed) to call AC_LIBOBJ and to set GETGROUPS_LIB. * m4/fsusage.m4 [__GLIBC__]: GNU libc's statvfs stats each mount point in /proc/mounts until it finds one with matching device number. This is unnecessary when the FILE argument *is* a mount point. No stat call is necessary in that case. So, disable the statvfs-testing code on systems with GNU libc. Reported by Andrei Gaponenko via Tim Waugh as RedHat bug# 84846. * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Limit stack size to 1MB, so as not to render systems with no stack size limit (e.g., linux-2.2.x) unusable. Suggestion and code from Bruno Haible. Include . On some systems, it is required for the definition of _SC_PAGESIZE. 2003-08-16 Jim Meyering Merge from coreutils. * lib/xstrtoimax.c: #else #if -> #elif. * lib/xstrtoumax.c: Likewise. 2003-08-16 Jim Meyering * m4/utimes.m4 (gl_FUNC_UTIMES): New file. * m4/utimes.m4: Removed. * m4/utimes-null.m4: Renamed from utimes.m4. * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Limit stack size to 1MB, so as not to render systems with no stack size limit (e.g., linux-2.2.x) unusable. Suggestion and code from Bruno Haible. Include . On some systems, it is required for the definition of _SC_PAGESIZE. 2003-08-16 Jim Meyering and Paul Eggert Merges from coreutils, etc. * m4/jm-macros.m4 (AC_LANG_SOURCE(C)): New macro, undefine, then define using the latest version from cvs. This avoids problems with #line directives using a vendor (Sun) compiler. (jm_MACROS): Bump prerequisite from 2.52g to 2.57. Don't set GETGROUPS_LIB here; now it's done via getgroups.m4's wrapper function. AC_SUBST OPTIONAL_BIN_PROGS, OPTIONAL_BIN_ZCRIPTS, and MAN here, rather than just in sh-util/configure.in, so that the now-shared-by-fileutils-and-textutils lib/Makefile.am are all the same. Use AC_CONFIG_LIBOBJ_DIR(lib) to tell the new AC_FUNC_GETLOADAVG where to find getloadavg.c. Require AC_FUNC_FTW, gt_INTTYPES_PRI, gl_CLOCK_TIME, UTILS_SYS_OPEN_MAX, GL_FUNC_GETCWD_PATH_MAX, GL_FUNC_READDIR, gl_FSUSAGE, gl_MOUNTLIST, AC_FUNC_CANONICALIZE_FILE_NAME. Remove code that is now done by the newly-required macros. Append $(EXEEXT) to DF_PROG. AC_LIBOBJ fchdir-stub if fchdir doesn't exist; similarly for fchown. Do not invoke or require the following here, since prereq.m4 or some gnulib .m4 now does this for us: gl_REGEX, UTILS_FUNC_MKDIR_TRAILING_SLASH, jm_BISON, gl_FUNC_MKTIME, jm_FUNC_LSTAT, jm_FUNC_STAT, jm_FUNC_REALLOC, jm_FUNC_MALLOC, jm_FUNC_NANOSLEEP, jm_FUNC_READDIR, jm_FUNC_MEMCMP, jm_FUNC_GLIBC_UNLOCKED_IO, AC_FUNC_FNMATCH_GNU, jm_FUNC_PUTENV, jm_AC_PREREQ_XSTRTOUMAX, jm_AC_PREREQ_XSTRTOIMAX, AC_FUNC_ERROR_AT_LINE, jm_FUNC_GNU_STRFTIME, AC_FUNC_VPRINTF, vb_FUNC_RENAME, UTILS_FUNC_MKSTEP, jm_FUNC_UTIME, AM_FUNC_GETLINE, AC_FUNC_OBSTACK. Do not replace the following functions, as this is now the job of some gnulib .m4: strcasecmp, strncasecmp, dup2, gethostname, getusershell, sig2str, strcspn, stpcpy, strstr, strtol, strtoul strpbrk, euidaccess, memcmp, rmdir, rpmatch, strndup, strverscmp, atexit getpass, strdup, getpagesize. Replace 'raise'. Do not check for the following functions, as this is now the job of some gnulib .m4: bcopy, canonicalize_file_name, fchdir, ftime, getcwd, getmntinfo, resolvepath. But check for sysctl, setreuid, setregid. (jm_CHECK_ALL_HEADERS): Do not check for fenv.h. Check for sys/sysctl.h. (jm_CHECK_ALL_TYPES): Do not require AC_STRUCT_TM, AC_STRUCT_TIMEZONE, jm_CHECK_TYPE_STRUCT_TIMESPEC. Invoke gt_TYPE_SSIZE_T instead of checking for ssize_t ourselves. * m4/prereq.m4 (jm_PREREQ): Don't invoke macros; AC_REQUIRE them. Require every macro that gnulib/modules/* suggests for us. (jm_PREREQ_ADDEXT): New macro. (jm_PREREQ_STAT): Check for 'struct statfs' on Ultrix 4.4. Require jm_AC_TYPE_LONG_LONG instead of invoking it. * m4/physmem.m4 (gl_SYS__SYSTEM_CONFIGURATION): New macro. (gl_PHYSMEM): Use it. Also check for `table' function. Check for new headers and functions. Add check for sys/sysmp.h. With suggestions from Kaveh Ghazi. Ignore headers that are present but cannot be compiled. This avoids spurious warnings on Solaris 9 sparc with Forte Developer 7 C 5.4. 2003-08-15 Paul Eggert Document merge from coreutils. * modules/userspec: Depend on posixver. * modules/strftime: Depend on tzset. 2003-08-15 Paul Eggert * lib/config.charset, ref-add.sin, ref-del.sin: Use three spaces, rather than tab, after '#' in shell-script copyright notices. Suggested by Bruno Haible. 2003-08-15 Paul Eggert * config/srclist-update: Use three spaces, rather than tab, after '#' in shell-script copyright notices. Suggested by Bruno Haible. Remove unnecessary parenthesization in regular expression. 2003-08-15 Jim Meyering Merge from coreutils. * lib/xgethostname.c: Include . (xghostname): Don't exit for anything other than memory-related failure; just return NULL. * lib/userspec.c: Include "posixver.h". (parse_user_spec): Accept `.' as a separator only in pre-POSIX-200112 mode. * lib/strtoimax.c: Use #elif rather than #else #if. * lib/strftime.c (my_strftime) [!_LIBC && HAVE_TZNAME && HAVE_TZSET]: Remove function, now that we can rely on a working tzset function. [!_LIBC]: Ensure that the required autoconf test has been run. [!defined _NL_CURRENT && HAVE_STRFTIME]: Use underlying_strftime for %r. * lib/sha.c: Merge in some clean-up and optimization changes from glibc. * lib/sha.c (sha_stream) [BLOCKSIZE]: Move definition to top of file. Ensure that it is a multiple of 64. Rearrange loop exit tests so as to avoid performing an additional fread after encountering an error or EOF. * lib/realloc.c: Update copyright date. 2003-08-15 Jim Meyering and Paul Eggert Merge from coreutils. * lib/readutmp.h (HAVE_UTMPX_H): Undef if struct utmp has the ut_exit member but strut utmpx does not. Needed for AIX 4.3.3. (UT_EXIT_E_TERMINATION, UT_EXIT_E_EXIT): Define. 2003-08-15 Jim Meyering and Paul Eggert Merges from coreutils, etc. * m4/strftime.m4 (_jm_STRFTIME_PREREQS): Require gl_FUNC_TZSET_CLOBBER. * m4/readutmp.m4 (gl_READUTMP): Check for ut_exit.ut_exit, ut_exit.e_exit, ut_exit.ut_termination, and ut_exit.e_termination members. 2003-08-14 Paul Eggert Help the merge from coreutils. * m4/gettimeofday.m4 (gl_GETTIMEOFDAY_REPLACE_LOCALTIME): New macro. (AC_FUNC_GETTIMEOFDAY_CLOBBER): Use it. * m4/tzset.m4: Use it too. 2003-08-14 Paul Eggert * modules/tzset: New file. 2003-08-14 Jim Meyering Merges from coreutils. * modules/fnmatch: Use the `$(FNMATCH_H)' notation for AC_REPLACED variable names, rather than @FNMATCH_H@. * modules/alloca: Likewise for $(ALLOCA_H). * modules/fnmatch (fnmatch.h): Use `$@' in the commands, in place of the three copies of the literal target, `fnmatch.h'. * modules/alloca (alloca.h): Likewise. 2003-08-14 Jim Meyering Merge from coreutils. * m4/tzset.m4: New file. * m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): Move the MOUNTED_VMOUNT test to precede the MOUNTED_GETMNTENT1 tests, since otherwise, AIX 5.1 systems would end up using the latter. MOUNTED_GETMNTENT1 support is inadequate on such systems: 1) detecting whether a file system is remote doesn't work 2) the MOUNTED_VMOUNT code reports the HOSTNAME:/MOUNT_POINT, while the MOUNTED_GETMNTENT1 code reports merely /MOUNT_POINT. Reported by Mike Jetzer. 2003-08-14 Jim Meyering Merge from coreutils. * lib/obstack.h: Whitespace changes. * lib/mountlist.c: Remove anachronistic casts of xmalloc, xrealloc, and xcalloc return values. (read_filesystem_list) [MOUNTED_GETFSSTAT]: Use MNT_NOWAIT, rather than MNT_WAIT. Otherwise, `df DIR' could hang on OSF/1 5.1 for DIR on both local and remote file systems. Reported by (and fix confirmed by) Nelson H. F. Beebe. (read_filesystem_list) [MOUNTED_VMOUNT]: Detect any error from mntctl. Use mntctl's return value to drive the entry-processing loop, since we can't rely on the value of the vmt_length member in the last entry. On some systems doing so could result in exhausting virtual memory. Based in part on a patch from Mike Jetzer. 2003-08-14 Jim Meyering and Paul Eggert Merges from coreutils, plus other fixes. * lib/physmem.c: Merge in portability changes from gcc/libiberty to support AIX, IRIX, Tru64, and Windows. See the ChangeLog there for credits and details. Thanks to Kaveh Ghazi for helping to keep these files in sync. (ARRAY_SIZE): Define it. (physmem_total, physmem_available): Add comments. From Kaveh Ghazi. * lib/memcasecmp.c: Remove unnecessary parentheses after 'defined'. (memcasecmp): Don't assume size_t fits in unsigned int. Remove casts and duplicate code. * lib/md5.c: Include and unconditionally. (memcpy): Remove definition. Merge in some clean-up and optimization changes from glibc. [BLOCKSIZE]: Move definition to top of file. Ensure that it is a multiple of 64. Rearrange loop exit tests so as to avoid performing an additional fread after encountering an error or EOF. * lib/md5.h (md5_uintptr): Define. * lib/makepath.c (CLEANUP_CWD): Report an error if we failed to return to the initial working directory. Preserve errno for caller. * lib/idcache.c: Include "xalloc.h". (xmalloc, xrealloc): Remove decls. (getuser): Remove casts no longer required in C89. * lib/human.c: Include stdio.h, for sprintf. * lib/group-member.c: Include "xalloc.h". (xmalloc, xrealloc): Remove decls. (get_group_info): Remove casts no longer required in C89. * lib/getusershell.c (readname): Remove casts no longer required in C89. * lib/gettimeofday.c (rpl_gmtime, rpl_tzset): New functions. * lib/getline.c: Whitespace fix, from coreutils. 2003-08-13 Paul Eggert * m4/exclude.m4 (gl_EXCLUDE): Require AC_C_INLINE, AC_HEADER_STDC. Check for isascii. * m4/gettext.m4, iconv.m4, intdiv0.m4, inttypes-pri.m4, lib-link.m4, lib-prefix.m4, longdouble.m4, po.m4, progtest.m4, signed.m4: Undo previous (whitespace-only) change. 2003-08-13 Paul Eggert * lib/exclude.c: Include (IN_CTYPE_DOMAIN): New macro. (is_space): New fn. (add_exclude_file): If LINE_END is a space, ignore trailing spaces and empty lines. * lib/argp-help.c, argp-parse.c, config.charset, getopt.h: Undo previous (whitespace-only) change. 2003-08-13 Paul Eggert * config/srclist-update: Change update back to the old behavior, leaving whitespace alone. Use one 'sed' command rather than a pipeline. (fixlicense): Now a variable, not a function. (remove_trailing_blanks): Remove. (fixfile): Don't invoke unexpand or cat, or remove trailing blanks. * config/config.guess, config.sub, install-sh, missing, texinfo.tex: Undo previous (whitespace-only) change. 2003-08-12 Paul Eggert Merge from coreutils. * modules/euidaccess: Add lib_SOURCES, include for new file euidaccess.h 2003-08-12 Paul Eggert * m4/gettext.m4, iconv.m4, intdiv0.m4, inttypes-pri.m4, lib-link.m4, lib-prefix.m4, longdouble.m4, po.m4, progtest.m4, signed.m4: Normalize leading white space and remove trailing white space. Merge from coreutils * m4/euidaccess.m4 (gl_FUNC_EUIDACCESS): Check for euidaccess decl. * m4/lib-ld.m4, lib-link.m4, lib-prefix.m4: Regenerate from gettext 0.12.1. These files are now being upgraded automatically by ../config/srclist-update. 2003-08-12 Paul Eggert * lib/argp-help.c, argp-parse.c, config.charset, getopt.h: Normalize leading white space and remove trailing white space. * lib/ref-add.sin, ref-del.sin: Use '#' before empty line in copyright notice, as per ../config/srclist-update. Merge from coreutils. * lib/euidaccess.h: New file. * lib/euidaccess.c: Include it. * lib/.cppi-disable: Add printf-args.h, printf-parse.h, stdbool_.h, vasnprintf.h, vasprintf.h. Remove strdup.c, gettext.h. * lib/regex.h, strdup.c, strtoll.c, strtoul.c: Normalize white space. 2003-08-12 Paul Eggert * config/srclist-update: Add copyright notice. (remove_id_lines, remove_trailing_blanks): New constants. (fixfile): Use them to normalize spacing a bit in copied files. * config/config.guess, config.sub, install-sh, missing, texinfo.tex: Normalize leading white space and remove trailing white space. * config/texinfo.tex: Sync with texinfo. * config/srclist.txt: Don't get regex.h, strdup.c, strtoll.c, strtoul.c from libc, to merge coreutils whitespace changes. * config/srclist.txt: Get the following m4 files from gettext: codeset.m4, gettext.m4, glibc21.m4, iconv.m4, intdiv0.m4, inttypes-pri.m4, lcmessage.m4, lib-ld.m4, lib-link.m4, lib-prefix.m4, longdouble.m4, nls.m4, po.m4, progtest.m4, signed.m4, wchar_t.m4, wint_t.m4. 2003-08-12 Karl Berry * config/srclist.txt: can't sync vasnprintf.c any more, changes have been made. 2003-08-11 Paul Eggert * modules/gnu-source, m4/gnu-source.m4: Remove; we're assuming Autoconf 2.54 or later now. Suggested by Bruno Haible. * MODULES.html.sh (func_all_modules): Remove gnu-source. 2003-08-11 Bruno Haible * m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF): Also check for wcslen. 2003-08-11 Bruno Haible * lib/vasnprintf.c (local_wcslen): New function, for Solaris 2.5.1. (vasnprintf): Use it instead of wcslen. 2003-08-11 Bruno Haible * lib/stdbool_.h (_Bool): Undo last change; instead use a negative enum value to ensure that _Bool promotes to int. Use #define for _Bool when using the Solaris C compiler. Adds comments suggested by Paul Eggert. 2003-08-10 Karl Berry * lib/regex.h: update from libc (whitespace fix). 2003-08-09 Paul Eggert Merge some files from coreutils. These changes were originally made by Jim Meyering. * lib/acl.c: Include before ; many older Unixes require this. * lib/alloca.c (alloca): Remove cast to argument of free; no longer needed in C89. * lib/alloca_.h, regex.h: Fix white space to match what GNU indent does. 2003-08-09 Paul Eggert * m4/regex.m4 (jm_INCLUDED_REGEX): Change "\201" to "\371"; apparently Emacs's Unicode mode got confused before my 2003-08-05 checkin. 2003-08-08 Paul Eggert * m4/extensions.m4: New file. * m4/timespec.m4 (jm_CHECK_TYPE_STRUCT_TIMESPEC): Require gl_USE_SYSTEM_EXTENSIONS. * m4/unlocked-io.m4 (jm_FUNC_GLIBC_UNLOCKED_IO): Require gl_USE_SYSTEM_EXTENSIONS rather than AC_GNU_SOURCE. 2003-08-08 Paul Eggert * MODULES.html.sh (func_all_modules): Add extensions, gnu-source. * modules/extensions, modules/gnu-source: New files. * modules/timespec, modules/unlocked-io: Depend on extensions. 2003-08-07 Paul Eggert * modules/restrict: New file. * MODULES.html.sh (func_all_modules): Add restrict. * modules/regex: Depend on restrict. 2003-08-07 Paul Eggert * m4/restrict.m4: New file. * m4/regex.m4 (jm_PREREQ_REGEX): Add gl_C_RESTRICT. 2003-08-07 Bruno Haible * modules/getndelim2 (Makefile.am): Add the files to EXTRA_DIST, not lib_SOURCES, because getndelim2.m4 now uses AC_LIBOBJ(getndelim2). 2003-08-07 Bruno Haible * m4/getndelim2.m4 (gl_GETNDELIM2): Use AC_LIBOBJ(getndelim2). This makes the module 'getndelim2' compatible with the module 'getline'. 2003-08-05 Paul Eggert * m4/regex.m4 (jm_INCLUDED_REGEX): Replace a single non-ASCII byte with "\201" to avoid glitches when editing that source file with multi-gnome-terminal. 2003-08-05 Paul Eggert * lib/bumpalloc.h: Remove. 2003-08-05 Paul Eggert * MODULES.html.sh (func_all_modules): Remove bumpalloc. * modules/bumpalloc: Remove. 2003-08-04 Paul Eggert * lib/getloadavg.c: Change copyright notice and spacing to conform to GNU coding style. Merge from coreutils. * lib/error.c [!USE_IN_LIBIO]: Omit this case; assume USE_IN_LIBIO is 1. From glibc. * lib/getdate.y (date): Also accept dates like May-23-2003; suggestion from Karl Berry, implemented by Jim Meyering. * lib/getgroups.c: Include "xalloc.h" instead of declaring xalloc fns; from Dmitry V. Levin. Remove anachronistic cast of xrealloc. * lib/fnmatch_.h (__const): Remove. Use 'const'. * lib/fnmatch_loop.c (NEW_PATTERN): Cast alloca return value to proper type. Otherwise, it wouldn't compile with at least /bin/cc on ymp-cray-unicos9.0.2.X. Combine two mostly-identical uses of alloca into one. Thanks to the Cray-Cyber project for access to a Cray Y-MP. 2003-08-04 Dave Love [From Emacs.] * lib/getloadavg.c: Check `__unix' as well as `unix'. Use #ifdef, not #if. Check HAVE_LIBKSTAT as well as LOAD_AVE_TYPE. Check F_SETFD, not FD_SETFD. Use HAVE_STRUCT_NLIST_N_UN_N_NAME, not obsolete NLIST_NAME_UNION. [__GNU__]: Undef BSD and FSCALE. [!NLIST_STRUCT]: Remove conditional definition of NLIST_STRUCT. 2003-08-03 Paul Eggert * lib/stdbool_.h (_Bool): Make it signed char, instead of an enum type, so that it's guaranteed to promote to int. See: 2003-08-03 Karl Berry * config/depcomp: update from automake. 2003-07-31 Paul Eggert * lib/strerror.c: Include config.h, limits.h. Declare sprintf. (strerror): Don't assume that a printable int fits in 14 bytes. 2003-07-31 Bruno Haible * modules/getpass-gnu: New file. * MODULES.html.sh (func_all_modules): Add getpass-gnu. 2003-07-31 Bruno Haible * m4/getpass.m4 (gl_FUNC_GETPASS_GNU): New macro. 2003-07-24 Karl Berry * config/missing: update from automake. 2003-07-24 Derek Robert Price Bruno Haible * lib/getline.h (getline, getdelim): Change return type to ssize_t. * lib/getline.c (getline, getdelim): Likewise. Remove _GNU_SOURCE define; now it's defined in config.h through m4/getline.m4. 2003-07-23 Karl Berry * config/config.sub: update from prep. 2003-07-22 Paul Eggert * modules/xalloc (Depends-on): Add exitfail. * modules/xmemcoll: Likewise. 2003-07-22 Paul Eggert * lib/xalloc.h (XCALLOC, XREALLOC, CCLONE): Fix under- and over-parenthesization in macros. Sync with coreutils. * lib/xalloc.h (XMALLOC, XCALLOC, XREALLOC): Remove casts not required by C99. Use `exit_failure' for xalloc and xmemcoll instead of their own private exit-failure variables. * lib/xalloc.h (xalloc_exit_failure): Remove. * lib/xmalloc.c: Likewise. Include exitfail.h. (xalloc_die): Use exit_failure instead of xalloc_exit_failure. * lib/xmemcoll.h (xmemcoll_exit_failure): Remove. * lib/xmemcoll.c: Likewise. Include exitfail.h. (xmemcoll): Use exit_failure instead of xalloc_exit_failure. 2003-07-20 Jim Meyering * modules/closeout (Depends-on): Add exitfail. Suggestion from Bruno Haible. 2003-07-19 Karl Berry * config/config.sub: update from prep. 2003-07-18 Paul Eggert * lib/closeout.h (close_stdout_set_status, close_stdout_status): Remove. * lib/closeout.c: Likewise. Include "closeout.h" right after config.h, to test that it can stand by itself. Include "exitfail.h". Clients should set exit_failure instead. (EXIT_FAILURE): Remove; no longer needed. Do not include . 2003-07-18 Bruno Haible * modules/getndelim2: New file. * modules/getline: Share files with module getndelim2. * modules/getnline: Depend on getndelim2 instead of sharing files with it. Add getnline.c to lib_SOURCES. * MODULES.html.sh (func_all_modules): Add getndelim2. 2003-07-18 Bruno Haible * m4/getndelim2.m4: New file. * m4/getline.m4 (AM_FUNC_GETLINE): Add AC_LIBOBJ of getndelim2.c and invoke gl_PREREQ_GETNDELIM2. (gl_PREREQ_GETLINE): Drop AC_HEADER_STDC, now done by gl_PREREQ_GETNDELIM2. * m4/getnline.m4 (gl_GETNLINE): Drop AC_HEADER_STDC, now done by gl_GETNDELIM2. 2003-07-18 Bruno Haible * lib/getndelim2.h: New file. * lib/getndelim2.c: Make into a module of its own. Include config.h, getndelim2.h. (getndelim2): Make non-static. Change return type to ssize_t. * lib/getline.h: Change argument names. * lib/getline.c: Include getndelim2.h instead of getndelim2.c. * lib/getnline.c: Include getndelim2.h. 2003-07-18 Andreas Schwab * lib/memcoll.c (memcoll) [!HAVE_STRCOLL]: Clear errno. 2003-07-17 Karl Berry * config/config.sub: update from prep. 2003-07-17 Bruno Haible * modules/getnline: New file. * modules/getline: Add lib/getndelim2.c to source file list. * MODULES.html.sh (func_all_modules): Add getnline. 2003-07-17 Bruno Haible * m4/getnline.m4: New file. 2003-07-17 Bruno Haible * m4/Makefile.am.in: Remove file. * m4/Makefile.am: Remove file. * m4/Makefile.in: Remove file. 2003-07-17 Bruno Haible * lib/getnline.h: New file. * lib/getnline.c: New file. * lib/getndelim2.c: New file, extracted from getline.c. (getndelim2): Renamed from getdelim2, with added nmax argument. * lib/getline.c: Include getndelim2.c. (getdelim2): Moved out to getndelim2.c. (getline, getdelim): Update. 2003-07-17 Bruno Haible * lib/Makefile.am: Remove file. * lib/Makefile.in: Remove file. 2003-07-17 Bruno Haible * configure.in: Remove file. * Makefile.in: Remove file. 2003-07-17 Bruno Haible * MODULES.html.sh: Put the right before . 2003-07-16 Karl Berry * config/srclist-update: was running fixlicense twice, which caused texinfo.tex to be nullified for some reason. Simplify, $gplsrc is no longer needed as far as I can see? 2003-07-16 Jim Meyering * modules/save-cwd: Depend on xgetcwd. From Derek Price. 2003-07-15 Paul Eggert * config/srclist.txt: Get the following files from gettext-runtime/intl instead: config.charset, localcharset.c, localcharset.h, ref-add.sin, ref-del.sin. From Bruno Haible. * config/srclist-update (fixfile): Change grep pattern again, since the previous fix didn't work (there was another trailing $). Use '[$]' to escape the $s. 2003-07-15 Karl Berry * lib/vasnprintf.c: update from gettext. 2003-07-15 Karl Berry * config/srclist-update (fixfile): Change grep pattern, since 'Id' gets expanded when surrounded by '$'. 2003-07-15 Jim Meyering * modules/save-cwd: Don't depend on error. From Derek Price. 2003-07-15 Jim Meyering * lib/makepath.c (make_path): Enclose diagnostic in _(...). 2003-07-14 Simon Josefsson * modules/mempcpy: New file. * MODULES.html.sh (func_all_modules): Add mempcpy. 2003-07-14 Simon Josefsson * m4/mempcpy.m4: New file. 2003-07-14 Simon Josefsson * lib/mempcpy.h: New file. * lib/mempcpy.c: New file. 2003-07-14 Paul Eggert * modules/getdate, modules/posixtm: Depend on mktime. 2003-07-14 Paul Eggert * lib/ceill.c, expl.c, floorl.c, frexpl.c, ldexpl.c, mathl.h, sincosl.c, sqrtl.c, trigl.c, trigl.h, poll.c, poll_.h, mkstemp.c, unicodeio.c, unicodeio.h, unlocked-io.h: Switch from LGPL to GPL. 2003-07-14 Paul Eggert * lib/asnprintf.c, asprintf.c, config.charset, gettext.h, localcharset.c, localcharset.h, mkdtemp.c, printf-args.c, printf-args.h, printf-parse.c, printf-parse.h, ref-add.sin, ref-del.sin, setenv.c, unsetenv.c, vasnprintf.c, vasnprintf.h, vasprintf.c, vasprintf.h: Regenerate. These files are now being updated automatically by ../config/srclist-update. This changes their license from LPGL to GPL. 2003-07-14 Paul Eggert * config/srclist.txt: Add tons more gettext files. $GETTEXT is now assumed to refer to the root of the most recent stable gettext version. * config/srclistvars.sh: Add defaults for eggert. * config/srclist-update: Convert LGPL to GPL in shell scripts, too. Match "This program" as well as "The program". This is needed for gettext. 2003-07-14 Jim Meyering Don't emit diagnostics. Let callers do that. * lib/save-cwd.c: Don't include "error.h". (save_cwd): Don't call error. Ensure that errno is valid when returning nonzero. * lib/save-cwd.h (restore_cwd): Update prototype. * lib/save-cwd.c (restore_cwd): Remove two parameters. Simplify. Don't call error upon failure. Let callers do that. (save_cwd): Mention that Irix 5.3 has the same problem as SunOS 4 when auditing is enabled. But don't bother updating the #if. 2003-07-11 Alexandre Duret-Lutz * lib/obstack.h (__INT_TO_PTR): Revert change of 2003-03-13; it breaks C++ compilation. [!__GNUC__ || !__STDC__] (obstack_finish): Cast result to void*. 2003-07-10 Simon Josefsson * modules/strchrnul (Makefile.am): Add strchrnul.h. 2003-07-10 Jim Meyering * m4/clock_time.m4: Remove trailing blank. * m4/intmax_t.m4: Likewise. 2003-07-10 Jim Meyering * lib/vasnprintf.c: Remove trailing blanks. Make cpp indentation consistent. 2003-07-09 Paul Eggert * lib/alloca_.h, euidaccess.c, getpass.c, memrchr.c, obstack.h, posixver.c, strftime.c, strnlen.c, strverscmp.c: Switch from LGPL to GPL. 2003-07-09 Paul Eggert * config/srclist.txt: Sort sublists. Add $LIBCSRC/sysdeps/generic/strtoul.c. In comments, add more libc files that differ from gnulib for one reason or another; we'd like this list to be smaller but for now let's document what we have. 2003-07-08 Paul Eggert * config/srclist-update: Port to POSIX 1003.1-2001 hosts by avoiding the use of GNU extensions. Change "x=`eval echo $x`" to the shorter and sweeter "eval x=$x". * config/srclist.txt: Get lib/argp* from glibc. 2003-07-07 Paul Eggert * lib/mktime.c: Fix some boundary cases and remove need for floating point. Issue a compile-time diagnostic if time_t is floating point, or if two's complement arithmetic is not in effect, or if arithmetic right shift does not propagate the sign. These assumptions were all in the original code but they weren't checked. (TIME_T_MIDPOINT, verify): New macros. (__isleap): Remove; it has integer overflow problems. (leapyear): New function, without those problems. (ydhms_tm_diff): Remove; splitting into two parts. (ydhms_diff): New function, containing the arithmetic part of the old ydhms_tm_diff function. Issue a compile-time diagnostic if we are not using C99 integer division. Avoid casts when possible. (guess_time_tm): New function, containing the checking part of the old ydhms_tm_diff function. Return the new value, rather than the difference between it and the old. Accept a new argument T so that *T specifies the old value. Check for overflow in the result. (__mktime_internal): Use a time_t offset, not a long int offset. This undoes the 2003-06-04 change, which is no longer needed now that we have better overflow checking. (localtime_offset): Likewise. (__mktime_internal): Avoid harmful overflow on hosts where time_t and long are 64-bit but int is only 32-bit. (ydhms_diff): Use long int to store year1 and yday1. Issue a compile-time diagnostic if long int is not wide enough. (__mktime_internal): Use long int to store adjusted year and yday. Use plain C rather than preprocessor commands, if that doesn't affect efficiency. Check for overflow (and try to repair) after each probe rather than checking only at the very end. This avoids some bugs (e.g., southern hemisphere, behind GMT, and GMT offset at minimum time does not equal GMT offset at maximum time). Use integer to check for overflow rather than floating point; this is more portable to non-IEEE hosts, and is a tad faster. When we detect that we are oscillating between two values, don't check whether tm_isdst has the requested value, since we already know the answer. When tm_isdst has the wrong value, use a different heuristic to find the right one, based on the extreme values actually observed in practice in tz2003a, rather than the (overly optimistic) "previous 3 calendar quarters". (not_equal_tm, print_tm, check_result): Use "const T" rather than "T const" to accommodate glibc style. (check_result): Use less-confusing report format. "long" -> "long int. (main): Likewise. Don't loop if the iteration overflows time_t. Allow a negative step in the iteration. 2003-07-06 Karl Berry * config/depcomp: update from automake. * config/config.sub: update from prep. 2003-07-03 Karl Berry * config/config.guess: update from prep. 2003-07-01 Paul Eggert * m4/xreadlink.m4 (gl_XREADLINK): Don't check for sys/types.h, since xreadlink.c now includes it unconditionally. 2003-07-01 Paul Eggert * lib/xreadlink.c: Include unconditionally, instead of having it depend on HAVE_SYS_TYPES_H. 2003-07-01 Bruno Haible * m4/ssize_t.m4 (gt_TYPE_SSIZE_T): Don't include . should be sufficient. Reported by Paul Eggert. 2003-06-26 Karl Berry * config/depcomp: update from automake. 2003-06-26 Bruno Haible * modules/human: Depend on module stdbool. 2003-06-25 Bruno Haible * modules/readlink: New file. * modules/xreadlink: Depend on it. * MODULES.html.sh (func_all_modules): Add readlink. 2003-06-25 Bruno Haible * m4/readlink.m4: New file. 2003-06-25 Bruno Haible * lib/readlink.c: New file. 2003-06-22 Karl Berry * config/srclist.txt: update mkinstalldirs from automake. * config/mkinstalldirs: update. 2003-06-22 Bruno Haible Portability to mingw32. * m4/ssize_t.m4: New file, from GNU gettext. * m4/safe-read.m4 (gl_PREREQ_SAFE_READ): Require gt_TYPE_SSIZE_T. * m4/xreadlink.m4 (gl_XREADLINK): Require gt_TYPE_SSIZE_T. 2003-06-22 Bruno Haible * modules/safe-read: Add m4/ssize_t.m4. * modules/xreadlink: Add m4/ssize_t.m4. 2003-06-20 Bruno Haible Assume C89, so PARAMS isn't needed. * lib/unicodeio.h (PARAMS): Remove. * lib/unicodeio.c: Don't use PARAMS. 2003-06-18 Karl Berry * config/config.{guess,sub}: update from prep. 2003-06-18 Jim Meyering Merge changes from coreutils. * lib/readutmp.c: Include and unconditionally. Remove explicit declarations of xmalloc and realloc. Include xalloc.h. (read_utmp): Remove anachronistic cast of xmalloc. 2003-06-17 Paul Eggert Assume C89, so PARAMS isn't needed. * lib/backupfile.h (PARAMS): Remove. All uses removed. * lib/closeout.h, lib/dirname.h, lib/filemode.h, lib/fsusage.h, lib/getdate.h, lib/getline.h, lib/group-member.h, lib/hard-locale.h, lib/hash.h, lib/linebuffer.h, lib/long-options.h, lib/makepath.h, lib/memcasecmp.h, lib/memcoll.h, lib/modechange.h, lib/mountlist.h, lib/path-concat.h, lib/physmem.h, lib/posixtm.h, lib/quote.h, lib/readutmp.h, lib/same.h, lib/save-cwd.h, lib/savedir.h, lib/stdio-safer.h, lib/strtoimax.c, lib/strverscmp.h, lib/unistd-safer.h, lib/version-etc.h, lib/xalloc.h, lib/xreadlink.h, lib/xstrtod.h, lib/xstrtol.h: Likewise. * lib/filemode.h, lib/hard-locale.h, lib/memcoll.h, lib/modechange.h, lib/physmem.h, lib/same.h, lib/strverscmp.h: Do not include config.h; no longer needed. Anyway, config.h should always be included before any other file. 2003-06-11 Simon Josefsson * modules/sysexits: New file. * MODULES.html.sh (func_all_modules): Add sysexits. 2003-06-11 Simon Josefsson * lib/sysexit_.h: New file. 2003-06-11 Derek Price * lib/stat.c [LSTAT]: Compile/use slash_aware_lstat only if it is necessary. 2003-06-11 Bruno Haible * m4/sysexits.m4: New file. 2003-06-10 Simon Josefsson * lib/argp.h: New file, from glibc. * lib/argp-ba.c: New file, from glibc. * lib/argp-eexst.c: New file, from glibc. * lib/argp-fmtstream.c: New file, from glibc. * lib/argp-fmtstream.h: New file, from glibc. * lib/argp-fs-xinl.c: New file, from glibc. * lib/argp-help.c: New file, from glibc. * lib/argp-namefrob.h: New file, from glibc. * lib/argp-parse.c: New file, from glibc. * lib/argp-pv.c: New file, from glibc. * lib/argp-pvh.c: New file, from glibc. * lib/argp-xinl.c: New file, from glibc. 2003-06-10 Simon Josefsson * modules/strchrnul: New file. 2003-06-10 Simon Josefsson * modules/argp: New file. 2003-06-10 Simon Josefsson * m4/strchrnul.m4: New file. 2003-06-10 Simon Josefsson * lib/strchrnul.h: New file. * lib/strchrnul.c: New file. 2003-06-10 Bruno Haible * MODULES.html.sh (func_all_modules): Add strchrnul and argp. 2003-06-07 Karl Berry * config/config.{guess,sub}: update from prep. 2003-06-07 Jim Meyering * modules/strtod: Use $(...) notation, not @...@ for AC_REPLACE'd variables. * modules/localcharset: Likewise. 2003-06-07 Jim Meyering * lib/readtokens.h: Put `Free Software Foundation, Inc.' in place of my name in the copyright comment. Remove definition and uses of __P. From coreutils. * lib/stat.c: Don't declare xmalloc explicitly. Instead, include "xalloc.h". * lib/readtokens.c (readtokens): Remove anachronistic casts of xmalloc, xrealloc, and xcalloc return values. * lib/xgetcwd.c (xgetcwd): Include "xgetcwd.h". Improve comment. * lib/xgetcwd.h: Remove definition/uses of PARAMS. 2003-06-07 Bruno Haible * modules/poll (Makefile.am): Use explicit creation rule for poll.h, to avoid AC_CONFIG_LINKS. * modules/fnmatch (Makefile.am): Use explicit creation rule for fnmatch.h, to avoid AC_CONFIG_LINKS. * modules/alloca (Makefile.am): Make creation of alloca.h Ctrl-C safe. 2003-06-07 Bruno Haible * m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH, gl_FUNC_FNMATCH_POSIX, gl_FUNC_FNMATCH_GNU): Set FNMATCH_H instead of invoking AC_CONFIG_LINKS. Needed to allow for a different name of the lib directory. * m4/poll.m4 (gl_FUNC_POLL): Set POLL_H instead of invoking AC_CONFIG_LINKS. Needed to allow for a different name of the lib directory. 2003-06-06 Jim Meyering Merge from coreutils. * lib/same.c: (same_name): Declare *_basename locals to be `const'. Consolidate declarations and initializations of *_base* locals. Merge from coreutils. This avoids a core dump on systems without GNU putenv, when running `env -u SOME_ALREADY_UNSET_VARIABLE'. * lib/putenv.c (__set_errno, LOCK, UNLOCK): Define. (unsetenv): New static function, from GNU libc. (rpl_putenv): Use it. * lib/modechange.c: Remove trailing blanks. Merge from coreutils. * lib/fsusage.c: Remove declaration of statfs. It conflicted with one from OSF/1 5.1 in . * lib/posixtm.c: Include unconditionally. 2003-06-06 Jim Meyering * lib/stdbool_.h: Renamed from stdbool.h.in. 2003-06-06 Jim Meyering Bruno Haible * modules/stdbool: Reflect renaming: stdbool.h.in -> stdbool_.h. Adjust Makefile.am snippet not to redirect directly to target. Use $(STDBOOL_H) notation, not @STDBOOL_H@ for AC_REPLACE'd variables. 2003-06-05 Paul Eggert * lib/mktime.c (__mktime_internal): When resolving a tm_isdst mismatch, look in future quarters as well as past. This fixes a bug when processing fall-backwards gaps immediately after a long period of daylight-saving time. * lib/mktime.c: Assume freestanding C89 or better. (HAVE_LIMITS_H): Remove. Assume it's 1. (__P): Remove; not used. (CHAR_BIT, INT_MIN, INT_MAX): Remove; defines them. (mktime, not_equal_tm, print_tm, check_result, main): Use prototypes. Use const * where appropriate. (main): Fix typo in testing code that uncovered by above changes. (Local Variables): Remove -DHAVE_LIMITS_H from compile-command. 2003-06-04 Paul Eggert * m4/human.m4 (gl_HUMAN): Require AM_STDBOOL_H. Check for locale.h, localeconv. This merges changes from coreutils. * m4/mktime.m4 (AC_FUNC_MKTIME): New macro, taken from Autoconf CVS. It can be removed after the next Autoconf is released. * m4/exclude.m4 (gl_EXCLUDE): Don't check for sys/types.h; no loner needed. 2003-06-04 Paul Eggert * lib/mktime.c: Fix Debian bug 177940 . (localtime_offset): Now long int, not time_t, because we want it to be guaranteed to be signed. All uses changed. (__mktime_internal): If overflow would occur when adding offset, don't add it. Merge 'human' changes from coreutils. Rewrite to support locale-specific notations like thousands separators. * lib/human.c: Simplify authorship notice. Include human.h immediately after config.h. , : Do not include; no longer needed. : Do not include, since human.h does. (SIZE_MAX, UINTMAX_MAX): New macros. : Include if HAVE_STRINGS_H, not if !HAVE_STRING_H. : Include if HAVE_LOCALE_H and HAVE_LOCALECONV. (HUMAN_READABLE_SUFFIX_LENGTH_MAX): New macro. (power_letter): Renamed from suffixes. (generate_suffix_backwards): Remove. (adjust_value): Now takes int style (because of human.h changes) and long double value (for greater precision on some platforms). (group_number): New function. (human_readable): Use it. Use integer options, not enum. Put the options before the sizes in the arg list. Support all the new options. The old human_readable function has been removed; use inttostr.h instead. (human_readable, default_block_size, humblock): Use uintmax_t, not int, for block sizes. (human_readable_inexact, block_size_types): Remove. (block_size_opts): New constant. (human_options): Renamed from human_block_size, with new signature that allows block sizes up to UINTMAX_MAX. All callers changed. * lib/human.h: Add copyright and authorship notice. Include and unconditionally. (PARAMS): Remove. All uses removed. (LONGEST_HUMAN_READABLE): Add support for thousands separator. (enum human_inexact_style): Remove tag; now a nameless enum. (human_floor, human_ceiling, human_round_to_even): Now have values 2, 0, 1 rather than -1, 1, 0. (human_group_digits, human_suppress_point_zero, human_autoscale, human_base_1024, human_SI, human_B): New constants. (human_readable_inexact, human_block_size): Remove. (human_readable): Size args are now uintmax_t, not int. (human_options): New decl. * lib/exclude.c: (new_exclude, add_exclude): Remove casts that are unnecessary now that we assume C89 or better. This change imported from coreutils. * lib/mktime.c (__mktime_internal): Do not reject negative timestamps arbitrarily. This is the same patch as 2003-05-28, but it got lost in the 2003-05-30 sync from glibc. .h files should stand alone, but we shouldn't include if we can get away with just . * lib/__fpending.h, addext.c, backupfile.c, exclude.c, getline.c, malloc.c, putenv.c, realloc.c, strcasecmp.c: Include rather than , as we merely need size_t. * lib/dirname.h, memcoll.h, xalloc.h, xmemcoll.h: Include , to get size_t. * lib/hash.h, linebuffer.h, readtokens.h, stdio-safer.h, version-etc.h: Include , to get FILE. * lib/memcasecmp.c: Don't include , as we can assume memcasecmp.h has included and all we need is size_t. * lib/memcoll.c: Include "memcoll.h", which gets us size_t and checks our interface, instead of including 2003-06-04 Paul Eggert * config/srclist.txt ($LIBCSRC/time/mktime.c lib gpl): Comment out for now, as glibc mktime is buggy on non-glibc systems. 2003-06-03 Karl Berry * config/config.sub: update from prep. 2003-06-02 Paul Eggert [from coreutils] Fix some minor time-related bugs with POSIX time arguments. Some valid time stamps were being rejected (notably -1, and time stamps before 1900 on 64-bit hosts). And some invalid time stamps were being accepted, e.g. September 31. * lib/posixtm.h (posixtime): Return bool instead of time_t, so that we can return (time_t) -1 successfully. * lib/posixtm.c: Likewise. [HAVE_STDBOOL_H]: Include . (bool, false, true) [!HAVE_STDBOOL_H]: New type. (t): Remove static var. (year, posix_time_parse): Now takes struct tm * arg to modify, instead of static var. All uses changed. (year): Do not reject years before 1900; they can occur with 64-bit time_t. (posix_time_parse): Do not check for out-of-range components; that is now the caller's responsibility, since our checks were only approximations. (posixtime): Use mktime to check for out-of-range components, since it knows them exactly. If mktime returns (time_t) -1, check whether an error actually occurred by invoking localtime on -1. (main) [TEST_POSIXTIME]: Check for input data errors, and report posixtime failures better. Improve the test data (in comments only). 2003-06-02 Karl Berry * config/mkinstalldirs (version): new variable. (--version): new option. (usage): improve message. 2003-05-30 Karl Berry * lib/mktime.c: update from libc. 2003-05-30 Bruno Haible * modules/gettext: Add files m4/nls.m4 and m4/po.m4. * config/config.rpath: Upgrade to gettext-0.12.1. 2003-05-30 Bruno Haible * m4/gettext.m4: Upgrade to gettext-0.12.1. * m4/nls.m4: New file, from gettext-0.12.1. * m4/po.m4: New file, from gettext-0.12.1. * m4/progtest.m4: Upgrade to gettext-0.12.1. 2003-05-30 Bruno Haible * lib/config.charset: Upgrade to gettext-0.12.1 and libiconv-1.9.1. * lib/localcharset.h: Likewise. * lib/localcharset.c: Likewise. 2003-05-29 Karl Berry * config/config.rpath: update from gettext. 2003-05-28 Paul Eggert Assume the headers required for C89 freestanding compilers. * m4/backupfile.m4 (gl_BACKUPFILE): Don't check for limits.h. * m4/fsusage.m4 (gl_PREREQ_FSUSAGE_EXTRA): Likewise. * m4/human.m4 (gl_HUMAN): Likewise. * m4/pathmax.m4 (gl_PATHMAX): Likewise. * m4/rpmatch.m4 (gl_FUNC_RPMATCH): Likewise. * m4/userspec.m4 (gl_USERSPEC): Likewise. * m4/xreadlink.m4 (gl_XREADLINK): Likewise. * m4/xstrtol.m4 (gl_PREREQ_XSTRTOL): Likewise. * m4/quote.m4 (gl_QUOTE): Don't check for stddef.h. 2003-05-28 Paul Eggert Assume the headers required for C89 freestanding compilers. * lib/addext.c, lib/backupfile.c, lib/fsusage.c, lib/human.c, lib/pathmax.h, lib/rpmatch.c, lib/userspec.c, lib/xreadlink.c, lib/xstrtol.c: Include without checking for HAVE_LIMITS_H. * lib/backupfile.c, lib/fsusage.c, lib/hash.c, lib/human.c, lib/safe-read.c, lib/userspec.c, lib/xstrtol.c (CHAR_BIT): Don't define, since is guaranteed to do that. * lib/fatal.c: Include without checking for __STDC__. * lib/exclude.c: Include unconditionally. * lib/tempname.c: Include unconditionally. * lib/hash.c: Include , since we no longer define CHAR_BIT. * lib/modechange.c, rpmatch.c (NULL): Don't define, since does that. * lib/quote.c: Dont include or ; not needed. * lib/safe-read.c (INT_MAX): Don't define, since does that. * lib/safe-read.c (TYPE_MINIMUM, TYPE_MAXIMUM): Remove; no longer needed. * lib/xstrtol.c: Likewise. * lib/safe-read.c: Remove TYPE_SIGNED; no longer needed. * lib/savedir.c: Include instead of defining NULL. * lib/addext.c (addext): Use assignment rather than cast, to avoid warnings on some platforms. * lib/mktime.c (__mktime_internal): Do not reject negative timestamps arbitrarily. 2003-05-26 Jim Meyering Merge in a change from coreutils: * m4/dirfd.m4 (UTILS_FUNC_DIRFD): Test the cache variable, not one that is guaranteed to be `no'. Use `no_such_member' to indicate that condition, rather than `-1' which is slightly misleading. Change the name of the cache variable to have the gl_ prefix. Prompted by a patch from Richard Dawe for DJGPP. 2003-05-24 Karl Berry * config/config.guess: update from prep. 2003-05-22 Karl Berry * gnulib-tool (func_usage): =LIBRARY not =libRARY in help msg. 2003-05-20 Karl Berry * config/config.guess: update from prep. 2003-05-18 Karl Berry * config/srclistvars.sh (TEXMF): use TEXMFROOT instead, since TEXMF might actually be set by the user. * config/depcomp, install-sh, mdate-sh: update from automake. 2003-05-17 Bruno Haible * m4/dirfd.m4 (UTILS_FUNC_DIRFD): Fix a quoting bug leading to an invalid expansion for AC_EGREP_CPP. * m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Likewise. * m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Likewise. Suggested by Akim Demaille in http://mail.gnu.org/r/bug-autoconf/2003-05/threads.html 2003-05-12 Jim Meyering * lib/strftime.c (my_strftime): Let the `-' (no-pad) flag affect the space-padded-by-default conversion specifiers, %e, %k, %l. 2003-05-12 Bruno Haible * lib/linebreak.c (iconv_string_length): Don't return -1 just because the string is longer than 4 KB. 2003-05-11 Karl Berry * config/config.{guess,sub}: update from prep. 2003-05-09 Bruno Haible * modules/error: Add m4/strerror_r.m4 to file list. 2003-05-03 Bruno Haible Upgrade to Unicode-4.0. * lib/linebreak.c (nonspacing_table_data): Change width of U+00AD, U+0350..U+0357, U+035D..U+035F, U+0600..U+0603, U+0610..U+0615, U+0656..U+0658, U+0A01, U+0AE2..U+0AE3, U+0CBC, U+17B4..U+17B5, U+17DD, U+1920..U+1922, U+1927..U+192B, U+1932, U+1939..U+193B from 1 to 0. Change width of U+0CBF, U+0CC6, U+180E from 0 to 1. (uc_width): Change width of U+4DC0..U+4DFF from 2 to 1. Change width of U+2A6D7..U+2F7FF, U+2FA1E..U+2FFFD, U+30000..U+3FFFD from 1 to 2. Change width of U+E0100..U+E01EF from 1 to 0. 2003-04-25 Jim Meyering * lib/copy-file.c (copy_file_preserving): Declare buf_size to be of type size_t, not int. 2003-04-25 Bruno Haible * lib/copy-file.c: Include , for size_t. 2003-04-21 Paul Eggert * m4/error.m4 (gl_ERROR): Do not put under dynamic conditions some code which expansion is under static control. Patch imported from Akim Demaille's patch to Bison; see . 2003-04-14 Bruno Haible * m4/error.m4 (jm_PREREQ_ERROR): Use AC_FUNC_VPRINTF. 2003-04-11 Jim Meyering Merge changes from Coreutils. 2003-03-22 Jim Meyering * lib/strftime.c (widen): Cast alloca return value to proper type. 2003-01-19 Ulrich Drepper From GNU libc. * lib/strftime.c (my_strftime): Handle very large width specifications for numeric values correctly. Improve checks for overflow. 2003-01-19 Jim Meyering * lib/strftime.c (widen) [COMPILE_WIDE]: Merge nearly-identical definitions. (nl_get_alt_digit) [! defined my_strftime]: Define. (my_strftime) [_NL_CURRENT]: Merge nearly-identical uses of _nl_get_alt_digit and _nl_get_walt_digit. * lib/strftime.c (my_strftime): Merge in locale-related changes from libc. These changes have no effect outside of _LIBC. 2003-04-10 Bruno Haible * modules/findprog: New file. * MODULES.html.sh (func_all_modules): Add it. 2003-04-10 Bruno Haible * m4/findprog.m4: New file. * m4/eaccess.m4: New file. 2003-04-10 Bruno Haible * lib/findprog.h: New file, from GNU gettext. * lib/findprog.c: New file, from GNU gettext. 2003-04-05 Jim Meyering Merge changes from Coreutils. * lib/exclude.h (PARAMS): Remove definition and uses. * lib/exclude.c: Remove uses of `PARAMS'. * lib/dirname.c [TEST_DIRNAME]: Update build instructions for test. Add test-cases for DOS filenames. Declare program_name. (main): Set up program_name. Patch by Rich Dawe. * lib/mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Detect any error from mntctl. Use mntctl's return value to drive the entry-processing loop, since we can't rely on the value of the vmt_length member in the last entry. On some systems doing so could result in exhausting virtual memory. Based in part on a patch from Mike Jetzer. 2003-04-04 Bruno Haible * modules/linebreak: New file. * MODULES.html.sh (func_all_modules): Add it. 2003-04-04 Bruno Haible * m4/linebreak.m4: New file. 2003-04-04 Bruno Haible * lib/linebreak.h: New file, from GNU gettext. * lib/linebreak.c: New file, from GNU gettext with slight modifications. * lib/lbrkprop.h: New file, from GNU gettext. 2003-04-03 Bruno Haible * modules/utf8-ucs4: New file. * modules/utf16-ucs4: New file. * modules/ucs4-utf8: New file. * modules/ucs4-utf16: New file. * MODULES.html.sh (func_all_modules): Add them. 2003-04-03 Bruno Haible * m4/utf-ucs4.m4: New file. * m4/ucs4-utf.m4: New file. 2003-04-03 Bruno Haible * lib/utf8-ucs4.h: New file, from GNU gettext. * lib/utf16-ucs4.h: New file, from GNU gettext. * lib/ucs4-utf8.h: New file, from GNU gettext. * lib/ucs4-utf16.h: New file, from GNU gettext. 2003-04-02 Bruno Haible * modules/binary-io: New file. * MODULES.html.sh (func_all_modules): Add it. 2003-04-02 Bruno Haible * lib/binary-io.h: New file, from GNU gettext. 2003-04-01 Bruno Haible * modules/pathname: New file. * MODULES.html.sh (func_all_modules): Add it. 2003-04-01 Bruno Haible * lib/pathname.h: New file, from GNU gettext. * lib/concatpath.c: New file, from GNU gettext. 2003-03-30 Bruno Haible * m4/copy-file.m4 (gl_COPY_FILE): Add check for chown(). 2003-03-30 Bruno Haible * lib/copy-file.c (copy_file_preserving): Don't set owner if the function chown() doesn't exist. 2003-03-28 Bruno Haible * modules/copy-file: New file. * MODULES.html.sh (func_all_modules): Add it. 2003-03-28 Bruno Haible * m4/copy-file.m4: New file. 2003-03-28 Bruno Haible * lib/copy-file.h: New file, from GNU gettext. * lib/copy-file.c: New file, from GNU gettext. 2003-03-18 Jim Meyering * lib/quote.c (quote_n): Fix typo in comment. 2003-03-18 Bruno Haible * m4/onceonly.m4: Use m4_defn instead of defn, for better error checking. * m4/onceonly_2_57.m4: Likewise. 2003-03-17 Bruno Haible * m4/onceonly.m4: Require autoconf 2.54 or newer. (m4_quote): Remove macro. * m4/onceonly_2_57.m4: Require autoconf 2.54 or newer. 2003-03-14 Jim Meyering Merge changes from Coreutils. * lib/obstack.h (obstack_object_size): Declare temporary, __o, to be const, in order to avoid warnings. (obstack_room): Likewise. (obstack_empty_p): Likewise. 2003-03-14 Bruno Haible * m4/onceonly_2_57.m4 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE): Quote AC_FOREACH variable-expansions properly. 2003-03-13 Paul Eggert Merge changes from Bison. * lib/obstack.h: (__INT_TO_PTR) [__STDC__]: Cast result to (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5 when compiling Bison 1.875's `bitset bset = obstack_alloc (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe. * lib/hash.c: Include unconditionally. 2003-03-13 Paul Eggert * m4/onceonly.m4 (m4_quote): New macro. (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE): Quote AC_FOREACH variable-expansions properly. 2003-03-13 Paul Eggert * doc/COPYING.DOC, fdl.texi: Sync with latest FSF version. 2003-03-09 Paul Eggert * lib/argmatch.c (EXIT_FAILURE): Define if the system doesn't. Reported by Bruce Becker; see: http://mail.gnu.org/r/bug-bison/2003-03/msg00017.html 2003-03-03 Paul Eggert Bruno Haible * lib/mbswidth.h: Include . Needed for UnixWare 7.1.1. Reported by John Hughes, see http://mail.gnu.org/r/bug-bison/2003-02/msg00030.html 2003-02-20 Bruno Haible * MODULES.html.sh (func_all_modules): Add poll. 2003-02-19 Paolo Bonzini * modules/poll: New file. 2003-02-19 Paolo Bonzini * lib/poll_.h: New file. * lib/poll.c: New file. 2003-02-19 Paolo Bonzini * m4/poll.m4: New file. 2003-02-18 Paolo Bonzini * modules/mathl: New file. 2003-02-18 Paolo Bonzini * lib/mathl.h: New file. * lib/acosl.c: New file. * lib/asinl.c: New file. * lib/atanl.c: New file. * lib/ceill.c: New file. * lib/cosl.c: New file. * lib/expl.c: New file. * lib/floorl.c: New file. * lib/frexpl.c: New file. * lib/ldexpl.c: New file. * lib/logl.c: New file. * lib/sincosl.c: New file. * lib/sinl.c: New file. * lib/sqrtl.c: New file. * lib/tanl.c: New file. * lib/trigl.c: New file. * lib/trigl.h: New file. 2003-02-18 Paolo Bonzini * m4/mathl.m4: New file. 2003-02-18 Bruno Haible * MODULES.html.sh (func_all_modules): Add mathl. 2003-02-17 Bruno Haible * modules/mkdtemp: New module. * MODULES.html.sh (func_all_modules): Add it. 2003-02-17 Bruno Haible * m4/mkdtemp.m4: New file, from GNU gettext with modifications. 2003-02-17 Bruno Haible * lib/mkdtemp.h: New file, from GNU gettext. * lib/mkdtemp.c: New file, from GNU gettext. 2003-02-02 Jim Meyering * m4/regex.m4 (jm_INCLUDED_REGEX): Detect broken re_search in e.g. glibc-2.2.93. 2003-01-31 Bruno Haible * m4/rename.m4 (vb_FUNC_RENAME): Add a redirection from 'rename' to 'rpl_rename'. * m4/strnlen.m4 (gl_FUNC_STRNLEN): Add a redirection from 'strnlen' to 'rpl_strnlen'. * m4/strtod.m4 (gl_FUNC_STRTOD): Add a redirection from 'strtod' to 'rpl_strtod'. * m4/utime.m4 (jm_FUNC_UTIME): Add a redirection from 'utime' to 'rpl_utime'. 2003-01-31 Bruno Haible * lib/rename.c: #undef rename before defining rpl_rename. * lib/strnlen.c: #undef strnlen, define rpl_strnlen instead of strnlen. 2003-01-30 Bruno Haible * modules/vasnprintf, modules/vasprintf: New modules. * MODULES.html.sh (func_all_modules): Add them. 2003-01-30 Bruno Haible * m4/signed.m4: New file, from GNU gettext. * m4/longdouble.m4: New file, from GNU gettext. * m4/wchar_t.m4: New file, from GNU gettext. * m4/wint_t.m4: New file, from GNU gettext. * m4/vasnprintf.m4: New file. * m4/vasprintf.m4: New file. 2003-01-30 Bruno Haible * lib/printf-args.h: New file, from GNU gettext. * lib/printf-args.c: New file, from GNU gettext. * lib/printf-parse.h: New file, from GNU gettext. * lib/printf-parse.c: New file, from GNU gettext. * lib/vasnprintf.h: New file, from GNU gettext. * lib/vasnprintf.c: New file, from GNU gettext. * lib/asnprintf.c: New file, from GNU gettext. * lib/vasprintf.h: New file, from GNU gettext with modifications. * lib/vasprintf.c: New file, from GNU gettext. * lib/asprintf.c: New file, from GNU gettext. 2003-01-29 Bruno Haible * modules/stpncpy: New module. * MODULES.html.sh (func_all_modules): Add it. 2003-01-29 Bruno Haible * m4/stpncpy.m4: New file. 2003-01-29 Bruno Haible * lib/stpncpy.h: New file, from GNU gettext with modifications. * lib/stpncpy.c: New file, from GNU gettext with modifications. 2003-01-28 Bruno Haible * modules/c-ctype: New module. * MODULES.html.sh (func_all_modules): Add it. 2003-01-28 Bruno Haible * lib/c-ctype.h: New file, from GNU gettext, with changes suggested by Paul Eggert. * lib/c-ctype.c: New file, from GNU gettext, with changes suggested by Paul Eggert. 2003-01-27 Bruno Haible * modules/xsetenv: New module. * MODULES.html.sh (func_all_modules): Add it. 2003-01-27 Bruno Haible * lib/xsetenv.h: New file, from GNU gettext. * lib/xsetenv.c: New file, from GNU gettext. 2003-01-23 Jim Meyering * m4/dirfd.m4 (UTILS_FUNC_DIRFD): Correct typo: s/-1/no/ that kept this from working on systems without dirfd (at least Irix and OSF1/Tru64). 2003-01-23 Bruno Haible * modules/minmax: New module. * MODULES.html.sh (func_all_modules): Add it. 2003-01-23 Bruno Haible * lib/minmax.h: New file, from GNU gettext, with comments from Paul Eggert. 2003-01-22 Bruno Haible * modules/exit: New module. * MODULES.html.sh (func_all_modules): Add it. 2003-01-22 Bruno Haible * lib/exit.h: New file, from GNU gettext. 2003-01-19 Bruno Haible * gnulib-tool: Recognize option --extract-maintainer. (func_get_maintainer): New function. * modules/*: Add Maintainer entry. 2003-01-16 Jim Meyering * m4/regex.m4: The `regex' struct is both input and output. Initialize it before each use. Patch by Tim Waugh. 2003-01-16 Bruno Haible * MODULES.html.sh: Add a table of contents. Add the module name as leftmost column. Add hyperlinks. 2003-01-15 Bruno Haible * m4/md5.m4 (gl_MD5): Require AC_C_INLINE. 2003-01-15 Bruno Haible * m4/longlong.m4 (jm_AC_TYPE_LONG_LONG): Also test the LL suffix. * m4/ulonglong.m4 (jm_AC_TYPE_UNSIGNED_LONG_LONG): Also test the ULL suffix. 2003-01-15 Bruno Haible * m4/alloca.m4 (gl_FUNC_ALLOCA): Invoke AC_EGREP_CPP prerequisites. 2003-01-15 Bruno Haible * lib/stpcpy.h (stpcpy): Use ANSI C function declarations. * lib/strcase.h (strcasecmp, strncasecmp): Likewise. 2003-01-14 Jim Meyering * lib/same.c (same_name): Tweak a comment. 2003-01-14 Bruno Haible * lib/same.c (same_name): Reorder tests so as to avoid calling stat() when a string comparison is sufficient. 2003-01-14 Bruno Haible * lib/readtokens.c (readtoken): Cast character to 'unsigned char', not 'unsigned int'. 2003-01-14 Bruno Haible * lib/hash-pjw.c: Add comment about low quality of this function. 2003-01-13 Bruno Haible * modules/stpcpy: Distribute lib/stpcpy.h. * modules/setenv: Depend on alloca. Distribute lib/setenv.h. 2003-01-13 Bruno Haible * modules/*: Add a description. * modules/strpbrk: Fix Makefile.am snippet. * modules/strtoimax: Fix dependencies. * modules/strtoumax: Likewise. 2003-01-13 Bruno Haible * gnulib-tool (func_create_testdir): Substitute lib_OBJECTS. * modules/alloca (Makefile.am): All object files depend on alloca.h. * modules/stdbool (Makefile.am): All object files depend on stdbool.h. 2003-01-13 Bruno Haible * gnulib-tool (func_create_testdir): Store config/* files in the main directory. * config.rpath: Move to ... * config/config.rpath: ... here. * modules/gettext: Contains config/config.rpath, not config.rpath. * modules/iconv: Likewise. 2003-01-12 Paul Eggert Finish renaming getstr -> getdelim2 and readline -> readlinebuffer, to avoid collisions with libcurses and libreadline. * m4/getstr.m4: Remove. * m4/getline.m4 (gl_PREREQ_GETLINE): Require AC_HEADER_STDC. 2003-01-12 Paul Eggert Finish renaming getstr -> getdelim2 and readline -> readlinebuffer, to avoid collisions with libcurses and libreadline. * lib/Makefile.am (libfetish_a_SOURCES): Remove getstr.c, getstr.h. * lib/getstr.h, getstr.c: Remove. * lib/getline.c: Include "getline.h", to check interface. Move body of old getstr.c here: this defines MIN_CHUNK and declares getdelim2, which is renamed from getstr. (getline, getdelim): Adjust to renaming of getstr -> getdelim2. * lib/linebuffer.c (readlinebuffer): Renamed from readline. All uses changed. * lib/linebuffer.h: Likewise. (readline): Remove backward-compatibility macro. 2003-01-12 Paul Eggert Finish renaming getstr -> getdelim2 and readline -> readlinebuffer, to avoid collisions with libcurses and libreadline. * getstr: Remove. * MODULES.html.sh: Remove getstr. * modules/getline: Depend on unlocked-io, not getstr. 2003-01-12 Jim Meyering * lib/makepath.c: Don't test HAVE_ERRNO_H. It's not necessary. 2003-01-10 Bruno Haible * modules/alloca: Change Makefile.am requirements. Simplify Include requirements. Add lib/alloca_.h to file list. 2003-01-10 Bruno Haible * m4/alloca.m4 (gl_FUNC_ALLOCA): Also define ALLOCA_H. 2003-01-10 Bruno Haible * lib/alloca_.h: New file. * lib/getdate.y: Unconditionally include alloca.h. * lib/makepath.c: Likewise. * lib/setenv.c: Likewise. * lib/userspec.c: Likewise. 2003-01-09 Karl Berry * MODULES.html.sh: include `dirname $0` in PATH, to find gnulib-tool. 2003-01-09 Bruno Haible * modules/stdbool: Change configure.ac, Makefile.am requirements. Simplify Include requirements. Add lib/stdbool.h.in to file list. 2003-01-09 Bruno Haible * m4/stdbool.m4 (AM_STDBOOL_H): New macro. 2003-01-09 Bruno Haible * lib/stdbool.h.in: New file. 2003-01-09 Bruno Haible * gnulib-tool (func_all_modules): Ignore files ending in ~. * MODULES.html.sh: Likewise. 2003-01-08 Jim Meyering * lib/full-write.c: Undefine and define-away `const' after inclusion of errno.h, not before. Suggestion from Bruno Haible. 2003-01-08 Bruno Haible * modules/full-read: Depend on full-write. 2003-01-08 Bruno Haible * lib/safe-read.c: Include specification header first, to ensure its selfcontainedness. * lib/full-write.c: Likewise. 2003-01-07 Jim Meyering * lib/full-write.c: Rework so that it may serve to define full_read, too. * lib/full-read.c: Simply #define FULL_READ and include full-write.c. 2003-01-07 Bruno Haible * lib/strtoimax.c: Include as an alternative to . * lib/xstrtol.h: Likewise. * lib/xstrtoimax.c: Likewise. * lib/xstrtoumax.c: Likewise. * lib/human.h: Likewise. * lib/tempname.c: Include too. Avoids a compilation error on systems that have but not . 2003-01-07 Bruno Haible * MODULES.html.sh: Add copyright notice. (missed_files): Omit CVS directory entries. (func_module): Make it work with sed-3.02. * MODULES.txt: Remove file. 2003-01-06 Jim Meyering * lib/version-etc.c: Update year in translatable copyright string. 2003-01-03 Karl Berry * config/config.{guess,sub}: update from prep. 2003-01-02 Karl Berry * doc/COPYING.DOC: belatedly updated to 1.2. 2003-01-01 Karl Berry * gnulib-tool (func_verify_module): report module name $module in error message, not $1. * gnulib-tool (create-testdir): don't complain if destdir couldn't be created, only if it doesn't exist. * gnulib-tool (last_checkin_date): don't expand the $Date here. 2002-12-31 Paul Eggert * m4/memcoll.m4 (gl_MEMCOLL): Require AC_FUNC_MEMCMP. 2002-12-31 Paul Eggert * lib/memcoll.c (memcoll): Fall back on a simple algorithm using memcmp if strcoll doesn't work. 2002-12-31 Bruno Haible * lib/utime.c (utime_null): No need to call ftruncate if the file was nonempty. 2002-12-31 Bruno Haible * lib/memcoll.c (STRCOLL): New macro. (memcoll): Use it. 2002-12-31 Bruno Haible * lib/localcharset.h: New file. * lib/localcharset.c: Include it. * lib/unicodeio.c: Likewise. 2002-12-31 Bruno Haible * lib/getstr.h (getstr): Define, to avoid clash with libcurses. * lib/linebuffer.h (readline): Define, to avoid clash with libreadline. 2002-12-31 Bruno Haible * lib/getline.h: Include , for size_t. * lib/unicodeio.h: Include , for size_t. * lib/unicodeio.c: Don't include . 2002-12-31 Bruno Haible * lib/getdate.y (get_date): Test HAVE_STRUCT_TM_TM_ZONE, not HAVE_TM_ZONE. 2002-12-24 Karl Berry * config/config.guess: update from prep. 2002-12-24 Bruno Haible General infrasructure. * m4/README: Rewritten. * m4/onceonly.m4: New file. * m4/onceonly_2_57.m4: New file. Module atexit. * m4/atexit.m4: New file. Module strtod. * m4/strtod.m4: New file. Module strtol. * m4/strtol.m4: New file. Module strtoul. * m4/strtoul.m4: New file. Module memchr. * m4/memchr.m4: New file. Module memcmp. * m4/memcmp.m4 (gl_PREREQ_MEMCMP): New macro. (jm_FUNC_MEMCMP): Invoke it. Module memcpy. * m4/memcpy.m4: New file. Module memmove. * m4/memmove.m4: New file. Module memset. * m4/memset.m4: New file. Module strcspn. * m4/strcspn.m4: New file. Module strpbrk. * m4/strpbrk.m4: New file. Module strstr. * m4/strstr.m4: New file. Module strerror. * m4/strerror.m4: New file. Module mktime. * m4/mktime.m4: Renamed from jm-mktime.m4. (gl_PREREQ_MKTIME): New macro. (gl_FUNC_MKTIME): Renamed from jm_FUNC_MKTIME. Invoke gl_PREREQ_MKTIME. Module malloc. * m4/malloc.m4 (gl_PREREQ_MALLOC): New macro. (jm_FUNC_MALLOC): Use AC_FUNC_MALLOC. Invoke gl_PREREQ_MALLOC. Don't define HAVE_DONE_WORKING_MALLOC_CHECK, since nothing uses it. Module realloc. * m4/realloc.m4 (gl_PREREQ_REALLOC): New macro. (jm_FUNC_REALLOC): Use AC_FUNC_REALLOC. Invoke gl_PREREQ_REALLOC. Don't define HAVE_DONE_WORKING_REALLOC_CHECK, since nothing uses it. Module strftime. * m4/tm_gmtoff.m4: New file, extracted from strftime.m4. * m4/strftime.m4 (_jm_STRFTIME_PREREQS): Use AC_FUNC_STRFTIME. Don't test for bcopy (we are not emacs). Invoke AC_TYPE_MBSTATE_T and gl_TM_GMTOFF. (_jm_STRFTIME_PREREQS, jm_FUNC_GNU_STRFTIME): Use onceonly macros. Module xalloc. * m4/xalloc.m4: New file. Module alloca. * m4/alloca.m4: New file. Module putenv. * m4/putenv.m4 (gl_PREREQ_PUTENV): New macro. (jm_FUNC_PUTENV): Invoke it. Module setenv. * m4/setenv.m4 (gt_FUNC_SETENV): New macro. (gt_CHECK_VAR_DECL): Fix quoting error that led to infinite loop in m4 when invoked twice. (gt_PREREQ_SETENV, gt_PREREQ_UNSETENV): New macros, replacing old gt_FUNC_SETENV. Module memrchr. * m4/memrchr.m4: New file. Module stpcpy. * m4/stpcpy.m4: New file. Module strcase. * m4/strcase.m4: New file. Module strdup. * m4/strdup.m4: New file. Module strnlen. * m4/strnlen.m4: New file. Module strndup. * m4/strndup.m4: New file. Module xstrtod. * m4/xstrtod.m4: New file. Module xstrtol. * m4/xstrtol.m4: New file. Module getdate. * m4/getdate.m4: New file. Module unlocked-io. * m4/unlocked-io.m4: Renamed from jm-glibc-io.m4. (jm_FUNC_GLIBC_UNLOCKED_IO): Invoke AC_GNU_SOURCE. Use onceonly macros. * m4/jm-glibc-io.m4n: Remove file. Module long-options. * m4/long-options.m4: New file. Module md5. * m4/md5.m4: New file. Module sha. * m4/sha.m4: New file. Module getstr. * m4/getstr.m4: New file. Module getline. * m4/getline.m4 (gl_PREREQ_GETLINE): New macro. (AM_FUNC_GETLINE): Invoke AC_GNU_SOURCE. Use , not , for size_t. Use the function name gnu_getline, not simply getline. Infoke gl_PREREQ_GETLINE. Module obstack. * m4/obstack.m4: New file. Module hash. * m4/hash.m4: New file. Module readtokens. * m4/readtokens.m4: New file. Module strverscmp. * m4/strverscmp.m4: New file. Module stdbool. * m4/stdbool.m4 (AC_HEADER_STDBOOL): Add test for _Bool. Needed for OSF/1. Module strtoll. * m4/strtoll.m4: New file. Module strtoull. * m4/strtoull.m4: New file. Module strtoimax. * m4/strtoimax.m4: New file. Module strtoumax. * m4/strtoumax.m4: New file. Module xstrtoimax. * m4/xstrtoimax.m4 (jm_XSTRTOIMAX): Renamed from jm_AC_PREREQ_XSTRTOIMAX. Moved the strtol prerequisites to strtol.m4. Moved the strtoll prerequisites to strtoll.m4. Moved the strtoimax prerequisites to strtoimax.m4. Module xstrtoumax. * m4/xstrtoumax.m4 (jm_XSTRTOUMAX): Renamed from jm_AC_PREREQ_XSTRTOUMAX. Moved the strtoul prerequisites to strtoul.m4. Moved the strtoull prerequisites to strtoull.m4. Moved the strtoumax prerequisites to strtoumax.m4. Module chown. * m4/chown.m4 (gl_PREREQ_CHOWN): New macro. (jm_FUNC_CHOWN): Use AC_FUNC_CHOWN. Invoke gl_PREREQ_CHOWN. Module dup2. * m4/dup2.m4: New file. Module ftruncate. * m4/ftruncate.m4 (gl_PREREQ_FTRUNCATE): New macro. (jm_FUNC_FTRUNCATE): Use AC_REPLACE_FUNCS. Invoke gl_PREREQ_FTRUNCATE. Module getgroups. * m4/getgroups.m4 (gl_PREREQ_GETGROUPS): New macro. (jm_FUNC_GETGROUPS): Use AC_FUNC_GETGROUPS. Invoke gl_PREREQ_GETGROUPS. Module gettimeofday. * m4/gettimeofday.m4 (gl_PREREQ_GETTIMEOFDAY): New macro. (AC_FUNC_GETTIMEOFDAY_CLOBBER): Use onceonly macros. Invoke gl_PREREQ_GETTIMEOFDAY. Module mkdir. * m4/mkdir-slash.m4 (gl_PREREQ_MKDIR): New macro. (UTILS_FUNC_MKDIR_TRAILING_SLASH): Invoke gl_PREREQ_MKDIR. Module mkstemp. * m4/mkstemp.m4 (gl_PREREQ_MKSTEMP): New macro. (jm_PREREQ_TEMPNAME): New macro, from prereq.m4. Also invoke jm_AC_TYPE_UINTMAX_T. (UTILS_FUNC_MKSTEMP): Invoke gl_PREREQ_MKSTEMP and jm_PREREQ_TEMPNAME. Module stat. * m4/stat.m4 (gl_PREREQ_STAT): New macro. (jm_FUNC_STAT): Use AC_FUNC_STAT. Invoke gl_PREREQ_STAT. Module lstat. * m4/lstat.m4 (gl_PREREQ_LSTAT): New macro. (jm_FUNC_LSTAT): Use AC_FUNC_LSTAT. Invoke gl_PREREQ_LSTAT. Module timespec. * m4/timespec.m4 (gl_TIMESPEC): New macro. (jm_CHECK_TYPE_STRUCT_TIMESPEC): Add check for . * m4/st_mtim.m4: Indentation. Module nanosleep. * m4/nanosleep.m4 (gl_PREREQ_NANOSLEEP): New macro. (jm_FUNC_NANOSLEEP): Add check for . Invoke gl_PREREQ_NANOSLEEP. Module regex. * m4/regex.m4 (jm_PREREQ_REGEX): New macro. (jm_INCLUDED_REGEX): Invoke jm_PREREQ_REGEX. (gl_REGEX): New macro. Module rename. * m4/rename.m4 (gl_PREREQ_RENAME): New macro. (vb_FUNC_RENAME): Invoke gl_PREREQ_RENAME. Module rmdir. * m4/rmdir.m4: New file. Module utime. * m4/utimbuf.m4 (jm_CHECK_TYPE_STRUCT_UTIMBUF): Use onceonly macros. * m4/utime.m4 (gl_PREREQ_UTIME): New macro. (jm_FUNC_UTIME): Invoke gl_PREREQ_UTIME. Module dirname. * m4/dirname.m4: New file. Module getopt. * m4/getopt.m4: New file. Module unistd-safer. * m4/unistd-safer.m4: New file. Module fnmatch. * m4/fnmatch.m4 (_AC_FUNC_FNMATCH_IF): Include , for exit() declaration. (gl_PREREQ_FNMATCH_EXTRA): New macro. (gl_FUNC_FNMATCH_POSIX): New macro. (gl_FUNC_FNMATCH_GNU): Renamed from AC_FUNC_FNMATCH_GNU. Invoke gl_PREREQ_FNMATCH_EXTRA. Use the function name gnu_fnmatch, not simply fnmatch. Module exclude. * m4/exclude.m4: New file. Module human. * m4/human.m4: New file. Module acl. * m4/acl.m4: Nop. Module backupfile. * m4/backupfile.m4: New file. * m4/d-ino.m4: Indentation. Module fsusage. * m4/fsusage.m4 (gl_FSUSAGE): New macro. (jm_STATFS_TRUNCATES): New macro, from coreutils-4.5.4/configure.ac. (gl_PREREQ_FSUSAGE_EXTRA): New macro. Module dirfd. * m4/dirfd.m4 (UTILS_FUNC_DIRFD): Invoke some AC_EGREP_CPP requirements. Module euidaccess. * m4/euidaccess.m4: New file. Module file-type. * m4/file-type.m4: New file. Module fileblocks. * m4/fileblocks.m4: New file. Module filemode. * m4/filemode.m4: New file. Module isdir. * m4/isdir.m4: New file. Module lchown. * m4/lchown.m4 (gl_PREREQ_LCHOWN): New macro. (jm_FUNC_LCHOWN): Invoke gl_PREREQ_LCHOWN. Module makepath. * m4/makepath.m4: New file. Module modechange. * m4/modechange.m4: New file. Module mountlist. * m4/mountlist.m4: New file. * m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): Use onceonly macros. Indentation. Module path-concat. * m4/path-concat.m4: New file. Module pathmax. * m4/pathmax.m4: New file. Module same. * m4/same.m4: New file. Module save-cwd. * m4/save-cwd.m4: New file. Module savedir. * m4/savedir.m4: New file. Module xgetcwd. * m4/xgetcwd.m4: New file. * m4/getcwd.m4 (AC_FUNC_GETCWD_NULL): Use onceonly macros. Module xreadlink. * m4/xreadlink.m4: New file. Module safe-read. * m4/safe-read.m4: New file. Module safe-write. * m4/safe-write.m4: New file. Module closeout. * m4/closeout.m4: New file. Module stdio-safer. * m4/stdio-safer.m4: New file. Module getpass. * m4/getpass.m4: New file. Module getugroups. * m4/getugroups.m4: New file. Module group-member. * m4/group-member.m4 (gl_PREREQ_GROUP_MEMBER): New macro. (jm_FUNC_GROUP_MEMBER): Invoke AC_GNU_SOURCE, gl_PREREQ_GROUP_MEMBER. Module idcache. * m4/idcache.m4: New file. Module userspec. * m4/userspec.m4: New file. Module gettime. * m4/clock_time.m4: New file. * m4/gettime.m4: New file. Module settime. * m4/settime.m4: New file. Module posixtm. * m4/posixtm.m4: New file. Module gethostname. * m4/gethostname.m4: New file. Module canon-host. * m4/canon-host.m4: New file. Module gettext. * m4/codeset.m4: New file, from gettext-0.11.5. * m4/gettext.m4: New file, from gettext-0.11.5. * m4/glibc21.m4: New file, from gettext-0.11.5. * m4/iconv.m4: New file, from gettext-0.11.5. * m4/intdiv0.m4: New file, from gettext-0.11.5. * m4/inttypes-pri.m4: New file, from gettext-0.11.5. * m4/inttypes.m4: New file, from gettext-0.11.5. * m4/inttypes_h.m4: New file, from gettext-0.11.5 with modifications. * m4/isc-posix.m4: New file, from gettext-0.11.5. * m4/lcmessage.m4: New file, from gettext-0.11.5. * m4/lib-ld.m4: New file, from gettext-0.11.5. * m4/lib-link.m4: New file, from gettext-0.11.5. * m4/lib-prefix.m4: New file, from gettext-0.11.5. * m4/progtest.m4: New file, from gettext-0.11.5. * m4/stdint_h.m4: New file, from gettext-0.11.5 with modifications. * m4/uintmax_t.m4: New file, from gettext-0.11.5 with modifications. * m4/ulonglong.m4: New file, from gettext-0.11.5 with modifications. Module localcharset. * m4/localcharset.m4: New file. Module hard-locale. * m4/hard-locale.m4: New file. Module mbswidth. * m4/mbswidth.m4 (gl_MBSWIDTH): Renamed from jm_PREREQ_MBSWIDTH. Use onceonly macros. * m4/mbrtowc.m4: Add comment. Module memcasecmp. * m4/memcasecmp.m4: New file. Module memcoll. * m4/memcoll.m4: New file. Module unicodeio. * m4/unicodeio.m4: New file. Module rpmatch. * m4/rpmatch.m4: New file. Module yesno. * m4/yesno.m4: New file. Module exitfail. * m4/exitfail.m4: New file. Module c-stack. * m4/c-stack.m4 (gl_C_STACK): New macro. (jm_PREREQ_C_STACK): Check for . Use onceonly macros. Module error. * m4/error.m4 (gl_ERROR): New macro. (jm_PREREQ_ERROR): Use onceonly macros. Module fatal. * m4/fatal.m4: New file. Module getloadavg. * m4/getloadavg.m4 (AC_FUNC_GETLOADAVG): Use onceonly macros. (gl_FUNC_GETLOADAVG, gl_PREREQ_GETLOADAVG): New macros. Module getpagesize. * m4/getpagesize.m4: New file. Module getusershell. * m4/getusershell.m4: New file. Module physmem. * m4/physmem.m4: New file. Module posixver. * m4/posixver.m4: New file. Module quotearg. * m4/quotearg.m4: New file. Module quote. * m4/quote.m4: New file. Module readutmp. * m4/readutmp.m4: New file, based on jm_PREREQ_READUTMP from prereq.m4. Module sig2str. * m4/sig2str.m4: New file. Other. * m4/longlong.m4 (jm_AC_TYPE_UNSIGNED_LONG_LONG): Remove, moved to ulonglong.m4. * m4/intmax_t.m4: New file. * m4/d-type.m4: Indentation. * m4/jm-macros.m4: Update. * m4/prereq.m4 (jm_PREREQ): Update. (jm_PREREQ_ADDEXT): Remove, obsoleted by backupfile.m4. (jm_PREREQ_CANON_HOST): Remove, obsoleted by canon-host.m4. (jm_PREREQ_DIRNAME): Remove, obsoleted by dirname.m4. (jm_PREREQ_EXCLUDE): Remove, obsoleted by exclude.m4. (jm_PREREQ_GETPAGESIZE): Remove, obsoleted by getpagesize.m4. (jm_PREREQ_HARD_LOCALE): Remove, obsoleted by hard-locale.m4. (jm_PREREQ_HASH): Remove, obsoleted by hash.m4. (jm_PREREQ_HUMAN): Remove, obsoleted by human.m4. (jm_PREREQ_MEMCHR): Remove, obsoleted by memchr.m4. (jm_PREREQ_PHYSMEM): Remove, obsoleted by physmem.m4. (jm_PREREQ_POSIXVER): Remove, obsoleted by posixver.m4. (jm_PREREQ_QUOTEARG): Remove, obsoleted by quotearg.m4. (jm_PREREQ_READUTMP): Remove, obsoleted by readutmp.m4. (jm_PREREQ_REGEX): Remove, obsoleted by regex.m4. (jm_PREREQ_STRNLEN): Remove, obsoleted by strnlen.m4. (jm_PREREQ_TEMPNAME): Remove, obsoleted by mkstemp.m4. (jm_PREREQ_XGETCWD): Remove, obsoleted by xgetcwd.m4. (jm_PREREQ_XREADLINK): Remove, obsoleted by xreadlink.m4. * m4/readdir.m4 (jm_FUNC_READDIR): Use onceonly macros. 2002-12-24 Bruno Haible * MODULES.txt: Update according to m4/ changes. Module gettext. * config.rpath: New file, from gettext-0.11.5. * modules/*: New module descriptions. * gnulib-tool: New file. * MODULES.html.sh: New file. 2002-12-21 Karl Berry * doc/fdl.texi: update to version 1.2. 2002-12-19 Karl Berry * config/config.guess: update from prep. 2002-12-18 Bruno Haible * m4/strftime.m4 (_jm_STRFTIME_PREREQS): Don't test for localtime_r. * m4/jm-mktime.m4 (jm_FUNC_MKTIME): Likewise. 2002-12-17 Bruno Haible * m4/mbswidth.m4 (jm_PREREQ_MBSWIDTH): Remove checks for limits.h, stdlib.h, string.h. 2002-12-17 Bruno Haible * lib/canon-host.c (strdup): Remove unused declaration. * lib/fsusage.c: Include full_read.h. (get_fs_usage): Use full_read instead of safe_read. * lib/utime.c (utime_null): Use SAFE_READ_ERROR. 2002-12-12 Karl Berry * config/config.guess: update from prep. 2002-12-11 Bruno Haible * m4/setenv.m4: New file, from gettext-0.11.5. 2002-12-11 Bruno Haible * lib/setenv.h: Rewritten to cope with systems that have setenv() but not unsetenv(). * lib/setenv.c, unsetenv.c: Taken from glibc-2.2.4 with the following modifications: 2002-12-11 Bruno Haible * setenv.c (alloca): Fall back to malloc. (freea): New macro. (setenv): Use freea() to free memory allocated with alloca(). 2002-11-13 Bruno Haible * setenv.c (compar_fn_t, __add_to_environ, setenv): Use ANSI C function declarations. * unsetenv.c (unsetenv): Likewise. 2002-03-04 Bruno Haible Portability to AIX 4.3.3. * unsetenv.c: New file, extracted from setenv.c. * setenv.c: Move the unsetenv() function to unsetenv.c. 2001-12-20 Bruno Haible * setenv.c (__add_to_environ): Don't call realloc(NULL,...), use malloc instead. For SunOS 4. 2001-12-11 Bruno Haible * setenv.c: Declare alloca. (compar_fn_t): New typedef. (KNOWN_VALUE, STORE_VALUE): Use it. * lib/Makefile.am (libfetish_a_SOURCES): Add setenv.c, unsetenv.c, setenv.h. 2002-12-10 Paul Eggert Port exclude.c and exclude.h to more non-GNU systems, e.g. Solaris 7. * lib/exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE, EXCLUDE_WILDCARDS): Choose values that are less likely to collide with system fnmatch options. * lib/exclude.c (FNM_CASEFOLD, FNM_LEADING_DIR): Define to 0 if not defined (e.g., a pure POSIX system). (EXCLUDE_macros_do_not_collide_with_FNM_macros): Use FNM_PATHNAME instead of FNM_FILE_NAME, for compatibility with pure POSIX sytems. 2002-12-06 Paul Eggert Undo the 2001-07-02 change for jm-glibc-io, as it was too much of a pain in practice to deal with generated m4 files. This change goes together with the 2002-12-04 unlocked-io.h change in ../lib. * m4/Makefile.am.in (Makefile.am): Don't mention jm-glibc-io.m4n and jm-glibc-io.m4, as they are no longer a special case. * m4/jm-glibc-io.m4: Rename from jm-glibc-io.m4n, and remove the kludge and the auto-generation stuff. Check only whether the functions are declared, not whether they exist, since older hosts that don't declare the functions can't use the optimization anyway. 2002-12-06 Jim Meyering * lib/error.c: Be consistent: change `#ifndef _LIBC' to `#if !_LIBC'. Merge in changes from libc's misc/error.c, in preparation for the merge of gnulib's changes back into libc. * lib/error.c (_): Define only if not already defined. Move definition to follow all #include directives. Include unlocked-io.h only if !_LIBC. [_LIBC]: Include . [USE_IN_LIBIO]: Include (fflush): Tweak definition to use INTUSE. (putc): Define. 2002-12-05 Paul Eggert * lib/alloca.c [defined emacs]: Include "lisp.h". (xalloc_die) [defined emacs]: New macro. (free) [defined emacs && defined EMACS_FREE]: Define to EMACS_FREE. [! defined emacs]: Include . (POINTER_TYPE) [!defined POINTER_TYPE]: New macro. (pointer): Typedef to POINTER_TYPE *. (malloc): Remove decl; we now always use xmalloc. (alloca): Use old-style definition, since Emacs needs this. Check for arithmetic overflow when computing combined size. 2002-12-04 Paul Eggert Do not generate unlocked-io.h automatically, since it's easier to maintain it by hand. * lib/unlocked-io.h: New file, from GNU diffutils, but with proper copyright notice and attribution. * lib/gen-uio: Remove. * lib/Makefile.am: Add copyright notice. (libfetish_a_SOURCES): Add unlocked-io.h. (BUILT_SOURCES, all-local): Remove unlocked-io.h. (DISTCLEANFILES, io_functions): Remove macros. (EXTRA_DIST): Remove gen_uio. (unlocked-io.h): Remove rule. 2002-12-04 Jim Meyering Reflect the fact that stat.c and lstat.c are no longer generated. * lib/Makefile.am (BUILT_SOURCES): Remove stat.c and lstat.c. (DISTCLEANFILES): Likewise. (EXTRA_DIST): Likewise. (all_local): Don't depend on stat.c or lstat.c. (stat.c, lstat.c): Remove rules. (EXTRA_DIST): Remove xstat.in. * lib/xstat.in: Remove file. Contents moved into stat.c. * lib/stat.c: New file. Contents mostly from xstat.in. * lib/stat.c: Rework so that it may serve to define rpl_lstat, too. * lib/lstat.c: New file. Simply #define LSTAT and include stat.c. * lib/safe-read.c: Rework so that it may serve to define safe_write, too. * lib/safe-write.c: Simply #define SAFE_WRITE and include safe-read.c. 2002-12-03 Jim Meyering * lib/safe-read.c, safe-write.c: Change variable names and comments, but not semantics, to minimize the differences between these two files. (safe_read): Change comment to mention SAFE_READ_ERROR. * lib/safe-read.c (IS_EINTR): Define. (safe_read): Use IS_EINTR in place of in-function cpp directives. 2002-12-02 Jim Meyering * lib/safe-read.c (EINTR): Define. (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define. (INT_MAX): Provide fallback. (safe_read): Rewrite to iterate IFF the read fails with EINTR. * lib/safe-read.h (SAFE_READ_ERROR): Define. 2002-12-02 Bruno Haible * lib/safe-write.c (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define, taken from safe-read.c. (INT_MAX): Provide fallback. (safe_write): Rewrite to iterate IFF the write fails with EINTR. * lib/safe-write.h (SAFE_WRITE_ERROR): Define. * lib/safe-read.c (EINTR): Remove definition. (safe_read): Don't use EINTR if it is absent. 2002-12-01 Jim Meyering * lib/safe-read.c: (safe_read): Also exit the loop when read returns zero. (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, INT_MAX): Define. 2002-11-27 Paul Eggert * lib/hash.c (hash_lookup, hash_get_first, hash_get_next, hash_find_entry, hash_rehash): Replace `if (limit <= value) abort ();' with `if (! (value < limit)) abort ();', for readability. 2002-11-26 Karl Berry * lib/strdup.c: copy from libc again, with jim's ok. * lib/.cppi-disable: re-add strdup.c 2002-11-25 Karl Berry * lib/strtoll.c: copy from libc, meaning we now #include instead of "strtol.c". 2002-11-25 Karl Berry * config/install-sh: update from automake for variable quoting, $0 in error msgs, etc. * config/srclist.txt ($LIBCSRC/time/mktime.c lib gpl): new entry. * config/srclist.txt ($LIBCSRC/sysdeps/generic/strtoll.c lib gpl): new entry. 2002-11-25 Jim Meyering * lib/mktime.c: Sync from libc, now that it has the latest fix. 2002-11-24 Karl Berry * lib/error.c, getopt.c, getopt.h, getopt1.c, obstack.c, regex.c, regex.h, strdup.c, strtoll.c, tempname.c: change license to gpl. 2002-11-24 Jim Meyering Update from coreutils: * lib/mktime.c: Merge in changes from libc. Avoid a link-time failure on some Linux systems. * lib/mktime.c (STATIC): Define to be empty (_LIBC) or `static' (otherwise). (__mon_yday): Declare with the STATIC attribute. (__mktime_internal): Likewise. Based on a report from Greg Schafer. 2002-11-23 Jim Meyering * lib/sig2str.c (str2signum, sig2str): Avoid a warning from gcc: Use `unsigned', not `int', as type of index. * lib/xstat.in [@BEGIN_LSTAT_ONLY@]: Include . * lib/fsusage.c: Remove unneeded parentheses around operands of `defined'. 2002-11-22 Paul Eggert * lib/quotearg.h: Allow multiple inclusion by surrounding with "#ifndef QUOTEARG_H_". Include , for size_t, so that we can be included first. (PARAMS): Remove; we now assume C89 or later. All uses removed. * lib/quotearg.c: Include quotearg.h immediately after config.h. No need to include stddef.h or sys/types.h any more. Surround local include files with "", not "<>". Assume HAVE_LIMITS_H unconditionally, as we assume C89. Similarly, assume HAVE_C_BACKSLASH_A, CHAR_BIT, UCHAR_MAX, UINT_MAX, HAVE_STDLIB_H, HAVE_STRING_H, STDC_HEADERS. (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC. (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT. (ISPRINT): Remove; no longer needed now that we assume C89. (clone_quoting_options, quotearg_buffer, quotearg_n_options): Preserve errno. (quotearg_buffer_restyled, quotearg_n, quotearg_n_style, quotearg_char): Use SIZE_MAX rather than (size_t) -1 when we are talking about "infinity". (quotearg_buffer_restyled): Fix bug when quoting trigraphs. 2002-11-22 Paul Eggert * lib/hash.c: Avoid use of , as the GNU Coding Standards hint that one should use `if (! x) abort ();' rather than `assert (x);', and anyway it's one less thing to worry about configuring. (hash_lookup, hash_get_first, hash_get_next, hash_find_entry, hash_rehash, hash_insert): Use abort rather than assert. 2002-11-22 Bruno Haible * lib/safe-read.h: Assume C89. Add comments. (safe_read): Change return type to size_t. * lib/safe-read.c (safe_read): Change return type to size_t. Handle byte counts > SSIZE_MAX correctly. * lib/safe-write.h: New file. * lib/safe-write.c: New file. * lib/full-read.h: New file. * lib/full-read.c: New file. * lib/full-write.h: Assume C89. Add comments. * lib/full-write.c: Include safe-write.h. (full_write): Rewritten to use safe_write. Suggested by Jim Meyering and Paul Eggert. 2002-11-21 Jim Meyering * lib/strdup.c (strdup): Tweak comment and initial #if/#include. Merge in changes from the coreutils. 2002-09-25 Paul Eggert * lib/fsusage.c [! HAVE_INTTYPES_H && HAVE_STDINT_H] Include . (UINTMAX_MAX) [!defined UINTMAX_MAX]: New macro. (PROPAGATE_ALL_ONES): Work even if X is unsigned and narrower than int. Work more efficiently if X is the same width as uintmax_t. Do not compare X to -1, to avoid bogus compiler warning. (get_fs_usage): (uintmax_t) -1 -> UINTMAX_MAX to avoid a cast. Don't assume that f_frsize and f_bsize are the same type. * lib/mountlist.c: #undef MNT_IGNORE before defining it, to avoid warning on FreeBSD. * lib/makepath.c (make_path): Restore umask *before* creating the final component. (make_path): Minor reformatting. * lib/xmalloc.c: Adjust to work with new autoconf macros, AC_FUNC_MALLOC and AC_FUNC_REALLOC: test #ifndef HAVE_MALLOC/HAVE_REALLOC. * lib/mountlist.h (ME_DUMMY): Don't count entries of type `auto' as dummy ones. At least on GNU/Linux systems, `auto' means something else. From Michael Stone. 2002-11-21 Bruno Haible Remove case insensitive option matching. * lib/argmatch.h (argcasematch): Remove declaration. (ARGCASEMATCH): Remove macro. (__xargmatch_internal): Remove case_sensitive argument. (XARGMATCH): Update. (XARGCASEMATCH): Remove macro. * lib/argmatch.c (argmatch): Renamed from __argmatch_internal. Remove case_sensitive argument. (argcasematch): Remove function. (__xargmatch_internal): Remove case_sensitive argument. (main): Use XARGMATCH instead of XARGCASEMATCH. * lib/xmalloc.c: Change compile-time error message. Add comment about required autoconf version. 2002-11-20 Paul Eggert Merge argmatch cleanups from Bison. Assume C89. * lib/argmatch.c: Include config.h here, not in argmatch.h. Include stdlib.h, for EXIT_FAILURE. Always include , since we assume C89. (EXIT_FAILURE): Remove pre-C89 bug workaround. * lib/argmatch.h: Do not include or . Include instead, since it's all we need for size_t. (PARAMS): Remove. All uses removed. (ARRAY_CARDINALITY): Do not bother to #undef. (ARRAY_CARDINALITY, ARGMATCH, ARGCASEMATCH, invalid_arg, ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH): Remove unnecessary parentheses. (ARGMATCH_VALID, XARGMATCH, XARGCASEMATCH): Insert necessary parentheses. (ARGMATCH_CONSTRAINT, ARGMATCH_VERIFY): New macros. (ARGMATCH_ASSERT): Use ARGMATCH_CONSTRAINT. 2002-11-19 Bruno Haible * lib/mbswidth.c: Include mbswidth.h right at the beginning. * lib/mbswidth.h: Include , for size_t. * lib/mbswidth.h (PARAMS): Remove macro. (mbswidth, mbsnwidth): Use ANSI C function declarations. * lib/mbswidth.c (mbswidth, mbsnwidth): Likewise. * lib/gcd.h (PARAMS): Remove macro. (gcd): Use ANSI C function declarations. * lib/gcd.c (gcd): Likewise. 2002-11-15 Bruno Haible * lib/strcspn.c: Include . (strcspn): Use ANSI C function declaration. Change return type to size_t. Use NULL. * lib/strpbrk.c: Minimize diffs to glibc. Include . (strpbrk): Use NULL. * lib/strpbrk.h (PARAMS): Remove macro. (strpbrk): Use ANSI C function declaration. * lib/strstr.c: Don't include . * lib/strstr.h (PARAMS): Remove macro. (strstr): Use ANSI C function declarations. 2002-11-14 Karl Berry * config/mkinstalldirs: `do' on separate line, instead of `for var; do'. 2002-11-06 Bruno Haible * lib/gcd.h (gcd): Change argument type to 'unsigned long'. * lib/gcd.c (gcd): Likewise. 2002-11-05 Bruno Haible * lib/gcd.h: New file, from gettext-0.11.5. * lib/gcd.c: New file, from gettext-0.11.5. 2002-11-05 Bruno Haible * lib/error.c [!_LIBC]: Include gettext.h instead of . * lib/getopt.c [!_LIBC]: Include gettext.h instead of . * lib/obstack.c [!_LIBC]: Include gettext.h instead of . * lib/regex.c [!_LIBC]: Include gettext.h instead of . * lib/argmatch.c: Include gettext.h instead of and . * lib/makepath.c: Include gettext.h instead of and . * lib/closeout.c: Include gettext.h instead of . * lib/human.c: Include gettext.h instead of . * lib/quotearg.c: Include gettext.h instead of . * lib/rpmatch.c: Include gettext.h instead of . * lib/unicodeio.c: Include gettext.h instead of . * lib/userspec.c: Include gettext.h instead of . * lib/version-etc.c: Include gettext.h instead of . * lib/xmalloc.c: Include gettext.h instead of . (textdomain): Remove definition. * lib/xmemcoll.c: Include gettext.h instead of . * lib/long-options.c: Remove include of and definition of _. * lib/same.c: Remove include of and definition of _. 2002-11-04 Owen Taylor * lib/config.charset: A few additions for Solaris. 2002-11-04 Bruno Haible Make it possible to build libcharset with CC=gcc CFLAGS="-x c++". * lib/localcharset.c (locale_charset): Declare as extern "C". 2002-11-04 Bruno Haible * lib/config.charset: msdos in uk_UA uses CP1125. 2002-11-04 Bruno Haible * lib/stpcpy.h: New file, from GNU gettext-0.11.5. * lib/strcase.h: New file, from GNU gettext-0.11.5. * lib/strpbrk.h: New file, from GNU gettext-0.11.5. * lib/strstr.h: New file, from GNU gettext-0.11.5. * lib/xgetcwd.h: New file, from GNU gettext-0.11.5. 2002-11-04 Bruno Haible * lib/localcharset.c (locale_charset): Don't return an empty string. 2002-11-04 Bruno Haible * lib/localcharset.c (get_charset_aliases): Add more Windows specific aliases. 2002-11-04 Bruno Haible * lib/config.charset: Update for newest glibc. Add canonical names ISO-8859-14, KOI8-T, TCVN5712-1, GEORGIAN-PS. 2002-11-04 Bruno Haible * lib/config.charset: Add support for NetBSD. 2002-11-04 Bruno Haible * lib/config.charset [msdosdjgpp]: For Russian, use CP866. 2002-11-01 Bruno Haible * configure.in: Add AC_CONFIG_AUX_DIR call. (AC_OUTPUT): Add m4/Makefile, lib/Makefile. Remove doc/Makefile, test/Makefile. * Makefile.in (subdirs): Add m4, lib. Remove doc, test. 2002-09-28 Karl Berry * config/srclist.txt: can't copy install-sh/mkinstalldirs from installed automake until the next release, since changes have been made. 2002-09-25 Karl Berry * lib/strdup.c: copy from libc/string (via ../config/srclist*). * lib/getopt*: copy from libc/posix. * lib/gettext.h: copy from gettext. * lib/.cppi-disable: add strdup.c, gettext.h. 2002-09-25 Karl Berry * config/srclist.txt: enable gettext.h check. * config/config.{guess,sub}: update from prep. * config/depcomp, install-sh, mdate-sh, missing, mkinstalldirs: update from automake 1.6.3. See srclist*. 2002-08-23 Stefan Monnier * regex.c (PATFETCH): Remove the translating fetch. (PATFETCH_RAW): Rename to PATFETCH. (set_image_of_range): New fun. (SET_RANGE_TABLE_WORK_AREA): Use it. (regex_compile): Don't translate the pattern chars so eagerly. Only do it when inserting an `exactn' bytecode or when handling a char-range. (mutually_exclusive_p): Avoid empty statement. 2002-07-06 Jim Meyering * m4/README: Don't mention Makefile.am.in. Outline how I've tested changes to .m4 files. Yep, it's a pain. 2002-07-01 Jim Meyering * lib/c-stack.c: Include sys/time.h. From Volker Borchert. 2002-06-26 Paul Eggert * m4/fnmatch.m4 (_AC_LIBOBJ_FNMATCH): Check for btowc. 2002-06-26 Paul Eggert * lib/fnmatch.c, fnmatch_loop.c (WIDE_CHAR_SUPPORT): New macro. Use it uniformly instead of (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H). It also uses HAVE_BTOWC, to fix a porting bug on Solaris 2.5.1 reported by Vin Shelton. 2002-06-22 Paul Eggert * lib/c-stack.h (segv_handler, c_stack_action) [! defined SA_SIGINFO]: Do not assume SA_SIGINFO behavior. Bug reported by Jim Meyering on NetBSD 1.5.2. 2002-06-22 Jim Meyering * m4/c-stack.m4: New file, from diffutils-2.8.2. * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_C_STACK. * m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Don't require AC__GNU_SOURCE, now that configure.ac uses AC_GNU_SOURCE. (jm_MACROS): Rename: jm_FUNC_FNMATCH to AC_FUNC_FNMATCH_GNU. * m4/prereq.m4 (jm_PREREQ_EXCLUDE): Likewise, wrt jm_FUNC_FNMATCH. Update to latest tools. Suggestions from Paul Eggert. * m4/stdbool.m4: New file, from diffutils-2.8.2. * m4/gnu-source.m4: Update from diffutils-2.8.2. * m4/fnmatch.m4: Likewise. * m4/prereq.m4: Change each use of AC_CHECK_HEADERS(stdbool.h) to AC_HEADER_STDBOOL 2002-06-22 Jim Meyering * lib/fnmatch.c (ISASCII, ISPRINT): Undefine, to avoid warning about redefinition due to Solaris 2.6's definition in /usr/include/sys/euc.h. 2002-06-22 Jim Meyering * lib/c-stack.c, lib/c-stack.h: New files, from diffutils-2.8.2. * lib/exitfail.c, exitfail.h: Likewise. * lib/Makefile.am (libfetish_a_SOURCES): Add exitfail.c and exitfail.h. * lib/Makefile.am (libfetish_a_SOURCES): Add fnmatch_.h in place of fnmatch.h. (EXTRA_DIST): Add fnmatch_loop.c. (libfetish_a_SOURCES): Add c-stack.c and c-stack.h. * lib/fnmatch_loop.c: New file, from diffutils-2.8.2. * lib/fnmatch.c: Update from diffutils-2.8.2. * lib/fnmatch_.h: New file. From diffutils-2.8.2. * lib/fnmatch.h: Remove file. 2002-06-21 Jim Meyering * m4/c-bs-a.m4: Add comment, from diffutils-2.8.2. * m4/mbrtowc.m4: Likewise. * m4/mbstate_t.m4: Update from diffutils-2.8.2. * m4/mbswidth.m4: Reflect name change: s/AC_MBSTATE_T/AC_TYPE_MBSTATE_T. * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Likewise. * m4/lib-link.m4: Update from gettext-0.11.2. * m4/gettext.m4: Likewise. * m4/jm-macros.m4 (jm_CHECK_ALL_HEADERS): Check for hurd.h. From Alfred M. Szmidt. 2002-06-18 Paul Eggert * lib/file-type.h: Report an error if neither S_ISREG nor S_IFREG is defined, instead of using a test specific to glibc 2.2. This should be safe, since POSIX requires S_ISREG and Unix Version 7 had S_IFREG. We don't need to check for since we don't use any symbols that it defines. 2002-06-15 Richard Dawe * lib/Makefile.am (lstat.c, stat.c, .sin.sed): Use t-$@, rather than $@-t, so that each temporary file name is unique and valid in the first 8 characters, for operation under DOS. 2002-06-15 Paul Eggert * m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Check for st_author. 2002-06-15 Jim Meyering Work even with DJGPP 2.03, which lacks support for symlinks. From Richard Dawe. * lib/xstat.in (S_ISLNK): Define to 0 if neither S_ISLNK nor S_IFLNK is defined. * lib/lchown.c (S_ISLNK): Likewise. 2002-06-15 Jim Meyering * lib/file-type.h (FILE_TYPE_H): Guard entire contents with #ifndef. For GNU libc 2.2 and newer, ensure that and have been included before this file. 2002-06-14 Jim Meyering * lib/file-type.h: Use the version from diffutils-2.8.2. * lib/file-type.c: Likewise. 2002-06-07 Jim Meyering * m4/prereq.m4 (jm_PREREQ_STAT): Check for sys/param.h and sys/mount.h. They're needed at least for NetBSD 1.5.2. ($statxfs_includes): Include those same headers. ($statxfs_includes): Include sys/vfs.h if available. ($statxfs_includes): Likewise for sys/statvfs.h. Check for the following members in both structs statfs and statvfs: f_basetype, f_type, f_fsid.__val, f_namemax, f_namelen. 2002-06-01 Jim Meyering * m4/d-type.m4 (jm_CHECK_TYPE_STRUCT_DIRENT_D_TYPE): Rename macro: s/D_TYPE_IN_DIRENT/HAVE_STRUCT_DIRENT_D_TYPE/. 2002-05-28 Jim Meyering * m4/readdir.m4 (jm_FUNC_READDIR): Undefine `mkdir', not `rmdir'. Reported by Volker Borchert. 2002-05-27 Jim Meyering Fix a problem seen only on nonconforming systems whereby ls.c's use of localtime, and then of gettimeofday would cause trouble: the localtime call used to initialize rpl_gettimeofday's save mechanism would clobber ls's current local time information so that in any long listing the first file would always be listed with date 1970-01-01. Analysis by Volker Borchert. * lib/gettimeofday.c (localtime): Undefine. (rpl_localtime): New function. 2002-05-27 Jim Meyering * m4/gettimeofday.m4 (AC_FUNC_GETTIMEOFDAY_CLOBBER): Also replace localtime. * m4/readdir.m4 (jm_FUNC_READDIR): Undefine `rmdir' so we don't try to use the replacement function; it wouldn't resolve at link time. Reported by Volker Borchert. 2002-05-22 Jim Meyering * lib/Makefile.am (libfetish_a_SOURCES): Add file-type.c and file-type.h. * lib/file-type.h: New file. * lib/file-type.c (file_type): New file/function. Extracted from diffutils. 2002-04-30 Jim Meyering * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_STAT. 2002-04-29 Paul Eggert * m4/prereq.m4 (jm_PREREQ_SIG2STR): Remove; all callers changed. 2002-04-29 Paul Eggert * m4/prereq.m4 (jm_PREREQ_HARD_LOCALE): Check for stdlib.h. Do not check for alloca.h (no longer used) or stdbool.h (was never used?). Add AM_C_PROTOTYPES since hard-locale.h uses it. 2002-04-29 Paul Eggert * lib/hard-locale.c: Upgrade to version used in GNU Diffutils 2.8.1. 2002-04-29 Jim Meyering * m4/jm-macros.m4 (jm_MACROS): Remove use of AC_FUNC_STRNLEN. * m4/prereq.m4: Add jm_PREREQ_STRNLEN. Use AC_FUNC_STRNLEN here instead. * m4/jm-macros.m4: Don't AC_REQUIRE([AC_PROG_CC_STDC]). With autoconf-2.53a, it's part of AC_PROG_CC. 2002-04-28 Paul Eggert * m4/jm-macros.m4 (jm_MACROS): Add AC_REPLACE_FUNCS(sig2str). * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_SIG2STR. 2002-04-28 Paul Eggert * lib/sig2str.h, lib/sig2str.c: New files. * lib/Makefile.am (libfetish_a_SOURCES): Add sig2str.h. 2002-04-28 Paul Eggert * lib/sig2str.h (SIGNUM_BOUND): Do not use WTERMSIG, to avoid depending on and WTERMSIG. Default to 64 instead of 127, since 64 is the largest conceivable number for ancient nonstandard hosts. * lib/sig2str.c: Do not include ; no longer needed. 2002-04-28 Jim Meyering * lib/sig2str.c (WTERMSIG): Remove definition (unused). 2002-04-24 Jim Meyering * m4/prereq.m4 (jm_PREREQ_HARD_LOCALE): New macro. (jm_PREREQ): Use it. * m4/getloadavg.m4: Check for these headers: locale.h unistd.h mach/mach.h fcntl.h. Check for this function: setlocale. 2002-04-24 Jim Meyering * lib/gettext.h: New file, from Gettext. * lib/Makefile.am (INCLUDES): Remove -I../intl. (libfetish_a_SOURCES): Add gettext.h. 2002-04-16 Jim Meyering * m4/prereq.m4 (jm_PREREQ_READUTMP): Also check for these members: ut_pid, ut_id, ut_exit. 2002-04-16 Jim Meyering * lib/readutmp.h (UT_TYPE): Remove definition (now in who.c). (HAVE_STRUCT_XTMP_UT_EXIT, HAVE_STRUCT_XTMP_UT_ID): Define. (HAVE_STRUCT_XTMP_UT_PID, HAVE_STRUCT_XTMP_UT_TYPE): Define. 2002-04-12 Jim Meyering * m4/ls-mntd-fs.m4 (checking for getmntinfo function...): Remove now-bogus check for f_type in sys/mount.h. Instead, just test for the existence of the getmntinfo function. Needed for Darwin 5.3. * m4/dirfd.m4 (UTILS_FUNC_DIRFD): Also detect when dirfd is a macro. This is necessary at least on Darwin 5.3. * m4/jm-macros.m4: Don't AC_REPLACE(strnlen), now that we use AC_FUNC_STRNLEN. Otherwise, we'd end up putting two copies of strnlen.o in the library, and that makes some versions of ranlib object. 2002-04-12 Jim Meyering * lib/dirfd.h (dirfd): Elide prototype if dirfd is a macro. 2002-04-09 Jim Meyering * m4/malloc.m4: (jm_FUNC_MALLOC): Change the `checking ...' message to be more precise. Rather than saying we're checking whether the function `works', say what we're testing. * m4/realloc.m4 (jm_FUNC_REALLOC): Likewise. Reported by Bruno Haible. 2002-03-10 Jim Meyering * lib/makepath.c (make_path): Remove a comma from a diagnostic. Suggestion from Santiago Vila. 2002-03-08 Jim Meyering * lib/rename.c: Mention that this wrapper is needed also on mips-dec-ultrix4.4 systems. 2002-03-02 Jim Meyering * lib/gettime.c (gettime): Test HAVE_CLOCK_GETTIME, not HAVE_CLOCK_SETTIME. 2002-02-27 Paul Eggert * m4/jm-macros.m4 (jm_MACROS): Do not replace stime; no longer used. Check for clock_settime. 2002-02-27 Paul Eggert * lib/nanosleep.h: Rename to.... * lib/timespec.h: New name for nanosleep.h. All uses changed. * lib/gettime.c: New file. * lib/settime.c: New file. * lib/stime.c: Remove. * lib/Makefile.am (libfetish_a_SOURCES): Add gettime.c, settime.c, timespec.h. Remove nanosleep.h. 2002-02-25 Paul Eggert * m4/acl.m4: New file. * m4/jm-macros.m4 (jm_MACROS): Require AC_FUNC_ACL. Do not check for acl or sys/acl.h, as AC_FUNC_ACL does that now. 2002-02-25 Paul Eggert * lib/acl.c, lib/acl.h: New files. * lib/Makefile.am (libfetish_a_SOURCES): Add acl.h, acl.c. 2002-02-24 Jim Meyering * lib/strnlen.c (strnlen): Define-away/undef so that an inconsistent prototype in string.h (on at least AIX4.3.2.0 w/gcc-2.95.3) doesn't cause trouble. Reported by Nelson Beebe. 2002-02-23 Paul Eggert * lib/path-concat.c (xpath_concat): Reorder code to pacify compilers that don't know that xalloc_die never returns. 2002-02-20 Jim Meyering * lib/getdate.c: Regenerate using bison-1.33. 2002-02-17 Jim Meyering * config/config.guess (main): Don't use `head -1'; it's no longer portable. Use `sed 1q' instead. 2002-02-16 gettextize * m4/codeset.m4: Upgrade to gettext-0.11. * m4/gettext.m4: Upgrade to gettext-0.11. * m4/glibc21.m4: Upgrade to gettext-0.11. * m4/iconv.m4: Upgrade to gettext-0.11. * m4/isc-posix.m4: Upgrade to gettext-0.11. * m4/lcmessage.m4: Upgrade to gettext-0.11. * m4/lib-ld.m4: New file, from gettext-0.11. * m4/lib-link.m4: New file, from gettext-0.11. * m4/lib-prefix.m4: New file, from gettext-0.11. * m4/progtest.m4: Upgrade to gettext-0.11. 2002-02-15 Paul Eggert * m4/prereq.m4 (jm_PREREQ_POSIXVER): New macro. (jm_PREREQ): Use it. 2002-02-15 Paul Eggert * lib/posixver.c, lib/posixver.h: New files. * lib/Makefile.am (libfetish_a_SOURCES): Add them. 2002-02-02 Paul Eggert Bruno Haible * lib/unicodeio.h (print_unicode_char): Add exit_on_error argument. (fwrite_success_callback): New declaration. * lib/unicodeio.c (unicode_to_mb): New function, extracted from print_unicode_char. Call failure callback instead of error. (fwrite_success_callback): New function. (exit_failure_callback): New function. (fallback_failure_callback): New function. (print_unicode_char): Call unicode_to_mb. 2002-01-26 Jim Meyering * m4/jm-macros.m4 (jm_MACROS): Require autoconf-2.52g. * m4/strnlen.m4: Remove file, now that it's part of autoconf. 2002-01-26 Jim Meyering * lib/Makefile.am (getdate$U.o): Depend on unlocked-io.h. 2002-01-22 Paul Eggert * m4/jm-macros.m4 (jm_MACROS): Require AC_FUNC_FSEEKO. 2002-01-22 Jim Meyering * lib/Makefile.am (Makefile): Don't depend on $(BUILT_SOURCES). Otherwise, some versions of automake would omit the rule that makes Makefile from Makefile.in. 2002-01-21 Paul Eggert * lib/xmemcoll.h, lib/xmemcoll.c: New files. * lib/Makefile.am (libfetish_a_SOURCES): Add them. * lib/memcoll.c: Include errno.h, and declare errno if not defined. (memcoll): Set errno to zero if there is no error. * lib/quotearg.c (quotearg_buffer_restyled): Fix bug with quoting buffers containing NUL when backslashing escapes. This bug was exposed by the other changes in this patch. (quotearg_n_options): New arg ARGSIZE. All callers changed. (quoting_options_from_style): New function. (quotearg_n_style): Use it. (quotearg_n_style_mem): New function. * lib/quotearg.h (quotearg_n_style_mem): New function. 2002-01-19 Jim Meyering * m4/jm-macros.m4 (jm_MACROS): Use AC_FUNC_STRNLEN. Remove useless quotes: DF_PROG="df". * m4/strnlen.m4: New file. 2002-01-16 Paul Eggert * lib/backupfile.c (ISDIGIT): Comment fix. * lib/getdate.y (ISDIGIT): Likewise. * lib/posixtm.c (ISDIGIT, year): Likewise. * lib/strverscmp.c (ISDIGIT): Likewise. * lib/userspec.c (ISDIGIT): Likewise. 2002-01-16 Jim Meyering * lib/getdate.y: Add three semicolons, each just before a closing brace. Bison (as of version 1.31) no longer papers over that mistake. 2002-01-05 Jim Meyering * lib/version-etc.c (version_etc_copyright): Update copyright year. 2001-12-19 Paul Eggert * lib/closeout.c (close_stdout_status): If ferror (stdout), do not silently exit merely because the output buffer happens to have nothing pending. 2001-12-18 Paul Eggert See the big note in ../ChangeLog. * lib/human.c (suffixes): Prefer K to k for 1024. (generate_suffix_backwards): New function. (human_readable_inexact): Use it. * lib/xstrtol.c (__xstrtol): If there is no number but there is a valid suffix, assume 1. "MB" now means decimal, "MiB" binary. Accept 'K' as well as 'k'. 2001-12-15 Jim Meyering * lib/regex.h (__restrict_arr): Update from libc. * lib/mountlist.h (ME_REMOTE): Recognize file systems of type smbfs as `remote' if the name starts with `//'. Suggested by Michael Stone. (STREQ): Define. 2001-12-14 Jim Meyering * m4/jm-macros.m4 (jm_MACROS): Check for iswspace. Suggestion from Bruno Haible. 2001-12-10 Jim Meyering * lib/linebuffer.c: Remove explicit declarations of xmalloc and xrealloc, Instead, include "xalloc.h". (initbuffer): Don't cast xmalloc return value to char*. (readline): Reword comment. Don't cast xrealloc return value to char* Return NULL, not 0. 2001-12-09 Jim Meyering * lib/modechange.c (mode_compile): Add cast to avoid pedantic warning about `signed and unsigned type in conditional expression'. * lib/posixtm.c (posix_time_parse): Likewise. * lib/xreadlink.c (xreadlink): Add cast to avoid a pedantic warning. * lib/readtokens.c (readtoken): Declare an index to be of type unsigned to avoid a pedantic warning. * lib/getstr.c: Don't include assert.h. (getstr): Remove warning-evoking assertions. Return -1 if offset parameter is out of bounds. Change the type of a local from int to size_t. * lib/strftime.c (my_strftime_localtime_r): Include this function definition in the `#if ! HAVE_TM_GMTOFF' block. * lib/xgethostname.c: Remove declarations of xmalloc and xrealloc. Include xalloc.h instead. 2001-12-02 Jim Meyering * lib/tempname.c: Don't declare getenv, thus reverting the change of 2001-11-18. It's no longer necessary, now that stdlib.h is always included. * lib/regex.c [!__BOUNDED_POINTERS__]: Define away __bounded, __unbounded, and __ptrvalue. Reported by Uwe H. Steinfeld. 2001-11-30 Akim Demaille * lib/xstrdup.c: Include xalloc.h, so that xstrdup is declared before being defined. 2001-11-27 Paul Eggert * lib/quotearg.h (quotearg_n, quotearg_n_style): First arg is int, not unsigned. * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise. (SIZE_MAX, UINT_MAX): New macros. (quotearg_n_options): Abort if N is negative. Avoid overflow check on hosts where size_t is 64 bits and int is 32 bits, as overflow is impossible there. Fix off-by-one typo that caused unnecessary reallocation. 2001-11-27 Jim Meyering * lib/tempname.c: Merge with version from libc. * lib/regex.c: Likewise. * lib/tempname.c: Include stdlib.h unconditionally. On some old systems for which STDC_HEADERS is 0, it was not included, resulting in a warning about an integer-to-pointer conversion problem with getenv. Reported by Volker Borchert. 2001-11-26 Jim Meyering * lib/gtod.h: Remove file. * lib/Makefile.am (libfetish_a_SOURCES): Remove gtod.h. * lib/gettimeofday.c: Don't include gtod.h. (GTOD_init): Remove function. (rpl_gettimeofday): Do its job here instead, rather than aborting. Suggestion from Volker Borchert. 2001-11-23 Jim Meyering * lib/hash.h (struct hash_table): Don't define here. Merely declare it. * lib/hash.c (struct hash_table): Define it here instead. 2001-11-22 Jim Meyering * lib/hash.h: Bracket contents of file with #ifndef HASH_H_ ... #endif. 2001-11-20 Jim Meyering * m4/mkstemp.m4 (UTILS_FUNC_MKSTEMP): Update comment to reflect that SunOS 4.1.4 and Solaris 2.5.1 lose, too. 2001-11-19 Jim Meyering * m4/mkstemp.m4 (UTILS_FUNC_MKSTEMP): Don't bother with a temporary directory. Use "conftestXXXXXX" as the template. Suggestion from Paul Eggert. * m4/mkstemp.m4 (UTILS_FUNC_MKSTEMP): Close each descriptor immediately, so the test doesn't mistakenly hit the max-open-files limit. 2001-11-18 Paul Eggert * lib/tempname.c (TMP_MAX): Remove; no longer needed. (TEMPORARIES): New macro. (__gen_tempname): Use TEMPORARIES rather than TMP_MAX. This removes an artificial limitation (e.g. HP-UX 10.20, where TMP_MAX is 17576). 2001-11-18 Jim Meyering * m4/prereq.m4 (jm_PREREQ_TEMPNAME): Check for declaration of getenv. 2001-11-18 Jim Meyering * lib/tempname.c [!HAVE_DECL_GETENV]: Declare getenv to avoid warning on SunOS 4. * lib/Makefile.am (Makefile): Depend on $(BUILT_SOURCES), so those files will be created before anything else. 2001-11-17 Paul Eggert * m4/jm-winsz1.m4 (jm_WINSIZE_IN_PTEM): Do not define WINSIZE_IN_PTEM if defines struct winsize. 2001-11-17 Jim Meyering * m4/mkstemp.m4 (UTILS_FUNC_MKSTEMP): New file and macro. Prompted by a report from Bob Proulx. * m4/jm-macros.m4 (jm_MACROS): Don't test for mkstemp here. Instead, require UTILS_FUNC_MKSTEMP. 2001-11-17 Jim Meyering * m4/jm-macros.m4 (jm_MACROS): Remove code to set POW_LIBM. Now, that's done as part of AC_FUNC_STRTOD. 2001-11-17 Jim Meyering * lib/modechange.c (mode_adjust): Fix error introduced on 1999-04-26 that made e.g., `chmod a=,o=w,g=o F' cause F to be group readable rather than group writable. Patch by Juan F. Codagnone. * lib/readtokens.c: Remove explicit declarations of xmalloc and xrealloc, Instead, include "xalloc.h". * lib/mountlist.c: Include unlocked-io.h after all system headers. Remove explicit declarations of xmalloc, xrealloc, and xstrdup. Instead, include "xalloc.h". * lib/argmatch.c, closeout.c, error.c, exclude.c: Include unlocked-io.h. * lib/fatal.c, getdate.y, getpass.c, getstr.c, getusershell.c: Likewise. * lib/mountlist.c, posixtm.c, readtokens.c, readutmp.c: Likewise. * lib/regex.c, sha.c, version-etc.c, yesno.c: Likewise. Reported by Padraig Brady. * lib/mkstemp.c: #undef mkstemp. Include config.h. (rpl_mkstemp): Rename from mkstemp. Protoize. 2001-11-16 Jim Meyering * lib/physmem.c [HAVE_SYS_PSTAT_H]: Include . (physmem_total) [HAVE_PSTAT_GETSTATIC]: If sysconf couldn't be used to determine the amount of total physical memory, use pstat_getstatic. HPUX-11 doesn't define _SC_PHYS_PAGES. (physmem_available) [HAVE_PSTAT_GETSTATIC && HAVE_PSTAT_GETDYNAMIC]: If sysconf couldn't be used to determine the amount of available physical memory, use both pstat_getstatic and pstat_getdynamic. Based on a patch from Bob Proulx. 2001-11-10 Jim Meyering * m4/prereq.m4 (jm_PREREQ_PHYSMEM): New function. (jm_PREREQ): Use it. 2001-11-09 Jim Meyering * m4/jm-macros.m4: Require autoconf-2.52f. (AC_FUNC_ERROR_AT_LINE, AC_FUNC_OBSTACK, AC_FUNC_STRTOD): Use these AC_-prefixed names, not the AM_-prefixed ones. * m4/afs.m4 (jm_AFS): Quote the body. Patch by Akim Demaille. 2001-11-05 Jim Meyering * lib/xstat.in (slash_aware_lstat): Correct a misleading comment. 2001-11-04 Jim Meyering * m4/fpending.m4: Remove unused cruft that saved, set, and restored $DEFS. 2001-11-03 Jim Meyering * m4/jm-glibc-io.m4n (jm_FUNC_GLIBC_UNLOCKED_IO): Quote first arg of AC_DEFUN. * m4/dirfd.m4 (UTILS_FUNC_DIRFD): Rework so dirfd.c doesn't have to know the name of the variable in the macro definition. 2001-11-03 Jim Meyering * lib/argmatch.h (ARGMATCH_TO_ARGUMENT): Remove casts of first two args in argmatch_to_argument call. * lib/dirfd.c (dirfd): Reflect the fact that DIR_TO_FD now takes an argument. * lib/hash.c (hash_clear): Fix a bug that could lead to an infloop or e.g., a fault due to an attempt to free a NULL pointer. 2001-11-01 Jim Meyering * m4/dirfd.m4 (UTILS_FUNC_DIRFD): New macro. * m4/jm-macros.m4 (jm_MACROS): Require UTILS_FUNC_DIRFD. 2001-11-01 Jim Meyering * lib/dirfd.c, lib/dirfd.h: New files. * lib/Makefile.am (libfetish_a_SOURCES): Add dirfd.h. * lib/hash.c (hash_print) [TESTING]: Clean up. 2001-10-22 Paul Eggert * lib/hard-locale.c (alloca): Define to __builtin_alloca if __GNUC__, to avoid a warning if -Wall. 2001-10-22 Jeff Bailey * README: New file * doc/*: Add COPYING, COPYING.LIB, COPYING.DOC, fdl.texi (per RMS's instructions, this is now the canonical source) * lgpl/, gpl/: New directories. 2001-10-21 Paul Eggert * lib/regex.c (uintptr_t): Remove macro and decl; it's config.h's job. 2001-10-21 Jim Meyering * lib/obstack.c (_): Honor the setting of ENABLE_NLS. Otherwise, this code would end up calling gettext even in packages built with --disable-nls. * lib/getopt.c (_): Likewise. * lib/regex.c (_): Likewise. 2001-10-20 Paul Eggert * m4/error.m4 (jm_PREREQ_ERROR): Do not invoke AC_CHECK_FUNCS with strerror_r, as AC_FUNC_STRERROR_R does that. Check for strerror declaration. * m4/strerror_r.m4: Add copyright notice, as nontrivial m4 files are supposed to have them these days. (AC_FUNC_STRERROR_R): Always do char* test, so that it gets cached. Merge changes from latest Autoconf CVS. Rename ac_cv_func_strerror_r_works to ac_cv_func_strerror_r_char_p, and rename HAVE_WORKING_STRERROR_R to STRERROR_R_CHAR_P, since POSIX decided to standardize on the int flavor of strerror_r. 2001-10-20 Paul Eggert * lib/error.c (strerror_r): Do not declare unless !_LIBC. Do not check for HAVE_DECL_STRERROR_R missing unless STRERROR_R_CHAR_P. Use strerror_r that is only a macro, even if it is not a function. (strerror): Check for HAVE_DECL_STRERROR before declaring. (private_strerror): Use prototypes, not old-style function definition. (print_errno_message): New function. Support the POSIX 'int'-flavored strerror_r, as well as the traditional char*-flavored one. (error_tail, error, error_at_line): Use it. 2001-10-11 Jim Meyering * lib/argmatch.c (argmatch_invalid): Use quotearg_n_style (0, ... and quote_n (1, ... to avoid clobbering a buffer. 2001-10-05 Jim Meyering * lib/Makefile.am: (libfetish_a_SOURCES): Add hash-pjw.c and hash-pjw.h. * lib/hash-pjw.c: New file (factored out of fileutils' remove.c). * lib/hash-pjw.h: New file. 2001-09-30 Jim Meyering * m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): See if `struct fsstat' has the `f_fstypename' member. Use that to define FS_TYPE, which is now used to make the getfsstat link test tighter. 2001-09-30 Jim Meyering * lib/mountlist.c [MOUNTED_GETFSSTAT]: Include , for Apple Darwin. Include sys/mount.h and sys/fs_types.h only if available. (FS_TYPE): Define. (read_filesystem_list): Use FS_TYPE. 2001-09-29 Paul Eggert * lib/exclude.c (excluded_filename): 0 -> false, since it's a boolean context. 2001-09-29 Jim Meyering * m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS) [one-argument getmntent function]): Include stdio.h before mntent.h. SunOS 4.1.x needs it for the declaration of `FILE'. Patch by Volker Borchert. * m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS) Check for these headers: sys/param.h sys/ucred.h sys/mount.h sys/fs_types.h, and make the link-test for getfsstat guard #include directives with appropriate #if HAVE_*_H tests so that we can detect getfsstat on Apple Darwin1.3.7 systems. Reported by Nelson Beebe. Fix harmless typo in cache variable name: s/getsstat/getfsstat/. 2001-09-28 Paul Eggert Fix bug reported by Petter Reinholdtsen for HP-UX 10.20, which #defines strtoimax. Also treat the other strto* functions like strtoimax. * m4/xstrtoimax.m4 (jm_AC_PREREQ_XSTRTOIMAX): Check for strtoul and strtoumax, as those declarations are made even in the signed case. * m4/xstrtoumax.m4 (jm_AC_PREREQ_XSTRTOUMAX): Likewise, for strtol and strtoimax. 2001-09-28 Paul Eggert Fix bug reported by Petter Reinholdtsen for HP-UX 10.20, which #defines strtoimax. Also treat the other strto* functions like strtoimax. * lib/xstrtol.c (strtol): Do not declare if HAVE_DECL_STRTOL. (strtoul): Do not declare if HAVE_DECL_STRTOUL. (strtoimax, strtoumax): Do not declare if already defined as a macro. 2001-09-26 Jim Meyering Most macros in unlocked-io.h had the wrong number of arguments. * lib/gen-uio: New script. (USE_UNLOCKED_IO): Define to 1 if not already defined. * lib/unlocked-io.hin: Remove file. * lib/Makefile.am (unlocked-io.h): Rewrite to use a separate script, rather than trying to embed it here. (EXTRA_DIST): Add gen-uio. Remove unlocked-io.hin Reported by Padraig Brady. 2001-09-25 Volker Borchert * lib/gettimeofday.c (rpl_gettimeofday): Declare local variable `result'. 2001-09-24 Jim Meyering * m4/gettext.m4: Use the version from gettext-0.10.40, not CVS. 2001-09-23 Jim Meyering * m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): Add a compile-test instead of the mere test for existence of mntent.h. The latter would get a false-positive on AIX 3.4 systems. In the outer getmntent if-block, don't die if neither of the getmntent tests succeeds. Instead, just fall through and continue with the remaining tests. 2001-09-23 Jim Meyering * lib/mountlist.c: Remove useless parentheses in #if directives. (MOUNTED) [!defined MOUNTED]: Define to _PATH_MOUNTED, for when the deprecated MOUNTED symbol is no longer defined in mntent.h. 2001-09-22 Jim Meyering * m4/gettext.m4: New file. From gettext. * m4/lcmessage.m4: Sync with gettext -- this changes only comments. * m4/progtest.m4: Likewise * m4/isc-posix.m4: Decrement serial number to sync with gettext. * m4/glibc21.m4: Likewise. * m4/libintl.m4: Remove. No longer used. 2001-09-22 Jim Meyering * lib/localcharset.c: Update from latest gettext. * lib/config.charset: Likewise. 2001-09-20 Jim Meyering * m4/xstrtoimax.m4 (jm_AC_PREREQ_XSTRTOIMAX): Check for declaration of strtoimax. * m4/xstrtoumax.m4 (jm_AC_PREREQ_XSTRTOUMAX): Check for declaration of strtoumax. 2001-09-20 Jim Meyering * lib/xstrtol.c (strtoimax): Guard declaration with `#if !HAVE_DECL_STRTOIMAX', rather than just `#ifndef strtoimax'. The latter fails because some systems (at least rs6000-ibm-aix4.3.3.0) have their own, conflicting declaration of strtoimax in sys/inttypes.h. (strtoumax): Likewise, for completeness (it wasn't necessary). 2001-09-17 Paul Eggert * lib/strtoimax.c (HAVE_LONG_LONG): Redefine to HAVE_UNSIGNED_LONG_LONG if unsigned. (strtoimax): Use sizeof (long), not sizeof strtol (ptr, endptr, base), to work around bug in IBM C compiler. 2001-09-17 Jim Meyering * m4/chown.m4, fstypename.m4, getgroups.m4, gettimeofday.m4, * m4/jm-mktime.m4, lstat.m4, malloc.m4, memcmp.m4, mkdir-slash.m4, * m4/nanosleep.m4, putenv.m4, readdir.m4, realloc.m4, rename.m4, * m4/st_dm_mode.m4, stat.m4, strerror_r.m4, timespec.m4, utimbuf.m4, * m4/utimes.m4: Use AC_DEFINE rather than AC_DEFINE_UNQUOTED, whenever the right hand side need not be expanded by the shell. 2001-09-16 Paul Eggert * m4/fnmatch.m4 (jm_FUNC_FNMATCH): Remove test for GNU C library. It's not correct, as some older glibcs are buggy. fnmatch wasn't fixed until glibc 2.2. Use AC_DEFINE, not AC_DEFINE_UNQUOTED, as there's no special shell magic here. 2001-09-16 Jim Meyering * m4/mkdir-slash.m4 (UTILS_FUNC_MKDIR_TRAILING_SLASH): New file/macro. * m4/jm-macros.m4: Require it. 2001-09-16 Jim Meyering * lib/mkdir.c: New file. 2001-09-15 Jim Meyering * m4/jm-macros.m4: Check for help2man. 2001-09-11 Jim Meyering * m4/host-os.m4 (UTILS_HOST_OS): New file/macro. The body, by Paul Eggert, was moved here from configure.in. * m4/jm-macros.m4: Require UTILS_HOST_OS. 2001-09-04 Paul Eggert * m4/prereq.m4 (jm_PREREQ_XREADLINK): New macro. (jm_PREREQ): Use it. 2001-09-04 Paul Eggert * lib/xreadlink.c (xreadlink): Omit size_t* arg. All uses changed. Use ssize_t, not int, to store result of readlink. Check for ssize_t overflow as well as size_t overflow, as POSIX says the result of readlink is implementation-defined when ssize_t overflows. Remove unnecessary cast to char*. Use free+malloc instead of realloc, as the storage doesn't need to be preserved and it's clearer and can be more efficient that way. (SIZE_MAX, SSIZE_MAX): New macros, if doesn't declare. * lib/xreadlink.h (xreadlink): Update prototype. 2001-09-04 Paul Eggert * lib/xgetcwd.c: Revert some of the previous change; intead, fix the HAVE_GETCWD_NULL code to behave more like the !HAVE_GETCWD_NULL code used to. Include "xalloc.h". (xgetcwd): Do not return NULL when memory is exhausted; instead, invoke xalloc_die. 2001-09-03 Paul Eggert * m4/prereq.m4 (jm_PREREQ_XGETCWD): Check for limits.h and sys/param.h, as pathmax.h includes them. 2001-09-03 Paul Eggert * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_XGETCWD. (jm_PREREQ_XGETCWD): New macro. * m4/getcwd.m4: New file. 2001-09-03 Paul Eggert * lib/xgetcwd.c: Fix the !HAVE_GETCWD_NULL code to behave more like the HAVE_GETCWD_NULL code. Include pathmax.h if not HAVE_GETCWD. Do not include xalloc.h. (INITIAL_BUFFER_SIZE): New symbol. Do not use xmalloc / xrealloc, since the caller is responsible for handling errors. Preserve errno around `free' during failure. Do not overrun buffer when using getwd. 2001-09-03 Paul Eggert * lib/xgetcwd.c (xgetcwd): Use HAVE_GETCWD_NULL, not (defined __GLIBC__ && __GLIBC__ >= 2), to decide whether to use getcwd (NULL, 0). 2001-09-03 Paul Eggert * lib/exclude.c (fnmatch_no_wildcards): Fix confusion between usage of FNM_CASEFOLD and FNM_LEADING_DIR. The bug was spotted by Jim Meyering. 2001-09-03 Jim Meyering * lib/xreadlink.c (xreadlink): Preserve errno around `free' during failure. 2001-09-02 Jim Meyering * lib/error.c: Update from GNU libc. 2001-09-01 Jim Meyering * m4/jm-macros.m4 (jm_MACROS): Check for canonicalize_file_name. Used by df. 2001-09-01 Jim Meyering * lib/xreadlink.c: New file. * lib/xreadlink.h: New file. * lib/Makefile.am (libfetish_a_SOURCES): Add xreadlink.c and xreadlink.h. * lib/regex.c (uintptr_t) [!_LIBC]: Define to private_uintptr_t, so it doesn't conflict with sparc Solaris 7's definition in /usr/include/sys/int_types.h. * lib/exclude.c: Use `""', not `<>' to #include non-system header files. (fnmatch_no_wildcards): Rewrite not to use function names, strcasecmp and strncasecmp as r-values. Unixware didn't have declarations. 2001-08-31 Paul Eggert * lib/xstrtol.h: Add copyright notice. (_DECLARE_XSTRTOL): Improve quality of diagnostic for LONGINT_INVALID_SUFFIX_CHAR. 2001-08-31 Paul Eggert * lib/xstrtol.c (strtoimax): New decl. 2001-08-31 Paul Eggert * lib/xgetcwd.c: Don't include pathmax.h. Include stdlib.h and unistd.h if available. Include xalloc.h. (xmalloc, xstrdup, free): Remove decls. (xgetcwd): Don't assume sizes fit in unsigned. Check for overflow when computing sizes. Simplify reallocation code. 2001-08-31 Paul Eggert * lib/savedir.c (savedir): Remove size parameter, as POSIX says that a directory's st_size can have an arbitrary value, so the old usage could waste an arbitrary amount of memory. All uses changed. * lib/savedir.h: Update prototype. 2001-08-31 Paul Eggert * lib/Makefile.am (libfetish_a_SOURCES): Remove strtoxmax.c. * lib/strtoimax.c: Renamed from strtoxmax.c, removing the old strtoimax.c. Also, make the following further changes to make this file's configuration more similar to that of strtol.c: (UNSIGNED): Renamed from STRTOUXMAX_UNSIGNED. All uses changed. (strtoumax, uintmax_t, strtoull, strtol): Remove. (intmax_t, strtoimax, strtol, strtoll): New macros, if UNSIGNED. (strtoimax): Renamed from strtoumax. All uses of unsigned values changed to signed values. And make the following changes as well: Fix copyright notice, as 1999 was missing. (verify): New macro. (strtoimax): Check sizes at compile-time, not run-time. Prefer strtol to strtoll if both work. (main): Remove; it was not that useful and was a pain to maintain. * lib/strtoumax.c: Include strtoimax.c, not strtouxmax.c. 2001-08-31 Jim Meyering * lib/xgetcwd.c (xgetcwd): Reorganize to avoid some duplication. Use an initial, malloc'd, buffer of length 128 rather than a statically allocated one of length 1024. 2001-08-30 Paul Eggert Simplify code, partly by assuming autoconf 2.52 semantics. * m4/Makefile.am (EXTRA_DIST): Remove uintmax_t.m4. * m4/inttypes.m4 (AC_PREREQ): Bump to 2.52. (jm_AC_HEADER_INTTYPES_H): Remove; now done by autoconf in 2.52. All uses removed. (jm_AC_TYPE_INTMAX_T, jm_AC_TYPE_UINTMAX_T): Move AC_REQUIRE to next-to-top level, to avoid confusion. Use 2.52's AC_CHECK_TYPE instead of merely looking for the header. * m4/prereq.m4 (jm_PREREQ_HUMAN): Don't require jm_AC_HEADER_INTTYPES_H. * m4/jm-macros.m4 (jm_MACROS): Likewise. * m4/uintmax_t.m4: Remove, as it duplicates inttypes.m4. * m4/xstrtoimax.m4 (jm_AC_PREREQ_XSTRTOIMAX): Quote first arg of AC_DEFUN. Require jm_AC_TYPE_UINTMAX_T and jm_AC_TYPE_UNSIGNED_LONG_LONG since they are needed to parse the include file even if we need only xstrtoimax. Simplify logic behind the args to AC_REPLACE. * m4/xstrtoumax.m4 (jm_AC_PREREQ_XSTRTOUMAX): Likewise, but with opposite signedness. 2001-08-30 Paul Eggert Merge 'exclude' changes from tar 1.13.22. This fixes one or two unlikely storage allocation overflow bugs, but doesn't change user-visible behavior otherwise. 2001-08-30 Paul Eggert * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_EXCLUDE. (jm_PREREQ_EXCLUDE): New macro. 2001-08-30 Paul Eggert * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct tm to be declared. 2001-08-30 Paul Eggert * lib/hash.c: Remove '2001' from copyright notice. 2001-08-30 Paul Eggert * lib/full-write.h: New file. * lib/Makefile.am (libfetish_a_SOURCES): Add full-write.h. * lib/full-write.c: Correct credits, as cccp.c no longer exists and anyway it was so heavily changed from the old cccp code as to be unrecognizable. Include full-write.h. (full_write): Return size_t, with short writes meaning failure. All callers changed. This fixes a bug with large buffers on 64-bit hosts. * lib/utime.c: Include full-write.h. 2001-08-30 Paul Eggert * lib/exclude.c (bool): Declare, perhaps by including stdbool.h. (): Include only if HAVE_SYS_TYPES_H. (, , , , ): Include if available. (): Include (SIZE_MAX): Define if or doesn't. (verify): New macro. Use it to verify that EXCLUDE macros do not collide with FNM macros. (struct patopts): New struct. (struct exclude): Use it, as exclude patterns now come with options. (new_exclude): Support above changes. (new_exclude, add_exclude_file): Initial size must now be a power of two to simplify overflow checking. (free_exclude, fnmatch_no_wildcards): New function. (excluded_filename): No longer requires options arg, as the options are determined by add_exclude. Now returns bool, not int. (excluded_filename, add_exclude): Add support for the fancy new exclusion options. (add_exclude, add_exclude_file): Now takes int options arg. Check for arithmetic overflow when computing sizes. (add_exclude_file): xrealloc might modify errno, so don't realloc until after errno might be used. * lib/exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE,EXCLUDE_WILDCARDS): New macros. (free_exclude): New decl. (add_exclude, add_exclude_file): Now takes int options arg. (excluded_filename): No longer requires options arg, as the options are determined by add_exclude. Now returns bool, not int. 2001-08-30 Paul Eggert * lib/alloca.c (alloca): Arg is of type size_t, not unsigned. 2001-08-27 Jim Meyering * lib/Makefile.am (libfetish_a_SOURCES): Add strtoxmax.c * lib/version-etc.c (N_): Remove definition. Revert most of last change. Instead, simply don't mark the `Copyright...' string for translation. Based on advice from Paul Eggert. * lib/strtoxmax.c: Tweak comment. 2001-08-26 Jim Meyering * m4/jm-macros.m4: Require jm_AC_PREREQ_XSTRTOIMAX. * m4/xstrtoimax.m4: New file. * m4/xstrtoumax.m4: Add comments explaining why we AC_REPLACE_FUNCS(strtol). 2001-08-26 Jim Meyering * lib/version-etc.c (version_etc_copyright_fmt): Replace literal year of copyright with `%s' so translators don't get an untranslated message in 2002. (COPYRIGHT_YEAR): Define. (version_etc): Use fprintf rather than fputs. Suggestion from Ulrich Drepper. * lib/Makefile.am (libfetish_a_SOURCES): Add xstrtoimax.c. * lib/strtoll.c: New file, from GNU libc. * lib/xstrtoimax.c: New file. * lib/xstrtol.h: Add xstrtoimax. * lib/strtoumax.c: New file. Simply include "strtoumax.c". * lib/strtoimax.c: New file. Likewise, but first define STRTOUXMAX_SIGNED. * lib/strtoumax.c: Factor to work both for unsigned and signed types, ... * lib/strtoxmax.c: ... then renamed to this. 2001-08-18 Paul Eggert * m4/inttypes.m4: Add AC_PREREQ(2.13). (jm_AC_HEADER_INTTYPES_H): Test for intmax_t, too. (jm_AC_TYPE_INTMAX_T): New macro. (jm_AC_TYPE_UINTMAX_T): Moved here from uintmax_t.m4. * m4/longlong.m4 (jm_AC_TYPE_LONG_LONG): New macro. * m4/longlong.m4: Renamed from ulonglong.m4. * m4/inttypes.m4: Renamed from inttypes_h.m4. * m4/uintmax_t.m4: Removed. 2001-08-13 Paul Eggert * lib/Makefile.am (unlocked-io.h): Do not append "_unlocked" twice. Port to Solaris 8, where 'sed' requires a space after the 'r' command, and where sh dislikes "$/". Clean up the spacing a bit. Redirect output to $tmp just once. 2001-08-12 Paul Eggert * lib/addext.c (): Include. (errno): Declare if not defined. (addext): Work correctly when pathconf returns -1 and leaves errno alone because there is no limit. Also, work even if pathconf returns a value greater than SIZE_MAX. 2001-08-12 Jim Meyering * m4/afs.m4, assert.m4, bison.m4, check-decl.m4, chown.m4, d-ino.m4, d-type.m4, dos.m4, error.m4, fnmatch.m4, fpending.m4, fstypename.m4, fsusage.m4, ftruncate.m4, getgroups.m4, glibc.m4, gnu-source.m4, group-member.m4, jm-glibc-io.m4, jm-macros.m4, jm-mktime.m4, jm-winsz1.m4, jm-winsz2.m4, lchown.m4, lib-check.m4, libintl.m4, link-follow.m4, ls-mntd-fs.m4, lstat.m4, malloc.m4, mbrtowc.m4, mbstate_t.m4, mbswidth.m4, memcmp.m4, nanosleep.m4, perl.m4, prereq.m4, putenv.m4, readdir.m4, realloc.m4, regex.m4, rename.m4, rmdir-errno.m4, search-libs.m4, st_dm_mode.m4, st_mtim.m4, stat.m4, strftime.m4, timespec.m4, unlink-busy.m4, uptime.m4, utimbuf.m4, utime.m4, utimes.m4, xstrtoumax.m4: Quote the first argument in each use of AC_DEFUN. 2001-08-12 Jim Meyering * lib/xgetcwd.c (xgetcwd) [defined __GLIBC__ && __GLIBC__ >= 2]: Simply `return getcwd (NULL, 0);'. [! (defined __GLIBC__ && __GLIBC__ >= 2)]: Use 1300 as initial value for length, not PATH_MAX. * lib/pathmax.h: Clean up cpp syntax. 2001-08-12 Jim Meyering * lib/gettimeofday.c: New file. * lib/gtod.h: New file. * lib/Makefile.am (libfetish_a_SOURCES): Add gtod.h. 2001-08-05 Jim Meyering * m4/jm-macros.m4: Require autoconf-2.52. 2001-08-04 Jim Meyering * lib/error.h (__attribute__): Remove `|| __STRICT_ANSI__' from #if stmt, to get in sync with glibc. 2001-08-03 Paul Eggert The following changes are from gettext 0.10.39 as maintained by Bruno Haible. * lib/mbswidth.h (MBSW_REJECT_UNPRINTABLE, MBSW_REJECT_INVALID): Renamed from MBSW_ACCEPT_UNPRINTABLE and MBSW_ACCEPT_INVALID with inverted sense. All uses changed. * lib/mbswidth.c: Don't include . Include and unconditionally. (iswcntrl, mbsinit, ISCNTRL): New macros. (mbsnwidth): Use K&R style function declarations. Don't bother checking for MB_LEN_MAX == 1, since the compiler can optimize it when MB_CUR_MAX == 1. The width of control characters is zero, not 1. 2001-08-03 Paul Eggert The following changes are from gettext 0.10.39 as maintained by Bruno Haible, except that getline.m4 continues to use AC_LIBOBJ. * m4/codeset.m4: Upgrade to serial AM1. (AM_LANGINFO_CODESET): Renamed from jm_LANGINFO_CODESET; all uses changed. Quote first arg of AC_DEFUN. (am_cv_langinfo_codeset): Renamed from jm_cv_langinfo_codeset. * m4/iconv.m4: Upgrade to serial AM2. (AM_ICONV): Renamed from jm_ICONV; all uses changed. Add --with-libconv-prefix. Quote first arg of AC_DEFUN. Add description for ICONV_CONST. (am_cv_func_iconv): Renamed from jm_cv_func_iconv. (am_cv_lib_iconv): Renamed from jm_cv_lib_iconv. (am_cv_proto_iconv): Renamed from jm_cv_proto_iconv. * m4/jm-macros.m4 (jm_MACROS): Reflect s/jm_/AM_/ renamings. * m4/c-bs-a.m4 (AC_C_BACKSLASH_A): Quote first arg of AC_DEFUN. * m4/getline.m4 (AM_FUNC_GETLINE): Likewise. * m4/glibc21.m4 (jm_GLIBC21): Likewise. * m4/inttypes_h.m4 (jm_AC_HEADER_INTTYPES_H): Likewise. * m4/isc-posix.m4 (AC_ISC_POSIX): Likewise. * m4/lcmessage.m4 (AM_LC_MESSAGES): Likewise. * m4/progtest.m4 (AM_PATH_PROG_WITH_TEST): Likewise. * m4/uintmax_t.m4 (jm_AC_TYPE_UINTMAX_T): Likewise. * m4/ulonglong.m4 (jm_AC_TYPE_UNSIGNED_LONG_LONG): Likewise. * m4/getline.m4 (AM_FUNC_GETLINE): Don't bother checking for string.h any more. * m4/progtest.m4 (AM_PATH_PROG_WITH_TEST): If not found, print "no", not the default value. 2001-06-25 Bruno Haible * m4/mbswidth.m4 (jm_PREREQ_MBSWIDTH): Don't require AM_C_PROTOTYPES. Also check for mbsinit. Needed for SCO 3.2v5.0.2. Also include ; this is where AIX 3.2.5 declares wcwidth. Also check for iswcntrl, used for wcwidth fallback. Use AC_TRY_COMPILE to emulate AC_CHECK_DECLS, for portability to Autoconf 2.13. 2001-08-03 Jim Meyering * m4/mbrtowc.m4 (jm_FUNC_MBRTOWC): Use `#include', not `@%:@include', as it was in the original. Reported by Paul Eggert. 2001-07-16 Jim Meyering * m4/gettimeofday.m4: New file. Prompted by a report from Bernhard Baehr. 2001-07-15 Jim Meyering * m4/Makefile.am.in (Makefile.am): Remove most of the unlocked-io.h stuff. Now it's in ../Makefile.cfg. 2001-07-15 Jim Meyering * lib/Makefile.am (EXTRA_DIST): Add unlocked-io.hin. (BUILT_SOURCES): Add unlocked-io.h. (io_functions): Define. (unlocked-io.h): New rule. (DISTCLEANFILES): Add unlocked-io.h. (all-local): Depend on unlocked-io.h, to ensure it is created. * lib/unlocked-io.hin: New file * lib/regex.c: Update from glibc. 2001-07-05 Jim Meyering * lib/Makefile.am (noinst_HEADERS): Remove definition, per new automake recommendation. (libfetish_a_SOURCES): Put all .h files here instead. Remove a thus-exposed (better checks in automake) duplicate and two unnecessary .h files. 2001-07-04 Jim Meyering * m4/Makefile.am.in (glibc-io.struct): New target. Rework the code that generates jm-glibc-io.m4 so that it doesn't trigger any make distcheck failure. 2001-07-02 Jim Meyering The following changes were prompted by suggestions from Bruno Haible. * m4/jm-glibc-io.m4n: New file, the template from which jm-glibc-io.m4 is now generated. * m4/Makefile.am.in (Makefile.am): Include jm-glibc-io.m4n in emitted definition of EXTRA_DIST. (Makefile.am): Emit the dependency, `all-local: jm-glibc-io.m4' to ensure that the generated file is created/updated whenever the list of $(unlocked_functions) is changed. (jm-glibc-io.m4): New rule. (unlocked-io.h): New rule -- currently unused. 2001-06-24 Jim Meyering * m4/regex.m4 (jm_INCLUDED_REGEX): Use a quadrigraph to represent an unmatched right bracket, rather than kludging it with an extra, falsely-matching quote in a comment. Patch by Akim Demaille. 2001-06-11 Jim Meyering * lib/regex.c: Update from GNU libc. 2001-05-27 Jim Meyering * m4/prereq.m4 (jm_PREREQ_READUTMP): Check for ut_type in struct utmpx. Check for ut_type in struct utmp. 2001-05-27 Jim Meyering * lib/readutmp.h (UT_TYPE): Define. 2001-05-24 Jim Meyering * lib/argmatch.c: Include "quote.h". (argmatch_invalid): Remove explicit `' quotes. Instead, use the quote function. Reported by Göran Uddeborg. 2001-05-22 Jim Meyering * m4/strftime.m4 (_jm_STRFTIME_PREREQS): Don't use AC_LIBOBJ(strftime), now that we use the package-supplied version unconditionally. (jm_FUNC_STRFTIME): Don't replace strftime, for the same reason. 2001-05-21 Jim Meyering * m4/regex.m4: Change a couple backticks to single quotes to avoid shell syntax errors. 2001-05-21 Alexandre Duret-Lutz * m4/dos.m4 (jm_AC_DOS): Check for _WIN32, __WIN32__, and __MSDOS__. 2001-05-20 Paul Eggert * m4/strftime.m4 (jm_FUNC_GNU_STRFTIME): Don't bother to check library strftime, since we'll be using our own my_strftime function anyway. Define my_strftime instead of strftime. 2001-05-20 Alexandre Duret-Lutz * lib/dirname.c (dir_name): Compute append_dot using path, not newpath which is not yet declared. 2001-05-15 Jim Meyering * m4/regex.m4: Use proper quoting so brackets appear in the test program. Reported by, and with help from, Bruno Haible. 2001-05-13 Jim Meyering * m4/jm-macros.m4 (major_t, minor_t): Define to unsigned int if undefined. 2001-05-11 Paul Eggert dirname code cleanup. base_name now behaves more compatibly with POSIX basename when given file names that have trailing slashes, and similarly for dir_name. Add new primitives base_len and dir_len. Put the directory-name-related decls into dirname.h. * lib/addext.c (ISSLASH, base_name): Remove; now in dirname.h. * lib/backupfile.c (base_name): Likewise. * lib/basename.c (FILESYSTEM_PREFIX_LEN, PARAMS, ISSLASH): Likewise. * lib/dirname.c (FILESYSTEM_PREFIX_LEN, ISSLASH): Likewise. * lib/makepath.c (strip_trailing_slashes): Likewise. * lib/path-concat.c (DIRECTORY_SEPARATOR, FILESYSTEM_PREFIX_LEN, ISSLASH): Likewise. * lib/rename.c (strip_trailing_slashes): Likewise. * lib/same.c (base_name): Likewise. * lib/stripslash.c (ISSLASH): Likewise. * lib/addext.c: Include after size_t is defined. * lib/backupfile.c: Likewise. * lib/addext.c (addext): Use base_len to trim redundant trailing slashes instead of doing it ourselves. But do not trim the last slash if it is not redundant. * lib/backupfile.c (find_backup_file_name, max_backup_version): Use base_len instead of rolling it ourselves. Handle the case of "" and (on DOS) "C:" correctly. * lib/basename.c: Do not include , ; no longer needed. Include , . (base_name): Allow file names ending in slashes, other than names that are all slashes. In this case, return the basename followed by the slashes. This is more general, and can be used in places where the original base_name purposely had an assertion failure. (base_len): New function. * lib/dirname.c: Include instead of . Do not include ; no longer needed. Include xalloc.h. (memrchr): Remove decl. (dir_name_r): Remove. (dir_len): Renamed from dirlen. All callers changed. Rewrite in terms of base_name, for simplicity and consistency. (dir_name): Never return NULL. All callers changed. Do not include in test program; no longer needed. return 0; is fine for test program. * lib/dirname.h (DIRECTORY_SEPARATOR, ISSLASH, FILESYSTEM_PREFIX_LEN): New macros. (base_name, base_len, dir_len, strip_trailing_slashes): New decls. * lib/path-concat.c (path_concat): Use base_len to compute base length, not strlen; this means we cannot rely on memcpy to null-terminate. * lib/same.c (STREQ): Remove. (same_name): Handle the case where the basename ends in trailing '/'. * lib/stripslash.c (strip_trailing_slashes): Return nonzero if a slash was stripped. Do not strip the last slash after a file system prefix. 2001-05-11 Paul Eggert * lib/Makefile.am (libfetish_a_SOURCES): Add strftime.c, since we now compile it on all hosts. * lib/strftime.c (my_strftime): Define to nstrftime if emacs, but only if my_strftime is not defined. (extra_args, extra_args_spec, extra_args_spec_iso): Rename from ut_argument, ut_argument_spec, ut_argument_spec_iso, respectively. Add one more extra argument: a nanoseconds value. All uses changed. (ns): New macro. (my_strftime function): Add %N format. (emacs_strftimeu): Renamed from emacs_strftime, with extra ut argument. 2001-05-09 Paul Eggert * m4/jm-macros.m4 (jm_MACROS): Do not check for fseeko; no longer used. 2001-04-21 Jim Meyering * m4/rmdir-errno.m4: Write to a new file, so that a restrictive umask doesn't interfere. 2001-04-21 Alexandre Duret-Lutz * m4/ftruncate.m4: Check for chsize. Link with ftruncate.o unconditionally if ftruncate is missing. This was required when cross-compiling to i586-mingw32msvc. 2001-04-08 Jim Meyering * lib/getdate.y (get_date): Set tm_isdst to -1 to ensure that it is recomputed; that's necessary when the offset spans a DST transition. Patch by David J. MacKenzie. Reported by Hon-Yin Kok. 2001-04-02 Jim Meyering * lib/regex.h, regex.c: Update from GNU libc. 2001-03-24 Jim Meyering * m4/jm-macros.m4: Require autoconf-2.49d. 2001-03-20 Bruno Haible * m4/iconv.m4 (jm_ICONV): Recommend GNU libiconv. 2001-03-19 Paul Eggert * lib/version-etc.c (version_etc_copyright): Update to 2001. 2001-03-17 Jim Meyering * m4/memcmp.m4 (jm_AC_FUNC_MEMCMP): Remove my copy of AC_FUNC_MEMCMP, now that the version in autoconf is equivalent. (jm_FUNC_MEMCMP): Adjust to use AC_FUNC_MEMCMP. * m4/error.m4 (jm_PREREQ_ERROR): Invoke AC_FUNC_STRERROR_R. Suggestion from Akim Demaille. * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_TEMPNAME. (jm_PREREQ_TEMPNAME): New function. 2001-03-16 Paul Eggert * lib/tempname.c (uint64_t): Define to uintmax_t if not defined, and if UINT64_MAX is not defined. Required at least for Vax Ultrix4.3, which doesn't define uint64_t. Reported by John David Anglin. 2001-03-15 Bruno Haible * lib/localcharset.c (locale_charset): Allow wildcard syntax. Also resolve alias if codeset is empty. * lib/config.charset (BeOS): Use wildcard syntax. 2001-03-13 Jim Meyering * lib/path-concat.c (path_concat) [FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX]: Don't insert a backslash when concatenating e.g., `C:' and `foo'. From Bruno Haible. 2001-03-06 Bruno Haible * lib/localcharset.c (locale_charset): Don't use setlocale(LC_CTYPE,NULL). Don't return NULL. * lib/unicodeio.c (print_unicode_char): Simplify accordingly. 2001-03-06 Bruno Haible * lib/config.charset: Update for FreeBSD 4.2 and OSF/1 5.1. Add support for DOS/DJGPP. 2001-03-01 Paul Eggert * m4/jm-macros.m4 (jm_MACROS): Use mkstemp replacement if the system lacks mkstemp. Compile our own tempname.c if we compile our own mkstemp.c, as mkstemp relies on tempname. 2001-03-01 Jim Meyering * m4/dos.m4 (jm_AC_DOS): Remove extra backslashes, now that AH_VERBATIM really does output its argument verbatim. 2001-02-28 Paul Eggert * lib/Makefile.am (libfetish_a_SOURCES): Add dup-safer.c, fopen-safer.c. (noinst_HEADERS): Add stdio-safer.h, unistd-safer.h. * lib/dup-safer.c, lib/fopen-safer.c, lib/stdio-safer.h: * lib/unistd-safer.h: New files. 2001-02-25 Paul Eggert The mkstemp replacement is taken from glibc 2.2.2, with some portability fixes for use outside glibc, as follows: * lib/tempname.c (struct_stat64): New macro. (direxists, __gen_tempname): Use it. This avoids a portability problem with Solaris 8. * lib/tempname.c (): Include if HAVE_CONFIG_H. (, , ): Include only if STDC_HEADERS || _LIBC. (): Include only if HAVE_FCNTL_H || _LIBC. (): Include only if HAVE_UNISTD_H || _LIBC. (): Include only if HAVE_SYS_TIME_H || _LIBC. (__set_errno): Define this macro if doesn't. (P_tmpdir, TMP_MAX, __GT_FILE, __GT_BIGFILE, __GT_DIR, __GT_NOCREATE): Define these macros if doesn't. (S_ISDIR, S_IRUSR, S_IWUSR, S_IXUSR): Define these macros if doesn't. Ignore S_ISDIR if STAT_MACROS_BROKEN. (stat64, __getpid, __gettimeofday, __mkdir, __open, __open64, lxstat64, __xstat64): Define if not _LIBC. (__secure_getenv): Define if ! (HAVE___SECURE_GETENV || _LIBC). (__gen_tempname): Invoke gettimeofday only if HAVE_GETTIMEOFDAY || _LIBC; otherwise, fall back on plain "time". Use macros like S_IRUSR | S_IWUSR rather than octal values like 0600. * lib/mkstemp.c (__GT_FILE): Define to zero if not defined. * lib/mkstemp.c, lib/tempname.c: New files, taken from glibc 2.2.2. 2001-02-18 Paul Eggert * m4/jm-macros.m4 (jm_CHECK_ALL_HEADERS): Check for sys/resource.h. 2001-02-17 Paul Eggert * m4/mbrtowc.m4: New file, defining jm_FUNC_MBRTOWC. * m4/mbswidth.m4 (jm_PREREQ_MBSWIDTH): Use jm_FUNC_MBRTOWC, not AC_CHECK_FUNCS(mbrtowc). * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Likewise. 2001-02-17 Paul Eggert * lib/mbswidth.c, quotearg.c (mbrtowc, mbsinit): Remove workaround macros for hosts that have mbrtowc but not mbstate_t, as we now insist on proper declarations for both before using mbrtowc. 2001-02-17 Jim Meyering * m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): Don't check for getmntent via AC_CHECK_FUNCS, since that would get a `no' and disrupt further attempts by AC_FUNC_GETMNTENT to check with e.g., -lgen on UnixWare 7.1.1. * m4/mbrtowc.m4 (jm_FUNC_MBRTOWC): Adapt to use AC_CACHE_CHECK etc., rather than AC_CACHE_VAL. 2001-02-17 Jim Meyering * lib/strtoul.c: Sync from GNU libc. Use double quotes, not <...> around included file name. * lib/strnlen.c (__strnlen): Merge in a change from GNU libc. * lib/strftime.c: Update from GNU libc (the only changes were to comments). 2001-02-17 Jim Meyering * lib/regex.c: Update from libc. 2001-02-17 Bruno Haible * lib/mbswidth.h (mbswidth): Also define as macro, to avoid prototype clash. 2001-02-16 Paul Eggert * lib/alloca.c (malloc): Undef before defining, since stdlib.h may have defined it. Needed for Encore Umax-3.0.9.16b systems. Reported by Mark Hounschell via Paul Eggert. 2001-02-07 Jim Meyering * m4/regex.m4 (jm_INCLUDED_REGEX): Add a test for the latest bug. 2001-02-05 Jim Meyering * m4/jm-macros.m4: Require autoconf-2.14d (not yet released), because it includes the patch required for `large file' support with at least HP-UX's 10.20 /bin/cc. 2001-02-03 Jim Meyering * m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): Restore prior use of AS_IF, now that it works once again (mysteriously). * m4/fsusage.m4 (jm_FILE_SYSTEM_USAGE): Likewise. 2001-01-30 Jim Meyering Don't use filenames that are 8.3-equivalent to "conftest" on DOS. * m4/chown.m4: Rename conftestchown to conftest.chown. * m4/rename.m4: s/conftestdir/conftest.d1/ and s/conftestdir2/conftest.d2/. * m4/utimes.m4: s/conftestdata/conftest.data/ Inspired by Pavel Roskin's change in autoconf. 2001-01-30 Bruno Haible * lib/config.charset: Update for FreeBSD 4.2. 2001-01-27 Jim Meyering * m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): Open-code what was a use of AS_IF. * m4/fsusage.m4 (jm_FILE_SYSTEM_USAGE): Likewise. 2001-01-26 Jim Meyering * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for stddef.h, now that quotearg.c includes it. 2001-01-26 Jim Meyering * lib/quotearg.c: Include stddef.h. * lib/quote.c: Include stddef.h. Reported by Axel Kittenberger. * lib/xmalloc.c [HAVE_DONE_WORKING_MALLOC_CHECK]: Enclose error-evoking line in double quotes so that it evokes a better diagnostic. [HAVE_DONE_WORKING_REALLOC_CHECK]: Likewise. Reported by Axel Kittenberger. 2001-01-24 Stefan Monnier * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not' as if it was a `charset'. 2001-01-21 Bruno Haible * m4/iconv.m4 (jm_ICONV): Also check whether the iconv declaration has const. 2001-01-21 Bruno Haible * lib/unicodeio.c (print_unicode_char): Cast the second iconv() arg, to avoid a warning. Add back 'const' to inptr. 2001-01-20 Jim Meyering Be sure that headers are checked before used in code compiled for the type checks. * m4/jm-macros.m4 (jm_MACROS): Remove all header checks. In place of that, invoke jm_CHECK_ALL_TYPES. (jm_CHECK_ALL_HEADERS): New functions with the above checks. (jm_CHECK_ALL_TYPES): Require jm_CHECK_ALL_HEADERS. Alan Iwi reported a build failure on an f300-fujitsu-uxpv4.1_ES; The check for ssize_t was mistakenly run before the test for unistd.h. The configure-time check for stdbool.h was missing. * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_HASH. (jm_PREREQ_HASH): New function. 2001-01-17 Jim Meyering * m4/fsusage.m4 (jm_FILE_SYSTEM_USAGE): Use AS_IF, not AS_IFELSE, for autoconf-2.49c. * m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): Likewise. 2001-01-16 Jim Meyering * lib/basename.c: Include , needed by assert on SunOS 4. From Bruno Haible. 2001-01-14 Jim Meyering * m4/rename.m4: Use temporary directories named conftestdir{,2}, not foo and bar. Create conftestdir/ in the script, not in the C code. Remove directories in the script, not in the C code. Remove conftestdir{,2} before trying to create the directory. Make the entire configure script fail if the mkdir fails. 2001-01-14 Jim Meyering * lib/rename.c: New file. From Volker Borchert. Include stdlib.h, string.h or strings.h, and xalloc.h. Use strip_trailing_slashes rather than open-coding it. 2001-01-03 Paul Eggert * lib/strftime.c: Sync with glibc time/strftime.c 1.81. 2001-01-03 Jim Meyering * lib/unicodeio.c (print_unicode_char): Remove `const' from declaration of local `inptr' to avoid warning with some system declarations of iconv. 2001-01-02 Volker Borchert * m4/rename.m4: New file. * m4/jm-macros.m4 (jm_MACROS): Require vb_FUNC_RENAME. 2001-01-01 Jim Meyering * m4/prereq.m4 (jm_PREREQ_READUTMP): Include utmp.h (if available), even on systems with utmpx.h. It's necessary for the declaration of utmp's ut_user member. Reported by Andreas Jaeger. * m4/check-decl.m4 (jm_CHECK_DECLS): Include grp.h and pwd.h if available. They are required for the declarations of getgrgid and getpwuid resp. (_jm_DECL_HEADERS): Check for grp.h and pwd.h. Reported by Andreas Jaeger. 2001-01-01 Alexandre Duret-Lutz * m4/libintl.m4 (AM_GNU_GETTEXT): Define MKINSTALLDIRS by expanding the value of $ac_aux_dir, as in AM_MISSING_HAS_RUN, so `make install' also works in VPATH builds. 2000-12-31 Alexandre Duret-Lutz * m4/libintl.m4 (AM_WITH_NLS): When using AC_CONFIG_AUX_DIR, prepend $(top_srcdir) to the value of MKINSTALLDIRS so that it can be used in subdirectories. 2000-12-29 Paul Eggert * lib/modechange.c: Do not assume that mode_t uses the traditional octal encoding. E.g. "chmod 1 FOO" should set the other-execute bit of FOO even if S_IXOTH != 1. (SUID, SGID, SVTX, RUSR, WUSR, XUSR, RGRP, WGRP, XGRP, ROTH, WOTH, XOTH, ALLM): New macros. (S_ISUID, S_ISGID, S_ISVTX, S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH): Use them. (S_ISGID): Fix typo; it was defaulting to the same value as S_ISUID. (S_IRWXU, S_IRWXG, S_IRWXO): Specify defaults in terms of the above. (mode_compile): No need to use uintmax_t; unsigned long is long enough. Don't bother to get suffix since we don't use it. 2000-12-26 Jim Meyering * m4/dos.m4 (jm_AC_DOS): Rewrite (though it's still a stub) to work better with autoheader. 2000-12-24 Jim Meyering * lib/hash.c (is_prime): Return explicit boolean values. (hash_get_first): Return NULL to appease Irix5.6's 89. Reported by Nelson Beebe. 2000-12-19 Bruno Haible * lib/localcharset.c (locale_charset): Add support for Win32. 2000-12-18 Paul Eggert * lib/physmem.h, lib/physmem.c: New files. * lib/Makefile.am (libfetish_a_SOURCES): Add physmem.c. (noinst_HEADERS): Add physmem.h. * lib/xstrtol.c (__xstrtol): Add undocumented suffixes 'g' and 't' for compatibility with Solaris 8 sort. 2000-12-18 Bruno Haible * lib/config.charset: Add support for BeOS. 2000-12-17 Jim Meyering * m4/dos.m4 (jm_AC_DOS): New file and macro. * m4/jm-macros.m4 (jm_MACROS): Require jm_AC_DOS. 2000-12-16 Jim Meyering This bug had a serious impact on chown: `chown N:M FILE' (for integer N and M) would have treated it like `chown N:N FILE'. * lib/userspec.c (parse_user_spec): Fix typo: s/u/g/. 2000-12-16 Jim Meyering * lib/getusershell.c [!SHELLS_FILE && __DJGPP__]: Define SHELLS_FILE to a file name that's useful on djgpp systems. Include stdlib.h. (ADDITIONAL_DEFAULT_SHELLS): Define. (default_shells): Prepend ADDITIONAL_DEFAULT_SHELLS. Based mostly on a patch from Prashant TR. 2000-12-16 Bruno Haible * lib/config.charset: Add ISO-8859-3, BIG5HKSCS, GB18030, JOHAB, VISCII, CP874, CP949, CP950, CP1250, CP1253, CP1254, CP1255, CP1256, CP1257 to the list of canonical encodings. Rename EUC-CN to GB2312. 2000-12-08 Andreas Schwab * lib/mbswidth.c (mbsnwidth): Don't loop endlessly when called with an invalid mulitbyte sequence and with the MBSW_ACCEPT_INVALID flag set. 2000-12-07 Jim Meyering * lib/stripslash.c (ISSLASH): Define. (strip_trailing_slashes): Use ISSLASH rather than comparing against `/'. From Prashant TR. * lib/dirname.c (FILESYSTEM_PREFIX_LEN): Define. (dir_name_r): Declare this function as static. [BACKSLASH_IS_PATH_SEPARATOR]: Fix a bug that'd manifest itself on a name containing a mix of slashes and backslashes. Make this function work with names starting with a DOS-style drive letter and colon prefix. (dir_name): Append `.' if necessary. Based mostly on patches from Prashant TR and Eli Zaretskii. * lib/dirname.h (dir_name_r): Remove prototype. 2000-12-06 Paul Eggert * m4/off_t-format.m4: Remove this file. * m4/jm-macros.m4 (jm_MACROS): Remove jm_SYS_OFF_T_PRINTF_FORMAT. 2000-12-06 Jim Meyering * m4/xstrtoumax.m4 (jm_AC_PREREQ_XSTRTOUMAX): If we need the replacement strtoull, we may well need the replacement strtoul, too. Check for declarations of strtoul and strtoull. Check for strtol. Mainly as a cue to cause automake to include strtol.c -- that file is included by each of strtoul.c and strtoull.c. Check for limits.h -- strtol.c needs it. 2000-12-05 Jim Meyering * lib/dirname.c (dir_name_r): Add `const' in a few local declarations. 2000-12-04 Jim Meyering * lib/path-concat.c: [!HAVE_DECL_MALLOC]: Declare malloc. Also include memory.h, stdlib.h, unistd.h if appropriate. Reported by Andreas Jaeger (conflicting declaration of malloc). 2000-12-02 Jim Meyering * m4/off_t-format.m4 (OFF_T_PRINTF_FORMAT_STRING): New file/macro. * m4/jm-macros.m4 (jm_MACROS): require it. 2000-12-02 Jim Meyering * lib/closeout.h: Make idempotent, to avoid some obscure warnings. 2000-12-01 Paul Eggert * lib/memrchr.c: Include before any system include file. 2000-11-30 Jim Meyering * m4/jm-macros.m4 (jm_MACROS): Check for stdint.h. 2000-11-30 Jim Meyering * m4/getloadavg.m4: s/ifval/m4_ifval/ to accommodate new autoconf. 2000-11-29 Paul Eggert * lib/dirname.c (dir_name_r): Fix typo: int -> size_t. 2000-11-26 Jim Meyering * lib/memcoll.c: Include sys/types.h. From Werner Almesberger. 2000-11-22 Paul Eggert * lib/strftime.c (my_strftime): Do not invoke mbrlen with a size of (size_t) -1; it's not portable. 2000-11-17 Jim Meyering * lib/strstr.c: Update from GNU libc. 2000-11-17 Akim Demaille * lib/obstack.h: Formatting changes. (obstack_grow, obstack_grow0): Don't cast WHERE at all: that would prevent type checking. (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't cast the value to (void *): assigning a `foo *' to a `void *' variable is valid. (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int. 2000-11-16 Jim Meyering * lib/strverscmp.c: Incorporate weak-alias-related changes from glibc. 2000-11-11 Jim Meyering * lib/error.c: Add a couple #includes, merging from GNU libc version. 2000-11-10 Jim Meyering * lib/obstack.h: Update from GNU libc. * lib/obstack.c: Likewise. 2000-11-08 Bruno Haible * m4/jm-macros.m4 (jm_MACROS): Add test for wcrtomb. 2000-11-06 Paul Eggert * lib/getusershell.c (setusershell): Use rewind rather than fseek/fseeko, to avoid configuration hassles with fseeko. Don't bother opening SHELLS_FILE if shellstream is NULL; it's not necessary. 2000-11-05 Jim Meyering * lib/makepath.h (make_dir): Declare. * lib/makepath.c (make_dir): Remove `static' attribute. Tweak a comment. 2000-11-04 Jim Meyering * m4/regex.m4: Use the `m4_' prefix on `syscmd' and `m4_sysval'. 2000-11-04 Alexandre Duret-Lutz * lib/hash.c (hash_get_next): Fix a thinko: when ENTRY is the last one in a bucket, advance to the next bucket. 2000-11-02 Vesselin Atanasov * lib/fnmatch.c: Do not comment out all the code if we are using the GNU C library, because in some cases we are replacing buggy code in the GNU C library itself. 2000-10-30 Stefan Monnier * regex.c (re_iswctype, re_wctype_to_bit): Fix braino. (regex_compile): Catch bogus \(\1\). 2000-10-30 Paul Eggert * lib/fnmatch.c (FOLD): Do not assume that characters are unsigned. (fnmatch): Fix some FNM_FILE_NAME and FNM_LEADING_DIR bugs, e.g. fnmatch("d*/*1", "d/s/1", FNM_FILE_NAME) incorrectly yielded zero. 2000-10-30 Paul Eggert * lib/error.h, getline.h, modechange.h: Remove "2000" from Copyright line, as the file hasn't been changed this year other than in the copyright notice. * lib/xalloc.h: Add "2000" to Copyright line, as this file was changed this year. 2000-10-29 Jim Meyering * m4/fsusage.m4: s/AC_SHELL_IFELSE/AS_IFELSE/ to match autoconf renaming. * m4/ls-mntd-fs.m4: Likewise 2000-10-29 Jim Meyering * lib/xstat.in: Fix grammar in comment. 2000-10-29 Greg Louis * lib/regex.h (__restrict_arr): Move definition out of #ifndef block. Required because egcs-2.91.66 (aka 1.1.2) defines __restrict, but doesn't define __restrict_arr. 2000-10-28 Jim Meyering * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_MEMCHR. (jm_PREREQ_MEMCHR): New function. 2000-10-28 Jim Meyering * lib/memchr.c: Update from libc. Adjust for portability: [HAVE_STDLIB_H]: Include stdlib.h. [HAVE_BP_SYM_H || _LIBC]: Guard inclusion of bp-sym.h. Undef __memchr, too. [!weak_alias]: Define __memchr to memchr. * lib/regex.c: Update from libc. * lib/regex.h: Likewise. * lib/getopt1.c: Likewise. * lib/memcmp.c: Likewise. * lib/getusershell.c (setusershell) [HAVE_FSEEKO]: Use fseeko. Avoid using fseek, when possible -- it's broken by design. Patch by Ulrich Drepper. 2000-10-27 Stefan Monnier * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal) (re_match_2_internal, re_match_2_internal, re_match_2_internal): Giving in to popular pressure to shut up the compiler with casts. 2000-10-26 Jim Meyering * lib/strftime.c: Update from libc. 2000-10-25 Stefan Monnier * regex.c: More `unsigned char' -> `re_char' changes. Also change several `int' into `re_wchar_t'. (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove. (PUSH_FAILURE_POINTER): Don't cast any more. (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'. We want GCC to complain, since this piece of code makes re_match non-reentrant, which *should* be fixed. (GET_BUFFER_SPACE): Use size_t rather than unsigned long. (EXTEND_BUFFER): Use RETALLOC. (SET_LIST_BIT): Don't cast. (re_wchar_t): New type. (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC that those two functions will always properly return. (IMMEDIATE_QUIT_CHECK): Cast to void. (analyse_first): Use recursion rather than an explicit stack. (re_compile_fastmap): Can't fail anymore. (re_search_2): Don't check re_compile_fastmap for failure. (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT. Now also sets the new value (passed in a new argument). (re_match_2_internal): Use it. Also, use a new var `reg' of type size_t when looping through regs rather than reuse the inappropriate `mcnt'. 2000-10-25 Jim Meyering * lib/obstack.c: Update from libc. 2000-10-24 Kenichi Handa * regex.c (regex_compile): Change the way of handling a range from a char less than 256 to a char not less than 256. 2000-10-24 Andrew Innes * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on NT-Emacs only. (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT, so that re_search functions only quit when callers expect them to. 2000-10-23 Jim Meyering * lib/hard-locale.c (hard_locale): Revert last change -- it was simply wrong. That set_locale call must not have any side effects. From Paul Eggert. 2000-10-22 Jim Meyering * lib/md5.c (md5_process_block) [OP]: Use `rol', not CYCLIC. [CYCLIC]: Remove now-unused definition. * lib/save-cwd.c (O_DIRECTORY): Define, if needed. (save_cwd) [HAVE_FCHDIR]: Use O_DIRECTORY when opening ".". Suggestion from Ulrich Drepper. 2000-10-21 Jim Meyering * m4/check-decl.m4 (jm_CHECK_DECLS): Also check for memrchr. * m4/prereq.m4 (jm_PREREQ_DIRNAME): New macro. * m4/jm-macros.m4 (AC_REPLACE_FUNCS): Add memrchr. 2000-10-21 Jim Meyering * lib/dirname.c (memrchr): Declare if necessary. (dir_name): Remove the restriction that there be no trailing slashes. Now, this code skips past them, effectively ignoring them. [TEST_DIRNAME] (main): New unit tests. * lib/memrchr.c: New file from GNU libc. Undef __memrchr, too. [!weak_alias]: Define __memrchr to memrchr. Guard weak_alias use with `#ifdef weak_alias'. 2000-10-21 Jim Meyering * lib/dirname.c (dir_name_r): New function, factored out of dir_name. (dir_name): Use dir_name_r. * lib/dirname.h (dir_name_r): Declare it. 2000-10-17 Jim Meyering * lib/quote.h (PARAMS): Define and use. Reported by Akim Demaille. * lib/getopt.c: Update from libc. 2000-10-16 Jim Meyering * lib/hard-locale.c (hard_locale): Use "", not 0 as 2nd arg to setlocale. From Jan Fedak. 2000-10-15 Stefan Monnier * regex.c (WIDE_CHAR_SUPPORT): Define if _LIBC as well. 2000-09-25 Jim Meyering * lib/md5.h (rol): Define (from GnuPG). * lib/sha.c: Give credit (GnuPG) where due. (M): Use rol rather than open-coding it. Add a FIXME comment. 2000-09-21 Jim Meyering * lib/userspec.c (parse_user_spec): Remove debugging printf I'd added. Reported by Michael Stone. 2000-09-20 Jim Meyering * lib/Makefile.am (libfetish_a_SOURCES): Add sha.c. (noinst_HEADERS): Add sha.h. Based on code from Scott G. Miller and from GnuPG. 2000-09-18 Jim Meyering * m4/getloadavg.m4 (AC_FUNC_GETLOADAVG): Restore the initial value of LIBS. Otherwise, everyone ends up linking with -lelf for some configurations. Reported by Mike Stone. 2000-09-15 Jim Meyering * lib/regex.c: Update from libc. 2000-09-10 Jim Meyering * lib/getopt.c (_getopt_internal): Update from glibc. 2000-09-09 Jim Meyering * lib/quotearg.c: Rename ISASCII to IN_CTYPE_DOMAIN, so people don't think it should be used as a general replacement for isascii. * lib/fnmatch.c: Likewise. * lib/mbswidth.c: Likewise * lib/regex.c: Likewise. Don't use atoi. * lib/userspec.c: Include sys/param.h and limits.h. Include xstrtol.h. (CHAR_BIT, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Define. (UID_T_MAX, GID_T_MAX, MAXUID, MAXGID): Define. (parse_user_spec): Use xstrtoul, not atoi when converting numeric UID, GID. Check range. 2000-09-06 Jim Meyering * lib/getopt.c (_getopt_internal): Update from glibc. 2000-08-30 Jim Meyering * lib/strftime.c: Merge in changes from GNU libc. 2000-08-26 Jim Meyering * m4/jm-macros.m4: Use jm_FUNC_FPENDING. * m4/fpending.m4: New file. 2000-08-26 Jim Meyering * lib/closeout.c: Include "__fpending.h". (close_stdout_status): Return right away if there's nothing to flush. * lib/Makefile.am (noinst_HEADERS): Add __fpending.h. * lib/__fpending.c: New file. * lib/__fpending.h: New file. 2000-08-20 Jim Meyering * m4/check-decl.m4: Include utmp.h `#if HAVE_UTMP_H', rather than `#if !HAVE_UTMPX_H'. The latter would lose on systems with neither utmp.h nor utmpx.h. Reported by Eli Zaretskii. 2000-08-11 J. David Anglin Improve fileutils installation on systems where running programs (like install) can't be unlinked. * m4/unlink-busy.m4 (jm_FUNC_UNLINK_BUSY_TEXT): New file/macro. * m4/jm-macros.m4: Use jm_FUNC_UNLINK_BUSY_TEXT. 2000-08-07 Paul Eggert Standardize on "memory exhausted" instead of "Memory exhausted" or "virtual memory exhausted". * lib/obstack.c (print_and_abort): Use "memory exhausted", not "virtual memory exhausted". * lib/same.c (same_name): Invoke xalloc_die instead of printing our own message. * lib/userspec.c (parse_user_spec): Likewise. * lib/bumpalloc.h: comment fix * lib/same.c, userspec.c: Include xalloc.h. * lib/xalloc.h (xalloc_msg_memory_exhausted): Now char const[], not char *const and pointing to a constant array. * lib/xmalloc.c (xalloc_msg_memory_exhausted): Likewise. (xrealloc): Comment fix. * lib/userspec.c (parse_user_spec): Don't translate a message until just before returning, to avoid unnecessary translation. 2000-08-07 Jim Meyering * lib/addext.c, argmatch.c, argmatch.h, backupfile.h, bumpalloc.h, chown.c, diacrit.h, dirname.h, dup2.c, exclude.h, fileblocks.c, fnmatch.c, fnmatch.h, fsusage.c, fsusage.h, getdate.h, getgroups.c, gethostname.c, getopt.h, group-member.c, hard-locale.c, hash.h, isdir.c, lchown.c, linebuffer.c, linebuffer.h, long-options.h, malloc.c, md5.c, md5.h, memchr.c, memcmp.c, memcoll.c, memset.c, mktime.c, modechange.h, obstack.h, pathmax.h, realloc.c, rmdir.c, safe-read.c, save-cwd.c, stime.c, stpcpy.c, strcasecmp.c, strcspn.c, strdup.c, stripslash.c, strstr.c, strtod.c, strtol.c, strtoul.c, strtoull.c, strtoumax.c, utime.c, version-etc.h, xalloc.h, xstrdup.c, xstrtoumax.c, yesno.c: Back out Copyright date changes for each file with no change this year. This eases coordination with other programs using the same source code modules. From Paul Eggert. 2000-08-06 Paul Eggert * m4/mbstate_t.m4 (AC_MBSTATE_T): Define mbstate_t to be int, not char, for compatibility with glibc 2.1.3 strftime.c. 2000-08-03 Greg McGary * lib/regex.c (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND): New macros. (EXTEND_BUFFER): Use them. 2000-08-01 Jim Meyering * lib/dirname.c (ISSLASH): Define. (BACKSLASH_IS_PATH_SEPARATOR): Define. (dir_name) [BACKSLASH_IS_PATH_SEPARATOR]: Handle the case in which both `\' and `/' may be use as path separators. Based on a patch from Prashant TR. 2000-07-31 Paul Eggert * lib/quotearg.c (quotearg_n_options): Don't make the initial slot vector a constant, since it might get modified. 2000-07-31 Jim Meyering * lib/xmalloc.c: Use `virtual memory exhausted', not `Memory exhausted'. * lib/obstack.c (print_and_abort): Likewise. 2000-07-30 Paul Eggert * lib/quotearg.c (quotearg_n_options): Preallocate a slot 0 buffer, so that the caller can always quote one small component of a "memory exhausted" message in slot 0. From a suggestion by Jim Meyering. 2000-07-30 Jim Meyering * lib/makepath.c (make_path): Quote the other instance, too. * lib/quotearg.c (N_STATIC_SLOTVECS): Define. (STATIC_BUF_SIZE): Define. (quotearg_n_options): Use only statically allocated storage when N < N_STATIC_SLOTVECS and the length of the quoted result is smaller than STATIC_BUF_SIZE. 2000-07-29 Jim Meyering * lib/diacrit.c (diacrit_diac): Use __MSDOS__ in favor of MSDOS. * lib/dirname.c (dir_name): Likewise. * lib/basename.c (base_name): Use ISSLASH rather than comparing against `/'. * lib/dirname.c (dir_name) [MSDOS]: Declare `lim' to be const. (dir_name): Assert that there are no trailing slashes. 2000-07-29 Bruno Haible * lib/mbswidth.h (mbswidth): Add a flags argument. (mbswidth): New declaration. (MBSW_ACCEPT_INVALID, MBSW_ACCEPT_UNPRINTABLE): New macros. * lib/mbswidth.c (mbswidth): Add a flags argument. (mbsnwidth): New function. 2000-07-24 Jim Meyering * lib/mbswidth.c: Remove useless #else. From Bruno Haible. 2000-07-23 Paul Eggert * m4/mbswidth.m4 (jm_PREREQ_MBSWIDTH): Check for wcwidth declaration. 2000-07-23 Paul Eggert * lib/quotearg.c: Streamline by invoking multibyte code only if needed. : Include only if HAVE_MBRTOWC && 1 < MB_LEN_MAX. (MB_CUR_MAX): Redefine to 1 if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX). (quotearg_buffer_restyled): If a unibyte locale, don't bother to invoke multibyte primitives. 2000-07-23 Paul Eggert * lib/quotearg.c: Include even if ! (HAVE_MBRTOWC && 1 < MB_LEN_MAX), so that mbstate_t is always defined. Do not inspect MB_LEN_MAX, since it's incorrectly defined to be 1 in at least one GCC installation, and this configuration error is likely to be common. Ignoring MB_LEN_MAX hurts performance on hosts that have mbrtowc but have only unibyte locales, but I assume these hosts are rare. 2000-07-23 Paul Eggert * lib/mbswidth.c (_XOPEN_SOURCE): Don't define; this causes problems on Solaris 7. (wcwidth) [!HAVE_DECL_WCWIDTH]: Declare. 2000-07-23 Jim Meyering * m4/check-decl.m4 (jm_CHECK_DECLS): Check for declarations of these, too: getgrgid, getpwuid, getuid. 2000-07-23 Jim Meyering * lib/basename.c (base_name): Add an assertion. 2000-07-23 Bruno Haible * lib/quotearg.c: When the system forces us to redefine mbstate_t, shadow its mbsinit function. 2000-07-17 Bruno Haible * lib/mbswidth.h: New file. * lib/mbswidth.c: New file. * lib/Makefile.am (libfetish_a_SOURCES): Add mbswidth.c. (noinst_HEADERS): Add mbswidth.h. 2000-07-17 Bruno Haible * lib/config.charset: Add support for FreeBSD. Improve support for HP-UX and IRIX 6. 2000-07-16 Bruno Haible * m4/mbswidth.m4: New file. * m4/prereq.m4 (jm_PREREQ): Call jm_PREREQ_MBSWIDTH. 2000-07-15 Jim Meyering * lib/makepath.c: Include quote.h. (make_path): Convert "`%s'" in format strings to "%s", and wrap each corresponding argument in a `quote (...)' call. Give better diagnostics. * lib/Makefile.am (libfetish_a_SOURCES): Add quote.c. (noinst_HEADERS): Add quote.h. * lib/quote.c (quote, quote_n): New file. Two functions taken verbatim from tar's src/misc.c. * lib/quote.h: New file. Prototypes for same. 2000-07-14 Paul Eggert From a suggestion by Bruno Haible. * lib/quotearg.c (mbrtowc): Do not use HAVE_WCHAR_H in the definition. Use defined mbstate_t, not HAVE_MBSTATE_T_OBJECT, to decide whether to define the BeOS workaround macro; this adjusts to the change to AC_MBSTATE_T. 2000-07-14 Jim Meyering * m4/xstrtoumax.m4 (jm_AC_PREREQ_XSTRTOUMAX): Require jm_AC_TYPE_UINTMAX_T. 2000-07-13 Paul Eggert * lib/quotearg.h (enum quoting style): New enum clocale_quoting_style. * lib/quotearg.c (quoting_style_args, quoting_style_vals, quotearg_buffer_restyled): Add support for clocale_quoting_style. Undo previous change to locale_quoting_style behavior, and undo the "{LEFT QUOTATION MARK}" and "{RIGHT QUOTATION MARK}" msgids. 2000-07-10 Paul Eggert From a suggestion by Bruno Haible. * m4/mbstate_t.m4 (AC_MBSTATE_T): Renamed from AC_MBSTATE_T_OBJECT. All uses changed. Change from a two-part test, which defines both HAVE_MBSTATE_T_OBJECT and mbstate_t, to a single-part test that simply defines mbstate_t. * m4/prereq.m4 (jm_PREREQ_QUOTEARG): s/AC_MBSTATE_T_OBJECT/AC_MBSTATE_T/. 2000-07-10 Jim Meyering * m4/strerror_r.m4: Mirror the correction made in autoconf. * m4/gnu-source.m4: Output to confdefs.h directly. Suggestion from Akim Demaille. 2000-07-09 Paul Eggert The old behavior of quoting `like this' doesn't look good with newer, ISO-style fonts. See: http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html Instead, quote "like this" by default. Let the translator tailor the locale-specific quoting behavior by providing translations for {LEFT QUOTATION MARK} and {RIGHT QUOTATION MARK}. * lib/quotearg.c (N_): New macro. (gettext_default): New function. (quotearg_buffer_restyled): Use gettext_default ("{LEFT QUOTATION MARK}", "\"") for left quote, and gettext_default ("{RIGHT QUOTATION MARK}", "\"") for right quote. 2000-07-09 Jim Meyering * m4/jm-macros.m4 (jm_MACROS): Add a test to see if -lm is required to link seq. If so, set SEQ_LIBM to -lm. From Bruno Haible. * m4/gnu-source.m4 (AC__GNU_SOURCE): New file/macro. * m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Require it. 2000-07-09 Jim Meyering * lib/Most files: Update copyright dates to include 2000. 2000-07-08 Jim Meyering * lib/xgethostname.c (ENAMETOOLONG): Define to an unlikely value if not defined. (xgethostname): Remove now-unnecessary #ifdef. Move declaration of `err' into loop where it's used. 2000-07-05 Paul Eggert and Bruno Haible * m4/mbstate_t.m4 (AC_MBSTATE_T_OBJECT): Test for mbstate_t only if the test for an object-type mbstate_t fails. This prevents us from mistakenly reporting that mbstate_t is a system object type after we "#define mbstate_t int" to work around its lack. 2000-07-05 Paul Eggert and Bruno Haible * lib/quotearg.c (mbrtowc): Declare returned type, since BeOS doesn't. 2000-07-05 Bruno Haible * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Pass a reasonably large buffer to strerror_r. Include for use of isalpha. 2000-07-05 Bruno Haible * lib/xgethostname.c (xgethostname): Protect against the SunOS 5.5 bug by allocating a larger buffer. Test the gethostname return value for being >= 0, not == 0, for BeOS. Don't exhaust memory if gethostname returns an error and ENAMETOOLONG isn't defined. 2000-07-05 Bruno Haible * lib/quotearg.c (struct quoting_options): Simplify quote_these_too dimension. 2000-07-04 Jim Meyering * m4/fsusage.m4 (jm_FILE_SYSTEM_USAGE): Use plain old `echo' instead of the deprecated AC_CHECKING. 2000-07-04 Jim Meyering * lib/strndup.c: [!HAVE_DECL_STRNLEN]: Declare strnlen. Reported by Bruno Haible. 2000-07-04 Jim Meyering * lib/quotearg.c: Make inclusion of independent of whether HAVE_MBRTOWC is set. Required at least for irix-5.6, which lacks mbrtowc. 2000-07-03 Paul Eggert * m4/mbstate_t.m4 (AC_MBSTATE_T_OBJECT): Port to autoconf 2.13. Add AC_CHECK_HEADERS(stdlib.h), since we use HAVE_STDLIB_H. 2000-07-03 Paul Eggert and Bruno Haible * lib/quotearg.c (mbrtowc): Assign to *pwc, and return 1 only if result is nonzero. (iswprint): Use ISPRINT when substituting our own mbrtowc. 2000-07-03 Jim Meyering * m4/check-decl.m4 (AC_CHECK_DECLS): Add strnlen. 2000-07-03 Jim Meyering * lib/readutmp.h: [HAVE_UTMPX_H]: Include if HAVE_UTMP_H. This is necessary to get a definition of e.g., UTMP_FILE on HP-UX 10.20. From Bob Proulx. 2000-07-02 Jim Meyering * m4/mbstate_t.m4: Also define mbstate_t, if necessary. * m4/chown.m4: Replace each use of AC_SUBST(LIBOBJS)/LIBOBJS=... with AC_LIBOBJ(function_name). * m4/chown.m4: Likewise. * m4/fnmatch.m4: Likewise. * m4/ftruncate.m4: Likewise. * m4/getgroups.m4: Likewise. * m4/getline.m4: Likewise. * m4/group-member.m4: Likewise. * m4/jm-macros.m4: Likewise. * m4/lstat.m4: Likewise. * m4/malloc.m4: Likewise. * m4/memcmp.m4: Likewise. * m4/nanosleep.m4: Likewise. * m4/putenv.m4: Likewise. * m4/realloc.m4: Likewise. * m4/regex.m4: Likewise. * m4/stat.m4: Likewise. * m4/strftime.m4: Likewise. 2000-07-02 Jim Meyering * lib/quotearg.c (mbstate_t): Don't define here. 2000-07-02 Jim Meyering * lib/nanosleep.c (SIGCONT): Define if not already defined. 2000-07-01 Jim Meyering * m4/uptime.m4: Put double quotes around use of $cross_compiling. 2000-07-01 Jim Meyering * m4/ls-mntd-fs.m4: Remove a `FIXME' comment and fix the associated problem. 2000-07-01 Bruno Haible * m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): Rename BeOS specific macro from MOUNTED_NEXT_DEV to MOUNTED_FS_STAT_DEV. 2000-07-01 Bruno Haible * lib/mountlist.c: Use MOUNTED_FS_STAT_DEV instead of MOUNTED_NEXT_DEV, per change in ../m4/ls-mntd-fs.m4. (read_filesystem_list): Ignore symbolic links. 2000-06-29 Jim Meyering * lib/same.c: Include or , as appropriate, for declaration of strcmp. * lib/long-options.c: Include , for declaration of exit. * lib/mountlist.c (fsp_to_string) [HAVE_F_FSTYPENAME_IN_STATFS]: Avoid warning by casting result to `char *' to remove `const'. 2000-06-28 Jim Meyering * m4/mbstate_t.m4: Use stdlib.h, not stdio.h. The latter is not included by quotearg.c, for which we perform this test. From Bruno Haible. 2000-06-27 Bruno Haible * m4/check-decl.m4 (_jm_DECL_HEADERS): Check for utmp.h as well. * m4/prereq.m4 (jm_PREREQ_READUTMP): Likewise. If either or exists, put readutmp.o into LIBOBJS. 2000-06-27 Bruno Haible * lib/Makefile.am (libfetish_a_SOURCES): Remove readutmp.c. 2000-06-26 Paul Eggert savedir now sets errno on failure and invokes xmalloc to get memory. Fix a couple of other minor bugs while we're at it. * lib/savedir.c (): Do not include; there's no need. (NAMLEN): Remove macro. (malloc, realloc): Remove decls. (stpcpy): Likewise. ("xalloc.h"): Include. (NAME_SIZE_DEFAULT): New macro. (savedir): Use xmalloc / xrealloc to allocate memory. Use NAME_SIZE_DEFAULT if name_size is negative or overflows to zero. Skip "" directory entries. Use strlen to calculate directory entry length, since the old method is rarely used these days and isn't worth supporting. Don't use a pointer after freeing it. Check for integer overflow when calculating allocation size. Use memcpy to copy entries, instead of stpcpy. Set errno properly when returning NULL. Check for readdir error. 2000-06-26 Jim Meyering * lib/posixtm.c [HAVE_STDLIB_H]: Include stdlib.h, for decl of abort. 2000-06-25 Jim Meyering * m4/mbstate_t.m4: Include stdio.h before wchar.h to work around Linux header bug when _XOPEN_SOURCE is defined to 500. 2000-06-25 Bruno Haible * lib/unicodeio.c (print_unicode_char): Work around ansi2knr deficiency. 2000-06-25 Bruno Haible * lib/getusershell.c (xmalloc, xrealloc): Remove functions. Include xalloc.h. Don't include . Don't declare malloc, realloc. 2000-06-24 Jim Meyering * m4/strerror_r.m4: Revive this file -- to try out an experimental version of AC_FUNC_STRERROR_R that may work even on BeOS, a system for which strerror does return char*, but which lacks a conveniently accessible declaration of the function. If the compile-test says strerror_r doesn't work, then resort to a `run'-test that works on BeOS and segfaults on DEC Unix. 2000-06-24 Jim Meyering * lib/error.c [!HAVE_DECL_STRERROR_R]: Declare strerror_r. 2000-06-23 Paul Eggert * m4/mbstate_t.m4: New file, defining AC_MBSTATE_T_OBJECT. * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Use it. Add check for iswprint. 2000-06-23 Paul Eggert * lib/quotearg.c: Include after , for Solaris 2.5. (mbrtowc, mbstate_t): Define substitutes if HAVE_MBRTOWC && HAVE_WCHAR_H && !HAVE_MBSTATE_T_OBJECT. (iswprint): Define to 1 if !defined iswprint && !HAVE_ISWPRINT, not if ! (HAVE_MBRTOWC && HAVE_WCHAR_H). 2000-06-23 Jim Meyering * m4/afs.m4: Add missing AC_MSG_RESULT. Reported by Bruno Haible. * m4/fsusage.m4: s/AC_MSG_CHECKING/AC_CHECKING/. Suggestion from Bruno Haible. 2000-06-23 Jim Meyering * lib/getpass.c: New file, from Bruno Haible. Required for BeOS. 2000-06-21 Jim Meyering * m4/jm-macros.m4 (AC_REPLACE_FUNCS): Add getpass. 2000-06-21 Jim Meyering * lib/Makefile.am (libfetish_a_SOURCES): Add getstr.c. (noinst_HEADERS): Add getstr.h. * lib/getline.c (getstr): Move into a separate file. * lib/getstr.c (getstr): New file, extracted from getline.c, with the following changes: new parameter, delim2; both delim[12] parameters have type `int', not `char'. The latter would lose with 8-bit delimiters. * lib/getstr.h: New file. 2000-06-21 Bruno Haible * lib/xgetcwd.c (xgetcwd): If the required pathname length is smaller than 1024, return a memory chunk of least possible size, instead of size PATH_MAX + 2. In the loop, increment the size proportionally. Use free/xmalloc instead of xrealloc to avoid copying for very long paths. 2000-06-21 Bruno Haible * lib/path-concat.c (path_concat): Don't access dir[-1] if dir is the empty string. 2000-06-21 Bruno Haible * lib/canon-host.c (canon_host): Use malloc and memcpy to copy an address, not strdup. Include and don't declare free(). 2000-06-19 Jim Meyering * lib/getloadavg.c [HAVE_NLIST_H] (NLIST_STRUCT): Define. 2000-06-18 Jim Meyering * m4/jm-macros.m4 (AC_REPLACE_FUNCS): Remove mkdir. * m4/link-follow.m4 (jm_AC_FUNC_LINK_FOLLOWS_SYMLINK): Change the `checking whether...' message to be consistent with that of the lstat test. 2000-06-18 Jim Meyering * lib/mkdir.c: Remove file, due mainly to copyright incompatibility. Besides, these days every porting target provides a mkdir function. * lib/strnlen.c: Include memory.h, string.h, and/or strings.h as needed. (this snippet comes from src/system.h). 2000-06-16 Bruno Haible * m4/glibc21.m4 (jm_GLIBC21): Define GLIBC21 for Makefiles, not for C. 2000-06-15 Paul Eggert * lib/human.c (adjust_value): New function. (human_readable_inexact): Apply rounding style even when printing approximate values. 2000-06-14 Paul Eggert * lib/human.c (human_readable_inexact): Allow an input block size that is not a multiple of the output block size, and vice versa. Reported by Piergiorgio Sartor. 2000-06-14 Paul Eggert * lib/getdate.y (get_date): Apply relative times after time zone indicator, not before. Reported by Todd A. Jacobs. 2000-06-13 Jim Meyering * lib/Makefile.am (all-local): Depend on lstat.c and stat.c. * lib/xstat.in [!HAVE_DECL_FREE]: Declare free in lstat.c. 2000-06-12 Paul Eggert * lib/xstat.in: Include in lstat, to declare "free". 2000-06-12 Jim Meyering * m4/getloadavg.m4 (AM_FUNC_GETLOADAVG): Replace with AC_FUNC_GETLOADAVG from autoconf, and tweak the latter to accept an optional argument. * m4/jm-macros.m4: s/AM_FUNC_GETLOADAVG/AC_FUNC_GETLOADAVG/, and supply the optional argument, `lib'. 2000-06-08 Jim Meyering * m4/largefile.m4: Remove file (now that it's part of autoconf). 2000-06-04 Paul Eggert Rewrite largefile configuration so that we don't need to run getconf and don't need AC_CANONICAL_HOST. [I'm leaving the use of AC_CANONICAL_HOST in configure.in -- jmm] * m4/largefile.m4 (AC_SYS_LARGEFILE_FLAGS, AC_SYS_LARGEFILE_SPACE_APPEND): Remove. (AC_SYS_LARGEFILE_TEST_INCLUDES): New macro. (AC_SYS_LARGEFILE_MACRO_VALUE): Change arguments from CODE-TO-SET-DEFAULT to VALUE, INCLUDES, FUNCTION-BODY. All uses changed. Instead of inspecting the output of getconf, try to compile the test program without and with the macro definition. (AC_SYS_LARGEFILE): Do not require AC_CANONICAL_HOST or check for getconf. Instead, check for the needed flags by compiling test programs. 2000-06-04 Paul Eggert * lib/strnlen.c: Include if HAVE_CONFIG_H. 2000-06-04 Jim Meyering * lib/getugroups.c (getugroups): Cast -1 to gid_t, for systems like SunOS 4.1.4 for which gid_t is an unsigned type. 2000-06-03 Jim Meyering * m4/prereq.m4 (jm_PREREQ_HUMAN): Use []-quoted list in AC_CHECK_DECLS, now that autoconf requires that. * m4/jm-glibc-io.m4: Add a kludge to make autoheader emit the required #undefs. E.g., #undef HAVE_DECL_FERROR_UNLOCKED. Use []-quoted list in AC_CHECK_DECLS, now that autoconf requires that. 2000-06-03 Jim Meyering * lib/strnlen.c [!HAVE_DECL_MEMCHR]: Declare memchr. 2000-06-03 Bruno Haible * m4/glibc21.m4: New file. * m4/jm-macros.m4 (jm_MACROS): Call jm_GLIBC21. 2000-06-03 Bruno Haible * lib/Makefile.am (install-exec-local): On systems with glibc-2.1 or newer, don't install charset.alias. * lib/config.charset: Change the Linux/glibc rules so they become empty on glibc-2.1 or newer. 2000-06-02 Jim Meyering * lib/mountlist.c: Back out last change. Instead, do this... * lib/mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Set the me_dummy member using the same `ignore'-testing code. * lib/mountlist.h (ME_DUMMY): Add `autofs' to the list of ignored fs_type strings. From Mark D. Roth. 2000-05-29 Jim Meyering * lib/mountlist.c (read_filesystem_list) [MOUNTED_VMOUNT]: Ignore mounts with the `ignore' attribute. Based on a patch from Mark D. Roth. 2000-05-28 Jim Meyering * m4/jm-macros.m4 (AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): Rename from jm_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK. * m4/stat.m4: Likewise. * m4/lstat.m4: Likewise. * m4/lstat-slash.m4: Remove file (absorbed into autoconf). * m4/jm-macros.m4 (AC_FUNC_STRERROR_R): Rename from jm_FUNC_STRERROR_R. * m4/strerror_r.m4: Remove file (absorbed into autoconf). 2000-05-26 Jim Meyering * m4/uptime.m4: Use `$cross_compiling', not `$ac_cv_prog_cc_cross'. 2000-05-24 Jim Meyering * m4/prereq.m4: Use []-quoted list in AC_CHECK_MEMBERS, now that autoconf requires that. * m4/lib-check.m4: Likewise. * m4/jm-macros.m4: Likewise. * m4/strftime.m4: Likewise. * m4/check-decl.m4 (jm_CHECK_DECLS): Use []-quoted list in AC_CHECK_DECLS, now that autoconf requires that. 2000-05-22 Jim Meyering * m4/stat.m4: Require jm_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK. * m4/lstat.m4: Likewise. 2000-05-22 Jim Meyering * lib/makepath.c: Remove old, now-unnecessary `#ifdef __MSDOS__' block. 2000-05-20 Jim Meyering * m4/prereq.m4 (jm_PREREQ_HUMAN): New macro. (jm_PREREQ): Use it. 2000-05-18 Jim Meyering * lib/hash.c (hash_rehash): Fix a nasty bug: copy the free entry list back, too, since it may have been modified by allocate_entry. (hash_delete): Rewrite to use neither the assignment operator nor the comma operator in an if-expression. 2000-05-15 Paul Eggert * lib/closeout.c: , , , (STDOUT_FILENO): Remove; no longer needed. "quotearg.h": Add include. (file_name): Do not bother to explicitly initialize to NULL; it's less efficient on some hosts. (close_stdout_status): Remove test as to whether stdout was already closed; it breaks for the case "echo x | sort >&-". Quote file name colons. Do not assume that _("write error") lacks format strings. 2000-05-15 Jim Meyering * lib/version-etc.c (version_etc_copyright): Update the copyright string used in all --version output. 2000-05-14 Jim Meyering * lib/closeout.c (close_stdout_set_file_name): New function. (close_stdout_status): Use new file-scoped global. Return right away if fstat says the stdout file descriptor is invalid. * lib/closeout.h (close_stdout_set_file_name): Declare. 2000-05-10 Jim Meyering * lib/closeout.c [default_exit_status]: New file-scoped variable. (close_stdout_set_status): New function. * lib/closeout.h (close_stdout_set_status): Declare. 2000-05-09 Jim Meyering * m4/gettext.m4: Rename this... * m4/libintl.m4: ...to this. 2000-05-08 Jim Meyering * lib/long-options.c: Don't include closeout.h. (parse_long_options): Don't call close_stdout for --version. 2000-05-06 Paul Eggert * m4/largefile.m4 (AC_SYS_LARGEFILE): Define _XOPEN_SOURCE to be 500, instead of _GNU_SOURCE to be 1, to work around glibc 2.1.3 bug. This avoids a clash when files like regex.c define _GNU_SOURCE. 2000-05-06 Jim Meyering * m4/jm-macros.m4 (AC_REPLACE_FUNCS): Add atexit. (AC_REPLACE_FUNCS): Add strnlen. * m4/rmdir-errno.m4 (fetish_FUNC_RMDIR_NOTEMPTY): New macro and file. * m4/jm-macros.m4: Require fetish_FUNC_RMDIR_NOTEMPTY. * m4/nanosleep.m4 (jm_FUNC_NANOSLEEP): Save and restore LIBS around AC_SEARCH_LIBS call for nanosleep. (LIB_NANOSLEEP): Set and AC_SUBST. 2000-05-06 Jim Meyering * lib/strnlen.c: Undefine __strnlen and strnlen. [!weak_alias]: Define __strnlen to strnlen. * lib/atexit.c: New file, from libiberty. 2000-05-06 Jim Meyering * lib/closeout.c (close_stdout_status): Also check for errors on the stderr stream. 2000-05-05 Jim Meyering * m4/jm-macros.m4 (jm_MACROS): Save and restore LIBS around AC_SEARCH_LIBS call for clock_gettime. (LIB_CLOCK_GETTIME): Set and AC_SUBST. * m4/search-libs.m4: Update from autoconf. su doesn't work on Solaris 2.6. * m4/lib-check.m4: When checking for struct spwd.sp_pwdp, also include . Reported by Dragos Harabor. 2000-05-05 Bruno Haible * lib/localcharset.c (get_charset_aliases): Use malloc, realloc and memcpy instead of xmalloc, xrealloc, path_concat. (locale_charset): Treat empty environment variables as absent. (DIRECTORY_SEPARATOR, ISSLASH): New macros. 2000-05-04 Jim Meyering * lib/getopt.c: Update from glibc. * lib/obstack.c: Likewise. * lib/obstack.h: Likewise. * lib/regex.c: Likewise. NB: K&R compiler support is dropped for this file * lib/regex.h: Likewise. * lib/strndup.c: Likewise. * lib/strnlen.c: New file, from glibc. 2000-05-03 Jim Meyering * m4/check-decl.m4 (AC_CHECK_DECLS): Add strndup. 2000-05-02 Paul Eggert * m4/largefile.m4 (AC_SYS_LARGEFILE): Define _GNU_SOURCE if this is needed to make ftello visible (e.g. glibc 2.1.3). Use compile-time test, rather than inspecting host and OS, to decide whether to define _LARGEFILE_SOURCE. 2000-05-01 Jim Meyering * m4/fsusage.m4: Use AC_MSG_CHECKING instead of obsolete AC_CHECKING. * m4/ls-mntd-fs.m4 (jm_LIST_MOUNTED_FILESYSTEMS): Add BeOS support. Based on a patch from Bruno Haible. 2000-05-01 Jim Meyering * lib/full-write.c (full_write): Remove `FIXME' part of comment. 2000-04-29 Jim Meyering * lib/path-concat.c: Declare strdup only if it's not defined. * lib/canon-host.c: Likewise. 2000-04-28 Jim Meyering * lib/rpmatch.c [HAVE_LIMITS_H]: Include limits.h before regex.h to avoid redefinition warning on some systems (HPUX). Otherwise, regex.h is included first, then limits.h is included by locale.h by libintl.h. From John David Anglin. 2000-04-25 Jim Meyering * lib/makepath.c (S_IRWXUGO): Define. (make_path): Always perform explicit chmod if MODE specifies any of the `special' permission bits. Prompted by a bug report against install from Mate Wierdl and Joost van Baal. 2000-04-18 Jim Meyering * m4/prereq.m4 (jm_PREREQ_GETPAGESIZE): New macro. (jm_PREREQ): Use it. 2000-04-18 Jim Meyering * lib/README: New file. * lib/getpagesize.h [!getpagesize && HAVE_OS_H && B_PAGE_SIZE]: Define getpagesize. For BeOS. Based on a patch from Bruno Haible. 2000-04-17 Jim Meyering Get it right :-) * m4/jm-macros.m4 (jm_CHECK_ALL_TYPES) [_GNU_SOURCE]: Emit the actual #define via AH_VERBATIM. Don't need separate AC_DEFINE. Suggestion from Akim Demaille. 2000-04-17 Jim Meyering * lib/strftime.c (my_strftime) [strftime]: Declare strftime here, since the definition of it to rpl_strftime also defined-away the system's declaration. 2000-04-15 Jim Meyering Use `C' to denote so-called `contiguous' files, the same way that tar does. * lib/filemode.c (S_ISCTG) [!S_ISCTG && S_IFCTG]: Define. (ftypelet): Use S_ISCTG. From Michael Deutschmann. 2000-04-14 Jim Meyering * m4/jm-macros.m4 (jm_CHECK_ALL_TYPES) [_GNU_SOURCE]: Use the one-arg form of AC_DEFINE. Otherwise, the #ifndef in AH_VERBATIM gets clobbered. 2000-04-14 Jim Meyering * lib/strftime.c (my_strftime) [#ifdef strftime]: Declare strftime. 2000-04-13 Jim Meyering * m4/jm-macros.m4 (jm_CHECK_ALL_TYPES) [_GNU_SOURCE]: Use new AH_VERBATIM to insert required #ifndef into config.h.in. Suggestion from Akim Demaille. 2000-04-12 Jim Meyering * m4/getloadavg.m4 (AM_FUNC_GETLOADAVG): Use AC_CHECK_HEADERS, not `AC_CHECK_HEADER' to check for locale.h. Thanks to a report from Christian Krackowizer. More code moved from ../configure.in into (jm_CHECK_ALL_TYPES). * m4/jm-macros.m4 (_GNU_SOURCE): Define. (AC_SYS_LARGEFILE): Require. (AM_C_PROTOTYPES): Require. 2000-04-08 Jim Meyering * lib/Makefile.am (charset.alias): Use t-$@, not $@-t so the DOS 8.3 names don't conflict. Reported by Eli Zaretskii. 2000-04-07 Jim Meyering * lib/putenv.c: Move inclusion of errno.h so it follows that of sys/types.h, to work around system header problems on AIX 3.2.5. From Bruno Haible. 2000-04-07 Bruno Haible * lib/unicodeio.c (print_unicode_char): Avoid triggering Solaris iconv bug. Deal with the different error behavior of Irix iconv. 2000-04-05 Paul Eggert * m4/largefile.m4 (AC_SYS_LARGEFILE_FLAGS): Don't use -n32 on IRIX if the installer said otherwise. 2000-04-05 Jim Meyering Portability tweaks required for ultrix4.3. * m4/check-decl.m4 [!HAVE_UTMPX_H] (headers): Include . (jm_CHECK_DECLS): Add getutent to the list of functions. (_jm_DECL_HEADERS): Add utmpx.h. From John David Anglin. * m4/strftime.m4: Back out the 2000-04-02 change. Instead of that change, simply undefine putenv in the test program. 2000-04-05 Jim Meyering Portability tweaks required for ultrix4.3. * lib/readutmp.h [HAVE_UTMPX_H && !HAVE_DECL_GETUTENT]: Declare getutent. * lib/readutmp.c: Include sys/types.h before sys/stat.h. * lib/canon-host.c: Declare strdup. * lib/path-concat.c: Likewise. From John David Anglin. 2000-04-04 Jim Meyering Be more DOS 8.3-friendly. * lib/ref-add.sin: Renamed from ref-add.sed.in. * lib/ref-del.sin: Renamed from ref-del.sed.in. * lib/Makefile.am: Reflect renaming. Reported by Eli Zaretskii. Use a temporary file name that won't clash with `charset.alias' in the DOS 8.3 name space. * lib/Makefile.am (charset_tmp): Define. (install-exec-local): Use $(charset_tmp) instead of $(charset_alias)-t. (uninstall-local): Likewise. Reported by Eli Zaretskii. 2000-04-03 Jim Meyering * m4/gettext.m4: Fix typo in comment. * m4/codeset.m4 (AC_CHECK_HEADERS): Add langinfo.h (moved here from textutils/configure.in). Suggestion from Paul Eggert. (AC_CHECK_FUNCS): Add nl_langinfo. (also from textutils/configure.in) 2000-04-02 Paul Eggert * m4/strftime.m4 (jm_FUNC_GNU_STRFTIME): Set TZ environment variable in the shell rather than using putenv, which isn't portable. This avoids the configure-time inter-test dependency on the potentially-renamed putenv function. 2000-03-30 Paul Eggert * m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Include before checking struct stat.st_blksize, so that HAVE_STRUCT_STAT_ST_BLKSIZE is defined correctly. 2000-03-29 Paul Eggert * m4/strftime.m4 (_jm_STRFTIME_PREREQS): Check for strftime, since strftime.c uses HAVE_STRFTIME to decide whether to use the underlying strftime. 2000-03-29 Paul Eggert * lib/time/strftime.c (my_strftime): Make sure we call the system strftime, not ourselves, when invoking the underlying strftime. 2000-03-24 Jim Meyering * lib/Makefile.am (EXTRA_DIST): Add ref-add.sed.in and ref-del.sed.in. (charset_alias): Define. (install-exec-local): Factor out common code. (uninstall-local): Split lines longer than 80. (ref-add.sed, ref-del.sed): Remove rules... (do the following instead) (SUFFIXES): Define. (.sed.in.sed): New rule. Don't redirect directly to $@. (CLEANFILES): Add ref-add.sed and ref-del.sed. 2000-03-19 Bruno Haible * lib/config.charset: Output a line containing "Packages using this file". * lib/ref-add.sed.in, lib/ref-del.sed.in: New files. * lib/Makefile.am (install-exec-local, uninstall-local, ref-add.sed, ref-del.sed): New rules. 2000-03-17 Jim Meyering * lib/unicodeio.c (): Include only #if HAVE_STRING_H. Otherwise, include 2000-03-17 Bruno Haible * lib/unicodeio.c (utf8_wctomb): New function. (print_unicode_char): Pass the Unicode character to iconv in UTF-8 format instead of in UCS-4 with platform dependent endianness. 2000-03-10 Jim Meyering * m4/lib-check.m4: Look for getspnam in -lgen, too. From Marco Franzen. 2000-03-07 Paul Eggert * lib/savedir.c (savedir): Work even if directory size is negative; this can happen with some screwy NFS configurations. 2000-03-06 Jim Meyering * lib/localcharset.c (get_charset_aliases): Don't try to free file_name if it's NULL (because we ran out of memory). From Bruno Haible. 2000-03-05 Jim Meyering * lib/localcharset.c ("path-concat.h"): Include. (get_charset_aliases): Use path_concat instead of ANSI string concatenation. * lib/unicodeio.h (PARAMS): Define. Use it to guard prototype. 2000-03-04 Jim Meyering * m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Require AC_C_VOLATILE, for lib/localcharset.c. 2000-03-04 Jim Meyering * lib/Makefile.am (install-exec-local): Create $(libdir) before installing into it. (uninstall-local): Uncomment this rule so `make distcheck' works once again. * lib/unicodeio.c (): Include it. (errno): Declare if not defined. * lib/localcharset.c: Add Bruno's comment justifying use of volatile. * lib/config.charset: New version, incorporating remarks from a linux i18n mailing list. From Bruno Haible. 2000-03-04 Bruno Haible * m4/codeset.m4: New file. * m4/iconv.m4: New file. * m4/jm-macros.m4 (jm_MACROS): Call jm_LANGINFO_CODESET and jm_ICONV. 2000-03-03 Jim Meyering * m4/regex.m4: Make sure re_compile_pattern accepts patterns like `{1'. 2000-03-02 Jim Meyering * m4/timespec.m4: Require AC_HEADER_TIME before the cache check so the messages come out on separate lines. * m4/jm-glibc-io.m4 (jm_FUNC_GLIBC_UNLOCKED_IO): Use AC_CHECK_DECLS, rather than jm_CHECK_DECLARATIONS. * m4/decl.m4: Remove now-unused file. * m4/check-decl.m4 (AC_CHECK_DECLS): Add getlogin, ttyname, and geteuid. 2000-03-02 Jim Meyering * lib/Makefile.am (EXTRA_DIST): Add config.charset. 2000-03-01 Jim Meyering * lib/localcharset.c: Guard some #includes with `#if HAVE_...'. * lib/unicodeio.c: Likewise. 2000-03-01 Bruno Haible * lib/config.charset: New file. * lib/localcharset.c: New file. * lib/unicodeio.h, lib/unicodeio.c: New files. * lib/Makefile.am (DEFS): Add -DLIBDIR=... (libfetish_a_SOURCES): Add localcharset.c and unicodeio.c. (noinst_HEADERS): Add unicodeio.h. (all-local, install-exec-local, charset.alias): New targets. 2000-02-28 Paul Eggert * lib/quotearg.c (ALERT_CHAR): New macro. (quotearg_buffer_restyled): Use it. 2000-02-27 Jim Meyering * m4/check-decl.m4: Add getenv to the list. 2000-02-27 Jim Meyering * lib/strtoumax.c: Fix typo in decl of strtoul: s/long long/long/. Guard declaration of strtoull also with `&& HAVE_UNSIGNED_LONG_LONG'. * lib/backupfile.c: Guard inclusion of stdlib.h with `#if HAVE_STDLIB_H', not `#if STDC_HEADERS'. Declare malloc if needed. * lib/backupfile.c: Use `#if !HAVE_DECL...' instead of `#ifndef HAVE_DECL..' now that autoconf always defines the HAVE_DECL_ symbols. * lib/human.c: Likewise. * lib/same.c: Likewise. * lib/strtoumax.c: Likewise. * lib/backupfile.c: Arrange for cpp to fail if the configure-time declaration check was not run. * lib/hash.c: Likewise. * lib/human.c: Likewise. * lib/same.c: Likewise. * lib/strtoumax.c: Likewise. * lib/userspec.c (parse_user_spec): If there is no `:' but there is a `.', then first look up the entire `.'-containing string as a login name. 2000-02-23 Jim Meyering * m4/check-decl.m4: Now that we have the new AC_CHECK_DECLS, use it in place of my hack. 2000-02-18 Paul Eggert * lib/getdate.y: Handle two-digit years with leading zeros correctly. (textint): New typedef. (parser_control): Member year changed from int to textint. All uses changed. (YYSTYPE): Removed; replaced by %union with int and textint members. (tDAY, tDAY_UNIT, tDAYZONE, tHOUR_UNIT, tID, tLOCAL_ZONE, tMERIDIAN, tMINUTE_UNIT, tMONTH, tMONTH_UNIT tSEC_UNIT, tSNUMBER, tUNUMBER, tYEAR_UNIT, tZONE, o_merid): Now of type . (tSNUMBER, tUNUMBER): Now of type . (date, number, to_year): Use width of number in digits, not its value, to determine whether it's a 2-digit year, or a 2-digit time. (yylex): Store number of digits of numeric tokens. Reported by John Kendall. (parser_control): Changed from struct parser_control to typedef (for consistency). All uses changed. (tID): Removed; not used. (yylex): Return '?' for unknown identifiers, rather than (unused) tID. 2000-02-14 Paul Eggert * lib/getpagesize.h (getpagesize): Port to VMS for Alpha; adapted from changes to grep getpagesize.h by Martin P.J. Zinser. 2000-02-12 Jim Meyering * lib/userspec.c (ISDIGIT): Define it. (isdigit): Remove definition. (is_number): Use ISDIGIT, not isdigit. : Include. (_ and N_): Define. (parse_user_spec): Mark translatable strings. 2000-02-10 Jim Meyering With these changes, nanosleep.[ch] are finally enough like the other lib/* replacement files to compile on a few more losing systems. * lib/nanosleep.h: Don't include config.h. Remove prototype from declaration of nanosleep. (PARAMS): Remove now-unneeded definition. * lib/nanosleep.c: #undef nanosleep. (rpl_nanosleep): Rename from nanosleep. 2000-02-10 Jim Meyering * m4/nanosleep.m4 (jm_FUNC_NANOSLEEP): Rename replacement function from gnu_nanosleep to rpl_nanosleep. 2000-02-09 Jim Meyering * m4/lib-check.m4 (jm_LIB_CHECK): Fix typo: check for sp_pwdp in struct spwd, rather than in struct passwd. Reported by Gaël Quéri. 2000-02-08 Akim Demaille * m4/largefile.m4 (AC_SYS_LARGEFILE_FLAGS): Quote square brackets with `[' and `]' and remove uses of `changequote'. (AC_SYS_LARGEFILE_MACRO_VALUE): Likewise. (AC_SYS_LARGEFILE): Likewise. * m4/gettext.m4 (AM_GNU_GETTEXT): Likewise. * m4/strftime.m4 (jm_FUNC_GNU_STRFTIME): Remove now-unnecessary use of changequote. * m4/regex.m4 (jm_INCLUDED_REGEX): Likewise. * m4/readdir.m4 (jm_FUNC_READDIR): Likewise * m4/memcmp.m4 (jm_AC_FUNC_MEMCMP): Likewise, and add `int' for main. * m4/getloadavg.m4 (AM_FUNC_GETLOADAVG): Likewise. 2000-02-05 Jim Meyering * m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Require most macros. Remove explicit use of AC_HEADER_TIME. It is required by jm_CHECK_TYPE_STRUCT_TIMESPEC. Using AC_HEADER_TIME and `AC_REQUIRE'ing jm_CHECK_TYPE_STRUCT_TIMESPEC provoked a but in autoconf whereby the expansion of the latter ended up preceding the expansion of its prerequisite, AC_HEADER_TIME. Reported by Volker Borchert. 2000-02-03 Jim Meyering * m4/prereq.m4 (jm_PREREQ_READUTMP): Check for utmpxname. 2000-02-03 Jim Meyering * lib/readutmp.c (read_utmp): Guard with `#ifdef UTMP_NAME_FUNCTION', rather than with `#if HAVE_UTMPNAME'. 2000-02-02 Jim Meyering * m4/prereq.m4 (jm_PREREQ_ADDEXT): Fix typo that resulted in no definition of HAVE_PATHCONF: s/AC_CHECK_FUNC/AC_CHECK_FUNCS/. Reported by Eli Zaretskii. 2000-02-01 Jim Meyering * lib/readutmp.h (UT_USER): Add parens. From Andreas Schwab. 2000-01-31 Jim Meyering * m4/check-decl.m4 (jm_CHECK_DECLS): Add nanosleep to the list of functions. Add the time.h and sys/time.h headers along with the AC_REQUIRE'ment of AC_HEADER_TIME. 2000-01-31 Jim Meyering * lib/nanosleep.h (nanosleep): Guard declaration with `#if ! HAVE_DECL_NANOSLEEP'. Without this, OFS gets a redeclaration error for rpl_nanosleep, due to the declaration in that vendor's sys/timers.h. Reported by Christian Krackowizer. * lib/quotearg.c (ISASCII): Add #undef and move definition to follow inclusion of wctype.h to work around Solaris 2.6 namespace pollution. (ISPRINT): Likewise. Reported by Tom Tromey. 2000-01-30 Jim Meyering * m4/lib-check.m4: Clean up some kludgy old shadow password tests. * m4/prereq.m4 (utmp_includes): Define. Check for ut_user and ut_name members in both struct utmpx and struct utmp. 2000-01-30 Jim Meyering * lib/readutmp.c (extract_trimmed_name): Use UT_USER instead of hard-coding uses of ->ut_name. The latter doesn't work with new Linux header files where only utmpx.ut_user is declared. * lib/readutmp.h (UT_USER): Define. 2000-01-29 Jim Meyering * m4/lib-check.m4: New file containing library-related checks from fileutils and sh-utils (textutils had none). 2000-01-28 Jim Meyering * m4/perl.m4: Change format of warning message to look more like that from the missing script. Suggestion from François Pinard. 2000-01-25 Jim Meyering * m4/timespec.m4: Require AC_HEADER_TIME, and include sys/time.h as well as time.h in the compile check. * m4/nanosleep.m4: Require AC_HEADER_TIME rather than simply using it. Fix typo in cross-compiling case: s/yes/no/. 2000-01-23 Jim Meyering * m4/jm-macros.m4: Move df-related tests here from fileutils/configure.in * m4/ls-mntd-fs.m4: s/list_mounted_fs/ac_list_mounted_fs/ (jm_LIST_MOUNTED_FILESYSTEMS): Take two parameters. * m4/fsusage.m4: New file. Extracted from fileutils/configure.in. s/space/ac_fsusage_space/. (jm_FILE_SYSTEM_USAGE): Take two parameters. * m4/ftruncate.m4: New file (derived from part of fileutils/configure.in). * m4/jm-macros.m4 (jm_FUNC_FTRUNCATE): AC_REQUIRE it. (jm_CHECK_ALL_TYPES): Require AC_HEADER_MAJOR and AC_HEADER_DIRENT. * m4/jm-macros.m4 (OPTIONAL_BIN_PROGS, OPTIONAL_BIN_ZCRIPTS, MAN): AC_SUBST these here, rather than just in sh-util/configure.in, so that the now-shared-by-fileutils-and-textutils lib/Makefile.am are all the same. (AM_FUNC_OBSTACK): Add (from fileutils/configure.in). (AC_CHECK_FUNCS): Merge all checks from fileutils, textutils, sh-utils. (AM_FUNC_STRTOD): Added (from textutils', sh-utils' configure.in). (AC_SUBST(POW_LIBM)): Likewise. (AC_SUBST(DF_PROG)): Moved from fileutils/configure.in. 2000-01-23 Jim Meyering * lib/Makefile.am (libfetish_a_SOURCES): Remove explicit mention of obstack.c. 2000-01-22 Jim Meyering * m4/jm-macros.m4: Call AC_PROG_CC_STDC just before AC_C_CONST. * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Add wctype.h. * m4/jm-macros.m4 (AC_CHECK_HEADERS): Add checks from fileutils' configure.in (AC_CHECK_HEADERS): Likewise for sh-utils. (AC_CHECK_HEADERS): Likewise for textutils. Merge the three lists of headers. * m4/prereq.m4 (jm_PREREQ_ADDEXT): New macro. Parts moved here from fileutils' configure.in. * m4/decl.m4: Remove kludgy `test -z $ac_...AC_CHECK_HEADERS(...)' code. Moved tests into their own function (_jm_DECL_HEADERS) in check-decl.m4. * m4/check-decl.m4: Use #if rather than #ifdef. Add HAVE_DECL_STRTOUL and HAVE_DECL_STRTOULL. (jm_CHECK_DECLARATIONS): Add strtoul strtoull. (_jm_DECL_HEADERS): Define new function. (jm_CHECK_DECLARATIONS): Require it. 2000-01-22 Jim Meyering * lib/strtoumax.c: [! HAVE_DECL_STRTOUL]: Declare strtoul. [! HAVE_DECL_STRTOULL]: Declare strtoull. Required for some AIX systems. Reported by Christian Krackowizer. [TESTING] (main): New function. 1997-10-17 Eli Zaretskii * lib/dirname.c (dir_name): Support for DOS-style file names with drive letters. * lib/quotearg.c [HAVE_WCTYPE_H]: Include for decl of iswprint. * lib/strverscmp.c (ISDIGIT): Define. (strverscmp): Use ISDIGIT, not isdigit. 2000-01-19 Jim Meyering * m4/nanosleep.m4 (jm_FUNC_NANOSLEEP): Include , too. Use AC_HEADER_TIME. Volker Borchert reported that OpenBSD-2.3/sparc defines `struct timespec' in * m4/c-bs-a.m4: Remove uses of changequote altogether. Thanks to Akim for explaining. 2000-01-17 Paul Eggert * lib/nanosleep.c (nanosleep): Don't use SA_INTERRUPT to decide whether to call sigaction, as POSIX.1 doesn't require SA_INTERRUPT and some systems (e.g. Solaris 7) don't define it. Use SA_NOCLDSTOP instead; it's been part of POSIX.1 since day 1 (in 1988). 2000-01-17 Jim Meyering * lib/interlock: Remove unused file. Reported by François Pinard. 2000-01-16 Paul Eggert * lib/quotearg.c (quotearg_buffer_restyled): Do not quote alert, backslash, formfeed, and vertical tab unnecessarily in shell quoting style. 2000-01-16 Jim Meyering * m4/jm-macros.m4: Require jm_FUNC_GROUP_MEMBER, jm_FUNC_PUTENV, AM_FUNC_ERROR_AT_LINE, jm_FUNC_GNU_STRFTIME, jm_FUNC_MKTIME, jm_FUNC_GETGROUPS AC_FUNC_VPRINTF, AC_FUNC_ALLOCA, AM_FUNC_GETLOADAVG, and jm_SYS_PROC_UPTIME. 2000-01-16 Jim Meyering * m4/c-bs-a.m4: Use `changequote(<<,>>)', rather than `changequote(, )' because the latter didn't work. 2000-01-15 Jim Meyering * m4/jm-macros.m4 (AC_REPLACE_FUNCS): Add gethostname and getusershell. (AC_REPLACE_FUNCS): Add memcpy and memset. Add these, too: stime strcspn stpcpy strstr strtol strtoul. Add strpbrk. Add these: euidaccess memcmp mkdir rmdir rpmatch strndup strverscmp. 2000-01-12 Jim Meyering * m4/prereq.m4 (jm_PREREQ_CANON_HOST): New macro. (jm_PREREQ): Use it. (jm_PREREQ_READUTMP): New macro. (jm_PREREQ): Use it. 2000-01-11 Paul Eggert Quote multibyte characters correctly. * m4/c-bs-a.m4: New file. * m4/prereq.m4 (jm_PREREQ_QUOTEARG): New macro. (jm_PREREQ): Use it. 2000-01-11 Paul Eggert * m4/uintmax_t.m4: Port to autoconf 2.13. 2000-01-08 Jim Meyering * m4/strerror_r.m4 (jm_FUNC_STRERROR_R): New file/macro. * m4/jm-macros.m4 (jm_FUNC_STRERROR_R): Require it. 2000-01-04 Jim Meyering * m4/d-type.m4 (jm_CHECK_TYPE_STRUCT_DIRENT_D_TYPE): Rename from jm_STRUCT_DIRENT_D_TYPE. * m4/d-ino.m4 (jm_CHECK_TYPE_STRUCT_DIRENT_D_INO): Rename from jm_STRUCT_DIRENT_D_INO. * m4/utimbuf.m4 (jm_CHECK_TYPE_STRUCT_UTIMBUF): Rename from jm_STRUCT_UTIMBUF. * m4/jm-macros.m4: Reflect s/jm_STRUCT_/jm_CHECK_TYPE_STRUCT_/ renamings. * m4/utime.m4: Likewise. * m4/timespec.m4 (jm_CHECK_TYPE_STRUCT_TIMESPEC): New file, macro. * m4/jm-macros.m4 (jm_CHECK_TYPE_STRUCT_TIMESPEC): Require it. 2000-01-03 Paul Eggert * m4/nanosleep.m4 (jm_FUNC_NANOSLEEP): Search for nanosleep in -lrt (for Solaris 7) and in -lposix4 (for Solaris 2.5.1). 2000-01-02 Jim Meyering * m4/search-libs.m4: Escape `$' in $3 of dnl comment. I no longer remember if this is necessary. 1999-12-26 Jim Meyering * m4/jm-macros.m4: Use it here. * m4/nanosleep.m4 (jm_FUNC_NANOSLEEP): New file/macro. 1999-12-23 Jim Meyering * m4/jm-macros.m4: Check for clock_gettime (moved from fileutils/configure.in) Check for gettimeofday. 1999-12-20 Jim Meyering * m4/strftime.m4: Remove kludge, now that I'm using the fixed autoconf-2.14a-1999-12-20. 1999-12-19 Jim Meyering * m4/lstat-slash.m4: New file. * m4/jm-macros.m4: Use the new macro: jm_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK. 1999-12-07 Jim Meyering * m4/perl.m4: Require that File::Compare be available, too. Too many systems seem to lack it. * m4/strftime.m4: Add checks for most of the cpp macros tested in GNU's strftime.c. Prompted by a patch from Paul Eggert. 1999-11-18 Paul Eggert * m4/largefile.m4 (AC_SYS_LARGEFILE_FLAGS): Work around a problem with the QNX 4.25 shell, which doesn't propagate exit status of failed commands inside shell assignments. 1999-11-17 Jim Meyering * m4/gettext.m4: Use new AC_CONFIG_LINKS in place of AC_LINK_FILES. 1999-11-07 Jim Meyering * m4/getloadavg.m4: Add `, 1, [FIXME]' to each use of AC_DEFINE. 1999-11-06 Jim Meyering * m4/link-follow.m4 (jm_AC_FUNC_LINK_FOLLOWS_SYMLINK): New file/macro. * m4/jm-macros.m4 (jm_MACROS): Use it here. 1999-11-05 Jim Meyering * m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Move some tests from configure.in of textutils, fileutils, and sh-utils into this one (shared between those packages) file. Use `AC_CHECK_MEMBERS((struct stat.st_blksize))' instead of deprecated AC_STRUCT_ST_BLKSIZE. 1999-11-03 Jim Meyering * m4/ssize_t.m4: Remove file. No longer needed since the new version of AC_CHECK_TYPE checks includes unistd.h. * m4/jm-macros.m4: Use straight `AC_CHECK_TYPE(ssize_t, int)'. Suggestion from Akim Demaille. 1999-10-30 Jim Meyering * m4/uintmax_t.m4: Require 2.14a. Remove backslash before backtick in m4-quoted string. * m4/ls-mntd-fs.m4: Likewise. * m4/jm-macros.m4: Likewise. Also, use AC_TYPE_SSIZE_T instead * m4/jm-winsz1.m4: Likewise. * m4/const.m4: Remove file, since the fix made it into the experimental version of autoconf. * m4/mktime.m4: Likewise. * m4/check-type.m4: Remove file, now that the latest version of AC_CHECK_TYPE takes a third arg to specify additional #includes. * m4/ssize_t.m4: New file, requires experimental version of autoconf. * m4/jm-macros.m4: Use new AC_TYPE_SSIZE_T instead of my hacked AC_CHECK_TYPE. 1999-10-04 Jim Meyering * m4/jm-macros.m4: Don't require autoconf-2.14.1. 1999-09-22 Paul Eggert * m4/largefile.m4 (AC_SYS_LARGEFILE_FLAGS): Work around GCC 2.95.1 bug with HP-UX 10.20. 1999-09-17 Jim Meyering * m4/jm-macros.m4 (AC_REPLACE_FUNCS): Add strdup. Paul Nevai reported a link failure on a NeXT CUBE with NeXTSTEP 3.3 due to missing strdup (against sh-utils-2.0). 1999-08-29 Jim Meyering * m4/jm-macros.m4: Require jm_BISON. * m4/bison.m4: New file. 1999-08-17 Paul Eggert * m4/largefile.m4 (AC_SYS_LARGEFILE): Fix typo: missing comma in value for _FILE_OFFSET_BITS, which broke ports to HP-UX 10.20. 1999-08-05 Jim Meyering * m4/getline.m4: Rename test file from conftestdata to conftest.data to avoid conflicts with `conftest' on 8+3 filesystems. Suggestion from Eli Zaretskii. 1999-08-04 Jim Meyering * m4/jm-macros.m4: Move a 4-line block of code from the configure.in of fileutils and sh-utils (textutils's getline test was inadequate). (AM_FUNC_GETLINE): Run this test. (AC_CHECK_FUNCS): Check for getdelim. Reported by Bob Proulx. 1999-08-02 Jim Meyering * m4/jm-macros.m4: Add a comment. 1999-08-01 Paul Eggert * m4/xstrtoumax.m4 (jm_AC_PREREQ_XSTRTOUMAX): Check whether defines strtoumax as a macro (and not as a function). 1999-08-01 Paul Eggert * m4/ulonglong.m4 (jm_AC_TYPE_UNSIGNED_LONG_LONG): Make sure that we can shift, multiply and divide unsigned long long values; Ultrix cc can't do it. 1999-08-01 Paul Eggert * m4/mktime.m4: New file, which is a preview of what should appear in the next public autoconf release. 1999-08-01 Paul Eggert * m4/lfs.m4: Remove this file. * m4/largefile.m4: New file. It contains the old contents of lfs.m4, except that all names with prefix AC_LFS have been changed to use the prefix AC_SYS_LARGEFILE instead, to be compatible with future autoconf versions. Also, some minor m4 quoting problems have been fixed. 1999-08-01 Paul Eggert * m4/gettext.m4 (AM_WITH_NLS): Remove unnecessary lines. Fix typo: $nls_cv_header_intl was misspelled as $nsl_cv_header_intl. (AM_GNU_GETTEXT): Fix problem with brackets and m4 quoting, and simplify the shell code. 1999-08-01 Jim Meyering * m4/mktime.m4 (AC_FUNC_MKTIME): Undefine to avoid syntax errors from m4. 1999-07-20 Jim Meyering * m4/jm-macros.m4 (AC_REPLACE_FUNCS): Add memmove. 1999-07-15 Jim Meyering * m4/jm-macros.m4 (AC_CHECK_FUNCS): Check for getpagesize. 1999-05-22 Jim Meyering * m4/jm-macros.m4 (AC_REPLACE_FUNCS): Add memchr. 1999-05-20 Jim Meyering * m4/search-libs.m4 [AC_SEARCH_LIBS]: Quote name in undefine. Add a colon after each `then' in case $4 is empty. 1999-05-16 Jim Meyering * m4/search-libs.m4: New file to override autoconf's AC_SEARCH_LIBS. 1999-05-10 Jim Meyering * m4/jm-mktime.m4: Reflect renaming: AM_FUNC_MKTIME -> AC_FUNC_MKTIME. * m4/jm-macros.m4: Require 2.14.1, since we use newly-renamed AC_FUNC_MKTIME. 1999-05-10 Andreas Schwab * m4/jm-mktime.m4, putenv.m4: Fix typos in config.h comments. 1999-05-04 Paul Eggert * m4/lfs.m4 (AC_LFS): -n32, -o32, and -n64 should be in CFLAGS, not CPPFLAGS, so that linking works correctly in IRIX. 1999-04-30 Paul Eggert * m4/jm-macros.m4 (AC_REPLACE_FUNCS): Add dup2. 1999-04-20 Paul Eggert * m4/uintmax_t.m4 (jm_AC_TYPE_UINTMAX_T): Move unsigned long long check into new jm_AC_TYPE_UNSIGNED_LONG_LONG macro. * m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): Require jm_AC_TYPE_UNSIGNED_LONG_LONG. * m4/ulonglong.m4 (jm_AC_TYPE_UNSIGNED_LONG_LONG): New file/macro. * m4/lfs.m4: Port to AIX and HP-UX. Support cross-compilation. 1999-04-20 Jim Meyering * m4/xstrtoumax.m4: Require jm_AC_TYPE_UNSIGNED_LONG_LONG. AC_REPLACE xstroull if necessary. From Paul Eggert. (AC_CHECK_FUNCS): Remove strtoull, strtoumax, strtouq. 1999-04-18 Jim Meyering * m4/xstrtoumax.m4 (jm_AC_PREREQ_XSTRTOUMAX): New file/macro. * m4/jm-macros.m4: Use it. 1999-04-06 Jim Meyering * m4/strftime.m4: Remove test for %f. 1999-03-29 Jim Meyering * m4/jm-macros.m4 (jm_CHECK_ALL_TYPES): New macro, contains the superset of the AC_TYPE_* checks in the textutils, fileutils, and sh-utils, plus AC_TYPE_PID_T. Paul Eggert suggested adding AC_TYPE_PID_T. 1999-03-28 Jim Meyering * m4/jm-macros.m4: Define GNU_PACKAGE here. Be sure to AC_SUBST it, once again, so that @GNU_PACKAGE@ is replaced e.g., in the *.sh files of the sh-utils. 1999-03-20 Jim Meyering * m4/jm-macros.m4: s/jm_WITH_REGEX/jm_INCLUDED_REGEX/. * m4/regex.m4 (jm_INCLUDED_REGEX): Rename from jm_WITH_REGEX. Don't depend on AM_GLIBC. Suggestions from Alain Magloire. 1999-03-19 Jim Meyering * m4/jm-winsz1.m4 (jm_WINSIZE_IN_PTEM): New macro. 1999-03-12 Jim Meyering * m4/jm-macros.m4: Use AC_FUNC_SETVBUF_REVERSED. 1999-03-07 Jim Meyering * m4/jm-glibc-io.m4: Use only those *_unlocked macros that are declared. 1999-02-17 Jim Meyering * m4/gettext.m4 (AM_GNU_GETTEXT): Do `changequote' around use of brackets in macro definition. From Eli Zaretskii and Alain Magloire. 1999-02-07 Jim Meyering * m4/group-member.m4: New file -- extracted from sh-utils' configure.in. 1999-02-05 Eli Zaretskii * m4/gettext.m4: Support DOS-style d:/foo/bar absolute file names. 1999-02-06 Jim Meyering * m4/chown.m4: Use `AC_SUBST(LIBOBJS)' since we set LIBOBJS. * m4/fnmatch.m4: Likewise. * m4/getgroups.m4: Likewise. * m4/lstat.m4: Likewise. * m4/malloc.m4: Likewise. * m4/putenv.m4: Likewise. * m4/realloc.m4: Likewise. * m4/regex.m4: Likewise. * m4/stat.m4: Likewise. * m4/strftime.m4: Likewise. Suggestion from Alain Magloire. * m4/chown.m4: Use `.$ac_objext', not `.o'. * m4/fnmatch.m4: Likewise. * m4/getgroups.m4: Likewise. * m4/getline.m4: Likewise. * m4/lstat.m4: Likewise. * m4/malloc.m4: Likewise. * m4/memcmp.m4: Likewise. * m4/putenv.m4: Likewise. * m4/realloc.m4: Likewise. * m4/regex.m4: Likewise. * m4/stat.m4: Likewise. * m4/strftime.m4: Likewise. Suggestion from Alain Magloire. * m4/jm-macros.m4: Actually invoke jm_WITH_REGEX now that it requires an argument. * m4/regex.m4: Add a run-time Test for proper operation of re_compile_pattern. 1999-01-31 Jim Meyering * m4/getloadavg.m4: Check for locale.h and the function, setlocale. 1999-01-30 Jim Meyering * m4/check-type.m4: Use 3-arg form of AC_DEFINE. * m4/jm-mktime.m4: Make this a wrapper around the official AM_FUNC_MKTIME rather than my private copy, now that the official one is up to date. * m4/mktime.m4: Remove file. * m4/getloadavg.m4: Use 3-arg form of AC_DEFINE. * m4/uptime.m4: Likewise. * m4/uintmax_t.m4: Likewise. 1999-01-28 Jim Meyering * m4/jm-macros.m4: Use jm_AFS. * m4/afs.m4: New file (from fileutils' configure.in). * m4/assert.m4: Use the 3-argument forms of AC_DEFINE* macros. * m4/chown.m4: Likewise. * m4/d-ino.m4: Likewise. * m4/d-type.m4: Likewise. * m4/fnmatch.m4: Likewise. * m4/getgroups.m4: Likewise. * m4/gettext.m4: Likewise. * m4/jm-mktime.m4: Likewise. * m4/jm-winsz2.m4: Likewise. * m4/lcmessage.m4: Likewise. * m4/ls-mntd-fs.m4: Likewise. * m4/malloc.m4: Likewise. * m4/memcmp.m4: Likewise. * m4/putenv.m4: Likewise. * m4/realloc.m4: Likewise. * m4/st_mtim.m4: Likewise. * m4/strftime.m4: Likewise. 1999-01-16 Jim Meyering * m4/jm-macros.m4 (ARGMATCH_DIE): Define. (ARGMATCH_DIE_DECL): Define. 1999-01-12 Jim Meyering * m4/Makefile.am.in: Rewrite to avoid using fmt. Reported by Lars Hecking. 1999-01-10 Jim Meyering * m4/fstypename.m4: Use the new 3-arg form of AC_DEFINE instead of my gross kludge. * m4/inttypes_h.m4: Likewise. * m4/lstat.m4: Likewise. * m4/malloc.m4: Likewise. * m4/readdir.m4: Likewise. * m4/realloc.m4: Likewise. * m4/st_dm_mode.m4: Likewise. * m4/stat.m4: Likewise. * m4/utimbuf.m4: Likewise. * m4/utimes.m4: Likewise. * m4/check-decl.m4: Use the new 3-arg form of AC_DEFINE instead of the AC_CHECK_FUNCS hack. Now, it's still a hack, but at least the comments in config.h.in are meaningful. * m4/jm-macros.m4: Require autoconf-2.13 here. * m4/regex.m4: By default, don't use the included regex.c on systems with glibc 2. Suggestion from Uli Drepper. 1999-01-02 Jim Meyering * m4/jm-macros.m4: Replace strcasecmp and strncasecmp. 1998-12-18 Jim Meyering * m4/Makefile.am.in (Makefile.am): Simplify rule. Based on a suggestion from Lars Hecking. 1998-11-16 Paul Eggert * m4/lfs.m4 (AC_LFS): Add support for HP-UX 10.20 and HP-UX 11. 1998-11-16 Jim Meyering * m4/lfs.m4: Double-quote the `uname...` expression. 1998-11-14 Jim Meyering * m4/lstat.m4: Correct comment. POSIX does not permit it to succeed. * m4/stat.m4: Likewise. 1998-11-03 Jim Meyering * m4/stat.m4: Rewrite to set HAVE_STAT_EMPTY_STRING_BUG. * m4/lstat.m4: Rewrite to set HAVE_LSTAT_EMPTY_STRING_BUG. 1998-10-18 Jim Meyering * m4/check-decl.m4 (jm_CHECK_DECL_LOCALTIME_R): Remove macro. 1998-10-17 Jim Meyering * m4/decl.m4 (jm_CHECK_DECLARATION): Don't hard-code which headers to include, though we still hard-code the `require'-like AC_CHECK_HEADERS calls for those previously hard-coded headers. Instead, take a new parameter. (jm_CHECK_DECLARATIONS): Reflect interface change. * m4/check-decl.m4 (jm_CHECK_DECLS): Likewise. (jm_CHECK_DECL_LOCALTIME_R): New macro. * m4/mktime.m4: Test for spring-forward gap before long-running test. 1998-10-14 Jim Meyering * m4/mktime.m4: Use the more portable "TZ=PST8PDT,M4.1.0,M10.5.0" instead of "TZ=America/Vancouver". From Paul Eggert. 1998-10-11 Jim Meyering * m4/mktime.m4 (jm_AM_FUNC_MKTIME): New file and macro. This adds a test for a recently added compatibility fix for mktime.c. * m4/jm-mktime.m4: Require jm_AM_FUNC_MKTIME, not AM_FUNC_MKTIME. 1998-09-27 Jim Meyering * m4/jm-macros.m4 (jm_MACROS): Require jm_FUNC_FNMATCH. * m4/fnmatch.m4 (jm_FUNC_FNMATCH): New file/macro. Extracted from ../configure.in, including a change from Gordon Matzigkeit to allow cross-compiling for the Hurd. * m4/glibc.m4: New file/macro to test for the GNU C Library versions 1 and 2. From Gordon Matzigkeit. Indent. 1998-09-21 Jim Meyering * m4/chown.m4: Declare locals: before, after. From Andries Brouwer. 1998-08-18 Paul Eggert Port nanosecond-resolution times to UnixWare 2.1.2 and pedantic Solaris 2.6. * m4/st_mtim.m4 (AC_STRUCT_ST_MTIM_NSEC): Renamed from AC_STRUCT_ST_MTIM. * m4/st_mtim.m4 (AC_STRUCT_ST_MTIM_NSEC): Generate name of ns member, instead of just 1 or undef. Allow for UnixWare 2.1.2 and Solaris 2.6 if in pedantic mode. 1998-08-15 Jim Meyering * m4/ssize_t.m4 (jm_TYPE_SSIZE_T): Remove file. * m4/check-type.m4: New file. Replacement for AC_CHECK_TYPE. * m4/jm-macros.m4: Use the new AC_CHECK_TYPE(ssize_t, int) instead of jm_TYPE_SSIZE_T. 1998-08-12 Jim Meyering * m4/st_dm_mode.m4: New file. From Johan Danielsson. 1998-08-02 Jim Meyering * m4/st_mtim.m4: Use hack to avoid having to put #undef HAVE_ST_MTIM in acconfig.h manually. 1998-07-31 Paul Eggert * m4/st_mtim.m4: New file. 1998-07-28 Jim Meyering * m4/utimes.m4: Undef stat. 1998-07-25 Jim Meyering * m4/utime.m4 (jm_FUNC_UTIME): New file and macro. * m4/utimes.m4 (jm_FUNC_UTIMES_NULL): New file and macro. 1998-07-09 Manfred Hollstein * m4/chown.m4 (jm_FUNC_CHOWN): Add a check to verify that the uid and gid actually remain unchanged. 1998-07-07 Jim Meyering * m4/jm-glibc-io.m4: Remove fclose_unlocked. 1998-07-04 Jim Meyering * m4/regex.m4: Use syscmd, ifelse, and sysval. Mainly as an exercise to prove that this macro can be used in packages without regex.c. 1998-07-04 Andreas Schwab * m4/gettext.m4 (AM_WITH_NLS): Remove intl/libintl.h if is to be used. 1998-07-03 Jim Meyering * m4/gettext.m4: Add -lintl if it's found to be necessary. * m4/gettext.m4: New file -- from gettext-0.10.35. * m4/lcmessage.m4: Likewise. * m4/progtest.m4: Likewise. * m4/regex.m4 (jm_WITH_REGEX): New file and macro. * m4/jm-macros.m4: Require the new macro. 1998-06-29 Jim Meyering * m4/fstypename.m4: Include sys/param.h. NetBSD 1.3.1 requires this for the definition of NGROUPS (used in a system header included by sys/mount.h). 1998-06-28 Jim Meyering * m4/ls-mntd-fs.m4: New file. * m4/fstypename.m4: New file. * m4/jm-macros.m4: Require the new macro. * m4/jm-glibc-io.m4: New file. 1998-05-19 Jim Meyering * m4/jm-macros.m4: Add jm_FUNC_LCHOWN. * m4/lchown.m4: New file. * m4/Makefile.am.in: New file. * m4/Makefile.am (Makefile.am): Depend on Makefile.am.in. 1998-05-14 Jim Meyering * m4/Makefile.am (EXTRA_DIST): Add them. * m4/jm-macros.m4: New file. * m4/utimbuf.m4: New file. 1998-05-12 Jim Meyering * m4/Makefile.am (EXTRA_DIST): Add isc-posix.m4. 1998-05-11 Jim Meyering * m4/isc-posix.m4: New file. 1998-05-10 Jim Meyering * m4/jm-mktime.m4: Use AM_FUNC_MKTIME, now that it's up to date. 1998-05-09 Jim Meyering * m4/Makefile.am (EXTRA_DIST): Add ssize_t.m4. (EXTRA_DIST): Remove mktime.m4, now that the new version is included with automake. * m4/ssize_t.m4: New file. * m4/mktime.m4: Remove file -- the new automake has this now. 1998-04-26 Jim Meyering * m4/assert.m4: New file. * m4/Makefile.am (EXTRA_DIST): Add assert.m4. 1998-04-05 Jim Meyering * m4/prereq.m4 (jm_PREREQ_REGEX): New macro. (jm_PREREQ): Use it here. 1998-03-23 Jim Meyering * m4/inttypes_h.m4: Kludges so I don't have to add HAVE_INTTYPES_H in acconfig.h. 1998-03-15 Jim Meyering * m4/prereq.m4: New file. * m4/error.m4: New file. * m4/Makefile.am (EXTRA_DIST): Add error.m4 and prereq.m4. 1998-02-07 Jim Meyering * m4/getline.m4: Don't set am_cv_func_working_getline before the cache-check for the same variable -- that defeated the purpose of the test; the test program was never run. This was a problem only on systems with losing getline functions -- HP-UX 10.20 is one. Reported by Bjorn Helgaas. 1998-02-06 Jim Meyering * m4/Makefile.am (EXTRA_DIST): Add perl.m4. 1998-01-10 Jim Meyering * m4/Makefile.am (EXTRA_DIST): Add const.m4. * m4/const.m4: New file. Use an initializer in this declaration typedef int charset[2]; const charset x; Reported by Bob Glickstein. 1997-12-21 Jim Meyering * m4/chown.m4: Fix reversed types on -1 args to chown. From Kaveh Ghazi. 1997-12-14 Jim Meyering * m4/check-decl.m4: s/DECLARATION_/DECL_/g. Add lseek and memchr. * m4/decl.m4: s/HAVE_DECLARATION_/HAVE_DECL_/g. T.E.Dickey said that some older preprocessors have a 20-character limit on names. 1997-11-30 Jim Meyering * m4/inttypes_h.m4: New file. * m4/uintmax_t.m4: New file. * m4/Makefile.am (EXTRA_DIST): Add inttypes_h.m4 and uintmax_t.m4. ----- Local Variables: coding: utf-8 End: Copyright (C) 1997-2023 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved.