Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 4014 → Rev 4015

/programs/system/shell/modules/module_command.c
1,15 → 1,6
 
/// ===========================================================
 
void command_clear()
{
for (;CMD_POS;CMD_POS--)
printf("%c %c", 8, 8);
CMD[0]='\0';
}
 
/// ===========================================================
 
void command_history_add(char command[])
{
 
49,11 → 40,11
void command_get()
{
unsigned key;
//unsigned pos = 0;
int hist;
 
CMD_POS = 0;
CMD_NUM = 0;
unsigned i;
unsigned cmdLen = 0;
unsigned cmdPos = 0;
CMD[0] = '\0';
 
for (;;)
{
64,31 → 55,52
switch (key)
{
case 27: // ESC
command_clear();
for (i = cmdPos; i < cmdLen; i++)
printf(" ");
for (i = cmdLen; i > 0; i--)
printf("%c %c", 8, 8);
cmdLen = 0;
cmdPos = 0;
CMD[0] = '\0';
break;
 
 
case 13: // ENTER
CMD[CMD_POS] = '\0';
printf("\n\r");
 
command_history_add(CMD);
return;
 
 
case 8: // BACKSPACE
if (CMD_POS > 0)
if (cmdPos > 0)
{
for (i = cmdPos-1; i < cmdLen; i++)
CMD[i] = CMD[i+1];
 
for (i = 0; i < cmdLen-cmdPos; i++)
printf (" ");
 
for (i = 0; i < cmdLen; i++)
printf ("%c %c", 8, 8);
CMD_POS--;
 
printf("%s", CMD);
 
for (i = 0; i < cmdLen-cmdPos; i++)
printf("%c", 8);
 
cmdPos--;
cmdLen--;
}
break;
 
 
case 9: // TAB
break;
 
 
default:
if (CMD_POS < 255)
if (cmdLen < 255)
{
if ( kol_key_control() & 0x40 ) // ¥á«¨ ¢ª«îçñ­ CapsLock
if ( (kol_key_control() & 1) || (kol_key_control() & 2)) // ¥á«¨ ­ ¦ âë è¨äâë
key = tolower(key);
95,26 → 107,82
else
key = toupper(key);
 
CMD[CMD_POS] = key;
CMD_POS++;
printf("%c", key);
for (i = cmdLen+1; i > cmdPos; i--)
CMD[i] = CMD[i-1];
 
CMD[cmdPos] = key;
 
for (i = cmdPos; i > 0; i--)
printf("%c %c", 8, 8);
 
printf("%s", CMD);
 
for (i = 0; i < cmdLen-cmdPos; i++)
printf("%c", 8);
 
cmdPos++;
cmdLen++;
}
break;
};
 
}
else // ®¡à ¡®âª  à áè¨à¥­­ëå ª« ¢¨è
}
else
{
key = (key>>8)&0xff;
// printf ("%d\n\r", key);
 
switch (key)
{
case 83: // Del
if (cmdPos < cmdLen)
{
for (i = cmdPos; i < cmdLen; i++)
CMD[i] = CMD[i+1];
 
for (i = 0; i < cmdLen-cmdPos; i++)
printf(" ");
 
for (i = 0; i < cmdLen-cmdPos; i++)
printf("%c", 8);
 
for (i = cmdPos; i < cmdLen; i++)
printf("%c", CMD[i]);
 
for (i = 0; i < cmdLen-cmdPos; i++)
printf("%c", 8);
 
cmdLen--;
}
 
break;
 
case 75: // Left
if (cmdPos > 0)
{
printf("%c", 8);
cmdPos--;
}
break;
 
 
case 77: // Right
if (cmdPos < cmdLen)
{
printf("%c", CMD[cmdPos]);
cmdPos++;
}
break;
 
 
case 80: // Down
for (hist = 0; hist < CMD_HISTORY_NUM; hist++)
for (i = 0; i < CMD_HISTORY_NUM; i++)
{
command_clear();
 
for (i = cmdPos; i < cmdLen; i++)
printf(" ");
 
for (i = cmdLen; i > 0; i--)
printf("%c %c", 8, 8);
 
if (CMD_NUM < CMD_HISTORY_NUM-1)
CMD_NUM++;
else
122,17 → 190,25
printf( CMD_HISTORY[CMD_NUM] );
strcpy(CMD, CMD_HISTORY[CMD_NUM]);
if ((CMD_POS = strlen(CMD)) != 0)
cmdLen = strlen(CMD);
if ((cmdPos = strlen(CMD)) != 0)
break;
 
}
 
break;
 
 
case 72: // Up
for (hist = 0; hist < CMD_HISTORY_NUM; hist++)
for (i = 0; i < CMD_HISTORY_NUM; i++)
{
command_clear();
 
for (i = cmdPos; i < cmdLen; i++)
printf(" ");
 
for (i = cmdLen; i > 0; i--)
printf("%c %c", 8, 8);
 
if (CMD_NUM > 0)
CMD_NUM--;
else
140,22 → 216,23
 
printf( CMD_HISTORY[CMD_NUM] );
strcpy(CMD, CMD_HISTORY[CMD_NUM]);
if ((CMD_POS = strlen(CMD)) != 0)
cmdLen = strlen(CMD);
if ((cmdPos = strlen(CMD)) != 0)
break;
}
break;
 
 
case 0: // console window closed
cmd_exit(NULL);
 
};
}
}
}
 
}
 
 
/// ===========================================================
 
int command_get_cmd(char cmd[])