gnulib.git
13 years agoparse-datetime: better name than get_date
Eric Blake [Tue, 5 Oct 2010 17:40:11 +0000 (11:40 -0600)]
parse-datetime: better name than get_date

* NEWS: Reword the deprecation notice.
* modules/get_date: Rename to modules/parse-datetime.
* modules/get_date-tests: Rename to modules/parse-datetime-tests.
* m4/get_date.m4: Rename to m4/parse-datetime.m4.
* lib/get_date.y: Rename to lib/parse-datetime.y.
* tests/test-get_date.c: Rename to tests/test-parse-datetime.c.
* doc/get_date.texi: Rename to doc/parse-datetime.texi.
* doc/getdate.texi: Provide fallback wrapper.
* lib/getdate.h: Move guts, and wrap...
* lib/parse-datetime.h: ...new file.
* lib/parse-datetime.y (get_date): Rename...
(parse_datetime): ...to this.
* m4/parse-datetime.m4 (gl_GET_DATE): Rename...
(gl_PARSE_DATETIME): ...to this.
* doc/posix-functions/getdate.texi (get_date): Provide fallback
documentation.
* modules/getdate (Files): Provide fallback docs and header.
(Notice, Depends-on): Update references.
* tests/test-parse-datetime.c: Likewise.
* DEPENDENCIES: Likewise.
* MODULES.html.sh (Date and time <time.h>): Likewise.
* doc/parse-datetime.texi (Date input formats)
(Authors of parse_datetime): Likewise.
* modules/parse-datetime (Files, configure.ac, Makefile.am)
(Include): Likewise.
* modules/parse-datetime-tests (Files, Makefile.am): Likewise.
* gnulib-tool: Likewise.
* m4/bison.m4 (gl_BISON): Likewise.
Suggested by Bruno Haible.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agomore ports to Solaris tr, which needs [] around ranges
Paul Eggert [Tue, 5 Oct 2010 16:29:28 +0000 (09:29 -0700)]
more ports to Solaris tr, which needs [] around ranges

* gnulib-tool: Solaris tr needs [] around ranges.
* m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): Likewise.
* tests/test-pipe-filter-gi1.c (main): Likewise.
* tests/test-pipe-filter-ii1.c (main): Likewise.

13 years agobootstrap: fix Solaris regression
Eric Blake [Tue, 5 Oct 2010 15:42:06 +0000 (09:42 -0600)]
bootstrap: fix Solaris regression

* build-aux/bootstrap (check_versions): Solaris tr still needs []
around ranges.
Reported by Pádraig Brady.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agobootstrap: work with pkg-config
Eric Blake [Tue, 5 Oct 2010 12:35:44 +0000 (06:35 -0600)]
bootstrap: work with pkg-config

* build-aux/bootstrap (found_aux_dir): Also transliterate - in
prerequisite name.
(print_versions): Be robust to any \ in $buildreq.  Avoid listing
prerequisites that were already found, to avoid confusion.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agofaccessat: remove unused wrappers
Eric Blake [Tue, 5 Oct 2010 14:06:50 +0000 (08:06 -0600)]
faccessat: remove unused wrappers

* lib/openat.h (accessat, euidaccesat): Delete, since the mere
presence of these wrappers dragged in -lgen on Solaris.
Reported by Clemens Brogi; fix suggested by Paul Eggert.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agotests: require @PRAGMA_COLUMNS@ with each @PRAGMA_SYSTEM_HEADER@
Jim Meyering [Tue, 5 Oct 2010 10:44:20 +0000 (12:44 +0200)]
tests: require @PRAGMA_COLUMNS@ with each @PRAGMA_SYSTEM_HEADER@

* Makefile (sc_pragma_columns): New syntax-check rule.

13 years agognulib-tool: Synthesize appropriate _LDFLAGS for a libtool library.
Bruno Haible [Tue, 5 Oct 2010 00:30:24 +0000 (02:30 +0200)]
gnulib-tool: Synthesize appropriate _LDFLAGS for a libtool library.

* gnulib-tool (func_emit_lib_Makefile_am): When preparing for a libtool
library, put '-no-undefined' and the link dependencies into _LDFLAGS.
Reported by Bruce Korb and Eric Blake.

13 years agothreadlib: Make option --with-libpth-prefix work.
Bruno Haible [Tue, 5 Oct 2010 01:19:16 +0000 (03:19 +0200)]
threadlib: Make option --with-libpth-prefix work.

* m4/threadlib.m4 (gl_THREADLIB_BODY): When testing whether pth works,
use $LIBPTH, not just -lpth.

13 years agoAvoid line length limitation from HP NonStop system header files.
Bruno Haible [Mon, 4 Oct 2010 21:35:51 +0000 (23:35 +0200)]
Avoid line length limitation from HP NonStop system header files.

