summaryrefslogtreecommitdiff
path: root/src/copy.c
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2016-11-19 11:26:43 +0000
committerPádraig Brady <P@draigBrady.com>2016-11-19 17:05:33 +0000
commitf1799198483171c8565a4ff8fc1205d0a52fce37 (patch)
treefcd58921c28ced224cf33f7c4cb45871a385ae91 /src/copy.c
parent0c5cc8384a84ad39f7788ed1c5092bc14a0431ce (diff)
downloadcoreutils-f1799198483171c8565a4ff8fc1205d0a52fce37.tar.xz
cp: improve status message when omitting directories
* src/copy.h (cp_options): Add a new flag for install(1). * src/copy.c (copy_internal): For cp, also output remediation advice which also indicates why directories aren't copied by default. The message is unchanged for install(1). * src/cp.c (cp_option_init): Init install_mode to false. * src/mv.c (cp_option_init): Likewise. * src/install.c (cp_option_init): Init install_mode to true. * tests/install/basic-1.sh: Add a test case. * tests/cp/link-deref.sh: Adjust test case. Fixes http://bugs.gnu.org/24958
Diffstat (limited to 'src/copy.c')
-rw-r--r--src/copy.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/copy.c b/src/copy.c
index 422d50efe..b3acff347 100644
--- a/src/copy.c
+++ b/src/copy.c
@@ -1873,7 +1873,10 @@ copy_internal (char const *src_name, char const *dst_name,
if (S_ISDIR (src_mode) && !x->recursive)
{
- error (0, 0, _("omitting directory %s"), quoteaf (src_name));
+ error (0, 0, ! x->install_mode /* cp */
+ ? _("-r not specified; omitting directory %s")
+ : _("omitting directory %s"),
+ quoteaf (src_name));
return false;
}