Work around a glibc bug in strtok_r.
[gnulib.git] / ChangeLog
index 4698367..e5653e1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,672 @@
+2009-09-06  Ben Pfaff  <blp@gnu.org>
+           Bruno Haible  <bruno@clisp.org>
+
+       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  <gray@gnu.org.ua>
+
+       exclude: minor fix
+       * lib/exclude.c: Include wctype.h
+
+2009-09-06  Akim Demaille  <demaille@gostai.com>
+
+       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  <ebb9@byu.net>
+
+       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  <meyering@redhat.com>
+
+       syntax-check: detect unnecessary inclusion of openat.h
+       * top/maint.mk (sc_prohibit_openat_without_use): New rule.
+
+2009-09-05  Bruno Haible  <bruno@clisp.org>
+
+       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 <alanh@fairlite.co.uk>.
+
+2009-09-05  Bruno Haible  <bruno@clisp.org>
+
+       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  <bruno@clisp.org>
+
+       * tests/test-striconveh.c (main): Test indirect conversion on platforms
+       where direct conversion is possible.
+
+2009-09-04  Eric Blake  <ebb9@byu.net>
+
+       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: accomodate 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  <ebb9@byu.net>
+
+       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  <ebb9@byu.net>
+
+       errno: use consistently
+       * lib/c-stack.c (ENOTSUP): <errno.h> 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 <fcntl.h> 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 <dirent.h>, 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  <Ralf.Wildenhues@gmx.de>
+
+       * 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  <bruno@clisp.org>
+
+       * modules/mkdtemp (License): Relicense under LGPLv2+.
+       Reported by Paolo Bonzini.
+
+2009-09-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       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  <ebb9@byu.net>
+
+       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  <berrange@redhat.com>
+
+       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  <simon@josefsson.org>
+
+       * 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  <meyering@redhat.com>
+
+       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  <ebb9@byu.net>
+
+       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  <stefano.lattarini@gmail.com>  (tiny change)
+
+       * gnulib-tool: Fix test whether $CONFIG_SHELL has a working 'echo'
+       command.
+
+2009-08-31  Jim Meyering  <meyering@redhat.com>
+
+       canonicalize: remove useless initialization
+       * lib/canonicalize.c (canonicalize_filename_mode): Remove useless
+       initialization of local, "end".
+
+2009-08-30  Bruno Haible  <bruno@clisp.org>
+
+       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  <bruno@clisp.org>
+
+       * 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  <bruno@clisp.org>
+
+       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  <bruno@clisp.org>
+
+       New module 'xstriconveh'.
+       * lib/xstriconveh.h: New file.
+       * lib/xstriconveh.c: New file.
+       * modules/xstriconveh: New file.
+
+2009-08-30  Bruno Haible  <bruno@clisp.org>
+
+       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  <bruno@clisp.org>
+
+       * doc/posix-functions/iconv_open.texi: Mention indirect conversion
+       problem.
+
+2009-08-30  Bruno Haible  <bruno@clisp.org>
+
+       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  <meyering@redhat.com>
+
+       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  <bruno@clisp.org>
+
+       * tests/test-bitrotate.c (main): Remove test that uses a shift count
+       of 0.
+
+2009-08-27  Bruno Haible  <bruno@clisp.org>
+
+       * 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  <bruno@clisp.org>
+
+       Fix link error on Solaris.
+       * tests/test-parse-duration.c (xstrdup): Remove function.
+
+2009-08-26  Pádraig Brady  <P@draigbrady.com>
+
+       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  <bruno@clisp.org>
+
+       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  <meyering@redhat.com>
+
+       libguestfs uses gnulib
+       * users.txt: Add libguestfs.
+
+2009-08-24  Eric Blake  <ebb9@byu.net>
+
+       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  <bruno@clisp.org>
+
+       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  <bruno@clisp.org>
+
+       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  <meyering@redhat.com>
+
+       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 <errno.h>.
+       (set_program_name) [HAVE_DECL_PROGRAM_INVOCATION_NAME]:
+       Set program_invocation_name.
+
+2009-08-23  Bruno Haible  <bruno@clisp.org>
+
+       * lib/dup3.c: Include <string.h>.
+
+2009-08-23  Bruno Haible  <bruno@clisp.org>
+
+       * 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  <bruno@clisp.org>
+
+       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  <bruno@clisp.org>
+
+       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  <bruno@clisp.org>
+
+       * lib/pipe2.c (pipe2): Move #ifs inside function.
+
+2009-08-22  Joel E. Denny  <jdenny@clemson.edu>
+
+       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  <jdenny@clemson.edu>
+
+       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  <jdenny@clemson.edu>
+
+       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  <jdenny@clemson.edu>
 
        quotearg-tests: test escaping of embedded locale quotes