summaryrefslogtreecommitdiff
path: root/libbb/copy_file.c
diff options
context:
space:
mode:
authorPaul Fox2005-07-19 20:47:33 +0000
committerPaul Fox2005-07-19 20:47:33 +0000
commit0a92bbf349c3a5f67182aca3932a7e29185ab3cf (patch)
treeac6d4c839e1a6af0c9a8949526eef2206d67be03 /libbb/copy_file.c
parent574fee4f99dfe3d5a40f47af1841bf6b66f55b60 (diff)
downloadbusybox-0a92bbf349c3a5f67182aca3932a7e29185ab3cf.zip
busybox-0a92bbf349c3a5f67182aca3932a7e29185ab3cf.tar.gz
applying fix from:
0000067: cp -p produces misleading error message
Diffstat (limited to 'libbb/copy_file.c')
-rw-r--r--libbb/copy_file.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/libbb/copy_file.c b/libbb/copy_file.c
index 0120d0b..e1b98ed 100644
--- a/libbb/copy_file.c
+++ b/libbb/copy_file.c
@@ -198,12 +198,16 @@ int copy_file(const char *source, const char *dest, int flags)
S_ISSOCK(source_stat.st_mode) || S_ISFIFO(source_stat.st_mode) ||
S_ISLNK(source_stat.st_mode)) {
- if (dest_exists &&
- ((flags & FILEUTILS_FORCE) == 0 || unlink(dest) < 0)) {
+ if (dest_exists) {
+ if((flags & FILEUTILS_FORCE) == 0) {
+ fprintf(stderr, "`%s' exists\n", dest);
+ return -1;
+ }
+ if(unlink(dest) < 0) {
bb_perror_msg("unable to remove `%s'", dest);
return -1;
-
}
+ }
} else {
bb_error_msg("internal error: unrecognized file type");
return -1;