gnulib.git
12 years agofflush tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 21:10:44 +0000 (23:10 +0200)]
fflush tests: EBADF tests.

* tests/test-fflush.c: Include errno.h, macros.h.
(main): Add tests for EBADF.

12 years agoftello tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 21:09:06 +0000 (23:09 +0200)]
ftello tests: EBADF tests.

* tests/test-ftello4.sh: New file.
* tests/test-ftello4.c: New file.
* modules/ftello-tests (Files): Add them.
(Makefile.am): Arrange to compile test-ftello4 and run test-ftello4.sh.

12 years agofseeko tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 21:07:31 +0000 (23:07 +0200)]
fseeko tests: EBADF tests.

* tests/test-fseeko4.sh: New file.
* tests/test-fseeko4.c: New file.
* modules/fseeko-tests (Files): Add them.
(Makefile.am): Arrange to compile test-fseeko4 and run test-fseeko4.sh.

12 years agoTests for function fputc().
Bruno Haible [Tue, 20 Sep 2011 21:04:11 +0000 (23:04 +0200)]
Tests for function fputc().

* modules/fputc-tests: New file.
* tests/test-fputc.c: New file.
* modules/stdio-tests (Depends-on): Add fputc-tests.

12 years agoTests for function fgetc().
Bruno Haible [Tue, 20 Sep 2011 21:02:57 +0000 (23:02 +0200)]
Tests for function fgetc().

* modules/fgetc-tests: New file.
* tests/test-fgetc.c: New file.
* modules/stdio-tests (Depends-on): Add fgetc-tests.

12 years agoTests for function fdopen().
Bruno Haible [Tue, 20 Sep 2011 21:01:20 +0000 (23:01 +0200)]
Tests for function fdopen().

* modules/fdopen-tests: New file.
* tests/test-fdopen.c: New file.
* modules/stdio-tests (Depends-on): Add fdopen-tests.

12 years agoTests for module 'vdprintf'.
Bruno Haible [Tue, 20 Sep 2011 20:58:04 +0000 (22:58 +0200)]
Tests for module 'vdprintf'.

* modules/vdprintf-tests: New file.
* tests/test-vdprintf.c: New file.

12 years agoTests for module 'dprintf'.
Bruno Haible [Tue, 20 Sep 2011 20:57:24 +0000 (22:57 +0200)]
Tests for module 'dprintf'.

* modules/dprintf-tests: New file.
* tests/test-dprintf.c: New file.

12 years agoTests for module 'ioctl'.
Bruno Haible [Tue, 20 Sep 2011 20:52:59 +0000 (22:52 +0200)]
Tests for module 'ioctl'.

* modules/ioctl-tests: New file.
* tests/test-ioctl.c: New file.

12 years agofcntl tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 20:51:30 +0000 (22:51 +0200)]
fcntl tests: EBADF tests.

* tests/test-fcntl.c (main): Add more tests for EBADF.

12 years agoutimensat tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 20:49:52 +0000 (22:49 +0200)]
utimensat tests: EBADF tests.

* tests/test-utimensat.c (main): Add tests for EBADF.

12 years agorenameat tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 20:48:42 +0000 (22:48 +0200)]
renameat tests: EBADF tests.

* tests/test-renameat.c (main): Add tests for EBADF.

12 years agomkfifoat tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 20:47:20 +0000 (22:47 +0200)]
mkfifoat tests: EBADF tests.

* tests/test-mkfifoat.c (main): Add tests for EBADF.

12 years agoreadlinkat tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 20:45:40 +0000 (22:45 +0200)]
readlinkat tests: EBADF tests.

* tests/test-readlinkat.c (main): Add tests for EBADF.

12 years agosymlinkat tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 20:44:41 +0000 (22:44 +0200)]
symlinkat tests: EBADF tests.

* tests/test-symlinkat.c (main): Add tests for EBADF.

12 years agolinkat tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 20:43:43 +0000 (22:43 +0200)]
linkat tests: EBADF tests.

* tests/test-linkat.c (main): Add tests for EBADF.

12 years agoTests for module 'faccessat'.
Bruno Haible [Tue, 20 Sep 2011 20:41:40 +0000 (22:41 +0200)]
Tests for module 'faccessat'.

* modules/faccessat-tests: New file.
* tests/test-faccessat.c: New file.

12 years agofdopendir tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 20:39:51 +0000 (22:39 +0200)]
fdopendir tests: EBADF tests.

* tests/test-fdopendir.c (main): Add more tests for EBADF.

12 years agoopenat tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 20:36:37 +0000 (22:36 +0200)]
openat tests: EBADF tests.

