Rev 5883 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4042 | leency | 1 | |
4428 | leency | 2 | byte copy_from[4096]; |
5514 | leency | 3 | byte cut_active=0; |
4428 | leency | 4 | |
4896 | punk_joker | 5 | |
5804 | punk_joker | 6 | |
5691 | punk_joker | 7 | |
4427 | punk_joker | 8 | |
9 | |||
5883 | pavelyakov | 10 | void Copy(dword pcth, char cut) |
4896 | punk_joker | 11 | { |
4698 | punk_joker | 12 | dword selected_offset2; |
5513 | punk_joker | 13 | byte copy_t[4096]; |
14 | dword buff_data; |
||
15 | int ind = 0; |
||
5691 | punk_joker | 16 | /* |
5883 | pavelyakov | 17 | if (selected_count) |
5513 | punk_joker | 18 | { |
19 | buff_data = malloc(selected_count*4096+10); |
||
20 | ESDWORD[buff_data] = selected_count*4096+10; |
||
21 | ESDWORD[buff_data+4] = 3; |
||
22 | ESINT[buff_data+8] = selected_count; |
||
23 | for (i=0; i |
||
5174 | punk_joker | 24 | { |
25 | selected_offset2 = file_mas[i]*304 + buf+32 + 7; |
||
5513 | punk_joker | 26 | if (ESBYTE[selected_offset2]) { |
27 | strcpy(#copy_t, #path); |
||
28 | strcat(#copy_t, file_mas[i]*304+buf+72); |
||
29 | strlcpy(ind*4096+buff_data+10, #copy_t, 4096);; |
||
30 | ind++; |
||
31 | } |
||
32 | } |
||
5174 | punk_joker | 33 | clipboard.SetSlotData(selected_count*4096+10, buff_data); |
5513 | punk_joker | 34 | } |
35 | else |
||
36 | { |
||
37 | buff_data = malloc(4106); |
||
38 | ESDWORD[buff_data] = 4106; |
||
39 | ESDWORD[buff_data+4] = 3; |
||
40 | ESINT[buff_data+8] = 1; |
||
41 | strlcpy(buff_data+10, #file_path, 4096);; |
||
42 | clipboard.SetSlotData(4106, buff_data); |
||
43 | } |
||
44 | cut_active = cut; |
||
4042 | leency | 45 | free(buff_data); |
5209 | punk_joker | 46 | */ |
5883 | pavelyakov | 47 | _copy_path_ = strdup(#file_path); |
48 | cut_active = cut; |
||
49 | } |
||
4042 | leency | 50 | |
51 | |||
52 | |||
5609 | leency | 53 | copy_stak = malloc(20000); |
54 | CreateThread(#PasteThread,copy_stak+20000-4); |
||
5620 | leency | 55 | } |
5609 | leency | 56 | |
57 | |||
5608 | leency | 58 | { |
4042 | leency | 59 | char copy_rezult; |
60 | int j; |
||
5174 | punk_joker | 61 | int cnt = 0; |
5514 | leency | 62 | dword buf; |
4864 | punk_joker | 63 | dword tmp; |
5883 | pavelyakov | 64 | file_count_copy = 0; |
5691 | punk_joker | 65 | copy_bar.value = 0; |
66 | if(_copy_path_) |
||
5883 | pavelyakov | 67 | { |
68 | DisplayOperationForm(); |
||
69 | IF(!TEMP) TEMP = malloc(4096); |
||
70 | buf = _copy_path_; |
||
71 | while(DSBYTE[buf]) |
||
72 | { |
||
73 | IF(DSBYTE[buf]=='/')tmp = buf; |
||
74 | buf++; |
||
75 | } |
||
76 | tmp++; |
||
5894 | pavelyakov | 77 | sprintf(TEMP,"%s%s",#path,tmp); |
78 | IF(cut_active) fs.move(_copy_path_,TEMP); |
||
5883 | pavelyakov | 79 | ELSE fs.copy(_copy_path_,TEMP); |
80 | free(_copy_path_); |
||
81 | DialogExit(); |
||
82 | } |
||
83 | _copy_path_ = 0; |
||
84 | /* |
||
85 | buf = clipboard.GetSlotData(clipboard.GetSlotCount()-1); |
||
4864 | punk_joker | 86 | if (DSDWORD[buf+4] != 3) return; |
5514 | leency | 87 | cnt = ESINT[buf+8]; |
5174 | punk_joker | 88 | for (j = 0; j < cnt; j++) { |
5514 | leency | 89 | strlcpy(#copy_from, j*4096+buf+10, 4096); |
5174 | punk_joker | 90 | GetFileInfo(#copy_from, #file_info_count); |
5691 | punk_joker | 91 | if ( file_info_count.isfolder ) DirFileCount(#copy_from); |
92 | else file_count_copy++; |
||
93 | } |
||
94 | copy_bar.max = file_count_copy; |
||
95 | |||
5804 | punk_joker | 96 | |
97 | else operation_flag = COPY_FLAG; |
||
98 | |||
99 | |||
100 | for (j = 0; j < cnt; j++) { |
||
5691 | punk_joker | 101 | strlcpy(#copy_from, j*4096+buf+10, 4096); |
102 | if (!copy_from) DialogExit(); |
||
5804 | punk_joker | 103 | strcpy(#copy_to, #path); |
4042 | leency | 104 | strcat(#copy_to, #copy_from+strrchr(#copy_from,'/')); |
105 | if (!strcmp(#copy_from,#copy_to)) |
||
4698 | punk_joker | 106 | { |
107 | strcpy(#copy_to, #path); |
||
108 | strcat(#copy_to, "new_"); |
||
109 | strcat(#copy_to, #copy_from+strrchr(#copy_from,'/')); |
||
110 | } |
||
111 | if (strstr(#copy_to, #copy_from)) |
||
112 | { |
||
113 | notify("Copy directory into itself is a bad idea..."); |
||
114 | DialogExit(); |
||
5804 | punk_joker | 115 | } |
4698 | punk_joker | 116 | |
5514 | leency | 117 | |
4698 | punk_joker | 118 | { |
119 | Write_Error(copy_rezult); |
||
120 | } |
||
121 | else if (cut_active) |
||
4894 | punk_joker | 122 | { |
123 | //strcpy(#file_path, #copy_from); |
||
5804 | punk_joker | 124 | Del_File2(#copy_from, 0); |
125 | |||
4894 | punk_joker | 126 | |
127 | }*/ |
||
5883 | pavelyakov | 128 | cut_active=false; |
129 | if (info_after_copy) notify(INFO_AFTER_COPY); |
||
5459 | punk_joker | 130 | |
5883 | pavelyakov | 131 | |
4861 | leency | 132 |