Age | Commit message (Collapse) | Author |
|
(copy_reg): New args CHOWN_SUCCEDED and DST_SB. All callers changed.
Add a "goto close_src_and_dst_desc;" that was missing in the
previous patch.
(copy_reg) [HAVE_FCHOWN]: Prefer fchown to chown.
(copy_reg) [HAVE_FCHMOD]: Prefer fchmod to chmod.
(copy_internal): Don't invoke chown if fchown worked,
and likewise for chmod and fchmod.
|
|
x->preserve_timestamps is set, using futimens so that
we needn't resolve the path again.
(copy_internal): Don't preserve time stamps if copy_reg did it
already.
|
|
TIMESPEC_NS macro.
|
|
|
|
(copy_reg): Don't call fd_safer; no longer needed
now that we include fcntl--.h.
|
|
|
|
This is a crutch so that `make distcheck's sc_tight_scope rule
knows that they really are deliberately declared that way.
|
|
[HAVE_PRIV_H]: Include <priv.h>.
(DO_CHOWN): Remove. Replaced by chown_failure_ok. All callers
changed.
(copy_internal): If chown failed, don't worry about what happened
to the mode bits; they can't have changed.
(chown_privileges, chown_failure_ok): New functions.
|
|
|
|
|
|
This makes `mv -i --reply=no f1 f2' work as expected (in not
performing the move operation). But note that specifying `-i'
after `--reply=no' does *not* work.
Tiny patch from Vlada Macek.
|
|
(copy_reg): Use fd_safer.
|
|
|
|
|
|
to the same file. This fixes a bug introduced by my 2003-04-04
(coreutils-5.0.1) change.
(abandon_move): New function, factored out of
copy_internal, now that this code is being used from two places.
(copy_internal): Perform the same interactive-related test for
whether it's alright to proceed and (usually) overwrite the
destination file.
|
|
Reported by Paul Eggert in
http://lists.gnu.org/archive/html/bug-coreutils/2004-10/msg00050.html.
|
|
not both hard_link and symbolic_link are set.
|
|
|
|
|
|
a destination with link count greater than one. This is so
that commands like "cp -a" don't get confused when copying into
a destination that already contains many hard links.
|
|
same_file_ok, seen_file, copy_internal, valid_options, copy):
Use bool when appropriate.
|
|
returns NULL, so don't bother to check for this.
|
|
|
|
|
|
|
|
Instead, include yesno.h.
|
|
Instead, include "euidaccess.h".
|
|
royally if the link length is long (e.g., GNU/Hurd). Use
xreadlink instead, it's safer. Don't bother to read the link if
it's the wrong size. Add a FIXME because this area is a bit murky
and undocumented.
|
|
|
|
(copy_reg): Align I/O buffers to page boundaries.
|
|
(copy_internal): Compare time stamps using utimecmp rather than
MTIME_CMP.
|
|
mv mistakenly fails to preserve a hard link. Reported by IIDA Yosiaki.
When moving a set of N hard-linked files between
partitions, via two or more command line arguments where the
command line argument containing the Nth link contains no other
link to that same file, mv would mistakenly copy the file, rather
than hard-linking it to the other(s). That happens because when the
final link is processed, its link count has been reduced to 1 since
the other links have been `copied' to the destination partition
and the source links have been removed.
(copy_internal): When in move mode, use the source dev/inode
pair to look up destination name even when st_nlink == 1.
|
|
produce an invalid copy on the destination device.
(copy_reg): Even with --sparse=always, try to
make `holes' only if the destination is a regular file.
Reported by Szakacsits Szabolcs.
|
|
portable, since some systems (OSF V5.1, Solaris 2.5.1) provide static
inline `stat' and `lstat' functions, thus making the tests of
`xstat == lstat' in copy.c always fail.
(copy_dir): Set `.dereference' member, not .xstat.
(copy_internal): Use `XSTAT (x, ...)' in place of `*(x->xstat) (...)'.
Use `x->dereference == DEREF_NEVER' in place of `x->xstat == lstat'.
(valid_options): Remove now-obsolete FIXME comments.
|
|
|
|
The former is more maintainable and usually shorter.
|
|
type changes (unsigned int -> size_t) in hash.c.
|
|
S_ISLNK or S_ISSOCK. The S_IS* macros are guaranteed to be defined
via system.h.
|
|
|
|
Remove duplicate inclusion of "same.h".
|
|
on a partition (e.g. VFAT) on which distinct names may refer to the
same directory entry (often due to variations in case), and when the
link count for the file is 1, mv no longer unlinks the file.
FIXME: this is a band-aid fix. If the file happens to have a link
count of 2 or greater, mv will still unlink it.
(same_file_ok): Invoke same_name (which might still
return false for names that refer to the same directory entry)
only if the link count is 2 or more.
|
|
(copy_internal): Set file timestamps with utimens, not utime.
|
|
|
|
adequate, since join.c uses alloca, yet lacked an in-file #pragma.
Remove `#pragma alloca'.
|
|
Use `error_t' (rather than int) as type for local `err'.
|
|
Fix author preservation code.
|
|
(triple_free): Don't apply cast to argument of free.
(seen_file): Add cast here instead.
|
|
xrealloc, and xcalloc return values and of xrealloc's first argument.
|
|
`mv a b' would not remove `a' in some unusual cases. Work around
this by unlinking `a' when necessary.
(same_file_ok): Add an output parameter.
Set it in the offending case.
(copy_internal): When necessary, unlink SRC_PATH and inform caller.
|
|
failure to create a hard link, do not remove the entry associating
the source dev/ino with the destination file name.
|