/programs/cmm/eolite/Eolite.c |
---|
18,6 → 18,7 |
//obj |
#include "..\lib\obj\libini.h" |
#include "..\lib\obj\box_lib.h" |
#include "..\lib\obj\fs.h" |
byte CMD_ENABLE_SAVE_IMG = false; |
124,6 → 125,9 |
load_dll(boxlib, #box_lib_init,0); |
load_dll(libini, #lib_init,1); |
lib_init_fs(); |
eolite_ini_path = abspath("Eolite.ini"); |
fd_path_eolite_ini_path = "/fd/1/File Managers/Eolite.ini"; |
874,7 → 878,7 |
int del_error; |
int Del_File2(dword way, sh_progr) |
{ |
dword dirbuf, fcount, i, filename; |
/*dword dirbuf, fcount, i, filename; |
int error; |
char del_from[4096]; |
if (isdir(way)) |
896,7 → 900,8 |
} |
} |
} |
if (error = DeleteFile(way)) del_error = error; |
if (error = DeleteFile(way)) del_error = error;*/ |
fs.remove(way); |
} |
void Del_File_Thread() |
/programs/cmm/eolite/include/copy.h |
---|
7,6 → 7,7 |
Clipboard clipboard; |
dword _copy_path_ = 0; |
void Copy(dword pcth, char cut) |
{ |
dword selected_offset2; |
13,6 → 14,7 |
byte copy_t[4096]; |
dword buff_data; |
int ind = 0; |
/* |
if (selected_count) |
{ |
buff_data = malloc(selected_count*4096+10); |
42,6 → 44,9 |
} |
cut_active = cut; |
free(buff_data); |
*/ |
_copy_path_ = strdup(#file_path); |
cut_active = cut; |
} |
56,9 → 61,27 |
int j; |
int cnt = 0; |
dword buf; |
dword tmp; |
file_count_copy = 0; |
copy_bar.value = 0; |
if(_copy_path_) |
{ |
DisplayOperationForm(); |
IF(!TEMP) TEMP = malloc(4096); |
buf = _copy_path_; |
while(DSBYTE[buf]) |
{ |
IF(DSBYTE[buf]=='/')tmp = buf; |
buf++; |
} |
sprintf(TEMP,"%s/%s",#path,tmp); |
IF(cut_active) fs.move(_copy_path_,TEMP); |
ELSE fs.copy(_copy_path_,TEMP); |
free(_copy_path_); |
DialogExit(); |
} |
_copy_path_ = 0; |
/* |
buf = clipboard.GetSlotData(clipboard.GetSlotCount()-1); |
if (DSDWORD[buf+4] != 3) return; |
cnt = ESINT[buf+8]; |
101,11 → 124,8 |
Del_File2(#copy_from, 0); |
} |
} |
if (cut_active) |
{ |
}*/ |
cut_active=false; |
} |
if (info_after_copy) notify(INFO_AFTER_COPY); |
DialogExit(); |
} |
/programs/cmm/eolite/include/properties.h |
---|
155,6 → 155,7 |
DrawFlatButton(145,138,70,20,302,0xC6DFC6,T_NO); |
} |
/* |
void GetSizeDir(dword way) |
{ |
dword dirbuf, fcount, i, filename; |
184,17 → 185,21 |
free(cur_file); |
} |
} |
*/ |
void GetSizeMoreFiles(dword way) |
{ |
char cur_file[4096]; |
dword selected_offset2; |
size_dir = 0; |
for (i=0; i<files.count; i++) |
{ |
selected_offset2 = file_mas[i]*304 + buf+32 + 7; |
if (ESBYTE[selected_offset2]) { |
if(ESBYTE[selected_offset2]) |
{ |
sprintf(#cur_file,"%s%s",way,file_mas[i]*304+buf+72); |
size_dir += fs.get_size(#cur_file); |
/* |
if (TestBit(ESDWORD[file_mas[i]*304+buf+32], 4) ) |
{ |
debugln(#cur_file); |
203,10 → 208,10 |
} |
else |
{ |
GetFileInfo(#cur_file, #file_info_dirsize); |
size_dir += file_info_dirsize.sizelo; |
size_dir += fs.get_size(#cur_file); |
file_count++; |
} |
*/ |
} |
} |
} |
235,7 → 240,8 |
GetFileInfo(#file_path, #file_info_general); |
strcpy(#file_name2, #file_name); |
file_name_ed.size = strlen(#file_name2); |
if(itdir) GetSizeDir(#file_path); |
//if(itdir) GetSizeDir(#file_path); |
size_dir = fs.get_size(#file_path); |
atr_readonly = file_info_general.readonly; |
atr_hidden = file_info_general.hidden; |
atr_system = file_info_general.system; |
/programs/cmm/lib/dll.h |
---|
16,6 → 16,11 |
char a_libdir[43] = "/sys/lib/\0"; |
dword GLOBAL_FUNC_LIB = 0; |
dword G_FUNC_LOAD = 0; |
dword G_FUNC_GET = 0; |
dword PATH_LIBRARY_LOADING = "/rd/1/lib/library.obj"; |
:inline void error_init(dword text) |
{ |
dword TEXT_ERROR = malloc(1024); |
25,7 → 30,7 |
} |
// stdcall with 1 parameter |
void dll_Load() { |
:void dll_Load() { |
asm { |
push ebp |
mov ebp, esp |
83,7 → 88,7 |
} |
//stdcall with 2 parameters |
void dll_Link() { |
:void dll_Link() { |
asm { |
push ebp |
mov ebp, esp |
113,7 → 118,7 |
//stdcall with 1 parameter |
void dll_Init() { |
:void dll_Init() { |
asm { |
push ebp |
mov ebp, esp |
131,7 → 136,7 |
// stdcall with 2 parameters |
void dll_GetProcAddress(){ |
:void dll_GetProcAddress(){ |
asm { |
push ebp |
mov ebp, esp |
161,7 → 166,7 |
// stdcall with 2 parameters |
void dll_StrCmp() { |
:void dll_StrCmp() { |
asm { |
push ebp |
mov ebp, esp |
187,7 → 192,7 |
} |
} |
int load_dll2(dword dllname, import_table, byte need_init) |
:int load_dll2(dword dllname, import_table, byte need_init) |
{ |
//dword dllentry=0; |
// load DLL |
239,7 → 244,7 |
return -1; |
} |
byte load_dll(dword dllname, import_table, byte need_init) |
:byte load_dll(dword dllname, import_table, byte need_init) |
{ |
if (load_dll2(dllname, import_table, need_init)) |
{ |
249,5 → 254,42 |
return true; |
} |
:struct OBJECT |
{ |
void load(dword dllname); |
dword get(dword fname); |
} library; |
:void OBJECT::load(dword dllname) |
{ |
dword tmp; |
IF(!GLOBAL_FUNC_LIB) |
{ |
$mov eax, 68 |
$mov ebx, 19 |
ECX=#PATH_LIBRARY_LOADING; |
$int 0x40 |
tmp = EAX; |
GLOBAL_FUNC_LIB = tmp; |
tmp+=4; |
G_FUNC_LOAD = DSDWORD[tmp]; |
tmp+=8; |
G_FUNC_GET = DSDWORD[tmp]; |
} |
G_FUNC_LOAD stdcall(dllname); |
} |
:dword OBJECT::get(dword fname) |
{ |
dword tmp=fname; |
G_FUNC_GET stdcall(tmp); |
return EAX; |
} |
/* |
#define INIT_(name) byte init_#name(){object.load(name); |
#define IMPORT(name) name = object.get(name); |
#define _INIT return 1;} |
*/ |
#endif |
/programs/cmm/lib/kolibri.h |
---|
25,6 → 25,8 |
char param[4096]; |
char program_path[4096]; |
dword TEMP = 0; |
#define NULL 0 |
#define OLD -1 |
#define true 1 |
/programs/cmm/lib/obj/fs.h |
---|
0,0 → 1,68 |
#ifndef INCLUDE_LIBFS_H |
#define INCLUDE_LIBFS_H |
#print "[include <obj/fs.h>]\n" |
#ifndef INCLUDE_KOLIBRI_H |
#include "../lib/kolibri.h" |
#endif |
#ifndef INCLUDE_DLL_H |
#include "../lib/dll.h" |
#endif |
:struct FILE_SYSTEM_FUNCTION |
{ |
dword remove_pointer; |
byte remove(dword path); |
dword move_pointer; |
byte move(dword path1,path2); |
dword copy_pointer; |
byte copy(dword path1,path2); |
dword get_size_pointer; |
qword get_size(dword path); |
} fs; |
:byte FILE_SYSTEM_FUNCTION::remove(dword path) |
{ |
dword tmp = path; |
remove_pointer stdcall(tmp); |
return EAX; |
} |
:qword FILE_SYSTEM_FUNCTION::get_size(dword path) |
{ |
dword tmp = path; |
get_size_pointer stdcall(tmp); |
return EAX; |
} |
:byte FILE_SYSTEM_FUNCTION::move(dword path1,path2) |
{ |
dword tmp1 = path1; |
dword tmp2 = path2; |
move_pointer stdcall(tmp1,tmp2); |
return EAX; |
} |
:byte FILE_SYSTEM_FUNCTION::copy(dword path1,path2) |
{ |
dword tmp1 = path1; |
dword tmp2 = path2; |
copy_pointer stdcall(tmp1,tmp2); |
return EAX; |
} |
:void lib_init_fs() |
{ |
library.load("/sys/LIB/FS.OBJ"); |
fs.remove_pointer = library.get("fs.remove"); |
fs.get_size_pointer = library.get("fs.get_size"); |
fs.move_pointer = library.get("fs.move"); |
fs.copy_pointer = library.get("fs.copy"); |
//alert(itoa(fs.get_size("/sys/"))); |
} |
#endif |