* tests/test-fchownat.c (main): Add tests for EBADF.
* tests/test-fstatat.c (main): Likewise.
* tests/test-mkdirat.c (main): Likewise.
* tests/test-openat.c (main): Likewise.
* tests/test-unlinkat.c (main): Likewise.
* tests/test-fchmodat.c: New file.
* modules/openat-tests (Files): Add tests/test-fchmodat.c.
(Makefile.am): Also run 'test-fchmodat'.

12 years agoutimens, futimens, fdutimensat tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 20:29:28 +0000 (22:29 +0200)]
utimens, futimens, fdutimensat tests: EBADF tests.

* tests/test-futimens.h (test_futimens): Add more tests for EBADF.

12 years agoTests for function fstat().
Bruno Haible [Tue, 20 Sep 2011 20:26:34 +0000 (22:26 +0200)]
Tests for function fstat().

* modules/fstat-tests: New file.
* tests/test-fstat.c: New file.
* modules/sys_stat-tests (Depends-on): Add fstat-tests.

12 years agotest-ttyname_r tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 20:22:15 +0000 (22:22 +0200)]
test-ttyname_r tests: EBADF tests.

* tests/test-ttyname_r.c (main): Add tests for EBADF.

12 years agoTests for module 'isatty'.
Bruno Haible [Tue, 20 Sep 2011 20:19:24 +0000 (22:19 +0200)]
Tests for module 'isatty'.

* modules/isatty-tests: New file.
* tests/test-isatty.c: New file.

12 years agoTests for module 'write'.
Bruno Haible [Tue, 20 Sep 2011 20:17:21 +0000 (22:17 +0200)]
Tests for module 'write'.

* modules/write-tests: New file.
* tests/test-write.c: New file.

12 years agoTests for module 'read'.
Bruno Haible [Tue, 20 Sep 2011 20:16:23 +0000 (22:16 +0200)]
Tests for module 'read'.

* modules/read-tests: New file.
* tests/test-read.c: New file.

12 years agopwrite tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 20:14:38 +0000 (22:14 +0200)]
pwrite tests: EBADF tests.

* tests/test-pwrite.c (main): Add tests for EBADF.

12 years agopread tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 20:12:22 +0000 (22:12 +0200)]
pread tests: EBADF tests.

* tests/test-pread.c (main): Add tests for EBADF.

12 years agolseek tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 20:09:55 +0000 (22:09 +0200)]
lseek tests: EBADF tests.

* tests/test-lseek.c (main): Add more tests for EBADF.

12 years agoTests for module 'ftruncate'.
Bruno Haible [Tue, 20 Sep 2011 20:07:48 +0000 (22:07 +0200)]
Tests for module 'ftruncate'.

* modules/ftruncate-tests: New file.
* tests/test-ftruncate.sh: New file.
* tests/test-ftruncate.c: New file.

12 years agofsync tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 20:05:29 +0000 (22:05 +0200)]
fsync tests: EBADF tests.

* tests/test-fsync.c (main): Add more tests for EBADF.

12 years agofdatasync tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 20:03:35 +0000 (22:03 +0200)]
fdatasync tests: EBADF tests.

* tests/test-fdatasync.c (main): Add more tests for EBADF.

12 years agoTests for module 'fchown'.
Bruno Haible [Tue, 20 Sep 2011 20:01:43 +0000 (22:01 +0200)]
Tests for module 'fchown'.

* modules/fchown-tests: New file.
* tests/test-fchown.c: New file.

12 years agoTests for module 'fchmod'.
Bruno Haible [Tue, 20 Sep 2011 20:00:29 +0000 (22:00 +0200)]
Tests for module 'fchmod'.

* modules/fchmod-tests: New file.
* tests/test-fchmod.c: New file.

12 years agofchdir tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 19:58:23 +0000 (21:58 +0200)]
fchdir tests: EBADF tests.

* tests/test-fchdir.c (main): Add more tests for EBADF.

12 years agodup2 tests: EBADF tests.
Bruno Haible [Tue, 20 Sep 2011 19:56:23 +0000 (21:56 +0200)]
dup2 tests: EBADF tests.

* tests/test-dup2.c (main): Add more tests for EBADF.

12 years agoTests for module 'dup'.
Bruno Haible [Tue, 20 Sep 2011 19:52:55 +0000 (21:52 +0200)]
Tests for module 'dup'.

* modules/dup-tests: New file.
* tests/test-dup.c: New file.

12 years agoTests for module 'close'.
Bruno Haible [Tue, 20 Sep 2011 19:51:45 +0000 (21:51 +0200)]
Tests for module 'close'.

* modules/close-tests: New file.
* tests/test-close.c: New file.

