diff options
author | steve <steve@FreeBSD.org> | 1996-12-14 05:51:58 +0000 |
---|---|---|
committer | steve <steve@FreeBSD.org> | 1996-12-14 05:51:58 +0000 |
commit | 78e21244f4320b39d29f1831a9cbadcc24312997 (patch) | |
tree | 447afd24de0cc1372c018635be4f5a093235e666 /bin/cp | |
parent | 151124272c853e06368681c41bd6ace057d45df7 (diff) | |
download | FreeBSD-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.1 | 4 | ||||
-rw-r--r-- | bin/cp/cp.c | 17 | ||||
-rw-r--r-- | bin/cp/utils.c | 4 |
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> |