diff --git a/programs/system/shell/Docs_rus.txt b/programs/system/shell/Docs_rus.txt index e2ad4ea51..2ad89a957 100644 --- a/programs/system/shell/Docs_rus.txt +++ b/programs/system/shell/Docs_rus.txt @@ -1,23 +1,24 @@ -Shell 0.5 // 23.03.2012 // Albom +Консольные приложения Shell ======================================= -* Добавлена поддержка консольных приложений, которые общаются с шеллом через именованную область + +Обмен информацией между Shell и консольными приложениями осуществляется через именованную область. Консольное приложение может быть написано на любом языке программирования - это обыкновенная программа для КолибриОС. -1) Консольное приложение после своего запуска В ПЕРВУЮ ОЧЕРЕДЬ должно создать именованную область с именем pid-SHELL, где pid - идентификатор процесса с заглавными нулями, -например: 42 -> 0042 (т.е. сейчас ограничение до 9999). -+ нужно сделать, чтобы программа корректно завершалась, если запущена не из шелла (СЕЙЧАС НЕ РЕАЛИЗОВАНО!!!) +Консольное приложение после своего запуска в первую очередь должно создать именованную область с именем pid-SHELL, где pid - идентификатор процесса без заглавных нулей, +например: 6, 42 или 204. -2) Первый байт области - команда (т.е. максимум 255 команд), далее - данные (могут отсутствовать). -Список команд для версии 0.5: -SC_OK 0 ничего не делать -SC_EXIT 1 выход -SC_PUTC 2 вывести на экран символ -SC_PUTS 3 вывести на экран строку -SC_GETC 4 считать с клавиатуры символ -SC_GETS 5 считать с клавиатуры строку -SC_CLS 6 очистить экран +Первый байт области - команда (т.е. максимум 255 команд, что вполне достаточно), далее - данные (могут отсутствовать). -3) Программа должна САМА заботиться о рациональном использовании процессорного времени. +Список реализованных команд: +SC_OK 0 ничего не делать +SC_EXIT 1 выход +SC_PUTC 2 вывести на экран символ +SC_PUTS 3 вывести на экран строку +SC_GETC 4 считать с клавиатуры символ +SC_GETS 5 считать с клавиатуры строку +SC_CLS 6 очистить экран -4) Программа должна САМА заботиться о закрытии именованной области. +Программа должна сама заботиться о рациональном использовании процессорного времени. + +Программа должна сама заботиться о закрытии именованной области. diff --git a/programs/system/shell/History.txt b/programs/system/shell/History.txt index d4c60a56a..32504a096 100644 --- a/programs/system/shell/History.txt +++ b/programs/system/shell/History.txt @@ -1,3 +1,15 @@ +Shell 0.5.4 // 04.06.2012 // Albom +======================================= +* Исправлен интерфейс исполняемых консольных приложений. Теперь они должны создавать буфер с именем pid-SHELL, где pid - идентификатор процесса без заглавных нулей +* Реинкарнированы команды ccpuid, free, killall ++ Добавлена команда history + + +Shell 0.5.3 // 19.04.2012 // Albom +======================================= +* Исправление в команде pwd + + Shell 0.5.2 // 16.04.2012 // Albom ======================================= * Исправление в команде ls diff --git a/programs/system/shell/all.h b/programs/system/shell/all.h index 53a3c96ca..1962d144f 100644 --- a/programs/system/shell/all.h +++ b/programs/system/shell/all.h @@ -28,7 +28,7 @@ #include "cmd/cmd_date.c" #include "cmd/cmd_exit.c" #include "cmd/cmd_cd.c" -#include "cmd/cmd_memory.c" +#include "cmd/cmd_free.c" #include "cmd/cmd_reboot.c" #include "cmd/cmd_mkdir.c" #include "cmd/cmd_rmdir.c" @@ -42,6 +42,7 @@ #include "cmd/cmd_shutdown.c" #include "cmd/cmd_uptime.c" #include "cmd/cmd_killall.c" +#include "cmd/cmd_history.c" #include "modules/module_command.c" #include "modules/module_program_console.c" diff --git a/programs/system/shell/cmd/cmd_free.c b/programs/system/shell/cmd/cmd_free.c index 4c1d97e8a..3f3d1434c 100644 --- a/programs/system/shell/cmd/cmd_free.c +++ b/programs/system/shell/cmd/cmd_free.c @@ -1,5 +1,5 @@ -int cmd_free(char param[]) +int cmd_memory(char param[]) { unsigned total, free, used; @@ -7,7 +7,11 @@ total = kol_system_mem(); free = kol_system_memfree(); used = total - free; -printf (" total [kB / MB / %%]: %-7d / %-5d / 100\n\r free [kB / MB / %%]: %-7d / %-5d / %d\n\r used [kB / MB / %%]: %-7d / %-5d / %d\n\r", +#if LANG_ENG + printf (" Total [kB / MB / %%]: %-7d / %-5d / 100\n\r Free [kB / MB / %%]: %-7d / %-5d / %d\n\r Used [kB / MB / %%]: %-7d / %-5d / %d\n\r", +#elif LANG_RUS + printf (" ‚ᥣ® [ЉЃ / ЊЃ / %%]: %-7d / %-5d / 100\n\r ‘ў®Ў®¤­® [ЉЃ / ЊЃ / %%]: %-7d / %-5d / %d\n\r €бЇ®«м§гҐвбп [ЉЃ / ЊЃ / %%]: %-7d / %-5d / %d\n\r", +#endif total, total/1024, free, free/1024, (free*100)/total, used, total/1024-free/1024, 100-(free*100)/total ); return TRUE; diff --git a/programs/system/shell/cmd/cmd_history.c b/programs/system/shell/cmd/cmd_history.c new file mode 100644 index 000000000..25c441a33 --- /dev/null +++ b/programs/system/shell/cmd/cmd_history.c @@ -0,0 +1,13 @@ + +int cmd_history(char arg[]) +{ + +int i; + +for (i = 0; i < CMD_HISTORY_NUM_REAL; i++) + { + printf("%s\n", CMD_HISTORY[i]); + } + +return TRUE; +} diff --git a/programs/system/shell/cmd/cmd_uptime.c b/programs/system/shell/cmd/cmd_uptime.c index 860f8af2a..1f1e4d645 100644 --- a/programs/system/shell/cmd/cmd_uptime.c +++ b/programs/system/shell/cmd/cmd_uptime.c @@ -16,4 +16,4 @@ up_millisecs = (time_tick*10)%100; printf (" Uptime: %d ¤­Ґ©, %d:%d:%d.%d\n\r", up_days, up_hours, up_minutes, up_seconds, up_millisecs); #endif return TRUE; -} \ No newline at end of file +} diff --git a/programs/system/shell/globals.h b/programs/system/shell/globals.h index c5521970c..ceb2a1ca7 100644 --- a/programs/system/shell/globals.h +++ b/programs/system/shell/globals.h @@ -1,5 +1,5 @@ -#define SHELL_VERSION "0.5.3" +#define SHELL_VERSION "0.5.4" extern char PATH[256]; extern char PARAM[256]; @@ -19,6 +19,7 @@ unsigned ALIAS_NUM = 0; char CMD[256]; char CMD_HISTORY[CMD_HISTORY_NUM][256]; char CMD_NUM; +char CMD_HISTORY_NUM_REAL = 0; unsigned CMD_POS; @@ -66,6 +67,7 @@ int cmd_sleep(char arg[]); int cmd_shutdown(char arg[]); int cmd_uptime(char param[]); int cmd_killall(char process_name[]); +int cmd_history(char arg[]); /// =========================================================== diff --git a/programs/system/shell/locale/eng/globals.h b/programs/system/shell/locale/eng/globals.h index a0c875f33..21f926ecf 100644 --- a/programs/system/shell/locale/eng/globals.h +++ b/programs/system/shell/locale/eng/globals.h @@ -1,3 +1,4 @@ + const command_t COMMANDS[]= { {"about", " Displays information about Shell\n\r", &cmd_about}, @@ -8,8 +9,9 @@ const command_t COMMANDS[]= {"date", " Returns the current date and time\n\r", &cmd_date}, {"echo", " Echoes the data to the screen. Usage:\n\r echo \n\r", &cmd_echo}, {"exit", " Exits from Shell\n\r", &cmd_exit}, - {"memory", " Displays total, free and used memory\n\r", &cmd_memory}, + {"free", " Displays total, free and used memory\n\r", &cmd_memory}, {"help", " Gives help on commands. Usage:\n\r help ;it lists all builtins\n\r help ;help on command\n\r", &cmd_help}, + {"history", " Lists used commands\n\r", &cmd_history}, {"kill", " Stops a running process. Usage:\n\r kill \n\r", &cmd_kill}, {"killall", " Kills all running processes\n\r", &cmd_killall}, {"ls", " Lists the files in a directory. Usage:\n\r ls ;lists the files in current directory\n\r ls ;lists the files at specified folder\n\r", &cmd_ls}, @@ -20,9 +22,9 @@ const command_t COMMANDS[]= {"reboot", " Reboots the computer or KolibriOS kernel. Usage:\n\r reboot ;reboot a PC\n\r reboot kernel ;reboot the KolibriOS kernel\n\r", &cmd_reboot}, {"rm", " Removes a file. Usage:\n\r rm file name>\n\r", &cmd_rm}, {"rmdir", " Removes a folder. Usage:\n\r rmdir \n\r", &cmd_rmdir}, - {"sleep", " Stops the shell for the desired period. Usage:\n\r sleep