sigprocmask: move #include directive
[gnulib.git] / ChangeLog
index 9485f56..2c77669 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,220 @@
+2011-09-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       sigprocmask: move #include directive
+       * lib/sigprocmask.c: Move '#include "msvc-inval.h"' to the
+       Windows-specific section, so that the Emacs source need not
+       contain msvc-inval.h.
+
+2011-09-23  Bruno Haible  <bruno@clisp.org>
+
+       read: Support for MSVC 9.
+       * lib/unistd.in.h (read): Replace also when GNULIB_UNISTD_H_NONBLOCKING
+       is not 1.
+       * lib/read.c (read_nothrow): New function.
+       (rpl_read): Define also when GNULIB_NONBLOCKING is not 1. Use
+       read_nothrow.
+       * m4/read.m4 (gl_FUNC_READ): Replace read if the platform has an
+       invalid parameter handler.
+       (gl_PREREQ_READ): New macro.
+       * modules/read (Depends-on): Add msvc-inval.
+       (configure.ac): Invoke gl_PREREQ_READ.
+       * doc/posix-functions/read.texi: Mention the problem on MSVC.
+
+2011-09-23  Bruno Haible  <bruno@clisp.org>
+
+       close: Support for MSVC 9.
+       * lib/close.c: Include <errno.h>, msvc-inval.h.
+       (close_nothrow): New function.
+       (rpl_close): Use it.
+       * m4/close.m4 (gl_FUNC_CLOSE): Replace close if the platform has an
+       invalid parameter handler.
+       * modules/close (Depends-on): Add msvc-inval.
+       * modules/dup2-tests (Depends-on): Add close.
+       * modules/dup3-tests (Depends-on): Likewise.
+       * modules/fcntl-tests (Depends-on): Likewise.
+       * modules/spawn-pipe-tests (Depends-on): Likewise.
+       * modules/unistd-safer-tests (Depends-on): Likewise.
+       * doc/posix-functions/close.texi: Mention the problem on MSVC.
+
+2011-09-23  Bruno Haible  <bruno@clisp.org>
+
+       New module 'dup'.
+       * lib/unistd.in.h (dup): Declare only if the 'dup' module is in use.
+       Allow replacement.
+       * lib/dup.c: New file.
+       * lib/fchdir.c (rpl_dup): Remove function.
+       * m4/dup.m4: New file.
+       * m4/fchdir.m4 (gl_FUNC_FCHDIR): Don't set REPLACE_DUP here.
+       * m4/unistd_h.m4 (gl_UNISTD_H): Test whether 'dup' is declared.
+       (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_DUP.
+       * modules/unistd (Makefile.am): Substitute GNULIB_DUP.
+       * modules/dup: New file.
+       * tests/test-unistd-c++.cc: Check the signature of 'dup' only if the
+       'dup' module is in use.
+       * modules/fdopendir (Depends-on): Add dup.
+       * modules/fdutimensat-tests (Depends-on): Likewise.
+       * modules/fts (Depends-on): Likewise.
+       * modules/futimens-tests (Depends-on): Likewise.
+       * modules/posix_spawnp-tests (Depends-on): Likewise.
+       * modules/unistd-safer-tests (Depends-on): Likewise.
+       * modules/utimens-tests (Depends-on): Likewise.
+       * doc/posix-functions/dup.texi: Mention the new module and the problem
+       on MSVC.
+
+2011-09-23  Bruno Haible  <bruno@clisp.org>
+
+       getdtablesize: Support for MSVC 9.
+       * lib/getdtablesize.c: Include msvc-inval.h.
+       (_setmaxstdio_nothrow): New function.
+       (_setmaxstdio): Redefine it.
+       * m4/getdtablesize.m4 (gl_PREREQ_GETDTABLESIZE): New macro.
+       * modules/getdtablesize (Depends-on): Add msvc-inval.
+       (configure.ac): Invoke gl_PREREQ_GETDTABLESIZE.
+
+2011-09-23  Bruno Haible  <bruno@clisp.org>
+
+       signal-h: Rename from signal.
+       * modules/signal-h: Renamed from modules/signal.
+       * modules/pthread_sigmask (Depends-on): Update.
+       * modules/raise (Depends-on): Likewise.
+       * modules/sigaction (Depends-on): Likewise.
+       * modules/sigpipe (Depends-on): Likewise.
+       * modules/sigprocmask (Depends-on): Likewise.
+       * modules/sys_select (Depends-on): Likewise.
+       * modules/signal-h-tests: Renamed from modules/signal-tests.
+       (Files, Depends-on, Makefile.am): Update.
+       * tests/test-signal-h.c: Renamed from tests/test-signal.c.
+       * modules/signal-h-c++-tests: Renamed from modules/signal-c++-tests.
+       (Files, Makefile.am): Update.
+       * tests/test-signal-h-c++.cc: Renamed from tests/test-signal-c++.cc.
+       * tests/test-signal-h-c++2.cc: Renamed from tests/test-signal-c++2.cc.
+       * modules/signal: New placeholder file.
+       * MODULES.html.sh (Support for systems lacking POSIX:2008): Update.
+       * doc/posix-headers/signal.texi: Update.
+       * NEWS: Mention the change.
+
+2011-09-23  Bruno Haible  <bruno@clisp.org>
+
+       sigprocmask: Avoid crashes through signal() on MSVC 9.
+       * lib/sigprocmask.c: Include msvc-inval.h.
+       (signal_nothrow): New function.
+       (signal): Redefine it.
+       * m4/signalblocking.m4 (gl_PREREQ_SIGPROCMASK): Require AC_C_INLINE.
+       * modules/sigprocmask (Depends-on): Add msvc-inval.
+       * doc/posix-functions/signal.texi: Mention the problem on MSVC.
+
+2011-09-23  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'raise'.
+       * modules/raise-tests: New file.
+       * tests/test-raise.c: New file.
+
+       raise: Support for MSVC.
+       * lib/signal.in.h (raise): New declaration.
+       * lib/raise.c (raise_nothrow, rpl_raise): New alternate implementation
+       for native Windows platforms.
+       * m4/raise.m4: New file.
+       * m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Initialize GNULIB_RAISE,
+       HAVE_RAISE, REPLACE_RAISE.
+       * modules/signal (Makefile.am): Substitute GNULIB_RAISE, HAVE_RAISE,
+       REPLACE_RAISE.
+       * modules/raise (Status, Notice): Remove fields.
+       (Files): Add m4/raise.m4.
+       (Depends-on): Add signal, msvc-inval.
+       (configure.ac): Use the common idioms.
+       (Maintainer): Add me.
+       * tests/test-signal-c++.cc: Check the signature of raise.
+       * doc/posix-functions/raise.texi: Mention the problem on MSVC.
+
+2011-09-23  Bruno Haible  <bruno@clisp.org>
+
+       pipe2: Fix compilation on pre-C99 compilers.
+       * lib/pipe2.c (pipe2): Surround verify(...) declaration with braces.
+
+2011-09-23  Bruno Haible  <bruno@clisp.org>
+
+       New module 'msvc-nothrow'. Makes _get_osfhandle safe on MSVC 9.
+       * lib/msvc-nothrow.h: New file.
+       * lib/msvc-nothrow.c: New file.
+       * m4/msvc-nothrow.m4: New file.
+       * modules/msvc-nothrow: New file.
+       * lib/dup2.c: Include msvc-nothrow.h.
+       (rpl_dup2): No need to protect _get_osfhandle call here.
+       * lib/accept4.c: Include msvc-nothrow.h.
+       * lib/error.c: Likewise.
+       * lib/fcntl.c: Likewise.
+       * lib/lseek.c: Likewise.
+       * lib/nonblocking.c: Likewise.
+       * lib/poll.c: Likewise.
+       * lib/read.c: Likewise.
+       * lib/select.c: Likewise.
+       * lib/sockets.h: Likewise.
+       * lib/sockets.c: Likewise.
+       * lib/stdio-read.c: Likewise.
+       * lib/stdio-write.c: Likewise.
+       * lib/write.c: Likewise.
+       * lib/w32sock.h: Likewise.
+       * lib/w32spawn.h: Likewise.
+       * lib/flock.c: Include msvc-nothrow.h instead of <io.h>.
+       * lib/fsync.c: Likewise.
+       * lib/isapipe.c: Likewise.
+       * modules/dup2 (Depends-on): Add msvc-nothrow.
+       * modules/accept4 (Depends-on): Likewise.
+       * modules/error (Depends-on): Likewise.
+       * modules/fcntl (Depends-on): Likewise.
+       * modules/lseek (Depends-on): Likewise.
+       * modules/nonblocking (Depends-on): Likewise.
+       * modules/poll (Depends-on): Likewise.
+       * modules/read (Depends-on): Likewise.
+       * modules/select (Depends-on): Likewise.
+       * modules/sockets (Depends-on): Likewise.
+       * modules/sigpipe (Depends-on): Likewise.
+       * modules/write (Depends-on): Likewise.
+       * modules/accept (Depends-on): Likewise.
+       * modules/bind (Depends-on): Likewise.
+       * modules/connect (Depends-on): Likewise.
+       * modules/gethostname (Depends-on): Likewise.
+       * modules/getpeername (Depends-on): Likewise.
+       * modules/getsockname (Depends-on): Likewise.
+       * modules/getsockopt (Depends-on): Likewise.
+       * modules/ioctl (Depends-on): Likewise.
+       * modules/listen (Depends-on): Likewise.
+       * modules/recv (Depends-on): Likewise.
+       * modules/recvfrom (Depends-on): Likewise.
+       * modules/send (Depends-on): Likewise.
+       * modules/sendto (Depends-on): Likewise.
+       * modules/setsockopt (Depends-on): Likewise.
+       * modules/shutdown (Depends-on): Likewise.
+       * modules/socket (Depends-on): Likewise.
+       * modules/execute (Depends-on): Likewise.
+       * modules/spawn-pipe (Depends-on): Likewise.
+       * modules/flock (Depends-on): Likewise.
+       * modules/fsync (Depends-on): Likewise.
+       * modules/isapipe (Depends-on): Likewise.
+       * tests/test-cloexec.c: Include msvc-nothrow.h.
+       * tests/test-dup-safer.c: Likewise.
+       * tests/test-dup2.c: Likewise.
+       * tests/test-dup3.c: Likewise.
+       * tests/test-fcntl.c: Likewise.
+       * tests/test-pipe.c: Likewise.
+       * tests/test-pipe2.c: Likewise.
+       * modules/cloexec-tests (Depends-on): Add msvc-nothrow.
+       * modules/unistd-safer-tests (Depends-on): Likewise.
+       * modules/dup2-tests (Depends-on): Likewise.
+       * modules/dup3-tests (Depends-on): Likewise.
+       * modules/fcntl-tests (Depends-on): Likewise.
+       * modules/pipe-posix-tests (Depends-on): Likewise.
+       * modules/pipe2-tests (Depends-on): Likewise.
+
+2011-09-23  Bruno Haible  <bruno@clisp.org>
+
+       dup2: Make code more maintainable.
+       * lib/dup2.c (dup2_nothrow): New function, extracted from rpl_dup2.
+       (rpl_dup2): Use it.
+       * m4/dup2.m4 (gl_PREREQ_DUP2): New macro.
+       * modules/dup2 (configure.ac): Invoke it.
+       Reported by Paul Eggert.
+
 2011-09-23  Bruno Haible  <bruno@clisp.org>
 
        msvc-inval: Fix compilation error.