gnulib.git
14 years agoUse the standard header with GPL copyright.
Bruno Haible [Sat, 19 Sep 2009 08:47:54 +0000 (10:47 +0200)]
Use the standard header with GPL copyright.

14 years agoUse the standard header with LGPL copyright.
Bruno Haible [Sat, 19 Sep 2009 08:45:46 +0000 (10:45 +0200)]
Use the standard header with LGPL copyright.

14 years agoautoupdate
Karl Berry [Fri, 18 Sep 2009 13:27:23 +0000 (06:27 -0700)]
autoupdate

14 years agoAdd advice to an error message.
Bruno Haible [Fri, 18 Sep 2009 06:59:54 +0000 (08:59 +0200)]
Add advice to an error message.

14 years agocanonicalize: in CAN_ALL_BUT_LAST, allow trailing slash
Eric Blake [Sat, 12 Sep 2009 12:04:46 +0000 (06:04 -0600)]
canonicalize: in CAN_ALL_BUT_LAST, allow trailing slash

Coreutils' `readlink -f foo/' should not fail if lstat("foo")
gives ENOENT.

* lib/canonicalize.c (canonicalize_filename_mode): Skip trailing
slashes when checking if last component is missing.
* tests/test-canonicalize.c (main): Test this.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agocanonicalize, canonicalize-lgpl: honor // if distinct from /
Eric Blake [Thu, 10 Sep 2009 23:21:09 +0000 (17:21 -0600)]
canonicalize, canonicalize-lgpl: honor // if distinct from /

* modules/canonicalize (Files): Add double-slash-root.m4.
* modules/canonicalize-lgpl (Files): Likewise.
* m4/canonicalize.m4 (gl_FUNC_CANONICALIZE_FILENAME_MODE)
(gl_CANONICALIZE_LGPL_SEPARATE): Add dependency.
* lib/canonicalize.c (DOUBLE_SLASH_IS_DISTINCT_ROOT): Provide
fallback definition.
(canonicalize_filename_mode): Use it to protect //.
* lib/canonicalize-lgpl.c (DOUBLE_SLASH_IS_DISTINCT_ROOT)
(__realpath): Likewise.
* tests/test-canonicalize.c (main): Test this.
* tests/test-canonicalize-lgpl.c (main): Likewise.
* modules/canonicalize-tests (Depends-on): Add same-inode.
* modules/canonicalize-lgpl-tests (Depends-on): Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agocanonicalize-lgpl: fix glibc bug with trailing slash
Eric Blake [Fri, 11 Sep 2009 19:57:55 +0000 (13:57 -0600)]
canonicalize-lgpl: fix glibc bug with trailing slash

Consolidate the m4 macros into a single file, since both modules
now have to worry about replacing canonicalize_file_name on
buggy glibc.

* m4/canonicalize-lgpl.m4: Move contents...
* m4/canonicalize.m4: ...here.
(gl_CANONICALIZE_LGPL): Factor realpath check...
(gl_FUNC_REALPATH_WORKS): ...into new macro.  Enhance to catch
glibc 2.3.5 bug, fixed 2005-04-27.
(gl_FUNC_CANONICALIZE_FILENAME_MODE): Use it.
(gl_PREREQ_CANONICALIZE_LGPL): Inline...
(gl_CANONICALIZE_LGPL_SEPARATE): ...into this macro.
* modules/canonicalize-lgpl (Files): Manage file rename.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Provide default.
* modules/stdlib (Makefile.am): Substitute witness.
* lib/stdlib.in.h (canonicalize_file_name): Declare if replacement
is needed.
* lib/canonicalize-lgpl.c: Also compile if canonicalize_file_name
replacement is required.
* lib/canonicalize.c (canonicalize_file_name): Likewise.
* doc/glibc-functions/canonicalize_file_name.texi
(canonicalize_file_name): Document this.
* doc/posix-functions/realpath.texi (realpath): Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agocanonicalize-lgpl: reject non-directory with trailing slash
Eric Blake [Fri, 11 Sep 2009 19:31:06 +0000 (13:31 -0600)]
canonicalize-lgpl: reject non-directory with trailing slash

This synchronizes glibc to gnulib.  For gnulib to glibc, see:
http://sources.redhat.com/bugzilla/show_bug.cgi?id=10635

* lib/canonicalize-lgpl.c (__realpath): Synchronize with glibc.
* tests/test-canonicalize-lgpl.c (main): Enhance test.  This
catches failures in glibc 2.3.5.
* tests/test-canonicalize.c (main): Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agocanonicalize-lgpl: use native realpath if it works
Eric Blake [Thu, 10 Sep 2009 21:44:15 +0000 (15:44 -0600)]
canonicalize-lgpl: use native realpath if it works

Forward-looking to when more platforms comply with POSIX 2008,
but don't provide glibc extensions.  For example, this could
fix // handling in cygwin 1.7 (well, if cygwin didn't have bugs
in .. handling).  canonicalize can't use native realpath, for
the same reason that it does not use resolvepath.

* lib/canonicalize-lgpl.c (realpath): Guard with
FUNC_REALPATH_WORKS.
* lib/stdlib.in.h (realpath): Make declaration optional based on
HAVE_REALPATH.
* m4/canonicalize-lgpl.m4 (gl_CANONICALIZE_LGPL): Check whether
native realpath works.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Provide default.
* modules/stdlib (Makefile.am): Substitute witness.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agocanonicalize, canonicalize-lgpl: use <stdlib.h>
Eric Blake [Fri, 11 Sep 2009 18:18:10 +0000 (12:18 -0600)]
canonicalize, canonicalize-lgpl: use <stdlib.h>

Match current gnulib conventions of glibc functions being declared in
the same header as glibc.  This makes it easier to replace broken
canonicalize_file_name.  canonicalize still requires "canonicalize.h"
because canonicalize_filename_mode is not in glibc.  With this patch,
canonicalize-lgpl always provides realpath and canonicalize_file_name,
while canonicalize can provide canonicalize_file_name but not
realpath; if both modules are in use, canonicalize_file_name comes
from the LGPLv2+ sources, but the testing comes from canonicalize.

* modules/canonicalize-lgpl (Files): Drop canonicalize.h.
(Include): Mention <stdlib.h>.
(configure.ac): Mention functions we provide.
* modules/canonicalize (configure.ac): Likewise.
* m4/canonicalize-lgpl.m4 (gl_CANONICALIZE_LGPL): Always replace
realpath if canonicalize_file_name is missing.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Provide defaults.
* modules/stdlib (Makefile.am): Substitute witnesses.
* lib/stdlib.in.h (canonicalize_file_name, realpath): Declare.
* lib/canonicalize-lgpl.c (includes): Adjust accordingly.
* lib/canonicalize.h (canonicalize_file_name): Drop declaration.
* NEWS: Document this.
* doc/glibc-functions/canonicalize_file_name.texi
(canonicalize_file_name): Likewise.
* doc/posix-functions/realpath.texi (realpath): Likewise.
* tests/test-canonicalize-lgpl.c (includes): Use <stdlib.h>.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agotest-canonicalize: consolidate into single C program
Eric Blake [Fri, 11 Sep 2009 15:53:44 +0000 (09:53 -0600)]
test-canonicalize: consolidate into single C program

