Commit Graph

5505 Commits

Author SHA1 Message Date
Jim Meyering 791e40357b . 2006-01-22 08:53:59 +00:00
Jim Meyering 42629c4629 . 2006-01-17 19:57:26 +00:00
Jim Meyering 0ca8bc4273 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.
2006-01-17 17:26:15 +00:00
Jim Meyering c97a36e2d9 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 (...
2006-01-17 17:25:42 +00:00
Jim Meyering 7dabfc7e73 . 2006-01-12 08:40:34 +00:00
Paul Eggert bfbe450d32 (test_syntax_error): Append a newline. All callers
changed, except for the ones that didn't already append a newline.
2006-01-11 19:29:47 +00:00
Jim Meyering 6b8b2183e7 (X2NREALLOC): Now that verify_true is no longer void,
cast its result to void, to avoid gcc's warning that
``left-hand operand of comma expression has no effect''.
(DECIMAL_DIGIT_ACCUMULATE, X2REALLOC): Likewise.
2006-01-11 08:22:34 +00:00
Paul Eggert d11af4159e Sync from gnulib. 2006-01-10 17:47:56 +00:00
Jim Meyering f09a4ffe18 (gobble_file): Use DTTOIF only if it's defined.
This is necessary for Dragonfly.  Patch by Joerg Sonnenberger.
2006-01-10 07:31:21 +00:00
Jim Meyering 28a712f205 (usage): Adjust the formatting of the entries for
%::z and %:::z (separate with two spaces, not one) so that help2man
formats them properly.  Reported by Philip Rowlands.
2006-01-08 20:45:54 +00:00
Jim Meyering 01ab0b79a1 (rm_1): Remove static' attribute on local status'.
First off, the attribute should have been `volatile' (not static)
to avoid longjmp-related risk of clobber.  Secondly, now there is
no longer any risk of a local variable being clobbered, so there's
no need for any attribute at all.
2006-01-06 10:14:19 +00:00
Jim Meyering 955fbf3211 Give a few functions the inline attribute.
(AD_pop_and_chdir): Use gotos to avoid some duplication.
(AD_push): Rewrite an assertion so that the entire computation
goes away when assertions are turned off.
2006-01-05 14:28:52 +00:00
Jim Meyering 91be6f4495 (ENOSYS) [!defined ENOSYS]: Don't define here.
It's already defined in "system.h".
2006-01-05 10:27:03 +00:00
Jim Meyering 084903a2b1 . 2006-01-04 21:06:39 +00:00
Jim Meyering 6a845acf0f (O_DIRECTORY) [!defined O_DIRECTORY]: Define. 2006-01-03 07:41:03 +00:00
Paul Eggert 7126eb3216 (RC_do_ordinary_chown): New enum value.
(restricted_chown): Return it, if the file cannot be accessed due
to EPERM, or if no uid or gid are required, or if the file is
neither a directory nor a regular file.  Rewrite to avoid gotos.
(change_file_owner): Handle RC_do_ordinary_chown case.
Rewrite to avoid gotos.
2006-01-03 06:20:06 +00:00
Paul Eggert 7d9fe7fa8e (usage): Explain %g, %G, and %V a bit better. 2006-01-03 00:43:19 +00:00
Jim Meyering 7f8d61f03e (set_owner): Correct a comment. 2006-01-02 21:34:53 +00:00
Jim Meyering f59d4713e5 (parse_options): Change warning to say that --retry
is useful `mainly' (not `only') when following by name.
Reported here: http://bugs.debian.org/273781
2006-01-02 19:11:22 +00:00
Paul Eggert 862fbc427b (usage): Clarify -m's operation.
(main): If -m is given, don't invoke chmod; use umask 0 instead.
Report an error if -m asks for bits outside the 777 range.