12 years agoTests for module 'shutdown'.
Bruno Haible [Tue, 20 Sep 2011 19:38:04 +0000 (21:38 +0200)]
Tests for module 'shutdown'.

* modules/shutdown-tests: New file.
* tests/test-shutdown.c: New file.

12 years agoTests for module 'setsockopt'.
Bruno Haible [Tue, 20 Sep 2011 19:36:56 +0000 (21:36 +0200)]
Tests for module 'setsockopt'.

* modules/setsockopt-tests: New file.
* tests/test-setsockopt.c: New file.

12 years agoTests for module 'sendto'.
Bruno Haible [Tue, 20 Sep 2011 19:35:53 +0000 (21:35 +0200)]
Tests for module 'sendto'.

* modules/sendto-tests: New file.
* tests/test-sendto.c: New file.

12 years agoTests for module 'send'.
Bruno Haible [Tue, 20 Sep 2011 19:35:19 +0000 (21:35 +0200)]
Tests for module 'send'.

* modules/send-tests: New file.
* tests/test-send.c: New file.

12 years agoTests for module 'recvfrom'.
Bruno Haible [Tue, 20 Sep 2011 19:34:35 +0000 (21:34 +0200)]
Tests for module 'recvfrom'.

* modules/recvfrom-tests: New file.
* tests/test-recvfrom.c: New file.

12 years agoTests for module 'recv'.
Bruno Haible [Tue, 20 Sep 2011 19:33:55 +0000 (21:33 +0200)]
Tests for module 'recv'.

* modules/recv-tests: New file.
* tests/test-recv.c: New file.

12 years agoTests for module 'listen'.
Bruno Haible [Tue, 20 Sep 2011 19:32:43 +0000 (21:32 +0200)]
Tests for module 'listen'.

* modules/listen-tests: New file.
* tests/test-listen.c: New file.

12 years agoTests for module 'getsockopt'.
Bruno Haible [Tue, 20 Sep 2011 19:31:43 +0000 (21:31 +0200)]
Tests for module 'getsockopt'.

* modules/getsockopt-tests: New file.
* tests/test-getsockopt.c: New file.

12 years agoTests for module 'getsockname'.
Bruno Haible [Tue, 20 Sep 2011 19:30:21 +0000 (21:30 +0200)]
Tests for module 'getsockname'.

* modules/getsockname-tests: New file.
* tests/test-getsockname.c: New file.

12 years agoTests for module 'getpeername'.
Bruno Haible [Tue, 20 Sep 2011 19:29:26 +0000 (21:29 +0200)]
Tests for module 'getpeername'.

* modules/getpeername-tests: New file.
* tests/test-getpeername.c: New file.

12 years agoTests for module 'connect'.
Bruno Haible [Tue, 20 Sep 2011 19:28:17 +0000 (21:28 +0200)]
Tests for module 'connect'.

* modules/connect-tests: New file.
* tests/test-connect.c: New file.

12 years agoTests for module 'bind'.
Bruno Haible [Tue, 20 Sep 2011 19:25:50 +0000 (21:25 +0200)]
Tests for module 'bind'.

* modules/bind-tests: New file.
* tests/test-bind.c: New file.

12 years agoaccept4 tests: Fix for native Windows.
Bruno Haible [Tue, 20 Sep 2011 19:24:02 +0000 (21:24 +0200)]
accept4 tests: Fix for native Windows.

* tests/test-accept4.c: Include sockets.h.
(main): Invoke gl_sockets_startup.
* modules/accept4-tests (Depends-on): Add sockets.

12 years agoaccept tests: Fix for native Windows.
Bruno Haible [Tue, 20 Sep 2011 19:22:22 +0000 (21:22 +0200)]
accept tests: Fix for native Windows.

* tests/test-accept.c: Include sockets.h.
(main): Invoke gl_sockets_startup.
* modules/accept-tests (Depends-on): Add sockets.

12 years agomsvc-inval: Require a semicolon after DONE_MSVC_INVAL.
Bruno Haible [Tue, 20 Sep 2011 01:16:18 +0000 (03:16 +0200)]
msvc-inval: Require a semicolon after DONE_MSVC_INVAL.

* lib/msvc-inval.h (TRY_MSVC_INVAL, DONE_MSVC_INVAL): Wrap in a
do...while(0).
* lib/dup2.c (rpl_dup2): Add a semicolon after DONE_MSVC_INVAL.
Suggested by Paul Eggert.

12 years agosched: Ensure pid_t is defined.
Bruno Haible [Mon, 19 Sep 2011 21:48:58 +0000 (23:48 +0200)]
sched: Ensure pid_t is defined.

* m4/sched_h.m4 (gl_SCHED_H): Arrange to override <sched.h> if it does
not define pid_t.
* lib/sched.in.h: Include <sys/types.h>.
* doc/posix-headers/sched.texi: Mention the pid_t problem.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.

