Disable patch 15796 because it breaks the bootcd.
[reactos.git] / reactos / subsys / system / cmd / cmdtable.c
1 /*
2 * CMDTABLE.C - table of internal commands.
3 *
4 *
5 * History:
6 *
7 * 16 Jul 1998 (Hans B Pufal)
8 * started.
9 * New file to keep the internal command table. I plan on
10 * getting rid of the table real soon now and replacing it
11 * with a dynamic mechnism.
12 *
13 * 27 Jul 1998 John P. Price
14 * added config.h include
15 *
16 * 21-Jan-1999 (Eric Kohl <ekohl@abo.rhein-zeitung.de>)
17 * Unicode ready!
18 */
19
20 #include "precomp.h"
21
22
23 /* a list of all the internal commands, associating their command names */
24 /* to the functions to process them */
25
26
27 COMMAND cmds[] =
28 {
29 {_T("?"), 0, CommandShowCommands},
30
31 #ifdef INCLUDE_CMD_ACTIVATE
32 {_T("activate"), 0, CommandActivate},
33 #endif
34
35 #ifdef FEATURE_ALIASES
36 {_T("alias"), 0, CommandAlias},
37 #endif
38
39 #ifdef INCLUDE_CMD_ATTRIB
40 {_T("attrib"), 0, CommandAttrib},
41 #endif
42
43 #ifdef INCLUDE_CMD_BEEP
44 {_T("beep"), 0, cmd_beep},
45 #endif
46
47 {_T("call"), CMD_BATCHONLY, cmd_call},
48
49 #ifdef INCLUDE_CMD_CHDIR
50 {_T("cd"), CMD_SPECIAL, cmd_chdir},
51 {_T("chdir"), CMD_SPECIAL, cmd_chdir},
52 #endif
53
54 #ifdef INCLUDE_CMD_CHCP
55 {_T("chcp"), 0, CommandChcp},
56 #endif
57
58 #ifdef INCLUDE_CMD_CHOICE
59 {_T("choice"), 0, CommandChoice},
60 #endif
61
62 #ifdef INCLUDE_CMD_CLS
63 {_T("cls"), 0, cmd_cls},
64 #endif
65
66 #ifdef INCLUDE_CMD_COLOR
67 {_T("color"), 0, CommandColor},
68 #endif
69
70 #ifdef INCLUDE_CMD_COPY
71 {_T("copy"), 0, cmd_copy},
72 #endif
73
74 #ifdef INCLUDE_CMD_DATE
75 {_T("date"), 0, cmd_date},
76 #endif
77
78 #ifdef INCLUDE_CMD_DEL
79 {_T("del"), 0, CommandDelete},
80 {_T("delete"), 0, CommandDelete},
81 #endif
82
83 #ifdef INCLUDE_CMD_DELAY
84 {_T("delay"), 0, CommandDelay},
85 #endif
86
87 #ifdef INCLUDE_CMD_DIR
88 {_T("dir"), CMD_SPECIAL, CommandDir},
89 #endif
90
91 #ifdef FEATURE_DIRECTORY_STACK
92 {_T("dirs"), 0, CommandDirs},
93 #endif
94
95 {_T("echo"), 0, CommandEcho},
96 {_T("echo."), CMD_HIDE, CommandEcho},
97 {_T("echos"), 0, CommandEchos},
98 {_T("echoerr"), 0, CommandEchoerr},
99 {_T("echoerr."), CMD_HIDE, CommandEchoerr},
100 {_T("echoserr"), 0, CommandEchoserr},
101
102 #ifdef INCLUDE_CMD_DEL
103 {_T("erase"), 0, CommandDelete},
104 #endif
105
106 {_T("exit"), 0, CommandExit},
107
108 {_T("for"), 0, cmd_for},
109
110 #ifdef INCLUDE_CMD_FREE
111 {_T("free"), 0, CommandFree},
112 #endif
113
114 {_T("goto"), CMD_BATCHONLY, cmd_goto},
115
116 #ifdef FEATURE_HISTORY
117 {_T("history"), 0, CommandHistory},
118 #endif
119
120 {_T("if"), 0, cmd_if},
121
122 #ifdef INCLUDE_CMD_LABEL
123 {_T("label"), 0, cmd_label},
124 #endif
125
126 #ifdef INCLUDE_CMD_MEMORY
127 {_T("memory"), 0, CommandMemory},
128 #endif
129
130 #ifdef INCLUDE_CMD_MKDIR
131 {_T("md"), CMD_SPECIAL, cmd_mkdir},
132 {_T("mkdir"), CMD_SPECIAL, cmd_mkdir},
133 #endif
134
135 #ifdef INCLUDE_CMD_MOVE
136 {_T("move"), 0, cmd_move},
137 #endif
138
139 #ifdef INCLUDE_CMD_MSGBOX
140 {_T("msgbox"), 0, CommandMsgbox},
141 #endif
142
143 #ifdef INCLUDE_CMD_PATH
144 {_T("path"), 0, cmd_path},
145 #endif
146
147 #ifdef INCLUDE_CMD_PAUSE
148 {_T("pause"), 0, cmd_pause},
149 #endif
150
151 #ifdef FEATURE_DIRECTORY_STACK
152 {_T("popd"), 0, CommandPopd},
153 #endif
154
155 #ifdef INCLUDE_CMD_PROMPT
156 {_T("prompt"), 0, cmd_prompt},
157 #endif
158
159 #ifdef FEATURE_DIRECTORY_STACK
160 {_T("pushd"), 0, CommandPushd},
161 #endif
162
163 #ifdef INCLUDE_CMD_RMDIR
164 {_T("rd"), CMD_SPECIAL, cmd_rmdir},
165 #endif
166
167 #ifdef INCLUDE_CMD_REM
168 {_T("rem"), 0, CommandRem},
169 #endif
170
171 #ifdef INCLUDE_CMD_RENAME
172 {_T("ren"), 0, cmd_rename},
173 {_T("rename"), 0, cmd_rename},
174 #endif
175
176 #ifdef INCLUDE_CMD_RMDIR
177 {_T("rmdir"), CMD_SPECIAL, cmd_rmdir},
178 #endif
179
180 #ifdef INCLUDE_CMD_SCREEN
181 {_T("screen"), 0, CommandScreen},
182 #endif
183
184 #ifdef INCLUDE_CMD_SET
185 {_T("set"), 0, cmd_set},
186 #endif
187
188 {_T("shift"), CMD_BATCHONLY, cmd_shift},
189
190 #ifdef INCLUDE_CMD_START
191 {_T("start"), 0, cmd_start},
192 #endif
193
194 #ifdef INCLUDE_CMD_TIME
195 {_T("time"), 0, cmd_time},
196 #endif
197
198 #ifdef INCLUDE_CMD_TIMER
199 {_T("timer"), 0, CommandTimer},
200 #endif
201
202 #ifdef INCLUDE_CMD_TITLE
203 {_T("title"), 0, cmd_title},
204 #endif
205
206 #ifdef INCLUDE_CMD_TYPE
207 {_T("type"), 0, cmd_type},
208 #endif
209
210 #ifdef INCLUDE_CMD_VER
211 {_T("ver"), 0, cmd_ver},
212 #endif
213
214 #ifdef INCLUDE_CMD_VERIFY
215 {_T("verify"), 0, cmd_verify},
216 #endif
217
218 #ifdef INCLUDE_CMD_VOL
219 {_T("vol"), 0, cmd_vol},
220 #endif
221
222 #ifdef INCLUDE_CMD_WINDOW
223 {_T("window"), 0, CommandWindow},
224 #endif
225
226 {NULL, 0, NULL}
227 };
228
229
230 VOID PrintCommandList (VOID)
231 {
232 LPCOMMAND cmdptr;
233 INT y;
234
235 y = 0;
236 cmdptr = cmds;
237 while (cmdptr->name)
238 {
239 if (!(cmdptr->flags & CMD_HIDE))
240 {
241 if (++y == 8)
242 {
243 ConOutPuts (cmdptr->name);
244 y = 0;
245 }
246 else
247 {
248 ConOutPrintf (_T("%-10s"), cmdptr->name);
249 }
250 }
251
252 cmdptr++;
253 }
254
255 if (y != 0)
256 ConOutChar ('\n');
257 }
258
259 /* EOF */