gnulib.git
13 years agodo-release-commit-and-tag: add option to specify branch
Reuben Thomas [Wed, 4 May 2011 11:22:12 +0000 (12:22 +0100)]
do-release-commit-and-tag: add option to specify branch

* build-aux/do-release-commit-and-tag: Add --branch.

13 years agoAvoid unnecessary compilation units, through conditional dependencies.
Bruno Haible [Tue, 3 May 2011 21:36:43 +0000 (23:36 +0200)]
Avoid unnecessary compilation units, through conditional dependencies.

* modules/accept (Depends-on): Add conditions to the dependencies.
* modules/acosl (Depends-on): Likewise.
* modules/argz (Depends-on): Likewise.
* modules/asinl (Depends-on): Likewise.
* modules/atanl (Depends-on): Likewise.
* modules/atoll (Depends-on): Likewise.
* modules/bind (Depends-on): Likewise.
* modules/btowc (Depends-on): Likewise.
* modules/canonicalize-lgpl (Depends-on): Likewise.
* modules/ceil (Depends-on): Likewise.
* modules/ceilf (Depends-on): Likewise.
* modules/ceill (Depends-on): Likewise.
* modules/chdir-long (Depends-on): Likewise.
* modules/chown (Depends-on): Likewise.
* modules/close (Depends-on): Likewise.
* modules/connect (Depends-on): Likewise.
* modules/cosl (Depends-on): Likewise.
* modules/dirfd (Depends-on): Likewise.
* modules/dprintf (Depends-on): Likewise.
* modules/dprintf-posix (Depends-on): Likewise.
* modules/error (Depends-on): Likewise.
* modules/euidaccess (Depends-on): Likewise.
* modules/expl (Depends-on): Likewise.
* modules/faccessat (Depends-on): Likewise.
* modules/fchdir (Depends-on): Likewise.
* modules/fclose (Depends-on): Likewise.
* modules/fcntl (Depends-on): Likewise.
* modules/fdopendir (Depends-on): Likewise.
* modules/fflush (Depends-on): Likewise.
* modules/floor (Depends-on): Likewise.
* modules/floorf (Depends-on): Likewise.
* modules/floorl (Depends-on): Likewise.
* modules/fnmatch (Depends-on): Likewise.
* modules/fopen (Depends-on): Likewise.
* modules/fprintf-posix (Depends-on): Likewise.
* modules/frexp (Depends-on): Likewise.
* modules/frexp-nolibm (Depends-on): Likewise.
* modules/frexpl (Depends-on): Likewise.
* modules/frexpl-nolibm (Depends-on): Likewise.
* modules/fseek (Depends-on): Likewise.
* modules/fsusage (Depends-on): Likewise.
* modules/ftell (Depends-on): Likewise.
* modules/ftello (Depends-on): Likewise.
* modules/futimens (Depends-on): Likewise.
* modules/getcwd (Depends-on): Likewise.
* modules/getcwd-lgpl (Depends-on): Likewise.
* modules/getdelim (Depends-on): Likewise.
* modules/getdomainname (Depends-on): Likewise.
* modules/getgroups (Depends-on): Likewise.
* modules/gethostname (Depends-on): Likewise.
* modules/getline (Depends-on): Likewise.
* modules/getlogin_r (Depends-on): Likewise.
* modules/getopt-posix (Depends-on): Likewise.
* modules/getpeername (Depends-on): Likewise.
* modules/getsockname (Depends-on): Likewise.
* modules/getsockopt (Depends-on): Likewise.
* modules/getsubopt (Depends-on): Likewise.
* modules/getusershell (Depends-on): Likewise.
* modules/glob (Depends-on): Likewise.
* modules/grantpt (Depends-on): Likewise.
* modules/iconv_open (Depends-on): Likewise.
* modules/iconv_open-utf (Depends-on): Likewise.
* modules/inet_ntop (Depends-on): Likewise.
* modules/inet_pton (Depends-on): Likewise.
* modules/ioctl (Depends-on): Likewise.
* modules/isapipe (Depends-on): Likewise.
* modules/isfinite (Depends-on): Likewise.
* modules/isinf (Depends-on): Likewise.
* modules/lchown (Depends-on): Likewise.
* modules/ldexpl (Depends-on): Likewise.
* modules/link (Depends-on): Likewise.
* modules/linkat (Depends-on): Likewise.
* modules/listen (Depends-on): Likewise.
* modules/logl (Depends-on): Likewise.
* modules/lstat (Depends-on): Likewise.
* modules/mbrlen (Depends-on): Likewise.
* modules/mbrtowc (Depends-on): Likewise.
* modules/mbsinit (Depends-on): Likewise.
* modules/mbsnrtowcs (Depends-on): Likewise.
* modules/mbsrtowcs (Depends-on): Likewise.
* modules/mbtowc (Depends-on): Likewise.
* modules/memcmp (Depends-on): Likewise.
* modules/mkdir (Depends-on): Likewise.
* modules/mkdtemp (Depends-on): Likewise.
* modules/mkfifo (Depends-on): Likewise.
* modules/mkfifoat (Depends-on): Likewise.
* modules/mknod (Depends-on): Likewise.
* modules/mkostemp (Depends-on): Likewise.
* modules/mkostemps (Depends-on): Likewise.
* modules/mkstemp (Depends-on): Likewise.
* modules/mkstemps (Depends-on): Likewise.
* modules/mktime (Depends-on): Likewise.
* modules/nanosleep (Depends-on): Likewise.
* modules/open (Depends-on): Likewise.
* modules/openat (Depends-on): Likewise.
* modules/perror (Depends-on): Likewise.
* modules/poll (Depends-on): Likewise.
* modules/popen (Depends-on): Likewise.
* modules/posix_spawn (Depends-on): Likewise.
* modules/posix_spawn_file_actions_addclose (Depends-on): Likewise.
* modules/posix_spawn_file_actions_adddup2 (Depends-on): Likewise.
* modules/posix_spawn_file_actions_addopen (Depends-on): Likewise.
* modules/posix_spawnp (Depends-on): Likewise.
* modules/pread (Depends-on): Likewise.
* modules/printf-posix (Depends-on): Likewise.
* modules/ptsname (Depends-on): Likewise.
* modules/putenv (Depends-on): Likewise.
* modules/pwrite (Depends-on): Likewise.
* modules/readline (Depends-on): Likewise.
* modules/readlink (Depends-on): Likewise.
* modules/readlinkat (Depends-on): Likewise.
* modules/recv (Depends-on): Likewise.
* modules/recvfrom (Depends-on): Likewise.
* modules/regex (Depends-on): Likewise.
* modules/remove (Depends-on): Likewise.
* modules/rename (Depends-on): Likewise.
* modules/renameat (Depends-on): Likewise.
* modules/rmdir (Depends-on): Likewise.
* modules/round (Depends-on): Likewise.
* modules/roundf (Depends-on): Likewise.
* modules/roundl (Depends-on): Likewise.
* modules/rpmatch (Depends-on): Likewise.
* modules/select (Depends-on): Likewise.
* modules/send (Depends-on): Likewise.
* modules/sendto (Depends-on): Likewise.
* modules/setenv (Depends-on): Likewise.
* modules/setlocale (Depends-on): Likewise.
* modules/setsockopt (Depends-on): Likewise.
* modules/shutdown (Depends-on): Likewise.
* modules/sigaction (Depends-on): Likewise.
* modules/signbit (Depends-on): Likewise.
* modules/sigprocmask (Depends-on): Likewise.
* modules/sinl (Depends-on): Likewise.
* modules/sleep (Depends-on): Likewise.
* modules/snprintf (Depends-on): Likewise.
* modules/snprintf-posix (Depends-on): Likewise.
* modules/socket (Depends-on): Likewise.
* modules/sprintf-posix (Depends-on): Likewise.
* modules/sqrtl (Depends-on): Likewise.
* modules/stat (Depends-on): Likewise.
* modules/strchrnul (Depends-on): Likewise.
* modules/strdup-posix (Depends-on): Likewise.
* modules/strerror (Depends-on): Likewise.
* modules/strerror_r-posix (Depends-on): Likewise.
* modules/strndup (Depends-on): Likewise.
* modules/strnlen (Depends-on): Likewise.
* modules/strptime (Depends-on): Likewise.
* modules/strsep (Depends-on): Likewise.
* modules/strsignal (Depends-on): Likewise.
* modules/strstr-simple (Depends-on): Likewise.
* modules/strtod (Depends-on): Likewise.
* modules/strtoimax (Depends-on): Likewise.
* modules/strtok_r (Depends-on): Likewise.
* modules/strtoumax (Depends-on): Likewise.
* modules/symlink (Depends-on): Likewise.
* modules/symlinkat (Depends-on): Likewise.
* modules/tanl (Depends-on): Likewise.
* modules/tcgetsid (Depends-on): Likewise.
* modules/tmpfile (Depends-on): Likewise.
* modules/trunc (Depends-on): Likewise.
* modules/truncf (Depends-on): Likewise.
* modules/truncl (Depends-on): Likewise.
* modules/uname (Depends-on): Likewise.
* modules/unlink (Depends-on): Likewise.
* modules/unlockpt (Depends-on): Likewise.
* modules/unsetenv (Depends-on): Likewise.
* modules/usleep (Depends-on): Likewise.
* modules/utimensat (Depends-on): Likewise.
* modules/vasprintf (Depends-on): Likewise.
* modules/vdprintf (Depends-on): Likewise.
* modules/vdprintf-posix (Depends-on): Likewise.
* modules/vfprintf-posix (Depends-on): Likewise.
* modules/vprintf-posix (Depends-on): Likewise.
* modules/vsnprintf (Depends-on): Likewise.
* modules/vsnprintf-posix (Depends-on): Likewise.
* modules/vsprintf-posix (Depends-on): Likewise.
* modules/wcrtomb (Depends-on): Likewise.
* modules/wcscasecmp (Depends-on): Likewise.
* modules/wcscspn (Depends-on): Likewise.
* modules/wcsdup (Depends-on): Likewise.
* modules/wcsncasecmp (Depends-on): Likewise.
* modules/wcsnrtombs (Depends-on): Likewise.
* modules/wcspbrk (Depends-on): Likewise.
* modules/wcsrtombs (Depends-on): Likewise.
* modules/wcsspn (Depends-on): Likewise.
* modules/wcsstr (Depends-on): Likewise.
* modules/wcstok (Depends-on): Likewise.
* modules/wcswidth (Depends-on): Likewise.
* modules/wctob (Depends-on): Likewise.
* modules/wctomb (Depends-on): Likewise.
* modules/wctype (Depends-on): Likewise.
* modules/wcwidth (Depends-on): Likewise.
* modules/write (Depends-on): Likewise.

