/programs/system/shell/modules/module_command.c |
---|
1,9 → 1,5 |
/// =========================================================== |
void command_history_add() |
{ |
void command_history_add() { |
int i; |
if ('\0' == CMD[0]) return; |
23,8 → 19,8 |
CMD_HISTORY_NUM_REAL++; |
} |
// ============================================================ |
char * insert_string( char s1[], unsigned int pos, const char s2[] ) |
{ |
unsigned int n1 = strlen( s1 ); |
48,8 → 44,8 |
return s1; |
} |
/// =========================================================== |
void command_get() |
{ |
unsigned key; |
63,14 → 59,11 |
char* clipBuf; // clipboard buffer |
char clipCopy[255+12]; |
for (;;) |
{ |
for (;;) { |
key = getch(); |
if ( 0 != (key & 0xff) ) |
{ |
if ( 0 != (key & 0xff) ) { |
key &= 0xff; |
switch (key) |
{ |
switch (key) { |
case 27: // ESC |
for (i = cmdPos; i < cmdLen; i++) |
printf(" "); |
113,10 → 106,10 |
case 22: // Ctrl+V |
clipNum = kol_clip_num(); |
clipNum = _ksys_clip_num(); |
if (clipNum > 0) |
{ |
clipBuf = kol_clip_get(clipNum-1); |
clipBuf = _ksys_clip_get(clipNum-1); |
// printf("Length: %d, Type: %d, Encoding: %d\n", (int) *clipBuf, (int)*(clipBuf+4), (int)*(clipBuf+8)); |
if ( (int) *clipBuf > 0 ) // is clipboard empty? |
{ |
155,7 → 148,7 |
for (i = 0; i <= cmdLen; i++) |
*(clipCopy+12+i) = CMD[i]; |
kol_clip_set(12+cmdLen, clipCopy); |
_ksys_clip_set(12+cmdLen, clipCopy); |
} |
break; |
164,8 → 157,8 |
default: |
if (cmdLen < 255) |
{ |
if ( kol_key_control() & 0x40 ) // ¥á«¨ ¢ª«îçñ CapsLock |
if ( (kol_key_control() & 1) || (kol_key_control() & 2)) // ¥á«¨ ¦ âë è¨äâë |
if ( kol_key_control() & 0x40 ) // � ������ CapsLock |
if ( (kol_key_control() & 1) || (kol_key_control() & 2)) // � ������ ���� |
key = tolower(key); |
else |
key = toupper(key); |
298,14 → 291,13 |
case 0: // console window closed |
cmd_exit(NULL); |
} |
} // switch end |
} // if end |
} // for end |
} |
} |
} |
/// =========================================================== |
int command_get_cmd(char cmd[]) |
{ |
353,12 → 345,12 |
} |
} |
/// =========================================================== |
typedef int (*handler1_t)(char* arg); |
/// =========================================================== |
void command_execute() |
{ |
char cmd[256]; |
376,26 → 368,17 |
strcpy(args, CMD+arg); |
trim(args); |
for (i = 0; i < NUM_OF_CMD; i++) |
{ |
if (!strcmp(cmd, COMMANDS[i].name)) |
{ |
for (i = 0; i < NUM_OF_CMD; i++) { |
if (!strcmp(cmd, COMMANDS[i].name)) { |
result = ((handler1_t)COMMANDS[i].handler)(args); |
if (result == FALSE) |
{ |
#if LANG_ENG |
printf(" Error!\n\r"); |
#elif LANG_RUS |
printf(" 訡ª !\n\r"); |
#endif |
if (result == FALSE) { |
printf(UNKNOWN_CMD_ERROR); |
} |
return; |
} |
} |
if ( -1 != alias_search(CMD) ) |
{ |
if ( -1 != alias_search(CMD) ) { |
strcpy(CMD, ALIASES+64*1024+256*alias_search(CMD)); |
command_execute(); |
return; |
404,6 → 387,3 |
executable_run(cmd, args); |
} |
/// =========================================================== |
/programs/system/shell/modules/module_executable.c |
---|
1,9 → 1,5 |
/// =========================================================== |
int executable_run(char cmd[], char args[]) |
{ |
int executable_run(char cmd[], char args[]) { |
char exec[FILENAME_MAX]; |
int result; |
15,9 → 11,7 |
file_not_found(cmd); |
return FALSE; |
} |
} |
else |
{ |
} else { |
strcpy(exec, cur_dir); // check file in current directory |
if (exec[strlen(exec)-1] != '/') |
strcat(exec, "/"); // add slash |
39,31 → 33,19 |
// try to run as a program |
result = program_run(exec, args); |
if (result > 0) |
{ |
if ( !program_console(result) ) |
{ |
if (result > 0) { |
if ( !program_console(result) ) { |
LAST_PID = result; |
#if LANG_ENG |
printf (" '%s' started. PID = %d\n\r", cmd, result); |
#elif LANG_RUS |
printf (" '%s' § ¯ãé¥. PID = %d\n\r", cmd, result); |
#endif |
printf (EXEC_STARTED_FMT, cmd, result); |
} |
return TRUE; |
} |
else |
{ |
} else { |
if ( script_check(exec) ) // if file is a valid script |
{ |
return script_run(exec, args); |
} else |
{ |
#if LANG_ENG |
printf ("Error in '%s' : script must start with #SHS line\n\r", cmd); |
#elif LANG_RUS |
printf ("訡ª ¢ '%s' : áªà¨¯â ¤®«¦¥ ç¨ âìáï á® áâà®çª¨ #SHS\n\r", cmd); |
#endif |
printf (EXEC_SCRIPT_ERROR_FMT, cmd); |
return FALSE; |
} |
} |
70,5 → 52,3 |
} |
/// =========================================================== |
/programs/system/shell/modules/module_parameters.c |
---|
1,9 → 1,5 |
/// =========================================================== |
int parameters_prepare(char *param, char* argv[]) |
{ |
int parameters_prepare(char *param, char* argv[]) { |
int i, param_len; |
int argc = 1; |
int quote = 0; |
16,16 → 12,11 |
argv[0] = (char*) malloc(4096); |
argv_len = 0; |
for (i = 0; i < param_len; i++) |
{ |
switch (param[i]) |
{ |
for (i = 0; i < param_len; i++) { |
switch (param[i]) { |
case '\\': |
if (param[i+1]!='\0') |
{ |
switch(param[i+1]) |
{ |
if (param[i+1]!='\0') { |
switch(param[i+1]) { |
case 'n': |
argv[argc-1][argv_len] = '\n'; |
56,8 → 47,7 |
case '"': |
if (quote == 0) |
quote = 1; |
else |
{ |
else { |
quote = 0; |
argv[argc-1][argv_len] = '\0'; |
argc++; |
69,12 → 59,9 |
case 9: |
case 32: |
if (quote == 0) |
{ |
if ( ( param[i+1] != 32) || ( param[i+1] != 9) ) |
{ |
if (argv_len != 0) |
{ |
if (quote == 0) { |
if ( ( param[i+1] != 32) || ( param[i+1] != 9) ) { |
if (argv_len != 0) { |
argv[argc-1][argv_len] = '\0'; |
argc++; |
argv[argc-1] = (char*) malloc(4096); |
82,27 → 69,22 |
argv_len = 0; |
} |
} |
} |
else |
{ |
} else { |
argv[argc-1][argv_len] = param[i]; |
argv_len++; |
} |
break; |
default: |
argv[argc-1][argv_len] = param[i]; |
argv_len++; |
break; |
}; |
} |
}; // switch end |
} // for end |
argv[argc-1][argv_len] = '\0'; |
if ( strlen(argv[argc-1]) == 0 ) |
{ |
if ( strlen(argv[argc-1]) == 0 ) { |
free(argv[argc-1]); |
argc--; |
} |
110,17 → 92,9 |
return argc; |
} |
/// =========================================================== |
void parameters_free(int argc, char* argv[]) |
{ |
void parameters_free(int argc, char* argv[]) { |
int i; |
for (i = 0; i < argc; i++) |
free(argv[i]); |
for (i = 0; i < argc; i++) free(argv[i]); |
} |
/// =========================================================== |
/programs/system/shell/modules/module_program_console.c |
---|
2,9 → 2,7 |
#include "../program_console.h" |
int program_console(int pid) |
{ |
int program_console(int pid) { |
char name[32]; |
char *buffer; |
char *buf1k; |
20,8 → 18,7 |
buffer = NULL; |
buf1k = NULL; |
for (i = 0; i < 30; i++) |
{ |
for (i = 0; i < 30; i++) { |
result = kol_buffer_open(name, SHM_OPEN | SHM_WRITE, 0, &buffer); |
if (buffer != NULL) |
break; |
35,13 → 32,10 |
size = result; |
is_end = 0; |
for (;;) |
{ |
for (;;) { |
command = *(buffer); |
switch (command) |
{ |
switch (command) { |
case SC_EXIT: |
*buffer = SC_OK; |
is_end = 1; |
89,20 → 83,14 |
break; |
default: |
#if LANG_ENG |
printf (" Error in console application.\n\r"); |
#elif LANG_RUS |
printf (" 訡ª ¢ ª®á®«ì®¬ ¯à¨«®¦¥¨¨.\n\r"); |
#endif |
printf (CON_APP_ERROR); |
return 0; |
}; |
if (is_end) |
{ |
if (is_end) { |
printf("\n\r"); |
return 1; |
} |
} |
} // for end |
return 9; |
} |
/programs/system/shell/modules/module_script.c |
---|
1,9 → 1,6 |
/// =========================================================== |
int script_check(char file[]) |
{ |
int script_check(char file[]) { |
kol_struct70 k70; |
char buf[4]; |
23,11 → 20,8 |
return FALSE; |
} |
/// =========================================================== |
int script_run(char exec[], char args[]) |
{ |
int script_run(char exec[], char args[]) { |
kol_struct70 k70; |
kol_struct_BDVK bdvk; |
unsigned result, i; |
72,7 → 66,6 |
for (;;) // script processing |
{ |
if (pos > filesize) |
break; |
101,6 → 94,3 |
free(buf); |
return TRUE; |
} |
/// =========================================================== |