]> git.ipfire.org Git - thirdparty/coreutils.git/commit
(copy_reg): Don't treat errno==ENOENT as a special case.
authorJim Meyering <jim@meyering.net>
Sat, 12 Jan 2002 22:29:55 +0000 (22:29 +0000)
committerJim Meyering <jim@meyering.net>
Sat, 12 Jan 2002 22:29:55 +0000 (22:29 +0000)
commit50c1199e099a8cf91418f1c91bcfafe970878dd9
tree1f5d1f8a4303b77bd667970babd081532fcb2510
parent5ce160d64ca79f638cfef872e007617de3206130
(copy_reg): Don't treat errno==ENOENT as a special case.
(same_file_ok): Detect a case that would have lead to the errno==ENOENT
condition above (and a misleading diagnostic), and return 0 so we give
a diagnostic about the source and destination being the same file.
(copy_internal): Use an explicit test for errno==EXDEV to detect
that rename has failed because source and destination are on
different devices.  This reverts part of a change from 1997-12-13,
and is to avoid letting a race condition evoke a bogus diagnostic.
Note that while POSIX has encouraged the errno==EXDEV test for
years, it was inadequate back in 1997. I'm hoping that many
more systems have conforming support these days.
Reported by Michael Gaughen <mgaughen@polyserve.com>
src/copy.c