gnulib.git
14 years agolib/gc-pbkdf2-sha1.c: Remove comments from RFC 2898.
Simon Josefsson [Sun, 15 Nov 2009 12:52:55 +0000 (13:52 +0100)]
lib/gc-pbkdf2-sha1.c: Remove comments from RFC 2898.

14 years agofnmatch: avoid compiler warning
Eric Blake [Sat, 14 Nov 2009 22:25:49 +0000 (15:25 -0700)]
fnmatch: avoid compiler warning

cond ? (size_t) : (char* - char* + 1) varies in signedness, but
using 1LU coerces the latter half to unsigned math.

* lib/fnmatch_loop.c (NEW_PATTERN): Coerce addition to unsigned,
to silence compiler warning about mismatch signedness in ?:.
Reported by Robert Millan.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agointprops: add double-inclusion guard
Eric Blake [Sat, 14 Nov 2009 22:09:08 +0000 (15:09 -0700)]
intprops: add double-inclusion guard

* lib/intprops.h: Allow idempotent includes.
Suggested by Bruce Korb.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoopenat: detect Solaris fchownat bug
Eric Blake [Sat, 14 Nov 2009 15:17:44 +0000 (08:17 -0700)]
openat: detect Solaris fchownat bug

Solaris 9 fchownat(dir,"name/",uid,gid,flag) has same bugs as
chown and lchown.

* lib/fchownat.c (rpl_fchownat): Work around Solaris bug.  Avoid
penalizing glibc chownat when only lchownat is broken.
* m4/openat.m4 (gl_FUNC_FCHOWNAT): Replace fchownat if there are
trailing slash bugs.
* doc/posix-functions/fchownat.texi (fchownat): Document the bug.
* modules/openat-tests (Files): Include more files.
(Depends-on): Add mgetgroups, sleep, stat-time.
(configure.ac): Add additional checks.
(Makefile.am): Build new test.
* tests/test-fchownat.c: New file.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agolchown: detect Solaris and FreeBSD bug
Eric Blake [Fri, 13 Nov 2009 04:45:20 +0000 (21:45 -0700)]
lchown: detect Solaris and FreeBSD bug

Solaris 9 and FreeBSD 7.2 lchown("link-to-file/",uid,gid)
mistakenly changes ownership of "file".

* lib/lchown.c (rpl_lchown): Work around bug.
* m4/lchown.m4 (gl_FUNC_LCHOWN): Check for trailing slash bugs.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witness.
* modules/unistd (Makefile.am): Populate it.
* lib/unistd.in.h (lchown): Update declaration.
* doc/posix-functions/lchown.texi (lchown): Document the bug.
* modules/lchown-tests: New file.
* tests/test-lchown.h (test_lchown): Likewise.
* tests/test-lchown.c (main): Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agochown: detect Solaris and FreeBSD bug
Eric Blake [Fri, 13 Nov 2009 04:45:20 +0000 (21:45 -0700)]
chown: detect Solaris and FreeBSD bug

Solaris 9 and FreeBSD 7.2 chown("link-to-file/",uid,gid)
mistakenly changes ownership of "file".

* lib/chown.c (rpl_chown): Work around bug.
* m4/chown.m4 (gl_FUNC_CHOWN): Check for trailing slash bugs.
(gl_PREREQ_CHOWN): Delete.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witness.
* modules/unistd (Makefile.am): Populate it.
* lib/unistd.in.h (chown): Update declaration.
* lib/lchown.c (chown): Update client.
* modules/lchown (Depends-on): Add lstat.
* doc/posix-functions/chown.texi (chown): Document the bug.
* doc/posix-functions/getgroups.texi (getgroups): Document
getgroups pitfall.
* modules/chown-tests: New file.
* tests/test-chown.h (test_chown): Likewise.
* tests/test-chown.c (main): Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agognulib-tool: correctly detect absence of m4 directories
Robert Millan [Sat, 14 Nov 2009 13:45:02 +0000 (06:45 -0700)]
gnulib-tool: correctly detect absence of m4 directories

$m4dirs is incorrectly counting.  In my particular case
(correct value: 0, detected value: 1), this resulted in gnulib-tool
silently exitting with no visible error (and no job done).

* gnulib-tool: Avoid extra newline on data passed to wc -l.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agomaint.mk: Prohibit inclusion of "xalloc.h" without use.
Jim Meyering [Sat, 14 Nov 2009 08:53:26 +0000 (09:53 +0100)]
maint.mk: Prohibit inclusion of "xalloc.h" without use.

* top/maint.mk (sc_prohibit_close_stream_without_use): New rule.

14 years agostrftime.h: wrap funtion declaration in extern "C" block
John W. Eaton [Sat, 14 Nov 2009 07:24:25 +0000 (08:24 +0100)]
strftime.h: wrap funtion declaration in extern "C" block

* lib/strftime.h (nstrftime) [__cplusplus]: Wrap declaration.

14 years agogetgroups: avoid compiler warning
Eric Blake [Fri, 13 Nov 2009 20:31:35 +0000 (13:31 -0700)]
getgroups: avoid compiler warning

* lib/getgroups.c (rpl_getgroups): Delete shadowed variable.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agogetgroups: work around FreeBSD bug
Eric Blake [Fri, 13 Nov 2009 19:53:17 +0000 (12:53 -0700)]
getgroups: work around FreeBSD bug

FreeBSD 7.2 mistakenly succeeds on getgroups(-1,ptr) (POSIX
requires EINVAL failure since -1 is less than the proper result).

* lib/getgroups.c (rpl_getgroups): Work around the bug.
* m4/getgroups.m4 (gl_FUNC_GETGROUPS): Detect the bug.
* doc/posix-functions/getgroups.texi (getgroups): Document it.
* tests/test-getgroups.c (main): Fix buffer overrun.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agogetgroups: avoid compilation failure
Eric Blake [Fri, 13 Nov 2009 16:06:14 +0000 (09:06 -0700)]
getgroups: avoid compilation failure

* lib/getgroups.c (includes): Include <stdint.h> for SIZE_MAX.
* modules/getgroups (Depends-on): Add stdint.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agotest-getgroups: avoid compilation failure
Jim Meyering [Fri, 13 Nov 2009 15:15:23 +0000 (16:15 +0100)]
test-getgroups: avoid compilation failure

* tests/test-getgroups.c: Include <stdint.h> for use of SIZE_MAX.

14 years agomgetgroups: new module, taken from coreutils
Eric Blake [Thu, 12 Nov 2009 18:31:52 +0000 (11:31 -0700)]
mgetgroups: new module, taken from coreutils

Wrapper function that makes using getgroups/getugroups easier to use.
As part of the move from coreutils, convert GETGROUPS_T to gid_t,
and allow mgetgroups(NULL,getegid(),&list) as a way to ensure that
the effective gid is in the list.

