Jim Meyering [Wed, 8 Feb 2006 12:44:36 +0000 (12:44 +0000)]
(local-checks-available): Define in terms of
the expansion, $(syntax-check-rules), rather than the single,
top-level target `syntax-check', so that it's easier to exclude
individual rules (via $(local-checks-to-skip)).
(tgz-md5, tgz-sha1, ...): Remove now-unused definitions.
Jim Meyering [Mon, 6 Feb 2006 08:00:23 +0000 (08:00 +0000)]
(usage): Use two spaces (not one) to separate the --no-preserve-root option
string from its description, so help2man formats the derived man page properly.
Jim Meyering [Mon, 6 Feb 2006 07:39:37 +0000 (07:39 +0000)]
(usage): Use two spaces (not one) to separate the
option string from its description, so help2man formats the
derived man page properly. Patch from Nicolas François
in http://bugs.debian.org/351601.
Jim Meyering [Sat, 4 Feb 2006 10:49:21 +0000 (10:49 +0000)]
(copy_internal): cp -RL no longer fails when encountering
the same directory more than once in the hierarchy beneath a single
command-line argument. That is legitimate, e.g. when there are
two or more symbolic links, each pointing to some directory that
would not otherwise be copied. Reported by Christophe LYON.
Paul Eggert [Tue, 24 Jan 2006 23:30:46 +0000 (23:30 +0000)]
(show_dev): If the file system claims to have more available than total
blocks, report the number of used blocks as being total - available
(a negative number) rather than as garbage.
Jim Meyering [Tue, 24 Jan 2006 10:32:32 +0000 (10:32 +0000)]
(tail_forever): Don't exit-nonzero when an attempt
to put a regular file in O_NONBLOCK mode fails with EPERM.
That happens on Linux when using tail -f on a file with the
append-only attribute. Reported by Dean Gaudet. For details,
see http://savannah.gnu.org/bugs/?func=detailitem&item_id=15473.
Jim Meyering [Tue, 17 Jan 2006 17:26:15 +0000 (17:26 +0000)]
Include "openat.h".
Don't include "lchown.h".
(restricted_chown): Accept a new parameter, CWD_FD, and use it in
calling openat, lchownat, chownat, rather than open, lchown, chown.
Update caller.
Jim Meyering [Tue, 17 Jan 2006 17:25:42 +0000 (17:25 +0000)]
Now that fts no longer changes the current working directory, adjust
its clients accordingly -- note that du.c uses fts but doesn't need
any adjustment, since it doesn't operate on the actual files,
but rather just uses the stat buffers provided by fts.
Include "openat.h".
(process_file): Use chmodat (fts->fts_cwd_fd,... in place of chmod (...
Jim Meyering [Tue, 17 Jan 2006 17:24:14 +0000 (17:24 +0000)]
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.