From f14c7a99a76f816d80b8859e5dfb41d09c8864b8 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Wed, 27 May 2020 20:51:12 +0000 Subject: [PATCH] Backy: new version by JohnXenox git-svn-id: svn://kolibrios.org@7994 a494cfbc-eb01-0410-851d-a64ba20cac60 --- data/Tupfile.lua | 6 +- programs/develop/backy/Backy | Bin 3511 -> 2616 bytes programs/develop/backy/Backy.c | 100 ++++++++++++------ programs/develop/backy/Backy.png | Bin 6523 -> 6525 bytes programs/develop/backy/Backy_lang.h | 3 + programs/develop/backy/Backy_lib.h | 152 +++++++++++++++++++++++++++ programs/develop/backy/Backy_ru | Bin 0 -> 2670 bytes programs/develop/backy/Backy_ru.png | Bin 0 -> 6933 bytes programs/develop/backy/History.txt | 6 +- programs/develop/backy/Readme-en.txt | 2 +- programs/develop/backy/Readme-ru.txt | 2 +- programs/system/notify3/build.bat | 2 + 12 files changed, 236 insertions(+), 37 deletions(-) create mode 100644 programs/develop/backy/Backy_lang.h create mode 100644 programs/develop/backy/Backy_lib.h create mode 100644 programs/develop/backy/Backy_ru create mode 100644 programs/develop/backy/Backy_ru.png create mode 100644 programs/system/notify3/build.bat diff --git a/data/Tupfile.lua b/data/Tupfile.lua index f9cf7b3048..947a5c8f23 100644 --- a/data/Tupfile.lua +++ b/data/Tupfile.lua @@ -27,7 +27,6 @@ img_files = { {"UNIMG", PROGS .. "/fs/unimg/unimg"}, {"VMODE", "common/vmode"}, {"3D/HOUSE.3DS", "common/3d/house.3ds"}, - {"DEVELOP/BACKY", PROGS .. "/develop/backy/Backy"}, {"DEVELOP/T_EDIT.INI", PROGS .. "/other/t_edit/t_edit.ini"}, {"File Managers/ICONS.INI", "common/File Managers/icons.ini"}, {"File Managers/KFM.INI", "common/File Managers/kfm.ini"}, @@ -74,6 +73,7 @@ img_files = { -- For russian build, add russian-only files. if build_type == "rus" then tup.append_table(img_files, { {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/rus/example.asm"}, + {"DEVELOP/BACKY", PROGS .. "/develop/backy/Backy_ru"}, {"GAMES/BASEKURS.KLA", build_type .. "/games/basekurs.kla"}, {"GAMES/PADENIE", build_type .. "/games/padenie"}, {"File Managers/KFAR.INI", build_type .. "/File Managers/kfar.ini"}, @@ -84,6 +84,7 @@ if build_type == "rus" then tup.append_table(img_files, { {"SETTINGS/SYSPANEL.INI", "rus/settings/syspanel.ini"}, }) elseif build_type == "eng" then tup.append_table(img_files, { {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"}, + {"DEVELOP/BACKY", PROGS .. "/develop/backy/Backy"}, {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"}, {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"}, {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"}, @@ -92,6 +93,7 @@ if build_type == "rus" then tup.append_table(img_files, { {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"}, }) elseif build_type == "sp" then tup.append_table(img_files, { {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"}, + {"DEVELOP/BACKY", PROGS .. "/develop/backy/Backy"}, {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"}, {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"}, {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"}, @@ -100,6 +102,7 @@ if build_type == "rus" then tup.append_table(img_files, { {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"}, }) elseif build_type == "it" then tup.append_table(img_files, { {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"}, + {"DEVELOP/BACKY", PROGS .. "/develop/backy/Backy"}, {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"}, {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"}, {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"}, @@ -108,6 +111,7 @@ if build_type == "rus" then tup.append_table(img_files, { {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"}, }) else tup.append_table(img_files, { {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"}, + {"DEVELOP/BACKY", PROGS .. "/develop/backy/Backy"}, {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"}, {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"}, {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"}, diff --git a/programs/develop/backy/Backy b/programs/develop/backy/Backy index 8df17a41851645f10effe7335003d2930717aea5..594e0732036e69dc57759470a456172cd3197e74 100644 GIT binary patch literal 2616 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 a)6>CIpVzV&n8b3sou@5zTmW+b0001XV-4T{ literal 3511 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 diff --git a/programs/develop/backy/Backy.c b/programs/develop/backy/Backy.c index 0a02ae5e55..a1b2f6a92b 100644 --- a/programs/develop/backy/Backy.c +++ b/programs/develop/backy/Backy.c @@ -1,21 +1,22 @@ /* - * Author: JohnXenox aka Aleksandr Igorevich. - * * Programme name: Backy * Description: The programme for backing up a file. * + * Backy.c + * Author: JohnXenox aka Aleksandr Igorevich. + * * Works from command line, only! */ -#define CREATION_DATE "2020.05.17" +#define CREATION_DATE "2020.05.27" #include -//#include #include #include -#include "Backy-lib.h" +#include "Backy_lang.h" +#include "Backy_lib.h" int date = 0; int time = 0; @@ -41,10 +42,14 @@ char ext[] = ".bak"; char flag = 0; +char state; int main(int argc, char** argv) { + if (con_init_console_dll()) return 1; // init fail. + + con_set_title("Backy"); // ============================================================ // // preprocessing arguments from the command line. ============= // @@ -60,7 +65,7 @@ int main(int argc, char** argv) // ============================================================ // -// preprocess the command line arguments. ===================== // +// process the command line arguments. ======================== // if (argc > 1) { @@ -88,7 +93,7 @@ int main(int argc, char** argv) } } - // if inut path is found, then copy it into the array "path_in". + // if input path is found, then copy it into the array "path_in". if (*argv[i] == '/') { flag = 2; @@ -146,29 +151,47 @@ int main(int argc, char** argv) } else { - //con_init_console_dll_param(-1, 23, -1, 23, "Backy"); - if (con_init_console_dll()) return 1; // init fail + con_set_title("Useful info!"); - printf("Useful info!"); + #if defined (lang_en) - printf("\n Name: Backy"); - printf("\n Date: %s", CREATION_DATE); - printf("\n Description: The programme for backing up a file.\n"); + con_printf("\n Name: Backy"); + con_printf("\n Date: %s", CREATION_DATE); + con_printf("\n Description: The programme for backing up a file.\n"); - printf("\n Author: JohnXenox\n"); + con_printf("\n Author: JohnXenox\n"); - printf("\n Usage: backy <-o path2>\n"); - printf(" path1 - path to a file to be backuped.\n"); - printf(" -o path2 - path to the output directory without the name of a file.\n\n"); + con_printf("\n Usage: backy <-o path2>\n"); + con_printf(" path1 - path to a file to be backuped.\n"); + con_printf(" -o path2 - path to the output directory without the name of a file.\n\n"); - printf(" Examples:\n"); - printf(" backy test.c\n"); - printf(" backy test.c -o /tmp0/1/\n"); - printf(" backy /hd0/1/test.c\n"); - printf(" backy /hd0/1/test.c -o /tmp0/1/\n"); + con_printf(" Examples:\n"); + con_printf(" backy test.c\n"); + con_printf(" backy test.c -o /tmp0/1/\n"); + con_printf(" backy /hd0/1/test.c\n"); + con_printf(" backy /hd0/1/test.c -o /tmp0/1/\n"); - exit(0); - return 1; + #elif defined (lang_ru) + + con_printf("\n Имя: Backy"); + con_printf("\n Дата: %s", CREATION_DATE); + con_printf("\n Описание: Программа для создания резервной копии файла.\n"); + + con_printf("\n Автор: JohnXenox\n"); + + con_printf("\n Использование: backy <-o path2>\n"); + con_printf(" path1 - путь к файлу, который надо скопировать.\n"); + con_printf(" -o path2 - путь к директории, в которую будет скопирована резервная копия файла.\n\n"); + + con_printf(" Примеры:\n"); + con_printf(" backy test.c\n"); + con_printf(" backy test.c -o /tmp0/1/\n"); + con_printf(" backy /hd0/1/test.c\n"); + con_printf(" backy /hd0/1/test.c -o /tmp0/1/\n"); + + #endif + + return 0; } //printf("Path_in: %s\n", path_in); @@ -293,29 +316,28 @@ int main(int argc, char** argv) // ============================================================ // // adding the name of the input file to the output path. ====== // - // searching the end of the path string. int i = 0; int y = 0; - // searching for zero terminator in the input path. + // searching for a zero terminator in the input path. while (path_in[i] != 0) { i++; } - // searching for slash in the input path. + // searching for a slash in the input path. while (path_in[i] != '/') { i--; } - // searching for zero terminator in the output path. + // searching for a zero terminator in the output path. while (path_out[y] != 0) { y++; } - // searching for slash in the output path. + // searching for a slash in the output path. if (path_out[y - 1] == '/') { y--; @@ -329,7 +351,7 @@ int main(int argc, char** argv) i = 0; - // searching for zero terminator in the output path. + // searching for a zero terminator in the output path. while (path_out[i] != 0) { i++; @@ -343,7 +365,7 @@ int main(int argc, char** argv) i += strlen(full_date); - // adding the extension to path. + // adding the extension to a path. strncpy(&path_out[i], ext, 4); //printf("Path_in: %s\n", path_in); @@ -351,9 +373,21 @@ int main(int argc, char** argv) data = openFile(&length, path_in); - saveFile(length, data, 0, path_out); + if(data == 0) + { + #if defined (lang_en) + con_printf("\nThe file isn't found!\n"); - return 0; + #elif defined (lang_ru) + + con_printf("\nФайл не найден!\n"); + + #endif + + return 13; + } + + return checkStateOnSave(saveFile(length, data, 0, path_out)); } diff --git a/programs/develop/backy/Backy.png b/programs/develop/backy/Backy.png index f9015d3400122b40413ccf00865877dbb4b28caf..08ee80988b2f8a22973bd7cfe996f63bb8dbbdef 100644 GIT binary patch delta 4983 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 delta 4889 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 literal 0 HcmV?d00001 diff --git a/programs/develop/backy/History.txt b/programs/develop/backy/History.txt index 568c3d8aa0..d566795bfc 100644 --- a/programs/develop/backy/History.txt +++ b/programs/develop/backy/History.txt @@ -1,9 +1,13 @@ History: +Backy 2020.05.27 + Added warnings about errors. + Added translation on Russian language. + Backy 2020.05.17 Code optimization. -Backy 2020.05.05 +Backy 2020.05.07 Changed an output file name. Backy 2020.04.27 diff --git a/programs/develop/backy/Readme-en.txt b/programs/develop/backy/Readme-en.txt index 00fddc5944..622a94b4c9 100644 --- a/programs/develop/backy/Readme-en.txt +++ b/programs/develop/backy/Readme-en.txt @@ -1,4 +1,4 @@ -Backy (release date 2020.05.17) +Backy (release date 2020.05.27) Backy is a programme for backing up a file. diff --git a/programs/develop/backy/Readme-ru.txt b/programs/develop/backy/Readme-ru.txt index f40ab9433c..be87a1aaa1 100644 --- a/programs/develop/backy/Readme-ru.txt +++ b/programs/develop/backy/Readme-ru.txt @@ -1,4 +1,4 @@ -Backy (╨┤╨░╤В╨░ ╨▓╤Л╨┐╤Г╤Б╨║╨░ 2020.05.17) +Backy (╨┤╨░╤В╨░ ╨▓╤Л╨┐╤Г╤Б╨║╨░ 2020.05.27) Backy - ╤Н╤В╨╛ ╨┐╤А╨╛╨│╤А╨░╨╝╨╝╨░ ╨┤╨╗╤П ╤Б╨╛╨╖╨┤╨░╨╜╨╕╤П ╤А╨╡╨╖╨╡╤А╨▓╨╜╨╛╨╣ ╨║╨╛╨┐╨╕╨╕ ╤Д╨░╨╣╨╗╨░. diff --git a/programs/system/notify3/build.bat b/programs/system/notify3/build.bat new file mode 100644 index 0000000000..8e7d66a9b6 --- /dev/null +++ b/programs/system/notify3/build.bat @@ -0,0 +1,2 @@ +@fasm notify.asm @notify +@pause \ No newline at end of file