13 years agoSupport for conditional dependencies.
Bruno Haible [Tue, 3 May 2011 21:32:50 +0000 (23:32 +0200)]
Support for conditional dependencies.

* doc/gnulib.texi (Module description): Document the syntax of
conditional dependencies.
* gnulib-tool: New option --conditional-dependencies.
(func_usage): Document it.
(cond_dependencies): New variable.
(func_get_automake_snippet_conditional,
func_get_automake_snippet_unconditional): New functions, extracted from
func_get_automake_snippet.
(func_get_automake_snippet): Use them.
(sed_first_32_chars): New variable.
(func_module_shellfunc_name): New function.
(func_module_shellvar_name): New function.
(func_module_conditional_name): New function.
(func_uncond_add_module, func_conddep_add_module, func_cond_module_p,
func_cond_module_condition): New functions.
(func_modules_transitive_closure): Add support for conditional
dependencies.
(func_emit_lib_Makefile_am): For a conditional module, enclose the
conditional automake snippet in an automake conditional.
(func_emit_autoconf_snippets): Emit shell functions that contain the
code for conditional modules.
(func_import, func_create_testdir): Update specification.

13 years agotest-getaddrinfo: report error information
Eric Blake [Tue, 3 May 2011 21:27:11 +0000 (15:27 -0600)]
test-getaddrinfo: report error information

Clang deduced that if ENABLE_DEBUGGING is undefined, then err
was a dead assignment.  But in the EAI_SYSTEM case, we fail
the test, so the output should be unconditional.

* tests/test-getaddrinfo.c (simple): Use err outside of dbprintf.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agobootstrap: avoid build failure when $GZIP is set
Jim Meyering [Tue, 3 May 2011 08:31:16 +0000 (10:31 +0200)]
bootstrap: avoid build failure when $GZIP is set

* build-aux/bootstrap (check_versions): Do not treat $GZIP as a
program name.  If defined at all, it is supposed to list gzip options.
Reported by Alan Curry in http://debbugs.gnu.org/8609

13 years agoreadme-release: new module with release instructions
Reuben Thomas [Tue, 3 May 2011 05:58:45 +0000 (07:58 +0200)]
readme-release: new module with release instructions

* modules/readme-release: New module.
* top/README-release: New file, from coreutils, grep, diffutils.
* MODULES.html.sh (Support for maintaining and releasing): Add it.

13 years agofflush: also replace fclose when fixing fflush
Eric Blake [Mon, 2 May 2011 21:00:50 +0000 (15:00 -0600)]
fflush: also replace fclose when fixing fflush

This fixes the fclose failures detected in the previous patch,
but only when the GPL fflush module is also in use.  That is
because the need for behavior of resetting seekable input streams
is much less common, and the fix more complex.  The LGPLv2+ test
for fclose() in isolation is relaxed to pass if fflush is not
being replaced to cater to input streams.

* modules/fflush (Depends-on): Add fclose.
* m4/fflush.m4 (gl_FUNC_FFLUSH): Also replace fclose.
* lib/fclose.c (rpl_fclose): Don't cause spurious failures on
memstreams with no backing fd.
* doc/posix-functions/fclose.texi (fclose): Document the use of
fflush module to fix the bug.
* tests/test-fclose.c (main): Relax test when fclose is used in
isolation.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agofclose: add some tests
Eric Blake [Mon, 2 May 2011 19:38:23 +0000 (13:38 -0600)]
fclose: add some tests

POSIX requires that fclose() on seekable input streams rewind back
to the next byte not actually given to the application.  Glibc fails
this test.  See:
http://sourceware.org/bugzilla/show_bug.cgi?id=3746
http://sourceware.org/bugzilla/show_bug.cgi?id=12724

Likewise for FreeBSD.

Cygwin 1.7.9 and Solaris 10 pass, however.

* modules/fclose-tests: New test module.
* tests/test-fclose.c: New file.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agofclose: reduce dependencies
Eric Blake [Mon, 2 May 2011 17:41:12 +0000 (11:41 -0600)]
fclose: reduce dependencies

In an LGPLv2+ project, the last change to fclose dragged in
inappropriate modules.

* modules/fclose (Depends-on): Switch from fflush/fseeko to
simpler lseek.
* lib/fclose.c (rpl_fclose): Likewise.
Reported by Simon Josefsson.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agoexit: drop remaining clients
Eric Blake [Mon, 2 May 2011 17:59:00 +0000 (11:59 -0600)]
exit: drop remaining clients

Anyone using EXIT_FAILURE needs to depend on stdlib, now that
the exit module is gone.

