gnulib.git
11 years agoselect: enhance test
Eric Blake [Wed, 3 Oct 2012 01:38:24 +0000 (19:38 -0600)]
select: enhance test

Make sure the test is not picking up stale errno values, and add
a test for nfds validation.

* tests/test-select.h (do_select_bad_nfd_nowait, test_bad_nfd):
New functions.
(test_function): Enhance test.
(do_select_bad_fd): Avoid any stale errno values.

11 years agoptsname: reject invalid file descriptors
Eric Blake [Tue, 2 Oct 2012 18:22:19 +0000 (12:22 -0600)]
ptsname: reject invalid file descriptors

POSIX left errno undefined on ptsname() failure, although there
has at least been an effort to specify reasonable values to use:
http://www.austingroupbugs.net/view.php?id=503

However, our tests for ptsname and ptsname_r already require errno
to be set to useful values (as in glibc), so it is worth replacing
ptsname on FreeBSD 8.2 in order to get better QoI and pass the test.

* m4/ptsname.m4 (gl_FUNC_PTSNAME): Probe for FreeBSD bug.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Add new witness.
* modules/stdlib (Makefile.am): Replace witness.
* lib/stdlib.in.h (ptsname): Allow for replacement.
* modules/ptsname (configure.ac): Trigger replacement.
* doc/posix-functions/ptsname.texi (ptsname): Document this.

11 years agohash-pjw-bare: new module
Nikos Mavrogiannopoulos [Thu, 27 Sep 2012 06:42:07 +0000 (08:42 +0200)]
hash-pjw-bare: new module

* lib/hash-pjw-bare.c: New file, very much like hash-pjw.c.
* lib/hash-pjw-bare.h: Likewise.
* modules/hash-pjw-bare: New file.
* MODULES.html.sh (Misc): Add it.

Copyright-paperwork-exempt: yes

11 years agomanywarnings: cater to more gcc infelicities
Eric Blake [Thu, 6 Sep 2012 21:29:53 +0000 (15:29 -0600)]
manywarnings: cater to more gcc infelicities

Some versions of gcc (at least 4.2.1) noisily warn if
-Wuninitialized is given without -O; in isolation, configure
learns that the warning option is supported, but when later
compiling with -Werror, this makes builds fail.  If the
option will have no effect for the configured choice of
$CFLAGS, then it is not worth including in the set.

* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add test for
-Wuninitialized without -O.

Signed-off-by: Eric Blake <eblake@redhat.com>
11 years agoselect, poll tests: Make setsockopt invocation effective.
Ed Maste [Mon, 1 Oct 2012 23:48:22 +0000 (01:48 +0200)]
select, poll tests: Make setsockopt invocation effective.

* tests/test-poll.c (open_server_socket): Move setsockopt() call before
the bind() call.
* tests/test-select.h (open_server_socket): Likewise.

11 years agosockets, sys_stat: restore AC_C_INLINE
Paul Eggert [Sun, 30 Sep 2012 23:20:43 +0000 (16:20 -0700)]
sockets, sys_stat: restore AC_C_INLINE

This undoes the 2012-09-22 patch.
* m4/sockets.m4 (gl_SOCKETS):
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H):
Restore AC_C_INLINE, since MSVC requires __inline or _inline
and does not support plain 'inline'.  Reported by Bruno Haible in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-09/msg00183.html>.

11 years agolocaleconv tests: Avoid test failure on OpenIndiana.
Bruno Haible [Sun, 30 Sep 2012 21:39:03 +0000 (23:39 +0200)]
localeconv tests: Avoid test failure on OpenIndiana.

* tests/test-localeconv.c (main): On OpenIndiana (a Solaris 11 variant)
skip the 'grouping' and 'mon_grouping' tests.
Reported by Jim Meyering.

11 years agohavelib: Follow libtool developments.
Bruno Haible [Sun, 30 Sep 2012 21:21:26 +0000 (23:21 +0200)]
havelib: Follow libtool developments.

* m4/lib-ld.m4: Rebase on libtool.m4 from libtool-2.4.
Suggested by Simon Josefsson.

11 years agoChangeLog: mention who reported the problem.
Jim Meyering [Sat, 29 Sep 2012 17:18:08 +0000 (19:18 +0200)]
ChangeLog: mention who reported the problem.

11 years agofstatat.c: fix a compile-impeding typo
Jim Meyering [Sat, 29 Sep 2012 17:13:21 +0000 (19:13 +0200)]
fstatat.c: fix a compile-impeding typo

* lib/fstatat.c (FSTATAT_INLINE): Fix typo: s/#include/#define/
Introduced in commit v0.0-7636-gd202279.

11 years agoextern-inline: provide a -Wundef safe config.h
Akim Demaille [Tue, 25 Sep 2012 11:58:12 +0000 (13:58 +0200)]
extern-inline: provide a -Wundef safe config.h

* m4/extern-inline.m4 (gl_EXTERN_INLINE): Protect
"#if __GNUC_STDC_INLINE__" with "defined __GNUC_STDC_INLINE__"
to produce a -Wundef warning free config.h.

11 years agohash-pjw: relax license to LGPLv2+
Paul Eggert [Thu, 27 Sep 2012 03:12:57 +0000 (20:12 -0700)]
hash-pjw: relax license to LGPLv2+

* modules/hash-pjw (License): Relax, with consent of author.

11 years agoautoupdate
Karl Berry [Wed, 26 Sep 2012 13:48:40 +0000 (06:48 -0700)]
autoupdate

11 years agomaint.mk: fix strict vs. lazy variable issues with RELEASE
Akim Demaille [Tue, 25 Sep 2012 10:19:04 +0000 (12:19 +0200)]
maint.mk: fix strict vs. lazy variable issues with RELEASE