* modules/mgetgroups: New file.
* lib/mgetgroups.h: Likewise.
* lib/mgetgroups.c (mgetgroups): Likewise.
* m4/mgetgroups.m4 (gl_MGETGROUPS): Likewise.
* MODULES.html.sh (Users and groups): Mention it.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agogetgroups: don't expose GETGROUPS_T to user
Eric Blake [Thu, 12 Nov 2009 17:19:39 +0000 (10:19 -0700)]
getgroups: don't expose GETGROUPS_T to user

These days, most systems already declare getgroups with gid_t*.
But in the rare case that GETGROUPS_T is still int but gid_t
is short, the user should not have to uglify their code; let
the replacement hide all the magic.

Tested by configuring with ac_cv_type_getgroups=uint64_t on a
platform with 32-bit gid_t, and ignoring compiler warnings.

However, since we don't replace setgroups, the GETGROUPS_T
workaround is still needed there for now.

* lib/getgroups.c (rpl_getgroups): Change signature.  Copy array
an element at a time if GETGROUPS_T is wrong size.
* lib/getugroups.h (getugroups): Change signature.
* lib/unistd.in.h (getgroups): Likewise.
* m4/getgroups.m4 (gl_FUNC_GETGROUPS): Use replacement if
signature needs fixing.
* m4/getugroups.m4 (gl_GETUGROUPS): No longer need
AC_TYPE_GETGROUPS.
* modules/group-member (Depends-on): Add getgroups.
* lib/group-member.c (group_info, get_group_info): Use gid_t.
(group_member): Rely on getgroups replacement.
* lib/getugroups.c (getugroups): Use gid_t.
* tests/test-getgroups.c (main): Likewise.
* NEWS: Mention the signature change.
* doc/posix-functions/getgroups.texi (getgroups): Mention the
problem with signature.
* doc/glibc-functions/setgroups.texi (setgroups): Mention that
GETGROUPS_T is still useful for setgroups.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agogetgroups, getugroups: provide stubs for mingw
Eric Blake [Thu, 12 Nov 2009 16:53:14 +0000 (09:53 -0700)]
getgroups, getugroups: provide stubs for mingw

Avoid link failure on mingw, which lacks getgroups and anything
else related to gid_t management (stat.st_gid is always 0).

* lib/getgroups.c (getgroups): Provide ENOSYS stub for mingw.
* lib/getugroups.c (getugroups): Likewise.
* m4/getgroups.m4 (gl_FUNC_GETGROUPS): Check for missing
function.  Modernize replacement scheme.
(gl_PREREQ_GETGROUPS): Delete.
* m4/getugroups.m4 (gl_GETUGROUPS): Check for <grp.h>.
* modules/getgroups (configure.ac): Declare witness.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add default.
* modules/unistd (Depends-on): Substitute witness.
* lib/unistd.in.h (getgroups): Declare replacement.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agogetgroups: avoid calling exit
Eric Blake [Thu, 12 Nov 2009 16:30:38 +0000 (09:30 -0700)]
getgroups: avoid calling exit

rpl_getgroups should be a library function, comparable to glibc.

* modules/getgroups (Depends-on): Add malloc-posix and unistd,
drop xalloc.
* modules/getgroups-tests (Depends-on, Makefile.am): Drop unneeded
dependencies.
* lib/getgroups.c (rpl_getgroups): Fail with ENOMEM rather than
exiting, in the rare case of malloc failure.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agogetgroups: fix logic error
Eric Blake [Thu, 12 Nov 2009 15:51:45 +0000 (08:51 -0700)]
getgroups: fix logic error

The replacement getgroups mistakenly failed with EINVAL if there
were more than 20 groups, since -1 < n_groups.  Also, realloc
geometrically rather than linearly.

* lib/getgroups.c (rpl_getgroups): Don't fail if current process
has more than 20 groups.
* modules/getgroups-tests: New test.
* tests/test-getgroups.c: New file.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoDrop redundant string.h (silent change).
Simon Josefsson [Fri, 13 Nov 2009 14:00:59 +0000 (15:00 +0100)]
Drop redundant string.h (silent change).

Suggested by Eric Blake <ebb9@byu.net>.

14 years agotest-base64: Improve.
Simon Josefsson [Fri, 13 Nov 2009 13:25:50 +0000 (14:25 +0100)]
test-base64: Improve.

14 years agotests/test-xvasprintf.c: Fix memory leak.
Simon Josefsson [Fri, 13 Nov 2009 12:53:01 +0000 (13:53 +0100)]
tests/test-xvasprintf.c: Fix memory leak.

14 years agotest-xvasprintf: Add %s%s related checks.
Simon Josefsson [Fri, 13 Nov 2009 09:53:06 +0000 (10:53 +0100)]
test-xvasprintf: Add %s%s related checks.

14 years agoversion-etc: match standards.texi style
Eric Blake [Mon, 9 Nov 2009 22:18:13 +0000 (15:18 -0700)]
version-etc: match standards.texi style

This assumes that PACKAGE_BUGREPORTS and PACKAGE_PACKAGER_BUG_REPORTS
are generally email addresses, not URLs.

Coreutils switched to a similar style on 2009-02-01, with no complaints
(the difference is that coreutils inserts the program name, derived
from argv[0], into the bug reporting line).  Around that time,
standards.texi was also updated to mention this style.

* lib/version-etc.c (emit_bug_reporting_address): Drop periods,
and use <> only for URLs.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agofts: do not fail on a submount during traversal
Kamil Dudka [Tue, 10 Nov 2009 13:26:56 +0000 (14:26 +0100)]
fts: do not fail on a submount during traversal

* lib/fts.c (fts_build): Read the stat info again after opening
a directory if the FTS_TIGHT_CYCLE_CHECK flag is set.
Original report at http://bugzilla.redhat.com/501848.

14 years agobootstrap: sync from coreutils
Jim Meyering [Thu, 12 Nov 2009 08:49:39 +0000 (09:49 +0100)]
bootstrap: sync from coreutils

* build-aux/bootstrap (bootstrap_epilogue): New function.
Use git_modules_config in one more place.  This make bootstrap's
--gnulib-srcdir option more useful for testing.

14 years agobootstrap: generalize autoheader check
Jim Meyering [Thu, 12 Nov 2009 08:42:52 +0000 (09:42 +0100)]
bootstrap: generalize autoheader check

* build-aux/bootstrap: Look for AC_CONFIG_HEADER as well as
AC_CONFIG_HEADERS.

14 years agomkfifoat: use new modules for Solaris and BSD bugs
Eric Blake [Wed, 11 Nov 2009 21:22:44 +0000 (14:22 -0700)]
mkfifoat: use new modules for Solaris and BSD bugs

