version 1.20, 1997/04/23 20:32:57 |
version 1.21, 1997/07/25 21:56:17 |
|
|
/* $OpenBSD$ */ |
/* $OpenBSD$ */ |
/* $NetBSD: cmds.c,v 1.23 1997/04/14 09:09:15 lukem Exp $ */ |
/* $NetBSD: cmds.c,v 1.26 1997/07/21 14:03:48 lukem Exp $ */ |
|
|
/* |
/* |
* Copyright (c) 1985, 1989, 1993, 1994 |
* Copyright (c) 1985, 1989, 1993, 1994 |
|
|
if (!*tp) { |
if (!*tp) { |
tp = cp; |
tp = cp; |
tp2 = tmpbuf; |
tp2 = tmpbuf; |
while ((*tp2 = *tp) != NULL) { |
while ((*tp2 = *tp) != '\0') { |
if (isupper(*tp2)) { |
if (isupper(*tp2)) { |
*tp2 = 'a' + *tp2 - 'A'; |
*tp2 = 'a' + *tp2 - 'A'; |
} |
} |
|
|
if (!*tp) { |
if (!*tp) { |
tp = argv[2]; |
tp = argv[2]; |
tp2 = tmpbuf; |
tp2 = tmpbuf; |
while ((*tp2 = *tp) != NULL) { |
while ((*tp2 = *tp) != '\0') { |
if (isupper(*tp2)) { |
if (isupper(*tp2)) { |
*tp2 = 'a' + *tp2 - 'A'; |
*tp2 = 'a' + *tp2 - 'A'; |
} |
} |
|
|
if (mflag && confirm(argv[0], cp)) { |
if (mflag && confirm(argv[0], cp)) { |
tp = cp; |
tp = cp; |
if (mcase) { |
if (mcase) { |
for (tp2 = tmpbuf; (ch = *tp++) != NULL; ) |
for (tp2 = tmpbuf; (ch = *tp++) != 0; ) |
*tp2++ = isupper(ch) ? tolower(ch) : ch; |
*tp2++ = isupper(ch) ? tolower(ch) : ch; |
*tp2 = '\0'; |
*tp2 = '\0'; |
tp = tmpbuf; |
tp = tmpbuf; |
} |
} |
if (ntflag) { |
if (ntflag) |
tp = dotrans(tp); |
tp = dotrans(tp); |
} |
if (mapflag) |
if (mapflag) { |
|
tp = domap(tp); |
tp = domap(tp); |
} |
|
recvrequest("RETR", tp, cp, "w", |
recvrequest("RETR", tp, cp, "w", |
tp != cp || !interactive); |
tp != cp || !interactive); |
if (!mflag && fromatty) { |
if (!mflag && fromatty) { |
|
|
int argc; |
int argc; |
char *argv[]; |
char *argv[]; |
{ |
{ |
int val; |
|
|
|
if (argc > 2) { |
if (argc > 2) { |
fprintf(ttyout, "usage: %s [ on | off | debuglevel ]\n", argv[0]); |
fprintf(ttyout, "usage: %s [ on | off | debuglevel ]\n", argv[0]); |
code = -1; |
code = -1; |
|
|
else if (strcasecmp(argv[1], "off") == 0) |
else if (strcasecmp(argv[1], "off") == 0) |
debug = 0; |
debug = 0; |
else { |
else { |
val = atoi(argv[1]); |
char *ep; |
if (val < 0) { |
long val; |
fprintf(ttyout, "%s: bad debugging value.\n", argv[1]); |
|
|
val = strtol(argv[1], &ep, 10); |
|
if (val < 0 || val > INT_MAX || *ep != '\0') { |
|
fprintf(ttyout, "%s: bad debugging value.\n", |
|
argv[1]); |
code = -1; |
code = -1; |
return; |
return; |
} |
} |
debug = val; |
debug = (int)val; |
} |
} |
} else |
} else |
debug = !debug; |
debug = !debug; |
|
|
{ |
{ |
sig_t oldintr; |
sig_t oldintr; |
int ointer, i; |
int ointer, i; |
const char *cmd; |
int dolist; |
char mode[1], *dest; |
char mode[1], *dest; |
|
|
if (argc < 2 && !another(&argc, &argv, "remote-files")) |
if (argc < 2 && !another(&argc, &argv, "remote-files")) |
|
|
code = -1; |
code = -1; |
return; |
return; |
} |
} |
cmd = strcmp(argv[0], "mls") == 0 ? "NLST" : "LIST"; |
dolist = strcmp(argv[0], "mls"); |
mname = argv[0]; |
mname = argv[0]; |
mflag = 1; |
mflag = 1; |
oldintr = signal(SIGINT, mabort); |
oldintr = signal(SIGINT, mabort); |
(void)setjmp(jabort); |
(void)setjmp(jabort); |
for (i = 1; mflag && i < argc-1; ++i) { |
for (i = 1; mflag && i < argc-1; ++i) { |
*mode = (i == 1) ? 'w' : 'a'; |
*mode = (i == 1) ? 'w' : 'a'; |
recvrequest(cmd, dest, argv[i], mode, 0); |
recvrequest(dolist ? "LIST" : "NLST", dest, argv[i], mode, 0); |
if (!mflag && fromatty) { |
if (!mflag && fromatty) { |
ointer = interactive; |
ointer = interactive; |
interactive = 1; |
interactive = 1; |
|
|
shellnam[0] = '+'; |
shellnam[0] = '+'; |
if (debug) { |
if (debug) { |
fputs(shell, ttyout); |
fputs(shell, ttyout); |
fputs("\n", ttyout); |
fputc('\n', ttyout); |
(void)fflush(ttyout); |
(void)fflush(ttyout); |
} |
} |
if (argc > 1) { |
if (argc > 1) { |
|
|
else { |
else { |
restart_point = atol(argv[1]); |
restart_point = atol(argv[1]); |
fprintf(ttyout, "Restarting at %qd. Execute get, put or append to" |
fprintf(ttyout, "Restarting at %qd. Execute get, put or append to" |
"initiate transfer\n", restart_point); |
"initiate transfer\n", (quad_t)restart_point); |
} |
} |
} |
} |
|
|