12 years agomsvc-inval: Ensure the entire expansion is a single statement.
Bruno Haible [Mon, 19 Sep 2011 21:29:44 +0000 (23:29 +0200)]
msvc-inval: Ensure the entire expansion is a single statement.

* lib/msvc-inval.h (TRY_MSVC_INVAL, DONE_MSVC_INVAL): Add an extra pair
of braces.

12 years agotests: use printf, not echo in init.sh's warn_ function
Jim Meyering [Mon, 19 Sep 2011 17:27:53 +0000 (19:27 +0200)]
tests: use printf, not echo in init.sh's warn_ function

* tests/init.sh (warn_): Use printf, not echo.  The latter would
misbehave when given strings containing a backslash or starting
with e.g., -n.  James Youngman suggested setting IFS.

12 years agofutimens: enhance test
Eric Blake [Mon, 19 Sep 2011 17:10:16 +0000 (11:10 -0600)]
futimens: enhance test

Test that previous futimens change doesn't regress.

* tests/test-futimens.h (test_futimens): Also check for EBADF on
closed non-negative fd.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agodate: accept 'hence' as opposite of 'ago'
Eric Blake [Fri, 16 Sep 2011 20:52:54 +0000 (14:52 -0600)]
date: accept 'hence' as opposite of 'ago'

* lib/parse-datetime.y (relative_time_table): Add 'hence'.
* tests/test-parse-datetime.c (main): Enhance test.
Suggested by Jesse Wilson.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agogetcwd: don't fail in a deep directory on a system without openat
Jim Meyering [Mon, 19 Sep 2011 07:48:35 +0000 (09:48 +0200)]
getcwd: don't fail in a deep directory on a system without openat

Before this change, getcwd would fail when called from a directory
of depth PATH_MAX / 3 or greater.  That was due to the fact that
the non-openat implementation used "..", "../..", "../../..", etc.
to access ancestor directories.  With too many, that string would
be longer than PATH_MAX.
* lib/getcwd.c (HAVE_OPENAT_SUPPORT): Define also when we are
using gnulib's openat replacement.
* m4/openat.m4: Set GNULIB_OPENAT, so getcwd.c knows when
we're using the replacement function.

12 years agomaint.mk: avoid warnings from perl about missing files
Martin von Gagern [Wed, 14 Sep 2011 13:33:16 +0000 (15:33 +0200)]
maint.mk: avoid warnings from perl about missing files

* top/maint.mk (def_sym_regex): Ignore files listed in
$(gl_other_headers_) that do not exist, say because a project
does not use a corresponding module.

12 years ago* lib/stat.c: Move comment.
Paul Eggert [Mon, 19 Sep 2011 14:34:58 +0000 (07:34 -0700)]
* lib/stat.c: Move comment.

12 years agostat: use pathmax.h only if needed
Paul Eggert [Mon, 19 Sep 2011 04:46:34 +0000 (21:46 -0700)]
stat: use pathmax.h only if needed

* lib/stat.c: Include pathmax.h only if REPLACE_FUNC_STAT_DIR.
This is better for Emacs, which does not have a mingw port and
therefore can avoid the pathmax module.

12 years agoutimens: remove dependency on dup2
Paul Eggert [Mon, 19 Sep 2011 03:57:48 +0000 (20:57 -0700)]
utimens: remove dependency on dup2

* lib/utimens.c (fdutimens): Don't invoke dup2; it's not needed
to work around the Linux kernel bug.
* modules/utimens (Depends-on): Remove dup2.

12 years agoinet_ntop, inet_pton: Look for it also in libresolv.
Bruno Haible [Mon, 19 Sep 2011 01:44:56 +0000 (03:44 +0200)]
inet_ntop, inet_pton: Look for it also in libresolv.

* m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): If the function was not found in
libnsl, search for it in libresolv.
* m4/inet_pton.m4 (gl_FUNC_INET_PTON): Likewise.
Needed on Solaris 7.

12 years agoaccept, accept4 tests: Avoid link error on Solaris.
Bruno Haible [Mon, 19 Sep 2011 01:10:16 +0000 (03:10 +0200)]
accept, accept4 tests: Avoid link error on Solaris.

* modules/accept-tests (Makefile.am): Link test-accept against
$(LIBSOCKET).
* modules/accept4-tests (Makefile.am): Link test-accept4 against
$(LIBSOCKET).

12 years agoaccept4: Avoid link error on Solaris.
Bruno Haible [Mon, 19 Sep 2011 01:07:25 +0000 (03:07 +0200)]
accept4: Avoid link error on Solaris.