* top/maint.mk (_equal): New function.
(member_check): Strip the result to avoid spurious spaces.
(url_dir_list): Do not use ifeq, which is strict, as it will
require RELEASE_TYPE to be defined.
(announcement_Cc_, announcement_mail_headers_): Likewise: instead
of relying on ifeq, use $(release_type) to dispatch (lazily) onto...
(announcement_Cc_alpha,announcement_mail_headers_alpha)
(announcement_Cc_beta,announcement_mail_headers_beta)
(announcement_Cc_stable,announcement_mail_headers_stable): these.
(release): Do not depend on $(release-type), as it forces its
evaluation.  Bounce to it.

11 years agomaint.mk: formatting changes
Akim Demaille [Mon, 24 Sep 2012 08:06:15 +0000 (10:06 +0200)]
maint.mk: formatting changes

* top/maint.mk: Indent bodies of if's.

11 years agomaint.mk: provide "make upload" to ease uploading
Akim Demaille [Thu, 20 Sep 2012 09:10:34 +0000 (11:10 +0200)]
maint.mk: provide "make upload" to ease uploading

See <http://lists.gnu.org/archive/html/bug-gnulib/2012-08/msg00028.html>.
Do not depend simply on the current $(VERSION), as there may have been
new commits since the tarball generation.  Rather, rely on $(RELEASE),
as "make release-commit" already does.

For consistency, add "make release RELEASE='X.Y TYPE'" as an alias for
"make TYPE".

* top/maint.mk (upload_command, upload, release): New.
(RELEASE_TYPE): If undefined, default to the second word of $(RELEASE).
(VERSION): first word of $(RELEASE) is always right.
(emit_upload_commands): Adjust.
* top/README-release: Update.

11 years agomaint.mk: factor the validation of RELEASE_TYPE
Akim Demaille [Fri, 21 Sep 2012 12:11:18 +0000 (14:11 +0200)]
maint.mk: factor the validation of RELEASE_TYPE

With help from Jim Meyering.
http://lists.gnu.org/archive/html/bug-gnulib/2012-09/msg00132.html

* top/maint.mk (_empty, _sp): Move their definition earlier.
(member-check, release-type): New.
Use the latter instead of $(RELEASE_TYPE).
Remove now useless local checks.

11 years agomaint.mk: silent rules
Akim Demaille [Thu, 20 Sep 2012 09:09:53 +0000 (11:09 +0200)]
maint.mk: silent rules

With help from Stefano Lattarini.

* top/maint.mk (writable-files): Use $(AM_V_GEN).
(announcement): Use $(AM_V_at).

11 years agolocalename: port gl_locale_name_thread_unsafe to FreeBSD
Paul Eggert [Mon, 24 Sep 2012 19:41:27 +0000 (12:41 -0700)]
localename: port gl_locale_name_thread_unsafe to FreeBSD

* lib/localename.c (gl_locale_name_thread_unsafe): Port to FreeBSD,
and use the simpler FreeBSD implementation on Mac OS X as well.
Original idea suggested by Ed Maste in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-09/msg00094.html>.

11 years agobinary-io, eealloc, mbfile, mbiter, mbutil, xsize: better 'inline'
Paul Eggert [Thu, 30 Aug 2012 06:13:42 +0000 (23:13 -0700)]
binary-io, eealloc, mbfile, mbiter, mbutil, xsize: better 'inline'

* lib/binary-io.c, lib/eealloc.c, lib/mbfile.c, lib/mbiter.c:
* lib/mbuiter.c, lib/xsize.c: New files.
* lib/binary-io.h (BINARY_IO_INLINE):
* lib/eealloc.h (EEALLOC_INLINE):
* lib/mbfile.h (MBFILE_INLINE):
* lib/mbiter.h (MBITER_INLINE):
* lib/mbuiter.h (MBUITER_INLINE):
* lib/xsize.h (XSIZE_INLINE):
New macros.
Replace all uses of 'static inline' with them.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/eealloc.m4 (gl_EEALLOC):
* m4/mbfile.m4 (gl_MBFILE):
* m4/mbiter.m4 (gl_MBITER):
* m4/xsize.m4 (gl_XSIZE):
Do not require AC_C_INLINE.
* modules/binary-io (Files, lib_SOURCES): Add lib/binary-io.c
* modules/eealloc (Files, lib_SOURCES): Add lib/eealloc.c.
* modules/mbfile (Files, lib_SOURCES): Add lib/mbfile.c.
* modules/mbiter (Files, lib_SOURCES): Add lib/mbiter.c.
* modules/mbuiter (Files, lib_SOURCES): Add lib/mbuiter.c.
* modules/xsize (Files, lib_SOURCES): Add lib/xsize.c.
* modules/binary-io, modules/eealloc, modules/mbfile:
* modules/mbiter, modules/mbuiter:
(Depends-on): Add extern-inline.

11 years agopipe-filter-gi, pipe-filter-ii: better use of 'inline'
Paul Eggert [Thu, 30 Aug 2012 05:17:49 +0000 (22:17 -0700)]
pipe-filter-gi, pipe-filter-ii: better use of 'inline'

* lib/pipe-filter-aux.c: New file.
* lib/pipe-filter-aux.h (PIPE_FILTER_AUX_INLINE): New macro.
Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* lib/pipe-filter-gi.c (filter_init, filter_cleanup)
(filter_retcode): No real need for inline here.
* modules/pipe-filter-gi, modules/pipe-filter-ii:
(Files): Add lib/pipe-filter-aux.c.
(Depends-on): Add extern-inline.
(configure.ac): Do not require AC_C_INLINE.
(lib_SOURCES): Add pipe-filter-aux.c.

11 years agofdutimensat: omit unnecessary AC_C_INLINE
Paul Eggert [Thu, 30 Aug 2012 04:14:24 +0000 (21:14 -0700)]
fdutimensat: omit unnecessary AC_C_INLINE

* modules/fdutimensat (configure.ac): Remove AC_C_INLINE.

