add varargs; fix exit statuses; bug report 4.3BSD/usr.bin/119
[unix-history] / usr / src / usr.bin / ftp / cmdtab.c
CommitLineData
edf71f48 1/*
9069f68e 2 * Copyright (c) 1985 Regents of the University of California.
edf71f48
DF
3 * All rights reserved. The Berkeley software License Agreement
4 * specifies the terms and conditions for redistribution.
5 */
6
53f01c40 7#ifndef lint
a2d52b81 8static char sccsid[] = "@(#)cmdtab.c 5.4 (Berkeley) %G%";
edf71f48 9#endif not lint
5ac6fc46 10
53f01c40
SL
11#include "ftp_var.h"
12
13/*
14 * User FTP -- Command Tables.
15 */
16int setascii(), setbell(), setbinary(), setdebug(), setform();
7136ef0a 17int setglob(), sethash(), setmode(), setpeer(), setport();
5ac6fc46 18int setprompt(), setstruct();
9248b609 19int settenex(), settrace(), settype(), setverbose();
53f01c40 20int disconnect();
5ac6fc46 21int cd(), lcd(), delete(), mdelete(), user();
9072bd8a 22int ls(), mls(), get(), mget(), help(), append(), put(), mput();
53f01c40
SL
23int quit(), renamefile(), status();
24int quote(), rmthelp(), shell();
9069f68e
GM
25int pwd(), makedir(), removedir(), setcr();
26int account(), doproxy(), reset(), setcase(), setntrans(), setnmap();
27int setsunique(), setrunique(), cdup(), macdef(), domacro();
53f01c40 28
9069f68e 29char accounthelp[] = "send account command to remote server";
5ac6fc46 30char appendhelp[] = "append to a file";
53f01c40
SL
31char asciihelp[] = "set ascii transfer type";
32char beephelp[] = "beep when command completed";
33char binaryhelp[] = "set binary transfer type";
9069f68e 34char casehelp[] = "toggle mget upper/lower case id mapping";
53f01c40 35char cdhelp[] = "change remote working directory";
9069f68e 36char cduphelp[] = "change remote working directory to parent directory";
53f01c40 37char connecthelp[] = "connect to remote tftp";
9069f68e 38char crhelp[] = "toggle carriage return stripping on ascii gets";
53f01c40
SL
39char deletehelp[] = "delete remote file";
40char debughelp[] = "toggle/set debugging mode";
41char dirhelp[] = "list contents of remote directory";
42char disconhelp[] = "terminate ftp session";
9069f68e 43char domachelp[] = "execute macro";
53f01c40 44char formhelp[] = "set file transfer format";
9248b609 45char globhelp[] = "toggle metacharacter expansion of local file names";
5ac6fc46 46char hashhelp[] = "toggle printing `#' for each buffer transferred";
53f01c40
SL
47char helphelp[] = "print local help information";
48char lcdhelp[] = "change local working directory";
49char lshelp[] = "nlist contents of remote directory";
9069f68e 50char macdefhelp[] = "define a macro";
5ac6fc46 51char mdeletehelp[] = "delete multiple files";
9072bd8a 52char mdirhelp[] = "list contents of multiple remote directories";
9248b609 53char mgethelp[] = "get multiple files";
53f01c40 54char mkdirhelp[] = "make directory on the remote machine";
9072bd8a 55char mlshelp[] = "nlist contents of multiple remote directories";
53f01c40 56char modehelp[] = "set file transfer mode";
9248b609 57char mputhelp[] = "send multiple files";
9069f68e
GM
58char nmaphelp[] = "set templates for default file name mapping";
59char ntranshelp[] = "set translation table for default file name mapping";
5ac6fc46 60char porthelp[] = "toggle use of PORT cmd for each data connection";
53f01c40 61char prompthelp[] = "force interactive prompting on multiple commands";
9069f68e 62char proxyhelp[] = "issue command on alternate connection";
53f01c40
SL
63char pwdhelp[] = "print working directory on remote machine";
64char quithelp[] = "terminate ftp session and exit";
65char quotehelp[] = "send arbitrary ftp command";
66char receivehelp[] = "receive file";
67char remotehelp[] = "get help from remote server";
68char renamehelp[] = "rename file";
69char rmdirhelp[] = "remove directory on the remote machine";
9069f68e
GM
70char runiquehelp[] = "toggle store unique for local files";
71char resethelp[] = "clear queued command replies";
9248b609 72char sendhelp[] = "send one file";
53f01c40
SL
73char shellhelp[] = "escape to the shell";
74char statushelp[] = "show current status";
75char structhelp[] = "set file transfer structure";
9069f68e 76char suniquehelp[] = "toggle store unique on remote machine";
53f01c40
SL
77char tenexhelp[] = "set tenex file transfer type";
78char tracehelp[] = "toggle packet tracing";
79char typehelp[] = "set file transfer type";
80char userhelp[] = "send new user information";
81char verbosehelp[] = "toggle verbose mode";
82
83struct cmd cmdtab[] = {
9069f68e
GM
84 { "!", shellhelp, 0, 0, 0, shell },
85 { "$", domachelp, 1, 0, 0, domacro },
86 { "account", accounthelp, 0, 1, 1, account},
87 { "append", appendhelp, 1, 1, 1, put },
88 { "ascii", asciihelp, 0, 1, 1, setascii },
89 { "bell", beephelp, 0, 0, 0, setbell },
90 { "binary", binaryhelp, 0, 1, 1, setbinary },
91 { "bye", quithelp, 0, 0, 0, quit },
92 { "case", casehelp, 0, 0, 1, setcase },
93 { "cd", cdhelp, 0, 1, 1, cd },
94 { "cdup", cduphelp, 0, 1, 1, cdup },
95 { "close", disconhelp, 0, 1, 1, disconnect },
96 { "cr", crhelp, 0, 0, 0, setcr },
97 { "delete", deletehelp, 0, 1, 1, delete },
98 { "debug", debughelp, 0, 0, 0, setdebug },
99 { "dir", dirhelp, 1, 1, 1, ls },
100 { "disconnect", disconhelp, 0, 1, 1, disconnect },
101 { "form", formhelp, 0, 1, 1, setform },
102 { "get", receivehelp, 1, 1, 1, get },
103 { "glob", globhelp, 0, 0, 0, setglob },
104 { "hash", hashhelp, 0, 0, 0, sethash },
105 { "help", helphelp, 0, 0, 1, help },
a2d52b81 106 { "image", binaryhelp, 0, 1, 1, setbinary },
9069f68e
GM
107 { "lcd", lcdhelp, 0, 0, 0, lcd },
108 { "ls", lshelp, 1, 1, 1, ls },
109 { "macdef", macdefhelp, 0, 0, 0, macdef },
110 { "mdelete", mdeletehelp, 1, 1, 1, mdelete },
111 { "mdir", mdirhelp, 1, 1, 1, mls },
112 { "mget", mgethelp, 1, 1, 1, mget },
113 { "mkdir", mkdirhelp, 0, 1, 1, makedir },
114 { "mls", mlshelp, 1, 1, 1, mls },
115 { "mode", modehelp, 0, 1, 1, setmode },
116 { "mput", mputhelp, 1, 1, 1, mput },
117 { "nmap", nmaphelp, 0, 0, 1, setnmap },
118 { "ntrans", ntranshelp, 0, 0, 1, setntrans },
119 { "open", connecthelp, 0, 0, 1, setpeer },
120 { "prompt", prompthelp, 0, 0, 0, setprompt },
121 { "proxy", proxyhelp, 0, 0, 1, doproxy },
122 { "sendport", porthelp, 0, 0, 0, setport },
123 { "put", sendhelp, 1, 1, 1, put },
124 { "pwd", pwdhelp, 0, 1, 1, pwd },
125 { "quit", quithelp, 0, 0, 0, quit },
126 { "quote", quotehelp, 1, 1, 1, quote },
127 { "recv", receivehelp, 1, 1, 1, get },
128 { "remotehelp", remotehelp, 0, 1, 1, rmthelp },
129 { "rename", renamehelp, 0, 1, 1, renamefile },
130 { "reset", resethelp, 0, 1, 1, reset },
131 { "rmdir", rmdirhelp, 0, 1, 1, removedir },
132 { "runique", runiquehelp, 0, 0, 1, setrunique },
133 { "send", sendhelp, 1, 1, 1, put },
134 { "status", statushelp, 0, 0, 1, status },
135 { "struct", structhelp, 0, 1, 1, setstruct },
136 { "sunique", suniquehelp, 0, 0, 1, setsunique },
137 { "tenex", tenexhelp, 0, 1, 1, settenex },
138 { "trace", tracehelp, 0, 0, 0, settrace },
139 { "type", typehelp, 0, 1, 1, settype },
140 { "user", userhelp, 0, 1, 1, user },
141 { "verbose", verbosehelp, 0, 0, 0, setverbose },
142 { "?", helphelp, 0, 0, 1, help },
5ac6fc46 143 { 0 },
53f01c40
SL
144};
145
71a655cd 146int NCMDS = (sizeof (cmdtab) / sizeof (cmdtab[0])) - 1;