Eric Blake [Fri, 27 Oct 2006 13:51:23 +0000 (13:51 +0000)]
* MODULES.html.sh: Document tempname.
* modules/mkstemp (Depends-on): Add tempname, and drop transitive
dependencies.
(Files): Move lib/tempname.c...
* modules/tempname: ...to this new module.
* m4/mkstemp.m4 (gl_FUNC_MKSTEMP): Remove tempname checks.
(gl_PREREQ_TEMPNAME): Move...
* m4/tempname.m4: ...to this new file.
* lib/mkstemp.c (includes) [!_LIBC]: Use tempname.h.
* modules/sys_stat (Depends-on): Add stat-macros.
* lib/stat_.h (includes): Pick up stat macros.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Replace <sys/stat.h>
if stat macros are broken.
* lib/tempname.c (includes): No need to include "stat-macros.h".
(__gen_tempname) [!_LIBC]: Expose as gen_tempname.
(direxists, __path_search) [!_LIBC]: Don't compile these in
gnulib; the tmpdir module covers that.
* lib/tempname.h: New file.
Paul Eggert [Sun, 22 Oct 2006 07:32:17 +0000 (07:32 +0000)]
* lib/canonicalize.c (ELOOP): Define if not already defined.
Problem reported by Bruno Haible in
<http://lists.gnu.org/archive/html/bug-gnulib/2006-10/msg00282.html>.
Paul Eggert [Thu, 19 Oct 2006 07:51:14 +0000 (07:51 +0000)]
* lib/xstrtol.h: Include gettext.h.
(_STRTOL_ERROR): Wrap English-language formats inside gettext.
Problem reported by Eric Blake.
* modules/xstrtol (Depends-on): Add gettext-h.
Paul Eggert [Thu, 19 Oct 2006 07:32:18 +0000 (07:32 +0000)]
* lib/strftime.c (advance): New macro.
(add): Use it to avoid adding 0 to a FILE *. FILE can be
an incomplete type, so you can't add 0 to it. Problem reported
by Eelco Dolstra for dietlibc.
Paul Eggert [Sat, 14 Oct 2006 23:40:42 +0000 (23:40 +0000)]
Sync from Automake.
* build-aux/install-sh (posix_mkdir): Reject FreeBSD 6.1 mkdir -p -m,
which incorrectly sets the mode of an existing destination
directory. In some cases the unpatched install-sh could do the
equivalent of "chmod 777 /" or "chmod 0 /" on a buggy FreeBSD
system. We hope this is rare in practice, but it's clearly worth
fixing. Problem reported by Alex Unleashed in
<http://lists.gnu.org/archive/html/bug-autoconf/2006-10/msg00012.html>.
Also, don't bother to check for -m bugs unless we're using -m;
suggested by Stepan Kasal.
Sync from Automake.
* build-aux/depcomp (gcc3): Put dependency extraction flags before the
`-c' flag, so they appear at the same position as in %FASTDEP%
mode in depend2.am. Fixes build failure for FreeBSD's c89,
which ignores unknown options only after the first non-option.
Bug report against M4 by Nelson H. F. Beebe.
Jim Meyering [Sat, 14 Oct 2006 06:32:48 +0000 (06:32 +0000)]
Fix a bug in yesterday's change.
* lib/fts.c (fts_open): When using FTS_XDEV|FTS_NOSTAT,
p->fts_statp->st_dev would be used uninitialized.
Ensures that we always call fts_stat on the very first entry.
Miklos Szeredi reported that find -xdev stopped working.
Jim Meyering [Thu, 12 Oct 2006 13:23:10 +0000 (13:23 +0000)]
* m4/getloadavg.m4 (gl_GETLOADAVG): Test for the existence of
lib/getloadavg.c using "ls -L", not "test -f". The latter would
fail with a symlink, which is what coreutils' ./bootstrap now
creates by default.
Jim Meyering [Thu, 12 Oct 2006 10:32:32 +0000 (10:32 +0000)]
Big performance improvement for fts-based tools that use FTS_NOSTAT.
Avoid spurious inode-mismatch problems on non-POSIX file systems.
Details: http://article.gmane.org/gmane.comp.lib.gnulib.bugs/7416
* lib/fts_.h (FTS_DEFER_STAT): Define new flag.
(FTS_OPTIONMASK): Extend the mask to reflect this addition.
* lib/fts.c (DT_IS_KNOWN, DT_MUST_BE): Define.
(FTS_NO_STAT_REQUIRED, FTS_STAT_REQUIRED): Define.
(fts_set_stat_required): New function.
(fts_open): Defer the calls to fts_stat, if possible or requested.
Move the code that maps a command-line fts_info value FTS_DOT to FTS_D
into fts_stat itself.
(fts_read): Perform any required (deferred) fts_stat call.
(fts_build): Likewise, for the directory we're about to open and read.
In the readdir loop, carefully decide whether each entry will require
an eventual call to fts_stat, using dirent.d_type info if available.
(fts_stat): Move the test for whether to honor FTS_COMFOLLOW on
a command line argument into this function. Update all callers.
Map a return value of FTS_DOT to FTS_D for a command line argument.
* modules/fts (Depends-on): Add d-type. Alphabetize.
Thanks to Miklos Szeredi for his tenacity and for the initial
bug report about "find" failing on a FUSE-based file system.