850b12a92460503a119a099b8db48c86609133a3
[reactos.git] / rosapps / 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 "config.h"
21
22 #include <windows.h>
23 #include <tchar.h>
24
25 #include "cmd.h"
26
27 #include "chcp.h"
28
29
30 /* a list of all the internal commands, associating their command names */
31 /* to the functions to process them */
32
33 /* Lines marked
34 *
35 * $$ are external commands
36 * !! internal commands which are not yet implemented
37 * ** special FREEDOS specific implementation
38 */
39
40 COMMAND cmds[] =
41 {
42 {_T("?"), 0, cmd_showcommands},
43
44 #ifdef FEATURE_ALIASES
45 {_T("alias"), 0, cmd_alias},
46 #endif
47
48 #ifdef INCLUDE_CMD_ATTRIB
49 {_T("attrib"), 0, cmd_attrib},
50 #endif
51
52 #ifdef INCLUDE_CMD_BEEP
53 {_T("beep"), 0, cmd_beep},
54 #endif
55
56 /*
57 {_T("break"), 0, cmd_break},
58 */
59
60 {_T("call"), CMD_BATCHONLY, cmd_call},
61
62 #ifdef INCLUDE_CMD_CHDIR
63 {_T("cd"), CMD_SPECIAL, cmd_chdir},
64 {_T("chdir"), CMD_SPECIAL, cmd_chdir},
65 #endif
66
67 #ifdef INCLUDE_CMD_CHCP
68 {_T("chcp"), 0, CommandChcp},
69 #endif
70
71 #ifdef INCLUDE_CMD_CLS
72 {_T("cls"), 0, cmd_cls},
73 #endif
74
75 #ifdef INCLUDE_CMD_COLOR
76 {_T("color"), 0, cmd_color},
77 #endif
78
79 #ifdef INCLUDE_CMD_COPY
80 {_T("copy"), 0, cmd_copy},
81 #endif
82
83 /*
84 #define INCLUDE_CMD_CTTY
85 {_T("ctty"), 0, cmd_ctty},
86 #endif
87 */
88
89 #ifdef INCLUDE_CMD_DATE
90 {_T("date"), 0, cmd_date},
91 #endif
92
93 #ifdef INCLUDE_CMD_DEL
94 {_T("del"), 0, cmd_del},
95 {_T("delete"), 0, cmd_del},
96 #endif
97
98 #ifdef INCLUDE_CMD_DIR
99 {_T("dir"), CMD_SPECIAL, cmd_dir},
100 #endif
101
102 {_T("echo"), 0, cmd_echo},
103
104 #ifdef INCLUDE_CMD_DEL
105 {_T("erase"), 0, cmd_del},
106 #endif
107
108 {_T("exit"), 0, internal_exit},
109
110 {_T("for"), 0, cmd_for},
111
112 {_T("goto"), CMD_BATCHONLY, cmd_goto},
113
114 {_T("if"), 0, cmd_if},
115
116 #ifdef INCLUDE_CMD_LABEL
117 {_T("label"), 0, cmd_label},
118 #endif
119
120 #ifdef INCLUDE_CMD_MKDIR
121 {_T("md"), CMD_SPECIAL, cmd_mkdir},
122 {_T("mkdir"), CMD_SPECIAL, cmd_mkdir},
123 #endif
124
125 #ifdef INCLUDE_CMD_MOVE
126 {_T("move"), 0, cmd_move},
127 #endif
128
129 #ifdef INCLUDE_CMD_PATH
130 {_T("path"), 0, cmd_path},
131 #endif
132
133 #ifdef INCLUDE_CMD_PAUSE
134 {_T("pause"), 0, cmd_pause},
135 #endif
136
137 #ifdef FEATURE_DIRECTORY_STACK
138 {_T("popd"), 0, cmd_popd},
139 #endif
140
141 #ifdef INCLUDE_CMD_PROMPT
142 {_T("prompt"), 0, cmd_prompt},
143 #endif
144
145 #ifdef FEATURE_DIRECTORY_STACK
146 {_T("pushd"), 0, cmd_pushd},
147 #endif
148
149 #ifdef INCLUDE_CMD_RMDIR
150 {_T("rd"), CMD_SPECIAL, cmd_rmdir},
151 #endif
152
153 #ifdef INCLUDE_CMD_REM
154 {_T("rem"), 0, cmd_rem},
155 #endif
156
157 #ifdef INCLUDE_CMD_RENAME
158 {_T("ren"), 0, cmd_rename},
159 {_T("rename"), 0, cmd_rename},
160 #endif
161
162 #ifdef INCLUDE_CMD_RMDIR
163 {_T("rmdir"), CMD_SPECIAL, cmd_rmdir},
164 #endif
165
166 #ifdef INCLUDE_CMD_SET
167 {_T("set"), 0, cmd_set},
168 #endif
169
170 {_T("shift"), CMD_BATCHONLY, cmd_shift},
171
172 #ifdef INCLUDE_CMD_START
173 {_T("start"), 0, cmd_start},
174 #endif
175
176 #ifdef INCLUDE_CMD_TIME
177 {_T("time"), 0, cmd_time},
178 #endif
179
180 #ifdef INCLUDE_CMD_TITLE
181 {_T("title"), 0, cmd_title},
182 #endif
183
184 #ifdef INCLUDE_CMD_TYPE
185 {_T("type"), 0, cmd_type},
186 #endif
187
188 #ifdef INCLUDE_CMD_VER
189 {_T("ver"), 0, cmd_ver},
190 #endif
191
192 #ifdef INCLUDE_CMD_VERIFY
193 {_T("verify"), 0, cmd_verify},
194 #endif
195
196 #ifdef INCLUDE_CMD_VOL
197 {_T("vol"), 0, cmd_vol},
198 #endif
199
200 {NULL, 0, NULL}
201 };
202
203 /* append, $$ */
204 /* assign, $$ */
205 /* attrib, ** */
206 /* backup, $$ */
207 /* chkdsk, $$ */
208 /* comp, $$ */
209 /* debug, $$ */
210 /* diskcomp, $$ */
211 /* diskcopy, $$ */
212 /* doskey, ** */
213 /* dosshell, $$ */
214 /* edit, $$ */
215 /* edlin, $$ */
216 /* emm386, $$ */
217 /* exe2bin, $$ */
218 /* expand, $$ */
219 /* fastopen, $$ */
220 /* fc, $$ */
221 /* fdisk, $$ */
222 /* find, $$ */
223 /* format, $$ */
224 /* graftabl, $$ */
225 /* graphics, $$ */
226 /* help, $$ */
227 /* join, $$ */
228 /* keyb, $$ */
229 /* mem, $$ */
230 /* mirror, $$ */
231 /* mode, $$ */
232 /* more, $$ */
233 /* nlsfunc, $$ */
234 /* print, $$ */
235 /* qbasic, $$ */
236 /* recover, $$ */
237 /* replace, $$ */
238 /* restore, $$ */
239 /* setver, $$ */
240 /* share, $$ */
241 /* sort, $$ */
242 /* subst, $$ */
243 /* sys, $$ */
244 /* tree, $$ */
245 /* undelete, $$ */
246 /* unformat, $$ */
247 /* xcopy, $$ */