11 years agofchmodat, fchownat, fstatat: use extern-inline
Paul Eggert [Thu, 30 Aug 2012 04:09:50 +0000 (21:09 -0700)]
fchmodat, fchownat, fstatat: use extern-inline

* lib/fchmodat.c, lib/openat.h (FCHMODAT_INLINE):
* lib/fchownat.c, lib/openat.h (FCHOWNAT_INLINE):
* lib/fstatat.c, lib/openat.h (FSTATAT_INLINE):
New macros.
* lib/openat.h:
Replace all uses of 'static inline' with them.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* modules/fchmodat, modules/fchownat, modules/fstatat:
* modules/openat-h:
(Depends-on):
Add extern-inline.
(configure.ac): Remove AC_C_INLINE.

11 years agoacl, mbchar, priv-set: use extern-inline
Paul Eggert [Thu, 30 Aug 2012 03:59:53 +0000 (20:59 -0700)]
acl, mbchar, priv-set: use extern-inline

* lib/set-mode-acl.c, lib/acl-internal.h (ACL_INTERNAL_INLINE):
* lib/mbchar.c, lib/mbchar.h (MBCHAR_INLINE):
* lib/priv-set.c, lib/priv-set.h (PRIV_SET_INLINE):
New macros.
* lib/acl-internal.h, lib/mbchar.h, lib/priv-set.h:
Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/acl.m4 (gl_FUNC_ACL):
* m4/mbchar.m4 (gl_MBCHAR):
* m4/priv-set.m4 (gl_PRIV_SET):
Remove AC_C_INLINE, since 'inline' is no longer used directly.
* modules/acl, modules/mbchar, modules/priv-set (Depends-on):
Add extern-inline.

11 years agosockets, sys_stat: remove AC_C_INLINE in MSVC-only cases
Paul Eggert [Thu, 30 Aug 2012 00:59:49 +0000 (17:59 -0700)]
sockets, sys_stat: remove AC_C_INLINE in MSVC-only cases

* m4/sockets.m4 (gl_SOCKETS):
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H):
Remove AC_C_INLINE.  Here, 'inline' is used only in MSVC
environments where it's already guaranteed to work, so we needn't
check for it at 'configure'-time.

11 years agotls-tests: omit unnecessary 'inline'
Paul Eggert [Thu, 30 Aug 2012 00:49:12 +0000 (17:49 -0700)]
tls-tests: omit unnecessary 'inline'

* tests/test-tls.c (perhaps_yield): No longer inline.
Simplicity and portability trump efficiency in test cases.

11 years agoutimens-tests: avoid unnecessary 'inline'
Paul Eggert [Tue, 28 Aug 2012 06:11:45 +0000 (23:11 -0700)]
utimens-tests: avoid unnecessary 'inline'

* modules/fdutimensat-tests (configure.ac):
* modules/futimens-tests (configure.ac):
* modules/utimens-tests (configure.ac):
* modules/utimensat-tests (configure.ac):
Remove AC_C_INLINE.
* tests/test-utimens-common.h (ctime_compare):
No longer inline.  Simplicity and portability trump efficiency here.

11 years agomisc: don't limit commentary to inline functions
Paul Eggert [Tue, 28 Aug 2012 05:57:47 +0000 (22:57 -0700)]
misc: don't limit commentary to inline functions

* lib/binary-io.h, lib/malloca.h, lib/safe-alloc.c:
* lib/xalloc-oversized.h, lib/xsize.h:
Contrast macros to functions in general, not just to inline functions,
when the commentary does not apply only to inline functions.

11 years agonon-recursive-gnulib-prefix-hack: new module
Jim Meyering [Thu, 20 Sep 2012 12:02:36 +0000 (14:02 +0200)]
non-recursive-gnulib-prefix-hack: new module

* build-aux/prefix-gnulib-mk: Copied from coreutils, derived from
the file that originated in Bison.
* m4/non-recursive-gnulib-prefix-hack.m4: Likewise, this code is
largely copied from a snippet that resided in bison's configure.ac.
* modules/non-recursive-gnulib-prefix-hack: New file.
* MODULES.html.sh (Support for maintaining and releasing projects):
Add it.

11 years agoChangeLog: fix indentation
Jim Meyering [Tue, 18 Sep 2012 14:25:41 +0000 (16:25 +0200)]
ChangeLog: fix indentation

11 years agomaint.mk: generalize _gl_tight_scope for non-recursive make
Jim Meyering [Tue, 18 Sep 2012 14:25:19 +0000 (16:25 +0200)]
maint.mk: generalize _gl_tight_scope for non-recursive make

* top/maint.mk (_gl_tight_scope): Remove a hard-coded assumption
that *.h would describe additional .h files in the directory
specified by $(_gl_TS_dir).  I.e., add this...
(_gl_TS_other_headers): New variable.

11 years agomaint.mk: exempt trailing blanks found in "binary" files
Jim Meyering [Tue, 18 Sep 2012 06:49:59 +0000 (08:49 +0200)]
maint.mk: exempt trailing blanks found in "binary" files

* top/maint.mk (sc_trailing_blank): Filter out any matches found in
"binary" files, as reported by grep.  Suggested by Richard W.M. Jones
in http://thread.gmane.org/gmane.comp.emulators.guestfs/1902

11 years agomaint.mk: sc_prohibit_path_max_allocation: don't FP for UNIX_PATH_MAX
Jim Meyering [Mon, 17 Sep 2012 09:38:36 +0000 (11:38 +0200)]
maint.mk: sc_prohibit_path_max_allocation: don't FP for UNIX_PATH_MAX

* top/maint.mk (sc_prohibit_path_max_allocation): Avoid false-positive
match for symbols like UNIX_PATH_MAX. Reported by Richard W.M. Jones
in http://thread.gmane.org/gmane.comp.emulators.guestfs/1902

