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