gnulib.git
12 years agounsetenv: Avoid gcc warning.
Bruno Haible [Sun, 5 Jun 2011 12:32:56 +0000 (14:32 +0200)]
unsetenv: Avoid gcc warning.

* lib/unsetenv.c (unsetenv): Provide declaration if system lacks it.

12 years agosetenv: Avoid gcc warning.
Bruno Haible [Sun, 5 Jun 2011 12:31:51 +0000 (14:31 +0200)]
setenv: Avoid gcc warning.

* lib/setenv.c (setenv): Provide declaration if system lacks it.

12 years agosys_select: Ensure memset is declared also on AIX 7.
Bruno Haible [Sun, 5 Jun 2011 12:20:16 +0000 (14:20 +0200)]
sys_select: Ensure memset is declared also on AIX 7.

* lib/sys_select.in.h: Include <string.h> also on AIX.
* doc/posix-headers/sys_select.texi: Mention that <sys/select.h> is not
self-contained also on AIX 7.1.

12 years agomaint.mk: sc_unmarked_diagnostics: don't hard-code "error"
Jim Meyering [Sat, 4 Jun 2011 17:56:58 +0000 (19:56 +0200)]
maint.mk: sc_unmarked_diagnostics: don't hard-code "error"

* top/maint.mk (sc_unmarked_diagnostics): Don't hard-code the
function name, "error".
(_gl_translatable_diag_func_re): New configurable variable.

12 years agogetopt: Avoid gcc warning.
Bruno Haible [Sat, 4 Jun 2011 13:32:18 +0000 (15:32 +0200)]
getopt: Avoid gcc warning.

* lib/getopt.c (_getopt_internal_r): Remove unused variable 'ambig'.

12 years agostrerror_r: Fix comments.
Bruno Haible [Sat, 4 Jun 2011 11:01:55 +0000 (13:01 +0200)]
strerror_r: Fix comments.

* lib/strerror_r.c (strerror_r): Update comments after 2011-06-01
commit.

12 years agoperror: Fix compilation error.
Bruno Haible [Sat, 4 Jun 2011 10:54:38 +0000 (12:54 +0200)]
perror: Fix compilation error.

* lib/perror.c: Don't include intprops.h, verify.h, strerror-impl.h.
Undefine fprintf, not sprintf.
* modules/perror (Depends-on): Remove intprops, verify.

12 years agosetlocale: Enable replacement on Cygwin 1.5.
Bruno Haible [Sat, 4 Jun 2011 10:07:57 +0000 (12:07 +0200)]
setlocale: Enable replacement on Cygwin 1.5.

* m4/setlocale.m4 (gl_FUNC_SETLOCALE): Set REPLACE_SETLOCALE also on
Cygwin 1.5.x.
* doc/posix-functions/setlocale.texi: Mention that the problem with the
LC_CTYPE category also exists on Cygwin 1.5.x.

12 years agostrerror-override: Don't disable symbol renamings.
Bruno Haible [Sat, 4 Jun 2011 09:11:44 +0000 (11:11 +0200)]
strerror-override: Don't disable symbol renamings.

* lib/strerror-override.h: Include errno.h and stddef.h, not string.h.
* lib/strerror-override.c: Include config.h.
(strerror_override): Don't undefine.

12 years agoCopyright: Use LGPL 2.1 instead of LGPL 2.0.
Bruno Haible [Fri, 3 Jun 2011 12:21:08 +0000 (14:21 +0200)]
Copyright: Use LGPL 2.1 instead of LGPL 2.0.

* lib/localename.h: Update copyright header.
* lib/localename.c: Likewise.
* lib/relocatable.h: Likewise.
* lib/relocatable.c: Likewise.

12 years agodoc: Fix a module name.
Bruno Haible [Thu, 2 Jun 2011 23:45:23 +0000 (01:45 +0200)]
doc: Fix a module name.

* doc/posix-functions/open.texi: Fix module name 'nonblocking'.

12 years agopipe2: Remove dependency on 'nonblocking' module.
Bruno Haible [Thu, 2 Jun 2011 22:10:00 +0000 (00:10 +0200)]
pipe2: Remove dependency on 'nonblocking' module.

* lib/pipe2.c: Include verify.h. Include nonblocking.h only if
O_NONBLOCK is defined by gnulib.
(pipe2) [WIN32]: If O_NONBLOCK is not defined by gnulib, verify that it
is zero.
* modules/pipe2 (Depends-on): Add verify. Remove nonblocking.
* tests/test-pipe2.c: Include nonblocking.h only if O_NONBLOCK is
defined by gnulib.
(get_nonblocking_flag): New function.
(main): Test O_NONBLOCK flag only if it is nonzero.

12 years agomaint.mk: add three prohibit-header-without-use rules
Jim Meyering [Fri, 3 Jun 2011 15:35:07 +0000 (17:35 +0200)]
maint.mk: add three prohibit-header-without-use rules

Prohibit use of cloexec.h, posixver.h, same.h without use.
* top/maint.mk (sc_prohibit_cloexec_without_use): New rule.
(sc_prohibit_posixver_without_use): Likewise.
(sc_prohibit_same_without_use): Likewise.

12 years agoallocator: 'die' routine is now given requested size
Paul Eggert [Thu, 2 Jun 2011 08:15:18 +0000 (01:15 -0700)]
allocator: 'die' routine is now given requested size

* lib/allocator.h (struct allocator.die): New size arg.
* lib/careadlinkat.c (careadlinkat): Pass size to 'die' function.
If the actual problem is an ssize_t limitation, not a size_t or
malloc failure, fail with errno==ENAMETOOLONG instead of calling 'die'.

