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. */