summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2000-09-22 20:41:40 +0000
committerJim Meyering <jim@meyering.net>2000-09-22 20:41:40 +0000
commita04e5b9dbc6e233a2cbc79ab81b1c22d9438927e (patch)
tree6743f7f327415cf9e30d988e0d54f2ec4e225551 /src
parentce8d840e83648f6797afd22500cb927e8a09e97f (diff)
downloadcoreutils-a04e5b9dbc6e233a2cbc79ab81b1c22d9438927e.tar.xz
(main): When used with --force, each of the --link and
--symbolic-link options now implies --remove-destination.
Diffstat (limited to 'src')
-rw-r--r--src/cp.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/cp.c b/src/cp.c
index f766baee1..a95d8dbcb 100644
--- a/src/cp.c
+++ b/src/cp.c
@@ -882,6 +882,11 @@ Use `--parents' for the old meaning, and `--no-dereference' for the new."));
x.xstat = stat;
}
+ /* If --force (-f) was specified and we're in link-creation mode,
+ first remove any existing destination file. */
+ if (x.unlink_dest_after_failed_open && (x.hard_link || x.symbolic_link))
+ x.unlink_dest_before_opening = 1;
+
/* Allocate space for remembering copied and created files. */
hash_init (INITIAL_HASH_MODULE, INITIAL_ENTRY_TAB_SIZE);