gnulib.git
13 years agofcntl-h: fix O_ACCMODE on cygwin
Eric Blake [Fri, 8 Apr 2011 16:22:00 +0000 (10:22 -0600)]
fcntl-h: fix O_ACCMODE on cygwin

* doc/posix-headers/fcntl.texi (fcntl.h): Document the bug.
* lib/fcntl.in.h (O_ACCMODE): Fix it.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agopipe-filter: drop O_NONBLOCK workarounds
Eric Blake [Fri, 8 Apr 2011 16:44:53 +0000 (10:44 -0600)]
pipe-filter: drop O_NONBLOCK workarounds

* modules/pipe-filter-gi (Depends-on): Add fcntl-h.
* modules/pipe-filter-ii (Depends-on): Likewise.
* lib/pipe-filter-aux.h (O_NONBLOCK): Delete workaround.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agononblocking: provide O_NONBLOCK for mingw
Eric Blake [Fri, 8 Apr 2011 16:15:54 +0000 (10:15 -0600)]
nonblocking: provide O_NONBLOCK for mingw

Mingw is the only known platform that lacks O_NONBLOCK (possibly
via the alternate spelling O_NDELAY).  But mingw also lacks any
files where open() needs to enforce non-blocking behavior, and
lacks openat(), so it is relatively simple to provide a non-zero
flag.  A future patches will make use of O_NONBLOCK for pipe2.

* modules/nonblocking (Depends-on): Add open.
(configure.ac): Set new witness macro.
* m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Provide default for it.
* modules/fcntl-h (Makefile.am): Substitute it.
* lib/fcntl.in.h (O_NONBLOCK): Guarantee non-zero definition when
nonblocking module is in use.
* lib/nonblocking.c: Adjust portability test.
* lib/open.c (open): Don't let native open see gnulib flag.
* tests/test-fcntl-h.c (main): Enhance test.
* tests/test-open.h (test_open): Likewise.
* doc/posix-headers/fcntl.texi (fcntl.h): Document the replacement.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agocareadlink: fix compilation error on mingw
Eric Blake [Fri, 8 Apr 2011 14:51:56 +0000 (08:51 -0600)]
careadlink: fix compilation error on mingw

Mingw compilation failed:

lib/careadlinkat.c: In function 'careadlinkat':
lib/careadlinkat.c:143:39: error: 'const struct allocator' has no member named 'malloc'
lib/careadlinkat.c:149:66: error: 'const struct allocator' has no member named 'realloc'
lib/careadlinkat.c:152:39: error: 'const struct allocator' has no member named 'realloc'
lib/careadlinkat.c:169:27: error: 'const struct allocator' has no member named 'malloc'
make[4]: *** [careadlinkat.lo] Error 1

because "careadlinkat.h" includes enough system headers to get
replacement names defined for malloc, then "allocator.h" defines
fields with those replacement names, then undefining the macros
tries to reference missing fields.

I figured this patch is less invasive than changing the field names
in allocator.h, and possibly requiring clients to change.

* lib/careadlinkat.c (standard_allocator): Avoid renaming fields
within struct allocator.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agobinary-io: relicense under LGPLv2+
Eric Blake [Wed, 6 Apr 2011 20:33:24 +0000 (14:33 -0600)]
binary-io: relicense under LGPLv2+

* modules/binary-io (License): Relax to LGPLv2+.
Requested for libvirt, and required by pipe2.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agoverify: use _Static_assert if available
Paul Eggert [Wed, 6 Apr 2011 06:45:10 +0000 (23:45 -0700)]
verify: use _Static_assert if available

* lib/verify.h (HAVE__STATIC_ASSERT): New macro.
(verify_true, verify): Use it if available.  This generates better
diagnostics with GCC 4.6.0 and later.

13 years agoRemove leftover generated .h files after config.status changed.
Bruno Haible [Tue, 5 Apr 2011 23:55:16 +0000 (01:55 +0200)]
Remove leftover generated .h files after config.status changed.

* m4/alloca.m4 (gl_FUNC_ALLOCA): New automake conditional
GL_GENERATE_ALLOCA_H.
* modules/alloca-opt (Makefile.am): Remove alloca.h if
GL_GENERATE_ALLOCA_H evaluates to false.

* m4/argz.m4 (gl_FUNC_ARGZ): New automake conditional
GL_GENERATE_ARGZ_H.
* modules/argz (Makefile.am): Remove argz.h if GL_GENERATE_ARGZ_H
evaluates to false.

* m4/byteswap.m4 (gl_BYTESWAP): New automake conditional
GL_GENERATE_BYTESWAP_H.
* modules/byteswap (Makefile.am): Remove byteswap.h if
GL_GENERATE_BYTESWAP_H evaluates to false.

* m4/errno_h.m4 (gl_HEADER_ERRNO_H): New automake conditional
GL_GENERATE_ERRNO_H.
* modules/errno (Makefile.am): Remove errno.h if GL_GENERATE_ERRNO_H
evaluates to false.

* m4/float_h.m4 (gl_FLOAT_H): New automake conditional
GL_GENERATE_FLOAT_H.
* modules/float (Makefile.am): Remove float.h if GL_GENERATE_FLOAT_H
evaluates to false.

* m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): New automake conditional
GL_GENERATE_FNMATCH_H.
* modules/fnmatch (Makefile.am): Remove fnmatch.h if
GL_GENERATE_FNMATCH_H evaluates to false.

* m4/glob.m4 (gl_GLOB_SUBSTITUTE, gl_GLOB): New automake conditional
GL_GENERATE_GLOB_H.
* modules/glob (Makefile.am): Remove glob.h if GL_GENERATE_GLOB_H
evaluates to false.

* m4/iconv_h.m4 (gl_REPLACE_ICONV_H, gl_ICONV_H_DEFAULTS): New
automake conditional GL_GENERATE_ICONV_H.
* modules/iconv-h (Makefile.am): Remove iconv.h if GL_GENERATE_ICONV_H
evaluates to false.

* m4/netinet_in_h.m4 (gl_HEADER_NETINET_IN): New automake conditional
GL_GENERATE_NETINET_IN_H.
* modules/netinet_in (Makefile.am): Remove netinet/in.h if
GL_GENERATE_NETINET_IN_H evaluates to false.

* m4/pthread.m4 (gl_PTHREAD_CHECK): Set PTHREAD_H here. New automake
conditional GL_GENERATE_PTHREAD_H.
(gl_PTHREAD_DEFAULTS): Don't set PTHREAD_H here.
* modules/pthread (Makefile.am): Remove pthread.h if
GL_GENERATE_PTHREAD_H evaluates to false.

* m4/sched_h.m4 (gl_SCHED_H): New automake conditional
GL_GENERATE_SCHED_H.
* modules/sched (Makefile.am): Remove sched.h if GL_GENERATE_SCHED_H
evaluates to false.

* m4/selinux-context-h.m4 (gl_HEADERS_SELINUX_CONTEXT_H): New automake
conditional GL_GENERATE_SELINUX_CONTEXT_H.
* modules/selinux-h (Makefile.am): Remove selinux/context.h if
GL_GENERATE_SELINUX_CONTEXT_H evaluates to false.

* m4/stdarg.m4 (gl_STDARG_H): New automake conditional
GL_GENERATE_STDARG_H.
* modules/stdarg (Makefile.am): Remove stdarg.h if
GL_GENERATE_STDARG_H evaluates to false.

* m4/stdbool.m4 (AM_STDBOOL_H): New automake conditional
GL_GENERATE_STDBOOL_H.
* modules/stdbool (Makefile.am): Remove stdbool.h if
GL_GENERATE_STDBOOL_H evaluates to false.

* m4/stddef_h.m4 (gl_STDDEF_H): Set STDDEF_H here. New automake
conditional GL_GENERATE_STDDEF_H.
(gl_STDDEF_H_DEFAULTS): Don't set STDDEF_H here.
* modules/stddef (Makefile.am): Remove stddef.h if
GL_GENERATE_STDDEF_H evaluates to false.

* m4/stdint.m4 (gl_STDINT_H): New automake conditional
GL_GENERATE_STDINT_H.
* modules/stdint (Makefile.am): Remove stdint.h if
GL_GENERATE_STDINT_H evaluates to false.

* m4/sysexits.m4 (gl_SYSEXITS): New automake conditional
GL_GENERATE_SYSEXITS_H.
* modules/sysexits (Makefile.am): Remove sysexits.h if
GL_GENERATE_SYSEXITS_H evaluates to false.

Reported by Karl Berry and Ralf Wildenhues.

13 years agoEnsure to rebuild generated .h files when config.status has changed.
Bruno Haible [Sun, 3 Apr 2011 21:07:25 +0000 (23:07 +0200)]
Ensure to rebuild generated .h files when config.status has changed.

* modules/arpa_inet (Makefile.am): Add dependency from .h file to
config.status.
* 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/glob (Makefile.am): Likewise.
* modules/iconv-h (Makefile.am): Likewise.
* modules/inttypes (Makefile.am): Likewise.
* modules/langinfo (Makefile.am): Likewise.
* modules/locale (Makefile.am): Likewise.
* modules/math (Makefile.am): Likewise.
* modules/netdb (Makefile.am): Likewise.
* modules/netinet_in (Makefile.am): Likewise.
* modules/poll-h (Makefile.am): Likewise.
* modules/pthread (Makefile.am): Likewise.
* modules/pty (Makefile.am): Likewise.
* modules/sched (Makefile.am): Likewise.
* modules/search (Makefile.am): Likewise.
* modules/selinux-h (Makefile.am): Likewise.
* modules/signal (Makefile.am): Likewise.
* modules/spawn (Makefile.am): Likewise.
* modules/stdarg (Makefile.am): Likewise.
* modules/stdbool (Makefile.am): Likewise.
* modules/stddef (Makefile.am): Likewise.
* modules/stdint (Makefile.am): Likewise.
* modules/stdio (Makefile.am): Likewise.
* modules/stdlib (Makefile.am): Likewise.
* modules/string (Makefile.am): Likewise.
* modules/strings (Makefile.am): Likewise.
* modules/sys_file (Makefile.am): Likewise.
* modules/sys_ioctl (Makefile.am): Likewise.
* modules/sys_select (Makefile.am): Likewise.
* modules/sys_socket (Makefile.am): Likewise.
* modules/sys_stat (Makefile.am): Likewise.
* modules/sys_time (Makefile.am): Likewise.
* modules/sys_times (Makefile.am): Likewise.
* modules/sys_utsname (Makefile.am): Likewise.
* modules/sys_wait (Makefile.am): Likewise.
* modules/sysexits (Makefile.am): Likewise.
* modules/termios (Makefile.am): Likewise.
* modules/time (Makefile.am): Likewise.
* modules/unistd (Makefile.am): Likewise.
* modules/wchar (Makefile.am): Likewise.
* modules/wctype-h (Makefile.am): Likewise.
Reported by Karl Berry, Eric Blake, and Ralf Wildenhues.

13 years agopipe2: Relicense under LGPLv2+.
Bruno Haible [Tue, 5 Apr 2011 23:46:12 +0000 (01:46 +0200)]
pipe2: Relicense under LGPLv2+.

* modules/pipe2 (License): Change to LGPLv2+.
Requested by Eric Blake, for libvirt.

13 years agobootstrap: compute gnulib_extra_files after updating build_aux
Bruce Korb [Tue, 5 Apr 2011 22:19:13 +0000 (15:19 -0700)]
bootstrap: compute gnulib_extra_files after updating build_aux

* build-aux/bootstrap (gnulib_extra_files): bootstrap.conf may
change build_aux or also supply gnulib_extra_files.  Handle correctly.

13 years agobootstrap: preserve git whitelist item sorting
Eric Blake [Tue, 5 Apr 2011 19:53:20 +0000 (13:53 -0600)]
bootstrap: preserve git whitelist item sorting

In .gitignore, it is handy to do:

/m4/*
!/m4/file.m4

to whitelist just file.m4 while ignoring all other files.  But
! sorts too early.

* build-aux/bootstrap (sort_patterns): New function.
(insert_sorted_if_absent): Use it to sink ! lines to the bottom.

13 years agomaint.mk: Don't trigger sc_space_tab check.
Simon Josefsson [Tue, 5 Apr 2011 20:32:17 +0000 (22:32 +0200)]
maint.mk: Don't trigger sc_space_tab check.

* top/maint.mk (sc_prohibit_empty_lines_at_EOF): Don't trigger
sc_space_tab check.

13 years agoareadlink, areadlinkat: rewrite in terms of careadlinkat
Paul Eggert [Tue, 5 Apr 2011 16:52:32 +0000 (09:52 -0700)]
areadlink, areadlinkat: rewrite in terms of careadlinkat

* lib/areadlink.c, lib/areadlinkat.c: Include careadlinkat.h
instead of errno.h, limits.h, stdint.h, stdlib.h, string.h, unistd.h.
(SSIZE_MAX, INITIAL_BUF_SIZE): Remove.
(malloc, realloc): Remove #undefs.
(areadlink, areadlinkat): Rewrite in terms of careadlinkat.
* modules/areadlink (Depends-on): Add careadlinkat.  Remove
readlink, ssize_t, stdint, unistd.
* modules/areadlinkat (Depends-on): Add careadlinkat.  Remove
areadlink, stdint.

careadlinkat: new module
* lib/allocator.h, lib/careadlinkat.h, lib/careadlinkat.c:
* modules/careadlinkat: New files, written by me with
a review and feedback from Ben Pfaff in
<http://lists.gnu.org/archive/html/bug-gnulib/2011-04/msg00008.html>.

13 years agoautoupdate
Karl Berry [Sat, 2 Apr 2011 16:22:13 +0000 (09:22 -0700)]
autoupdate

13 years agowmemchr, wcschr, wcsrchr, wcspbrk, wcsstr: Avoid errors in C++ mode.
Bruno Haible [Fri, 1 Apr 2011 22:01:13 +0000 (00:01 +0200)]
wmemchr, wcschr, wcsrchr, wcspbrk, wcsstr: Avoid errors in C++ mode.

* lib/wchar.in.h (wmemchr, wcschr, wcsrchr, wcspbrk, wcsstr): Use
_GL_CXXALIAS_SYS_CAST2 instead of _GL_CXXALIAS_SYS. On glibc >= 2.10
systems, use _GL_CXXALIASWARN1 instead of _GL_CXXALIASWARN.
Reported by Bruce Korb <bruce.korb@gmail.com>.

13 years agowcpcpy, wcpncpy: Ensure declaration on glibc >= 2.13 systems.
Bruno Haible [Fri, 1 Apr 2011 21:23:34 +0000 (23:23 +0200)]
wcpcpy, wcpncpy: Ensure declaration on glibc >= 2.13 systems.

* m4/wcpcpy.m4 (gl_FUNC_WCPCPY): Require AC_USE_SYSTEM_EXTENSIONS.
* m4/wcpncpy.m4 (gl_FUNC_WCPNCPY): Likewise.
* modules/wcpcpy (Depends-on): Add extensions.
* modules/wcpncpy (Depends-on): Likewise.
* doc/posix-functions/wcpcpy.texi: Mention missing declaration on glibc
systems.
* doc/posix-functions/wcpncpy.texi: Likewise.
* doc/posix-functions/wcwidth.texi: Likewise.

13 years agononblocking: fix mingw test failures
Eric Blake [Thu, 31 Mar 2011 21:28:37 +0000 (15:28 -0600)]
nonblocking: fix mingw test failures

Actually testing on mingw uncovered a few more problems.

* lib/nonblocking.c (set_nonblocking_flag): Succeed when clearing
non-blocking flag on regular file.
(get_nonblocking_flag): Set errno on invalid fd.
* tests/test-nonblocking.c (main): Avoid test failure on
directories if fchdir is not active.
* modules/nonblocking-tests (Depends-on): Drop unused dependency.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agoFix bug with gl_WARN_ON_USE_PREPARE, introduced on 2011-01-23.
Bruno Haible [Thu, 31 Mar 2011 16:21:36 +0000 (18:21 +0200)]
Fix bug with gl_WARN_ON_USE_PREPARE, introduced on 2011-01-23.

* m4/gnulib-common.m4 (gl_ASSERT_NO_GNULIB_POSIXCHECK): Hide the
gl_WARN_ON_USE_PREPARE definition from 'aclocal'.
Reported by Simon Josefsson <simon@josefsson.org>.

13 years agononblocking: Tweak comment.
Bruno Haible [Thu, 31 Mar 2011 16:07:13 +0000 (18:07 +0200)]
nonblocking: Tweak comment.

13 years agononblocking: new module
Eric Blake [Thu, 31 Mar 2011 04:07:20 +0000 (22:07 -0600)]
nonblocking: new module

* modules/nonblocking: New module.
* modules/nonblocking-tests: Likewise.
* lib/nonblocking.h: New file.
* lib/nonblocking.c: Likewise.
* tests/test-nonblocking.c: New test.
* lib/ioctl.c (ioctl) [mingw]: Update comment.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agoFix recent ChangeLog entries.
Bruno Haible [Thu, 31 Mar 2011 09:03:21 +0000 (11:03 +0200)]
Fix recent ChangeLog entries.

13 years agostdio: Avoid GCC >= 4.4 warnings when using %lld and similar on mingw.
Bruno Haible [Thu, 31 Mar 2011 00:52:06 +0000 (02:52 +0200)]
stdio: Avoid GCC >= 4.4 warnings when using %lld and similar on mingw.

* lib/stdio.in.h (_GL_ATTRIBUTE_FORMAT_PRINTF): Use 'gnu_printf' format
instead of 'printf' format for GCC >= 4.4.
(_GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM): New macro.
(fprintf, printf, vfprintf, vprintf): Declare with
_GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM when the function ends up calling
the system's vfprintf() function.
Reported by Daniel P. Berrange <berrange@redhat.com> via Eric Blake.

13 years agopassfd: fix scoping bug
Eric Blake [Thu, 31 Mar 2011 00:15:33 +0000 (18:15 -0600)]
passfd: fix scoping bug

The scoping bug was the cause of the NetBSD hang.

* lib/passfd.c (sendfd, passfd): Don't let buf go out of scope
before sendmsg/recvmsg.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agopassfd: standardize coding conventions
Eric Blake [Wed, 30 Mar 2011 21:30:13 +0000 (15:30 -0600)]
passfd: standardize coding conventions

* m4/afunix.m4 (gl_SOCKET_AFUNIX): Drop check for something that
can be learned at compile time.
* lib/passfd.c (MSG_CMSG_CLOEXEC): Reduce number of in-function
ifdefs.
(passfd, recvfd): Follow gnulib code conventions.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agopassfd: fix incorrect sendmsg arguments
Eric Blake [Wed, 30 Mar 2011 20:46:02 +0000 (14:46 -0600)]
passfd: fix incorrect sendmsg arguments

The unit test hung on NetBSD, which pointed out a couple of bugs.

* lib/passfd.c (sendfd): Avoid uninitialized msg_flags field, and
incorrect msg_controllen value.
* modules/passfd-tests (Depends-on): Check for alarm.
* tests/test-passfd.c (main) [HAVE_DECL_ALARM]: Avoid hanging test.
Reported by Bastien ROUCARIES.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agoc-strcasestr: Relicense under LGPLv2+.
Bruno Haible [Wed, 30 Mar 2011 23:38:14 +0000 (01:38 +0200)]
c-strcasestr: Relicense under LGPLv2+.

* modules/c-strcasestr (License): Change to LGPLv2+.
Requested by Eric Blake, for libvirt.

13 years agodoc: update users.txt
Simon Josefsson [Wed, 30 Mar 2011 18:59:15 +0000 (20:59 +0200)]
doc: update users.txt

* users.txt: Add libidn2.  Fix libtasn1 link.

13 years agotests: readlink* ("",... fails with EINVAL on newer kernels
Jim Meyering [Wed, 30 Mar 2011 06:46:22 +0000 (08:46 +0200)]
tests: readlink* ("",... fails with EINVAL on newer kernels

readlink and readlinkat have typically failed with ENOENT for
the invalid, empty file name,  "".  However, with the advent
of linux-2.6.39, they fail with EINVAL.
* tests/test-areadlink.h (test_areadlink): Also accept EINVAL
when operating on the empty file name.
* tests/test-readlink.h (test_readlink): Likewise.

13 years agoRelicense some modules under LGPLv2+, for libidn2.
Bruno Haible [Tue, 29 Mar 2011 23:42:23 +0000 (01:42 +0200)]
Relicense some modules under LGPLv2+, for libidn2.

* modules/array-mergesort (License): Change to LGPLv2+.
* modules/c-strcaseeq (License): Likewise.
* modules/striconveh (License): Likewise.
* modules/striconveha (License): Likewise.
* modules/uniconv/base (License): Likewise.
* modules/uniconv/u8-conv-from-enc (License): Likewise.
* modules/uniconv/u8-strconv-from-enc (License): Likewise.
* modules/uniconv/u8-strconv-from-locale (License): Likewise.
* modules/unictype/base (License): Likewise.
* modules/unictype/bidiclass-of (License): Likewise.
* modules/unictype/category-M (License): Likewise.
* modules/unictype/category-none (License): Likewise.
* modules/unictype/category-of (License): Likewise.
* modules/unictype/category-test (License): Likewise.
* modules/unictype/category-test-withtable (License): Likewise.
* modules/unictype/combining-class (License): Likewise.
* modules/unictype/joiningtype-of (License): Likewise.
* modules/unictype/scripts (License): Likewise.
* modules/uninorm/base (License): Likewise.
* modules/uninorm/canonical-decomposition (License): Likewise.
* modules/uninorm/composition (License): Likewise.
* modules/uninorm/decompose-internal (License): Likewise.
* modules/uninorm/decomposition-table (License): Likewise.
* modules/uninorm/nfc (License): Likewise.
* modules/uninorm/nfd (License): Likewise.
* modules/uninorm/u32-normalize (License): Likewise.
* modules/unistr/base (License): Likewise.
* modules/unistr/u32-cpy (License): Likewise.
* modules/unistr/u32-mbtouc-unsafe (License): Likewise.
* modules/unistr/u32-to-u8 (License): Likewise.
* modules/unistr/u32-uctomb (License): Likewise.
* modules/unistr/u8-check (License): Likewise.
* modules/unistr/u8-mblen (License): Likewise.
* modules/unistr/u8-mbtouc (License): Likewise.
* modules/unistr/u8-mbtouc-unsafe (License): Likewise.
* modules/unistr/u8-mbtoucr (License): Likewise.
* modules/unistr/u8-prev (License): Likewise.
* modules/unistr/u8-strlen (License): Likewise.
* modules/unistr/u8-to-u32 (License): Likewise.
* modules/unistr/u8-uctomb (License): Likewise.
* modules/unitypes (License): Likewise.
Requested by Simon Josefsson.

13 years agolib-symbol-visibility: Add a notice.
Simon Josefsson [Tue, 29 Mar 2011 18:58:49 +0000 (20:58 +0200)]
lib-symbol-visibility: Add a notice.

* modules/lib-symbol-visibility (Notice): New field.

13 years agoautoupdate
Karl Berry [Tue, 29 Mar 2011 16:39:10 +0000 (09:39 -0700)]
autoupdate

13 years agogetaddrinfo: Doc fix.
Bruno Haible [Tue, 29 Mar 2011 12:54:31 +0000 (14:54 +0200)]
getaddrinfo: Doc fix.

* doc/posix-functions/getaddrinfo.texi: Mention Windows problem in the
section "fixed in Gnulib".

13 years agogetaddrinfo: Doc fix.
Simon Josefsson [Mon, 28 Mar 2011 19:31:46 +0000 (21:31 +0200)]
getaddrinfo: Doc fix.

* doc/posix-functions/getaddrinfo.texi: Drop netdb.h discussion.
Reported by Bastien ROUCARIES <roucaries.bastien@gmail.com>.

13 years agounictype/property-byname: Reduce the number of load-time relocations.
Bruno Haible [Sat, 26 Mar 2011 14:36:15 +0000 (15:36 +0100)]
unictype/property-byname: Reduce the number of load-time relocations.

* lib/unictype/pr_byname.c: Include <stdlib.h>.
(UC_PROPERTY_INDEX_*): New enumeration values.
(uc_property_byname): Convert an index from the lookup table to an
uc_property_t.
* lib/unictype/pr_byname.gperf: Store indices instead of uc_property_t
values.

13 years agounictype/property-byname: Allow omitted word separators and aliases.
Bruno Haible [Sat, 26 Mar 2011 13:54:23 +0000 (14:54 +0100)]
unictype/property-byname: Allow omitted word separators and aliases.

* lib/unictype/pr_byname.gperf: Add property names without word
separators. Add aliases from Unicode 6.0 PropertyAliases.txt, except
for 'space'.

13 years agounictype/joininggroup-byname: Allow hyphens, omitted word separators.
Bruno Haible [Sat, 26 Mar 2011 13:10:30 +0000 (14:10 +0100)]
unictype/joininggroup-byname: Allow hyphens, omitted word separators.

* lib/unictype/joininggroup_byname.c (uc_joining_group_byname): Convert
also hyphens to space.
* lib/unictype/joininggroup_byname.gperf: Recognize the names also
without spaces.
* tests/unictype/test-joininggroup_byname.c (main): Add more tests.

13 years agounictype/joiningtype-byname: Recognize long names as well.
Bruno Haible [Sat, 26 Mar 2011 12:38:00 +0000 (13:38 +0100)]
unictype/joiningtype-byname: Recognize long names as well.

* lib/unictype.in.h (uc_joiningtype_class_byname): Allow argument to be
a long name.
* lib/unictype/joiningtype_byname.c: Include <string.h>,
unictype/joiningtype_byname.h.
(uc_joiningtype_class_byname): Use uc_joining_type_lookup.
* lib/unictype/joiningtype_byname.gperf: New file.
* modules/unictype/joiningtype-byname (Files): Add
lib/unictype/joiningtype_byname.gperf.
(Depends-on): Add gperf.
(Makefile.am): Add rule for generating unictype/joiningtype_byname.h.
* tests/unictype/test-joiningtype_byname.c (main): Test the recognition of
long names.

13 years agoTests for module 'unictype/joiningtype-longname'.
Bruno Haible [Sat, 26 Mar 2011 12:21:08 +0000 (13:21 +0100)]
Tests for module 'unictype/joiningtype-longname'.

* modules/unictype/joiningtype-longname-tests: New file.
* tests/unictype/test-joiningtype_longname.c: New file.

13 years agoNew module 'unictype/joiningtype-longname'.
Bruno Haible [Sat, 26 Mar 2011 12:18:10 +0000 (13:18 +0100)]
New module 'unictype/joiningtype-longname'.

* lib/unictype.in.h (uc_joiningtype_class_long_name): New declaration.
* lib/unictype/joiningtype_longname.c: New file.
* modules/unictype/joiningtype-longname: New file.
* modules/unictype/joiningtype-all (Depends-on): Add
unictype/joiningtype-longname.

13 years agounictype/bidiclass-byname: Recognize long names as well.
Bruno Haible [Sat, 26 Mar 2011 11:49:04 +0000 (12:49 +0100)]
unictype/bidiclass-byname: Recognize long names as well.

* lib/unictype.in.h (uc_bidi_class_byname): Allow argument to be a long
name.
* lib/unictype/bidi_byname.c: Include <string.h>,
unictype/bidi_byname.h.
(uc_bidi_class_byname): Use uc_bidi_class_lookup.
* lib/unictype/bidi_byname.gperf: New file.
* modules/unictype/bidiclass-byname (Files): Add
lib/unictype/bidi_byname.gperf.
(Depends-on): Add gperf.
(Makefile.am): Add rule for generating unictype/bidi_byname.h.
* tests/unictype/test-bidi_byname.c (main): Test the recognition of
long names.

13 years agoTests for module 'unictype/bidiclass-longname'.
Bruno Haible [Sat, 26 Mar 2011 11:21:17 +0000 (12:21 +0100)]
Tests for module 'unictype/bidiclass-longname'.

* modules/unictype/bidiclass-longname-tests: New file.
* tests/unictype/test-bidi_longname.c: New file.

13 years agoNew module 'unictype/bidiclass-longname'.
Bruno Haible [Sat, 26 Mar 2011 11:20:22 +0000 (12:20 +0100)]
New module 'unictype/bidiclass-longname'.

* lib/unictype.in.h (uc_bidi_class_long_name): New declaration.
* lib/unictype/bidi_longname.c: New file.
* modules/unictype/bidiclass-longname: New file.
* modules/unictype/bidiclass-all (Depends-on): Add
unictype/bidiclass-longname.

13 years agounictype/bidi*: Rename modules, part 2.
Bruno Haible [Sat, 26 Mar 2011 11:16:22 +0000 (12:16 +0100)]
unictype/bidi*: Rename modules, part 2.

13 years agounictype/bidi*: Rename modules.
Bruno Haible [Sat, 26 Mar 2011 10:51:52 +0000 (11:51 +0100)]
unictype/bidi*: Rename modules.

* modules/unictype/bidiclass-all: Renamed from
modules/unictype/bidicategory-all.
* modules/unictype/bidiclass-name: Renamed from
modules/unictype/bidiclass-name.
(Description): Update.
* modules/unictype/bidiclass-name-tests: Renamed from
modules/unictype/bidicategory-name-tests.
* modules/unictype/bidiclass-byname: Renamed from
modules/unictype/bidicategory-byname.
(Description): Update.
* modules/unictype/bidiclass-byname-tests: Renamed from
modules/unictype/bidicategory-byname-tests.
* modules/unictype/bidiclass-of: Renamed from
modules/unictype/bidicategory-of.
(Description): Update.
* modules/unictype/bidiclass-of-tests: Renamed from
modules/unictype/bidicategory-of-tests.
* modules/unictype/bidiclass-test: Renamed from
modules/unictype/bidicategory-test.
(Description): Update.
* modules/unictype/bidiclass-test-tests: Renamed from
modules/unictype/bidicategory-test-tests.
* modules/unictype/bidicategory-all: New file, a simple redirection.
* modules/unictype/bidicategory-name: Likewise.
* modules/unictype/bidicategory-byname: Likewise.
* modules/unictype/bidicategory-of: Likewise.
* modules/unictype/bidicategory-test: Likewise.
* modules/unictype/property-bidi-* (Dependencies): Update.
* lib/unictype/bidi_*.c: Update comment.

13 years agounictype/bidi*: Rename functions, part 2.
Bruno Haible [Sat, 26 Mar 2011 10:37:18 +0000 (11:37 +0100)]
unictype/bidi*: Rename functions, part 2.

* modules/unictype/bidicategory-name (configure.ac): Update required
libunistring version.
* modules/unictype/bidicategory-byname (configure.ac): Likewise.

13 years agoNew module 'unictype/combining-class-all'.
Bruno Haible [Sat, 26 Mar 2011 01:44:57 +0000 (02:44 +0100)]
New module 'unictype/combining-class-all'.

* modules/unictype/combining-class-all: New file.

13 years agoTests for module 'unictype/combining-class-byname'.
Bruno Haible [Sat, 26 Mar 2011 01:40:42 +0000 (02:40 +0100)]
Tests for module 'unictype/combining-class-byname'.

* modules/unictype/combining-class-byname-tests: New file.
* tests/unictype/test-combiningclass_byname.c: New file.

13 years agoNew module 'unictype/combining-class-byname'.
Bruno Haible [Sat, 26 Mar 2011 01:39:24 +0000 (02:39 +0100)]
New module 'unictype/combining-class-byname'.

* lib/unictype.in.h (uc_combining_class_byname): New declaration.
* lib/unictype/combiningclass_byname.c: New file.
* lib/unictype/combiningclass_byname.gperf: New file.
* modules/unictype/combining-class-byname: New file.

13 years agoTests for module 'unictype/combining-class-longname'.
Bruno Haible [Sat, 26 Mar 2011 00:10:26 +0000 (01:10 +0100)]
Tests for module 'unictype/combining-class-longname'.

* modules/unictype/combining-class-longname-tests: New file.
* tests/unictype/test-combiningclass_longname.c: New file.

13 years agoNew module 'unictype/combining-class-longname'.
Bruno Haible [Sat, 26 Mar 2011 00:03:10 +0000 (01:03 +0100)]
New module 'unictype/combining-class-longname'.

* lib/unictype.in.h (uc_combining_class_long_name): New declaration.
* lib/unictype/combiningclass_longname.c: New file.
* modules/unictype/combining-class-longname: New file.

13 years agoTests for module 'unictype/combining-class-name'.
Bruno Haible [Fri, 25 Mar 2011 23:54:11 +0000 (00:54 +0100)]
Tests for module 'unictype/combining-class-name'.

* modules/unictype/combining-class-name-tests: New file.
* tests/unictype/test-combiningclass_name.c: New file.

13 years agoNew module 'unictype/combining-class-name'.
Bruno Haible [Fri, 25 Mar 2011 23:52:51 +0000 (00:52 +0100)]
New module 'unictype/combining-class-name'.

* lib/unictype.in.h (uc_combining_class_name): New declaration.
* lib/unictype/combiningclass_name.c: New file.
* modules/unictype/combining-class-name: New file.

13 years agounictype/combining-class: Rename source files.
Bruno Haible [Sat, 26 Mar 2011 01:18:11 +0000 (02:18 +0100)]
unictype/combining-class: Rename source files.

* lib/gen-uni-tables.c (main): Emit unictype/combiningclass.h instead
of unictype/combining.h.
* lib/unictype/combiningclass.c: Renamed from lib/unictype/combining.c.
Update.
* lib/unictype/combiningclass.h: Renamed from lib/unictype/combining.h.
* modules/unictype/combining-class (Description): Fix.
(Files, Makefile.am): Update.
* tests/unictype/test-combiningclass.c: Renamed from
tests/unictype/test-combining.c.
* modules/unictype/combining-class-tests (Files, Makefile.am): Update.

13 years agounictype: Update list of canonical combining classes.
Bruno Haible [Fri, 25 Mar 2011 23:49:40 +0000 (00:49 +0100)]
unictype: Update list of canonical combining classes.

* lib/unictype.in.h (UC_CCC_ATA): New enumeration value.

13 years agounictype/category-byname: Recognize long names as well.
Bruno Haible [Fri, 25 Mar 2011 22:23:09 +0000 (23:23 +0100)]
unictype/category-byname: Recognize long names as well.

* lib/unictype.in.h (uc_general_category_byname): Allow argument to be
a long name.
* lib/unictype/categ_byname.c: Include <stdlib.h>, <string.h>,
unictype/categ_byname.h.
(UC_CATEGORY_INDEX_*): New enumeration values.
(uc_general_category_byname): Use uc_general_category_lookup and
convert from index to value.
* lib/unictype/categ_byname.gperf: New file.
* modules/unictype/category-byname (Files): Add
lib/unictype/categ_byname.gperf.
(Depends-on): Add gperf.
(Makefile.am): Add rule for generating unictype/categ_byname.h.
* tests/unictype/test-categ_byname.c (main): Test the recognition of
long names.

13 years agoTests for module 'unictype/category-longname'.
Bruno Haible [Fri, 25 Mar 2011 22:15:18 +0000 (23:15 +0100)]
Tests for module 'unictype/category-longname'.

* modules/unictype/category-longname-tests: New file.
* tests/unictype/test-categ_longname.c: New file.

13 years agoNew module 'unictype/category-longname'.
Bruno Haible [Fri, 25 Mar 2011 22:14:10 +0000 (23:14 +0100)]
New module 'unictype/category-longname'.

* lib/unictype.in.h (uc_general_category_long_name): New declaration.
* lib/unictype/categ_longname.c: New file.
* modules/unictype/category-longname: New file.
* modules/unictype/category-all (Depends-on): Add it.

13 years agoNew module 'unictype/category-LC', part 2.
Bruno Haible [Fri, 25 Mar 2011 21:25:48 +0000 (22:25 +0100)]
New module 'unictype/category-LC', part 2.

13 years agoTests for module 'unictype/category-LC'.
Bruno Haible [Fri, 25 Mar 2011 19:29:58 +0000 (20:29 +0100)]
Tests for module 'unictype/category-LC'.

* modules/unictype/category-LC-tests: New file.
* tests/unictype/test-categ_LC.c: New file, automatically generated.

13 years agoNew module 'unictype/category-LC'.
Bruno Haible [Fri, 25 Mar 2011 19:23:43 +0000 (20:23 +0100)]
New module 'unictype/category-LC'.

* lib/unictype.in.h (UC_CATEGORY_MASK_LC): New enumeration value.
(UC_CATEGORY_LC): New declaration.
(UC_CASED_LETTER): New macro.
* lib/gen-uni-tables.c (is_category_LC): New function.
(output_categories): Also handle category LC.
(UC_CATEGORY_MASK_LC): New enumeration value.
(general_category_byname): Also handle category LC.
* lib/unictype/categ_LC.c: New file.
* lib/unictype/categ_LC.h: New file, automatically generated.
* lib/unictype/categ_name.c (uc_general_category_name): Also handle
category LC.
* lib/unictype/categ_byname.c (uc_general_category_byname): Likewise.
* modules/unictype/category-LC: New file.
* modules/unictype/category-all (Depends-on): Add unictype/category-LC.

13 years agoxmalloc: revert yesterday's regression
Eric Blake [Fri, 25 Mar 2011 16:45:39 +0000 (10:45 -0600)]
xmalloc: revert yesterday's regression

* lib/xmalloc.c (xrealloc): Once again forward xrealloc(NULL,0) to
realloc's underlying behavior (allowing allocation of zero-size
objects, especially if malloc-gnu is also in use).

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agomaint.mk: add missing version to VC-tag
Reuben Thomas [Fri, 25 Mar 2011 01:07:30 +0000 (01:07 +0000)]
maint.mk: add missing version to VC-tag

* top/maint.mk: git tag was missing actual tag name; add it.

13 years agovalgrind: do leak checking, and exit with code 1 on error (not 0)
Reuben Thomas [Thu, 17 Mar 2011 07:43:08 +0000 (07:43 +0000)]
valgrind: do leak checking, and exit with code 1 on error (not 0)

* m4/valgrind-tests.m4: Add `--error-exitcode=1 --leak-check=full'
to VALGRIND.

13 years agoposix-modules: say what it does.
Reuben Thomas [Fri, 25 Mar 2011 02:29:53 +0000 (03:29 +0100)]
posix-modules: say what it does.

* posix-modules: Add a line to the --help output saying what it does.

13 years agoxmalloc: Do not leak if underlying realloc is C99 compatible.
Paul Eggert [Thu, 24 Mar 2011 20:10:38 +0000 (13:10 -0700)]
xmalloc: Do not leak if underlying realloc is C99 compatible.

* lib/xmalloc.c (xrealloc): If N is zero, call 'free' directly.
This avoids a leak on C99-based systems.  See
<http://lists.gnu.org/archive/html/bug-gnulib/2011-03/msg00243.html>.

13 years agorealloc: document portability problem
Eric Blake [Thu, 24 Mar 2011 19:38:09 +0000 (13:38 -0600)]
realloc: document portability problem

* doc/posix-functions/realloc.texi (realloc): Mention pitfalls of
passing 0 size to realloc.

Signed-off-by: Eric Blake <eblake@redhat.com>
13 years agoautoupdate
Karl Berry [Thu, 24 Mar 2011 13:42:48 +0000 (06:42 -0700)]
autoupdate

13 years agodoc: add cvsps and tmpwatch to users.txt
Ben Walton [Wed, 23 Mar 2011 13:15:50 +0000 (09:15 -0400)]
doc: add cvsps and tmpwatch to users.txt

* users.txt: Add cvsps and tmpwatch.

Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
13 years agodoc: update users.txt
Matt Rice [Wed, 23 Mar 2011 08:42:43 +0000 (09:42 +0100)]
doc: update users.txt

* users.txt: Add gdb.

13 years agodoc: update users.txt
Jim Meyering [Wed, 23 Mar 2011 06:41:18 +0000 (07:41 +0100)]
doc: update users.txt

Looking through matches up to the following URL (there are still
several more pages), I found several projects that use gnulib:
http://codesearch.google.com/codesearch?start=50&q=gnulib-cache\.m4
* users.txt: Add nagios plugins (nagiosplug), acct, gengetopt,
gmediaserver, gtkreindeer, jugtail, libunistring, mini-httpd, reindeer.

13 years agoautoupdate
Karl Berry [Tue, 22 Mar 2011 23:55:41 +0000 (16:55 -0700)]
autoupdate

13 years agounictype/bidi*: Rename functions.
Bruno Haible [Tue, 22 Mar 2011 23:32:49 +0000 (00:32 +0100)]
unictype/bidi*: Rename functions.

* lib/unictype.in.h (uc_bidi_class_name, uc_bidi_class_byname,
uc_bidi_class, uc_is_bidi_class): New declarations.
* lib/unictype/bidi_byname.c (uc_bidi_class_byname): Renamed from
uc_bidi_category_byname.
(uc_bidi_category_byname): New function.
* lib/unictype/bidi_name.c (u_bidi_class_name): Renamed from
u_bidi_category_name.
(uc_bidi_class_name): Renamed from uc_bidi_category_name.
(uc_bidi_category_name): New function.
* lib/unictype/bidi_of.c (uc_bidi_class): Renamed from
uc_bidi_category.
(uc_bidi_category): New function.
* lib/unictype/bidi_test.c (uc_is_bidi_class): Renamed from
uc_is_bidi_category. Invoke uc_bidi_class.
(uc_is_bidi_category): New function.
* tests/unictype/test-bidi_byname.c (main): Test uc_bidi_class_byname
instead of uc_bidi_category_byname.
* tests/unictype/test-bidi_name.c (main): Test uc_bidi_class_name
instead of uc_bidi_category_name.
* tests/unictype/test-bidi_of.c (main): Test uc_bidi_class instead of
uc_bidi_category.
* tests/unictype/test-bidi_test.c (main): Test uc_is_bidi_class
instead of uc_is_bidi_category.

13 years agoNew module 'unictype/joininggroup-all'.
Bruno Haible [Mon, 21 Mar 2011 22:15:46 +0000 (23:15 +0100)]
New module 'unictype/joininggroup-all'.

* modules/unictype/joininggroup-all: New file.

13 years agoTests for module 'unictype/joininggroup-of'.
Bruno Haible [Mon, 21 Mar 2011 22:14:43 +0000 (23:14 +0100)]
Tests for module 'unictype/joininggroup-of'.

* modules/unictype/joininggroup-of-tests: New file.
* tests/unictype/test-joininggroup_of.c: New file.
* tests/unictype/test-joininggroup_of.h: New file, automatically
generated by gen-uni-tables.

13 years agoNew module 'unictype/joininggroup-of'.
Bruno Haible [Mon, 21 Mar 2011 22:12:53 +0000 (23:12 +0100)]
New module 'unictype/joininggroup-of'.

* modules/unictype/joininggroup-of: New file.
* lib/unictype/joininggroup_of.c: New file.
* lib/unictype/joininggroup_of.h: New file, automatically generated by
gen-uni-tables.

13 years agoTests for module 'unictype/joininggroup-byname'.
Bruno Haible [Mon, 21 Mar 2011 22:11:15 +0000 (23:11 +0100)]
Tests for module 'unictype/joininggroup-byname'.

* modules/unictype/joininggroup-byname-tests: New file.
* tests/unictype/test-joininggroup_byname.c: New file.

13 years agoNew module 'unictype/joininggroup-byname'.
Bruno Haible [Mon, 21 Mar 2011 22:10:13 +0000 (23:10 +0100)]
New module 'unictype/joininggroup-byname'.

* modules/unictype/joininggroup-byname: New file.
* lib/unictype/joininggroup_byname.c: New file.
* lib/unictype/joininggroup_byname.gperf: New file.

13 years agoTests for module 'unictype/joininggroup-name'.
Bruno Haible [Mon, 21 Mar 2011 22:08:59 +0000 (23:08 +0100)]
Tests for module 'unictype/joininggroup-name'.

* modules/unictype/joininggroup-name-tests: New file.
* tests/unictype/test-joininggroup_name.c: New file.

13 years agoNew module 'unictype/joininggroup-name'.
Bruno Haible [Mon, 21 Mar 2011 22:07:08 +0000 (23:07 +0100)]
New module 'unictype/joininggroup-name'.

* modules/unictype/joininggroup-name: New file.
* lib/unictype/joininggroup_name.c: New file.
* lib/unictype/joininggroup_name.h: New file.

13 years agoNew module 'unictype/joiningtype-all'.
Bruno Haible [Mon, 21 Mar 2011 22:05:18 +0000 (23:05 +0100)]
New module 'unictype/joiningtype-all'.

* modules/unictype/joiningtype-all: New file.

13 years agoTests for module 'unictype/joiningtype-of'.
Bruno Haible [Mon, 21 Mar 2011 22:04:10 +0000 (23:04 +0100)]
Tests for module 'unictype/joiningtype-of'.

* modules/unictype/joiningtype-of-tests: New file.
* tests/unictype/test-joiningtype_of.c: New file.
* tests/unictype/test-joiningtype_of.h: New file, automatically
generated by gen-uni-tables.

13 years agoNew module 'unictype/joiningtype-of'.
Bruno Haible [Mon, 21 Mar 2011 22:02:14 +0000 (23:02 +0100)]
New module 'unictype/joiningtype-of'.

* modules/unictype/joiningtype-of: New file.
* lib/unictype/joiningtype_of.c: New file.
* lib/unictype/joiningtype_of.h: New file, automatically generated by
gen-uni-tables.

13 years agoTests for module 'unictype/joiningtype-byname'.
Bruno Haible [Mon, 21 Mar 2011 21:58:36 +0000 (22:58 +0100)]
Tests for module 'unictype/joiningtype-byname'.

* modules/unictype/joiningtype-byname-tests: New file.
* tests/unictype/test-joiningtype_byname.c: New file.

13 years agoNew module 'unictype/joiningtype-byname'.
Bruno Haible [Mon, 21 Mar 2011 21:56:30 +0000 (22:56 +0100)]
New module 'unictype/joiningtype-byname'.

* modules/unictype/joiningtype-byname: New file.
* lib/unictype/joiningtype_byname.c: New file.

13 years agoTests for module 'unictype/joiningtype-name'.
Bruno Haible [Mon, 21 Mar 2011 21:55:30 +0000 (22:55 +0100)]
Tests for module 'unictype/joiningtype-name'.

* modules/unictype/joiningtype-name-tests: New file.
* tests/unictype/test-joiningtype_name.c: New file.

13 years agoNew module 'unictype/joiningtype-name'.
Bruno Haible [Mon, 21 Mar 2011 21:54:28 +0000 (22:54 +0100)]
New module 'unictype/joiningtype-name'.

* modules/unictype/joiningtype-name: New file.
* lib/unictype/joiningtype_name.c: New file.

13 years agounictype: Add support for Arabic shaping properties.
Bruno Haible [Mon, 21 Mar 2011 21:51:46 +0000 (22:51 +0100)]
unictype: Add support for Arabic shaping properties.

* lib/unictype.in.h (UC_JOINING_TYPE_*): New enumeration values.
(uc_joining_type_name, uc_joining_type_byname, uc_joining_type): New
declarations.
(UC_JOINING_GROUP_*): New enumeration values.
(uc_joining_group_name, uc_joining_group_byname, uc_joining_group): New
declarations.
* lib/gen-uni-tables.c (UC_JOINING_TYPE_*): New enumeration values.
(unicode_joining_type): New variable.
(UC_JOINING_GROUP_*): New enumeration values.
(unicode_joining_group): New variable.
(fill_arabicshaping, joining_type_as_c_identifier,
output_joining_type_test, output_joining_type,
joining_group_as_c_identifier, output_joining_group_test,
output_joining_group): New functions.
(main); Add an argument denoting the ArabicShaping.txt file. Invoke
fill_arabicshaping and output_joining_type_test, output_joining_type,
output_joining_group_test, output_joining_group.
Reported by Simon Josefsson.

13 years agostrftime: fix a bug in yesterday's change
Jim Meyering [Mon, 21 Mar 2011 14:32:54 +0000 (15:32 +0100)]
strftime: fix a bug in yesterday's change

* lib/strftime.c (add): Accommodate width's initial value of -1.
Otherwise, nstrftime would copy uninitialized data into
the result buffer.

13 years agotests: add strftime-tests module
Jim Meyering [Mon, 21 Mar 2011 14:09:10 +0000 (15:09 +0100)]
tests: add strftime-tests module

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

13 years agostrftime: don't assume a byte count fits in 'int'
Paul Eggert [Mon, 21 Mar 2011 06:59:29 +0000 (23:59 -0700)]
strftime: don't assume a byte count fits in 'int'

* lib/strftime.c (add): Don't assume first arg fits in 'int'.  I
found this problem by static analysis, using gcc -Wstrict-overflow
(GCC 4.5.2, x86-64).  This reported an optimization that depended
on an integer overflow having undefined behavior, but it turns out
that the argument is a size, which might not fit in 'int' anyway,

2011-03-20  Paul Eggert  <eggert@cs.ucla.edu>

13 years agostdio: don't require ignore_value around fwrite
Paul Eggert [Mon, 21 Mar 2011 03:02:28 +0000 (20:02 -0700)]
stdio: don't require ignore_value around fwrite

This patch works around libc bug 11959
<http://sources.redhat.com/bugzilla/show_bug.cgi?id=11959>.
Without this patch, applications must often write
ignore_value (fwrite (...)) even though the ignore_value is
not helpful here.  It's common to write many objects, using
fwrite/printf/etc., and then use ferror to detect output error.

I considered making this patch optional, but decided against it,
because libc is obviously being inconsistent here: there is no
reason libc should insist that user code must inspect fwrite
return's value without also insisting that it inspect printf's,
putchar's, etc.  If user code wants to have a strict style where
all these functions' values are checked (so that ferror need not
be checked), we could add support for that style in a new gnulib
module, but in the meantime it's better to be consistent and to
support common usage.

* lib/stdio.in.h (rpl_fwrite): Define this wrapper around fwrite,
to work around libc bug 11959, if __USE_FORTIFY_LEVEL indicates
that we are compiling in checking mode, and if not C++, and
if not already wrapping fwrite for some other reason.
(fwrite): #define to rpl_fwrite if the latter is defined.

13 years agoverror: Fix compilation error introduced on 2011-02-13.
Bruno Haible [Sun, 20 Mar 2011 21:34:13 +0000 (22:34 +0100)]
verror: Fix compilation error introduced on 2011-02-13.

* lib/verror.h (verror, verror_at_line): Use _GL_ATTRIBUTE_FORMAT macro
instead of __attribute__.
Reported by Tom G. Christensen <tgc@jupiterrise.com>.

13 years agosocklen: do not depend on sys_socket
Paul Eggert [Sun, 20 Mar 2011 11:51:49 +0000 (12:51 +0100)]
socklen: do not depend on sys_socket

While trying to modify Emacs to use gnulib's socklen module,
I discovered a circular dependency: socklen depends on sys_socket
and vice versa.  Emacs can use socklen, but it does not need
sys_socket because it has its own substitute for sys/socket.h.
* m4/socklen.m4 (gl_SOCKET_HEADERS): New macro, extracted from
gl_TYPE_SOCKLEN_T.
(gl_CHECK_SOCKET_HEADERS): New macro, taken from parts of
gl_PREREQ_SYS_H_SOCKET.
(gl_TYPE_SOCKLEN_T): Require it instead of requiring
gl_PREREQ_SYS_H_SOCKET.
* m4/sys_socket_h.m4 (gl_PREREQ_SYS_H_SOCKET): Require
gl_CHECK_SOCKET_HEADERS instead of doing its work ourselves.
* modules/socklen (Depends-on): Do not depend on sys_socket.
(Include): Adjust to match the code used in gl_SOCKET_HEADERS.

13 years agomaint.mk: sort file names *after* new transformation
Jim Meyering [Sun, 20 Mar 2011 10:31:11 +0000 (11:31 +0100)]
maint.mk: sort file names *after* new transformation

* top/maint.mk (sc_po_check): Sorting before removing the $(srcdir)/
prefix would have led to an unwarranted failure in GNU parted.
Sort after that transformation.

13 years agomaint.mk: fix po-file syntax-check rule
Jim Meyering [Sat, 19 Mar 2011 17:21:56 +0000 (18:21 +0100)]
maint.mk: fix po-file syntax-check rule

* top/maint.mk (sc_po_check): Fix fatal typo in yesterday's change.
Patch by Bruno Haible.

13 years agosocklen: Update comment.
Bruno Haible [Sat, 19 Mar 2011 13:25:18 +0000 (14:25 +0100)]
socklen: Update comment.

* m4/socklen.m4: Update comment about platforms.

13 years agoinet_ntop, inet_pton: Simplify.
Paul Eggert [Sat, 19 Mar 2011 12:58:17 +0000 (13:58 +0100)]
inet_ntop, inet_pton: Simplify.

* modules/inet_ntop (Depends-on): Remove socklen, since sys_socket is
documented to provide socklen_t and we already depend on sys_socket.
* modules/inet_pton (Depends-on): Likewise.
* lib/arpa_inet.in.h: Adjust comment.

13 years agonetdb: Simplify.
Paul Eggert [Sat, 19 Mar 2011 12:55:24 +0000 (13:55 +0100)]
netdb: Simplify.

* modules/netdb (Depends-on): Remove socklen, since sys_socket is
documented to provide socklen_t and we already depend on sys_socket.
* lib/netdb.in.h: Adjust comment.

13 years agosys_socket, netdb: Document problem with socklen_t.
Bruno Haible [Sat, 19 Mar 2011 12:39:12 +0000 (13:39 +0100)]
sys_socket, netdb: Document problem with socklen_t.

* doc/posix-headers/sys_socket.texi: Mention lack of socklen_t on some
platforms.
* doc/posix-headers/netdb.texi: Likewise.

13 years agomaint.mk: let po check work in VPATH build
Eric Blake [Fri, 18 Mar 2011 21:32:24 +0000 (15:32 -0600)]
maint.mk: let po check work in VPATH build

* top/maint.mk (po_file): Allow cfg.mk override.
(sc_po_check): Allow VPATH use.
Reported by Jiri Denemark.

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