* modules/argmatch (Depends-on): Replace exit with stdlib.
* modules/copy-file (Depends-on): Likewise.
* modules/execute (Depends-on): Likewise.
* modules/exitfail (Depends-on): Likewise.
* modules/obstack (Depends-on): Likewise.
* modules/pagealign_alloc (Depends-on): Likewise.
* modules/pipe-filter-gi (Depends-on): Likewise.
* modules/pipe-filter-ii (Depends-on): Likewise.
* modules/savewd (Depends-on): Likewise.
* modules/spawn-pipe (Depends-on): Likewise.
* modules/wait-process (Depends-on): Likewise.
* modules/xsetenv (Depends-on): Likewise.
* modules/chdir-long (Depends-on): Add stdlib, for EXIT_FAILURE.
* modules/git-merge-changelog (Depends-on): Likewise.
* modules/long-options (Depends-on): Likewise.
* modules/pt_chown (Depends-on): Likewise.
* modules/sysexits (Depends-on): Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agofreading: relax license from LGPLv3+ to LGPLv2+
Eric Blake [Mon, 2 May 2011 17:23:11 +0000 (11:23 -0600)]
freading: relax license from LGPLv3+ to LGPLv2+

Agreed to in
http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00055.html

* modules/freading (License): Relax LGPL version.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agofchdir: Remove unused dependencies.
Bruno Haible [Mon, 2 May 2011 16:59:21 +0000 (18:59 +0200)]
fchdir: Remove unused dependencies.

* modules/fchdir (Depends-on): Remove include_next.

13 years agognulib-tool: Refactor.
Bruno Haible [Mon, 2 May 2011 11:44:41 +0000 (13:44 +0200)]
gnulib-tool: Refactor.

* gnulib-tool (func_emit_autoconf_snippet): New function, extracted
from func_emit_autoconf_snippets.
(func_emit_autoconf_snippets): Use it.

13 years agoexit: Remove module.
Simon Josefsson [Mon, 2 May 2011 06:45:02 +0000 (08:45 +0200)]
exit: Remove module.

* NEWS: Document removal of 'exit'.
* modules/exit: Remove file.

13 years agoUpdate DEPENDENCIES.
Bruno Haible [Sun, 1 May 2011 21:10:44 +0000 (23:10 +0200)]
Update DEPENDENCIES.

* DEPENDENCIES (gettext): Recommend the newest release.
Reported by Simon Josefsson.

13 years agognulib-tool: Reduce code duplication.
Bruno Haible [Sun, 1 May 2011 13:43:46 +0000 (15:43 +0200)]
gnulib-tool: Reduce code duplication.

* gnulib-tool (func_emit_autoconf_snippets): New function.
(func_import, func_create_testdir): Use it.

13 years agoRevert "netdb: Fix invalid C syntax." commit from 2011-04-30.
Bruno Haible [Sun, 1 May 2011 09:58:53 +0000 (11:58 +0200)]
Revert "netdb: Fix invalid C syntax." commit from 2011-04-30.

13 years agofclose: don't fail on non-seekable input stream
Eric Blake [Sat, 30 Apr 2011 21:40:00 +0000 (15:40 -0600)]
fclose: don't fail on non-seekable input stream

On mingw, for a project that uses both sockets and streams,
then fclose(stdin) when getting input from a terminal or pipe
was spuriously failing.

* modules/fclose (Depends-on): Add freading, fflush, fseeko.
* lib/fclose.c (rpl_fclose): Skip fflush for non-seekable input,
since fflush is allowed to fail in that case.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agodup3: cleanup
Bruno Haible [Sat, 30 Apr 2011 15:22:37 +0000 (17:22 +0200)]
dup3: cleanup

* lib/dup3.c: Remove old code, leftover from 2009-12-16.

13 years agonetdb: Make it work in C++ mode.
Bruno Haible [Sat, 30 Apr 2011 13:00:45 +0000 (15:00 +0200)]
netdb: Make it work in C++ mode.

* lib/netdb.in.h (struct addrinfo): In C++, define as a C struct.
(getaddrinfo, freeaddrinfo, getnameinfo): Use macros from c++defs
module.
* m4/netdb_h.m4 (gl_NETDB_MODULE_INDICATOR): Invoke
gl_MODULE_INDICATOR_FOR_TESTS.
* modules/netdb-tests (Depends-on): Add netdb-c++-tests.
* modules/netdb-c++-tests: New file.
* tests/test-netdb-c++.cc: New file.

13 years agoNew modules 'vfscanf', 'vscanf'.
Bruno Haible [Sat, 30 Apr 2011 12:53:35 +0000 (14:53 +0200)]
New modules 'vfscanf', 'vscanf'.

* modules/vfscanf: New file.
* modules/vscanf: New file.
* m4/stdio_h.m4 (gl_STDIO_H): Don't set GNULIB_VFSCANF, GNULIB_VSCANF
here.
* doc/posix-functions/vfscanf.texi: Mention module 'vfscanf'.
* doc/posix-functions/vscanf.texi: Mention module 'vscanf'.

13 years agopassfd: Add comments.
Bruno Haible [Sat, 30 Apr 2011 12:05:52 +0000 (14:05 +0200)]
passfd: Add comments.

* lib/passfd.c: Add comments about platforms.

13 years agosys_uio: Make <sys/uio.h> self-contained.
Bruno Haible [Sat, 30 Apr 2011 11:54:47 +0000 (13:54 +0200)]
sys_uio: Make <sys/uio.h> self-contained.

* lib/sys_uio.in.h: Include <sys/types.h> before <sys/uio.h>.
* doc/posix-headers/sys_uio.texi: Mention the OpenBSD problem.

13 years agosys_socket: Ensure 'struct iovec' definition.
Bruno Haible [Sat, 30 Apr 2011 11:38:43 +0000 (13:38 +0200)]
sys_socket: Ensure 'struct iovec' definition.

* lib/sys_socket.in.h: Include <sys/uio.h> also on platforms that have
<sys/socket.h>.
* doc/posix-headers/sys_socket.texi: Mention the OpenBSD problem.

13 years agosys_uio: Protect definition of 'struct iovec'.
Bruno Haible [Sat, 30 Apr 2011 11:19:55 +0000 (13:19 +0200)]
sys_uio: Protect definition of 'struct iovec'.

* lib/sys_uio.in.h (struct iovec): Avoid redefinition. In C++, define
it as a C struct.

13 years agomanywarnings: fix indentation
Bruno Haible [Sat, 30 Apr 2011 11:10:33 +0000 (13:10 +0200)]
manywarnings: fix indentation

* m4/manywarnings.m4: Indent by 2 spaces consistently.

13 years agonetdb: Fix invalid C syntax.
Bruno Haible [Sat, 30 Apr 2011 09:54:12 +0000 (11:54 +0200)]
netdb: Fix invalid C syntax.

* lib/netdb.in.h (AI_ADDRCONFIG): Fix comment syntax.

13 years agomanywarnings: add -Wno-missing-field-initializers if needed
Pádraig Brady [Fri, 29 Apr 2011 23:16:01 +0000 (00:16 +0100)]
manywarnings: add -Wno-missing-field-initializers if needed

* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add the above
option if it's needed to allow initialization with { 0, },
which is the case with GCC before version 4.7

13 years agomaint: indent ChangeLog with TAB consistently
Jim Meyering [Sat, 30 Apr 2011 06:00:47 +0000 (08:00 +0200)]
maint: indent ChangeLog with TAB consistently

13 years agoannounce-gen: cosmetic improvement
Reuben Thomas [Fri, 29 Apr 2011 21:04:46 +0000 (22:04 +0100)]
announce-gen: cosmetic improvement

* build-aux/announce-gen: Strip any leading ./ from the NEWS file name.