* tests/test-canonicalize.sh: Delete; move setup into...
* tests/test-canonicalize.c (main): ...the program, making it
easier to run in debugger.  Add some tests.
* modules/canonicalize-tests (Files): Remove unused file.
(Depends-on): Add progname.
(configure.ac, Makefile.am): Simplify.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agotest-canonicalize-lgpl: consolidate into single C program
Eric Blake [Fri, 11 Sep 2009 14:59:54 +0000 (08:59 -0600)]
test-canonicalize-lgpl: consolidate into single C program

Testing canonicalize bugs is easier if the setup can be run under
control of the debugger, rather than in a driver script.  As a
bonus side effect, parallel testing with test-canonicalize no
longer competes for the file name "./ise".

* tests/test-canonicalize-lgpl.sh: Delete; move setup into...
* tests/test-canonicalize-lgpl.c (main): ...the program, making it
easier to run in debugger.  Add some tests.
* modules/canonicalize-lgpl-tests (Files): Remove unused file.
(configure.ac, Makefile.am): Simplify.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agocanonicalize: avoid resolvepath
Eric Blake [Fri, 11 Sep 2009 20:57:01 +0000 (14:57 -0600)]
canonicalize: avoid resolvepath

Back when canonicalize merely provided canonicalize_file_name,
resolvepath was more efficient than implementing a complete
realpath.  But since resolvepath can't implement other modes for
canonicalize_filename_mode, using it is now just bulk on Solaris.

* m4/canonicalize.m4 (gl_FUNC_CANONICALIZE_FILENAME_MODE): Delete
unnecessary checks.
* lib/canonicalize.c (includes): Simplify.
(canonicalize_file_name): Drop resolvepath implementation.
* modules/canonicalize (Depends-on): Drop filenamecat.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agocanonicalize: don't lose errno
Eric Blake [Wed, 16 Sep 2009 19:51:50 +0000 (13:51 -0600)]
canonicalize: don't lose errno

canonicalize-lgpl was already immune; glibc has the same bug:
http://sources.redhat.com/bugzilla/show_bug.cgi?id=10635

* lib/canonicalize.c (canonicalize_filename_mode): Protect errno
over calls to free.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agocanonicalize: simplify errno handling
Eric Blake [Wed, 16 Sep 2009 19:49:10 +0000 (13:49 -0600)]
canonicalize: simplify errno handling

This file originally forked from glibc, but has had so many other
changes that it does not need to maintain glibc macros.

* lib/canonicalize.c (__set_errno): Delete macro, and use direct
assignment.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agocanonicalize, canonicalize-lgpl: update module dependencies
Eric Blake [Fri, 11 Sep 2009 14:34:37 +0000 (08:34 -0600)]
canonicalize, canonicalize-lgpl: update module dependencies

The m4 files were checking whether canonicalize_file_name was
declared, but without enabling extensions, this would never
succeed.  Also, mingw failed to compile the module combination of
canonicalize-lgpl and sys_stat, due to a link error on lstat.

* modules/canonicalize (Depends-on): Add extensions, lstat,
pathmax, stdlib.
(Files): Drop pathmax.h.
(configure.ac): Adjust macro name.
* modules/canonicalize-lgpl (Depends-on): Add errno, extensions,
lstat, stdlib, sys_stat.
* m4/canonicalize.m4 (AC_FUNC_CANONICALIZE_FILE_NAME): Rename...
(gl_FUNC_CANONICALIZE_FILENAME_MODE): ...to this, and require
extensions.
* m4/canonicalize-lgpl.m4 (gl_CANONICALIZE_LGPL)
(gl_CANONICALIZE_LGPL_SEPARATE): Require extensions.
(gl_PREREQ_CANONICALIZE_LGPL): Assume unistd.h.
* lib/canonicalize.h (canonicalize_file_name): Use <stdlib.h>
declaration, if available.
* lib/canonicalize-lgpl.c [HAVE_READLINK]: Delete this condition;
we can rely on the readlink module.
(MAXSYMLINKS): Also consult SYMLOOP_MAX.
(includes): Use <unistd.h> unconditionally.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agomaint: make Include sections of modules consistent
Eric Blake [Thu, 17 Sep 2009 17:49:36 +0000 (11:49 -0600)]
maint: make Include sections of modules consistent

Done with "sed -i 's/^#include //' `git grep -l ^#include modules`".

* modules/alloca: Use only header name; no need to list #include.
* modules/alloca-opt: Likewise.
* modules/arpa_inet: Likewise.
* modules/canon-host: Likewise.
* modules/configmake: Likewise.
* modules/dirent: Likewise.
* modules/eealloc: Likewise.
* modules/environ: Likewise.
* modules/fchdir: Likewise.
* modules/fcntl: Likewise.
* modules/fcntl-h: Likewise.
* modules/gethrxtime: Likewise.
* modules/gettime: Likewise.
* modules/ignore-value: Likewise.
* modules/inet_ntop: Likewise.
* modules/inet_pton: Likewise.
* modules/inttypes: Likewise.
* modules/isnand-nolibm: Likewise.
* modules/isnanf-nolibm: Likewise.
* modules/mbchar: Likewise.
* modules/mbfile: Likewise.
* modules/mbiter: Likewise.
* modules/mbuiter: Likewise.
* modules/netdb: Likewise.
* modules/netinet_in: Likewise.
* modules/nproc: Likewise.
* modules/pagealign_alloc: Likewise.
* modules/poll: Likewise.
* modules/printf-frexp: Likewise.
* modules/pthread: Likewise.
* modules/putenv: Likewise.
* modules/random_r: Likewise.
* modules/relocatable-prog: Likewise.
* modules/search: Likewise.
* modules/select: Likewise.
* modules/selinux-h: Likewise.
* modules/settime: Likewise.
* modules/signal: Likewise.
* modules/size_max: Likewise.
* modules/socklen: Likewise.
* modules/ssize_t: Likewise.
* modules/stdarg: Likewise.
* modules/stdbool: Likewise.
* modules/stddef: Likewise.
* modules/stdint: Likewise.
* modules/stdio: Likewise.
* modules/stdlib: Likewise.
* modules/string: Likewise.
* modules/strings: Likewise.
* modules/sys_file: Likewise.
* modules/sys_ioctl: Likewise.
* modules/sys_select: Likewise.
* modules/sys_socket: Likewise.
* modules/sys_stat: Likewise.
* modules/sys_time: Likewise.
* modules/sys_times: Likewise.
* modules/sys_utsname: Likewise.
* modules/sys_wait: Likewise.
* modules/sysexits: Likewise.
* modules/time: Likewise.
* modules/times: Likewise.
* modules/tmpfile: Likewise.
* modules/trim: Likewise.
* modules/unistd: Likewise.
* modules/wchar: Likewise.
* modules/wctype: Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoChangeLog: tweak wording of prior commit
Eric Blake [Thu, 17 Sep 2009 22:50:56 +0000 (16:50 -0600)]
ChangeLog: tweak wording of prior commit

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoMake getdate.y compile on QNX and NetBSD 5 / i386.
Bruno Haible [Thu, 17 Sep 2009 20:42:33 +0000 (22:42 +0200)]
Make getdate.y compile on QNX and NetBSD 5 / i386.

