}
} else {
if (source_stat.st_dev == dest_stat.st_dev &&
- source_stat.st_ino == dest_stat.st_ino) {
- bb_error_msg("`%s' and `%s' are the same file", source, dest);
- return -1;
- }
+ source_stat.st_ino == dest_stat.st_ino)
+ {
+ bb_error_msg("`%s' and `%s' are the same file", source, dest);
+ return -1;
+ }
dest_exists = 1;
}
umask(saved_umask);
}
- add_to_ino_dev_hashtable(&dest_stat, source);
-
/* Recursively copy files in SOURCE. */
if ((dp = opendir(source)) == NULL) {
bb_perror_msg("unable to open directory `%s'", source);
new_source = concat_subpath_file(source, d->d_name);
if(new_source == NULL)
continue;
- if (is_in_ino_dev_hashtable(&dest_stat, &new_source)) {
- bb_error_msg("cannot copy a directory, `%s', into itself, `%s'", new_source, dest);
- continue;
- }
new_dest = concat_path_file(dest, d->d_name);
if (copy_file(new_source, new_dest, flags) < 0)
status = -1;
if (dest_exists) {
if (flags & FILEUTILS_INTERACTIVE) {
- bb_error_msg("overwrite `%s'? ", dest);
+ fprintf(stderr, "%s: overwrite `%s'? ", bb_applet_name, dest);
if (!bb_ask_confirmation()) {
close (src_fd);
return 0;
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;
}
#ifdef CONFIG_FEATURE_PRESERVE_HARDLINKS
- add_to_ino_dev_hashtable(&source_stat, dest);
+ if (! S_ISDIR(source_stat.st_mode)) {
+ add_to_ino_dev_hashtable(&source_stat, dest);
+ }
#endif
end: