aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coreutils/cp.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/coreutils/cp.c b/coreutils/cp.c
index c5dd31ec3..6a82f6bff 100644
--- a/coreutils/cp.c
+++ b/coreutils/cp.c
@@ -41,7 +41,8 @@
#include "busybox.h"
#include "libcoreutils/coreutils.h"
-static const char cp_opts[] = "pdRfia"; /* WARNING!! ORDER IS IMPORTANT!! */
+/* WARNING!! ORDER IS IMPORTANT!! */
+static const char cp_opts[] = "pdRfiar";
extern int cp_main(int argc, char **argv)
{
@@ -66,6 +67,12 @@ extern int cp_main(int argc, char **argv)
if (flags & 32) {
flags |= (FILEUTILS_PRESERVE_STATUS | FILEUTILS_RECUR | FILEUTILS_DEREFERENCE);
}
+ if (flags & 64) {
+ /* Make -r a synonym for -R,
+ * -r was marked as obsolete in SUSv3, but is included for compatability
+ */
+ flags |= FILEUTILS_RECUR;
+ }
flags ^= FILEUTILS_DEREFERENCE; /* The sense of this flag was reversed. */