14 years agoTweak copyright statements.
Bruno Haible [Thu, 17 Sep 2009 20:07:35 +0000 (22:07 +0200)]
Tweak copyright statements.

14 years agoUpdate references for gnuit package.
Ian Beckwith [Thu, 17 Sep 2009 19:59:08 +0000 (21:59 +0200)]
Update references for gnuit package.

14 years agoFix typo in copyright line.
Ian Beckwith [Thu, 17 Sep 2009 19:58:04 +0000 (21:58 +0200)]
Fix typo in copyright line.

14 years agoUse the standard header with GPL copyright.
Bruno Haible [Thu, 17 Sep 2009 19:45:28 +0000 (21:45 +0200)]
Use the standard header with GPL copyright.

14 years agousers.txt: add augeas and netcf
David Lutterkort [Thu, 17 Sep 2009 18:17:59 +0000 (11:17 -0700)]
users.txt: add augeas and netcf

14 years agormdir: ensure correct dependency order
Eric Blake [Thu, 17 Sep 2009 12:55:43 +0000 (06:55 -0600)]
rmdir: ensure correct dependency order

* m4/rmdir.m4 (gl_FUNC_RMDIR): Require unistd defaults.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoDisable assertion that fails on NetBSD 5 / i386.
Bruno Haible [Thu, 17 Sep 2009 06:07:50 +0000 (08:07 +0200)]
Disable assertion that fails on NetBSD 5 / i386.

14 years agounlinkdir: port to mingw
Eric Blake [Wed, 16 Sep 2009 23:18:28 +0000 (17:18 -0600)]
unlinkdir: port to mingw

* m4/unlinkdir.m4 (gl_UNLINKDIR): Add mingw to list of platforms
that refuse anyone to unlink a directory.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agostdlib: sort witness names
Eric Blake [Thu, 10 Sep 2009 20:10:41 +0000 (14:10 -0600)]
stdlib: sort witness names

* modules/stdlib (Makefile.am): Sort replacements.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Likewise.
* lib/stdlib.in.h: Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoparse-duration-tests: avoid link failure
Eric Blake [Wed, 16 Sep 2009 17:49:31 +0000 (11:49 -0600)]
parse-duration-tests: avoid link failure

* modules/parse-duration-tests (test_parse_duration_LDADD): Add
LIBINTL.
Reported by Tom G. Christensen.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoopenat-tests: ensure unlinkat behaves like rmdir
Eric Blake [Wed, 16 Sep 2009 19:21:46 +0000 (13:21 -0600)]
openat-tests: ensure unlinkat behaves like rmdir

* tests/test-rmdir.c (main): Factor guts...
* tests/test-rmdir.h (test_rmdir_func): ...into new file.
* modules/rmdir-tests (Files): Ship new file.
* modules/openat-tests: New test.
* tests/test-unlinkat.c: Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agormdir-errno: mark obsolete, it is unsafe for cross-compilation
Eric Blake [Wed, 16 Sep 2009 19:31:05 +0000 (13:31 -0600)]
rmdir-errno: mark obsolete, it is unsafe for cross-compilation

* modules/rmdir-errno (Status, Notice): Now obsolete.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agormdir: work around cygwin 1.5.x and mingw bugs
Eric Blake [Wed, 16 Sep 2009 16:08:55 +0000 (10:08 -0600)]
rmdir: work around cygwin 1.5.x and mingw bugs

* m4/rmdir.m4 (gl_FUNC_RMDIR): Detect the bugs.
* lib/rmdir.c (rmdir): Work around it.
* modules/rmdir (Status, Notice): No longer obsolete.
(Files): Add dos.m4.
(Depends-on): Add unistd.
(configure.ac): Set witnesses.
(License): Relax to LGPLv2+.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Set defaults.
* modules/unistd (Makefile.am): Substitute witnesses.
* lib/unistd.in.h (rmdir): Declare replacement.
* doc/posix-functions/rmdir.texi (rmdir): Document this.
* modules/rmdir-tests: New tests.
* tests/test-rmdir.c: Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agofchdir: improve use of replacement functions
Eric Blake [Tue, 15 Sep 2009 21:54:43 +0000 (15:54 -0600)]
fchdir: improve use of replacement functions

* m4/fchdir.m4 (gl_FUNC_FCHDIR): Set appropriate witnesses.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Add REPLACE_FSTAT.
* m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): Add REPLACE_OPENDIR,
REPLACE_CLOSEDIR.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add REPLACE_DUP.
* modules/sys_stat (Makefile.am): Substitute correct witness.
* modules/dirent (Makefile.am): Likewise.
* modules/unistd (Makefile.am): Likewise.
* lib/dirent.in.h (opendir, closedir): Use better witnesses.
* lib/unistd.in.h (dup): Likewise.
* lib/sys_stat.in.h (fstat): Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agomaint: ignore gnulib-tool temp files
Eric Blake [Tue, 15 Sep 2009 21:56:39 +0000 (15:56 -0600)]
maint: ignore gnulib-tool temp files

* .gitignore: Ignore files created during gnulib-tool --test.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years ago-mautoupdate
Karl Berry [Tue, 15 Sep 2009 14:06:46 +0000 (07:06 -0700)]
-mautoupdate

14 years agoposixtm: don't reject a time with "60" as the number of seconds
Jim Meyering [Sat, 12 Sep 2009 22:35:49 +0000 (00:35 +0200)]
posixtm: don't reject a time with "60" as the number of seconds

* lib/posixtm.c (posixtime): The code to reject invalid dates would
also reject a time specified with the .60 suffix, whereas POSIX allows
that, in order to accommodate leap seconds.  Don't reject that.
(main): Adjust tests accordingly.
* modules/posixtm (Depends-on): Add stpcpy.

