diff options
Diffstat (limited to 'usr.bin/ftp/cmdtab.c')
-rw-r--r-- | usr.bin/ftp/cmdtab.c | 191 |
1 files changed, 108 insertions, 83 deletions
diff --git a/usr.bin/ftp/cmdtab.c b/usr.bin/ftp/cmdtab.c index 669f364ac6e..db253004310 100644 --- a/usr.bin/ftp/cmdtab.c +++ b/usr.bin/ftp/cmdtab.c @@ -1,5 +1,4 @@ -/* $OpenBSD: cmdtab.c,v 1.4 1996/12/01 05:27:22 millert Exp $ */ -/* $NetBSD: cmdtab.c,v 1.6 1995/09/08 01:06:10 tls Exp $ */ +/* $NetBSD: cmdtab.c,v 1.12 1997/01/19 14:19:05 lukem Exp $ */ /* * Copyright (c) 1985, 1989, 1993, 1994 @@ -38,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)cmdtab.c 8.4 (Berkeley) 10/9/94"; #else -static char rcsid[] = "$OpenBSD: cmdtab.c,v 1.4 1996/12/01 05:27:22 millert Exp $"; +static char rcsid[] = "$NetBSD: cmdtab.c,v 1.12 1997/01/19 14:19:05 lukem Exp $"; #endif #endif /* not lint */ @@ -56,21 +55,25 @@ char beephelp[] = "beep when command completed"; char binaryhelp[] = "set binary transfer type"; char casehelp[] = "toggle mget upper/lower case id mapping"; char cdhelp[] = "change remote working directory"; -char cduphelp[] = "change remote working directory to parent directory"; +char cduphelp[] = "change remote working directory to parent directory"; char chmodhelp[] = "change file permissions of remote file"; -char connecthelp[] = "connect to remote ftp"; +char connecthelp[] = "connect to remote ftp server"; char crhelp[] = "toggle carriage return stripping on ascii gets"; -char deletehelp[] = "delete remote file"; char debughelp[] = "toggle/set debugging mode"; +char deletehelp[] = "delete remote file"; char dirhelp[] = "list contents of remote directory"; char disconhelp[] = "terminate ftp session"; -char domachelp[] = "execute macro"; +char domachelp[] = "execute macro"; +#ifndef SMALLFTP +char edithelp[] = "toggle command line editing"; +#endif /* !SMALLFTP */ char formhelp[] = "set file transfer format"; char globhelp[] = "toggle metacharacter expansion of local file names"; char hashhelp[] = "toggle printing `#' marks; specify number to set size"; char helphelp[] = "print local help information"; char idlehelp[] = "get (set) idle timer on remote side"; char lcdhelp[] = "change local working directory"; +char lpwdhelp[] = "print local working directory"; char lshelp[] = "list contents of remote directory"; char macdefhelp[] = "define a macro"; char mdeletehelp[] = "delete multiple files"; @@ -78,14 +81,18 @@ char mdirhelp[] = "list contents of multiple remote directories"; char mgethelp[] = "get multiple files"; char mkdirhelp[] = "make directory on the remote machine"; char mlshelp[] = "list contents of multiple remote directories"; -char modtimehelp[] = "show last modification time of remote file"; char modehelp[] = "set file transfer mode"; +char modtimehelp[] = "show last modification time of remote file"; char mputhelp[] = "send multiple files"; char newerhelp[] = "get file if remote file is newer than local file "; char nlisthelp[] = "nlist contents of remote directory"; char nmaphelp[] = "set templates for default file name mapping"; char ntranshelp[] = "set translation table for default file name mapping"; +char passivehelp[] = "enter passive transfer mode"; char porthelp[] = "toggle use of PORT cmd for each data connection"; +char preservehelp[] ="toggle preservation of modification time of " + "retreived files"; +char progresshelp[] ="toggle transfer progress meter"; char prompthelp[] = "force interactive prompting on multiple commands"; char proxyhelp[] = "issue command on alternate connection"; char pwdhelp[] = "print working directory on remote machine"; @@ -95,15 +102,16 @@ char receivehelp[] = "receive file"; char regethelp[] = "get file restarting at end of local file"; char remotehelp[] = "get help from remote server"; char renamehelp[] = "rename file"; +char resethelp[] = "clear queued command replies"; char restarthelp[]= "restart file transfer at bytecount"; char rmdirhelp[] = "remove directory on the remote machine"; char rmtstatushelp[]="show status of remote machine"; char runiquehelp[] = "toggle store unique for local files"; -char resethelp[] = "clear queued command replies"; char sendhelp[] = "send one file"; -char passivehelp[] = "enter passive transfer mode"; -char sitehelp[] = "send site specific command to remote server\n\t\tTry \"rhelp site\" or \"site help\" for more information"; char shellhelp[] = "escape to the shell"; +char sitehelp[] = "send site specific command to remote server\n" + "\t\tTry \"rhelp site\" or \"site help\" " + "for more information"; char sizecmdhelp[] = "show size of remote file"; char statushelp[] = "show current status"; char structhelp[] = "set file transfer structure"; @@ -116,79 +124,96 @@ char umaskhelp[] = "get (set) umask on remote side"; char userhelp[] = "send new user information"; char verbosehelp[] = "toggle verbose mode"; +#ifdef SMALLFTP +#define CMPL(x) +#define CMPL0 +#else /* !SMALLFTP */ +#define CMPL(x) __STRING(x), +#define CMPL0 "", +#endif /* !SMALLFTP */ + struct cmd cmdtab[] = { - { "!", shellhelp, 0, 0, 0, shell }, - { "$", domachelp, 1, 0, 0, domacro }, - { "account", accounthelp, 0, 1, 1, account}, - { "append", appendhelp, 1, 1, 1, put }, - { "ascii", asciihelp, 0, 1, 1, setascii }, - { "bell", beephelp, 0, 0, 0, setbell }, - { "binary", binaryhelp, 0, 1, 1, setbinary }, - { "bye", quithelp, 0, 0, 0, quit }, - { "case", casehelp, 0, 0, 1, setcase }, - { "cd", cdhelp, 0, 1, 1, cd }, - { "cdup", cduphelp, 0, 1, 1, cdup }, - { "chmod", chmodhelp, 0, 1, 1, do_chmod }, - { "close", disconhelp, 0, 1, 1, disconnect }, - { "cr", crhelp, 0, 0, 0, setcr }, - { "delete", deletehelp, 0, 1, 1, delete }, - { "debug", debughelp, 0, 0, 0, setdebug }, - { "dir", dirhelp, 1, 1, 1, ls }, - { "disconnect", disconhelp, 0, 1, 1, disconnect }, - { "form", formhelp, 0, 1, 1, setform }, - { "get", receivehelp, 1, 1, 1, get }, - { "glob", globhelp, 0, 0, 0, setglob }, - { "hash", hashhelp, 0, 0, 0, sethash }, - { "help", helphelp, 0, 0, 1, help }, - { "idle", idlehelp, 0, 1, 1, idle }, - { "image", binaryhelp, 0, 1, 1, setbinary }, - { "lcd", lcdhelp, 0, 0, 0, lcd }, - { "ls", lshelp, 1, 1, 1, ls }, - { "macdef", macdefhelp, 0, 0, 0, macdef }, - { "mdelete", mdeletehelp, 1, 1, 1, mdelete }, - { "mdir", mdirhelp, 1, 1, 1, mls }, - { "mget", mgethelp, 1, 1, 1, mget }, - { "mkdir", mkdirhelp, 0, 1, 1, makedir }, - { "mls", mlshelp, 1, 1, 1, mls }, - { "mode", modehelp, 0, 1, 1, setftmode }, - { "modtime", modtimehelp, 0, 1, 1, modtime }, - { "mput", mputhelp, 1, 1, 1, mput }, - { "newer", newerhelp, 1, 1, 1, newer }, - { "nmap", nmaphelp, 0, 0, 1, setnmap }, - { "nlist", nlisthelp, 1, 1, 1, ls }, - { "ntrans", ntranshelp, 0, 0, 1, setntrans }, - { "open", connecthelp, 0, 0, 1, setpeer }, - { "passive", passivehelp, 0, 0, 0, setpassive }, - { "prompt", prompthelp, 0, 0, 0, setprompt }, - { "proxy", proxyhelp, 0, 0, 1, doproxy }, - { "sendport", porthelp, 0, 0, 0, setport }, - { "put", sendhelp, 1, 1, 1, put }, - { "pwd", pwdhelp, 0, 1, 1, pwd }, - { "quit", quithelp, 0, 0, 0, quit }, - { "quote", quotehelp, 1, 1, 1, quote }, - { "recv", receivehelp, 1, 1, 1, get }, - { "reget", regethelp, 1, 1, 1, reget }, - { "rstatus", rmtstatushelp, 0, 1, 1, rmtstatus }, - { "rhelp", remotehelp, 0, 1, 1, rmthelp }, - { "rename", renamehelp, 0, 1, 1, renamefile }, - { "reset", resethelp, 0, 1, 1, reset }, - { "restart", restarthelp, 1, 1, 1, restart }, - { "rmdir", rmdirhelp, 0, 1, 1, removedir }, - { "runique", runiquehelp, 0, 0, 1, setrunique }, - { "send", sendhelp, 1, 1, 1, put }, - { "site", sitehelp, 0, 1, 1, site }, - { "size", sizecmdhelp, 1, 1, 1, sizecmd }, - { "status", statushelp, 0, 0, 1, status }, - { "struct", structhelp, 0, 1, 1, setstruct }, - { "system", systemhelp, 0, 1, 1, syst }, - { "sunique", suniquehelp, 0, 0, 1, setsunique }, - { "tenex", tenexhelp, 0, 1, 1, settenex }, - { "trace", tracehelp, 0, 0, 0, settrace }, - { "type", typehelp, 0, 1, 1, settype }, - { "user", userhelp, 0, 1, 1, user }, - { "umask", umaskhelp, 0, 1, 1, do_umask }, - { "verbose", verbosehelp, 0, 0, 0, setverbose }, - { "?", helphelp, 0, 0, 1, help }, + { "!", shellhelp, 0, 0, 0, CMPL0 shell }, + { "$", domachelp, 1, 0, 0, CMPL0 domacro }, + { "account", accounthelp, 0, 1, 1, CMPL0 account}, + { "append", appendhelp, 1, 1, 1, CMPL(lr) put }, + { "ascii", asciihelp, 0, 1, 1, CMPL0 setascii }, + { "bell", beephelp, 0, 0, 0, CMPL0 setbell }, + { "binary", binaryhelp, 0, 1, 1, CMPL0 setbinary }, + { "bye", quithelp, 0, 0, 0, CMPL0 quit }, + { "case", casehelp, 0, 0, 1, CMPL0 setcase }, + { "cd", cdhelp, 0, 1, 1, CMPL(r) cd }, + { "cdup", cduphelp, 0, 1, 1, CMPL0 cdup }, + { "chmod", chmodhelp, 0, 1, 1, CMPL(nr) do_chmod }, + { "close", disconhelp, 0, 1, 1, CMPL0 disconnect }, + { "cr", crhelp, 0, 0, 0, CMPL0 setcr }, + { "debug", debughelp, 0, 0, 0, CMPL0 setdebug }, + { "delete", deletehelp, 0, 1, 1, CMPL(r) delete }, + { "dir", dirhelp, 1, 1, 1, CMPL(rl) ls }, + { "disconnect", disconhelp, 0, 1, 1, CMPL0 disconnect }, +#ifndef SMALLFTP + { "edit", edithelp, 0, 0, 0, CMPL0 setedit }, +#endif /* !SMALLFTP */ + { "exit", quithelp, 0, 0, 0, CMPL0 quit }, + { "form", formhelp, 0, 1, 1, CMPL0 setform }, + { "ftp", connecthelp, 0, 0, 1, CMPL0 setpeer }, + { "get", receivehelp, 1, 1, 1, CMPL(rl) get }, + { "glob", globhelp, 0, 0, 0, CMPL0 setglob }, + { "hash", hashhelp, 0, 0, 0, CMPL0 sethash }, + { "help", helphelp, 0, 0, 1, CMPL(C) help }, + { "idle", idlehelp, 0, 1, 1, CMPL0 idle }, + { "image", binaryhelp, 0, 1, 1, CMPL0 setbinary }, + { "lcd", lcdhelp, 0, 0, 0, CMPL(l) lcd }, + { "lpwd", lpwdhelp, 0, 0, 0, CMPL0 lpwd }, + { "ls", lshelp, 1, 1, 1, CMPL(rl) ls }, + { "macdef", macdefhelp, 0, 0, 0, CMPL0 macdef }, + { "mdelete", mdeletehelp, 1, 1, 1, CMPL(R) mdelete }, + { "mdir", mdirhelp, 1, 1, 1, CMPL(R) mls }, + { "mget", mgethelp, 1, 1, 1, CMPL(R) mget }, + { "mkdir", mkdirhelp, 0, 1, 1, CMPL(r) makedir }, + { "mls", mlshelp, 1, 1, 1, CMPL(R) mls }, + { "mode", modehelp, 0, 1, 1, CMPL0 setftmode }, + { "modtime", modtimehelp, 0, 1, 1, CMPL(r) modtime }, + { "mput", mputhelp, 1, 1, 1, CMPL(L) mput }, + { "msend", mputhelp, 1, 1, 1, CMPL(L) mput }, + { "newer", newerhelp, 1, 1, 1, CMPL(r) newer }, + { "nlist", nlisthelp, 1, 1, 1, CMPL(rl) ls }, + { "nmap", nmaphelp, 0, 0, 1, CMPL0 setnmap }, + { "ntrans", ntranshelp, 0, 0, 1, CMPL0 setntrans }, + { "open", connecthelp, 0, 0, 1, CMPL0 setpeer }, + { "passive", passivehelp, 0, 0, 0, CMPL0 setpassive }, + { "preserve", preservehelp, 0, 0, 0, CMPL0 setpreserve }, + { "progress", progresshelp, 0, 0, 0, CMPL0 setprogress }, + { "prompt", prompthelp, 0, 0, 0, CMPL0 setprompt }, + { "proxy", proxyhelp, 0, 0, 1, CMPL(c) doproxy }, + { "put", sendhelp, 1, 1, 1, CMPL(lr) put }, + { "pwd", pwdhelp, 0, 1, 1, CMPL0 pwd }, + { "quit", quithelp, 0, 0, 0, CMPL0 quit }, + { "quote", quotehelp, 1, 1, 1, CMPL0 quote }, + { "recv", receivehelp, 1, 1, 1, CMPL(rl) get }, + { "reget", regethelp, 1, 1, 1, CMPL(rl) reget }, + { "rename", renamehelp, 0, 1, 1, CMPL(rr) renamefile }, + { "reset", resethelp, 0, 1, 1, CMPL0 reset }, + { "restart", restarthelp, 1, 1, 1, CMPL0 restart }, + { "rhelp", remotehelp, 0, 1, 1, CMPL0 rmthelp }, + { "rmdir", rmdirhelp, 0, 1, 1, CMPL(r) removedir }, + { "rstatus", rmtstatushelp, 0, 1, 1, CMPL(r) rmtstatus }, + { "runique", runiquehelp, 0, 0, 1, CMPL0 setrunique }, + { "send", sendhelp, 1, 1, 1, CMPL(lr) put }, + { "sendport", porthelp, 0, 0, 0, CMPL0 setport }, + { "site", sitehelp, 0, 1, 1, CMPL0 site }, + { "size", sizecmdhelp, 1, 1, 1, CMPL(r) sizecmd }, + { "status", statushelp, 0, 0, 1, CMPL0 status }, + { "struct", structhelp, 0, 1, 1, CMPL0 setstruct }, + { "sunique", suniquehelp, 0, 0, 1, CMPL0 setsunique }, + { "system", systemhelp, 0, 1, 1, CMPL0 syst }, + { "tenex", tenexhelp, 0, 1, 1, CMPL0 settenex }, + { "trace", tracehelp, 0, 0, 0, CMPL0 settrace }, + { "type", typehelp, 0, 1, 1, CMPL0 settype }, + { "umask", umaskhelp, 0, 1, 1, CMPL0 do_umask }, + { "user", userhelp, 0, 1, 1, CMPL0 user }, + { "verbose", verbosehelp, 0, 0, 0, CMPL0 setverbose }, + { "?", helphelp, 0, 0, 1, CMPL(C) help }, { 0 }, }; |