diff options
author | Jim Meyering <jim@meyering.net> | 2006-01-17 17:24:14 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2006-01-17 17:24:14 +0000 |
commit | c1994c16c24f860722d2bba529fe99041a774ad6 (patch) | |
tree | 4db3cfe28c5ca822cf7ec0e24197aa44de19e574 /lib/vasprintf.c | |
parent | 739de8914fae814e11198abe20f629cbf50a7586 (diff) | |
download | coreutils-c1994c16c24f860722d2bba529fe99041a774ad6.tar.xz |
Rewrite fts.c not to change the current working directory,
by using openat, fstatat, fdopendir, etc..
[! _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.
Diffstat (limited to 'lib/vasprintf.c')
0 files changed, 0 insertions, 0 deletions