* modules/accept4 (Link): New section.

12 years agosocket functions: Avoid link errors on Solaris.
Bruno Haible [Mon, 19 Sep 2011 00:13:59 +0000 (02:13 +0200)]
socket functions: Avoid link errors on Solaris.

* modules/accept (Depends-on): Add socketlib.
(Link): New section.
* modules/bind (Depends-on): Add socketlib.
(Link): New section.
* modules/connect (Depends-on): Add socketlib.
(Link): New section.
* modules/getpeername (Depends-on): Add socketlib.
(Link): New section.
* modules/getsockname (Depends-on): Add socketlib.
(Link): New section.
* modules/getsockopt (Depends-on): Add socketlib.
(Link): New section.
* modules/listen (Depends-on): Add socketlib.
(Link): New section.
* modules/recv (Depends-on): Add socketlib.
(Link): New section.
* modules/recvfrom (Depends-on): Add socketlib.
(Link): New section.
* modules/send (Depends-on): Add socketlib.
(Link): New section.
* modules/sendto (Depends-on): Add socketlib.
(Link): New section.
* modules/setsockopt (Depends-on): Add socketlib.
(Link): New section.
* modules/shutdown (Depends-on): Add socketlib.
(Link): New section.
* modules/socket (Depends-on): Add socketlib.
(Link): New section.

12 years agoptsname tests: Let the test fail rather than hang (e.g. on AIX 5.1).
Bruno Haible [Sun, 18 Sep 2011 23:02:09 +0000 (01:02 +0200)]
ptsname tests: Let the test fail rather than hang (e.g. on AIX 5.1).

* tests/test-ptsname.c (main): Terminate the test if it takes longer
than 5 seconds.
* modules/ptsname-tests (configure.ac): Test for alarm.

12 years agoposix_spawn_file_actions_add*: Fix module dependencies.
Bruno Haible [Sun, 18 Sep 2011 22:44:04 +0000 (00:44 +0200)]
posix_spawn_file_actions_add*: Fix module dependencies.

* modules/posix_spawn_file_actions_addclose (Dependencies): Add
posix_spawn_file_actions_init.
* modules/posix_spawn_file_actions_adddup2 (Dependencies): Likewise.
* modules/posix_spawn_file_actions_addopen (Dependencies): Likewise.

12 years agorename, renameat tests: Avoid test failures on FreeBSD 6.4.
Bruno Haible [Sun, 18 Sep 2011 22:35:39 +0000 (00:35 +0200)]
rename, renameat tests: Avoid test failures on FreeBSD 6.4.

* tests/test-rename.h (test_rename): Allow error code EEXIST.
* tests/test-renameat.c (main): Likewise.

12 years agoTests for module 'accept4'.
Bruno Haible [Sun, 18 Sep 2011 09:17:24 +0000 (11:17 +0200)]
Tests for module 'accept4'.

* modules/accept4-tests: New file.
* tests/test-accept4.c: New file.

12 years agoaccept tests: Fix last commit.
Bruno Haible [Sun, 18 Sep 2011 09:13:21 +0000 (11:13 +0200)]
accept tests: Fix last commit.

12 years agoTests for module 'accept'.
Bruno Haible [Sun, 18 Sep 2011 09:08:33 +0000 (11:08 +0200)]
Tests for module 'accept'.

* modules/accept-tests: New file.
* tests/test-accept.c: New file.

12 years agodup2: Support for MSVC.
Bruno Haible [Sun, 18 Sep 2011 08:34:24 +0000 (10:34 +0200)]
dup2: Support for MSVC.

* lib/dup2.c: Include msvc-inval.h.
(rpl_dup2): Handle invalid parameter notifications during dup2 and
_get_osfhandle calls.
* modules/dup2 (Depends-on): Add msvc-inval.
* doc/posix-functions/dup2.texi: Mention problem on MSVC.

12 years agoNew module 'msvc-inval'.
Bruno Haible [Sun, 18 Sep 2011 08:21:26 +0000 (10:21 +0200)]
New module 'msvc-inval'.

* lib/msvc-inval.h: New file.
* lib/msvc-inval.c: New file.
* m4/msvc-inval.m4: New file.
* modules/msvc-inval: New file.

12 years agoTests for module 'pclose'.
Bruno Haible [Sat, 17 Sep 2011 23:02:34 +0000 (01:02 +0200)]
Tests for module 'pclose'.

* modules/pclose-tests: New file.

12 years agoNew module 'pclose'.
Bruno Haible [Sat, 17 Sep 2011 22:58:06 +0000 (00:58 +0200)]
New module 'pclose'.