12 years agostrerror: drop strerror_r dependency
Eric Blake [Tue, 24 May 2011 21:33:49 +0000 (15:33 -0600)]
strerror: drop strerror_r dependency

Since the errno module is responsible for introducing replacement
errno values, it should also be responsible for translating those
new values into strings.  And by moving the replacements into a
file managed by the errno, we can then break the dependency between
strerror and strerror_r, so that strerror no longer drags in
multi-threading modules required by strerror_r.

Tested on glibc with:

gl_cv_header_errno_h_complete=no gl_cv_func_working_strerror=no \
  gl_cv_func_strerror_r_works=no ./gnulib-tool --with-tests \
  --test strerror strerror_r-posix

* lib/strerror_r.c (strerror_r): Move gnulib replacement strings...
* lib/strerror-override.c (strerror_override): ...to new file.
* lib/strerror-override.h: Add prototype.
* lib/strerror-impl.h: Delete.
* lib/strerror.c (strerror): New implementation.
* modules/errno (Files): Add new files.
(configure.ac): Compile new file as appropriate.
* modules/strerror (Files): Drop unused file.
(Depends-on): Drop strerror_r-posix.
* MODULES.html.sh: Document strerror_r-posix.
Requested by Sam Steingold.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agoperror: call strerror_r directly
Eric Blake [Tue, 24 May 2011 20:27:04 +0000 (14:27 -0600)]
perror: call strerror_r directly

No need to make a wrapper that burns static storage when we can
just use stack storage.

* modules/perror (Files): Drop strerror-impl.h.
* lib/perror.c (perror): Use our own stack buffer, rather than
calling a wrapper that uses static storage.
* doc/posix-functions/perror.texi (perror): Document a limitation
of our replacement.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agostrerror_r: fix includes for FreeBSD
Eric Blake [Wed, 1 Jun 2011 14:14:34 +0000 (08:14 -0600)]
strerror_r: fix includes for FreeBSD

* lib/strerror_r.c (includes): Use <stdlib.h> unconditionally,
since we use abort on some platforms.
Reported by Matthias Bolte.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agoFix link errors in tests: openat-die uses gettext-h.
Bruno Haible [Tue, 31 May 2011 21:31:26 +0000 (23:31 +0200)]
Fix link errors in tests: openat-die uses gettext-h.

* modules/areadlinkat-tests (Makefile.am): Link test-areadlinkat
against $(LIBINTL).
* modules/dirent-safer-tests (Makefile.am): Link test-dirent-safer
against $(LIBINTL).
* modules/fdopendir-tests (Makefile.am): Link test-fdopendir against
$(LIBINTL).
* modules/fdutimensat-tests (Makefile.am): Link test-fdutimensat
against $(LIBINTL).
* modules/linkat-tests (Makefile.am): Link test-linkat against
$(LIBINTL).
* modules/mkfifoat-tests (Makefile.am): Link test-mkfifoat against
$(LIBINTL).
* modules/openat-safer-tests (Makefile.am): Link test-openat-safer
against $(LIBINTL).
* modules/openat-tests (Makefile.am): Link test-fchownat, test-fstatat,
test-mkdirat, test-openat, test-unlinkat against $(LIBINTL).
* modules/readlinkat-tests (Makefile.am): Link test-readlinkat against
$(LIBINTL).
* modules/symlinkat-tests (Makefile.am): Link test-symlinkat against
$(LIBINTL).
* modules/utimensat-tests (Makefile.am): Link test-utimensat against
$(LIBINTL).
Reported by Tom G. Christensen <tgc@jupiterrise.com>.

12 years agobuild-aux/config.sub
Karl Berry [Tue, 31 May 2011 13:19:28 +0000 (06:19 -0700)]
build-aux/config.sub

12 years agoFix link errors in tests: wait-process uses gettext-h.
Bruno Haible [Mon, 30 May 2011 22:44:51 +0000 (00:44 +0200)]
Fix link errors in tests: wait-process uses gettext-h.

* modules/nonblocking-pipe-tests (Makefile.am): Set
test_nonblocking_pipe_main_LDADD.
* modules/nonblocking-socket-tests (Makefile.am): Link
test-nonblocking-socket-main against $(LIBINTL).
Reported by Tom G. Christensen <tgc@jupiterrise.com>.

12 years ago* modules/assert-h (assert.h): Substitute the symbol-prefix more consistently.
Paul Eggert [Sun, 29 May 2011 21:31:22 +0000 (14:31 -0700)]
* modules/assert-h (assert.h): Substitute the symbol-prefix more consistently.

12 years agoassert-h: work around 'verify' incompatibility
Paul Eggert [Sun, 29 May 2011 21:30:36 +0000 (14:30 -0700)]
assert-h: work around 'verify' incompatibility

* lib/verify.h: Use @...@ directives, not ifdef.
* modules/assert-h (assert.h): Implement the directives.

12 years agotrim: remove three superfluous assignments
Jim Meyering [Sun, 29 May 2011 21:15:36 +0000 (23:15 +0200)]
trim: remove three superfluous assignments

* lib/trim.c (trim2): Remove three superfluous assignments
and correct brace positioning.

12 years agowctype-h: Avoid namespace pollution on Solaris 2.6.
Bruno Haible [Sat, 28 May 2011 18:58:14 +0000 (20:58 +0200)]
wctype-h: Avoid namespace pollution on Solaris 2.6.

