diff --git a/programs/cmm/eolite/Eolite.c b/programs/cmm/eolite/Eolite.c index b7f7bb1559..8ce59a47d6 100644 --- a/programs/cmm/eolite/Eolite.c +++ b/programs/cmm/eolite/Eolite.c @@ -18,7 +18,6 @@ //obj #include "..\lib\obj\libini.h" #include "..\lib\obj\box_lib.h" -#include "..\lib\obj\fs.h" byte CMD_ENABLE_SAVE_IMG = false; @@ -125,9 +124,6 @@ void main() 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"; @@ -879,7 +875,7 @@ void Del_Form() 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)) @@ -901,8 +897,7 @@ int Del_File2(dword way, sh_progr) } } } - if (error = DeleteFile(way)) del_error = error;*/ - fs.remove(way); + if (error = DeleteFile(way)) del_error = error; } void Del_File_Thread() diff --git a/programs/cmm/eolite/include/copy.h b/programs/cmm/eolite/include/copy.h index 7f4821b9b5..4998a5127e 100644 --- a/programs/cmm/eolite/include/copy.h +++ b/programs/cmm/eolite/include/copy.h @@ -7,14 +7,12 @@ enum {NOCUT, CUT}; Clipboard clipboard; -dword _copy_path_ = 0; void Copy(dword pcth, char cut) { dword selected_offset2; byte copy_t[4096]; dword buff_data; int ind = 0; - if (selected_count) { buff_data = malloc(selected_count*4096+10); @@ -58,30 +56,56 @@ void PasteThread() int j; int cnt = 0; dword buf; - dword tmp; file_count_copy = 0; copy_bar.value = 0; buf = clipboard.GetSlotData(clipboard.GetSlotCount()-1); if (DSDWORD[buf+4] != 3) return; cnt = ESINT[buf+8]; + for (j = 0; j < cnt; j++) { + strlcpy(#copy_from, j*4096+buf+10, 4096); + GetFileInfo(#copy_from, #file_info_count); + if ( file_info_count.isfolder ) DirFileCount(#copy_from); + else file_count_copy++; + } + copy_bar.max = file_count_copy; + if (cut_active) operation_flag = MOVE_FLAG; + else operation_flag = COPY_FLAG; + + DisplayOperationForm(); for (j = 0; j < cnt; j++) { strlcpy(#copy_from, j*4096+buf+10, 4096); if (!copy_from) DialogExit(); strcpy(#copy_to, #path); strcat(#copy_to, #copy_from+strrchr(#copy_from,'/')); + if (!strcmp(#copy_from,#copy_to)) + { + strcpy(#copy_to, #path); + strcat(#copy_to, "new_"); + strcat(#copy_to, #copy_from+strrchr(#copy_from,'/')); + } if (strstr(#copy_to, #copy_from)) { - cut_active=false; notify("Copy directory into itself is a bad idea..."); DialogExit(); } - IF (cut_active) fs.move(#copy_from, #copy_to); - ELSE fs.copy(#copy_from, #copy_to); + + if (copy_rezult = copyf(#copy_from,#copy_to)) + { + Write_Error(copy_rezult); + } + else if (cut_active) + { + //strcpy(#file_path, #copy_from); + Del_File2(#copy_from, 0); + + } + } + if (cut_active) + { + cut_active=false; } - - cut_active=false; if (info_after_copy) notify(INFO_AFTER_COPY); DialogExit(); } \ No newline at end of file diff --git a/programs/cmm/eolite/include/properties.h b/programs/cmm/eolite/include/properties.h index ee9ecf34b5..2d85979fe4 100644 --- a/programs/cmm/eolite/include/properties.h +++ b/programs/cmm/eolite/include/properties.h @@ -155,7 +155,6 @@ void Quest() DrawFlatButton(145,138,70,20,302,0xC6DFC6,T_NO); } -/* void GetSizeDir(dword way) { dword dirbuf, fcount, i, filename; @@ -185,31 +184,27 @@ void GetSizeDir(dword way) free(cur_file); } } -*/ void GetSizeMoreFiles(dword way) { char cur_file[4096]; dword selected_offset2; - size_dir = 0; + for (i=0; i