From f1799198483171c8565a4ff8fc1205d0a52fce37 Mon Sep 17 00:00:00 2001 From: Pádraig Brady Date: Sat, 19 Nov 2016 11:26:43 +0000 Subject: 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 --- src/copy.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/copy.c') 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; } -- cgit v1.2.3-54-g00ecf