* Slap *some* sense into our header inclusions.
[reactos.git] / reactos / base / shell / 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)
17 * Unicode ready!
18 */
19
20 #include "precomp.h"
21
22 /* a list of all the internal commands, associating their command names */
23 /* to the functions to process them */
24
25
26 COMMAND cmds[] =
27 {
28 {_T("?"), 0, CommandShowCommands},
29
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_ASSOC
40 {_T("assoc"), 0, CommandAssoc},
41 #endif
42
43 #ifdef INCLUDE_CMD_ATTRIB
44 {_T("attrib"), 0, CommandAttrib},
45 #endif
46
47 #ifdef INCLUDE_CMD_BEEP
48 {_T("beep"), 0, cmd_beep},
49 #endif
50
51 {_T("call"), CMD_BATCHONLY, cmd_call},
52
53 #ifdef INCLUDE_CMD_CHDIR
54 {_T("cd"), CMD_SPECIAL, cmd_chdir},
55 {_T("chdir"), CMD_SPECIAL, cmd_chdir},
56 #endif
57
58 #ifdef INCLUDE_CMD_CHCP
59 {_T("chcp"), 0, CommandChcp},
60 #endif
61
62 #ifdef INCLUDE_CMD_CHOICE
63 {_T("choice"), 0, CommandChoice},
64 #endif
65
66 #ifdef INCLUDE_CMD_CLS
67 {_T("cls"), 0, cmd_cls},
68 #endif
69
70 #ifdef INCLUDE_CMD_COLOR
71 {_T("color"), 0, CommandColor},
72 #endif
73
74 #ifdef INCLUDE_CMD_COPY
75 {_T("copy"), 0, cmd_copy},
76 #endif
77
78 #ifdef INCLUDE_CMD_DATE
79 {_T("date"), 0, cmd_date},
80 #endif
81
82 #ifdef INCLUDE_CMD_DEL
83 {_T("del"), 0, CommandDelete},
84 {_T("delete"), 0, CommandDelete},
85 #endif
86
87 #ifdef INCLUDE_CMD_DELAY
88 {_T("delay"), 0, CommandDelay},
89 #endif
90
91 #ifdef INCLUDE_CMD_DIR
92 {_T("dir"), CMD_SPECIAL, CommandDir},
93 #endif
94
95 #ifdef FEATURE_DIRECTORY_STACK
96 {_T("dirs"), 0, CommandDirs},
97 #endif
98
99 {_T("echo"), CMD_SPECIAL, CommandEcho},
100 {_T("echos"), 0, CommandEchos},
101 {_T("echoerr"), CMD_SPECIAL, CommandEchoerr},
102 {_T("echoserr"), 0, CommandEchoserr},
103
104 {_T("endlocal"), 0, cmd_endlocal},
105
106 #ifdef INCLUDE_CMD_DEL
107 {_T("erase"), 0, CommandDelete},
108 #endif
109
110 {_T("exit"), 0, CommandExit},
111
112 {_T("for"), 0, cmd_for},
113
114 #ifdef INCLUDE_CMD_FREE
115 {_T("free"), 0, CommandFree},
116 #endif
117
118 {_T("goto"), CMD_BATCHONLY, cmd_goto},
119
120 {_T("help"), 0, CommandShowCommandsDetail},
121
122 #ifdef FEATURE_HISTORY
123 {_T("history"), 0, CommandHistory},
124 #endif
125
126 {_T("if"), 0, cmd_if},
127
128 #ifdef INCLUDE_CMD_LABEL
129 {_T("label"), 0, cmd_label},
130 #endif
131
132 #ifdef INCLUDE_CMD_MEMORY
133 {_T("memory"), 0, CommandMemory},
134 #endif
135
136 #ifdef INCLUDE_CMD_MKDIR
137 {_T("md"), CMD_SPECIAL, cmd_mkdir},
138 {_T("mkdir"), CMD_SPECIAL, cmd_mkdir},
139 #endif
140
141 #ifdef INCLUDE_CMD_MKLINK
142 {_T("mklink"), 0, cmd_mklink},
143 #endif
144
145 #ifdef INCLUDE_CMD_MOVE
146 {_T("move"), 0, cmd_move},
147 #endif
148
149 #ifdef INCLUDE_CMD_MSGBOX
150 {_T("msgbox"), 0, CommandMsgbox},
151 #endif
152
153 #ifdef INCLUDE_CMD_PATH
154 {_T("path"), 0, cmd_path},
155 #endif
156
157 #ifdef INCLUDE_CMD_PAUSE
158 {_T("pause"), 0, cmd_pause},
159 #endif
160
161 #ifdef FEATURE_DIRECTORY_STACK
162 {_T("popd"), 0, CommandPopd},
163 #endif
164
165 #ifdef INCLUDE_CMD_PROMPT
166 {_T("prompt"), 0, cmd_prompt},
167 #endif
168
169 #ifdef FEATURE_DIRECTORY_STACK
170 {_T("pushd"), 0, CommandPushd},
171 #endif
172
173 #ifdef INCLUDE_CMD_RMDIR
174 {_T("rd"), CMD_SPECIAL, cmd_rmdir},
175 #endif
176
177 #ifdef INCLUDE_CMD_REM
178 {_T("rem"), 0, CommandRem},
179 #endif
180
181 #ifdef INCLUDE_CMD_RENAME
182 {_T("ren"), 0, cmd_rename},
183 {_T("rename"), 0, cmd_rename},
184 #endif
185
186 #ifdef INCLUDE_CMD_REPLACE
187 {_T("replace"), 0, cmd_replace},
188 #endif
189
190 #ifdef INCLUDE_CMD_RMDIR
191 {_T("rmdir"), CMD_SPECIAL, cmd_rmdir},
192 #endif
193
194 #ifdef INCLUDE_CMD_SCREEN
195 {_T("screen"), 0, CommandScreen},
196 #endif
197
198 #ifdef INCLUDE_CMD_SET
199 {_T("set"), 0, cmd_set},
200 #endif
201
202 {_T("setlocal"), 0, cmd_setlocal},
203
204 {_T("shift"), CMD_BATCHONLY, cmd_shift},
205
206 #ifdef INCLUDE_CMD_START
207 {_T("start"), 0, cmd_start},
208 #endif
209
210 #ifdef INCLUDE_CMD_TIME
211 {_T("time"), 0, cmd_time},
212 #endif
213
214 #ifdef INCLUDE_CMD_TIMER
215 {_T("timer"), 0, CommandTimer},
216 #endif
217
218 #ifdef INCLUDE_CMD_TITLE
219 {_T("title"), 0, cmd_title},
220 #endif
221
222 #ifdef INCLUDE_CMD_TYPE
223 {_T("type"), 0, cmd_type},
224 #endif
225
226 #ifdef INCLUDE_CMD_VER
227 {_T("ver"), 0, cmd_ver},
228 #endif
229
230 #ifdef INCLUDE_CMD_VERIFY
231 {_T("verify"), 0, cmd_verify},
232 #endif
233
234 #ifdef INCLUDE_CMD_VOL
235 {_T("vol"), 0, cmd_vol},
236 #endif
237
238 #ifdef INCLUDE_CMD_WINDOW
239 {_T("window"), 0, CommandWindow},
240 #endif
241
242 {NULL, 0, NULL}
243 };
244
245
246 VOID PrintCommandList (VOID)
247 {
248 LPCOMMAND cmdptr;
249 INT y;
250
251 y = 0;
252 cmdptr = cmds;
253 while (cmdptr->name)
254 {
255 if (!(cmdptr->flags & CMD_HIDE))
256 {
257 if (++y == 8)
258 {
259 ConOutPuts (cmdptr->name);
260 y = 0;
261 }
262 else
263 {
264 ConOutPrintf (_T("%-10s"), cmdptr->name);
265 }
266 }
267
268 cmdptr++;
269 }
270
271 if (y != 0)
272 ConOutChar ('\n');
273 }
274
275 VOID PrintCommandListDetail (VOID)
276 {
277 ConOutResPaging(TRUE,STRING_HELP1);
278 ConOutResPaging(FALSE,STRING_HELP2);
279 }
280
281 /* EOF */