X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=ChangeLog;h=3d4e23f348a47ce387106c17103125d3edc7ca9e;hb=6234d83ceaa130a50e84a4f8f974b41dc7ae2cce;hp=a1d5d6b5c2df158486b0db0e3ace2738fcecfd8c;hpb=8cac6904c1eb928f5f9a7d3c6e79fd6285b08930;p=gnulib.git diff --git a/ChangeLog b/ChangeLog index a1d5d6b5c..6651067b7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,1993 @@ +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 GNULIB_TEST_* 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. @@ -389,6 +2379,8 @@ 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).