From deca8b884fa3dd213f9b777114122c736ea5396e Mon Sep 17 00:00:00 2001 From: Albom Date: Sun, 17 Feb 2013 15:22:51 +0000 Subject: [PATCH] Shell v0.6.1. Some minor improvements. git-svn-id: svn://kolibrios.org@3247 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/system/shell/History.txt | 162 +++++++++--------- programs/system/shell/all.h | 1 - programs/system/shell/cmd/cmd_cd.c | 2 +- programs/system/shell/cmd/cmd_cp.c | 26 +-- programs/system/shell/cmd/cmd_date.c | 1 + programs/system/shell/cmd/cmd_echo.c | 1 + programs/system/shell/cmd/cmd_exit.c | 1 + programs/system/shell/cmd/cmd_free.c | 1 + programs/system/shell/cmd/cmd_help.c | 1 + programs/system/shell/cmd/cmd_history.c | 1 + programs/system/shell/cmd/cmd_kill.c | 25 ++- programs/system/shell/cmd/cmd_killall.c | 15 -- programs/system/shell/cmd/cmd_ls.c | 1 + programs/system/shell/cmd/cmd_mkdir.c | 3 +- programs/system/shell/cmd/cmd_more.c | 3 +- programs/system/shell/cmd/cmd_ps.c | 1 + programs/system/shell/cmd/cmd_pwd.c | 1 + programs/system/shell/cmd/cmd_reboot.c | 1 + programs/system/shell/cmd/cmd_rm.c | 3 +- programs/system/shell/cmd/cmd_rmdir.c | 3 +- programs/system/shell/cmd/cmd_shutdown.c | 1 + programs/system/shell/cmd/cmd_sleep.c | 10 +- programs/system/shell/cmd/cmd_touch.c | 2 +- programs/system/shell/cmd/cmd_uptime.c | 1 + programs/system/shell/cmd/cmd_ver.c | 2 + programs/system/shell/locale/eng/globals.h | 4 +- programs/system/shell/locale/rus/globals.h | 4 +- programs/system/shell/modules/module_alias.c | 1 + .../system/shell/modules/module_command.c | 20 ++- .../system/shell/modules/module_executable.c | 1 + .../system/shell/modules/module_parameters.c | 1 + .../system/shell/modules/module_program.c | 1 + .../shell/modules/module_program_console.c | 1 + programs/system/shell/modules/module_script.c | 1 + 34 files changed, 162 insertions(+), 141 deletions(-) delete mode 100644 programs/system/shell/cmd/cmd_killall.c diff --git a/programs/system/shell/History.txt b/programs/system/shell/History.txt index cb7504d81f..e5b89ee3bd 100644 --- a/programs/system/shell/History.txt +++ b/programs/system/shell/History.txt @@ -1,172 +1,178 @@ +Shell 0.6.1 // 17.02.2013 // Albom +* Простая обработка ошибок внутренних команд +* Команда killall трансформирована в параметр all команды kill +* Изменена кодировка файла History.txt с 1251 на 866 + + Shell 0.6 // 16.02.2013 // Albom -+ ─юсртыхэр тючьюцэюёЄ№ чряєёърЄ№ яЁюуЁрьь√, шьхэр ъюЄюЁ√ї шыш яєЄ№ ъ ъюЄюЁ√ь ёюфхЁцрЄ яЁюсхы√. ╚ь  яЁюуЁрьь√ (тючьюцэю ё яєЄ╕ь ъ эхщ) фы  ¤Єюую эхюсїюфшью чръы■ўрЄ№ т ърт√ўъш. ╥.х. эръюэхЎ-Єю ьюцэю чряєёЄшЄ№ яЁюуЁрььє шч /rd/1/File managers, эх яхЁхїюф  т эх╕ -+ ─юсртыхэр ЇєэъЎш  Ёрчфхыхэш  ёЄЁюъютющ яхЁхьхээющ эр int argc, char* argv[], ўЄю ючэрўрхЄ тючьюцэюёЄ№ єыєў°хэш  ъюьрэф (юсЁрсюЄър эхёъюы№ъшї ярЁрьхЄЁют) -+ ─юсртыхэр ъюьрэфр cp (ъюяшЁютрэшх Їрщыр). ╧ЁшэшьрхЄ юс чрЄхы№эю фтр ярЁрьхЄЁр - шь  Їрщыр-шёЄюўэшър ш шь  Їрщыр-Ёхчєы№ЄрЄр. ╚ьхэр ьюуєЄ с√Є№ ъЁрЄъшьш (т Єхъє∙хь ърЄрыюух), Єръ ш ё яюыэ√ь яєЄ╕ь (фюыцэ√ эрўшэрЄ№ё  ё /). ╬уЁрэшўхэшх эр ЁрчьхЁ Їрщыр - 4 ├срщЄр -* ╚ёяЁртыхэр ъюфшЁютър т ёююс∙хэшш юс ю°шсъх т ъюэёюы№эюь яЁшыюцхэшш -* ╩ыртш°ш шёЄюЁшш (ттхЁї ш тэшч) яюьхэ э√ ьхцфє ёюсющ -* ╩юышўхёЄтю ъюьрэф т шёЄюЁшш єтхышўхэю ё я Єш фю фхё Єш -* ╙ьхэ№°хэю ъюышўхёЄтю яЁхфєяЁхцфхэшщ яЁш ъюьяшы Ўшш -* ╩юьрэфр ccpuid яЁхюсЁрчютрэр т ярЁрьхЄЁ cpu ъюьрэф√ ver -* ╚ёяЁртыхэш  т яръхЄэ√ї Їрщырї ёсюЁъш -+ ─юсртыхэ яЁшьхЁ ъюэёюы№эюую яЁшыюцхэш  эр рёёхьсыхЁх ш яръхЄэ√щ Їрщы фы  хую ёсюЁъш ++ Добавлена возможность запускать программы, имена которых или путь к которым содержат пробелы. Имя программы (возможно с путём к ней) для этого необходимо заключать в кавычки. Т.е. наконец-то можно запустить программу из /rd/1/File managers, не переходя в неё ++ Добавлена функция разделения строковой переменной на int argc, char* argv[], что означает возможность улучшения команд (обработка нескольких параметров) ++ Добавлена команда cp (копирование файла). Принимает обязательно два параметра - имя файла-источника и имя файла-результата. Имена могут быть краткими (в текущем каталоге), так и с полным путём (должны начинаться с /). Ограничение на размер файла - 4 Гбайта +* Исправлена кодировка в сообщении об ошибке в консольном приложении +* Клавиши истории (вверх и вниз) поменяны между собой +* Количество команд в истории увеличено с пяти до десяти +* Уменьшено количество предупреждений при компиляции +* Команда ccpuid преобразована в параметр cpu команды ver +* Исправления в пакетных файлах сборки ++ Добавлен пример консольного приложения на ассемблере и пакетный файл для его сборки Shell 0.5.4 // 04.06.2012 // Albom ======================================= -* ╚ёяЁртыхэ шэЄхЁЇхщё шёяюыэ хь√ї ъюэёюы№э√ї яЁшыюцхэшщ. ╥хяхЁ№ юэш фюыцэ√ ёючфртрЄ№ сєЇхЁ ё шьхэхь pid-SHELL, уфх pid - шфхэЄшЇшърЄюЁ яЁюЎхёёр схч чруыртэ√ї эєыхщ -* ╨хшэърЁэшЁютрэ√ ъюьрэф√ ccpuid, free, killall -+ ─юсртыхэр ъюьрэфр history +* Исправлен интерфейс исполняемых консольных приложений. Теперь они должны создавать буфер с именем pid-SHELL, где pid - идентификатор процесса без заглавных нулей +* Реинкарнированы команды ccpuid, free, killall ++ Добавлена команда history Shell 0.5.3 // 19.04.2012 // Albom ======================================= -* ╚ёяЁртыхэшх т ъюьрэфх pwd +* Исправление в команде pwd Shell 0.5.2 // 16.04.2012 // Albom ======================================= -* ╚ёяЁртыхэшх т ъюьрэфх ls -* ═хчэрўшЄхы№э√х фЁєушх шёяЁртыхэш  +* Исправление в команде ls +* Незначительные другие исправления Shell 0.5.1 // 15.04.2012 // Albom ======================================= -* ═хъюЄюЁ√х эхчэрўшЄхы№э√х шёяЁртыхэш  +* Некоторые незначительные исправления Shell 0.5 // 23.03.2012 // Albom ======================================= -* ─юсртыхэр яюффхЁцър ъюэёюы№э√ї яЁшыюцхэшщ, ъюЄюЁ√х юс∙р■Єё  ё °хыыюь ўхЁхч шьхэютрээє■ юсырёЄ№ +* Добавлена поддержка консольных приложений, которые общаются с шеллом через именованную область Shell 0.4.6 // 30.01.2011 // Albom ======================================= -* ┬Ёхьхээю єфрыхэ√ ъюьрэф√ killall ш ccpuid (ўЄюс√ тхЁэєЄ№, эхюсїюфшью ЁрёъюььхэЄшЁютрЄ№ 2 ёЄЁюўъш) -* ╚ёяЁртыхэш  т ЄхъёЄют√ї ёЄЁюърї +* Временно удалены команды killall и ccpuid (чтобы вернуть, необходимо раскомментировать 2 строчки) +* Исправления в текстовых строках Shell 0.4.52 // 25.10.2010 // Pterox ======================================= -* ─юсртыхэр ъюьрэфр "killall" - єсштрхЄ тёх яЁюЎхёё√ ъЁюьх OS/IDLE. -* ╘шъё√ +* Добавлена команда "killall" - убивает все процессы кроме OS/IDLE. +* Фиксы Shell 0.4.51 // 21.10.2010 // Pterox ======================================= -* ╩юьрэфр "turnoff" яхЁхшьхэютрэр т "shutdown", "kerver" єфрыхэр - ЄхяхЁ№ х╕ чрьхэ хЄ "ver kernel"; Їшъё√. +* Команда "turnoff" переименована в "shutdown", "kerver" удалена - теперь её заменяет "ver kernel"; фиксы. Shell 0.4.5 // 19.10.2010 // Pterox ======================================= -╧ЁюуЁрььр ЄхяхЁ№ ьэюую ч√ъютр  (рэуышщёъшщ, ш Ёєёёъшщ  ч√ъ). ╧ЁюуЁрььр яюыэюёЄ№■ ЁєёшЇшЎшЁютрээр. -* ╩юьрэфр "free" яхЁхшьхэютрэр т "memory" - фы  ЄюўэюёЄш. -* ─юсртыхэ√ ъюьрэф√ turnoff (т√ъы■ўшЄ№ ъюья№■ЄхЁ), kerver (тхЁёш   фЁр KolibriOS), uptime; reboot ЄхяхЁ№ ьюцхЄ яхЁхчруЁєцрЄ№  фЁю ("reboot kernel") +Программа теперь многоязыковая (английский, и русский язык). Программа полностью русифицированна. +* Команда "free" переименована в "memory" - для точности. +* Добавлены команды turnoff (выключить компьютер), kerver (версия ядра KolibriOS), uptime; reboot теперь может перезагружать ядро ("reboot kernel") Shell 0.4.4 // 20.08.2010 // Albom ======================================= -1) °хыы ъюЁЁхъЄэю чртхЁ°рхЄё  яЁш чръЁ√Єшш юъэр -2) шёяЁртыхэю х∙╕ 2 ю°шсъш -3) фюсртыхэ√ 2 ъюьрэф√: -* sleep - цфрЄ№. ярЁрьхЄЁ - тЁхь  т ёюЄ√ї ўрёЄ ї ёхъєэф√. Єюы№ъю Ўхыюх ўшёыю. -* ccpuid - т√тюф т ъюэёюы№ шэЇюЁьрЎшш (яюър ёъєфэю) ю яЁюЎхёёюЁх. яюы№ч√ ьрыю, эю фртэю їюЄхы ё ъюьрэфющ cpuid ЁрчюсЁрЄ№ё  (т ёыхфє■∙хь ёхьхёЄЁх сєфє ёЄєфхэЄрь ъєЁё ўшЄрЄ№, тъы■ўшы ЁрчсюЁ ъюьрэф√ т яЁюуЁрььє). +1) шелл корректно завершается при закрытии окна +2) исправлено ещё 2 ошибки +3) добавлены 2 команды: +* sleep - ждать. параметр - время в сотых частях секунды. только целое число. +* ccpuid - вывод в консоль информации (пока скудно) о процессоре. пользы мало, но давно хотел с командой cpuid разобраться (в следующем семестре буду студентам курс читать, включил разбор команды в программу). -хёЄ№ ьэюую шфхщ. эхъюЄюЁ√х ыхуъю Ёхрышчє■Єё , эхъюЄюЁ√х ёыюцэхх. хёыш шэЄхЁхёэю: -1) фюсртшЄ№ яхЁхьхээє■ (юфэє!), т ъюЄюЁє■ сєфхЄ Ёхчєы№ЄрЄ т ЄхъёЄютющ ЇюЁьх (эх Єю ўЄю тючтЁр∙рхЄ ЇєэъЎш ) чряшё√трЄ№ё . ё эхщ ьюцэю сєфхЄ ЁрсюЄрЄ№ шч ъюьрэфэющ ёЄЁюъш -2) тэхфЁшЄ№ яЁюёЄє■ ёЄхъютє■ ьр°шэє фы  т√ўшёыхэшщ ё тх∙хёЄтхээ√ьш ўшёырьш +есть много идей. некоторые легко реализуются, некоторые сложнее. если интересно: +1) добавить переменную (одну!), в которую будет результат в текстовой форме (не то что возвращает функция) записываться. с ней можно будет работать из командной строки +2) внедрить простую стековую машину для вычислений с вещественными числами Shell 0.4.3 // 20.08.2010 // Albom ======================================= -* ╤ьхё№ тхЁёшщ 0.4.1 ш 0.4.2. ╥хяхЁ№ т рЁїштх тёх шёїюфэ√х Їрщы√, эхюсїюфшь√х фы  ъюьяшы Ўшш (Ёрэ№°х шёяюы№чютрышё№ юс·хъЄэшъш ё ьюшьш юс╕ЁЄърьш, шёїюфэшъш   ё °хыыюь эх т√ъырф√тры) +* Смесь версий 0.4.1 и 0.4.2. Теперь в архиве все исходные файлы, необходимые для компиляции (раньше использовались объектники с моими обёртками, исходники я с шеллом не выкладывал) Shell 0.4.2 // 28.08.2009 // diamond ======================================= -* ─юсртшы ъюЁЁхъЄэюх чртхЁ°хэшх ЁрсюЄ√ яЁш чръЁ√Єшш юъэр ъюэёюыш, ЁрсюЄрхЄ Єюы№ъю эрўшэр  ё яюёыхфэхщ эр фрээ√щ ьюьхэЄ тхЁёшхщ сшсышюЄхъш (ыхцшЄ эр svn, тъы■ўхэр т эюўэє■ ёсюЁъє). ╧хЁхъюьяшышЁютры т VS2008 ё LTCG, х∙╕ яю°рьрэшы ё юяЄшьшчрЎшхщ яю ЁрчьхЁє +* Добавил корректное завершение работы при закрытии окна консоли, работает только начиная с последней на данный момент версией библиотеки (лежит на svn, включена в ночную сборку). Перекомпилировал в VS2008 с LTCG, ещё пошаманил с оптимизацией по размеру Shell 0.4.1 // 16.03.2009 // Albom ======================================= -* тхЁёш  ё шёяЁртыхээ√ьш ю°шсърьш. -* ЁрсюЄрхЄ ъюьрэфр alias, фюсртыхэр ъюьрэфр clear. +* версия с исправленными ошибками. +* работает команда alias, добавлена команда clear. Shell 0.4 // 12.08.2008 // Albom ======================================= -1) ╨рсюЄрхЄ ёїхьр яёхтфюэшьют (фю 256 ъюьрэф) -- яЁюёьюЄЁ яю ъюьрэфх alias (схч ярЁрьхЄЁют) -- фюсртыхэшх яёхтфюэшьр ъюьрэф√ ё ъыртшрЄєЁ√ шыш т ёъЁшяЄх (т Єюь ўшёых ш .shell): alias эютр  ъюьрэфр = ёЄрЁр  ъюьрэфр -- ъюьрэф√ ЁхушёЄЁючртшёшь√х, яю¤Єюьє яюъыюээшърь ─╬╤ яЁшф╕Єё  тэхёЄш т .shell ёЄЁюъш Єръюую тшфр +1) Работает схема псевдонимов (до 256 команд) +- просмотр по команде alias (без параметров) +- добавление псевдонима команды с клавиатуры или в скрипте (в том числе и .shell): alias новая команда = старая команда +- команды регистрозависимые, поэтому поклонникам ДОС придётся внести в .shell строки такого вида alias dir = ls alias DIR = ls alias Dir = ls alias DIr = ls -ш Є.ф. -- тёЄЁюхээ√х ъюьрэф√ яхЁхэрчтрЄ№ эхтючьюцэю, эряЁшьхЁ, схёёь√ёыхээр ъюьрэфр: +и т.д. +- встроенные команды переназвать невозможно, например, бессмысленна команда: alias ls=somecommand -- яЁш юЄырфъх яюыєўры ёЄЁрээє■ шэЇюЁьрЎш■, эю Єръ ъръ є ьхэ  тё╕ ЁрсюЄрхЄ, Єю яюър шчьхэхэшщ тэюёшЄ№ эх яырэшЁє■ +- при отладке получал странную информацию, но так как у меня всё работает, то пока изменений вносить не планирую -2) ╥хяхЁ№ °хыы ьюцэю чряєёърЄ№ ё ярЁрьхЄЁюь (шч ёрьюую ёхс , эряЁшьхЁ) -- ёшэЄръёшё: -shell ъюьрэфр -- яЁшьхЁ: +2) Теперь шелл можно запускать с параметром (из самого себя, например) +- синтаксис: +shell команда +- пример: shell /sys/somescript -- яЁш ¤Єюь .shell эх чряєёърхЄё  +- при этом .shell не запускается -3) ╨хрышчютрэр ъюьрэфр more -- яЁюёьюЄЁ ЄхъёЄют√ї ш сшэрЁэ√ї Їрщыют (тЁюфх с√ чрфрўр яЁюёЄр , эю яЁш°ыюё№ яютючшЄ№ё  ё єяЁрты ■∙шьш ёшьтюырьш) -- юўхэ№ эх ЁхъюьхэфєхЄё  яЁюёьрЄЁштрЄ№ сюы№°шх Їрщы√ +3) Реализована команда more +- просмотр текстовых и бинарных файлов (вроде бы задача простая, но пришлось повозиться с управляющими символами) +- очень не рекомендуется просматривать большие файлы Shell 0.3 // 07.08.2008 // Albom ======================================= -1) ┬ючьюцэюёЄ№ чряєёър ёъЁшяЄют -* ърцфр  ёЄЁюър фюыцэр яЁхфёЄрты хЄ ёюсющ ъюьрэфє -* ёЄЁюъющ ёўшЄрхЄё  эрсюЁ ёшьтюыют, ъюЄюЁ√щ чрърэўштрхЄё  CR+LF (Windows) шыш LF(UNIX) шыш CR(Mac) -* хёыш ёЄЁюър эрўшэрхЄё  ё #, Єю тё  ёЄЁюър (Є.х. ъюььхэЄрЁшщ) шуэюЁшЁєхЄё  -* ёъЁшяЄ фюыцхэ эрўшЄрЄ№ё  ё #SHS -* яЁш чряєёъх °хыыр ртЄюьрЄшўхёъш чряєёърхЄё  ёъЁшяЄ .shell +1) Возможность запуска скриптов +* каждая строка должна представляет собой команду +* строкой считается набор символов, который заканчивается CR+LF (Windows) или LF(UNIX) или CR(Mac) +* если строка начинается с #, то вся строка (т.е. комментарий) игнорируется +* скрипт должен начитаться с #SHS +* при запуске шелла автоматически запускается скрипт .shell -2) ╚ёЄюЁш  шч 5 (ьюцэю шчьхэшЄ№ яЁш ъюьяшы Ўшш) ттхф╕ээ√ї ъюьрэф -* яхЁхьх∙хэшх яю шёЄюЁшш - UP/DOWN +2) История из 5 (можно изменить при компиляции) введённых команд +* перемещение по истории - UP/DOWN -3) ╩юьрэфр alias, ъюЄюЁр  яючтюы хЄ ттюфшЄ№ ёшэюэшь√ фы  ъюьрэф -* фю 256 (ьюцэю шчьхэшЄ№ яЁш ъюьяшы Ўшш) ёшэюэшьют -* яюър ЁрсюЄрхЄ Єюы№ъю фюсртыхэшх ш яЁюёьюЄЁ ёшэюэшьют, р юЄЁрсюЄър яюър эх Ёхрышчютрэр +3) Команда alias, которая позволяет вводить синонимы для команд +* до 256 (можно изменить при компиляции) синонимов +* пока работает только добавление и просмотр синонимов, а отработка пока не реализована Shell 0.2 // 04.08.2008 // Albom ======================================= -* фюсртшы эют√х ЇєэъЎшш -* эряшёры ёюсёЄтхээє■ яЁюЎхфєЁє ттюфр ъюьрэф√ +* добавил новые функции +* написал собственную процедуру ввода команды Shell 0.11 // 01.08.2008 // Albom ======================================= -* ─юсртшы ъюьрэф√ free ш reboot, тэ╕ё эхъюЄюЁ√х шчьхэхэш , шёяЁртшы эрщфхээ√х ю°шсъш +* Добавил команды free и reboot, внёс некоторые изменения, исправил найденные ошибки Shell 0.1 // 29.07.2008 // Albom ======================================= -* ╨хрышчютрэ√ (эх яюыэюёЄ№■) ъюьрэф√: about, cd, date, echo, exit, help, kill, ls, ps, pwd, ver -* ╧Ёш чряєёъх яЁюуЁрьь√ (хёыш эх єърчрэ яюыэ√щ яєЄ№) юэр ш∙хЄё  т ърЄрыюух /rd/1 ш Єхъє∙хь ърЄрыюух +* Реализованы (не полностью) команды: about, cd, date, echo, exit, help, kill, ls, ps, pwd, ver +* При запуске программы (если не указан полный путь) она ищется в каталоге /rd/1 и текущем каталоге Shell 0.02 // 27.07.2008 // Albom ======================================= -* ╨хрышчютры ъюьрэф√: - exit - т√їюф - ls (ё ярЁрьхЄЁюь ш схч) - т√тюф ёяшёър фшЁхъЄюЁшш - pwd - Єхъє∙шщ ърЄрыюу - ps - ёяшёюъ яЁюЎхёёют ш шї PID - kill - чртхЁ°шЄ№ яЁюЎхёё яю PID - help (ё ярЁрьхЄЁюь ш схч) - яюью∙№ +* Реализовал команды: + exit - выход + ls (с параметром и без) - вывод списка директории + pwd - текущий каталог + ps - список процессов и их PID + kill - завершить процесс по PID + help (с параметром и без) - помощь Shell 0.01 // 27.07.2008 // Albom ======================================= -* ╨х°шы эряшёрЄ№ ЇєэъЎшюэры№э√щ °хыы эр ╤ш ё шёяюы№чютрэшхь console.obj -* ╧юър ёфхыры ЇєэъЎш■ юЄфхыхэш  ъюьрэф√ ш ярЁрьхЄЁют, р Єръцх Ёхрышчютры ъюьрэф√ help (яюър схч ярЁрьхЄЁют), ver ш exit +* Решил написать функциональный шелл на Си с использованием console.obj +* Пока сделал функцию отделения команды и параметров, а также реализовал команды help (пока без параметров), ver и exit diff --git a/programs/system/shell/all.h b/programs/system/shell/all.h index 4683b78b9d..c371a37c7a 100644 --- a/programs/system/shell/all.h +++ b/programs/system/shell/all.h @@ -40,7 +40,6 @@ #include "cmd/cmd_sleep.c" #include "cmd/cmd_shutdown.c" #include "cmd/cmd_uptime.c" -#include "cmd/cmd_killall.c" #include "cmd/cmd_history.c" #include "cmd/cmd_cp.c" diff --git a/programs/system/shell/cmd/cmd_cd.c b/programs/system/shell/cmd/cmd_cd.c index 4eae740746..ddfef5ab0d 100644 --- a/programs/system/shell/cmd/cmd_cd.c +++ b/programs/system/shell/cmd/cmd_cd.c @@ -12,7 +12,7 @@ if (NULL == dir) #elif LANG_RUS printf(" cd <фшЁхъЄюЁш >\n\r"); #endif - return FALSE; + return TRUE; } if ( 0 == strcmp(dir, ".") ) diff --git a/programs/system/shell/cmd/cmd_cp.c b/programs/system/shell/cmd/cmd_cp.c index e6b259828c..7f755f554a 100644 --- a/programs/system/shell/cmd/cmd_cp.c +++ b/programs/system/shell/cmd/cmd_cp.c @@ -1,15 +1,4 @@ -void print_error(void) -{ - -#if LANG_ENG - printf(" Error!\n\r"); -#elif LANG_RUS - printf(" Ошибка!\n\r"); -#endif - -} - int cmd_cp(char param[]) { @@ -40,7 +29,7 @@ if (argc != 2) parameters_free(argc, argv); - return FALSE; + return TRUE; } filename_in = (char*) malloc(4096); @@ -80,12 +69,10 @@ k70_in.p21 = filename_in; result = kol_file_70(&k70_in); // получаем информацию о файле if ( 0 != result ) { - print_error(); - parameters_free(argc, argv); free(filename_in); free(filename_out); - return FALSE; + return TRUE; } filesize = bdvk.p32[0]; // получаем размер файла (ограничение - 4 Гбайта) @@ -115,8 +102,6 @@ for ( i = 0; i < n; i++) result = kol_file_70(&k70_in); // чтение if (result != 0) { - print_error(); - parameters_free(argc, argv); free(filename_in); free(filename_out); @@ -128,8 +113,6 @@ for ( i = 0; i < n; i++) result = kol_file_70(&k70_out); // запись if (result != 0) { - print_error(); - parameters_free(argc, argv); free(filename_in); free(filename_out); @@ -152,8 +135,6 @@ if ( (filesize%4096) != 0 ) // result = kol_file_70(&k70_in); // чтение if (result != 0) { - print_error(); - parameters_free(argc, argv); free(filename_in); free(filename_out); @@ -165,8 +146,6 @@ if ( (filesize%4096) != 0 ) // result = kol_file_70(&k70_out); // запись if (result != 0) { - print_error(); - parameters_free(argc, argv); free(filename_in); free(filename_out); @@ -177,7 +156,6 @@ if ( (filesize%4096) != 0 ) // } - parameters_free(argc, argv); free(filename_in); free(filename_out); diff --git a/programs/system/shell/cmd/cmd_date.c b/programs/system/shell/cmd/cmd_date.c index 3e185127a9..58fd6a60ba 100644 --- a/programs/system/shell/cmd/cmd_date.c +++ b/programs/system/shell/cmd/cmd_date.c @@ -29,3 +29,4 @@ time = kol_system_time_get(); return TRUE; } + diff --git a/programs/system/shell/cmd/cmd_echo.c b/programs/system/shell/cmd/cmd_echo.c index c81d496911..ec102ad7d1 100644 --- a/programs/system/shell/cmd/cmd_echo.c +++ b/programs/system/shell/cmd/cmd_echo.c @@ -4,3 +4,4 @@ int cmd_echo(char text[]) printf("%s\n\r", text); return TRUE; } + diff --git a/programs/system/shell/cmd/cmd_exit.c b/programs/system/shell/cmd/cmd_exit.c index 4c75d6feb2..73cadcde2f 100644 --- a/programs/system/shell/cmd/cmd_exit.c +++ b/programs/system/shell/cmd/cmd_exit.c @@ -6,3 +6,4 @@ _exit(1); kol_exit(); return TRUE; } + diff --git a/programs/system/shell/cmd/cmd_free.c b/programs/system/shell/cmd/cmd_free.c index 3f3d1434c3..b6c40ae11d 100644 --- a/programs/system/shell/cmd/cmd_free.c +++ b/programs/system/shell/cmd/cmd_free.c @@ -16,3 +16,4 @@ used = total - free; return TRUE; } + diff --git a/programs/system/shell/cmd/cmd_help.c b/programs/system/shell/cmd/cmd_help.c index 1b3c6a0ed5..73b2af5c77 100644 --- a/programs/system/shell/cmd/cmd_help.c +++ b/programs/system/shell/cmd/cmd_help.c @@ -38,3 +38,4 @@ else return FALSE; } + diff --git a/programs/system/shell/cmd/cmd_history.c b/programs/system/shell/cmd/cmd_history.c index 25c441a334..5470b5b9ba 100644 --- a/programs/system/shell/cmd/cmd_history.c +++ b/programs/system/shell/cmd/cmd_history.c @@ -11,3 +11,4 @@ for (i = 0; i < CMD_HISTORY_NUM_REAL; i++) return TRUE; } + diff --git a/programs/system/shell/cmd/cmd_kill.c b/programs/system/shell/cmd/cmd_kill.c index 50240859ab..2bebc3f844 100644 --- a/programs/system/shell/cmd/cmd_kill.c +++ b/programs/system/shell/cmd/cmd_kill.c @@ -1,22 +1,32 @@ -int cmd_kill(char process[]) +int cmd_kill(char param[]) { -unsigned proc; +unsigned process; int result; +int i; -if (NULL == process) +if ( strlen(param) == 0 ) { printf(" kill \n\r"); - return FALSE; + return TRUE; } + +if (!strcmp(param, "all")) + { + for (i = 2;i<256;i++) + { + kol_kill_process(i); + } + return TRUE; + } else { - proc = _atoi(process); - if ( 0 != proc ) + process = _atoi(param); + if ( 0 != process ) { - result = kol_process_kill_pid(proc); + result = kol_process_kill_pid(process); if (result < 0) return FALSE; else @@ -25,3 +35,4 @@ else } } + diff --git a/programs/system/shell/cmd/cmd_killall.c b/programs/system/shell/cmd/cmd_killall.c deleted file mode 100644 index e5154f624f..0000000000 --- a/programs/system/shell/cmd/cmd_killall.c +++ /dev/null @@ -1,15 +0,0 @@ - -int cmd_killall(char process_name[]) -{ - -unsigned i; -if (!strlen(process_name)) - { - for (i = 2;i<256;i++) - { - kol_kill_process(i); - } - return TRUE; - } -return TRUE; -} diff --git a/programs/system/shell/cmd/cmd_ls.c b/programs/system/shell/cmd/cmd_ls.c index 8a8a42ffcb..f412a13762 100644 --- a/programs/system/shell/cmd/cmd_ls.c +++ b/programs/system/shell/cmd/cmd_ls.c @@ -47,3 +47,4 @@ for (i = 0; i < num_of_file; i++) free((void*)k70.p16); return TRUE; } + diff --git a/programs/system/shell/cmd/cmd_mkdir.c b/programs/system/shell/cmd/cmd_mkdir.c index d9ff2a1c46..0fcd0753a6 100644 --- a/programs/system/shell/cmd/cmd_mkdir.c +++ b/programs/system/shell/cmd/cmd_mkdir.c @@ -13,7 +13,7 @@ if (NULL == dir) #elif LANG_RUS printf(" mkdir <директория>\n\r"); #endif - return FALSE; + return TRUE; } @@ -46,3 +46,4 @@ else return FALSE; } + diff --git a/programs/system/shell/cmd/cmd_more.c b/programs/system/shell/cmd/cmd_more.c index 6b38e7c220..3e65f051c8 100644 --- a/programs/system/shell/cmd/cmd_more.c +++ b/programs/system/shell/cmd/cmd_more.c @@ -16,7 +16,7 @@ if (strlen(file)<1) #elif LANG_RUS printf (" more <имя файла>\n\r"); #endif - return FALSE; + return TRUE; } if ( '/' == file[0]) @@ -93,3 +93,4 @@ con_set_flags(flags); printf ("\n\r"); return TRUE; } + diff --git a/programs/system/shell/cmd/cmd_ps.c b/programs/system/shell/cmd/cmd_ps.c index 18fbf9af5b..04041e1ba3 100644 --- a/programs/system/shell/cmd/cmd_ps.c +++ b/programs/system/shell/cmd/cmd_ps.c @@ -26,3 +26,4 @@ free(buf1k); return TRUE; } + diff --git a/programs/system/shell/cmd/cmd_pwd.c b/programs/system/shell/cmd/cmd_pwd.c index 8b21fd3119..ffab29969b 100644 --- a/programs/system/shell/cmd/cmd_pwd.c +++ b/programs/system/shell/cmd/cmd_pwd.c @@ -4,3 +4,4 @@ int cmd_pwd(char param[]) printf (" %s%c\n\r", cur_dir, cur_dir[strlen(cur_dir)-1]=='/'?' ':'/' ); return TRUE; } + diff --git a/programs/system/shell/cmd/cmd_reboot.c b/programs/system/shell/cmd/cmd_reboot.c index f4bcd98db1..4b3653e241 100644 --- a/programs/system/shell/cmd/cmd_reboot.c +++ b/programs/system/shell/cmd/cmd_reboot.c @@ -7,3 +7,4 @@ else kol_system_end(3); return TRUE; } + diff --git a/programs/system/shell/cmd/cmd_rm.c b/programs/system/shell/cmd/cmd_rm.c index 2aff1c73f8..c2f48dcfc0 100644 --- a/programs/system/shell/cmd/cmd_rm.c +++ b/programs/system/shell/cmd/cmd_rm.c @@ -13,7 +13,7 @@ if (NULL == file) #elif LANG_RUS printf (" rm <имя файла>\n\r"); #endif - return FALSE; + return TRUE; } if ( '/' == file[0]) @@ -52,3 +52,4 @@ else return FALSE; } + diff --git a/programs/system/shell/cmd/cmd_rmdir.c b/programs/system/shell/cmd/cmd_rmdir.c index a31911cf4e..d1b82ad783 100644 --- a/programs/system/shell/cmd/cmd_rmdir.c +++ b/programs/system/shell/cmd/cmd_rmdir.c @@ -13,7 +13,7 @@ if (NULL == dir) #elif LANG_ENG printf(" rmdir <директория>\n\r"); #endif - return FALSE; + return TRUE; } if ( ( 0 == strcmp(dir, ".") ) || ( 0 == strcmp(dir, "..") ) || ( 0 == strcmp(cur_dir, "/")) ) @@ -48,3 +48,4 @@ else return FALSE; } + diff --git a/programs/system/shell/cmd/cmd_shutdown.c b/programs/system/shell/cmd/cmd_shutdown.c index 06ef8d1100..f1b6b31f1e 100644 --- a/programs/system/shell/cmd/cmd_shutdown.c +++ b/programs/system/shell/cmd/cmd_shutdown.c @@ -4,3 +4,4 @@ int cmd_shutdown(char param[]) kol_system_end(2); return TRUE; } + diff --git a/programs/system/shell/cmd/cmd_sleep.c b/programs/system/shell/cmd/cmd_sleep.c index 36ccf28bb8..c3f2918d78 100644 --- a/programs/system/shell/cmd/cmd_sleep.c +++ b/programs/system/shell/cmd/cmd_sleep.c @@ -4,9 +4,17 @@ int cmd_sleep(char param[]) int delay; if (!strlen(param)) - return FALSE; + { + #if LANG_ENG + printf(" sleep