14 years agoannounce-gen: include [$release_type] in emitted Subject:
Jim Meyering [Fri, 11 Sep 2009 10:23:14 +0000 (12:23 +0200)]
announce-gen: include [$release_type] in emitted Subject:

* build-aux/announce-gen (get_tool_versions): Include [$release_type],
e.g., [stable] in the emitted Subject: line.

14 years agoRemove obsolete macros from several modules.
Ralf Wildenhues [Thu, 10 Sep 2009 18:54:34 +0000 (20:54 +0200)]
Remove obsolete macros from several modules.

* m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Replace
obsolete Autoconf macros with their modern counterparts.
* m4/check-math-lib.m4 (gl_CHECK_MATH_LIB): Likewise.
* m4/gc-camellia.m4 (gl_GC_CAMELLIA): Likewise.
* m4/getaddrinfo.m4 (gl_GETADDRINFO): Likewise.
* m4/getdate.m4 (gl_C_COMPOUND_LITERALS): Likewise.
* m4/gethostname.m4 (gl_FUNC_GETHOSTNAME): Likewise.
* m4/getline.m4 (gl_FUNC_GETLINE): Likewise.
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Likewise.
* m4/isfinite.m4 (gl_ISFINITEL_WORKS): Likewise.
* m4/poll.m4 (gl_FUNC_POLL): Likewise.
* m4/readline.m4 (gl_FUNC_READLINE): Likewise.
* m4/round.m4 (gl_FUNC_ROUND): Likewise.
* m4/roundf.m4 (gl_FUNC_ROUNDF): Likewise.
* m4/select.m4 (gl_FUNC_SELECT): Likewise.
* m4/sockets.m4 (gl_SOCKETS): Likewise.
* m4/socklen.m4 (gl_TYPE_SOCKLEN_T): Likewise.
* m4/sockpfaf.m4 (gl_SOCKET_FAMILIES): Likewise.
* m4/sysexits.m4 (gl_SYSEXITS): Likewise.
* m4/time_r.m4 (gl_TIME_R): Likewise.
* m4/tsearch.m4 (gl_FUNC_TSEARCH): Likewise.
* m4/vararrays.m4 (AC_C_VARARRAYS): Likewise.
* m4/wctype.m4 (gl_WCTYPE_H): Likewise.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14 years agoFix copyright header in build-aux scripts.
Ralf Wildenhues [Thu, 10 Sep 2009 17:57:57 +0000 (19:57 +0200)]
Fix copyright header in build-aux scripts.

* build-aux/git-version-gen: Fix copyright header to match GPLv3
recommendation.
* build-aux/ncftpput-ftp: Likewise.
* build-aux/update-copyright: Likewise.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14 years agoautoupdate
Karl Berry [Thu, 10 Sep 2009 13:11:30 +0000 (06:11 -0700)]
autoupdate

14 years agotest-link: allow Linux choice of errno
Eric Blake [Thu, 10 Sep 2009 03:46:11 +0000 (21:46 -0600)]
test-link: allow Linux choice of errno

* tests/test-link.c (main): Relax test for alternate error.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agostrndup: fix improper m4 caching
Eric Blake [Thu, 10 Sep 2009 03:34:32 +0000 (21:34 -0600)]
strndup: fix improper m4 caching

* m4/strndup.m4 (gl_FUNC_STRNDUP): Rework to avoid side effects
inside AC_CACHE_CHECK.  Use REPLACE_STRNDUP, not HAVE_STRNDUP.
(gl_PREREQ_STRNDUP): Delete.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Update default.
* modules/string (Makefile.am): Substitute it.
* lib/string.in.h (strndup): Modernize prototype.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agogetcwd: port to mingw
Eric Blake [Thu, 10 Sep 2009 02:52:26 +0000 (20:52 -0600)]
getcwd: port to mingw

* m4/getcwd.m4 (gl_FUNC_GETCWD): Mingw directories are very
different from the POSIX assumptions made throughout the getcwd
module; fortunately, the mingw getcwd does not need replacement.
(gl_FUNC_GETCWD_NULL): Skip test on mingw.
* modules/getcwd-tests: New test.
* tests/test-getcwd.c: Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agolink: fix platform bugs
Eric Blake [Wed, 9 Sep 2009 21:25:26 +0000 (15:25 -0600)]
link: fix platform bugs

* m4/link.m4 (gl_FUNC_LINK): Detect Solaris and Cygwin bugs.
* lib/link.c (link): Work around them.  Fix related mingw bug.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add REPLACE_LINK.
* modules/unistd (Makefile.am): Substitute it.
* lib/unistd.in.h (link): Declare replacement.
* doc/posix-functions/link.texi (link): Document this.
* modules/link (Depends-on): Add strdup-posix, sys_stat.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agotest-link: consolidate into single C program, test more cases
Eric Blake [Wed, 9 Sep 2009 17:06:44 +0000 (11:06 -0600)]
test-link: consolidate into single C program, test more cases

* tests/test-link.sh: Delete.
* tests/test-link.c: Test more error conditions.  Exposes bugs on
at least Cygwin and Solaris.
* modules/link-tests (Files): Remove unused file.
(Depends-on): Add errno, sys_stat.
(Makefile.am): Simplify.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoWork around towlower, towupper bug on mingw.
Bruno Haible [Tue, 8 Sep 2009 21:27:09 +0000 (23:27 +0200)]
Work around towlower, towupper bug on mingw.

14 years agobuild: don't try to run autoheader if we don't use it
Jim Meyering [Tue, 8 Sep 2009 20:21:59 +0000 (22:21 +0200)]
build: don't try to run autoheader if we don't use it

* build-aux/bootstrap: Define AUTOHEADER=true when AC_CONFIG_HEADERS
is not used in configure.ac.

14 years agoeuidaccess: fix compilation error
Eric Blake [Tue, 8 Sep 2009 19:06:02 +0000 (13:06 -0600)]
euidaccess: fix compilation error

* lib/euidaccess.c (includes): Add <fcntl.h>, for AT_EACCESS.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agorawmemchr: relax license
Eric Blake [Tue, 8 Sep 2009 12:34:54 +0000 (06:34 -0600)]
rawmemchr: relax license

* modules/rawmemchr (License): Derived from glibc, so LGPLv2+ is
okay.
Reported by Jim Meyering.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agomkfifoat: new module
Eric Blake [Mon, 7 Sep 2009 11:38:18 +0000 (05:38 -0600)]
mkfifoat: new module