Pick up Solaris 9 and BSD fixes to mkfifo and mknod.  No known
system has mknodat but broken mknod, so there is no need for
rpl_mkfifoat or rpl_mknodat.  Split mknodat into its own file.

* m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Simplify.
* lib/mkfifoat.c (mknodat): Split...
* lib/mknodat.c (mknodat): ...into new file.
* modules/mkfifoat (Files): Ship new file.
(Depends-on): Add mkfifo, mknod.
* modules/mkfifoat-tests (Files): Reuse mkfifo tests.
(Depends-on): Add symlink.
* tests/test-mkfifoat.c (main): Enhance test.  Drop portions now
redundant with test_mkfifo.h.
(do_mkfifoat, do_mknodat): New helpers.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agomknod: new module
Eric Blake [Wed, 11 Nov 2009 20:23:04 +0000 (13:23 -0700)]
mknod: new module

Solaris 9 mknod("name/",mode,dev) mistakenly creates "name" for
non-directory mode.  FreeBSD 7.2 mknod("dangling/",mode,dev)
mistakenly creates the target of the symlink if run as root.
FreeBSD and OpenBSD mknod("fifo",S_IFIFO|mode,0) fails for non-root.
Use of mknod caused link failures on mingw.

* modules/mknod: New file.
* m4/mknod.m4 (gl_FUNC_MKNOD): Likewise.
* lib/mknod.c (mknod): Likewise.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Set witness
defaults.
* modules/sys_stat (Makefile.am): Substitute them.
* lib/sys_stat.in.h (mknod): Declare replacement.
* MODULES.html.sh (Support for systems lacking POSIX:2008):
Document it.
* doc/posix-functions/mknod.texi (mknod): Likewise.
* modules/mknod-tests: New test.
* tests/test-mknod.c: Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agomkfifo: new module
Eric Blake [Wed, 11 Nov 2009 20:22:04 +0000 (13:22 -0700)]
mkfifo: new module

Solaris 9 mkfifo("name/",mode) mistakenly creates "name".
FreeBSD 7.2 mkfifo("dangling/",mode) mistakenly creates a fifo
at the target of "dangling".  Mingw lacks named pipes altogether,
but this at least avoids link failures.

* modules/mkfifo: New file.
* m4/mkfifo.m4 (gl_FUNC_MKFIFO): Likewise.
* lib/mkfifo.c (mkfifo): Likewise.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Set witness
defaults.
* modules/sys_stat (Makefile.am): Substitute them.
* lib/sys_stat.in.h (mkfifo): Declare replacement.
* MODULES.html.sh (Support for systems lacking POSIX:2008):
Document it.
* doc/posix-functions/mkfifo.texi (mkfifo): Likewise.
* modules/mkfifo-tests: New test.
* tests/test-mkfifo.h (test_mkfifo): New file, borrowed in part
from test-mkfifoat.c.
* tests/test-mkfifo.c: New file.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoreadlink: detect FreeBSD bug
Eric Blake [Wed, 11 Nov 2009 13:34:02 +0000 (06:34 -0700)]
readlink: detect FreeBSD bug

readlink("link-to-symlink/",buf,len) mistakenly read the contents
of "symlink", rather than failing.

* m4/readlink.m4 (gl_FUNC_READLINK): Also detect FreeBSD bug with
slash on symlink.
* doc/posix-functions/readlink.texi (readlink): Document the bug.
* tests/test-readlink.h (test_readlink): Enhance test.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agosymlink: detect FreeBSD bug
Eric Blake [Tue, 10 Nov 2009 14:59:39 +0000 (07:59 -0700)]
symlink: detect FreeBSD bug

symlink(name,"dangling/") mistakenly created a symlink at the
target of "dangling".

* m4/symlink.m4 (gl_FUNC_SYMLINK): Also detect FreeBSD bug with
slash on symlink.
* doc/posix-functions/symlink.texi (symlink): Document the bug.
* tests/test-symlink.h (test_symlink): Enhance test.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agolink: detect FreeBSD bug
Eric Blake [Mon, 9 Nov 2009 21:23:11 +0000 (14:23 -0700)]
link: detect FreeBSD bug

link("link-to-file/","a") mistakenly created "a" as a link to "file".

* m4/link.m4 (gl_FUNC_LINK): Also detect FreeBSD bug with slash on
symlink.
* doc/posix-functions/link.texi (link): Document the bug.
* tests/test-link.h (test_link): Enhance test.
* tests/test-linkat.c (main): Update caller.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agounlink, remove: detect FreeBSD bug
Eric Blake [Mon, 9 Nov 2009 17:44:08 +0000 (10:44 -0700)]
unlink, remove: detect FreeBSD bug

unlink("link-to-file/") mistakenly removed "file".

* m4/unlink.m4 (gl_FUNC_UNLINK): Also detect FreeBSD bug with
slash on symlink.
* doc/posix-functions/unlink.texi (unlink): Document the bug.
* doc/posix-functions/remove.texi (remove): Likewise.
* tests/test-unlink.h (test_unlink): Enhance test.
* tests/test-remove.c (main): Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoautoupdate
Karl Berry [Mon, 9 Nov 2009 14:10:03 +0000 (06:10 -0800)]
autoupdate

14 years agorename: detect FreeBSD bug
Eric Blake [Mon, 9 Nov 2009 01:11:50 +0000 (18:11 -0700)]
rename: detect FreeBSD bug

rename("link-to-file/","new") mistakenly succeeded.

* m4/rename.m4 (gl_FUNC_RENAME): Also detect FreeBSD bug with
slash on symlink.
* modules/renameat-tests (Depends-on): Add filenamecat.
* tests/test-rename.h (test_rename): Allow one more errno.
* tests/test-renameat.c (main): Likewise.
* doc/posix-functions/rename.texi (rename): Document the bug.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoopen: detect FreeBSD bug
Eric Blake [Sun, 8 Nov 2009 04:34:32 +0000 (21:34 -0700)]
open: detect FreeBSD bug

open("link-to-file/", O_RDONLY) mistakenly succeeds.  The previous
patch was enough to fix utimens when no fd is involved, but this is
necessary for futimens to pass.

* m4/open.m4 (gl_FUNC_OPEN): Also detect FreeBSD bug with slash on
symlink.
* doc/posix-functions/open.texi (open): Document the bug.
* doc/posix-functions/utimes.texi (utimes): Likewise.
* tests/test-open.h (test_open): Add parameters, and test symlink
handling.
* tests/test-open.c (main): Adjust caller.
* tests/test-fcntl-safer.c (main): Likewise.
* modules/open-tests (Depends-on): Add stdbool, symlink.
* modules/fcntl-safer-tests (Depends-on): Likewise.
* tests/test-openat.c (main): Add test-open tests.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agostat: detect FreeBSD bug
Eric Blake [Sat, 7 Nov 2009 23:59:11 +0000 (16:59 -0700)]
stat: detect FreeBSD bug

