1,29 → 1,40 |
|
/// =========================================================== |
|
void command_history_add() |
void command_history_add(char command[]) |
{ |
|
int i; |
if ( (0 != strcmp( CMD_HISTORY[0], CMD)) && |
(0 != strcmp( CMD_HISTORY[1], CMD)) && |
(0 != strcmp( CMD_HISTORY[2], CMD)) && |
(0 != strcmp( CMD_HISTORY[3], CMD)) && |
(0 != strcmp( CMD_HISTORY[4], CMD)) && |
(0 != strcmp( CMD_HISTORY[5], CMD)) && |
(0 != strcmp( CMD_HISTORY[6], CMD)) && |
(0 != strcmp( CMD_HISTORY[7], CMD)) && |
(0 != strcmp( CMD_HISTORY[8], CMD)) && |
(0 != strcmp( CMD_HISTORY[9], CMD)) ) |
|
for (i = 0; i < CMD_HISTORY_NUM_REAL; i++) |
if ( 0 == strcmp( CMD_HISTORY[i], CMD ) ) |
return; |
{ |
strcpy(CMD_HISTORY[9], CMD_HISTORY[8]); |
strcpy(CMD_HISTORY[8], CMD_HISTORY[7]); |
strcpy(CMD_HISTORY[7], CMD_HISTORY[6]); |
strcpy(CMD_HISTORY[6], CMD_HISTORY[5]); |
strcpy(CMD_HISTORY[5], CMD_HISTORY[4]); |
strcpy(CMD_HISTORY[4], CMD_HISTORY[3]); |
strcpy(CMD_HISTORY[3], CMD_HISTORY[2]); |
strcpy(CMD_HISTORY[2], CMD_HISTORY[1]); |
strcpy(CMD_HISTORY[1], CMD_HISTORY[0]); |
|
for (i = CMD_HISTORY_NUM_REAL; i > 0 ; i--) |
strcpy(CMD_HISTORY[i], CMD_HISTORY[i-1]); |
|
strcpy(CMD_HISTORY[0], CMD); |
|
if (CMD_HISTORY_NUM_REAL < CMD_HISTORY_NUM-1) |
if (CMD_HISTORY_NUM_REAL < CMD_HISTORY_NUM) |
CMD_HISTORY_NUM_REAL++; |
|
CMD_NUM = 0; |
} |
|
} |
|
|
|
/// =========================================================== |
|
void command_get() |
56,7 → 67,7 |
|
case 13: // ENTER |
printf("\n\r"); |
command_history_add(); |
command_history_add(CMD); |
return; |
|
|
163,8 → 174,7 |
|
|
case 80: // Down |
|
if (CMD_HISTORY_NUM_REAL > 0) |
for (i = 0; i < CMD_HISTORY_NUM; i++) |
{ |
|
for (i = cmdPos; i < cmdLen; i++) |
173,7 → 183,7 |
for (i = cmdLen; i > 0; i--) |
printf("%c %c", 8, 8); |
|
if (CMD_NUM < CMD_HISTORY_NUM_REAL-1) |
if (CMD_NUM < CMD_HISTORY_NUM-1) |
CMD_NUM++; |
else |
CMD_NUM = 0; |
181,7 → 191,8 |
printf( CMD_HISTORY[CMD_NUM] ); |
strcpy(CMD, CMD_HISTORY[CMD_NUM]); |
cmdLen = strlen(CMD); |
cmdPos = strlen(CMD); |
if ((cmdPos = strlen(CMD)) != 0) |
break; |
|
} |
|
189,7 → 200,7 |
|
|
case 72: // Up |
if (CMD_HISTORY_NUM_REAL > 0) |
for (i = 0; i < CMD_HISTORY_NUM; i++) |
{ |
|
for (i = cmdPos; i < cmdLen; i++) |
201,13 → 212,13 |
if (CMD_NUM > 0) |
CMD_NUM--; |
else |
CMD_NUM = CMD_HISTORY_NUM_REAL-1; |
CMD_NUM = CMD_HISTORY_NUM-1; |
|
printf( CMD_HISTORY[CMD_NUM] ); |
strcpy(CMD, CMD_HISTORY[CMD_NUM]); |
cmdLen = strlen(CMD); |
cmdPos = strlen(CMD); |
|
if ((cmdPos = strlen(CMD)) != 0) |
break; |
} |
break; |
|