* modules/mkfifoat: New file.
* lib/mkfifoat.c: Likewise.
* m4/mkfifoat.m4 (gl_FUNC_MKFIFOAT): Likewise.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Add witnesses.
* modules/sys_stat (Makefile.am): Use them.
* lib/sys_stat.in.h (mkfifoat, mknodat): Declare them.
* MODULES.html.sh (File system functions): Mention module.
* doc/posix-functions/mkfifoat.texi (mkfifoat): Likewise.
* doc/posix-functions/mknodat.texi (mknodat): Likewise.
* modules/mkfifoat-tests: New test.
* tests/test-mkfifoat.c: Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agostrchrnul: relax license
Eric Blake [Tue, 8 Sep 2009 11:59:53 +0000 (05:59 -0600)]
strchrnul: relax license

* modules/strchrnul (License): Derived from glibc, so LGPLv2+ is
okay.
Reported by Jim Meyering.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agofstatat: fix compilation on Solaris
Eric Blake [Tue, 8 Sep 2009 02:16:00 +0000 (20:16 -0600)]
fstatat: fix compilation on Solaris

* lib/fstatat.c (includes): Add fcntl.h.
Reported by Pádraig Brady.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agorename: modernize replacement upstream/20090908+c5c46dc
Eric Blake [Mon, 7 Sep 2009 17:27:05 +0000 (11:27 -0600)]
rename: modernize replacement

* modules/rename (Depends-on): Add stdio.
(configure.ac): Declare witness.
* m4/rename.m4 (gl_FUNC_RENAME): Ensure dependency order, and let
stdio take care of replacement.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Add new defaults.
* modules/stdio (Makefile.am): Substitute them.
* lib/stdio.in.h (rename): Declare replacement.
* lib/rename.c (includes): Allow cross-compilation to non-windows
machines.
* doc/posix-functions/rename.texi (rename): Improve
documentation.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agostdio: sort witness names
Eric Blake [Mon, 7 Sep 2009 16:16:42 +0000 (10:16 -0600)]
stdio: sort witness names

* modules/stdio (Makefile.am): Sort replacements.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Likewise.
* lib/stdio.in.h: Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agogetcwd: minor cleanups
Eric Blake [Mon, 7 Sep 2009 11:51:20 +0000 (05:51 -0600)]
getcwd: minor cleanups

* lib/getcwd.c (AT_FDCWD): Delete; rely on <fcntl.h> instead.
(is_ENAMETOOLONG): Delete; ENAMETOOLONG is portable.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoopenat: provide more convenience names
Eric Blake [Mon, 7 Sep 2009 11:28:13 +0000 (05:28 -0600)]
openat: provide more convenience names

* modules/faccessat (configure.ac): Add C witness.
* lib/unistd.in.h (readlinkat): Fix typo.
* lib/openat.h (statat, lstatat, accessat, euidaccessat): New
convenience wrappers.
* top/maint.mk (sc_prohibit_openat_without_use): Allow these
wrappers in syntax checks.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agodoc: fix comments in recent patches
Eric Blake [Mon, 7 Sep 2009 02:21:28 +0000 (20:21 -0600)]
doc: fix comments in recent patches

* lib/faccessat.c: Mention correct function.
* lib/fchmodat.c: Likewise.
* lib/fchownat.c: Likewise.
* lib/symlinkat.c: Likewise.
* doc/posix-headers/fcntl.texi (fcntl.h): Cygwin 1.7 has AT_*
constants.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agofaccessat, symlinkat: continue cleanup of previous patch
Eric Blake [Mon, 7 Sep 2009 02:53:59 +0000 (20:53 -0600)]
faccessat, symlinkat: continue cleanup of previous patch

* m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Ensure dependency order.
* m4/faccessat.m4 (gl_FUNC_FACCESSAT): Likewise.
* modules/unistd (Makefile.am): Substitute GNULIB_READLINKAT.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Offer GNULIB_READLINKAT.
* modules/symlinkat (configure.ac): Set GNULIB_READLINKAT.
* lib/unistd.in.h (readlinkat): Declare if GNULIB_READLINKAT is
set.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoRemove dependency from unistd_h.m4, sys_stat_h.m4, fcntl_h.m4 to openat.m4.
Bruno Haible [Sun, 6 Sep 2009 23:33:12 +0000 (01:33 +0200)]
Remove dependency from unistd_h.m4, sys_stat_h.m4, fcntl_h.m4 to openat.m4.

14 years agoRemove unneeded gl_MODULE_INDICATOR invocation.
Bruno Haible [Sun, 6 Sep 2009 21:23:29 +0000 (23:23 +0200)]
Remove unneeded gl_MODULE_INDICATOR invocation.

14 years agoSet errno to ENOSYS when a function is entirely unsupported.
Bruno Haible [Sun, 6 Sep 2009 20:36:55 +0000 (22:36 +0200)]
Set errno to ENOSYS when a function is entirely unsupported.

14 years agoMention affected platforms.
Bruno Haible [Sun, 6 Sep 2009 19:41:20 +0000 (21:41 +0200)]
Mention affected platforms.

14 years agoFix indentation.
Bruno Haible [Sun, 6 Sep 2009 19:41:00 +0000 (21:41 +0200)]
Fix indentation.

14 years agoFor NULL, include <stdlib.h>, not <stdio.h>.
Bruno Haible [Sun, 6 Sep 2009 19:15:41 +0000 (21:15 +0200)]
For NULL, include <stdlib.h>, not <stdio.h>.

14 years agoWork around a glibc bug in strtok_r.
Ben Pfaff [Sun, 6 Sep 2009 15:17:41 +0000 (17:17 +0200)]
Work around a glibc bug in strtok_r.

14 years agoexclude: minor fix
Sergey Poznyakoff [Sun, 6 Sep 2009 09:01:23 +0000 (12:01 +0300)]
exclude: minor fix

* lib/exclude.c: Include wctype.h

14 years agobootstrap: improve error message
Akim Demaille [Thu, 3 Sep 2009 07:55:06 +0000 (09:55 +0200)]
bootstrap: improve error message

* build-aux/bootstrap (find_tool): Upon failure, report the list
of candidates.
Honor the initial value of the envvar.

14 years agoUpdate copyright year.
Bruno Haible [Sun, 6 Sep 2009 00:21:50 +0000 (02:21 +0200)]
Update copyright year.

14 years agosymlinkat: new module
Eric Blake [Sat, 5 Sep 2009 17:49:15 +0000 (11:49 -0600)]
symlinkat: new module