Like Solaris 9, FreeBSD 7.2 mistakenly allows stat("link-to-file/").
Unlike Solaris, it correctly forbids stat("file/").  A number of
interfaces are affected (such as utimes), but replacing stat is
enough to catch several by reusing the Solaris 9 fixes.

* m4/stat.m4 (gl_FUNC_STAT): Also detect FreeBSD bug with slash on
symlink.
* doc/posix-functions/stat.texi (stat): Document the bug.
* tests/test-stat.h (test_stat_func): Add argument.
* tests/test-stat.c (main): Adjust caller.
* tests/test-fstatat.c (main): Likewise.
* modules/stat-tests (Depends-on): Add stdbool, symlink.
Reported by Jim Meyering.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agostrftime.c: include ignore-value.h only when FPRINTFTIME is defined
James Youngman [Mon, 9 Nov 2009 10:41:29 +0000 (11:41 +0100)]
strftime.c: include ignore-value.h only when FPRINTFTIME is defined

* lib/strftime.c: Correct placement of #include "ignore-value.h".

14 years agoutimens: remove invalid futimesat call
Jim Meyering [Sun, 8 Nov 2009 11:09:35 +0000 (12:09 +0100)]
utimens: remove invalid futimesat call

* lib/utimens.c (fdutimens) [HAVE_FUTIMESAT]: Remove invalid futimesat
call.  It used the file descriptor of the target file as the DIR_FD
parameter and NULL as the file name.  That caused failure with
errno == EFAULT on FreeBSD-8.0-rc2.

14 years agofflush, freadseek: use fseeko, not fseek
Eric Blake [Sat, 7 Nov 2009 23:03:38 +0000 (16:03 -0700)]
fflush, freadseek: use fseeko, not fseek

Follow our own advice: fseek is not safe to use on large files.

* lib/fflush.c (clear_ungetc_buffer_preserving_position)
(clear_ungetc_buffer): Avoid potential problems on large files.
* lib/freadseek.c (freadseek): Likewise.
* modules/freadseek (Depends-on): Add fseeko.
* modules/fseek (configure.ac): Set a witness.
* tests/test-fflush.c (main): Use fseeko.
* tests/test-fpurge.c (fseek): Disable link warning.
* tests/test-freadable.c (fseek): Likewise.
* tests/test-freading.c (fseek): Likewise.
* tests/test-fseeko.c (fseek): Likewise.
* tests/test-ftell.c (fseek): Likewise.
* tests/test-ftello.c (fseek): Likewise.
* tests/test-fwritable.c (fseek): Likewise.
* tests/test-fwriting.c (fseek): Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoautoupdate
Karl Berry [Sat, 7 Nov 2009 14:19:36 +0000 (06:19 -0800)]
autoupdate

14 years agomodules/memchr (Depends-on): Drop getpagesize dependency.
Simon Josefsson [Fri, 6 Nov 2009 13:37:15 +0000 (14:37 +0100)]
modules/memchr (Depends-on): Drop getpagesize dependency.

14 years agobuild-aux/pmccabe2html: Drop #! header. Doc fix.
Simon Josefsson [Fri, 6 Nov 2009 13:36:24 +0000 (14:36 +0100)]
build-aux/pmccabe2html: Drop #! header.  Doc fix.

14 years agobuild-aux/pmccabe2html: Disable execute bit. Improve example usage.
Simon Josefsson [Fri, 6 Nov 2009 13:30:03 +0000 (14:30 +0100)]
build-aux/pmccabe2html: Disable execute bit. Improve example usage.

14 years agodo-release-commit-and-tag: New module.
Jim Meyering [Fri, 6 Nov 2009 10:01:31 +0000 (11:01 +0100)]
do-release-commit-and-tag: New module.

Automate the release-commit and tag process.
* build-aux/do-release-commit-and-tag: New script, from coreutils.
* modules/do-release-commit-and-tag: New file.
* MODULES.html.sh (Support for maintaining and releasing): Add it.

14 years agomodules/select-tests (test_select_LDADD): Add $(INET_PTON_LIB).
Simon Josefsson [Fri, 6 Nov 2009 09:01:57 +0000 (10:01 +0100)]
modules/select-tests (test_select_LDADD): Add $(INET_PTON_LIB).

14 years agogetaddrinfo: Simplify Link: directive.
Simon Josefsson [Fri, 6 Nov 2009 07:41:12 +0000 (08:41 +0100)]
getaddrinfo: Simplify Link: directive.

14 years agostrtod: detect darwin bug
Eric Blake [Fri, 6 Nov 2009 03:48:01 +0000 (20:48 -0700)]
strtod: detect darwin bug

* m4/strtod.m4 (gl_FUNC_STRTOD): Filter out darwin bug on "nan(".
Reported by Leo Davis.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agofreopen-safer: new module
Eric Blake [Thu, 5 Nov 2009 22:13:00 +0000 (15:13 -0700)]
freopen-safer: new module

* modules/freopen-safer: New module.
* m4/stdio-safer.m4 (gl_FREOPEN_SAFER): New macro.
* lib/freopen-safer.c (freopen_safer): New file.
* lib/stdio-safer.h (freopen_safer): New declaration.
* lib/stdio--.h (freopen): New override.
* MODULES.html.sh (File stream based Input/Output): Mention it.
* doc/posix-functions/freopen.texi (freopen): Mention pitfalls and
freopen-safer module.
* doc/posix-functions/stderr.texi (stderr): Likewise.
* doc/posix-functions/stdin.texi (stdin): Likewise.
* doc/posix-functions/stdout.texi (stdout): Likewise.
* modules/freopen-safer-tests: New test.
* tests/test-reopen-safer.c: New file.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agomaint.mk: Prohibit inclusion of "close-stream.h" without use.
Jim Meyering [Thu, 5 Nov 2009 17:26:32 +0000 (18:26 +0100)]
maint.mk: Prohibit inclusion of "close-stream.h" without use.

* top/maint.mk (sc_prohibit_close_stream_without_use): New rule.

14 years agomodules/pmccabe2html (configure.ac): Check for pmccabe tool.
Simon Josefsson [Thu, 5 Nov 2009 15:43:08 +0000 (16:43 +0100)]
modules/pmccabe2html (configure.ac): Check for pmccabe tool.

14 years agogetaddrinfo (Link): Add $(INET_NTOP_LIB).
Simon Josefsson [Thu, 5 Nov 2009 14:27:35 +0000 (15:27 +0100)]
getaddrinfo (Link): Add $(INET_NTOP_LIB).

