Update from coreutils.
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 17 Aug 2006 20:34:21 +0000 (20:34 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 17 Aug 2006 20:34:21 +0000 (20:34 +0000)
commit8b3f78cdd40155b5864692b63b6a368c7dabd050
tree83c833083efca836d04f16619bcf1708b75d3e9a
parent30d9edd0c165fed3fdc2f260d2a0d3b8cba15123
Update from coreutils.

* lib/__fpending.h: Add copyright notice.
* lib/fprintftime.h: Likewise.
* lib/savedir.c: Use (C) in copyright notice.
* lib/savedir.h: Likewise.

2006-08-15  Jim Meyering  <jim@meyering.net>

* lib/at-func.c: New file, with the logic of all emulated at-functions.
* lib/openat-priv.h: Include <errno.h> and define ENOSYS,
in support of the EXPECTED_ERRNO macro.
* lib/openat.c (fstatat, unlinkat, fchownat): Remove function definitions.
Instead, define the appropriate symbols and include "at-func.c".
* lib/mkdirat.c (mkdirat): Likewise.
* lib/fchmodat.c (fchmodat): Likewise.
(ENOSYS): Remove definition.
* lib/openat.c: Don't include <errno.h>, now that "openat-priv.h" does it.
Don't include "unistd--.h" -- it wasn't ever used.

2006-01-17  Jim Meyering  <jim@meyering.net>

Rewrite fts.c not to change the current working directory,
by using openat, fstatat, fdopendir, etc..

* lib/fts.c [! _LIBC]: Include "openat.h" and "unistd--.h".
(HAVE_OPENAT_SUPPORT): Define.
[_LIBC] (fchdir): Don't undef or define; no longer used.
(FCHDIR): Define in terms of cwd_advance_fd rather than fchdir.
Now, this `function' always succeeds, and consumes its file descriptor
parameter -- so callers must not close such FDs.  Update callers.
(diropen_fd, opendirat, cwd_advance_fd): New functions.
(diropen): Add parameter, SP.  Adjust all callers.
Implement using diropen_fd, rather than open.
(fts_open): Initialize new member, fts_cwd_fd.
Remove fts_rft-setting code.
(fts_close): Close fts_cwd_fd, if necessary.
(__opendir2): Define in terms of opendir or opendirat,
depending on whether the FST_NOCHDIR flag is set.
(fts_build): Since fts_safe_changedir consumes its FD, and since
this code must do `closedir(dirp)', dup the dirfd(dirp) argument,
and close the dup'd file descriptor upon failure.
(fts_stat): Use fstatat(...AT_SYMLINK_NOFOLLOW) in place of lstat.
(fts_safe_changedir): Tweak semantics to reflect that this function
now calls cwd_advance_fd and hence consumes its FD argument.
* lib/fts_.h [struct FTS] (fts_cwd_fd): New member.
[struct FTS] (fts_rft): Remove now-unused member.
[struct FTS] (fts_cycle.state): Improve comment.

* lib/openat.c (openat_needs_fchdir): New function.
* lib/openat.h (openat_needs_fchdir): Declare it.

2006-08-15  Jim Meyering  <jim@meyering.net>

* m4/openat.m4 (gl_FUNC_OPENAT): Add at-func.c via AC_LIBSOURCES.

2006-01-17  Jim Meyering  <jim@meyering.net>

* m4/fts.m4 (gl_FUNC_FTS_CORE): Depend on gl_FUNC_OPENAT.

2006-01-11  Jim Meyering  <jim@meyering.net>

* m4/openat.m4 (gl_FUNC_OPENAT): Require and compile fchmodat.c.
Check for the lchmod function.
17 files changed:
lib/ChangeLog
lib/__fpending.h
lib/at-func.c [new file with mode: 0644]
lib/fprintftime.h
lib/fts.c
lib/fts_.h
lib/mkdirat.c
lib/openat-priv.h
lib/openat.c
lib/openat.h
lib/savedir.c
lib/savedir.h
m4/ChangeLog
m4/fts.m4
m4/openat.m4
modules/fts
modules/openat