13 years agovc-list-files: indent with spaces, not TABs
Jim Meyering [Fri, 29 Apr 2011 20:04:07 +0000 (22:04 +0200)]
vc-list-files: indent with spaces, not TABs

* build-aux/vc-list-files: Convert leading TABs to spaces,
to match the style of most other files in gnulib.

13 years agoannounce-gen: indent with spaces, not TABs
Jim Meyering [Fri, 29 Apr 2011 19:59:21 +0000 (21:59 +0200)]
announce-gen: indent with spaces, not TABs

* build-aux/announce-gen: Convert all TABs to spaces, to match
the style of most other files in gnulib.

13 years agoquotearg: avoid uninitialized variable use
Eric Blake [Thu, 28 Apr 2011 23:25:49 +0000 (17:25 -0600)]
quotearg: avoid uninitialized variable use

Coverity correctly deduced:

Error: UNINIT:
m4-1.4.16/lib/quotearg.c:171: var_decl: Declaring variable "o" without initializer.
m4-1.4.16/lib/quotearg.c:175: uninit_use: Using uninitialized value "o": field "o".right_quote is uninitialized.

When custom_quoting_style was introduced in commit 12247f77,
this method was not updated, and any caller that passed
the new enum value to any of the existing quotearg_*style
functions could trigger a crash from the uninitialized memory.
That was already documented as unspecified behavior, though,
so changing to an abort makes it easier to spot bad code that
passes the wrong enum value, rather than waiting for the
eventual bad memory dereference later on.

Most callers of quotearg_*style were using quoting_style_args
and quoting_style_vals to map strings to particular enum
values, and custom_quoting_style is (intentionally) not covered
by these arrays, so the pre-patch bug/post-patch abort are not
possible with those callers.

* lib/quotearg.c (quoting_options_from_style): Initialize
remaining fields, and ensure that custom styles are only used via
quoting_options rather than quoting_style.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agomaint.mk: remove unused VC-tag variable
Jim Meyering [Fri, 29 Apr 2011 16:58:43 +0000 (18:58 +0200)]
maint.mk: remove unused VC-tag variable

* top/maint.mk (VC-tag): Remove unused variable.

13 years agonetdb: fix gai_strerror replacements
Bruno Haible [Fri, 29 Apr 2011 12:09:15 +0000 (14:09 +0200)]
netdb: fix gai_strerror replacements

* lib/netdb.in.h: Add _GL_FUNCDECL_RPL definitions.
* modules/netdb: Substitute it.

13 years agotest-getcwd.c: avoid new set-but-not-used warning
Jim Meyering [Fri, 29 Apr 2011 07:53:25 +0000 (09:53 +0200)]
test-getcwd.c: avoid new set-but-not-used warning

* tests/test-getcwd.c (test_abort_bug): Exit nonzero for any problem,
not just the glibc/abort one that getcwd-abort-bug.m4 detects.
This also adds an additional test for an unlikely chdir("..") failure.
* m4/getcwd-abort-bug.m4: Update this now-duplicated code to match,
and adjust the code that sets gl_cv_func_getcwd_abort_bug accordingly.

13 years agotest-hash.c: avoid a new shadowing warning
Jim Meyering [Fri, 29 Apr 2011 07:38:14 +0000 (09:38 +0200)]
test-hash.c: avoid a new shadowing warning

* tests/test-hash.c (main): Don't shadow "dup".

13 years agogetaddrinfo: fix gai_strerror signature
Eric Blake [Thu, 28 Apr 2011 22:46:16 +0000 (16:46 -0600)]
getaddrinfo: fix gai_strerror signature

Several platforms declare gai_strerror to return char* rather than
const char*.  Worse, on mingw, if UNICODE is defined, it is defined
to return WCHAR*, which means the result is in unicode but an
application expecting bytes for characters will only see a one-byte
answer.

* m4/getaddrinfo.m4 (gl_GETADDRINFO): Detect broken signatures,
and work around mingw with UNICODE defined.
(gl_PREREQ_GETADDRINFO): Drop redundant decl check.
* m4/netdb_h.m4 (gl_NETDB_H_DEFAULTS): Add witness.
* modules/netdb (Makefile.am): Substitute it.
* lib/netdb.in.h (gai_strerror): Declare replacement.
* lib/gai_strerror.c (rpl_gai_strerror): Fix signature.
* doc/posix-functions/gai_strerror.texi (gai_strerror): Document
the fix.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agogetsockopt: avoid compiler warning
Eric Blake [Thu, 28 Apr 2011 21:24:46 +0000 (15:24 -0600)]
getsockopt: avoid compiler warning

getsockopt.c: In function 'rpl_getsockopt':
getsockopt.c:51:7: warning: passing argument 4 of 'getsockopt' from
incompatible pointer type
c:\dev\msys_setup\mingw\bin\../lib/gcc/mingw32/4.5.0/../../../../include/winsock2.h:543:32:
note: expected 'char *' but argument is of type 'int *'

A simple cast works around the mingw signature lameness.  If only
they had picked void* instead of char*, like POSIX says...

* lib/getsockopt.c (rpl_getsockopt): Add a cast for mingw.
Reported by Matthias Bolte.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agotests: drop unused link dependency
Eric Blake [Wed, 27 Apr 2011 22:38:05 +0000 (16:38 -0600)]
tests: drop unused link dependency

Ever since commit 2392b18099, openat and fdopendir no longer drag in
xalloc-die through indirect dependencies, so these tests no longer
need $(LIBINTL).

* modules/areadlinkat-tests (Makefile.am): Drop stale LDADD.
* modules/dirent-safer-tests (Makefile.am): Likewise.
* modules/fdopendir-tests (Makefile.am): Likewise.
* modules/mkfifoat-tests (Makefile.am): Likewise.
* modules/openat-safer-tests (Makefile.am): Likewise.
* modules/openat-tests (Makefile.am): Likewise.
* modules/readlinkat-tests (Makefile.am): Likewise.
* modules/symlinkat-tests (Makefile.am): Likewise.
* modules/linkat-tests (Makefile.am): Likewise.
(Depends-on): Switch to filenamecat-lgpl.
* modules/fdutimensat-tests (test_fdutimensat_LDADD): Drop unused
LIBINTL.
* modules/utimensat-tests (test_utimensat_LDADD): Likewise.
* tests/test-linkat.c (main): Don't require xalloc.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agohash, mgetgroups: drop xalloc dependency
Eric Blake [Wed, 27 Apr 2011 22:23:45 +0000 (16:23 -0600)]
hash, mgetgroups: drop xalloc dependency

Rely on the new xalloc-oversized module to avoid requiring
xalloc-die for functions documented as returning NULL on
potential allocation overflow.

* lib/hash.c (includes): Adjust includes.
* lib/mgetgroups.c (includes): Likewise.
(xgetgroups): Move...
* lib/xgetgroups.c: ...to new file.
* modules/xgetgroups: New file, split from...
* modules/mgetgroups: ...here.
(Depends-on): Add xalloc-oversized.
* modules/hash (Depends-on): Likewise.
* modules/hash-tests (Depends-on): Drop xalloc.
(test_hash_LDADD): Drop unused library.
* tests/test-hash.c (main): Break xalloc dependency.
(includes): Drop unused include.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agoxalloc-oversized: new module
Eric Blake [Wed, 27 Apr 2011 21:54:30 +0000 (15:54 -0600)]
xalloc-oversized: new module

Due to inline functions, mere inclusion of xalloc.h can result
in a link dependency on xalloc_die() on some platforms.  However,
there are several modules that want to use just xalloc_oversized
in order to short-circuit the potential to call xalloc_die.
Splitting the macro into a new header and module makes this easy.