* modules/symlinkat: New file.
* lib/symlinkat.c: Likewise.
* m4/symlinkat.m4 (gl_FUNC_SYMLINKAT): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witnesses.
* modules/unistd (Makefile.am): Use them.
* lib/unistd.in.h (symlinkat, readlinkat): Declare them.
(faccessat) [GNULIB_POSIXCHECK]: Fix typo.
* lib/at-func.c (FUNC_RESULT): New macro, defaulting to int.
* MODULES.html.sh (File system functions): Mention module.
* doc/posix-functions/symlinkat.texi (symlinkat): Likewise.
* doc/posix-functions/readlinkat.texi (readlinkat): Likewise.
* modules/symlinkat-tests: New test.
* tests/test-symlinkat.c: Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agotest-openat-safer: add more checks
Eric Blake [Sat, 5 Sep 2009 12:39:17 +0000 (06:39 -0600)]
test-openat-safer: add more checks
* tests/test-openat-safer.c (main): Check more code paths.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agosyntax-check: detect unnecessary inclusion of openat.h
Jim Meyering [Sat, 5 Sep 2009 17:54:12 +0000 (19:54 +0200)]
syntax-check: detect unnecessary inclusion of openat.h

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

14 years agoSupport towlower and towupper.
Bruno Haible [Sat, 5 Sep 2009 16:06:54 +0000 (18:06 +0200)]
Support towlower and towupper.

14 years agoFix bug occurring when converting invalid input.
Bruno Haible [Sat, 5 Sep 2009 14:49:46 +0000 (16:49 +0200)]
Fix bug occurring when converting invalid input.

14 years agoTest indirect conversion as well.
Bruno Haible [Sat, 5 Sep 2009 14:47:45 +0000 (16:47 +0200)]
Test indirect conversion as well.

14 years agoopenat: fail with ENOENT on empty name
Eric Blake [Sat, 5 Sep 2009 03:22:21 +0000 (21:22 -0600)]
openat: fail with ENOENT on empty name

* lib/openat-proc.c (openat_proc_name): Special-case the empty
buffer.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agolink-follow: fix logic bug in prior patch
Eric Blake [Fri, 4 Sep 2009 21:40:22 +0000 (15:40 -0600)]
link-follow: fix logic bug in prior patch

* m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK): Fix bug that
reversed sense of yes and no in prior patch.  Avoid confusing
compilation failure with desired semantics.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agolink-follow: accomodate mingw and cross-compilation
Eric Blake [Fri, 4 Sep 2009 17:49:02 +0000 (11:49 -0600)]
link-follow: accomodate mingw and cross-compilation

* m4/link-follow.m4 (gl_AC_FUNC_LINK_FOLLOWS_SYMLINK): Rename...
(gl_FUNC_LINK_FOLLOWS_SYMLINK): ...to this.  Change
cross-compilation results to -1, to make linkat easier to
implement when cross-compiling.  Trivially support mingw.
* modules/link-follow (configure.ac): Call new name.
* NEWS: Mention this.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agofaccessat: compile replacement
Eric Blake [Fri, 4 Sep 2009 04:49:58 +0000 (22:49 -0600)]
faccessat: compile replacement

* m4/faccessat.m4 (gl_FUNC_FACCESSAT): Build replacement when
needed.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agofts: fix compilation error
Eric Blake [Fri, 4 Sep 2009 04:34:10 +0000 (22:34 -0600)]
fts: fix compilation error

* lib/fts.c (includes): Re-add "openat.h", for
openat_needs_fchdir.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agofaccessat: new module
Eric Blake [Thu, 3 Sep 2009 19:41:18 +0000 (13:41 -0600)]
faccessat: new module

* modules/faccessat: New file.
* lib/faccessat.m4: Likewise.
* m4/faccessat.m4 (gl_FUNC_FACCESSAT): Likewise.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add witness.
* modules/unistd (Makefile.am): Use it.
* lib/unistd.in.h (faccessat): Declare it.
(F_OK, X_OK, W_OK, R_OK): Provide definitions.
* lib/fcntl.in.h (AT_SYMLINK_FOLLOW, AT_EACCESS): Likewise.
* MODULES.html.sh (File system functions): Mention it.
* doc/posix-functions/faccessat.texi (faccessat): Likewise.
* doc/posix-headers/fcntl.texi (fcntl.h): Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoeuidaccess: prefer POSIX over non-standard implementation
Eric Blake [Thu, 3 Sep 2009 19:43:12 +0000 (13:43 -0600)]
euidaccess: prefer POSIX over non-standard implementation

* m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Check for faccessat.
* lib/euidaccess.c (euidaccess): Use it if available.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoopenat: make template easier to use
Eric Blake [Thu, 3 Sep 2009 17:38:53 +0000 (11:38 -0600)]
openat: make template easier to use

* lib/at-func.c (CALL_FUNC): Allow AT_FUNC_USE_F1_COND and
AT_FUNC_F2 to be undefined.
(VALIDATE_FLAG): New macro; use it to reject bad flags.
(AT_FUNC_USE_F1_COND): Change sense to just flag bit.
* lib/fchmodat.c (AT_FUNC_USE_F1_COND): Adjust.
* lib/fchownat.c (AT_FUNC_USE_F1_COND): Likewise.
* lib/openat.c (AT_FUNC_USE_F1_COND) [fstatat, unlinkat]:
Likewise.
* lib/mkdirat.c (AT_FUNC_F2, AT_FUNC_USE_F1_COND): Delete.
* lib/selinux-at.c (AT_FUNC_F2, AT_FUNC_USE_F1_COND)
[getfileconat, lgetfileconat, setfileconat, lsetfileconat]:
Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoopenat: declare in POSIX headers
Eric Blake [Wed, 2 Sep 2009 23:14:26 +0000 (17:14 -0600)]
openat: declare in POSIX headers

* NEWS: Mention this.
* modules/openat (configure.ac): Declare witnesses.
(Depends-on): Add fcntl-h, sys_stat, unistd.
(Include): Mention correct headers.
* modules/fcntl-h (Depends-on): Add link-warning.
(Files): Add openat.m4.
(Makefile.am): Substitute witnesses.
* modules/sys_stat (Files, Makefile.am): Likewise.
* modules/unistd (Files, Makefile.am): Likewise.
* m4/openat.m4 (gl_FUNC_OPENAT, gl_FUNC_FCHOWNAT): Set witnesses.
(gl_OPENAT_DEFAULTS): New macro.
* m4/fcntl_h.m4 (gl_FCNTL_H_DEFAULTS): Use it.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Likewise.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Likewise.
(SYS_STAT_H): Remove unused variable.
* doc/posix-headers/fcntl.texi (fcntl.h): Update content.
* lib/fcntl--.h (includes): Remove unneeded header.
* lib/openat-safer.c (includes): Likewise.
* lib/openat.h (AT_FDCWD, AT_SYMLINK_NOFOLLOW, AT_REMOVEDIR)
(openat, fstatat, unlinkat, mkdirat, fchmodat, fchownat): Move to
appropriate headers.
(__OPENAT_PREFIX): Delete.
* lib/fcntl.in.h (openat): Provide declaration.
(AT_FDCWD): Fix Solaris bug.
(AT_SYMLINK_NOFOLLOW, AT_REMOVEDIR): Provide macros.
* lib/sys_stat.in.h (fstatat, mkdirat): Provide declaration.
* lib/fchmodat.c (includes):  Adjust to find declaration.
* lib/fchownat.c (includes): Likewise.
* lib/mkdirat.c (includes): Likewise.
* lib/fstatat.c (includes): Likewise.  Ensure original fstatat is
still visible.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoerrno: use consistently
Eric Blake [Wed, 2 Sep 2009 23:06:43 +0000 (17:06 -0600)]
errno: use consistently

