summaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorGian Piero Carrubba <gpiero@rm-rf.it>2013-11-07 23:35:52 +0100
committerBernhard Voelker <mail@bernhard-voelker.de>2013-11-07 23:45:22 +0100
commitbf6bf52dce37832b03ecfbe1b3a3b104f532df42 (patch)
treec62463b576c33400b029667a0991367c9da47b7c /NEWS
parent2c6736f92fc7d2f310714473ea84ceff57e01da2 (diff)
downloadcoreutils-bf6bf52dce37832b03ecfbe1b3a3b104f532df42.tar.xz
cp: fix --link regarding the dereferencing of symbolic links
* src/copy.c (create_hard_link): Add a bool 'dereference' parameter, and pass AT_SYMLINK_FOLLOW as 'flags' to linkat() when dereference is true. (should_dereference): Add new 'bool' function to determine if a file should be dereferenced or not. (copy_internal): Use the above new should_dereference() and remember its return value in a new local bool 'dereference' variable. Use that in all three calls to create_hard_link(). * src/cp.c (main): after parsing the options, if x.dereference is still DEFEF_UNDEFINED and the x.recursive is true, then only set x.dereference to DEREF_NEVER iff --link was not specified. * doc/coreutils.texi (cp invocation): Mention that cp(1) does not follow symbolic links in the source when --link is specified. Likewise in the description of the -R option when used together with that option. * tests/cp/same-file.sh: Adapt the expected results for the -fl, the -bl and the -bfl tests. * tests/cp/link-deref.sh: Add a new test. * tests/local.mk (all_tests): Reference the above new test. * NEWS (Changes in behavior): Mention the change. This fixes http://bugs.gnu.org/15173 Co-authored-by: Bernhard Voelker <mail@bernhard-voelker.de>
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS5
1 files changed, 5 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index bb35583b6..6f685b478 100644
--- a/NEWS
+++ b/NEWS
@@ -70,6 +70,11 @@ GNU coreutils NEWS -*- outline -*-
** Changes in behavior
+ cp --link now dereferences a symbolic link as source before creating the
+ hard link in the destination unless the -P,--no-deref option is specified.
+ Previously, it would create a hard link of the symbolic link, even when
+ the dereferencing options -L or -H were specified.
+
dd status=none now suppresses all non fatal diagnostic messages,
not just the transfer counts.