Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
959 leency 1
 
2
3
 
4
{
5
for (;CMD_POS;CMD_POS--)
6
	printf("%c %c", 8, 8);
7
CMD[0]='\0';
8
}
9
10
 
11
12
 
13
{
14
15
 
16
	(0 != strcmp( CMD_HISTORY[1], CMD)) &&
17
	(0 != strcmp( CMD_HISTORY[2], CMD)) &&
18
	(0 != strcmp( CMD_HISTORY[3], CMD)) &&
19
	(0 != strcmp( CMD_HISTORY[4], CMD)) )
20
21
 
22
	strcpy(CMD_HISTORY[4], CMD_HISTORY[3]);
23
	strcpy(CMD_HISTORY[3], CMD_HISTORY[2]);
24
	strcpy(CMD_HISTORY[2], CMD_HISTORY[1]);
25
	strcpy(CMD_HISTORY[1], CMD_HISTORY[0]);
26
27
 
28
	}
29
30
 
31
32
 
33
34
 
35
{
36
unsigned key;
37
//unsigned pos = 0;
38
int hist;
39
40
 
41
CMD_NUM = 0;
42
43
 
44
	{
45
	key = getch();
46
	if ( 0 != (key & 0xff) )
47
		{
48
		key &= 0xff;
49
		switch (key)
50
			{
51
			case 27: // ESC
52
				command_clear();
53
				break;
54
55
 
56
				CMD[CMD_POS] = '\0';
57
				printf("\n\r");
58
59
 
60
				return;
61
62
 
63
				if (CMD_POS > 0)
64
					{
65
					printf ("%c %c", 8, 8);
66
					CMD_POS--;
67
					}
68
				break;
69
70
 
71
				break;
72
73
 
74
				if (CMD_POS < 255)
75
					{
76
					CMD[CMD_POS] = key;
77
					CMD_POS++;
78
					printf("%c", key);
79
					}
80
					break;
81
			};
82
		}
83
	else	// обработка расширенных клавиш
84
		{
85
		key = (key>>8)&0xff;
86
//		printf ("%d\n\r", key);
87
88
 
89
			{
90
91
 
92
				for (hist = 0; hist < CMD_HISTORY_NUM; hist++)
93
					{
94
					command_clear();
95
96
 
97
						CMD_NUM++;
98
					else
99
						CMD_NUM = 0;
100
101
 
102
					strcpy(CMD, CMD_HISTORY[CMD_NUM]);
103
					CMD_POS = strlen(CMD);
104
105
 
106
						break;
107
					}
108
109
 
110
111
 
112
				for (hist = 0; hist < CMD_HISTORY_NUM; hist++)
113
					{
114
					command_clear();
115
116
 
117
						CMD_NUM--;
118
					else
119
						CMD_NUM = CMD_HISTORY_NUM-1;
120
121
 
122
					strcpy(CMD, CMD_HISTORY[CMD_NUM]);
123
					CMD_POS = strlen(CMD);
124
125
 
126
						break;
127
					}
128
				break;
129
130
 
131
		}
132
133
 
134
}
135
136
 
137
 
138
139
 
140
{
141
unsigned i;
142
for (i=0;;i++)
143
	{
144
	cmd[i] = CMD[i];
145
	if (0 == cmd[i])
146
		{
147
		i = -2;
148
		break;
149
		}
150
	if ( iswhite(cmd[i]) )
151
		{
152
		cmd[i] = '\0';
153
		break;
154
		}
155
	}
156
return i+1;
157
}
158
159
 
160
161
 
162
{
163
char cmd[256];
164
char args[256];
165
unsigned arg;
166
167
 
168
arg = command_get_cmd(cmd);
169
170
 
171
	return;
172
173
 
174
trim(args);
175
176
 
177
	{
178
	if (-1 == arg)
179
		cmd_help(NULL);
180
	else
181
		cmd_help(args);
182
	return;
183
	}
184
185
 
186
	{
187
	cmd_ver();
188
	return;
189
	}
190
191
 
192
	{
193
	if (-1 == arg)
194
		cmd_cd(NULL);
195
	else
196
		cmd_cd(args);
197
198
 
199
		strcat(cur_dir, "/");
200
201
 
202
	}
203
204
 
205
	{
206
	if (-1 == arg)
207
		cmd_ls(cur_dir);
208
	else
209
		cmd_ls(args);
210
	return;
211
	}
212
213
 
214
	{
215
	cmd_ps();
216
	return;
217
	}
218
219
 
220
	{
221
	if (-1 == arg)
222
		cmd_kill(NULL);
223
	else
224
		cmd_kill(args);
225
	return;
226
	}
227
228
 
229
	{
230
	cmd_pwd();
231
	return;
232
	}
233
234
 
235
	{
236
	if (-1 == arg)
237
		cmd_mkdir(NULL);
238
	else
239
		cmd_mkdir(args);
240
	return;
241
	}
242
243
 
244
	{
245
	if (-1 == arg)
246
		cmd_rmdir(NULL);
247
	else
248
		cmd_rmdir(args);
249
	return;
250
	}
251
252
 
253
	{
254
	if (-1 == arg)
255
		cmd_rm(NULL);
256
	else
257
		cmd_rm(args);
258
	return;
259
	}
260
261
 
262
	{
263
	if (-1 == arg)
264
		cmd_more(NULL);
265
	else
266
		cmd_more(args);
267
	return;
268
	}
269
270
 
271
	{
272
	cmd_echo(args);
273
	return;
274
	}
275
276
 
277
	{
278
	cmd_exit();
279
	return;
280
	}
281
282
 
283
	{
284
	cmd_date();
285
	return;
286
	}
287
288
 
289
	{
290
	cmd_about();
291
	return;
292
	}
293
294
 
295
	{
296
	cmd_free();
297
	return;
298
	}
299
300
 
301
	{
302
	cmd_reboot();
303
	return;
304
	}
305
306
 
307
	{
308
	if (-1 == arg)
309
		cmd_touch(NULL);
310
	else
311
		cmd_touch(args);
312
	return;
313
	}
314
315
 
316
	{
317
	if (-1 == arg)
318
		cmd_alias(NULL);
319
	else
320
		cmd_alias(args);
321
	return;
322
	}
323
324
 
325
	{
326
	strcpy(CMD, ALIASES+64*1024+256*alias_search(CMD));
327
	command_execute();
328
	return;
329
	}
330
331
 
332
333
 
334
335
 
336