avoid additional fork when doing local-local and remote-remote copies
SCCS-vsn: bin/rcp/rcp.c 8.2
#endif /* not lint */
#ifndef lint
#endif /* not lint */
#ifndef lint
-static char sccsid[] = "@(#)rcp.c 8.1 (Berkeley) %G%";
+static char sccsid[] = "@(#)rcp.c 8.2 (Berkeley) %G%";
#endif /* not lint */
#include <sys/param.h>
#endif /* not lint */
#include <sys/param.h>
thost, targ);
} else
(void)snprintf(bp, len,
thost, targ);
} else
(void)snprintf(bp, len,
- "%s %s -n %s %s '%s%s%s:%s'",
+ "exec %s %s -n %s %s '%s%s%s:%s'",
_PATH_RSH, argv[i], cmd, src,
tuser ? tuser : "", tuser ? "@" : "",
thost, targ);
_PATH_RSH, argv[i], cmd, src,
tuser ? tuser : "", tuser ? "@" : "",
thost, targ);
strlen(argv[argc - 1]) + 20;
if (!(bp = malloc(len)))
err(1, NULL);
strlen(argv[argc - 1]) + 20;
if (!(bp = malloc(len)))
err(1, NULL);
- (void)snprintf(bp, len, "%s%s%s %s %s", _PATH_CP,
+ (void)snprintf(bp, len, "exec %s%s%s %s %s", _PATH_CP,
iamrecursive ? " -r" : "", pflag ? " -p" : "",
argv[i], argv[argc - 1]);
if (susystem(bp, userid))
iamrecursive ? " -r" : "", pflag ? " -p" : "",
argv[i], argv[argc - 1]);
if (susystem(bp, userid))
char *argv[];
{
static BUF buffer;
char *argv[];
{
static BUF buffer;
struct stat stb;
struct timeval tv[2];
enum { YES, NO, DISPLAYED } wrerr;
struct stat stb;
struct timeval tv[2];
enum { YES, NO, DISPLAYED } wrerr;
off_t i, j;
int amt, count, exists, first, mask, mode, ofd, omode;
int setimes, size, targisdir, wrerrno;
off_t i, j;
int amt, count, exists, first, mask, mode, ofd, omode;
int setimes, size, targisdir, wrerrno;
- char ch, *np, *targ, *why, *vect[1], buf[BUFSIZ];
+ char ch, *cp, *np, *targ, *why, *vect[1], buf[BUFSIZ];
#define atime tv[0]
#define mtime tv[1]
#define atime tv[0]
#define mtime tv[1]
- register char *cp;
- char ch, resp, rbuf[BUFSIZ];
+ char ch, *cp, resp, rbuf[BUFSIZ];
if (read(rem, &resp, sizeof(resp)) != sizeof(resp))
lostconn(0);
if (read(rem, &resp, sizeof(resp)) != sizeof(resp))
lostconn(0);