* modules/xalloc-oversized: New module.
* modules/xalloc (Depends-on): Add it.
* lib/xalloc.h (xalloc_oversized): Move...
* lib/xalloc-oversized.h: ...into new file.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agoutimecmp: drop dependency on xmalloc
Eric Blake [Wed, 27 Apr 2011 21:41:54 +0000 (15:41 -0600)]
utimecmp: drop dependency on xmalloc

utimecmp's only use of malloc was for a cache; we can always bypass
the cache in low memory, and thus avoid dragging in xalloc-die.

* lib/utimecmp.c (utimecmp): Work even if hash table cache fails
due to memory pressure.
* modules/utimecmp (Depends-on): Drop xalloc.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agogetcwd: fix mingw bugs
Eric Blake [Thu, 28 Apr 2011 02:40:21 +0000 (20:40 -0600)]
getcwd: fix mingw bugs

On mingw, getcwd(NULL,1) succeeds, even though glibc documents that
with a non-zero size, the allocation will not exceed that many bytes.

On mingw, getcwd has the wrong signature.  However, we don't have
to check for this if anything else triggers the replacement.

Also, fix a type bug that crept into the original getcwd-lgpl commit.

* m4/getcwd.m4 (gl_FUNC_GETCWD_NULL): Detect one mingw bug.
* doc/posix-functions/getcwd.texi (getcwd): Document the problems.
* lib/getcwd-lgpl.c (rpl_getcwd): Fix return type.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agoTypo in comment.
Bruno Haible [Wed, 27 Apr 2011 23:26:12 +0000 (01:26 +0200)]
Typo in comment.

13 years agomkstemps: Ensure declaration on MacOS X 10.5.
Bruno Haible [Wed, 27 Apr 2011 22:06:48 +0000 (00:06 +0200)]
mkstemps: Ensure declaration on MacOS X 10.5.

* lib/stdlib.in.h: Include <unistd.h> when mkstemps is requested.
* doc/glibc-functions/mkstemps.texi: Document header file problem on
MacOS X.

13 years agomkstemp: More documentation.
Bruno Haible [Wed, 27 Apr 2011 22:05:08 +0000 (00:05 +0200)]
mkstemp: More documentation.

* doc/posix-functions/mkstemp.texi: Document header file problem on
MacOS X.

13 years agomkstemp: Tweak configure message when cross-compiling.
Bruno Haible [Wed, 27 Apr 2011 21:42:27 +0000 (23:42 +0200)]
mkstemp: Tweak configure message when cross-compiling.

* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): When cross-compiling, qualify the
result as a guess.

13 years agoclean-temp: Clarify what it does.
Bruno Haible [Wed, 27 Apr 2011 21:28:48 +0000 (23:28 +0200)]
clean-temp: Clarify what it does.

* lib/clean-temp.h: Add more comments.
* doc/posix-functions/mkstemp.texi: Tweak reference to 'clean-temp'
module.
* doc/glibc-functions/mkostemp.texi: Mention 'clean-temp' here too.
* doc/glibc-functions/mkstemps.texi: Likewise.
* doc/glibc-functions/mkostemps.texi: Likewise.

13 years agofchdir: avoid extra chdir and fix test
Eric Blake [Tue, 26 Apr 2011 21:58:03 +0000 (15:58 -0600)]
fchdir: avoid extra chdir and fix test

On Linux, with a forced ac_cv_func_fchdir=no, the test failed
because dup2 was not replaced, all because the shell variable
ac_cv_func_dup2 had not been set yet.

Meanwhile, computing the canonical pathname of a directory on
mingw was rather expensive -- multiple chdir()! -- but nothing
cared whether the name was canonical, just that it was absolute.

* modules/fchdir (Depends-on): Add dosname, filenamecat-lgpl,
getcwd-lgpl.
* lib/fchdir.c (get_name): Any absolute name will do; it does not
have to be canonical.
* m4/dup2.m4 (gl_REPLACE_DUP2): Ensure dup2 is replaced.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agofilenamecat-lgpl: fix licence
Eric Blake [Tue, 26 Apr 2011 21:53:35 +0000 (15:53 -0600)]
filenamecat-lgpl: fix licence

http://lists.gnu.org/archive/html/bug-gnulib/2009-10/msg00299.html
talked about splitting out LGPLv2+ portions of existing modules.

* modules/filenamecat-lgpl (License): Mark as LGPLv2+, as intended
when it was first created.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agolinkat, renameat: add missing dependency
Eric Blake [Tue, 26 Apr 2011 21:31:21 +0000 (15:31 -0600)]
linkat, renameat: add missing dependency

* modules/linkat (Depends-on): Require getcwd-lgpl.
* modules/renameat (Depends-on): Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agotests: reduce dependencies
Eric Blake [Tue, 26 Apr 2011 21:23:23 +0000 (15:23 -0600)]
tests: reduce dependencies

We can assume that tests won't be run from a directory with an
absolute name longer than native getcwd limits.

* tests/test-linkat.c (main): Use lighter-weight getcwd.
* tests/test-renameat.c (main): Likewise.
* modules/linkat-tests (Depends-on): Relax dependency.
* modules/renameat-tests (Depends-on): Likewise.
* modules/fchdir-tests (Depends-on): Likewise.  Also make cloexec
dependency explicit.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agosave-cwd: reduce default dependency
Eric Blake [Tue, 26 Apr 2011 21:07:07 +0000 (15:07 -0600)]
save-cwd: reduce default dependency

save-cwd generally needs only a working fchdir or a working
getcwd(NULL,0).  If you are not worried about directories whose
absolute name is longer than PATH_MAX, then reducing the default
dependencies reduces the bulk for this module.

However, there are cases where neither function works on Linux
(an unreadable but searchable directory can be opened by O_SEARCH,
except that Linux doesn't implement that yet; and Linux getcwd()
has issues with long absolute names which glibc does not work
around but which the full-blown getcwd module does).  So someone
desiring a truly robust solution needs to import the 'getcwd'
module at the same time as 'save-cwd'.

* modules/save-cwd (Depends-on): Use getcwd-lgpl.
* lib/save-cwd.c: Update comments.
* NEWS: Document the semantic change.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agogetcwd: enhance tests
Eric Blake [Tue, 26 Apr 2011 20:51:24 +0000 (14:51 -0600)]
getcwd: enhance tests

The existing getcwd was weak, and only tested things guaranteed
by the new getcwd-lgpl.  Move those tests into a new file and
strengthen them slightly (such as guaranteeing the ERANGE error
for a non-zero but too-small size).  Then copy the m4 tests
for PATH_MAX failures into the GPL getcwd tests, to prove that
our replacement really is fixing the things that cause us to
reject the system getcwd as non-robust.

* tests/test-getcwd-lgpl.c: New file, taken from...
* tests/test-getcwd.c: ...old contents.  Rewrite this file to
repeat long path stress tests from m4 probe.
* modules/getcwd-lgpl-tests: New module.
* modules/getcwd-tests (Depends-on): Depend on lgpl tests.
* m4/getcwd-abort-bug.m4: Update comment.
* m4/getcwd-path-max.m4: Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agogetcwd-lgpl: new module
Eric Blake [Tue, 26 Apr 2011 20:40:58 +0000 (14:40 -0600)]
getcwd-lgpl: new module

For programs that aren't worried about being invoked from an
current working directory longer than PATH_MAX (perhaps because
the program always does chdir to a sane location first), the
getcwd module is overkill, given that all modern portability
targets have a getcwd that works on short names.