* lib/wctype.in.h: On Solaris, undefine 'multibyte' and a few other
identifiers.
* doc/posix-headers/wctype.texi: Mention the problem.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.

12 years agoparse-datetime.y: accommodate -Wstrict-overflow
Jim Meyering [Sat, 28 May 2011 18:58:14 +0000 (20:58 +0200)]
parse-datetime.y: accommodate -Wstrict-overflow

* lib/parse-datetime.y (yylex): Rearrange pointer arithmetic to
placate -Wstrict-overflow.

12 years agotrim: avoid a warning from -O2 -Wstrict-overflow
Jim Meyering [Sat, 28 May 2011 14:00:20 +0000 (16:00 +0200)]
trim: avoid a warning from -O2 -Wstrict-overflow

* lib/trim.c (trim2): Declare local to be "unsigned int", not "int".

12 years agognulib-tool: Fix bug in yesterday's commit.
Bruno Haible [Sun, 29 May 2011 14:02:32 +0000 (16:02 +0200)]
gnulib-tool: Fix bug in yesterday's commit.

* gnulib-tool (func_create_testdir): Don't add gltests to $subdirs
twice.

12 years agoAllow multiple gnulib generated include files to be combined.
Bruno Haible [Sun, 29 May 2011 13:44:42 +0000 (15:44 +0200)]
Allow multiple gnulib generated include files to be combined.