14 years agoFix typo in last commit.
Simon Josefsson [Thu, 5 Nov 2009 14:05:18 +0000 (15:05 +0100)]
Fix typo in last commit.

14 years agoinet_ntop, inet_pton: Fix link error.
Simon Josefsson [Thu, 5 Nov 2009 13:42:03 +0000 (14:42 +0100)]
inet_ntop, inet_pton: Fix link error.

14 years agotest-func.c: Also test value of __func__.
Simon Josefsson [Thu, 5 Nov 2009 13:38:10 +0000 (14:38 +0100)]
test-func.c: Also test value of __func__.

14 years agotest-sys_socket: Fix compilation warning.
Simon Josefsson [Thu, 5 Nov 2009 12:54:32 +0000 (13:54 +0100)]
test-sys_socket: Fix compilation warning.

14 years agoFix link error.
Bruno Haible [Thu, 5 Nov 2009 10:46:16 +0000 (11:46 +0100)]
Fix link error.

14 years agoTests for module 'inet_pton'.
Bruno Haible [Thu, 5 Nov 2009 10:43:09 +0000 (11:43 +0100)]
Tests for module 'inet_pton'.

14 years agoTests for module 'inet_ntop'.
Bruno Haible [Thu, 5 Nov 2009 10:40:48 +0000 (11:40 +0100)]
Tests for module 'inet_ntop'.

14 years agostdlib-safer: wrap all mkstemp variants
Eric Blake [Mon, 2 Nov 2009 23:11:18 +0000 (16:11 -0700)]
stdlib-safer: wrap all mkstemp variants

* modules/mkostemp (configure.ac): Set witness.
* modules/mkostemps (configure.ac): Likewise.
* modules/mkstemps (configure.ac): Likewise.
* lib/stdlib-safer.h (mkostemp_safer, mkostemps_safer)
(mkstemps_safer): Wrap more functions.
* lib/stdlib--.h (mkostemp, mkostemps, mkstemps): Default the
wrapping.
* lib/mkstemp-safer.c (mkostemp_safer, mkostemps_safer)
(mkstemps_safer): Implement the wrappers.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agomkstemps, mkostemps: new modules
Eric Blake [Mon, 2 Nov 2009 22:33:10 +0000 (15:33 -0700)]
mkstemps, mkostemps: new modules

* modules/mkostemps: New module.
* modules/mkstemps: Likewise.
* lib/mkostemps.c (mkostemps): New file.
* lib/mkstemps.c (mkstemps): Likewise.
* m4/mkostemps.m4 (gl_FUNC_MKOSTEMPS): Likewise.
* m4/mkstemps.m4 (gl_FUNC_MKSTEMPS): Likewise.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Add witnesses.
* modules/stdlib (Makefile.am): Substitute them.
* lib/stdlib.in.h (mkostemps, mkstemps): Declare them.
* doc/glibc-functions/mkstemps.texi (mkstemps): New file.
* doc/glibc-functions/mkostemps.texi (mkostemps): Likewise.
* doc/gnulib.texi (Glibc stdlib.h): Include them.
* MODULES.html.sh (File system functions): Mention them.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agotempname: resync from glibc
Eric Blake [Mon, 2 Nov 2009 20:19:27 +0000 (13:19 -0700)]
tempname: resync from glibc

* lib/tempname.c (__gen_tempname): Add suffixlen argument.  Use
same values for __GT_FILE as glibc.  Abort even when assertions
are disabled.
* lib/tempname.h (GT_FILE): Use glibc __GT_FILE, if available, and
match its value otherwise.  Allow idempotent inclusion.
* lib/mkdtemp.c (mkdtemp): Adjust caller.
* lib/mkostemp.c (mkostemp): Likewise.
* lib/mkstemp.c (mkstemp): Likewise.
* lib/tmpfile.c (tmpfile): Likewise.
* NEWS: Document this.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoutimens: fix use of futimens on older Linux
Eric Blake [Wed, 4 Nov 2009 13:19:23 +0000 (06:19 -0700)]
utimens: fix use of futimens on older Linux

Using UTIME_OMIT with non-zero seconds was already worked around
for utimensat, but I missed the futimens case.

* lib/utimens.c (fdutimens): Use updated, rather than original,
timespec to avoid bug in older Linux kernel.
Reported by Simon Josefsson.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoMake num_processors more flexible and consistent.
Bruno Haible [Wed, 4 Nov 2009 08:07:54 +0000 (09:07 +0100)]
Make num_processors more flexible and consistent.

14 years agoDocument the new library dependencies of inet_ntop, inet_pton.
Bruno Haible [Wed, 4 Nov 2009 08:02:43 +0000 (09:02 +0100)]
Document the new library dependencies of inet_ntop, inet_pton.

14 years agotest-getaddrinfo: avoid compilation failure on FreeBSD 7.2
Jim Meyering [Tue, 3 Nov 2009 07:53:23 +0000 (08:53 +0100)]
test-getaddrinfo: avoid compilation failure on FreeBSD 7.2

* tests/test-getaddrinfo.c (simple): Test for EAI_NODATA only
if it is defined.

14 years agomktime, timegm: share common declaration
Eric Blake [Mon, 2 Nov 2009 18:39:38 +0000 (11:39 -0700)]
mktime, timegm: share common declaration

* lib/mktime-internal.h: New file.
* lib/mktime.c: Use it rather than open-coding a declaration.
* lib/timegm.c: Likewise.
* modules/mktime (Files): Ship it.
* modules/timegm (Files): Likewise.
Suggested by Bruno Haible.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agotest-update-copyright: update test to match script changes
Eric Blake [Mon, 2 Nov 2009 17:23:33 +0000 (10:23 -0700)]
test-update-copyright: update test to match script changes

* tests/test-update-copyright.sh: Avoid hard-coding perl
location.  Don't update *.bak created by earlier runs.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoFix link error on Solaris 8.
Bruno Haible [Tue, 3 Nov 2009 00:04:41 +0000 (01:04 +0100)]
Fix link error on Solaris 8.

14 years agoAvoid link error for inet_ntop on Solaris.
Simon Josefsson [Mon, 2 Nov 2009 23:49:47 +0000 (00:49 +0100)]
Avoid link error for inet_ntop on Solaris.

14 years agomaint: avoid compiler warnings in m4 macros
Eric Blake [Mon, 2 Nov 2009 13:03:20 +0000 (06:03 -0700)]
maint: avoid compiler warnings in m4 macros