Undo 2005-12-19 changes.
2006-01-02 06:39:06 +00:00
Paul Eggert 4ff2e46dde Update copyright year. 2006-01-02 06:38:33 +00:00
Paul Eggert a8c545ea74 (usage): Clarify -m's operation.
(main): If -m is given, don't invoke chmod; use umask 0 instead.
Report an error if -m asks for bits outside the 777 range.
2006-01-02 06:38:06 +00:00
Paul Eggert 51050b62c8 Include lchmod.h.
(usage): Clarify -m's operation.
(main): Use lchmod rather than chmod.  Don't use lchmod unless the
new mode contains bits outside the 777 range.
2006-01-02 06:37:36 +00:00
Paul Eggert 4aff81e69a Include lchmod.h.
(re_protect, make_dir_parents_private): Use lchmod rather than chmod.
2006-01-02 06:36:55 +00:00
Paul Eggert faac2ccac5 Include lchmod.h.
(copy_internal): Use lchmod rather than chmod.
2006-01-02 06:36:10 +00:00
Jim Meyering 67e065e79d Don't include <assert.h>; it wasn't used. 2005-12-28 10:22:41 +00:00
Paul Eggert 3f11d67a56 (wipename): Use similar open flags to other places we open directories.
Don't bother trying to open dir for writing, since POSIX prohibits it.
2005-12-27 08:00:12 +00:00
Paul Eggert 40ea51a322 (fd_to_subdirp): Open with O_DIRECTORY | O_NOCTTY
| O_NOFOLLOW too, for consistency with other dir-openers.
Use POSIX-preferred O_NONBLOCK rather than O_NDELAY.
(is_empty_dir): Likewise.
2005-12-27 07:59:27 +00:00
Paul Eggert da4c548bbb (restricted_chown):
Don't try O_WRONLY unless O_RDONLY failed wth EACCES.
2005-12-27 07:59:00 +00:00
Jim Meyering 1e1938032b . 2005-12-21 10:23:51 +00:00
Jim Meyering fa6cfcb9ce (main) Avoid a minor race condition when `-m MODE' is specified, by using
open, fchown, and close rather than just chown.  To do that reliably
(even with an overly restrictive umask), ensure that each
mknod call uses a mode including at least owner-read access.

(main): When `-m MODE' is specified, exit nonzero if
the subsequent chown (or equivalent open,fchown,close) fails.
2005-12-19 18:18:03 +00:00
Jim Meyering 52893ffd2a (main) Avoid a minor race condition when `-m MODE' is specified, by using
open, fchown, and close rather than just chown.  To do that reliably
(even with an overly restrictive umask), ensure that each
mkdir call uses a mode including at least owner-read access.
2005-12-19 18:17:16 +00:00
Jim Meyering 17f521adfd (main) Avoid a minor race condition when `-m MODE' is specified, by using
open, fchown, and close rather than just chown.  To do that reliably
(even with an overly restrictive umask), ensure that each mknod/mkfifo
call uses a mode including at least owner-read access.
2005-12-19 18:16:07 +00:00
Jim Meyering 46f3108c99 (is_empty_dir): Open with O_NDELAY, so we don't hang, e.g., on a named pipe.
(OPEN_NO_FOLLOW_SYMLINK): Remove definition.  Use O_NOFOLLOW in
place of all uses, since it is guaranteed (system.h) to be defined.
2005-12-17 13:46:27 +00:00
Jim Meyering c99e1d2cb6 . 2005-12-17 10:48:30 +00:00
Jim Meyering 7b08fdb1eb (cp_option_init): Don't set umask_kill member. 2005-12-17 10:46:23 +00:00
Jim Meyering eee9e3d072 (cp_option_init): Don't set umask_kill member. 2005-12-17 10:45:54 +00:00
Jim Meyering 406a9d3636 (cp_option_init) [umask_kill]: Remove member. 2005-12-17 10:43:12 +00:00
Jim Meyering fdffb6bb48 (umask_kill): With default acls, the umask is not to be applied.
Remove umask_kill, don't change the process umask, and let the kernel
apply the umask where appropriate.
(make_dir_parents_private): Fix logic for POSIX ACLs.
2005-12-17 10:40:10 +00:00
Jim Meyering 4fb20524d7 (dir_LDADD, ls_LDADD, vdir_LDADD, cp_LDADD, mv_LDADD, ginstall_LDADD):
On systems with an ACL library, arrange
to link with it via $(LIB_ACL), for the utilities that need it.
2005-12-17 10:37:47 +00:00
Jim Meyering f634e88445 (get_dest_mode): Remove; it is obsolete after removing umask_kill.
(copy_reg, copy_internal): Use copy_acl and set_acl
instead of fchown/chown. Fix the logic for POSIX ACLs.
(chown_succeded): Remove; we now always copy acls and
preserve S_ISUID, S_ISGID, and S_ISVTX when needed, no matter if we
did a chown before or not.
2005-12-17 10:33:33 +00:00
Jim Meyering e6ece7ba6c Switch back from HAVE_ACL to USE_ACL: The acl() syscall
is no requirement for ACL support; particularly, it does not exist
on systems that have POSIX ACLs.
2005-12-17 10:33:08 +00:00
Paul Eggert 25c49ccc1c (OPENAT_CWD_RESTORE__REQUIRE): Remove.
(OPENAT_CWD_RESTORE__ALLOW_FAILURE): Likewise.
(fd_to_subdirp): Remove openat_cwd_restore_allow_failure arg; its
value is now signified by whether cwd_errno is null.
(fd_to_subdirp, remove_dir, rm_1); Change cwd failure indicator from
pointer-to-bool to pointer-to-errno-value.  All callers changed.
(rm_1): Don't bother setting a local cwd failure flag and then
ORing it into the caller's.  Just set the caller's.
(rm): Use cwd failure errno value to print a slightly-better
diagnostic.
2005-12-17 06:55:54 +00:00
Jim Meyering ce79c562f6 (print_it): Properly handle a backslash at the
end of a --printf format string.  Reported by Paul Eggert.
2005-12-15 20:15:20 +00:00
Jim Meyering 049a807bc6 . 2005-12-15 14:47:36 +00:00
Jim Meyering 8768b88913 revert behavior of --format=FMT (-c)
add new option: --printf=FMT

(isodigit, octtobin, hextobin): Define.
(PRINTF_OPTION): Define.
(interpret_backslash_escapes, trailing_delim): New globals.
(usage): Document them.  Alphabetize on long option names.
(print_esc_char): New function.
(print_it): Rewrite, in order to handle backslash escapes.
(main): Handle new option.  Set globals for --format, too.
2005-12-15 12:24:30 +00:00
Paul Eggert e18c4ff172 (incompatible_options): New function.
(check_ordering_compatibility, main): Use it.
(main): Check for -c and -o.
Don't bother with a usage message for
"sort -c a b", for consistency with other error diagnostics.
2005-12-14 23:59:23 +00:00
Paul Eggert 56805cd202 (check_ordering_compatibility): New function.
(main): Use it.
2005-12-14 22:46:02 +00:00
Paul Eggert dcc1bc1759 Undo previous change. 2005-12-14 18:09:04 +00:00
Paul Eggert f5e1bca49d (main): Check for close (STDOUT_FILENO) failure. 2005-12-14 01:39:46 +00:00