* m4/include_next.m4 (gl_INCLUDE_NEXT): Define also PRAGMA_COLUMNS.
* lib/arpa_inet.in.h: Use PRAGMA_COLUMNS.
* lib/ctype.in.h: Likewise.
* lib/dirent.in.h: Likewise.
* lib/errno.in.h: Likewise.
* lib/fcntl.in.h: Likewise.
* lib/float.in.h: Likewise.
* lib/getopt.in.h: Likewise.
* lib/iconv.in.h: Likewise.
* lib/inttypes.in.h: Likewise.
* lib/langinfo.in.h: Likewise.
* lib/locale.in.h: Likewise.
* lib/math.in.h: Likewise.
* lib/netdb.in.h: Likewise.
* lib/netinet_in.in.h: Likewise.
* lib/poll.in.h: Likewise.
* lib/pthread.in.h: Likewise.
* lib/pty.in.h: Likewise.
* lib/sched.in.h: Likewise.
* lib/se-selinux.in.h: Likewise.
* lib/search.in.h: Likewise.
* lib/signal.in.h: Likewise.
* lib/spawn.in.h: Likewise.
* lib/stdarg.in.h: Likewise.
* lib/stddef.in.h: Likewise.
* lib/stdint.in.h: Likewise.
* lib/stdio.in.h: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/string.in.h: Likewise.
* lib/strings.in.h: Likewise.
* lib/sys_file.in.h: Likewise.
* lib/sys_ioctl.in.h: Likewise.
* lib/sys_select.in.h: Likewise.
* lib/sys_socket.in.h: Likewise.
* lib/sys_stat.in.h: Likewise.
* lib/sys_time.in.h: Likewise.
* lib/sys_times.in.h: Likewise.
* lib/sys_utsname.in.h: Likewise.
* lib/sys_wait.in.h: Likewise.
* lib/sysexits.in.h: Likewise.
* lib/termios.in.h: Likewise.
* lib/time.in.h: Likewise.
* lib/unistd.in.h: Likewise.
* lib/wchar.in.h: Likewise.
* lib/wctype.in.h: Likewise.
* modules/arpa_inet (Makefile.am): Substitute PRAGMA_COLUMNS.
* modules/ctype (Makefile.am): Likewise.
* modules/dirent (Makefile.am): Likewise.
* modules/errno (Makefile.am): Likewise.
* modules/fcntl-h (Makefile.am): Likewise.
* modules/float (Makefile.am): Likewise.
* modules/getopt-posix (Makefile.am): Likewise.
* modules/iconv-h (Makefile.am): Likewise.
* modules/inttypes (Makefile.am): Likewise.
* modules/langinfo (Makefile.am): Likewise.
* modules/locale (Makefile.am): Likewise.
* modules/math (Makefile.am): Likewise.
* modules/netdb (Makefile.am): Likewise.
* modules/netinet_in (Makefile.am): Likewise.
* modules/poll-h (Makefile.am): Likewise.
* modules/pthread (Makefile.am): Likewise.
* modules/pty (Makefile.am): Likewise.
* modules/sched (Makefile.am): Likewise.
* modules/search (Makefile.am): Likewise.
* modules/selinux-h (Makefile.am): Likewise.
* modules/signal (Makefile.am): Likewise.
* modules/spawn (Makefile.am): Likewise.
* modules/stdarg (Makefile.am): Likewise.
* modules/stddef (Makefile.am): Likewise.
* modules/stdint (Makefile.am): Likewise.
* modules/stdio (Makefile.am): Likewise.
* modules/stdlib (Makefile.am): Likewise.
* modules/string (Makefile.am): Likewise.
* modules/strings (Makefile.am): Likewise.
* modules/sys_file (Makefile.am): Likewise.
* modules/sys_ioctl (Makefile.am): Likewise.
* modules/sys_select (Makefile.am): Likewise.
* modules/sys_socket (Makefile.am): Likewise.
* modules/sys_stat (Makefile.am): Likewise.
* modules/sys_time (Makefile.am): Likewise.
* modules/sys_times (Makefile.am): Likewise.
* modules/sys_utsname (Makefile.am): Likewise.
* modules/sys_wait (Makefile.am): Likewise.
* modules/sysexits (Makefile.am): Likewise.
* modules/termios (Makefile.am): Likewise.
* modules/time (Makefile.am): Likewise.
* modules/unistd (Makefile.am): Likewise.
* modules/wchar (Makefile.am): Likewise.
* modules/wctype (Makefile.am): Likewise.

13 years agoread-file tests: Avoid a test failure on NonStop Kernel.
Bruno Haible [Mon, 4 Oct 2010 19:35:44 +0000 (21:35 +0200)]
read-file tests: Avoid a test failure on NonStop Kernel.

* tests/test-read-file.c (main): Don't assume that /etc/resolv.conf is
a regular file.
Reported by Joachim Schmitz <schmitz@hp.com>.

13 years agognulib-tool: Fixes for --create-testdir with --libtool.
Bruno Haible [Mon, 4 Oct 2010 00:23:23 +0000 (02:23 +0200)]
gnulib-tool: Fixes for --create-testdir with --libtool.

* gnulib-tool (func_get_automake_snippet): Don't augment
EXTRA_lib_SOURCES for the pt_chown module, since pt_chown.o goes into
an executable.
(func_create_testdir): Handle module 'alloca' like func_import.
Reported by Bruce Korb <bruce.korb@gmail.com>.

13 years agoAvoid some lines longer than 80 characters.
Paul Eggert [Sun, 3 Oct 2010 21:53:34 +0000 (23:53 +0200)]
Avoid some lines longer than 80 characters.

* lib/stdint.in.h: Break long comment lines.
* lib/math.in.h: Likewise.
(_GL_NUM_UINT_WORDS): New macro, for readability.
(gl_signbitf, gl_signbitd, gl_signbitl): Use it.
* lib/stdio.in.h: Break lines in _GL_WARN_ON_USE calls.
* lib/stdlib.in.h: Likewise.
* lib/spawn.in.h: Likewise.
* lib/sys_socket.in.h: Update an URL.
* lib/sys_stat.in.h: Break long line.

13 years agoacl: Add support for ACLs on NonStop Kernel.
Bruno Haible [Sun, 3 Oct 2010 16:03:48 +0000 (18:03 +0200)]
acl: Add support for ACLs on NonStop Kernel.