11 years agomaint.mk: teach sc_prohibit_magic_number_exit to accept 77
Jim Meyering [Mon, 17 Sep 2012 09:34:44 +0000 (11:34 +0200)]
maint.mk: teach sc_prohibit_magic_number_exit to accept 77

* top/maint.mk (sc_prohibit_magic_number_exit): Do not complain about
uses like "exit (77)".  "77" is automake's "skip this test" exit code.
It is not in the same category as "exit (0)" or "exit (1)", and
besides, I know of no symbolic name for that 77.  Reported by
Richard W.M. Jones in
http://thread.gmane.org/gmane.comp.emulators.guestfs/1902

11 years agomaint.mk: relax sc_prohibit_strcmp, to avoid a false positive
Jim Meyering [Mon, 17 Sep 2012 09:25:00 +0000 (11:25 +0200)]
maint.mk: relax sc_prohibit_strcmp, to avoid a false positive

* top/maint.mk (sc_prohibit_strcmp): Relax regexp, so as to match
all uses of #define, not just those that start in column 1.
Richard W.M. Jones reported a false positive in
http://thread.gmane.org/gmane.comp.emulators.guestfs/1902

11 years agolocalcharset: work around Mac OS X bug with UTF-8 and MB_CUR_MAX
Paul Eggert [Sun, 16 Sep 2012 17:47:43 +0000 (10:47 -0700)]
localcharset: work around Mac OS X bug with UTF-8 and MB_CUR_MAX

* lib/localcharset.c (locale_charset) [DARWIN7]:
Return "ASCII" if the system reports "UTF-8" and MB_CUR_MAX <= 1,
as these two values are incompatible.  Problem reported by Max Horn.
For more discussion, please see
<http://lists.gnu.org/archive/html/bug-gnulib/2012-09/msg00061.html>.

11 years agodoc: document sticky-EOF issue
Paul Eggert [Sun, 16 Sep 2012 17:37:16 +0000 (10:37 -0700)]
doc: document sticky-EOF issue

* doc/posix-functions/fgetc.texi (fgetc):
* doc/posix-functions/fgets.texi (fgets):
* doc/posix-functions/fread.texi (fread):
* doc/posix-functions/fscanf.texi (fscanf):
* doc/posix-functions/getc.texi (getc):
* doc/posix-functions/getchar.texi (getchar):
* doc/posix-functions/scanf.texi (scanf):
Mention that glibc and default Solaris do not conform to
C99 and POSIX-2001 or later, with respect to how getchar
etc. behave when feof reports nonzero.

11 years agopoll: fix poll(0, NULL, msec)
Joachim Schmitz [Thu, 13 Sep 2012 06:41:24 +0000 (08:41 +0200)]
poll: fix poll(0, NULL, msec)

* lib/poll.c: don't exit early if NULL is the 1st arg to poll(),
but nfd is 0.  In that case poll should behave like select.

Copyright-paperwork-exempt: yes

11 years agopoll: fix for systems that can't recv() on a non-socket
Joachim Schmitz [Thu, 13 Sep 2012 06:55:08 +0000 (08:55 +0200)]
poll: fix for systems that can't recv() on a non-socket

* lib/poll.c: if recv returns ENOTSOCK, assume the descriptor
is readable.  In this case POLLHUP will not be supported.
* doc/posix-functions/poll.texi: Document this.

Copyright-paperwork-exempt: yes

11 years agopoll/select: document portability problems not fixed by Gnulib.
Paolo Bonzini [Thu, 13 Sep 2012 06:51:16 +0000 (08:51 +0200)]
poll/select: document portability problems not fixed by Gnulib.

* doc/posix-functions/poll.texi: poll does not work well on
pipes under Windows.  It has the same limitations as select on
BeOS.
* doc/posix-functions/select.texi: select does not work well
on pipes under Windows.

11 years agoupdate from texinfo
Karl Berry [Wed, 12 Sep 2012 23:37:37 +0000 (16:37 -0700)]
update from texinfo

11 years agoFix typo in previous patch: 1 -> 4.
Paul Eggert [Mon, 10 Sep 2012 20:47:00 +0000 (13:47 -0700)]
Fix typo in previous patch: 1 -> 4.

11 years agofcntl-h: check for AIX 7.1 bug with O_NOFOLLOW and O_CREAT
Paul Eggert [Mon, 10 Sep 2012 20:37:18 +0000 (13:37 -0700)]
fcntl-h: check for AIX 7.1 bug with O_NOFOLLOW and O_CREAT

* m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Check for AIX 7.1 bug
that caused a GNU tar test failure.  Problem reported by Jez Wain; see
<http://lists.gnu.org/archive/html/bug-tar/2012-07/msg00018.html>.

11 years agonet_if: give more details about the bug being fixed
Eric Blake [Thu, 6 Sep 2012 22:25:29 +0000 (16:25 -0600)]
net_if: give more details about the bug being fixed

Jasper Lievisse Adriaanse reported that NetBSD 5.2 also has
the same bug.  Also, when writing configure tests that use
<net/if.h> (such as for 'struct ifreq'), it is useful to know
what pre-requisite headers are needed within that test.

* doc/posix-headers/net_if.texi: Add clarification.

Signed-off-by: Eric Blake <eblake@redhat.com>
11 years agonet_if: new module
Eric Blake [Wed, 5 Sep 2012 20:28:47 +0000 (14:28 -0600)]
net_if: new module

OpenBSD's <net/if.h> is not self-contained; this should compile:

| #define _POSIX_C_SOURCE 200809L
| #include <net/if.h>
| struct if_nameindex i;

but fails with:

In file included from foo.c:2:
/usr/include/net/if.h:112: error: expected specifier-qualifier-list before 'u_int'
...
/usr/include/net/if.h:674: error: field 'dstaddr' has incomplete type
In file included from /usr/include/net/if.h:691,
                 from foo.c:2:
/usr/include/net/if_arp.h:79: error: field 'arp_pa' has incomplete type
/usr/include/net/if_arp.h:80: error: field 'arp_ha' has incomplete type
*** Error code 1

We already had a test program for systems with the if_* functions
(including OpenBSD); but in adding this module, I had to enhance
that test to also work on platforms like mingw where we are now
providing a new header.

* modules/net_if: New module, borrowing ideas from netinet_in.
* m4/net_if_h.m4: New file.
* lib/net_if.in.h: Likewise.
* doc/posix-headers/net_if.texi (net/if.h): Document it.
* MODULES.html.sh (lacking POSIX:2008): Likewise.
* tests/test-net_if.c: Make function checks conditional.
Reported by Jasper Lievisse Adriaanse <jasper@humppa.nl>.

Signed-off-by: Eric Blake <eblake@redhat.com>
11 years agoreadutmp: fix non-portable UT_PID use
Mats Erik Andersson [Wed, 5 Sep 2012 20:08:37 +0000 (22:08 +0200)]
readutmp: fix non-portable UT_PID use

The module readutmp is broken for the standard use

  read_utmp(..., READ_UTMP_USER_PROCESS | READ_UTMP_CHECK_PIDS)

for all releases of FreeBSD until 8.3, and all OpenBSD ever released.

The reason is that those systems do not provide `utmp.ut_pid', thus
making the macro UT_PID(u) identical to naught, and then turning
the predicate

   UT_PID (u) <= 0

found in desirable_utmp_entry(), into a permanent true clause.
This makes desirable_utmp_entry() discard every legitimate
user's UTMP entry for said BSD releases. NetBSD and DragonflyBSD
are not touched by this malfunction.

Copyright-paperwork-exempt: yes

* lib/readutmp.c (desirable_utmp_entry) <READ_UTMP_CHECK_PIDS>:
  Use `UT_PID (u) > 0' as absolute condition.

11 years agoupdate from texinfo
Karl Berry [Wed, 5 Sep 2012 15:45:32 +0000 (08:45 -0700)]
update from texinfo

11 years agofts: reduce two or more trailing slashes to just one, usually
Jim Meyering [Tue, 4 Sep 2012 09:36:38 +0000 (11:36 +0200)]
fts: reduce two or more trailing slashes to just one, usually

* lib/fts.c (fts_open): Upon initialization, if a name ends in two
or more slashes, trim all but the final one.  But if a name consists
solely of two slashes, don't modify it.  If it consists solely of
three or more slashes, strip all but one.

This is part of the solution to a minor problem with rm:
it would print a bogus ELOOP diagnostic when failing to remove
the slash-decorated name of a symlink-to-directory:

    $ mkdir d && ln -s d s && env rm -r s/
    rm: cannot remove 's': Too many levels of symbolic links

With the change below and a trivial don't-trim-trailing-slashes
adjustment to remove.c, it does this:

    $ env rm -r s/
    rm: cannot remove 's/': Not a directory

Improved by: Eric Blake

11 years agofts: when there is no risk of overlap, use memcpy, not memmove
Jim Meyering [Tue, 4 Sep 2012 09:31:09 +0000 (11:31 +0200)]
fts: when there is no risk of overlap, use memcpy, not memmove

* lib/fts.c (fts_alloc): Fix unjustified memmove: s/memmove/memcpy/

11 years agoautoupdate
Karl Berry [Mon, 3 Sep 2012 00:23:28 +0000 (17:23 -0700)]
autoupdate

11 years agoautoupdate
Karl Berry [Mon, 3 Sep 2012 00:23:01 +0000 (17:23 -0700)]
autoupdate

11 years agomanywarnings: update the list of "all" warnings
Jim Meyering [Wed, 30 Nov 2011 13:25:35 +0000 (14:25 +0100)]
manywarnings: update the list of "all" warnings

* m4/manywarnings.m4: Unite lists, and add many new options.
* build-aux/gcc-warning: New file.

Run this command with the latest gcc to see if they have added
options not yet on our list:

gl=.; comm -1 -3 \
  <(sed -n 's/^  *\(-[^ ]*\) .*/\1/p' $gl/m4/manywarnings.m4 |sort) \
  <(gcc --help=warnings|sed -n 's/^  \(-[^ ]*\) .*/\1/p' |sort \
    |grep -v --line-regexp -f <(cut -f1 $gl/build-aux/gcc-warning.spec))

11 years ago* lib/stdbool.in.h (_Bool) [__cplusplus]: bool, not _Bool.
Paul Eggert [Thu, 30 Aug 2012 00:43:04 +0000 (17:43 -0700)]
* lib/stdbool.in.h (_Bool) [__cplusplus]: bool, not _Bool.

11 years agostdbool: be more compatible with mixed C/C++ compiles
Paul Eggert [Wed, 29 Aug 2012 14:52:32 +0000 (07:52 -0700)]
stdbool: be more compatible with mixed C/C++ compiles

* lib/stdbool.in.h (_Bool, true, false) [__cplusplus]:
Define to bool, true, false, respectively, as GCC's builtin
stdbool.h does.  Problem reported by Michael Goffioul in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-08/msg00143.html>.

11 years agorevert last change: it was not needed
Jim Meyering [Tue, 28 Aug 2012 11:56:25 +0000 (13:56 +0200)]
revert last change: it was not needed

* tests/test-vc-list-files-git.sh: There's already a test for
a working git, just below.

11 years agotests: test-vc-list-files-git.sh: skip if git is not available
Jim Meyering [Tue, 28 Aug 2012 11:49:37 +0000 (13:49 +0200)]
tests: test-vc-list-files-git.sh: skip if git is not available

* tests/test-vc-list-files-git.sh: Skip this test when git is
not available.