* lib/c-stack.c (ENOTSUP): <errno.h> guarantees a definition.
* lib/canonicalize-lgpl.c (ENAMETOOLONG): Likewise.
* lib/canonicalize.c (ELOOP): Likewise.
* lib/inet_ntop.c (EAFNOSUPPORT): Likewise.
* lib/inet_pton.c (EAFNOSUPPORT): Likewise.
* lib/lchown.c (EOPNOTSUPP): Likewise.
* lib/openat-priv.h (ENOSYS, EOPNOTSUPP): Likewise.
* lib/savewd.c (ESTALE): Likewise.
* lib/settime.c (ENOSYS): Likewise.
* lib/utimens.c (ENOSYS): Likewise.
* lib/xgethostname.c (ENAMETOOLONG): Likewise.
* lib/chdir-safer.c (ELOOP): Likewise.
(chdir_no_follow): Use HAVE_READLINK, not ELOOP, as witness.
* modules/c-stack (Depends-on): Add errno.
* modules/canonicalize (Depends-on): Likewise.
* modules/chdir-safer (Depends-on): Likewise.
* modules/fdopendir (Depends-on): Likewise.
* modules/inet_ntop (Depends-on): Likewise.
* modules/inet_pton (Depends-on): Likewise.
* modules/lchown (Depends-on): Likewise.
* modules/openat (Depends-on): Likewise.
* modules/savewd (Depends-on): Likewise.
* modules/settime (Depends-on): Likewise.
* m4/chdir-safer.m4 (gl_CHDIR_SAFER): Check for readlink.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agofts: avoid leaking fds
Eric Blake [Wed, 2 Sep 2009 20:44:51 +0000 (14:44 -0600)]
fts: avoid leaking fds

* modules/fts (Depends-on): Add cloexec.
* lib/fts.c (opendirat, diropen, fts_build): Set close-on-exec
flag.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agofts: make directory fds more robust
Eric Blake [Tue, 1 Sep 2009 20:06:37 +0000 (14:06 -0600)]
fts: make directory fds more robust

* lib/fts.c (O_DIRECTORY): Let <fcntl.h> take care of this.
(opendirat): Specify O_DIRECTORY, and add fallbacks for safety.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agobackupfile, chdir-long, fts, savedir: make safer
Eric Blake [Tue, 1 Sep 2009 18:25:01 +0000 (12:25 -0600)]
backupfile, chdir-long, fts, savedir: make safer

* lib/backupfile.c (includes): Use "dirent--.h", since
numbered_backup can write to stderr during readdir.
* lib/savedir.c (includes): Likewise.
* lib/chdir-long.c (includes): Use "fcntl--.h", since openat
emulation can write to stderr on failure.
* lib/fts.c (includes) [!_LIBC]: Likewise for opendir and openat.
* lib/getcwd.c: Document why opendir_safer is unused.
* lib/glob.c: Likewise.
* lib/scandir.c: Likewise.
* lib/openat-proc.c: Likewise, for open_safer.
* modules/backupfile (Depends-on): Add dirent-safer.
* modules/savedir (Depends-on): Likewise.
* modules/fts (Depends-on): Add dirent-safer and openat-safer.
* modules/chdir-long (Depends-on): Add openat-safer.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoopenat-safer: new module
Eric Blake [Wed, 2 Sep 2009 12:07:54 +0000 (06:07 -0600)]
openat-safer: new module

* modules/openat-safer: New file.
* lib/openat-safer.c: Likewise.
* m4/fcntl-safer.m4 (gl_OPENAT_SAFER): New macro.
* lib/fcntl-safer.h (openat_safer): Declare.
* lib/fcntl--.h (openat): Override.
* MODULES.html.sh (File descriptor based I/O): Mention it.
* lib/openat.h: Add double-inclusion guards.
* lib/openat.c (includes): Only include "fcntl-safer.h", not
"fcntl--.h", so we can implement openat.
* modules/openat-safer-tests: New test.
* tests/test-openat-safer.c: New file.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agodirent-safer: new module
Eric Blake [Tue, 1 Sep 2009 13:41:28 +0000 (07:41 -0600)]
dirent-safer: new module

* modules/dirent-safer: New file.
* lib/dirent--.h: Likewise.
* lib/dirent-safer.h: Likewise.
* lib/opendir-safer.c: Likewise.
* m4/dirent-safer.m4: Likewise.
* MODULES.html.sh (Enhancements for POSIX:2008): Mention it.
* modules/dirent-safer-tests: New test.
* tests/test-dirent-safer.c: New file.
* lib/fdopendir.c (includes): Ensure fdopendir is also safe.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agofdopendir: optimize on mingw
Eric Blake [Tue, 1 Sep 2009 16:05:44 +0000 (10:05 -0600)]
fdopendir: optimize on mingw

* lib/unistd.in.h (_gl_directory_name): New prototype.
* lib/fchdir.c (_gl_directory_name): Implement it.
(fchdir): Use it to simplify implementation.
* lib/fdopendir.c (fdopendir) [REPLACE_FCHDIR]: Use metadata from
fchdir, when available, to avoid calling [f]chdir().

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agofdopendir: split into its own module
Eric Blake [Tue, 1 Sep 2009 02:37:59 +0000 (20:37 -0600)]
fdopendir: split into its own module

* lib/openat.c (fdopendir): Move...
* lib/fdopendir.c: ...into new file.
* modules/fdopendir: New module.
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): New file.
* modules/openat (Depends-on): Add fdopendir.
* m4/openat.m4 (gl_FUNC_OPENAT): No longer need to check for
fdopendir here.
* modules/savedir (Depends-on): Only need fdopendir, not full
openat.
* lib/savedir.c (include): Use <dirent.h>, not "openat.h".
* lib/openat.h (fdopendir): Drop prototype.
* lib/dirent.in.h (fdopendir): Provide prototype.
* m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): Add replacements.
* modules/dirent (Makefile.am): Substitute them.
* MODULES.html.sh (File system functions): Mention it.
* doc/posix-functions/fdopendir.texi (fdopendir): Likewise.
* modules/fdopendir-tests: New file.
* tests/test-fdopendir.c: Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agofchdir: use more consistent macro convention
Eric Blake [Tue, 1 Sep 2009 15:18:16 +0000 (09:18 -0600)]
fchdir: use more consistent macro convention