* modules/getcwd-lgpl: New module.
* lib/getcwd-lgpl.c: New file.
* doc/posix-functions/getcwd.texi (getcwd): Document it.
* MODULES.html.sh (lacking POSIX:2008): Likewise.
* modules/getcwd (configure.ac): Set C witness.
* m4/getcwd.m4 (gl_FUNC_GETCWD_LGPL): New macro.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agogetcwd: tweak comments
Eric Blake [Tue, 26 Apr 2011 17:27:15 +0000 (11:27 -0600)]
getcwd: tweak comments

* m4/getcwd-abort-bug.m4: Fix comments.
* m4/getcwd-path-max.m4: Likewise.
* m4/getcwd.m4: Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agomkstemp: replace if system version uses wrong permissions
Reuben Thomas [Wed, 27 Apr 2011 13:51:22 +0000 (14:51 +0100)]
mkstemp: replace if system version uses wrong permissions

* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Add test for non-owner
read/write mode bits set in file created by mkstemp.
* doc/posix-functions/mkstemp.texi (mkstemp): Document the fix.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agopassfd: avoid compiler warning
Eric Blake [Wed, 27 Apr 2011 15:52:00 +0000 (09:52 -0600)]
passfd: avoid compiler warning

Detected on Fedora 13 with -Wshadow.

* lib/passfd.c (sendfd, recvfd): Avoid shadowing names.
Reported by Laine Stump.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agoChange gnulib-tool to support NetBSD's join
J.T. Conklin [Wed, 27 Apr 2011 15:23:53 +0000 (08:23 -0700)]
Change gnulib-tool to support NetBSD's join

For backwards compatibility, the 4.4BSD join used by NetBSD supports a
"-a" option as if it was "-a 1 -a 2".  Unfortunately, this was done in
such a way that "-a 1" and "-a 2" need to be passed as "-a1" or "-a2".

13 years agomkstemp: mention clean-temp module
Reuben Thomas [Wed, 27 Apr 2011 13:30:31 +0000 (14:30 +0100)]
mkstemp: mention clean-temp module

* lib/mkstemp.c: Add comment.
* doc/posix-functions/mkstemp.texi (mkstemp): Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agointtypes: also provide default values for 32-bit tests
Paul Eggert [Tue, 26 Apr 2011 07:43:46 +0000 (00:43 -0700)]
inttypes: also provide default values for 32-bit tests

* m4/inttypes.m4 (gl_INTTYPES_H_DEFAULTS): Also provide default values
for INT32_MAX_LT_INTMAX_MAX and for UINT32_MAX_LT_UINTMAX_MAX.

13 years agostrtoumax: remove dependency on strtoimax
Paul Eggert [Tue, 26 Apr 2011 02:47:18 +0000 (19:47 -0700)]
strtoumax: remove dependency on strtoimax

This is like the strtoull change of yesterday.
* modules/strtoumax (Files): Add lib/strtoimax.c.
(Depends-on): Remove strtoimax and add verify.

13 years agointtypes-incomplete: new module
Paul Eggert [Tue, 26 Apr 2011 02:33:14 +0000 (19:33 -0700)]
inttypes-incomplete: new module

* m4/inttypes.m4 (gl_INTTYPES_INCOMPLETE): New macro, containing
all but the PRI* and SCN* parts of gl_INTTYPES_H.
(gl_INTTYPES_PRI_SCN): New macro, containing the PRI* and SCN* parts
of gl_INTTYPES_H.
(gl_INTTYPES_H): Rewrite in terms of these new macros.
(gl_INTTYPES_H_DEFAULTS): Provide defaults for the PRI* and SCN*
parts, in case gl_INTTYPE_PRI_SCN is not invoked.
* modules/imaxabs, modules/imaxdiv, modules/strtoimax (Depends-on):
* modules/strtoumax, modules/xstrtol (Depends-on):
Depend on inttypes-incomplete, not inttypes.
* modules/inttypes-incomplete: New module, containing the contents
of the old modules/inttypes module, except that the Files: section
omits m4/inttypes-pri.m4, and the configure.ac section invokes
gl_INTTYPES_INCOMPLETE rather than gl_INTTYPES_H.
* modules/inttypes (Files): Remove lib/inttypes.in.h, m4/inttypes.m4.
(Depends-on): Depend only on inttypes-incomplete.
(Makefile.am): Remove everything; this is now in inttypes-incomplete.

13 years agointtypes: omit now-redundant strtoimax and strtoumax work
Paul Eggert [Tue, 26 Apr 2011 01:00:33 +0000 (18:00 -0700)]
inttypes: omit now-redundant strtoimax and strtoumax work

* m4/inttypes.m4 (gl_INTTYPES_H): Do not check for strtoimax and
strtoumax decls; gl_FUNC_STRTOIMAX and gl_FUNC_STRTOUMAX now do this.

13 years agostrtoimax, strtoumax: simplify, port to HP-UX 11.00 64-bit
Paul Eggert [Tue, 26 Apr 2011 00:33:42 +0000 (17:33 -0700)]
strtoimax, strtoumax: simplify, port to HP-UX 11.00 64-bit

This supports apps that need pointers to strtoimax and strtoumax,
and ports to HP-UX 11.00 64.bit, which has macros that expand to
nonexistent functions.  See
<http://lists.gnu.org/archive/html/bug-gnulib/2011-04/msg00241.html>
et seq.
* lib/inttypes.in.h (strtoimax, strtoumax): #undef before declaring.
* m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Don't check whether it's
a macro.
* m4/strtoumax.m4 (gl_FUNC_STRTOUMAX): Likewise.

13 years agognumakefile: Replace TAB with SPCs.
Simon Josefsson [Mon, 25 Apr 2011 19:03:02 +0000 (21:03 +0200)]
gnumakefile: Replace TAB with SPCs.

* modules/gnumakefile (configure.ac): Replace TAB with SPCs.

13 years agostrtol, strtoul: Mark modules as obsolete.
Bruno Haible [Mon, 25 Apr 2011 18:55:15 +0000 (20:55 +0200)]
strtol, strtoul: Mark modules as obsolete.

* modules/strtol (Status, Notice): New sections.
* modules/strtoul (Status, Notice): New sections.

13 years agostrtod: Remove check for strtod, unless supporting old platforms.
Bruno Haible [Mon, 25 Apr 2011 18:53:41 +0000 (20:53 +0200)]
strtod: Remove check for strtod, unless supporting old platforms.

* modules/strtod-obsolete: New file.
* m4/strtod-obsolete.m4: New file.
* m4/strtod.m4 (gl_FUNC_STRTOD): Don't check whether strtod is declared
if gl_FUNC_STRTOD_OBSOLETE is not also defined.
* modules/strtod (Depends-on): Add strtod-obsolete.
* doc/posix-functions/strtod.texi: Mention module strtod-obsolete.

13 years agostrcase: Make module obsolete.
Bruno Haible [Mon, 25 Apr 2011 17:46:27 +0000 (19:46 +0200)]
strcase: Make module obsolete.

* modules/strcase (Status, Notice): New sections.

13 years agodup2: Remove check for dup2, unless supporting old obsolete platforms.
Bruno Haible [Mon, 25 Apr 2011 17:45:09 +0000 (19:45 +0200)]
dup2: Remove check for dup2, unless supporting old obsolete platforms.

* modules/dup2-obsolete: New file.
* m4/dup2-obsolete.m4: New file.
* m4/dup2.m4 (gl_FUNC_DUP2): Don't check whether dup2 exists if
gl_FUNC_DUP2_OBSOLETE is not also defined.
* modules/dup2 (Depends-on): Add dup2-obsolete.
* doc/posix-functions/dup2.texi: Mention module dup2-obsolete.

13 years agostrnlen: Avoid memchr related link error on old obsolete platforms.
Bruno Haible [Mon, 25 Apr 2011 17:43:59 +0000 (19:43 +0200)]
strnlen: Avoid memchr related link error on old obsolete platforms.