* m4/acl.m4 (gl_FUNC_ACL): For Solaris, test for facl(), not for acl().
Check whether the function aclsort() exists.
* lib/acl-internal.h: For Solaris, test HAVE_FACL, not HAVE_ACL.
(acl_nontrivial) [HAVE_ACLSORT]: New declaration.
* lib/file-has-acl.c: For Solaris, test HAVE_FACL, not HAVE_ACL.
(acl_nontrivial [HAVE_ACLSORT]: New function.
(file_has_acl): Implement for NonStop Kernel.
* lib/set-mode-acl.c: For Solaris, test HAVE_FACL, not HAVE_ACL.
(qset_acl): Implement for NonStop Kernel.
* lib/copy-acl.c (qcopy_acl): Implement for NonStop Kernel.
* tests/test-sameacls.c: For Solaris, test HAVE_FACL, not HAVE_ACL.
(main): Implement for NonStop Kernel.
* tests/test-file-has-acl.sh (acl_flavor): Set to 'nsk' on NonStop
Kernel. Handle this flavor.
* tests/test-set-mode-acl.sh: Likewise.
* tests/test-copy-acl.sh: Likewise.
* tests/test-copy-file.sh: Likewise.

13 years agoMore info about ACLs on NonStop Kernel.
Bruno Haible [Sun, 3 Oct 2010 11:32:37 +0000 (13:32 +0200)]
More info about ACLs on NonStop Kernel.

13 years agoInfo about ACLs on NonStop Kernel.
Bruno Haible [Sun, 3 Oct 2010 10:28:20 +0000 (12:28 +0200)]
Info about ACLs on NonStop Kernel.

* doc/acl-resources.txt: Add info about NonStop Kernel.
References by Joachim Schmitz <schmitz@hp.com>.

13 years agoDefine missing EDQUOT on NonStop Kernel.
Bruno Haible [Sat, 2 Oct 2010 16:54:05 +0000 (18:54 +0200)]
Define missing EDQUOT on NonStop Kernel.

* lib/errno.in.h (EDQUOT): Assign a value if missing.
* lib/strerror.c (rpl_strerror): Handle missing EDQUOT.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Also test whether EDQUOT is
missing.
* doc/posix-headers/errno.texi: Mention the NSK bug.
* doc/posix-functions/strerror.texi: Mention the workaround on NSK.
Reported by Joachim Schmitz <schmitz@hp.com>.

13 years agoUpdate doc for POSIX:2008.
Bruno Haible [Sat, 2 Oct 2010 16:35:08 +0000 (18:35 +0200)]
Update doc for POSIX:2008.

* doc/posix-headers/*.texi [except ucontext.texi, sys_timeb.texi]:
Update URL of POSIX specification.

13 years agognulib-tool: In testdirs, use the newest available config.{guess.sub}.
Bruno Haible [Sat, 2 Oct 2010 14:00:39 +0000 (16:00 +0200)]
gnulib-tool: In testdirs, use the newest available config.{guess.sub}.

* gnulib-tool (func_create_testdir): Use config.guess and config.sub
from gnulib, not from Automake.

13 years agoNew module 'system-posix'.
Bruno Haible [Sat, 2 Oct 2010 09:44:20 +0000 (11:44 +0200)]
New module 'system-posix'.

* modules/system-posix: New file.
* lib/stdlib.in.h: Include <sys/wait.h> only when the 'system-posix'
module is present.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize
GNULIB_SYSTEM_POSIX.
* modules/stdlib (Depends-on): Remove sys_wait.
(Makefile.am): Substitute GNULIB_SYSTEM_POSIX.
* doc/posix-functions/system.texi: Mention the new module.
* doc/posix-headers/stdlib.texi: Likewise.
* tests/test-stdlib.c: If GNULIB_TEST_SYSTEM_POSIX is not defined,
define test_sys_wait_macros to a no-op.
Reported by Sam Steingold <sds@gnu.org>.

13 years agoMore renaming from 'getdate' to 'get_date'.
Bruno Haible [Thu, 30 Sep 2010 21:29:13 +0000 (23:29 +0200)]
More renaming from 'getdate' to 'get_date'.

* doc/get_date.texi: Renamed from doc/getdate.texi.
* modules/get_date (Files): Update.
* MODULES.html.sh (Date and time <time.h>): Update.
* DEPENDENCIES: Update.
* gnulib-tool: Update comment.
* m4/bison.m4 (gl_BISON): Likewise.
* m4/get_date.m4 (gl_GET_DATE): Likewise.

13 years agobootstrap: support ACLOCAL_FLAGS during aclocal
Justin Clift [Thu, 30 Sep 2010 21:25:22 +0000 (15:25 -0600)]
bootstrap: support ACLOCAL_FLAGS during aclocal

* build-aux/bootstrap (aclocal): Honor ACLOCAL_FLAGS, so the user
can add additional -I dir for third-party .m4 files.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agobootstrap: use glibtoolize on MacOS
Eric Blake [Thu, 30 Sep 2010 17:14:11 +0000 (11:14 -0600)]
bootstrap: use glibtoolize on MacOS

* build-aux/bootstrap (check_versions): Convert libtool into
libtoolize.
(tool search): Move libtool check earlier, and look for
glibtoolize for MacOS.
(gnulib_tool_options): Auto-add --libtool when appropriate.
Reported by Justin Clift.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agopoll: fix typo that broke test on MacOS
Eric Blake [Thu, 30 Sep 2010 15:32:45 +0000 (09:32 -0600)]
poll: fix typo that broke test on MacOS

* m4/poll.m4 (gl_FUNC_POLL): Add missing test.
Reported by Justin Clift.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agogetdate: rename to get_date
Eric Blake [Thu, 30 Sep 2010 15:23:12 +0000 (09:23 -0600)]
getdate: rename to get_date

Note: getdate.h is not renamed, to minimize client impact.
Besides, whenever we eventually add getdate-posix, we'll
want to use getdate.m4 and getdate.c for the implementation,
but don't need to worry about getdate.h since getdate() uses
<time.h> for its header.

* modules/getdate: Mark obsolete.  Move old contents...
* modules/get_date: ...to new module name.
* modules/getdate-tests: Move...
* modules/get_date-tests: ...here.
* m4/getdate.m4: Move...
* m4/get_date.m4: ...here, and rename gl_GETDATE to gl_GET_DATE.
* lib/getdate.y: Move...
* lib/get_date.y: ...here.
* tests/test-getdate.c: Move...
* tests/test-get_date.c: ...here.
* doc/posix-functions/getdate.texi (getdate): Update name.
* NEWS: Mention the change.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agoSeparate the module 'waitpid' from the module 'sys_wait'.
Bruno Haible [Wed, 29 Sep 2010 14:14:55 +0000 (16:14 +0200)]
Separate the module 'waitpid' from the module 'sys_wait'.

* lib/sys_wait.in.h (waitpid): Declare only if the 'waitpid' module is
present.
* m4/sys_wait_h.m4 (gl_SYS_WAIT_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR_FOR_TESTS.
(gl_SYS_WAIT_H_DEFAULTS): Initialize GNULIB_WAITPID.
* modules/sys_wait (Depends-on): Remove waitpid.
(Makefile.am): Substitute GNULIB_WAITPID.
* modules/waitpid (configure.ac): Invoke gl_SYS_WAIT_MODULE_INDICATOR.
* tests/test-sys_wait-c++.cc (GNULIB_NAMESPACE::waitpid): Check the
signature only if the 'waitpid' module is present.
* doc/posix-functions/waitpid.texi: Mention the 'waitpid' module.
* NEWS: Mention the change.
* modules/grantpt (Depends-on): Add waitpid.
* modules/wait-process (Depends-on): Likewise.

13 years agoMore tests for module 'sys_wait'.
Bruno Haible [Wed, 29 Sep 2010 13:47:01 +0000 (15:47 +0200)]
More tests for module 'sys_wait'.

* modules/sys_wait-tests (Depends-on): Add sys_wait-c++-tests.
Reported by Tatsuro MATSUOKA <tmacchant5@yahoo.co.jp>.

13 years agoMore tests for module 'sys_wait'.
Bruno Haible [Wed, 29 Sep 2010 13:44:19 +0000 (15:44 +0200)]
More tests for module 'sys_wait'.

* modules/sys_wait-c++-tests: New file.
* tests/test-sys_wait-c++.cc: New file.

13 years agoNew module 'waitpid'.
Bruno Haible [Wed, 29 Sep 2010 11:17:43 +0000 (13:17 +0200)]
New module 'waitpid'.

* lib/waitpid.c: New file, extracted from lib/sys_wait.in.h.
* lib/sys_wait.in.h: Include <sys/types.h>, c++defs.h, warn-on-use.h.
Don't include <process.h>.
(waitpid): Declare only, using modern idiom.
* m4/waitpid.m4: New file.
* m4/sys_wait_h.m4 (gl_SYS_WAIT_H): Check whether waitpid is declared.
* modules/waitpid: New file.
* modules/sys_wait (Depends-on): Add c++defs, warn-on-use, waitpid.
(Makefile.am): Update.
Reported by Tatsuro MATSUOKA <tmacchant5@yahoo.co.jp>.

13 years agopoll: Assume ANSI C.
Bruno Haible [Tue, 28 Sep 2010 23:56:23 +0000 (01:56 +0200)]
poll: Assume ANSI C.

* lib/poll.c (poll): Use an ANSI C declaration.

13 years agopoll-h: Create poll.h on all platforms.
Bruno Haible [Tue, 28 Sep 2010 23:51:18 +0000 (01:51 +0200)]
poll-h: Create poll.h on all platforms.

* lib/poll.in.h: Use double-inclusion guard. Don't define POLL*,
struct pollfd, nfds_t, INFTIM when the system has <poll.h>.
* m4/poll_h.m4 (gl_POLL_H): Set HAVE_POLL_H. Invoke
gl_CHECK_NEXT_HEADERS. Don't set POLL_H.
(gl_REPLACE_POLL_H): Don't set POLL_H.
(gl_POLL_H_DEFAULTS): Don't initialize POLL_H.
* modules/poll-h (Depends-on): Add include_next.
(Makefile.am): Create poll.h unconditionally. Substitute also
HAVE_POLL_H, INCLUDE_NEXT, PRAGMA_SYSTEM_HEADER, NEXT_POLL_H.

13 years agoTests for module 'poll-h'.
Bruno Haible [Tue, 28 Sep 2010 23:20:54 +0000 (01:20 +0200)]
Tests for module 'poll-h'.

* modules/poll-h-c++-tests: New file.
* tests/test-poll-h-c++.cc: New file.

13 years agoTests for module 'poll-h'.
Bruno Haible [Tue, 28 Sep 2010 23:19:48 +0000 (01:19 +0200)]
Tests for module 'poll-h'.

* modules/poll-h-tests: New file.
* tests/test-poll-h.c: New file.

13 years agopoll-h: Ensure POLL{RD,WR}{NORM,BAND} are defined on glibc platforms.
Bruno Haible [Tue, 28 Sep 2010 23:18:16 +0000 (01:18 +0200)]
poll-h: Ensure POLL{RD,WR}{NORM,BAND} are defined on glibc platforms.

* modules/poll-h (Depends-on): Add 'extensions'.

13 years agoNew module 'poll-h'.
Bruno Haible [Tue, 28 Sep 2010 23:00:17 +0000 (01:00 +0200)]
New module 'poll-h'.

* lib/poll.in.h: Include c++defs.h and warn-on-use.h.
(poll): Use modern idiom.
* modules/poll-h: New file.
* modules/poll (Files): Remove lib/poll.in.h.
(Depends-on): Add poll-h.
(configure.ac): Invoke gl_POLL_MODULE_INDICATOR.
(Makefile.am): Move code for generation of poll.h to modules/poll-h.
* m4/poll_h.m4: New file.
* m4/poll.m4 (gl_FUNC_POLL): Require gl_POLL_H. Don't check for poll.h
here. Don't set POLL_H here. Instead, set HAVE_POLL and REPLACE_POLL
and invoke gl_REPLACE_POLL_H.
* lib/poll.c: Use common idiom.
* tests/test-poll.c: Likewise.
* doc/posix-headers/poll.texi: Mention the poll-h module.
Suggested by Eric Blake.

13 years agomaint: restore x bit
Eric Blake [Mon, 27 Sep 2010 15:49:53 +0000 (09:49 -0600)]
maint: restore x bit

* build-aux/gendocs.sh: Re-mark executable.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agosys_wait: Implement WSTOPSIG.
Bruno Haible [Sun, 26 Sep 2010 12:54:30 +0000 (14:54 +0200)]
sys_wait: Implement WSTOPSIG.

* lib/sys_wait.in.h (WSTOPSIG): New macro.
Reported by Simon Josefsson.

13 years agostdlib, sys_wait: Avoid compilation error on mingw.
Simon Josefsson [Sun, 26 Sep 2010 12:27:32 +0000 (14:27 +0200)]
stdlib, sys_wait: Avoid compilation error on mingw.

* lib/sys_wait.in.h: Include <signal.h>, for SIGTERM.

13 years agostdlib tests: Avoid code duplication.
Bruno Haible [Sun, 26 Sep 2010 12:21:38 +0000 (14:21 +0200)]
stdlib tests: Avoid code duplication.

* modules/stdlib-tests (Files): Add tests/test-sys_wait.h.
* modules/sys_wait-tests (Files): Likewise.
* tests/test-sys_wait.h: New file, extracted from tests/test-stdlib.c.
* tests/test-stdlib.c: Include test-sys_wait.h.
(main): Invoke test_sys_wait_macros.
* tests/test-sys_wait.c: Include test-sys_wait.h.
(main): Invoke test_sys_wait_macros.

13 years agogetaddrinfo: Initialize sockets, to make it work under Windows.
Simon Josefsson [Sat, 25 Sep 2010 16:48:45 +0000 (18:48 +0200)]
getaddrinfo: Initialize sockets, to make it work under Windows.

13 years agoautoupdate
Karl Berry [Sat, 25 Sep 2010 13:39:33 +0000 (06:39 -0700)]
autoupdate

13 years agoTests for module 'regex-quote'.
Bruno Haible [Sat, 25 Sep 2010 10:39:18 +0000 (12:39 +0200)]
Tests for module 'regex-quote'.

* modules/regex-quote-tests: New file.
* tests/test-regex-quote.c: New file.

13 years agoNew module 'regex-quote'.
Bruno Haible [Sat, 25 Sep 2010 10:38:20 +0000 (12:38 +0200)]
New module 'regex-quote'.

* lib/regex-quote.h: New file.
* lib/regex-quote.c: New file.
* modules/regex-quote: New file.
Suggested by Reuben Thomas <rrt@sc3d.org>.

13 years agognulib.info-[0-9] are generated.
Bruno Haible [Sat, 25 Sep 2010 10:33:07 +0000 (12:33 +0200)]
gnulib.info-[0-9] are generated.

13 years agounistr/u8-strchr: Fix a test failure on i586 glibc systems.
Bruno Haible [Fri, 24 Sep 2010 12:36:26 +0000 (14:36 +0200)]
unistr/u8-strchr: Fix a test failure on i586 glibc systems.

* tests/unistr/test-strchr.h (test_strchr): Disable an invalid check.

13 years agosetenv: Relax license.
Bruno Haible [Thu, 23 Sep 2010 10:03:21 +0000 (12:03 +0200)]
setenv: Relax license.

* modules/setenv (License): Change to LGPLv2+, with consent by Eric
Blake.
Requested by Eric Blake.

13 years agotermios: Relax license.
Bruno Haible [Wed, 22 Sep 2010 18:37:44 +0000 (20:37 +0200)]
termios: Relax license.

* modules/termios (License): Change to LGPLv2+.
Requested by Eric Blake.

13 years agothreadlib: Allow the package to change the default to 'no'.
Bruno Haible [Wed, 22 Sep 2010 14:57:48 +0000 (16:57 +0200)]
threadlib: Allow the package to change the default to 'no'.

* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): When
gl_THREADLIB_DEFAULT_NO is defined, change the default to 'no'.
Reported by Paul Eggert.

13 years agoautoupdate
Karl Berry [Wed, 22 Sep 2010 14:12:30 +0000 (07:12 -0700)]
autoupdate

13 years agoFix endless loop in mbmemcasecoll.
Bruno Haible [Wed, 22 Sep 2010 11:34:54 +0000 (13:34 +0200)]
Fix endless loop in mbmemcasecoll.

* lib/mbmemcasecoll.c (apply_towlower): When mbrtowc returns 0, copy 1
byte.
* tests/test-mbmemcasecmp.h (test_ascii): Test embedded NULs.

13 years agoTests for module 'memcoll'.
Bruno Haible [Wed, 22 Sep 2010 10:38:22 +0000 (12:38 +0200)]
Tests for module 'memcoll'.

* modules/memcoll-tests: New file.
* tests/test-memcoll.c: New file, based on tests/test-memcmp.c.

13 years agomemcoll, xmemcoll: Clarify size vs. length.
Bruno Haible [Wed, 22 Sep 2010 10:35:30 +0000 (12:35 +0200)]
memcoll, xmemcoll: Clarify size vs. length.

* modules/memcoll.c (memcoll0): Clarify specification.
* modules/xmemcoll.c (xmemcoll0): Likewise. Reduce by 1 the lengths
passed to collate_error.

13 years agoTests for module 'memcasecmp'.
Bruno Haible [Wed, 22 Sep 2010 10:02:42 +0000 (12:02 +0200)]
Tests for module 'memcasecmp'.

* modules/memcasecmp-tests: New file.
* tests/test-memcasecmp.c: New file, based on tests/test-memcmp.c.

13 years agopthread: add to system <pthread.h> instead of replacing it all, for MacOS
Paul Eggert [Wed, 22 Sep 2010 08:32:19 +0000 (01:32 -0700)]
pthread: add to system <pthread.h> instead of replacing it all, for MacOS

* lib/pthread.in.h: Add split double-inclusion guard, and include
system <pthread.h> if there is one.  Use @@-style as in other
.in.h files.  Define PTHREAD_COND_INITIALIZER etc. only if system
pthread.h doesn't.
(pthread_mutexattr_destroy, pthread_mutexattr_init):
(pthread_mutexattr_settype, pthread_mutex_trylock):
New static inline functions, if there's no system <pthread.h>.
(pthread_spinlock_t, pthread_spin_init, pthread_spin_destroy):
(pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock):
Approximate with mutexes if the system lacks spinlocks, as in
MacOS.
* m4/pthread.m4 (gl_PTHREAD_CHECK): Require gl_PTHREAD_DEFAULTS.
Add gl_CHECK_NEXT_HEADERS for pthread.h, and support the usual
@@-style.  Check for spinlocks separately.
(gl_PTHREAD_DEFAULTS): New macro.
* modules/pthread: Redo to use a more typical style for in.h files.

13 years agonet_if: enhance tests
Eric Blake [Tue, 21 Sep 2010 21:27:59 +0000 (15:27 -0600)]
net_if: enhance tests

* tests/test-net_if.c (main): Move signature checks earlier.
Print failures to stderr.
* doc/posix-functions/if_freenameindex.texi (if_freenameindex):
Document the bug that we do not yet fix.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agoAdd ChangeLog entry for last commit.
Simon Josefsson [Tue, 21 Sep 2010 20:49:50 +0000 (22:49 +0200)]
Add ChangeLog entry for last commit.

13 years agoManual: improve out-of-memory documentation.
Reuben Thomas [Tue, 21 Sep 2010 14:29:45 +0000 (15:29 +0100)]
Manual: improve out-of-memory documentation.

* gnulib.texi: Rewrite “Out of memory handling” section to be
  about gnulib, not GSS.

Signed-off-by: Simon Josefsson <simon@josefsson.org>
13 years agoautoupdate
Karl Berry [Tue, 21 Sep 2010 14:42:57 +0000 (07:42 -0700)]
autoupdate

13 years agoAdd ChangeLog entry.
Simon Josefsson [Tue, 21 Sep 2010 13:55:03 +0000 (15:55 +0200)]
Add ChangeLog entry.

13 years agoUse src/ not lib/ as root of source in example Makefile.am code.
Reuben Thomas [Tue, 21 Sep 2010 12:55:05 +0000 (13:55 +0100)]
Use src/ not lib/ as root of source in example Makefile.am code.

Signed-off-by: Simon Josefsson <simon@josefsson.org>
13 years agoSet cut_dir properly, and add mode line for Emacs.
Reuben Thomas [Mon, 20 Sep 2010 21:39:56 +0000 (22:39 +0100)]
Set cut_dir properly, and add mode line for Emacs.

Signed-off-by: Simon Josefsson <simon@josefsson.org>
13 years agoSet cut_dir properly, and add mode line for Emacs.
Reuben Thomas [Tue, 21 Sep 2010 12:32:30 +0000 (14:32 +0200)]
Set cut_dir properly, and add mode line for Emacs.

Signed-off-by: Simon Josefsson <simon@josefsson.org>
13 years agoMake Makefile.am example code more cut-and-paste friendly.
Reuben Thomas [Tue, 21 Sep 2010 12:27:00 +0000 (14:27 +0200)]
Make Makefile.am example code more cut-and-paste friendly.

Signed-off-by: Simon Josefsson <simon@josefsson.org>
13 years agoNew module to test <net/if.h> interfaces.
Simon Josefsson [Tue, 21 Sep 2010 12:19:58 +0000 (14:19 +0200)]
New module to test <net/if.h> interfaces.

13 years agopthread: add pthread_spin_destroy
Paul Eggert [Mon, 20 Sep 2010 23:14:49 +0000 (16:14 -0700)]
pthread: add pthread_spin_destroy

* lib/pthread.in.h (pthread_spin_destroy): New function.

13 years agognulib-tool: Fix --help output.
Bruno Haible [Mon, 20 Sep 2010 00:09:25 +0000 (02:09 +0200)]
gnulib-tool: Fix --help output.

* gnulib-tool (func_usage): Fix help message.
Reported by Reuben Thomas <rrt@sc3d.org>.

13 years agomaint.mk: avoid unexpanded \n in two diagnostics
Jim Meyering [Sat, 18 Sep 2010 19:26:27 +0000 (21:26 +0200)]
maint.mk: avoid unexpanded \n in two diagnostics

* top/maint.mk (sc_prohibit_always_true_header_tests):
Don't use a literal \n in a halt=... assignment.  It would not be
expanded, and the two \n bytes would appear in the diagnostic output
rather than the desired newline.  Use halt=$$(printf ... instead.
(sc_vulnerable_makefile_CVE-2009-4029): Likewise.

13 years agonetinet_in: Doc tweak.
Bruno Haible [Sat, 18 Sep 2010 14:40:02 +0000 (16:40 +0200)]
netinet_in: Doc tweak.

* doc/posix-headers/netinet_in.texi: Mention an affected platform.
Reported by Mats Erik Andersson <mats.andersson@gisladisker.se>.

13 years agoinit.sh: correct an outdated comment
Jim Meyering [Sat, 18 Sep 2010 06:49:55 +0000 (08:49 +0200)]
init.sh: correct an outdated comment

* tests/init.sh (create_exe_shims_):  s/function/alias/

13 years agoinit.sh: don't let an ephemeral "*.exe" make us skip all dir entries
Jim Meyering [Sat, 18 Sep 2010 06:33:23 +0000 (08:33 +0200)]
init.sh: don't let an ephemeral "*.exe" make us skip all dir entries

Not that it's likely to happen, but if I were to remove from a PATH
directory a file named "*.exe" (yes, starting with an asterisk),
at just the right moment, it would have made init.sh ignore all
remaining .exe-suffixed names in that directory.

* tests/init.sh (find_exe_basenames_): Don't give up on a directory if
a file named "*.exe" is removed between the glob expansion and the
processing of that oddly named file.

13 years agomirbsd: add some more support
Eric Blake [Fri, 17 Sep 2010 22:36:08 +0000 (16:36 -0600)]
mirbsd: add some more support

* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): MirBSD is
in BSD family.
* m4/gc-random.m4 (gl_GC_RANDOM): MirBSD supports same random
devices as OpenBSD.
* m4/host-os.m4 (mirbsd): Add MirBSD.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agotests: fix unportable assumption on sys/wait.h
Eric Blake [Fri, 17 Sep 2010 21:43:00 +0000 (15:43 -0600)]
tests: fix unportable assumption on sys/wait.h

* tests/test-sys_wait.c (main): Relax test.
* tests/test-stdlib.c (main): Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agoinit.sh: accomodate directory with no .exes
Eric Blake [Fri, 17 Sep 2010 21:27:21 +0000 (15:27 -0600)]
init.sh: accomodate directory with no .exes

Cygwin was failing test-vc-list-files-{cvs,git}.sh, because of
spurious output on stderr.

../../tests/test-vc-list-files-cvs.sh (exe_shim): skipping directory: /home/eblake/m4-branch/build-aux

All because build-aux was a directory containing just scripts, and
no .exe extensions.  This fixes it.

* tests/init.sh: Accomodate directory containing only scripts.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agotests: avoid compiler warning
Eric Blake [Fri, 17 Sep 2010 21:09:54 +0000 (15:09 -0600)]
tests: avoid compiler warning

* tests/test-stdlib.c (main): Use the variable.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agofdutimens, fdutimensat: update signature, again
Eric Blake [Fri, 17 Sep 2010 21:08:29 +0000 (15:08 -0600)]
fdutimens, fdutimensat: update signature, again

In general, merging:

f<act>(fd,args) and <act>at(dir,name,args)

should produce:

fd<act>at(fd,dir,name,args)

* lib/utimens.h (gl_futimens): Delete, and move signature...
(fdutimens): ...here.
(fdutimensat): Rearrange signature.
(lutimensat): Rename variable for clarity.
* lib/fdutimensat.c (fdutimensat): Update signature.
* lib/utimens.c (fdutimens): Likewise.
(gl_futimens): Delete.
(utimens, lutimens): Update callers.
* lib/futimens.c (futimens): Likewise.
* tests/test-fdutimensat.c: Likewise.
* tests/test-utimens.c: Likewise.
* tests/test-futimens.h: Update comment.
* NEWS: Mention this.
Suggested by Paul Eggert.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agoTake over the maintenance of some older macros from Autoconf.
Bruno Haible [Fri, 17 Sep 2010 16:18:38 +0000 (10:18 -0600)]
Take over the maintenance of some older macros from Autoconf.

* m4/error.m4 (AC_FUNC_ERROR_AT_LINE): New macro, from GNU Autoconf.
* m4/lstat.m4 (AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): New macro, from
GNU Autoconf.
* m4/memcmp.m4 (AC_FUNC_MEMCMP): New macro, from GNU Autoconf.
* m4/mktime.m4 (AC_FUNC_MKTIME): Change comment.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agofdutimensat: drop atflag validation
Eric Blake [Fri, 17 Sep 2010 14:29:16 +0000 (08:29 -0600)]
fdutimensat: drop atflag validation

* lib/fdutimensat.c (fdutimensat): Allow AT_SYMLINK_NOFOLLOW even
with valid fd, to close a race scenario where futimens is
unsupported and FILE was replaced by a symlink.
* tests/test-fdutimensat.c (do_fdutimens, main): Adjust test
accordingly.
Suggested by Paul Eggert.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agounlockpt: Fix declaration within GNULIB_POSIXCHECK.
Bruno Haible [Fri, 17 Sep 2010 02:13:58 +0000 (04:13 +0200)]
unlockpt: Fix declaration within GNULIB_POSIXCHECK.

* lib/stdlib.in.h (unlockpt): Fix warning declaration.

13 years agologin_tty: Fix detection of function on FreeBSD, OpenBSD, NetBSD.
Bruno Haible [Fri, 17 Sep 2010 02:09:33 +0000 (04:09 +0200)]
login_tty: Fix detection of function on FreeBSD, OpenBSD, NetBSD.

* m4/pty.m4 (gl_FUNC_LOGIN_TTY): Augment LIBS while checking whether
login_tty exists.
Reported by Mats Erik Andersson <mats.andersson@gisladisker.se>.

13 years agologin_tty: Make the replacement code work on BSD systems.
Bruno Haible [Fri, 17 Sep 2010 02:05:32 +0000 (04:05 +0200)]
login_tty: Make the replacement code work on BSD systems.

* lib/login_tty.c: Include <sys/ioctl.h>.
(login_tty): Use ioctl TIOCSCTTY when available.
* modules/login_tty (Depends-on): Add sys_ioctl.
Reported by Mats Erik Andersson <mats.andersson@gisladisker.se>.

13 years agologin_tty: Stricter unit test.
Bruno Haible [Fri, 17 Sep 2010 02:00:49 +0000 (04:00 +0200)]
login_tty: Stricter unit test.

* modules/login_tty-tests (Depends-on): Add tcgetsid.
* tests/test-login_tty.c (main): Also check the results of tcgetpgrp()
and tcgetsid() after login_tty.
Reported by Mats Erik Andersson <mats.andersson@gisladisker.se>.

13 years agoNew module 'tcgetsid'.
Bruno Haible [Fri, 17 Sep 2010 01:16:53 +0000 (03:16 +0200)]
New module 'tcgetsid'.

* lib/tcgetsid.c: New file.
* m4/tcgetsid.m4: New file.
* modules/tcgetsid: New file.
* modules/termios (Depends-on): Add c++defs, warn-on-use.
(Makefile.am): Ensure c++defs.h, warn-on-use.h get included. Substitute
GNULIB_TCGETSID, HAVE_TCGETSID.
* lib/termios.in.h: Include <sys/types.h>.
(tcgetsid): New declaration.
* m4/termios_h.m4 (gl_TERMIOS_H): Check whether tcgetsid is declared.
(gl_TERMIOS_H_DEFAULTS): Initialize GNULIB_TCGETSID, HAVE_TCGETSID.
* doc/posix-functions/tcgetsid.texi: Mention the new module.
* tests/test-termios-c++.cc: Check GNULIB_NAMESPACE::tcgetsid.

13 years agoTests for module 'termios'.
Bruno Haible [Fri, 17 Sep 2010 00:09:55 +0000 (02:09 +0200)]
Tests for module 'termios'.

* modules/termios-c++-tests: New file.
* modules/termios-tests: New file.
* tests/test-termios-c++.cc: New file.
* tests/test-termios.c: New file.

13 years agoNew module 'termios'.
Bruno Haible [Fri, 17 Sep 2010 00:02:23 +0000 (02:02 +0200)]
New module 'termios'.

* modules/termios: New file.
* lib/termios.in.h: New file.
* m4/termios_h.m4: New file.
* doc/posix-headers/termios.texi: Mention the new module.

13 years agofdutimensat: add an atflag parameter
Eric Blake [Thu, 16 Sep 2010 23:12:35 +0000 (17:12 -0600)]
fdutimensat: add an atflag parameter

* lib/fdutimensat.c (fdutimensat): Add new parameter.
* lib/utimens.h (fdutimensat): Update prototype.
* tests/test-fdutimensat.c: Adjust test to match.
* NEWS: Document the change.
Suggested by Paul Eggert.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agoFix typos in comments.
Bruno Haible [Thu, 16 Sep 2010 22:23:14 +0000 (00:23 +0200)]
Fix typos in comments.

13 years agoFix typo in last commit.
Bruno Haible [Thu, 16 Sep 2010 10:54:33 +0000 (12:54 +0200)]
Fix typo in last commit.

Reported by Stefano Lattarini <stefano.lattarini@gmail.com>.

13 years agostdlib: clarify MirBSD WEXITSTATUS bug
Bruno Haible [Thu, 16 Sep 2010 00:25:57 +0000 (02:25 +0200)]
stdlib: clarify MirBSD WEXITSTATUS bug

* lib/stdlib.in.h: Clarify the MirBSD bug regarding WEXITSTATUS.
* doc/posix-headers/stdlib.texi (stdlib.h): Likewise.

13 years agostdlib: work around MirBSD WEXITSTATUS bug
Eric Blake [Wed, 15 Sep 2010 21:25:43 +0000 (15:25 -0600)]
stdlib: work around MirBSD WEXITSTATUS bug

* lib/stdlib.in.h (includes): Guarantee WEXITSTATUS.
* modules/stdlib (Depends-on): Add sys_wait.
* tests/test-sys_wait.c (main): Enhance test.
* tests/test-stdlib.c (main): Likewise.
* doc/posix-headers/stdlib.texi (stdlib.h): Document the bug.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agodocs: mention MacOS issue with WEXITSTATUS(constant)
Eric Blake [Wed, 15 Sep 2010 19:57:19 +0000 (13:57 -0600)]
docs: mention MacOS issue with WEXITSTATUS(constant)

* doc/posix-headers/sys_wait.texi (sys/wait.h): Document the
issue.
* doc/posix-headers/stdlib.texi (stdlib.h): Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agostrnlen: add tests
Eric Blake [Wed, 15 Sep 2010 19:38:29 +0000 (13:38 -0600)]
strnlen: add tests

* modules/strnlen-tests: New file.
* tests/test-strnlen.c: Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agounistr/base: Avoid link errors when module 'libunistring' is also used.
Bruno Haible [Wed, 15 Sep 2010 00:43:33 +0000 (02:43 +0200)]
unistr/base: Avoid link errors when module 'libunistring' is also used.

* lib/unistr.in.h (u8_mbtouc_unsafe, u16_mbtouc_unsafe,
u32_mbtouc_unsafe, u8_mbtouc, u16_mbtouc, u32_mbtouc, u8_mbtoucr,
u16_mbtoucr, u32_mbtoucr, u8_uctomb_aux, u16_uctomb_aux, u32_uctomb):
Declare also when HAVE_LIBUNISTRING is set.
Reported by Pádraig Brady <P@draigbrady.com>.

13 years agotest-rawmemchr: make more robust
Eric Blake [Tue, 14 Sep 2010 22:42:39 +0000 (16:42 -0600)]
test-rawmemchr: make more robust

* modules/rawmemchr-tests (Files): Add zerosize-ptr.h, mmap-anon.m4.
(Depends-on, configure.ac): Add needed prerequisites to use it.
* modules/memchr-tests (Files, Depends-on, configure.ac):
Likewise, to avoid implicit reliance on memchr module prereqs.
* tests/test-memchr.c (main): Ensure proper masking.
* tests/test-rawmemchr.c (main): Likewise.  Detect oversized
reads.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agomemchr: detect glibc Alpha bug
Eric Blake [Tue, 14 Sep 2010 19:43:07 +0000 (13:43 -0600)]
memchr: detect glibc Alpha bug

Avoids http://sourceware.org/bugzilla/show_bug.cgi?id=12019.

* m4/memchr.m4 (gl_FUNC_MEMCHR): Detect glibc 2.11.2 failure on
Alpha.
* doc/posix-functions/memchr.texi (memchr): Tweak wording.
* tests/test-memchr.c (main): Enhance test.
Reported by Nelson H. F. Beebe.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agofts, getcwd, glob: audit for dirfd returning -1
Paul Eggert [Tue, 14 Sep 2010 16:03:55 +0000 (09:03 -0700)]
fts, getcwd, glob: audit for dirfd returning -1

* lib/fts.c (opendir): Remove #define; no longer used.
(opendirat): New arg PDIR_FD.  All callers changed.
(fts_build, _opendir2): Use new opendirat to avoid the need for
dirfd, or for checking whether dirfd returns a negative value.
Don't use opendir; always use openat followed by fdopendir.
* lib/getcwd.c (__getcwd): Don't reset fd; fdopendir no longer clobbers
it.
* lib/glob.c (link_exists_p): Add comment explaining why dirfd never
returns -1 here.
* modules/fts (Depends-on): Remove dirfd.
* modules/getcwd (Depends-on): Likewise.

13 years agofloat: fix broken MirBSD header
Eric Blake [Mon, 13 Sep 2010 20:33:22 +0000 (14:33 -0600)]
float: fix broken MirBSD header

* m4/float_h.m4 (gl_FLOAT_H): MirBSD copied OpenBSD's bug.
* doc/posix-headers/float.texi (float.h): Document it.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agofts: use O_NOFOLLOW to avoid race condition when opening a directory
Paul Eggert [Mon, 13 Sep 2010 19:38:41 +0000 (12:38 -0700)]
fts: use O_NOFOLLOW to avoid race condition when opening a directory

* lib/fts.c (opendirat): New arg extra_flags.
(__opendir2): Use it to avoid following symlinks when opening
a directory, if symlinks are not supposed to be followed.  See
<http://lists.gnu.org/archive/html/bug-gnulib/2010-09/msg00213.html>.

13 years agofdopendir: preserve argument fd before returning
Paul Eggert [Mon, 13 Sep 2010 19:21:47 +0000 (12:21 -0700)]
fdopendir: preserve argument fd before returning

* lib/fdopendir.c: Adjust comments to say POSIX, not Solaris.
(fdopendir_with_dup, fd_clone_opendir): New static functions.
(fdopendir): Use them, arranging for FD to be open to the same
directory that it was when it started.  (It might be temporarily
closed while fdopendir is running, so this not thread- or
signal-safe.)  Be careful to do the right thing even when file
descriptors are scarce and dup fails with errno == EMFILE.  See
<http://lists.gnu.org/archive/html/bug-gnulib/2010-09/msg00208.html>.

13 years agoregex: Pass the system regex if its only problem is 32-bit regoff_t.
Paolo Bonzini [Thu, 9 Sep 2010 08:14:02 +0000 (10:14 +0200)]
regex: Pass the system regex if its only problem is 32-bit regoff_t.

* NEWS: Document change.
* m4/regex.m4: Disable test for regoff_t size.

13 years agofts: don't operate on an invalid file descriptor after failed dup
Jim Meyering [Mon, 13 Sep 2010 05:29:18 +0000 (07:29 +0200)]
fts: don't operate on an invalid file descriptor after failed dup

* lib/fts.c (fts_build): Don't call set_cloexec_flag on a
negative file descriptor.

13 years agosavedir: add streamsavedir, deprecate fdsavedir
Paul Eggert [Sun, 12 Sep 2010 21:21:52 +0000 (14:21 -0700)]
savedir: add streamsavedir, deprecate fdsavedir

* NEWS: Mention deprecation of fdsavedir.
* lib/savedir.c (streamsavedir): New extern function, whose name
ends in "savedir" to be consistent with the others.  This differs
from savedirstream in that it doesn't close its argument.  The
next version of GNU tar will use this instead of fdsavedir, to
avoid some race conditions and conserve file descriptors.
(savedirstream): Reimplement as a wrapper around streamsavedir.
(fdsavedir): Add a comment deprecating this function.  As far as
I know, only GNU tar used it, and GNU tar doesn't need it any more.
* lib/savedir.h (streamsavedir): New decl.
(fdsavedir): Add a comment deprecating this.