* gnulib-tool (func_compute_include_guard_prefix): New function.
(func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Resolve also
${gl_include_guard_prefix} references.
(func_import, func_create_testdir): Invoke
func_compute_include_guard_prefix.
* lib/arpa_inet.in.h: Use the @GUARD_PREFIX@ placeholder.
* 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/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_uio.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 @GUARD_PREFIX@.
* 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/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_uio (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-h (Makefile.am): Likewise.
* modules/assert-h (Makefile.am): Replace _GL_VERIFY_H specially.

12 years agoassert-h: Allow multiple gnulib generated replacements to coexist.
Bruno Haible [Sun, 29 May 2011 13:38:41 +0000 (15:38 +0200)]
assert-h: Allow multiple gnulib generated replacements to coexist.

* lib/verify.h (struct _gl_verify_type): Avoid identical redefinition.

12 years agoargp: Allow coexistence with strerror_r-posix module.
Bruno Haible [Sun, 29 May 2011 12:57:40 +0000 (14:57 +0200)]
argp: Allow coexistence with strerror_r-posix module.

* lib/argp-help.c (__argp_failure): If strerror_r is defined as a macro
(either to __xpg_strerror_r by glibc's <string.h> or to rpl_strerror_r
by gnulib's <string.h> replacement), assume it has the POSIX signature,
not the glibc signature.

12 years agoStatus of work-in-progress around libposix.
Bruno Haible [Sun, 29 May 2011 11:00:39 +0000 (13:00 +0200)]
Status of work-in-progress around libposix.

12 years agognulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible [Sat, 28 May 2011 23:24:28 +0000 (01:24 +0200)]
gnulib-tool: Alternative structure of testdirs, similar to --import.

* gnulib-tool: New option --single-configure.
(func_usage): Document it.
(single_configure): New variable.
(func_modules_transitive_closure_separately,
func_modules_transitive_closure_separately,
func_determine_use_libtests, func_modules_add_dummy_separately,
func_modules_to_filelist_separately): New functions, extracted from
func_import.
(func_emit_tests_Makefile_am): Handle $single_configure = true case.
(func_import): Use the new functions.
(func_create_testdir): Set final_modules. Handle $single_configure =
true case.

12 years agogetloadavg: Remove an unreliable safety check.
Bruno Haible [Sat, 28 May 2011 20:06:11 +0000 (22:06 +0200)]
getloadavg: Remove an unreliable safety check.

* m4/getloadavg.m4 (gl_GETLOADAVG): Drop argument. Remove test whether
getloadavg.c is in place.
* modules/getloadavg (configure.ac): Drop argument of gl_GETLOADAVG.
Reported by Sam Steingold <sds@gnu.org>.

12 years agodoc: Cleanup yet another file produced by texinfo.tex.
Bruno Haible [Sat, 28 May 2011 15:24:00 +0000 (17:24 +0200)]
doc: Cleanup yet another file produced by texinfo.tex.

* doc/Makefile (mostlyclean): Remove also gnulib.cn.

12 years agoFinish the conditional dependencies mechanism.
Bruno Haible [Sat, 28 May 2011 15:08:17 +0000 (17:08 +0200)]
Finish the conditional dependencies mechanism.

* gnulib-tool: New option --no-conditional-dependencies.
(func_usage): Document it. Don't mark --conditional-dependencies as
experimental.
(cond_dependencies): The possible values can now be true, false, empty.
(func_modules_transitive_closure, func_emit_autoconf_snippets): Update.
(func_import): Store setting in gnulib-cache.m4 and read it from there.
* doc/gnulib-tool.texi (Conditional dependencies): New section.

12 years agodoc: Use a recent texinfo.tex.
Bruno Haible [Sat, 28 May 2011 14:47:00 +0000 (16:47 +0200)]
doc: Use a recent texinfo.tex.

* doc/Makefile (tex_opts): New variable.
(%.dvi, %.pdf): Pass it to texi2dvi and texi2pdf.

12 years agointprops.h: adjust another comment to match code change
Jim Meyering [Sat, 28 May 2011 11:45:12 +0000 (13:45 +0200)]
intprops.h: adjust another comment to match code change
* lib/intprops.h (_GL_INT_SIGNED): Now, E may have side effects.

12 years agointprops.h: adjust comment to match code change
Jim Meyering [Sat, 28 May 2011 10:34:08 +0000 (12:34 +0200)]
intprops.h: adjust comment to match code change

* lib/intprops.h (_GL_INT_CONVERT): Adjust comment: now that E is used
only once, it *may* have side effects.  Also fix an unrelated typo.

12 years agogen-uni-tables: Say "gen-uni-tables.c" consistently.
Simon Josefsson [Thu, 26 May 2011 21:32:02 +0000 (23:32 +0200)]
gen-uni-tables: Say "gen-uni-tables.c" consistently.

* lib/gen-uni-tables.c: Say "gen-uni-tables.c" consistently.

12 years agombsrchr: Avoid collision with system function on Interix.
Bruno Haible [Thu, 26 May 2011 10:28:51 +0000 (12:28 +0200)]
mbsrchr: Avoid collision with system function on Interix.

* lib/string.in.h (mbsrchr): Define as rpl_mbsrchr also on Interix.
Reported by Markus Duft <mduft@gentoo.org>.

12 years agogetopt: for ambiguous options, enumerate the possibilities.
James Youngman [Thu, 26 May 2011 00:45:13 +0000 (01:45 +0100)]
getopt: for ambiguous options, enumerate the possibilities.

* lib/getopt.c (_getopt_internal_r): Merge glibc change printing
the ambiguous options when an ambiguous prefix is given. This was
http://sourceware.org/bugzilla/show_bug.cgi?id=7101.  The merged
glibc change was
http://sourceware.org/git/?p=glibc.git;a=commit;h=bd25564e1e98910ed69043ed6a6f884ce60e5780.

12 years agogetcwd: work around mingw bug
Eric Blake [Wed, 25 May 2011 21:15:14 +0000 (15:15 -0600)]
getcwd: work around mingw bug

mingw getcwd(buf, 0) fails with ERANGE, instead of the required
EINVAL.  Since we're already replacing getcwd on mingw, the
workaround is trivial.

* lib/getcwd-lgpl.c (rpl_getcwd): Guarantee correct error.
* doc/posix-functions/getcwd.texi (getcwd): Document it.
Reported by Matthias Bolte.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agotest-intprops: disable -Wtype-limits diagnostics
Paul Eggert [Tue, 24 May 2011 23:47:01 +0000 (16:47 -0700)]
test-intprops: disable -Wtype-limits diagnostics

* tests/test-intprops.c: Use a pragma to ignore -Wtype-limits
diagnostics.  Otherwise, the integer overflow macros generate many
diagnostics.  Reported by Jim Meyering in
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00528.html>.

12 years agointprops: shorten, to pacify gcc -Woverlength-strings
Paul Eggert [Tue, 24 May 2011 23:45:14 +0000 (16:45 -0700)]
intprops: shorten, to pacify gcc -Woverlength-strings

* lib/intprops.h (_GL_INT_CONVERT, _GL_INT_NEGATE_CONVERT):
(_GL_BINARY_OP_OVERFLOW): Say "0 * (x)" rather than "(x) - (x)",
so that, for example, verify (INT_MULTIPLY_OVERFLOW (...)) is less
likely to run afoul of C compiler limits for string constant lengths.
See <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00528.html>.

12 years agodocs: document recently fixed glibc printf bug
Eric Blake [Tue, 24 May 2011 23:33:39 +0000 (17:33 -0600)]
docs: document recently fixed glibc printf bug

Document it as a known bug, but one where we don't provide a
workaround since programmers are unlikely to hit it in practice.

* doc/posix-functions/fprintf.texi (fprintf): Document it.
* doc/posix-functions/printf.texi (printf): Likewise.
* doc/posix-functions/vfprintf.texi (vfprintf): Likewise.
* doc/posix-functions/vprintf.texi (vprintf): Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agoclosein-tests: convert to init.sh
Eric Blake [Tue, 24 May 2011 23:16:00 +0000 (17:16 -0600)]
closein-tests: convert to init.sh

* modules/closein-tests (Files): Add init.sh
* tests/test-closein.sh Use it.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agoyesno-tests: convert to init.sh
Eric Blake [Tue, 24 May 2011 22:54:17 +0000 (16:54 -0600)]
yesno-tests: convert to init.sh

* modules/yesno-tests (Files): Add init.sh.
* tests/test-yesno.sh: Use it.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agoatexit-tests: ensure reliable exit status
Eric Blake [Tue, 24 May 2011 22:42:37 +0000 (16:42 -0600)]
atexit-tests: ensure reliable exit status

This was the only remaining init.sh client that didn't properly
use the 'Exit' function.

* tests/test-atexit.sh: Prefer 'Exit' over 'exit'.
Reported by Bruno Haible.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agostrerror_r-posix: Respect rules for use of AC_LIBOBJ.
Bruno Haible [Tue, 24 May 2011 22:59:48 +0000 (00:59 +0200)]
strerror_r-posix: Respect rules for use of AC_LIBOBJ.

* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Move AC_LIBOBJ and
gl_PREREQ_STRERROR_R invocations from here...
* modules/strerror_r-posix (configure.ac): ... to here.

12 years agostrerror_r: fix missing header
Eric Blake [Tue, 24 May 2011 20:30:38 +0000 (14:30 -0600)]
strerror_r: fix missing header

snprintf is not guaranteed to work without a declaration.

* lib/strerror_r.c: Avoid compiler warning about snprintf.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agostrerror_r: fix AIX test failures
Eric Blake [Tue, 24 May 2011 03:37:11 +0000 (21:37 -0600)]
strerror_r: fix AIX test failures

Already documented as an AIX limitation.

* lib/strerror_r.c (strerror_r): Convert silent truncation to
ERANGE failure.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agostrerror_r: fix Solaris test failures
Eric Blake [Tue, 24 May 2011 03:05:07 +0000 (21:05 -0600)]
strerror_r: fix Solaris test failures

Solaris 10 populates buf on EINVAL, but not on ERANGE.

* lib/strerror_r.c (strerror_r): Partially populate buf on ERANGE
failures.
* doc/posix-functions/strerror_r.texi (strerror_r): Document this.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agostrerror_r: enforce POSIX recommendations
Eric Blake [Wed, 18 May 2011 21:19:51 +0000 (15:19 -0600)]
strerror_r: enforce POSIX recommendations

POSIX recommends (but does not require) that strerror_r populate
buf even on error.  But since we guarantee this behavior for
strerror, we might as well also guarantee it for strerror_r.

* lib/strerror_r.c (safe_copy): New helper method.
(strerror_r): Guarantee a non-empty string.
* tests/test-strerror_r.c (main): Enhance tests to incorporate
recent POSIX rulings and to match our strerror guarantees.
* doc/posix-functions/strerror_r.texi (strerror_r): Document this.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agotest-perror2.c: avoid warning about unused variable
Jim Meyering [Tue, 24 May 2011 19:28:46 +0000 (21:28 +0200)]
test-perror2.c: avoid warning about unused variable

* tests/test-perror2.c (main): Remove declaration of unused "fp".

12 years agoperror: avoid spurious test failure on HP-UX
Eric Blake [Tue, 24 May 2011 16:14:52 +0000 (10:14 -0600)]
perror: avoid spurious test failure on HP-UX

The previous command has non-zero status.  Even though 'exit 0'
is supposed to ignore prior status, HP-UX /bin/sh favors the
prior status if an exit trap is installed.

* tests/test-perror.sh: Use Exit to avoid wrong exit status.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agotests: fix logic bug in init.sh
Eric Blake [Tue, 24 May 2011 16:04:46 +0000 (10:04 -0600)]
tests: fix logic bug in init.sh

If the shell test loop first finds a marginal then a good shell, the
variable $gl_set_x_corrupts_stderr is still set to true and needlessly
drops $VERBOSE logging.

* tests/init.sh: (gl_set_x_corrupts_stderr_): Clear for successful
shell.

Signed-off-by: Eric Blake <eblake@redhat.com>
12 years agoutimensat: do not reference an out-of-scope buffer
Jim Meyering [Tue, 24 May 2011 16:24:24 +0000 (18:24 +0200)]
utimensat: do not reference an out-of-scope buffer

Otherwise, with __linux__ defined, "times" would point to a buffer, "ts"
declared in an inner scope, yet "times" would be dereferenced outside
the scope in which "ts" was valid.
* lib/utimensat.c (rpl_utimensat) [__linux__]: Move the declaration
of ts[2] "out/up", so that the use of aliased "times" (via "times = ts;")
does not end up referencing an out-of-scope "ts"

12 years agoopendir-safer.c: don't clobber errno; don't close negative FD
Jim Meyering [Tue, 24 May 2011 11:44:41 +0000 (13:44 +0200)]
opendir-safer.c: don't clobber errno; don't close negative FD

* lib/opendir-safer.c (opendir_safer):
[HAVE_FDOPENDIR || GNULIB_FDOPENDIR]: Don't close a negative
file descriptor, and more importantly, don't clobber the
offending errno value with EINVAL.  Before, upon failure
of dup_safer, we would pass the negative file descriptor to
fdopendir, which would clobber errno.

12 years agoupdate from texinfo
Karl Berry [Mon, 23 May 2011 23:38:11 +0000 (16:38 -0700)]
update from texinfo

12 years agoFix recent ChangeLog entry.
Bruno Haible [Mon, 23 May 2011 22:19:52 +0000 (00:19 +0200)]
Fix recent ChangeLog entry.

12 years agoidcache: Fix module description.
Bruno Haible [Mon, 23 May 2011 22:14:15 +0000 (00:14 +0200)]
idcache: Fix module description.

* modules/idcache (Include): Set to "idcache.h".

12 years agognulib-tool: fix portability problem with MacOS sed
Paul Eggert [Mon, 23 May 2011 22:02:43 +0000 (15:02 -0700)]
gnulib-tool: fix portability problem with MacOS sed

A sed command like "/x/{s/a/b/}" is not portable; a newline is needed
before the "}".  Problem reported by Leo in
<http://lists.gnu.org/archive/html/emacs-devel/2011-05/msg00717.html>.
* gnulib-tool (sed_dependencies_without_conditions):

12 years agohash: Simplify autoconf macro.
Bruno Haible [Mon, 23 May 2011 21:56:14 +0000 (23:56 +0200)]
hash: Simplify autoconf macro.

* m4/hash.m4 (gl_HASH): Don't require AM_STDBOOL_H.

12 years agogetugroups: Fix module description.
Bruno Haible [Mon, 23 May 2011 21:47:00 +0000 (23:47 +0200)]
getugroups: Fix module description.

* modules/getugroups (Include): Set to "getugroups.h".

12 years agolinkat: Simplify autoconf macro.
Bruno Haible [Mon, 23 May 2011 19:48:33 +0000 (21:48 +0200)]
linkat: Simplify autoconf macro.

* m4/linkat.m4 (gl_FUNC_LINKAT): Don't require gl_FUNC_LINK.

12 years agolinkat, renameat: Update dependencies.
Bruno Haible [Mon, 23 May 2011 19:46:00 +0000 (21:46 +0200)]
linkat, renameat: Update dependencies.

* modules/renameat (Depends-on): Add dosname, save-cwd. Remove stpcpy.
* modules/linkat (Depends-on): Likewise. Remove also readlink,
symlinkat.

12 years agomaint.mk: more tight_scope improvements
Jim Meyering [Mon, 23 May 2011 15:15:30 +0000 (17:15 +0200)]
maint.mk: more tight_scope improvements

* top/maint.mk: (_gl_TS_var_match): Use $(_gl_TS_extern) here, too.
(_gl_TS_headers): Define only in if-0'd block.
(_gl_TS_dir): Omit the $(srcdir)/ prefix.  Sometimes we need it,
sometimes we must *not* use it.  Adjust uses accordingly.
(sc_tight_scope): Use much simpler grep-based test to determine
whether we skip this rule.

12 years agomaint.mk: generalize/improve the tight-scope rule
Jim Meyering [Mon, 23 May 2011 07:12:06 +0000 (09:12 +0200)]
maint.mk: generalize/improve the tight-scope rule

* top/maint.mk: Emit a warning when the test is skipped.
(_gl_TS_dir): Add $(srcdir)/ prefix.
(_gl_TS_function_match): Simplify, rather than trying
to enumerate common types.  Otherwise, it would fail to match an
"extern unsigned char const *" declaration in idutils.
(_gl_TS_extern): Do not endorse use of "XTERN", but do provide
a way to support use of that type of macro.
(_gl_TS_var_match): Simplify regexp.
(_gl_TS_obj_files): New configurable variable.
(_gl_TS_headers): Likewise.

12 years agoverify: fix bug when gnulib <assert.h> is also included
Paul Eggert [Mon, 23 May 2011 01:36:04 +0000 (18:36 -0700)]
verify: fix bug when gnulib <assert.h> is also included

* lib/verify.h (verify, verify_true): Define if _GL_VERIFY_H
is defined, not if _GL_STATIC_ASSERT_H is not defined.
Perhaps there's a better way, but this fixes the immediate problem.
Problem reported by Bruno Haible in
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00478.html>.

12 years ago* doc/intprops.texi: fix typo in copyright date
Paul Eggert [Sun, 22 May 2011 20:31:38 +0000 (13:31 -0700)]
* doc/intprops.texi: fix typo in copyright date

12 years agoxgetcwd: Simplify autoconf macro.
Bruno Haible [Sun, 22 May 2011 15:30:36 +0000 (17:30 +0200)]
xgetcwd: Simplify autoconf macro.

* m4/xgetcwd.m4 (gl_XGETCWD): Don't require gl_FUNC_GETCWD.

12 years agoNew module 'mktime-internal'.
Bruno Haible [Sun, 22 May 2011 14:39:23 +0000 (16:39 +0200)]
New module 'mktime-internal'.

* modules/mktime-internal: New file.
* m4/timegm.m4 (gl_PREREQ_TIMEGM): Move contents to ...
* m4/mktime.m4 (gl_FUNC_MKTIME_INTERNAL): New macro. Define
mktime_internal as a C macro if libc has __mktime_internal.
* modules/timegm (Depends-on): Add mktime-internal. Remove mktime. Add
conditions.
* MODULES.html.sh (Date and time <time.h>): Add mktime-internal.

12 years agotimegm: Correct mktime replacement statements.
Bruno Haible [Sun, 22 May 2011 13:54:36 +0000 (15:54 +0200)]
timegm: Correct mktime replacement statements.

* m4/timegm.m4 (gl_PREREQ_TIMEGM): Set REPLACE_MKTIME, instead of
defining mktime as a C macro. This completes a 2009-07-28 commit.

12 years agotimegm: Simplify autoconf macro.
Bruno Haible [Sun, 22 May 2011 13:17:29 +0000 (15:17 +0200)]
timegm: Simplify autoconf macro.

* m4/timegm.m4 (gl_PREREQ_TIMEGM): Don't require gl_TIME_R.

13 years agoclock-time: change to LGPLv2+.
Paul Eggert [Sun, 22 May 2011 03:25:03 +0000 (20:25 -0700)]
clock-time: change to LGPLv2+.

* modules/clock-time: Change from GPL to LGPLv2+.  Actually, it's
BSD-like but we have no mark for that; this is good enough for now.

13 years agostrerror_r: Fix comments.
Bruno Haible [Sun, 22 May 2011 02:23:33 +0000 (04:23 +0200)]
strerror_r: Fix comments.

* lib/strerror_r.c (strerror_r): Fix comment about Cygwin and sys_nerr.

13 years agorelocatable-prog-wrapper: Fix possible link error.
Bruno Haible [Sat, 21 May 2011 21:41:37 +0000 (23:41 +0200)]
relocatable-prog-wrapper: Fix possible link error.

* m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Move determination of
HAVE_SETENV and REPLACE_SETENV and AC_LIBOBJ invocation from here...
(gl_FUNC_SETENV): ... to here.
* m4/canonicalize.m4 (gl_CANONICALIZE_LGPL_SEPARATE): Update comment.
* m4/readlink.m4 (gl_FUNC_READLINK_SEPARATE): Likewise.

13 years agorelocatable-prog-wrapper: Assume strerror() exists.
Bruno Haible [Sat, 21 May 2011 21:35:46 +0000 (23:35 +0200)]
relocatable-prog-wrapper: Assume strerror() exists.

* modules/relocatable-prog-wrapper (Files): Remove lib/strerror.c,
m4/strerror.m4.
(configure.ac): Don't invoke gl_FUNC_STRERROR_SEPARATE.
* lib/relocwrapper.c: Remove mention of strerror module.
* lib/strerror.c: Assume REPLACE_STRERROR is 1.
* m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): Remove macro.
(gl_FUNC_STRERROR): Inline it here. Don't define REPLACE_STRERROR as a
C macro.

13 years agoselect: Simplify replacement idiom.
Bruno Haible [Sat, 21 May 2011 20:28:43 +0000 (22:28 +0200)]
select: Simplify replacement idiom.

* m4/select.m4 (gl_FUNC_SELECT): Set REPLACE_SELECT also on native
Win32 platforms.
* lib/sys_select.in.h (select): Simplify accordingly.
* modules/select (Depends-on): Likewise.

13 years agomkdir-p: Simplify autoconf macro.
Bruno Haible [Sat, 21 May 2011 18:13:03 +0000 (20:13 +0200)]
mkdir-p: Simplify autoconf macro.

* m4/mkdir-p.m4 (gl_MKDIR_PARENTS): Don't require gl_FUNC_LCHMOD,
gl_FUNC_LCHOWN.

13 years agoFix some mistakes in ChangeLog entries.
Bruno Haible [Sat, 21 May 2011 16:53:58 +0000 (18:53 +0200)]
Fix some mistakes in ChangeLog entries.

13 years agostrerror_r: avoid clobbering strerror on cygwin
Eric Blake [Sat, 21 May 2011 16:08:28 +0000 (10:08 -0600)]
strerror_r: avoid clobbering strerror on cygwin

Avoid cygwin strerror_r, since it clobbers strerror buffer through
cygwin 1.7.9.  __xpg_strerror_r is okay, but if a program is
compiled on cygwin 1.7.8 or earlier, it is not available.

* lib/strerror_r.c (strerror_r): Don't use cygwin's strerror_r;
fall back instead to sys_errlist.
* modules/strerror (configure.ac): Add witness.
* tests/test-strerror_r.c (main): Enhance test.
* doc/posix-functions/strerror_r.texi (strerror_r): Document it.
* tests/test-perror2.c (main): Free memory before exit.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agomkdtemp: Use gnulib naming conventions.
Bruno Haible [Sat, 21 May 2011 13:38:22 +0000 (15:38 +0200)]
mkdtemp: Use gnulib naming conventions.

* m4/mkdtemp.m4 (gl_FUNC_MKDTEMP): Renamed from gt_FUNC_MKDTEMP.
* modules/mkdtemp (configure.ac): Update.

13 years agostrerror_r: avoid corrupting errno on Solaris
Eric Blake [Fri, 20 May 2011 23:45:13 +0000 (17:45 -0600)]
strerror_r: avoid corrupting errno on Solaris

On Solaris, a non-zero return was also reflected into errno.
Leaving errno unchanged is a useful feature worth guaranteeing.

* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Check for Solaris behavior.
* doc/posix-functions/strerror_r.texi (strerror_r): Document it.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agostrerror_r: avoid compiler warning
Eric Blake [Fri, 20 May 2011 23:33:16 +0000 (17:33 -0600)]
strerror_r: avoid compiler warning

A couple of copy-and-paste issues led to a compiler warning
during configure, detected on at least Solaris.

* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Don't return a char*.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agostrerror_r: simplify AIX code.
Eric Blake [Fri, 20 May 2011 21:19:05 +0000 (15:19 -0600)]
strerror_r: simplify AIX code.

* lib/strerror_r.c (strerror_r): Filter out buflen of 1 up front.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agotest-perror: avoid spurious failure on FreeBSD
Eric Blake [Fri, 20 May 2011 19:02:16 +0000 (13:02 -0600)]
test-perror: avoid spurious failure on FreeBSD

* modules/perror-tests (Depends-on): Add strerror, now that
strerror_r no longer pulls it in.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agostrerror_r-posix: Remove unused dependencies.
Bruno Haible [Fri, 20 May 2011 18:29:44 +0000 (20:29 +0200)]
strerror_r-posix: Remove unused dependencies.

* modules/strerror_r-posix (Depends-on): Remove strerror.
Reported by Eric Blake.

13 years agointprops: remove assumption about A|B representation
Paul Eggert [Fri, 20 May 2011 18:30:16 +0000 (11:30 -0700)]
intprops: remove assumption about A|B representation

* lib/intprops.h (_GL_BINARY_OP_OVERFLOW): Do not assume that A|B
is a valid integer if both A and B are.  Although this is true for
all known practical hosts, the C standard doesn't guarantee it,
and the code need not assume it.  Also, this change may work around
HP-UX 11.23 and IRIX 6.5 cc bugs reported by Bruno Haible in
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00426.html>.

13 years agoperror: work around FreeBSD bug
Eric Blake [Fri, 20 May 2011 17:09:53 +0000 (11:09 -0600)]
perror: work around FreeBSD bug

POSIX requires that 'errno = 0; perror ("")' print the same message
as strerror(0), but this failed if we were replacing strerror to work
around the FreeBSD bug of treating 0 as a failure.

The goal here is to _not_ replace perror on glibc, even though
strerror_r has to be replaced, because the strerror_r replacement is
only for the sake of correcting the signature rather than working
around bugs in the handling of any particular errnum value.  Recall
that $gl_cv_func_strerror_r_works is only set if the POSIX signature
was detected in the first place.

* m4/perror.m4 (gl_FUNC_PERROR): Also replace perror if strerror_r
is broken.  Move AC_LIBOBJ...
* modules/perror (configure.ac): Here.
* doc/posix-functions/perror.texi (perror): Document this.
* tests/test-perror2.c (main): Enhance test.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agotest-perror: check for strerror interactions
Eric Blake [Fri, 20 May 2011 16:42:26 +0000 (10:42 -0600)]
test-perror: check for strerror interactions

This uncovered a glibc bug, although not many people check for
perror failures, so for now I'm not working around it.
http://sourceware.org/bugzilla/show_bug.cgi?id=12792

* tests/macros.h (STREQ) Add macro.
* modules/perror-tests (Files): Add second test.
* tests/test-perror2.c (main): New file.
* doc/posix-functions/perror.texi (perror): Document glibc bug.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agotest-perror: rewrite to use init script
Eric Blake [Fri, 20 May 2011 14:57:54 +0000 (08:57 -0600)]
test-perror: rewrite to use init script

Make the test simpler, and also check for correct exit status.

* modules/perror-tests (Files): Add init.sh.
* tests/test-perror.sh: Use temporary directory.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agomaint: replace misused "a" with "an"
Jim Meyering [Fri, 20 May 2011 09:53:34 +0000 (11:53 +0200)]
maint: replace misused "a" with "an"

* doc/intprops.texi: "a integer"
* doc/regex.texi: "a explanation"
* lib/alignof.h: "a object"
* lib/argmatch.h: "a explanation"
* lib/argp-help.c: "a option" and "a OPTION_DOC"
* lib/stdint.in.h: "a integer"
* lib/userspec.c: "a owner"
* doc/gnulib.texi: Fix "a idea", and reword.

13 years agomaint: correct misuse of "a" and "an"
Jim Meyering [Thu, 19 May 2011 20:18:05 +0000 (22:18 +0200)]
maint: correct misuse of "a" and "an"

* doc/regex.texi (Collating Symbol Operators): s/an close.../a close/
* lib/argp-help.c: "an docum...": s/an/a/
* lib/argp-parse.c: "An vector": s/An/A/
* lib/execute.c: "an native": s/an/a/
* lib/spawn-pipe.c: Likewise.
* lib/gc.h: "an Gc_rc": s/an/a/
* lib/unigbrk.in.h: "an grapheme": s/an/a/
* lib/fts.c: "an stat.st_dev": s/an/a/

13 years agointprops-tests: work around HP-UX 11.23 cc bug with constants
Paul Eggert [Fri, 20 May 2011 02:16:43 +0000 (19:16 -0700)]
intprops-tests: work around HP-UX 11.23 cc bug with constants

* tests/test-intprops.c (VERIFY): New macro.
(main): Use it, instead of verify, to work around the compiler bug; see
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00401.html>.

13 years agointprops: work around IRIX 6.5 cc bug with 0u - 0u + -1
Paul Eggert [Fri, 20 May 2011 02:16:04 +0000 (19:16 -0700)]
intprops: work around IRIX 6.5 cc bug with 0u - 0u + -1

See http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00406.html
* lib/intprops.h (_GL_INT_NEGATE_CONVERT): New macro.
(_GL_INT_SIGNED, _GL_INT_MAXIMUM, _GL_DIVIDE_OVERFLOW):
(_GL_REMAINDER_OVERFLOW): Use it.

13 years agointprops-tests: revert unsigned part of previous change
Paul Eggert [Fri, 20 May 2011 02:15:19 +0000 (19:15 -0700)]
intprops-tests: revert unsigned part of previous change

* tests/test-intprops.c (UINT_MAX, ULONG_MAX, UINTMAX_MAX, U0, U1):
Remove; they weren't actually needed.  All uses of U0 and U1 removed,
and other casts to 'unsigned int' reverted to 'u' suffixes.  See
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00406.html>.

13 years agostrerror_r: Work around strerror_r() change in Cygwin 1.7.8.
Bruno Haible [Fri, 20 May 2011 02:01:43 +0000 (04:01 +0200)]
strerror_r: Work around strerror_r() change in Cygwin 1.7.8.

* lib/strerror_r.c (strerror_r) [CYGWIN]: Recognize when the system's
strerror_r() returned without filling the buffer.
Reported by Eric Blake.

13 years agostrerror_r: guarantee unchanged errno
Eric Blake [Thu, 19 May 2011 19:35:39 +0000 (13:35 -0600)]
strerror_r: guarantee unchanged errno

POSIX guarantees that strerror doesn't change errno on success,
and since we implement strerror by using strerror_r, it makes
sense to make the same guarantee for strerror_r (rather, going
one step further to say that sterror_r does not corrupt errno,
since it returns an error value explicitly).

See also http://austingroupbugs.net/view.php?id=447

* lib/strerror_r.c (strerror_r): Guarantee unchanged errno.
* lib/strerror-impl.h (strerror): Set errno to match strerror_r
failure.
* tests/test-strerror_r.c (main): Enhance test.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agostrerror_r: Reorder #if blocks.
Bruno Haible [Thu, 19 May 2011 19:59:46 +0000 (21:59 +0200)]
strerror_r: Reorder #if blocks.

* lib/strerror_r.c (strerror_r): Reorder conditionals in the function
for consistency with the previous commit.