* modules/memchr-obsolete: New file.
* m4/memchr-obsolete.m4: New file.
* m4/memchr.m4 (gl_FUNC_MEMCHR): Don't check whether memchr exists if
gl_FUNC_MEMCHR_OBSOLETE is not also defined.
* modules/memchr (Depends-on): Add memchr-obsolete.
* modules/strnlen (Depends-on): Likewise.
* doc/posix-functions/memchr.texi: Mention module memchr-obsolete.

13 years agoRevert "use _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE"
Jim Meyering [Mon, 25 Apr 2011 08:38:33 +0000 (10:38 +0200)]
Revert "use _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE"

This reverts commit 349d7fe0e307d59d508b3579317ee8d4eacfeb9c.
Revert accidentally-pushed patch.  Not yet ready.

13 years agomaint.mk: makefile_at_at_check extend and clean up
Jim Meyering [Mon, 25 Apr 2011 08:24:20 +0000 (10:24 +0200)]
maint.mk: makefile_at_at_check extend and clean up

* top/maint.mk (sc_makefile_at_at_check): Check *.mk files
in addition to */Makefile.am.
Exempt legitimate uses of @VAR@ notation, e.g.,
MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@
Remove obsolete coreutils-specific comment.
Prompted by discussion here:
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/26074

13 years agouse _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE
Jim Meyering [Sun, 24 Apr 2011 17:02:10 +0000 (19:02 +0200)]
use _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE

13 years agostrtoul: remove dependency on strtol
Paul Eggert [Mon, 25 Apr 2011 06:29:28 +0000 (23:29 -0700)]
strtoul: remove dependency on strtol

This is so that 'configure' need not check for strtol merely because
the application needs strtoul.
* modules/strtoul (Files): Add lib/strtol.c.
(Depends-on): Remove strtol.

13 years agostrtoull: remove dependency on strtoul
Paul Eggert [Mon, 25 Apr 2011 06:28:39 +0000 (23:28 -0700)]
strtoull: remove dependency on strtoul

This is like the strtoll change.
* modules/strtoull (Files): Add lib/strtol.c, lib/strtoul.c.
(Depends-on): Remove strtoul.

13 years agostrtoll: remove dependency on strtol
Paul Eggert [Mon, 25 Apr 2011 06:27:44 +0000 (23:27 -0700)]
strtoll: remove dependency on strtol

This is so that 'configure' need not check for strtol merely because
the application needs strtoll.
* modules/strtoll (Files): Add lib/strtol.c.
(Depends-on): Remove strtol.

13 years agointtypes: Move some configure check to module 'imaxdiv'.
Paul Eggert [Sun, 24 Apr 2011 14:52:26 +0000 (16:52 +0200)]
inttypes: Move some configure check to module 'imaxdiv'.

* m4/imaxdiv.m4 (gl_FUNC_IMAXDIV): Require gl_INTTYPES_H_DEFAULTS
instead of gl_INTTYPES_H.  Check for imaxdiv decl here.
* m4/inttypes.m4 (gl_INTTYPES_H): Don't check for imaxdiv decl here.

13 years agointtypes: Move some configure check to module 'imaxabs'.
Paul Eggert [Sun, 24 Apr 2011 14:48:26 +0000 (16:48 +0200)]
inttypes: Move some configure check to module 'imaxabs'.

* m4/imaxabs.m4 (gl_FUNC_IMAXABS): Require gl_INTTYPES_H_DEFAULTS
instead of gl_INTTYPES_H.  Check for imaxabs decl here.
* m4/inttypes.m4 (gl_INTTYPES_H): Don't check for imaxabs decl here.

13 years agointtypes: Remove configure tests that are not needed since 2009-12-31.
Paul Eggert [Sun, 24 Apr 2011 14:41:37 +0000 (16:41 +0200)]
inttypes: Remove configure tests that are not needed since 2009-12-31.

* m4/inttypes.m4 (gl_INTTYPES_H): Remove determination of
gl_cv_header_working_inttypes_h.

13 years ago* modules/strnlen (Depends-on): Remove memchr.
Paul Eggert [Fri, 22 Apr 2011 09:57:43 +0000 (02:57 -0700)]
* modules/strnlen (Depends-on): Remove memchr.

The strnlen implementation doesn't need the memchr module's fixes; see
<http://lists.gnu.org/archive/html/bug-gnulib/2011-04/msg00237.html>.

13 years agostrtol: remove dependency on wchar
Paul Eggert [Fri, 22 Apr 2011 07:45:04 +0000 (00:45 -0700)]
strtol: remove dependency on wchar

* lib/strtol.c: Include <wchar.h> only if USE_WIDE_CHAR is defined.
* modules/strtol (Depends-on): Remove wchar.

13 years agopassfd: fix test regression on Linux
Eric Blake [Thu, 21 Apr 2011 20:53:49 +0000 (14:53 -0600)]
passfd: fix test regression on Linux

* modules/passfd-tests (configure.ac): Correct socketpair check.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agopassfd: speed up configure and drop unused code
Eric Blake [Thu, 21 Apr 2011 17:48:22 +0000 (11:48 -0600)]
passfd: speed up configure and drop unused code

Ultimately, it would be nice to provide a sendmsg and recvmsg module,
and have those provide a replacement struct msghdr and silently
convert msg_accrights into the replacement struct's msg_control, when
targeting older BSD.  But until that point in time, this is a nice
cleanup.

SCM_RIGHTS really only works on Unix sockets; however, there is
nothing in passfd.c that needs to be hard-coded to this (rather,
the hard-coding of the address family is done externally when
the socket or socketpair is created).

* m4/afunix.m4 (gl_SOCKET_AFUNIX): Rename...
* m4/passfd.m4 (gl_PASSFD): ...to something more fitting of
its use.  Drop test for setting unused HAVE_UNIXSOCKET_SCM_RIGHTS.
Instead of probing at configure for unix_scm_rights_bsd44_way,
instead probe for CMSG_FIRSTHDR at compile time.  Simplify BSD 4.3
check to a struct member probe.
* lib/passfd.c (includes): Nothing here requires <sys/un.h>.
(sendfd, recvfd): Update preprocessor checks.
* modules/passfd (Files): Reflect rename, and drop unused file.
(Depends-on): Drop unused dependency.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agopassfd: allow compilation on mingw
Eric Blake [Thu, 21 Apr 2011 13:16:20 +0000 (07:16 -0600)]
passfd: allow compilation on mingw

The passfd module now skips on mingw, rather than failing to compile.

It may be nice to add a sendmsg and recvmsg module in the future,
but for now passfd is the only client that cares.

* modules/sys_socket (Depends-on): Add sys_uio.
* lib/sys_socket.in.h [!@HAVE_SYS_SOCKET_H@]: Use it for struct
iovec and a minimal struct msghdr.
* tests/test-sys_socket.c (main): Enhance test.
* m4/afunix.m4 (gl_SOCKET_AFUNIX): Detect recvmsg/sendmsg.
* lib/passfd.c (include): Drop <sys/uio.h>; <sys/sockets.h> is
guaranteed to provide what we need.
(sendmsg, recvmsg): Declare fallbacks if we lack sendmsg.
* modules/passfd-tests (Depends-on): Add sys_wait.
* tests/test-passfd.c (main): Skip test on mingw, for now.
* doc/posix-headers/sys_socket.texi (sys/socket.h): Document the
partial 'struct msghdr' implementation.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agosys_uio: new module
Eric Blake [Thu, 21 Apr 2011 14:51:12 +0000 (08:51 -0600)]
sys_uio: new module

For now, just provide the types used by sys/socket.  We could
add readv() and writev() later, if desired.

