From d093f70049f0514ce29f53fb2a8a9b945d2aa468 Mon Sep 17 00:00:00 2001 From: turbocat Date: Fri, 30 Apr 2021 22:28:05 +0000 Subject: [PATCH] TinyHashView: - Now uses (kolibri-libc) libc.obj. - Resize 12kb -> 6kb git-svn-id: svn://kolibrios.org@8707 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/other/TinyHashView/BUILD_KEX.SH | 2 - programs/other/TinyHashView/Makefile | 9 ++- programs/other/TinyHashView/Tupfile.lua | 6 +- programs/other/TinyHashView/thashview.c | 92 ++++++++++++------------ 4 files changed, 55 insertions(+), 54 deletions(-) delete mode 100644 programs/other/TinyHashView/BUILD_KEX.SH diff --git a/programs/other/TinyHashView/BUILD_KEX.SH b/programs/other/TinyHashView/BUILD_KEX.SH deleted file mode 100644 index b8d7ff2217..0000000000 --- a/programs/other/TinyHashView/BUILD_KEX.SH +++ /dev/null @@ -1,2 +0,0 @@ -#SHS -/kolibrios/develop/tcc/tcc thashview.c -o thashview -lck -lcryptal -ldialog -lbox diff --git a/programs/other/TinyHashView/Makefile b/programs/other/TinyHashView/Makefile index 1ae6fe18c7..a0a1675e35 100755 --- a/programs/other/TinyHashView/Makefile +++ b/programs/other/TinyHashView/Makefile @@ -1,4 +1,5 @@ KTCC_DIR=../../develop/ktcc/trunk +KLIBC_DIR = ../../develop/libraries/kolibri-libc NAME=thashview @@ -6,11 +7,13 @@ KTCC=$(KTCC_DIR)/bin/kos32-tcc KPACK=kpack SRC=thashview.c -CFLAGS=-I $(KTCC_DIR)/libc/include -LIBS = -lck -lcryptal -ldialog -lbox + +CFLAGS= -I$(KLIBC_DIR)/include -I$(KTCC_DIR)/libc/include +LFLAGS= -nobss -nostdlib -L $(KLIBC_DIR)/lib $(KLIBC_DIR)/lib/crt0.o +LIBS = -lbox -ldialog -lcryptal -lc.obj all: - $(KTCC) $(CFLAGS) $(SRC) $(LIBS) -o $(NAME) + $(KTCC) $(CFLAGS) $(SRC) $(LFLAGS) $(LIBS) -o $(NAME) $(KPACK) $(NAME) clean: diff --git a/programs/other/TinyHashView/Tupfile.lua b/programs/other/TinyHashView/Tupfile.lua index bcfa26d985..a59488d617 100644 --- a/programs/other/TinyHashView/Tupfile.lua +++ b/programs/other/TinyHashView/Tupfile.lua @@ -2,9 +2,9 @@ if tup.getconfig("NO_TCC") ~= "" then return end TCC="kos32-tcc" -CFLAGS = "-I../../develop/ktcc/trunk/libc/include" -LDFLAGS = "-nostdlib ../../develop/ktcc/trunk/bin/lib/start.o -L../../develop/ktcc/trunk/bin/lib" -LIBS = "-lck -lcryptal -ldialog -lbox" +CFLAGS = "-I../../develop/libraries/kolibri-libc/include -I../../develop/ktcc/trunk/libc/include" +LDFLAGS = "-nostdlib ../../develop/libraries/kolibri-libc/lib/crt0.o -L../../develop/libraries/kolibri-libc/lib -L../../develop/ktcc/trunk/bin/lib" +LIBS = "-lcryptal -ldialog -lbox -lc.obj" COMMAND=string.format("%s %s %s %s %s ", TCC, CFLAGS, "%f -o %o", LDFLAGS, LIBS) tup.rule("thashview.c", COMMAND .. tup.getconfig("KPACK_CMD"), "thashview") diff --git a/programs/other/TinyHashView/thashview.c b/programs/other/TinyHashView/thashview.c index 26fa4c5c9d..ef2961bf8f 100644 --- a/programs/other/TinyHashView/thashview.c +++ b/programs/other/TinyHashView/thashview.c @@ -1,9 +1,9 @@ /* Copyright (C) 2019-2021 Logaev Maxim (turbocat2001), GPLv2 */ +#include #include #include #include -#include #include #include #include @@ -17,8 +17,9 @@ #define WINDOW_W 665 #define VERSION "%s - thashview 2.6.1" #define EDIT_TEXT_SIZE 0x10000000 +#define DATA(type, addr, offset) *((type*)((uint8_t*)addr+offset)) -struct kolibri_system_colors sys_color_table; +ksys_colors_table_t sys_color_table; char hash_str_md5[MAX_HASH_LEN]= "Click the 'MD5:' button to show the md5-checksum!"; //Вывод MD5 char hash_str_sha1[MAX_HASH_LEN]= "Click the 'SHA1:' button to show the sha1-checksum!"; //Вывод SHA1 @@ -54,7 +55,7 @@ enum BUTTONS // void notify_show(char *text) { - start_app("/sys/@notify", text); + _ksys_exec("/sys/@notify", text); } void* safe_malloc(size_t size) // Безопасный malloc. Показывает уведомление об ошибке и закрывает программу если память не была выделена @@ -160,51 +161,51 @@ void sprint_hash(BYTE *hash, char* hash_str, int hash_size) // void redraw_window() //Рисуем окно { sprintf(title,VERSION, filename); // Устанавливаем заголовок окна - pos_t win_pos = get_mouse_pos(0); // Получаем координаты курсора - begin_draw(); //Начинаем рисование интерфейса ) - sys_create_window(win_pos.x, win_pos.y, WINDOW_W, 150, title, sys_color_table.work_area, 0x14); // Создаём окно. - + ksys_pos_t win_pos = _ksys_get_mouse_pos(KSYS_MOUSE_SCREEN_POS); // Получаем координаты курсора + _ksys_start_draw(); //Начинаем рисование интерфейса ) + _ksys_create_window(win_pos.x, win_pos.y, WINDOW_W, 150, title, sys_color_table.work_area, 0x14); // Создаём окно. edit_box_draw(&hash_edit_box); // Рисуем edit_box - define_button(X_W(10,60), Y_H(30,20), BTN_MD5, GREEN); // Определяем кнопку md5 - define_button(X_W(10,60), Y_H(60,20), BTN_SHA1, GREEN);// Определяем кнопку sha1 - define_button(X_W(10,60), Y_H(90,20), BTN_SHA256, GREEN);// Определяем кнопку sha256 + _ksys_define_button(10, 30, 60, 20, BTN_MD5, GREEN); // Определяем кнопку md5 + _ksys_define_button(10, 60, 60, 20, BTN_SHA1, GREEN);// Определяем кнопку sha1 + _ksys_define_button(10, 90, 60, 20, BTN_SHA256, GREEN);// Определяем кнопку sha256 - draw_text_sys("MD5:", 15, 34, 0, 0x90000000 | sys_color_table.work_button_text); // Пищем текст на кнопках - draw_text_sys("SHA1:", 15, 64, 0, 0x90000000 | sys_color_table.work_button_text); - draw_text_sys("SHA256:", 15,94, 0, 0x90000000 | sys_color_table.work_button_text); + _ksys_draw_text("MD5:", 15, 34, 0, 0x90000000 | sys_color_table.work_button_text); // Пищем текст на кнопках + _ksys_draw_text("SHA1:", 15, 64, 0, 0x90000000 | sys_color_table.work_button_text); + _ksys_draw_text("SHA256:", 15,94, 0, 0x90000000 | sys_color_table.work_button_text); - draw_text_sys(hash_str_md5, 80, 34, 0, 0x90000000 | sys_color_table.work_text); // Выводим контрольные суммы в окно - draw_text_sys(hash_str_sha1, 80, 64, 0, 0x90000000 | sys_color_table.work_text); - draw_text_sys(hash_str_sha256, 80, 94, 0, 0x90000000| sys_color_table.work_text); + _ksys_draw_text(hash_str_md5, 80, 34, 0, 0x90000000 | sys_color_table.work_text); // Выводим контрольные суммы в окно + _ksys_draw_text(hash_str_sha1, 80, 64, 0, 0x90000000 | sys_color_table.work_text); + _ksys_draw_text(hash_str_sha256, 80, 94, 0, 0x90000000| sys_color_table.work_text); - define_button(X_W(610,42), Y_H(30, 20), BTN_COPY_MD5, sys_color_table.work_button); // Определяем кнопки для копирования - define_button(X_W(610,42), Y_H(60, 20), BTN_COPY_SHA1, sys_color_table.work_button); - define_button(X_W(610,42), Y_H(90, 20), BTN_COPY_SHA256, sys_color_table.work_button); + + _ksys_define_button(610, 30, 42, 20, BTN_COPY_MD5, sys_color_table.work_button); // Определяем кнопки для копирования + _ksys_define_button(610, 60, 42, 20, BTN_COPY_MD5, sys_color_table.work_button); + _ksys_define_button(610, 90, 42, 20, BTN_COPY_MD5, sys_color_table.work_button); - draw_text_sys("Copy", 615, 34, 0, 0x90000000 | sys_color_table.work_button_text); // Пишем copy на всех кнопках для копирования - draw_text_sys("Copy", 615, 64, 0, 0x90000000 | sys_color_table.work_button_text); - draw_text_sys("Copy", 615, 94, 0, 0x90000000 | sys_color_table.work_button_text); + _ksys_draw_text("Copy", 615, 34, 0, 0x90000000 | sys_color_table.work_button_text); // Пишем copy на всех кнопках для копирования + _ksys_draw_text("Copy", 615, 64, 0, 0x90000000 | sys_color_table.work_button_text); + _ksys_draw_text("Copy", 615, 94, 0, 0x90000000 | sys_color_table.work_button_text); - define_button(X_W(592,60), Y_H(120,20), BTN_CMP, GREEN); // Определяем кнопку для сравнения контольных сумм - draw_text_sys("Compare", 595, 124 , 0,0x90000000 | sys_color_table.work_button_text); // Пишем текс на кнопке. - define_button(X_W(540, 45), Y_H(120,20), BTN_PASTE, sys_color_table.work_button); //Кнопка для вставки (неработает) - draw_text_sys("Paste", 543, 124 , 0,0x90000000 | sys_color_table.work_button_text); // Текст paste на кнопке - end_draw(); + _ksys_define_button(592, 120, 60, 20, BTN_CMP, GREEN); // Определяем кнопку для сравнения контольных сумм + _ksys_draw_text("Compare", 595, 124 , 0,0x90000000 | sys_color_table.work_button_text); // Пишем текс на кнопке. + _ksys_define_button(540, 120, 45, 20, BTN_PASTE, sys_color_table.work_button); //Кнопка для вставки (неработает) + _ksys_draw_text("Paste", 543, 124 , 0,0x90000000 | sys_color_table.work_button_text); // Текст paste на кнопке + _ksys_end_draw(); } void paste_to_edit_buffer() // Вставить из буффера обмена { char *temp_buff=NULL; - if(kol_clip_num()>0){ - temp_buff=kol_clip_get(kol_clip_num()-1); + if(_ksys_clip_num()>0){ + temp_buff=_ksys_clip_get(_ksys_clip_num()-1); memset(edit_box_buff,0,MAX_HASH_LEN); - if(DATA(int, temp_buff,0)>0 && DATA(int,temp_buff,4)==CLIP_TEXT && DATA(int,temp_buff,8)==CLIP_CP866){ + if(DATA(int, temp_buff,0)>0 && DATA(int,temp_buff,4)==KSYS_CLIP_TEXT && DATA(int,temp_buff,8)==KSYS_CLIP_CP866){ strncpy(edit_box_buff,temp_buff+12, MAX_HASH_LEN-1); edit_box_set_text(&hash_edit_box,edit_box_buff); notify_show("'Pasted from clipboard!' -I"); hash_edit_box.text_color = BLACK; - user_free(temp_buff); + free(temp_buff); } } } @@ -218,10 +219,10 @@ void copy_to_clipboard(char *text) // { char *temp_buffer=safe_malloc(MAX_HASH_LEN+12); // Выделяем память для времнного буфера memset(temp_buffer, 0, MAX_HASH_LEN); // Зануляем буфер - DATA(char,temp_buffer,4)=CLIP_TEXT; // Устанавливаем TEXT для буфера(Смещение 4 байта) - DATA(char,temp_buffer,8)=CLIP_CP866; // Устанавливаем кодировку CP866(Смещение 8 байт) + DATA(char,temp_buffer,4)=KSYS_CLIP_TEXT; // Устанавливаем TEXT для буфера(Смещение 4 байта) + DATA(char,temp_buffer,8)=KSYS_CLIP_CP866; // Устанавливаем кодировку CP866(Смещение 8 байт) strncpy(temp_buffer+12, text, MAX_HASH_LEN-1); // Копируем данные из text во временный буфер(Смещение 12 байт) - kol_clip_set(strlen(text)+12, temp_buffer); // Выполняем системный вызов и перемещаем данные из временного буфера в буфер обмена + _ksys_clip_set(strlen(text)+12, temp_buffer); // Выполняем системный вызов и перемещаем данные из временного буфера в буфер обмена notify_show("'Copied to clipboard!' -I"); free(temp_buffer); // Освобожаем временный буфер. } @@ -296,36 +297,35 @@ int main(int argc, char** argv) notify_show("'File not found!' -E"); exit(0); } - - if(GetScreenSize()/65536