From 0a92bbf349c3a5f67182aca3932a7e29185ab3cf Mon Sep 17 00:00:00 2001 From: Paul Fox Date: Tue, 19 Jul 2005 20:47:33 +0000 Subject: applying fix from: 0000067: cp -p produces misleading error message --- libbb/copy_file.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'libbb') diff --git a/libbb/copy_file.c b/libbb/copy_file.c index 0120d0b16..e1b98ed4c 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; -- cgit v1.2.3