summaryrefslogtreecommitdiffstats
path: root/bin/cp
diff options
context:
space:
mode:
authorsteve <steve@FreeBSD.org>1996-12-14 05:51:58 +0000
committersteve <steve@FreeBSD.org>1996-12-14 05:51:58 +0000
commit78e21244f4320b39d29f1831a9cbadcc24312997 (patch)
tree447afd24de0cc1372c018635be4f5a093235e666 /bin/cp
parent151124272c853e06368681c41bd6ace057d45df7 (diff)
downloadFreeBSD-src-78e21244f4320b39d29f1831a9cbadcc24312997.zip
FreeBSD-src-78e21244f4320b39d29f1831a9cbadcc24312997.tar.gz
Merge Lite2 mods and -Wall cleaning.
Diffstat (limited to 'bin/cp')
-rw-r--r--bin/cp/cp.14
-rw-r--r--bin/cp/cp.c17
-rw-r--r--bin/cp/utils.c4
3 files changed, 16 insertions, 9 deletions
diff --git a/bin/cp/cp.1 b/bin/cp/cp.1
index 4586ffc..067df19 100644
--- a/bin/cp/cp.1
+++ b/bin/cp/cp.1
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)cp.1 8.3 (Berkeley) 4/18/94
-.\" $Id: cp.1,v 1.5 1996/03/08 06:58:05 wosch Exp $
+.\" $Id: cp.1,v 1.6 1996/08/29 18:05:44 wosch Exp $
.\"
.Dd April 18, 1994
.Dt CP 1
@@ -213,7 +213,7 @@ or fifo's.
.Xr umask 2 ,
.Xr fts 3 ,
.Xr symlink 7
-.Sh HISTORY
+.Sh STANDARDS
The
.Nm cp
command is expected to be
diff --git a/bin/cp/cp.c b/bin/cp/cp.c
index 83f8a9c..6176ed4 100644
--- a/bin/cp/cp.c
+++ b/bin/cp/cp.c
@@ -33,17 +33,17 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: cp.c,v 1.9 1996/02/19 05:56:33 pst Exp $
+ * $Id: cp.c,v 1.10 1996/03/08 06:58:06 wosch Exp $
*/
#ifndef lint
-static char copyright[] =
+static char const copyright[] =
"@(#) Copyright (c) 1988, 1993, 1994\n\
The Regents of the University of California. All rights reserved.\n";
#endif /* not lint */
#ifndef lint
-static char sccsid[] = "@(#)cp.c 8.2 (Berkeley) 4/1/94";
+static char const sccsid[] = "@(#)cp.c 8.2 (Berkeley) 4/1/94";
#endif /* not lint */
/*
@@ -51,7 +51,7 @@ static char sccsid[] = "@(#)cp.c 8.2 (Berkeley) 4/1/94";
*
* The global PATH_T structure "to" always contains the path to the
* current target file. Since fts(3) does not change directories,
- * this path can be either absolute or dot-realative.
+ * this path can be either absolute or dot-relative.
*
* The basic algorithm is to initialize "to" and use fts(3) to traverse
* the file hierarchy rooted in the argument list. A trivial case is the
@@ -253,7 +253,7 @@ copy(argv, type, fts_options)
struct stat to_stat;
FTS *ftsp;
FTSENT *curr;
- int base, dne, nlen, rval;
+ int base = 0, dne, nlen, rval;
char *p, *target_mid;
if ((ftsp = fts_open(argv, fts_options, mastercmp)) == NULL)
@@ -341,6 +341,13 @@ copy(argv, type, fts_options)
(void)fts_set(ftsp, curr, FTS_SKIP);
continue;
}
+ if (!S_ISDIR(curr->fts_statp->st_mode) &&
+ S_ISDIR(to_stat.st_mode)) {
+ warnx("cannot overwrite directory %s with non-directory %s",
+ to.p_path, curr->fts_path);
+ rval = 1;
+ continue;
+ }
dne = 0;
}
diff --git a/bin/cp/utils.c b/bin/cp/utils.c
index 62e208b..8a44e7d 100644
--- a/bin/cp/utils.c
+++ b/bin/cp/utils.c
@@ -30,11 +30,11 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: utils.c,v 1.6 1996/02/18 18:48:26 wosch Exp wosch $
+ * $Id: utils.c,v 1.9 1996/03/08 06:58:08 wosch Exp $
*/
#ifndef lint
-static char sccsid[] = "@(#)utils.c 8.3 (Berkeley) 4/1/94";
+static char const sccsid[] = "@(#)utils.c 8.3 (Berkeley) 4/1/94";
#endif /* not lint */
#include <sys/param.h>
OpenPOWER on IntegriCloud