11 years agognulib-tool: Remove no-op option --no-changelog.
Bruno Haible [Sun, 26 Aug 2012 15:04:56 +0000 (17:04 +0200)]
gnulib-tool: Remove no-op option --no-changelog.

* gnulib-tool (func_usage): Don't mention --no-changelog.
(do_changelog): Remove variable.
Reported by Dmitriy Selyutin <ghostman.sd@gmail.com>.

11 years agoautoupdate
Karl Berry [Sat, 25 Aug 2012 15:39:03 +0000 (08:39 -0700)]
autoupdate

11 years agodoc: remove fdl-1.2.texi
Paul Eggert [Fri, 24 Aug 2012 23:42:56 +0000 (16:42 -0700)]
doc: remove fdl-1.2.texi

It is no longer used or maintained, and its use of @acronym
is problematic.  See the thread containing
<http://lists.gnu.org/archive/html/bug-gnulib/2012-08/msg00134.html>.
* config/srclist.txt: Remove doc/old-licenses/fdl-1.2.texi.
* doc/old-licenses/fdl-1.2.texi: Remove.

11 years agoexecinfo: port to FreeBSD
Paul Eggert [Fri, 24 Aug 2012 10:29:39 +0000 (03:29 -0700)]
execinfo: port to FreeBSD

* m4/execinfo.m4 (gl_EXECINFO_H): Set LIB_EXECINFO to -lexecinfo
if needed, as in FreeBSD.  Reported by Bastien Roucariès in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-08/msg00113.html>.
* modules/execinfo (Link): Add $(LIB_EXECINFO).

11 years agoxstrtol.h: avoid "_Noreturn is not at beginning of declaration" warning
Jim Meyering [Thu, 23 Aug 2012 20:02:39 +0000 (22:02 +0200)]
xstrtol.h: avoid "_Noreturn is not at beginning of declaration" warning

* lib/xstrtol.h: Put "_Noreturn" before "void" in declaration,
to placate gcc's -Wold-style-declaration.

11 years agodoc: do not use @acronym
Paul Eggert [Fri, 24 Aug 2012 09:19:57 +0000 (02:19 -0700)]
doc: do not use @acronym

* doc/inet_ntoa.texi (inet_ntoa):
* doc/parse-datetime.texi (Seconds since the Epoch)
(Specifying time zone rules):
* doc/posix-functions/inet_ntoa.texi (inet_ntoa):
Don't use @acronym.  Problem reported by John Darlington in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-08/msg00124.html>.

11 years agostdnoreturn: port to newer GCCs
Paul Eggert [Thu, 23 Aug 2012 23:40:05 +0000 (16:40 -0700)]
stdnoreturn: port to newer GCCs

* m4/stdnoreturn.m4 (gl_STDNORETURN_H): Avoid problems with
bleeding-edge GCC that complains about 'int _Noreturn foo (void);'.
Problem reported by Jim Meyering in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-08/msg00121.html>.
Also, rename the 'test' function to a void a clash with the
already-supplied 'main' function; this fixes a bug that incorrectly
rejected GCC 4.7.1's <stdnoreturn.h>.
* doc/posix-headers/stdnoreturn.texi (stdnoreturn.h):
Document GCC problem.

11 years agopipe-filter: fix comment typo
Reuben Thomas [Wed, 22 Aug 2012 16:52:02 +0000 (10:52 -0600)]
pipe-filter: fix comment typo

* lib/pipe-filter.h: Mention correct function.

11 years agoexecinfo: new module
Paul Eggert [Wed, 22 Aug 2012 08:47:05 +0000 (01:47 -0700)]
execinfo: new module

This is for Emacs.  Currently, it provides a no-effect stub
on all platforms where it does not already work.
It already works on glibc-based systems, and on Solaris 11.
* lib/execinfo.c, lib/execinfo.in.h, m4/execinfo.m4, modules/execinfo:
New files.
* doc/glibc-headers/execinfo.texi (execinfo.h):
* MODULES.html.sh (Misc): Document it.

11 years agoextern-inline: support old GCC 'inline'
Paul Eggert [Tue, 21 Aug 2012 00:01:18 +0000 (17:01 -0700)]
extern-inline: support old GCC 'inline'

* m4/extern-inline.m4 (gl_EXTERN_INLINE): Use pre-C99 GCC 'inline'
if available.  This applies to GCC versions 2.7 through 4.2, or
when newer GCC is using -fgnu89-inline.  The goal is to address
some of the performance issues mentioned by Bruno Haible in
<http://lists.gnu.org/archive/html/bug-gnulib/2012-08/msg00097.html>.

11 years agomaint.mk: avoid redundant file name in message
Eric Blake [Mon, 20 Aug 2012 15:38:54 +0000 (09:38 -0600)]
maint.mk: avoid redundant file name in message

$(_sc_search_regexp) already prefixes its errors with $(ME), so
failure on one of these rules looked like:

maint.mk: maint.mk: replace strcmp calls above with STREQ/STRNEQ

* top/maint.mk (sc_prohibit_strcmp, sc_unmarked_diagnostics)
(sc_prohibit_defined_have_decl_tests, sc_const_long_option)
(sc_makefile_path_separator_check): Remove bogus $(ME).

Signed-off-by: Eric Blake <eblake@redhat.com>
11 years agotimer-time: fix link order when static linking on glibc
Mike Frysinger [Mon, 20 Aug 2012 00:42:39 +0000 (01:42 +0100)]
timer-time: fix link order when static linking on glibc

* m4/timer_time.m4 (LIB_TIMER_TIME): Add -lpthread
_after_ -lrt so that it's significant.

11 years agotimespec: omit unnecessary AC_C_INLINE
Paul Eggert [Sat, 18 Aug 2012 23:27:56 +0000 (16:27 -0700)]
timespec: omit unnecessary AC_C_INLINE

* m4/timespec.m4 (gl_TIMESPEC): Do not require AC_C_INLINE.

