+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ pthread_sigmask: Document the module.
+ * doc/posix-functions/pthread_sigmask.texi: Mention the new module.
+
+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ pthread_sigmask: Follow gnulib conventions.
+ * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Renamed from
+ gl_PTHREAD_SIGMASK.
+ * modules/pthread_sigmask (configure.ac): Update.
+
+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ pthread_sigmask: Make declaration C++ safe.
+ * lib/signal.in.h: In two special conditions, just do an #include_next.
+ (pthread_sigmask): Test HAVE_PTHREAD_SIGMASK, not REPLACE_PTHREAD_MASK.
+ Invoke _GL_CXXALIAS_SYS and _GL_CXXALIASWARN.
+ * m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Initialize
+ HAVE_PTHREAD_SIGMASK, not REPLACE_PTHREAD_MASK.
+ * m4/pthread_sigmask.m4 (gl_PTHREAD_SIGMASK): Set HAVE_PTHREAD_SIGMASK,
+ not REPLACE_PTHREAD_MASK.
+ * modules/signal (Makefile.am): Substitute HAVE_PTHREAD_SIGMASK,
+ not REPLACE_PTHREAD_MASK.
+ * modules/pthread_sigmask (Depends-on, configure.ac): Update condition.
+
+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ pthread_sigmask: Fix return value.
+ * lib/signal.in.h (pthread_sigmask): Declare. Don't define as a macro.
+ * lib/pthread_sigmask.c: New file.
+ * modules/pthread_sigmask (Files): Add it.
+ (configure.ac): Invoke AC_LIBOBJ.
+
+2011-07-07 Eric Blake <eblake@redhat.com>
+
+ getopt: more portable argv creation
+ * m4/getopt.m4 (gl_GETOPT_CHECK_HEADRS): Rather than casting away
+ const, use char arrays rather than strings.
+ Suggested by Paul Eggert.
+
+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ Tests for module 'sigprocmask'.
+ * modules/sigprocmask-tests: New file.
+ * tests/test-sigprocmask.c: New file.
+
+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ float tests: Tweak.
+ * tests/test-float.c (main): Tweak skip message.
+
+2011-07-07 Eric Blake <eblake@redhat.com>
+
+ getopt: avoid compiler warning during configure
+ * m4/getopt.m4 (gl_GETOPT_CHECK_HEADRS): Avoid problems with
+ assigning string literals to non-const pointer.
+
+ getopt-gnu: avoid crash in glibc getopt
+ * m4/getopt.m4 (gl_GETOPT_CHECK_HEADRS): Detect the problem.
+ * tests/test-getopt.h (test_getopt): Enhance test.
+ * tests/test-getopt_long.h (test_getopt_long): Likewise.
+ * doc/posix-functions/getopt.texi (getopt): Document it.
+ * doc/glibc-functions/getopt_long.texi (getopt_long): Likewise.
+ * doc/glibc-functions/getopt_long_only.texi (getopt_long_only):
+ Likewise.
+
+2011-07-07 Ulrich Drepper <drepper@gmail.com>
+
+ getopt: handle W; without long options in getopt [BZ #12922]
+ * lib/getopt.c (_getopt_internal_r): When "W;" is in short options
+ but no long options are defined, just return 'W'.
+
+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ Avoid literal tabs.
+ * m4/po,m4 (AM_PO_SUBDIRS, AM_POSTPROCESS_PO_MAKEFILE): Use a shell
+ variable containing a tab instead of a literal tab.
+ Reported by Jim Meyering.
+
+2011-07-07 Bruno Haible <bruno@clisp.org>
+
+ Comments.
+ * m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Update comments about mingw.
+
+2011-07-06 Bruno Haible <bruno@clisp.org>
+
+ sys_select: Fix compilation error on mingw, introduced on 2011-06-30.
+ * lib/sys_select.in.h: Don't include <sys/socket.h>. Instead, include
+ <winsock2.h>.
+ (rpl_fd_isset, FD_ISSET): New definitions, copied from
+ lib/sys_socket.in.h.
+ (close, gethostname): Hide declarations from <winsock2.h>.
+ (socket, connect, accept, bind, getpeername, getsockname, getsockopt,
+ listen, recv, send, recvfrom, sendto, setsockopt, shutdown): Likewise.
+ * lib/sys_socket.in.h (close, gethostname): Tweak indentation.
+ (select): Don't override if gnulib's <sys/select.h> was already
+ included.
+ * lib/unistd.in.h (socket, connect, accept, bind, getpeername,
+ getsockname, getsockopt, listen, recv, send, recvfrom, sendto,
+ setsockopt, shutdown, select): Tweak indentation.
+
+2011-07-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ * modules/pthread_sigmask (configure.ac): gl_SIGNAL_MODULE_INDICATOR
+ and not gl_SYS_SELECT_MODULE_INDICATOR, fixing a typo exposed
+ in an application that does not use the sys_select module.
+
+2011-07-06 Erik Faye-Lund <kusmabite@gmail.com>
+
+ poll: do not return 0 on timeout=-1
+ * lib/poll.c: Loop with yield if no events occured
+
+2011-07-06 Eric Blake <eblake@redhat.com>
+
+ pthread_sigmask: always replace when not using pthread
+ * m4/pthread_sigmask.m4 (gl_PTHREAD_SIGMASK): Force sigprocmask
+ replacement when using some threading other than pthread. Fix
+ logic bug.
+
+2011-07-06 Bruno Haible <bruno@clisp.org>
+
+ Comments.
+ * m4/printf.m4: Update comments about mingw.
+
+2011-07-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ sys_select: define sigset_t more portably
+ * lib/sys_select.in.h: Always include <sys/types.h>, since
+ we now need sigset_t and mingw defines it there.
+ Include <signal.h> before split inclusion guard, to avoid
+ mishaps on Solaris, whose <signal.h> eventually includes us.
+ * m4/signal_h.m4 (gl_SIGNAL_H): Require gl_CHECK_TYPE_SIGSET_T.
+ (gl_CHECK_TYPE_SIGSET_T): New macro, most of the contents of
+ which come from ...
+ * m4/signalblocking.m4 (gl_SIGNALBLOCKING): Require
+ gl_CHECK_TYPE_SIGSET_T.
+ (gl_PREREQ_SIGPROCMASK): Now a no-op, since gl_CHECK_TYPE_SIGSET_T
+ does the real work.
+ * modules/sys_select (Depends-on): Add 'signal'.
+
+ * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Poison pselect.
+ Suggested by Bruno Haible.
+
+ pselect: Use pthread_sigmask, not sigprocmask.
+ * lib/pselect.c (pselect): Use pthread_sigmask, as it supports
+ multithreaded apps better than sigprocmask does.
+ * modules/pselect (Depends-on): Depend on pthread_sigmask, not
+ sigprocmask directly.
+
+2011-07-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * lib/pselect.c (pselect): Use plain name, without "rpl_".
+ Don't #undef, since we don't need any underlying pselect.
+ * modules/pselect (configure.ac): Use our pselect.o if !HAVE_PSELECT.
+ (Depends-on): Add select.
+ (Link): Add $(LIBSOCKET).
+ These changes suggested by Bruno Haible.
+
+ pselect: document better
+ * MODULES.html.sh (Support for systems lacking POSIX:2008): Add it.
+ * doc/posix-functions/pselect.texi (pselect): Document new module.
+
+ pthread_sigmask: new module
+ * MODULES.html.sh (Support for systems lacking POSIX:2008): Add it.
+ * doc/posix-functions/pthread_sigmask.texi: Document new module.
+ * lib/signal.in.h (pthread_sigmask): Arrange for replacement.
+ This is done only as a macro; I don't know how well that'll
+ work for C++. Move <sys/types.h> include before the include_next,
+ to avoid mishap on Solaris.
+ * m4/signal_h.m4 (gl_SIGNAL_H, gl_SIGNAL_H_DEFAULTS): Check for it.
+ * modules/signal (Makefile.am): Substitute the check's results.
+ * modules/pthread_sigmask, m4/pthread_sigmask.m4: New files.
+
+ test-pselect: new module
+ * modules/pselect-tests, tests/test-pselect.c: New files.
+ * tests/test-select.c, tests/test-sys_select-c++.cc:
+ If TEST_PSELECT is defined, test pselect instead of testing select.
+
+ * tests/test-sys_select.c (sigset_t): Test for it, too.
+ Suggested by Bruno Haible.
+
+2011-07-05 Eric Blake <eblake@redhat.com>
+
+ snprintf: guarantee %1$d, for libintl
+ * m4/snprintf.m4 (gl_FUNC_SNPRINTF): Require %1$d support.
+ * m4/vsnprintf.m4 (gl_FUNC_VSNPRINTF): Likewise.
+ * doc/posix-functions/snprintf.texi (snprintf): Update.
+ * doc/posix-functions/vsnprintf.texi (vsnprintf): Likewise.
+ * tests/test-snprintf.c (main): Enhance test.
+ * tests/test-vsnprintf.c (main): Likewise.
+
+2011-07-05 Jim Meyering <meyering@redhat.com>
+
+ maint: exempt stdio-read.c and stdio-write.c from the cppi check
+ * Makefile (sc_cpp_indent_check): Exempt stdio-read.c and stdio-write.c
+ per Bruno's request, to accommodate this idiom (no space after "#")
+ even when the function is inside an #if block:
+ char *
+ gets (char *s)
+ #undef gets
+ {
+ ...
+ }
+
+2011-07-04 Jim Meyering <meyering@redhat.com>
+
+ maint: indent with spaces, not TABs, and add a rule to check this
+ * tests/test-userspec.c: Indent with spaces, not TABs.
+ * tests/test-argp.c: Likewise.
+ * tests/test-c-stack2.sh: Likewise.
+ * tests/test-parse-duration.sh: Likewise
+ * m4/strtod.m4: Likewise.
+ * m4/alloca.m4: Likewise.
+ * m4/pselect.m4: Likewise.
+ * Makefile (sc_prohibit_leading_TABs): Prohibit leading TABs.
+
+2011-07-03 Jim Meyering <meyering@redhat.com>
+
+ maint.mk: correct omissions in prohibit_argmatch_without_use check
+ This rule would mistakenly report that argmatch.h is included without
+ use even when both the argmatch and invalid_arg macro were used.
+ * top/maint.mk (sc_prohibit_argmatch_without_use): Also detect uses
+ of argmatch and invalid_arg.
+
+2011-07-03 Bruno Haible <bruno@clisp.org>
+
+ Comments about EINTR.
+ * lib/safe-read.h: Explain the purpose of this module.
+ * lib/safe-write.h: Likewise.
+ * doc/posix-functions/read.texi: Mention EINTR and the 'safe-read'
+ module.
+ * doc/posix-functions/write.texi: Mention EINTR and the 'safe-write'
+ module.
+ Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
+
+2011-06-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ xnanosleep: Rewrite to use new dtotimespec module.
+ It has the conversion code that used to be in xnanosleep.
+ * lib/xnanosleep.c: Do not include limits.h, stdbool.h, stdio.h,
+ assert.h, sys/types.h, or intprops.h. Include timespec.h instead.
+ (TIME_T_MAX): Remove.
+ (xnanosleep): Rewrite in terms of dtotimespec.
+ * modules/xnanosleep (Depends-on): Add dtotimespec.
+ Remove intprops, stdbool.
+
+ timespec-add, timespec-sub: new modules
+ * lib/timespec.h (timespec_add, timespec_sub): New decls.
+ * lib/timespec-add.c, lib/timespec-sub.c:
+ * modules/timespec-add, modules/timespec-sub: New files.
+
+ dtotimespec: new module
+ * lib/timespec.h (dtotimespec): New decl.
+ * lib/dtotimespec.c, modules/dtotimespec: New files.
+
+ * lib/timespec.h (timespec_sign, timespectod): New inline functions.
+
+ pselect: new module
+ * lib/sys_select.in.h: Include <signal.h>, for 'sigset_t'.
+ (pselect): New decls.
+ * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Require AC_C_RESTRICT,
+ since the standard pselect decl uses 'restrict'.
+ (gl_SYS_SELECT_H_DEFAULTS): Add defaults for GNULIB_PSELECT,
+ HAVE_PSELECT, REPLACE_PSELECT.
+ * modules/sys_select (sys/select.h): Substitute GNULIB_PSELECT,
+ HAVE_PSELECT, REPLACE_PSELECT.
+ * lib/pselect.c, m4/pselect.m4, modules/pselect: New files.
+
+ sys_select: don't depend on sys_socket
+ This is so that Emacs doesn't have to drag in m4/sockpfaf.m4 etc; see
+ <http://lists.gnu.org/archive/html/bug-gnulib/2011-06/msg00358.html>.
+ This fix works on GNU and GNU-like platforms, but has not been tested
+ on native Windows.
+ * lib/sys_select.in.h: Include <sys/socket.h> only if native Windows.
+ * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Do not require
+ gl_HEADER_SYS_SOCKET.
+ * modules/sys_select (Files): Add m4/sys_socket_h.m4, for
+ gl_PREREQ_SYS_H_WINSOCK2.
+
+2011-06-29 Eric Blake <eblake@redhat.com>
+
+ pipe2: fix C89 compile problem
+ * lib/pipe2.c (pipe2): Avoid C99 array initialization.
+ Reported by Bruno Haible.
+
+ pipe, pipe2: don't corrupt fd on error
+ * lib/pipe.c (pipe): Leave fd unchanged on error.
+ * lib/pipe2.c (pipe2): Likewise.
+ * doc/posix-functions/pipe.texi (pipe): Document cygwin issue.
+ * doc/glibc-functions/pipe2.texi (pipe2): Likewise.
+
+2011-06-27 Paolo Bonzini <bonzini@gnu.org>
+
+ mmap-anon: do not use regular expressions inadvertently
+ * m4/mmap-anon.m4: Remove trailing period from strings sought
+ in the output.
+
+2011-06-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ nanosleep: fix integer overflow problem
+ * lib/nanosleep.c (my_usleep): Don't assume signed integer
+ arithmetic wraps around on overflow.
+
+ nanosleep: simplify carrying
+ * lib/nanosleep.c (nanosleep): Use the requested tv_nsec for the
+ first call to the underyling nanosleep, not for the last one.
+ This doesn't fix any bugs, but it simplifies the computation of
+ the remaining delay. Found while auditing integer overflow issues.
+
+ dup2: remove test for existence of fcntl
+ * m4/dup2.m4 (gl_FUNC_DUP2): Use "#ifdef FD_CLOEXEC", not
+ "#if HAVE_FCNTL", in the configure-time test program.
+ This removes the need for the AC_CHECK_FUNCS_ONCE([fcntl]),
+ and therefore speeds up "configure" a bit. Found while
+ adding the dup2 module to Emacs.
+
+2011-06-24 Eric Blake <eblake@redhat.com>
+
+ maint.mk: enhance useless header checks
+ * top/maint.mk (_sc_header_without_use): Check both include
+ styles.
+ (sc_prohibit_assert_without_use)
+ (sc_prohibit_close_stream_without_use)
+ (sc_prohibit_getopt_without_use)
+ (sc_prohibit_quotearg_without_use)
+ (sc_prohibit_quote_without_use)
+ (sc_prohibit_long_options_without_use)
+ (sc_prohibit_inttostr_without_use)
+ (sc_prohibit_ignore_value_without_use)
+ (sc_prohibit_error_without_use, sc_prohibit_xalloc_without_use)
+ (sc_prohibit_hash_without_use, sc_prohibit_cloexec_without_use)
+ (sc_prohibit_posixver_without_use, sc_prohibit_same_without_use)
+ (sc_prohibit_hash_pjw_without_use)
+ (sc_prohibit_safe_read_without_use)
+ (sc_prohibit_argmatch_without_use)
+ (sc_prohibit_canonicalize_without_use)
+ (sc_prohibit_root_dev_ino_without_use)
+ (sc_prohibit_openat_without_use)
+ (sc_prohibit_c_ctype_without_use)
+ (sc_prohibit_signal_without_use)
+ (sc_prohibit_stdio--_without_use)
+ (sc_prohibit_stdio-safer_without_use)
+ (sc_prohibit_strings_without_use)
+ (sc_prohibit_intprops_without_use)
+ (sc_prohibit_stddef_without_use)
+ (sc_prohibit_xfreopen_without_use): Update clients.
+
+2011-06-24 Jim Meyering <meyering@redhat.com>
+
+ syntax-check: keep one maint.mk rule in sync with its header
+ * Makefile (sc_check_sym_list): Add a rule to prevent a repeat
+ of the bug Eric has just fixed, with today's commit 25e4c2ec.
+ I prefer to avoid temporary files here, so use <(...), but that
+ is not supported by /bin/sh, so...
+ (SHELL): Define to /bin/bash.
+
+2011-06-24 Eric Blake <eblake@redhat.com>
+
+ maint.mk: update sc_prohibit_intprops_without_use
+ * top/maint.mk (_intprops_names): Match recent changes.
+
+2011-06-24 Bruno Haible <bruno@clisp.org>
+
+ strerror-override: No-op tweak.
+ * lib/strerror-override.h (strerror_override): Reorder conditions,
+ for consistency with lib/strerror-override.c.
+
+2011-06-23 Eric Blake <eblake@redhat.com>
+
+ maint.mk: test further PATH_MAX issues
+ * top/maint.mk (sc_prohibit_path_max_array): Rename...
+ (sc_prohibit_path_max_allocation): ...and also test alloca.
+ Suggested by Jim Meyering.
+
+2011-06-22 Eric Blake <eblake@redhat.com>
+
+ maint.mk: add syntax-check to avoid char[PATH_MAX]
+ * top/maint.mk (sc_prohibit_path_max_array): New rule.
+
+ stat: be robust to PATH_MAX definition
+ * lib/stat.c (rpl_stat): Require reasonable PATH_MAX.
+ * modules/stat (Depends-on): Add verify.
+
+ link: work around IRIX bug
+ * m4/link.m4 (gl_FUNC_LINK): Expose the bug.
+ * lib/link.c (rpl_link): Work around it.
+ * tests/test-link.h (test_link): Enhance test.
+ * doc/posix-functions/link.texi (link): Document the bug.
+
+ getopt: silence clang warning
+ * lib/getopt.c (_getopt_internal_r): Avoid unlikely NULL
+ dereference.
+ Reported by Gustavo Martin Domato.
+
+2011-06-22 Jim Meyering <meyering@redhat.com>
+
+ bootstrap: do not insert a blank line into each .gitignore file
+ * build-aux/bootstrap (sort_patterns): Filter out blank lines.
+
+2011-06-21 Eric Blake <eblake@redhat.com>
+
+ perror: test for output mismatch
+ * m4/perror.m4 (gl_FUNC_PERROR): Add test, in order to replace
+ perror on IRIX.
+
+ strerror_r: fix OpenBSD behavior on out-of-range
+ * lib/strerror_r.c (strerror_r): Always use maximal string.
+ * doc/posix-functions/strerror_r.texi (strerror_r): Document it.
+
+ strerror_r: fix OpenBSD behavior on 0
+ * lib/strerror-override.c (strerror_override): Also override 0
+ when needed.
+ * lib/strerror-override.h (strerror_override): Likewise.
+ * lib/strerror.c (strerror): Simplify, now that 0 override is done
+ earlier.
+ * lib/strerror_r.c (strerror_r): Likewise.
+ * m4/strerror.m4 (gl_FUNC_STRERROR): Split detection of 0
+ behavior...
+ (gl_FUNC_STRERROR_0): ...into new macro.
+ * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Replace strerror_r if 0
+ is overridden.
+ (gl_FUNC_STRERROR_R_WORKS): Avoid extra tests if 0 is broken.
+ * modules/strerror-override (Files): Add strerror.m4.
+ (configure.ac): Also provide override for 0 when needed.
+ * doc/posix-functions/strerror.texi (strerror): Document this.
+ * doc/posix-functions/perror.texi (perror): Likewise.
+
+ perror: adjust array size
+ * modules/perror (Depends-on): Add strerror-override.
+ * lib/perror.c (perror): Use it to avoid magic number.
+
+ strerror-override: reduce size
+ * lib/strerror-override.c (strerror_override): Use fewer lines.
+
2011-06-20 Bruno Haible <bruno@clisp.org>
pathmax: Ensure correct value for PATH_MAX on HP-UX.