summaryrefslogtreecommitdiff
path: root/coreutils/cp.c
diff options
context:
space:
mode:
authorMike Frysinger2005-01-07 00:56:47 +0000
committerMike Frysinger2005-01-07 00:56:47 +0000
commit6077d90c26b1e102a6bb337c48821313111dc751 (patch)
tree21b46eb4637ead189d6abdfd9194d0f7543efb0e /coreutils/cp.c
parent1e4dc96d61d1e1309b7117f0304a8ba161666f40 (diff)
downloadbusybox-6077d90c26b1e102a6bb337c48821313111dc751.zip
busybox-6077d90c26b1e102a6bb337c48821313111dc751.tar.gz
cp: make -P a synonym for -d
Diffstat (limited to 'coreutils/cp.c')
-rw-r--r--coreutils/cp.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/coreutils/cp.c b/coreutils/cp.c
index 6a82f6b..97731e8 100644
--- a/coreutils/cp.c
+++ b/coreutils/cp.c
@@ -42,7 +42,7 @@
#include "libcoreutils/coreutils.h"
/* WARNING!! ORDER IS IMPORTANT!! */
-static const char cp_opts[] = "pdRfiar";
+static const char cp_opts[] = "pdRfiarP";
extern int cp_main(int argc, char **argv)
{
@@ -73,6 +73,12 @@ extern int cp_main(int argc, char **argv)
*/
flags |= FILEUTILS_RECUR;
}
+ if (flags & 128) {
+ /* Make -P a synonym for -d,
+ * -d is the GNU option while -P is the POSIX 2003 option
+ */
+ flags |= FILEUTILS_DEREFERENCE;
+ }
flags ^= FILEUTILS_DEREFERENCE; /* The sense of this flag was reversed. */