* lib/stdio.in.h (pclose): New declaration.
* lib/pclose.c: New file.
* m4/pclose.m4: New file.
* m4/stdio_h.m4 (gl_STDIO_H): Test whether pclose is declared.
(gl_STDIO_H_DEFAULTS): Initialize GNULIB_PCLOSE, HAVE_PCLOSE.
* modules/stdio (Makefile.am): Substitute GNULIB_PCLOSE, HAVE_PCLOSE.
* modules/pclose: New file.
* modules/popen-tests (Depends-on): Add pclose.
* modules/popen-safer-tests (Depends-on): Likewise.
* doc/posix-functions/pclose.texi: Mention the new module.

12 years agopopen: Support for MSVC.
Bruno Haible [Sat, 17 Sep 2011 16:28:17 +0000 (18:28 +0200)]
popen: Support for MSVC.

* lib/stdio.in.h (popen): Declare it if the system lacks this function.
* lib/popen.c (popen): Provide alternate definition for native Windows.
* m4/popen.m4 (gl_FUNC_POPEN): Test if popen exists. Set HAVE_POPEN.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize HAVE_POPEN.
* modules/popen (Depends-on, configure.ac): Update condition.
* modules/stdio (Makefile.am): Substitute HAVE_POPEN.
* doc/posix-functions/popen.texi: Mention that the MSVC problem is
fixed.

12 years agoisnanl, isnand, isnanf: Work around MSVC bug.
Bruno Haible [Sat, 17 Sep 2011 15:58:10 +0000 (17:58 +0200)]
isnanl, isnand, isnanf: Work around MSVC bug.

* lib/isnan.c (FUNC): Use alternate ways of computing NaN and Infinity.

12 years agosys_socket tests: Fix recent mistake.
Bruno Haible [Sat, 17 Sep 2011 15:40:17 +0000 (17:40 +0200)]
sys_socket tests: Fix recent mistake.

* tests/test-sys_socket.c (t1): Avoid collision of identifiers.

12 years agoputenv: Support for MSVC.
Bruno Haible [Sat, 17 Sep 2011 15:34:03 +0000 (17:34 +0200)]
putenv: Support for MSVC.

* modules/putenv (Depends-on): Add environ.
* lib/putenv.c (environ): Disable declaration.
* lib/unistd.in.h: Update comment.

12 years agomath: Avoid macro redefinition warnings on MSVC.
Bruno Haible [Sat, 17 Sep 2011 15:14:38 +0000 (17:14 +0200)]
math: Avoid macro redefinition warnings on MSVC.

* lib/math.in.h (ceilf, ceill, floorf, floorl, frexpl, ldexpl):
Undefine before redefining.

12 years agodoc: Mention functions which are declared as macros.
Bruno Haible [Sat, 17 Sep 2011 15:10:12 +0000 (17:10 +0200)]
doc: Mention functions which are declared as macros.