* modules/sys_uio: New module.
* modules/sys_uio-tests: Likewise.
* lib/sys_uio.in.h: New file.
* m4/sys_uio_h.m4: Likewise.
* tests/test-sys_uio.c: Likewise.
* doc/posix-headers/sys_uio.texi (sys/uio.h): Document it.
* MODULES.html.sh (systems lacking POSIX:2008): Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agouseless-if-before-free: avoid false-positive
Jim Meyering [Wed, 20 Apr 2011 13:44:54 +0000 (15:44 +0200)]
useless-if-before-free: avoid false-positive

* build-aux/useless-if-before-free: Adjust regexp for the non-brace
disjunct so that it too requires a terminating ";".  Without that,
this script would identify as useless one statement from gcc that
was not:
  if (aligned_ptr)
    free (((void **) aligned_ptr) [-1]);

13 years agodoc: update users.txt.
Giuseppe Scrivano [Tue, 19 Apr 2011 22:49:54 +0000 (00:49 +0200)]
doc: update users.txt.

* users.txt: Add barcode.

13 years agoioctl: Remove link dependency on native Windows.
Bruno Haible [Mon, 18 Apr 2011 00:34:47 +0000 (02:34 +0200)]
ioctl: Remove link dependency on native Windows.

* lib/fd-hook.h: Renamed from lib/close-hook.h.
(gl_close_fn, gl_ioctl_fn): New types.
(struct fd_hook): Renamed from struct close_hook. Change type of
private_close_fn field. Add private_ioctl_fn field.
(close_hook_fn): Add parameter for primary close method.
(execute_close_hooks, execute_all_close_hooks): Likewise.
(ioctl_hook_fn): New type.
(execute_ioctl_hooks, execute_all_ioctl_hooks): New declarations.
(register_fd_hook): Renamed from register_close_hook. Add ioctl_hook
argument.
(unregister_fd_hook): Renamed from unregister_close_hook.
* lib/fd-hook.c: Renamed from lib/close-hook.c.
Don't include <unistd.h>.
(close): Remove undef.
(anchor): Update.
(execute_close_hooks): Add argument for primary close method.
(execute_all_close_hooks): Likewise.
(execute_ioctl_hooks, execute_all_ioctl_hooks): New functions.
(register_fd_hook): Renamed from register_close_hook. Add ioctl_hook
argument. Allow each argument to be NULL.
(unregister_fd_hook): Renamed from unregister_close_hook.
* lib/close.c (rpl_close): Pass 'close' function pointer to
execute_all_close_hooks.
* lib/ioctl.c: Include <errno.h>, fd-hook.h.
(primary_ioctl): New function.
(ioctl): Don't call ioctlsocket here. Instead, call
execute_all_ioctl_hooks.
* lib/sockets.c (close_fd_maybe_socket): Add argument for primary
close method.
(ioctl_fd_maybe_socket): New function, with code from lib/ioctl.c.
(fd_sockets_hook): Renamed from close_sockets_hook.
(gl_sockets_startup, gl_sockets_cleanup): Update.
* modules/fd-hook: Renamed from modules/close-hook. Update.
* modules/close (Depends-on): Add fd-hook, remove close-hook.
* modules/sockets (Depends-on): Likewise.
* modules/ioctl (Depends-on): Add fd-hook.
* tests/test-nonblocking.c (main): Use GNULIB_TEST_SOCKET, not
GNULIB_SOCKET.

13 years agoMove the support of O_NONBLOCK in open() to the 'open' module.
Bruno Haible [Tue, 19 Apr 2011 08:38:30 +0000 (10:38 +0200)]
Move the support of O_NONBLOCK in open() to the 'open' module.

* modules/nonblocking (Depends-on): Remove 'open'.
* m4/nonblocking.m4 (gl_NONBLOCKING_IO_BODY): Set
gl_cv_have_open_O_NONBLOCK.
* m4/open.m4 (gl_FUNC_OPEN): Replace open() also when required for
O_NONBLOCK support.
* doc/posix-functions/open.texi: Document support for O_NONBLOCK.

13 years agononblocking tests: Tweak comment.
Bruno Haible [Mon, 18 Apr 2011 08:46:53 +0000 (10:46 +0200)]
nonblocking tests: Tweak comment.

13 years agopipe2: Simplify code.
Bruno Haible [Sun, 17 Apr 2011 21:36:27 +0000 (23:36 +0200)]
pipe2: Simplify code.

* lib/pipe2.c (pipe2): Reduce code duplication.

13 years agononblocking: Add comment.
Bruno Haible [Sun, 17 Apr 2011 21:16:13 +0000 (23:16 +0200)]
nonblocking: Add comment.

* lib/fcntl.in.h (O_NONBLOCK): Add comment.

13 years agononblocking: Add tests for sockets.
Bruno Haible [Sun, 17 Apr 2011 17:50:10 +0000 (19:50 +0200)]
nonblocking: Add tests for sockets.

* tests/test-nonblocking-socket.sh: New file.
* tests/test-nonblocking-socket-main.c: New file.
* tests/test-nonblocking-socket-child.c: New file.
* tests/test-nonblocking-socket.h: New file.
* tests/socket-server.h: New file.
* tests/socket-client.h: New file.
* modules/nonblocking-socket-tests: New file.
* modules/nonblocking-tests (Depends-on): Add nonblocking-socket-tests.

13 years agononblocking: Add tests for pipes.
Bruno Haible [Sun, 17 Apr 2011 17:27:28 +0000 (19:27 +0200)]
nonblocking: Add tests for pipes.

* tests/test-nonblocking-pipe.sh: New file.
* tests/test-nonblocking-pipe-main.c: New file.
* tests/test-nonblocking-pipe-child.c: New file.
* tests/test-nonblocking-pipe.h: New file.
* tests/test-nonblocking-writer.h: New file.
* tests/test-nonblocking-reader.h: New file.
* tests/test-nonblocking-misc.h: New file.
* modules/nonblocking-pipe-tests: New file.
* modules/nonblocking-tests (Depends-on): Add nonblocking-pipe-tests.

13 years agoautoupdate
Karl Berry [Sun, 17 Apr 2011 13:27:17 +0000 (06:27 -0700)]
autoupdate

13 years agogettext: Clarify the needed programmer actions.
Bruno Haible [Sat, 16 Apr 2011 10:14:42 +0000 (12:14 +0200)]
gettext: Clarify the needed programmer actions.

* modules/gettext (Notice): New field.
Suggested by Ben Pfaff <blp@cs.stanford.edu>.

13 years agostrchrnul: Tweak last commit.
Bruno Haible [Sat, 16 Apr 2011 10:10:16 +0000 (12:10 +0200)]
strchrnul: Tweak last commit.

* doc/glibc-functions/strchrnul.texi: Add more details about Cygwin
bug.
* lib/string.in.h (strchrnul): Use same arguments in _GL_FUNCDECL_RPL
as in _GL_FUNCDECL_SYS.
* m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Invoke gl_PREREQ_STRCHRNUL after
AC_LIBOBJ. When cross-compiling, say "guessing yes" not "yes".

13 years agostrchrnul: work around cygwin bug
Eric Blake [Fri, 15 Apr 2011 19:53:50 +0000 (13:53 -0600)]
strchrnul: work around cygwin bug

A misplaced * means that cygwin 1.7.9 dereferences NULL rather
than returning the location of the trailing NUL byte.

* doc/glibc-functions/strchrnul.texi (strchrnul): Document bug.
* m4/strchrnul.m4 (gl_FUNC_STRCHRNUL): Detect it.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): New witness.
* modules/string (Makefile.am): Substitute it.
* lib/string.in.h (strchrnul): Use it.

Signed-off-by: Eric Blake <eblake@redhat.com>