Subversion Repositories Kolibri OS

Rev

Rev 1665 | Rev 2735 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1665 Nasarus 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
2174 Albom 77
 
78
						if ( (kol_key_control() & 1) || (kol_key_control() & 2)) // если нажаты шифты
79
							key = tolower(key);
80
						else
81
							key = toupper(key);
82
83
 
1665 Nasarus 84
					CMD_POS++;
85
					printf("%c", key);
86
					}
87
					break;
88
			};
89
		}
90
	else	// обработка расширенных клавиш
91
		{
92
		key = (key>>8)&0xff;
93
//		printf ("%d\n\r", key);
94
95
 
96
			{
97
98
 
99
				for (hist = 0; hist < CMD_HISTORY_NUM; hist++)
100
					{
101
					command_clear();
102
103
 
104
						CMD_NUM++;
105
					else
106
						CMD_NUM = 0;
107
108
 
109
					strcpy(CMD, CMD_HISTORY[CMD_NUM]);
110
					if ((CMD_POS = strlen(CMD)) != 0)
111
						break;
112
					}
113
114
 
115
116
 
117
				for (hist = 0; hist < CMD_HISTORY_NUM; hist++)
118
					{
119
					command_clear();
120
121
 
122
						CMD_NUM--;
123
					else
124
						CMD_NUM = CMD_HISTORY_NUM-1;
125
126
 
127
					strcpy(CMD, CMD_HISTORY[CMD_NUM]);
128
					if ((CMD_POS = strlen(CMD)) != 0)
129
						break;
130
					}
131
				break;
132
133
 
134
				cmd_exit(NULL);
135
136
 
137
		}
138
139
 
140
}
141
142
 
143
 
144
 
145
146
 
147
{
148
unsigned i;
149
for (i=0;;i++)
150
	{
151
	cmd[i] = CMD[i];
152
	if (0 == cmd[i])
153
		{
154
		i = -2;
155
		break;
156
		}
157
	if ( iswhite(cmd[i]) )
158
		{
159
		cmd[i] = '\0';
160
		break;
161
		}
162
	}
163
return i+1;
164
}
165
166
 
167
168
 
169
170
 
171
172
 
173
{
174
char cmd[256];
175
char args[256];
176
unsigned arg;
177
int i;
178
179
 
180
arg = command_get_cmd(cmd);
181
182
 
183
	return;
184
185
 
186
trim(args);
187
188
 
189
	{
190
	if (!strcmp(cmd, COMMANDS[i].name))
191
		{
192
		((handler1_t)COMMANDS[i].handler)(args);
193
		return;
194
		}
195
	}
196
197
 
198
 
199
	{
200
	strcpy(CMD, ALIASES+64*1024+256*alias_search(CMD));
201
	command_execute();
202
	return;
203
	}
204
205
 
206
207
 
208
209
 
210