applying fix from:
authorpgf <pgf@69ca8d6d-28ef-0310-b511-8ec308f3f277>
Tue, 19 Jul 2005 20:47:33 +0000 (20:47 +0000)
committerpgf <pgf@69ca8d6d-28ef-0310-b511-8ec308f3f277>
Tue, 19 Jul 2005 20:47:33 +0000 (20:47 +0000)
 0000067: cp -p produces misleading error message

git-svn-id: svn://busybox.net/trunk/busybox@10862 69ca8d6d-28ef-0310-b511-8ec308f3f277

libbb/copy_file.c

index 0120d0b..e1b98ed 100644 (file)
@@ -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;