applying fix from:
authorPaul Fox <pgf@brightstareng.com>
Tue, 19 Jul 2005 20:47:33 +0000 (20:47 -0000)
committerPaul Fox <pgf@brightstareng.com>
Tue, 19 Jul 2005 20:47:33 +0000 (20:47 -0000)
 0000067: cp -p produces misleading error message

libbb/copy_file.c

index 0120d0b16b988068c40c1abccc7c1909a5369a4d..e1b98ed4ca210cd9bbe24b2601c4c0a489479930 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;