* doc/posix-functions/*[fl].texi: Mention that some functions are
defined as macros with arguments only.

12 years agoAdd dependencies to new dirent related modules.
Bruno Haible [Sat, 17 Sep 2011 14:53:15 +0000 (16:53 +0200)]
Add dependencies to new dirent related modules.

* modules/backupfile (Depends-on): Add opendir, readdir, closedir.
* modules/fts (Depends-on): Likewise.
* modules/glob (Depends-on): Likewise.
* modules/savedir (Depends-on): Likewise.
* modules/scandir (Depends-on): Likewise.
* modules/dirent-safer (Depends-on): Add opendir, closedir.
* modules/fdopendir (Depends-on): Add opendir.

12 years agoinet_pton: Fix mistake in last commit.
Bruno Haible [Sat, 17 Sep 2011 14:05:19 +0000 (16:05 +0200)]
inet_pton: Fix mistake in last commit.

12 years agoinet_pton: Support for MSVC on Windows Vista or newer.
Bruno Haible [Sat, 17 Sep 2011 13:09:53 +0000 (15:09 +0200)]
inet_pton: Support for MSVC on Windows Vista or newer.

* lib/arpa_inet.in.h (inet_pton): Also consider REPLACE_INET_PTON.
* lib/inet_pton.c (rpl_inet_pton): Use a simple wrapper if
HAVE_DECL_INET_PTON is defined.
* m4/inet_pton.m4 (gl_FUNC_INET_PTON): Invoke gl_PREREQ_SYS_H_WINSOCK2.
On platforms with <winsock2.h>, test whether inet_pton is declared in
<ws2tcpip.h>. If so, arrange to replace it.
* m4/arpa_inet_h.m4 (gl_ARPA_INET_H_DEFAULTS): Initialize
REPLACE_INET_PTON.
* modules/arpa_inet (Makefile.am): Substitute REPLACE_INET_PTON.
* modules/inet_pton (Files): Add m4/sys_socket_h.m4.
(Depends-on, configure.ac): Update condition.
* doc/posix-functions/inet_pton.texi: Mention the MSVC problem.

12 years agoinet_ntop: Support for MSVC on Windows Vista or newer.
Bruno Haible [Sat, 17 Sep 2011 12:56:11 +0000 (14:56 +0200)]
inet_ntop: Support for MSVC on Windows Vista or newer.

* lib/arpa_inet.in.h (inet_ntop): Also consider REPLACE_INET_NTOP.
* lib/inet_ntop.c (rpl_inet_ntop): Use a simple wrapper if
HAVE_DECL_INET_NTOP is defined.
* m4/inet_ntop.m4 (gl_FUNC_INET_NTOP): Invoke gl_PREREQ_SYS_H_WINSOCK2.
On platforms with <winsock2.h>, test whether inet_ntop is declared in
<ws2tcpip.h>. If so, arrange to replace it.
* m4/arpa_inet_h.m4 (gl_ARPA_INET_H_DEFAULTS): Initialize
REPLACE_INET_NTOP.
* modules/arpa_inet (Makefile.am): Substitute REPLACE_INET_NTOP.
* modules/inet_ntop (Files): Add m4/sys_socket_h.m4.
(Depends-on, configure.ac): Update condition.
* doc/posix-functions/inet_ntop.texi: Mention the MSVC problem.

12 years agotest-fsync: yet another enhancement
Eric Blake [Fri, 16 Sep 2011 23:15:39 +0000 (17:15 -0600)]
test-fsync: yet another enhancement

* tests/test-fsync.c (main): Also test behavior on read-only text
file.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agoEnhance fsync, fdatasync tests.
Bruno Haible [Fri, 16 Sep 2011 21:55:06 +0000 (23:55 +0200)]
Enhance fsync, fdatasync tests.

* tests/test-fsync.c (main): Test both STDIN_FILENO and STDOUT_FILENO.
* tests/test-fdatasync.c (main): Likewise.

12 years agoFix last ChangeLog entry.
Bruno Haible [Fri, 16 Sep 2011 21:44:07 +0000 (23:44 +0200)]
Fix last ChangeLog entry.

12 years agoSupport for MSVC compiler: Ensure mode_t gets defined.
Bruno Haible [Fri, 16 Sep 2011 21:43:21 +0000 (23:43 +0200)]
Support for MSVC compiler: Ensure mode_t gets defined.

* m4/fcntl_h.m4 (gl_FCNTL_H): Require AC_TYPE_MODE_T.
* m4/spawn_h.m4 (gl_SPAWN_H): Likewise.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Likewise.
* m4/sys_types_h.m4 (gl_SYS_TYPES_H): Likewise.
* tests/test-fcntl-h.c: Check that mode_t is defined.
* tests/test-sys_stat.c: Likewise.
* tests/test-sys_types.c: Likewise.
* doc/posix-headers/fcntl.texi: Mention the missing mode_t problem.
* doc/posix-headers/sys_stat.texi: Likewise.
* doc/posix-headers/sys_types.texi: Likewise.

12 years agosys_stat: Support for MSVC.
Bruno Haible [Fri, 16 Sep 2011 21:17:49 +0000 (23:17 +0200)]
sys_stat: Support for MSVC.

* lib/sys_stat.in.h (S_IFIFO): Define to _S_IFIFO if that exists.
* tests/test-sys_stat.c: Don't assume that S_IFBLK exists.
* doc/posix-headers/sys_stat.texi: Mention missing S_IFIFO, S_IFBLK on
MSVC.

12 years agoSupport for MSVC compiler: Ensure off_t gets defined.
Bruno Haible [Fri, 16 Sep 2011 20:55:49 +0000 (22:55 +0200)]
Support for MSVC compiler: Ensure off_t gets defined.

* lib/unistd.in.h: Include <sys/types.h>.
* tests/test-fcntl-h.c: Check that off_t is defined.
* tests/test-sys_stat.c: Likewise.
* tests/test-sys_types.c: Likewise.

12 years agofdatasync: port to Solaris
Eric Blake [Fri, 16 Sep 2011 20:12:01 +0000 (14:12 -0600)]
fdatasync: port to Solaris

Cater to Solaris requiring extra libraries for fdatasync.

* m4/fdatasync.m4 (gl_FUNC_FDATASYNC): Set LIB_FDATASYNC.
* modules/fdatasync (Link): Document it.
* modules/fdatasync-tests (test_fdatasync_LDADD): Link with it.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agofdatasync: port to MacOS X 10.7
Eric Blake [Fri, 16 Sep 2011 19:49:16 +0000 (13:49 -0600)]
fdatasync: port to MacOS X 10.7

MacOS X 10.7 added an fdatasync syscall and exports a symbol for it,
but fails to declare it anywhere.  Lacking any hard evidence that this
syscall is broken, we will just provide the declaration and use it.

* m4/fdatasync.m4 (gl_FUNC_FDATASYNC): Check for present but not
declared.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Another default.
* modules/unistd (Makefile.am): Substitute it.
* lib/unistd.in.h (fdatasync): Declare on MacOS.
* doc/posix-functions/fdatasync.texi (fdatasync): Document it.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agofdatasync: minor improvements
Eric Blake [Fri, 16 Sep 2011 18:47:13 +0000 (12:47 -0600)]
fdatasync: minor improvements

Picks up some ideas by Paul Eggert from here:
https://lists.gnu.org/archive/html/bug-coreutils/2011-07/msg00157.html

* modules/fdatasync (Depends-on): Add condition for fsync.
* lib/fdatasync.c (fdatasync): Add comment.
* tests/test-unistd-c++.cc: Test fdatasync.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agounistd: update refs to newer POSIX
Eric Blake [Fri, 16 Sep 2011 18:12:41 +0000 (12:12 -0600)]
unistd: update refs to newer POSIX

usleep only exists in POSIX 2001, but for the rest of the functions
where we pointed to online POSIX specs, we might as well point to the
latest version of the standard.

* lib/unistd.in.h: Prefer POSIX 2008 over 2001.
Suggested by Bruno Haible.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agofdatasync: new module
Eric Blake [Fri, 16 Sep 2011 15:59:23 +0000 (09:59 -0600)]
fdatasync: new module

At least libvirt would like to use the lighter-weight fdatasync
on platforms where it is supported, while still guaranteeing full
sync (via the heavy-weight fsync fallback) on all platforms.

I've got an open question to the Austin Group, since the POSIX 2008
wording is self-contradictory (unlike fsync, fdatasync requires
EBADF on non-writable fds, but still mentions that read() errors
must be propagated).  I can see how fsync() would affect atime after
read() while fdatasync() can skip that, explaining why fdatasync()
might have the EBADF requirement, but on the other hand, that prevents
an implementation (like ours) where fdatasync is a straight alias of
fsync.  At any rate, glibc allows fdatasync on read-only fds.

* modules/fsync (Description): Document difference to fdatasync.
* modules/fdatasync: New module.
* m4/fdatasync.m4 (gl_FUNC_FDATASYNC): New file.
* lib/fdatasync.c (fdatasync): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H, gl_UNISTD_H_DEFAULTS): Set up
defaults.
* modules/unistd (Makefile.am): Set witnesses.
* lib/unistd.in.h (fdatasync): Declare.
* MODULES.html.sh: Document it.
* doc/posix-functions/fdatasync.texi (fdatasync): Likewise.
* modules/fdatasync-tests: New test.
* tests/test-fdatasync.c: Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agotest-fsync: enhance tests
Eric Blake [Fri, 16 Sep 2011 16:28:13 +0000 (10:28 -0600)]
test-fsync: enhance tests

This test failed to compile on mingw, which lacks ENOTSUP.  Furthermore,
it wasn't testing POSIX behavior on invalid fds.

* modules/fsync-tests (Depends-on): Add errno, for mingw.
* tests/test-fsync.c (main): Enhance test.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agoSupport for MSVC compiler: Ensure ssize_t gets defined.
Bruno Haible [Thu, 15 Sep 2011 16:00:32 +0000 (18:00 +0200)]
Support for MSVC compiler: Ensure ssize_t gets defined.

* doc/posix-headers/sys_types.texi: Mention the missing ssize_t problem.
* doc/posix-headers/stdio.texi: Likewise.
* modules/stdio (Depends-on): Add ssize_t.
* modules/sys_socket (Depends-on): Likewise.
* modules/sys_types (Depends-on): Likewise.
* modules/sys_uio (Depends-on): Likewise.
* modules/unistd (Depends-on): Likewise.
* tests/test-sys_socket.c: Check that size_t and ssize_t are defined.
* tests/test-sys_types.c: Check that ssize_t is defined.

12 years agoAvoid using #, the m4 comment starter character, near brackets.
Bruno Haible [Wed, 14 Sep 2011 23:00:17 +0000 (01:00 +0200)]
Avoid using #, the m4 comment starter character, near brackets.

* m4/absolute-header.m4 (gl_ABSOLUTE_HEADER_ONE): Use |, not #, as
delimiter character in sed expressions.
* m4/include_next.m4 (gl_NEXT_HEADERS_INTERNAL): Likewise.
Suggested by Eric Blake.