* m4/ungetc.m4 (gl_FUNC_UNGETC_WORKS): Avoid unused variable.
* m4/rmdir.m4 (gl_FUNC_RMDIR): Include correct header.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agopmccabe2html: Don't hard code awk path.
Simon Josefsson [Mon, 2 Nov 2009 10:55:14 +0000 (11:55 +0100)]
pmccabe2html: Don't hard code awk path.

14 years agofseeko: fix m4 regression
Eric Blake [Sat, 31 Oct 2009 13:23:11 +0000 (07:23 -0600)]
fseeko: fix m4 regression

* m4/fseeko.m4 (gl_FUNC_FSEEKO): Use modern macro.  Fixes
regression from 2009-10-27.
Reported by Ralf Wildenhues.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agointtostr: aesthetics and improved (compile-time) safety
Jim Meyering [Sat, 31 Oct 2009 08:42:37 +0000 (09:42 +0100)]
inttostr: aesthetics and improved (compile-time) safety

Define inttype_is_signed rather than inttype_is_unsigned,
since the sole use is via "#if inttype_is_signed".
* lib/imaxtostr.c (inttype_is_signed): Define this, rather than
inttype_is_unsigned.
* lib/offtostr.c (inttype_is_signed): Likewise.
* lib/uinttostr.c (inttype_is_signed): Likewise.
* lib/umaxtostr.c (inttype_is_signed): Likewise.
* lib/inttostr.c (inttostr): Use verify to cross-check the
inttype_is_signed value and the signedness of the actual type.
* modules/inttostr (Depends-on): Add verify.

14 years agobuild: avoid compiler warnings
Eric Blake [Fri, 30 Oct 2009 15:47:12 +0000 (09:47 -0600)]
build: avoid compiler warnings

* lib/fchmodat.c (lchmod): Mark unused variables.
* lib/getopt.c (_getopt_initialize): Likewise.
* lib/mktime.c (__mktime_internal): Provide prototype.
* lib/inttostr.c (inttostr): Avoid compiler warning even with
older gcc that do not understand #pragma GCC diagnostic.
* lib/uinttostr.c (inttype_is_unsigned): Define.
* lib/umaxtostr.c (inttype_is_unsigned): Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agostat: fix compilation on AIX
Michael Haubenwallner [Fri, 30 Oct 2009 23:00:03 +0000 (17:00 -0600)]
stat: fix compilation on AIX

AC_SYS_LARGEFILE turns on large-file support, but in that mode, AIX
provides only struct stat64, and not struct stat.

* lib/sys_stat.in.h (stat): Work with fact that large files on AIX
only see struct stat64.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoexclude: make more robust
Eric Blake [Fri, 30 Oct 2009 12:48:14 +0000 (06:48 -0600)]
exclude: make more robust

* lib/exclude.c (excluded_file_name): Abort on unexpected value,
rather than masking a coding bug.
Suggested by Bruno Haible.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoperl scripts: remove #!/usr/bin/perl in favor of more portable...
Jim Meyering [Fri, 30 Oct 2009 14:02:02 +0000 (15:02 +0100)]
perl scripts: remove #!/usr/bin/perl in favor of more portable...

Rather than putting #!/usr/bin/perl on the first line,
start with a variant of what's recommended by "man perlrun" that
invokes the first "perl" program from your shell's search path.
* build-aux/gitlog-to-changelog: Replace #!... as above.
Add a "Local Variables" perl mode setting.
Prompted by a patch from Ludovic Courtès.
Improved by Eric Blake.
* build-aux/useless-if-before-free: Likewise.
* build-aux/announce-gen: Likewise.
* build-aux/update-copyright: Likewise.

14 years agofilenamecat-lgpl: adjust clients
Eric Blake [Thu, 29 Oct 2009 18:09:48 +0000 (12:09 -0600)]
filenamecat-lgpl: adjust clients

at-func2 still needs xalloc_die because of openat-die, but this
change is still good to make.

* modules/linkat (Depends-on): Use filenamecat-lgpl, not
filenamecat.
* modules/renameat (Depends-on): Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agofilenamecat: split into filenamecat-lgpl
Eric Blake [Thu, 29 Oct 2009 18:00:03 +0000 (12:00 -0600)]
filenamecat: split into filenamecat-lgpl

The concept of filenamecat is simple enough to use in an LGPL
manner, even though current clients are GPL for other reasons.
At any rate, it is nice to separate mfile_name_concat into its
own file so that the linker does not fail without xalloc_die.

* modules/filenamecat-lgpl: New module.
* modules/filenamecat (Files): Move library-safe files into
filenamecat-lgpl.
(Depends-on): Add filenamecat-lgpl.
(configure.ac): Declare witness.
* lib/filenamecat.h (file_name_concat): Only declare when using
GPL module.
* lib/filenamecat.c (longest_relative_suffix, mfile_name_concat):
Move...
* lib/filenamecat-lgpl.c: ...into new file.
* m4/filenamecat.m4 (gl_FILE_NAME_CONCAT_LGPL): New macro.
(gl_FILE_NAME_CONCAT): Use it.
* MODULES.html.sh (File system functions): Mention new module.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoargp: avoid memory leak
Eric Blake [Thu, 29 Oct 2009 19:38:52 +0000 (13:38 -0600)]
argp: avoid memory leak

argp has been leaking memory since commit 79c0a43, in Jul 2006.

* modules/argp (Depends-on): Use dirname-lgpl, not dirname.
* lib/argp-namefrob.h (__argp_base_name): Use last_component, not
base_name, since the latter malloc()s and can call exit().

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agodirname-lgpl: adjust clients that don't need full dirname
Eric Blake [Thu, 29 Oct 2009 17:44:12 +0000 (11:44 -0600)]
dirname-lgpl: adjust clients that don't need full dirname

Some of these modules still use xalloc_die from other paths, but
mkdir and rename are definitely reduced in complexity.

* modules/backupfile (Depends-on): Use dirname-lgpl, not dirname.
* modules/filenamecat (Depends-on): Likewise.
* modules/linkat (Depends-on): Likewise.
* modules/mkancesdirs (Depends-on): Likewise.
* modules/mkdir (Depends-on): Likewise.
* modules/openat (Depends-on): Likewise.
* modules/savewd (Depends-on): Likewise.
* modules/rename (Depends-on): Likewise.
(License): Relax license.
* modules/mkdir-tests (Depends-on): Drop progname.
(Makefile.am): Delete unneeded LDADD.
* modules/rename-tests (Depends-on, Makefile.am): Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agodirname: split into dirname-lgpl
Eric Blake [Thu, 29 Oct 2009 16:43:31 +0000 (10:43 -0600)]
dirname: split into dirname-lgpl

dirname.h is proving quite useful from multiple LGPL modules,
given the number of trailing slash bugs fixed in syscalls;
only the calls to xalloc_die need to remain GPL.