* lib/fcntl.in.h (_gl_register_fd): Move declaration to unistd.
* lib/sys_stat.in.h (rpl_fstat): Declare via make-time
REPLACE_FCHDIR, rather than relying on config.h macros.
* lib/unistd.in.h (fchdir): Move all fchdir internal declarations
inside a single make-time REPLACE_FCHDIR block, rather than using
the config.h FCHDIR_REPLACEMENT.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): REPLACE_FCHDIR was already
AC_SUBST'd, also AC_DEFINE it.  Don't define FCHDIR_REPLACEMENT.
Manage fstat replacement.
* m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Pick up
REPLACE_FCHDIR.
* modules/sys_stat (Files): Add m4/unistd_h.m4.
(Makefile.am): Substitute REPLACE_FCHDIR.
* lib/close.c (rpl_close): Use REPLACE_FCHDIR, not
FCHDIR_REPLACEMENT.
* lib/dup-safer.c (dup_safer): Likewise.
* lib/dup2.c (rpl_dup2): Likewise.
* lib/dup3.c (rpl_dup3): Likewise.
* lib/open.c (rpl_open): Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agofchdir: simplify error handling, and support dup3
Eric Blake [Mon, 31 Aug 2009 20:20:03 +0000 (14:20 -0600)]
fchdir: simplify error handling, and support dup3

* modules/fchdir (Depends-on): Use strdup-posix, not strdup.  Add
stdbool, malloc-posix, realloc-posix.
* lib/fchdir.c (struct dir_info_t): Delete saved_errno.
(ensure_dirs_slot): Return false on allocation failure.
(rpl_dup2): Delete.
(_gl_register_dup): New function.
(_gl_unregister_fd, rpl_opendir, rpl_dup): Update callers.
(_gl_register_fd): Close fd on allocation failure.
* lib/fcntl.in.h (_gl_register_fd): Update signature.
* lib/unistd.in.h (_gl_register_dup) [FCHDIR_REPLACEMENT]: New
prototype.
(rpl_dup2_fchdir): Delete prototype.
* lib/open.c (open): Update caller.
* lib/dup2.c (dup2): Track fchdir metadata.
* lib/dup3.c (dup3): Likewise.
* m4/dup2.m4 (gl_REPLACE_DUP2): New macro.
* m4/fchdir.m4 (gl_FUNC_FCHDIR): Use it.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agoReplace uses of obsolete Autoconf macros with modern counterparts.
Ralf Wildenhues [Wed, 2 Sep 2009 22:10:41 +0000 (00:10 +0200)]
Replace uses of obsolete Autoconf macros with modern counterparts.

14 years agoRelicense mkdtemp under LGPLv2+.
Bruno Haible [Wed, 2 Sep 2009 20:43:05 +0000 (22:43 +0200)]
Relicense mkdtemp under LGPLv2+.

14 years agoReplace uses of obsolete autoconf macros in Jim's modules.
Ralf Wildenhues [Wed, 2 Sep 2009 18:07:33 +0000 (20:07 +0200)]
Replace uses of obsolete autoconf macros in Jim's modules.

The Autoconf macros AC_TRY_CPP, AC_TRY_COMPILE, AC_TRY_LINK and
AC_TRY_RUN have been obsolete since Autoconf 2.55, and each use
can evoke a warning from autoconf when run with -Wobsolete
enabled.  They were declared obsolete for good reasons (see
the `AC_FOO_IFELSE vs AC_TRY_FOO' node in the Autoconf manual,
recently renamed to `AC_ACT_IFELSE vs AC_TRY_ACT'), and we
should not continue using the deprecated macros.

* m4/d-type.m4 (gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE): Replace
obsolete Autoconf macros with modern counterparts.
* m4/dirfd.m4 (gl_FUNC_DIRFD): Likewise.
* m4/dos.m4 (gl_AC_DOS): Likewise.
* m4/fpending.m4 (gl_FUNC_FPENDING): Likewise.
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Likewise.
* m4/getloadavg.m4 (gl_PREREQ_GETLOADAVG): Likewise.
* m4/jm-winsz1.m4 (gl_WINSIZE_IN_PTEM): Likewise.
* m4/link-follow.m4 (gl_AC_FUNC_LINK_FOLLOWS_SYMLINK): Likewise.
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Likewise.
* m4/mkdir-slash.m4 (gl_FUNC_MKDIR_TRAILING_SLASH): Likewise.
* m4/mode_t.m4 (gl_PROMOTED_TYPE_MODE_T): Likewise.
* m4/rename-dest-slash.m4 (gl_FUNC_RENAME_TRAILING_DEST_SLASH):
Likewise.
* m4/rename.m4 (gl_FUNC_RENAME): Likewise.
* m4/rmdir-errno.m4 (gl_FUNC_RMDIR_NOTEMPTY): Likewise.
* m4/rpmatch.m4 (gl_PREREQ_RPMATCH): Likewise.
* m4/st_dm_mode.m4 (AC_STRUCT_ST_DM_MODE): Likewise.
* m4/stat-time.m4 (gl_STAT_TIME): Likewise.
* m4/utimes-null.m4 (gl_FUNC_UTIMES_NULL): Likewise.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14 years agofchdir: fix off-by-one bug in previous patch
Eric Blake [Tue, 1 Sep 2009 16:06:44 +0000 (10:06 -0600)]
fchdir: fix off-by-one bug in previous patch

* lib/fchdir.c (rpl_fstat): Use correct bounds.
(_gl_unregister_fd): Delete useless if.

Signed-off-by: Eric Blake <ebb9@byu.net>
14 years agomaint.mk: sort the list of syntax-check rules
Daniel P. Berrange [Tue, 1 Sep 2009 14:39:43 +0000 (16:39 +0200)]
maint.mk: sort the list of syntax-check rules

* top/maint.mk (syntax-check-rules): Sort syntax-check rules, so it's
easier to get a sense of progress when the rules are run sequentially
and take a long time.

14 years agoUse $(MKDIR_P) instead of @MKDIR_P@.
Simon Josefsson [Tue, 1 Sep 2009 12:25:07 +0000 (14:25 +0200)]
Use $(MKDIR_P) instead of @MKDIR_P@.

14 years agofts: help ensure that return values are not ignored
Jim Meyering [Tue, 1 Sep 2009 09:20:41 +0000 (11:20 +0200)]
fts: help ensure that return values are not ignored

* lib/fts_.h (__GNUC_PREREQ): Define.
(__attribute_warn_unused_result__): Define.
(fts_children, fts_close, fts_open, fts_read): Declare with
__attribute_warn_unused_result__.