From 16719ea6e1ef29d6a570de27917aec881622fd8c Mon Sep 17 00:00:00 2001
From: sin <sin@2f30.org>
Date: Tue, 17 Feb 2015 16:13:45 +0000
Subject: [PATCH] cp: Update program usage and manpages

Do not document the non-standard -r flag as it is highly discouraged.
It is still silently accepted and treated the same as -R.
---
 cp.1 | 30 ++++++++++++++----------------
 cp.c | 12 ++++++------
 2 files changed, 20 insertions(+), 22 deletions(-)

diff --git a/cp.1 b/cp.1
index 9434d18..275ff5f 100644
--- a/cp.1
+++ b/cp.1
@@ -1,4 +1,4 @@
-.Dd January 30, 2015
+.Dd February 17, 2015
 .Dt CP 1
 .Os sbase
 .Sh NAME
@@ -6,11 +6,11 @@
 .Nd copy files and directories
 .Sh SYNOPSIS
 .Nm
-.Op Fl Rr
-.Ar file
-.Op Ar name
-.Nm
-.Op Fl aPpRrv
+.Op Fl afpv
+.Oo
+.Fl R
+.Op Fl H | L | P
+.Oc
 .Op Ar file ...
 .Op Ar directory
 .Sh DESCRIPTION
@@ -34,6 +34,14 @@ and
 .Fl r .
 .It Fl f
 If an existing destination file cannot be opened, remove it and try again.
+.It Fl p
+Preserve mode, timestamp and permissions.
+.It Fl v
+Print names of source and destination per file to stdout. In the format:
+"source \-> destination".
+.It Fl R
+Copies directories recursively. If this flag is not specified, directories
+are not copied.
 .It Fl H
 Only dereference symbolic links that are passed as command line arguments when
 recursively traversing directories.
@@ -42,16 +50,6 @@ Always dereference symbolic links while recursively traversing directories
 (default).
 .It Fl P
 Don't dereference symbolic links.
-.It Fl p
-Preserve mode, timestamp and permissions.
-.It Fl R
-Equivalent to -r.
-.It Fl r
-Copies directories recursively. If this flag is not specified, directories
-are not copied.
-.It Fl v
-Print names of source and destination per file to stdout. In the format:
-"source \-> destination".
 .El
 .Sh SEE ALSO
 .Xr mv 1
diff --git a/cp.c b/cp.c
index c7be281..1026d9a 100644
--- a/cp.c
+++ b/cp.c
@@ -7,7 +7,7 @@
 static void
 usage(void)
 {
-	eprintf("usage: %s [-adfpRrv] source... dest\n", argv0);
+	eprintf("usage: %s [-afpv] [-R [-H | -L | -P]] source... dest\n", argv0);
 }
 
 int
@@ -21,11 +21,14 @@ main(int argc, char *argv[])
 		cp_HLPflag = 'P';
 		cp_aflag = cp_pflag = cp_rflag = 1;
 		break;
+	case 'f':
+		cp_fflag = 1;
+		break;
 	case 'p':
 		cp_pflag = 1;
 		break;
-	case 'f':
-		cp_fflag = 1;
+	case 'v':
+		cp_vflag = 1;
 		break;
 	case 'r':
 	case 'R':
@@ -36,9 +39,6 @@ main(int argc, char *argv[])
 	case 'P':
 		cp_HLPflag = ARGC();
 		break;
-	case 'v':
-		cp_vflag = 1;
-		break;
 	default:
 		usage();
 	} ARGEND;