11 years agostat-time: omit unnecessary AC_C_INLINE
Paul Eggert [Sat, 18 Aug 2012 23:21:15 +0000 (16:21 -0700)]
stat-time: omit unnecessary AC_C_INLINE

* m4/stat-time.m4 (gl_STAT_TIME, gl_STAT_BIRTHTIME):
Do not require AC_C_INLINE.

11 years agoignore-value: omit unnecessary AC_C_INLINE
Paul Eggert [Sat, 18 Aug 2012 23:18:18 +0000 (16:18 -0700)]
ignore-value: omit unnecessary AC_C_INLINE

* modules/ignore-value (configure.ac): Do not require AC_C_INLINE.

11 years agosys_select: avoid 'static inline'
Paul Eggert [Sat, 18 Aug 2012 22:46:14 +0000 (15:46 -0700)]
sys_select: avoid 'static inline'

* lib/sys_select.in.h (rpl_fd_isset): Now static, not static inline.

11 years agomktime: avoid 'static inline'
Paul Eggert [Sat, 18 Aug 2012 22:34:37 +0000 (15:34 -0700)]
mktime: avoid 'static inline'

* lib/mktime.c (leapyear, ydhms_diff): Now static, not static inline.
* m4/mktime.m4 (gl_PREREQ_MKTIME): Do not require AC_C_INLINE.

11 years agoautoupdate
Karl Berry [Sun, 19 Aug 2012 16:29:26 +0000 (09:29 -0700)]
autoupdate

11 years agognulib-tool: Improve coding style.
Bruno Haible [Sun, 19 Aug 2012 12:13:11 +0000 (14:13 +0200)]
gnulib-tool: Improve coding style.

* gnulib-tool (func_emit_tests_Makefile_am): Set perhapsLT, like in
func_emit_lib_Makefile_am.
Reported and fix suggested by Dmitriy Selyutin <ghostman.sd@gmail.com>.

11 years agognulib-tool: Fix indentation.
Bruno Haible [Sun, 19 Aug 2012 12:08:12 +0000 (14:08 +0200)]
gnulib-tool: Fix indentation.

* gnulib-tool (func_import): Fix indentation.

11 years agognulib-tool: Remove old file names from .cvsignore, .gitignore.
Bruno Haible [Sun, 19 Aug 2012 12:06:50 +0000 (14:06 +0200)]
gnulib-tool: Remove old file names from .cvsignore, .gitignore.

* gnulib-tool (func_update_ignorelist): Don't use 'join -v 1' command
on the list of removed files.

11 years agotest-parse-datetime: avoid glibc leap-second glitch
Paul Eggert [Fri, 17 Aug 2012 18:09:12 +0000 (11:09 -0700)]
test-parse-datetime: avoid glibc leap-second glitch

* tests/test-parse-datetime.c (main): Set TZ to US Eastern time
with the 2012 rules.  Problem reported by Bruce Dubbs in
<http://bugs.gnu.org/12206>.

11 years agoautoupdate
Karl Berry [Wed, 15 Aug 2012 13:55:24 +0000 (06:55 -0700)]
autoupdate

11 years agognulib-tool: Fix indentation of generated gnulib-comp.m4 file.
Bruno Haible [Tue, 14 Aug 2012 23:29:28 +0000 (01:29 +0200)]
gnulib-tool: Fix indentation of generated gnulib-comp.m4 file.

* gnulib-tool (func_emit_autoconf_snippet): Initialize indentation
from argument.
Reported and fix suggested by Dmitriy Selyutin <ghostman.sd@gmail.com>.

11 years agoldexp: relax license
Eric Blake [Tue, 14 Aug 2012 16:51:18 +0000 (10:51 -0600)]
ldexp: relax license

* modules/ldexp (License): Trivial relax, since the module only
provides a permissively licensed m4 file.

11 years agoupdate from texinfo
Karl Berry [Mon, 13 Aug 2012 22:48:24 +0000 (15:48 -0700)]
update from texinfo

11 years agognulib-tool: Fix persistence of --witness-c-macro option.
Bruno Haible [Mon, 13 Aug 2012 10:49:34 +0000 (12:49 +0200)]
gnulib-tool: Fix persistence of --witness-c-macro option.

* gnulib-tool (func_import): Fix typo in emit of gl_WITNESS_C_MACRO.
Reported by Dmitriy Selyutin <ghostman.sd@gmail.com>.

11 years agocount-leading-zeros: use a lookup table on non-gcc compilers
Eric Blake [Sat, 11 Aug 2012 13:34:00 +0000 (07:34 -0600)]
count-leading-zeros: use a lookup table on non-gcc compilers

While this only affects non-gcc compilers, we can assume that
lookups are faster than conditionals, even if it results in
a slightly larger executable size.

* lib/count-leading-zeros.h (count_leading_zeros_32): Use an
alternate implementation, suggested by Jim Meyering.

Signed-off-by: Eric Blake <eblake@redhat.com>
11 years agocount-leading-zeros: new module
Eric Blake [Fri, 10 Aug 2012 22:51:08 +0000 (16:51 -0600)]
count-leading-zeros: new module

I needed gcc's clz to determine the most significant bit of a
number (useful for things like truncating to a power of 2),
and was surprised it is not a standardized function (the
opposite direction of finding the least significant bit is
given by ffs).  This borrows heavily from the design of the
count-one-bits module.

* modules/count-leading-zeros: New module.
* m4/count-leading-zeros.m4: New file.
* lib/count-leading-zeros.h: Likewise.
* modules/count-leading-zeros-tests: New test.
* tests/test-count-leading-zeros.c: New file.
* MODULES.html.sh (Integer arithmetic functions): Document it.

Signed-off-by: Eric Blake <eblake@redhat.com>
11 years agomaintainer-makefile: Fix syntax error with dash.
Simon Josefsson [Tue, 7 Aug 2012 06:53:55 +0000 (08:53 +0200)]
maintainer-makefile: Fix syntax error with dash.

