Subversion Repositories Kolibri OS

Rev

Rev 4015 | Rev 4309 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4015 Rev 4050
Line 1... Line 1...
1
/// ===========================================================
1
/// ===========================================================
Line 2... Line 2...
2
 
2
 
3
void command_history_add(char command[])
3
void command_history_add()
Line 4... Line 4...
4
{
4
{
-
 
5
 
5
 
6
int i;
6
if (	(0 != strcmp( CMD_HISTORY[0], CMD)) &&
-
 
7
	(0 != strcmp( CMD_HISTORY[1], CMD)) &&
-
 
8
	(0 != strcmp( CMD_HISTORY[2], CMD)) &&
-
 
9
	(0 != strcmp( CMD_HISTORY[3], CMD)) &&
-
 
10
        (0 != strcmp( CMD_HISTORY[4], CMD)) &&
-
 
11
        (0 != strcmp( CMD_HISTORY[5], CMD)) &&
7
 
12
        (0 != strcmp( CMD_HISTORY[6], CMD)) &&
8
for (i = 0; i < CMD_HISTORY_NUM_REAL; i++)
13
        (0 != strcmp( CMD_HISTORY[7], CMD)) &&
-
 
14
        (0 != strcmp( CMD_HISTORY[8], CMD)) &&
9
    if ( 0 == strcmp( CMD_HISTORY[i], CMD ) )
15
	(0 != strcmp( CMD_HISTORY[9], CMD)) )
-
 
16
 
-
 
17
	{
-
 
18
        strcpy(CMD_HISTORY[9], CMD_HISTORY[8]);
-
 
19
        strcpy(CMD_HISTORY[8], CMD_HISTORY[7]);
-
 
20
	strcpy(CMD_HISTORY[7], CMD_HISTORY[6]);
-
 
21
        strcpy(CMD_HISTORY[6], CMD_HISTORY[5]);
-
 
22
	strcpy(CMD_HISTORY[5], CMD_HISTORY[4]);
10
       return;
23
	strcpy(CMD_HISTORY[4], CMD_HISTORY[3]);
11
 
24
	strcpy(CMD_HISTORY[3], CMD_HISTORY[2]);
-
 
Line 25... Line 12...
25
	strcpy(CMD_HISTORY[2], CMD_HISTORY[1]);
12
for (i = CMD_HISTORY_NUM_REAL; i > 0 ; i--)
Line 26... Line 13...
26
	strcpy(CMD_HISTORY[1], CMD_HISTORY[0]);
13
	strcpy(CMD_HISTORY[i], CMD_HISTORY[i-1]);
27
 
14
 
Line 28... Line 15...
28
	strcpy(CMD_HISTORY[0], CMD);
15
strcpy(CMD_HISTORY[0], CMD);
Line 29... Line 16...
29
	
16
 
Line -... Line 17...
-
 
17
if (CMD_HISTORY_NUM_REAL < CMD_HISTORY_NUM-1)
-
 
18
	CMD_HISTORY_NUM_REAL++;
30
	if (CMD_HISTORY_NUM_REAL < CMD_HISTORY_NUM)
19
 
Line 31... Line 20...
31
		CMD_HISTORY_NUM_REAL++;
20
CMD_NUM = 0;
32
	
21
 
33
	}
22
}
Line 65... Line 54...
65
 
54
 
Line 66... Line 55...
66
 
55
 
67
			case 13: // ENTER
56
			case 13: // ENTER
68
				printf("\n\r");
57
				printf("\n\r");
69
				command_history_add(CMD);
58
				command_history_add();
Line 70... Line 59...
70
				return;
59
				return;
71
 
60
 
Line 172... Line 161...
172
                             break;
161
                             break;
173
 
162
 
Line 174... Line 163...
174
 
163
 
-
 
164
			case 80: // Down
175
			case 80: // Down
165
 
176
				for (i = 0; i < CMD_HISTORY_NUM; i++)
166
				if (CMD_HISTORY_NUM_REAL > 0)
Line 177... Line 167...
177
					{
167
					{
178
 
168
 
Line 179... Line 169...
179
                                        for (i = cmdPos; i < cmdLen; i++)
169
					for (i = cmdPos; i < cmdLen; i++)
180
                                            printf(" ");
170
						printf(" ");
Line 181... Line 171...
181
 
171
 
182
                                        for (i = cmdLen; i > 0; i--)
172
					for (i = cmdLen; i > 0; i--)
183
                                            printf("%c %c", 8, 8);
173
						printf("%c %c", 8, 8);
184
 
174
 
Line 185... Line 175...
185
					if (CMD_NUM < CMD_HISTORY_NUM-1)
175
				    if (CMD_NUM < CMD_HISTORY_NUM_REAL-1)
186
						CMD_NUM++;
176
				        CMD_NUM++;
187
					else
177
				    else
188
						CMD_NUM = 0;
178
						CMD_NUM = 0;
189
 
-
 
Line 190... Line 179...
190
					printf(	CMD_HISTORY[CMD_NUM] );
179
 
Line 191... Line 180...
191
					strcpy(CMD, CMD_HISTORY[CMD_NUM]);
180
					printf(	CMD_HISTORY[CMD_NUM] );
Line 192... Line 181...
192
                                        cmdLen = strlen(CMD);
181
					strcpy(CMD, CMD_HISTORY[CMD_NUM]);
193
					if ((cmdPos = strlen(CMD)) != 0)
182
					cmdLen = strlen(CMD);
194
						break;
183
					cmdPos = strlen(CMD);
Line 195... Line 184...
195
 
184
 
196
					}
185
					}
Line 210... Line 199...
210
 
199
 
Line 211... Line 200...
211
					if (CMD_NUM > 0)
200
				    if (CMD_NUM > 0)
212
						CMD_NUM--;
201
				        CMD_NUM--;
213
					else
202
				    else
214
						CMD_NUM = CMD_HISTORY_NUM-1;
203
						CMD_NUM = CMD_HISTORY_NUM_REAL-1;
Line 215... Line 204...
215
 
204
 
216
					printf(	CMD_HISTORY[CMD_NUM] );
205
					printf(	CMD_HISTORY[CMD_NUM] );
217
					strcpy(CMD, CMD_HISTORY[CMD_NUM]);
206
					strcpy(CMD, CMD_HISTORY[CMD_NUM]);
218
                                        cmdLen = strlen(CMD);
207
					cmdLen = strlen(CMD);
219
					if ((cmdPos = strlen(CMD)) != 0)
208
					cmdPos = strlen(CMD);
220
						break;
209
 
221
					}
210
					}
Line 222... Line 211...
222
				break;
211
				break;