* modules/dirname-lgpl: New module.
* modules/dirname (Files): Move library-safe files into
dirname-lgpl.
(Depends-on): Add dirname-lgpl.
(configure.ac): Declare witness.
* modules/double-slash-root (License): Relax license.
* lib/dirname.h (base_name, dir_name): Only declare when using GPL
module.
* lib/dirname.c (dir_len, mdir_name): Move...
* lib/dirname-lgpl.c: ...into new file.
* lib/basename.c (last_component, base_len): Move...
* lib/basename-lgpl.c: ...into new file.
* m4/dirname.m4 (gl_DIRNAME_LGPL): New macro.
(gl_DIRNAME): Use it.
* MODULES.html.sh (Enhancements for POSIX:2008 functions):
Mention new module.
* modules/dirname-tests (Depends-on): Add progname.
* tests/test-dirname.c (program_name): Delete.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agomkdir: make safe for libraries
Eric Blake [Thu, 29 Oct 2009 15:37:42 +0000 (09:37 -0600)]
mkdir: make safe for libraries

xstrdup is too dangerous to use in a syscall replacement.

* modules/mkdir (Depends-on): Drop xalloc.
* lib/mkdir.c (rpl_mkdir): Fail with ENOMEM rather than calling
exit.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agotests: avoid some compiler warnings
Eric Blake [Thu, 29 Oct 2009 15:15:06 +0000 (09:15 -0600)]
tests: avoid some compiler warnings

Mostly Simon's modules; warnings reported by gcc 4.3.4 on coreutils.

* tests/test-getaddrinfo.c (simple): Mark static, and allow string
literals.
* tests/test-memchr.c (main): Avoid type mismatch.
* tests/test-arpa_inet.c (main): Avoid unused parameters.
* tests/test-base64.c (main): Likewise.
* tests/test-getdelim.c (main): Likewise.
* tests/test-gethostname.c (main): Likewise.
* tests/test-getline.c (main): Likewise.
* tests/test-netinet_in.c (main): Likewise.
* tests/test-select.c (open_server_socket, main): Likewise.
* tests/test-select-stdin.c (main): Likewise.
* tests/test-sockets.c (main): Likewise.
* tests/test-strsignal.c (main): Likewise.
* tests/test-sys_select.c (main): Likewise.
* tests/test-sys_socket.c (main): Likewise.
* tests/test-u64.c (main): Likewise.
* tests/test-xfprintf-posix.c (main): Likewise.
* tests/test-xvasprintf.c (test_xvasprintf, main): Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agosockets: avoid compiler warning
Eric Blake [Thu, 29 Oct 2009 14:47:22 +0000 (08:47 -0600)]
sockets: avoid compiler warning

* lib/sockets.c (gl_sockets_startup): Mark unused parameter.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agomaint: detect usage(1) and other suspicious exits
Eric Blake [Thu, 29 Oct 2009 13:29:26 +0000 (07:29 -0600)]
maint: detect usage(1) and other suspicious exits

* top/maint.mk (sc_prohibit_magic_number_exit): New rule.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agotimespec: long-to-int truncation could make timespec_cmp malfunction
Jim Meyering [Thu, 29 Oct 2009 10:52:34 +0000 (11:52 +0100)]
timespec: long-to-int truncation could make timespec_cmp malfunction

* lib/timespec.h (timespec_cmp): Do not interpret a difference of
a multiple of 2^32 nanoseconds as no difference.

14 years agofprintftime: wrap macro code argument in "do {...} while(0)"
Jim Meyering [Wed, 28 Oct 2009 10:25:29 +0000 (11:25 +0100)]
fprintftime: wrap macro code argument in "do {...} while(0)"

* lib/strftime.c (cpy) [FPRINTFTIME]: The second argument to the
cpy macro must be a statement that can be followed by a semicolon.
Now that the else clause contains a comment and is hence longer
than one line, I require curly braces.  That in turn requires
that we wrap this code block in the standard do...while(0).

14 years agofprintftime: remove stray semicolon from previous change
Jim Meyering [Wed, 28 Oct 2009 10:07:31 +0000 (11:07 +0100)]
fprintftime: remove stray semicolon from previous change

* lib/strftime.c (cpy) [FPRINTFTIME]: Remove trailing semicolon.

14 years agofprintftime: avoid a warning about ignored fwrite return value
Jim Meyering [Wed, 28 Oct 2009 09:24:09 +0000 (10:24 +0100)]
fprintftime: avoid a warning about ignored fwrite return value

* lib/strftime.c [FPRINTFTIME]: Include "ignore-value.h".
(cpy) [FPRINTFTIME]: Ignore fwrite failure, even though technically,
that is unsafe.
* modules/fprintftime (Depends-on): Add ignore-value.

14 years agoexclude: avoid an unwarranted warning
Jim Meyering [Wed, 28 Oct 2009 08:26:04 +0000 (09:26 +0100)]
exclude: avoid an unwarranted warning

* lib/exclude.c (excluded_file_name): Initialize "rc" before switch.

14 years agofseek: avoid compilation failure when fflush is replaced
Eric Blake [Tue, 27 Oct 2009 16:42:50 +0000 (10:42 -0600)]
fseek: avoid compilation failure when fflush is replaced

./gnulib-tool --import fseek fwritable failed on Debian, due
to broken fflush() pulling in rpl_fseeko that mistakenly
overwrote fseek() as function-like macro.

* m4/fseek.m4 (gl_REPLACE_FSEEK): New macro.
* m4/fseeko.m4 (gl_REPLACE_FSEEKO): Also replace fseek, if fseek
module is in use.
* lib/stdio.in.h (GNULIB_FSEEKO): Only poison fseek if fseek
module is not in use; since REPLACE_FSEEK worked otherwise.
(GNULIB_FTELLO): Likewise for ftell.
Reported by Ian Beckwith and others.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoAvoid a nearly redundant gcc warning.
Bruno Haible [Wed, 28 Oct 2009 00:22:40 +0000 (01:22 +0100)]
Avoid a nearly redundant gcc warning.

14 years agoAvoid warning despite dropping the return value of fwrite.
Bruno Haible [Tue, 27 Oct 2009 23:51:42 +0000 (00:51 +0100)]
Avoid warning despite dropping the return value of fwrite.

14 years agoareadlinkat: fix fallback path
Eric Blake [Tue, 27 Oct 2009 03:41:21 +0000 (21:41 -0600)]
areadlinkat: fix fallback path

* lib/at-func.c (AT_FUNC_NAME): Avoid signed comparison between
pointer and zero.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agodigests, copy-file: increase the IO buffer size from 4KiB to 32KiB
Pádraig Brady [Thu, 22 Oct 2009 16:36:28 +0000 (17:36 +0100)]
digests, copy-file: increase the IO buffer size from 4KiB to 32KiB