* top/maint.mk (sc_vulnerable_makefile_CVE-2009-4029): Quote arguments.
(sc_vulnerable_makefile_CVE-2012-3386): Likewise.

11 years agoextern-inline: also ignore -Wmissing-declarations
Jim Meyering [Sun, 5 Aug 2012 16:41:53 +0000 (18:41 +0200)]
extern-inline: also ignore -Wmissing-declarations

* m4/extern-inline.m4: Also ignore -Wmissing-declarations,
required with gcc-4.8.0-to-be.

11 years agoautoupdate
Karl Berry [Sun, 5 Aug 2012 13:44:31 +0000 (06:44 -0700)]
autoupdate

11 years agomaint.mk: sc_prohibit_magic_number_exit: avoid new false positives
Jim Meyering [Sun, 5 Aug 2012 09:19:19 +0000 (11:19 +0200)]
maint.mk: sc_prohibit_magic_number_exit: avoid new false positives

* top/maint.mk (sc_prohibit_magic_number_exit): Also filter out matches
for /error ?([^,]*)/.  This avoids false-positives for strings like
"Unknown error (252)", introduced via commit v0.0-7538-g92875a6.

11 years agognumakefile: better interaction with Automake-NG
Stefano Lattarini [Thu, 2 Aug 2012 16:51:08 +0000 (18:51 +0200)]
gnumakefile: better interaction with Automake-NG

* modules/gnumakefile [Makefile.am]: The makefiles generated by
Automake-NG always contain a definition of VPATH, even in non-VPATH
builds (its value being simply '.' in that case).  So, in the
'clean-GNUmakefile' rule, to determine whether running under a
VPATH setup, compare '$(srcdir)' to '.' rather than checking whether
'$(VPATH)' expands to the empty string.

11 years agobase64: Use extern C scope in header file, for C++.
Simon Josefsson [Thu, 2 Aug 2012 21:21:02 +0000 (23:21 +0200)]
base64: Use extern C scope in header file, for C++.

* lib/base64.h: Add C++ namespace protection.

11 years agostat-time, timespec, u64: support naive out-of-dir builds
Paul Eggert [Thu, 2 Aug 2012 21:17:33 +0000 (14:17 -0700)]
stat-time, timespec, u64: support naive out-of-dir builds

* lib/stat-time.c, lib/timespec.c, lib/u64.c:
Use '#include "foo.h"', not '#include <foo.h>', when including
one's own interface.  This works better when configuring with
out-of-directory builds, since packages need not add an
otherwise-unnecessary -I$(topdir_src)/lib to DEFAULT_INCLUDES.

11 years agoFix typo: 'linline' -> 'inline' (thanks to Eric Blake).
Paul Eggert [Wed, 1 Aug 2012 21:51:19 +0000 (14:51 -0700)]
Fix typo: 'linline' -> 'inline' (thanks to Eric Blake).

11 years agoKeep the extern-inline macros closer together.
Paul Eggert [Wed, 1 Aug 2012 21:30:54 +0000 (14:30 -0700)]
Keep the extern-inline macros closer together.

11 years agoFix indenting.
Paul Eggert [Sat, 28 Jul 2012 15:34:01 +0000 (08:34 -0700)]
Fix indenting.

11 years agoutimens: use extern-inline
Paul Eggert [Sat, 28 Jul 2012 14:23:54 +0000 (07:23 -0700)]
utimens: use extern-inline

* lib/utimens.c (_GL_UTIMENS_INLINE): Define when including utimens.h.
* lib/utimens.h: Add copyright notice, since this is now large enough
to copyright.  Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
(_GL_UTIMENS_INLINE): New macro.  Use it instead of 'static inline'.
* modules/utimens (Depends-on): Add extern-inline.

11 years agou64: use extern-inline
Paul Eggert [Sat, 28 Jul 2012 14:20:59 +0000 (07:20 -0700)]
u64: use extern-inline

* lib/u64.c: New file.
* lib/u64.h: Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
(_GL_U64_INLINE): New macro.  Use it instead of 'static inline'.
* modules/u64 (Files): Add lib/u64.c.
(Depends-on): Add extern-inline.
(configure.ac): No need to require AC_C_INLINE, since extern-inline
does that now.
(lib_SOURCES): Add u64.c.

11 years agotimespec: use extern-inline
Paul Eggert [Sat, 28 Jul 2012 14:18:23 +0000 (07:18 -0700)]
timespec: use extern-inline

* lib/timespec.c: New file.
* lib/timespec.h: Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
(_GL_TIMESPEC_INLINE): New macro.  Use it instead of 'static inline'.
* modules/timespec (Files): Add lib/timespec.c.
(Depends-on): Add extern-inline.
(lib_SOURCES): Add timespec.c.

11 years agostat-time: use extern-inline
Paul Eggert [Sat, 28 Jul 2012 14:15:59 +0000 (07:15 -0700)]
stat-time: use extern-inline

* lib/stat-time.c: New file.
* lib/stat-time.h: Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
(_GL_STAT_TIME_INLINE): New macro.  Use it instead of 'static inline'.
* modules/stat-time (Files): Add lib/stat-time.c.
(Depends-on): Add extern-inline.
(lib_SOURCES): Add stat-time.c.

11 years agoextern-inline: new module
Paul Eggert [Sat, 28 Jul 2012 14:11:58 +0000 (07:11 -0700)]
extern-inline: new module

* modules/extern-inline, m4/extern-inline.m4: New files.
This is for better support of 'extern inline' a la ISO C99,
with a portable alternative on compilers that do not support
C99-style 'extern inline'.  Using 'extern inline' shrinks the size
of the Emacs executable, when compiled with debugging disabled,
which is a typical way that Emacs is built while developing.