This results in a significant decrease in syscall overhead
giving a 3% speedup to the digest utilities for example
(when processing large files from cache).
Storage is moved from the stack to the heap as some
threaded environments for example can have small stacks.

* lib/copy-file.c (copy_file_preserving): Use a 32KiB malloced buffer
* modules/copy-file: Depend on xalloc
* lib/md2.c: Likewise
* lib/md4.c: Likewise
* lib/md5.c: Likewise
* lib/sha1.c: Likewise
* lib/sha256.c: Likewise
* lib/sha512.c: Likewise

14 years agotests: avoid several compiler warnings
Eric Blake [Thu, 22 Oct 2009 13:59:46 +0000 (07:59 -0600)]
tests: avoid several compiler warnings

* tests/test-getcwd.c (main): Avoid buffer underflow.
* tests/test-getdate.c (main): String literals are not safe with
putenv, so use setenv.  Declare unused argument.
* modules/getdate-tests (Depends-on): Add setenv.
* tests/test-argv-iter.c (main): Declare unused argument.  Avoid
problems with string literals in char *.
* tests/test-hash.c (main): Avoid shadowing declaration.
(insert_new): Treat string literals as char const *.
* tests/test-getopt.h (test_getopt): Likewise.
(getopt_loop): Alter types to minimize casting elsewhere.
* tests/test-getopt_long.h (test_getopt_long, getopt_long_loop)
(test_getopt_long_posix): Likewise.
(do_getopt_long): Add wrapper to minimize casting.
* tests/test-atexit.c (clear_temp_file): Use void.
* tests/test-areadlink-with-size.c (main): Declare unused
arguments.
* tests/test-areadlink.c (main): Likewise.
* tests/test-areadlinkat-with-size.c (main): Likewise.
* tests/test-areadlinkat.c (main): Likewise.
* tests/test-canonicalize-lgpl.c (main): Likewise.
* tests/test-canonicalize.c (main): Likewise.
* tests/test-dirent-safer.c (main): Likewise.
* tests/test-dirname.c (main): Likewise.
* tests/test-dup2.c (main): Likewise.
* tests/test-fchdir.c (main): Likewise.
* tests/test-fcntl-h.c (main): Likewise.
* tests/test-fcntl-safer.c (main): Likewise.
* tests/test-fdopendir.c (main): Likewise.
* tests/test-fdutimensat.c (main): Likewise.
* tests/test-fflush.c (main): Likewise.
* tests/test-filenamecat.c (main): Likewise.
* tests/test-filevercmp.c (main): Likewise.
* tests/test-fopen-safer.c (main): Likewise.
* tests/test-fopen.c (main): Likewise.
* tests/test-fpending.c (main): Likewise.
* tests/test-fpurge.c (main): Likewise.
* tests/test-freading.c (main): Likewise.
* tests/test-fstatat.c (main): Likewise.
* tests/test-fsync.c (main): Likewise.
* tests/test-futimens.c (main): Likewise.
* tests/test-getndelim2.c (main): Likewise.
* tests/test-gettimeofday.c (main): Likewise.
* tests/test-getopt.c (main): Likewise.
* tests/test-i-ring.c (main): Likewise.
* tests/test-inttypes.c (main): Likewise.
* tests/test-link.c (main): Likewise.
* tests/test-lstat.c (main): Likewise.
* tests/test-math.c (main): Likewise.
* tests/test-md5.c (main): Likewise.
* tests/test-memchr2.c (main): Likewise.
* tests/test-memrchr.c (main): Likewise.
* tests/test-mkdir.c (main): Likewise.
* tests/test-mkdirat.c (main): Likewise.
* tests/test-mkfifoat.c (main): Likewise.
* tests/test-open.c (main): Likewise.
* tests/test-openat-safer.c (main): Likewise.
* tests/test-openat.c (main): Likewise.
* tests/test-quotearg.c (main): Likewise.
* tests/test-rawmemchr.c (main): Likewise.
* tests/test-readlink.c (main): Likewise.
* tests/test-remove.c (main): Likewise.
* tests/test-rename.c (main): Likewise.
* tests/test-renameat.c (main): Likewise.
* tests/test-rmdir.c (main): Likewise.
* tests/test-sha1.c (main): Likewise.
* tests/test-signal.c (main): Likewise.
* tests/test-sigaction.c (main): Likewise.
* tests/test-stat.c (main): Likewise.
* tests/test-stat-time.c (main): Likewise.
* tests/test-stddef.c (main): Likewise.
* tests/test-stdint.c (main): Likewise.
* tests/test-stdio.c (main): Likewise.
* tests/test-stdlib.c (main): Likewise.
* tests/test-strchrnul.c (main): Likewise.
* tests/test-strerror.c (main): Likewise.
* tests/test-string.c (main): Likewise.
* tests/test-strtod.c (main): Likewise.
* tests/test-strverscmp.c (main): Likewise.
* tests/test-symlink.c (main): Likewise.
* tests/test-symlinkat.c (main): Likewise.
* tests/test-sys_stat.c (main): Likewise.
* tests/test-sys_time.c (main): Likewise.
* tests/test-time.c (main): Likewise.
* tests/test-unistd.c (main): Likewise.
* tests/test-unlink.c (main): Likewise.
* tests/test-unlinkat.c (main): Likewise.
* tests/test-utimens.c (main): Likewise.
* tests/test-utimensat.c (main): Likewise.
* tests/test-version-etc.c (main): Likewise.
* tests/test-wchar.c (main): Likewise.
* tests/test-wctype.c (main): Likewise.
* tests/test-xprintf-posix.c (main): Likewise.
* tests/test-posixtm.c (main): Likewise.
(STREQ): Delete unused macro.
* tests/test-linkat.c (main): Declare unused arguments.  Avoid
shadowed variables.
* tests/test-memchr.c (main): Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoareadlinkat: avoid failure on older glibc
Eric Blake [Thu, 22 Oct 2009 03:01:41 +0000 (21:01 -0600)]
areadlinkat: avoid failure on older glibc

Acting on /proc/self/-1/name gives ENOTDIR.  at-func normally falls
back to fchdir, which discovers the real problem of invalid fd and
changes to EBADF; but for areadlinkat, it mistakenly short-circuited
when FUNC_FAIL was NULL (since 0<=(char*)result is always true).

* lib/at-func.c (AT_FUNC_NAME): Check for explicit FUNC_FAIL,
rather than mis-comparing 0 against FUNC_RESULT of char*.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoRelicense stpncpy under LGPLv2+.
Bruno Haible [Thu, 22 Oct 2009 00:00:21 +0000 (02:00 +0200)]
Relicense stpncpy under LGPLv2+.